-----------------------------------------------------------------------------
 MANIFEST                                            |  611 
 Makefile                                            |  175 
 README                                              |    2 
 README.MAC                                          |   11 
 README.VMS                                          |   74 
 README.WIN                                          |    6 
 aclocal.m4                                          | 2661 +
 config.guess                                        |  389 
 config.sub                                          |  296 
 configure                                           |29217 ++++++++++--------
 configure.in                                        |  179 
 doc/CHANGES                                         |  519 
 doc/CHANGES.old                                     |   28 
 doc/CREDITS                                         |  110 
 doc/DEBUG_REFS                                      |   16 
 doc/INSTALL                                         |  119 
 doc/TODO                                            |  567 
 doc/WHATSNEW                                        |   45 
 doc/art_handling.txt                                |    2 
 doc/article.txt                                     |    2 
 doc/auth.txt                                        |   25 
 doc/config-anomalies                                |   89 
 doc/filtering                                       |   15 
 doc/good-netkeeping-seal                            |    2 
 doc/keymap.sample                                   |   38 
 doc/l10n/de.add                                     |    5 
 doc/l10n/de.po                                      |12430 +++++++
 doc/l10n/de/tin.1                                   | 3418 ++
 doc/l10n/de/tin.5                                   | 2407 +
 doc/l10n/en_GB.po                                   |14266 ++++++++
 doc/l10n/en_GB/tin.1                                | 3406 ++
 doc/l10n/en_GB/tin.5                                | 2406 +
 doc/l10n/po4a.conf                                  |   17 
 doc/l10n/tin-man.pot                                |12042 +++++++
 doc/mailcap.sample                                  |    8 
 doc/pgp.txt                                         |    2 
 doc/plp_snprintf.3                                  |    2 
 doc/rcvars.txt                                      |   12 
 doc/tin.1                                           |  856 
 doc/tin.5                                           |  756 
 doc/tin.defaults                                    |   12 
 doc/tinews.1                                        |   59 
 doc/tools.txt                                       |   11 
 doc/url_handler.1                                   |  205 
 include/autoconf.hin                                |   56 
 include/bool.h                                      |    9 
 include/bugrep.h                                    |    8 
 include/debug.h                                     |   59 
 include/extern.h                                    |  353 
 include/keymap.h                                    |   40 
 include/newsrc.h                                    |   22 
 include/nntplib.h                                   |  173 
 include/oldconfig.h                                 |  422 
 include/plp_snprintf.h                              |    2 
 include/policy.h                                    |  116 
 include/proto.h                                     |  156 
 include/rfc2046.h                                   |   49 
 include/stpwatch.h                                  |    8 
 include/tcurses.h                                   |   14 
 include/tin.h                                       |  635 
 include/tinrc.h                                     |   98 
 include/tnntp.h                                     |  119 
 include/trace.h                                     |    2 
 include/version.h                                   |   25 
 install-sh                                          |  294 
 install.sh                                          |  294 
 intl/Makefile.in                                    |    9 
 intl/plural.y                                       |    2 
 libcanlock/Build                                    |   43 
 libcanlock/CHANGES                                  |   59 
 libcanlock/HOWTO                                    |   63 
 libcanlock/MANIFEST                                 |   25 
 libcanlock/Makefile.in                              |   50 
 libcanlock/README                                   |   65 
 libcanlock/base64.c                                 |  324 
 libcanlock/base64.h                                 |    2 
 libcanlock/canlock.h                                |   10 
 libcanlock/canlock_md5.c                            |   81 
 libcanlock/canlock_misc.c                           |   55 
 libcanlock/canlock_sha1.c                           |   81 
 libcanlock/canlocktest.c                            |  106 
 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 
 libcanlock/endian.c                                 |  115 
 libcanlock/hmac_md5.c                               |   75 
 libcanlock/hmac_md5.h                               |    1 
 libcanlock/hmac_sha1.c                              |   74 
 libcanlock/hmac_sha1.h                              |    1 
 libcanlock/hmactest.c                               |  154 
 libcanlock/include/base64.h                         |   42 
 libcanlock/include/canlock.h                        |    8 
 libcanlock/include/hmac_sha1.h                      |    2 
 libcanlock/include/sha1.h                           |   60 
 libcanlock/main.c                                   |  424 
 libcanlock/md5.c                                    |  253 
 libcanlock/md5.h                                    |   30 
 libcanlock/sha1.c                                   |  265 
 libcanlock/sha1.h                                   |   29 
 libcanlock/src/base64.c                             |  136 
 libcanlock/src/canlock.c                            |  193 
 libcanlock/src/hmac_sha1.c                          |  130 
 libcanlock/src/sha1.c                               |  353 
 libcanlock/t/canlocktest.c                          |  110 
 libcanlock/t/canlocktest.shouldbe                   |   15 
 libcanlock/t/hmactest.c                             |  115 
 libcanlock/t/hmactest.shouldbe                      |   24 
 mkdirs.sh                                           |   38 
 pcre/AUTHORS                                        |    4 
 pcre/COPYING                                        |    6 
 pcre/ChangeLog                                      |  671 
 pcre/LICENCE                                        |    6 
 pcre/Makefile.in                                    |   26 
 pcre/Makefile.in-old                                |  172 
 pcre/NEWS                                           |   63 
 pcre/NON-UNIX-USE                                   |   58 
 pcre/README                                         |   89 
 pcre/RunTest.in                                     |   21 
 pcre/config.h                                       |    3 
 pcre/dftables.c                                     |   13 
 pcre/doc/pcre.3                                     | 1917 +
 pcre/pcre.h                                         |  294 
 pcre/pcre.h.in                                      |  258 
 pcre/pcre.mms                                       |  196 
 pcre/pcre_compile.c                                 | 3819 +-
 pcre/pcre_config.c                                  |    8 
 pcre/pcre_dfa_exec.c                                |  829 
 pcre/pcre_exec.c                                    | 1665 -
 pcre/pcre_fullinfo.c                                |    4 
 pcre/pcre_get.c                                     |  123 
 pcre/pcre_globals.c                                 |   17 
 pcre/pcre_info.c                                    |    4 
 pcre/pcre_internal.h                                |  473 
 pcre/pcre_maketables.c                              |   37 
 pcre/pcre_newline.c                                 |  135 
 pcre/pcre_ord2utf8.c                                |    4 
 pcre/pcre_printint.src                              |  144 
 pcre/pcre_refcount.c                                |    4 
 pcre/pcre_study.c                                   |  176 
 pcre/pcre_tables.c                                  |  155 
 pcre/pcre_try_flipped.c                             |    8 
 pcre/pcre_ucp_findchar.c                            |  161 
 pcre/pcre_ucp_searchfuncs.c                         |  175 
 pcre/pcre_valid_utf8.c                              |    6 
 pcre/pcre_version.c                                 |   31 
 pcre/pcre_xclass.c                                  |   45 
 pcre/pcredemo.c                                     |   10 
 pcre/pcregrep.c                                     | 1301 
 pcre/pcreposix.c                                    |   65 
 pcre/pcreposix.h                                    |   58 
 pcre/pcretest.c                                     |  727 
 pcre/perltest                                       |   38 
 pcre/testdata/testinput1                            |  192 
 pcre/testdata/testinput2                            | 1334 
 pcre/testdata/testinput3                            |   26 
 pcre/testdata/testinput4                            |   13 
 pcre/testdata/testinput5                            |   95 
 pcre/testdata/testinput6                            |  248 
 pcre/testdata/testinput7                            |  235 
 pcre/testdata/testinput8                            |   53 
 pcre/testdata/testinput9                            |  217 
 pcre/testdata/testoutput1                           |  320 
 pcre/testdata/testoutput2                           | 3817 +-
 pcre/testdata/testoutput3                           |   56 
 pcre/testdata/testoutput4                           |   22 
 pcre/testdata/testoutput5                           |  604 
 pcre/testdata/testoutput6                           |  472 
 pcre/testdata/testoutput7                           |  463 
 pcre/testdata/testoutput8                           |  112 
 pcre/testdata/testoutput9                           |  397 
 pcre/ucp.h                                          |   83 
 pcre/ucpinternal.h                                  |  139 
 pcre/ucptable.c                                     |18165 +----------
 pcre/version.sh                                     |    6 
 po/Makefile.inn                                     |   84 
 po/da.gmo                                           |binary
 po/da.po                                            | 7167 ++++
 po/de.gmo                                           |binary
 po/de.po                                            |10840 +++---
 po/en_GB.gmo                                        |binary
 po/en_GB.po                                         | 9710 +++--
 po/et.gmo                                           |binary
 po/et.po                                            |10765 +++---
 po/fr.gmo                                           |binary
 po/fr.po                                            |10849 +++---
 po/ru.gmo                                           |binary
 po/ru.po                                            |10560 +++---
 po/rw.gmo                                           |binary
 po/rw.po                                            | 6964 ----
 po/sv.gmo                                           |binary
 po/sv.po                                            | 9715 +++--
 po/tin.pot                                          | 4008 +-
 po/tr.gmo                                           |binary
 po/tr.po                                            |10997 +++---
 src/Makefile.in                                     |   80 
 src/active.c                                        |  501 
 src/art.c                                           |  840 
 src/attrib.c                                        | 1876 -
 src/auth.c                                          |  389 
 src/charset.c                                       |   74 
 src/color.c                                         |  104 
 src/config.c                                        |  733 
 src/cook.c                                          |  530 
 src/curses.c                                        |  270 
 src/debug.c                                         |  216 
 src/descrip.mms                                     |  318 
 src/envarg.c                                        |    2 
 src/feed.c                                          |  263 
 src/filter.c                                        |  270 
 src/getline.c                                       |   16 
 src/global.c                                        |    2 
 src/group.c                                         |  402 
 src/hashstr.c                                       |    2 
 src/header.c                                        |   61 
 src/help.c                                          |  379 
 src/inews.c                                         |   85 
 src/init.c                                          |  319 
 src/joinpath.c                                      |   21 
 src/keymap.c                                        |  423 
 src/lang.c                                          |  608 
 src/list.c                                          |   46 
 src/lock.c                                          |   22 
 src/mail.c                                          |  220 
 src/main.c                                          |  366 
 src/makecfg.c                                       |    8 
 src/memory.c                                        |  221 
 src/mimetypes.c                                     |   52 
 src/misc.c                                          |  343 
 src/my_tmpfile.c                                    |   45 
 src/newsrc.c                                        |  643 
 src/nntplib.c                                       |  989 
 src/nrctbl.c                                        |   36 
 src/options_menu.c                                  | 2714 +
 src/page.c                                          |  763 
 src/pgp.c                                           |   50 
 src/plp_snprintf.c                                  |   10 
 src/post.c                                          | 1422 
 src/prompt.c                                        |  176 
 src/read.c                                          |   63 
 src/refs.c                                          |  410 
 src/regex.c                                         |   21 
 src/rfc1524.c                                       |   14 
 src/rfc2045.c                                       |   24 
 src/rfc2046.c                                       |  178 
 src/rfc2047.c                                       |  270 
 src/save.c                                          | 1135 
 src/screen.c                                        |   44 
 src/search.c                                        |   90 
 src/select.c                                        |  207 
 src/sigfile.c                                       |   87 
 src/signal.c                                        |  128 
 src/strftime.c                                      |    2 
 src/string.c                                        |  270 
 src/tags.c                                          |   84 
 src/tcurses.c                                       |  140 
 src/thread.c                                        |  285 
 src/tincfg.tbl                                      |  106 
 src/tmpfile.c                                       |    2 
 src/trace.c                                         |    2 
 src/version.c                                       |   19 
 src/xface.c                                         |   56 
 src/xref.c                                          |  328 
 tin.spec                                            |    9 
 tools/metamutt                                      |    2 
 tools/opt-case.pl                                   |    2 
 tools/tinews.pl                                     |  418 
 tools/url_handler.pl                                |  134 
 tools/url_handler.sh                                |    6 
 vms/dir.h                                           |  109 
 vms/filetypes.h                                     |   13 
 vms/getopt.c                                        |  755 
 vms/getopt.h                                        |  131 
 vms/getopt1.c                                       |  180 
 vms/getpass.c                                       |   99 
 vms/isxterm.c                                       |   29 
 vms/libvms.mms                                      |  171 
 vms/ndir.h                                          |   51 
 vms/parsdate.c                                      | 1327 
 vms/parse.c                                         |   91 
 vms/parse.h                                         |   10 
 vms/pwd.h                                           |   34 
 vms/qsort.c                                         |  202 
 vms/select.h                                        |   30 
 vms/strings.h                                       |   32 
 vms/uaf.h                                           |  295 
 vms/vms.c                                           |  297 
 vms/vmsdir.c                                        |  185 
 vms/vmsfile.c                                       |   85 
 vms/vmspwd.c                                        |  248 
 vms/vmstimval.h                                     |   20 
 292 files changed, 161089 insertions(+), 93420 deletions(-)
-----------------------------------------------------------------------------
diff -Nurp --exclude='.bzr*' tin-1.8.3/MANIFEST tin-2.0.0/MANIFEST
--- tin-1.8.3/MANIFEST	2007-02-01 14:11:15.000000000 +0100
+++ tin-2.0.0/MANIFEST	2011-08-23 00:03:57.317656484 +0200
@@ -1,319 +1,294 @@
-MANIFEST for tin-1.8.3 (Thu Feb  1 14:11:14 CET 2007)
+MANIFEST for tin-2.0.0 (Tue Aug 23 00:03:55 CEST 2011)
 ----------------------------------------------------
-  13806 ./Makefile
-   8336 ./MANIFEST
-   1440 ./README
-    564 ./README.MAC
-   2209 ./README.VMS
-   1006 ./README.WIN
- 150771 ./aclocal.m4
-    882 ./conf-tin
-  44002 ./config.guess
-  32372 ./config.sub
- 491258 ./configure
-  31035 ./configure.in
-   7123 ./install.sh
-    838 ./mkdirs.sh
-   1505 ./tin.spec
-  18847 ./doc/ABOUT-NLS
-   2578 ./doc/CHANGES
- 252172 ./doc/CHANGES.old
-   4942 ./doc/CREDITS
-   1469 ./doc/DEBUG_REFS
-  30017 ./doc/INSTALL
-  34428 ./doc/TODO
-    150 ./doc/WHATSNEW
-   2618 ./doc/art_handling.txt
-   1700 ./doc/article.txt
-   3862 ./doc/auth.txt
-   5377 ./doc/config-anomalies
-  11237 ./doc/filtering
-  35304 ./doc/good-netkeeping-seal
-   3803 ./doc/internals.txt
-  23621 ./doc/iso2asc.txt
-   3488 ./doc/keymap.sample
-    660 ./doc/mailcap.sample
-   3365 ./doc/mime.types
-   1541 ./doc/nov_tests
-   5155 ./doc/opt-case.1
-   3984 ./doc/pgp.txt
-   2726 ./doc/rcvars.txt
-   1525 ./doc/reading-mail.txt
-   4947 ./doc/umlaute.txt
-   4246 ./doc/umlauts.txt
-   4675 ./doc/tin.defaults
-  11541 ./doc/tinews.1
-   2237 ./doc/tools.txt
-   5870 ./doc/mbox.5
-   4168 ./doc/mmdf.5
-   2128 ./doc/newsoverview.5
-   6963 ./doc/plp_snprintf.3
- 118490 ./doc/tin.1
-  72803 ./doc/tin.5
-   4733 ./doc/w2r.1
-   2196 ./doc/wildmat.3
-    344 ./tools/expiretover
-   3815 ./tools/metamutt
-   2787 ./tools/opt-case.pl
-   1410 ./tools/tinlock
-  25305 ./tools/tinews.pl
-   1654 ./tools/url_handler.sh
-   3347 ./tools/w2r.pl
-   1661 ./tools/expand_aliases.tgz
-   2778 ./include/bool.h
-   2039 ./include/bugrep.h
-   9502 ./include/oldconfig.h
-  58747 ./include/extern.h
-  13625 ./include/keymap.h
-   6340 ./include/newsrc.h
-   8397 ./include/nntplib.h
-    665 ./include/plp_snprintf.h
-  12504 ./include/policy.h
-  31008 ./include/proto.h
-   5047 ./include/rfc2046.h
-   3373 ./include/stpwatch.h
-   5756 ./include/tcurses.h
-  63148 ./include/tin.h
-  13398 ./include/tinrc.h
-   5670 ./include/tnntp.h
-   2264 ./include/trace.h
-   2562 ./include/version.h
-  25899 ./src/active.c
-  58441 ./src/art.c
-  32282 ./src/attrib.c
-  12947 ./src/auth.c
-  13728 ./src/charset.c
-   8220 ./src/color.c
-  58140 ./src/config.c
-  20158 ./src/cook.c
-  30433 ./src/curses.c
-  10378 ./src/debug.c
-   3408 ./src/envarg.c
-  26308 ./src/feed.c
-  56694 ./src/filter.c
-  18114 ./src/getline.c
-   9070 ./src/global.c
-  47307 ./src/group.c
-   3900 ./src/hashstr.c
-   8788 ./src/header.c
-  28753 ./src/help.c
-  13890 ./src/inews.c
-  33763 ./src/init.c
-   2216 ./src/joinpath.c
-  90146 ./src/keymap.c
- 117545 ./src/lang.c
-   4486 ./src/langinfo.c
-   7102 ./src/list.c
-   6667 ./src/lock.c
-  13500 ./src/mail.c
-  21303 ./src/main.c
-  10814 ./src/makecfg.c
-  12256 ./src/memory.c
-   5257 ./src/mimetypes.c
-  90398 ./src/misc.c
-  40030 ./src/newsrc.c
-  45416 ./src/nntplib.c
-   7192 ./src/nrctbl.c
-  41832 ./src/options_menu.c
-  58527 ./src/page.c
-  24138 ./src/parsdate.y
-  16966 ./src/plp_snprintf.c
-  12713 ./src/pgp.c
- 134164 ./src/post.c
-  18446 ./src/prompt.c
-  10566 ./src/read.c
-  25559 ./src/refs.c
-   5276 ./src/regex.c
-  14475 ./src/rfc1524.c
-  15046 ./src/rfc2045.c
-  29853 ./src/rfc2046.c
-  32609 ./src/rfc2047.c
-  37303 ./src/save.c
-  11358 ./src/screen.c
-  16533 ./src/search.c
-  30811 ./src/select.c
-   7590 ./src/sigfile.c
-  12667 ./src/signal.c
-   7215 ./src/strftime.c
-  23476 ./src/string.c
-  13852 ./src/tags.c
-  16965 ./src/tcurses.c
-   3071 ./src/tmpfile.c
-   3364 ./src/my_tmpfile.c
-  40413 ./src/thread.c
-   2472 ./src/trace.c
-   4347 ./src/version.c
-   5453 ./src/wildmat.c
-   7153 ./src/xface.c
-   7784 ./src/xref.c
-   3013 ./vms/dir.h
-    424 ./vms/filetypes.h
-  21451 ./vms/getopt.c
-   4489 ./vms/getopt.h
-   4252 ./vms/getopt1.c
-   2374 ./vms/getpass.c
-    521 ./vms/isxterm.c
-   4553 ./vms/libvms.mms
-   1262 ./vms/ndir.h
-  38384 ./vms/parsdate.c
-   2716 ./vms/parse.c
-    165 ./vms/parse.h
-   1138 ./vms/pwd.h
-   5596 ./vms/qsort.c
-   1064 ./vms/select.h
-   1172 ./vms/strings.h
-   9012 ./vms/uaf.h
-   6106 ./vms/vms.c
-   3971 ./vms/vmsdir.c
-   1772 ./vms/vmsfile.c
-   5652 ./vms/vmspwd.c
-    389 ./vms/vmstimval.h
-    422 ./pcre/AUTHORS
-   2515 ./pcre/COPYING
-  84049 ./pcre/ChangeLog
-   8049 ./pcre/INSTALL
-   2515 ./pcre/LICENCE
-   2924 ./pcre/Makefile.in
-  24763 ./pcre/Makefile.in-old
-   9915 ./pcre/NEWS
-  10772 ./pcre/NON-UNIX-USE
-  22383 ./pcre/README
-   5996 ./pcre/RunTest.in
-    143 ./pcre/config.h
-   8703 ./pcre/configure.in
-   5876 ./pcre/dftables.c
-   1171 ./pcre/pcre-config.in
-  10608 ./pcre/pcre.h.in
- 160094 ./pcre/pcre_compile.c
-   3396 ./pcre/pcre_config.c
-  66595 ./pcre/pcre_dfa_exec.c
- 110857 ./pcre/pcre_exec.c
-   4929 ./pcre/pcre_fullinfo.c
-  11915 ./pcre/pcre_get.c
-   3159 ./pcre/pcre_globals.c
-   3841 ./pcre/pcre_info.c
-  36724 ./pcre/pcre_internal.h
-   5310 ./pcre/pcre_maketables.c
-   2985 ./pcre/pcre_ord2utf8.c
-  12388 ./pcre/pcre_printint.src
-   3311 ./pcre/pcre_refcount.c
-  14376 ./pcre/pcre_study.c
-   4610 ./pcre/pcre_tables.c
-   5348 ./pcre/pcre_try_flipped.c
-   4598 ./pcre/pcre_ucp_findchar.c
-   4482 ./pcre/pcre_valid_utf8.c
-   2573 ./pcre/pcre_version.c
-   4150 ./pcre/pcre_xclass.c
-  11707 ./pcre/pcredemo.c
-  33516 ./pcre/pcregrep.c
-  10376 ./pcre/pcreposix.c
-   4086 ./pcre/pcreposix.h
-  54545 ./pcre/pcretest.c
-   5234 ./pcre/perltest
-   1612 ./pcre/ucp.h
-   3547 ./pcre/ucpinternal.h
- 453166 ./pcre/ucptable.c
-    395 ./pcre/version.sh
-   9685 ./pcre/doc/pcre.3
-  63013 ./pcre/doc/pcrepattern.3
-  74037 ./pcre/testdata/testinput1
-  26948 ./pcre/testdata/testinput2
-    596 ./pcre/testdata/testinput3
-   8401 ./pcre/testdata/testinput4
-   3516 ./pcre/testdata/testinput5
-   7432 ./pcre/testdata/testinput6
-  74550 ./pcre/testdata/testinput7
-   8795 ./pcre/testdata/testinput8
-   8762 ./pcre/testdata/testinput9
-  98443 ./pcre/testdata/testoutput1
- 122705 ./pcre/testdata/testoutput2
-   1513 ./pcre/testdata/testoutput3
-  14738 ./pcre/testdata/testoutput4
-  22902 ./pcre/testdata/testoutput5
-  16226 ./pcre/testdata/testoutput6
- 103487 ./pcre/testdata/testoutput7
-  51419 ./pcre/testdata/testoutput8
-  24236 ./pcre/testdata/testoutput9
-  19937 ./include/autoconf.hin
-   5800 ./pcre/pcre.mms
-  21104 ./src/Makefile.in
-   7657 ./src/tincfg.tbl
-   8747 ./src/descrip.mms
-    946 ./libcanlock/Build
-    882 ./libcanlock/CHANGES
-    789 ./libcanlock/MANIFEST
-   1351 ./libcanlock/README
-  10829 ./libcanlock/base64.c
-    160 ./libcanlock/base64.h
-    550 ./libcanlock/canlock.h
-   1990 ./libcanlock/canlock_md5.c
-   1158 ./libcanlock/canlock_misc.c
-   2015 ./libcanlock/canlock_sha1.c
-   3095 ./libcanlock/canlocktest.c
-   3254 ./libcanlock/endian.c
-   1598 ./libcanlock/hmac_md5.c
-     81 ./libcanlock/hmac_md5.h
-   1645 ./libcanlock/hmac_sha1.c
-     82 ./libcanlock/hmac_sha1.h
-   4345 ./libcanlock/hmactest.c
-   8348 ./libcanlock/main.c
-   8087 ./libcanlock/md5.c
-    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
-   1820 ./intl/dcgettext.c
-  34160 ./intl/dcigettext.c
-   1895 ./intl/dcngettext.c
-   1792 ./intl/dgettext.c
-   1927 ./intl/dngettext.c
-   4650 ./intl/explodename.c
-   5736 ./intl/finddomain.c
-   1891 ./intl/gettext.c
-   3104 ./intl/gettext.h
-   7686 ./intl/gettextP.h
-   1835 ./intl/hash-string.h
-   4763 ./intl/intl-compat.c
-  10480 ./intl/l10nflist.c
-   1932 ./intl/libgettext.h
-   4397 ./intl/libgnuintl.h
-   3380 ./intl/loadinfo.h
-  14972 ./intl/loadmsgcat.c
-   6905 ./intl/localcharset.c
-   2657 ./intl/locale.alias
-   9432 ./intl/localealias.c
-  10014 ./intl/Makefile.in
-   2001 ./intl/ngettext.c
-  38981 ./intl/plural.c
-   8376 ./intl/plural.y
-   1089 ./intl/ref-add.sin
-   1044 ./intl/ref-del.sin
-   4481 ./intl/textdomain.c
-     41 ./intl/VERSION
-   4962 ./po/Makefile.inn
-    847 ./po/POTFILES.in
- 123243 ./po/tin.pot
- 166688 ./po/de.gmo
- 199621 ./po/de.po
-   7359 ./po/en_GB.gmo
- 125827 ./po/en_GB.po
- 159169 ./po/et.gmo
- 190821 ./po/et.po
- 162233 ./po/fr.gmo
- 196320 ./po/fr.po
- 129821 ./po/ru.gmo
- 178409 ./po/ru.po
-   2081 ./po/rw.gmo
- 169443 ./po/rw.po
-  23145 ./po/sv.gmo
- 130548 ./po/sv.po
-   5889 ./po/tr.gmo
- 190218 ./po/tr.po
-8127730 total
+   14066 ./Makefile
+    8060 ./MANIFEST
+    1441 ./README
+     745 ./README.MAC
+     976 ./README.WIN
+  178280 ./aclocal.m4
+     882 ./conf-tin
+   45029 ./config.guess
+   35291 ./config.sub
+  636696 ./configure
+   31970 ./configure.in
+    7123 ./install-sh
+    1488 ./tin.spec
+   18847 ./doc/ABOUT-NLS
+   25927 ./doc/CHANGES
+  252176 ./doc/CHANGES.old
+    5041 ./doc/CREDITS
+    1305 ./doc/DEBUG_REFS
+   30405 ./doc/INSTALL
+   40816 ./doc/TODO
+    1915 ./doc/WHATSNEW
+    2618 ./doc/art_handling.txt
+    1701 ./doc/article.txt
+    4373 ./doc/auth.txt
+    3859 ./doc/config-anomalies
+   11269 ./doc/filtering
+   35305 ./doc/good-netkeeping-seal
+    3803 ./doc/internals.txt
+   23621 ./doc/iso2asc.txt
+    3904 ./doc/keymap.sample
+     633 ./doc/mailcap.sample
+    5870 ./doc/mbox.5
+    3365 ./doc/mime.types
+    4168 ./doc/mmdf.5
+    2128 ./doc/newsoverview.5
+    1541 ./doc/nov_tests
+    5155 ./doc/opt-case.1
+    6964 ./doc/plp_snprintf.3
+    3964 ./doc/pgp.txt
+    2817 ./doc/rcvars.txt
+    1525 ./doc/reading-mail.txt
+    4947 ./doc/umlaute.txt
+    4246 ./doc/umlauts.txt
+    6723 ./doc/url_handler.1
+  128360 ./doc/tin.1
+   78323 ./doc/tin.5
+    4952 ./doc/tin.defaults
+   13099 ./doc/tinews.1
+    2418 ./doc/tools.txt
+    4733 ./doc/w2r.1
+    2196 ./doc/wildmat.3
+     344 ./tools/expiretover
+    3815 ./tools/metamutt
+    2788 ./tools/opt-case.pl
+    1410 ./tools/tinlock
+   32677 ./tools/tinews.pl
+    3643 ./tools/url_handler.pl
+    1657 ./tools/url_handler.sh
+    3347 ./tools/w2r.pl
+    1661 ./tools/expand_aliases.tgz
+    2586 ./include/bool.h
+    1947 ./include/bugrep.h
+    2210 ./include/debug.h
+   66553 ./include/extern.h
+   14068 ./include/keymap.h
+    6333 ./include/newsrc.h
+    8685 ./include/nntplib.h
+     664 ./include/plp_snprintf.h
+   14528 ./include/policy.h
+   32325 ./include/proto.h
+    5374 ./include/rfc2046.h
+    3377 ./include/stpwatch.h
+    5898 ./include/tcurses.h
+   68484 ./include/tin.h
+   16390 ./include/tinrc.h
+    4346 ./include/tnntp.h
+    2264 ./include/trace.h
+    2354 ./include/version.h
+   34225 ./src/active.c
+   71178 ./src/art.c
+   74865 ./src/attrib.c
+   14980 ./src/auth.c
+   12555 ./src/charset.c
+    8551 ./src/color.c
+   62398 ./src/config.c
+   27541 ./src/cook.c
+   27152 ./src/curses.c
+    9917 ./src/debug.c
+    3408 ./src/envarg.c
+   30327 ./src/feed.c
+   56135 ./src/filter.c
+   18126 ./src/getline.c
+    9070 ./src/global.c
+   47049 ./src/group.c
+    3900 ./src/hashstr.c
+    8215 ./src/header.c
+   43731 ./src/help.c
+   14005 ./src/inews.c
+   37255 ./src/init.c
+    2435 ./src/joinpath.c
+  101520 ./src/keymap.c
+  133613 ./src/lang.c
+    4486 ./src/langinfo.c
+    7728 ./src/list.c
+    6673 ./src/lock.c
+   16611 ./src/mail.c
+   25458 ./src/main.c
+   10879 ./src/makecfg.c
+   13232 ./src/memory.c
+    5283 ./src/mimetypes.c
+   91686 ./src/misc.c
+   38541 ./src/newsrc.c
+   53404 ./src/nntplib.c
+    7502 ./src/nrctbl.c
+   99090 ./src/options_menu.c
+   65812 ./src/page.c
+   24138 ./src/parsdate.y
+   17057 ./src/plp_snprintf.c
+   13003 ./src/pgp.c
+  150469 ./src/post.c
+   18837 ./src/prompt.c
+   10384 ./src/read.c
+   27319 ./src/refs.c
+    5481 ./src/regex.c
+   14483 ./src/rfc1524.c
+   15069 ./src/rfc2045.c
+   32047 ./src/rfc2046.c
+   36199 ./src/rfc2047.c
+   57186 ./src/save.c
+   11233 ./src/screen.c
+   18173 ./src/search.c
+   33022 ./src/select.c
+    7805 ./src/sigfile.c
+   14154 ./src/signal.c
+    7215 ./src/strftime.c
+   27454 ./src/string.c
+   13345 ./src/tags.c
+   17371 ./src/tcurses.c
+    3070 ./src/tmpfile.c
+    3706 ./src/my_tmpfile.c
+   41352 ./src/thread.c
+    2472 ./src/trace.c
+    4315 ./src/version.c
+    5453 ./src/wildmat.c
+    7335 ./src/xface.c
+   12499 ./src/xref.c
+     422 ./pcre/AUTHORS
+    2515 ./pcre/COPYING
+  118928 ./pcre/ChangeLog
+    8049 ./pcre/INSTALL
+    2515 ./pcre/LICENCE
+    3118 ./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
+     395 ./pcre/version.sh
+    6369 ./pcre/dftables.c
+    1171 ./pcre/pcre-config.in
+   12396 ./pcre/pcre.h
+  172486 ./pcre/pcre_compile.c
+    3504 ./pcre/pcre_config.c
+   80853 ./pcre/pcre_dfa_exec.c
+  126511 ./pcre/pcre_exec.c
+    4933 ./pcre/pcre_fullinfo.c
+   15178 ./pcre/pcre_get.c
+    3745 ./pcre/pcre_globals.c
+    3845 ./pcre/pcre_info.c
+   42748 ./pcre/pcre_internal.h
+    5462 ./pcre/pcre_maketables.c
+    5075 ./pcre/pcre_newline.c
+    2973 ./pcre/pcre_ord2utf8.c
+   13710 ./pcre/pcre_printint.src
+    3315 ./pcre/pcre_refcount.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
+   11732 ./pcre/pcredemo.c
+   57059 ./pcre/pcregrep.c
+   11801 ./pcre/pcreposix.c
+    4775 ./pcre/pcreposix.h
+   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
+    8498 ./pcre/testdata/testinput4
+    4766 ./pcre/testdata/testinput5
+   10717 ./pcre/testdata/testinput6
+   77627 ./pcre/testdata/testinput7
+    9623 ./pcre/testdata/testinput8
+   11437 ./pcre/testdata/testinput9
+  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
+   20380 ./include/autoconf.hin
+   21511 ./src/Makefile.in
+   10961 ./src/tincfg.tbl
+    1929 ./libcanlock/CHANGES
+    2464 ./libcanlock/HOWTO
+    1259 ./libcanlock/README
+    1331 ./libcanlock/Makefile.in
+    3712 ./libcanlock/src/base64.c
+    5271 ./libcanlock/src/canlock.c
+    3794 ./libcanlock/src/hmac_sha1.c
+   12514 ./libcanlock/src/sha1.c
+    1873 ./libcanlock/include/base64.h
+     378 ./libcanlock/include/canlock.h
+     119 ./libcanlock/include/hmac_sha1.h
+    1413 ./libcanlock/include/sha1.h
+    2889 ./libcanlock/t/canlocktest.c
+    3135 ./libcanlock/t/hmactest.c
+     766 ./libcanlock/t/canlocktest.shouldbe
+    1021 ./libcanlock/t/hmactest.shouldbe
+    9850 ./intl/bindtextdom.c
+      72 ./intl/ChangeLog
+   13325 ./intl/config.charset
+    1820 ./intl/dcgettext.c
+   34160 ./intl/dcigettext.c
+    1895 ./intl/dcngettext.c
+    1792 ./intl/dgettext.c
+    1927 ./intl/dngettext.c
+    4650 ./intl/explodename.c
+    5736 ./intl/finddomain.c
+    1891 ./intl/gettext.c
+    3104 ./intl/gettext.h
+    7686 ./intl/gettextP.h
+    1835 ./intl/hash-string.h
+    4763 ./intl/intl-compat.c
+   10480 ./intl/l10nflist.c
+    1932 ./intl/libgettext.h
+    4397 ./intl/libgnuintl.h
+    3380 ./intl/loadinfo.h
+   14972 ./intl/loadmsgcat.c
+    6905 ./intl/localcharset.c
+    2657 ./intl/locale.alias
+    9432 ./intl/localealias.c
+    9854 ./intl/Makefile.in
+    2001 ./intl/ngettext.c
+   38981 ./intl/plural.c
+    8375 ./intl/plural.y
+    1089 ./intl/ref-add.sin
+    1044 ./intl/ref-del.sin
+    4481 ./intl/textdomain.c
+      41 ./intl/VERSION
+    5068 ./po/Makefile.inn
+     847 ./po/POTFILES.in
+  140976 ./po/tin.pot
+   60091 ./po/da.gmo
+  176284 ./po/da.po
+  177001 ./po/de.gmo
+  234517 ./po/de.po
+    8420 ./po/en_GB.gmo
+  152907 ./po/en_GB.po
+  169563 ./po/et.gmo
+  228845 ./po/et.po
+  185808 ./po/fr.gmo
+  237856 ./po/fr.po
+  124584 ./po/ru.gmo
+  213441 ./po/ru.po
+   22907 ./po/sv.gmo
+  159495 ./po/sv.po
+    4671 ./po/tr.gmo
+  225583 ./po/tr.po
+  133459 ./doc/l10n/de/tin.1
+   81220 ./doc/l10n/de/tin.5
+     129 ./doc/l10n/de.add
+  324372 ./doc/l10n/de.po
+  132014 ./doc/l10n/en_GB/tin.1
+   80828 ./doc/l10n/en_GB/tin.5
+  451247 ./doc/l10n/en_GB.po
+     346 ./doc/l10n/po4a.conf
+  282544 ./doc/l10n/tin-man.pot
+10234437 total
diff -Nurp --exclude='.bzr*' tin-1.8.3/Makefile tin-2.0.0/Makefile
--- tin-1.8.3/Makefile	2007-02-01 14:11:14.000000000 +0100
+++ tin-2.0.0/Makefile	2011-08-23 00:03:55.061306179 +0200
@@ -1,15 +1,15 @@
 # Top level Makefile for tin
 # - for configuration options read the doc/INSTALL file.
 #
-# Updated: 2006-01-12
+# Updated: 2011-04-17
 #
 
 PROJECT	= tin
-LVER	= 1
-PVER	= 8
-SVER	= 3
+LVER	= 2
+PVER	= 0
+SVER	= 0
 VER	= $(LVER).$(PVER).$(SVER)
-DVER	= 20070201
+DVER	= 20110823
 EXE	= tin
 
 # directory structure
@@ -18,17 +18,17 @@ DOCDIR	= ./doc
 INCDIR	= ./include
 OBJDIR	= ./src
 SRCDIR	= ./src
-VMSDIR	= ./vms
 PCREDIR	= ./pcre
 CANDIR	= ./libcanlock
 TOLDIR	= ./tools
 PODIR	= ./po
 INTLDIR	= ./intl
+L10NDIR	= ./doc/l10n
 
 HFILES	= \
 	$(INCDIR)/bool.h \
 	$(INCDIR)/bugrep.h \
-	$(INCDIR)/oldconfig.h \
+	$(INCDIR)/debug.h \
 	$(INCDIR)/extern.h \
 	$(INCDIR)/keymap.h \
 	$(INCDIR)/newsrc.h \
@@ -115,30 +115,6 @@ CFILES	= \
 	$(SRCDIR)/xface.c \
 	$(SRCDIR)/xref.c
 
-VMS	= \
-	$(VMSDIR)/dir.h \
-	$(VMSDIR)/filetypes.h \
-	$(VMSDIR)/getopt.c \
-	$(VMSDIR)/getopt.h \
-	$(VMSDIR)/getopt1.c \
-	$(VMSDIR)/getpass.c \
-	$(VMSDIR)/isxterm.c \
-	$(VMSDIR)/libvms.mms \
-	$(VMSDIR)/ndir.h \
-	$(VMSDIR)/parsdate.c \
-	$(VMSDIR)/parse.c \
-	$(VMSDIR)/parse.h \
-	$(VMSDIR)/pwd.h \
-	$(VMSDIR)/qsort.c \
-	$(VMSDIR)/select.h \
-	$(VMSDIR)/strings.h \
-	$(VMSDIR)/uaf.h \
-	$(VMSDIR)/vms.c \
-	$(VMSDIR)/vmsdir.c \
-	$(VMSDIR)/vmsfile.c \
-	$(VMSDIR)/vmspwd.c \
-	$(VMSDIR)/vmstimval.h
-
 DOC	= \
 	$(DOCDIR)/ABOUT-NLS \
 	$(DOCDIR)/CHANGES \
@@ -158,23 +134,24 @@ DOC	= \
 	$(DOCDIR)/iso2asc.txt \
 	$(DOCDIR)/keymap.sample \
 	$(DOCDIR)/mailcap.sample \
+	$(DOCDIR)/mbox.5 \
 	$(DOCDIR)/mime.types \
+	$(DOCDIR)/mmdf.5 \
+	$(DOCDIR)/newsoverview.5 \
 	$(DOCDIR)/nov_tests \
 	$(DOCDIR)/opt-case.1 \
+	$(DOCDIR)/plp_snprintf.3 \
 	$(DOCDIR)/pgp.txt \
 	$(DOCDIR)/rcvars.txt \
 	$(DOCDIR)/reading-mail.txt \
 	$(DOCDIR)/umlaute.txt \
 	$(DOCDIR)/umlauts.txt \
+	$(DOCDIR)/url_handler.1 \
+	$(DOCDIR)/tin.1 \
+	$(DOCDIR)/tin.5 \
 	$(DOCDIR)/tin.defaults \
 	$(DOCDIR)/tinews.1 \
 	$(DOCDIR)/tools.txt \
-	$(DOCDIR)/mbox.5 \
-	$(DOCDIR)/mmdf.5 \
-	$(DOCDIR)/newsoverview.5 \
-	$(DOCDIR)/plp_snprintf.3 \
-	$(DOCDIR)/tin.1 \
-	$(DOCDIR)/tin.5 \
 	$(DOCDIR)/w2r.1 \
 	$(DOCDIR)/wildmat.3
 
@@ -184,6 +161,7 @@ TOL	= \
 	$(TOLDIR)/opt-case.pl \
 	$(TOLDIR)/tinlock \
 	$(TOLDIR)/tinews.pl \
+	$(TOLDIR)/url_handler.pl \
 	$(TOLDIR)/url_handler.sh \
 	$(TOLDIR)/w2r.pl \
 	$(TOLDIR)/expand_aliases.tgz
@@ -193,7 +171,6 @@ TOP	= \
 	$(TOPDIR)/MANIFEST \
 	$(TOPDIR)/README \
 	$(TOPDIR)/README.MAC \
-	$(TOPDIR)/README.VMS \
 	$(TOPDIR)/README.WIN \
 	$(TOPDIR)/aclocal.m4 \
 	$(TOPDIR)/conf-tin \
@@ -201,8 +178,7 @@ TOP	= \
 	$(TOPDIR)/config.sub \
 	$(TOPDIR)/configure \
 	$(TOPDIR)/configure.in \
-	$(TOPDIR)/install.sh \
-	$(TOPDIR)/mkdirs.sh \
+	$(TOPDIR)/install-sh \
 	$(TOPDIR)/tin.spec
 
 PCRE	= \
@@ -219,9 +195,10 @@ PCRE	= \
 	$(PCREDIR)/RunTest.in \
 	$(PCREDIR)/config.h \
 	$(PCREDIR)/configure.in \
+	$(PCREDIR)/version.sh \
 	$(PCREDIR)/dftables.c \
 	$(PCREDIR)/pcre-config.in \
-	$(PCREDIR)/pcre.h.in \
+	$(PCREDIR)/pcre.h \
 	$(PCREDIR)/pcre_compile.c \
 	$(PCREDIR)/pcre_config.c \
 	$(PCREDIR)/pcre_dfa_exec.c \
@@ -232,13 +209,14 @@ 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 \
 	$(PCREDIR)/pcre_study.c \
 	$(PCREDIR)/pcre_tables.c \
 	$(PCREDIR)/pcre_try_flipped.c \
-	$(PCREDIR)/pcre_ucp_findchar.c \
+	$(PCREDIR)/pcre_ucp_searchfuncs.c \
 	$(PCREDIR)/pcre_valid_utf8.c \
 	$(PCREDIR)/pcre_version.c \
 	$(PCREDIR)/pcre_xclass.c \
@@ -251,7 +229,6 @@ PCRE	= \
 	$(PCREDIR)/ucp.h \
 	$(PCREDIR)/ucpinternal.h \
 	$(PCREDIR)/ucptable.c \
-	$(PCREDIR)/version.sh \
 	$(PCREDIR)/doc/pcre.3 \
 	$(PCREDIR)/doc/pcrepattern.3 \
 	$(PCREDIR)/testdata/testinput1 \
@@ -274,40 +251,27 @@ PCRE	= \
 	$(PCREDIR)/testdata/testoutput9
 
 CAN	= \
-	$(CANDIR)/Build \
 	$(CANDIR)/CHANGES \
-	$(CANDIR)/MANIFEST \
+	$(CANDIR)/HOWTO \
 	$(CANDIR)/README \
-	$(CANDIR)/base64.c \
-	$(CANDIR)/base64.h \
-	$(CANDIR)/canlock.h \
-	$(CANDIR)/canlock_md5.c \
-	$(CANDIR)/canlock_misc.c \
-	$(CANDIR)/canlock_sha1.c \
-	$(CANDIR)/canlocktest.c \
-	$(CANDIR)/endian.c \
-	$(CANDIR)/hmac_md5.c \
-	$(CANDIR)/hmac_md5.h \
-	$(CANDIR)/hmac_sha1.c \
-	$(CANDIR)/hmac_sha1.h \
-	$(CANDIR)/hmactest.c \
-	$(CANDIR)/main.c \
-	$(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)/Makefile.in \
+	$(CANDIR)/src/base64.c \
+	$(CANDIR)/src/canlock.c \
+	$(CANDIR)/src/hmac_sha1.c \
+	$(CANDIR)/src/sha1.c \
+	$(CANDIR)/include/base64.h \
+	$(CANDIR)/include/canlock.h \
+	$(CANDIR)/include/hmac_sha1.h \
+	$(CANDIR)/include/sha1.h \
+	$(CANDIR)/t/canlocktest.c \
+	$(CANDIR)/t/hmactest.c \
+	$(CANDIR)/t/canlocktest.shouldbe \
+	$(CANDIR)/t/hmactest.shouldbe
 
 MISC	= \
 	$(INCDIR)/autoconf.hin \
-	$(PCREDIR)/pcre.mms \
 	$(SRCDIR)/Makefile.in \
-	$(SRCDIR)/tincfg.tbl \
-	$(SRCDIR)/descrip.mms
+	$(SRCDIR)/tincfg.tbl
 
 INTLFILES = \
 	$(INTLDIR)/bindtextdom.c \
@@ -346,6 +310,8 @@ POFILES = \
 	$(PODIR)/Makefile.inn \
 	$(PODIR)/POTFILES.in \
 	$(PODIR)/$(PROJECT).pot \
+	$(PODIR)/da.gmo \
+	$(PODIR)/da.po \
 	$(PODIR)/de.gmo \
 	$(PODIR)/de.po \
 	$(PODIR)/en_GB.gmo \
@@ -356,17 +322,25 @@ POFILES = \
 	$(PODIR)/fr.po \
 	$(PODIR)/ru.gmo \
 	$(PODIR)/ru.po \
-	$(PODIR)/rw.gmo \
-	$(PODIR)/rw.po \
 	$(PODIR)/sv.gmo \
 	$(PODIR)/sv.po \
 	$(PODIR)/tr.gmo \
 	$(PODIR)/tr.po
 
+L10NFILES = \
+	$(L10NDIR)/de/tin.1 \
+	$(L10NDIR)/de/tin.5 \
+	$(L10NDIR)/de.add \
+	$(L10NDIR)/de.po \
+	$(L10NDIR)/en_GB/tin.1 \
+	$(L10NDIR)/en_GB/tin.5 \
+	$(L10NDIR)/en_GB.po \
+	$(L10NDIR)/po4a.conf \
+	$(L10NDIR)/tin-man.pot
 
-ALL_FILES = $(TOP) $(DOC) $(TOL) $(HFILES) $(CFILES) $(VMS) $(PCRE) $(MISC) $(CAN) $(INTLFILES) $(POFILES)
+ALL_FILES = $(TOP) $(DOC) $(TOL) $(HFILES) $(CFILES) $(PCRE) $(MISC) $(CAN) $(INTLFILES) $(POFILES) $(L10NFILES)
 
-ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(VMSDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(CANDIR)/doc $(INTLDIR) $(PODIR)
+ALL_DIRS = $(TOPDIR) $(DOCDIR) $(SRCDIR) $(INCDIR) $(PCREDIR) $(PCREDIR)/doc $(PCREDIR)/testdata $(CANDIR) $(INTLDIR) $(PODIR) $(L10NDIR) $(L10NDIR)/de
 
 # standard commands
 CD	= cd
@@ -382,6 +356,7 @@ SHELL	= /bin/sh
 TAR	= tar
 GZIP	= gzip
 BZIP2	= bzip2
+LZMA	= lzma
 WC	= wc
 SED	= sed
 TR	= tr
@@ -426,7 +401,7 @@ clean:
 	@-if $(TEST) -r $(INTLDIR)/Makefile ; then $(CD) $(INTLDIR) && $(MAKE) clean ; fi
 	@-if $(TEST) -r $(PODIR)/Makefile ; then $(CD) $(PODIR) && $(MAKE) clean ; fi
 	@-if $(TEST) -r $(SRCDIR)/Makefile ; then $(CD) $(SRCDIR) && $(MAKE) clean ; fi
-	@-if $(TEST) -r $(CANDIR)/hmactest ; then $(CD) $(CANDIR) && ./Build clean ; fi
+	@-if $(TEST) -r $(CANDIR)/Makefile ; then $(CD) $(CANDIR) && $(MAKE) clean ; fi
 
 man:
 	@$(MAKE) manpage
@@ -452,22 +427,21 @@ 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 \
 	$(TOLDIR)/expiretover \
 	$(TOLDIR)/metamutt \
 	$(TOLDIR)/opt-case.pl \
 	$(TOLDIR)/tinlock \
 	$(TOLDIR)/tinews.pl \
+	$(TOLDIR)/url_handler.pl \
 	$(TOLDIR)/url_handler.sh \
 	$(TOLDIR)/w2r.pl \
 	$(PCREDIR)/perltest \
-	$(PCREDIR)/version.sh \
-	$(CANDIR)/Build
+	$(PCREDIR)/version.sh
 
 tar:
 	@$(ECHO) "Generating gzipped tar file..."
@@ -493,6 +467,18 @@ bzip2:
 	@$(CHMOD) 644 $(PROJECT)-$(VER).tar.bz2
 	@$(LS) -l $(PROJECT)-$(VER).tar.bz2
 
+lzma:
+	@$(ECHO) "Generating lzma compressd tar file..."
+	@-$(RM) -f $(PROJECT)-$(VER).tar.lzma
+	@$(TAR) cvf $(PROJECT)-$(VER).tar -C ../ \
+	`$(ECHO) $(ALL_FILES) \
+	| $(TR) -s '[[:space:]]' "[\012*]" \
+	| $(SED) 's,^\./,$(PROJECT)-$(VER)/,' \
+	| $(TR) "[\012]" " "`
+	@$(LZMA) -9 $(PROJECT)-$(VER).tar
+	@$(CHMOD) 644 $(PROJECT)-$(VER).tar.lzma
+	@$(LS) -l $(PROJECT)-$(VER).tar.lzma
+
 #
 # I know it's ugly, but it works
 #
@@ -518,6 +504,7 @@ dist:
 	@$(MAKE) chmod
 	@$(MAKE) tar
 	@$(MAKE) bzip2
+	@$(MAKE) lzma
 
 version:
 	@$(ECHO) "$(PROJECT)-$(VER)"
@@ -527,18 +514,26 @@ distclean:
 	@-if $(TEST) -r $(PODIR)/Makefile ; then $(CD) $(PODIR) && $(MAKE) distclean ; fi
 	@-if $(TEST) -r $(INTLDIR)/Makefile ; then $(CD) $(INTLDIR) && $(MAKE) distclean ; fi
 	@-if $(TEST) -r $(PCREDIR)/Makefile ; then $(CD) $(PCREDIR) && $(MAKE) distclean ; fi
+	@-if $(TEST) -r $(CANDIR)/Makefile ; then $(CD) $(CANDIR) && $(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 \
-	$(INTLDIR)/po2tbl.sed
+	$(CANDIR)/Makefile \
+	$(INTLDIR)/po2tbl.sed \
+	$(PROJECT)-$(VER).tar.gz \
+	$(PROJECT)-$(VER).tar.bz2 \
+	$(PROJECT)-$(VER).tar.lzma
 
 configure: configure.in aclocal.m4
 	autoconf
 
 config.status: configure
-	./config.status --recheck
+	$(TOPDIR)/config.status --recheck
+
+po4a:
+	@$(CD) $(L10NDIR) && po4a --no-backups --rm-backups po4a.conf
diff -Nurp --exclude='.bzr*' tin-1.8.3/README tin-2.0.0/README
--- tin-1.8.3/README	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/README	2011-04-17 16:04:25.558328227 +0200
@@ -25,7 +25,7 @@ messages and won't be able to post using
 
 Before mailing a bug-report to tin-bugs@tin.org please check if you are
 using the latest (stable) release, and if not, please upgrade first! Have a
-look a the doc/TODO file for known bugs. If you still think you've found a
+look at the doc/TODO file for known bugs. If you still think you've found a
 bug, please use the mail_bugreport function (shift-R) and write in English.
 Please do NOT enclose a core-file in your bugreport until we request it.
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/README.MAC tin-2.0.0/README.MAC
--- tin-1.8.3/README.MAC	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/README.MAC	2011-04-17 16:04:25.586332490 +0200
@@ -1,18 +1,21 @@
-Compiling tin for MacOS X:
+Compiling tin for Mac OS X / Darwin:
 
 First, you either need:
 - the DevTools if you are running Mac OS X 10.2 (Darwin 6.x) or below
 or
-- the Xcode Tools if you are running Mac OS X 10.3 (Darwin 7.x.x)
+- the Xcode Tools if you are running Mac OS X 10.3 (Darwin 7.x.x) or higher
 
 configure needs at least the argument:
 --with-domain-name=<your domain>
 
 Compile tin, install it and run in a ISO-8859-1(5) terminal.
+Note for Mac OS X 10.6 / Darwin 10.0.0 users: you may also set a FQDN with
+`/usr/sbin/scutil --set HostName` if you set the "disable_sender" option to
+ON on /etc/tin/tin.defaults
 
 Here are two other ways to build and install tin:
-- DarwinPorts   <http://darwinports.opendarwin.org/>
-- Fink          <http://fink.sf.net/>
+- MacPorts  <http://www.macports.org/>
+- Fink      <http://fink.sf.net/>
 
 Instead of using the shell-script url_handler.sh you might want to use
 open(1) as URL-handler.
diff -Nurp --exclude='.bzr*' tin-1.8.3/README.VMS tin-2.0.0/README.VMS
--- tin-1.8.3/README.VMS	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/README.VMS	1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-WARNING, this is still a BETA release!
-It is still a work in progress and might not compile on all machines
-
-It has been installed on the following OpenVMS platforms:
-
-1) OpenVMS/Alpha 6.2, DEC C V5.0-003,                  SOCKETSHR_TCP
-2) OpenVMS/Vax   5.3, GCC 2.7.2 (Pat Ranking edition), SOCKETSHR_TCP
-
-Pre-Requisites:
-
-  This Tin version builds currently only against the SOCKETSHR shareable image.
-
-  SOCKETSHR provides a complete BSD compatible socket library.
-  It requires the NETLIB software to interface with the underlying TCP/IP
-  transport. NETLIB provides an interface to all available TCP/IP
-  transports for OpenVMS.
-
-  For building the image either MMS or MMK is required.
-
-  SOCKETSHR is freeware and available from:
-
-    http://alder.cc.kcl.ac.uk/fileserv/zip/socketshr_src_09d-5.zip
-    http://www.ifn.ing.tu-bs.de/ifn/sonst/socketshr.html
-    ftp://ftp2.kcl.ac.uk/zip/socketshr_src_09D-5.zip
-
-  NETLIB is freeware and available from:
-
-    http://alder.cc.kcl.ac.uk/fileserv/zip/netlib022.zip
-    http://www.madgoat.com/netlib.html
-    ftp://ftp2.kcl.ac.uk/zip/netlib022.zip
-
-  MMK is freeware and available from:
-
-    http://www.madgoat.com/mmk.html
-
-Quick Install:
-
-    $set def [.src]
-
-    On ALPHA:
-
-    $mms /macro=(alpha=1)
-
-    or on a VAX
-
-    $mms /macro=(vax=1)
-
-    or on a VAX with GCC
-
-    $mms /macro=(vax=1,gnuc=1)
-
-install with:
-
-    Define tin as a foreign command:
-
-    $tin :== $device:[dir.sub]tin.exe
-
-
-Install at your own risk.
-
-Please do NOT mail any bug-reports concerning THIS version to Iain Lea but
-to tin-bugs@tin.org. Before mailing a bug-report please check if you are
-using the latest release, and if not, please upgrade first! Have a look at
-the TODO file for known bugs. If you still think you found a bug, please use
-tins mail_bugreport function (shift-R) and write in english.
-
-The latest release is available at:
-<ftp://ftp.tin.org/pub/news/clients/tin/current/>
-or it's mirrors.
-
-If you have additional questions or like to be informed about the
-latest new features/version you may subscribe to the (developers)
-tin mailing lists; to subscribe write to majordomo@tin.org, asking
-in the body to: subscribe <listname> and/or read news.software.readers.
diff -Nurp --exclude='.bzr*' tin-1.8.3/README.WIN tin-2.0.0/README.WIN
--- tin-1.8.3/README.WIN	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/README.WIN	2011-04-17 16:04:25.622337969 +0200
@@ -7,7 +7,7 @@ Compile Tin For Windows
      - system
        - Windows NT
 
-     - Cygwin (http://sources.redhat.com/cygwin/)
+     - Cygwin <http://www.cygwin.com/>
        - Cygwin >= 1.1.x
        - ncurses
 
@@ -18,7 +18,7 @@ Compile Tin For Windows
 
      - configure
        - export CC=gcc
-       - ./configure --enable-nntp-only --disable-locale
+       - ./configure --enable-nntp-only
 
      - make
        - cd src
@@ -37,4 +37,4 @@ Compile Tin For Windows
               set HOME=c:\home
               set USER=username
        - tested with
-           1.5.8 release 20010221 "Blue Water"
+           1.9.5 release 20091224 "Lochruan"
diff -Nurp --exclude='.bzr*' tin-1.8.3/aclocal.m4 tin-2.0.0/aclocal.m4
--- tin-1.8.3/aclocal.m4	2006-03-02 12:14:08.000000000 +0100
+++ tin-2.0.0/aclocal.m4	2011-06-08 13:12:02.259683352 +0200
@@ -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   : 2011-06-08
 dnl Notes     :
 dnl
-dnl Copyright (c) 1995-2006 Thomas E. Dickey <dickey@invisible-island.net>
+dnl Copyright (c) 1995-2011 Thomas E. Dickey <dickey@invisible-island.net>
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -61,7 +61,7 @@ AC_DEFUN([AC_ISC_POSIX],
   ]
 )
 dnl ---------------------------------------------------------------------------
-dnl AM_GNU_GETTEXT version: 11 updated: 2004/01/26 20:58:40
+dnl AM_GNU_GETTEXT version: 12 updated: 2010/06/19 07:02:11
 dnl --------------
 dnl Usage: Just like AM_WITH_NLS, which see.
 AC_DEFUN([AM_GNU_GETTEXT],
@@ -122,31 +122,12 @@ strdup strtoul tsearch __argz_count __ar
      fi
    fi
 
-   dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
-   dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
-   dnl Try to locate it.
-   dnl changed mkinstalldirs to mkdirs.sh for Lynx /je spath 1998-Aug-21
-   dnl added check for separate locations of scripts -mirabile 2004-Jan-18
-   MKINSTALLDIRS=
-   if test -n "$ac_aux_dir"; then
-     MKINSTALLDIRS="$ac_aux_dir/mkdirs.sh"
-   fi
-   if test -z "$MKINSTALLDIRS"; then
-     MKINSTALLDIRS="\$(top_srcdir)/mkdirs.sh"
-   fi
-   if test -n "$GNUSYSTEM_AUX_DIR" ; then
-     if test -e "${GNUSYSTEM_AUX_DIR}/mkinstalldirs"; then
-       MKINSTALLDIRS="${GNUSYSTEM_AUX_DIR}/mkinstalldirs"
-     fi
-   fi
-   AC_SUBST(MKINSTALLDIRS)
-
    dnl Enable libtool support if the surrounding package wishes it.
    INTL_LIBTOOL_SUFFIX_PREFIX=ifelse([$1], use-libtool, [l], [])
    AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl AM_ICONV version: 4 updated: 2005/06/20 05:31:53
+dnl AM_ICONV version: 12 updated: 2007/07/30 19:12:03
 dnl --------
 dnl Inserted as requested by gettext 0.10.40
 dnl File from /usr/share/aclocal
@@ -155,6 +136,11 @@ dnl ====================
 dnl serial AM2
 dnl
 dnl From Bruno Haible.
+dnl
+dnl ====================
+dnl Modified to use CF_FIND_LINKAGE and CF_ADD_SEARCHPATH, to broaden the
+dnl range of locations searched.  Retain the same cache-variable naming to
+dnl allow reuse with the other gettext macros -Thomas E Dickey
 AC_DEFUN([AM_ICONV],
 [
   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
@@ -163,41 +149,22 @@ AC_DEFUN([AM_ICONV],
   AC_ARG_WITH([libiconv-prefix],
 [  --with-libiconv-prefix=DIR
                           search for libiconv in DIR/include and DIR/lib], [
-    for dir in `echo "$withval" | tr : ' '`; do
-      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
-      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
-    done
+    CF_ADD_OPTIONAL_PATH($withval, libiconv)
    ])
 
   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-      [iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);],
-      am_cv_func_iconv=yes)
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS -liconv"
-      AC_TRY_LINK([#include <stdlib.h>
-#include <iconv.h>],
-        [iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);],
-        am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes)
-      LIBS="$am_save_LIBS"
-    fi
-  ])
+    CF_FIND_LINKAGE(CF__ICONV_HEAD,
+      CF__ICONV_BODY,
+      iconv,
+      am_cv_func_iconv=yes,
+      am_cv_func_iconv=["no, consider installing GNU libiconv"])])
+
   if test "$am_cv_func_iconv" = yes; then
     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
-    AC_MSG_CHECKING([for iconv declaration])
-    AC_CACHE_VAL(am_cv_proto_iconv, [
-      AC_TRY_COMPILE([
-#include <stdlib.h>
-#include <iconv.h>
+
+    AC_CACHE_CHECK([if the declaration of iconv() needs const.],
+		   am_cv_proto_iconv_const,[
+      AC_TRY_COMPILE(CF__ICONV_HEAD [
 extern
 #ifdef __cplusplus
 "C"
@@ -207,18 +174,28 @@ size_t iconv (iconv_t cd, char * *inbuf,
 #else
 size_t iconv();
 #endif
-], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
-      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
-    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    AC_MSG_RESULT([$]{ac_t:-
-         }[$]am_cv_proto_iconv)
+],[], am_cv_proto_iconv_const=no,
+      am_cv_proto_iconv_const=yes)])
+
+    if test "$am_cv_proto_iconv_const" = yes ; then
+      am_cv_proto_iconv_arg1="const"
+    else
+      am_cv_proto_iconv_arg1=""
+    fi
+
     AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
       [Define as const if the declaration of iconv() needs const.])
   fi
+
   LIBICONV=
-  if test "$am_cv_lib_iconv" = yes; then
-    LIBICONV="-liconv"
+  if test "$cf_cv_find_linkage_iconv" = yes; then
+    CF_ADD_INCDIR($cf_cv_header_path_iconv)
+    if test -n "$cf_cv_library_file_iconv" ; then
+      LIBICONV="-liconv"
+      CF_ADD_LIBDIR($cf_cv_library_path_iconv)
+    fi
   fi
+
   AC_SUBST(LIBICONV)
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -276,7 +253,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: 8 updated: 2009/12/24 04:20:51
 dnl -----------------
 dnl
 dnl check for required multibyte/widechar functions
@@ -296,7 +273,7 @@ AC_DEFUN([AM_MULTIBYTE_ABLE],
 #	include <wctype.h>
 #endif /* HAVE_WCTYPE_H */
 ],
-     [char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
+     [const char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
       char ocb[5];
       wchar_t wcb[5];
       wchar_t wcb2[5];
@@ -307,12 +284,30 @@ AC_DEFUN([AM_MULTIBYTE_ABLE],
       fwide(0, 0);
       mbtowc(wcb, icb, MB_CUR_MAX);
       mbstowcs(wcb, icb, 5);
-      iswprint((wint_t) wcb[0]);
-      wcslen(wcb);
-      /* wcsnlen(wcb, 4); */
+      (void) iswalnum((wint_t) wcb[0]);
+      (void) iswcntrl((wint_t) wcb[0]);
+      (void) iswdigit((wint_t) wcb[0]);
+      (void) iswgraph((wint_t) wcb[0]);
+      (void) iswprint((wint_t) wcb[0]);
+      (void) iswspace((wint_t) wcb[0]);
+      (void) towupper((wint_t) wcb[0]);
+      /* (void) iswupper((wint_t) wcb[0]); */
+      /* (void) towlower((wint_t) wcb[0]); */
+      /* (void) iswlower((wint_t) wcb[0]); */
+      /* (void) iswalpha((wint_t) wcb[0]); */
+      /* (void) iswblank((wint_t) wcb[0]); */
+      /* (void) iswpunct((wint_t) wcb[0]); */
+      /* (void) iswxdigit((wint_t) wcb[0]); */
+      /* (void) iswctype((wint_t) wcb[0], wctype("print")); */
+      /* (void) towctranse((wint_t) wcb[0], wctrans("toupper")); */
+      (void) wcslen(wcb);
+      /* (void) wcsnlen(wcb, 4); */
       wcwidth((wint_t) wcb[0]);
       wcswidth(wcb, 5);
       wcstombs(ocb, wcb, 5);
+      wctomb(ocb, wcb[0]);
+      wcscat(wcb2, wcb);
+      wcscpy(wcb2, wcb);
       mbstowcs(format, "%s", 2);
       swprintf(wcb, 5, format, "test");
       wcsncat(wcb2, wcb, 5);],
@@ -320,7 +315,7 @@ AC_DEFUN([AM_MULTIBYTE_ABLE],
      [cf_save_LIBS="$LIBS"
       LIBS="-lutf8 $LIBS"
       AC_TRY_LINK([#include <libutf8.h>],
-       [char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
+       [const char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
         char ocb[5];
         wchar_t wcb[5];
         wchar_t wcb2[5];
@@ -331,12 +326,30 @@ AC_DEFUN([AM_MULTIBYTE_ABLE],
         fwide(0, 0);
         mbtowc(wcb, icb, MB_CUR_MAX);
         mbstowcs(wcb, icb, 5);
-        iswprint((wint_t) wcb[0]);
-        wcslen(wcb);
-        /* wcsnlen(wcb, 4); */
+        (void) iswalnum((wint_t) wcb[0]);
+        (void) iswcntrl((wint_t) wcb[0]);
+        (void) iswdigit((wint_t) wcb[0]);
+        (void) iswgraph((wint_t) wcb[0]);
+        (void) iswprint((wint_t) wcb[0]);
+        (void) iswspace((wint_t) wcb[0]);
+        (void) towupper((wint_t) wcb[0]);
+        /* (void) iswupper((wint_t) wcb[0]); */
+        /* (void) towlower((wint_t) wcb[0]); */
+        /* (void) iswlower((wint_t) wcb[0]); */
+        /* (void) iswalpha((wint_t) wcb[0]); */
+        /* (void) iswblank((wint_t) wcb[0]); */
+        /* (void) iswpunct((wint_t) wcb[0]); */
+        /* (void) iswxdigit((wint_t) wcb[0]); */
+        /* (void) iswctype((wint_t) wcb[0], wctype("print")); */
+        /* (void) towctranse((wint_t) wcb[0], wctrans("toupper")); */
+        (void) wcslen(wcb);
+        /* (void) wcsnlen(wcb, 4); */
         wcwidth((wint_t) wcb[0]);
         wcswidth(wcb, 5);
         wcstombs(ocb, wcb, 5);
+        wctomb(ocb, wcb[0]);
+        wcscat(wcb2, wcb);
+        wcscpy(wcb2, wcb);
         mbstowcs(format, "%s", 2);
         swprintf(wcb, 5, format, "test");
         wcsncat(wcb2, wcb, 5);],
@@ -355,7 +368,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: 8 updated: 2009/01/11 20:31:12
 dnl ----------------------
 dnl Inserted as requested by gettext 0.10.40
 dnl File from /usr/share/aclocal
@@ -384,16 +397,16 @@ 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.
   ;;
   *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
   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 +427,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: 24 updated: 2010/06/20 09:24:28
 dnl -----------
 dnl Inserted as requested by gettext 0.10.40
 dnl File from /usr/share/aclocal
@@ -422,6 +435,11 @@ dnl gettext.m4
 dnl ====================
 dnl Macro to add for using GNU gettext.
 dnl Ulrich Drepper <drepper@cygnus.com>, 1995.
+dnl ====================
+dnl Modified to use CF_FIND_LINKAGE and CF_ADD_SEARCHPATH, to broaden the
+dnl range of locations searched.  Retain the same cache-variable naming to
+dnl allow reuse with the other gettext macros -Thomas E Dickey
+dnl ====================
 dnl
 dnl This file can be copied and used freely without restrictions.  It can
 dnl be used in projects which are not available under the GNU General Public
@@ -465,211 +483,202 @@ dnl but we keep it in order not to force
 dnl maintainers.
 dnl
 AC_DEFUN([AM_WITH_NLS],
-  [AC_MSG_CHECKING([whether NLS is requested])
-    dnl Default is enabled NLS
-    ifelse([$4],,[
-    AC_ARG_ENABLE(nls,
-      [  --disable-nls           do not use Native Language Support],
-      USE_NLS=$enableval, USE_NLS=yes)],[
-    AC_ARG_ENABLE(nls,
-      [  --enable-nls            use Native Language Support],
-      USE_NLS=$enableval, USE_NLS=no)])
-    AC_MSG_RESULT($USE_NLS)
-    AC_SUBST(USE_NLS)
-
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-    INTLLIBS=
-
-    dnl If we use NLS figure out what method
-    if test "$USE_NLS" = "yes"; then
-      AC_DEFINE(ENABLE_NLS, 1,
-        [Define to 1 if translation of program messages to the user's native language
-   is requested.])
-      AC_MSG_CHECKING([whether included gettext is requested])
-      AC_ARG_WITH(included-gettext,
-        [  --with-included-gettext use the GNU gettext library included here],
-        nls_cv_force_use_gnu_gettext=$withval,
-        nls_cv_force_use_gnu_gettext=no)
-      AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-        dnl User does not insist on using GNU NLS library.  Figure out what
-        dnl to use.  If GNU gettext is available we use this.  Else we have
-        dnl to fall back to GNU NLS library.
-	CATOBJEXT=NONE
-
-        dnl Add a version number to the cache macros.
-        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,
-	    [AC_TRY_LINK([#include <libintl.h>
-extern int _nl_msg_cat_cntr;],
-	       [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
-	       gt_cv_func_gnugettext_libc=yes,
-	       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>
-extern int _nl_msg_cat_cntr;],
-		  [bindtextdomain ("", "");
-return (int) gettext ("")]ifelse([$2], need-ngettext, [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr],
-		  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,
-	   dnl use it.  But if this macro is used in GNU gettext, and GNU
-	   dnl gettext is already preinstalled in libintl, we update this
-	   dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
-	   if test "$gt_cv_func_gnugettext_libc" = "yes" \
-	      || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
-		   && test "$PACKAGE" != gettext; }; then
-	     AC_DEFINE(HAVE_GETTEXT, 1,
-               [Define if the GNU gettext() function is already present or preinstalled.])
-
-	     if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
-	       dnl If iconv() is in a separate libiconv library, then anyone
-	       dnl linking with libintl{.a,.so} also needs to link with
-	       dnl libiconv.
-	       INTLLIBS="-lintl $LIBICONV"
-	     fi
-
-	     gt_save_LIBS="$LIBS"
-	     LIBS="$LIBS $INTLLIBS"
-	     AC_CHECK_FUNCS(dcgettext)
-	     LIBS="$gt_save_LIBS"
-
-	     dnl Search for GNU msgfmt in the PATH.
-	     AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-	       [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
-	     AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-
-	     dnl Search for GNU xgettext in the PATH.
-	     AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-	       [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
+[AC_MSG_CHECKING([whether NLS is requested])
+  dnl Default is enabled NLS
+  ifelse([$4],,[
+  AC_ARG_ENABLE(nls,
+    [  --disable-nls           do not use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=yes)],[
+  AC_ARG_ENABLE(nls,
+    [  --enable-nls            use Native Language Support],
+    USE_NLS=$enableval, USE_NLS=no)])
+  AC_MSG_RESULT($USE_NLS)
+  AC_SUBST(USE_NLS)
+
+  BUILD_INCLUDED_LIBINTL=no
+  USE_INCLUDED_LIBINTL=no
+  INTLLIBS=
+
+  dnl If we use NLS figure out what method
+  if test "$USE_NLS" = "yes"; then
+    AC_DEFINE(ENABLE_NLS, 1,
+      [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+    AC_MSG_CHECKING([whether included gettext is requested])
+    AC_ARG_WITH(included-gettext,
+      [  --with-included-gettext use the GNU gettext library included here],
+      nls_cv_force_use_gnu_gettext=$withval,
+      nls_cv_force_use_gnu_gettext=no)
+    AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+    nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+    if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+      dnl User does not insist on using GNU NLS library.  Figure out what
+      dnl to use.  If GNU gettext is available we use this.  Else we have
+      dnl to fall back to GNU NLS library.
+      CATOBJEXT=NONE
+
+      cf_save_LIBS_1="$LIBS"
+      CF_ADD_LIBS($LIBICONV)
+      AC_CACHE_CHECK([for libintl.h and gettext()], cf_cv_func_gettext,[
+        CF_FIND_LINKAGE(CF__INTL_HEAD,
+        CF__INTL_BODY,
+        intl,
+        cf_cv_func_gettext=yes,
+        cf_cv_func_gettext=no)
+      ])
+      LIBS="$cf_save_LIBS_1"
+
+      if test "$cf_cv_func_gettext" = yes ; then
+        AC_DEFINE(HAVE_LIBINTL_H)
+
+        dnl If an already present or preinstalled GNU gettext() is found,
+        dnl use it.  But if this macro is used in GNU gettext, and GNU
+        dnl gettext is already preinstalled in libintl, we update this
+        dnl libintl.  (Cf. the install rule in intl/Makefile.in.)
+        if test "$PACKAGE" != gettext; then
+          AC_DEFINE(HAVE_GETTEXT, 1,
+              [Define if the GNU gettext() function is already present or preinstalled.])
+
+          CF_ADD_INCDIR($cf_cv_header_path_intl)
+
+          if test -n "$cf_cv_library_file_intl" ; then
+            dnl If iconv() is in a separate libiconv library, then anyone
+            dnl linking with libintl{.a,.so} also needs to link with
+            dnl libiconv.
+            INTLLIBS="$cf_cv_library_file_intl $LIBICONV"
+            CF_ADD_LIBDIR($cf_cv_library_path_intl,INTLLIBS)
+          fi
 
-	     CATOBJEXT=.gmo
-	   fi
-	])
+          gt_save_LIBS="$LIBS"
+          LIBS="$LIBS $INTLLIBS"
+          AC_CHECK_FUNCS(dcgettext)
+          LIBS="$gt_save_LIBS"
+
+          dnl Search for GNU msgfmt in the PATH.
+          AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+              [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
+          AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+          dnl Search for GNU xgettext in the PATH.
+          AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+              [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
 
-        if test "$CATOBJEXT" = "NONE"; then
-	  dnl GNU gettext is not found in the C library.
-	  dnl Fall back on GNU gettext library.
-	  nls_cv_use_gnu_gettext=yes
+          CATOBJEXT=.gmo
         fi
       fi
 
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        if test ! -d $srcdir/intl ; then
-	  AC_MSG_ERROR(no NLS library is packaged with this application)
-	fi
-        dnl Mark actions used to generate GNU NLS library.
-        INTLOBJS="\$(GETTOBJS)"
-        AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
-	  [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
-        AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
-        AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
-	  [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
-        AC_SUBST(MSGFMT)
-	BUILD_INCLUDED_LIBINTL=yes
-	USE_INCLUDED_LIBINTL=yes
-        CATOBJEXT=.gmo
-	INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
-	LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+      if test "$CATOBJEXT" = "NONE"; then
+        dnl GNU gettext is not found in the C library.
+        dnl Fall back on GNU gettext library.
+        nls_cv_use_gnu_gettext=yes
       fi
+    fi
 
-      dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-      dnl Test whether we really found GNU msgfmt.
-      if test "$GMSGFMT" != ":"; then
-	dnl If it is no GNU msgfmt we define it as : so that the
-	dnl Makefiles still can work.
-	if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
-	  : ;
-	else
-	  AC_MSG_RESULT(
-	    [found msgfmt program is not GNU msgfmt; ignore it])
-	  GMSGFMT=":"
-	fi
+    if test "$nls_cv_use_gnu_gettext" = "yes"; then
+      if test ! -d $srcdir/intl ; then
+        AC_MSG_ERROR(no NLS library is packaged with this application)
       fi
+      dnl Mark actions used to generate GNU NLS library.
+      INTLOBJS="\$(GETTOBJS)"
+      AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+          [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1], :)
+      AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+      AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+          [$ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1], :)
+      AC_SUBST(MSGFMT)
+      BUILD_INCLUDED_LIBINTL=yes
+      USE_INCLUDED_LIBINTL=yes
+      CATOBJEXT=.gmo
+      INTLLIBS="ifelse([$3],[],\$(top_builddir)/intl,[$3])/libintl.ifelse([$1], use-libtool, [l], [])a $LIBICONV"
+      LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+    fi
 
-      dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
-      dnl Test whether we really found GNU xgettext.
-      if test "$XGETTEXT" != ":"; then
-	dnl If it is no GNU xgettext we define it as : so that the
-	dnl Makefiles still can work.
-	if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
-	  : ;
-	else
-	  AC_MSG_RESULT(
-	    [found xgettext program is not GNU xgettext; ignore it])
-	  XGETTEXT=":"
-	fi
+    dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+    dnl Test whether we really found GNU msgfmt.
+    if test "$GMSGFMT" != ":"; then
+      dnl If it is no GNU msgfmt we define it as : so that the
+      dnl Makefiles still can work.
+      if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
+        : ;
+      else
+        AC_MSG_RESULT(
+          [found msgfmt program is not GNU msgfmt; ignore it])
+        GMSGFMT=":"
       fi
+    fi
 
-      dnl We need to process the po/ directory.
-      POSUB=po
+    dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+    dnl Test whether we really found GNU xgettext.
+    if test "$XGETTEXT" != ":"; then
+        dnl If it is no GNU xgettext we define it as : so that the
+        dnl Makefiles still can work.
+      if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
+        : ;
+      else
+        AC_MSG_RESULT(
+          [found xgettext program is not GNU xgettext; ignore it])
+        XGETTEXT=":"
+      fi
     fi
 
-    AC_OUTPUT_COMMANDS(
-     [for ac_file in $CONFIG_FILES; do
-        # Support "outfile[:infile[:infile...]]"
-        case "$ac_file" in
-          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-        esac
-        # PO directories have a Makefile.in generated from Makefile.inn.
-        case "$ac_file" in */[Mm]akefile.in)
-          # Adjust a relative srcdir.
-          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-	  ac_base=`basename $ac_file .in`
-          # In autoconf-2.13 it is called $ac_given_srcdir.
-          # In autoconf-2.50 it is called $srcdir.
-          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-          case "$ac_given_srcdir" in
-            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-            /*) top_srcdir="$ac_given_srcdir" ;;
-            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-          esac
-          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-            rm -f "$ac_dir/POTFILES"
-            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-            sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
-            test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base"
-            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base"
-          fi
-          ;;
+    dnl We need to process the po/ directory.
+    POSUB=po
+  fi
+
+  AC_OUTPUT_COMMANDS(
+   [for ac_file in $CONFIG_FILES; do
+
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+
+      # PO directories have a Makefile.in generated from Makefile.inn.
+      case "$ac_file" in */[Mm]akefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        ac_base=`basename $ac_file .in`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
         esac
-      done])
 
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base"
+          sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base"
+        fi
+        ;;
+      esac
+    done])
 
-    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-    dnl to 'yes' because some of the testsuite requires it.
-    if test "$PACKAGE" = gettext; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
+  dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+  dnl to 'yes' because some of the testsuite requires it.
+  if test "$PACKAGE" = gettext; then
+    BUILD_INCLUDED_LIBINTL=yes
+  fi
 
-    dnl intl/plural.c is generated from intl/plural.y. It requires bison,
-    dnl because plural.y uses bison specific features. It requires at least
-    dnl bison-1.26 because earlier versions generate a plural.c that doesn't
-    dnl compile.
-    dnl bison is only needed for the maintainer (who touches plural.y). But in
-    dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
-    dnl the rule in general Makefile. Now, some people carelessly touch the
-    dnl files or have a broken "make" program, hence the plural.c rule will
-    dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
-    dnl present or too old.
-    if test "$nls_cv_use_gnu_gettext" = "yes"; then
+  dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+  dnl because plural.y uses bison specific features. It requires at least
+  dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+  dnl compile.
+  dnl bison is only needed for the maintainer (who touches plural.y). But in
+  dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+  dnl the rule in general Makefile. Now, some people carelessly touch the
+  dnl files or have a broken "make" program, hence the plural.c rule will
+  dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+  dnl present or too old.
+  if test "$nls_cv_use_gnu_gettext" = "yes"; then
     AC_CHECK_PROGS([INTLBISON], [bison])
     if test -z "$INTLBISON"; then
       ac_verc_fail=yes
@@ -685,50 +694,50 @@ changequote([,])dnl
            ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
         *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
       esac
-      AC_MSG_RESULT([$ac_prog_version])
+    AC_MSG_RESULT([$ac_prog_version])
     fi
     if test $ac_verc_fail = yes; then
       INTLBISON=:
     fi
-    fi
+  fi
 
-    dnl These rules are solely for the distribution goal.  While doing this
-    dnl we only have to keep exactly one list of the available catalogs
-    dnl in configure.in.
-    for lang in $ALL_LINGUAS; do
-      GMOFILES="$GMOFILES $lang.gmo"
-      POFILES="$POFILES $lang.po"
-    done
+  dnl These rules are solely for the distribution goal.  While doing this
+  dnl we only have to keep exactly one list of the available catalogs
+  dnl in configure.in.
+  for lang in $ALL_LINGUAS; do
+    GMOFILES="$GMOFILES $lang.gmo"
+    POFILES="$POFILES $lang.po"
+  done
 
-    dnl Make all variables we use known to autoconf.
-    AC_SUBST(BUILD_INCLUDED_LIBINTL)
-    AC_SUBST(USE_INCLUDED_LIBINTL)
-    AC_SUBST(CATALOGS)
-    AC_SUBST(CATOBJEXT)
-    AC_SUBST(GMOFILES)
-    AC_SUBST(INTLLIBS)
-    AC_SUBST(INTLOBJS)
-    AC_SUBST(POFILES)
-    AC_SUBST(POSUB)
-
-    dnl For backward compatibility. Some configure.ins may be using this.
-    nls_cv_header_intl=
-    nls_cv_header_libgt=
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    DATADIRNAME=share
-    AC_SUBST(DATADIRNAME)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    INSTOBJEXT=.mo
-    AC_SUBST(INSTOBJEXT)
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    GENCAT=gencat
-    AC_SUBST(GENCAT)
-  ])dnl
+  dnl Make all variables we use known to autoconf.
+  AC_SUBST(BUILD_INCLUDED_LIBINTL)
+  AC_SUBST(USE_INCLUDED_LIBINTL)
+  AC_SUBST(CATALOGS)
+  AC_SUBST(CATOBJEXT)
+  AC_SUBST(GMOFILES)
+  AC_SUBST(INTLLIBS)
+  AC_SUBST(INTLOBJS)
+  AC_SUBST(POFILES)
+  AC_SUBST(POSUB)
+
+  dnl For backward compatibility. Some configure.ins may be using this.
+  nls_cv_header_intl=
+  nls_cv_header_libgt=
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  DATADIRNAME=share
+  AC_SUBST(DATADIRNAME)
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  INSTOBJEXT=.mo
+  AC_SUBST(INSTOBJEXT)
+
+  dnl For backward compatibility. Some Makefiles may be using this.
+  GENCAT=gencat
+  AC_SUBST(GENCAT)
+])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
+dnl CF_ADD_CFLAGS version: 10 updated: 2010/05/26 05:38:42
 dnl -------------
 dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
 dnl The second parameter if given makes this macro verbose.
@@ -754,8 +763,8 @@ no)
 			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
+				&& 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"
@@ -770,6 +779,12 @@ no)
 		*$cf_add_cflags) #(vi
 			;;
 		*) #(vi
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,$cf_tst_cppflags)
+				;;
+			esac
 			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
 			;;
 		esac
@@ -785,24 +800,24 @@ yes)
 	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
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
 	;;
 esac
 done
 
 if test -n "$cf_new_cflags" ; then
-	ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
+	ifelse([$2],,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
 	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
 if test -n "$cf_new_cppflags" ; then
-	ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	ifelse([$2],,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
-	ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
+	ifelse([$2],,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
@@ -810,51 +825,206 @@ AC_SUBST(EXTRA_CPPFLAGS)
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ADD_INCDIR version: 4 updated: 2002/12/21 14:25:52
+dnl CF_ADD_INCDIR version: 13 updated: 2010/05/26 16:44:57
 dnl -------------
 dnl Add an include-directory to $CPPFLAGS.  Don't add /usr/include, since it's
 dnl redundant.  We don't normally need to add -I/usr/local/include for gcc,
 dnl but old versions (and some misinstalled ones) need that.  To make things
-dnl worse, gcc 3.x gives error messages if -I/usr/local/include is added to
+dnl worse, gcc 3.x may give error messages if -I/usr/local/include is added to
 dnl the include-path).
 AC_DEFUN([CF_ADD_INCDIR],
 [
-for cf_add_incdir in $1
-do
-	while true
+if test -n "$1" ; then
+  for cf_add_incdir in $1
+  do
+	while test $cf_add_incdir != /usr/include
 	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
 			if test "$GCC" = yes
 			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				AC_TRY_COMPILE([#include <stdio.h>],
-						[printf("Hello")],
-						[],
-						[CPPFLAGS="$cf_save_CPPFLAGS"])
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  AC_TRY_COMPILE([#include <stdio.h>],
+				  [printf("Hello")],
+				  [],
+				  [cf_have_incdir=yes])
+			  CPPFLAGS=$cf_save_CPPFLAGS
 			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  CF_VERBOSE(adding $cf_add_incdir to include-path)
+		  ifelse([$2],,CPPFLAGS,[$2])="$ifelse([$2],,CPPFLAGS,[$2]) -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
 	done
+  done
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_LIB version: 2 updated: 2010/06/02 05:03:05
+dnl ----------
+dnl Add a library, used to enforce consistency.
+dnl
+dnl $1 = library to add, without the "-l"
+dnl $2 = variable to update (default $LIBS)
+AC_DEFUN([CF_ADD_LIB],[CF_ADD_LIBS(-l$1,ifelse($2,,LIBS,[$2]))])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_LIBDIR version: 9 updated: 2010/05/26 16:44:57
+dnl -------------
+dnl	Adds to the library-path
+dnl
+dnl	Some machines have trouble with multiple -L options.
+dnl
+dnl $1 is the (list of) directory(s) to add
+dnl $2 is the optional name of the variable to update (default LDFLAGS)
+dnl
+AC_DEFUN([CF_ADD_LIBDIR],
+[
+if test -n "$1" ; then
+  for cf_add_libdir in $1
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        CF_VERBOSE(adding $cf_add_libdir to library-path)
+        ifelse([$2],,LDFLAGS,[$2])="-L$cf_add_libdir $ifelse([$2],,LDFLAGS,[$2])"
+      fi
+    fi
+  done
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_LIBS version: 1 updated: 2010/06/02 05:03:05
+dnl -----------
+dnl Add one or more libraries, used to enforce consistency.
+dnl
+dnl $1 = libraries to add, with the "-l", etc.
+dnl $2 = variable to update (default $LIBS)
+AC_DEFUN([CF_ADD_LIBS],[ifelse($2,,LIBS,[$2])="$1 [$]ifelse($2,,LIBS,[$2])"])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_LIB_AFTER version: 2 updated: 2010/11/08 20:33:46
+dnl ----------------
+dnl Add a given library after another, e.g., following the one it satisfies a
+dnl dependency for.
+dnl
+dnl $1 = the first library
+dnl $2 = its dependency
+AC_DEFUN([CF_ADD_LIB_AFTER],[
+CF_VERBOSE(...before $LIBS)
+LIBS=`echo "$LIBS" | sed -e "s/[[ 	]][[ 	]]*/ /g" -e "s,$1 ,$1 $2 ," -e 's/  / /g'`
+CF_VERBOSE(...after  $LIBS)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_OPTIONAL_PATH version: 1 updated: 2007/07/29 12:33:33
+dnl --------------------
+dnl Add an optional search-path to the compile/link variables.
+dnl See CF_WITH_PATH
+dnl
+dnl $1 = shell variable containing the result of --with-XXX=[DIR]
+dnl $2 = module to look for.
+AC_DEFUN([CF_ADD_OPTIONAL_PATH],[
+  case "$1" in #(vi
+  no) #(vi
+      ;;
+  yes) #(vi
+      ;;
+  *)
+      CF_ADD_SEARCHPATH([$1], [AC_MSG_ERROR(cannot find $2 under $1)])
+      ;;
+  esac
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_SEARCHPATH version: 5 updated: 2009/01/11 20:40:21
+dnl -----------------
+dnl Set $CPPFLAGS and $LDFLAGS with the directories given via the parameter.
+dnl They can be either the common root of include- and lib-directories, or the
+dnl lib-directory (to allow for things like lib64 directories).
+dnl See also CF_FIND_LINKAGE.
+dnl
+dnl $1 is the list of colon-separated directory names to search.
+dnl $2 is the action to take if a parameter does not yield a directory.
+AC_DEFUN([CF_ADD_SEARCHPATH],
+[
+AC_REQUIRE([CF_PATHSEP])
+for cf_searchpath in `echo "$1" | tr $PATH_SEPARATOR ' '`; do
+	if test -d $cf_searchpath/include; then
+		CF_ADD_INCDIR($cf_searchpath/include)
+	elif test -d $cf_searchpath/../include ; then
+		CF_ADD_INCDIR($cf_searchpath/../include)
+	ifelse([$2],,,[else
+$2])
+	fi
+	if test -d $cf_searchpath/lib; then
+		CF_ADD_LIBDIR($cf_searchpath/lib)
+	elif test -d $cf_searchpath ; then
+		CF_ADD_LIBDIR($cf_searchpath)
+	ifelse([$2],,,[else
+$2])
+	fi
 done
+])
+dnl ---------------------------------------------------------------------------
+dnl CF_ADD_SUBDIR_PATH version: 3 updated: 2010/07/03 20:58:12
+dnl ------------------
+dnl Append to a search-list for a nonstandard header/lib-file
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
+dnl	$3 = the subdirectory, e.g., bin, include or lib
+dnl $4 = the directory under which we will test for subdirectories
+dnl $5 = a directory that we do not want $4 to match
+AC_DEFUN([CF_ADD_SUBDIR_PATH],
+[
+test "$4" != "$5" && \
+test -d "$4" && \
+ifelse([$5],NONE,,[(test $5 = NONE || test "$4" != "$5") &&]) {
+	test -n "$verbose" && echo "	... testing for $3-directories under $4"
+	test -d $4/$3 &&          $1="[$]$1 $4/$3"
+	test -d $4/$3/$2 &&       $1="[$]$1 $4/$3/$2"
+	test -d $4/$3/$2/$3 &&    $1="[$]$1 $4/$3/$2/$3"
+	test -d $4/$2/$3 &&       $1="[$]$1 $4/$2/$3"
+	test -d $4/$2/$3/$2 &&    $1="[$]$1 $4/$2/$3/$2"
+}
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
+dnl CF_ANSI_CC_CHECK version: 10 updated: 2010/10/23 15:52:32
 dnl ----------------
 dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
 dnl in the sharutils 4.2 distribution.
 AC_DEFUN([CF_ANSI_CC_CHECK],
 [
-AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
+AC_CACHE_CHECK(for ${CC:-cc} option to accept ANSI C, cf_cv_ansi_cc,[
 cf_cv_ansi_cc=no
 cf_save_CFLAGS="$CFLAGS"
 cf_save_CPPFLAGS="$CPPFLAGS"
@@ -900,7 +1070,7 @@ fi
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
+dnl CF_ANSI_CC_REQD version: 4 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl For programs that must use an ANSI compiler, obtain compiler options that
 dnl will make it recognize prototypes.  We'll do preprocessor checks in other
@@ -909,7 +1079,7 @@ dnl the preprocessor.
 AC_DEFUN([CF_ANSI_CC_REQD],
 [AC_REQUIRE([CF_ANSI_CC_CHECK])
 if test "$cf_cv_ansi_cc" = "no"; then
-	AC_ERROR(
+	AC_MSG_ERROR(
 [Your compiler does not appear to recognize prototypes.
 You have the following choices:
 	a. adjust your compiler options
@@ -930,7 +1100,7 @@ dnl Allow user to enable a normally-off 
 AC_DEFUN([CF_ARG_ENABLE],
 [CF_ARG_OPTION($1,[$2],[$3],[$4],no)])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ARG_OPTION version: 3 updated: 1997/10/18 14:42:41
+dnl CF_ARG_OPTION version: 4 updated: 2010/05/26 05:38:42
 dnl -------------
 dnl Restricted form of AC_ARG_ENABLE that ensures user doesn't give bogus
 dnl values.
@@ -942,18 +1112,18 @@ dnl $3 = action to perform if option is 
 dnl $4 = action if perform if option is default
 dnl $5 = default option value (either 'yes' or 'no')
 AC_DEFUN([CF_ARG_OPTION],
-[AC_ARG_ENABLE($1,[$2],[test "$enableval" != ifelse($5,no,yes,no) && enableval=ifelse($5,no,no,yes)
+[AC_ARG_ENABLE([$1],[$2],[test "$enableval" != ifelse([$5],no,yes,no) && enableval=ifelse([$5],no,no,yes)
   if test "$enableval" != "$5" ; then
-ifelse($3,,[    :]dnl
-,[    $3]) ifelse($4,,,[
+ifelse([$3],,[    :]dnl
+,[    $3]) ifelse([$4],,,[
   else
     $4])
-  fi],[enableval=$5 ifelse($4,,,[
+  fi],[enableval=$5 ifelse([$4],,,[
   $4
 ])dnl
   ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_ARG_WITH version: 3 updated: 2000/07/20 00:41:18
+dnl CF_ARG_WITH version: 4 updated: 2008/03/23 14:48:54
 dnl -----------
 dnl Restricted form of AC_ARG_WITH that requires user to specify a value
 dnl $1 = option name
@@ -969,7 +1139,7 @@ ifelse($4,,[test -n "$withval" && \
 ])dnl
 case "$withval" in #(vi
 yes)
-  AC_ERROR(expected a value for --with-$1)
+  AC_MSG_ERROR(expected a value for --with-$1)
   ;; #(vi
 no) withval=""
   ;;
@@ -977,7 +1147,60 @@ esac
 $3="$withval"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_BUILD_CC version: 5 updated: 2005/09/24 17:55:52
+dnl CF_AR_FLAGS version: 5 updated: 2010/05/20 20:24:29
+dnl -----------
+dnl Check for suitable "ar" (archiver) options for updating an archive.
+AC_DEFUN([CF_AR_FLAGS],[
+AC_REQUIRE([CF_PROG_AR])
+
+AC_CACHE_CHECK(for options to update archives, cf_cv_ar_flags,[
+	cf_cv_ar_flags=unknown
+	for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
+	do
+
+		# check if $ARFLAGS already contains this choice
+		if test "x$ARFLAGS" != "x" ; then
+			cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
+			if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
+				cf_cv_ar_flags=
+				break
+			fi
+		fi
+
+		rm -f conftest.$ac_cv_objext
+		rm -f conftest.a
+
+		cat >conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int	testdata[[3]] = { 123, 456, 789 };
+EOF
+		if AC_TRY_EVAL(ac_compile) ; then
+			echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&AC_FD_CC
+			$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&AC_FD_CC 1>/dev/null
+			if test -f conftest.a ; then
+				cf_cv_ar_flags=$cf_ar_flags
+				break
+			fi
+		else
+			CF_VERBOSE(cannot compile test-program)
+			break
+		fi
+	done
+	rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+])
+
+if test -n "$ARFLAGS" ; then
+	if test -n "$cf_cv_ar_flags" ; then
+		ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
+	fi
+else
+	ARFLAGS=$cf_cv_ar_flags
+fi
+
+AC_SUBST(ARFLAGS)
+])
+dnl ---------------------------------------------------------------------------
+dnl CF_BUILD_CC version: 6 updated: 2006/10/14 15:23:15
 dnl -----------
 dnl If we're cross-compiling, allow the user to override the tools and their
 dnl options.  The configure script is oriented toward identifying the host
@@ -1009,7 +1232,7 @@ if test "$cross_compiling" = yes ; then
 	AC_ARG_WITH(build-cpp,
 		[  --with-build-cpp=XXX    the build C preprocessor ($BUILD_CPP)],
 		[BUILD_CPP="$withval"],
-		[BUILD_CPP='$(BUILD_CC) -E'])
+		[BUILD_CPP='${BUILD_CC} -E'])
 	AC_MSG_RESULT($BUILD_CPP)
 
 	AC_MSG_CHECKING(for native build C flags)
@@ -1032,7 +1255,7 @@ if test "$cross_compiling" = yes ; then
 
 	AC_MSG_CHECKING(for native build linker-libraries)
 	AC_ARG_WITH(build-libs,
-		[  --with-build-libs=XXX   the build libraries ($(BUILD_LIBS)],
+		[  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})],
 		[BUILD_LIBS="$withval"])
 	AC_MSG_RESULT($BUILD_LIBS)
 
@@ -1040,20 +1263,20 @@ if test "$cross_compiling" = yes ; then
 	BUILD_EXEEXT=
 	BUILD_OBJEXT=o
 
-	: ${BUILD_CC:='$(CC)'}
+	: ${BUILD_CC:='${CC}'}
 
-	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '$(CC)' ) ; then
+	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
 		AC_MSG_ERROR([Cross-build requires two compilers.
 Use --with-build-cc to specify the native compiler.])
 	fi
 
 else
-	: ${BUILD_CC:='$(CC)'}
-	: ${BUILD_CPP:='$(CPP)'}
-	: ${BUILD_CFLAGS:='$(CFLAGS)'}
-	: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
-	: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
-	: ${BUILD_LIBS:='$(LIBS)'}
+	: ${BUILD_CC:='${CC}'}
+	: ${BUILD_CPP:='${CPP}'}
+	: ${BUILD_CFLAGS:='${CFLAGS}'}
+	: ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
+	: ${BUILD_LDFLAGS:='${LDFLAGS}'}
+	: ${BUILD_LIBS:='${LIBS}'}
 	: ${BUILD_EXEEXT:='$x'}
 	: ${BUILD_OBJEXT:='o'}
 fi
@@ -1068,7 +1291,7 @@ AC_SUBST(BUILD_EXEEXT)
 AC_SUBST(BUILD_OBJEXT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_BUNDLED_INTL version: 12 updated: 2005/06/21 18:24:28
+dnl CF_BUNDLED_INTL version: 16 updated: 2010/10/23 15:55:05
 dnl ---------------
 dnl Top-level macro for configuring an application with a bundled copy of
 dnl the intl and po directories for gettext.
@@ -1077,15 +1300,20 @@ dnl $1 specifies either Makefile or make
 dnl $2 if nonempty sets the option to --enable-nls rather than to --disable-nls
 dnl
 dnl Sets variables which can be used to substitute in makefiles:
+dnl	GT_YES       - "#" comment unless building intl library, otherwise empty
+dnl	GT_NO        - "#" comment if building intl library, otherwise empty
 dnl	INTLDIR_MAKE - to make ./intl directory
 dnl	MSG_DIR_MAKE - to make ./po directory
 dnl	SUB_MAKEFILE - list of makefiles in ./intl, ./po directories
-dnl Defines
+dnl
+dnl Defines:
 dnl	HAVE_LIBGETTEXT_H if we're using ./intl
+dnl	NLS_TEXTDOMAIN
 dnl
 dnl Environment:
 dnl	ALL_LINGUAS if set, lists the root names of the ".po" files.
 dnl	CONFIG_H assumed to be "config.h"
+dnl	PACKAGE must be set, used as default for textdomain
 dnl	VERSION may be set, otherwise extract from "VERSION" file.
 dnl
 AC_DEFUN([CF_BUNDLED_INTL],[
@@ -1097,9 +1325,13 @@ dnl rather than $LC_ALL
 test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d $srcdir/po && cd $srcdir/po && echo *.po|sed -e 's/\.po//g' -e 's/*//'`
 
 # Allow override of "config.h" definition:
-: ${CONFIG_H=config.h}
+: ${CONFIG_H:=config.h}
 AC_SUBST(CONFIG_H)
 
+if test -z "$PACKAGE" ; then
+	AC_MSG_ERROR([[CF_BUNDLED_INTL] used without setting [PACKAGE] variable])
+fi
+
 if test -z "$VERSION" ; then
 if test -f $srcdir/VERSION ; then
 	VERSION=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
@@ -1111,6 +1343,15 @@ AC_SUBST(VERSION)
 
 AM_GNU_GETTEXT(,,,[$2])
 
+if test "$USE_NLS" = yes ; then
+	AC_ARG_WITH(textdomain,
+		[  --with-textdomain=PKG   NLS text-domain (default is package name)],
+		[NLS_TEXTDOMAIN=$withval],
+		[NLS_TEXTDOMAIN=$PACKAGE])
+	AC_DEFINE_UNQUOTED(NLS_TEXTDOMAIN,"$NLS_TEXTDOMAIN")
+	AC_SUBST(NLS_TEXTDOMAIN)
+fi
+
 INTLDIR_MAKE=
 MSG_DIR_MAKE=
 SUB_MAKEFILE=
@@ -1146,7 +1387,7 @@ else
 fi
 
 if test -z "$INTLDIR_MAKE" ; then
-	CPPFLAGS="-I../intl $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS -I../intl"
 fi
 
 dnl FIXME:  we use this in lynx (the alternative is a spurious dependency upon
@@ -1180,7 +1421,7 @@ if test "$USE_INCLUDED_LIBINTL" = yes ; 
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_BUNDLED_PCRE version: 3 updated: 2002/04/17 21:09:56
+dnl CF_BUNDLED_PCRE version: 4 updated: 2009/12/24 04:20:51
 dnl ---------------
 dnl Top-level macro for configuring an application with a bundled copy of
 dnl the pcre library.
@@ -1195,7 +1436,7 @@ PCREDIR_CPPFLAGS=
 case .$cf_pcre_home in #(vi
 .no) #(vi
 	# setup to compile the bundled PCRE:
-	. $srcdir/pcre/version.sh
+#	. $srcdir/pcre/version.sh
 	AC_SUBST(PCRE_MAJOR)
 	AC_SUBST(PCRE_MINOR)
 	AC_SUBST(PCRE_DATE)
@@ -1259,7 +1500,7 @@ AC_MSG_RESULT($cf_result)
 test $cf_result = yes && AC_DEFINE_UNQUOTED(DECL_$2)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
+dnl CF_CHECK_CACHE version: 11 updated: 2008/03/23 14:45:59
 dnl --------------
 dnl Check if we're accidentally using a cache from a different machine.
 dnl Derive the system name, as a check for reusing the autoconf cache.
@@ -1290,7 +1531,7 @@ test -n "$cf_cv_system_name" && AC_MSG_R
 
 if test ".$system_name" != ".$cf_cv_system_name" ; then
 	AC_MSG_RESULT(Cached system name ($system_name) does not agree with actual ($cf_cv_system_name))
-	AC_ERROR("Please remove config.cache and try again.")
+	AC_MSG_ERROR("Please remove config.cache and try again.")
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -1326,13 +1567,14 @@ CF_CHECK_1_DECL(${ac_func}, ${ac_tr_func
 done
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_ERRNO version: 9 updated: 2001/12/30 18:03:23
+dnl CF_CHECK_ERRNO version: 11 updated: 2010/05/26 05:38:42
 dnl --------------
 dnl Check for data that is usually declared in <stdio.h> or <errno.h>, e.g.,
 dnl the 'errno' variable.  Define a DECL_xxx symbol if we must declare it
 dnl ourselves.
 dnl
 dnl $1 = the name to check
+dnl $2 = the assumed type
 AC_DEFUN([CF_CHECK_ERRNO],
 [
 AC_CACHE_CHECK(if external $1 is declared, cf_cv_dcl_$1,[
@@ -1343,7 +1585,7 @@ AC_CACHE_CHECK(if external $1 is declare
 #include <stdio.h>
 #include <sys/types.h>
 #include <errno.h> ],
-    [long x = (long) $1],
+    ifelse([$2],,int,[$2]) x = (ifelse([$2],,int,[$2])) $1,
     [cf_cv_dcl_$1=yes],
     [cf_cv_dcl_$1=no])
 ])
@@ -1354,7 +1596,7 @@ if test "$cf_cv_dcl_$1" = no ; then
 fi
 
 # It's possible (for near-UNIX clones) that the data doesn't exist
-CF_CHECK_EXTERN_DATA($1,int)
+CF_CHECK_EXTERN_DATA($1,ifelse([$2],,int,[$2]))
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_CHECK_EXTERN_DATA version: 3 updated: 2001/12/30 18:03:23
@@ -1445,7 +1687,7 @@ AC_MSG_RESULT($cf_cv_nested_params)
 test $cf_cv_nested_params = yes && AC_DEFINE(HAVE_NESTED_PARAMS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_COLOR_CURSES version: 6 updated: 2002/10/27 18:21:42
+dnl CF_COLOR_CURSES version: 7 updated: 2010/10/23 15:54:49
 dnl ---------------
 dnl Check if curses supports color.  (Note that while SVr3 curses supports
 dnl color, it does this differently from SVr4 curses; more work would be needed
@@ -1456,7 +1698,7 @@ AC_DEFUN([CF_COLOR_CURSES],
 AC_MSG_CHECKING(if curses supports color attributes)
 AC_CACHE_VAL(cf_cv_color_curses,[
 	AC_TRY_LINK([
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 ],
 	[chtype x = COLOR_BLUE;
 	 has_colors();
@@ -1501,7 +1743,7 @@ else
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_COREFILE version: 2 updated: 1997/08/28 23:57:55
+dnl CF_COREFILE version: 4 updated: 2010/10/23 15:52:32
 dnl -----------
 dnl Check if the application can dump core (for debugging).
 AC_DEFUN([CF_COREFILE],
@@ -1526,13 +1768,13 @@ int main()
 /* Nicholas d'Alterio (nagd@ic.ac.uk) reports that the check for ability to
  * core dump causes the machine to crash - reason unknown (gcc 2.7.2)
  */
-	exit(1);
+	${cf_cv_main_return:-return}(1);
 #else
 	int	pid, status;
 	if (found())
 		unlink("core");
 	if (found())
-		exit(1);
+		${cf_cv_main_return:-return}(1);
 	if ((pid = fork()) != 0) {
 		while (wait(&status) <= 0)
 			;
@@ -1541,9 +1783,9 @@ int main()
 	}
 	if (found()) {
 		unlink("core");
-		exit(0);
+		${cf_cv_main_return:-return}(0);
 	}
-	exit(1);
+	${cf_cv_main_return:-return}(1);
 #endif
 }],
 	[cf_cv_corefile=yes],
@@ -1587,7 +1829,19 @@ 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_CONFIG version: 2 updated: 2006/10/29 11:06:27
+dnl ----------------
+dnl Tie together the configure-script macros for curses.  It may be ncurses,
+dnl but unless asked, we do not make a special search for ncurses.  However,
+dnl still check for the ncurses version number, for use in other macros.
+AC_DEFUN([CF_CURSES_CONFIG],
+[
+CF_CURSES_CPPFLAGS
+CF_NCURSES_VERSION
+CF_CURSES_LIBS
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CURSES_CPPFLAGS version: 11 updated: 2011/04/09 14:51:08
 dnl ------------------
 dnl Look for the curses headers.
 AC_DEFUN([CF_CURSES_CPPFLAGS],[
@@ -1595,26 +1849,43 @@ 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
-	test -d /usr/include/curses_colr && \
-	cf_cv_curses_incdir="-I/usr/include/curses_colr"
+hpux10.*) #(vi
+	if test "x$cf_cv_screen" = "xcurses_colr"
+	then
+		test -d /usr/include/curses_colr && \
+		cf_cv_curses_incdir="-I/usr/include/curses_colr"
+	fi
 	;;
 sunos3*|sunos4*)
-	test -d /usr/5lib && \
-	test -d /usr/5include && \
-	cf_cv_curses_incdir="-I/usr/5include"
+	if test "x$cf_cv_screen" = "xcurses_5lib"
+	then
+		test -d /usr/5lib && \
+		test -d /usr/5include && \
+		cf_cv_curses_incdir="-I/usr/5include"
+	fi
 	;;
 esac
 ])
-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
+test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
 
+CF_CURSES_HEADER
+CF_TERM_HEADER
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CURSES_HEADER version: 2 updated: 2010/04/28 06:02:16
+dnl ----------------
+dnl Find a "curses" header file, e.g,. "curses.h", or one of the more common
+dnl variations of ncurses' installs.
+dnl
+dnl $1 = ncurses when looking for ncurses, or is empty
+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 \
-	curses.h \
+for cf_header in ifelse($1,,,[ \
+	$1/ncurses.h \
+	$1/curses.h]) \
 	ncurses.h \
-	ncurses/curses.h \
-	ncurses/ncurses.h
+	curses.h ifelse($1,,[ncurses/ncurses.h ncurses/curses.h])
 do
 AC_TRY_COMPILE([#include <${cf_header}>],
 	[initscr(); tgoto("?", 0,0)],
@@ -1628,10 +1899,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: 34 updated: 2011/04/09 14:51:08
 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.
@@ -1639,93 +1909,117 @@ AC_DEFUN([CF_CURSES_LIBS],[
 
 AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
 AC_MSG_CHECKING(if we have identified curses libraries)
-AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-	[initscr(); tgoto("?", 0,0)],
-	cf_result=yes,
-	cf_result=no)
+AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+    [initscr(); tgoto("?", 0,0)],
+    cf_result=yes,
+    cf_result=no)
 AC_MSG_RESULT($cf_result)
 
 if test "$cf_result" = no ; then
 case $host_os in #(vi
 freebsd*) #(vi
-	AC_CHECK_LIB(mytinfo,tgoto,[LIBS="-lmytinfo $LIBS"])
-	;;
-hpux10.*|hpux11.*) #(vi
-	AC_CHECK_LIB(cur_colr,initscr,[
-		LIBS="-lcur_colr $LIBS"
-		ac_cv_func_initscr=yes
-		],[
-	AC_CHECK_LIB(Hcurses,initscr,[
-		# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-		LIBS="-lHcurses $LIBS"
-		CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
-		ac_cv_func_initscr=yes
-		])])
-	;;
-linux*) # Suse Linux does not follow /usr/lib convention
-	LIBS="$LIBS -L/lib"
-	;;
+    AC_CHECK_LIB(mytinfo,tgoto,[CF_ADD_LIBS(-lmytinfo)])
+    ;;
+hpux10.*) #(vi
+	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
+	# next (1998), and xcurses "newer" (2000).  There is no header file for
+	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
+	# term.h) for cur_colr
+	if test "x$cf_cv_screen" = "xcurses_colr"
+	then
+		AC_CHECK_LIB(cur_colr,initscr,[
+			CF_ADD_LIBS(-lcur_colr)
+			ac_cv_func_initscr=yes
+			],[
+		AC_CHECK_LIB(Hcurses,initscr,[
+			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+			CF_ADD_LIBS(-lHcurses)
+			CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
+			ac_cv_func_initscr=yes
+			])])
+	fi
+    ;;
+linux*)
+	case `arch 2>/dev/null` in
+	x86_64)
+		if test -d /lib64
+		then
+			CF_ADD_LIBDIR(/lib64)
+		else
+			CF_ADD_LIBDIR(/lib)
+		fi
+		;;
+	*)
+		CF_ADD_LIBDIR(/lib)
+		;;
+	esac
+    ;;
 sunos3*|sunos4*)
-	test -d /usr/5lib && \
-	LIBS="$LIBS -L/usr/5lib -lcurses -ltermcap"
-	ac_cv_func_initscr=yes
-	;;
+	if test "x$cf_cv_screen" = "xcurses_5lib"
+	then
+		if test -d /usr/5lib ; then
+			CF_ADD_LIBDIR(/usr/5lib)
+			CF_ADD_LIBS(-lcurses -ltermcap)
+		fi
+    fi
+    ac_cv_func_initscr=yes
+    ;;
 esac
 
 if test ".$ac_cv_func_initscr" != .yes ; then
-	cf_save_LIBS="$LIBS"
-	cf_term_lib=""
-	cf_curs_lib=""
-
-	if test ".${cf_cv_ncurses_version-no}" != .no
-	then
-		cf_check_list="ncurses curses cursesX"
-	else
-		cf_check_list="cursesX curses ncurses"
-	fi
+    cf_save_LIBS="$LIBS"
+    cf_term_lib=""
+    cf_curs_lib=""
+
+    if test ".${cf_cv_ncurses_version:-no}" != .no
+    then
+        cf_check_list="ncurses curses cursesX"
+    else
+        cf_check_list="cursesX curses ncurses"
+    fi
 
-	# Check for library containing tgoto.  Do this before curses library
-	# because it may be needed to link the test-case for initscr.
-	AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
-		for cf_term_lib in $cf_check_list termcap termlib unknown
-		do
-			AC_CHECK_LIB($cf_term_lib,tgoto,[break])
-		done
-	])
+    # Check for library containing tgoto.  Do this before curses library
+    # because it may be needed to link the test-case for initscr.
+    AC_CHECK_FUNC(tgoto,[cf_term_lib=predefined],[
+        for cf_term_lib in $cf_check_list termcap termlib unknown
+        do
+            AC_CHECK_LIB($cf_term_lib,tgoto,[break])
+        done
+    ])
 
-	# Check for library containing initscr
-	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-	for cf_curs_lib in $cf_check_list xcurses jcurses unknown
-	do
-		AC_CHECK_LIB($cf_curs_lib,initscr,[break])
-	done
-	test $cf_curs_lib = unknown && AC_ERROR(no curses library found)
+    # Check for library containing initscr
+    test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
+ 	for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
+    do
+        AC_CHECK_LIB($cf_curs_lib,initscr,[break])
+    done
+    test $cf_curs_lib = unknown && AC_MSG_ERROR(no curses library found)
 
-	LIBS="-l$cf_curs_lib $cf_save_LIBS"
-	if test "$cf_term_lib" = unknown ; then
-		AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
-		AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-			[initscr()],
-			[cf_result=yes],
-			[cf_result=no])
-		AC_MSG_RESULT($cf_result)
-		test $cf_result = no && AC_ERROR(Cannot link curses library)
-	elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-		:
-	elif test "$cf_term_lib" != predefined ; then
-		AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
-		AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-			[initscr(); tgoto((char *)0, 0, 0);],
-			[cf_result=no],
-			[
-			LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-			AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
-				[initscr()],
-				[cf_result=yes],
-				[cf_result=error])
-			])
-		AC_MSG_RESULT($cf_result)
-	fi
+    LIBS="-l$cf_curs_lib $cf_save_LIBS"
+    if test "$cf_term_lib" = unknown ; then
+        AC_MSG_CHECKING(if we can link with $cf_curs_lib library)
+        AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+            [initscr()],
+            [cf_result=yes],
+            [cf_result=no])
+        AC_MSG_RESULT($cf_result)
+        test $cf_result = no && AC_MSG_ERROR(Cannot link curses library)
+    elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+        :
+    elif test "$cf_term_lib" != predefined ; then
+        AC_MSG_CHECKING(if we need both $cf_curs_lib and $cf_term_lib libraries)
+        AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+            [initscr(); tgoto((char *)0, 0, 0);],
+            [cf_result=no],
+            [
+            LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+            AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
+                [initscr()],
+                [cf_result=yes],
+                [cf_result=error])
+            ])
+        AC_MSG_RESULT($cf_result)
+    fi
 fi
 fi
 
@@ -1815,7 +2109,7 @@ esac
 
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_TERM_H version: 6 updated: 2003/11/06 19:59:57
+dnl CF_CURSES_TERM_H version: 9 updated: 2011/04/09 18:19:55
 dnl ----------------
 dnl SVr4 curses should have term.h as well (where it puts the definitions of
 dnl the low-level interface).  This may not be true in old/broken implementations,
@@ -1823,30 +2117,60 @@ dnl as well as in misconfigured systems 
 dnl running with Solaris 2.5.1).
 AC_DEFUN([CF_CURSES_TERM_H],
 [
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
+
 AC_CACHE_CHECK(for term.h, cf_cv_term_header,[
 
-AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
 # If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
 # for <term.h> if we do not find the variant.
-for cf_header in \
-	`echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \
-	term.h
+
+cf_header_list="term.h ncurses/term.h ncursesw/term.h"
+
+case ${cf_cv_ncurses_header:-curses.h} in #(vi
+*/*)
+	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
+	cf_header_list="$cf_header_item $cf_header_list"
+	;;
+esac
+
+for cf_header in $cf_header_list
 do
 	AC_TRY_COMPILE([
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 #include <${cf_header}>],
 	[WINDOW *x],
 	[cf_cv_term_header=$cf_header
 	 break],
 	[cf_cv_term_header=no])
 done
+
+case $cf_cv_term_header in #(vi
+no)
+	# If curses is ncurses, some packagers still mess it up by trying to make
+	# us use GNU termcap.  This handles the most common case.
+	for cf_header in ncurses/term.h ncursesw/term.h
+	do
+		AC_TRY_COMPILE([
+#include <${cf_cv_ncurses_header:-curses.h}>
+#ifdef NCURSES_VERSION
+#include <${cf_header}>
+#else
+make an error
+#endif],
+			[WINDOW *x],
+			[cf_cv_term_header=$cf_header
+			 break],
+			[cf_cv_term_header=no])
+	done
+	;;
+esac
 ])
 
 case $cf_cv_term_header in #(vi
 term.h) #(vi
 	AC_DEFINE(HAVE_TERM_H)
 	;;
-ncurses/term.h)
+ncurses/term.h) #(vi
 	AC_DEFINE(HAVE_NCURSES_TERM_H)
 	;;
 ncursesw/term.h)
@@ -1955,7 +2279,7 @@ dnl ----------
 dnl "dirname" is not portable, so we fake it with a shell script.
 AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_DISABLE_ECHO version: 10 updated: 2003/04/17 22:27:11
+dnl CF_DISABLE_ECHO version: 11 updated: 2009/12/13 13:16:57
 dnl ---------------
 dnl You can always use "make -n" to see the actual options, but it's hard to
 dnl pick out/analyze warning messages when the compile-line is long.
@@ -1974,14 +2298,14 @@ CF_ARG_DISABLE(echo,
 	[
     ECHO_LT='--silent'
     ECHO_LD='@echo linking [$]@;'
-    RULE_CC='	@echo compiling [$]<'
-    SHOW_CC='	@echo compiling [$]@'
+    RULE_CC='@echo compiling [$]<'
+    SHOW_CC='@echo compiling [$]@'
     ECHO_CC='@'
 ],[
     ECHO_LT=''
     ECHO_LD=''
-    RULE_CC='# compiling'
-    SHOW_CC='# compiling'
+    RULE_CC=''
+    SHOW_CC=''
     ECHO_CC=''
 ])
 AC_MSG_RESULT($enableval)
@@ -2000,7 +2324,39 @@ AC_DEFUN([CF_ERRNO],
 CF_CHECK_ERRNO(errno)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FIND_IPV6_LIBS version: 6 updated: 2002/11/09 09:05:18
+dnl CF_FIND_HEADER version: 2 updated: 2007/07/29 11:32: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_INCDIR($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: 7 updated: 2007/07/29 13:35:20
 dnl -----------------
 dnl Based on the IPV6 stack type, look for the corresponding library.
 AC_DEFUN([CF_FIND_IPV6_LIBS],[
@@ -2056,7 +2412,7 @@ if test "$cf_ipv6lib" != "none"; then
 		cf_header=$cf_incdir/netinet/ip6.h
 		if test -f $cf_header
 		then
-			CPPFLAGS="$CPPFLAGS -I$cf_incdir"
+			CF_ADD_INCDIR($cf_incdir)
 			test -n "$verbose" && echo "	... found $cf_header" 1>&AC_FD_MSG
 			break
 		fi
@@ -2161,7 +2517,7 @@ done
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FIND_LIBRARY version: 8 updated: 2004/11/23 20:14:58
+dnl CF_FIND_LIBRARY version: 9 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl Look for a non-standard library, given parameters for AC_TRY_LINK.  We
 dnl prefer a standard location, and use -L options only if we do not find the
@@ -2206,30 +2562,160 @@ AC_DEFUN([CF_FIND_LIBRARY],
 eval 'cf_found_library=[$]cf_cv_have_lib_'$1
 ifelse($6,,[
 if test $cf_found_library = no ; then
-	AC_ERROR(Cannot link $1 library)
+	AC_MSG_ERROR(Cannot link $1 library)
 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
-dnl usable in quoted strings.  Fix them.
-dnl	$1=fixed($2)
-AC_DEFUN([CF_FIX_SLASHES],
-[
-case $cf_cv_system_name in #(vi
-os2*|cygwin*)
-	$1=`echo "[$]$1" | sed -e 's%\\\\%/%g'`
-	;;
-esac
-])dnl
-dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_ALLOCA version: 1 updated: 2005/06/29 04:28:43
-dnl --------------
-dnl workaround for bison 1.875c (compound breakage in Linux stdlib.h and
-dnl bison's output make bison try to use alloca()).
-AC_DEFUN([CF_FUNC_ALLOCA],
+dnl CF_FIND_LINKAGE version: 19 updated: 2010/05/29 16:31:02
+dnl ---------------
+dnl Find a library (specifically the linkage used in the code fragment),
+dnl searching for it if it is not already in the library path.
+dnl See also CF_ADD_SEARCHPATH.
+dnl
+dnl Parameters (4-on are optional):
+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 (default: update CPPFLAGS, etc)
+dnl     $5 = action to perform if not successful
+dnl     $6 = module name, if not the same as the library name
+dnl     $7 = extra libraries
+dnl
+dnl Sets these variables:
+dnl     $cf_cv_find_linkage_$3 - yes/no according to whether linkage is found
+dnl     $cf_cv_header_path_$3 - include-directory if needed
+dnl     $cf_cv_library_path_$3 - library-directory if needed
+dnl     $cf_cv_library_file_$3 - library-file if needed, e.g., -l$3
+AC_DEFUN([CF_FIND_LINKAGE],[
+
+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+# will be set on completion of the AC_TRY_LINK below.
+cf_cv_header_path_$3=
+cf_cv_library_path_$3=
+
+CF_MSG_LOG([Starting [FIND_LINKAGE]($3,$6)])
+
+cf_save_LIBS="$LIBS"
+
+AC_TRY_LINK([$1],[$2],[
+	cf_cv_find_linkage_$3=yes
+	cf_cv_header_path_$3=/usr/include
+	cf_cv_library_path_$3=/usr/lib
+],[
+
+LIBS="-l$3 $7 $cf_save_LIBS"
+
+AC_TRY_LINK([$1],[$2],[
+	cf_cv_find_linkage_$3=yes
+	cf_cv_header_path_$3=/usr/include
+	cf_cv_library_path_$3=/usr/lib
+	cf_cv_library_file_$3="-l$3"
+],[
+	cf_cv_find_linkage_$3=no
+	LIBS="$cf_save_LIBS"
+
+    CF_VERBOSE(find linkage for $3 library)
+    CF_MSG_LOG([Searching for headers in [FIND_LINKAGE]($3,$6)])
+
+    cf_save_CPPFLAGS="$CPPFLAGS"
+    cf_test_CPPFLAGS="$CPPFLAGS"
+
+    CF_HEADER_PATH(cf_search,ifelse([$6],,[$3],[$6]))
+    for cf_cv_header_path_$3 in $cf_search
+    do
+      if test -d $cf_cv_header_path_$3 ; then
+        CF_VERBOSE(... testing $cf_cv_header_path_$3)
+        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_$3"
+        AC_TRY_COMPILE([$1],[$2],[
+            CF_VERBOSE(... found $3 headers in $cf_cv_header_path_$3)
+            cf_cv_find_linkage_$3=maybe
+            cf_test_CPPFLAGS="$CPPFLAGS"
+            break],[
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            ])
+      fi
+    done
+
+    if test "$cf_cv_find_linkage_$3" = maybe ; then
+
+      CF_MSG_LOG([Searching for $3 library in [FIND_LINKAGE]($3,$6)])
+
+      cf_save_LIBS="$LIBS"
+      cf_save_LDFLAGS="$LDFLAGS"
+
+      ifelse([$6],,,[
+        CPPFLAGS="$cf_test_CPPFLAGS"
+        LIBS="-l$3 $7 $cf_save_LIBS"
+        AC_TRY_LINK([$1],[$2],[
+            CF_VERBOSE(... found $3 library in system)
+            cf_cv_find_linkage_$3=yes])
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            LIBS="$cf_save_LIBS"
+            ])
+
+      if test "$cf_cv_find_linkage_$3" != yes ; then
+        CF_LIBRARY_PATH(cf_search,$3)
+        for cf_cv_library_path_$3 in $cf_search
+        do
+          if test -d $cf_cv_library_path_$3 ; then
+            CF_VERBOSE(... testing $cf_cv_library_path_$3)
+            CPPFLAGS="$cf_test_CPPFLAGS"
+            LIBS="-l$3 $7 $cf_save_LIBS"
+            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_$3"
+            AC_TRY_LINK([$1],[$2],[
+                CF_VERBOSE(... found $3 library in $cf_cv_library_path_$3)
+                cf_cv_find_linkage_$3=yes
+                cf_cv_library_file_$3="-l$3"
+                break],[
+                CPPFLAGS="$cf_save_CPPFLAGS"
+                LIBS="$cf_save_LIBS"
+                LDFLAGS="$cf_save_LDFLAGS"
+                ])
+          fi
+        done
+        CPPFLAGS="$cf_save_CPPFLAGS"
+        LDFLAGS="$cf_save_LDFLAGS"
+      fi
+
+    else
+      cf_cv_find_linkage_$3=no
+    fi
+    ],$7)
+])
+
+LIBS="$cf_save_LIBS"
+
+if test "$cf_cv_find_linkage_$3" = yes ; then
+ifelse([$4],,[
+	CF_ADD_INCDIR($cf_cv_header_path_$3)
+	CF_ADD_LIBDIR($cf_cv_library_path_$3)
+	CF_ADD_LIB($3)
+],[$4])
+else
+ifelse([$5],,AC_MSG_WARN(Cannot find $3 library),[$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
+dnl usable in quoted strings.  Fix them.
+dnl	$1=fixed($2)
+AC_DEFUN([CF_FIX_SLASHES],
+[
+case $cf_cv_system_name in #(vi
+os2*|cygwin*)
+	$1=`echo "[$]$1" | sed -e 's%\\\\%/%g'`
+	;;
+esac
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_ALLOCA version: 2 updated: 2009/01/06 19:35:17
+dnl --------------
+dnl workaround for bison 1.875c (compound breakage in Linux stdlib.h and
+dnl bison's output make bison try to use alloca()).
+AC_DEFUN([CF_FUNC_ALLOCA],
 [
 AC_FUNC_ALLOCA
 
@@ -2238,17 +2724,17 @@ linux*|gnu*)
 	# workaround for bison 1.875c (compound breakage in Linux stdlib.h
 	# and bison's output make bison try to use alloca()).
 	if test -z "$GCC" ; then
-		CPPFLAGS="-DYYSTACK_USE_ALLOCA=0 $CPPFLAGS"
+		CPPFLAGS="$CPPFLAGS -DYYSTACK_USE_ALLOCA=0"
 		ALLOCA=""
 	elif test "$INTEL_COMPILER" = yes ; then
-		CPPFLAGS="-DYYSTACK_USE_ALLOCA=0 $CPPFLAGS"
+		CPPFLAGS="$CPPFLAGS -DYYSTACK_USE_ALLOCA=0"
 		ALLOCA=""
 	fi
 	;;
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_FORK version: 2 updated: 1997/08/28 23:57:55
+dnl CF_FUNC_FORK version: 4 updated: 2010/10/23 15:52:32
 dnl ------------
 dnl Check if 'fork()' is available, and working.  Amiga (and possibly other
 dnl machines) have a non-working 'fork()' entrypoint.
@@ -2259,8 +2745,8 @@ AC_TRY_RUN([
 int main()
 {
 	if (fork() < 0)
-		exit(1);
-	exit(0);
+		${cf_cv_main_return:-return}(1);
+	${cf_cv_main_return:-return}(0);
 }],	[cf_cv_func_fork=yes],
 	[cf_cv_func_fork=no],
 	[cf_cv_func_fork=unknown])
@@ -2269,7 +2755,7 @@ AC_MSG_RESULT($cf_cv_func_fork)
 test $cf_cv_func_fork = yes && AC_DEFINE(HAVE_FORK)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_GETADDRINFO version: 5 updated: 2000/09/28 06:18:08
+dnl CF_FUNC_GETADDRINFO version: 7 updated: 2010/10/23 15:52:32
 dnl -------------------
 dnl Look for a working version of getaddrinfo(), for IPV6 support.
 AC_DEFUN([CF_FUNC_GETADDRINFO],[
@@ -2342,12 +2828,12 @@ int main()
 
    if (aitop)
      freeaddrinfo(aitop);
-   exit(0);
+   ${cf_cv_main_return:-return}(0);
 
   bad:
    if (aitop)
      freeaddrinfo(aitop);
-   exit(1);
+   ${cf_cv_main_return:-return}(1);
 }
 ],
 [cf_cv_getaddrinfo=yes],
@@ -2360,7 +2846,7 @@ if test "$cf_cv_getaddrinfo" = yes ; the
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52
+dnl CF_FUNC_MEMMOVE version: 7 updated: 2006/12/16 12:33:30
 dnl ---------------
 dnl Check for memmove, or a bcopy that can handle overlapping copy.  If neither
 dnl is found, add our own version of memmove to the list of objects.
@@ -2376,7 +2862,7 @@ int main() {
 	bcopy(data, temp, sizeof(data));
 	bcopy(temp+10, temp, 15);
 	bcopy(temp+5, temp+15, 10);
-	exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
+	${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
 }
 		],
 		[cf_cv_good_bcopy=yes],
@@ -2391,7 +2877,7 @@ int main() {
 	fi
 ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_FUNC_SYSTEM version: 3 updated: 1997/10/22 22:02:10
+dnl CF_FUNC_SYSTEM version: 5 updated: 2010/10/23 15:52:32
 dnl --------------
 dnl Check if the 'system()' function returns a usable status, or if not, try
 dnl to use the status returned by a SIGCHLD.
@@ -2417,7 +2903,7 @@ RETSIGTYPE signal_handler (int sig)
 	int system_status;
 	wait (&wait_status);
 	system_status = WEXITSTATUS(wait_status); /* should be nonzero */
-	exit(system_status != 23);
+	${cf_cv_main_return:-return}(system_status != 23);
 }
 
 int main()
@@ -2427,12 +2913,12 @@ int main()
 	 */
 	signal (SIGCHLD, signal_handler);
 	system("exit 23");
-	exit(1);
+	${cf_cv_main_return:-return}(1);
 }
 ],
 	[cf_cv_system_status=no],
 	[AC_TRY_RUN(
-	[int main() { exit(system("exit 23") != (23 << 8)); }],
+	[int main() { ${cf_cv_main_return:-return}(system("exit 23") != (23 << 8)); }],
 	[cf_cv_system_status=yes],
 	[cf_cv_system_status=unknown],
 	[cf_cv_system_status=unknown])],
@@ -2442,7 +2928,7 @@ AC_MSG_RESULT($cf_cv_system_status)
 test $cf_cv_system_status = no && AC_DEFINE(USE_SYSTEM_STATUS)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
+dnl CF_GCC_VERSION version: 5 updated: 2010/04/24 11:02:31
 dnl --------------
 dnl Find version of gcc
 AC_DEFUN([CF_GCC_VERSION],[
@@ -2450,13 +2936,13 @@ AC_REQUIRE([AC_PROG_CC])
 GCC_VERSION=none
 if test "$GCC" = yes ; then
 	AC_MSG_CHECKING(version of $CC)
-	GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+	GCC_VERSION="`${CC} --version 2>/dev/null | sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
 	test -z "$GCC_VERSION" && GCC_VERSION=unknown
 	AC_MSG_RESULT($GCC_VERSION)
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
+dnl CF_GCC_WARNINGS version: 27 updated: 2010/10/23 15:52:32
 dnl ---------------
 dnl Check if the compiler supports useful warning options.  There's a few that
 dnl we don't use, simply because they're too noisy:
@@ -2481,7 +2967,7 @@ AC_REQUIRE([CF_GCC_VERSION])
 CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
 
 cat > conftest.$ac_ext <<EOF
-#line __oline__ "configure"
+#line __oline__ "${as_me:-configure}"
 int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
 EOF
 
@@ -2489,7 +2975,6 @@ if test "$INTEL_COMPILER" = yes
 then
 # The "-wdXXX" options suppress warnings:
 # remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
 # remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
 # remark #193: zero used for undefined preprocessing identifier
@@ -2497,19 +2982,18 @@ then
 # remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
 # remark #869: parameter "tw" was never referenced
 # remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
+# warning #279: controlling expression is constant
 
 	AC_CHECKING([for $CC warning options])
 	cf_save_CFLAGS="$CFLAGS"
 	EXTRA_CFLAGS="-Wall"
-	for cf_opt in $1 \
+	for cf_opt in \
 		wd1419 \
-		wd1682 \
 		wd1683 \
 		wd1684 \
 		wd193 \
-		wd279 \
 		wd593 \
+		wd279 \
 		wd810 \
 		wd869 \
 		wd981
@@ -2526,10 +3010,10 @@ elif test "$GCC" = yes
 then
 	AC_CHECKING([for $CC warning options])
 	cf_save_CFLAGS="$CFLAGS"
-	EXTRA_CFLAGS="-W -Wall"
+	EXTRA_CFLAGS=
 	cf_warn_CONST=""
 	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
-	for cf_opt in \
+	for cf_opt in W Wall \
 		Wbad-function-cast \
 		Wcast-align \
 		Wcast-qual \
@@ -2551,7 +3035,7 @@ then
 				;;
 			Winline) #(vi
 				case $GCC_VERSION in
-				3.3*)
+				[[34]].*)
 					CF_VERBOSE(feature is broken in gcc $GCC_VERSION)
 					continue;;
 				esac
@@ -2562,7 +3046,7 @@ then
 	done
 	CFLAGS="$cf_save_CFLAGS"
 fi
-rm -f conftest*
+rm -rf conftest*
 
 AC_SUBST(EXTRA_CFLAGS)
 ])dnl
@@ -2597,11 +3081,35 @@ make an error
 test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
+dnl CF_HEADER_PATH version: 12 updated: 2010/05/05 05:22:40
 dnl --------------
-dnl Construct a search-list for a nonstandard header-file
+dnl Construct a search-list of directories for a nonstandard header-file
+dnl
+dnl Parameters
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
 AC_DEFUN([CF_HEADER_PATH],
-[CF_SUBDIR_PATH($1,$2,include)
+[
+$1=
+
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			CF_ADD_SUBDIR_PATH($1,$2,include,$cf_header_path,NONE)
+			cf_header_path_list="$cf_header_path_list [$]$1"
+			;;
+		esac
+	done
+fi
+
+# add the variations for the package we are looking for
+CF_SUBDIR_PATH($1,$2,include)
+
 test "$includedir" != NONE && \
 test "$includedir" != "/usr/include" && \
 test -d "$includedir" && {
@@ -2616,9 +3124,10 @@ test -d "$oldincludedir" && {
 	test -d $oldincludedir/$2 && $1="[$]$1 $oldincludedir/$2"
 }
 
+$1="[$]$1 $cf_header_path_list"
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
+dnl CF_INTEL_COMPILER version: 4 updated: 2010/05/26 05:38:42
 dnl -----------------
 dnl Check if the given compiler is really the Intel compiler for Linux.  It
 dnl tries to imitate gcc, but does not return an error when it finds a mismatch
@@ -2632,45 +3141,70 @@ dnl $1 = GCC (default) or GXX
 dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
 dnl $3 = CFLAGS (default) or CXXFLAGS
 AC_DEFUN([CF_INTEL_COMPILER],[
-ifelse($2,,INTEL_COMPILER,[$2])=no
+ifelse([$2],,INTEL_COMPILER,[$2])=no
 
-if test "$ifelse($1,,[$1],GCC)" = yes ; then
+if test "$ifelse([$1],,[$1],GCC)" = yes ; then
 	case $host_os in
 	linux*|gnu*)
-		AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
-		cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
-		ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
+		AC_MSG_CHECKING(if this is really Intel ifelse([$1],GXX,C++,C) compiler)
+		cf_save_CFLAGS="$ifelse([$3],,CFLAGS,[$3])"
+		ifelse([$3],,CFLAGS,[$3])="$ifelse([$3],,CFLAGS,[$3]) -no-gcc"
 		AC_TRY_COMPILE([],[
 #ifdef __INTEL_COMPILER
 #else
 make an error
 #endif
-],[ifelse($2,,INTEL_COMPILER,[$2])=yes
+],[ifelse([$2],,INTEL_COMPILER,[$2])=yes
 cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
 ],[])
-		ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
-		AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
+		ifelse([$3],,CFLAGS,[$3])="$cf_save_CFLAGS"
+		AC_MSG_RESULT($ifelse([$2],,INTEL_COMPILER,[$2]))
 		;;
 	esac
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
+dnl CF_LIBRARY_PATH version: 9 updated: 2010/03/28 12:52:50
 dnl ---------------
-dnl Construct a search-list for a nonstandard library-file
+dnl Construct a search-list of directories for a nonstandard library-file
+dnl
+dnl Parameters
+dnl	$1 = the variable to return as result
+dnl	$2 = the package name
 AC_DEFUN([CF_LIBRARY_PATH],
-[CF_SUBDIR_PATH($1,$2,lib)])dnl
+[
+$1=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			CF_ADD_SUBDIR_PATH($1,$2,lib,$cf_library_path,NONE)
+			cf_library_path_list="$cf_library_path_list [$]$1"
+			;;
+		esac
+	done
+fi
+
+CF_SUBDIR_PATH($1,$2,lib)
+
+$1="$cf_library_path_list [$]$1"
+])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_LIB_PREFIX version: 7 updated: 2001/01/12 01:23:48
+dnl CF_LIB_PREFIX version: 8 updated: 2008/09/13 11:34:16
 dnl -------------
 dnl Compute the library-prefix for the given host system
 dnl $1 = variable to set
 AC_DEFUN([CF_LIB_PREFIX],
 [
-	case $cf_cv_system_name in
-	OS/2*)	LIB_PREFIX=''     ;;
-	os2*)	LIB_PREFIX=''     ;;
-	*)	LIB_PREFIX='lib'  ;;
+	case $cf_cv_system_name in #(vi
+	OS/2*|os2*) #(vi
+        LIB_PREFIX=''
+        ;;
+	*)	LIB_PREFIX='lib'
+        ;;
 	esac
 ifelse($1,,,[$1=$LIB_PREFIX])
 	AC_SUBST(LIB_PREFIX)
@@ -2761,27 +3295,27 @@ done
 ])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MAKEFLAGS version: 9 updated: 2001/12/30 18:17:27
+dnl CF_MAKEFLAGS version: 14 updated: 2011/03/31 19:29:46
 dnl ------------
-dnl Some 'make' programs support $(MAKEFLAGS), some $(MFLAGS), to pass 'make'
+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.
 dnl (GNU 'make' does both, something POSIX 'make', which happens to make the
-dnl $(MAKEFLAGS) variable incompatible because it adds the assignments :-)
+dnl ${MAKEFLAGS} variable incompatible because it adds the assignments :-)
 AC_DEFUN([CF_MAKEFLAGS],
 [
 AC_CACHE_CHECK(for makeflags variable, cf_cv_makeflags,[
 	cf_cv_makeflags=''
-	for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
+	for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
 	do
 		cat >cf_makeflags.tmp <<CF_EOF
 SHELL = /bin/sh
 all :
 	@ echo '.$cf_option'
 CF_EOF
-		cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
+		cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[[ 	]]*$,,'`
 		case "$cf_result" in
 		.*k)
-			cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
+			cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
 			case "$cf_result" in
 			.*CC=*)	cf_cv_makeflags=
 				;;
@@ -2790,7 +3324,8 @@ CF_EOF
 			esac
 			break
 			;;
-		*)	echo no match "$cf_result"
+		.-)	;;
+		*)	echo "given option \"$cf_option\", no match \"$cf_result\""
 			;;
 		esac
 	done
@@ -2800,15 +3335,15 @@ CF_EOF
 AC_SUBST(cf_cv_makeflags)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl CF_MSG_LOG version: 5 updated: 2010/10/23 15:52:32
 dnl ----------
 dnl Write a debug message to config.log, along with the line number in the
 dnl configure script.
 AC_DEFUN([CF_MSG_LOG],[
-echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+echo "${as_me:-configure}:__oline__: testing $* ..." 1>&AC_FD_CC
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_BROKEN version: 6 updated: 1998/04/27 20:32:34
+dnl CF_NCURSES_BROKEN version: 7 updated: 2010/10/23 15:54:49
 dnl -----------------
 dnl Check for pre-1.9.9g ncurses (among other problems, the most obvious is
 dnl that color combinations don't work).
@@ -2819,7 +3354,7 @@ if test "$cf_cv_ncurses_version" != no ;
 AC_MSG_CHECKING(for obsolete/broken version of ncurses)
 AC_CACHE_VAL(cf_cv_ncurses_broken,[
 AC_TRY_COMPILE([
-#include <${cf_cv_ncurses_header-curses.h}>],[
+#include <${cf_cv_ncurses_header:-curses.h}>],[
 #if defined(NCURSES_VERSION) && defined(wgetbkgd)
 	make an error
 #else
@@ -2837,7 +3372,7 @@ fi
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CC_CHECK version: 3 updated: 2003/01/12 18:59:28
+dnl CF_NCURSES_CC_CHECK version: 4 updated: 2007/07/29 10:39:05
 dnl -------------------
 dnl Check if we can compile with ncurses' header file
 dnl $1 is the cache variable to set
@@ -2866,11 +3401,51 @@ printf("old\n");
 #endif
 #endif
 	]
-	,[$1=$cf_header]
+	,[$1=$2]
 	,[$1=no])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CPPFLAGS version: 17 updated: 2003/11/06 19:59:57
+dnl CF_NCURSES_CONFIG version: 8 updated: 2010/07/08 05:17:30
+dnl -----------------
+dnl Tie together the configure-script macros for ncurses.
+dnl Prefer the "-config" script from ncurses 6.x, to simplify analysis.
+dnl Allow that to be overridden using the $NCURSES_CONFIG environment variable.
+dnl
+dnl $1 is the root library name (default: "ncurses")
+AC_DEFUN([CF_NCURSES_CONFIG],
+[
+cf_ncuconfig_root=ifelse($1,,ncurses,$1)
+
+echo "Looking for ${cf_ncuconfig_root}-config"
+AC_PATH_PROGS(NCURSES_CONFIG,${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config,none)
+
+if test "$NCURSES_CONFIG" != none ; then
+
+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+CF_ADD_LIBS(`$NCURSES_CONFIG --libs`)
+
+# even with config script, some packages use no-override for curses.h
+CF_CURSES_HEADER(ifelse($1,,ncurses,$1))
+
+dnl like CF_NCURSES_CPPFLAGS
+AC_DEFINE(NCURSES)
+
+dnl like CF_NCURSES_LIBS
+CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncuconfig_root)
+AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
+
+dnl like CF_NCURSES_VERSION
+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+
+else
+
+CF_NCURSES_CPPFLAGS(ifelse($1,,ncurses,$1))
+CF_NCURSES_LIBS(ifelse($1,,ncurses,$1))
+
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_NCURSES_CPPFLAGS version: 20 updated: 2010/11/20 17:02:38
 dnl -------------------
 dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
 dnl the CPPFLAGS variable so we can include its header.
@@ -2898,8 +3473,9 @@ AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
 cf_ncuhdr_root=ifelse($1,,ncurses,$1)
 
 test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && \
-CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+test "$cf_cv_curses_dir" != "no" && { \
+  CF_ADD_INCDIR($cf_cv_curses_dir/include/$cf_ncuhdr_root)
+}
 
 AC_CACHE_CHECK(for $cf_ncuhdr_root header in include-path, cf_cv_ncurses_h,[
 	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
@@ -2911,9 +3487,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: 2 updated: 2008/03/23 14:48:54
+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)
@@ -2937,7 +3531,7 @@ AC_CACHE_CHECK(for $cf_ncuhdr_root inclu
 		CPPFLAGS="$cf_save2_CPPFLAGS"
 		test "$cf_cv_ncurses_h2" != no && break
 	done
-	test "$cf_cv_ncurses_h2" = no && AC_ERROR(not found)
+	test "$cf_cv_ncurses_h2" = no && AC_MSG_ERROR(not found)
 	])
 
 	CF_DIRNAME(cf_1st_incdir,$cf_cv_ncurses_h2)
@@ -2949,7 +3543,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)
@@ -2966,10 +3560,9 @@ 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
+dnl CF_NCURSES_LIBS version: 16 updated: 2010/11/20 17:02:38
 dnl ---------------
 dnl Look for the ncurses library.  This is a little complicated on Linux,
 dnl because it may be linked with the gpm (general purpose mouse) library.
@@ -3005,14 +3598,14 @@ freebsd*)
 	;;
 esac
 
-LIBS="$cf_ncurses_LIBS $LIBS"
+CF_ADD_LIBS($cf_ncurses_LIBS)
 
 if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
 then
-	LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
+	CF_ADD_LIBS(-l$cf_nculib_root)
 else
 	CF_FIND_LIBRARY($cf_nculib_root,$cf_nculib_root,
-		[#include <${cf_cv_ncurses_header-curses.h}>],
+		[#include <${cf_cv_ncurses_header:-curses.h}>],
 		[initscr()],
 		initscr)
 fi
@@ -3026,7 +3619,7 @@ if test -n "$cf_ncurses_LIBS" ; then
 			LIBS="$q"
 		fi
 	done
-	AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
+	AC_TRY_LINK([#include <${cf_cv_ncurses_header:-curses.h}>],
 		[initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);],
 		[AC_MSG_RESULT(yes)],
 		[AC_MSG_RESULT(no)
@@ -3037,7 +3630,7 @@ CF_UPPER(cf_nculib_ROOT,HAVE_LIB$cf_ncul
 AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 11 updated: 2003/11/06 19:59:57
+dnl CF_NCURSES_VERSION version: 13 updated: 2010/10/23 15:54:49
 dnl ------------------
 dnl Check for the version of ncurses, to aid in reporting bugs, etc.
 dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS.  We don't use
@@ -3050,7 +3643,7 @@ AC_CACHE_CHECK(for ncurses version, cf_c
 	cf_tempfile=out$$
 	rm -f $cf_tempfile
 	AC_TRY_RUN([
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 #include <stdio.h>
 int main()
 {
@@ -3068,14 +3661,14 @@ int main()
 	make an error
 # endif
 #endif
-	exit(0);
+	${cf_cv_main_return:-return}(0);
 }],[
 	cf_cv_ncurses_version=`cat $cf_tempfile`],,[
 
 	# This will not work if the preprocessor splits the line after the
 	# Autoconf token.  The 'unproto' program does that.
 	cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 #undef Autoconf
 #ifdef NCURSES_VERSION
 Autoconf NCURSES_VERSION
@@ -3099,7 +3692,7 @@ EOF
 test "$cf_cv_ncurses_version" = no || AC_DEFINE(NCURSES)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_NETLIBS version: 4 updated: 1999/12/23 15:20:39
+dnl CF_NETLIBS version: 7 updated: 2010/06/20 09:24:28
 dnl ----------
 dnl After checking for functions in the default $LIBS, make a further check
 dnl for the functions that are netlib-related (these aren't always in the
@@ -3110,38 +3703,116 @@ dnl	-lresolv -lsocket -lnsl
 dnl	-lnsl -lsocket
 dnl	-lsocket
 dnl	-lbsd
+dnl	-lnetwork
 AC_DEFUN([CF_NETLIBS],[
 cf_test_netlibs=no
+
 AC_MSG_CHECKING(for network libraries)
+
 AC_CACHE_VAL(cf_cv_netlibs,[
 AC_MSG_RESULT(working...)
+
 cf_cv_netlibs=""
 cf_test_netlibs=yes
-AC_CHECK_FUNCS(gethostname,,[
-	CF_RECHECK_FUNC(gethostname,nsl,cf_cv_netlibs,[
-		CF_RECHECK_FUNC(gethostname,socket,cf_cv_netlibs)])])
-#
-# FIXME:  sequent needs this library (i.e., -lsocket -linet -lnsl), but
-# I don't know the entrypoints - 97/7/22 TD
-# AC_HAVE_LIBRARY(inet,cf_cv_netlibs="-linet $cf_cv_netlibs")
-AC_CHECK_LIB(inet, main, cf_cv_netlibs="-linet $cf_cv_netlibs")
-#
-if test "$ac_cv_func_lsocket" != no ; then
-AC_CHECK_FUNCS(socket,,[
-	CF_RECHECK_FUNC(socket,socket,cf_cv_netlibs,[
-		CF_RECHECK_FUNC(socket,bsd,cf_cv_netlibs)])])
-fi
-#
-AC_CHECK_FUNCS(gethostbyname,,[
-	CF_RECHECK_FUNC(gethostbyname,nsl,cf_cv_netlibs)])
-#
-AC_CHECK_FUNCS(strcasecmp,,[
-	CF_RECHECK_FUNC(strcasecmp,resolv,cf_cv_netlibs)])
+
+case $host_os in #(vi
+mingw32) # (vi
+	AC_CHECK_HEADERS( windows.h winsock.h winsock2.h )
+
+	if test "$ac_cv_header_winsock2_h" = "yes" ; then
+		cf_winsock_lib="-lws2_32"
+	elif test "$ac_cv_header_winsock_h" = "yes" ; then
+		cf_winsock_lib="-lwsock32"
+	fi
+
+	cf_save_LIBS="$LIBS"
+	CF_ADD_LIBS($cf_winsock_lib)
+
+	AC_TRY_LINK([
+#ifdef HAVE_WINDOWS_H
+#undef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+#endif
+#endif
+],[
+	char buffer[1024];
+	gethostname(buffer, sizeof(buffer));],
+	[cf_cv_netlibs="$cf_winsock_lib $cf_cv_netlibs"],
+	[AC_MSG_ERROR(Cannot link against winsock library)])
+
+	LIBS="$cf_save_LIBS"
+	;;
+*)
+	AC_CHECK_FUNCS(gethostname,,[
+		CF_RECHECK_FUNC(gethostname,nsl,cf_cv_netlibs,[
+			CF_RECHECK_FUNC(gethostname,socket,cf_cv_netlibs)])])
+
+	AC_CHECK_LIB(inet, main, cf_cv_netlibs="-linet $cf_cv_netlibs")
+
+	if test "$ac_cv_func_lsocket" != no ; then
+	AC_CHECK_FUNCS(socket,,[
+		CF_RECHECK_FUNC(socket,socket,cf_cv_netlibs,[
+			CF_RECHECK_FUNC(socket,bsd,cf_cv_netlibs)])])
+	fi
+
+	AC_CHECK_FUNCS(gethostbyname,,[
+		CF_RECHECK_FUNC(gethostbyname,nsl,cf_cv_netlibs)])
+
+	AC_CHECK_FUNCS(gethostbyname,,[
+		CF_RECHECK_FUNC(gethostbyname,network,cf_cv_netlibs)])
+
+	AC_CHECK_FUNCS(strcasecmp,,[
+		CF_RECHECK_FUNC(strcasecmp,resolv,cf_cv_netlibs)])
+	;;
+esac
 ])
-LIBS="$LIBS $cf_cv_netlibs"
+
+case $cf_cv_netlibs in #(vi
+*ws2_32*)
+	AC_DEFINE(USE_WINSOCK2_H)
+	;;
+esac
+
+CF_ADD_LIBS($cf_cv_netlibs)
 test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&AC_FD_MSG
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_NO_LEAKS_OPTION version: 4 updated: 2006/12/16 14:24:05
+dnl ------------------
+dnl see CF_WITH_NO_LEAKS
+AC_DEFUN([CF_NO_LEAKS_OPTION],[
+AC_MSG_CHECKING(if you want to use $1 for testing)
+AC_ARG_WITH($1,
+	[$2],
+	[AC_DEFINE($3)ifelse([$4],,[
+	 $4
+])
+	: ${with_cflags:=-g}
+	: ${with_no_leaks:=yes}
+	 with_$1=yes],
+	[with_$1=])
+AC_MSG_RESULT(${with_$1:-no})
+
+case .$with_cflags in #(vi
+.*-g*)
+	case .$CFLAGS in #(vi
+	.*-g*) #(vi
+		;;
+	*)
+		CF_ADD_CFLAGS([-g])
+		;;
+	esac
+	;;
+esac
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_OUR_MESSAGES version: 7 updated: 2004/09/12 19:45:55
 dnl ---------------
 dnl Check if we use the messages included with this program
@@ -3179,17 +3850,17 @@ AC_SUBST(MSG_DIR_MAKE)
 AC_SUBST(SUB_MAKEFILE)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PATHSEP version: 3 updated: 2001/01/12 01:23:53
+dnl CF_PATHSEP version: 5 updated: 2010/05/26 05:38:42
 dnl ----------
 dnl Provide a value for the $PATH and similar separator
 AC_DEFUN([CF_PATHSEP],
 [
 	case $cf_cv_system_name in
-	os2*)	PATHSEP=';'  ;;
-	*)	PATHSEP=':'  ;;
+	os2*)	PATH_SEPARATOR=';'  ;;
+	*)	PATH_SEPARATOR=':'  ;;
 	esac
-ifelse($1,,,[$1=$PATHSEP])
-	AC_SUBST(PATHSEP)
+ifelse([$1],,,[$1=$PATH_SEPARATOR])
+	AC_SUBST(PATH_SEPARATOR)
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_PATH_EDITOR version: 5 updated: 2000/07/20 00:41:18
@@ -3272,13 +3943,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: 13 updated: 2010/05/26 05:38:42
 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
   ;;
@@ -3290,31 +3967,43 @@ 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)
+  ifelse([$2],,[AC_MSG_ERROR([expected a pathname, not \"[$]$1\"])],$2)
   ;;
 esac
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_PDCURSES_X11 version: 6 updated: 2002/10/27 18:21:42
+dnl CF_PDCURSES_X11 version: 11 updated: 2011/01/15 18:45:38
 dnl ---------------
 dnl Configure for PDCurses' X11 library
 AC_DEFUN([CF_PDCURSES_X11],[
 AC_REQUIRE([CF_X_ATHENA])
+
+AC_PATH_PROGS(XCURSES_CONFIG,xcurses-config,none)
+
+if test "$XCURSES_CONFIG" != none ; then
+
+CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
+CF_ADD_LIBS(`$XCURSES_CONFIG --libs`)
+
+cf_cv_lib_XCurses=yes
+
+else
+
 LDFLAGS="$LDFLAGS $X_LIBS"
 CF_CHECK_CFLAGS($X_CFLAGS)
 AC_CHECK_LIB(X11,XOpenDisplay,
-	[LIBS="-lX11 $LIBS"],,
+	[CF_ADD_LIBS(-lX11)],,
 	[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])
 AC_CACHE_CHECK(for XCurses library,cf_cv_lib_XCurses,[
-LIBS="-lXCurses $LIBS"
+CF_ADD_LIBS(-lXCurses)
 AC_TRY_LINK([
 #include <xcurses.h>
 char *XCursesProgramName = "test";
@@ -3322,16 +4011,51 @@ char *XCursesProgramName = "test";
 [cf_cv_lib_XCurses=yes],
 [cf_cv_lib_XCurses=no])
 ])
+
+fi
+
 if test $cf_cv_lib_XCurses = yes ; then
 	AC_DEFINE(UNIX)
 	AC_DEFINE(XCURSES)
-	AC_DEFINE(HAVE_XCURSES)
+	AC_CHECK_HEADER(xcurses.h, AC_DEFINE(HAVE_XCURSES))
 else
-	AC_ERROR(Cannot link with XCurses)
+	AC_MSG_ERROR(Cannot link with XCurses)
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_PKG_CONFIG version: 6 updated: 2011/04/17 06:36:21
+dnl -------------
+dnl Check for the package-config program, unless disabled by command-line.
+AC_DEFUN([CF_PKG_CONFIG],
+[
+AC_MSG_CHECKING(if you want to use pkg-config)
+AC_ARG_WITH(pkg-config,
+	[  --with-pkg-config{=path} enable/disable use of pkg-config],
+	[cf_pkg_config=$withval],
+	[cf_pkg_config=yes])
+AC_MSG_RESULT($cf_pkg_config)
+
+case $cf_pkg_config in #(vi
+no) #(vi
+	PKG_CONFIG=none
+	;;
+yes) #(vi
+	AC_PATH_PROG(PKG_CONFIG, pkg-config, none)
+	;;
+*)
+	PKG_CONFIG=$withval
+	;;
+esac
+
+test -z "$PKG_CONFIG" && PKG_CONFIG=none
+if test "$PKG_CONFIG" != none ; then
+	CF_PATH_SYNTAX(PKG_CONFIG)
 fi
+
+AC_SUBST(PKG_CONFIG)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
+dnl CF_POSIX_C_SOURCE version: 8 updated: 2010/05/26 05:38:42
 dnl -----------------
 dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
 dnl
@@ -3347,7 +4071,7 @@ dnl Parameters:
 dnl	$1 is the nominal value for _POSIX_C_SOURCE
 AC_DEFUN([CF_POSIX_C_SOURCE],
 [
-cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
+cf_POSIX_C_SOURCE=ifelse([$1],,199506L,[$1])
 
 cf_save_CFLAGS="$CFLAGS"
 cf_save_CPPFLAGS="$CPPFLAGS"
@@ -3399,12 +4123,7 @@ make an error
 if test "$cf_cv_posix_c_source" != no ; then
 	CFLAGS="$cf_trim_CFLAGS"
 	CPPFLAGS="$cf_trim_CPPFLAGS"
-	if test "$cf_cv_cc_u_d_options" = yes ; then
-		cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
-				sed -e 's/-D/-U/g' -e 's/=[[^ 	]]*//g'`
-		CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
-	fi
-	CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+	CF_ADD_CFLAGS($cf_cv_posix_c_source)
 fi
 
 ])dnl
@@ -3450,6 +4169,13 @@ test "$cf_cv_sigaction_funcs" = yes && A
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_PROG_AR version: 1 updated: 2009/01/01 20:15:22
+dnl ----------
+dnl Check for archiver "ar".
+AC_DEFUN([CF_PROG_AR],[
+AC_CHECK_TOOL(AR, ar, ar)
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
 dnl --------------
 dnl Check if C (preprocessor) -U and -D options are processed in the order
@@ -3622,7 +4348,7 @@ AC_CHECK_LIB($2,$1,[
 	[[$]$3])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
+dnl CF_REMOVE_DEFINE version: 3 updated: 2010/01/09 11:05:50
 dnl ----------------
 dnl Remove all -U and -D options that refer to the given symbol from a list
 dnl of C compiler options.  This works around the problem that not all
@@ -3634,10 +4360,9 @@ dnl $2 = source (including '$')
 dnl $3 = symbol to remove
 define([CF_REMOVE_DEFINE],
 [
-# remove $3 symbol from $2
 $1=`echo "$2" | \
-	sed	-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[[ 	]]/ /g' \
-		-e 's/-[[UD]]$3\(=[[^ 	]]*\)\?[$]//g'`
+	sed	-e 's/-[[UD]]'"$3"'\(=[[^ 	]]*\)\?[[ 	]]/ /g' \
+		-e 's/-[[UD]]'"$3"'\(=[[^ 	]]*\)\?[$]//g'`
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_SET_GID_UID version: 2 updated: 1997/08/28 23:57:55
@@ -3658,6 +4383,65 @@ AC_MSG_RESULT($cf_cv_setuid_funcs)
 test $cf_cv_setuid_funcs = yes && AC_DEFINE(HAVE_SET_GID_UID)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_SIGWINCH version: 1 updated: 2006/04/02 16:41:09
+dnl -----------
+dnl Use this macro after CF_XOPEN_SOURCE, but do not require it (not all
+dnl programs need this test).
+dnl
+dnl This is really a MacOS X 10.4.3 workaround.  Defining _POSIX_C_SOURCE
+dnl forces SIGWINCH to be undefined (breaks xterm, ncurses).  Oddly, the struct
+dnl winsize declaration is left alone - we may revisit this if Apple choose to
+dnl break that part of the interface as well.
+AC_DEFUN([CF_SIGWINCH],
+[
+AC_CACHE_CHECK(if SIGWINCH is defined,cf_cv_define_sigwinch,[
+	AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <sys/signal.h>
+],[int x = SIGWINCH],
+	[cf_cv_define_sigwinch=yes],
+	[AC_TRY_COMPILE([
+#undef _XOPEN_SOURCE
+#undef _POSIX_SOURCE
+#undef _POSIX_C_SOURCE
+#include <sys/types.h>
+#include <sys/signal.h>
+],[int x = SIGWINCH],
+	[cf_cv_define_sigwinch=maybe],
+	[cf_cv_define_sigwinch=no])
+])
+])
+
+if test "$cf_cv_define_sigwinch" = maybe ; then
+AC_CACHE_CHECK(for actual SIGWINCH definition,cf_cv_fixup_sigwinch,[
+cf_cv_fixup_sigwinch=unknown
+cf_sigwinch=32
+while test $cf_sigwinch != 1
+do
+	AC_TRY_COMPILE([
+#undef _XOPEN_SOURCE
+#undef _POSIX_SOURCE
+#undef _POSIX_C_SOURCE
+#include <sys/types.h>
+#include <sys/signal.h>
+],[
+#if SIGWINCH != $cf_sigwinch
+make an error
+#endif
+int x = SIGWINCH],
+	[cf_cv_fixup_sigwinch=$cf_sigwinch
+	 break])
+
+cf_sigwinch=`expr $cf_sigwinch - 1`
+done
+])
+
+	if test "$cf_cv_fixup_sigwinch" != unknown ; then
+		CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
+	fi
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_SIG_ARGS version: 2 updated: 1997/08/28 23:57:55
 dnl -----------
 dnl Check for systems that have signal-handlers prototyped with one argument
@@ -3680,7 +4464,7 @@ AC_MSG_RESULT($cf_cv_sig_args)
 AC_DEFINE_UNQUOTED(SIG_ARGS,$cf_cv_sig_args)
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SIG_CONST version: 2 updated: 1997/08/28 23:57:55
+dnl CF_SIG_CONST version: 4 updated: 2010/10/23 15:52:32
 dnl ------------
 dnl Check for systems where the special signal constants aren't prototyped
 dnl (there's a lot of them, and the compiler can generate a lot of warning
@@ -3713,9 +4497,9 @@ int main()
 #define SIG_IGN NEW_IGN
 #define SIG_ERR NEW_ERR
 	 || NEW_DFL != SIG_DFL)
-	 	exit(1);
+	 	${cf_cv_main_return:-return}(1);
 	signal(SIGINT, SIG_DFL);
-	exit(0);
+	${cf_cv_main_return:-return}(0);
 }],
 	[cf_cv_sig_const=yes],
 	[cf_cv_sig_const=no],
@@ -3796,69 +4580,47 @@ if test "$cf_cv_sizechange" != no ; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SOCKS version: 3 updated: 2001/01/01 09:54:40
+dnl CF_SOCKS version: 8 updated: 2010/05/05 20:27:55
 dnl --------
 dnl Check for socks library
 dnl $1 = the [optional] directory in which the library may be found
 AC_DEFUN([CF_SOCKS],[
-case "$1" in #(vi
-no|yes) #(vi
-  ;;
-*)
-  if test -d $1 ; then
-    if test -d $1/include ; then
-      CPPFLAGS="$CPPFLAGS -I$1/include"
-      LIBS="$LIBS -L$1/lib"
-    else
-      LIBS="$LIBS -L$1"
-      test -d $1/../include && CPPFLAGS="$CPPFLAGS -I$1/../include"
-    fi
+  CF_ADD_OPTIONAL_PATH($1, [socks library])
+  CF_FIND_LINKAGE([
+#include <stdio.h>
+],[
+      Raccept((char *)0)
+],
+      socks)
+
+  if test "x$cf_cv_find_linkage_socks" = "xyes" ; then
+    AC_DEFINE(SOCKS)
+
+    AC_DEFINE(accept,Raccept)
+    AC_DEFINE(bind,Rbind)
+    AC_DEFINE(connect,Rconnect)
+    AC_DEFINE(getpeername,Rgetpeername)
+    AC_DEFINE(getsockname,Rgetsockname)
+    AC_DEFINE(listen,Rlisten)
+    AC_DEFINE(recvfrom,Rrecvfrom)
+    AC_DEFINE(select,Rselect)
   else
-    AC_MSG_WARN(expected a directory: $1)
+    AC_MSG_ERROR(cannot link with socks library)
   fi
-  ;;
-esac
-LIBS="$LIBS -lsocks"
-AC_DEFINE(SOCKS)
-AC_DEFINE(accept,Raccept)
-AC_DEFINE(bind,Rbind)
-AC_DEFINE(connect,Rconnect)
-AC_DEFINE(getpeername,Rgetpeername)
-AC_DEFINE(getsockname,Rgetsockname)
-AC_DEFINE(listen,Rlisten)
-AC_DEFINE(recvfrom,Rrecvfrom)
-AC_DEFINE(select,Rselect)
-AC_TRY_LINK([
-#include <stdio.h>],[
-	accept((char *)0)],,
-	[AC_ERROR(Cannot link with socks library)])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SOCKS5 version: 7 updated: 2001/01/01 09:54:40
+dnl CF_SOCKS5 version: 11 updated: 2010/06/20 09:24:28
 dnl ---------
 dnl Check for socks5 configuration
 dnl $1 = the [optional] directory in which the library may be found
 AC_DEFUN([CF_SOCKS5],[
-case "$1" in #(vi
-no|yes) #(vi
-  ;;
-*)
-  if test -d $1 ; then
-    if test -d $1/include ; then
-      CPPFLAGS="$CPPFLAGS -I$1/include"
-      LIBS="$LIBS -L$1/lib"
-    else
-      LIBS="$LIBS -L$1"
-      test -d $1/../include && CPPFLAGS="$CPPFLAGS -I$1/../include"
-    fi
-  else
-    AC_MSG_WARN(expected a directory: $1)
-  fi
-  ;;
-esac
-LIBS="$LIBS -lsocks5"
+  CF_ADD_OPTIONAL_PATH($1, [socks5 library])
+
+CF_ADD_LIBS(-lsocks5)
+
 AC_DEFINE(USE_SOCKS5)
 AC_DEFINE(SOCKS)
+
 AC_MSG_CHECKING(if the socks library uses socks4 prefix)
 cf_use_socks4=error
 AC_TRY_LINK([
@@ -3869,8 +4631,9 @@ AC_TRY_LINK([
 	[AC_TRY_LINK([#include <socks.h>],
 		[SOCKSinit((char *)0)],
 		[cf_use_socks4=no],
-		[AC_ERROR(Cannot link with socks5 library)])])
+		[AC_MSG_ERROR(Cannot link with socks5 library)])])
 AC_MSG_RESULT($cf_use_socks4)
+
 if test "$cf_use_socks4" = "yes" ; then
 	AC_DEFINE(accept,Raccept)
 	AC_DEFINE(bind,Rbind)
@@ -3886,6 +4649,7 @@ else
 	AC_DEFINE(getsockname,SOCKSgetsockname)
 	AC_DEFINE(recvfrom,SOCKSrecvfrom)
 fi
+
 AC_MSG_CHECKING(if socks5p.h is available)
 AC_TRY_COMPILE([
 #define INCLUDE_PROTOTYPES
@@ -3894,6 +4658,7 @@ AC_TRY_COMPILE([
 	[cf_use_socks5p_h=yes],
 	[cf_use_socks5p_h=no])
 AC_MSG_RESULT($cf_use_socks5p_h)
+
 test "$cf_use_socks5p_h" = yes && AC_DEFINE(INCLUDE_PROTOTYPES)
 ])dnl
 dnl ---------------------------------------------------------------------------
@@ -3905,16 +4670,18 @@ AC_DEFUN([CF_STRERROR],[
 AC_CHECK_FUNCS(strerror, AC_DEFINE(HAVE_STRERROR),[CF_SYS_ERRLIST])
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_STRUCT_TERMIOS version: 5 updated: 2000/11/04 12:22:46
+dnl CF_STRUCT_TERMIOS version: 6 updated: 2011/04/16 11:52:53
 dnl -----------------
 dnl Some machines require _POSIX_SOURCE to completely define struct termios.
-dnl If so, define SVR4_TERMIO
 AC_DEFUN([CF_STRUCT_TERMIOS],[
+AC_REQUIRE([CF_XOPEN_SOURCE])
+
 AC_CHECK_HEADERS( \
 termio.h \
 termios.h \
 unistd.h \
 )
+
 if test "$ISC" = yes ; then
 	AC_CHECK_HEADERS( sys/termio.h )
 fi
@@ -3934,78 +4701,31 @@ if test "$ac_cv_header_termios_h" = yes 
 #include <termios.h>],
 			[struct termios foo; int x = foo.c_iflag],
 			termios_bad=unknown,
-			termios_bad=yes AC_DEFINE(SVR4_TERMIO))
+			termios_bad=yes AC_DEFINE(_POSIX_SOURCE))
 			])
 	AC_MSG_RESULT($termios_bad)
 	fi
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_SUBDIR_PATH version: 3 updated: 2002/12/29 18:30:46
+dnl CF_SUBDIR_PATH version: 6 updated: 2010/04/21 06:20:50
 dnl --------------
 dnl Construct a search-list for a nonstandard header/lib-file
 dnl	$1 = the variable to return as result
 dnl	$2 = the package name
 dnl	$3 = the subdirectory, e.g., bin, include or lib
 AC_DEFUN([CF_SUBDIR_PATH],
-[$1=""
-
-test -d [$]HOME && {
-	test -n "$verbose" && echo "	... testing $3-directories under [$]HOME"
-	test -d [$]HOME/$3 &&          $1="[$]$1 [$]HOME/$3"
-	test -d [$]HOME/$3/$2 &&       $1="[$]$1 [$]HOME/$3/$2"
-	test -d [$]HOME/$3/$2/$3 &&    $1="[$]$1 [$]HOME/$3/$2/$3"
-}
-
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$2 to the actual package location:
-test -d [$]HOME/$2 && {
-	test -n "$verbose" && echo "	... testing $3-directories under [$]HOME/$2"
-	test -d [$]HOME/$2/$3 &&       $1="[$]$1 [$]HOME/$2/$3"
-	test -d [$]HOME/$2/$3/$2 &&    $1="[$]$1 [$]HOME/$2/$3/$2"
-}
-
-test "$prefix" != /usr/local && \
-test -d /usr/local && {
-	test -n "$verbose" && echo "	... testing $3-directories under /usr/local"
-	test -d /usr/local/$3 &&       $1="[$]$1 /usr/local/$3"
-	test -d /usr/local/$3/$2 &&    $1="[$]$1 /usr/local/$3/$2"
-	test -d /usr/local/$3/$2/$3 && $1="[$]$1 /usr/local/$3/$2/$3"
-	test -d /usr/local/$2/$3 &&    $1="[$]$1 /usr/local/$2/$3"
-	test -d /usr/local/$2/$3/$2 && $1="[$]$1 /usr/local/$2/$3/$2"
-}
-
-test "$prefix" != NONE && \
-test -d $prefix && {
-	test -n "$verbose" && echo "	... testing $3-directories under $prefix"
-	test -d $prefix/$3 &&          $1="[$]$1 $prefix/$3"
-	test -d $prefix/$3/$2 &&       $1="[$]$1 $prefix/$3/$2"
-	test -d $prefix/$3/$2/$3 &&    $1="[$]$1 $prefix/$3/$2/$3"
-	test -d $prefix/$2/$3 &&       $1="[$]$1 $prefix/$2/$3"
-	test -d $prefix/$2/$3/$2 &&    $1="[$]$1 $prefix/$2/$3/$2"
-}
-
-test "$prefix" != /opt && \
-test -d /opt && {
-	test -n "$verbose" && echo "	... testing $3-directories under /opt"
-	test -d /opt/$3 &&             $1="[$]$1 /opt/$3"
-	test -d /opt/$3/$2 &&          $1="[$]$1 /opt/$3/$2"
-	test -d /opt/$3/$2/$3 &&       $1="[$]$1 /opt/$3/$2/$3"
-	test -d /opt/$2/$3 &&          $1="[$]$1 /opt/$2/$3"
-	test -d /opt/$2/$3/$2 &&       $1="[$]$1 /opt/$2/$3/$2"
-}
+[
+$1=
 
-test "$prefix" != /usr && \
-test -d /usr && {
-	test -n "$verbose" && echo "	... testing $3-directories under /usr"
-	test -d /usr/$3 &&             $1="[$]$1 /usr/$3"
-	test -d /usr/$3/$2 &&          $1="[$]$1 /usr/$3/$2"
-	test -d /usr/$3/$2/$3 &&       $1="[$]$1 /usr/$3/$2/$3"
-	test -d /usr/$2/$3 &&          $1="[$]$1 /usr/$2/$3"
-}
+CF_ADD_SUBDIR_PATH($1,$2,$3,/usr,$prefix)
+CF_ADD_SUBDIR_PATH($1,$2,$3,$prefix,NONE)
+CF_ADD_SUBDIR_PATH($1,$2,$3,/usr/local,$prefix)
+CF_ADD_SUBDIR_PATH($1,$2,$3,/opt,$prefix)
+CF_ADD_SUBDIR_PATH($1,$2,$3,[$]HOME,$prefix)
 ])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.
@@ -4016,11 +4736,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
@@ -4075,9 +4813,11 @@ AC_MSG_RESULT($cf_cv_sys_select_timeval)
 test $cf_cv_sys_select_timeval = yes && AC_DEFINE(NEED_TIMEVAL_FIX)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_TERMCAP_LIBS version: 10 updated: 2001/10/18 20:42:39
+dnl CF_TERMCAP_LIBS version: 12 updated: 2010/06/20 09:24:28
 dnl ---------------
 dnl Look for termcap libraries, or the equivalent in terminfo.
+dnl
+dnl The optional parameter may be "ncurses", "ncursesw".
 AC_DEFUN([CF_TERMCAP_LIBS],
 [
 AC_CACHE_VAL(cf_cv_termlib,[
@@ -4091,8 +4831,7 @@ AC_TRY_LINK([],[char *x=(char*)tgoto("",
 ifelse([$1],,,[
 case "$1" in # (vi
 ncurses*)
-	CF_NCURSES_CPPFLAGS($1)
-	CF_NCURSES_LIBS($1)
+	CF_NCURSES_CONFIG($1)
 	cf_cv_termlib=terminfo
 	;;
 esac
@@ -4124,8 +4863,8 @@ if test "$cf_cv_termlib" = none; then
 fi
 if test "$cf_cv_termlib" = none; then
 	# allow curses library for broken AIX system.
-	AC_CHECK_LIB(curses, initscr, [LIBS="$LIBS -lcurses" cf_cv_termlib=termcap])
-	AC_CHECK_LIB(termcap, tgoto, [LIBS="$LIBS -ltermcap" cf_cv_termlib=termcap])
+	AC_CHECK_LIB(curses, initscr, [CF_ADD_LIBS(-lcurses)])
+	AC_CHECK_LIB(termcap, tgoto, [CF_ADD_LIBS(-ltermcap) cf_cv_termlib=termcap])
 fi
 ])
 if test "$cf_cv_termlib" = none; then
@@ -4167,7 +4906,54 @@ if test $cf_cv_use_termios_h = yes; then
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_TIOCGWINSZ version: 3 updated: 1997/11/29 01:04:53
+dnl CF_TERM_HEADER version: 2 updated: 2010/10/23 15:54:49
+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: 5 updated: 2010/10/23 15:52:32
 dnl -------------
 dnl On some systems ioctl(fd, TIOCGWINSZ, &size) will always return {0,0} until
 dnl ioctl(fd, TIOCSWINSZ, &size) is called to explicitly set the size of the
@@ -4195,16 +4981,16 @@ int main()
 		if (ioctl (0, TIOCGSIZE, &size) == 0
 		 && size.ts_lines > 0
 		 && size.ts_cols > 0)
-			exit(0);
+			${cf_cv_main_return:-return}(0);
 #else
 		struct winsize size;
 		if (ioctl(0, TIOCGWINSZ, &size) == 0
 		 && size.ws_row > 0
 		 && size.ws_col > 0)
-			exit(0);
+			${cf_cv_main_return:-return}(0);
 #endif
 	}
-	exit(0);	/* we cannot guarantee this is run interactively */
+	${cf_cv_main_return:-return}(0);	/* we cannot guarantee this is run interactively */
 }],
 		[cf_cv_use_tiocgwinsz=yes],
 		[cf_cv_use_tiocgwinsz=no],
@@ -4243,6 +5029,31 @@ AC_MSG_RESULT($cf_cv_tm_gmtoff)
 test $cf_cv_tm_gmtoff = no && AC_DEFINE(DONT_HAVE_TM_GMTOFF)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_TRY_PKG_CONFIG version: 4 updated: 2010/06/14 17:42:30
+dnl -----------------
+dnl This is a simple wrapper to use for pkg-config, for libraries which may be
+dnl available in that form.
+dnl
+dnl $1 = package name
+dnl $2 = extra logic to use, if any, after updating CFLAGS and LIBS
+dnl $3 = logic to use if pkg-config does not have the package
+AC_DEFUN([CF_TRY_PKG_CONFIG],[
+AC_REQUIRE([CF_PKG_CONFIG])
+
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $1; then
+	CF_VERBOSE(found package $1)
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags $1 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   $1 2>/dev/null`"
+	CF_VERBOSE(package $1 CFLAGS: $cf_pkgconfig_incs)
+	CF_VERBOSE(package $1 LIBS: $cf_pkgconfig_libs)
+	CF_ADD_CFLAGS($cf_pkgconfig_incs)
+	CF_ADD_LIBS($cf_pkgconfig_libs)
+	ifelse([$2],,:,[$2])
+else
+	ifelse([$3],,:,[$3])
+fi
+])
+dnl ---------------------------------------------------------------------------
 dnl CF_TYPE_OUTCHAR version: 13 updated: 2002/10/09 20:00:37
 dnl ---------------
 dnl Check for return and param type of 3rd -- OutChar() -- param of tputs().
@@ -4391,11 +5202,12 @@ AC_DEFUN([CF_UPPER],
 $1=`echo "$2" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
+dnl CF_VERBOSE version: 3 updated: 2007/07/29 09:55:12
 dnl ----------
 dnl Use AC_VERBOSE w/o the warnings
 AC_DEFUN([CF_VERBOSE],
 [test -n "$verbose" && echo "	$1" 1>&AC_FD_MSG
+CF_MSG_LOG([$1])
 ])dnl
 dnl ---------------------------------------------------------------------------
 dnl CF_WAIT_HEADERS version: 2 updated: 1997/10/21 19:45:33
@@ -4429,36 +5241,46 @@ fi
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
+dnl CF_WITH_CURSES_DIR version: 3 updated: 2010/11/20 17:02:38
 dnl ------------------
 dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
 dnl libraries.
 AC_DEFUN([CF_WITH_CURSES_DIR],[
+
+AC_MSG_CHECKING(for specific curses-directory)
 AC_ARG_WITH(curses-dir,
 	[  --with-curses-dir=DIR   directory in which (n)curses is installed],
-	[CF_PATH_SYNTAX(withval)
-	 cf_cv_curses_dir=$withval],
+	[cf_cv_curses_dir=$withval],
 	[cf_cv_curses_dir=no])
+AC_MSG_RESULT($cf_cv_curses_dir)
+
+if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+then
+	CF_PATH_SYNTAX(withval)
+	if test -d "$cf_cv_curses_dir"
+	then
+		CF_ADD_INCDIR($cf_cv_curses_dir/include)
+		CF_ADD_LIBDIR($cf_cv_curses_dir/lib)
+	fi
+fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DBMALLOC version: 4 updated: 2004/02/28 05:49:27
+dnl CF_WITH_DBMALLOC version: 7 updated: 2010/06/21 17:26:47
 dnl ----------------
 dnl Configure-option for dbmalloc.  The optional parameter is used to override
 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
 AC_DEFUN([CF_WITH_DBMALLOC],[
-AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
-AC_ARG_WITH(dbmalloc,
-	[  --with-dbmalloc         use Conor Cahill's dbmalloc library],
-	[with_dbmalloc=$withval],
-	[with_dbmalloc=no])
-AC_MSG_RESULT($with_dbmalloc)
+CF_NO_LEAKS_OPTION(dbmalloc,
+	[  --with-dbmalloc         test: use Conor Cahill's dbmalloc library],
+	[USE_DBMALLOC])
+
 if test "$with_dbmalloc" = yes ; then
 	AC_CHECK_HEADER(dbmalloc.h,
-		[AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
+		[AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse([$1],,[],[,$1]))])
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DFTENV version: 3 updated: 1998/04/01 11:39:13
+dnl CF_WITH_DFTENV version: 4 updated: 2008/03/23 14:48:54
 dnl --------------
 dnl Wrapper for AC_ARG_WITH to inherit/override an environment variable's
 dnl "#define" in the compile.
@@ -4471,31 +5293,29 @@ AC_DEFUN([CF_WITH_DFTENV],
 ifelse($4,,[withval="${$3}"],[withval="${$3-$4}"]))dnl
 case "$withval" in #(vi
 yes|no)
-  AC_ERROR(expected a value for --with-$1)
+  AC_MSG_ERROR(expected a value for --with-$1)
   ;;
 esac
 $3="$withval"
 AC_DEFINE_UNQUOTED($3,"[$]$3")dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DMALLOC version: 4 updated: 2004/02/28 05:49:27
+dnl CF_WITH_DMALLOC version: 7 updated: 2010/06/21 17:26:47
 dnl ---------------
 dnl Configure-option for dmalloc.  The optional parameter is used to override
 dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
 AC_DEFUN([CF_WITH_DMALLOC],[
-AC_MSG_CHECKING(if you want to link with dmalloc for testing)
-AC_ARG_WITH(dmalloc,
-	[  --with-dmalloc          use Gray Watson's dmalloc library],
-	[with_dmalloc=$withval],
-	[with_dmalloc=no])
-AC_MSG_RESULT($with_dmalloc)
+CF_NO_LEAKS_OPTION(dmalloc,
+	[  --with-dmalloc          test: use Gray Watson's dmalloc library],
+	[USE_DMALLOC])
+
 if test "$with_dmalloc" = yes ; then
 	AC_CHECK_HEADER(dmalloc.h,
-		[AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
+		[AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse([$1],,[],[,$1]))])
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PATH version: 6 updated: 1998/10/11 00:40:17
+dnl CF_WITH_PATH version: 10 updated: 2010/10/23 15:44:18
 dnl ------------
 dnl Wrapper for AC_ARG_WITH to ensure that user supplies a pathname, not just
 dnl defaulting to yes/no.
@@ -4507,14 +5327,16 @@ dnl $4 = default value, shown in the hel
 dnl $5 = default value, if it's an expression & cannot be in the help-message
 dnl
 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
+[AC_ARG_WITH($1,[$2 ](default: ifelse([$4],,empty,[$4])),,
+ifelse([$4],,[withval="${$3}"],[withval="${$3:-ifelse([$5],,[$4],[$5])}"]))dnl
+if ifelse([$5],,true,[test -n "$5"]) ; then
 CF_PATH_SYNTAX(withval)
-eval $3="$withval"
+fi
+$3="$withval"
 AC_SUBST($3)dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_WITH_PROGRAM version: 5 updated: 2001/07/22 23:07:22
+dnl CF_WITH_PROGRAM version: 6 updated: 2008/03/23 14:48:54
 dnl ---------------
 dnl Wrapper for AC_PATH_PROG, with command-line option.
 dnl Params:
@@ -4529,7 +5351,7 @@ define([cf_have_name], HAVE_[]translit($
 AC_ARG_WITH($1,[$2],ifelse($3,,
 [case "$withval" in #(vi
   yes[)]
-   AC_ERROR(expected a value for --with-$1)
+   AC_MSG_ERROR(expected a value for --with-$1)
    ;; #(vi
   no[)]
    ;; #(vi
@@ -4565,7 +5387,7 @@ AC_DEFUN([CF_WITH_VALUE],
  AC_DEFINE_UNQUOTED($3,"$withval")dnl
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_CURSES version: 8 updated: 2003/11/07 19:47:46
+dnl CF_XOPEN_CURSES version: 11 updated: 2011/01/18 18:15:30
 dnl ---------------
 dnl Test if we should define X/Open source for curses, needed on Digital Unix
 dnl 4.x, to see the extended functions, but breaks on IRIX 6.x.
@@ -4578,7 +5400,12 @@ AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
 AC_CACHE_CHECK(if we must define _XOPEN_SOURCE_EXTENDED,cf_cv_need_xopen_extension,[
 AC_TRY_LINK([
 #include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>],[
+#include <${cf_cv_ncurses_header:-curses.h}>],[
+#if defined(NCURSES_VERSION_PATCH)
+#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
+	make an error
+#endif
+#endif
 	long x = winnstr(stdscr, "", 0);
 	int x1, y1;
 	getbegyx(stdscr, y1, x1)],
@@ -4586,7 +5413,11 @@ AC_TRY_LINK([
 	[AC_TRY_LINK([
 #define _XOPEN_SOURCE_EXTENDED
 #include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>],[
+#include <${cf_cv_ncurses_header:-curses.h}>],[
+#ifdef NCURSES_VERSION
+	cchar_t check;
+	int check2 = curs_set((int)sizeof(check));
+#endif
 	long x = winnstr(stdscr, "", 0);
 	int x1, y1;
 	getbegyx(stdscr, y1, x1)],
@@ -4595,40 +5426,52 @@ 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: 35 updated: 2011/02/20 20:37:37
 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
 dnl	$2 is the nominal value for _POSIX_C_SOURCE
 AC_DEFUN([CF_XOPEN_SOURCE],[
 
-AC_REQUIRE([CF_PROG_CC_U_D])
-
-cf_XOPEN_SOURCE=ifelse($1,,500,$1)
-cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
+cf_XOPEN_SOURCE=ifelse([$1],,500,[$1])
+cf_POSIX_C_SOURCE=ifelse([$2],,199506L,[$2])
+cf_xopen_source=
 
 case $host_os in #(vi
-aix[[45]]*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+aix[[456]]*) #(vi
+	cf_xopen_source="-D_ALL_SOURCE"
 	;;
-freebsd*) #(vi
+cygwin) #(vi
+	cf_XOPEN_SOURCE=600
+	;;
+darwin[[0-8]].*) #(vi
+	cf_xopen_source="-D_APPLE_C_SOURCE"
+	;;
+darwin*) #(vi
+	cf_xopen_source="-D_DARWIN_C_SOURCE"
+	;;
+freebsd*|dragonfly*) #(vi
 	# 5.x headers associate
 	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
 	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
 	cf_POSIX_C_SOURCE=200112L
 	cf_XOPEN_SOURCE=600
-	CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+	cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+	;;
+hpux11*) #(vi
+	cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
 	;;
 hpux*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+	cf_xopen_source="-D_HPUX_SOURCE"
 	;;
 irix[[56]].*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+	cf_xopen_source="-D_SGI_SOURCE"
 	;;
-linux*|gnu*) #(vi
+linux*|gnu*|mint*|k*bsd*-gnu) #(vi
 	CF_GNU_SOURCE
 	;;
 mirbsd*) #(vi
@@ -4641,16 +5484,19 @@ openbsd*) #(vi
 	# setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
 	;;
 osf[[45]]*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+	cf_xopen_source="-D_OSF_SOURCE"
 	;;
 nto-qnx*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
+	cf_xopen_source="-D_QNX_SOURCE"
 	;;
 sco*) #(vi
 	# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
 	;;
-solaris*) #(vi
-	CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+solaris2.1[[0-9]]) #(vi
+	cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+	;;
+solaris2.[[1-9]]) #(vi
+	cf_xopen_source="-D__EXTENSIONS__"
 	;;
 *)
 	AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
@@ -4673,23 +5519,26 @@ make an error
 	if test "$cf_cv_xopen_source" != no ; then
 		CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
 		CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
-		test "$cf_cv_cc_u_d_options" = yes && \
-			CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
-		CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+		cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
+		CF_ADD_CFLAGS($cf_temp_xopen_source)
 	fi
 	CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
 	;;
 esac
+
+if test -n "$cf_xopen_source" ; then
+	CF_ADD_CFLAGS($cf_xopen_source)
+fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA version: 12 updated: 2004/06/15 21:14:41
+dnl CF_X_ATHENA version: 20 updated: 2010/11/09 05:18:02
 dnl -----------
 dnl Check for Xaw (Athena) libraries
 dnl
 dnl Sets $cf_x_athena according to the flavor of Xaw which is used.
 AC_DEFUN([CF_X_ATHENA],
-[AC_REQUIRE([CF_X_TOOLKIT])
-cf_x_athena=${cf_x_athena-Xaw}
+[
+cf_x_athena=${cf_x_athena:-Xaw}
 
 AC_MSG_CHECKING(if you want to link with Xaw 3d library)
 withval=
@@ -4724,23 +5573,63 @@ else
 	AC_MSG_RESULT(no)
 fi
 
-AC_CHECK_LIB(Xext,XextCreateExtension,
-	[LIBS="-lXext $LIBS"])
-
 cf_x_athena_lib=""
 
-CF_X_ATHENA_CPPFLAGS($cf_x_athena)
-CF_X_ATHENA_LIBS($cf_x_athena)
+if test "$PKG_CONFIG" != none ; then
+	cf_athena_list=
+	test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
+	for cf_athena_pkg in \
+		$cf_athena_list \
+		${cf_x_athena} \
+		${cf_x_athena}-devel \
+		lib${cf_x_athena} \
+		lib${cf_x_athena}-devel
+	do
+		CF_TRY_PKG_CONFIG($cf_athena_pkg,[
+			cf_x_athena_lib="$cf_pkgconfig_libs"
+			CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x_athena)
+			AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
+
+AC_CACHE_CHECK(for usable $cf_x_athena/Xmu package,cf_cv_xaw_compat,[
+AC_TRY_LINK([
+#include <X11/Xmu/CharSet.h>
+],[
+int check = XmuCompareISOLatin1("big", "small")
+],[cf_cv_xaw_compat=yes],[cf_cv_xaw_compat=no])])
+
+			if test "$cf_cv_xaw_compat" = no
+			then
+				# workaround for broken ".pc" files...
+				case "$cf_x_athena_lib" in #(vi
+				*-lXmu*) #(vi
+					;;
+				*)
+					CF_VERBOSE(work around broken package)
+					CF_TRY_PKG_CONFIG(xmu,,[CF_ADD_LIB_AFTER(-lXt,-lXmu)])
+					;;
+				esac
+			fi
+
+			break])
+	done
+fi
+
+if test -z "$cf_x_athena_lib" ; then
+	CF_X_EXT
+	CF_X_TOOLKIT
+	CF_X_ATHENA_CPPFLAGS($cf_x_athena)
+	CF_X_ATHENA_LIBS($cf_x_athena)
+fi
 ])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_CPPFLAGS version: 2 updated: 2002/10/09 20:00:37
+dnl CF_X_ATHENA_CPPFLAGS version: 5 updated: 2010/05/26 17:35:30
 dnl --------------------
 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
 AC_DEFUN([CF_X_ATHENA_CPPFLAGS],
 [
-cf_x_athena_root=ifelse($1,,Xaw,$1)
-cf_x_athena_include=""
+cf_x_athena_root=ifelse([$1],,Xaw,[$1])
+cf_x_athena_inc=""
 
 for cf_path in default \
 	/usr/contrib/X11R6 \
@@ -4748,11 +5637,11 @@ for cf_path in default \
 	/usr/lib/X11R5 \
 	/usr/local
 do
-	if test -z "$cf_x_athena_include" ; then
+	if test -z "$cf_x_athena_inc" ; then
 		cf_save="$CPPFLAGS"
 		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
 		if test $cf_path != default ; then
-			CPPFLAGS="-I$cf_path/include $cf_save"
+			CPPFLAGS="$cf_save -I$cf_path/include"
 			AC_MSG_CHECKING(for $cf_test in $cf_path)
 		else
 			AC_MSG_CHECKING(for $cf_test)
@@ -4764,7 +5653,7 @@ do
 			[cf_result=no])
 		AC_MSG_RESULT($cf_result)
 		if test "$cf_result" = yes ; then
-			cf_x_athena_include=$cf_path
+			cf_x_athena_inc=$cf_path
 			break
 		else
 			CPPFLAGS="$cf_save"
@@ -4772,21 +5661,21 @@ do
 	fi
 done
 
-if test -z "$cf_x_athena_include" ; then
+if test -z "$cf_x_athena_inc" ; then
 	AC_MSG_WARN(
 [Unable to successfully find Athena header files with test program])
-elif test "$cf_x_athena_include" != default ; then
-	CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include"
+elif test "$cf_x_athena_inc" != default ; then
+	CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
 fi
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_X_ATHENA_LIBS version: 3 updated: 2003/02/16 15:24:54
+dnl CF_X_ATHENA_LIBS version: 10 updated: 2011/02/13 13:31:33
 dnl ----------------
 dnl Normally invoked by CF_X_ATHENA, with $1 set to the appropriate flavor of
 dnl the Athena widgets, e.g., Xaw, Xaw3d, neXtaw.
 AC_DEFUN([CF_X_ATHENA_LIBS],
 [AC_REQUIRE([CF_X_TOOLKIT])
-cf_x_athena_root=ifelse($1,,Xaw,$1)
+cf_x_athena_root=ifelse([$1],,Xaw,[$1])
 cf_x_athena_lib=""
 
 for cf_path in default \
@@ -4804,31 +5693,31 @@ do
 			cf_save="$LIBS"
 			cf_test=XawSimpleMenuAddGlobalActions
 			if test $cf_path != default ; then
-				LIBS="-L$cf_path/lib $cf_lib $LIBS"
+				CF_ADD_LIBS(-L$cf_path/lib $cf_lib)
 				AC_MSG_CHECKING(for $cf_lib in $cf_path)
 			else
-				LIBS="$cf_lib $LIBS"
+				CF_ADD_LIBS($cf_lib)
 				AC_MSG_CHECKING(for $cf_test in $cf_lib)
 			fi
-			cf_SAVE="$LIBS"
-			LIBS="$X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
-			AC_TRY_LINK([],[$cf_test()],
+			AC_TRY_LINK([
+#include <X11/Intrinsic.h>
+#include <X11/$cf_x_athena_root/SimpleMenu.h>
+],[
+$cf_test((XtAppContext) 0)],
 				[cf_result=yes],
 				[cf_result=no])
 			AC_MSG_RESULT($cf_result)
 			if test "$cf_result" = yes ; then
 				cf_x_athena_lib="$cf_lib"
-				LIBS="$cf_SAVE"
 				break
-			else
-				LIBS="$cf_save"
 			fi
+			LIBS="$cf_save"
 		fi
 	done
 done
 
 if test -z "$cf_x_athena_lib" ; then
-	AC_ERROR(
+	AC_MSG_ERROR(
 [Unable to successfully link Athena library (-l$cf_x_athena_root) with test program])
 fi
 
@@ -4836,7 +5725,15 @@ CF_UPPER(cf_x_athena_LIBS,HAVE_LIB_$cf_x
 AC_DEFINE_UNQUOTED($cf_x_athena_LIBS)
 ])
 dnl ---------------------------------------------------------------------------
-dnl CF_X_TOOLKIT version: 10 updated: 2004/04/25 15:37:17
+dnl CF_X_EXT version: 3 updated: 2010/06/02 05:03:05
+dnl --------
+AC_DEFUN([CF_X_EXT],[
+CF_TRY_PKG_CONFIG(Xext,,[
+	AC_CHECK_LIB(Xext,XextCreateExtension,
+		[CF_ADD_LIB(Xext)])])
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_X_TOOLKIT version: 20 updated: 2010/11/19 05:43:04
 dnl ------------
 dnl Check for X Toolkit libraries
 dnl
@@ -4845,33 +5742,121 @@ AC_DEFUN([CF_X_TOOLKIT],
 AC_REQUIRE([AC_PATH_XTRA])
 AC_REQUIRE([CF_CHECK_CACHE])
 
-# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -`
-
 cf_have_X_LIBS=no
 
-LDFLAGS="$X_LIBS $LDFLAGS"
-CF_CHECK_CFLAGS($X_CFLAGS)
+CF_TRY_PKG_CONFIG(xt,[
 
-AC_CHECK_FUNC(XOpenDisplay,,[
-AC_CHECK_LIB(X11,XOpenDisplay,
-	[LIBS="-lX11 $LIBS"],,
-	[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
+	case "x$LIBS" in #(vi
+	*-lX11*) #(vi
+		;;
+	*)
+# we have an "xt" package, but it may omit Xt's dependency on X11
+AC_CACHE_CHECK(for usable X dependency,cf_cv_xt_x11_compat,[
+AC_TRY_LINK([
+#include <X11/Xlib.h>
+],[
+	int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
+	int rc2 = XClearWindow((Display*) 0, (Window) 0);
+	int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
+	int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
+],[cf_cv_xt_x11_compat=yes],[cf_cv_xt_x11_compat=no])])
+		if test "$cf_cv_xt_x11_compat" = no
+		then
+			CF_VERBOSE(work around broken X11 dependency)
+			# 2010/11/19 - good enough until a working Xt on Xcb is delivered.
+			CF_TRY_PKG_CONFIG(x11,,[CF_ADD_LIB_AFTER(-lXt,-lX11)])
+		fi
+		;;
+	esac
+
+AC_CACHE_CHECK(for usable X Toolkit package,cf_cv_xt_ice_compat,[
+AC_TRY_LINK([
+#include <X11/Shell.h>
+],[int num = IceConnectionNumber(0)
+],[cf_cv_xt_ice_compat=yes],[cf_cv_xt_ice_compat=no])])
+
+	if test "$cf_cv_xt_ice_compat" = no
+	then
+		# workaround for broken ".pc" files used for X Toolkit.
+		case "x$X_PRE_LIBS" in #(vi
+		*-lICE*)
+			case "x$LIBS" in #(vi
+			*-lICE*) #(vi
+				;;
+			*)
+				CF_VERBOSE(work around broken ICE dependency)
+				CF_TRY_PKG_CONFIG(ice,
+					[CF_TRY_PKG_CONFIG(sm)],
+					[CF_ADD_LIB_AFTER(-lXt,$X_PRE_LIBS)])
+				;;
+			esac
+			;;
+		esac
+	fi
+
+	cf_have_X_LIBS=yes
+],[
 
-AC_CHECK_FUNC(XtAppInitialize,,[
-AC_CHECK_LIB(Xt, XtAppInitialize,
-	[AC_DEFINE(HAVE_LIBXT)
-	 cf_have_X_LIBS=Xt
-	 LIBS="-lXt $X_PRE_LIBS $LIBS"],,
-	[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
+	LDFLAGS="$X_LIBS $LDFLAGS"
+	CF_CHECK_CFLAGS($X_CFLAGS)
+
+	AC_CHECK_FUNC(XOpenDisplay,,[
+	AC_CHECK_LIB(X11,XOpenDisplay,
+		[CF_ADD_LIB(X11)],,
+		[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
+
+	AC_CHECK_FUNC(XtAppInitialize,,[
+	AC_CHECK_LIB(Xt, XtAppInitialize,
+		[AC_DEFINE(HAVE_LIBXT)
+		 cf_have_X_LIBS=Xt
+		 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"],,
+		[$X_PRE_LIBS $LIBS $X_EXTRA_LIBS])])
+])
 
 if test $cf_have_X_LIBS = no ; then
-	AC_WARN(
+	AC_MSG_WARN(
 [Unable to successfully link X Toolkit library (-lXt) with
 test program.  You will have to check and add the proper libraries by hand
 to makefile.])
 fi
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF__ICONV_BODY version: 2 updated: 2007/07/26 17:35:47
+dnl --------------
+dnl Test-code needed for iconv compile-checks
+define([CF__ICONV_BODY],[
+	iconv_t cd = iconv_open("","");
+	iconv(cd,NULL,NULL,NULL,NULL);
+	iconv_close(cd);]
+)dnl
+dnl ---------------------------------------------------------------------------
+dnl CF__ICONV_HEAD version: 1 updated: 2007/07/26 15:57:03
+dnl --------------
+dnl Header-files needed for iconv compile-checks
+define([CF__ICONV_HEAD],[
+#include <stdlib.h>
+#include <iconv.h>]
+)dnl
+dnl ---------------------------------------------------------------------------
+dnl CF__INTL_BODY version: 1 updated: 2007/07/26 17:35:47
+dnl -------------
+dnl Test-code needed for libintl compile-checks
+dnl $1 = parameter 2 from AM_WITH_NLS
+define([CF__INTL_BODY],[
+    bindtextdomain ("", "");
+    return (int) gettext ("")
+            ifelse([$1], need-ngettext, [ + (int) ngettext ("", "", 0)], [])
+            [ + _nl_msg_cat_cntr]
+])
+dnl ---------------------------------------------------------------------------
+dnl CF__INTL_HEAD version: 1 updated: 2007/07/26 17:35:47
+dnl -------------
+dnl Header-files needed for libintl compile-checks
+define([CF__INTL_HEAD],[
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl jm_GLIBC21 version: 3 updated: 2002/10/27 23:21:42
 dnl ----------
 dnl Inserted as requested by gettext 0.10.40
diff -Nurp --exclude='.bzr*' tin-1.8.3/config.guess tin-2.0.0/config.guess
--- tin-1.8.3/config.guess	2006-02-27 04:25:53.000000000 +0100
+++ tin-2.0.0/config.guess	2011-08-21 18:20:45.560262776 +0200
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+#   2911 Free Software Foundation, Inc.
 
-timestamp='2006-02-27'
+timestamp='2011-08-20'
 
 # 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
@@ -26,16 +27,16 @@ timestamp='2006-02-27'
 # the same distribution terms that you use for the rest of that program.
 
 
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches@gnu.org> and include a ChangeLog
+# entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -55,7 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -160,6 +162,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
@@ -168,7 +171,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
+			| grep -q __ELF__
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -178,7 +181,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 		fi
 		;;
 	    *)
-	        os=netbsd
+		os=netbsd
 		;;
 	esac
 	# The OS release
@@ -210,7 +213,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}
@@ -267,7 +270,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit ;;
+	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+	exitcode=$?
+	trap '' 0
+	exit $exitcode ;;
     Alpha\ *:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# Should we change UNAME_MACHINE based on the output of uname instead
@@ -322,14 +328,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -373,23 +398,23 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:$
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint${UNAME_RELEASE}
 	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 	echo m68k-atari-mint${UNAME_RELEASE}
-        exit ;;
+	exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
+	echo m68k-atari-mint${UNAME_RELEASE}
 	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-milan-mint${UNAME_RELEASE}
+	exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-hades-mint${UNAME_RELEASE}
+	exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit ;;
+	echo m68k-unknown-mint${UNAME_RELEASE}
+	exit ;;
     m68k:machten:*:*)
 	echo m68k-apple-machten${UNAME_RELEASE}
 	exit ;;
@@ -459,8 +484,8 @@ EOF
 	echo m88k-motorola-sysv3
 	exit ;;
     AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
+	# DG/UX returns AViiON for all architectures
+	UNAME_PROCESSOR=`/usr/bin/uname -p`
 	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
 	then
 	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
@@ -473,7 +498,7 @@ EOF
 	else
 	    echo i586-dg-dgux${UNAME_RELEASE}
 	fi
- 	exit ;;
+	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
 	exit ;;
@@ -530,7 +555,7 @@ EOF
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[4567])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -573,8 +598,8 @@ EOF
 	    9000/[678][0-9][0-9])
 		if [ -x /usr/bin/getconf ]; then
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
+		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+		    case "${sc_cpu_version}" in
                       523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
                       528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
                       532)                      # CPU_PA_RISC2_0
@@ -638,7 +663,7 @@ EOF
 	    # => hppa64-hp-hpux11.23
 
 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
+		grep -q __LP64__
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -709,22 +734,22 @@ EOF
 	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit ;;
+	exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit ;;
+	exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit ;;
+	exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit ;;
+	exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit ;;
+	exit ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
@@ -751,7 +776,7 @@ EOF
 	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
 	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
 	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit ;;
+	exit ;;
     5000:UNIX_System_V:4.*:*)
 	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
 	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
@@ -767,20 +792,18 @@ EOF
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
 	exit ;;
     *:FreeBSD:*:*)
-	case ${UNAME_MACHINE} in
-	    pc98)
-		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+    	UNAME_PROCESSOR=`/usr/bin/uname -p`
+    	case ${UNAME_PROCESSOR} in
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
 	    *)
-		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
 	esac
 	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit ;;
-    i*:MSYS_NT-*:*:*)
+    *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
     i*:windows32*:*)
@@ -790,15 +813,24 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    x86:Interix*:[345]*)
-	echo i586-pc-interix${UNAME_RELEASE}
-	exit ;;
-    EM64T:Interix*:[345]*)
-	echo x86_64-unknown-interix${UNAME_RELEASE}
-	exit ;;
+    *:Interix*:*)
+	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -828,7 +860,37 @@ EOF
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	    EV5)   UNAME_MACHINE=alphaev5 ;;
+	    EV56)  UNAME_MACHINE=alphaev56 ;;
+	    PCA56) UNAME_MACHINE=alphapca56 ;;
+	    PCA57) UNAME_MACHINE=alphapca56 ;;
+	    EV6)   UNAME_MACHINE=alphaev6 ;;
+	    EV67)  UNAME_MACHINE=alphaev67 ;;
+	    EV68*) UNAME_MACHINE=alphaev68 ;;
+	esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
     arm*:Linux:*:*)
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null | \
+	    grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+		| grep -q __ARM_PCS_VFP
+	    then
+		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	    else
+		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+	    fi
+	fi
+	exit ;;
+    avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     cris:Linux:*:*)
@@ -840,6 +902,17 @@ EOF
     frv:Linux:*:*)
 	echo frv-unknown-linux-gnu
 	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^        //' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
@@ -849,74 +922,33 @@ EOF
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-		/^CPU/{
-			s: ::g
-			p
-		}'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    mips64:Linux:*:*)
+    mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#undef CPU
-	#undef mips64
-	#undef mips64el
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
+	CPU=${UNAME_MACHINE}el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
+	CPU=${UNAME_MACHINE}
 	#else
 	CPU=
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-		/^CPU/{
-			s: ::g
-			p
-		}'`"
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
 	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-    	echo or32-unknown-linux-gnu
-    	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo or32-unknown-linux-gnu
 	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
 	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
@@ -926,8 +958,11 @@ EOF
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
@@ -941,75 +976,18 @@ EOF
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
+    tile*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     vax:Linux:*:*)
 	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
 	echo x86_64-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
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__sun)
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-		/^LIBC/{
-			s: ::g
-			p
-		}'`"
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
+    xtensa*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1017,11 +995,11 @@ EOF
 	echo i386-sequent-sysv4
 	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
+	# Unixware is an offshoot of SVR4, but it has its own version
+	# number series starting with 2...
+	# I am not positive that other SVR4 systems won't match this,
 	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
+	# Use sysv4.2uw... so that sysv4* matches it.
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
 	exit ;;
     i*86:OS/2:*:*)
@@ -1038,7 +1016,7 @@ EOF
     i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     i*86:*DOS:*:*)
@@ -1081,10 +1059,13 @@ EOF
 	exit ;;
     pc:*:*:*)
 	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit ;;
+	# uname -m prints for DJGPP always 'pc', but it prints nothing about
+	# the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
+	exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
 	exit ;;
@@ -1119,8 +1100,18 @@ EOF
 	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
 	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && { echo i486-ncr-sysv4; exit; } ;;
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	   && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1133,7 +1124,7 @@ EOF
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
@@ -1154,9 +1145,9 @@ EOF
 	fi
 	exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit ;;
+	              # says <Richard.M.Bartel@ccMail.Census.GOV>
+	echo i586-unisys-sysv4
+	exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes@openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
@@ -1186,7 +1177,7 @@ EOF
 	else
 	        echo mips-unknown-sysv${UNAME_RELEASE}
 	fi
-        exit ;;
+	exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
 	exit ;;
@@ -1196,6 +1187,9 @@ EOF
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1205,6 +1199,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 ;;
@@ -1214,6 +1217,16 @@ EOF
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		    if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+			(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+			grep IS_64BIT_ARCH >/dev/null
+		    then
+			UNAME_PROCESSOR="x86_64"
+		    fi
+		fi ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1229,6 +1242,9 @@ EOF
     *:QNX:*:4*)
 	echo i386-pc-qnx
 	exit ;;
+    NEO-?:NONSTOP_KERNEL:*:*)
+	echo neo-tandem-nsk${UNAME_RELEASE}
+	exit ;;
     NSE-?:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
 	exit ;;
@@ -1295,6 +1311,9 @@ EOF
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1455,9 +1474,9 @@ This script, last modified $timestamp, h
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff -Nurp --exclude='.bzr*' tin-1.8.3/config.sub tin-2.0.0/config.sub
--- tin-1.8.3/config.sub	2006-03-08 12:42:53.000000000 +0100
+++ tin-2.0.0/config.sub	2011-08-17 00:06:14.281816503 +0200
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+#   2011 Free Software Foundation, Inc.
 
-timestamp='2006-03-07'
+timestamp='2011-08-15'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -31,13 +32,16 @@ timestamp='2006-03-07'
 
 
 # Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -71,7 +75,8 @@ Report bugs and patches to <config-patch
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
@@ -119,8 +124,10 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
-  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -147,10 +154,13 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
+	-apple | -axis | -knuth | -cray | -microblaze)
 		os=
 		basic_machine=$1
 		;;
+	-bluegene*)
+		os=-cnk
+		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
 		basic_machine=$1
@@ -165,10 +175,10 @@ case $os in
 		os=-chorusos
 		basic_machine=$1
 		;;
- 	-chorusrdb)
- 		os=-chorusrdb
+	-chorusrdb)
+		os=-chorusrdb
 		basic_machine=$1
- 		;;
+		;;
 	-hiux*)
 		os=-hiuxwe2
 		;;
@@ -236,24 +246,29 @@ case $basic_machine in
 	# Recognize the basic CPU types without company name.
 	# Some are omitted here because they have special meanings below.
 	1750a | 580 \
+	| 32e[bl] | 64e[bl] \
 	| a29k \
 	| 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 \
+	| lm32 \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
+	| mips64octeon | mips64octeonel \
 	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -266,30 +281,42 @@ case $basic_machine in
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| moxie \
 	| mt \
 	| msp430 \
+	| nds32 | nds32le | nds32be \
 	| nios | nios2 \
 	| ns16k | ns32k \
+	| open8 \
 	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-	| strongarm \
-	| tahoe | thumb | tic4x | tic80 | tron \
-	| v850 | v850e \
+	| spu \
+	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
+	| ubicom32 \
+	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
 	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
+	| x86 | xc16x | xstormy16 | xtensa \
+	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
-	m32c)
-		basic_machine=$basic_machine-unknown
+	c54x)
+		basic_machine=tic54x-unknown
+		;;
+	c55x)
+		basic_machine=tic55x-unknown
+		;;
+	c6x)
+		basic_machine=tic6x-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
 		os=-none
@@ -299,7 +326,15 @@ case $basic_machine in
 	ms1)
 		basic_machine=mt-unknown
 		;;
-
+	strongarm | thumb | xscale)
+		basic_machine=arm-unknown
+		;;
+	xscaleeb)
+		basic_machine=armeb-unknown
+		;;
+	xscaleel)
+		basic_machine=armel-unknown
+		;;
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
 	# (2) the word "unknown" tends to confuse beginning users.
@@ -313,30 +348,34 @@ case $basic_machine in
 		;;
 	# Recognize the basic CPU types with company name.
 	580-* \
+	| 32e[bl]-* | 64e[bl]-* \
 	| a29k-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| 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-* \
+	| c[123]* | c30-* | [cjt]90-* | c4x-* \
 	| 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-* \
+	| lm32-* \
+	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
+	| mips64octeon-* | mips64octeonel-* \
 	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -351,29 +390,36 @@ case $basic_machine in
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
+	| nds32-* | nds32le-* | nds32be-* \
 	| nios-* | nios2-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
+	| open8-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
 	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+	| tahoe-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tile-* \
 	| tron-* \
-	| v850-* | v850e-* | vax-* \
+	| ubicom32-* \
+	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
+	| vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-*)
+	| z8k-* | z80-*)
 		;;
-	m32c-*)
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
 		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
@@ -437,6 +483,10 @@ case $basic_machine in
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -445,10 +495,35 @@ case $basic_machine in
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
+	c54x-*)
+		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c55x-*)
+		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
+	c6x-*)
+		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
 		;;
+	cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
 	convex-c1)
 		basic_machine=c1-convex
 		os=-bsd
@@ -477,8 +552,8 @@ case $basic_machine in
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16 | cr16-*)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -516,6 +591,10 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
 	djgpp)
 		basic_machine=i586-pc
 		os=-msdosdjgpp
@@ -670,6 +749,14 @@ case $basic_machine in
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -681,10 +768,17 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
+	microblaze)
+		basic_machine=microblaze-xilinx
+		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
 		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
@@ -717,6 +811,10 @@ case $basic_machine in
 		basic_machine=i370-ibm
 		os=-mvs
 		;;
+	nacl)
+		basic_machine=32el-unknown
+		os=-nacl
+		;;
 	ncr3000)
 		basic_machine=i486-ncr
 		os=-sysv4
@@ -745,10 +843,10 @@ case $basic_machine in
 		basic_machine=v70-nec
 		os=-sysv
 		;;
-	next | m*-next )
+	next | m*-next)
 		basic_machine=m68k-next
 		case $os in
-		    -nextstep* )
+		    -nextstep*)
 			;;
 		    -ns2*)
 		      os=-nextstep2
@@ -781,6 +879,12 @@ case $basic_machine in
 	np1)
 		basic_machine=np1-gould
 		;;
+	neo-tandem)
+		basic_machine=neo-tandem
+		;;
+	nse-tandem)
+		basic_machine=nse-tandem
+		;;
 	nsr-tandem)
 		basic_machine=nsr-tandem
 		;;
@@ -811,6 +915,14 @@ case $basic_machine in
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -853,11 +965,14 @@ case $basic_machine in
 	pn)
 		basic_machine=pn-gould
 		;;
-	power)	basic_machine=power-ibm
+	power)
+		basic_machine=power-ibm
 		;;
-	ppc)	basic_machine=powerpc-unknown
+	ppc | ppcbe)
+		basic_machine=powerpc-unknown
 		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+	ppc-* | ppcbe-*)
+		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
 	ppcle | powerpclittle | ppc-le | powerpc-little)
 		basic_machine=powerpcle-unknown
@@ -865,9 +980,11 @@ case $basic_machine in
 	ppcle-* | powerpclittle-*)
 		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
-	ppc64)	basic_machine=powerpc64-unknown
+	ppc64)
+		basic_machine=powerpc64-unknown
 		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+	ppc64-*)
+		basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
 		;;
 	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
 		basic_machine=powerpc64le-unknown
@@ -912,6 +1029,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 +1044,9 @@ case $basic_machine in
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
 	sh64)
 		basic_machine=sh64-unknown
 		;;
@@ -944,6 +1068,9 @@ case $basic_machine in
 		basic_machine=i860-stratus
 		os=-sysv4
 		;;
+	strongarm-* | thumb-*)
+		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	sun2)
 		basic_machine=m68000-sun
 		;;
@@ -1000,17 +1127,9 @@ case $basic_machine in
 		basic_machine=t90-cray
 		os=-unicos
 		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
+	tile*)
+		basic_machine=$basic_machine-unknown
+		os=-linux-gnu
 		;;
 	tx39)
 		basic_machine=mipstx39-unknown
@@ -1079,6 +1198,9 @@ case $basic_machine in
 	xps | xps100)
 		basic_machine=xps100-honeywell
 		;;
+	xscale-* | xscalee[bl]-*)
+		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
+		;;
 	ymp)
 		basic_machine=ymp-cray
 		os=-unicos
@@ -1087,6 +1209,10 @@ case $basic_machine in
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1125,7 +1251,7 @@ case $basic_machine in
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1175,6 +1301,9 @@ case $os in
 	# First match some system type aliases
 	# that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
+	-auroraux)
+		os=-auroraux
+		;;
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
@@ -1195,10 +1324,11 @@ case $os in
 	# Each alternative MUST END IN A *, to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
+	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1207,9 +1337,10 @@ case $os in
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -mingw32* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1217,7 +1348,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* | -es*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1292,7 +1423,7 @@ case $os in
 	-nova*)
 		os=-rtmk-nova
 		;;
-	-ns2 )
+	-ns2)
 		os=-nextstep2
 		;;
 	-nsk*)
@@ -1347,6 +1478,11 @@ case $os in
 	-zvmoe)
 		os=-zvmoe
 		;;
+	-dicos*)
+		os=-dicos
+		;;
+	-nacl*)
+		;;
 	-none)
 		;;
 	*)
@@ -1369,6 +1505,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
 		;;
@@ -1381,6 +1523,15 @@ case $basic_machine in
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	tic54x-*)
+		os=-coff
+		;;
+	tic55x-*)
+		os=-coff
+		;;
+	tic6x-*)
+		os=-coff
+		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
@@ -1406,6 +1557,9 @@ case $basic_machine in
 	m68*-cisco)
 		os=-aout
 		;;
+	mep-*)
+		os=-elf
+		;;
 	mips*-cisco)
 		os=-elf
 		;;
@@ -1466,7 +1620,7 @@ case $basic_machine in
 	m88k-omron*)
 		os=-luna
 		;;
-	*-next )
+	*-next)
 		os=-nextstep
 		;;
 	*-sequent)
@@ -1535,7 +1689,7 @@ case $basic_machine in
 			-sunos*)
 				vendor=sun
 				;;
-			-aix*)
+			-cnk*|-aix*)
 				vendor=ibm
 				;;
 			-beos*)
diff -Nurp --exclude='.bzr*' tin-1.8.3/configure tin-2.0.0/configure
--- tin-1.8.3/configure	2007-02-01 14:11:14.000000000 +0100
+++ tin-2.0.0/configure	2011-08-23 00:03:55.533379469 +0200
@@ -1,7 +1,7 @@
 #! /bin/sh
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.13.20030927 
+# Generated automatically using autoconf version 2.13.20110430 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -190,7 +190,7 @@ cat <<\EOF
   --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)
   --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)
   --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)
-  --with-build-libs=XXX   the build libraries ($(BUILD_LIBS)
+  --with-build-libs=XXX   the build libraries (${BUILD_LIBS})
   --with-ispell           (default: from system path)
   --with-metamail         (default: from system path)
   --with-sum              (default: from system path)
@@ -203,21 +203,21 @@ cat <<\EOF
   --with-pgp              (default: from system path)
   --with-pgpk             (default: from system path)
   --with-gpg              (default: from system path)
+  --with-slrnface         (default: from system path)
   --with-shell=PROG       default $SHELL program (default: sh)
   --disable-nntp          disable reading via NNTP
   --enable-nntp-only      enable reading via NNTP only
-  --enable-debug          turn on debug/profiling/traces
+  --enable-debug          turn on debug support
   --disable-echo          display "compiling" commands
   --enable-prototypes     check for optional prototypes
   --enable-warnings       turn on GCC compiler warnings
-  --with-libdir=PATH      news-library (default: /usr/lib/news)
 EOF
 cat <<\EOF
+  --with-libdir=PATH      news-library (default: /usr/lib/news)
   --with-spooldir=PATH    news spool-directory (default: /var/spool/news)
   --with-nov-dir=PATH     news overview-directory (default: $SPOOLDIR)
   --with-nov-fname        specify names of overview files (default: .overview)
   --with-inews-dir=PATH   directory containing "inews" (default: $INEWSPATH)
-  --with-inn-nntplib=PATH specify INN-NNTP library (default: empty)
   --with-socks[=path]     link with socks library if available
   --with-socks5[=path]    link with socks5 library if available
   --disable-fcntl         disable fcntl() locking
@@ -230,23 +230,25 @@ cat <<\EOF
   --with-curses-dir=DIR   directory in which (n)curses is installed
 EOF
 cat <<\EOF
-  --with-ncurses          link with ncurses if available (depriciated)
-  --enable-curses         use curses interface (depriciated)
+  --with-ncurses          link with ncurses if available (deprecated)
+  --enable-curses         use curses interface (deprecated)
   --with-pcre=PATH        use installed pcre versus bundled
-  --with-dbmalloc         use Conor Cahill's dbmalloc library
-  --with-dmalloc          use Gray Watson's dmalloc library
-  --with-trace            use debugging/traces
+  --with-dbmalloc         test: use Conor Cahill's dbmalloc library
+  --with-dmalloc          test: use Gray Watson's dmalloc library
+  --with-trace            use debugging/traces for screen output
   --with-domain-name      sets $DOMAIN_NAME (default: empty)
   --with-nntp-default-server
                           (sets NNTP_DEFAULT_SERVER)
                           (default: news.$DOMAIN_NAME)
   --enable-mh-mail-handling
                           use MH style mail handling for mailgroups
+  --enable-cancel-locks   enable creation of Cancel-Locks
+  --disable-gsasl         don't use GNU SASL
   --disable-8bit-keys     disable 8-bit keycode support
-  --disable-color         disable ANSI-color support
-  --disable-etiquette     disable printing of posting-etiquette
 EOF
 cat <<\EOF
+  --disable-color         disable ANSI-color support
+  --disable-etiquette     disable printing of posting-etiquette
   --enable-break-long-lines
                           break long mime-encoded lines
   --disable-mime-strict-charset
@@ -261,10 +263,10 @@ cat <<\EOF
                           have fascist newsadmin
   --disable-inverse-video disable inverse video and highlighting
   --disable-piping        disable piping support
-  --disable-printing      disable printer support
-  --disable-append-pid    disable appending .pid to tmp-files
 EOF
 cat <<\EOF
+  --disable-printing      disable printer support
+  --disable-append-pid    disable appending .pid to tmp-files
   --disable-xhdr-xref     disable XHDR XREF fallback
   --enable-broken-listgroup-fix
                           send extra GROUP command before LISTGROUP
@@ -279,13 +281,15 @@ cat <<\EOF
                           search for libiconv in DIR/include and DIR/lib
   --disable-nls           do not use Native Language Support
   --with-included-gettext use the GNU gettext library included here
-  --disable-included-msgs use included messages, for i18n support
-  --with-x                use the X Window System
-  --with-Xaw3d            link with Xaw 3d library
+  --with-textdomain=PKG   NLS text-domain (default is package name)
 EOF
 cat <<\EOF
+  --disable-included-msgs use included messages, for i18n support
+  --with-Xaw3d            link with Xaw 3d library
   --with-neXtaw           link with neXT Athena library
   --with-XawPlus          link with Athena-Plus library
+  --with-pkg-config{=path} enable/disable use of pkg-config
+  --with-x                use the X Window System
 EOF
     exit 0 ;;
 
@@ -436,7 +440,7 @@ EOF
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.13.20030927"
+    echo "configure generated by autoconf version 2.13.20110430"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -623,247 +627,12 @@ else
   ac_n= ac_c='\c' ac_t=
 fi
 
-# If we find X, set shell vars x_includes and x_libraries to the
-# paths, otherwise set no_x=yes.
-# Uses ac_ vars as temps to allow command line to override cache and checks.
-# --without-x overrides everything else, but does not touch the cache.
-echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:632: checking for X" >&5
-
-
-# Check whether --with-x or --without-x was given.
-if test "${with_x+set}" = set; then
-  withval="$with_x"
-  :
-fi
-
-# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
-if test "x$with_x" = xno; then
-  # The user explicitly disabled X.
-  have_x=disabled
-else
-  if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
-    # Both variables are already set.
-    have_x=yes
-  else
-if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  # One or both of the vars are not set, and there is no cached value.
-ac_x_includes=NO ac_x_libraries=NO
-rm -fr conftestdir
-if mkdir conftestdir; then
-  cd conftestdir
-  # Make sure to not put "make" in the Imakefile rules, since we grep it out.
-  cat > Imakefile <<'EOF'
-acfindx:
-	@echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
-EOF
-  if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
-    # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-    eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
-    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
-    for ac_extension in a so sl; do
-      if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
-        test -f $ac_im_libdir/libX11.$ac_extension; then
-        ac_im_usrlibdir=$ac_im_libdir; break
-      fi
-    done
-    # Screen out bogus values from the imake configuration.  They are
-    # bogus both because they are the default anyway, and because
-    # using them would break gcc on systems where it needs fixed includes.
-    case "$ac_im_incroot" in
-	/usr/include) ;;
-	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
-    esac
-    case "$ac_im_usrlibdir" in
-	/usr/lib | /lib) ;;
-	*) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
-    esac
-  fi
-  cd ..
-  rm -fr conftestdir
-fi
-
-if test "$ac_x_includes" = NO; then
-  # Guess where to find include files, by looking for this one X11 .h file.
-  test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
-
-  # First, try using that file with no special directory specified.
-cat > conftest.$ac_ext <<EOF
-#line 695 "configure"
-#include "confdefs.h"
-#include <$x_direct_test_include>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:700: \"$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*
-  # We can compile using X headers with no special include directory.
-ac_x_includes=
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  # Look for the header file in a standard set of common directories.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-  for ac_dir in               \
-    /usr/X11/include          \
-    /usr/X11R6/include        \
-    /usr/X11R5/include        \
-    /usr/X11R4/include        \
-                              \
-    /usr/include/X11          \
-    /usr/include/X11R6        \
-    /usr/include/X11R5        \
-    /usr/include/X11R4        \
-                              \
-    /usr/local/X11/include    \
-    /usr/local/X11R6/include  \
-    /usr/local/X11R5/include  \
-    /usr/local/X11R4/include  \
-                              \
-    /usr/local/include/X11    \
-    /usr/local/include/X11R6  \
-    /usr/local/include/X11R5  \
-    /usr/local/include/X11R4  \
-                              \
-    /usr/X386/include         \
-    /usr/x386/include         \
-    /usr/XFree86/include/X11  \
-                              \
-    /usr/include              \
-    /usr/local/include        \
-    /usr/unsupported/include  \
-    /usr/athena/include       \
-    /usr/local/x11r5/include  \
-    /usr/lpp/Xamples/include  \
-                              \
-    /usr/openwin/include      \
-    /usr/openwin/share/include \
-    ; \
-  do
-    if test -r "$ac_dir/$x_direct_test_include"; then
-      ac_x_includes=$ac_dir
-      break
-    fi
-  done
-fi
-rm -f conftest*
-fi # $ac_x_includes = NO
-
-if test "$ac_x_libraries" = NO; then
-  # Check for the libraries.
-
-  test -z "$x_direct_test_library" && x_direct_test_library=Xt
-  test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
-
-  # See if we find them without any special options.
-  # Don't add to $LIBS permanently.
-  ac_save_LIBS="$LIBS"
-  LIBS="-l$x_direct_test_library $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 769 "configure"
-#include "confdefs.h"
-
-int main() {
-${x_direct_test_function}()
-; return 0; }
-EOF
-if { (eval echo configure:776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  LIBS="$ac_save_LIBS"
-# We can link X programs with no special library path.
-ac_x_libraries=
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  LIBS="$ac_save_LIBS"
-# First see if replacing the include by lib works.
-# Check X11 before X11Rn because it is often a symlink to the current release.
-for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
-    /usr/X11/lib          \
-    /usr/X11R6/lib        \
-    /usr/X11R5/lib        \
-    /usr/X11R4/lib        \
-                          \
-    /usr/lib/X11          \
-    /usr/lib/X11R6        \
-    /usr/lib/X11R5        \
-    /usr/lib/X11R4        \
-                          \
-    /usr/local/X11/lib    \
-    /usr/local/X11R6/lib  \
-    /usr/local/X11R5/lib  \
-    /usr/local/X11R4/lib  \
-                          \
-    /usr/local/lib/X11    \
-    /usr/local/lib/X11R6  \
-    /usr/local/lib/X11R5  \
-    /usr/local/lib/X11R4  \
-                          \
-    /usr/X386/lib         \
-    /usr/x386/lib         \
-    /usr/XFree86/lib/X11  \
-                          \
-    /usr/lib              \
-    /usr/local/lib        \
-    /usr/unsupported/lib  \
-    /usr/athena/lib       \
-    /usr/local/x11r5/lib  \
-    /usr/lpp/Xamples/lib  \
-    /lib/usr/lib/X11	  \
-                          \
-    /usr/openwin/lib      \
-    /usr/openwin/share/lib \
-    ; \
-do
-  for ac_extension in a so sl; do
-    if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
-      ac_x_libraries=$ac_dir
-      break 2
-    fi
-  done
-done
-fi
-rm -f conftest*
-fi # $ac_x_libraries = NO
-
-if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
-  # Didn't find X anywhere.  Cache the known absence of X.
-  ac_cv_have_x="have_x=no"
-else
-  # Record where we found X for the cache.
-  ac_cv_have_x="have_x=yes \
-	        ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
-fi
-fi
-  fi
-  eval "$ac_cv_have_x"
-fi # $with_x != no
-
-if test "$have_x" != yes; then
-  echo "$ac_t""$have_x" 1>&6
-  no_x=yes
-else
-  # If each of the values was on the command line, it overrides each guess.
-  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
-  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
-  # Update the cache value to reflect the command line values.
-  ac_cv_have_x="have_x=yes \
-		ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
-  echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6
-fi
-
 
 
 
 
 PACKAGE=tin
-VERSION=1.8.3
+VERSION=2.0.0
 cat >> confdefs.h <<EOF
 #define PACKAGE "$PACKAGE"
 EOF
@@ -903,7 +672,7 @@ else { echo "configure: error: can not r
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:907: checking host system type" >&5
+echo "configure:676: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -951,12 +720,27 @@ fi
 
 
 
+	case $cf_cv_system_name in
+	os2*)	PATH_SEPARATOR=';'  ;;
+	*)	PATH_SEPARATOR=':'  ;;
+	esac
+
+	
+
+
 # Check whether --with-install-prefix or --without-install-prefix was given.
 if test "${with_install_prefix+set}" = set; then
   withval="$with_install_prefix"
   :
 else
-  withval="${DESTDIR-/}"
+  withval="${DESTDIR:-/}"
+fi
+if true ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
 fi
 
 case ".$withval" in #(vi
@@ -970,19 +754,20 @@ 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"
+fi
+DESTDIR="$withval"
 
 case ".$DESTDIR" in # (vi
 ./)	DESTDIR=
@@ -992,14 +777,34 @@ case ".$DESTDIR" in # (vi
 	;;
 esac
 
-###	Compiler/options that autoconf doesn't get right
+if test "$program_transform_name" = s,x,x,; then
+  program_transform_name=
+else
+  # Double any \ or $.  echo might interpret backslashes.
+  cat <<\EOF_SED > conftestsed
+s,\\,\\\\,g; s,\$,$$,g
+EOF_SED
+  program_transform_name="`echo $program_transform_name|sed -f conftestsed`"
+  rm -f conftestsed
+fi
+test "$program_prefix" != NONE &&
+  program_transform_name="s,^,${program_prefix},; $program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+  program_transform_name="s,\$\$,${program_suffix},; $program_transform_name"
+
+# sed with no file args requires a program.
+test "$program_transform_name" = "" && program_transform_name="s,x,x,"
+
+
+###	Compiler/options that autoconf doesn't get right
 case "$host_os" in
 	aix*)	#(vi
 		if test "$CC" = ""; then
 			# 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:808: 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
@@ -1042,14 +847,14 @@ fi
 esac
 
 ### Native Language Support
-ALL_LINGUAS="de en_GB et fr ru rw sv tr"
+ALL_LINGUAS="da de en_GB et fr ru sv tr"
 
 ### Checks for programs
 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:858: 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 +884,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:888: 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 +935,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:939: 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 +967,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:971: 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 +978,12 @@ cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext << EOF
 
-#line 1177 "configure"
+#line 982 "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:987: \"$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 +1009,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:1013: 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:1018: 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 +1023,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:1027: \"$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 +1042,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:1046: 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 +1074,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:1078: 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 +1089,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 1093 "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:1099: \"$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 +1106,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 1305 "configure"
+#line 1110 "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:1116: \"$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 +1123,13 @@ else
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 1322 "configure"
+#line 1127 "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:1133: \"$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 +1155,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:1159: 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 1165 "configure"
 #include "confdefs.h"
 #include <sgtty.h>
 Autoconf TIOCGETP
@@ -1374,7 +1179,7 @@ rm -f conftest*
 
   if test $ac_cv_prog_gcc_traditional = no; then
     cat > conftest.$ac_ext <<EOF
-#line 1378 "configure"
+#line 1183 "configure"
 #include "confdefs.h"
 #include <termio.h>
 Autoconf TCGETA
@@ -1396,7 +1201,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:1205: 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 +1239,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:1243: 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 +1316,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:1320: 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:1323: \"$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:1327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest ; then
           cf_result=yes
         fi
       else
@@ -1542,7 +1347,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:1351: 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 +1378,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:1382: checking for AIX" >&5
 cat > conftest.$ac_ext <<EOF
-#line 1579 "configure"
+#line 1384 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -1597,82 +1402,51 @@ 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
-if eval "test \"`echo '$''{'cf_cv_cc_u_d_options'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-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"
-#include "confdefs.h"
-
-int main() {
-
-#ifndef U_D_OPTIONS
-make an undefined-error
-#endif
-#ifdef  D_U_OPTIONS
-make a defined-error
-#endif
-	
-; return 0; }
-EOF
-if { (eval echo configure:1624: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  
-	cf_cv_cc_u_d_options=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-	cf_cv_cc_u_d_options=no
-fi
-rm -f conftest*
-	CPPFLAGS="$cf_save_CPPFLAGS"
-
-fi
-
-echo "$ac_t""$cf_cv_cc_u_d_options" 1>&6
-
-
-
-
 
 cf_XOPEN_SOURCE=500
 cf_POSIX_C_SOURCE=199506L
+cf_xopen_source=
 
 case $host_os in #(vi
-aix[45]*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+aix[456]*) #(vi
+	cf_xopen_source="-D_ALL_SOURCE"
 	;;
-freebsd*) #(vi
+cygwin) #(vi
+	cf_XOPEN_SOURCE=600
+	;;
+darwin[0-8].*) #(vi
+	cf_xopen_source="-D_APPLE_C_SOURCE"
+	;;
+darwin*) #(vi
+	cf_xopen_source="-D_DARWIN_C_SOURCE"
+	;;
+freebsd*|dragonfly*) #(vi
 	# 5.x headers associate
 	#	_XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
 	#	_XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
 	cf_POSIX_C_SOURCE=200112L
 	cf_XOPEN_SOURCE=600
-	CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+	cf_xopen_source="-D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+	;;
+hpux11*) #(vi
+	cf_xopen_source="-D_HPUX_SOURCE -D_XOPEN_SOURCE=500"
 	;;
 hpux*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+	cf_xopen_source="-D_HPUX_SOURCE"
 	;;
 irix[56].*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+	cf_xopen_source="-D_SGI_SOURCE"
 	;;
-linux*|gnu*) #(vi
+linux*|gnu*|mint*|k*bsd*-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:1444: 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 1450 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1682,7 +1456,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:1460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1692,7 +1466,7 @@ else
   cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 1696 "configure"
+#line 1470 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1702,7 +1476,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:1480: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_gnu_source=no
 else
@@ -1733,26 +1507,29 @@ openbsd*) #(vi
 	# setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
 	;;
 osf[45]*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+	cf_xopen_source="-D_OSF_SOURCE"
 	;;
 nto-qnx*) #(vi
-	CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
+	cf_xopen_source="-D_QNX_SOURCE"
 	;;
 sco*) #(vi
 	# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
 	;;
-solaris*) #(vi
-	CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+solaris2.1[0-9]) #(vi
+	cf_xopen_source="-D__EXTENSIONS__ -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+	;;
+solaris2.[1-9]) #(vi
+	cf_xopen_source="-D__EXTENSIONS__"
 	;;
 *)
 	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:1527: 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 1533 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1762,7 +1539,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:1543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_xopen_source=no
 else
@@ -1772,7 +1549,7 @@ else
   cf_save="$CPPFLAGS"
 	 CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
 	 cat > conftest.$ac_ext <<EOF
-#line 1776 "configure"
+#line 1553 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1782,7 +1559,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:1563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_xopen_source=no
 else
@@ -1802,20 +1579,98 @@ fi
 echo "$ac_t""$cf_cv_xopen_source" 1>&6
 	if test "$cf_cv_xopen_source" != no ; then
 		
-# remove _XOPEN_SOURCE symbol from $CFLAGS
 CFLAGS=`echo "$CFLAGS" | \
-	sed	-e 's/-[UD]_XOPEN_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
-		-e 's/-[UD]_XOPEN_SOURCE\(=[^ 	]*\)\?$//g'`
+	sed	-e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ 	]*\)\?$//g'`
+
+		
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"_XOPEN_SOURCE"'\(=[^ 	]*\)\?$//g'`
 
+		cf_temp_xopen_source="-D_XOPEN_SOURCE=$cf_cv_xopen_source"
 		
-# remove _XOPEN_SOURCE symbol from $CPPFLAGS
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_temp_xopen_source
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
 CPPFLAGS=`echo "$CPPFLAGS" | \
-	sed	-e 's/-[UD]_XOPEN_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
-		-e 's/-[UD]_XOPEN_SOURCE\(=[^ 	]*\)\?$//g'`
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			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="$CPPFLAGS $cf_new_cppflags"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+
+
 
-		test "$cf_cv_cc_u_d_options" = yes && \
-			CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
-		CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
 	fi
 	
 cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
@@ -1824,29 +1679,27 @@ cf_save_CFLAGS="$CFLAGS"
 cf_save_CPPFLAGS="$CPPFLAGS"
 
 
-# remove _POSIX_C_SOURCE symbol from $cf_save_CFLAGS
 cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
-	sed	-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
-		-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?$//g'`
+	sed	-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?$//g'`
 
 
-# remove _POSIX_C_SOURCE symbol from $cf_save_CPPFLAGS
 cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
-	sed	-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?[ 	]/ /g' \
-		-e 's/-[UD]_POSIX_C_SOURCE\(=[^ 	]*\)\?$//g'`
+	sed	-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"_POSIX_C_SOURCE"'\(=[^ 	]*\)\?$//g'`
 
 
 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:1694: 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 "${as_me:-configure}:1700: testing if the symbol is already defined go no further ..." 1>&5
 
 	cat > conftest.$ac_ext <<EOF
-#line 1850 "configure"
+#line 1703 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1856,7 +1709,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:1713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_cv_posix_c_source=no
 else
@@ -1878,7 +1731,7 @@ else
 	 esac
 	 if test "$cf_want_posix_source" = yes ; then
 		cat > conftest.$ac_ext <<EOF
-#line 1882 "configure"
+#line 1735 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1888,7 +1741,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:1745: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -1899,15 +1752,15 @@ fi
 rm -f conftest*
 	 fi
 	 
-echo "(line 1903) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+echo "${as_me:-configure}:1756: 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 "${as_me:-configure}:1761: testing if the second compile does not leave our definition intact error ..." 1>&5
 
 	 cat > conftest.$ac_ext <<EOF
-#line 1911 "configure"
+#line 1764 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
@@ -1917,7 +1770,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:1774: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   :
 else
   echo "configure: failed program was:" >&5
@@ -1939,93 +1792,13 @@ echo "$ac_t""$cf_cv_posix_c_source" 1>&6
 if test "$cf_cv_posix_c_source" != no ; then
 	CFLAGS="$cf_trim_CFLAGS"
 	CPPFLAGS="$cf_trim_CPPFLAGS"
-	if test "$cf_cv_cc_u_d_options" = yes ; then
-		cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
-				sed -e 's/-D/-U/g' -e 's/=[^ 	]*//g'`
-		CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
-	fi
-	CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
-fi
-
-
-	;;
-esac
-
-
-        echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
-echo "configure:1957: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lcposix  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 1965 "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
-    builtin and then its argument prototype would still apply.  */
-char strerror();
-
-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
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -lcposix"
-else
-  echo "$ac_t""no" 1>&6
-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
-if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-cf_cv_ansi_cc=no
-cf_save_CFLAGS="$CFLAGS"
-cf_save_CPPFLAGS="$CPPFLAGS"
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX			-Aa -D_HPUX_SOURCE
-# SVR4			-Xc
-# UnixWare 1.2		(cannot use -Xc, since ANSI/POSIX clashes)
-for cf_arg in "-DCC_HAS_PROTOS" \
-	"" \
-	-qlanglvl=ansi \
-	-std1 \
-	-Ae \
-	"-Aa -D_HPUX_SOURCE" \
-	-Xc
-do
 	
 cf_fix_cppflags=no
 cf_new_cflags=
 cf_new_cppflags=
 cf_new_extra_cppflags=
 
-for cf_add_cflags in $cf_arg
+for cf_add_cflags in $cf_cv_posix_c_source
 do
 case $cf_fix_cppflags in
 no)
@@ -2036,8 +1809,8 @@ no)
 			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
+				&& 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"
@@ -2052,6 +1825,16 @@ no)
 		*$cf_add_cflags) #(vi
 			;;
 		*) #(vi
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
 			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
 			;;
 		esac
@@ -2067,8 +1850,8 @@ yes)
 	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
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
 	;;
 esac
 done
@@ -2080,7 +1863,7 @@ fi
 
 if test -n "$cf_new_cppflags" ; then
 	
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -2091,48 +1874,20 @@ fi
 
 
 
-	cat > conftest.$ac_ext <<EOF
-#line 2096 "configure"
-#include "confdefs.h"
-
-#ifndef CC_HAS_PROTOS
-#if !defined(__STDC__) || (__STDC__ != 1)
-choke me
-#endif
-#endif
-
-int main() {
-
-	int test (int i, double x);
-	struct s1 {int (*f) (int a);};
-	struct s2 {int (*f) (double a);};
-; return 0; }
-EOF
-if { (eval echo configure:2112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_ansi_cc="$cf_arg"; break
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
 fi
-rm -f conftest*
-done
-CFLAGS="$cf_save_CFLAGS"
-CPPFLAGS="$cf_save_CPPFLAGS"
 
-fi
 
-echo "$ac_t""$cf_cv_ansi_cc" 1>&6
+	;;
+esac
 
-if test "$cf_cv_ansi_cc" != "no"; then
-if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+if test -n "$cf_xopen_source" ; then
 	
 cf_fix_cppflags=no
 cf_new_cflags=
 cf_new_cppflags=
 cf_new_extra_cppflags=
 
-for cf_add_cflags in $cf_cv_ansi_cc
+for cf_add_cflags in $cf_xopen_source
 do
 case $cf_fix_cppflags in
 no)
@@ -2143,8 +1898,8 @@ no)
 			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
+				&& 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"
@@ -2159,6 +1914,16 @@ no)
 		*$cf_add_cflags) #(vi
 			;;
 		*) #(vi
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
 			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
 			;;
 		esac
@@ -2174,8 +1939,8 @@ yes)
 	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
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
 	;;
 esac
 done
@@ -2187,7 +1952,7 @@ fi
 
 if test -n "$cf_new_cppflags" ; then
 	
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
@@ -2198,955 +1963,1077 @@ fi
 
 
 
-else
-	cat >> confdefs.h <<\EOF
-#define CC_HAS_PROTOS 1
-EOF
-
-fi
 fi
 
 
-if test "$cf_cv_ansi_cc" = "no"; then
-	{ echo "configure: error: Your compiler does not appear to recognize prototypes.
-You have the following choices:
-	a. adjust your compiler options
-	b. get an up-to-date compiler
-	c. use a wrapper such as unproto" 1>&2; exit 1; }
-fi
-
-echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
-echo "configure:2220: checking for Cygwin environment" >&5
-if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+echo $ac_n "checking if SIGWINCH is defined""... $ac_c" 1>&6
+echo "configure:1971: checking if SIGWINCH is defined" >&5
+if eval "test \"`echo '$''{'cf_cv_define_sigwinch'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 2225 "configure"
+  
+	cat > conftest.$ac_ext <<EOF
+#line 1977 "configure"
 #include "confdefs.h"
 
-int main() {
+#include <sys/types.h>
+#include <sys/signal.h>
 
-#ifndef __CYGWIN__
-#define __CYGWIN__ __CYGWIN32__
-#endif
-return __CYGWIN__;
+int main() {
+int x = SIGWINCH
 ; return 0; }
 EOF
-if { (eval echo configure:2236: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1987: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_cygwin=yes
+  cf_cv_define_sigwinch=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_cygwin=no
-fi
-rm -f conftest*
-rm -f conftest*
-fi
-
-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
-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 1995 "configure"
 #include "confdefs.h"
 
+#undef _XOPEN_SOURCE
+#undef _POSIX_SOURCE
+#undef _POSIX_C_SOURCE
+#include <sys/types.h>
+#include <sys/signal.h>
+
 int main() {
-return __MINGW32__;
+int x = SIGWINCH
 ; return 0; }
 EOF
-if { (eval echo configure:2265: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_mingw32=yes
+  cf_cv_define_sigwinch=maybe
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_mingw32=no
+  cf_cv_define_sigwinch=no
 fi
 rm -f conftest*
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_mingw32" 1>&6
-MINGW32=
-test "$ac_cv_mingw32" = yes && MINGW32=yes
-
-
-case $cf_cv_system_name in
-os2*)
-    CFLAGS="$CFLAGS -Zmt"
-    CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
-    CXXFLAGS="$CXXFLAGS -Zmt"
-    # autoconf's macro sets -Zexe and suffix both, which conflict:w
-    LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
-    ac_cv_exeext=.exe
-    ;;
-esac
-
 
-
-echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:2297: checking for executable suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
-  ac_cv_exeext=.exe
-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
-    for file in conftest.*; do
-      case $file in
-      *.c | *.o | *.obj) ;;
-      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
-      esac
-    done
-  else
-    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
-  fi
-  rm -f conftest*
-  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
 fi
+rm -f conftest*
+
 fi
 
-EXEEXT=""
-test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
-echo "$ac_t""${ac_cv_exeext}" 1>&6
-ac_exeext=$EXEEXT
+echo "$ac_t""$cf_cv_define_sigwinch" 1>&6
 
-echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:2328: checking for object suffix" >&5
-if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+if test "$cf_cv_define_sigwinch" = maybe ; then
+echo $ac_n "checking for actual SIGWINCH definition""... $ac_c" 1>&6
+echo "configure:2028: checking for actual SIGWINCH definition" >&5
+if eval "test \"`echo '$''{'cf_cv_fixup_sigwinch'+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
-  for ac_file in conftest.*; do
-    case $ac_file in
-    *.c) ;;
-    *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
-    esac
-  done
-else
-  { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_objext" 1>&6
-OBJEXT=$ac_cv_objext
-ac_objext=$ac_cv_objext
+  
+cf_cv_fixup_sigwinch=unknown
+cf_sigwinch=32
+while test $cf_sigwinch != 1
+do
+	cat > conftest.$ac_ext <<EOF
+#line 2038 "configure"
+#include "confdefs.h"
 
+#undef _XOPEN_SOURCE
+#undef _POSIX_SOURCE
+#undef _POSIX_C_SOURCE
+#include <sys/types.h>
+#include <sys/signal.h>
 
-PROG_EXT="$EXEEXT"
+int main() {
 
-test -n "$PROG_EXT" && cat >> confdefs.h <<EOF
-#define PROG_EXT "$PROG_EXT"
+#if SIGWINCH != $cf_sigwinch
+make an error
+#endif
+int x = SIGWINCH
+; return 0; }
 EOF
-
-
-
-	case $cf_cv_system_name in
-	OS/2*)	LIB_PREFIX=''     ;;
-	os2*)	LIB_PREFIX=''     ;;
-	*)	LIB_PREFIX='lib'  ;;
-	esac
-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
-if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  rm -f conftestdata
-if ln -s X conftestdata 2>/dev/null
-then
-  rm -f conftestdata
-  ac_cv_prog_LN_S="ln -s"
-else
-  ac_cv_prog_LN_S=ln
-fi
-fi
-LN_S="$ac_cv_prog_LN_S"
-if test "$ac_cv_prog_LN_S" = "ln -s"; then
-  echo "$ac_t""yes" 1>&6
+if { (eval echo configure:2055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_fixup_sigwinch=$cf_sigwinch
+	 break
 else
-  echo "$ac_t""no" 1>&6
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 fi
+rm -f conftest*
 
+cf_sigwinch=`expr $cf_sigwinch - 1`
+done
 
+fi
 
+echo "$ac_t""$cf_cv_fixup_sigwinch" 1>&6
 
-if test "$cross_compiling" = yes ; then
+	if test "$cf_cv_fixup_sigwinch" != unknown ; then
+		CPPFLAGS="$CPPFLAGS -DSIGWINCH=$cf_cv_fixup_sigwinch"
+	fi
+fi
 
-	# defaults that we might want to override
-	: ${BUILD_CFLAGS:=''}
-	: ${BUILD_CPPFLAGS:='-I$(INCDIR)'}
-	: ${BUILD_LDFLAGS:=''}
-	: ${BUILD_LIBS:=''}
-	: ${BUILD_EXEEXT:='$x'}
-	: ${BUILD_OBJEXT:='o'}
 
-	
-# Check whether --with-build-cc or --without-build-cc was given.
-if test "${with_build_cc+set}" = set; then
-  withval="$with_build_cc"
-  BUILD_CC="$withval"
-else
-  for ac_prog in gcc cc cl
-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
-if eval "test \"`echo '$''{'ac_cv_prog_BUILD_CC'+set}'`\" = set"; then
+        echo $ac_n "checking for strerror in -lcposix""... $ac_c" 1>&6
+echo "configure:2079: 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
 else
-  if test -n "$BUILD_CC"; then
-  ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
+  ac_save_LIBS="$LIBS"
+LIBS="-lcposix  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2087 "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
+    builtin and then its argument prototype would still apply.  */
+char strerror();
+
+int main() {
+strerror()
+; return 0; }
+EOF
+if { (eval echo configure:2098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_BUILD_CC="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-BUILD_CC="$ac_cv_prog_BUILD_CC"
-if test -n "$BUILD_CC"; then
-  echo "$ac_t""$BUILD_CC" 1>&6
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="$LIBS -lcposix"
 else
   echo "$ac_t""no" 1>&6
 fi
 
-test -n "$BUILD_CC" && break
-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 "$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
-	
-# Check whether --with-build-cpp or --without-build-cpp was given.
-if test "${with_build_cpp+set}" = set; then
-  withval="$with_build_cpp"
-  BUILD_CPP="$withval"
+echo $ac_n "checking for ${CC:-cc} option to accept ANSI C""... $ac_c" 1>&6
+echo "configure:2122: 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
-  BUILD_CPP='$(BUILD_CC) -E'
-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
+  
+cf_cv_ansi_cc=no
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX			-qlanglvl=ansi
+# Ultrix and OSF/1	-std1
+# HP-UX			-Aa -D_HPUX_SOURCE
+# SVR4			-Xc
+# UnixWare 1.2		(cannot use -Xc, since ANSI/POSIX clashes)
+for cf_arg in "-DCC_HAS_PROTOS" \
+	"" \
+	-qlanglvl=ansi \
+	-std1 \
+	-Ae \
+	"-Aa -D_HPUX_SOURCE" \
+	-Xc
+do
 	
-# Check whether --with-build-cflags or --without-build-cflags was given.
-if test "${with_build_cflags+set}" = set; then
-  withval="$with_build_cflags"
-  BUILD_CFLAGS="$withval"
-fi
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
 
-	echo "$ac_t""$BUILD_CFLAGS" 1>&6
+for cf_add_cflags in $cf_arg
+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[^=]*='\''\"[^"]*//'`
 
-	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
-	
-# Check whether --with-build-cppflags or --without-build-cppflags was given.
-if test "${with_build_cppflags+set}" = set; then
-  withval="$with_build_cppflags"
-  BUILD_CPPFLAGS="$withval"
-fi
+			test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+				&& test -z "${cf_tst_cflags}" \
+				&& cf_fix_cppflags=yes
 
-	echo "$ac_t""$BUILD_CPPFLAGS" 1>&6
+			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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
 
-	echo $ac_n "checking for native build linker-flags""... $ac_c" 1>&6
-echo "configure:2484: checking for native build linker-flags" >&5
+				;;
+			esac
+			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
 	
-# Check whether --with-build-ldflags or --without-build-ldflags was given.
-if test "${with_build_ldflags+set}" = set; then
-  withval="$with_build_ldflags"
-  BUILD_LDFLAGS="$withval"
+	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
-	echo "$ac_t""$BUILD_LDFLAGS" 1>&6
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
 
-	echo $ac_n "checking for native build linker-libraries""... $ac_c" 1>&6
-echo "configure:2495: checking for native build linker-libraries" >&5
+if test -n "$cf_new_extra_cppflags" ; then
 	
-# Check whether --with-build-libs or --without-build-libs was given.
-if test "${with_build_libs+set}" = set; then
-  withval="$with_build_libs"
-  BUILD_LIBS="$withval"
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
-	echo "$ac_t""$BUILD_LIBS" 1>&6
 
-	# this assumes we're on Unix.
-	BUILD_EXEEXT=
-	BUILD_OBJEXT=o
 
-	: ${BUILD_CC:='$(CC)'}
 
-	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '$(CC)' ) ; then
-		{ echo "configure: error: Cross-build requires two compilers.
-Use --with-build-cc to specify the native compiler." 1>&2; exit 1; }
-	fi
+	cat > conftest.$ac_ext <<EOF
+#line 2228 "configure"
+#include "confdefs.h"
+
+#ifndef CC_HAS_PROTOS
+#if !defined(__STDC__) || (__STDC__ != 1)
+choke me
+#endif
+#endif
+
+int main() {
 
+	int test (int i, double x);
+	struct s1 {int (*f) (int a);};
+	struct s2 {int (*f) (double a);};
+; return 0; }
+EOF
+if { (eval echo configure:2244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_ansi_cc="$cf_arg"; break
 else
-	: ${BUILD_CC:='$(CC)'}
-	: ${BUILD_CPP:='$(CPP)'}
-	: ${BUILD_CFLAGS:='$(CFLAGS)'}
-	: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
-	: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
-	: ${BUILD_LIBS:='$(LIBS)'}
-	: ${BUILD_EXEEXT:='$x'}
-	: ${BUILD_OBJEXT:='o'}
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
+
 fi
 
+echo "$ac_t""$cf_cv_ansi_cc" 1>&6
+
+if test "$cf_cv_ansi_cc" != "no"; then
+if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
 
+for cf_add_cflags in $cf_cv_ansi_cc
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
 
+				;;
+			esac
+			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="$CPPFLAGS $cf_new_cppflags"
+fi
 
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
 
-echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:2538: checking build system type" >&5
 
-build_alias=$build
-case "$build_alias" in
-NONE)
-  case $nonopt in
-  NONE) build_alias=$host_alias ;;
-  *) build_alias=$nonopt ;;
-  esac ;;
-esac
 
-build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
-build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$ac_t""$build" 1>&6
 
-if test $host != $build; then
-  ac_tool_prefix=${host_alias}-
 else
-  ac_tool_prefix=
-fi
+	cat >> confdefs.h <<\EOF
+#define CC_HAS_PROTOS 1
+EOF
 
-# 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
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
 fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 
-if test -z "$ac_cv_prog_RANLIB"; then
-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
-if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB="':'"
-fi
+if test "$cf_cv_ansi_cc" = "no"; then
+	{ echo "configure: error: Your compiler does not appear to recognize prototypes.
+You have the following choices:
+	a. adjust your compiler options
+	b. get an up-to-date compiler
+	c. use a wrapper such as unproto" 1>&2; exit 1; }
 fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:2362: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  echo "$ac_t""no" 1>&6
-fi
+  cat > conftest.$ac_ext <<EOF
+#line 2367 "configure"
+#include "confdefs.h"
+
+int main() {
 
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:2378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
 else
-  RANLIB="':'"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_cygwin=no
 fi
+rm -f conftest*
+rm -f conftest*
 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
-if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
+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:2395: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  if test -n "$LD"; then
-  ac_cv_prog_LD="$LD" # Let the user override the test.
+  cat > conftest.$ac_ext <<EOF
+#line 2400 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:2407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_LD="${ac_tool_prefix}ld"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_mingw32=no
 fi
-LD="$ac_cv_prog_LD"
-if test -n "$LD"; then
-  echo "$ac_t""$LD" 1>&6
-else
-  echo "$ac_t""no" 1>&6
+rm -f conftest*
+rm -f conftest*
 fi
 
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
 
-if test -z "$ac_cv_prog_LD"; then
-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
-if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
+
+case $cf_cv_system_name in
+os2*)
+    CFLAGS="$CFLAGS -Zmt"
+    CPPFLAGS="$CPPFLAGS -D__ST_MT_ERRNO__"
+    CXXFLAGS="$CXXFLAGS -Zmt"
+    # autoconf's macro sets -Zexe and suffix both, which conflict:w
+    LDFLAGS="$LDFLAGS -Zmt -Zcrtdll"
+    ac_cv_exeext=.exe
+    ;;
+esac
+
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:2439: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  if test -n "$LD"; then
-  ac_cv_prog_LD="$LD" # Let the user override the test.
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_LD="ld"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_LD" && ac_cv_prog_LD="ld"
-fi
+  rm -f conftest*
+  echo 'int main () { return 0; }' > conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:2449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
 fi
-LD="$ac_cv_prog_LD"
-if test -n "$LD"; then
-  echo "$ac_t""$LD" 1>&6
-else
-  echo "$ac_t""no" 1>&6
 fi
 
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+echo $ac_n "checking for object suffix""... $ac_c" 1>&6
+echo "configure:2470: checking for object suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-  LD="ld"
+  rm -f conftest*
+echo 'int i = 1;' > conftest.$ac_ext
+if { (eval echo configure:2476: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  for ac_file in conftest.*; do
+    case $ac_file in
+    *.c) ;;
+    *) ac_cv_objext=`echo $ac_file | sed -e s/conftest.//` ;;
+    esac
+  done
+else
+  { echo "configure: error: installation or configuration problem; compiler does not work" 1>&2; exit 1; }
 fi
+rm -f conftest*
 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
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
+echo "$ac_t""$ac_cv_objext" 1>&6
+OBJEXT=$ac_cv_objext
+ac_objext=$ac_cv_objext
+
+
+PROG_EXT="$EXEEXT"
+
+test -n "$PROG_EXT" && cat >> confdefs.h <<EOF
+#define PROG_EXT "$PROG_EXT"
+EOF
+
+
+
+	case $cf_cv_system_name in #(vi
+	OS/2*|os2*) #(vi
+        LIB_PREFIX=''
+        ;;
+	*)	LIB_PREFIX='lib'
+        ;;
+	esac
+LIB_PREFIX=$LIB_PREFIX
+	
+
+echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
+echo "configure:2513: 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
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
+  rm -f conftestdata
+if ln -s X conftestdata 2>/dev/null
+then
+  rm -f conftestdata
+  ac_cv_prog_LN_S="ln -s"
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_AR="${ac_tool_prefix}ar"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  ac_cv_prog_LN_S=ln
 fi
 fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
-  echo "$ac_t""$AR" 1>&6
+LN_S="$ac_cv_prog_LN_S"
+if test "$ac_cv_prog_LN_S" = "ln -s"; then
+  echo "$ac_t""yes" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
 
-if test -z "$ac_cv_prog_AR"; then
-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
+
+
+if test "$cross_compiling" = yes ; then
+
+	# defaults that we might want to override
+	: ${BUILD_CFLAGS:=''}
+	: ${BUILD_CPPFLAGS:='-I$(INCDIR)'}
+	: ${BUILD_LDFLAGS:=''}
+	: ${BUILD_LIBS:=''}
+	: ${BUILD_EXEEXT:='$x'}
+	: ${BUILD_OBJEXT:='o'}
+
+	
+# Check whether --with-build-cc or --without-build-cc was given.
+if test "${with_build_cc+set}" = set; then
+  withval="$with_build_cc"
+  BUILD_CC="$withval"
+else
+  for ac_prog in gcc cc cl
+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:2730: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
+echo "configure:2557: 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
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
+  if test -n "$BUILD_CC"; then
+  ac_cv_prog_BUILD_CC="$BUILD_CC" # Let the user override the test.
 else
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_AR="ar"
+      ac_cv_prog_BUILD_CC="$ac_prog"
       break
     fi
   done
   IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
 fi
 fi
-AR="$ac_cv_prog_AR"
-if test -n "$AR"; then
-  echo "$ac_t""$AR" 1>&6
+BUILD_CC="$ac_cv_prog_BUILD_CC"
+if test -n "$BUILD_CC"; then
+  echo "$ac_t""$BUILD_CC" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
+test -n "$BUILD_CC" && break
+done
+
+fi
+
+	echo $ac_n "checking for native build C compiler""... $ac_c" 1>&6
+echo "configure:2589: 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:2593: 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
+  withval="$with_build_cpp"
+  BUILD_CPP="$withval"
 else
-  AR="ar"
+  BUILD_CPP='${BUILD_CC} -E'
 fi
+
+	echo "$ac_t""$BUILD_CPP" 1>&6
+
+	echo $ac_n "checking for native build C flags""... $ac_c" 1>&6
+echo "configure:2606: 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
+  withval="$with_build_cflags"
+  BUILD_CFLAGS="$withval"
 fi
 
-if eval "test \"`echo '$''{'cf_cv_subst_AR_OPTS'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-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 "$ac_t""$BUILD_CFLAGS" 1>&6
 
-cf_cv_subst_AR_OPTS=$AR_OPTS
+	echo $ac_n "checking for native build C preprocessor-flags""... $ac_c" 1>&6
+echo "configure:2617: 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
+  withval="$with_build_cppflags"
+  BUILD_CPPFLAGS="$withval"
 fi
 
-AR_OPTS=${cf_cv_subst_AR_OPTS}
+	echo "$ac_t""$BUILD_CPPFLAGS" 1>&6
 
+	echo $ac_n "checking for native build linker-flags""... $ac_c" 1>&6
+echo "configure:2628: 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
+  withval="$with_build_ldflags"
+  BUILD_LDFLAGS="$withval"
+fi
 
-case "$host_cpu:$host_vendor:$host_os" in
-	# check for MacOS X, exclude Darwin on ix86
-	powerpc:apple:darwin*)  #
-		cat >> confdefs.h <<\EOF
-#define MAC_OS_X 1
-EOF
+	echo "$ac_t""$BUILD_LDFLAGS" 1>&6
 
-		;;
-	# check for cygwin enviroment
-	# -DSTATIC is needed for pcre
-	*:*:*cygwin*)	#(vi
-		PCRE_DEFINES="$PCRE_DEFINES -DSTATIC"
-		;;
-	# SEIUX doesn't have any usefull preprocessor symbol
-	mips:sei:seiux*)
-		cat >> confdefs.h <<\EOF
-#define SEIUX 1
-EOF
+	echo $ac_n "checking for native build linker-libraries""... $ac_c" 1>&6
+echo "configure:2639: 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
+  withval="$with_build_libs"
+  BUILD_LIBS="$withval"
+fi
 
-		;;
-esac
+	echo "$ac_t""$BUILD_LIBS" 1>&6
 
+	# this assumes we're on Unix.
+	BUILD_EXEEXT=
+	BUILD_OBJEXT=o
 
+	: ${BUILD_CC:='${CC}'}
+
+	if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '${CC}' ) ; then
+		{ echo "configure: error: Cross-build requires two compilers.
+Use --with-build-cc to specify the native compiler." 1>&2; exit 1; }
+	fi
 
-# Check whether --with-ispell or --without-ispell was given.
-if test "${with_ispell+set}" = set; then
-  withval="$with_ispell"
-  case "$withval" in #(vi
-  yes)
-   { echo "configure: error: expected a value for --with-ispell" 1>&2; exit 1; }
-   ;; #(vi
-  no)
-   ;; #(vi
-  *)
-   # 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
-   ac_cv_path_PATH_ISPELL="$withval"
-   cat >> confdefs.h <<EOF
-#define PATH_ISPELL "$withval"
-EOF
-   cat >> confdefs.h <<\EOF
-#define HAVE_ISPELL 1
-EOF
-   echo "$ac_t""$withval" 1>&6
-   ;;
- esac
 else
-  
-  # user did not specify "--with-ispell"; do automatic check
-  # Extract the first word of "ispell", so it can be a program name with args.
-set dummy ispell; ac_word=$2
+	: ${BUILD_CC:='${CC}'}
+	: ${BUILD_CPP:='${CPP}'}
+	: ${BUILD_CFLAGS:='${CFLAGS}'}
+	: ${BUILD_CPPFLAGS:='${CPPFLAGS}'}
+	: ${BUILD_LDFLAGS:='${LDFLAGS}'}
+	: ${BUILD_LIBS:='${LIBS}'}
+	: ${BUILD_EXEEXT:='$x'}
+	: ${BUILD_OBJEXT:='o'}
+fi
+
+
+
+
+
+
+
+
+
+
+
+echo $ac_n "checking build system type""... $ac_c" 1>&6
+echo "configure:2682: checking build system type" >&5
+
+build_alias=$build
+case "$build_alias" in
+NONE)
+  case $nonopt in
+  NONE) build_alias=$host_alias ;;
+  *) build_alias=$nonopt ;;
+  esac ;;
+esac
+
+build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
+build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$build" 1>&6
+
+if test $host != $build; then
+  ac_tool_prefix=${host_alias}-
+else
+  ac_tool_prefix=
+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:2830: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PATH_ISPELL'+set}'`\" = set"; then
+echo "configure:2708: 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
-  case "$PATH_ISPELL" in
-  /*)
-  ac_cv_path_PATH_ISPELL="$PATH_ISPELL" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_PATH_ISPELL="$PATH_ISPELL" # Let the user override the test with a dos path.
-  ;;
-  *)
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do 
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_PATH_ISPELL="$ac_dir/$ac_word"
+      ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
       break
     fi
   done
   IFS="$ac_save_ifs"
-  ;;
-esac
 fi
-PATH_ISPELL="$ac_cv_path_PATH_ISPELL"
-if test -n "$PATH_ISPELL"; then
-  echo "$ac_t""$PATH_ISPELL" 1>&6
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -n "$PATH_ISPELL"; then
-    cat >> confdefs.h <<EOF
-#define PATH_ISPELL "$PATH_ISPELL"
-EOF
-    cat >> confdefs.h <<\EOF
-#define HAVE_ISPELL 1
-EOF
-  fi
-
-fi
-
 
-
-# Check whether --with-metamail or --without-metamail was given.
-if test "${with_metamail+set}" = set; then
-  withval="$with_metamail"
-  case "$withval" in #(vi
-  yes)
-   { echo "configure: error: expected a value for --with-metamail" 1>&2; exit 1; }
-   ;; #(vi
-  no)
-   ;; #(vi
-  *)
-   # 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
-   ac_cv_path_PATH_METAMAIL="$withval"
-   cat >> confdefs.h <<EOF
-#define PATH_METAMAIL "$withval"
-EOF
-   cat >> confdefs.h <<\EOF
-#define HAVE_METAMAIL 1
-EOF
-   echo "$ac_t""$withval" 1>&6
-   ;;
- esac
-else
-  
-  # user did not specify "--with-metamail"; do automatic check
-  # Extract the first word of "metamail", so it can be a program name with args.
-set dummy metamail; ac_word=$2
+if test -z "$ac_cv_prog_RANLIB"; then
+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:2904: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PATH_METAMAIL'+set}'`\" = set"; then
+echo "configure:2740: 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
-  case "$PATH_METAMAIL" in
-  /*)
-  ac_cv_path_PATH_METAMAIL="$PATH_METAMAIL" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_PATH_METAMAIL="$PATH_METAMAIL" # Let the user override the test with a dos path.
-  ;;
-  *)
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do 
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_PATH_METAMAIL="$ac_dir/$ac_word"
+      ac_cv_prog_RANLIB="ranlib"
       break
     fi
   done
   IFS="$ac_save_ifs"
-  ;;
-esac
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB="':'"
 fi
-PATH_METAMAIL="$ac_cv_path_PATH_METAMAIL"
-if test -n "$PATH_METAMAIL"; then
-  echo "$ac_t""$PATH_METAMAIL" 1>&6
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -n "$PATH_METAMAIL"; then
-    cat >> confdefs.h <<EOF
-#define PATH_METAMAIL "$PATH_METAMAIL"
-EOF
-    cat >> confdefs.h <<\EOF
-#define HAVE_METAMAIL 1
-EOF
-  fi
-
+else
+  RANLIB="':'"
+fi
 fi
 
-
-
-# Check whether --with-sum or --without-sum was given.
-if test "${with_sum+set}" = set; then
-  withval="$with_sum"
-  case "$withval" in #(vi
-  yes)
-   { echo "configure: error: expected a value for --with-sum" 1>&2; exit 1; }
-   ;; #(vi
-  no)
-   ;; #(vi
-  *)
-   # 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
-   ac_cv_path_PATH_SUM="$withval"
-   cat >> confdefs.h <<EOF
-#define PATH_SUM "$withval"
-EOF
-   cat >> confdefs.h <<\EOF
-#define HAVE_SUM 1
-EOF
-   echo "$ac_t""$withval" 1>&6
-   ;;
- esac
-else
-  
-  # user did not specify "--with-sum"; do automatic check
-  # Extract the first word of "sum", so it can be a program name with args.
-set dummy sum; ac_word=$2
+# 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:2978: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PATH_SUM'+set}'`\" = set"; then
+echo "configure:2775: 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
-  case "$PATH_SUM" in
-  /*)
-  ac_cv_path_PATH_SUM="$PATH_SUM" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_PATH_SUM="$PATH_SUM" # Let the user override the test with a dos path.
-  ;;
-  *)
+  if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
+else
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
   ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do 
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_PATH_SUM="$ac_dir/$ac_word"
+      ac_cv_prog_LD="${ac_tool_prefix}ld"
       break
     fi
   done
   IFS="$ac_save_ifs"
-  ;;
-esac
 fi
-PATH_SUM="$ac_cv_path_PATH_SUM"
-if test -n "$PATH_SUM"; then
-  echo "$ac_t""$PATH_SUM" 1>&6
+fi
+LD="$ac_cv_prog_LD"
+if test -n "$LD"; then
+  echo "$ac_t""$LD" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -n "$PATH_SUM"; then
-    cat >> confdefs.h <<EOF
-#define PATH_SUM "$PATH_SUM"
-EOF
-    cat >> confdefs.h <<\EOF
-#define HAVE_SUM 1
-EOF
-  fi
-
-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
-if eval "test \"`echo '$''{'ac_cv_prog_sum_r'+set}'`\" = set"; then
+if test -z "$ac_cv_prog_LD"; then
+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:2807: 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
-  
-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; }; }
-then
-	ac_cv_prog_sum_r=yes
+  if test -n "$LD"; then
+  ac_cv_prog_LD="$LD" # Let the user override the test.
 else
-	ac_cv_prog_sum_r=no
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_LD="ld"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_LD" && ac_cv_prog_LD="ld"
 fi
-
 fi
-
-if test $ac_cv_prog_sum_r = yes; then
-	cat >> confdefs.h <<\EOF
-#define SUM_TAKES_DASH_R 1
-EOF
-
-	cat >> confdefs.h <<EOF
-#define PATH_SUM_R "$ac_cv_path_PATH_SUM -r"
-EOF
-
+LD="$ac_cv_prog_LD"
+if test -n "$LD"; then
+  echo "$ac_t""$LD" 1>&6
 else
-	cat >> confdefs.h <<EOF
-#define PATH_SUM_R "$ac_cv_path_PATH_SUM"
-EOF
+  echo "$ac_t""no" 1>&6
+fi
 
+else
+  LD="ld"
 fi
-echo "$ac_t""$ac_cv_prog_sum_r" 1>&6
 fi
 
 
-
-echo $ac_n "checking for default editor""... $ac_c" 1>&6
-echo "configure:3060: checking for default editor" >&5
-
-# Check whether --with-editor or --without-editor was given.
-if test "${with_editor+set}" = set; then
-  withval="$with_editor"
-  :
+# 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:2843: 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
-  withval="${DEFAULT_EDITOR}"
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AR="${ac_tool_prefix}ar"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+AR="$ac_cv_prog_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1>&6
+else
+  echo "$ac_t""no" 1>&6
 fi
-test -n "$withval" && \
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-editor" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-DEFAULT_EDITOR="$withval"
 
-if test -z "$DEFAULT_EDITOR" ; then
-    if test -n "$EDITOR" ; then
-    	DEFAULT_EDITOR="$EDITOR"
-    elif test -n "$VISUAL" ; then
-    	DEFAULT_EDITOR="$VISUAL"
-    else
-	# Extract the first word of "vi", so it can be a program name with args.
-set dummy vi; ac_word=$2
+
+if test -z "$ac_cv_prog_AR"; then
+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:3088: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_EDITOR'+set}'`\" = set"; then
+echo "configure:2875: 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
-  case "$DEFAULT_EDITOR" in
-  /*)
-  ac_cv_path_DEFAULT_EDITOR="$DEFAULT_EDITOR" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_DEFAULT_EDITOR="$DEFAULT_EDITOR" # Let the user override the test with a dos path.
-  ;;
-  *)
+  if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH:/usr/bin:/usr/ucb"
-  for ac_dir in $ac_dummy; do 
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_DEFAULT_EDITOR="$ac_dir/$ac_word"
+      ac_cv_prog_AR="ar"
       break
     fi
   done
   IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_DEFAULT_EDITOR" && ac_cv_path_DEFAULT_EDITOR="vi"
-  ;;
-esac
+  test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
 fi
-DEFAULT_EDITOR="$ac_cv_path_DEFAULT_EDITOR"
-if test -n "$DEFAULT_EDITOR"; then
-  echo "$ac_t""$DEFAULT_EDITOR" 1>&6
+fi
+AR="$ac_cv_prog_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-    fi
+else
+  AR="ar"
 fi
-echo "$ac_t""$DEFAULT_EDITOR" 1>&6
-cat >> confdefs.h <<EOF
-#define DEFAULT_EDITOR "$DEFAULT_EDITOR"
+fi
+
+
+
+
+
+echo $ac_n "checking for options to update archives""... $ac_c" 1>&6
+echo "configure:2912: checking for options to update archives" >&5
+if eval "test \"`echo '$''{'cf_cv_ar_flags'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+	cf_cv_ar_flags=unknown
+	for cf_ar_flags in -curv curv -crv crv -cqv cqv -rv rv
+	do
+
+		# check if $ARFLAGS already contains this choice
+		if test "x$ARFLAGS" != "x" ; then
+			cf_check_ar_flags=`echo "x$ARFLAGS" | sed -e "s/$cf_ar_flags\$//" -e "s/$cf_ar_flags / /"`
+			if test "x$ARFLAGS" != "$cf_check_ar_flags" ; then
+				cf_cv_ar_flags=
+				break
+			fi
+		fi
+
+		rm -f conftest.$ac_cv_objext
+		rm -f conftest.a
+
+		cat >conftest.$ac_ext <<EOF
+#line 2934 "configure"
+int	testdata[3] = { 123, 456, 789 };
+EOF
+		if { (eval echo configure:2937: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } ; then
+			echo "$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext" >&5
+			$AR $ARFLAGS $cf_ar_flags conftest.a conftest.$ac_cv_objext 2>&5 1>/dev/null
+			if test -f conftest.a ; then
+				cf_cv_ar_flags=$cf_ar_flags
+				break
+			fi
+		else
+			test -n "$verbose" && echo "	cannot compile test-program" 1>&6
+
+echo "${as_me:-configure}:2947: testing cannot compile test-program ..." 1>&5
+
+
+			break
+		fi
+	done
+	rm -f conftest.a conftest.$ac_ext conftest.$ac_cv_objext
+
+fi
+
+echo "$ac_t""$cf_cv_ar_flags" 1>&6
+
+if test -n "$ARFLAGS" ; then
+	if test -n "$cf_cv_ar_flags" ; then
+		ARFLAGS="$ARFLAGS $cf_cv_ar_flags"
+	fi
+else
+	ARFLAGS=$cf_cv_ar_flags
+fi
+
+
+
+
+case "$host_cpu:$host_vendor:$host_os" in
+	# check for MacOS X, exclude Darwin on ix86
+#	powerpc:apple:darwin*)  #(vi
+#		AC_DEFINE(MAC_OS_X)
+#		;;
+	# check for cygwin environment
+	# -DSTATIC is needed for pcre
+	*:*:*cygwin*)	#(vi
+		PCRE_DEFINES="$PCRE_DEFINES -DSTATIC"
+		;;
+	# SEIUX doesn't have any useful preprocessor symbol
+	mips:sei:seiux*)	#(vi
+		cat >> confdefs.h <<\EOF
+#define SEIUX 1
 EOF
 
+		;;
+esac
 
 
-# Extract the first word of "sendmail", so it can be a program name with args.
-set dummy sendmail; ac_word=$2
+
+# Check whether --with-ispell or --without-ispell was given.
+if test "${with_ispell+set}" = set; then
+  withval="$with_ispell"
+  case "$withval" in #(vi
+  yes)
+   { echo "configure: error: expected a value for --with-ispell" 1>&2; exit 1; }
+   ;; #(vi
+  no)
+   ;; #(vi
+  *)
+   # user supplied option-value for "--with-ispell=path"
+   echo $ac_n "checking for ispell""... $ac_c" 1>&6
+echo "configure:3003: checking for ispell" >&5
+   ac_cv_path_PATH_ISPELL="$withval"
+   cat >> confdefs.h <<EOF
+#define PATH_ISPELL "$withval"
+EOF
+   cat >> confdefs.h <<\EOF
+#define HAVE_ISPELL 1
+EOF
+   echo "$ac_t""$withval" 1>&6
+   ;;
+ esac
+else
+  
+  # user did not specify "--with-ispell"; do automatic check
+  # 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:3133: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_MAILER'+set}'`\" = set"; then
+echo "configure:3020: 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
-  case "$DEFAULT_MAILER" in
+  case "$PATH_ISPELL" in
   /*)
-  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a path.
+  ac_cv_path_PATH_ISPELL="$PATH_ISPELL" # Let the user override the test with a path.
   ;;
   ?:/*)			 
-  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a dos path.
+  ac_cv_path_PATH_ISPELL="$PATH_ISPELL" # Let the user override the test with a dos path.
   ;;
   *)
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH:/usr/sbin:/usr/lib"
+  ac_dummy="$PATH"
   for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_DEFAULT_MAILER="$ac_dir/$ac_word"
+      ac_cv_path_PATH_ISPELL="$ac_dir/$ac_word"
       break
     fi
   done
@@ -3154,238 +3041,65 @@ else
   ;;
 esac
 fi
-DEFAULT_MAILER="$ac_cv_path_DEFAULT_MAILER"
-if test -n "$DEFAULT_MAILER"; then
-  echo "$ac_t""$DEFAULT_MAILER" 1>&6
+PATH_ISPELL="$ac_cv_path_PATH_ISPELL"
+if test -n "$PATH_ISPELL"; then
+  echo "$ac_t""$PATH_ISPELL" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
+  if test -n "$PATH_ISPELL"; then
+    cat >> confdefs.h <<EOF
+#define PATH_ISPELL "$PATH_ISPELL"
+EOF
+    cat >> confdefs.h <<\EOF
+#define HAVE_ISPELL 1
+EOF
+  fi
 
-# Check whether --with-mailer or --without-mailer was given.
-if test "${with_mailer+set}" = set; then
-  withval="$with_mailer"
-  :
-else
-  withval="${DEFAULT_MAILER}"
-fi
-test -n "$withval" && \
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-mailer" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-DEFAULT_MAILER="$withval"
-
-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
-if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_MAILER'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  case "$DEFAULT_MAILER" in
-  /*)
-  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a dos path.
-  ;;
-  *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH:/usr/bin"
-  for ac_dir in $ac_dummy; do 
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_path_DEFAULT_MAILER="$ac_dir/$ac_word"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-fi
-DEFAULT_MAILER="$ac_cv_path_DEFAULT_MAILER"
-if test -n "$DEFAULT_MAILER"; then
-  echo "$ac_t""$DEFAULT_MAILER" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-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
-if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_MAILER'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  case "$DEFAULT_MAILER" in
-  /*)
-  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a dos path.
-  ;;
-  *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH:/usr/bin"
-  for ac_dir in $ac_dummy; do 
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_path_DEFAULT_MAILER="$ac_dir/$ac_word"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  ;;
-esac
-fi
-DEFAULT_MAILER="$ac_cv_path_DEFAULT_MAILER"
-if test -n "$DEFAULT_MAILER"; then
-  echo "$ac_t""$DEFAULT_MAILER" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-fi
-echo $ac_n "checking for default mailer""... $ac_c" 1>&6
-echo "configure:3258: checking for default mailer" >&5
-if test -n "$DEFAULT_MAILER" ; then
-	
-case $cf_cv_system_name in #(vi
-os2*|cygwin*)
-	ac_cv_path_DEFAULT_MAILER=`echo "$ac_cv_path_DEFAULT_MAILER" | sed -e 's%\\\\%/%g'`
-	;;
-esac
-
-	
-case $cf_cv_system_name in #(vi
-os2*|cygwin*)
-	DEFAULT_MAILER=`echo "$DEFAULT_MAILER" | sed -e 's%\\\\%/%g'`
-	;;
-esac
-
-	cat >> confdefs.h <<EOF
-#define DEFAULT_MAILER "$DEFAULT_MAILER"
-EOF
-
-else
-	DEFAULT_MAILER=none
-fi
-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
-
-# Check whether --with-mailbox or --without-mailbox was given.
-if test "${with_mailbox+set}" = set; then
-  withval="$with_mailbox"
-  :
-else
-  withval="${DEFAULT_MAILBOX}"
-fi
-test -n "$withval" && \
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-mailbox" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-DEFAULT_MAILBOX="$withval"
-
-if test -z "$DEFAULT_MAILBOX" ; then
-for cf_dir in \
-	/var/spool/mail \
-	/usr/spool/mail \
-	/var/mail \
-	/usr/mail \
-	/mail
-    do
-    	if test -d $cf_dir ; then
-	    DEFAULT_MAILBOX=$cf_dir
-	    break
-	fi
-    done
-fi
-if test -n "$DEFAULT_MAILBOX" ; then
-	cat >> confdefs.h <<EOF
-#define DEFAULT_MAILBOX "$DEFAULT_MAILBOX"
-EOF
-
-else
-	DEFAULT_MAILBOX=none
 fi
-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
 
-# Check whether --enable-pgp-gpg or --disable-pgp-gpg was given.
-if test "${enable_pgp_gpg+set}" = set; then
-  enableval="$enable_pgp_gpg"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    USE_PGP_GPG=no 
-  else
-    USE_PGP_GPG=yes
-  fi
-else
-  enableval=yes 
-  USE_PGP_GPG=yes
-  
-fi
 
-echo "$ac_t""$enableval" 1>&6
-if test "$USE_PGP_GPG" = "yes" ; then
-	
-# Check whether --with-pgp or --without-pgp was given.
-if test "${with_pgp+set}" = set; then
-  withval="$with_pgp"
+# Check whether --with-metamail or --without-metamail was given.
+if test "${with_metamail+set}" = set; then
+  withval="$with_metamail"
   case "$withval" in #(vi
   yes)
-   { echo "configure: error: expected a value for --with-pgp" 1>&2; exit 1; }
+   { echo "configure: error: expected a value for --with-metamail" 1>&2; exit 1; }
    ;; #(vi
   no)
    ;; #(vi
   *)
-   # 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
-   ac_cv_path_PATH_PGP="$withval"
+   # user supplied option-value for "--with-metamail=path"
+   echo $ac_n "checking for metamail""... $ac_c" 1>&6
+echo "configure:3077: checking for metamail" >&5
+   ac_cv_path_PATH_METAMAIL="$withval"
    cat >> confdefs.h <<EOF
-#define PATH_PGP "$withval"
+#define PATH_METAMAIL "$withval"
 EOF
    cat >> confdefs.h <<\EOF
-#define HAVE_PGP 1
+#define HAVE_METAMAIL 1
 EOF
    echo "$ac_t""$withval" 1>&6
    ;;
  esac
 else
   
-  # user did not specify "--with-pgp"; do automatic check
-  # Extract the first word of "pgp", so it can be a program name with args.
-set dummy pgp; ac_word=$2
+  # user did not specify "--with-metamail"; do automatic check
+  # 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:3380: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PATH_PGP'+set}'`\" = set"; then
+echo "configure:3094: 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
-  case "$PATH_PGP" in
+  case "$PATH_METAMAIL" in
   /*)
-  ac_cv_path_PATH_PGP="$PATH_PGP" # Let the user override the test with a path.
+  ac_cv_path_PATH_METAMAIL="$PATH_METAMAIL" # Let the user override the test with a path.
   ;;
   ?:/*)			 
-  ac_cv_path_PATH_PGP="$PATH_PGP" # Let the user override the test with a dos path.
+  ac_cv_path_PATH_METAMAIL="$PATH_METAMAIL" # Let the user override the test with a dos path.
   ;;
   *)
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
@@ -3393,7 +3107,7 @@ else
   for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_PATH_PGP="$ac_dir/$ac_word"
+      ac_cv_path_PATH_METAMAIL="$ac_dir/$ac_word"
       break
     fi
   done
@@ -3401,66 +3115,65 @@ else
   ;;
 esac
 fi
-PATH_PGP="$ac_cv_path_PATH_PGP"
-if test -n "$PATH_PGP"; then
-  echo "$ac_t""$PATH_PGP" 1>&6
+PATH_METAMAIL="$ac_cv_path_PATH_METAMAIL"
+if test -n "$PATH_METAMAIL"; then
+  echo "$ac_t""$PATH_METAMAIL" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -n "$PATH_PGP"; then
+  if test -n "$PATH_METAMAIL"; then
     cat >> confdefs.h <<EOF
-#define PATH_PGP "$PATH_PGP"
+#define PATH_METAMAIL "$PATH_METAMAIL"
 EOF
     cat >> confdefs.h <<\EOF
-#define HAVE_PGP 1
+#define HAVE_METAMAIL 1
 EOF
   fi
 
 fi
 
-	# FIXME: check if pgp is pgp2 or pgp6
 
-	
-# Check whether --with-pgpk or --without-pgpk was given.
-if test "${with_pgpk+set}" = set; then
-  withval="$with_pgpk"
+
+# Check whether --with-sum or --without-sum was given.
+if test "${with_sum+set}" = set; then
+  withval="$with_sum"
   case "$withval" in #(vi
   yes)
-   { echo "configure: error: expected a value for --with-pgpk" 1>&2; exit 1; }
+   { echo "configure: error: expected a value for --with-sum" 1>&2; exit 1; }
    ;; #(vi
   no)
    ;; #(vi
   *)
-   # 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
-   ac_cv_path_PATH_PGPK="$withval"
+   # user supplied option-value for "--with-sum=path"
+   echo $ac_n "checking for sum""... $ac_c" 1>&6
+echo "configure:3151: checking for sum" >&5
+   ac_cv_path_PATH_SUM="$withval"
    cat >> confdefs.h <<EOF
-#define PATH_PGPK "$withval"
+#define PATH_SUM "$withval"
 EOF
    cat >> confdefs.h <<\EOF
-#define HAVE_PGPK 1
+#define HAVE_SUM 1
 EOF
    echo "$ac_t""$withval" 1>&6
    ;;
  esac
 else
   
-  # user did not specify "--with-pgpk"; do automatic check
-  # Extract the first word of "pgpk", so it can be a program name with args.
-set dummy pgpk; ac_word=$2
+  # user did not specify "--with-sum"; do automatic check
+  # 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:3455: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PATH_PGPK'+set}'`\" = set"; then
+echo "configure:3168: 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
-  case "$PATH_PGPK" in
+  case "$PATH_SUM" in
   /*)
-  ac_cv_path_PATH_PGPK="$PATH_PGPK" # Let the user override the test with a path.
+  ac_cv_path_PATH_SUM="$PATH_SUM" # Let the user override the test with a path.
   ;;
   ?:/*)			 
-  ac_cv_path_PATH_PGPK="$PATH_PGPK" # Let the user override the test with a dos path.
+  ac_cv_path_PATH_SUM="$PATH_SUM" # Let the user override the test with a dos path.
   ;;
   *)
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
@@ -3468,7 +3181,7 @@ else
   for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_PATH_PGPK="$ac_dir/$ac_word"
+      ac_cv_path_PATH_SUM="$ac_dir/$ac_word"
       break
     fi
   done
@@ -3476,206 +3189,154 @@ else
   ;;
 esac
 fi
-PATH_PGPK="$ac_cv_path_PATH_PGPK"
-if test -n "$PATH_PGPK"; then
-  echo "$ac_t""$PATH_PGPK" 1>&6
+PATH_SUM="$ac_cv_path_PATH_SUM"
+if test -n "$PATH_SUM"; then
+  echo "$ac_t""$PATH_SUM" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -n "$PATH_PGPK"; then
+  if test -n "$PATH_SUM"; then
     cat >> confdefs.h <<EOF
-#define PATH_PGPK "$PATH_PGPK"
+#define PATH_SUM "$PATH_SUM"
 EOF
     cat >> confdefs.h <<\EOF
-#define HAVE_PGPK 1
+#define HAVE_SUM 1
 EOF
   fi
 
 fi
 
-	# FIXME: remove tailing k
 
-	
-# Check whether --with-gpg or --without-gpg was given.
-if test "${with_gpg+set}" = set; then
-  withval="$with_gpg"
-  case "$withval" in #(vi
-  yes)
-   { echo "configure: error: expected a value for --with-gpg" 1>&2; exit 1; }
-   ;; #(vi
-  no)
-   ;; #(vi
-  *)
-   # 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
-   ac_cv_path_PATH_GPG="$withval"
-   cat >> confdefs.h <<EOF
-#define PATH_GPG "$withval"
+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:3215: 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:3220: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }
+then
+	ac_cv_prog_sum_r=yes
+else
+	ac_cv_prog_sum_r=no
+fi
+
+fi
+
+if test $ac_cv_prog_sum_r = yes; then
+	cat >> confdefs.h <<\EOF
+#define SUM_TAKES_DASH_R 1
 EOF
-   cat >> confdefs.h <<\EOF
-#define HAVE_GPG 1
+
+	cat >> confdefs.h <<EOF
+#define PATH_SUM_R "$ac_cv_path_PATH_SUM -r"
 EOF
-   echo "$ac_t""$withval" 1>&6
-   ;;
- esac
+
 else
-  
-  # user did not specify "--with-gpg"; do automatic check
-  # Extract the first word of "gpg", so it can be a program name with args.
-set dummy gpg; ac_word=$2
+	cat >> confdefs.h <<EOF
+#define PATH_SUM_R "$ac_cv_path_PATH_SUM"
+EOF
+
+fi
+echo "$ac_t""$ac_cv_prog_sum_r" 1>&6
+fi
+
+
+
+echo $ac_n "checking for default editor""... $ac_c" 1>&6
+echo "configure:3250: checking for default editor" >&5
+
+# Check whether --with-editor or --without-editor was given.
+if test "${with_editor+set}" = set; then
+  withval="$with_editor"
+  :
+else
+  withval="${DEFAULT_EDITOR}"
+fi
+test -n "$withval" && \
+case "$withval" in #(vi
+yes)
+  { echo "configure: error: expected a value for --with-editor" 1>&2; exit 1; }
+  ;; #(vi
+no) withval=""
+  ;;
+esac
+DEFAULT_EDITOR="$withval"
+
+if test -z "$DEFAULT_EDITOR" ; then
+    if test -n "$EDITOR" ; then
+    	DEFAULT_EDITOR="$EDITOR"
+    elif test -n "$VISUAL" ; then
+    	DEFAULT_EDITOR="$VISUAL"
+    else
+	# 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:3530: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_PATH_GPG'+set}'`\" = set"; then
+echo "configure:3278: 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
-  case "$PATH_GPG" in
+  case "$DEFAULT_EDITOR" in
   /*)
-  ac_cv_path_PATH_GPG="$PATH_GPG" # Let the user override the test with a path.
+  ac_cv_path_DEFAULT_EDITOR="$DEFAULT_EDITOR" # Let the user override the test with a path.
   ;;
   ?:/*)			 
-  ac_cv_path_PATH_GPG="$PATH_GPG" # Let the user override the test with a dos path.
+  ac_cv_path_DEFAULT_EDITOR="$DEFAULT_EDITOR" # Let the user override the test with a dos path.
   ;;
   *)
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
+  ac_dummy="$PATH:/usr/bin:/usr/ucb"
   for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_PATH_GPG="$ac_dir/$ac_word"
+      ac_cv_path_DEFAULT_EDITOR="$ac_dir/$ac_word"
       break
     fi
   done
   IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_DEFAULT_EDITOR" && ac_cv_path_DEFAULT_EDITOR="vi"
   ;;
 esac
 fi
-PATH_GPG="$ac_cv_path_PATH_GPG"
-if test -n "$PATH_GPG"; then
-  echo "$ac_t""$PATH_GPG" 1>&6
+DEFAULT_EDITOR="$ac_cv_path_DEFAULT_EDITOR"
+if test -n "$DEFAULT_EDITOR"; then
+  echo "$ac_t""$DEFAULT_EDITOR" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-  if test -n "$PATH_GPG"; then
-    cat >> confdefs.h <<EOF
-#define PATH_GPG "$PATH_GPG"
-EOF
-    cat >> confdefs.h <<\EOF
-#define HAVE_GPG 1
-EOF
-  fi
-
-fi
-
-fi
-
-## Default shell
-
-# Check whether --with-shell or --without-shell was given.
-if test "${with_shell+set}" = set; then
-  withval="$with_shell"
-  cf_cv_default_shell=$withval
-else
-  cf_cv_default_shell=
+    fi
 fi
-
-
-echo $ac_n "checking for the default shell program""... $ac_c" 1>&6
-echo "configure:3587: 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"
-#include "confdefs.h"
-
-#include <sys/params.h>
-int main() {
-
-#if (defined(BSD) && (BSD >= 199103))
-#else
-make an error
-#endif
-
-; return 0; }
+echo "$ac_t""$DEFAULT_EDITOR" 1>&6
+cat >> confdefs.h <<EOF
+#define DEFAULT_EDITOR "$DEFAULT_EDITOR"
 EOF
-if { (eval echo configure:3606: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  $cf_shell_progs="csh tcsh $cf_shell_progs"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-fi
 
-echo "(line 3616) 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
 
-	for cf_prog in $cf_shell_progs
-	do
-		case $cf_prog in
-			/*)
-				cf_pattern="^"$cf_prog"$"
-				;;
-			*/*)
-				{ echo "configure: error: Program name must be absolute or filename: $cf_prog" 1>&2; exit 1; }
-				;;
-			*)
-				cf_pattern="/"$cf_prog"$"
-				;;
-		esac
-		cf_path=`egrep $cf_pattern /etc/shells 2>/dev/null`
-		if test -n "$cf_path"
-		then
-			for cf_shell in $cf_path
-			do
-				if test -f "$cf_shell"
-				then
-					DEFAULT_SHELL="$cf_shell"
-					break
-				fi
-			done
-		fi
-		if test -n "$DEFAULT_SHELL"
-		then
-			break
-		fi
-	done
-	echo "$ac_t""$DEFAULT_SHELL" 1>&6
-else
-	
-echo "(line 3655) 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
+# 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:3662: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_DEFAULT_SHELL'+set}'`\" = set"; then
+echo "configure:3323: 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
-  case "$DEFAULT_SHELL" in
+  case "$DEFAULT_MAILER" in
   /*)
-  ac_cv_path_DEFAULT_SHELL="$DEFAULT_SHELL" # Let the user override the test with a path.
+  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a path.
   ;;
   ?:/*)			 
-  ac_cv_path_DEFAULT_SHELL="$DEFAULT_SHELL" # Let the user override the test with a dos path.
+  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a dos path.
   ;;
   *)
   IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH:/bin:/usr/bin:/usr/xpg4/bin:/bin/posix:/usr/bin/posix:/usr/old/bin:/usr/local/bin"
+  ac_dummy="$PATH:/usr/sbin:/usr/lib"
   for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
-      ac_cv_path_DEFAULT_SHELL="$ac_dir/$ac_word"
+      ac_cv_path_DEFAULT_MAILER="$ac_dir/$ac_word"
       break
     fi
   done
@@ -3683,2342 +3344,6660 @@ else
   ;;
 esac
 fi
-DEFAULT_SHELL="$ac_cv_path_DEFAULT_SHELL"
-if test -n "$DEFAULT_SHELL"; then
-  echo "$ac_t""$DEFAULT_SHELL" 1>&6
+DEFAULT_MAILER="$ac_cv_path_DEFAULT_MAILER"
+if test -n "$DEFAULT_MAILER"; then
+  echo "$ac_t""$DEFAULT_MAILER" 1>&6
 else
   echo "$ac_t""no" 1>&6
 fi
 
-test -n "$DEFAULT_SHELL" && break
-done
 
+# Check whether --with-mailer or --without-mailer was given.
+if test "${with_mailer+set}" = set; then
+  withval="$with_mailer"
+  :
+else
+  withval="${DEFAULT_MAILER}"
 fi
-if test -z "$DEFAULT_SHELL" ; then
-	echo "configure: warning: Cannot find the default shell you specified: $cf_shell_progs" 1>&2
-	if test -f /bin/false ; then
-		echo "configure: warning: Using /bin/false instead" 1>&2
-		DEFAULT_SHELL=/bin/false
-	else
-		{ echo "configure: error: Cannot use /bin/false because it does not exist" 1>&2; exit 1; }
-	fi
-fi
-cat >> confdefs.h <<EOF
-#define DEFAULT_SHELL "$DEFAULT_SHELL"
-EOF
-
+test -n "$withval" && \
+case "$withval" in #(vi
+yes)
+  { echo "configure: error: expected a value for --with-mailer" 1>&2; exit 1; }
+  ;; #(vi
+no) withval=""
+  ;;
+esac
+DEFAULT_MAILER="$withval"
 
-
-### 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
-
-# Check whether --enable-nntp or --disable-nntp was given.
-if test "${enable_nntp+set}" = set; then
-  enableval="$enable_nntp"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    USE_NNTP=no 
-  else
-    USE_NNTP=yes
-  fi
+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:3377: 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
-  enableval=yes 
-  USE_NNTP=yes
-  
+  case "$DEFAULT_MAILER" in
+  /*)
+  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/usr/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_DEFAULT_MAILER="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+DEFAULT_MAILER="$ac_cv_path_DEFAULT_MAILER"
+if test -n "$DEFAULT_MAILER"; then
+  echo "$ac_t""$DEFAULT_MAILER" 1>&6
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-echo "$ac_t""$enableval" 1>&6
+fi
+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:3414: 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
+  case "$DEFAULT_MAILER" in
+  /*)
+  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_DEFAULT_MAILER="$DEFAULT_MAILER" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/usr/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_DEFAULT_MAILER="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+DEFAULT_MAILER="$ac_cv_path_DEFAULT_MAILER"
+if test -n "$DEFAULT_MAILER"; then
+  echo "$ac_t""$DEFAULT_MAILER" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-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
+fi
+echo $ac_n "checking for default mailer""... $ac_c" 1>&6
+echo "configure:3448: checking for default mailer" >&5
+if test -n "$DEFAULT_MAILER" ; then
+	
+case $cf_cv_system_name in #(vi
+os2*|cygwin*)
+	ac_cv_path_DEFAULT_MAILER=`echo "$ac_cv_path_DEFAULT_MAILER" | sed -e 's%\\\\%/%g'`
+	;;
+esac
 
-# Check whether --enable-nntp-only or --disable-nntp-only was given.
-if test "${enable_nntp_only+set}" = set; then
-  enableval="$enable_nntp_only"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define NNTP_ONLY 1
-EOF
+	
+case $cf_cv_system_name in #(vi
+os2*|cygwin*)
+	DEFAULT_MAILER=`echo "$DEFAULT_MAILER" | sed -e 's%\\\\%/%g'`
+	;;
+esac
 
-	 USE_SPOOLDIR=no 
-  else
-    cat >> confdefs.h <<\EOF
-#define NNTP_ABLE 1
+	cat >> confdefs.h <<EOF
+#define DEFAULT_MAILER "$DEFAULT_MAILER"
 EOF
 
-  fi
 else
-  enableval=no 
-  cat >> confdefs.h <<\EOF
-#define NNTP_ABLE 1
-EOF
-
-  
+	DEFAULT_MAILER=none
 fi
+echo "$ac_t""$DEFAULT_MAILER" 1>&6
 
-echo "$ac_t""$enableval" 1>&6
-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 $ac_n "checking for incoming-mail directory""... $ac_c" 1>&6
+echo "configure:3475: checking for incoming-mail directory" >&5
 
-# Check whether --enable-debug or --disable-debug was given.
-if test "${enable_debug+set}" = set; then
-  enableval="$enable_debug"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    ENABLE_DEBUG=''
-	CFLAGS="-g $CFLAGS"
-	LDFLAGS="-g $LDFLAGS" 
-  else
-    ENABLE_DEBUG='#'
-	test -z "$save_CFLAGS" && CFLAGS=`echo $CFLAGS|sed -e 's/-g //' -e 's/-g$//'`
-  fi
+# Check whether --with-mailbox or --without-mailbox was given.
+if test "${with_mailbox+set}" = set; then
+  withval="$with_mailbox"
+  :
 else
-  enableval=no 
-  ENABLE_DEBUG='#'
-	test -z "$save_CFLAGS" && CFLAGS=`echo $CFLAGS|sed -e 's/-g //' -e 's/-g$//'`
-  
+  withval="${DEFAULT_MAILBOX}"
 fi
+test -n "$withval" && \
+case "$withval" in #(vi
+yes)
+  { echo "configure: error: expected a value for --with-mailbox" 1>&2; exit 1; }
+  ;; #(vi
+no) withval=""
+  ;;
+esac
+DEFAULT_MAILBOX="$withval"
 
-echo "$ac_t""$enableval" 1>&6
+if test -z "$DEFAULT_MAILBOX" ; then
+for cf_dir in \
+	/var/spool/mail \
+	/usr/spool/mail \
+	/var/mail \
+	/usr/mail \
+	/mail
+    do
+    	if test -d $cf_dir ; then
+	    DEFAULT_MAILBOX=$cf_dir
+	    break
+	fi
+    done
+fi
+if test -n "$DEFAULT_MAILBOX" ; then
+	cat >> confdefs.h <<EOF
+#define DEFAULT_MAILBOX "$DEFAULT_MAILBOX"
+EOF
 
+else
+	DEFAULT_MAILBOX=none
+fi
+echo "$ac_t""$DEFAULT_MAILBOX" 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
+## PGP Support
+echo $ac_n "checking if you want PGP/GPG-Support""... $ac_c" 1>&6
+echo "configure:3521: checking if you want PGP/GPG-Support" >&5
 
-# Check whether --enable-echo or --disable-echo was given.
-if test "${enable_echo+set}" = set; then
-  enableval="$enable_echo"
+# Check whether --enable-pgp-gpg or --disable-pgp-gpg was given.
+if test "${enable_pgp_gpg+set}" = set; then
+  enableval="$enable_pgp_gpg"
   test "$enableval" != no && enableval=yes
   if test "$enableval" != "yes" ; then
-    
-    ECHO_LT='--silent'
-    ECHO_LD='@echo linking $@;'
-    RULE_CC='	@echo compiling $<'
-    SHOW_CC='	@echo compiling $@'
-    ECHO_CC='@'
- 
+    USE_PGP_GPG=no 
   else
-    
-    ECHO_LT=''
-    ECHO_LD=''
-    RULE_CC='# compiling'
-    SHOW_CC='# compiling'
-    ECHO_CC=''
-
+    USE_PGP_GPG=yes
   fi
 else
   enableval=yes 
-  
-    ECHO_LT=''
-    ECHO_LD=''
-    RULE_CC='# compiling'
-    SHOW_CC='# compiling'
-    ECHO_CC=''
-
+  USE_PGP_GPG=yes
   
 fi
 
 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
-
-# Check whether --enable-prototypes or --disable-prototypes was given.
-if test "${enable_prototypes+set}" = set; then
-  enableval="$enable_prototypes"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    with_decl_check=yes 
-  else
-    with_decl_check=no
-  fi
+if test "$USE_PGP_GPG" = "yes" ; then
+	
+# Check whether --with-pgp or --without-pgp was given.
+if test "${with_pgp+set}" = set; then
+  withval="$with_pgp"
+  case "$withval" in #(vi
+  yes)
+   { echo "configure: error: expected a value for --with-pgp" 1>&2; exit 1; }
+   ;; #(vi
+  no)
+   ;; #(vi
+  *)
+   # user supplied option-value for "--with-pgp=path"
+   echo $ac_n "checking for pgp""... $ac_c" 1>&6
+echo "configure:3553: checking for pgp" >&5
+   ac_cv_path_PATH_PGP="$withval"
+   cat >> confdefs.h <<EOF
+#define PATH_PGP "$withval"
+EOF
+   cat >> confdefs.h <<\EOF
+#define HAVE_PGP 1
+EOF
+   echo "$ac_t""$withval" 1>&6
+   ;;
+ esac
 else
-  enableval=no 
-  with_decl_check=no
   
+  # user did not specify "--with-pgp"; do automatic check
+  # 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:3570: 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
+  case "$PATH_PGP" in
+  /*)
+  ac_cv_path_PATH_PGP="$PATH_PGP" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PATH_PGP="$PATH_PGP" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PATH_PGP="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+PATH_PGP="$ac_cv_path_PATH_PGP"
+if test -n "$PATH_PGP"; then
+  echo "$ac_t""$PATH_PGP" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -n "$PATH_PGP"; then
+    cat >> confdefs.h <<EOF
+#define PATH_PGP "$PATH_PGP"
+EOF
+    cat >> confdefs.h <<\EOF
+#define HAVE_PGP 1
+EOF
+  fi
+
+fi
+
+	# FIXME: check if pgp is pgp2 or pgp6
+
+	
+# Check whether --with-pgpk or --without-pgpk was given.
+if test "${with_pgpk+set}" = set; then
+  withval="$with_pgpk"
+  case "$withval" in #(vi
+  yes)
+   { echo "configure: error: expected a value for --with-pgpk" 1>&2; exit 1; }
+   ;; #(vi
+  no)
+   ;; #(vi
+  *)
+   # user supplied option-value for "--with-pgpk=path"
+   echo $ac_n "checking for pgpk""... $ac_c" 1>&6
+echo "configure:3628: checking for pgpk" >&5
+   ac_cv_path_PATH_PGPK="$withval"
+   cat >> confdefs.h <<EOF
+#define PATH_PGPK "$withval"
+EOF
+   cat >> confdefs.h <<\EOF
+#define HAVE_PGPK 1
+EOF
+   echo "$ac_t""$withval" 1>&6
+   ;;
+ esac
+else
+  
+  # user did not specify "--with-pgpk"; do automatic check
+  # 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:3645: 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
+  case "$PATH_PGPK" in
+  /*)
+  ac_cv_path_PATH_PGPK="$PATH_PGPK" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PATH_PGPK="$PATH_PGPK" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PATH_PGPK="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+PATH_PGPK="$ac_cv_path_PATH_PGPK"
+if test -n "$PATH_PGPK"; then
+  echo "$ac_t""$PATH_PGPK" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -n "$PATH_PGPK"; then
+    cat >> confdefs.h <<EOF
+#define PATH_PGPK "$PATH_PGPK"
+EOF
+    cat >> confdefs.h <<\EOF
+#define HAVE_PGPK 1
+EOF
+  fi
+
+fi
+
+	# FIXME: remove tailing k
+
+	
+# Check whether --with-gpg or --without-gpg was given.
+if test "${with_gpg+set}" = set; then
+  withval="$with_gpg"
+  case "$withval" in #(vi
+  yes)
+   { echo "configure: error: expected a value for --with-gpg" 1>&2; exit 1; }
+   ;; #(vi
+  no)
+   ;; #(vi
+  *)
+   # user supplied option-value for "--with-gpg=path"
+   echo $ac_n "checking for gpg""... $ac_c" 1>&6
+echo "configure:3703: checking for gpg" >&5
+   ac_cv_path_PATH_GPG="$withval"
+   cat >> confdefs.h <<EOF
+#define PATH_GPG "$withval"
+EOF
+   cat >> confdefs.h <<\EOF
+#define HAVE_GPG 1
+EOF
+   echo "$ac_t""$withval" 1>&6
+   ;;
+ esac
+else
+  
+  # user did not specify "--with-gpg"; do automatic check
+  # 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:3720: 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
+  case "$PATH_GPG" in
+  /*)
+  ac_cv_path_PATH_GPG="$PATH_GPG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PATH_GPG="$PATH_GPG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PATH_GPG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+PATH_GPG="$ac_cv_path_PATH_GPG"
+if test -n "$PATH_GPG"; then
+  echo "$ac_t""$PATH_GPG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -n "$PATH_GPG"; then
+    cat >> confdefs.h <<EOF
+#define PATH_GPG "$PATH_GPG"
+EOF
+    cat >> confdefs.h <<\EOF
+#define HAVE_GPG 1
+EOF
+  fi
+
+fi
+
+fi
+
+## slrnface
+
+# Check whether --with-slrnface or --without-slrnface was given.
+if test "${with_slrnface+set}" = set; then
+  withval="$with_slrnface"
+  case "$withval" in #(vi
+  yes)
+   { echo "configure: error: expected a value for --with-slrnface" 1>&2; exit 1; }
+   ;; #(vi
+  no)
+   ;; #(vi
+  *)
+   # user supplied option-value for "--with-slrnface=path"
+   echo $ac_n "checking for slrnface""... $ac_c" 1>&6
+echo "configure:3779: checking for slrnface" >&5
+   ac_cv_path_PATH_SLRNFACE="$withval"
+   cat >> confdefs.h <<EOF
+#define PATH_SLRNFACE "$withval"
+EOF
+   cat >> confdefs.h <<\EOF
+#define HAVE_SLRNFACE 1
+EOF
+   echo "$ac_t""$withval" 1>&6
+   ;;
+ esac
+else
+  
+  # user did not specify "--with-slrnface"; do automatic check
+  # Extract the first word of "slrnface", so it can be a program name with args.
+set dummy slrnface; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3796: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PATH_SLRNFACE'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$PATH_SLRNFACE" in
+  /*)
+  ac_cv_path_PATH_SLRNFACE="$PATH_SLRNFACE" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PATH_SLRNFACE="$PATH_SLRNFACE" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PATH_SLRNFACE="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+PATH_SLRNFACE="$ac_cv_path_PATH_SLRNFACE"
+if test -n "$PATH_SLRNFACE"; then
+  echo "$ac_t""$PATH_SLRNFACE" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -n "$PATH_SLRNFACE"; then
+    cat >> confdefs.h <<EOF
+#define PATH_SLRNFACE "$PATH_SLRNFACE"
+EOF
+    cat >> confdefs.h <<\EOF
+#define HAVE_SLRNFACE 1
+EOF
+  fi
+
+fi
+
+
+## Default shell
+
+# Check whether --with-shell or --without-shell was given.
+if test "${with_shell+set}" = set; then
+  withval="$with_shell"
+  cf_cv_default_shell=$withval
+else
+  cf_cv_default_shell=
+fi
+
+
+echo $ac_n "checking for the default shell program""... $ac_c" 1>&6
+echo "configure:3852: 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 3858 "configure"
+#include "confdefs.h"
+
+#include <sys/params.h>
+int main() {
+
+#if (defined(BSD) && (BSD >= 199103))
+#else
+make an error
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3871: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  $cf_shell_progs="csh tcsh $cf_shell_progs"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+fi
+
+echo "${as_me:-configure}:3881: 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 "${as_me:-configure}:3885: testing /etc/shells ..." 1>&5
+
+	for cf_prog in $cf_shell_progs
+	do
+		case $cf_prog in
+			/*)
+				cf_pattern="^"$cf_prog"$"
+				;;
+			*/*)
+				{ echo "configure: error: Program name must be absolute or filename: $cf_prog" 1>&2; exit 1; }
+				;;
+			*)
+				cf_pattern="/"$cf_prog"$"
+				;;
+		esac
+		cf_path=`egrep $cf_pattern /etc/shells 2>/dev/null`
+		if test -n "$cf_path"
+		then
+			for cf_shell in $cf_path
+			do
+				if test -f "$cf_shell"
+				then
+					DEFAULT_SHELL="$cf_shell"
+					break
+				fi
+			done
+		fi
+		if test -n "$DEFAULT_SHELL"
+		then
+			break
+		fi
+	done
+	echo "$ac_t""$DEFAULT_SHELL" 1>&6
+else
+	
+echo "${as_me:-configure}:3920: 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:3927: 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
+  case "$DEFAULT_SHELL" in
+  /*)
+  ac_cv_path_DEFAULT_SHELL="$DEFAULT_SHELL" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_DEFAULT_SHELL="$DEFAULT_SHELL" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/bin:/usr/bin:/usr/xpg4/bin:/bin/posix:/usr/bin/posix:/usr/old/bin:/usr/local/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_DEFAULT_SHELL="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+DEFAULT_SHELL="$ac_cv_path_DEFAULT_SHELL"
+if test -n "$DEFAULT_SHELL"; then
+  echo "$ac_t""$DEFAULT_SHELL" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$DEFAULT_SHELL" && break
+done
+
+fi
+if test -z "$DEFAULT_SHELL" ; then
+	echo "configure: warning: Cannot find the default shell you specified: $cf_shell_progs" 1>&2
+	if test -f /bin/false ; then
+		echo "configure: warning: Using /bin/false instead" 1>&2
+		DEFAULT_SHELL=/bin/false
+	else
+		{ echo "configure: error: Cannot use /bin/false because it does not exist" 1>&2; exit 1; }
+	fi
+fi
+cat >> confdefs.h <<EOF
+#define DEFAULT_SHELL "$DEFAULT_SHELL"
+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:3980: checking if NNTP-support will be used" >&5
+
+# Check whether --enable-nntp or --disable-nntp was given.
+if test "${enable_nntp+set}" = set; then
+  enableval="$enable_nntp"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    USE_NNTP=no 
+  else
+    USE_NNTP=yes
+  fi
+else
+  enableval=yes 
+  USE_NNTP=yes
+  
+fi
+
+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:4002: 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
+  enableval="$enable_nntp_only"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define NNTP_ONLY 1
+EOF
+
+	 USE_SPOOLDIR=no 
+  else
+    cat >> confdefs.h <<\EOF
+#define NNTP_ABLE 1
+EOF
+
+  fi
+else
+  enableval=no 
+  cat >> confdefs.h <<\EOF
+#define NNTP_ABLE 1
+EOF
+
+  
+fi
+
+echo "$ac_t""$enableval" 1>&6
+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:4034: 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
+  enableval="$enable_debug"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    ENABLE_DEBUG=''
+	CFLAGS="-g $CFLAGS"
+	LDFLAGS="-g $LDFLAGS" 
+  else
+    ENABLE_DEBUG='#'
+	test -z "$save_CFLAGS" && CFLAGS=`echo $CFLAGS|sed -e 's/-g //' -e 's/-g$//'`
+  fi
+else
+  enableval=no 
+  ENABLE_DEBUG='#'
+	test -z "$save_CFLAGS" && CFLAGS=`echo $CFLAGS|sed -e 's/-g //' -e 's/-g$//'`
+  
+fi
+
+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:4061: 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
+  enableval="$enable_echo"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    
+    ECHO_LT='--silent'
+    ECHO_LD='@echo linking $@;'
+    RULE_CC='@echo compiling $<'
+    SHOW_CC='@echo compiling $@'
+    ECHO_CC='@'
+ 
+  else
+    
+    ECHO_LT=''
+    ECHO_LD=''
+    RULE_CC=''
+    SHOW_CC=''
+    ECHO_CC=''
+
+  fi
+else
+  enableval=yes 
+  
+    ECHO_LT=''
+    ECHO_LD=''
+    RULE_CC=''
+    SHOW_CC=''
+    ECHO_CC=''
+
+  
+fi
+
+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:4106: 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
+  enableval="$enable_prototypes"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    with_decl_check=yes 
+  else
+    with_decl_check=no
+  fi
+else
+  enableval=no 
+  with_decl_check=no
+  
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+###	use option --enable-warnings to turn on all gcc warnings
+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:4130: 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
+  enableval="$enable_warnings"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    with_warnings=yes 
+  else
+    with_warnings=no
+  fi
+else
+  enableval=no 
+  with_warnings=no
+  
+fi
+
+echo "$ac_t""$with_warnings" 1>&6
+if test "$with_warnings" = "yes"
+then
+	with_ext_const=yes
+	
+
+GCC_VERSION=none
+if test "$GCC" = yes ; then
+	echo $ac_n "checking version of $CC""... $ac_c" 1>&6
+echo "configure:4156: checking version of $CC" >&5
+	GCC_VERSION="`${CC} --version 2>/dev/null | 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
+fi
+
+
+
+
+INTEL_COMPILER=no
+
+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:4171: checking if this is really Intel C compiler" >&5
+		cf_save_CFLAGS="$CFLAGS"
+		CFLAGS="$CFLAGS -no-gcc"
+		cat > conftest.$ac_ext <<EOF
+#line 4175 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:4187: \"$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"
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+		CFLAGS="$cf_save_CFLAGS"
+		echo "$ac_t""$INTEL_COMPILER" 1>&6
+		;;
+	esac
+fi
+
+
+cat > conftest.$ac_ext <<EOF
+#line 4205 "${as_me:-configure}"
+int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+EOF
+
+if test "$INTEL_COMPILER" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# remark #593: variable "curs_sb_left_arrow" was set but never used
+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+# remark #869: parameter "tw" was never referenced
+# remark #981: operands are evaluated in unspecified order
+# warning #279: controlling expression is constant
+
+	echo "checking for $CC warning options" 1>&6
+echo "configure:4223: checking for $CC warning options" >&5
+	cf_save_CFLAGS="$CFLAGS"
+	EXTRA_CFLAGS="-Wall"
+	for cf_opt in \
+		wd1419 \
+		wd1683 \
+		wd1684 \
+		wd193 \
+		wd593 \
+		wd279 \
+		wd810 \
+		wd869 \
+		wd981
+	do
+		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+		if { (eval echo configure:4238: \"$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
+	done
+	CFLAGS="$cf_save_CFLAGS"
+
+elif test "$GCC" = yes
+then
+	echo "checking for $CC warning options" 1>&6
+echo "configure:4248: checking for $CC warning options" >&5
+	cf_save_CFLAGS="$CFLAGS"
+	EXTRA_CFLAGS=
+	cf_warn_CONST=""
+	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
+	for cf_opt in W Wall \
+		Wbad-function-cast \
+		Wcast-align \
+		Wcast-qual \
+		Winline \
+		Wmissing-declarations \
+		Wmissing-prototypes \
+		Wnested-externs \
+		Wpointer-arith \
+		Wshadow \
+		Wstrict-prototypes \
+		Wundef $cf_warn_CONST 
+	do
+		CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+		if { (eval echo configure:4267: \"$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
+				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
+				;;
+			Winline) #(vi
+				case $GCC_VERSION in
+				[34].*)
+					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+
+echo "${as_me:-configure}:4278: testing feature is broken in gcc $GCC_VERSION ..." 1>&5
+
+
+					continue;;
+				esac
+				;;
+			esac
+			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+		fi
+	done
+	CFLAGS="$cf_save_CFLAGS"
+fi
+rm -rf conftest*
+
+
+
+fi
+fi
+
+## !NNTP_ONLY
+if test "$USE_SPOOLDIR" = "yes"; then
+	## options for directories
+	echo $ac_n "checking for news-library path""... $ac_c" 1>&6
+echo "configure:4301: checking for news-library path" >&5
+	
+# Check whether --with-libdir or --without-libdir was given.
+if test "${with_libdir+set}" = set; then
+  withval="$with_libdir"
+  :
+else
+  withval="${NEWSLIBDIR:-/usr/lib/news}"
+fi
+if true ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
+case ".$withval" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval withval="$withval"
+  case ".$withval" in #(vi
+  .NONE/*)
+    withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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
+
+fi
+NEWSLIBDIR="$withval"
+
+	echo "$ac_t""$NEWSLIBDIR" 1>&6
+
+	echo $ac_n "checking for news spool-directory path""... $ac_c" 1>&6
+echo "configure:4347: checking for news spool-directory path" >&5
+	
+# Check whether --with-spooldir or --without-spooldir was given.
+if test "${with_spooldir+set}" = set; then
+  withval="$with_spooldir"
+  :
+else
+  withval="${SPOOLDIR:-/var/spool/news}"
+fi
+if true ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
+case ".$withval" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval withval="$withval"
+  case ".$withval" in #(vi
+  .NONE/*)
+    withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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
+
+fi
+SPOOLDIR="$withval"
+
+	echo "$ac_t""$SPOOLDIR" 1>&6
+
+	echo $ac_n "checking for news overview-directory path""... $ac_c" 1>&6
+echo "configure:4393: 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
+  withval="$with_nov_dir"
+  :
+else
+  withval="${NOVROOTDIR:-$SPOOLDIR}"
+fi
+if true ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
+case ".$withval" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval withval="$withval"
+  case ".$withval" in #(vi
+  .NONE/*)
+    withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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
+
+fi
+NOVROOTDIR="$withval"
+
+	echo "$ac_t""$NOVROOTDIR" 1>&6
+
+	echo $ac_n "checking for overview filename""... $ac_c" 1>&6
+echo "configure:4439: checking for overview filename" >&5
+	
+# Check whether --with-nov-fname or --without-nov-fname was given.
+if test "${with_nov_fname+set}" = set; then
+  withval="$with_nov_fname"
+  :
+else
+  withval="${OVERVIEW_FILE-.overview}"
+fi
+test -z "$withval" && withval=no
+case "$withval" in #(vi
+yes)
+  { echo "configure: error: expected a value for --with-nov-fname" 1>&2; exit 1; }
+  ;; #(vi
+no) withval=""
+  ;;
+esac
+OVERVIEW_FILE="$withval"
+
+ cat >> confdefs.h <<EOF
+#define OVERVIEW_FILE "$withval"
+EOF
+
+	echo "$ac_t""$OVERVIEW_FILE" 1>&6
+
+	INEWSPATH="$NEWSLIBDIR"
+else
+	NEWSLIBDIR=""
+	SPOOLDIR=""
+	NOVROOTDIR=""
+	INEWSPATH="/usr/lib/news"
+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:4475: 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
+  withval="$with_inews_dir"
+  :
+else
+  withval="${INEWSDIR:-$INEWSPATH}"
+fi
+if true ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
+case ".$withval" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval withval="$withval"
+  case ".$withval" in #(vi
+  .NONE/*)
+    withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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
+
+fi
+INEWSDIR="$withval"
+
+INEWSDIR=`echo $INEWSDIR |sed -e 's,/$,,'`
+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:4524: 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
+  case "$INEWS" in
+  /*)
+  ac_cv_path_INEWS="$INEWS" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_INEWS="$INEWS" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$INEWSDIR:/news/bin:/usr/lib/news/bin:$INEWSPATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_INEWS="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_INEWS" && ac_cv_path_INEWS="--internal"
+  ;;
+esac
+fi
+INEWS="$ac_cv_path_INEWS"
+if test -n "$INEWS"; then
+  echo "$ac_t""$INEWS" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$ac_cv_path_INEWS" != ""; then
+	if test "$ac_cv_path_INEWS" = "--internal"; then
+		
+cf_define=`echo "$INEWS"|sed -e 's/\\\\/\\\\134/g' -e 's/^[ 	]\\+//' -e 's/[ 	]\\+$//' -e 's/"/\\\\042/g'`
+cat >> confdefs.h <<EOF
+#define PATH_INEWS "$cf_define"
+EOF
+
+
+	else
+		
+cf_define=`echo "$INEWS -h"|sed -e 's/\\\\/\\\\134/g' -e 's/^[ 	]\\+//' -e 's/[ 	]\\+$//' -e 's/"/\\\\042/g'`
+cat >> confdefs.h <<EOF
+#define PATH_INEWS "$cf_define"
+EOF
+
+
+	fi
+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:4580: 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
+  
+
+# Check whether --with-socks or --without-socks was given.
+if test "${with_socks+set}" = set; then
+  withval="$with_socks"
+  cf_cv_use_libsocks=$withval
+else
+  cf_cv_use_libsocks=no
+fi
+
+
+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:4600: 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
+  
+
+# Check whether --with-socks5 or --without-socks5 was given.
+if test "${with_socks5+set}" = set; then
+  withval="$with_socks5"
+  cf_cv_use_libsocks5=$withval
+else
+  cf_cv_use_libsocks5=no
+fi
+
+
+fi
+
+echo "$ac_t""$cf_cv_use_libsocks5" 1>&6
+
+if test "x$cf_cv_use_libsocks" != xno ; then
+	
+  
+  case "$cf_cv_use_libsocks" in #(vi
+  no) #(vi
+      ;;
+  yes) #(vi
+      ;;
+  *)
+      
+
+for cf_searchpath in `echo "$cf_cv_use_libsocks" | tr $PATH_SEPARATOR ' '`; do
+	if test -d $cf_searchpath/include; then
+		
+if test -n "$cf_searchpath/include" ; then
+  for cf_add_incdir in $cf_searchpath/include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 4657 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:4664: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:4681: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+	elif test -d $cf_searchpath/../include ; then
+		
+if test -n "$cf_searchpath/../include" ; then
+  for cf_add_incdir in $cf_searchpath/../include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 4723 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:4730: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:4747: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+	else
+{ echo "configure: error: cannot find socks library under $cf_cv_use_libsocks" 1>&2; exit 1; }
+	fi
+	if test -d $cf_searchpath/lib; then
+		
+if test -n "$cf_searchpath/lib" ; then
+  for cf_add_libdir in $cf_searchpath/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:4787: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	elif test -d $cf_searchpath ; then
+		
+if test -n "$cf_searchpath" ; then
+  for cf_add_libdir in $cf_searchpath
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:4817: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	else
+{ echo "configure: error: cannot find socks library under $cf_cv_use_libsocks" 1>&2; exit 1; }
+	fi
+done
+
+      ;;
+  esac
+
+  
+
+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+# will be set on completion of the AC_TRY_LINK below.
+cf_cv_header_path_socks=
+cf_cv_library_path_socks=
+
+
+echo "${as_me:-configure}:4842: testing Starting FIND_LINKAGE(socks,) ..." 1>&5
+
+
+cf_save_LIBS="$LIBS"
+
+cat > conftest.$ac_ext <<EOF
+#line 4848 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+
+int main() {
+
+      Raccept((char *)0)
+
+; return 0; }
+EOF
+if { (eval echo configure:4859: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+	cf_cv_find_linkage_socks=yes
+	cf_cv_header_path_socks=/usr/include
+	cf_cv_library_path_socks=/usr/lib
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  
+
+LIBS="-lsocks  $cf_save_LIBS"
+
+cat > conftest.$ac_ext <<EOF
+#line 4875 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+
+int main() {
+
+      Raccept((char *)0)
+
+; return 0; }
+EOF
+if { (eval echo configure:4886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+	cf_cv_find_linkage_socks=yes
+	cf_cv_header_path_socks=/usr/include
+	cf_cv_library_path_socks=/usr/lib
+	cf_cv_library_file_socks="-lsocks"
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  
+	cf_cv_find_linkage_socks=no
+	LIBS="$cf_save_LIBS"
+
+    test -n "$verbose" && echo "	find linkage for socks library" 1>&6
+
+echo "${as_me:-configure}:4904: testing find linkage for socks library ..." 1>&5
+
+
+    
+echo "${as_me:-configure}:4908: testing Searching for headers in FIND_LINKAGE(socks,) ..." 1>&5
+
+
+    cf_save_CPPFLAGS="$CPPFLAGS"
+    cf_test_CPPFLAGS="$CPPFLAGS"
+
+    
+cf_search=
+
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/socks &&       cf_search="$cf_search $cf_header_path/include/socks"
+	test -d $cf_header_path/include/socks/include &&    cf_search="$cf_search $cf_header_path/include/socks/include"
+	test -d $cf_header_path/socks/include &&       cf_search="$cf_search $cf_header_path/socks/include"
+	test -d $cf_header_path/socks/include/socks &&    cf_search="$cf_search $cf_header_path/socks/include/socks"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+# add the variations for the package we are looking for
+
+cf_search=
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/socks &&       cf_search="$cf_search /usr/include/socks"
+	test -d /usr/include/socks/include &&    cf_search="$cf_search /usr/include/socks/include"
+	test -d /usr/socks/include &&       cf_search="$cf_search /usr/socks/include"
+	test -d /usr/socks/include/socks &&    cf_search="$cf_search /usr/socks/include/socks"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/socks &&       cf_search="$cf_search $prefix/include/socks"
+	test -d $prefix/include/socks/include &&    cf_search="$cf_search $prefix/include/socks/include"
+	test -d $prefix/socks/include &&       cf_search="$cf_search $prefix/socks/include"
+	test -d $prefix/socks/include/socks &&    cf_search="$cf_search $prefix/socks/include/socks"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/socks &&       cf_search="$cf_search /usr/local/include/socks"
+	test -d /usr/local/include/socks/include &&    cf_search="$cf_search /usr/local/include/socks/include"
+	test -d /usr/local/socks/include &&       cf_search="$cf_search /usr/local/socks/include"
+	test -d /usr/local/socks/include/socks &&    cf_search="$cf_search /usr/local/socks/include/socks"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/socks &&       cf_search="$cf_search /opt/include/socks"
+	test -d /opt/include/socks/include &&    cf_search="$cf_search /opt/include/socks/include"
+	test -d /opt/socks/include &&       cf_search="$cf_search /opt/socks/include"
+	test -d /opt/socks/include/socks &&    cf_search="$cf_search /opt/socks/include/socks"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/socks &&       cf_search="$cf_search $HOME/include/socks"
+	test -d $HOME/include/socks/include &&    cf_search="$cf_search $HOME/include/socks/include"
+	test -d $HOME/socks/include &&       cf_search="$cf_search $HOME/socks/include"
+	test -d $HOME/socks/include/socks &&    cf_search="$cf_search $HOME/socks/include/socks"
+}
+
+
+
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/socks && cf_search="$cf_search $includedir/socks"
+}
+
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/socks && cf_search="$cf_search $oldincludedir/socks"
+}
+
+cf_search="$cf_search $cf_header_path_list"
+
+    for cf_cv_header_path_socks in $cf_search
+    do
+      if test -d $cf_cv_header_path_socks ; then
+        test -n "$verbose" && echo "	... testing $cf_cv_header_path_socks" 1>&6
+
+echo "${as_me:-configure}:5030: testing ... testing $cf_cv_header_path_socks ..." 1>&5
+
+
+        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_socks"
+        cat > conftest.$ac_ext <<EOF
+#line 5035 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+
+int main() {
+
+      Raccept((char *)0)
+
+; return 0; }
+EOF
+if { (eval echo configure:5046: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  
+            test -n "$verbose" && echo "	... found socks headers in $cf_cv_header_path_socks" 1>&6
+
+echo "${as_me:-configure}:5051: testing ... found socks headers in $cf_cv_header_path_socks ..." 1>&5
+
+
+            cf_cv_find_linkage_socks=maybe
+            cf_test_CPPFLAGS="$CPPFLAGS"
+            break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            
+fi
+rm -f conftest*
+      fi
+    done
+
+    if test "$cf_cv_find_linkage_socks" = maybe ; then
+
+      
+echo "${as_me:-configure}:5072: testing Searching for socks library in FIND_LINKAGE(socks,) ..." 1>&5
+
+
+      cf_save_LIBS="$LIBS"
+      cf_save_LDFLAGS="$LDFLAGS"
+
+      
+
+      if test "$cf_cv_find_linkage_socks" != yes ; then
+        
+cf_search=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/socks &&       cf_search="$cf_search $cf_library_path/lib/socks"
+	test -d $cf_library_path/lib/socks/lib &&    cf_search="$cf_search $cf_library_path/lib/socks/lib"
+	test -d $cf_library_path/socks/lib &&       cf_search="$cf_search $cf_library_path/socks/lib"
+	test -d $cf_library_path/socks/lib/socks &&    cf_search="$cf_search $cf_library_path/socks/lib/socks"
+}
+
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+
+cf_search=
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/socks &&       cf_search="$cf_search /usr/lib/socks"
+	test -d /usr/lib/socks/lib &&    cf_search="$cf_search /usr/lib/socks/lib"
+	test -d /usr/socks/lib &&       cf_search="$cf_search /usr/socks/lib"
+	test -d /usr/socks/lib/socks &&    cf_search="$cf_search /usr/socks/lib/socks"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
+	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
+	test -d $prefix/lib/socks &&       cf_search="$cf_search $prefix/lib/socks"
+	test -d $prefix/lib/socks/lib &&    cf_search="$cf_search $prefix/lib/socks/lib"
+	test -d $prefix/socks/lib &&       cf_search="$cf_search $prefix/socks/lib"
+	test -d $prefix/socks/lib/socks &&    cf_search="$cf_search $prefix/socks/lib/socks"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/socks &&       cf_search="$cf_search /usr/local/lib/socks"
+	test -d /usr/local/lib/socks/lib &&    cf_search="$cf_search /usr/local/lib/socks/lib"
+	test -d /usr/local/socks/lib &&       cf_search="$cf_search /usr/local/socks/lib"
+	test -d /usr/local/socks/lib/socks &&    cf_search="$cf_search /usr/local/socks/lib/socks"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/socks &&       cf_search="$cf_search /opt/lib/socks"
+	test -d /opt/lib/socks/lib &&    cf_search="$cf_search /opt/lib/socks/lib"
+	test -d /opt/socks/lib &&       cf_search="$cf_search /opt/socks/lib"
+	test -d /opt/socks/lib/socks &&    cf_search="$cf_search /opt/socks/lib/socks"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/socks &&       cf_search="$cf_search $HOME/lib/socks"
+	test -d $HOME/lib/socks/lib &&    cf_search="$cf_search $HOME/lib/socks/lib"
+	test -d $HOME/socks/lib &&       cf_search="$cf_search $HOME/socks/lib"
+	test -d $HOME/socks/lib/socks &&    cf_search="$cf_search $HOME/socks/lib/socks"
+}
+
+
+
+cf_search="$cf_library_path_list $cf_search"
+
+        for cf_cv_library_path_socks in $cf_search
+        do
+          if test -d $cf_cv_library_path_socks ; then
+            test -n "$verbose" && echo "	... testing $cf_cv_library_path_socks" 1>&6
+
+echo "${as_me:-configure}:5180: testing ... testing $cf_cv_library_path_socks ..." 1>&5
+
+
+            CPPFLAGS="$cf_test_CPPFLAGS"
+            LIBS="-lsocks  $cf_save_LIBS"
+            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_socks"
+            cat > conftest.$ac_ext <<EOF
+#line 5187 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+
+int main() {
+
+      Raccept((char *)0)
+
+; return 0; }
+EOF
+if { (eval echo configure:5198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+                test -n "$verbose" && echo "	... found socks library in $cf_cv_library_path_socks" 1>&6
+
+echo "${as_me:-configure}:5203: testing ... found socks library in $cf_cv_library_path_socks ..." 1>&5
+
+
+                cf_cv_find_linkage_socks=yes
+                cf_cv_library_file_socks="-lsocks"
+                break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  
+                CPPFLAGS="$cf_save_CPPFLAGS"
+                LIBS="$cf_save_LIBS"
+                LDFLAGS="$cf_save_LDFLAGS"
+                
+fi
+rm -rf conftest*
+          fi
+        done
+        CPPFLAGS="$cf_save_CPPFLAGS"
+        LDFLAGS="$cf_save_LDFLAGS"
+      fi
+
+    else
+      cf_cv_find_linkage_socks=no
+    fi
+    
+fi
+rm -rf conftest*
+
+fi
+rm -rf conftest*
+
+LIBS="$cf_save_LIBS"
+
+if test "$cf_cv_find_linkage_socks" = yes ; then
+
+	
+if test -n "$cf_cv_header_path_socks" ; then
+  for cf_add_incdir in $cf_cv_header_path_socks
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 5265 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:5272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:5289: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+	
+if test -n "$cf_cv_library_path_socks" ; then
+  for cf_add_libdir in $cf_cv_library_path_socks
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:5325: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	LIBS="-lsocks $LIBS"
+
+else
+echo "configure: warning: Cannot find socks library" 1>&2
+fi
+
+
+  if test "x$cf_cv_find_linkage_socks" = "xyes" ; then
+    cat >> confdefs.h <<\EOF
+#define SOCKS 1
+EOF
+
+
+    cat >> confdefs.h <<\EOF
+#define accept Raccept
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define bind Rbind
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define connect Rconnect
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define getpeername Rgetpeername
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define getsockname Rgetsockname
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define listen Rlisten
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define recvfrom Rrecvfrom
+EOF
+
+    cat >> confdefs.h <<\EOF
+#define select Rselect
+EOF
+
+  else
+    { echo "configure: error: cannot link with socks library" 1>&2; exit 1; }
+  fi
+
+else
+	
+cf_test_netlibs=no
+
+echo $ac_n "checking for network libraries""... $ac_c" 1>&6
+echo "configure:5388: checking for network libraries" >&5
+
+if eval "test \"`echo '$''{'cf_cv_netlibs'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+echo "$ac_t""working..." 1>&6
+
+cf_cv_netlibs=""
+cf_test_netlibs=yes
+
+case $host_os in #(vi
+mingw32) # (vi
+	for ac_hdr in windows.h winsock.h winsock2.h 
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:5405: 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 5410 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:5415: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+	if test "$ac_cv_header_winsock2_h" = "yes" ; then
+		cf_winsock_lib="-lws2_32"
+	elif test "$ac_cv_header_winsock_h" = "yes" ; then
+		cf_winsock_lib="-lwsock32"
+	fi
+
+	cf_save_LIBS="$LIBS"
+	LIBS="$cf_winsock_lib $LIBS"
+
+	cat > conftest.$ac_ext <<EOF
+#line 5452 "configure"
+#include "confdefs.h"
+
+#ifdef HAVE_WINDOWS_H
+#undef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#ifdef HAVE_WINSOCK2_H
+#include <winsock2.h>
+#else
+#ifdef HAVE_WINSOCK_H
+#include <winsock.h>
+#endif
+#endif
+#endif
+
+int main() {
+
+	char buffer[1024];
+	gethostname(buffer, sizeof(buffer));
+; return 0; }
+EOF
+if { (eval echo configure:5474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_netlibs="$cf_winsock_lib $cf_cv_netlibs"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  { echo "configure: error: Cannot link against winsock library" 1>&2; exit 1; }
+fi
+rm -rf conftest*
+
+	LIBS="$cf_save_LIBS"
+	;;
+*)
+	for ac_func in gethostname
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5491: 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 5496 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+
+echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6
+echo "configure:5542: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lnsl $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5550 "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
+    builtin and then its argument prototype would still apply.  */
+char gethostname();
+
+int main() {
+gethostname()
+; return 0; }
+EOF
+if { (eval echo configure:5561: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "gethostname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_gethostname=yes
+	if test "$cf_used_lib_nsl" != yes ; then cf_used_lib_nsl=yes; cf_cv_netlibs="-lnsl $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_gethostname=unknown
+	unset ac_cv_func_gethostname 2>/dev/null
+	
+			
+echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6
+echo "configure:5594: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lsocket $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5602 "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
+    builtin and then its argument prototype would still apply.  */
+char gethostname();
+
+int main() {
+gethostname()
+; return 0; }
+EOF
+if { (eval echo configure:5613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "gethostname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_gethostname=yes
+	if test "$cf_used_lib_socket" != yes ; then cf_used_lib_socket=yes; cf_cv_netlibs="-lsocket $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_gethostname=unknown
+	unset ac_cv_func_gethostname 2>/dev/null
+	
+fi
+
+
+fi
+
+
+fi
+done
+
+
+	echo $ac_n "checking for main in -linet""... $ac_c" 1>&6
+echo "configure:5655: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-linet  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5663 "configure"
+#include "confdefs.h"
+
+int main() {
+main()
+; return 0; }
+EOF
+if { (eval echo configure:5670: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cf_cv_netlibs="-linet $cf_cv_netlibs"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+	if test "$ac_cv_func_lsocket" != no ; then
+	for ac_func in socket
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5695: 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 5700 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+
+echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
+echo "configure:5746: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lsocket $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5754 "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
+    builtin and then its argument prototype would still apply.  */
+char socket();
+
+int main() {
+socket()
+; return 0; }
+EOF
+if { (eval echo configure:5765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "socket" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_socket=yes
+	if test "$cf_used_lib_socket" != yes ; then cf_used_lib_socket=yes; cf_cv_netlibs="-lsocket $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_socket=unknown
+	unset ac_cv_func_socket 2>/dev/null
+	
+			
+echo $ac_n "checking for socket in -lbsd""... $ac_c" 1>&6
+echo "configure:5798: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lbsd $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5806 "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
+    builtin and then its argument prototype would still apply.  */
+char socket();
+
+int main() {
+socket()
+; return 0; }
+EOF
+if { (eval echo configure:5817: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "socket" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_socket=yes
+	if test "$cf_used_lib_bsd" != yes ; then cf_used_lib_bsd=yes; cf_cv_netlibs="-lbsd $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_socket=unknown
+	unset ac_cv_func_socket 2>/dev/null
+	
+fi
+
+
+fi
+
+
+fi
+done
+
+	fi
+
+	for ac_func in gethostbyname
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5862: 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 5867 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:5890: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+
+echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
+echo "configure:5913: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lnsl $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 5921 "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
+    builtin and then its argument prototype would still apply.  */
+char gethostbyname();
+
+int main() {
+gethostbyname()
+; return 0; }
+EOF
+if { (eval echo configure:5932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "gethostbyname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_gethostbyname=yes
+	if test "$cf_used_lib_nsl" != yes ; then cf_used_lib_nsl=yes; cf_cv_netlibs="-lnsl $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_gethostbyname=unknown
+	unset ac_cv_func_gethostbyname 2>/dev/null
+	
+fi
+
+
+fi
+done
+
+
+	for ac_func in gethostbyname
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:5973: 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 5978 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+
+echo $ac_n "checking for gethostbyname in -lnetwork""... $ac_c" 1>&6
+echo "configure:6024: checking for gethostbyname in -lnetwork" >&5
+ac_lib_var=`echo network'_'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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lnetwork $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 6032 "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
+    builtin and then its argument prototype would still apply.  */
+char gethostbyname();
+
+int main() {
+gethostbyname()
+; return 0; }
+EOF
+if { (eval echo configure:6043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "gethostbyname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_gethostbyname=yes
+	if test "$cf_used_lib_network" != yes ; then cf_used_lib_network=yes; cf_cv_netlibs="-lnetwork $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_gethostbyname=unknown
+	unset ac_cv_func_gethostbyname 2>/dev/null
+	
+fi
+
+
+fi
+done
+
+
+	for ac_func in strcasecmp
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:6084: 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 6089 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+
+echo $ac_n "checking for strcasecmp in -lresolv""... $ac_c" 1>&6
+echo "configure:6135: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lresolv $cf_cv_netlibs $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 6143 "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
+    builtin and then its argument prototype would still apply.  */
+char strcasecmp();
+
+int main() {
+strcasecmp()
+; return 0; }
+EOF
+if { (eval echo configure:6154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	
+cf_tr_func=`echo "strcasecmp" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_$cf_tr_func 1
+EOF
+
+	ac_cv_func_strcasecmp=yes
+	if test "$cf_used_lib_resolv" != yes ; then cf_used_lib_resolv=yes; cf_cv_netlibs="-lresolv $cf_cv_netlibs"; fi
+else
+  echo "$ac_t""no" 1>&6
+
+	ac_cv_func_strcasecmp=unknown
+	unset ac_cv_func_strcasecmp 2>/dev/null
+	
+fi
+
+
+fi
+done
+
+	;;
+esac
+
+fi
+
+
+case $cf_cv_netlibs in #(vi
+*ws2_32*)
+	cat >> confdefs.h <<\EOF
+#define USE_WINSOCK2_H 1
+EOF
+
+	;;
+esac
+
+LIBS="$cf_cv_netlibs $LIBS"
+test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6
+
+	if test "x$cf_cv_use_libsocks5" != xno ; then
+	
+  
+  case "$cf_cv_use_libsocks5" in #(vi
+  no) #(vi
+      ;;
+  yes) #(vi
+      ;;
+  *)
+      
+
+for cf_searchpath in `echo "$cf_cv_use_libsocks5" | tr $PATH_SEPARATOR ' '`; do
+	if test -d $cf_searchpath/include; then
+		
+if test -n "$cf_searchpath/include" ; then
+  for cf_add_incdir in $cf_searchpath/include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 6247 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:6254: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:6271: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+	elif test -d $cf_searchpath/../include ; then
+		
+if test -n "$cf_searchpath/../include" ; then
+  for cf_add_incdir in $cf_searchpath/../include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 6313 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:6320: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:6337: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+	else
+{ echo "configure: error: cannot find socks5 library under $cf_cv_use_libsocks5" 1>&2; exit 1; }
+	fi
+	if test -d $cf_searchpath/lib; then
+		
+if test -n "$cf_searchpath/lib" ; then
+  for cf_add_libdir in $cf_searchpath/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:6377: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	elif test -d $cf_searchpath ; then
+		
+if test -n "$cf_searchpath" ; then
+  for cf_add_libdir in $cf_searchpath
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:6407: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	else
+{ echo "configure: error: cannot find socks5 library under $cf_cv_use_libsocks5" 1>&2; exit 1; }
+	fi
+done
+
+      ;;
+  esac
+
+
+LIBS="-lsocks5 $LIBS"
+
+cat >> confdefs.h <<\EOF
+#define USE_SOCKS5 1
+EOF
+
+cat >> confdefs.h <<\EOF
+#define SOCKS 1
+EOF
+
+
+echo $ac_n "checking if the socks library uses socks4 prefix""... $ac_c" 1>&6
+echo "configure:6437: checking if the socks library uses socks4 prefix" >&5
+cf_use_socks4=error
+cat > conftest.$ac_ext <<EOF
+#line 6440 "configure"
+#include "confdefs.h"
+
+#include <socks.h>
+int main() {
+
+	Rinit((char *)0)
+; return 0; }
+EOF
+if { (eval echo configure:6449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cat >> confdefs.h <<\EOF
+#define USE_SOCKS4_PREFIX 1
+EOF
+
+	 cf_use_socks4=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cat > conftest.$ac_ext <<EOF
+#line 6461 "configure"
+#include "confdefs.h"
+#include <socks.h>
+int main() {
+SOCKSinit((char *)0)
+; return 0; }
+EOF
+if { (eval echo configure:6468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_use_socks4=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  { echo "configure: error: Cannot link with socks5 library" 1>&2; exit 1; }
+fi
+rm -rf conftest*
+fi
+rm -rf conftest*
+echo "$ac_t""$cf_use_socks4" 1>&6
+
+if test "$cf_use_socks4" = "yes" ; then
+	cat >> confdefs.h <<\EOF
+#define accept Raccept
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define bind Rbind
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define connect Rconnect
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define getpeername Rgetpeername
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define getsockname Rgetsockname
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define listen Rlisten
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define recvfrom Rrecvfrom
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define select Rselect
+EOF
+
+else
+	cat >> confdefs.h <<\EOF
+#define accept SOCKSaccept
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define getpeername SOCKSgetpeername
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define getsockname SOCKSgetsockname
+EOF
+
+	cat >> confdefs.h <<\EOF
+#define recvfrom SOCKSrecvfrom
+EOF
+
+fi
+
+echo $ac_n "checking if socks5p.h is available""... $ac_c" 1>&6
+echo "configure:6535: checking if socks5p.h is available" >&5
+cat > conftest.$ac_ext <<EOF
+#line 6537 "configure"
+#include "confdefs.h"
+
+#define INCLUDE_PROTOTYPES
+#include <socks.h>
+int main() {
+
+	init((char *)0)
+; return 0; }
+EOF
+if { (eval echo configure:6547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_use_socks5p_h=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_use_socks5p_h=no
+fi
+rm -f conftest*
+echo "$ac_t""$cf_use_socks5p_h" 1>&6
+
+test "$cf_use_socks5p_h" = yes && cat >> confdefs.h <<\EOF
+#define INCLUDE_PROTOTYPES 1
+EOF
+
+
+	fi
+fi
+
+### which locking method should be used for mailbox locking
+### first look for all available locking methods
+
+for ac_hdr in unistd.h fcntl.h sys/file.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:6574: 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 6579 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:6584: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for fcntl""... $ac_c" 1>&6
+echo "configure:6611: 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 6616 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char fcntl(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char fcntl();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_fcntl) || defined (__stub___fcntl)
+choke me
+#else
+fcntl();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_fcntl=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_fcntl=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'fcntl`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for lockf""... $ac_c" 1>&6
+echo "configure:6659: 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 6664 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char lockf(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char lockf();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_lockf) || defined (__stub___lockf)
+choke me
+#else
+lockf();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_lockf=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_lockf=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'lockf`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking for flock""... $ac_c" 1>&6
+echo "configure:6707: 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 6712 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char flock(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char flock();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_flock) || defined (__stub___flock)
+choke me
+#else
+flock();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:6735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_flock=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_flock=no"
+fi
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'flock`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking for file-locking functions""... $ac_c" 1>&6
+echo "configure:6756: 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
+  
+cf_cv_lockfile=
+for cf_lock in fcntl lockf flock
+do
+if eval 'test ${ac_cv_func_'$cf_lock'+set} = set'; then
+	case $cf_lock in #(vi
+	fcntl) #(vi
+		cat > conftest.$ac_ext <<EOF
+#line 6768 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+int main() {
+
+	struct flock flk;
+	int block = 1;
+	int fd = 0;
+	int rc;
+
+	flk.l_type = F_WRLCK;
+	flk.l_whence = SEEK_SET;
+	flk.l_start = 0;
+	flk.l_len = 0;
+	rc = fcntl(fd, block ? F_SETLKW : F_SETLK, &flk)
+	&& fcntl(fd, F_GETLK, &flk)
+	&& fcntl(fd, F_SETLK, &flk);
+	
+; return 0; }
+EOF
+if { (eval echo configure:6796: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  continue
+fi
+rm -f conftest*
+		;;
+	lockf) #(vi
+		cat > conftest.$ac_ext <<EOF
+#line 6808 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+
+int main() {
+
+	int block = 1, fd = 0;
+	int ret = lockf(fd, block ? F_LOCK : F_TLOCK, 0L)
+	 && lockf(fd, F_TEST, 0L)
+	 && lockf(fd, F_ULOCK, 0L);
+	
+; return 0; }
+EOF
+if { (eval echo configure:6828: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  continue
+fi
+rm -f conftest*
+		;;
+	flock)
+		cat > conftest.$ac_ext <<EOF
+#line 6840 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#endif
+#ifdef HAVE_SYS_FILE_H
+#include <sys/file.h>
+#endif
+
+int main() {
+
+	int block = 1, fd = 0;
+	int ret = flock(fd, (LOCK_EX|LOCK_NB))
+	 && flock(fd, LOCK_UN)
+	 && flock(fd, block ? LOCK_EX : (LOCK_EX | LOCK_NB));
+	
+; return 0; }
+EOF
+if { (eval echo configure:6863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  continue
+fi
+rm -f conftest*
+		;;
+	esac
+	cf_cv_lockfile="$cf_cv_lockfile $cf_lock"
+fi
+done
+
+fi
+
+echo "$ac_t""$cf_cv_lockfile" 1>&6
+
+
+echo $ac_n "checking which locking method will be used""... $ac_c" 1>&6
+echo "configure:6884: checking which locking method will be used" >&5
+### fcntl() is preferred, if the user just disables fcntl()
+### without specifying an alternative lockf() is preferred
+
+# Check whether --enable-fcntl or --disable-fcntl was given.
+if test "${enable_fcntl+set}" = set; then
+  enableval="$enable_fcntl"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    requested_lock="lockf" 
+  else
+    requested_lock="fcntl"
+  fi
+else
+  enableval=yes 
+  requested_lock="fcntl"
+  
+fi
+
+
+# Check whether --enable-lockf or --disable-lockf was given.
+if test "${enable_lockf+set}" = set; then
+  enableval="$enable_lockf"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    requested_lock="lockf" 
+  fi
+else
+  enableval=no   
+fi
+
+
+# Check whether --enable-flock or --disable-flock was given.
+if test "${enable_flock+set}" = set; then
+  enableval="$enable_flock"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    requested_lock="flock" 
+  fi
+else
+  enableval=no   
+fi
+
+### now check the users wishes against available locking methods
+if test -n "$cf_cv_lockfile"; then
+	for lock in $cf_cv_lockfile; do
+		if test "$lock" = "$requested_lock"; then
+			used_locking=$lock
+			break
+		fi
+	done
+### if none of them matched use the one with the highest priority
+	if test "x$used_locking" = "x"; then
+		used_locking=`echo $cf_cv_lockfile|sed -e 's/^\([^ ]\+\).*/\1/g'`
+	fi
+	echo "$ac_t""$used_locking" 1>&6
+	
+used_locking=`echo "$used_locking" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define USE_$used_locking 1
+EOF
+
+else
+	echo "$ac_t""none" 1>&6;
+	echo "configure: warning: None of fcntl(), lockf(), flock() available" 1>&2
+fi
+
+
+echo $ac_n "checking for screen type""... $ac_c" 1>&6
+echo "configure:6954: checking for screen type" >&5
+
+# Check whether --with-screen or --without-screen was given.
+if test "${with_screen+set}" = set; then
+  withval="$with_screen"
+  cf_with_screen=$withval
+else
+  cf_with_screen=none
+fi
+
+echo "$ac_t""$cf_with_screen" 1>&6
+
+use_curses=no
+use_ncurses=no
+
+
+
+echo $ac_n "checking for specific curses-directory""... $ac_c" 1>&6
+echo "configure:6972: checking for specific curses-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"
+  cf_cv_curses_dir=$withval
+else
+  cf_cv_curses_dir=no
+fi
+
+echo "$ac_t""$cf_cv_curses_dir" 1>&6
+
+if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+then
+	
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
+fi
+
+case ".$withval" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval withval="$withval"
+  case ".$withval" in #(vi
+  .NONE/*)
+    withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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
+
+	if test -d "$cf_cv_curses_dir"
+	then
+		
+if test -n "$cf_cv_curses_dir/include" ; then
+  for cf_add_incdir in $cf_cv_curses_dir/include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 7043 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:7050: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:7067: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+		
+if test -n "$cf_cv_curses_dir/lib" ; then
+  for cf_add_libdir in $cf_cv_curses_dir/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:7103: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	fi
+fi
+
+
+case $cf_with_screen in #(vi
+termcap|terminfo) #(we will determine which it really is
+	;;
+curses) #(vi
+	use_curses=yes
+	;;
+ncurses) #(vi
+	use_curses=yes
+	use_ncurses=yes
+	;;
+ncursesw) #(vi
+	use_curses=yes
+	use_ncurses=yes
+	;;
+pdcurses) #(vi
+	use_curses=yes
+	;;
+none)
+	echo $ac_n "checking if you want to use ncurses library""... $ac_c" 1>&6
+echo "configure:7135: 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
+  withval="$with_ncurses"
+  use_ncurses=$withval
+else
+  use_ncurses=no
+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:7148: 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
+  enableval="$enable_curses"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cf_with_screen=curses;  use_curses=$withval 
+  else
+    cf_with_screen=termcap; use_curses=no
+  fi
+else
+  enableval=no 
+  cf_with_screen=termcap; use_curses=no
+  
+fi
+
+	echo "$ac_t""$enableval" 1>&6
+	;;
+esac
+
+if test $use_curses != no ; then
+	cat >> confdefs.h <<\EOF
+#define USE_CURSES 1
+EOF
+
+	case $cf_with_screen in #(vi
+	ncurses) #(vi
+		
+cf_ncuconfig_root=ncurses
+
+echo "Looking for ${cf_ncuconfig_root}-config"
+for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+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:7185: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NCURSES_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$NCURSES_CONFIG" in
+  /*)
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+NCURSES_CONFIG="$ac_cv_path_NCURSES_CONFIG"
+if test -n "$NCURSES_CONFIG"; then
+  echo "$ac_t""$NCURSES_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$NCURSES_CONFIG" && break
+done
+test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
+
+
+if test "$NCURSES_CONFIG" != none ; then
+
+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
+
+# even with config script, some packages use no-override for curses.h
+
+echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
+echo "configure:7230: 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
+  
+cf_cv_ncurses_header=none
+for cf_header in  \
+	ncurses/ncurses.h \
+	ncurses/curses.h \
+	ncurses.h \
+	curses.h 
+do
+cat > conftest.$ac_ext <<EOF
+#line 7243 "configure"
+#include "confdefs.h"
+#include <${cf_header}>
+int main() {
+initscr(); tgoto("?", 0,0)
+; return 0; }
+EOF
+if { (eval echo configure:7250: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_ncurses_header=$cf_header; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$cf_cv_ncurses_header" 1>&6
+
+if test "$cf_cv_ncurses_header" = none ; then
+	{ echo "configure: error: No curses header-files found" 1>&2; exit 1; }
+fi
+
+# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
+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:7273: 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 7278 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:7283: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
+
+
+
+cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat >> confdefs.h <<EOF
+#define $cf_nculib_ROOT 1
+EOF
+
+
+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
+
+else
+
+
+
+cf_ncuhdr_root=ncurses
+
+test -n "$cf_cv_curses_dir" && \
+test "$cf_cv_curses_dir" != "no" && { \
+  
+if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
+  for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 7359 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:7366: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:7383: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+}
+
+echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
+echo "configure:7402: 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
+  
+	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
+	( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
+	for cf_header in $cf_header_list
+	do
+		
+	cat > conftest.$ac_ext <<EOF
+#line 7413 "configure"
+#include "confdefs.h"
+
+
+#include <$cf_header>
+int main() {
+
+#ifdef NCURSES_VERSION
+
+printf("%s\n", NCURSES_VERSION);
+#else
+#ifdef __NCURSES_H
+printf("old\n");
+#else
+	make an error
+#endif
+#endif
+	
+	
+; return 0; }
+EOF
+if { (eval echo configure:7434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_ncurses_h=$cf_header
+	
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_ncurses_h=no
+fi
+rm -f conftest*
+
+		test "$cf_cv_ncurses_h" != no && break
+	done
+
+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:7460: 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
+  
+	test -n "$verbose" && echo
+	
+cf_search=
+
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/$cf_ncuhdr_root &&       cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
+	test -d $cf_header_path/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include &&       cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+# add the variations for the package we are looking for
+
+cf_search=
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+	test -d /usr/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/$cf_ncuhdr_root &&       cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
+	test -d $prefix/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
+	test -d $prefix/$cf_ncuhdr_root/include &&       cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
+	test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+	test -d /usr/local/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+	test -d /opt/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/$cf_ncuhdr_root &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+	test -d $HOME/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
+}
+
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
+}
+
+cf_search="$cf_search $cf_header_path_list"
+
+	test -n "$verbose" && echo search path $cf_search
+	cf_save2_CPPFLAGS="$CPPFLAGS"
+	for cf_incdir in $cf_search
+	do
+		
+if test -n "$cf_incdir" ; then
+  for cf_add_incdir in $cf_incdir
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 7606 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:7613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
+fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:7630: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+		for cf_header in \
+			ncurses.h \
+			curses.h
+		do
+			
+	cat > conftest.$ac_ext <<EOF
+#line 7652 "configure"
+#include "confdefs.h"
+
+
+#include <$cf_header>
+int main() {
+
+#ifdef NCURSES_VERSION
+
+printf("%s\n", NCURSES_VERSION);
+#else
+#ifdef __NCURSES_H
+printf("old\n");
+#else
+	make an error
+#endif
+#endif
+	
+	
+; return 0; }
+EOF
+if { (eval echo configure:7673: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_ncurses_h2=$cf_header
+	
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_ncurses_h2=no
+fi
+rm -f conftest*
+
+			if test "$cf_cv_ncurses_h2" != no ; then
+				cf_cv_ncurses_h2=$cf_incdir/$cf_header
+				test -n "$verbose" && echo $ac_n "	... found $ac_c" 1>&6
+				break
+			fi
+			test -n "$verbose" && echo "	... tested $cf_incdir/$cf_header" 1>&6
+		done
+		CPPFLAGS="$cf_save2_CPPFLAGS"
+		test "$cf_cv_ncurses_h2" != no && break
+	done
+	test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
+	
+fi
+
+echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
+
+	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+	cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
+	if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
+		cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
+	fi
+	
+if test -n "$cf_1st_incdir" ; then
+  for cf_add_incdir in $cf_1st_incdir
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 7731 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
+EOF
+if { (eval echo configure:7738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
 fi
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-echo "$ac_t""$enableval" 1>&6
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-###	use option --enable-warnings to turn on all gcc warnings
-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 "${as_me:-configure}:7755: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-# Check whether --enable-warnings or --disable-warnings was given.
-if test "${enable_warnings+set}" = set; then
-  enableval="$enable_warnings"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    with_warnings=yes 
-  else
-    with_warnings=no
-  fi
-else
-  enableval=no 
-  with_warnings=no
-  
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
 fi
 
-echo "$ac_t""$with_warnings" 1>&6
-if test "$with_warnings" = "yes"
-then
-	with_ext_const=yes
-	
 
-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
-	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
 fi
 
+# Set definitions to allow ifdef'ing for ncurses.h
 
+case $cf_cv_ncurses_header in # (vi
+*ncurses.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSES_H 1
+EOF
 
+	;;
+esac
 
-INTEL_COMPILER=no
+case $cf_cv_ncurses_header in # (vi
+ncurses/curses.h|ncurses/ncurses.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSES_NCURSES_H 1
+EOF
 
-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
-		cf_save_CFLAGS="$CFLAGS"
-		CFLAGS="$CFLAGS -no-gcc"
-		cat > conftest.$ac_ext <<EOF
-#line 3910 "configure"
-#include "confdefs.h"
+	;;
+ncursesw/curses.h|ncursesw/ncurses.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSESW_NCURSES_H 1
+EOF
+
+	;;
+esac
 
-int main() {
 
-#ifdef __INTEL_COMPILER
-#else
-make an error
-#endif
 
+echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
+echo "configure:7803: 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 7820 "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:3922: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7830: \"$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"
-
+  
+	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*
-		CFLAGS="$cf_save_CFLAGS"
-		echo "$ac_t""$INTEL_COMPILER" 1>&6
-		;;
-	esac
+	test "$cf_cv_term_header" != unknown && break
+done
+
 fi
 
+echo "$ac_t""$cf_cv_term_header" 1>&6
 
-cat > conftest.$ac_ext <<EOF
-#line 3940 "configure"
-int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+# 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
 
-if test "$INTEL_COMPILER" = yes
-then
-# The "-wdXXX" options suppress warnings:
-# remark #1419: external declaration in primary source file
-# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
-# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
-# remark #193: zero used for undefined preprocessing identifier
-# remark #593: variable "curs_sb_left_arrow" was set but never used
-# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
-# remark #869: parameter "tw" was never referenced
-# remark #981: operands are evaluated in unspecified order
-# warning #269: invalid format string conversion
+	;;
+esac
 
-	echo "checking for $CC warning options" 1>&6
-echo "configure:3959: checking for $CC warning options" >&5
-	cf_save_CFLAGS="$CFLAGS"
-	EXTRA_CFLAGS="-Wall"
-	for cf_opt in  \
-		wd1419 \
-		wd1682 \
-		wd1683 \
-		wd1684 \
-		wd193 \
-		wd279 \
-		wd593 \
-		wd810 \
-		wd869 \
-		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
-			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
-			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-		fi
-	done
-	CFLAGS="$cf_save_CFLAGS"
+case $cf_cv_term_header in # (vi
+ncurses/term.h) #(vi
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSES_TERM_H 1
+EOF
 
-elif test "$GCC" = yes
-then
-	echo "checking for $CC warning options" 1>&6
-echo "configure:3985: checking for $CC warning options" >&5
-	cf_save_CFLAGS="$CFLAGS"
-	EXTRA_CFLAGS="-W -Wall"
-	cf_warn_CONST=""
-	test "$with_ext_const" = yes && cf_warn_CONST="Wwrite-strings"
-	for cf_opt in \
-		Wbad-function-cast \
-		Wcast-align \
-		Wcast-qual \
-		Winline \
-		Wmissing-declarations \
-		Wmissing-prototypes \
-		Wnested-externs \
-		Wpointer-arith \
-		Wshadow \
-		Wstrict-prototypes \
-		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
-			test -n "$verbose" && echo "$ac_t""... -$cf_opt" 1>&6
-			case $cf_opt in #(vi
-			Wcast-qual) #(vi
-				CPPFLAGS="$CPPFLAGS -DXTSTRINGDEFINES"
-				;;
-			Winline) #(vi
-				case $GCC_VERSION in
-				3.3*)
-					test -n "$verbose" && echo "	feature is broken in gcc $GCC_VERSION" 1>&6
+	;;
+ncursesw/term.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSESW_TERM_H 1
+EOF
 
-					continue;;
-				esac
-				;;
-			esac
-			EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
-		fi
-	done
-	CFLAGS="$cf_save_CFLAGS"
-fi
-rm -f conftest*
+	;;
+esac
 
 
+# some applications need this, but should check for NCURSES_VERSION
+cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
 
-fi
-fi
 
-## !NNTP_ONLY
-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
-	
-# Check whether --with-libdir or --without-libdir was given.
-if test "${with_libdir+set}" = set; then
-  withval="$with_libdir"
-  :
+
+echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
+echo "configure:7885: 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
+  
+	cf_cv_ncurses_version=no
+	cf_tempfile=out$$
+	rm -f $cf_tempfile
+	if test "$cross_compiling" = yes; then
+  
+
+	# This will not work if the preprocessor splits the line after the
+	# Autoconf token.  The 'unproto' program does that.
+	cat > conftest.$ac_ext <<EOF
+#include <${cf_cv_ncurses_header:-curses.h}>
+#undef Autoconf
+#ifdef NCURSES_VERSION
+Autoconf NCURSES_VERSION
+#else
+#ifdef __NCURSES_H
+Autoconf "old"
+#endif
+;
+#endif
+EOF
+	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+	{ (eval echo configure:7911: \"$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"
+		rm -f conftest.out
+	fi
+
+else
+  cat > conftest.$ac_ext <<EOF
+#line 7920 "configure"
+#include "confdefs.h"
+
+#include <${cf_cv_ncurses_header:-curses.h}>
+#include <stdio.h>
+int main()
+{
+	FILE *fp = fopen("$cf_tempfile", "w");
+#ifdef NCURSES_VERSION
+# ifdef NCURSES_VERSION_PATCH
+	fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
+# else
+	fprintf(fp, "%s\n", NCURSES_VERSION);
+# endif
+#else
+# ifdef __NCURSES_H
+	fprintf(fp, "old\n");
+# else
+	make an error
+# endif
+#endif
+	${cf_cv_main_return:-return}(0);
+}
+EOF
+if { (eval echo configure:7944: \"$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`
 else
-  withval="${NEWSLIBDIR-/usr/lib/news}"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -fr conftest*
 fi
 
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(vi
-  eval withval="$withval"
-  case ".$withval" in #(vi
-  .NONE/*)
-    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
-  ;;
-esac
+	rm -f $cf_tempfile
 
-eval NEWSLIBDIR="$withval"
+fi
 
-	echo "$ac_t""$NEWSLIBDIR" 1>&6
+echo "$ac_t""$cf_cv_ncurses_version" 1>&6
+test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
 
-	echo $ac_n "checking for news spool-directory path""... $ac_c" 1>&6
-echo "configure:4073: checking for news spool-directory path" >&5
-	
-# Check whether --with-spooldir or --without-spooldir was given.
-if test "${with_spooldir+set}" = set; then
-  withval="$with_spooldir"
-  :
-else
-  withval="${SPOOLDIR-/var/spool/news}"
-fi
 
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(vi
-  eval withval="$withval"
-  case ".$withval" in #(vi
-  .NONE/*)
-    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
-  ;;
-esac
 
-eval 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
-	
-# Check whether --with-nov-dir or --without-nov-dir was given.
-if test "${with_nov_dir+set}" = set; then
-  withval="$with_nov_dir"
-  :
+cf_nculib_root=ncurses
+	# This works, except for the special case where we find gpm, but
+	# ncurses is in a nonstandard location via $LIBS, and we really want
+	# to link gpm.
+cf_ncurses_LIBS=""
+cf_ncurses_SAVE="$LIBS"
+echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+echo "configure:7975: 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
 else
-  withval="${NOVROOTDIR-$SPOOLDIR}"
-fi
-
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(vi
-  eval withval="$withval"
-  case ".$withval" in #(vi
-  .NONE/*)
-    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
-  ;;
-esac
+  ac_save_LIBS="$LIBS"
+LIBS="-lgpm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 7983 "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
+    builtin and then its argument prototype would still apply.  */
+char Gpm_Open();
 
-eval NOVROOTDIR="$withval"
+int main() {
+Gpm_Open()
+; return 0; }
+EOF
+if { (eval echo configure:7994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-	echo "$ac_t""$NOVROOTDIR" 1>&6
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-	echo $ac_n "checking for overview filename""... $ac_c" 1>&6
-echo "configure:4149: checking for overview filename" >&5
-	
-# Check whether --with-nov-fname or --without-nov-fname was given.
-if test "${with_nov_fname+set}" = set; then
-  withval="$with_nov_fname"
-  :
-else
-  withval="${OVERVIEW_FILE-.overview}"
 fi
-test -z "$withval" && withval=no
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-nov-fname" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-OVERVIEW_FILE="$withval"
+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:8010: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lgpm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8018 "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
+    builtin and then its argument prototype would still apply.  */
+char initscr();
 
- cat >> confdefs.h <<EOF
-#define OVERVIEW_FILE "$withval"
+int main() {
+initscr()
+; return 0; }
 EOF
+if { (eval echo configure:8029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-	echo "$ac_t""$OVERVIEW_FILE" 1>&6
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-	INEWSPATH="$NEWSLIBDIR"
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="$cf_ncurses_SAVE"
 else
-	NEWSLIBDIR=""
-	SPOOLDIR=""
-	NOVROOTDIR=""
-	INEWSPATH="/usr/lib/news"
+  echo "$ac_t""no" 1>&6
+cf_ncurses_LIBS="-lgpm"
 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
-
-# Check whether --with-inews-dir or --without-inews-dir was given.
-if test "${with_inews_dir+set}" = set; then
-  withval="$with_inews_dir"
-  :
 else
-  withval="${INEWSDIR-$INEWSPATH}"
+  echo "$ac_t""no" 1>&6
 fi
 
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(vi
-  eval withval="$withval"
-  case ".$withval" in #(vi
-  .NONE/*)
-    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
-  ;;
-esac
-
-eval INEWSDIR="$withval"
-
-INEWSDIR=`echo $INEWSDIR |sed -e 's,/$,,'`
-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
-if eval "test \"`echo '$''{'ac_cv_path_INEWS'+set}'`\" = set"; then
+case $host_os in #(vi
+freebsd*)
+	# This is only necessary if you are linking against an obsolete
+	# 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:8061: 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
 else
-  case "$INEWS" in
-  /*)
-  ac_cv_path_INEWS="$INEWS" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_INEWS="$INEWS" # Let the user override the test with a dos path.
-  ;;
-  *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$INEWSDIR:/news/bin:/usr/lib/news/bin:$INEWSPATH"
-  for ac_dir in $ac_dummy; do 
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_path_INEWS="$ac_dir/$ac_word"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_INEWS" && ac_cv_path_INEWS="--internal"
-  ;;
-esac
+  ac_save_LIBS="$LIBS"
+LIBS="-lmytinfo  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 8069 "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
+    builtin and then its argument prototype would still apply.  */
+char tgoto();
+
+int main() {
+tgoto()
+; return 0; }
+EOF
+if { (eval echo configure:8080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-INEWS="$ac_cv_path_INEWS"
-if test -n "$INEWS"; then
-  echo "$ac_t""$INEWS" 1>&6
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
 else
   echo "$ac_t""no" 1>&6
 fi
 
-if test "$ac_cv_path_INEWS" != ""; then
-	if test "$ac_cv_path_INEWS" = "--internal"; then
-		
-cf_define=`echo "$INEWS"|sed -e 's/\\\\/\\\\134/g' -e 's/^[ 	]\\+//' -e 's/[ 	]\\+$//' -e 's/"/\\\\042/g'`
-cat >> confdefs.h <<EOF
-#define PATH_INEWS "$cf_define"
-EOF
-
+	fi
+	;;
+esac
 
-	else
-		
-cf_define=`echo "$INEWS -h"|sed -e 's/\\\\/\\\\134/g' -e 's/^[ 	]\\+//' -e 's/[ 	]\\+$//' -e 's/"/\\\\042/g'`
-cat >> confdefs.h <<EOF
-#define PATH_INEWS "$cf_define"
-EOF
+LIBS="$cf_ncurses_LIBS $LIBS"
 
+if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+then
+	LIBS="-l$cf_nculib_root $LIBS"
+else
+	
+	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+	cf_libdir=""
+	echo $ac_n "checking for initscr""... $ac_c" 1>&6
+echo "configure:8114: 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 8119 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char initscr(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char initscr();
 
-	fi
-fi
+int main() {
 
-## !NNTP_ONLY
-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
-	
-# Check whether --with-inn-nntplib or --without-inn-nntplib was given.
-if test "${with_inn_nntplib+set}" = set; then
-  withval="$with_inn_nntplib"
-  :
-else
-  withval="${INN_NNTPLIB}"
-fi
-test -n "$withval" && \
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-inn-nntplib" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-INN_NNTPLIB="$withval"
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_initscr) || defined (__stub___initscr)
+choke me
+#else
+initscr();
+#endif
 
- cat >> confdefs.h <<EOF
-#define INN_NNTPLIB "$withval"
+; return 0; }
 EOF
-
-	echo "$ac_t""$INN_NNTPLIB" 1>&6
+if { (eval echo configure:8142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_initscr=yes"
 else
-	INN_NNTPLIB=""
-fi
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_func_initscr=no"
+fi
+rm -rf conftest*
+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
-if eval "test \"`echo '$''{'cf_cv_use_libsocks'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
 else
-  
+  echo "$ac_t""no" 1>&6
 
-# Check whether --with-socks or --without-socks was given.
-if test "${with_socks+set}" = set; then
-  withval="$with_socks"
-  cf_cv_use_libsocks=$withval
+		cf_save_LIBS="$LIBS"
+		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
+echo "configure:8162: checking for initscr in -l$cf_nculib_root" >&5
+		LIBS="-l$cf_nculib_root $LIBS"
+		cat > conftest.$ac_ext <<EOF
+#line 8165 "configure"
+#include "confdefs.h"
+#include <${cf_cv_ncurses_header:-curses.h}>
+int main() {
+initscr()
+; return 0; }
+EOF
+if { (eval echo configure:8172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  echo "$ac_t""yes" 1>&6
+			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+			
 else
-  cf_cv_use_libsocks=no
-fi
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  echo "$ac_t""no" 1>&6
+			
+cf_search=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/$cf_nculib_root &&       cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
+	test -d $cf_library_path/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib &&       cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
 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
-if eval "test \"`echo '$''{'cf_cv_use_libsocks5'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
+cf_search=
 
-# Check whether --with-socks5 or --without-socks5 was given.
-if test "${with_socks5+set}" = set; then
-  withval="$with_socks5"
-  cf_cv_use_libsocks5=$withval
-else
-  cf_cv_use_libsocks5=no
-fi
 
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/lib/$cf_nculib_root"
+	test -d /usr/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-fi
 
-echo "$ac_t""$cf_cv_use_libsocks5" 1>&6
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
+	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
+	test -d $prefix/lib/$cf_nculib_root &&       cf_search="$cf_search $prefix/lib/$cf_nculib_root"
+	test -d $prefix/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
+	test -d $prefix/$cf_nculib_root/lib &&       cf_search="$cf_search $prefix/$cf_nculib_root/lib"
+	test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-if test "x$cf_cv_use_libsocks" != xno ; then
-	
-case "$cf_cv_use_libsocks" in #(vi
-no|yes) #(vi
-  ;;
-*)
-  if test -d $cf_cv_use_libsocks ; then
-    if test -d $cf_cv_use_libsocks/include ; then
-      CPPFLAGS="$CPPFLAGS -I$cf_cv_use_libsocks/include"
-      LIBS="$LIBS -L$cf_cv_use_libsocks/lib"
-    else
-      LIBS="$LIBS -L$cf_cv_use_libsocks"
-      test -d $cf_cv_use_libsocks/../include && CPPFLAGS="$CPPFLAGS -I$cf_cv_use_libsocks/../include"
-    fi
-  else
-    echo "configure: warning: expected a directory: $cf_cv_use_libsocks" 1>&2
-  fi
-  ;;
-esac
-LIBS="$LIBS -lsocks"
-cat >> confdefs.h <<\EOF
-#define SOCKS 1
-EOF
 
-cat >> confdefs.h <<\EOF
-#define accept Raccept
-EOF
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+	test -d /usr/local/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-cat >> confdefs.h <<\EOF
-#define bind Rbind
-EOF
 
-cat >> confdefs.h <<\EOF
-#define connect Rconnect
-EOF
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/lib/$cf_nculib_root"
+	test -d /opt/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-cat >> confdefs.h <<\EOF
-#define getpeername Rgetpeername
-EOF
 
-cat >> confdefs.h <<\EOF
-#define getsockname Rgetsockname
-EOF
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/$cf_nculib_root &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+	test -d $HOME/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-cat >> confdefs.h <<\EOF
-#define listen Rlisten
-EOF
 
-cat >> confdefs.h <<\EOF
-#define recvfrom Rrecvfrom
-EOF
 
-cat >> confdefs.h <<\EOF
-#define select Rselect
-EOF
+cf_search="$cf_library_path_list $cf_search"
 
-cat > conftest.$ac_ext <<EOF
-#line 4411 "configure"
+			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:8279: 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 8282 "configure"
 #include "confdefs.h"
-
-#include <stdio.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
-
-	accept((char *)0)
+initscr()
 ; 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:8289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  echo "$ac_t""yes" 1>&6
+			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+					 break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  { echo "configure: error: Cannot link with socks library" 1>&2; exit 1; }
+
+  echo "$ac_t""no" 1>&6
+					 LIBS="$cf_save_LIBS"
+fi
+rm -rf conftest*
+			done
+			
+fi
+rm -rf conftest*
+		
 fi
-rm -f conftest*
 
-else
-	
-cf_test_netlibs=no
-echo $ac_n "checking for network libraries""... $ac_c" 1>&6
-echo "configure:4434: checking for network libraries" >&5
-if eval "test \"`echo '$''{'cf_cv_netlibs'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-echo "$ac_t""working..." 1>&6
-cf_cv_netlibs=""
-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
-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"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+
+if test $cf_found_library = no ; then
+	{ echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
+fi
 
-int main() {
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
+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:8320: 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$%%"`
+		if test "$q" != "$LIBS" ; then
+			LIBS="$q"
+		fi
+	done
+	cat > conftest.$ac_ext <<EOF
+#line 8329 "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:4473: \"$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"
+if { (eval echo configure:8336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  echo "$ac_t""yes" 1>&6
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+
+  echo "$ac_t""no" 1>&6
+		 LIBS="$cf_ncurses_SAVE"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+
+cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat >> confdefs.h <<EOF
+#define $cf_nculib_ROOT 1
 EOF
- 
-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
-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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lnsl $cf_cv_netlibs $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4504 "configure"
+
+
+fi
+
+		;;
+	ncursesw) #(vi
+		
+for cf_hdr in stdlib.h wchar.h wctype.h
+do
+	echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6
+echo "configure:8366: checking for $cf_hdr" >&5
+	cat > conftest.$ac_ext <<EOF
+#line 8368 "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
-    builtin and then its argument prototype would still apply.  */
-char gethostname();
 
-int main() {
-gethostname()
-; return 0; }
+#include <sys/types.h>
+#include <$cf_hdr>
+
 EOF
-if { (eval echo configure:4515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:8376: \"$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*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cf_found=yes
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_found=no
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
+echo "$ac_t""$cf_found" 1>&6
+if test $cf_found = yes ; then
 	
-cf_tr_func=`echo "gethostname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cf_tr_hdr=`echo "$cf_hdr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
 	cat >> confdefs.h <<EOF
-#define HAVE_$cf_tr_func 1
+#define HAVE_${cf_tr_hdr} 1
 EOF
 
-	ac_cv_func_gethostname=yes
-	if test "$cf_used_lib_nsl" != yes ; then cf_used_lib_nsl=yes; cf_cv_netlibs="-lnsl $cf_cv_netlibs"; fi
-else
-  echo "$ac_t""no" 1>&6
+fi
+done
 
-	ac_cv_func_gethostname=unknown
-	unset ac_cv_func_gethostname 2>/dev/null
-	
 		
-echo $ac_n "checking for gethostname in -lsocket""... $ac_c" 1>&6
-echo "configure:4548: 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 "checking for wide char and multibyte support""... $ac_c" 1>&6
+echo "configure:8403: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-lsocket $cf_cv_netlibs $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4556 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 8408 "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
-    builtin and then its argument prototype would still apply.  */
-char gethostname();
+#include <stdio.h>
+#ifdef HAVE_STDLIB_H
+#	include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+#ifdef HAVE_WCHAR_H
+#	include <wchar.h>
+#endif /* HAVE_WCHAR_H */
+#ifdef HAVE_WCTYPE_H
+#	include <wctype.h>
+#endif /* HAVE_WCTYPE_H */
 
 int main() {
-gethostname()
+const char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
+      char ocb[5];
+      wchar_t wcb[5];
+      wchar_t wcb2[5];
+      wchar_t format[3];
+
+      putwc(0, 0);
+      fputwc(0, 0);
+      fwide(0, 0);
+      mbtowc(wcb, icb, MB_CUR_MAX);
+      mbstowcs(wcb, icb, 5);
+      (void) iswalnum((wint_t) wcb[0]);
+      (void) iswcntrl((wint_t) wcb[0]);
+      (void) iswdigit((wint_t) wcb[0]);
+      (void) iswgraph((wint_t) wcb[0]);
+      (void) iswprint((wint_t) wcb[0]);
+      (void) iswspace((wint_t) wcb[0]);
+      (void) towupper((wint_t) wcb[0]);
+      /* (void) iswupper((wint_t) wcb[0]); */
+      /* (void) towlower((wint_t) wcb[0]); */
+      /* (void) iswlower((wint_t) wcb[0]); */
+      /* (void) iswalpha((wint_t) wcb[0]); */
+      /* (void) iswblank((wint_t) wcb[0]); */
+      /* (void) iswpunct((wint_t) wcb[0]); */
+      /* (void) iswxdigit((wint_t) wcb[0]); */
+      /* (void) iswctype((wint_t) wcb[0], wctype("print")); */
+      /* (void) towctranse((wint_t) wcb[0], wctrans("toupper")); */
+      (void) wcslen(wcb);
+      /* (void) wcsnlen(wcb, 4); */
+      wcwidth((wint_t) wcb[0]);
+      wcswidth(wcb, 5);
+      wcstombs(ocb, wcb, 5);
+      wctomb(ocb, wcb[0]);
+      wcscat(wcb2, wcb);
+      wcscpy(wcb2, wcb);
+      mbstowcs(format, "%s", 2);
+      swprintf(wcb, 5, format, "test");
+      wcsncat(wcb2, wcb, 5);
 ; return 0; }
 EOF
-if { (eval echo configure:4567: \"$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"
+if { (eval echo configure:8462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  am_cv_multibyte_able=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cf_save_LIBS="$LIBS"
+      LIBS="-lutf8 $LIBS"
+      cat > conftest.$ac_ext <<EOF
+#line 8472 "configure"
+#include "confdefs.h"
+#include <libutf8.h>
+int main() {
+const char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
+        char ocb[5];
+        wchar_t wcb[5];
+        wchar_t wcb2[5];
+        wchar_t format[3];
+
+        putwc(0, 0);
+        fputwc(0, 0);
+        fwide(0, 0);
+        mbtowc(wcb, icb, MB_CUR_MAX);
+        mbstowcs(wcb, icb, 5);
+        (void) iswalnum((wint_t) wcb[0]);
+        (void) iswcntrl((wint_t) wcb[0]);
+        (void) iswdigit((wint_t) wcb[0]);
+        (void) iswgraph((wint_t) wcb[0]);
+        (void) iswprint((wint_t) wcb[0]);
+        (void) iswspace((wint_t) wcb[0]);
+        (void) towupper((wint_t) wcb[0]);
+        /* (void) iswupper((wint_t) wcb[0]); */
+        /* (void) towlower((wint_t) wcb[0]); */
+        /* (void) iswlower((wint_t) wcb[0]); */
+        /* (void) iswalpha((wint_t) wcb[0]); */
+        /* (void) iswblank((wint_t) wcb[0]); */
+        /* (void) iswpunct((wint_t) wcb[0]); */
+        /* (void) iswxdigit((wint_t) wcb[0]); */
+        /* (void) iswctype((wint_t) wcb[0], wctype("print")); */
+        /* (void) towctranse((wint_t) wcb[0], wctrans("toupper")); */
+        (void) wcslen(wcb);
+        /* (void) wcsnlen(wcb, 4); */
+        wcwidth((wint_t) wcb[0]);
+        wcswidth(wcb, 5);
+        wcstombs(ocb, wcb, 5);
+        wctomb(ocb, wcb[0]);
+        wcscat(wcb2, wcb);
+        wcscpy(wcb2, wcb);
+        mbstowcs(format, "%s", 2);
+        swprintf(wcb, 5, format, "test");
+        wcsncat(wcb2, wcb, 5);
+; return 0; }
+EOF
+if { (eval echo configure:8516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  am_cv_multibyte_able=libutf8
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+  am_cv_multibyte_able=no
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
+rm -rf conftest*
+      LIBS="$cf_save_LIBS"
+   
+fi
+rm -rf conftest*
   
-	
-cf_tr_func=`echo "gethostname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+fi
 
-	cat >> confdefs.h <<EOF
-#define HAVE_$cf_tr_func 1
+echo "$ac_t""$am_cv_multibyte_able" 1>&6
+  if test "$am_cv_multibyte_able" != no; then
+    if test "$am_cv_multibyte_able" = libutf8; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_LIBUTF8_H 1
 EOF
 
-	ac_cv_func_gethostname=yes
-	if test "$cf_used_lib_socket" != yes ; then cf_used_lib_socket=yes; cf_cv_netlibs="-lsocket $cf_cv_netlibs"; fi
+      LIBS="-lutf8 $LIBS"
+    fi
+    cat >> confdefs.h <<\EOF
+#define MULTIBYTE_ABLE 1
+EOF
+
+  fi
+
+		
+cf_ncuconfig_root=ncursesw
+
+echo "Looking for ${cf_ncuconfig_root}-config"
+for ac_prog in ${cf_ncuconfig_root}6-config ${cf_ncuconfig_root}5-config
+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:8557: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_NCURSES_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$NCURSES_CONFIG" in
+  /*)
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_NCURSES_CONFIG="$NCURSES_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_NCURSES_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+NCURSES_CONFIG="$ac_cv_path_NCURSES_CONFIG"
+if test -n "$NCURSES_CONFIG"; then
+  echo "$ac_t""$NCURSES_CONFIG" 1>&6
 else
   echo "$ac_t""no" 1>&6
-
-	ac_cv_func_gethostname=unknown
-	unset ac_cv_func_gethostname 2>/dev/null
-	
 fi
 
+test -n "$NCURSES_CONFIG" && break
+done
+test -n "$NCURSES_CONFIG" || NCURSES_CONFIG="none"
 
-fi
 
+if test "$NCURSES_CONFIG" != none ; then
 
-fi
-done
+CPPFLAGS="$CPPFLAGS `$NCURSES_CONFIG --cflags`"
+LIBS="`$NCURSES_CONFIG --libs` $LIBS"
 
-#
-# FIXME:  sequent needs this library (i.e., -lsocket -linet -lnsl), but
-# 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
-ac_lib_var=`echo inet'_'main | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+# even with config script, some packages use no-override for curses.h
+
+echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
+echo "configure:8602: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-linet  $LIBS"
+  
+cf_cv_ncurses_header=none
+for cf_header in  \
+	ncursesw/ncurses.h \
+	ncursesw/curses.h \
+	ncurses.h \
+	curses.h 
+do
 cat > conftest.$ac_ext <<EOF
-#line 4620 "configure"
+#line 8615 "configure"
 #include "confdefs.h"
-
+#include <${cf_header}>
 int main() {
-main()
+initscr(); tgoto("?", 0,0)
 ; 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:8622: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cf_cv_ncurses_header=$cf_header; break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
+done
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cf_cv_netlibs="-linet $cf_cv_netlibs"
-else
-  echo "$ac_t""no" 1>&6
+
+echo "$ac_t""$cf_cv_ncurses_header" 1>&6
+
+if test "$cf_cv_ncurses_header" = none ; then
+	{ echo "configure: error: No curses header-files found" 1>&2; exit 1; }
 fi
 
-#
-if test "$ac_cv_func_lsocket" != no ; then
-for ac_func in socket
+# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
+for ac_hdr in $cf_cv_ncurses_header
 do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4652: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:8645: 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 4657 "configure"
+#line 8650 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:4680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:8655: \"$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*
-  eval "ac_cv_func_$ac_func=yes"
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
   cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+#define $ac_tr_hdr 1
 EOF
  
 else
   echo "$ac_t""no" 1>&6
+fi
+done
+
+
+
+cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
+
+
+
+cf_nculib_ROOT=`echo "HAVE_LIB$cf_ncuconfig_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat >> confdefs.h <<EOF
+#define $cf_nculib_ROOT 1
+EOF
+
+
+cf_cv_ncurses_version=`$NCURSES_CONFIG --version`
 
-echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:4703: 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
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lsocket $cf_cv_netlibs $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4711 "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
-    builtin and then its argument prototype would still apply.  */
-char socket();
 
+
+
+cf_ncuhdr_root=ncursesw
+
+test -n "$cf_cv_curses_dir" && \
+test "$cf_cv_curses_dir" != "no" && { \
+  
+if test -n "$cf_cv_curses_dir/include/$cf_ncuhdr_root" ; then
+  for cf_add_incdir in $cf_cv_curses_dir/include/$cf_ncuhdr_root
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 8731 "configure"
+#include "confdefs.h"
+#include <stdio.h>
 int main() {
-socket()
+printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4722: \"$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"
+if { (eval echo configure:8738: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-	
-cf_tr_func=`echo "socket" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-	cat >> confdefs.h <<EOF
-#define HAVE_$cf_tr_func 1
-EOF
+echo "${as_me:-configure}:8755: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-	ac_cv_func_socket=yes
-	if test "$cf_used_lib_socket" != yes ; then cf_used_lib_socket=yes; cf_cv_netlibs="-lsocket $cf_cv_netlibs"; fi
-else
-  echo "$ac_t""no" 1>&6
 
-	ac_cv_func_socket=unknown
-	unset ac_cv_func_socket 2>/dev/null
-	
-		
-echo $ac_n "checking for socket in -lbsd""... $ac_c" 1>&6
-echo "configure:4755: 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
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
+
+}
+
+echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
+echo "configure:8774: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-lbsd $cf_cv_netlibs $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4763 "configure"
+  
+	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
+	( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
+	for cf_header in $cf_header_list
+	do
+		
+	cat > conftest.$ac_ext <<EOF
+#line 8785 "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
-    builtin and then its argument prototype would still apply.  */
-char socket();
 
+
+#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() {
-socket()
+
+#ifdef NCURSES_VERSION
+
+#ifndef WACS_BSSB
+	make an error
+#endif
+
+printf("%s\n", NCURSES_VERSION);
+#else
+#ifdef __NCURSES_H
+printf("old\n");
+#else
+	make an error
+#endif
+#endif
+	
+	
 ; 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:8814: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cf_cv_ncurses_h=$cf_header
+	
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_cv_ncurses_h=no
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
+
+		test "$cf_cv_ncurses_h" != no && break
+	done
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-	
-cf_tr_func=`echo "socket" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-	cat >> confdefs.h <<EOF
-#define HAVE_$cf_tr_func 1
-EOF
+echo "$ac_t""$cf_cv_ncurses_h" 1>&6
 
-	ac_cv_func_socket=yes
-	if test "$cf_used_lib_bsd" != yes ; then cf_used_lib_bsd=yes; cf_cv_netlibs="-lbsd $cf_cv_netlibs"; fi
+
+
+if test "$cf_cv_ncurses_h" != no ; then
+	cf_cv_ncurses_header=$cf_cv_ncurses_h
 else
-  echo "$ac_t""no" 1>&6
 
-	ac_cv_func_socket=unknown
-	unset ac_cv_func_socket 2>/dev/null
+echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
+echo "configure:8840: 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
+  
+	test -n "$verbose" && echo
 	
-fi
+cf_search=
 
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/$cf_ncuhdr_root &&       cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root"
+	test -d $cf_header_path/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $cf_header_path/include/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include &&       cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include"
+	test -d $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $cf_header_path/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
 
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
 fi
 
+# add the variations for the package we are looking for
 
-fi
-done
+cf_search=
 
-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
-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"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
 
-int main() {
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
+	test -d /usr/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
+	test -d /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/$cf_ncuhdr_root &&       cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
+	test -d $prefix/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
+	test -d $prefix/$cf_ncuhdr_root/include &&       cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
+	test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/$cf_ncuhdr_root &&       cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
+	test -d /usr/local/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
+	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
+
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
+	test -d /opt/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
+	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
 
-; return 0; }
-EOF
-if { (eval echo configure:4847: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/$cf_ncuhdr_root &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
+	test -d $HOME/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
+	test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
+}
 
-echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:4870: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lnsl $cf_cv_netlibs $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4878 "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
-    builtin and then its argument prototype would still apply.  */
-char gethostbyname();
 
+
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
+}
+
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
+}
+
+cf_search="$cf_search $cf_header_path_list"
+
+	test -n "$verbose" && echo search path $cf_search
+	cf_save2_CPPFLAGS="$CPPFLAGS"
+	for cf_incdir in $cf_search
+	do
+		
+if test -n "$cf_incdir" ; then
+  for cf_add_incdir in $cf_incdir
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 8986 "configure"
+#include "confdefs.h"
+#include <stdio.h>
 int main() {
-gethostbyname()
+printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:4889: \"$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"
+if { (eval echo configure:8993: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-	
-cf_tr_func=`echo "gethostbyname" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-	cat >> confdefs.h <<EOF
-#define HAVE_$cf_tr_func 1
-EOF
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-	ac_cv_func_gethostbyname=yes
-	if test "$cf_used_lib_nsl" != yes ; then cf_used_lib_nsl=yes; cf_cv_netlibs="-lnsl $cf_cv_netlibs"; fi
-else
-  echo "$ac_t""no" 1>&6
+echo "${as_me:-configure}:9010: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-	ac_cv_func_gethostbyname=unknown
-	unset ac_cv_func_gethostbyname 2>/dev/null
-	
-fi
 
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
 fi
-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
-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"
+		for cf_header in \
+			ncurses.h \
+			curses.h
+		do
+			
+	cat > conftest.$ac_ext <<EOF
+#line 9032 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
 
+
+#include <$cf_header>
 int main() {
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
+#ifdef NCURSES_VERSION
+
+printf("%s\n", NCURSES_VERSION);
 #else
-$ac_func();
+#ifdef __NCURSES_H
+printf("old\n");
+#else
+	make an error
 #endif
-
+#endif
+	
+	
 ; 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:9053: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  cf_cv_ncurses_h2=$cf_header
+	
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  cf_cv_ncurses_h2=no
 fi
 rm -f conftest*
+
+			if test "$cf_cv_ncurses_h2" != no ; then
+				cf_cv_ncurses_h2=$cf_incdir/$cf_header
+				test -n "$verbose" && echo $ac_n "	... found $ac_c" 1>&6
+				break
+			fi
+			test -n "$verbose" && echo "	... tested $cf_incdir/$cf_header" 1>&6
+		done
+		CPPFLAGS="$cf_save2_CPPFLAGS"
+		test "$cf_cv_ncurses_h2" != no && break
+	done
+	test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
+	
 fi
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
+echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
 
-echo $ac_n "checking for strcasecmp in -lresolv""... $ac_c" 1>&6
-echo "configure:4981: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lresolv $cf_cv_netlibs $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 4989 "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
-    builtin and then its argument prototype would still apply.  */
-char strcasecmp();
+	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
+	cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
+	if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
+		cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
+	fi
+	
+if test -n "$cf_1st_incdir" ; then
+  for cf_add_incdir in $cf_1st_incdir
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
 
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 9111 "configure"
+#include "confdefs.h"
+#include <stdio.h>
 int main() {
-strcasecmp()
+printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:5000: \"$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"
+if { (eval echo configure:9118: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-	
-cf_tr_func=`echo "strcasecmp" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-	cat >> confdefs.h <<EOF
-#define HAVE_$cf_tr_func 1
-EOF
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-	ac_cv_func_strcasecmp=yes
-	if test "$cf_used_lib_resolv" != yes ; then cf_used_lib_resolv=yes; cf_cv_netlibs="-lresolv $cf_cv_netlibs"; fi
-else
-  echo "$ac_t""no" 1>&6
+echo "${as_me:-configure}:9135: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-	ac_cv_func_strcasecmp=unknown
-	unset ac_cv_func_strcasecmp 2>/dev/null
-	
-fi
 
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
 fi
-done
 
 
 fi
 
-LIBS="$LIBS $cf_cv_netlibs"
-test $cf_test_netlibs = no && echo "$cf_cv_netlibs" >&6
+# Set definitions to allow ifdef'ing for ncurses.h
 
-	if test "x$cf_cv_use_libsocks5" != xno ; then
-	
-case "$cf_cv_use_libsocks5" in #(vi
-no|yes) #(vi
-  ;;
-*)
-  if test -d $cf_cv_use_libsocks5 ; then
-    if test -d $cf_cv_use_libsocks5/include ; then
-      CPPFLAGS="$CPPFLAGS -I$cf_cv_use_libsocks5/include"
-      LIBS="$LIBS -L$cf_cv_use_libsocks5/lib"
-    else
-      LIBS="$LIBS -L$cf_cv_use_libsocks5"
-      test -d $cf_cv_use_libsocks5/../include && CPPFLAGS="$CPPFLAGS -I$cf_cv_use_libsocks5/../include"
-    fi
-  else
-    echo "configure: warning: expected a directory: $cf_cv_use_libsocks5" 1>&2
-  fi
-  ;;
+case $cf_cv_ncurses_header in # (vi
+*ncurses.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSES_H 1
+EOF
+
+	;;
 esac
-LIBS="$LIBS -lsocks5"
-cat >> confdefs.h <<\EOF
-#define USE_SOCKS5 1
+
+case $cf_cv_ncurses_header in # (vi
+ncurses/curses.h|ncurses/ncurses.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSES_NCURSES_H 1
 EOF
 
-cat >> confdefs.h <<\EOF
-#define SOCKS 1
+	;;
+ncursesw/curses.h|ncursesw/ncurses.h)
+	cat >> confdefs.h <<\EOF
+#define HAVE_NCURSESW_NCURSES_H 1
 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
-cf_use_socks4=error
-cat > conftest.$ac_ext <<EOF
-#line 5075 "configure"
-#include "confdefs.h"
+	;;
+esac
 
-#include <socks.h>
-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
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define USE_SOCKS4_PREFIX 1
-EOF
 
-	 cf_use_socks4=yes
+echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
+echo "configure:9183: 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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat > conftest.$ac_ext <<EOF
-#line 5096 "configure"
+  
+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 9200 "configure"
 #include "confdefs.h"
-#include <socks.h>
+#include <stdio.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
+#include <$cf_test>
+
 int main() {
-SOCKSinit((char *)0)
+int x = auto_left_margin
 ; 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:9210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_use_socks4=no
+  
+	cf_cv_term_header="$cf_test"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  { echo "configure: error: Cannot link with socks5 library" 1>&2; exit 1; }
+  
+	cf_cv_term_header=unknown
+	
 fi
 rm -f conftest*
+	test "$cf_cv_term_header" != unknown && break
+done
+
 fi
-rm -f conftest*
-echo "$ac_t""$cf_use_socks4" 1>&6
-if test "$cf_use_socks4" = "yes" ; then
-	cat >> confdefs.h <<\EOF
-#define accept Raccept
-EOF
 
-	cat >> confdefs.h <<\EOF
-#define bind Rbind
-EOF
+echo "$ac_t""$cf_cv_term_header" 1>&6
 
-	cat >> confdefs.h <<\EOF
-#define connect Rconnect
-EOF
+# Set definitions to allow ifdef'ing to accommodate subdirectories
 
+case $cf_cv_term_header in # (vi
+*term.h)
 	cat >> confdefs.h <<\EOF
-#define getpeername Rgetpeername
+#define HAVE_TERM_H 1
 EOF
 
-	cat >> confdefs.h <<\EOF
-#define getsockname Rgetsockname
-EOF
+	;;
+esac
 
+case $cf_cv_term_header in # (vi
+ncurses/term.h) #(vi
 	cat >> confdefs.h <<\EOF
-#define listen Rlisten
+#define HAVE_NCURSES_TERM_H 1
 EOF
 
+	;;
+ncursesw/term.h)
 	cat >> confdefs.h <<\EOF
-#define recvfrom Rrecvfrom
+#define HAVE_NCURSESW_TERM_H 1
 EOF
 
-	cat >> confdefs.h <<\EOF
-#define select Rselect
-EOF
+	;;
+esac
 
-else
-	cat >> confdefs.h <<\EOF
-#define accept SOCKSaccept
-EOF
 
-	cat >> confdefs.h <<\EOF
-#define getpeername SOCKSgetpeername
+# some applications need this, but should check for NCURSES_VERSION
+cat >> confdefs.h <<\EOF
+#define NCURSES 1
 EOF
 
-	cat >> confdefs.h <<\EOF
-#define getsockname SOCKSgetsockname
-EOF
 
-	cat >> confdefs.h <<\EOF
-#define recvfrom SOCKSrecvfrom
+
+echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
+echo "configure:9265: 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
+  
+	cf_cv_ncurses_version=no
+	cf_tempfile=out$$
+	rm -f $cf_tempfile
+	if test "$cross_compiling" = yes; then
+  
+
+	# This will not work if the preprocessor splits the line after the
+	# Autoconf token.  The 'unproto' program does that.
+	cat > conftest.$ac_ext <<EOF
+#include <${cf_cv_ncurses_header:-curses.h}>
+#undef Autoconf
+#ifdef NCURSES_VERSION
+Autoconf NCURSES_VERSION
+#else
+#ifdef __NCURSES_H
+Autoconf "old"
+#endif
+;
+#endif
 EOF
+	cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
+	{ (eval echo configure:9291: \"$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"
+		rm -f conftest.out
+	fi
 
-fi
-echo $ac_n "checking if socks5p.h is available""... $ac_c" 1>&6
-echo "configure:5168: checking if socks5p.h is available" >&5
-cat > conftest.$ac_ext <<EOF
-#line 5170 "configure"
+else
+  cat > conftest.$ac_ext <<EOF
+#line 9300 "configure"
 #include "confdefs.h"
 
-#define INCLUDE_PROTOTYPES
-#include <socks.h>
-int main() {
-
-	init((char *)0)
-; return 0; }
+#include <${cf_cv_ncurses_header:-curses.h}>
+#include <stdio.h>
+int main()
+{
+	FILE *fp = fopen("$cf_tempfile", "w");
+#ifdef NCURSES_VERSION
+# ifdef NCURSES_VERSION_PATCH
+	fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
+# else
+	fprintf(fp, "%s\n", NCURSES_VERSION);
+# endif
+#else
+# ifdef __NCURSES_H
+	fprintf(fp, "old\n");
+# else
+	make an error
+# endif
+#endif
+	${cf_cv_main_return:-return}(0);
+}
 EOF
-if { (eval echo configure:5180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_use_socks5p_h=yes
+if { (eval echo configure:9324: \"$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`
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_use_socks5p_h=no
 fi
-rm -f conftest*
-echo "$ac_t""$cf_use_socks5p_h" 1>&6
-test "$cf_use_socks5p_h" = yes && cat >> confdefs.h <<\EOF
-#define INCLUDE_PROTOTYPES 1
-EOF
+rm -fr conftest*
+fi
 
+	rm -f $cf_tempfile
 
-	fi
 fi
 
-### which locking method should be used for mailbox locking
-### first look for all available locking methods
+echo "$ac_t""$cf_cv_ncurses_version" 1>&6
+test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
+#define NCURSES 1
+EOF
 
-for ac_hdr in unistd.h fcntl.h sys/file.h
-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
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+
+
+
+
+cf_nculib_root=ncursesw
+	# This works, except for the special case where we find gpm, but
+	# ncurses is in a nonstandard location via $LIBS, and we really want
+	# to link gpm.
+cf_ncurses_LIBS=""
+cf_ncurses_SAVE="$LIBS"
+echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
+echo "configure:9355: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5211 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-lgpm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9363 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char Gpm_Open();
+
+int main() {
+Gpm_Open()
+; return 0; }
 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; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:9374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-echo $ac_n "checking for fcntl""... $ac_c" 1>&6
-echo "configure:5243: checking for fcntl" >&5
-if eval "test \"`echo '$''{'ac_cv_func_fcntl'+set}'`\" = set"; then
+  echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
+echo "configure:9390: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5248 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-lgpm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9398 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char fcntl(); below.  */
-#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char fcntl();
+char initscr();
 
 int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_fcntl) || defined (__stub___fcntl)
-choke me
-#else
-fcntl();
-#endif
-
+initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:5271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_fcntl=yes"
+if { (eval echo configure:9409: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_fcntl=no"
-fi
-rm -f conftest*
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-if eval "test \"`echo '$ac_cv_func_'fcntl`\" = yes"; then
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  :
+  LIBS="$cf_ncurses_SAVE"
 else
   echo "$ac_t""no" 1>&6
+cf_ncurses_LIBS="-lgpm"
 fi
 
-echo $ac_n "checking for lockf""... $ac_c" 1>&6
-echo "configure:5291: checking for lockf" >&5
-if eval "test \"`echo '$''{'ac_cv_func_lockf'+set}'`\" = set"; then
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+case $host_os in #(vi
+freebsd*)
+	# This is only necessary if you are linking against an obsolete
+	# 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:9441: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 5296 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-lmytinfo  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 9449 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char lockf(); below.  */
-#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char lockf();
+char tgoto();
 
 int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_lockf) || defined (__stub___lockf)
-choke me
-#else
-lockf();
-#endif
-
+tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:5319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_lockf=yes"
+if { (eval echo configure:9460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_lockf=no"
-fi
-rm -f conftest*
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-if eval "test \"`echo '$ac_cv_func_'lockf`\" = yes"; then
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  :
+  cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
 else
   echo "$ac_t""no" 1>&6
 fi
 
-echo $ac_n "checking for flock""... $ac_c" 1>&6
-echo "configure:5339: checking for flock" >&5
-if eval "test \"`echo '$''{'ac_cv_func_flock'+set}'`\" = set"; then
+	fi
+	;;
+esac
+
+LIBS="$cf_ncurses_LIBS $LIBS"
+
+if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
+then
+	LIBS="-l$cf_nculib_root $LIBS"
+else
+	
+	eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
+	cf_libdir=""
+	echo $ac_n "checking for initscr""... $ac_c" 1>&6
+echo "configure:9494: 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 5344 "configure"
+#line 9499 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char flock(); below.  */
+    which can conflict with char initscr(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char flock();
+char initscr();
 
 int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_flock) || defined (__stub___flock)
+#if defined (__stub_initscr) || defined (__stub___initscr)
 choke me
 #else
-flock();
+initscr();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:5367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_flock=yes"
+if { (eval echo configure:9522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_initscr=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_flock=no"
+
+  eval "ac_cv_func_initscr=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-if eval "test \"`echo '$ac_cv_func_'flock`\" = yes"; then
+if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  :
+  eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
 else
   echo "$ac_t""no" 1>&6
-fi
-
-
-echo $ac_n "checking for file-locking functions""... $ac_c" 1>&6
-echo "configure:5388: 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
-  
-cf_cv_lockfile=
-for cf_lock in fcntl lockf flock
-do
-if eval 'test ${ac_cv_func_'$cf_lock'+set} = set'; then
-	case $cf_lock in #(vi
-	fcntl) #(vi
-		cat > conftest.$ac_ext <<EOF
-#line 5400 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-int main() {
-
-	struct flock flk;
-	int block = 1;
-	int fd = 0;
-	int rc;
-
-	flk.l_type = F_WRLCK;
-	flk.l_whence = SEEK_SET;
-	flk.l_start = 0;
-	flk.l_len = 0;
-	rc = fcntl(fd, block ? F_SETLKW : F_SETLK, &flk)
-	&& fcntl(fd, F_GETLK, &flk)
-	&& fcntl(fd, F_SETLK, &flk);
-	
-; return 0; }
-EOF
-if { (eval echo configure:5428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  continue
-fi
-rm -f conftest*
-		;;
-	lockf) #(vi
-		cat > conftest.$ac_ext <<EOF
-#line 5440 "configure"
-#include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-int main() {
 
-	int block = 1, fd = 0;
-	int ret = lockf(fd, block ? F_LOCK : F_TLOCK, 0L)
-	 && lockf(fd, F_TEST, 0L)
-	 && lockf(fd, F_ULOCK, 0L);
-	
-; return 0; }
-EOF
-if { (eval echo configure:5460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  continue
-fi
-rm -f conftest*
-		;;
-	flock)
+		cf_save_LIBS="$LIBS"
+		echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
+echo "configure:9542: checking for initscr in -l$cf_nculib_root" >&5
+		LIBS="-l$cf_nculib_root $LIBS"
 		cat > conftest.$ac_ext <<EOF
-#line 5472 "configure"
+#line 9545 "configure"
 #include "confdefs.h"
-
-#include <stdio.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_FILE_H
-#include <sys/file.h>
-#endif
-
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
-
-	int block = 1, fd = 0;
-	int ret = flock(fd, (LOCK_EX|LOCK_NB))
-	 && flock(fd, LOCK_UN)
-	 && flock(fd, block ? LOCK_EX : (LOCK_EX | LOCK_NB));
-	
+initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:5495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  continue
-fi
-rm -f conftest*
-		;;
-	esac
-	cf_cv_lockfile="$cf_cv_lockfile $cf_lock"
-fi
-done
-
-fi
-
-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
-### fcntl() is preferred, if the user just disables fcntl()
-### without specifying an alternative lockf() is preferred
-
-# Check whether --enable-fcntl or --disable-fcntl was given.
-if test "${enable_fcntl+set}" = set; then
-  enableval="$enable_fcntl"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    requested_lock="lockf" 
-  else
-    requested_lock="fcntl"
-  fi
-else
-  enableval=yes 
-  requested_lock="fcntl"
+if { (eval echo configure:9552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-fi
+  echo "$ac_t""yes" 1>&6
+			 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+			
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  echo "$ac_t""no" 1>&6
+			
+cf_search=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/$cf_nculib_root &&       cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root"
+	test -d $cf_library_path/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $cf_library_path/lib/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib &&       cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib"
+	test -d $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $cf_library_path/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-# Check whether --enable-lockf or --disable-lockf was given.
-if test "${enable_lockf+set}" = set; then
-  enableval="$enable_lockf"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    requested_lock="lockf" 
-  fi
-else
-  enableval=no   
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
 fi
 
 
-# Check whether --enable-flock or --disable-flock was given.
-if test "${enable_flock+set}" = set; then
-  enableval="$enable_flock"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    requested_lock="flock" 
-  fi
-else
-  enableval=no   
-fi
+cf_search=
 
-### now check the users wishes against available locking methods
-if test -n "$cf_cv_lockfile"; then
-	for lock in $cf_cv_lockfile; do
-		if test "$lock" = "$requested_lock"; then
-			used_locking=$lock
-			break
-		fi
-	done
-### if none of them matched use the one with the higest priority
-	if test "x$used_locking" = "x"; then
-		used_locking=`echo $cf_cv_lockfile|sed -e 's/^\([^ ]\+\).*/\1/g'`
-	fi
-	echo "$ac_t""$used_locking" 1>&6
-	
-used_locking=`echo "$used_locking" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-	cat >> confdefs.h <<EOF
-#define USE_$used_locking 1
-EOF
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/lib/$cf_nculib_root"
+	test -d /usr/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/$cf_nculib_root/lib"
+	test -d /usr/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-else
-	echo "configure: warning: None of fcntl()" 1>&2
-fi
 
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
+	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
+	test -d $prefix/lib/$cf_nculib_root &&       cf_search="$cf_search $prefix/lib/$cf_nculib_root"
+	test -d $prefix/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
+	test -d $prefix/$cf_nculib_root/lib &&       cf_search="$cf_search $prefix/$cf_nculib_root/lib"
+	test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-echo $ac_n "checking for screen type""... $ac_c" 1>&6
-echo "configure:5585: checking for screen type" >&5
 
-# Check whether --with-screen or --without-screen was given.
-if test "${with_screen+set}" = set; then
-  withval="$with_screen"
-  cf_with_screen=$withval
-else
-  cf_with_screen=none
-fi
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/$cf_nculib_root &&       cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
+	test -d /usr/local/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
+	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-echo "$ac_t""$cf_with_screen" 1>&6
 
-use_curses=no
-use_ncurses=no
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/lib/$cf_nculib_root"
+	test -d /opt/lib/$cf_nculib_root/lib &&    cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/$cf_nculib_root/lib"
+	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
-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
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/$cf_nculib_root &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
+	test -d $HOME/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
+	test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
+}
 
 
-# Check whether --with-curses-dir or --without-curses-dir was given.
-if test "${with_curses_dir+set}" = set; then
-  withval="$with_curses_dir"
-  
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(vi
-  eval withval="$withval"
-  case ".$withval" in #(vi
-  .NONE/*)
-    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
-  ;;
-esac
 
-	 cf_cv_curses_dir=$withval
+cf_search="$cf_library_path_list $cf_search"
+
+			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:9659: 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 9662 "configure"
+#include "confdefs.h"
+#include <${cf_cv_ncurses_header:-curses.h}>
+int main() {
+initscr()
+; return 0; }
+EOF
+if { (eval echo configure:9669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  echo "$ac_t""yes" 1>&6
+			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+					 break
 else
-  cf_cv_curses_dir=no
-fi
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  echo "$ac_t""no" 1>&6
+					 LIBS="$cf_save_LIBS"
+fi
+rm -rf conftest*
+			done
+			
+fi
+rm -rf conftest*
+		
+fi
 
-echo "$ac_t""$cf_cv_curses_dir" 1>&6
+eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
 
-case $cf_with_screen in #(vi
-termcap|terminfo) #(we will determine which it really is
-	;;
-curses) #(vi
-	use_curses=yes
-	;;
-ncurses) #(vi
-	use_curses=yes
-	use_ncurses=yes
-	;;
-ncursesw) #(vi
-	use_curses=yes
-	use_ncurses=yes
-	;;
-pdcurses) #(vi
-	use_curses=yes
-	;;
-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
-	
-# Check whether --with-ncurses or --without-ncurses was given.
-if test "${with_ncurses+set}" = set; then
-  withval="$with_ncurses"
-  use_ncurses=$withval
-else
-  use_ncurses=no
+if test $cf_found_library = no ; then
+	{ echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
 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
-	
-# Check whether --enable-curses or --disable-curses was given.
-if test "${enable_curses+set}" = set; then
-  enableval="$enable_curses"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cf_with_screen=curses;  use_curses=$withval 
-  else
-    cf_with_screen=termcap; use_curses=no
-  fi
-else
-  enableval=no 
-  cf_with_screen=termcap; use_curses=no
+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:9700: 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$%%"`
+		if test "$q" != "$LIBS" ; then
+			LIBS="$q"
+		fi
+	done
+	cat > conftest.$ac_ext <<EOF
+#line 9709 "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:9716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
+  echo "$ac_t""yes" 1>&6
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  echo "$ac_t""no" 1>&6
+		 LIBS="$cf_ncurses_SAVE"
+fi
+rm -rf conftest*
 fi
 
-	echo "$ac_t""$enableval" 1>&6
-	;;
-esac
 
-if test $use_curses != no ; then
-	cat >> confdefs.h <<\EOF
-#define USE_CURSES 1
+cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat >> confdefs.h <<EOF
+#define $cf_nculib_ROOT 1
 EOF
 
-	case $cf_with_screen in #(vi
-	ncurses) #(vi
-		
 
-cf_ncuhdr_root=ncurses
 
-test -n "$cf_cv_curses_dir" && \
-test "$cf_cv_curses_dir" != "no" && \
-CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
+fi
 
-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
-if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
+		
+echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
+echo "configure:9742: 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
   
-	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
-	( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
-	for cf_header in $cf_header_list
-	do
-		
-	cat > conftest.$ac_ext <<EOF
-#line 5719 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 9748 "configure"
 #include "confdefs.h"
 
-
-#include <$cf_header>
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
 
-#ifdef NCURSES_VERSION
-
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
+#if defined(NCURSES_VERSION_PATCH)
+#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
 	make an error
 #endif
 #endif
-	
-	
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)
+; return 0; }
+EOF
+if { (eval echo configure:9765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_need_xopen_extension=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cat > conftest.$ac_ext <<EOF
+#line 9773 "configure"
+#include "confdefs.h"
+
+#define _XOPEN_SOURCE_EXTENDED
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
+int main() {
+
+#ifdef NCURSES_VERSION
+	cchar_t check;
+	int check2 = curs_set((int)sizeof(check));
+#endif
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:5740: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_ncurses_h=$cf_header
-	
+if { (eval echo configure:9790: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_need_xopen_extension=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_ncurses_h=no
+
+  cf_cv_need_xopen_extension=unknown
+fi
+rm -rf conftest*
+fi
+rm -rf conftest*
 fi
-rm -f conftest*
 
-		test "$cf_cv_ncurses_h" != no && break
-	done
+echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6
+test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
 
-fi
+		test "$cf_cv_need_xopen_extension" = unknown && { echo "configure: error: X/Open curses not found" 1>&2; exit 1; }
+		;;
+	curses) #(vi
+		
 
-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
-if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
+echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
+echo "configure:9814: 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
   
-	test -n "$verbose" && echo
-	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/$cf_ncuhdr_root &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
-	test -d $HOME/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
-}
-
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_ncuhdr_root to the actual package location:
-test -d $HOME/$cf_ncuhdr_root && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME/$cf_ncuhdr_root"
-	test -d $HOME/$cf_ncuhdr_root/include &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
-	test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-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/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
-	test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-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/$cf_ncuhdr_root &&       cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
-	test -d $prefix/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
-	test -d $prefix/$cf_ncuhdr_root/include &&       cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
-	test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-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/$cf_ncuhdr_root &&          cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
-	test -d /opt/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include &&          cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-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/$cf_ncuhdr_root &&          cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
-	test -d /usr/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
-	test -d /usr/$cf_ncuhdr_root/include &&          cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
-}
+cf_cv_curses_incdir=no
+case $host_os in #(vi
+hpux10.*) #(vi
+	if test "x$cf_cv_screen" = "xcurses_colr"
+	then
+		test -d /usr/include/curses_colr && \
+		cf_cv_curses_incdir="-I/usr/include/curses_colr"
+	fi
+	;;
+sunos3*|sunos4*)
+	if test "x$cf_cv_screen" = "xcurses_5lib"
+	then
+		test -d /usr/5lib && \
+		test -d /usr/5include && \
+		cf_cv_curses_incdir="-I/usr/5include"
+	fi
+	;;
+esac
 
-test "$includedir" != NONE && \
-test "$includedir" != "/usr/include" && \
-test -d "$includedir" && {
-	test -d $includedir &&    cf_search="$cf_search $includedir"
-	test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
-}
+fi
 
-test "$oldincludedir" != NONE && \
-test "$oldincludedir" != "/usr/include" && \
-test -d "$oldincludedir" && {
-	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
-	test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
-}
+echo "$ac_t""$cf_cv_curses_incdir" 1>&6
+test "$cf_cv_curses_incdir" != no && CPPFLAGS="$CPPFLAGS $cf_cv_curses_incdir"
 
 
-	test -n "$verbose" && echo search path $cf_search
-	cf_save2_CPPFLAGS="$CPPFLAGS"
-	for cf_incdir in $cf_search
-	do
-		
-for cf_add_incdir in $cf_incdir
+echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
+echo "configure:9845: 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
+  
+cf_cv_ncurses_header=none
+for cf_header in  \
+	ncurses.h \
+	curses.h ncurses/ncurses.h ncurses/curses.h
 do
-	while true
-	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
-			if test "$GCC" = yes
-			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 5858 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 9856 "configure"
 #include "confdefs.h"
-#include <stdio.h>
+#include <${cf_header}>
 int main() {
-printf("Hello")
+initscr(); tgoto("?", 0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:5865: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
+if { (eval echo configure:9863: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_ncurses_header=$cf_header; break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
 fi
 rm -f conftest*
-			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
-	done
 done
 
-		for cf_header in \
-			ncurses.h \
-			curses.h
-		do
-			
-	cat > conftest.$ac_ext <<EOF
-#line 5892 "configure"
-#include "confdefs.h"
-
+fi
 
-#include <$cf_header>
-int main() {
+echo "$ac_t""$cf_cv_ncurses_header" 1>&6
 
-#ifdef NCURSES_VERSION
+if test "$cf_cv_ncurses_header" = none ; then
+	{ echo "configure: error: No curses header-files found" 1>&2; exit 1; }
+fi
 
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
-	make an error
-#endif
-#endif
-	
-	
-; return 0; }
+# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
+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:9886: 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 9891 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:5913: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:9896: \"$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*
-  cf_cv_ncurses_h2=$cf_header
-	
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_ncurses_h2=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-
-			if test "$cf_cv_ncurses_h2" != no ; then
-				cf_cv_ncurses_h2=$cf_incdir/$cf_header
-				test -n "$verbose" && echo $ac_n "	... found $ac_c" 1>&6
-				break
-			fi
-			test -n "$verbose" && echo "	... tested $cf_incdir/$cf_header" 1>&6
-		done
-		CPPFLAGS="$cf_save2_CPPFLAGS"
-		test "$cf_cv_ncurses_h2" != no && break
-	done
-	test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
-	
 fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
 
-echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
 
-	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-	cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
-	if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
-		cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
-	fi
-	
-for cf_add_incdir in $cf_1st_incdir
+
+echo $ac_n "checking for terminfo header""... $ac_c" 1>&6
+echo "configure:9925: 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
-	while true
-	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
-			if test "$GCC" = yes
-			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 5960 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 9942 "configure"
 #include "confdefs.h"
 #include <stdio.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
+#include <$cf_test>
+
 int main() {
-printf("Hello")
+int x = auto_left_margin
 ; return 0; }
 EOF
-if { (eval echo configure:5967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
+if { (eval echo configure:9952: \"$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*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  
+	cf_cv_term_header=unknown
+	
 fi
 rm -f conftest*
-			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
-	done
+	test "$cf_cv_term_header" != unknown && break
 done
 
-
 fi
 
-cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
+echo "$ac_t""$cf_cv_term_header" 1>&6
 
+# Set definitions to allow ifdef'ing to accommodate subdirectories
 
-case $cf_cv_ncurses_header in # (vi
-*ncurses.h)
+case $cf_cv_term_header in # (vi
+*term.h)
 	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_H 1
+#define HAVE_TERM_H 1
 EOF
 
 	;;
 esac
 
-case $cf_cv_ncurses_header in # (vi
-ncurses/curses.h|ncurses/ncurses.h)
+case $cf_cv_term_header in # (vi
+ncurses/term.h) #(vi
 	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_NCURSES_H 1
+#define HAVE_NCURSES_TERM_H 1
 EOF
 
 	;;
-ncursesw/curses.h|ncursesw/ncurses.h)
+ncursesw/term.h)
 	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_NCURSES_H 1
+#define HAVE_NCURSESW_TERM_H 1
 EOF
 
 	;;
 esac
 
 
+
 echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:6022: checking for ncurses version" >&5
+echo "configure:10001: 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
@@ -6032,7 +10011,7 @@ else
 	# This will not work if the preprocessor splits the line after the
 	# Autoconf token.  The 'unproto' program does that.
 	cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 #undef Autoconf
 #ifdef NCURSES_VERSION
 Autoconf NCURSES_VERSION
@@ -6044,7 +10023,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:10027: \"$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,10 +10032,10 @@ EOF
 
 else
   cat > conftest.$ac_ext <<EOF
-#line 6057 "configure"
+#line 10036 "configure"
 #include "confdefs.h"
 
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 #include <stdio.h>
 int main()
 {
@@ -6074,10 +10053,10 @@ int main()
 	make an error
 # endif
 #endif
-	exit(0);
+	${cf_cv_main_return:-return}(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:10060: \"$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`
@@ -6099,59 +10078,90 @@ EOF
 
 
 
-		
 
-cf_nculib_root=ncurses
-	# This works, except for the special case where we find gpm, but
-	# ncurses is in a nonstandard location via $LIBS, and we really want
-	# to link gpm.
-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
-ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
+echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
+echo "configure:10084: checking if we have identified curses libraries" >&5
+cat > conftest.$ac_ext <<EOF
+#line 10086 "configure"
+#include "confdefs.h"
+#include <${cf_cv_ncurses_header:-curses.h}>
+int main() {
+initscr(); tgoto("?", 0,0)
+; return 0; }
+EOF
+if { (eval echo configure:10093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_result=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cf_result=no
+fi
+rm -rf conftest*
+echo "$ac_t""$cf_result" 1>&6
+
+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:10109: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lgpm  $LIBS"
+LIBS="-lmytinfo  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6120 "configure"
+#line 10117 "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
     builtin and then its argument prototype would still apply.  */
-char Gpm_Open();
+char tgoto();
 
 int main() {
-Gpm_Open()
+tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:6131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:10128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 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
-ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
+  LIBS="-lmytinfo $LIBS"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    ;;
+hpux10.*) #(vi
+	# Looking at HPUX 10.20, the Hcurses library is the oldest (1997), cur_colr
+	# next (1998), and xcurses "newer" (2000).  There is no header file for
+	# Hcurses; the subdirectory curses_colr has the headers (curses.h and
+	# term.h) for cur_colr
+	if test "x$cf_cv_screen" = "xcurses_colr"
+	then
+		echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
+echo "configure:10157: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lgpm  $LIBS"
+LIBS="-lcur_colr  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6155 "configure"
+#line 10165 "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,7141 +10172,7972 @@ 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
-  rm -rf conftest*
+if { (eval echo configure:10176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  LIBS="$cf_ncurses_SAVE"
-else
-  echo "$ac_t""no" 1>&6
-cf_ncurses_LIBS="-lgpm"
-fi
-
+  
+			LIBS="-lcur_colr $LIBS"
+			ac_cv_func_initscr=yes
+			
 else
   echo "$ac_t""no" 1>&6
-fi
 
-
-case $host_os in #(vi
-freebsd*)
-	# This is only necessary if you are linking against an obsolete
-	# 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
-ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
+		echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
+echo "configure:10199: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lmytinfo  $LIBS"
+LIBS="-lHcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6206 "configure"
+#line 10207 "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
     builtin and then its argument prototype would still apply.  */
-char tgoto();
+char initscr();
 
 int main() {
-tgoto()
+initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:10218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+  
+			# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
+			LIBS="-lHcurses $LIBS"
+			CPPFLAGS="$CPPFLAGS -D__HP_CURSES -D_HP_CURSES"
+			ac_cv_func_initscr=yes
+			
 else
   echo "$ac_t""no" 1>&6
 fi
 
+fi
+
 	fi
-	;;
+    ;;
+linux*)
+	case `arch 2>/dev/null` in
+	x86_64)
+		if test -d /lib64
+		then
+			
+if test -n "/lib64" ; then
+  for cf_add_libdir in /lib64
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:10272: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+		else
+			
+if test -n "/lib" ; then
+  for cf_add_libdir in /lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:10302: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+		fi
+		;;
+	*)
+		
+if test -n "/lib" ; then
+  for cf_add_libdir in /lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:10334: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+		;;
+	esac
+    ;;
+sunos3*|sunos4*)
+	if test "x$cf_cv_screen" = "xcurses_5lib"
+	then
+		if test -d /usr/5lib ; then
+			
+if test -n "/usr/5lib" ; then
+  for cf_add_libdir in /usr/5lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:10370: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+			LIBS="-lcurses -ltermcap $LIBS"
+		fi
+    fi
+    ac_cv_func_initscr=yes
+    ;;
 esac
 
-LIBS="$cf_ncurses_LIBS $LIBS"
+if test ".$ac_cv_func_initscr" != .yes ; then
+    cf_save_LIBS="$LIBS"
+    cf_term_lib=""
+    cf_curs_lib=""
+
+    if test ".${cf_cv_ncurses_version:-no}" != .no
+    then
+        cf_check_list="ncurses curses cursesX"
+    else
+        cf_check_list="cursesX curses ncurses"
+    fi
 
-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-then
-	LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
-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
-if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
+    # 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:10401: 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 6256 "configure"
+#line 10406 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char initscr(); below.  */
+    which can conflict with char tgoto(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char initscr();
+char tgoto();
 
 int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_initscr) || defined (__stub___initscr)
+#if defined (__stub_tgoto) || defined (__stub___tgoto)
 choke me
 #else
-initscr();
+tgoto();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:6279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_initscr=yes"
+if { (eval echo configure:10429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_tgoto=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_initscr=no"
+
+  eval "ac_cv_func_tgoto=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
+if eval "test \"`echo '$ac_cv_func_'tgoto`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+  cf_term_lib=predefined
 else
   echo "$ac_t""no" 1>&6
 
-		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
-		LIBS="-l$cf_nculib_root $LIBS"
-		cat > conftest.$ac_ext <<EOF
-#line 6302 "configure"
+        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:10450: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-l$cf_term_lib  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 10458 "configure"
 #include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char tgoto();
+
 int main() {
-initscr()
+tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:6309: \"$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'
-			
+if { (eval echo configure:10469: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  break
+else
   echo "$ac_t""no" 1>&6
-			cf_search=""
+fi
 
-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/$cf_nculib_root &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
-	test -d $HOME/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
-}
+        done
+    
+fi
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_nculib_root to the actual package location:
-test -d $HOME/$cf_nculib_root && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME/$cf_nculib_root"
-	test -d $HOME/$cf_nculib_root/lib &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
-	test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
-}
 
-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/$cf_nculib_root &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
-	test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-}
+    # Check for library containing initscr
+    test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
+ 	for cf_curs_lib in $cf_check_list xcurses jcurses pdcurses unknown
+    do
+        echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
+echo "configure:10499: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-l$cf_curs_lib  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 10507 "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
+    builtin and then its argument prototype would still apply.  */
+char initscr();
 
-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/$cf_nculib_root &&       cf_search="$cf_search $prefix/lib/$cf_nculib_root"
-	test -d $prefix/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
-	test -d $prefix/$cf_nculib_root/lib &&       cf_search="$cf_search $prefix/$cf_nculib_root/lib"
-	test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
-}
+int main() {
+initscr()
+; return 0; }
+EOF
+if { (eval echo configure:10518: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-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/$cf_nculib_root &&          cf_search="$cf_search /opt/lib/$cf_nculib_root"
-	test -d /opt/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib &&          cf_search="$cf_search /opt/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-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/$cf_nculib_root &&          cf_search="$cf_search /usr/lib/$cf_nculib_root"
-	test -d /usr/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
-	test -d /usr/$cf_nculib_root/lib &&          cf_search="$cf_search /usr/$cf_nculib_root/lib"
-}
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  break
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    done
+    test $cf_curs_lib = unknown && { echo "configure: error: no curses library found" 1>&2; exit 1; }
 
-			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
-				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
-				cat > conftest.$ac_ext <<EOF
-#line 6381 "configure"
+    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:10544: checking if we can link with $cf_curs_lib library" >&5
+        cat > conftest.$ac_ext <<EOF
+#line 10546 "configure"
 #include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.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
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-			 		 eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
-					 break
+if { (eval echo configure:10553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_result=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-					 LIBS="$cf_save_LIBS"
-fi
-rm -f conftest*
-			done
-			
-fi
-rm -f conftest*
-		
-fi
-
-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
-
-if test $cf_found_library = no ; then
-	{ echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
-fi
-
 
+  cf_result=no
 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
-	cf_ncurses_SAVE="$LIBS"
-	for p in $cf_ncurses_LIBS ; do
-		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
-		if test "$q" != "$LIBS" ; then
-			LIBS="$q"
-		fi
-	done
-	cat > conftest.$ac_ext <<EOF
-#line 6428 "configure"
+rm -rf conftest*
+        echo "$ac_t""$cf_result" 1>&6
+        test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
+    elif test "$cf_curs_lib" = "$cf_term_lib" ; then
+        :
+    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:10569: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+        cat > conftest.$ac_ext <<EOF
+#line 10571 "configure"
 #include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
+initscr(); 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
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
+if { (eval echo configure:10578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_result=no
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-		 LIBS="$cf_ncurses_SAVE"
-fi
-rm -f conftest*
-fi
-
-
-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-cat >> confdefs.h <<EOF
-#define $cf_nculib_ROOT 1
-EOF
-
 
-		;;
-	ncursesw) #(vi
-		
-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
-	cat > conftest.$ac_ext <<EOF
-#line 6464 "configure"
+  
+            LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
+            cat > conftest.$ac_ext <<EOF
+#line 10588 "configure"
 #include "confdefs.h"
-
-#include <sys/types.h>
-#include <$cf_hdr>
-
+#include <${cf_cv_ncurses_header:-curses.h}>
+int main() {
+initscr()
+; return 0; }
 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; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  cf_found=yes
+if { (eval echo configure:10595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_result=yes
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_found=no
+
+  cf_result=error
+fi
+rm -rf conftest*
+            
+fi
+rm -rf conftest*
+        echo "$ac_t""$cf_result" 1>&6
+    fi
+fi
 fi
-rm -f conftest*
-echo "$ac_t""$cf_found" 1>&6
-if test $cf_found = yes ; then
-	
-cf_tr_hdr=`echo "$cf_hdr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-	cat >> confdefs.h <<EOF
-#define HAVE_${cf_tr_hdr} 1
-EOF
 
-fi
-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
-if eval "test \"`echo '$''{'am_cv_multibyte_able'+set}'`\" = set"; then
+echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
+echo "configure:10617: 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 6504 "configure"
+  
+cat > conftest.$ac_ext <<EOF
+#line 10623 "configure"
 #include "confdefs.h"
-#include <stdio.h>
-#ifdef HAVE_STDLIB_H
-#	include <stdlib.h>
-#endif /* HAVE_STDLIB_H */
-#ifdef HAVE_WCHAR_H
-#	include <wchar.h>
-#endif /* HAVE_WCHAR_H */
-#ifdef HAVE_WCTYPE_H
-#	include <wctype.h>
-#endif /* HAVE_WCTYPE_H */
 
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
-char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
-      char ocb[5];
-      wchar_t wcb[5];
-      wchar_t wcb2[5];
-      wchar_t format[3];
 
-      putwc(0, 0);
-      fputwc(0, 0);
-      fwide(0, 0);
-      mbtowc(wcb, icb, MB_CUR_MAX);
-      mbstowcs(wcb, icb, 5);
-      iswprint((wint_t) wcb[0]);
-      wcslen(wcb);
-      /* wcsnlen(wcb, 4); */
-      wcwidth((wint_t) wcb[0]);
-      wcswidth(wcb, 5);
-      wcstombs(ocb, wcb, 5);
-      mbstowcs(format, "%s", 2);
-      swprintf(wcb, 5, format, "test");
-      wcsncat(wcb2, wcb, 5);
+#if defined(NCURSES_VERSION_PATCH)
+#if (NCURSES_VERSION_PATCH < 20100501) && (NCURSES_VERSION_PATCH >= 20100403)
+	make an error
+#endif
+#endif
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:6540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_multibyte_able=yes
+if { (eval echo configure:10640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_need_xopen_extension=no
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_save_LIBS="$LIBS"
-      LIBS="-lutf8 $LIBS"
-      cat > conftest.$ac_ext <<EOF
-#line 6550 "configure"
+
+  cat > conftest.$ac_ext <<EOF
+#line 10648 "configure"
 #include "confdefs.h"
-#include <libutf8.h>
+
+#define _XOPEN_SOURCE_EXTENDED
+#include <stdlib.h>
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
-char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
-        char ocb[5];
-        wchar_t wcb[5];
-        wchar_t wcb2[5];
-        wchar_t format[3];
 
-        putwc(0, 0);
-        fputwc(0, 0);
-        fwide(0, 0);
-        mbtowc(wcb, icb, MB_CUR_MAX);
-        mbstowcs(wcb, icb, 5);
-        iswprint((wint_t) wcb[0]);
-        wcslen(wcb);
-        /* wcsnlen(wcb, 4); */
-        wcwidth((wint_t) wcb[0]);
-        wcswidth(wcb, 5);
-        wcstombs(ocb, wcb, 5);
-        mbstowcs(format, "%s", 2);
-        swprintf(wcb, 5, format, "test");
-        wcsncat(wcb2, wcb, 5);
+#ifdef NCURSES_VERSION
+	cchar_t check;
+	int check2 = curs_set((int)sizeof(check));
+#endif
+	long x = winnstr(stdscr, "", 0);
+	int x1, y1;
+	getbegyx(stdscr, y1, x1)
 ; return 0; }
 EOF
-if { (eval echo configure:6576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_multibyte_able=libutf8
+if { (eval echo configure:10665: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_need_xopen_extension=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  am_cv_multibyte_able=no
+
+  cf_cv_need_xopen_extension=unknown
 fi
-rm -f conftest*
-      LIBS="$cf_save_LIBS"
-   
+rm -rf conftest*
 fi
-rm -f conftest*
-  
+rm -rf conftest*
 fi
 
-echo "$ac_t""$am_cv_multibyte_able" 1>&6
-  if test "$am_cv_multibyte_able" != no; then
-    if test "$am_cv_multibyte_able" = libutf8; then
-      cat >> confdefs.h <<\EOF
-#define HAVE_LIBUTF8_H 1
-EOF
+echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6
+test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
 
-      LIBS="-lutf8 $LIBS"
-    fi
-    cat >> confdefs.h <<\EOF
-#define MULTIBYTE_ABLE 1
-EOF
+		;;
+	esac
+fi
 
-  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:10688: 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
+  withval="$with_pcre"
+  PCRE_HOME=$withval
+else
+  PCRE_HOME=no
+fi
+
+echo "$ac_t""$PCRE_HOME" 1>&6
+
+cf_pcre_home=$PCRE_HOME
+PCREDIR_MAKE=
+PCREDIR_LIBS=
+PCREDIR_CPPFLAGS=
+case .$cf_pcre_home in #(vi
+.no) #(vi
+	# setup to compile the bundled PCRE:
+#	. $srcdir/pcre/version.sh
+	
+	
+	
+	
+	;;
+.yes) #(vi
+	PCREDIR_MAKE='#'
+	PCREDIR_LIBS="-lpcre"
+	;;
+.*)
+	
+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
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(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%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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; }
+  ;;
+esac
 
-		
+	PCREDIR_MAKE='#'
+	PCREDIR_LIBS="-L${cf_pcre_home}/lib -lpcre"
+	PCREDIR_CPPFLAGS="-I${cf_pcre_home}/include"
+	;;
+esac
 
-cf_ncuhdr_root=ncursesw
 
-test -n "$cf_cv_curses_dir" && \
-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
-if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-	cf_header_list="$cf_ncuhdr_root/curses.h $cf_ncuhdr_root/ncurses.h"
-	( test "$cf_ncuhdr_root" = ncurses || test "$cf_ncuhdr_root" = ncursesw ) && cf_header_list="$cf_header_list curses.h ncurses.h"
-	for cf_header in $cf_header_list
-	do
-		
-	cat > conftest.$ac_ext <<EOF
-#line 6628 "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 */
+PCRE_MAKEFILE=
+if test "$PCRE_HOME" = "no" ; then
+	LINK_SIZE="-DLINK_SIZE=2"
+	
+	PCRE_MAKEFILE="$PCRE_MAKEFILE pcre/Makefile pcre/RunTest"
+fi
 
-#include <$cf_header>
-int main() {
+## debugging libraries (do this after other libraries)
+debug_malloc=none
 
-#ifdef NCURSES_VERSION
 
-#ifndef WACS_BSSB
-	make an error
-#endif
+echo $ac_n "checking if you want to use dbmalloc for testing""... $ac_c" 1>&6
+echo "configure:10770: checking if you want to use dbmalloc for testing" >&5
 
-printf("%s\n", NCURSES_VERSION);
-#else
-#ifdef __NCURSES_H
-printf("old\n");
-#else
-	make an error
-#endif
-#endif
-	
-	
-; return 0; }
+# Check whether --with-dbmalloc or --without-dbmalloc was given.
+if test "${with_dbmalloc+set}" = set; then
+  withval="$with_dbmalloc"
+  cat >> confdefs.h <<\EOF
+#define USE_DBMALLOC 1
 EOF
-if { (eval echo configure:6657: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_ncurses_h=$cf_header
-	
+
+	 
+
+	: ${with_cflags:=-g}
+	: ${with_no_leaks:=yes}
+	 with_dbmalloc=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_ncurses_h=no
+  with_dbmalloc=
 fi
-rm -f conftest*
 
-		test "$cf_cv_ncurses_h" != no && break
-	done
+echo "$ac_t""${with_dbmalloc:-no}" 1>&6
 
-fi
+case .$with_cflags in #(vi
+.*-g*)
+	case .$CFLAGS in #(vi
+	.*-g*) #(vi
+		;;
+	*)
+		
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
 
-echo "$ac_t""$cf_cv_ncurses_h" 1>&6
+for cf_add_cflags in -g
+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[^=]*='\''\"[^"]*//'`
 
-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
-if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-	test -n "$verbose" && echo
-	cf_search=""
+			test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+				&& test -z "${cf_tst_cflags}" \
+				&& cf_fix_cppflags=yes
 
-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/$cf_ncuhdr_root &&       cf_search="$cf_search $HOME/include/$cf_ncuhdr_root"
-	test -d $HOME/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $HOME/include/$cf_ncuhdr_root/include"
-}
+			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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_ncuhdr_root to the actual package location:
-test -d $HOME/$cf_ncuhdr_root && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME/$cf_ncuhdr_root"
-	test -d $HOME/$cf_ncuhdr_root/include &&       cf_search="$cf_search $HOME/$cf_ncuhdr_root/include"
-	test -d $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $HOME/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
+				;;
+			esac
+			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"
 
-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/$cf_ncuhdr_root &&    cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root"
-	test -d /usr/local/include/$cf_ncuhdr_root/include && cf_search="$cf_search /usr/local/include/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include &&    cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include"
-	test -d /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root && cf_search="$cf_search /usr/local/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
+	cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
 
-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/$cf_ncuhdr_root &&       cf_search="$cf_search $prefix/include/$cf_ncuhdr_root"
-	test -d $prefix/include/$cf_ncuhdr_root/include &&    cf_search="$cf_search $prefix/include/$cf_ncuhdr_root/include"
-	test -d $prefix/$cf_ncuhdr_root/include &&       cf_search="$cf_search $prefix/$cf_ncuhdr_root/include"
-	test -d $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&    cf_search="$cf_search $prefix/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
+	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
+	;;
+esac
+done
 
-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/$cf_ncuhdr_root &&          cf_search="$cf_search /opt/include/$cf_ncuhdr_root"
-	test -d /opt/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /opt/include/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include &&          cf_search="$cf_search /opt/$cf_ncuhdr_root/include"
-	test -d /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root &&       cf_search="$cf_search /opt/$cf_ncuhdr_root/include/$cf_ncuhdr_root"
-}
-
-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/$cf_ncuhdr_root &&          cf_search="$cf_search /usr/include/$cf_ncuhdr_root"
-	test -d /usr/include/$cf_ncuhdr_root/include &&       cf_search="$cf_search /usr/include/$cf_ncuhdr_root/include"
-	test -d /usr/$cf_ncuhdr_root/include &&          cf_search="$cf_search /usr/$cf_ncuhdr_root/include"
-}
+if test -n "$cf_new_cflags" ; then
+	
+	CFLAGS="$CFLAGS $cf_new_cflags"
+fi
 
-test "$includedir" != NONE && \
-test "$includedir" != "/usr/include" && \
-test -d "$includedir" && {
-	test -d $includedir &&    cf_search="$cf_search $includedir"
-	test -d $includedir/$cf_ncuhdr_root && cf_search="$cf_search $includedir/$cf_ncuhdr_root"
-}
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
 
-test "$oldincludedir" != NONE && \
-test "$oldincludedir" != "/usr/include" && \
-test -d "$oldincludedir" && {
-	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
-	test -d $oldincludedir/$cf_ncuhdr_root && cf_search="$cf_search $oldincludedir/$cf_ncuhdr_root"
-}
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
 
 
-	test -n "$verbose" && echo search path $cf_search
-	cf_save2_CPPFLAGS="$CPPFLAGS"
-	for cf_incdir in $cf_search
-	do
-		
-for cf_add_incdir in $cf_incdir
-do
-	while true
-	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
-			if test "$GCC" = yes
-			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 6775 "configure"
+
+
+		;;
+	esac
+	;;
+esac
+
+
+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:10887: 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 10892 "configure"
 #include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
+#include <dbmalloc.h>
 EOF
-if { (eval echo configure:6782: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:10897: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-			fi
-			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-			;;
-		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
-	done
-done
-
-		for cf_header in \
-			ncurses.h \
-			curses.h
-		do
-			
-	cat > conftest.$ac_ext <<EOF
-#line 6809 "configure"
+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:10914: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldbmalloc  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 10922 "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
+    builtin and then its argument prototype would still apply.  */
+char debug_malloc();
 
-
-#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
-printf("old\n");
-#else
-	make an error
-#endif
-#endif
-	
-	
+int main() {
+debug_malloc()
 ; return 0; }
 EOF
-if { (eval echo configure:6838: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_ncurses_h2=$cf_header
-	
+if { (eval echo configure:10933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_ncurses_h2=no
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-			if test "$cf_cv_ncurses_h2" != no ; then
-				cf_cv_ncurses_h2=$cf_incdir/$cf_header
-				test -n "$verbose" && echo $ac_n "	... found $ac_c" 1>&6
-				break
-			fi
-			test -n "$verbose" && echo "	... tested $cf_incdir/$cf_header" 1>&6
-		done
-		CPPFLAGS="$cf_save2_CPPFLAGS"
-		test "$cf_cv_ncurses_h2" != no && break
-	done
-	test "$cf_cv_ncurses_h2" = no && { echo "configure: error: not found" 1>&2; exit 1; }
-	
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  debug_malloc=DBMALLOC
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-echo "$ac_t""$cf_cv_ncurses_h2" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-	cf_1st_incdir=`echo $cf_cv_ncurses_h2 | sed -e 's%/[^/]*$%%'`
-	cf_cv_ncurses_header=`basename $cf_cv_ncurses_h2`
-	if test `basename $cf_1st_incdir` = $cf_ncuhdr_root ; then
-		cf_cv_ncurses_header=$cf_ncuhdr_root/$cf_cv_ncurses_header
-	fi
-	
-for cf_add_incdir in $cf_1st_incdir
-do
-	while true
-	do
-		case $cf_add_incdir in
-		/usr/include) # (vi
-			;;
-		/usr/local/include) # (vi
-			if test "$GCC" = yes
-			then
-				cf_save_CPPFLAGS="$CPPFLAGS"
-				CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
-				cat > conftest.$ac_ext <<EOF
-#line 6885 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-int main() {
-printf("Hello")
-; return 0; }
+fi
+
+
+
+echo $ac_n "checking if you want to use dmalloc for testing""... $ac_c" 1>&6
+echo "configure:10962: checking if you want to use dmalloc for testing" >&5
+
+# Check whether --with-dmalloc or --without-dmalloc was given.
+if test "${with_dmalloc+set}" = set; then
+  withval="$with_dmalloc"
+  cat >> confdefs.h <<\EOF
+#define USE_DMALLOC 1
 EOF
-if { (eval echo configure:6892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  :
+
+	 
+
+	: ${with_cflags:=-g}
+	: ${with_no_leaks:=yes}
+	 with_dmalloc=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPPFLAGS="$cf_save_CPPFLAGS"
+  with_dmalloc=
 fi
-rm -f conftest*
+
+echo "$ac_t""${with_dmalloc:-no}" 1>&6
+
+case .$with_cflags in #(vi
+.*-g*)
+	case .$CFLAGS in #(vi
+	.*-g*) #(vi
+		;;
+	*)
+		
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in -g
+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
 			;;
-		*) # (vi
-			CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+		esac
+		case "$CPPFLAGS" in
+		*$cf_add_cflags) #(vi
+			;;
+		*) #(vi
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
 			;;
 		esac
-		cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
-		test "$cf_top_incdir" = "$cf_add_incdir" && break
-		cf_add_incdir="$cf_top_incdir"
-	done
-done
+		;;
+	*)
+		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/^[^"]*"'\''//'`
 
-fi
+	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
+	;;
+esac
+done
 
-cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
+if test -n "$cf_new_cflags" ; then
+	
+	CFLAGS="$CFLAGS $cf_new_cflags"
+fi
 
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
 
-case $cf_cv_ncurses_header in # (vi
-*ncurses.h)
-	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_H 1
-EOF
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
 
-	;;
-esac
 
-case $cf_cv_ncurses_header in # (vi
-ncurses/curses.h|ncurses/ncurses.h)
-	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_NCURSES_H 1
-EOF
 
-	;;
-ncursesw/curses.h|ncursesw/ncurses.h)
-	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_NCURSES_H 1
-EOF
 
+		;;
+	esac
 	;;
 esac
 
 
-echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:6947: checking for ncurses version" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
+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:11079: 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
-  
-	cf_cv_ncurses_version=no
-	cf_tempfile=out$$
-	rm -f $cf_tempfile
-	if test "$cross_compiling" = yes; then
-  
-
-	# This will not work if the preprocessor splits the line after the
-	# Autoconf token.  The 'unproto' program does that.
-	cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#endif
+  cat > conftest.$ac_ext <<EOF
+#line 11084 "configure"
+#include "confdefs.h"
+#include <dmalloc.h>
 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; }
-	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"
-		rm -f conftest.out
-	fi
-
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:11089: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  cat > conftest.$ac_ext <<EOF
-#line 6982 "configure"
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  echo $ac_n "checking for dmalloc_debug in -ldmalloc""... $ac_c" 1>&6
+echo "configure:11106: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldmalloc  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 11114 "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
+    builtin and then its argument prototype would still apply.  */
+char dmalloc_debug();
 
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
-	FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
-	fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
-	fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
-	fprintf(fp, "old\n");
-# else
-	make an error
-# endif
-#endif
-	exit(0);
-}
+int main() {
+dmalloc_debug()
+; return 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
-then
+if { (eval echo configure:11125: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-	cf_cv_ncurses_version=`cat $cf_tempfile`
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -fr conftest*
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  debug_malloc=DMALLOC
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-	rm -f $cf_tempfile
-
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-echo "$ac_t""$cf_cv_ncurses_version" 1>&6
-test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
-#define NCURSES 1
-EOF
-
+fi
 
 
-		
+EXTRAO_DEP='#'
 
-cf_nculib_root=ncursesw
-	# This works, except for the special case where we find gpm, but
-	# ncurses is in a nonstandard location via $LIBS, and we really want
-	# to link gpm.
-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
-ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+# Check whether --with-trace or --without-trace was given.
+if test "${with_trace+set}" = set; then
+  withval="$with_trace"
+  
+	echo $ac_n "checking for _tracef""... $ac_c" 1>&6
+echo "configure:11159: checking for _tracef" >&5
+if eval "test \"`echo '$''{'ac_cv_func__tracef'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lgpm  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 7045 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 11164 "configure"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char _tracef(); below.  */
+#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char Gpm_Open();
+char _tracef();
 
 int main() {
-Gpm_Open()
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub__tracef) || defined (__stub____tracef)
+choke me
+#else
+_tracef();
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:7056: \"$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"
+if { (eval echo configure:11187: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func__tracef=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+  eval "ac_cv_func__tracef=no"
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'_tracef`\" = 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
-ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
+  cat >> confdefs.h <<\EOF
+#define HAVE__TRACEF 1
+EOF
+
+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:11209: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lgpm  $LIBS"
+LIBS="-l${cf_with_screen}_g  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7080 "configure"
+#line 11217 "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
     builtin and then its argument prototype would still apply.  */
-char initscr();
+char _tracef();
 
 int main() {
-initscr()
+_tracef()
 ; return 0; }
 EOF
-if { (eval echo configure:7091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:11228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  LIBS="$cf_ncurses_SAVE"
+  cat >> confdefs.h <<\EOF
+#define HAVE__TRACEF 1
+EOF
+
+		 LIBS=`echo "$LIBS" | sed -e s/-l${cf_with_screen}// -e s/-lcurses//`
+		 LIBS="-l${cf_with_screen}_g $LIBS"
+		 use_trace=yes
+		 cat >> confdefs.h <<\EOF
+#define USE_TRACE 1
+EOF
+
+		 EXTRAO_DEP=''
+		 EXTRAOBJS="$EXTRAOBJS trace.o"
 else
   echo "$ac_t""no" 1>&6
-cf_ncurses_LIBS="-lgpm"
+use_trace=no
+fi
+
 fi
 
 else
-  echo "$ac_t""no" 1>&6
+  use_trace=no
 fi
 
+#AC_MSG_CHECKING(if you want debugging-trace)
+#AC_MSG_RESULT($use_trace)
 
-case $host_os in #(vi
-freebsd*)
-	# This is only necessary if you are linking against an obsolete
-	# 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
-ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
+
+
+## options for miscellaneous definitions
+echo $ac_n "checking for domain-name""... $ac_c" 1>&6
+echo "configure:11274: checking for domain-name" >&5
+
+# Check whether --with-domain-name or --without-domain-name was given.
+if test "${with_domain_name+set}" = set; then
+  withval="$with_domain_name"
+  :
+else
+  withval="${DOMAIN_NAME}"
+fi
+test -n "$withval" && \
+case "$withval" in #(vi
+yes)
+  { echo "configure: error: expected a value for --with-domain-name" 1>&2; exit 1; }
+  ;; #(vi
+no) withval=""
+  ;;
+esac
+DOMAIN_NAME="$withval"
+
+if test "$DOMAIN_NAME" != ""; then
+	cat >> confdefs.h <<EOF
+#define DOMAIN_NAME "$DOMAIN_NAME"
+EOF
+
+fi
+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:11303: 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
+  withval="$with_nntp_default_server"
+  :
+else
+  withval="${NNTP_DEFAULT_SERVER-news.$DOMAIN_NAME}"
+fi
+test -z "$withval" && withval=no
+case "$withval" in #(vi
+yes)
+  { echo "configure: error: expected a value for --with-nntp-default-server" 1>&2; exit 1; }
+  ;; #(vi
+no) withval=""
+  ;;
+esac
+NNTP_DEFAULT_SERVER="$withval"
+
+
+    if test "$NNTP_DEFAULT_SERVER" = "" ; then
+	if test "$DOMAIN_NAME" != "" ; then
+		test -z "$NNTP_DEFAULT_SERVER" && case "$DOMAIN_NAME" in #(((
+	 	/*)
+			if test -r "$DOMAIN_NAME" ; then
+				NNTP_DEFAULT_SERVER="news.`cat $DOMAIN_NAME`"
+			else
+				NNTP_DEFAULT_SERVER="news"
+			fi
+			;;
+	 	*)
+			NNTP_DEFAULT_SERVER="news.$DOMAIN_NAME"
+			;;
+	 	esac
+	else
+		NNTP_DEFAULT_SERVER="news"
+	fi
+    fi
+echo "$ac_t""$NNTP_DEFAULT_SERVER" 1>&6
+fi
+
+## These options are interdependent, so we delay defining them til now:
+test -n "$NNTP_DEFAULT_SERVER" \
+	&& cat >> confdefs.h <<EOF
+#define NNTP_DEFAULT_SERVER "$NNTP_DEFAULT_SERVER"
+EOF
+
+test ".$INEWSDIR" != ".$NEWSLIBDIR" && cat >> confdefs.h <<EOF
+#define INEWSDIR "$INEWSDIR"
+EOF
+
+cat >> confdefs.h <<EOF
+#define NEWSLIBDIR "$NEWSLIBDIR"
+EOF
+
+cat >> confdefs.h <<EOF
+#define NOVROOTDIR "$NOVROOTDIR"
+EOF
+
+cat >> confdefs.h <<EOF
+#define SPOOLDIR "$SPOOLDIR"
+EOF
+
+
+## optional features
+echo $ac_n "checking whether to use MH style mail handling for mailgroups""... $ac_c" 1>&6
+echo "configure:11369: 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
+  enableval="$enable_mh_mail_handling"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_MH_MAIL_HANDLING 1
+EOF
+ 
+  fi
+else
+  enableval=no   
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+CAN_MAKEFILE=
+CANDIR_MAKE=
+echo $ac_n "checking whether to use Cancel-Locks""... $ac_c" 1>&6
+echo "configure:11390: checking whether to use Cancel-Locks" >&5
+
+# Check whether --enable-cancel-locks or --disable-cancel-locks was given.
+if test "${enable_cancel_locks+set}" = set; then
+  enableval="$enable_cancel_locks"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    CANLIBS='-L../libcanlock -lcanlock'
+	CAN_MAKEFILE="libcanlock/Makefile"
+	cat >> confdefs.h <<\EOF
+#define USE_CANLOCK 1
+EOF
+ 
+  else
+    CANDIR_MAKE='#'
+	CANLIBS=''
+  fi
+else
+  enableval=no 
+  CANDIR_MAKE='#'
+	CANLIBS=''
+  
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+
+
+## gsasl - used for AUTH SASL PLAIN
+ac_safe=`echo "gsasl.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for gsasl.h""... $ac_c" 1>&6
+echo "configure:11421: checking for gsasl.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 11426 "configure"
+#include "confdefs.h"
+#include <gsasl.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:11431: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  echo $ac_n "checking for gsasl_check_version in -lgsasl""... $ac_c" 1>&6
+echo "configure:11448: checking for gsasl_check_version in -lgsasl" >&5
+ac_lib_var=`echo gsasl'_'gsasl_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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lmytinfo  $LIBS"
+LIBS="-lgsasl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7131 "configure"
+#line 11456 "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
     builtin and then its argument prototype would still apply.  */
-char tgoto();
+char gsasl_check_version();
 
 int main() {
-tgoto()
+gsasl_check_version()
 ; return 0; }
 EOF
-if { (eval echo configure:7142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:11467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"
+  gsasl=yes
 else
   echo "$ac_t""no" 1>&6
+gsasl=no
 fi
 
-	fi
-	;;
-esac
+else
+  echo "$ac_t""no" 1>&6
+gsasl=no
+fi
 
-LIBS="$cf_ncurses_LIBS $LIBS"
+if test "$gsasl" = "yes"; then
+	
+# Check whether --enable-gsasl or --disable-gsasl was given.
+if test "${enable_gsasl+set}" = set; then
+  enableval="$enable_gsasl"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    USE_SASL=no 
+  else
+    USE_SASL=yes
+		cat >> confdefs.h <<\EOF
+#define USE_SASL 1
+EOF
 
-if ( test -n "$cf_cv_curses_dir" && test "$cf_cv_curses_dir" != "no" )
-then
-	LIBS="-L$cf_cv_curses_dir/lib -l$cf_nculib_root $LIBS"
+		LIBS="$LIBS -lgsasl"
+  fi
 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
-if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  enableval=yes 
+  USE_SASL=yes
+		cat >> confdefs.h <<\EOF
+#define USE_SASL 1
+EOF
+
+		LIBS="$LIBS -lgsasl"
+  
+fi
+
+fi
+
+echo $ac_n "checking whether to enable 8-bit keycodes""... $ac_c" 1>&6
+echo "configure:11523: 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
+  enableval="$enable_8bit_keys"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    : 
+  else
+    cat >> confdefs.h <<\EOF
+#define HAVE_KEY_PREFIX 1
+EOF
+
+  fi
 else
-  cat > conftest.$ac_ext <<EOF
-#line 7181 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char initscr(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char initscr();
+  enableval=yes 
+  cat >> confdefs.h <<\EOF
+#define HAVE_KEY_PREFIX 1
+EOF
 
-int main() {
+  
+fi
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_initscr) || defined (__stub___initscr)
-choke me
-#else
-initscr();
-#endif
+echo "$ac_t""$enableval" 1>&6
 
-; return 0; }
+echo $ac_n "checking whether to enable ANSI-color""... $ac_c" 1>&6
+echo "configure:11549: checking whether to enable ANSI-color" >&5
+
+# Check whether --enable-color or --disable-color was given.
+if test "${enable_color+set}" = set; then
+  enableval="$enable_color"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    : 
+  fi
+else
+  enableval=yes   
+fi
+
+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:11566: checking whether to enable posting-etiquette" >&5
+
+# Check whether --enable-etiquette or --disable-etiquette was given.
+if test "${enable_etiquette+set}" = set; then
+  enableval="$enable_etiquette"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define NO_ETIQUETTE 1
 EOF
-if { (eval echo configure:7204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_initscr=yes"
+ 
+  fi
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_initscr=no"
+  enableval=yes   
 fi
-rm -f conftest*
+
+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:11585: 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
+  enableval="$enable_break_long_lines"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define MIME_BREAK_LONG_LINES 1
+EOF
+ 
+  fi
+else
+  enableval=no   
 fi
 
-if eval "test \"`echo '$ac_cv_func_'initscr`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
+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:11604: 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
+  enableval="$enable_mime_strict_charset"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    : 
+  else
+    cat >> confdefs.h <<\EOF
+#define MIME_STRICT_CHARSET 1
+EOF
+
+  fi
 else
-  echo "$ac_t""no" 1>&6
+  enableval=yes 
+  cat >> confdefs.h <<\EOF
+#define MIME_STRICT_CHARSET 1
+EOF
 
-		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
-		LIBS="-l$cf_nculib_root $LIBS"
-		cat > conftest.$ac_ext <<EOF
-#line 7227 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
+  
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+echo $ac_n "checking for MIME character-set""... $ac_c" 1>&6
+echo "configure:11630: 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
+  withval="$with_mime_default_charset"
+  :
+else
+  withval="${MM_CHARSET-US-ASCII}"
+fi
+case "$withval" in #(vi
+yes|no)
+  { echo "configure: error: expected a value for --with-mime-default-charset" 1>&2; exit 1; }
+  ;;
+esac
+MM_CHARSET="$withval"
+cat >> confdefs.h <<EOF
+#define MM_CHARSET "$MM_CHARSET"
+EOF
+
+echo "$ac_t""$MM_CHARSET" 1>&6
+
+echo $ac_n "checking for default ISO/ASCII table""... $ac_c" 1>&6
+echo "configure:11652: 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
+  withval="$with_iso_to_ascii"
+  :
+else
+  withval="${DEFAULT_ISO2ASC--1}"
+fi
+case "$withval" in #(vi
+yes|no)
+  { echo "configure: error: expected a value for --with-iso-to-ascii" 1>&2; exit 1; }
+  ;;
+esac
+DEFAULT_ISO2ASC="$withval"
+cat >> confdefs.h <<EOF
+#define DEFAULT_ISO2ASC "$DEFAULT_ISO2ASC"
+EOF
+
+echo "$ac_t""$DEFAULT_ISO2ASC" 1>&6
+
+echo $ac_n "checking whether to enable locale support""... $ac_c" 1>&6
+echo "configure:11674: checking whether to enable locale support" >&5
+
+# Check whether --enable-locale or --disable-locale was given.
+if test "${enable_locale+set}" = set; then
+  enableval="$enable_locale"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define NO_LOCALE 1
+EOF
+ 
+  fi
+else
+  enableval=yes   
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+echo $ac_n "checking whether to enable posting""... $ac_c" 1>&6
+echo "configure:11693: checking whether to enable posting" >&5
+
+# Check whether --enable-posting or --disable-posting was given.
+if test "${enable_posting+set}" = set; then
+  enableval="$enable_posting"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define NO_POSTING 1
+EOF
+ 
+  fi
+else
+  enableval=yes   
+fi
+
+echo "$ac_t""$enableval" 1>&6
+
+echo $ac_n "checking whether to enable shell escape""... $ac_c" 1>&6
+echo "configure:11712: 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
+  enableval="$enable_shell_escape"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define NO_SHELL_ESCAPE 1
 EOF
-if { (eval echo configure:7234: \"$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'
-			
+ 
+  fi
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-			cf_search=""
+  enableval=yes   
+fi
 
-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/$cf_nculib_root &&       cf_search="$cf_search $HOME/lib/$cf_nculib_root"
-	test -d $HOME/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $HOME/lib/$cf_nculib_root/lib"
-}
+echo "$ac_t""$enableval" 1>&6
 
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_nculib_root to the actual package location:
-test -d $HOME/$cf_nculib_root && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME/$cf_nculib_root"
-	test -d $HOME/$cf_nculib_root/lib &&       cf_search="$cf_search $HOME/$cf_nculib_root/lib"
-	test -d $HOME/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $HOME/$cf_nculib_root/lib/$cf_nculib_root"
-}
+echo $ac_n "checking whether to have fascist newsadmin""... $ac_c" 1>&6
+echo "configure:11731: checking whether to have fascist newsadmin" >&5
 
-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/$cf_nculib_root &&    cf_search="$cf_search /usr/local/lib/$cf_nculib_root"
-	test -d /usr/local/lib/$cf_nculib_root/lib && cf_search="$cf_search /usr/local/lib/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib &&    cf_search="$cf_search /usr/local/$cf_nculib_root/lib"
-	test -d /usr/local/$cf_nculib_root/lib/$cf_nculib_root && cf_search="$cf_search /usr/local/$cf_nculib_root/lib/$cf_nculib_root"
-}
+# Check whether --enable-fascist-newsadmin or --disable-fascist-newsadmin was given.
+if test "${enable_fascist_newsadmin+set}" = set; then
+  enableval="$enable_fascist_newsadmin"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_FASCIST_NEWSADMIN 1
+EOF
+ 
+  fi
+else
+  enableval=no   
+fi
 
-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/$cf_nculib_root &&       cf_search="$cf_search $prefix/lib/$cf_nculib_root"
-	test -d $prefix/lib/$cf_nculib_root/lib &&    cf_search="$cf_search $prefix/lib/$cf_nculib_root/lib"
-	test -d $prefix/$cf_nculib_root/lib &&       cf_search="$cf_search $prefix/$cf_nculib_root/lib"
-	test -d $prefix/$cf_nculib_root/lib/$cf_nculib_root &&    cf_search="$cf_search $prefix/$cf_nculib_root/lib/$cf_nculib_root"
-}
+echo "$ac_t""$enableval" 1>&6
 
-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/$cf_nculib_root &&          cf_search="$cf_search /opt/lib/$cf_nculib_root"
-	test -d /opt/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /opt/lib/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib &&          cf_search="$cf_search /opt/$cf_nculib_root/lib"
-	test -d /opt/$cf_nculib_root/lib/$cf_nculib_root &&       cf_search="$cf_search /opt/$cf_nculib_root/lib/$cf_nculib_root"
-}
-
-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/$cf_nculib_root &&          cf_search="$cf_search /usr/lib/$cf_nculib_root"
-	test -d /usr/lib/$cf_nculib_root/lib &&       cf_search="$cf_search /usr/lib/$cf_nculib_root/lib"
-	test -d /usr/$cf_nculib_root/lib &&          cf_search="$cf_search /usr/$cf_nculib_root/lib"
-}
+echo $ac_n "checking whether to enable inverse video and highlighting""... $ac_c" 1>&6
+echo "configure:11750: checking whether to enable inverse video and highlighting" >&5
 
-			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
-				LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
-				cat > conftest.$ac_ext <<EOF
-#line 7306 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr()
-; return 0; }
+# Check whether --enable-inverse-video or --disable-inverse-video was given.
+if test "${enable_inverse_video+set}" = set; then
+  enableval="$enable_inverse_video"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define USE_INVERSE_HACK 1
 EOF
-if { (eval echo configure:7313: \"$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'
-					 break
+ 
+  fi
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-					 LIBS="$cf_save_LIBS"
-fi
-rm -f conftest*
-			done
-			
-fi
-rm -f conftest*
-		
+  enableval=yes   
 fi
 
-eval 'cf_found_library=$cf_cv_have_lib_'$cf_nculib_root
+echo "$ac_t""$enableval" 1>&6
 
-if test $cf_found_library = no ; then
-	{ echo "configure: error: Cannot link $cf_nculib_root library" 1>&2; exit 1; }
+echo $ac_n "checking whether to enable piping support""... $ac_c" 1>&6
+echo "configure:11769: checking whether to enable piping support" >&5
+
+# Check whether --enable-piping or --disable-piping was given.
+if test "${enable_piping+set}" = set; then
+  enableval="$enable_piping"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define DONT_HAVE_PIPING 1
+EOF
+ 
+  fi
+else
+  enableval=yes   
 fi
 
+echo "$ac_t""$enableval" 1>&6
 
-fi
+echo $ac_n "checking whether to enable printer support""... $ac_c" 1>&6
+echo "configure:11788: checking whether to enable printer support" >&5
 
-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
-	cf_ncurses_SAVE="$LIBS"
-	for p in $cf_ncurses_LIBS ; do
-		q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
-		if test "$q" != "$LIBS" ; then
-			LIBS="$q"
-		fi
-	done
-	cat > conftest.$ac_ext <<EOF
-#line 7353 "configure"
-#include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
-; return 0; }
+# Check whether --enable-printing or --disable-printing was given.
+if test "${enable_printing+set}" = set; then
+  enableval="$enable_printing"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    cat >> confdefs.h <<\EOF
+#define DISABLE_PRINTING 1
 EOF
-if { (eval echo configure:7360: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
+ 
+  fi
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-		 LIBS="$cf_ncurses_SAVE"
-fi
-rm -f conftest*
+  enableval=yes   
 fi
 
+echo "$ac_t""$enableval" 1>&6
 
-cf_nculib_ROOT=`echo "HAVE_LIB$cf_nculib_root" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+echo $ac_n "checking whether to unique tmp-files by appending .pid""... $ac_c" 1>&6
+echo "configure:11807: checking whether to unique tmp-files by appending .pid" >&5
 
-cat >> confdefs.h <<EOF
-#define $cf_nculib_ROOT 1
+# Check whether --enable-append-pid or --disable-append-pid was given.
+if test "${enable_append_pid+set}" = set; then
+  enableval="$enable_append_pid"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    : 
+  else
+    cat >> confdefs.h <<\EOF
+#define APPEND_PID 1
 EOF
 
-
-		
-echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:7383: checking for ncurses version" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  fi
 else
+  enableval=yes 
+  cat >> confdefs.h <<\EOF
+#define APPEND_PID 1
+EOF
+
   
-	cf_cv_ncurses_version=no
-	cf_tempfile=out$$
-	rm -f $cf_tempfile
-	if test "$cross_compiling" = yes; then
-  
+fi
 
-	# This will not work if the preprocessor splits the line after the
-	# Autoconf token.  The 'unproto' program does that.
-	cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#endif
+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:11833: 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
+  enableval="$enable_xhdr_xref"
+  test "$enableval" != no && enableval=yes
+  if test "$enableval" != "yes" ; then
+    : 
+  else
+    cat >> confdefs.h <<\EOF
+#define XHDR_XREF 1
 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; }
-	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"
-		rm -f conftest.out
-	fi
 
+  fi
 else
-  cat > conftest.$ac_ext <<EOF
-#line 7418 "configure"
-#include "confdefs.h"
-
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
-	FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
-	fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
-	fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
-	fprintf(fp, "old\n");
-# else
-	make an error
-# endif
-#endif
-	exit(0);
-}
+  enableval=yes 
+  cat >> confdefs.h <<\EOF
+#define XHDR_XREF 1
 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
-then
+
   
-	cf_cv_ncurses_version=`cat $cf_tempfile`
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-fi
-rm -fr conftest*
 fi
 
-	rm -f $cf_tempfile
+echo "$ac_t""$enableval" 1>&6
 
-fi
+### 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:11860: checking whether to send a GROUP command before a LISTGROUP" >&5
 
-echo "$ac_t""$cf_cv_ncurses_version" 1>&6
-test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
-#define NCURSES 1
+# Check whether --enable-broken-listgroup-fix or --disable-broken-listgroup-fix was given.
+if test "${enable_broken_listgroup_fix+set}" = set; then
+  enableval="$enable_broken_listgroup_fix"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define BROKEN_LISTGROUP 1
 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
-if eval "test \"`echo '$''{'cf_cv_need_xopen_extension'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+ 
+  fi
 else
-  
-cat > conftest.$ac_ext <<EOF
-#line 7471 "configure"
-#include "confdefs.h"
+  enableval=no   
+fi
 
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
+echo "$ac_t""$enableval" 1>&6
 
-	long x = winnstr(stdscr, "", 0);
-	int x1, y1;
-	getbegyx(stdscr, y1, x1)
-; return 0; }
+### 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:11880: 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
+  enableval="$enable_broken_system_fix"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define IGNORE_SYSTEM_STATUS 1
 EOF
-if { (eval echo configure:7483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_cv_need_xopen_extension=no
+ 
+  fi
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cat > conftest.$ac_ext <<EOF
-#line 7491 "configure"
-#include "confdefs.h"
+  enableval=no   
+fi
 
-#define _XOPEN_SOURCE_EXTENDED
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
+echo "$ac_t""$enableval" 1>&6
 
-	long x = winnstr(stdscr, "", 0);
-	int x1, y1;
-	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
-  rm -rf conftest*
-  cf_cv_need_xopen_extension=yes
+### 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:11900: 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
+  withval="$with_defaults_dir"
+  :
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_need_xopen_extension=unknown
+  withval="${TIN_DEFAULTS_DIR:-/etc/tin}"
 fi
-rm -f conftest*
+if true ; then
+
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
 fi
-rm -f conftest*
+
+case ".$withval" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval withval="$withval"
+  case ".$withval" in #(vi
+  .NONE/*)
+    withval=`echo $withval | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.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
+
 fi
+TIN_DEFAULTS_DIR="$withval"
 
-echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6
-test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+echo "$ac_t""$TIN_DEFAULTS_DIR" 1>&6
+cat >> confdefs.h <<EOF
+#define TIN_DEFAULTS_DIR "$TIN_DEFAULTS_DIR"
+EOF
 
-		test "$cf_cv_need_xopen_extension" = unknown && { echo "configure: error: X/Open curses not found" 1>&2; exit 1; }
-		;;
-	curses) #(vi
-		
 
-echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
-echo "configure:7527: 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
-	test -d /usr/include/curses_colr && \
-	cf_cv_curses_incdir="-I/usr/include/curses_colr"
-	;;
-sunos3*|sunos4*)
-	test -d /usr/5lib && \
-	test -d /usr/5include && \
-	cf_cv_curses_incdir="-I/usr/5include"
-	;;
-esac
+### check for ipv6 support
+echo $ac_n "checking whether to enable IPv6""... $ac_c" 1>&6
+echo "configure:11951: checking whether to enable IPv6" >&5
 
+# Check whether --enable-ipv6 or --disable-ipv6 was given.
+if test "${enable_ipv6+set}" = set; then
+  enableval="$enable_ipv6"
+  test "$enableval" != yes && enableval=no
+  if test "$enableval" != "no" ; then
+    cat >> confdefs.h <<\EOF
+#define ENABLE_IPV6 1
+EOF
+ 
+  fi
+else
+  enableval=no   
 fi
 
-echo "$ac_t""$cf_cv_curses_incdir" 1>&6
-test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
+echo "$ac_t""$enableval" 1>&6
+if test "$enableval" = "yes"; then
+	
 
-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
-if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
+echo $ac_n "checking ipv6 stack type""... $ac_c" 1>&6
+echo "configure:11972: checking ipv6 stack type" >&5
+if eval "test \"`echo '$''{'cf_cv_ipv6type'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
-cf_cv_ncurses_header=none
-for cf_header in \
-	curses.h \
-	ncurses.h \
-	ncurses/curses.h \
-	ncurses/ncurses.h
+cf_cv_ipv6type=unknown
+for i in solaris inria kame linux-glibc linux-libinet6 toshiba v6d zeta
 do
-cat > conftest.$ac_ext <<EOF
-#line 7564 "configure"
+	case $i in #(vi
+	solaris) #(vi
+		if test "SunOS" = "`uname -s`"
+		then
+		  if test -f /usr/include/netinet/ip6.h
+		  then
+			cf_cv_ipv6type=$i
+		  fi
+		fi
+		;;
+	inria) #(vi
+				cat > conftest.$ac_ext <<EOF
+#line 11992 "configure"
 #include "confdefs.h"
-#include <${cf_header}>
-int main() {
-initscr(); tgoto("?", 0,0)
-; return 0; }
+
+#include <netinet/in.h>
+#ifdef IPV6_INRIA_VERSION
+yes
+#endif
 EOF
-if { (eval echo configure:7571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
-  cf_cv_ncurses_header=$cf_header; break
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  cf_cv_ipv6type=$i
 fi
 rm -f conftest*
-done
 
-fi
-
-echo "$ac_t""$cf_cv_ncurses_header" 1>&6
+		;;
+	kame) #(vi
+				cat > conftest.$ac_ext <<EOF
+#line 12010 "configure"
+#include "confdefs.h"
 
-if test "$cf_cv_ncurses_header" = none ; then
-	{ echo "configure: error: No curses header-files found" 1>&2; exit 1; }
+#include <netinet/in.h>
+#ifdef __KAME__
+yes
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  cf_cv_ipv6type=$i
 fi
+rm -f conftest*
 
-# cheat, to get the right #define's for HAVE_NCURSES_H, etc.
-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
-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"
+		;;
+	linux-glibc) #(vi
+				cat > conftest.$ac_ext <<EOF
+#line 12028 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+
+#include <features.h>
+#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
+yes
+#endif
 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; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  cf_cv_ipv6type=$i
 fi
 rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
 
+		;;
+	linux-libinet6) #(vi
+				if test -d /usr/inet6
+		then
+			cf_cv_ipv6type=$i
+		elif test -f /usr/include/netinet/ip6.h
+		then
+			cf_cv_ipv6type=$i
+		fi
+		;;
+	toshiba) #(vi
+		cat > conftest.$ac_ext <<EOF
+#line 12055 "configure"
+#include "confdefs.h"
 
-		
+#include <sys/param.h>
+#ifdef _TOSHIBA_INET6
+yes
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
+  rm -rf conftest*
+  cf_cv_ipv6type=$i
+fi
+rm -f conftest*
 
-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
-cat > conftest.$ac_ext <<EOF
-#line 7637 "configure"
+		;;
+	v6d) #(vi
+		cat > conftest.$ac_ext <<EOF
+#line 12073 "configure"
 #include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-initscr(); tgoto("?", 0,0)
-; return 0; }
+
+#include </usr/local/v6/include/sys/v6config.h>
+#ifdef __V6D__
+yes
+#endif
 EOF
-if { (eval echo configure:7644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_result=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
-  cf_result=no
+  cf_cv_ipv6type=$i
 fi
 rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
 
-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
-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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lmytinfo  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 7668 "configure"
+		;;
+	zeta)
+		cat > conftest.$ac_ext <<EOF
+#line 12091 "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
-    builtin and then its argument prototype would still apply.  */
-char tgoto();
 
-int main() {
-tgoto()
-; return 0; }
+#include <sys/param.h>
+#ifdef _ZETA_MINAMI_INET6
+yes
+#endif
 EOF
-if { (eval echo configure:7679: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "yes" >/dev/null 2>&1; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_cv_ipv6type=$i
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
+
+		;;
+	esac
+	if test "$cf_cv_ipv6type" != "unknown"; then
+		break
+	fi
+done
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="-lmytinfo $LIBS"
-else
-  echo "$ac_t""no" 1>&6
-fi
 
+echo "$ac_t""$cf_cv_ipv6type" 1>&6
+
+
+
+
+cf_ipv6lib=none
+cf_ipv6dir=none
+
+echo $ac_n "checking for IPv6 library if required""... $ac_c" 1>&6
+echo "configure:12124: checking for IPv6 library if required" >&5
+case $cf_cv_ipv6type in #(vi
+solaris) #(vi
 	;;
-hpux10.*|hpux11.*) #(vi
-	echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:7702: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lcur_colr  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 7710 "configure"
+inria) #(vi
+	;;
+kame) #(vi
+		cf_ipv6lib=inet6
+	cf_ipv6dir=v6
+	;;
+linux-glibc) #(vi
+	;;
+linux-libinet6) #(vi
+		cf_ipv6lib=inet6
+	cf_ipv6dir=inet6
+	;;
+toshiba) #(vi
+	cf_ipv6lib=inet6
+	cf_ipv6dir=v6
+	;;
+v6d) #(vi
+	cf_ipv6lib=v6
+	cf_ipv6dir=v6
+	;;
+zeta)
+	cf_ipv6lib=inet6
+	cf_ipv6dir=v6
+	;;
+esac
+echo "$ac_t""$cf_ipv6lib" 1>&6
+
+if test "$cf_ipv6lib" != "none"; then
+
+	cat > conftest.$ac_ext <<EOF
+#line 12158 "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
-    builtin and then its argument prototype would still apply.  */
-char initscr();
 
+#include <sys/types.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <netinet/ip6.h>
 int main() {
-initscr()
+getaddrinfo(0, 0, 0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:7721: \"$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"
+if { (eval echo configure:12169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
   
-		LIBS="-lcur_colr $LIBS"
-		ac_cv_func_initscr=yes
-		
-else
-  echo "$ac_t""no" 1>&6
+	
+cf_search=
 
-	echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:7744: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lHcurses  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 7752 "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
-    builtin and then its argument prototype would still apply.  */
-char initscr();
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/$cf_ipv6dir &&       cf_search="$cf_search $cf_header_path/include/$cf_ipv6dir"
+	test -d $cf_header_path/include/$cf_ipv6dir/include &&    cf_search="$cf_search $cf_header_path/include/$cf_ipv6dir/include"
+	test -d $cf_header_path/$cf_ipv6dir/include &&       cf_search="$cf_search $cf_header_path/$cf_ipv6dir/include"
+	test -d $cf_header_path/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search $cf_header_path/$cf_ipv6dir/include/$cf_ipv6dir"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+# add the variations for the package we are looking for
+
+cf_search=
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/$cf_ipv6dir &&       cf_search="$cf_search /usr/include/$cf_ipv6dir"
+	test -d /usr/include/$cf_ipv6dir/include &&    cf_search="$cf_search /usr/include/$cf_ipv6dir/include"
+	test -d /usr/$cf_ipv6dir/include &&       cf_search="$cf_search /usr/$cf_ipv6dir/include"
+	test -d /usr/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search /usr/$cf_ipv6dir/include/$cf_ipv6dir"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/$cf_ipv6dir &&       cf_search="$cf_search $prefix/include/$cf_ipv6dir"
+	test -d $prefix/include/$cf_ipv6dir/include &&    cf_search="$cf_search $prefix/include/$cf_ipv6dir/include"
+	test -d $prefix/$cf_ipv6dir/include &&       cf_search="$cf_search $prefix/$cf_ipv6dir/include"
+	test -d $prefix/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search $prefix/$cf_ipv6dir/include/$cf_ipv6dir"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/$cf_ipv6dir &&       cf_search="$cf_search /usr/local/include/$cf_ipv6dir"
+	test -d /usr/local/include/$cf_ipv6dir/include &&    cf_search="$cf_search /usr/local/include/$cf_ipv6dir/include"
+	test -d /usr/local/$cf_ipv6dir/include &&       cf_search="$cf_search /usr/local/$cf_ipv6dir/include"
+	test -d /usr/local/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search /usr/local/$cf_ipv6dir/include/$cf_ipv6dir"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/$cf_ipv6dir &&       cf_search="$cf_search /opt/include/$cf_ipv6dir"
+	test -d /opt/include/$cf_ipv6dir/include &&    cf_search="$cf_search /opt/include/$cf_ipv6dir/include"
+	test -d /opt/$cf_ipv6dir/include &&       cf_search="$cf_search /opt/$cf_ipv6dir/include"
+	test -d /opt/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search /opt/$cf_ipv6dir/include/$cf_ipv6dir"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/$cf_ipv6dir &&       cf_search="$cf_search $HOME/include/$cf_ipv6dir"
+	test -d $HOME/include/$cf_ipv6dir/include &&    cf_search="$cf_search $HOME/include/$cf_ipv6dir/include"
+	test -d $HOME/$cf_ipv6dir/include &&       cf_search="$cf_search $HOME/$cf_ipv6dir/include"
+	test -d $HOME/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search $HOME/$cf_ipv6dir/include/$cf_ipv6dir"
+}
+
+
+
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/$cf_ipv6dir && cf_search="$cf_search $includedir/$cf_ipv6dir"
+}
+
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/$cf_ipv6dir && cf_search="$cf_search $oldincludedir/$cf_ipv6dir"
+}
+
+cf_search="$cf_search $cf_header_path_list"
+
+	for cf_incdir in $cf_search
+	do
+		cf_header=$cf_incdir/netinet/ip6.h
+		if test -f $cf_header
+		then
+			
+if test -n "$cf_incdir" ; then
+  for cf_add_incdir in $cf_incdir
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
 
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 12317 "configure"
+#include "confdefs.h"
+#include <stdio.h>
 int main() {
-initscr()
+printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:7763: \"$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"
+if { (eval echo configure:12324: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-		# HP's header uses __HP_CURSES, but user claims _HP_CURSES.
-		LIBS="-lHcurses $LIBS"
-		CPPFLAGS="-D__HP_CURSES -D_HP_CURSES $CPPFLAGS"
-		ac_cv_func_initscr=yes
-		
-else
-  echo "$ac_t""no" 1>&6
-fi
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-fi
+echo "${as_me:-configure}:12341: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-	;;
-linux*) # Suse Linux does not follow /usr/lib convention
-	LIBS="$LIBS -L/lib"
-	;;
-sunos3*|sunos4*)
-	test -d /usr/5lib && \
-	LIBS="$LIBS -L/usr/5lib -lcurses -ltermcap"
-	ac_cv_func_initscr=yes
-	;;
-esac
 
-if test ".$ac_cv_func_initscr" != .yes ; then
-	cf_save_LIBS="$LIBS"
-	cf_term_lib=""
-	cf_curs_lib=""
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
-	if test ".${cf_cv_ncurses_version-no}" != .no
-	then
-		cf_check_list="ncurses curses cursesX"
-	else
-		cf_check_list="cursesX curses ncurses"
-	fi
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
 
-	# 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
-if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
+			test -n "$verbose" && echo "	... found $cf_header" 1>&6
+			break
+		fi
+		test -n "$verbose" && echo "	... tested $cf_header" 1>&6
+	done
+	
+fi
+rm -rf conftest*
+
+	
+	eval 'cf_cv_have_lib_'$cf_ipv6lib'=no'
+	cf_libdir=""
+	echo $ac_n "checking for getaddrinfo""... $ac_c" 1>&6
+echo "configure:12370: 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 7821 "configure"
+#line 12375 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char tgoto(); below.  */
+    which can conflict with char getaddrinfo(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char tgoto();
+char getaddrinfo();
 
 int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_tgoto) || defined (__stub___tgoto)
+#if defined (__stub_getaddrinfo) || defined (__stub___getaddrinfo)
 choke me
 #else
-tgoto();
+getaddrinfo();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:7844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_tgoto=yes"
+if { (eval echo configure:12398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_getaddrinfo=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_tgoto=no"
+
+  eval "ac_cv_func_getaddrinfo=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-if eval "test \"`echo '$ac_cv_func_'tgoto`\" = yes"; then
+if eval "test \"`echo '$ac_cv_func_'getaddrinfo`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  cf_term_lib=predefined
+  eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes'
 else
   echo "$ac_t""no" 1>&6
 
-		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
-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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-l$cf_term_lib  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 7873 "configure"
+		cf_save_LIBS="$LIBS"
+		echo $ac_n "checking for getaddrinfo in -l$cf_ipv6lib""... $ac_c" 1>&6
+echo "configure:12418: checking for getaddrinfo in -l$cf_ipv6lib" >&5
+		LIBS="-l$cf_ipv6lib $LIBS"
+		cat > conftest.$ac_ext <<EOF
+#line 12421 "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
-    builtin and then its argument prototype would still apply.  */
-char tgoto();
 
+#include <sys/types.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <netinet/ip6.h>
 int main() {
-tgoto()
+getaddrinfo(0, 0, 0, 0)
 ; return 0; }
 EOF
-if { (eval echo configure:7884: \"$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"
+if { (eval echo configure:12432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  echo "$ac_t""yes" 1>&6
+			 eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes'
+			
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  break
-else
   echo "$ac_t""no" 1>&6
-fi
+			
+cf_search=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/$cf_ipv6dir &&       cf_search="$cf_search $cf_library_path/lib/$cf_ipv6dir"
+	test -d $cf_library_path/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search $cf_library_path/lib/$cf_ipv6dir/lib"
+	test -d $cf_library_path/$cf_ipv6dir/lib &&       cf_search="$cf_search $cf_library_path/$cf_ipv6dir/lib"
+	test -d $cf_library_path/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search $cf_library_path/$cf_ipv6dir/lib/$cf_ipv6dir"
+}
 
-		done
-	
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
 fi
 
 
-	# Check for library containing initscr
-	test "$cf_term_lib" != predefined && test "$cf_term_lib" != unknown && LIBS="-l$cf_term_lib $cf_save_LIBS"
-	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
-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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-l$cf_curs_lib  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 7922 "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
-    builtin and then its argument prototype would still apply.  */
-char initscr();
+cf_search=
 
-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
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  break
-else
-  echo "$ac_t""no" 1>&6
-fi
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/$cf_ipv6dir &&       cf_search="$cf_search /usr/lib/$cf_ipv6dir"
+	test -d /usr/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search /usr/lib/$cf_ipv6dir/lib"
+	test -d /usr/$cf_ipv6dir/lib &&       cf_search="$cf_search /usr/$cf_ipv6dir/lib"
+	test -d /usr/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search /usr/$cf_ipv6dir/lib/$cf_ipv6dir"
+}
 
-	done
-	test $cf_curs_lib = unknown && { echo "configure: error: no curses library found" 1>&2; exit 1; }
 
-	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
-		cat > conftest.$ac_ext <<EOF
-#line 7961 "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
-  rm -rf conftest*
-  cf_result=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=no
-fi
-rm -f conftest*
-		echo "$ac_t""$cf_result" 1>&6
-		test $cf_result = no && { echo "configure: error: Cannot link curses library" 1>&2; exit 1; }
-	elif test "$cf_curs_lib" = "$cf_term_lib" ; then
-		:
-	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
-		cat > conftest.$ac_ext <<EOF
-#line 7986 "configure"
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
+	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
+	test -d $prefix/lib/$cf_ipv6dir &&       cf_search="$cf_search $prefix/lib/$cf_ipv6dir"
+	test -d $prefix/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search $prefix/lib/$cf_ipv6dir/lib"
+	test -d $prefix/$cf_ipv6dir/lib &&       cf_search="$cf_search $prefix/$cf_ipv6dir/lib"
+	test -d $prefix/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search $prefix/$cf_ipv6dir/lib/$cf_ipv6dir"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/$cf_ipv6dir &&       cf_search="$cf_search /usr/local/lib/$cf_ipv6dir"
+	test -d /usr/local/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search /usr/local/lib/$cf_ipv6dir/lib"
+	test -d /usr/local/$cf_ipv6dir/lib &&       cf_search="$cf_search /usr/local/$cf_ipv6dir/lib"
+	test -d /usr/local/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search /usr/local/$cf_ipv6dir/lib/$cf_ipv6dir"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/$cf_ipv6dir &&       cf_search="$cf_search /opt/lib/$cf_ipv6dir"
+	test -d /opt/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search /opt/lib/$cf_ipv6dir/lib"
+	test -d /opt/$cf_ipv6dir/lib &&       cf_search="$cf_search /opt/$cf_ipv6dir/lib"
+	test -d /opt/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search /opt/$cf_ipv6dir/lib/$cf_ipv6dir"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/$cf_ipv6dir &&       cf_search="$cf_search $HOME/lib/$cf_ipv6dir"
+	test -d $HOME/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search $HOME/lib/$cf_ipv6dir/lib"
+	test -d $HOME/$cf_ipv6dir/lib &&       cf_search="$cf_search $HOME/$cf_ipv6dir/lib"
+	test -d $HOME/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search $HOME/$cf_ipv6dir/lib/$cf_ipv6dir"
+}
+
+
+
+cf_search="$cf_library_path_list $cf_search"
+
+			for cf_libdir in $cf_search
+			do
+				echo $ac_n "checking for -l$cf_ipv6lib in $cf_libdir""... $ac_c" 1>&6
+echo "configure:12539: 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 12542 "configure"
 #include "confdefs.h"
-#include <${cf_cv_ncurses_header-curses.h}>
+
+#include <sys/types.h>
+#include <netdb.h>
+#include <netinet/in.h>
+#include <netinet/ip6.h>
 int main() {
-initscr(); tgoto((char *)0, 0, 0);
+getaddrinfo(0, 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
-  rm -rf conftest*
-  cf_result=no
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
+if { (eval echo configure:12553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-			LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
-			cat > conftest.$ac_ext <<EOF
-#line 8003 "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
-  rm -rf conftest*
-  cf_result=yes
+  echo "$ac_t""yes" 1>&6
+			 		 eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes'
+					 break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=error
+
+  echo "$ac_t""no" 1>&6
+					 LIBS="$cf_save_LIBS"
 fi
-rm -f conftest*
+rm -rf conftest*
+			done
 			
 fi
-rm -f conftest*
-		echo "$ac_t""$cf_result" 1>&6
-	fi
+rm -rf conftest*
+		
 fi
+
+eval 'cf_found_library=$cf_cv_have_lib_'$cf_ipv6lib
+
+
+	if test $cf_found_library = no ; then
+		{ echo "configure: error: No $cf_ipv6lib library found, cannot continue.  You must fetch lib$cf_ipv6lib.a
+from an appropriate IPv6 kit and compile beforehand." 1>&2; exit 1; }
+	fi
 fi
 
 
-		
-echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:8031: checking for ncurses version" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
+
+
+echo $ac_n "checking working getaddrinfo""... $ac_c" 1>&6
+echo "configure:12586: checking working getaddrinfo" >&5
+if eval "test \"`echo '$''{'cf_cv_getaddrinfo'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
-	cf_cv_ncurses_version=no
-	cf_tempfile=out$$
-	rm -f $cf_tempfile
-	if test "$cross_compiling" = yes; then
-  
+if test "$cross_compiling" = yes; then
+  cf_cv_getaddrinfo=unknown
+else
+  cat > conftest.$ac_ext <<EOF
+#line 12595 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <netdb.h>
+#include <string.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+
+#define expect(a,b) if (strcmp(a,b) != 0) goto bad
+
+int main()
+{
+   int passive, gaierr, inet4 = 0, inet6 = 0;
+   struct addrinfo hints, *ai, *aitop;
+   char straddr[INET6_ADDRSTRLEN], strport[16];
+
+   for (passive = 0; passive <= 1; passive++) {
+     memset(&hints, 0, sizeof(hints));
+     hints.ai_family = AF_UNSPEC;
+     hints.ai_flags = passive ? AI_PASSIVE : 0;
+     hints.ai_socktype = SOCK_STREAM;
+     if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
+       (void)gai_strerror(gaierr);
+       goto bad;
+     }
+     for (ai = aitop; ai; ai = ai->ai_next) {
+       if (ai->ai_addr == NULL ||
+           ai->ai_addrlen == 0 ||
+           getnameinfo(ai->ai_addr, ai->ai_addrlen,
+                       straddr, sizeof(straddr), strport, sizeof(strport),
+                       NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
+         goto bad;
+       }
+       switch (ai->ai_family) {
+       case AF_INET:
+         expect(strport, "54321");
+         if (passive) {
+           expect(straddr, "0.0.0.0");
+         } else {
+           expect(straddr, "127.0.0.1");
+         }
+         inet4++;
+         break;
+       case AF_INET6:
+         expect(strport, "54321");
+         if (passive) {
+           expect(straddr, "::");
+         } else {
+           expect(straddr, "::1");
+         }
+         inet6++;
+         break;
+       case AF_UNSPEC:
+         goto bad;
+         break;
+       default:
+         /* another family support? */
+         break;
+       }
+     }
+   }
 
-	# This will not work if the preprocessor splits the line after the
-	# Autoconf token.  The 'unproto' program does that.
-	cat > conftest.$ac_ext <<EOF
-#include <${cf_cv_ncurses_header-curses.h}>
-#undef Autoconf
-#ifdef NCURSES_VERSION
-Autoconf NCURSES_VERSION
-#else
-#ifdef __NCURSES_H
-Autoconf "old"
-#endif
-;
-#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; }
-	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"
-		rm -f conftest.out
-	fi
+   if (!(inet4 == 0 || inet4 == 2))
+     goto bad;
+   if (!(inet6 == 0 || inet6 == 2))
+     goto bad;
 
-else
-  cat > conftest.$ac_ext <<EOF
-#line 8066 "configure"
-#include "confdefs.h"
+   if (aitop)
+     freeaddrinfo(aitop);
+   ${cf_cv_main_return:-return}(0);
 
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <stdio.h>
-int main()
-{
-	FILE *fp = fopen("$cf_tempfile", "w");
-#ifdef NCURSES_VERSION
-# ifdef NCURSES_VERSION_PATCH
-	fprintf(fp, "%s.%d\n", NCURSES_VERSION, NCURSES_VERSION_PATCH);
-# else
-	fprintf(fp, "%s\n", NCURSES_VERSION);
-# endif
-#else
-# ifdef __NCURSES_H
-	fprintf(fp, "old\n");
-# else
-	make an error
-# endif
-#endif
-	exit(0);
+  bad:
+   if (aitop)
+     freeaddrinfo(aitop);
+   ${cf_cv_main_return:-return}(1);
 }
+
 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:12674: \"$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`
+  cf_cv_getaddrinfo=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  cf_cv_getaddrinfo=no
 fi
 rm -fr conftest*
 fi
 
-	rm -f $cf_tempfile
 
 fi
 
-echo "$ac_t""$cf_cv_ncurses_version" 1>&6
-test "$cf_cv_ncurses_version" = no || cat >> confdefs.h <<\EOF
-#define NCURSES 1
+echo "$ac_t""$cf_cv_getaddrinfo" 1>&6
+if test "$cf_cv_getaddrinfo" = yes ; then
+	cat >> confdefs.h <<\EOF
+#define HAVE_GAI_STRERROR 1
 EOF
 
+	cat >> confdefs.h <<\EOF
+#define HAVE_GETADDRINFO 1
+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
-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"
-#include "confdefs.h"
+fi
 
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
 
-	long x = winnstr(stdscr, "", 0);
-	int x1, y1;
-	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
-  rm -rf conftest*
-  cf_cv_need_xopen_extension=no
+if test "$cf_cv_getaddrinfo" != "yes"; then
+	if test "$cf_cv_ipv6type" != "linux"; then
+		echo "configure: warning: You must get working getaddrinfo() function,
+or you can specify "--disable-ipv6"" 1>&2
+	else
+		echo "configure: warning: The getaddrinfo() implementation on your system seems be buggy.
+You should upgrade your system library to the newest version
+of GNU C library (aka glibc)." 1>&2
+	fi
+fi
+
+
+fi
+for ac_func in getaddrinfo getnameinfo
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:12718: 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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
   cat > conftest.$ac_ext <<EOF
-#line 8139 "configure"
+#line 12723 "configure"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
 
-#define _XOPEN_SOURCE_EXTENDED
-#include <stdlib.h>
-#include <${cf_cv_ncurses_header-curses.h}>
 int main() {
 
-	long x = winnstr(stdscr, "", 0);
-	int x1, y1;
-	getbegyx(stdscr, y1, x1)
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:8152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_cv_need_xopen_extension=yes
+if { (eval echo configure:12746: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_need_xopen_extension=unknown
-fi
-rm -f conftest*
+
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-echo "$ac_t""$cf_cv_need_xopen_extension" 1>&6
-test $cf_cv_need_xopen_extension = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-
-		;;
-	esac
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
 fi
+done
 
-## 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
 
-# Check whether --with-pcre or --without-pcre was given.
-if test "${with_pcre+set}" = set; then
-  withval="$with_pcre"
-  PCRE_HOME=$withval
-else
-  PCRE_HOME=no
-fi
 
-echo "$ac_t""$PCRE_HOME" 1>&6
+### 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:12775: checking whether to make a coffee while compiling" >&5
 
-cf_pcre_home=$PCRE_HOME
-PCREDIR_MAKE=
-PCREDIR_LIBS=
-PCREDIR_CPPFLAGS=
-case .$cf_pcre_home in #(vi
-.no) #(vi
-	# setup to compile the bundled PCRE:
-	. $srcdir/pcre/version.sh
-	
-	
-	
-	
-	;;
-.yes) #(vi
-	PCREDIR_MAKE='#'
-	PCREDIR_LIBS="-lpcre"
-	;;
-.*)
-	
-case ".$cf_pcre_home" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(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%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  cf_pcre_home=`echo $cf_pcre_home | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$cf_pcre_home\"" 1>&2; exit 1; }
-  ;;
-esac
+# Check whether --with-coffee or --without-coffee was given.
+if test "${with_coffee+set}" = set; then
+  withval="$with_coffee"
+   case "$withval" in
+	yes)
+	echo "$ac_t""yes - with milk - please!" 1>&6
+	cat >> confdefs.h <<\EOF
+#define HAVE_COFFEE 1
+EOF
 
-	PCREDIR_MAKE='#'
-	PCREDIR_LIBS="-L${cf_pcre_home}/lib -lpcre"
-	PCREDIR_CPPFLAGS="-I${cf_pcre_home}/include"
 	;;
-esac
-
+	*)
+	echo "$ac_t""no" 1>&6
+	;;
+	esac
+else
+  echo "$ac_t""no" 1>&6
+fi
 
 
+### checks for compiler characteristics
 
+echo $ac_n "checking for makeflags variable""... $ac_c" 1>&6
+echo "configure:12800: checking for makeflags variable" >&5
+if eval "test \"`echo '$''{'cf_cv_makeflags'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+	cf_cv_makeflags=''
+	for cf_option in '-${MAKEFLAGS}' '${MFLAGS}'
+	do
+		cat >cf_makeflags.tmp <<CF_EOF
+SHELL = /bin/sh
+all :
+	@ echo '.$cf_option'
+CF_EOF
+		cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp 2>/dev/null | fgrep -v "ing directory" | sed -e 's,[ 	]*$,,'`
+		case "$cf_result" in
+		.*k)
+			cf_result=`${MAKE:-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
+			case "$cf_result" in
+			.*CC=*)	cf_cv_makeflags=
+				;;
+			*)	cf_cv_makeflags=$cf_option
+				;;
+			esac
+			break
+			;;
+		.-)	;;
+		*)	echo "given option \"$cf_option\", no match \"$cf_result\""
+			;;
+		esac
+	done
+	rm -f cf_makeflags.tmp
 
-PCRE_MAKEFILE=
-if test "$PCRE_HOME" = "no" ; then
-	PCRE_MAKEFILE="$PCRE_MAKEFILE pcre/Makefile pcre/RunTest pcre/pcre.h"
 fi
 
-## debugging libraries (do this after other libraries)
-debug_malloc=none
+echo "$ac_t""$cf_cv_makeflags" 1>&6
 
-echo $ac_n "checking if you want to link with dbmalloc for testing""... $ac_c" 1>&6
-echo "configure:8248: 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
-  withval="$with_dbmalloc"
-  with_dbmalloc=$withval
-else
-  with_dbmalloc=no
-fi
 
-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:8262: checking for dbmalloc.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:12846: 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 8267 "configure"
-#include "confdefs.h"
-#include <dbmalloc.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8272: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for debug_malloc in -ldbmalloc""... $ac_c" 1>&6
-echo "configure:8289: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldbmalloc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 8297 "configure"
+#line 12851 "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
-    builtin and then its argument prototype would still apply.  */
-char debug_malloc();
 
 int main() {
-debug_malloc()
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
 ; return 0; }
 EOF
-if { (eval echo configure:8308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  ac_cv_c_const=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  ac_cv_c_const=no
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  debug_malloc=DBMALLOC
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-else
-  echo "$ac_t""no" 1>&6
-fi
-
 fi
 
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
 
-echo $ac_n "checking if you want to link with dmalloc for testing""... $ac_c" 1>&6
-echo "configure:8336: 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
-  withval="$with_dmalloc"
-  with_dmalloc=$withval
-else
-  with_dmalloc=no
 fi
 
-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:8350: checking for dmalloc.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:12921: 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 8355 "configure"
+#line 12928 "configure"
 #include "confdefs.h"
-#include <dmalloc.h>
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8360: \"$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
+if { (eval echo configure:12935: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  ac_cv_c_inline=$ac_kw; break
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
+done
+
 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:8377: 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_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+  inline | yes) ;;
+  no) cat >> confdefs.h <<\EOF
+#define inline 
+EOF
+ ;;
+  *)  cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+
+echo $ac_n "checking for ansi token expansion/substitution""... $ac_c" 1>&6
+echo "configure:12962: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-ldmalloc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 8385 "configure"
+  
+	cat > conftest.$ac_ext <<EOF
+#line 12968 "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
-    builtin and then its argument prototype would still apply.  */
-char dmalloc_debug();
 
+#define string(n) #n
 int main() {
-dmalloc_debug()
+char *s = string(token)
 ; return 0; }
 EOF
-if { (eval echo configure:8396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12976: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cf_cv_cpp_expands=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_cv_cpp_expands=no
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  debug_malloc=DMALLOC
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-else
-  echo "$ac_t""no" 1>&6
-fi
 
 fi
 
+echo "$ac_t""$cf_cv_cpp_expands" 1>&6
+test $cf_cv_cpp_expands = yes && cat >> confdefs.h <<\EOF
+#define CPP_DOES_EXPAND 1
+EOF
 
-echo $ac_n "checking if you want debugging-trace""... $ac_c" 1>&6
-echo "configure:8424: checking if you want debugging-trace" >&5
-
-# Check whether --with-trace or --without-trace was given.
-if test "${with_trace+set}" = set; then
-  withval="$with_trace"
-  use_trace=yes
-else
-  use_trace=no
-fi
 
-echo "$ac_t""$use_trace" 1>&6
-if test "$use_trace" = yes ; then
-	cat >> confdefs.h <<\EOF
-#define USE_TRACE 1
-EOF
 
-	EXTRAOBJS="$EXTRAOBJS trace.o"
-	echo $ac_n "checking for _tracef""... $ac_c" 1>&6
-echo "configure:8442: checking for _tracef" >&5
-if eval "test \"`echo '$''{'ac_cv_func__tracef'+set}'`\" = set"; then
+echo $ac_n "checking for ansi token concatenation""... $ac_c" 1>&6
+echo "configure:12997: 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 8447 "configure"
+  
+	cat > conftest.$ac_ext <<EOF
+#line 13003 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char _tracef(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char _tracef();
 
+#define concat(a,b) a ## b
 int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub__tracef) || defined (__stub____tracef)
-choke me
-#else
-_tracef();
-#endif
-
+char *firstlast = "y", *s = concat(first,last)
 ; return 0; }
 EOF
-if { (eval echo configure:8470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13011: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_func__tracef=yes"
+  cf_cv_cpp_concats=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func__tracef=no"
+  cf_cv_cpp_concats=no
 fi
 rm -f conftest*
+
 fi
 
-if eval "test \"`echo '$ac_cv_func_'_tracef`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE__TRACEF 1
+echo "$ac_t""$cf_cv_cpp_concats" 1>&6
+test $cf_cv_cpp_concats = yes && cat >> confdefs.h <<\EOF
+#define CPP_DOES_CONCAT 1
 EOF
 
-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:8492: 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 "checking if nested parameters work""... $ac_c" 1>&6
+echo "configure:13032: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-l${cf_with_screen}_g  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 8500 "configure"
+  
+	cat > conftest.$ac_ext <<EOF
+#line 13038 "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
-    builtin and then its argument prototype would still apply.  */
-char _tracef();
 
 int main() {
-_tracef()
+extern void (*sigdisp(int sig, void (*func)(int sig)))(int sig)
 ; return 0; }
 EOF
-if { (eval echo configure:8511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13045: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cf_cv_nested_params=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_cv_nested_params=no
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE__TRACEF 1
-EOF
 
-		 LIBS=`echo "$LIBS" | sed -e s/-l${cf_with_screen}// -e s/-lcurses//`
-		 LIBS="-l${cf_with_screen}_g $LIBS"
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-fi
+echo "$ac_t""$cf_cv_nested_params" 1>&6
+test $cf_cv_nested_params = yes && cat >> confdefs.h <<\EOF
+#define HAVE_NESTED_PARAMS 1
+EOF
 
-fi
 
 
-## options for miscellaneous definitions
-echo $ac_n "checking for domain-name""... $ac_c" 1>&6
-echo "configure:8543: checking for domain-name" >&5
 
-# Check whether --with-domain-name or --without-domain-name was given.
-if test "${with_domain_name+set}" = set; then
-  withval="$with_domain_name"
-  :
+###	Checks for header files.
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:13068: 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
-  withval="${DOMAIN_NAME}"
+  cat > conftest.$ac_ext <<EOF
+#line 13073 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:13081: \"$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*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
 fi
-test -n "$withval" && \
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-domain-name" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-DOMAIN_NAME="$withval"
+rm -f conftest*
 
-if test "$DOMAIN_NAME" != ""; then
-	cat >> confdefs.h <<EOF
-#define DOMAIN_NAME "$DOMAIN_NAME"
+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 13098 "configure"
+#include "confdefs.h"
+#include <string.h>
 EOF
-
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
 fi
-echo "$ac_t""$DOMAIN_NAME" 1>&6
+rm -f conftest*
 
-if test "$USE_NNTP" = "yes" ; then
-echo $ac_n "checking for NNTP default-server""... $ac_c" 1>&6
-echo "configure:8572: checking for NNTP default-server" >&5
+fi
 
-# Check whether --with-nntp-default-server or --without-nntp-default-server was given.
-if test "${with_nntp_default_server+set}" = set; then
-  withval="$with_nntp_default_server"
+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 13116 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
   :
 else
-  withval="${NNTP_DEFAULT_SERVER-news.$DOMAIN_NAME}"
+  rm -rf conftest*
+  ac_cv_header_stdc=no
 fi
-test -z "$withval" && withval=no
-case "$withval" in #(vi
-yes)
-  { echo "configure: error: expected a value for --with-nntp-default-server" 1>&2; exit 1; }
-  ;; #(vi
-no) withval=""
-  ;;
-esac
-NNTP_DEFAULT_SERVER="$withval"
-
+rm -f conftest*
 
-    if test "$NNTP_DEFAULT_SERVER" = "" ; then
-	if test "$DOMAIN_NAME" != "" ; then
-		test -z "$NNTP_DEFAULT_SERVER" && case "$DOMAIN_NAME" in #(((
-	 	/*)
-			if test -r "$DOMAIN_NAME" ; then
-				NNTP_DEFAULT_SERVER="news.`cat $DOMAIN_NAME`"
-			else
-				NNTP_DEFAULT_SERVER="news"
-			fi
-			;;
-	 	*)
-			NNTP_DEFAULT_SERVER="news.$DOMAIN_NAME"
-			;;
-	 	esac
-	else
-		NNTP_DEFAULT_SERVER="news"
-	fi
-    fi
-echo "$ac_t""$NNTP_DEFAULT_SERVER" 1>&6
 fi
 
-## These options are interdependent, so we delay defining them til now:
-test -n "$NNTP_DEFAULT_SERVER" \
-	&& cat >> confdefs.h <<EOF
-#define NNTP_DEFAULT_SERVER "$NNTP_DEFAULT_SERVER"
-EOF
-
-test ".$INEWSDIR" != ".$NEWSLIBDIR" && cat >> confdefs.h <<EOF
-#define INEWSDIR "$INEWSDIR"
-EOF
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 13137 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
 
-cat >> confdefs.h <<EOF
-#define NEWSLIBDIR "$NEWSLIBDIR"
 EOF
+if { (eval echo configure:13148: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
 
-cat >> confdefs.h <<EOF
-#define NOVROOTDIR "$NOVROOTDIR"
-EOF
+fi
+fi
 
-cat >> confdefs.h <<EOF
-#define SPOOLDIR "$SPOOLDIR"
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
 EOF
 
+fi
 
-## optional features
-echo $ac_n "checking whether to use MH style mail handling for mailgroups""... $ac_c" 1>&6
-echo "configure:8638: 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
-  enableval="$enable_mh_mail_handling"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define HAVE_MH_MAIL_HANDLING 1
+ac_header_dirent=no
+for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
+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:13176: 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 13181 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <$ac_hdr>
+int main() {
+DIR *dirp = 0;
+; return 0; }
 EOF
- 
-  fi
+if { (eval echo configure:13189: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  eval "ac_cv_header_dirent_$ac_safe=yes"
 else
-  enableval=no   
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_dirent_$ac_safe=no"
 fi
-
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking whether to enable 8-bit keycodes""... $ac_c" 1>&6
-echo "configure:8657: 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
-  enableval="$enable_8bit_keys"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    : 
-  else
-    cat >> confdefs.h <<\EOF
-#define HAVE_KEY_PREFIX 1
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
-
-  fi
+ ac_header_dirent=$ac_hdr; break
 else
-  enableval=yes 
-  cat >> confdefs.h <<\EOF
-#define HAVE_KEY_PREFIX 1
-EOF
-
-  
+  echo "$ac_t""no" 1>&6
 fi
+done
+# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
+if test $ac_header_dirent = dirent.h; then
+echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
+echo "configure:13214: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldir  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 13222 "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
+    builtin and then its argument prototype would still apply.  */
+char opendir();
 
-echo "$ac_t""$enableval" 1>&6
+int main() {
+opendir()
+; return 0; }
+EOF
+if { (eval echo configure:13233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-echo $ac_n "checking whether to enable ANSI-color""... $ac_c" 1>&6
-echo "configure:8683: checking whether to enable ANSI-color" >&5
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-# Check whether --enable-color or --disable-color was given.
-if test "${enable_color+set}" = set; then
-  enableval="$enable_color"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    : 
-  fi
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="$LIBS -ldir"
 else
-  enableval=yes   
+  echo "$ac_t""no" 1>&6
 fi
 
-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:8700: checking whether to enable posting-etiquette" >&5
+else
+echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
+echo "configure:13255: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lx  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 13263 "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
+    builtin and then its argument prototype would still apply.  */
+char opendir();
 
-# Check whether --enable-etiquette or --disable-etiquette was given.
-if test "${enable_etiquette+set}" = set; then
-  enableval="$enable_etiquette"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define NO_ETIQUETTE 1
+int main() {
+opendir()
+; return 0; }
 EOF
- 
-  fi
+if { (eval echo configure:13274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  enableval=yes   
-fi
-
-echo "$ac_t""$enableval" 1>&6
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-echo $ac_n "checking whether to strictly observe RFC2047 and break long lines""... $ac_c" 1>&6
-echo "configure:8719: checking whether to strictly observe RFC2047 and break long lines" >&5
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-# Check whether --enable-break-long-lines or --disable-break-long-lines was given.
-if test "${enable_break_long_lines+set}" = set; then
-  enableval="$enable_break_long_lines"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define MIME_BREAK_LONG_LINES 1
-EOF
- 
-  fi
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIBS="$LIBS -lx"
 else
-  enableval=no   
+  echo "$ac_t""no" 1>&6
 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:8738: checking whether to force MM_CHARSET obeyance when decoding mime" >&5
+fi
 
-# Check whether --enable-mime-strict-charset or --disable-mime-strict-charset was given.
-if test "${enable_mime_strict_charset+set}" = set; then
-  enableval="$enable_mime_strict_charset"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    : 
-  else
-    cat >> confdefs.h <<\EOF
-#define MIME_STRICT_CHARSET 1
+echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
+echo "configure:13297: 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 13302 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/time.h>
+#include <time.h>
+int main() {
+struct tm *tp;
+; return 0; }
 EOF
-
-  fi
+if { (eval echo configure:13311: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_time=yes
 else
-  enableval=yes 
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_time=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_time" 1>&6
+if test $ac_cv_header_time = yes; then
   cat >> confdefs.h <<\EOF
-#define MIME_STRICT_CHARSET 1
+#define TIME_WITH_SYS_TIME 1
 EOF
 
-  
 fi
 
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking for MIME character-set""... $ac_c" 1>&6
-echo "configure:8764: 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
-  withval="$with_mime_default_charset"
-  :
+echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
+echo "configure:13332: 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
-  withval="${MM_CHARSET-US-ASCII}"
+  cat > conftest.$ac_ext <<EOF
+#line 13337 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/wait.h>
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
+#endif
+#ifndef WIFEXITED
+#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
+#endif
+int main() {
+int s;
+wait (&s);
+s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+; return 0; }
+EOF
+if { (eval echo configure:13353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_sys_wait_h=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_sys_wait_h=no
 fi
-case "$withval" in #(vi
-yes|no)
-  { echo "configure: error: expected a value for --with-mime-default-charset" 1>&2; exit 1; }
-  ;;
-esac
-MM_CHARSET="$withval"
-cat >> confdefs.h <<EOF
-#define MM_CHARSET "$MM_CHARSET"
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
+if test $ac_cv_header_sys_wait_h = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_SYS_WAIT_H 1
 EOF
 
-echo "$ac_t""$MM_CHARSET" 1>&6
+fi
 
-echo $ac_n "checking for default ISO/ASCII table""... $ac_c" 1>&6
-echo "configure:8786: 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
-  withval="$with_iso_to_ascii"
-  :
-else
-  withval="${DEFAULT_ISO2ASC--1}"
-fi
-case "$withval" in #(vi
-yes|no)
-  { echo "configure: error: expected a value for --with-iso-to-ascii" 1>&2; exit 1; }
-  ;;
-esac
-DEFAULT_ISO2ASC="$withval"
-cat >> confdefs.h <<EOF
-#define DEFAULT_ISO2ASC "$DEFAULT_ISO2ASC"
-EOF
+for cf_hdr in \
+	argz.h \
+	arpa/inet.h \
+	curses.h \
+	errno.h \
+	fcntl.h \
+	getopt.h \
+	ioctl.h \
+	inttypes.h \
+	langinfo.h \
+	libc.h \
+	locale.h \
+	malloc.h \
+	net/socket.h \
+	netdb.h \
+	netinet/in.h \
+	netlib.h \
+	nl_types.h \
+	nomacros.h \
+	paths.h	\
+	poll.h \
+	prototypes.h \
+	pwd.h \
+	sgtty.h \
+	socket.h \
+	stdarg.h \
+	stdbool.h \
+	stddef.h \
+	stdint.h \
+	stdlib.h \
+	string.h \
+	strings.h \
+	stropts.h \
+	sys/bsdtypes.h \
+	sys/errno.h \
+	sys/file.h \
+	sys/ioctl.h \
+	sys/param.h \
+	sys/poll.h \
+	sys/ptem.h \
+	sys/pty.h \
+	sys/select.h \
+	sys/stat.h \
+	sys/stream.h \
+	sys/socket.h \
+	sys/time.h \
+	sys/timeb.h \
+	sys/times.h \
+	sys/types.h \
+	sys/utsname.h \
+	term.h \
+	termio.h \
+	time.h \
+	unistd.h \
+	varargs.h \
+	wchar.h \
+	wctype.h \
 
-echo "$ac_t""$DEFAULT_ISO2ASC" 1>&6
+do
+	echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6
+echo "configure:13434: checking for $cf_hdr" >&5
+	cat > conftest.$ac_ext <<EOF
+#line 13436 "configure"
+#include "confdefs.h"
 
-echo $ac_n "checking whether to enable locale support""... $ac_c" 1>&6
-echo "configure:8808: checking whether to enable locale support" >&5
+#include <sys/types.h>
+#include <$cf_hdr>
 
-# Check whether --enable-locale or --disable-locale was given.
-if test "${enable_locale+set}" = set; then
-  enableval="$enable_locale"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define NO_LOCALE 1
 EOF
- 
-  fi
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:13444: \"$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*
+  cf_found=yes
 else
-  enableval=yes   
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_found=no
 fi
+rm -f conftest*
+echo "$ac_t""$cf_found" 1>&6
+if test $cf_found = yes ; then
+	
+cf_tr_hdr=`echo "$cf_hdr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking whether to enable posting""... $ac_c" 1>&6
-echo "configure:8827: checking whether to enable posting" >&5
-
-# Check whether --enable-posting or --disable-posting was given.
-if test "${enable_posting+set}" = set; then
-  enableval="$enable_posting"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define NO_POSTING 1
+	cat >> confdefs.h <<EOF
+#define HAVE_${cf_tr_hdr} 1
 EOF
- 
-  fi
-else
-  enableval=yes   
+
 fi
+done
 
-echo "$ac_t""$enableval" 1>&6
 
-echo $ac_n "checking whether to enable shell escape""... $ac_c" 1>&6
-echo "configure:8846: checking whether to enable shell escape" >&5
+###	Checks that depend on existence-checks for headers
 
-# Check whether --enable-shell-escape or --disable-shell-escape was given.
-if test "${enable_shell_escape+set}" = set; then
-  enableval="$enable_shell_escape"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define NO_SHELL_ESCAPE 1
-EOF
- 
-  fi
-else
-  enableval=yes   
-fi
 
-echo "$ac_t""$enableval" 1>&6
 
-echo $ac_n "checking whether to have fascist newsadmin""... $ac_c" 1>&6
-echo "configure:8865: checking whether to have fascist newsadmin" >&5
+for ac_hdr in \
+termio.h \
+termios.h \
+unistd.h \
 
-# Check whether --enable-fascist-newsadmin or --disable-fascist-newsadmin was given.
-if test "${enable_fascist_newsadmin+set}" = set; then
-  enableval="$enable_fascist_newsadmin"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define HAVE_FASCIST_NEWSADMIN 1
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:13482: 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 13487 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
 EOF
- 
-  fi
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:13492: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  enableval=no   
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking whether to enable inverse video and highlighting""... $ac_c" 1>&6
-echo "configure:8884: 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
-  enableval="$enable_inverse_video"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define USE_INVERSE_HACK 1
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
-  fi
 else
-  enableval=yes   
+  echo "$ac_t""no" 1>&6
 fi
+done
 
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking whether to enable piping support""... $ac_c" 1>&6
-echo "configure:8903: checking whether to enable piping support" >&5
 
-# Check whether --enable-piping or --disable-piping was given.
-if test "${enable_piping+set}" = set; then
-  enableval="$enable_piping"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define DONT_HAVE_PIPING 1
+if test "$ISC" = yes ; then
+	for ac_hdr in sys/termio.h 
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:13524: 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 13529 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
 EOF
- 
-  fi
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:13534: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
 else
-  enableval=yes   
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
-
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking whether to enable printer support""... $ac_c" 1>&6
-echo "configure:8922: checking whether to enable printer support" >&5
-
-# Check whether --enable-printing or --disable-printing was given.
-if test "${enable_printing+set}" = set; then
-  enableval="$enable_printing"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    cat >> confdefs.h <<\EOF
-#define DISABLE_PRINTING 1
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
  
-  fi
 else
-  enableval=yes   
+  echo "$ac_t""no" 1>&6
 fi
+done
 
-echo "$ac_t""$enableval" 1>&6
-
-echo $ac_n "checking whether to unique tmp-files by appending .pid""... $ac_c" 1>&6
-echo "configure:8941: 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
-  enableval="$enable_append_pid"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    : 
-  else
-    cat >> confdefs.h <<\EOF
-#define APPEND_PID 1
-EOF
-
-  fi
-else
-  enableval=yes 
-  cat >> confdefs.h <<\EOF
-#define APPEND_PID 1
-EOF
-
-  
 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:8967: 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
-  enableval="$enable_xhdr_xref"
-  test "$enableval" != no && enableval=yes
-  if test "$enableval" != "yes" ; then
-    : 
-  else
-    cat >> confdefs.h <<\EOF
-#define XHDR_XREF 1
+if test "$ac_cv_header_termios_h" = yes ; then
+	case "$CFLAGS $CPPFLAGS" in
+	*-D_POSIX_SOURCE*)
+		termios_bad=dunno ;;
+	*)	termios_bad=maybe ;;
+	esac
+	if test "$termios_bad" = maybe ; then
+	echo $ac_n "checking whether termios.h needs _POSIX_SOURCE""... $ac_c" 1>&6
+echo "configure:13569: checking whether termios.h needs _POSIX_SOURCE" >&5
+	cat > conftest.$ac_ext <<EOF
+#line 13571 "configure"
+#include "confdefs.h"
+#include <termios.h>
+int main() {
+struct termios foo; int x = foo.c_iflag
+; return 0; }
 EOF
+if { (eval echo configure:13578: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  termios_bad=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  
+		cat > conftest.$ac_ext <<EOF
+#line 13587 "configure"
+#include "confdefs.h"
 
-  fi
+#define _POSIX_SOURCE
+#include <termios.h>
+int main() {
+struct termios foo; int x = foo.c_iflag
+; return 0; }
+EOF
+if { (eval echo configure:13596: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  termios_bad=unknown
 else
-  enableval=yes 
-  cat >> confdefs.h <<\EOF
-#define XHDR_XREF 1
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  termios_bad=yes cat >> confdefs.h <<\EOF
+#define _POSIX_SOURCE 1
 EOF
 
-  
+fi
+rm -f conftest*
+			
+fi
+rm -f conftest*
+	echo "$ac_t""$termios_bad" 1>&6
+	fi
 fi
 
-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:8994: 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
-  enableval="$enable_broken_listgroup_fix"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define BROKEN_LISTGROUP 1
-EOF
- 
-  fi
+echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6
+echo "configure:13619: 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
-  enableval=no   
-fi
+  
+    cf_cv_sizechange=unknown
+    cf_save_CPPFLAGS="$CPPFLAGS"
 
-echo "$ac_t""$enableval" 1>&6
+for cf_opts in "" "NEED_PTEM_H"
+do
 
-### 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:9014: checking whether to ignore system()s return value" >&5
+    CPPFLAGS="$cf_save_CPPFLAGS"
+    test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
+    cat > conftest.$ac_ext <<EOF
+#line 13633 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#ifdef HAVE_TERMIOS_H
+#include <termios.h>
+#else
+#ifdef HAVE_TERMIO_H
+#include <termio.h>
+#endif
+#endif
+#ifdef NEED_PTEM_H
+/* This is a workaround for SCO:  they neglected to define struct winsize in
+ * termios.h -- it's only in termio.h and ptem.h
+ */
+#include        <sys/stream.h>
+#include        <sys/ptem.h>
+#endif
+#if !defined(sun) || !defined(HAVE_TERMIOS_H)
+#include <sys/ioctl.h>
+#endif
 
-# Check whether --enable-broken-system-fix or --disable-broken-system-fix was given.
-if test "${enable_broken_system_fix+set}" = set; then
-  enableval="$enable_broken_system_fix"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define IGNORE_SYSTEM_STATUS 1
+int main() {
+
+#ifdef TIOCGSIZE
+	struct ttysize win;	/* FIXME: what system is this? */
+	int y = win.ts_lines;
+	int x = win.ts_cols;
+#else
+#ifdef TIOCGWINSZ
+	struct winsize win;
+	int y = win.ws_row;
+	int x = win.ws_col;
+#else
+	no TIOCGSIZE or TIOCGWINSZ
+#endif /* TIOCGWINSZ */
+#endif /* TIOCGSIZE */
+	
+; return 0; }
 EOF
- 
-  fi
+if { (eval echo configure:13672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  cf_cv_sizechange=yes
 else
-  enableval=no   
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_sizechange=no
 fi
+rm -f conftest*
 
-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:9034: checking for directory containing tin.defaults file" >&5
+	CPPFLAGS="$cf_save_CPPFLAGS"
+	if test "$cf_cv_sizechange" = yes ; then
+		echo "size-change succeeded ($cf_opts)" >&5
+		test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
+		break
+	fi
+done
 
-# Check whether --with-defaults-dir or --without-defaults-dir was given.
-if test "${with_defaults_dir+set}" = set; then
-  withval="$with_defaults_dir"
-  :
-else
-  withval="${TIN_DEFAULTS_DIR-/etc/tin}"
 fi
 
-case ".$withval" in #(vi
-.\$\(*\)*|.\'*\'*) #(vi
-  ;;
-..|./*|.\\*) #(vi
-  ;;
-.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
-  ;;
-.\${*prefix}*) #(vi
-  eval withval="$withval"
-  case ".$withval" in #(vi
-  .NONE/*)
-    withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-    ;;
-  esac
-  ;; #(vi
-.NONE/*)
-  withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
-  ;;
-*)
-  { echo "configure: error: expected a pathname, not \"$withval\"" 1>&2; exit 1; }
-  ;;
-esac
-
-eval TIN_DEFAULTS_DIR="$withval"
-
-echo "$ac_t""$TIN_DEFAULTS_DIR" 1>&6
-cat >> confdefs.h <<EOF
-#define TIN_DEFAULTS_DIR "$TIN_DEFAULTS_DIR"
+echo "$ac_t""$cf_cv_sizechange" 1>&6
+if test "$cf_cv_sizechange" != no ; then
+	cat >> confdefs.h <<\EOF
+#define HAVE_SIZECHANGE 1
 EOF
 
-
-### check for ipv6 support
-echo $ac_n "checking whether to enable IPv6""... $ac_c" 1>&6
-echo "configure:9077: checking whether to enable IPv6" >&5
-
-# Check whether --enable-ipv6 or --disable-ipv6 was given.
-if test "${enable_ipv6+set}" = set; then
-  enableval="$enable_ipv6"
-  test "$enableval" != yes && enableval=no
-  if test "$enableval" != "no" ; then
-    cat >> confdefs.h <<\EOF
-#define ENABLE_IPV6 1
+	case $cf_cv_sizechange in #(vi
+	NEED*)
+		cat >> confdefs.h <<EOF
+#define $cf_cv_sizechange  1
 EOF
- 
-  fi
-else
-  enableval=no   
+
+		;;
+	esac
 fi
 
-echo "$ac_t""$enableval" 1>&6
-if test "$enableval" = "yes"; then
-	
 
-echo $ac_n "checking ipv6 stack type""... $ac_c" 1>&6
-echo "configure:9098: checking ipv6 stack type" >&5
-if eval "test \"`echo '$''{'cf_cv_ipv6type'+set}'`\" = set"; then
+echo $ac_n "checking if sys/time.h conflicts with sys/select.h""... $ac_c" 1>&6
+echo "configure:13711: 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
   
-cf_cv_ipv6type=unknown
-for i in solaris inria kame linux-glibc linux-libinet6 toshiba v6d zeta
+for cf_opts in no yes
 do
-	case $i in #(vi
-	solaris) #(vi
-		if test "SunOS" = "`uname -s`"
-		then
-		  if test -f /usr/include/netinet/ip6.h
-		  then
-			cf_cv_ipv6type=$i
-		  fi
-		fi
-		;;
-	inria) #(vi
-				cat > conftest.$ac_ext <<EOF
-#line 9118 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 13719 "configure"
 #include "confdefs.h"
 
-#include <netinet/in.h>
-#ifdef IPV6_INRIA_VERSION
-yes
+#define yes 1
+#define no 0
+#if $cf_opts
+#define timeval fake_timeval
 #endif
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  cf_cv_ipv6type=$i
-fi
-rm -f conftest*
-
-		;;
-	kame) #(vi
-				cat > conftest.$ac_ext <<EOF
-#line 9136 "configure"
-#include "confdefs.h"
-
-#include <netinet/in.h>
-#ifdef __KAME__
-yes
+#include <sys/types.h>
+#ifdef TIME_WITH_SYS_TIME
+#	include <sys/time.h>
+#	include <time.h>
+#else
+#	ifdef HAVE_SYS_TIME_H
+#		include <sys/time.h>
+#	else
+#		include <time.h>
+#	endif
+#endif
+#undef timeval
+#ifdef HAVE_SYS_SELECT_H
+#	include <sys/select.h>
 #endif
+
+int main() {
+struct timeval foo
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
+if { (eval echo configure:13747: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_ipv6type=$i
+  cf_cv_sys_select_timeval=$cf_opts
+	 break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_sys_select_timeval=no
 fi
 rm -f conftest*
+done
 
-		;;
-	linux-glibc) #(vi
-				cat > conftest.$ac_ext <<EOF
-#line 9154 "configure"
-#include "confdefs.h"
+fi
 
-#include <features.h>
-#if defined(__GLIBC__) && __GLIBC__ >= 2 && __GLIBC_MINOR__ >= 1
-yes
-#endif
+echo "$ac_t""$cf_cv_sys_select_timeval" 1>&6
+test $cf_cv_sys_select_timeval = yes && cat >> confdefs.h <<\EOF
+#define NEED_TIMEVAL_FIX 1
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
-  rm -rf conftest*
-  cf_cv_ipv6type=$i
-fi
-rm -f conftest*
 
-		;;
-	linux-libinet6) #(vi
-				if test -d /usr/inet6
-		then
-			cf_cv_ipv6type=$i
-		elif test -f /usr/include/netinet/ip6.h
-		then
-			cf_cv_ipv6type=$i
-		fi
-		;;
-	toshiba) #(vi
-		cat > conftest.$ac_ext <<EOF
-#line 9181 "configure"
-#include "confdefs.h"
 
-#include <sys/param.h>
-#ifdef _TOSHIBA_INET6
-yes
+
+###	Checks for Datatypes.
+echo $ac_n "checking for gid_t""... $ac_c" 1>&6
+echo "configure:13771: 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 13776 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])gid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
-  cf_cv_ipv6type=$i
+  ac_cv_type_gid_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_gid_t=no
 fi
 rm -f conftest*
 
-		;;
-	v6d) #(vi
-		cat > conftest.$ac_ext <<EOF
-#line 9199 "configure"
-#include "confdefs.h"
+fi
+echo "$ac_t""$ac_cv_type_gid_t" 1>&6
+if test $ac_cv_type_gid_t = no; then
+  cat >> confdefs.h <<\EOF
+#define gid_t int
+EOF
 
-#include </usr/local/v6/include/sys/v6config.h>
-#ifdef __V6D__
-yes
+fi
+
+echo $ac_n "checking for mode_t""... $ac_c" 1>&6
+echo "configure:13804: 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 13809 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
-  cf_cv_ipv6type=$i
+  ac_cv_type_mode_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_mode_t=no
 fi
 rm -f conftest*
 
-		;;
-	zeta)
-		cat > conftest.$ac_ext <<EOF
-#line 9217 "configure"
-#include "confdefs.h"
+fi
+echo "$ac_t""$ac_cv_type_mode_t" 1>&6
+if test $ac_cv_type_mode_t = no; then
+  cat >> confdefs.h <<\EOF
+#define mode_t int
+EOF
 
-#include <sys/param.h>
-#ifdef _ZETA_MINAMI_INET6
-yes
+fi
+
+echo $ac_n "checking for off_t""... $ac_c" 1>&6
+echo "configure:13837: 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 13842 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
 #endif
 EOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "yes" >/dev/null 2>&1; then
+  egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
-  cf_cv_ipv6type=$i
+  ac_cv_type_off_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_off_t=no
 fi
 rm -f conftest*
 
-		;;
-	esac
-	if test "$cf_cv_ipv6type" != "unknown"; then
-		break
-	fi
-done
-
 fi
+echo "$ac_t""$ac_cv_type_off_t" 1>&6
+if test $ac_cv_type_off_t = no; then
+  cat >> confdefs.h <<\EOF
+#define off_t long
+EOF
 
-echo "$ac_t""$cf_cv_ipv6type" 1>&6
-
-
-
-
-cf_ipv6lib=none
-cf_ipv6dir=none
-
-echo $ac_n "checking for IPv6 library if required""... $ac_c" 1>&6
-echo "configure:9250: checking for IPv6 library if required" >&5
-case $cf_cv_ipv6type in #(vi
-solaris) #(vi
-	;;
-inria) #(vi
-	;;
-kame) #(vi
-		cf_ipv6lib=inet6
-	cf_ipv6dir=v6
-	;;
-linux-glibc) #(vi
-	;;
-linux-libinet6) #(vi
-		cf_ipv6lib=inet6
-	cf_ipv6dir=inet6
-	;;
-toshiba) #(vi
-	cf_ipv6lib=inet6
-	cf_ipv6dir=v6
-	;;
-v6d) #(vi
-	cf_ipv6lib=v6
-	cf_ipv6dir=v6
-	;;
-zeta)
-	cf_ipv6lib=inet6
-	cf_ipv6dir=v6
-	;;
-esac
-echo "$ac_t""$cf_ipv6lib" 1>&6
-
-if test "$cf_ipv6lib" != "none"; then
+fi
 
-	cat > conftest.$ac_ext <<EOF
-#line 9284 "configure"
+echo $ac_n "checking for pid_t""... $ac_c" 1>&6
+echo "configure:13870: 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 13875 "configure"
 #include "confdefs.h"
-
 #include <sys/types.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-int main() {
-getaddrinfo(0, 0, 0, 0)
-; return 0; }
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
 EOF
-if { (eval echo configure:9295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  :
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_pid_t=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  
-	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/$cf_ipv6dir &&       cf_search="$cf_search $HOME/include/$cf_ipv6dir"
-	test -d $HOME/include/$cf_ipv6dir/include &&    cf_search="$cf_search $HOME/include/$cf_ipv6dir/include"
-}
-
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_ipv6dir to the actual package location:
-test -d $HOME/$cf_ipv6dir && {
-	test -n "$verbose" && echo "	... testing include-directories under $HOME/$cf_ipv6dir"
-	test -d $HOME/$cf_ipv6dir/include &&       cf_search="$cf_search $HOME/$cf_ipv6dir/include"
-	test -d $HOME/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search $HOME/$cf_ipv6dir/include/$cf_ipv6dir"
-}
-
-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/$cf_ipv6dir &&    cf_search="$cf_search /usr/local/include/$cf_ipv6dir"
-	test -d /usr/local/include/$cf_ipv6dir/include && cf_search="$cf_search /usr/local/include/$cf_ipv6dir/include"
-	test -d /usr/local/$cf_ipv6dir/include &&    cf_search="$cf_search /usr/local/$cf_ipv6dir/include"
-	test -d /usr/local/$cf_ipv6dir/include/$cf_ipv6dir && cf_search="$cf_search /usr/local/$cf_ipv6dir/include/$cf_ipv6dir"
-}
-
-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/$cf_ipv6dir &&       cf_search="$cf_search $prefix/include/$cf_ipv6dir"
-	test -d $prefix/include/$cf_ipv6dir/include &&    cf_search="$cf_search $prefix/include/$cf_ipv6dir/include"
-	test -d $prefix/$cf_ipv6dir/include &&       cf_search="$cf_search $prefix/$cf_ipv6dir/include"
-	test -d $prefix/$cf_ipv6dir/include/$cf_ipv6dir &&    cf_search="$cf_search $prefix/$cf_ipv6dir/include/$cf_ipv6dir"
-}
-
-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/$cf_ipv6dir &&          cf_search="$cf_search /opt/include/$cf_ipv6dir"
-	test -d /opt/include/$cf_ipv6dir/include &&       cf_search="$cf_search /opt/include/$cf_ipv6dir/include"
-	test -d /opt/$cf_ipv6dir/include &&          cf_search="$cf_search /opt/$cf_ipv6dir/include"
-	test -d /opt/$cf_ipv6dir/include/$cf_ipv6dir &&       cf_search="$cf_search /opt/$cf_ipv6dir/include/$cf_ipv6dir"
-}
-
-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/$cf_ipv6dir &&          cf_search="$cf_search /usr/include/$cf_ipv6dir"
-	test -d /usr/include/$cf_ipv6dir/include &&       cf_search="$cf_search /usr/include/$cf_ipv6dir/include"
-	test -d /usr/$cf_ipv6dir/include &&          cf_search="$cf_search /usr/$cf_ipv6dir/include"
-}
-
-test "$includedir" != NONE && \
-test "$includedir" != "/usr/include" && \
-test -d "$includedir" && {
-	test -d $includedir &&    cf_search="$cf_search $includedir"
-	test -d $includedir/$cf_ipv6dir && cf_search="$cf_search $includedir/$cf_ipv6dir"
-}
-
-test "$oldincludedir" != NONE && \
-test "$oldincludedir" != "/usr/include" && \
-test -d "$oldincludedir" && {
-	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
-	test -d $oldincludedir/$cf_ipv6dir && cf_search="$cf_search $oldincludedir/$cf_ipv6dir"
-}
-
-
-	for cf_incdir in $cf_search
-	do
-		cf_header=$cf_incdir/netinet/ip6.h
-		if test -f $cf_header
-		then
-			CPPFLAGS="$CPPFLAGS -I$cf_incdir"
-			test -n "$verbose" && echo "	... found $cf_header" 1>&6
-			break
-		fi
-		test -n "$verbose" && echo "	... tested $cf_header" 1>&6
-	done
-	
+  ac_cv_type_pid_t=no
 fi
 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:9392: checking for getaddrinfo" >&5
-if eval "test \"`echo '$''{'ac_cv_func_getaddrinfo'+set}'`\" = set"; then
+fi
+echo "$ac_t""$ac_cv_type_pid_t" 1>&6
+if test $ac_cv_type_pid_t = no; then
+  cat >> confdefs.h <<\EOF
+#define pid_t int
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:13903: 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 9397 "configure"
+#line 13908 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getaddrinfo(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char getaddrinfo();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_getaddrinfo) || defined (__stub___getaddrinfo)
-choke me
-#else
-getaddrinfo();
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
 #endif
-
-; return 0; }
 EOF
-if { (eval echo configure:9420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
-  eval "ac_cv_func_getaddrinfo=yes"
+  ac_cv_type_size_t=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_getaddrinfo=no"
+  ac_cv_type_size_t=no
 fi
 rm -f conftest*
+
 fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+  cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
 
-if eval "test \"`echo '$ac_cv_func_'getaddrinfo`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes'
-else
-  echo "$ac_t""no" 1>&6
+fi
 
-		cf_save_LIBS="$LIBS"
-		echo $ac_n "checking for getaddrinfo in -l$cf_ipv6lib""... $ac_c" 1>&6
-echo "configure:9440: checking for getaddrinfo in -l$cf_ipv6lib" >&5
-		LIBS="-l$cf_ipv6lib $LIBS"
-		cat > conftest.$ac_ext <<EOF
-#line 9443 "configure"
+echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
+echo "configure:13936: 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 13941 "configure"
 #include "confdefs.h"
-
 #include <sys/types.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-int main() {
-getaddrinfo(0, 0, 0, 0)
-; return 0; }
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
 EOF
-if { (eval echo configure:9454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])ssize_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-			 eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes'
-			
+  ac_cv_type_ssize_t=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-			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/$cf_ipv6dir &&       cf_search="$cf_search $HOME/lib/$cf_ipv6dir"
-	test -d $HOME/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search $HOME/lib/$cf_ipv6dir/lib"
-}
-
-# For other stuff under the home directory, it should be sufficient to put
-# a symbolic link for $HOME/$cf_ipv6dir to the actual package location:
-test -d $HOME/$cf_ipv6dir && {
-	test -n "$verbose" && echo "	... testing lib-directories under $HOME/$cf_ipv6dir"
-	test -d $HOME/$cf_ipv6dir/lib &&       cf_search="$cf_search $HOME/$cf_ipv6dir/lib"
-	test -d $HOME/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search $HOME/$cf_ipv6dir/lib/$cf_ipv6dir"
-}
-
-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/$cf_ipv6dir &&    cf_search="$cf_search /usr/local/lib/$cf_ipv6dir"
-	test -d /usr/local/lib/$cf_ipv6dir/lib && cf_search="$cf_search /usr/local/lib/$cf_ipv6dir/lib"
-	test -d /usr/local/$cf_ipv6dir/lib &&    cf_search="$cf_search /usr/local/$cf_ipv6dir/lib"
-	test -d /usr/local/$cf_ipv6dir/lib/$cf_ipv6dir && cf_search="$cf_search /usr/local/$cf_ipv6dir/lib/$cf_ipv6dir"
-}
+  ac_cv_type_ssize_t=no
+fi
+rm -f conftest*
 
-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/$cf_ipv6dir &&       cf_search="$cf_search $prefix/lib/$cf_ipv6dir"
-	test -d $prefix/lib/$cf_ipv6dir/lib &&    cf_search="$cf_search $prefix/lib/$cf_ipv6dir/lib"
-	test -d $prefix/$cf_ipv6dir/lib &&       cf_search="$cf_search $prefix/$cf_ipv6dir/lib"
-	test -d $prefix/$cf_ipv6dir/lib/$cf_ipv6dir &&    cf_search="$cf_search $prefix/$cf_ipv6dir/lib/$cf_ipv6dir"
-}
+fi
+echo "$ac_t""$ac_cv_type_ssize_t" 1>&6
+if test $ac_cv_type_ssize_t = no; then
+  cat >> confdefs.h <<\EOF
+#define ssize_t int
+EOF
 
-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/$cf_ipv6dir &&          cf_search="$cf_search /opt/lib/$cf_ipv6dir"
-	test -d /opt/lib/$cf_ipv6dir/lib &&       cf_search="$cf_search /opt/lib/$cf_ipv6dir/lib"
-	test -d /opt/$cf_ipv6dir/lib &&          cf_search="$cf_search /opt/$cf_ipv6dir/lib"
-	test -d /opt/$cf_ipv6dir/lib/$cf_ipv6dir &&       cf_search="$cf_search /opt/$cf_ipv6dir/lib/$cf_ipv6dir"
-}
-
-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/$cf_ipv6dir &&          cf_search="$cf_search /usr/lib/$cf_ipv6dir"
-	test -d /usr/lib/$cf_ipv6dir/lib &&       cf_search="$cf_search /usr/lib/$cf_ipv6dir/lib"
-	test -d /usr/$cf_ipv6dir/lib &&          cf_search="$cf_search /usr/$cf_ipv6dir/lib"
-}
+fi
 
-			for cf_libdir in $cf_search
-			do
-				echo $ac_n "checking for -l$cf_ipv6lib in $cf_libdir""... $ac_c" 1>&6
-echo "configure:9523: 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 9526 "configure"
+echo $ac_n "checking for time_t""... $ac_c" 1>&6
+echo "configure:13969: 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 13974 "configure"
 #include "confdefs.h"
-
 #include <sys/types.h>
-#include <netdb.h>
-#include <netinet/in.h>
-#include <netinet/ip6.h>
-int main() {
-getaddrinfo(0, 0, 0, 0)
-; return 0; }
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
 EOF
-if { (eval echo configure:9537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])time_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
   rm -rf conftest*
-  echo "$ac_t""yes" 1>&6
-			 		 eval 'cf_cv_have_lib_'$cf_ipv6lib'=yes'
-					 break
+  ac_cv_type_time_t=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-					 LIBS="$cf_save_LIBS"
-fi
-rm -f conftest*
-			done
-			
+  ac_cv_type_time_t=no
 fi
 rm -f conftest*
-		
-fi
-
-eval 'cf_found_library=$cf_cv_have_lib_'$cf_ipv6lib
 
-
-	if test $cf_found_library = no ; then
-		{ echo "configure: error: No $cf_ipv6lib library found, cannot continue.  You must fetch lib$cf_ipv6lib.a
-from an appropriate IPv6 kit and compile beforehand." 1>&2; exit 1; }
-	fi
 fi
+echo "$ac_t""$ac_cv_type_time_t" 1>&6
+if test $ac_cv_type_time_t = no; then
+  cat >> confdefs.h <<\EOF
+#define time_t long
+EOF
 
+fi
 
-
-
-echo $ac_n "checking working getaddrinfo""... $ac_c" 1>&6
-echo "configure:9570: checking working getaddrinfo" >&5
-if eval "test \"`echo '$''{'cf_cv_getaddrinfo'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+cat > conftest.$ac_ext <<EOF
+#line 14002 "configure"
+#include "confdefs.h"
+#include <netinet/in.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "in_addr_t" >/dev/null 2>&1; then
+  :
 else
+  rm -rf conftest*
   
-if test "$cross_compiling" = yes; then
-  cf_cv_getaddrinfo=unknown
+	cat > conftest.$ac_ext <<EOF
+#line 14013 "configure"
+#include "confdefs.h"
+#include <sys/endian.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "in_addr_t" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  
+		echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
+echo "configure:14024: 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 9579 "configure"
+#line 14029 "configure"
 #include "confdefs.h"
-
 #include <sys/types.h>
-#include <netdb.h>
-#include <string.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-
-#define expect(a,b) if (strcmp(a,b) != 0) goto bad
-
-int main()
-{
-   int passive, gaierr, inet4 = 0, inet6 = 0;
-   struct addrinfo hints, *ai, *aitop;
-   char straddr[INET6_ADDRSTRLEN], strport[16];
-
-   for (passive = 0; passive <= 1; passive++) {
-     memset(&hints, 0, sizeof(hints));
-     hints.ai_family = AF_UNSPEC;
-     hints.ai_flags = passive ? AI_PASSIVE : 0;
-     hints.ai_socktype = SOCK_STREAM;
-     if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
-       (void)gai_strerror(gaierr);
-       goto bad;
-     }
-     for (ai = aitop; ai; ai = ai->ai_next) {
-       if (ai->ai_addr == NULL ||
-           ai->ai_addrlen == 0 ||
-           getnameinfo(ai->ai_addr, ai->ai_addrlen,
-                       straddr, sizeof(straddr), strport, sizeof(strport),
-                       NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
-         goto bad;
-       }
-       switch (ai->ai_family) {
-       case AF_INET:
-         expect(strport, "54321");
-         if (passive) {
-           expect(straddr, "0.0.0.0");
-         } else {
-           expect(straddr, "127.0.0.1");
-         }
-         inet4++;
-         break;
-       case AF_INET6:
-         expect(strport, "54321");
-         if (passive) {
-           expect(straddr, "::");
-         } else {
-           expect(straddr, "::1");
-         }
-         inet6++;
-         break;
-       case AF_UNSPEC:
-         goto bad;
-         break;
-       default:
-         /* another family support? */
-         break;
-       }
-     }
-   }
-
-   if (!(inet4 == 0 || inet4 == 2))
-     goto bad;
-   if (!(inet6 == 0 || inet6 == 2))
-     goto bad;
-
-   if (aitop)
-     freeaddrinfo(aitop);
-   exit(0);
-
-  bad:
-   if (aitop)
-     freeaddrinfo(aitop);
-   exit(1);
-}
-
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
 EOF
-if { (eval echo configure:9658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  cf_cv_getaddrinfo=yes
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])in_addr_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_in_addr_t=yes
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_getaddrinfo=no
-fi
-rm -fr conftest*
+  rm -rf conftest*
+  ac_cv_type_in_addr_t=no
 fi
-
+rm -f conftest*
 
 fi
-
-echo "$ac_t""$cf_cv_getaddrinfo" 1>&6
-if test "$cf_cv_getaddrinfo" = yes ; then
-	cat >> confdefs.h <<\EOF
-#define HAVE_GAI_STRERROR 1
-EOF
-
-	cat >> confdefs.h <<\EOF
-#define HAVE_GETADDRINFO 1
+echo "$ac_t""$ac_cv_type_in_addr_t" 1>&6
+if test $ac_cv_type_in_addr_t = no; then
+  cat >> confdefs.h <<\EOF
+#define in_addr_t unsigned long
 EOF
 
 fi
 
-
-if test "$cf_cv_getaddrinfo" != "yes"; then
-	if test "$cf_cv_ipv6type" != "linux"; then
-		echo "configure: warning: You must get working getaddrinfo() function,
-or you can specify "--disable-ipv6"" 1>&2
-	else
-		echo "configure: warning: The getaddrinfo() implementation on your system seems be buggy.
-You should upgrade your system library to the newest version
-of GNU C library (aka glibc)." 1>&2
-	fi
+	
 fi
+rm -f conftest*
 
 
 fi
-for ac_func in getaddrinfo getnameinfo
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9702: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+rm -f conftest*
+
+echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
+echo "configure:14065: 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 9707 "configure"
+#line 14070 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+#include <sys/types.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "uid_t" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_uid_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_uid_t=no
+fi
+rm -f conftest*
 
-int main() {
+fi
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
+echo "$ac_t""$ac_cv_type_uid_t" 1>&6
+if test $ac_cv_type_uid_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uid_t int
+EOF
+
+  cat >> confdefs.h <<\EOF
+#define gid_t int
+EOF
+
+fi
+
+
+echo $ac_n "checking for quad_t""... $ac_c" 1>&6
+echo "configure:14100: checking for quad_t" >&5
+cat > conftest.$ac_ext <<EOF
+#line 14102 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#if 0
+#include <stdlib.h>
+#include <stddef.h>
+#endif /* 0 */
 
+int main() {
+quad_t x; x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:9730: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  ac_cv_quad_t=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  ac_cv_quad_t=no
 fi
 rm -f conftest*
+echo "$ac_t""$ac_cv_quad_t" 1>&6
+if test $ac_cv_quad_t = yes; then
+	cat >> confdefs.h <<\EOF
+#define HAVE_QUAD_T 1
+EOF
+
 fi
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+echo $ac_n "checking for long long""... $ac_c" 1>&6
+echo "configure:14134: checking for long long" >&5
+cat > conftest.$ac_ext <<EOF
+#line 14136 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+
+int main() {
+long long x; x = 0
+; return 0; }
 EOF
- 
+if { (eval echo configure:14145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_long_long=yes
 else
-  echo "$ac_t""no" 1>&6
-LIBOBJS="$LIBOBJS ${ac_func}.${ac_objext}"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_long_long=no
 fi
-done
+rm -f conftest*
+echo "$ac_t""$ac_cv_long_long" 1>&6
+if test $ac_cv_long_long = yes; then
+	cat >> confdefs.h <<\EOF
+#define HAVE_LONG_LONG 1
+EOF
 
+fi
 
+echo $ac_n "checking for nl_item""... $ac_c" 1>&6
+echo "configure:14164: checking for nl_item" >&5
+cat > conftest.$ac_ext <<EOF
+#line 14166 "configure"
+#include "confdefs.h"
 
-### 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:9759: checking whether to make a coffee while compiling" >&5
+#ifdef HAVE_LANGINFO_H
+#include <langinfo.h>
+#else
+#ifdef HAVE_NL_TYPES_H
+#include <nl_types.h>
+#endif
+#endif
 
-# Check whether --with-coffee or --without-coffee was given.
-if test "${with_coffee+set}" = set; then
-  withval="$with_coffee"
-   case "$withval" in
-	yes)
-	echo "$ac_t""yes - with milk - please!" 1>&6
-	cat >> confdefs.h <<\EOF
-#define HAVE_COFFEE 1
+int main() {
+nl_item x; x = 0
+; return 0; }
 EOF
-
-	;;
-	*)
-	echo "$ac_t""no" 1>&6
-	;;
-	esac
+if { (eval echo configure:14181: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_nl_item=yes
 else
-  echo "$ac_t""no" 1>&6
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_nl_item=no
 fi
+rm -f conftest*
+echo "$ac_t""$ac_cv_nl_item" 1>&6
+if test $ac_cv_nl_item = yes; then
+        cat >> confdefs.h <<\EOF
+#define HAVE_NL_ITEM 1
+EOF
 
+fi
 
-### checks for compiler characteristics
-
-echo $ac_n "checking for makeflags variable""... $ac_c" 1>&6
-echo "configure:9784: checking for makeflags variable" >&5
-if eval "test \"`echo '$''{'cf_cv_makeflags'+set}'`\" = set"; then
+###	Checks for libraries.
+# 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:14203: 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
 else
+  ac_save_LIBS="$LIBS"
+LIBS="-luu  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 14211 "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
+    builtin and then its argument prototype would still apply.  */
+char UUInitialize();
+
+int main() {
+UUInitialize()
+; return 0; }
+EOF
+if { (eval echo configure:14222: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-	cf_cv_makeflags=''
-	for cf_option in '-$(MAKEFLAGS)' '$(MFLAGS)'
-	do
-		cat >cf_makeflags.tmp <<CF_EOF
-SHELL = /bin/sh
-all :
-	@ echo '.$cf_option'
-CF_EOF
-		cf_result=`${MAKE-make} -k -f cf_makeflags.tmp 2>/dev/null`
-		case "$cf_result" in
-		.*k)
-			cf_result=`${MAKE-make} -k -f cf_makeflags.tmp CC=cc 2>/dev/null`
-			case "$cf_result" in
-			.*CC=*)	cf_cv_makeflags=
-				;;
-			*)	cf_cv_makeflags=$cf_option
-				;;
-			esac
-			break
-			;;
-		*)	echo no match "$cf_result"
-			;;
-		esac
-	done
-	rm -f cf_makeflags.tmp
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
 fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  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:14239: 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 14244 "configure"
+#include "confdefs.h"
+#include <uudeview.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:14249: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_LIBUU 1
+EOF
 
-echo "$ac_t""$cf_cv_makeflags" 1>&6
+		cat >> confdefs.h <<\EOF
+#define HAVE_UUDEVIEW_H 1
+EOF
 
+		LIBS="$LIBS -luu"
+	
+else
+  echo "$ac_t""no" 1>&6
+fi
 
 
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:9829: checking for working const" >&5
-if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+
+# libidn - Internationalized Domain Names
+echo $ac_n "checking for stringprep_check_version in -lidn""... $ac_c" 1>&6
+echo "configure:14287: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 9834 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-lidn  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 14295 "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
+    builtin and then its argument prototype would still apply.  */
+char stringprep_check_version();
 
 int main() {
+stringprep_check_version()
+; return 0; }
+EOF
+if { (eval echo configure:14306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-/* Ultrix mips cc rejects this.  */
-typedef int charset[2]; const charset x;
-/* SunOS 4.1.1 cc rejects this.  */
-char const *const *ccp;
-char **p;
-/* NEC SVR4.0.2 mips cc rejects this.  */
-struct point {int x, y;};
-static struct point const zero = {0,0};
-/* AIX XL C 1.02.0.0 rejects this.
-   It does not let you subtract one const X* pointer from another in an arm
-   of an if-expression whose if-part is not a constant expression */
-const char *g = "string";
-ccp = &g + (g ? g-g : 0);
-/* HPUX 7.0 cc rejects these. */
-++ccp;
-p = (char**) ccp;
-ccp = (char const *const *) p;
-{ /* SCO 3.2v4 cc rejects this.  */
-  char *t;
-  char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-  *t++ = 0;
-}
-{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-  int x[] = {25, 17};
-  const int *foo = &x[0];
-  ++foo;
-}
-{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-  typedef const int *iptr;
-  iptr p = 0;
-  ++p;
-}
-{ /* AIX XL C 1.02.0.0 rejects this saying
-     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-  struct s { int j; const int *ap[3]; };
-  struct s *b; b->j = 5;
-}
-{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-  const int foo = 10;
-}
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-; return 0; }
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  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:14323: 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 14328 "configure"
+#include "confdefs.h"
+#include <stringprep.h>
 EOF
-if { (eval echo configure:9883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:14333: \"$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*
-  ac_cv_c_const=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_c_const=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
-
-echo "$ac_t""$ac_cv_c_const" 1>&6
-if test $ac_cv_c_const = no; then
-  cat >> confdefs.h <<\EOF
-#define const 
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+		cat >> confdefs.h <<\EOF
+#define HAVE_STRINGPREP_H 1
 EOF
 
-fi
-
-echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:9904: checking for inline" >&5
-if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+		ac_safe=`echo "idna.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for idna.h""... $ac_c" 1>&6
+echo "configure:14356: 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
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 9911 "configure"
+#line 14361 "configure"
 #include "confdefs.h"
-
-int main() {
-} $ac_kw foo() {
-; return 0; }
+#include <idna.h>
 EOF
-if { (eval echo configure:9918: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:14366: \"$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*
-  ac_cv_c_inline=$ac_kw; break
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-done
-
 fi
-
-echo "$ac_t""$ac_cv_c_inline" 1>&6
-case "$ac_cv_c_inline" in
-  inline | yes) ;;
-  no) cat >> confdefs.h <<\EOF
-#define inline 
-EOF
- ;;
-  *)  cat >> confdefs.h <<EOF
-#define inline $ac_cv_c_inline
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+			cat >> confdefs.h <<\EOF
+#define HAVE_IDNA_H 1
 EOF
- ;;
-esac
-
 
-echo $ac_n "checking for ansi token expansion/substitution""... $ac_c" 1>&6
-echo "configure:9945: checking for ansi token expansion/substitution" >&5
-if eval "test \"`echo '$''{'cf_cv_cpp_expands'+set}'`\" = set"; then
+			echo $ac_n "checking for idna_to_unicode_lzlz in -lidn""... $ac_c" 1>&6
+echo "configure:14388: 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
 else
-  
-	cat > conftest.$ac_ext <<EOF
-#line 9951 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-lidn  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 14396 "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
+    builtin and then its argument prototype would still apply.  */
+char idna_to_unicode_lzlz();
 
-#define string(n) #n
 int main() {
-char *s = string(token)
+idna_to_unicode_lzlz()
 ; return 0; }
 EOF
-if { (eval echo configure:9959: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_cpp_expands=yes
+if { (eval echo configure:14407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+				cat >> confdefs.h <<\EOF
+#define HAVE_IDNA_TO_UNICODE_LZLZ 1
+EOF
+
+				echo $ac_n "checking for IDNA_USE_STD3_ASCII_RULES""... $ac_c" 1>&6
+echo "configure:14428: checking for IDNA_USE_STD3_ASCII_RULES" >&5
+				cat > conftest.$ac_ext <<EOF
+#line 14430 "configure"
+#include "confdefs.h"
+#include <idna.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "IDNA_USE_STD3_ASCII_RULES" >/dev/null 2>&1; then
   rm -rf conftest*
-  cf_cv_cpp_expands=no
+  
+					cat >> confdefs.h <<\EOF
+#define HAVE_IDNA_USE_STD3_ASCII_RULES 1
+EOF
+
+					echo "$ac_t""yes" 1>&6
+else
+  rm -rf conftest*
+  echo "$ac_t""no" 1>&6
+				
 fi
 rm -f conftest*
 
+			
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-echo "$ac_t""$cf_cv_cpp_expands" 1>&6
-test $cf_cv_cpp_expands = yes && cat >> confdefs.h <<\EOF
-#define CPP_DOES_EXPAND 1
+		
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+		cat >> confdefs.h <<\EOF
+#define HAVE_LIBIDN 1
 EOF
 
+		LIBS="$LIBS -lidn"
+	
+else
+  echo "$ac_t""no" 1>&6
+fi
+
 
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-echo $ac_n "checking for ansi token concatenation""... $ac_c" 1>&6
-echo "configure:9980: checking for ansi token concatenation" >&5
-if eval "test \"`echo '$''{'cf_cv_cpp_concats'+set}'`\" = set"; then
+
+# 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:14479: 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 9986 "configure"
+else
+  cat > conftest.$ac_ext <<EOF
+#line 14484 "configure"
 #include "confdefs.h"
-
-#define concat(a,b) a ## b
-int main() {
-char *firstlast = "y", *s = concat(first,last)
-; return 0; }
+#include <unicode/unorm.h>
 EOF
-if { (eval echo configure:9994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:14489: \"$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*
-  cf_cv_cpp_concats=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_cpp_concats=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-
 fi
-
-echo "$ac_t""$cf_cv_cpp_concats" 1>&6
-test $cf_cv_cpp_concats = yes && cat >> confdefs.h <<\EOF
-#define CPP_DOES_CONCAT 1
-EOF
-
-
-
-echo $ac_n "checking if nested parameters work""... $ac_c" 1>&6
-echo "configure:10015: checking if nested parameters work" >&5
-if eval "test \"`echo '$''{'cf_cv_nested_params'+set}'`\" = set"; then
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	ac_safe=`echo "unicode/ustring.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for unicode/ustring.h""... $ac_c" 1>&6
+echo "configure:14508: 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 10021 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 14513 "configure"
 #include "confdefs.h"
-
-int main() {
-extern void (*sigdisp(int sig, void (*func)(int sig)))(int sig)
-; return 0; }
+#include <unicode/ustring.h>
 EOF
-if { (eval echo configure:10028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:14518: \"$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*
-  cf_cv_nested_params=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_nested_params=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-
 fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+		cat >> confdefs.h <<\EOF
+#define HAVE_UNICODE_UNORM_H 1
+EOF
 
-echo "$ac_t""$cf_cv_nested_params" 1>&6
-test $cf_cv_nested_params = yes && cat >> confdefs.h <<\EOF
-#define HAVE_NESTED_PARAMS 1
+		cat >> confdefs.h <<\EOF
+#define HAVE_UNICODE_USTRING_H 1
 EOF
 
+		echo $ac_n "checking for unorm_normalize in libicuuc""... $ac_c" 1>&6
+echo "configure:14544: checking for unorm_normalize in libicuuc" >&5
+		cf_save_LIBS="$LIBS"
+		cf_try_icuuc="no"
+		LIBS="$LIBS -licuuc"
+		cat > conftest.$ac_ext <<EOF
+#line 14549 "configure"
+#include "confdefs.h"
+#include <unicode/unorm.h>
+int main() {
 
+			int32_t needed, ustr = NULL;
+ 			UErrorCode status;
+			needed = unorm_normalize(ustr, -1, UNORM_DEFAULT, 0, NULL, 0, &status);
+; return 0; }
+EOF
+if { (eval echo configure:14559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+			cat >> confdefs.h <<\EOF
+#define HAVE_LIBICUUC 1
+EOF
 
+			cf_try_icuuc="yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-###	Checks for header files.
-echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:10051: checking for ANSI C header files" >&5
-if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  LIBS=$cf_save_LIBS
+		
+fi
+rm -rf 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:14578: 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 10056 "configure"
+#line 14583 "configure"
 #include "confdefs.h"
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
+#include <unicode/ubidi.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10064: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:14588: \"$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*
-  ac_cv_header_stdc=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_header_stdc=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-cat > conftest.$ac_ext <<EOF
-#line 10081 "configure"
-#include "confdefs.h"
-#include <string.h>
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+			cat >> confdefs.h <<\EOF
+#define HAVE_UNICODE_UBIDI_H 1
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "memchr" >/dev/null 2>&1; then
-  :
+
+		
 else
-  rm -rf conftest*
-  ac_cv_header_stdc=no
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest*
 
+	
+else
+  echo "$ac_t""no" 1>&6
 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 10099 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "free" >/dev/null 2>&1; then
-  :
+
 else
-  rm -rf conftest*
-  ac_cv_header_stdc=no
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest*
 
-fi
 
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-if test "$cross_compiling" = yes; then
-  :
+if test $use_curses != no ; then
+	cf_cv_termlib=$cf_with_screen
+else
+	
+if eval "test \"`echo '$''{'cf_cv_termlib'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
+  
+cf_cv_termlib=none
+cat > conftest.$ac_ext <<EOF
+#line 14635 "configure"
+#include "confdefs.h"
+
+int main() {
+char *x=(char*)tgoto("",0,0)
+; return 0; }
+EOF
+if { (eval echo configure:14642: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   cat > conftest.$ac_ext <<EOF
-#line 10120 "configure"
+#line 14645 "configure"
 #include "confdefs.h"
-#include <ctype.h>
-#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int main () { int i; for (i = 0; i < 256; i++)
-if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
-exit (0); }
 
+int main() {
+int x=tigetstr("")
+; return 0; }
 EOF
-if { (eval echo configure:10131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-then
-  :
+if { (eval echo configure:14652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_termlib=terminfo
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_header_stdc=no
-fi
-rm -fr conftest*
-fi
 
+  cf_cv_termlib=termcap
 fi
-fi
+rm -rf conftest*
+	test -n "$verbose" && echo "	using functions in predefined $cf_cv_termlib LIBS" 1>&6
+
+echo "${as_me:-configure}:14664: testing using functions in predefined $cf_cv_termlib LIBS ..." 1>&5
 
-echo "$ac_t""$ac_cv_header_stdc" 1>&6
-if test $ac_cv_header_stdc = yes; then
-  cat >> confdefs.h <<\EOF
-#define STDC_HEADERS 1
-EOF
 
-fi
 
-ac_header_dirent=no
-for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
-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:10159: 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 10164 "configure"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  
+
+if test "$cf_cv_termlib" = none; then
+	# FreeBSD's linker gives bogus results for AC_CHECK_LIB, saying that
+	# tgetstr lives in -lcurses when it is only an unsatisfied extern.
+	cf_save_LIBS="$LIBS"
+	for cf_lib in curses ncurses termlib termcap
+	do
+	LIBS="-l$cf_lib $cf_save_LIBS"
+	for cf_func in tigetstr tgetstr
+	do
+		echo $ac_n "checking for $cf_func in -l$cf_lib""... $ac_c" 1>&6
+echo "configure:14684: checking for $cf_func in -l$cf_lib" >&5
+		cat > conftest.$ac_ext <<EOF
+#line 14686 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_hdr>
+
 int main() {
-DIR *dirp = 0;
+int x=$cf_func("")
 ; return 0; }
 EOF
-if { (eval echo configure:10172: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval "ac_cv_header_dirent_$ac_safe=yes"
+if { (eval echo configure:14693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_result=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_dirent_$ac_safe=no"
-fi
-rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_dirent_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- ac_header_dirent=$ac_hdr; break
-else
-  echo "$ac_t""no" 1>&6
+
+  cf_result=no
 fi
-done
-# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
-if test $ac_header_dirent = dirent.h; then
-echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:10197: checking for opendir in -ldir" >&5
-ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
+rm -rf conftest*
+		echo "$ac_t""$cf_result" 1>&6
+		if test "$cf_result" = yes ; then
+			if test "$cf_func" = tigetstr ; then
+				cf_cv_termlib=terminfo
+			else
+				cf_cv_termlib=termcap
+			fi
+			break
+		fi
+	done
+		test "$cf_result" = yes && break
+	done
+	test "$cf_result" = no && LIBS="$cf_save_LIBS"
+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:14720: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-ldir  $LIBS"
+LIBS="-lcurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 10205 "configure"
+#line 14728 "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
     builtin and then its argument prototype would still apply.  */
-char opendir();
+char initscr();
 
 int main() {
-opendir()
+initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:10216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:14739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -ldir"
+  LIBS="-lcurses $LIBS"
 else
   echo "$ac_t""no" 1>&6
 fi
 
-else
-echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:10238: checking for opendir in -lx" >&5
-ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
+	echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
+echo "configure:14760: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-lx  $LIBS"
+LIBS="-ltermcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 10246 "configure"
+#line 14768 "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
     builtin and then its argument prototype would still apply.  */
-char opendir();
+char tgoto();
 
 int main() {
-opendir()
+tgoto()
 ; return 0; }
 EOF
-if { (eval echo configure:10257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:14779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -lx"
+  LIBS="-ltermcap $LIBS" cf_cv_termlib=termcap
 else
   echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:10280: 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 10285 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-int main() {
-struct tm *tp;
-; return 0; }
-EOF
-if { (eval echo configure:10294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_header_time=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_header_time=no
 fi
-rm -f conftest*
+rm -rf conftest*
+if test "$cf_cv_termlib" = none; then
+	echo "configure: warning: Cannot find -ltermlib, -lcurses, or -ltermcap" 1>&2
 fi
 
-echo "$ac_t""$ac_cv_header_time" 1>&6
-if test $ac_cv_header_time = yes; then
-  cat >> confdefs.h <<\EOF
-#define TIME_WITH_SYS_TIME 1
-EOF
-
 fi
 
-echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:10315: 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 10320 "configure"
+	# 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:14812: checking if we should include termcap.h" >&5
+	cf_save_CFLAGS="$CFLAGS"
+	CFLAGS="$CFLAGS -I$srcdir/include"
+	cat > conftest.$ac_ext <<EOF
+#line 14816 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#include <sys/wait.h>
-#ifndef WEXITSTATUS
-#define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
-#endif
-#ifndef WIFEXITED
-#define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
-#endif
+
+#define HAVE_TERMCAP_H 1
+#include <tcurses.h>
 int main() {
-int s;
-wait (&s);
-s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
+
+#ifdef NCURSES_VERSION
+make an error
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:10336: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:14829: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_header_sys_wait_h=yes
+  cf_result=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_header_sys_wait_h=no
+  cf_result=no
 fi
 rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_header_sys_wait_h" 1>&6
-if test $ac_cv_header_sys_wait_h = yes; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_SYS_WAIT_H 1
+	echo "$ac_t""$cf_result" 1>&6
+	CFLAGS="$cf_save_CFLAGS"
+	test $cf_result = yes && cat >> confdefs.h <<\EOF
+#define HAVE_TERMCAP_H 1
 EOF
 
-fi
-
-
-for cf_hdr in \
-	argz.h \
-	arpa/inet.h \
-	curses.h \
-	errno.h \
-	fcntl.h \
-	getopt.h \
-	ioctl.h \
-	langinfo.h \
-	libc.h \
-	locale.h \
-	malloc.h \
-	net/socket.h \
-	netdb.h \
-	netinet/in.h \
-	netlib.h \
-	nl_types.h \
-	nomacros.h \
-	paths.h	\
-	poll.h \
-	prototypes.h \
-	pwd.h \
-	sgtty.h \
-	socket.h \
-	stdarg.h \
-	stdbool.h \
-	stddef.h \
-	stdlib.h \
-	string.h \
-	strings.h \
-	stropts.h \
-	sys/bsdtypes.h \
-	sys/errno.h \
-	sys/file.h \
-	sys/ioctl.h \
-	sys/param.h \
-	sys/poll.h \
-	sys/ptem.h \
-	sys/pty.h \
-	sys/select.h \
-	sys/stat.h \
-	sys/stream.h \
-	sys/socket.h \
-	sys/time.h \
-	sys/timeb.h \
-	sys/times.h \
-	sys/types.h \
-	sys/utsname.h \
-	term.h \
-	termio.h \
-	time.h \
-	unistd.h \
-	varargs.h \
-	wchar.h \
-	wctype.h \
-
-do
-	echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6
-echo "configure:10415: checking for $cf_hdr" >&5
-	cat > conftest.$ac_ext <<EOF
-#line 10417 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-#include <$cf_hdr>
-
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10425: \"$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*
-  cf_found=yes
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_found=no
-fi
-rm -f conftest*
-echo "$ac_t""$cf_found" 1>&6
-if test $cf_found = yes ; then
 	
-cf_tr_hdr=`echo "$cf_hdr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-	cat >> confdefs.h <<EOF
-#define HAVE_${cf_tr_hdr} 1
-EOF
-
-fi
-done
+echo $ac_n "checking for term.h""... $ac_c" 1>&6
+echo "configure:14848: 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
+  
 
+# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
+# for <term.h> if we do not find the variant.
 
-###	Checks that depend on existence-checks for headers
+cf_header_list="term.h ncurses/term.h ncursesw/term.h"
 
-for ac_hdr in \
-termio.h \
-termios.h \
-unistd.h \
+case ${cf_cv_ncurses_header:-curses.h} in #(vi
+*/*)
+	cf_header_item=`echo ${cf_cv_ncurses_header:-curses.h} | sed -e 's%\..*%%' -e 's%/.*%/%'`term.h
+	cf_header_list="$cf_header_item $cf_header_list"
+	;;
+esac
 
+for cf_header in $cf_header_list
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10461: 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 10466 "configure"
+	cat > conftest.$ac_ext <<EOF
+#line 14869 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+
+#include <${cf_cv_ncurses_header:-curses.h}>
+#include <${cf_header}>
+int main() {
+WINDOW *x
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10471: \"$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
+if { (eval echo configure:14878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  cf_cv_term_header=$cf_header
+	 break
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  cf_cv_term_header=no
 fi
 rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
 done
 
-if test "$ISC" = yes ; then
-	for ac_hdr in sys/termio.h 
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:10502: 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 10507 "configure"
+case $cf_cv_term_header in #(vi
+no)
+	# If curses is ncurses, some packagers still mess it up by trying to make
+	# us use GNU termcap.  This handles the most common case.
+	for cf_header in ncurses/term.h ncursesw/term.h
+	do
+		cat > conftest.$ac_ext <<EOF
+#line 14898 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+
+#include <${cf_cv_ncurses_header:-curses.h}>
+#ifdef NCURSES_VERSION
+#include <${cf_header}>
+#else
+make an error
+#endif
+int main() {
+WINDOW *x
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10512: \"$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
+if { (eval echo configure:14911: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  cf_cv_term_header=$cf_header
+			 break
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  cf_cv_term_header=no
 fi
 rm -f conftest*
+	done
+	;;
+esac
+
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+
+echo "$ac_t""$cf_cv_term_header" 1>&6
+
+case $cf_cv_term_header in #(vi
+term.h) #(vi
+	cat >> confdefs.h <<\EOF
+#define HAVE_TERM_H 1
 EOF
- 
+
+	;;
+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 should include curses.h or termcap.h""... $ac_c" 1>&6
+echo "configure:14954: 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
-  echo "$ac_t""no" 1>&6
-fi
-done
+  
+cf_save_CPPFLAGS="$CPPFLAGS"
+cf_cv_need_curses_h=no
 
-fi
-if test "$ac_cv_header_termios_h" = yes ; then
-	case "$CFLAGS $CPPFLAGS" in
-	*-D_POSIX_SOURCE*)
-		termios_bad=dunno ;;
-	*)	termios_bad=maybe ;;
-	esac
-	if test "$termios_bad" = maybe ; then
-	echo $ac_n "checking whether termios.h needs _POSIX_SOURCE""... $ac_c" 1>&6
-echo "configure:10547: checking whether termios.h needs _POSIX_SOURCE" >&5
-	cat > conftest.$ac_ext <<EOF
-#line 10549 "configure"
+for cf_t_opts in "" "NEED_TERMCAP_H"
+do
+for cf_c_opts in "" "NEED_CURSES_H"
+do
+
+    CPPFLAGS="$cf_save_CPPFLAGS $CHECK_DECL_FLAG"
+    test -n "$cf_c_opts" && CPPFLAGS="$CPPFLAGS -D$cf_c_opts"
+    test -n "$cf_t_opts" && CPPFLAGS="$CPPFLAGS -D$cf_t_opts"
+
+    cat > conftest.$ac_ext <<EOF
+#line 14972 "configure"
 #include "confdefs.h"
-#include <termios.h>
+/* $cf_c_opts $cf_t_opts */
+$CHECK_DECL_HDRS
 int main() {
-struct termios foo; int x = foo.c_iflag
+char *x = (char *)tgoto("")
 ; return 0; }
 EOF
-if { (eval echo configure:10556: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  termios_bad=no
+if { (eval echo configure:14980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  test "$cf_cv_need_curses_h" = no && {
+	     cf_cv_need_curses_h=maybe
+	     cf_ok_c_opts=$cf_c_opts
+	     cf_ok_t_opts=$cf_t_opts
+	}
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-		cat > conftest.$ac_ext <<EOF
-#line 10565 "configure"
+
+  echo "Recompiling with corrected call (C:$cf_c_opts, T:$cf_t_opts)" >&5
+	cat > conftest.$ac_ext <<EOF
+#line 14993 "configure"
 #include "confdefs.h"
 
-#define _POSIX_SOURCE
-#include <termios.h>
+$CHECK_DECL_HDRS
 int main() {
-struct termios foo; int x = foo.c_iflag
+char *x = (char *)tgoto("",0,0)
 ; return 0; }
 EOF
-if { (eval echo configure:10574: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  termios_bad=unknown
+if { (eval echo configure:15001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_need_curses_h=yes
+	 cf_ok_c_opts=$cf_c_opts
+	 cf_ok_t_opts=$cf_t_opts
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  termios_bad=yes cat >> confdefs.h <<\EOF
-#define SVR4_TERMIO 1
-EOF
-
 fi
-rm -f conftest*
-			
+rm -rf conftest*
 fi
-rm -f conftest*
-	echo "$ac_t""$termios_bad" 1>&6
+rm -rf conftest*
+
+	CPPFLAGS="$cf_save_CPPFLAGS"
+	test "$cf_cv_need_curses_h" = yes && break
+done
+	test "$cf_cv_need_curses_h" = yes && break
+done
+
+if test "$cf_cv_need_curses_h" != no ; then
+	echo "Curses/termcap test = $cf_cv_need_curses_h (C:$cf_ok_c_opts, T:$cf_ok_t_opts)" >&5
+	if test -n "$cf_ok_c_opts" ; then
+		if test -n "$cf_ok_t_opts" ; then
+			cf_cv_need_curses_h=both
+		else
+			cf_cv_need_curses_h=curses.h
+		fi
+	elif test -n "$cf_ok_t_opts" ; then
+		cf_cv_need_curses_h=termcap.h
+	elif test "$cf_cv_term_header" != no ; then
+		cf_cv_need_curses_h=term.h
+	else
+		cf_cv_need_curses_h=no
 	fi
 fi
 
+fi
+
+echo "$ac_t""$cf_cv_need_curses_h" 1>&6
 
+case $cf_cv_need_curses_h in
+both) #(vi
+	cat >> confdefs.h <<EOF
+#define NEED_CURSES_H 1
+EOF
 
-echo $ac_n "checking declaration of size-change""... $ac_c" 1>&6
-echo "configure:10597: checking declaration of size-change" >&5
-if eval "test \"`echo '$''{'cf_cv_sizechange'+set}'`\" = set"; then
+	cat >> confdefs.h <<EOF
+#define NEED_TERMCAP_H 1
+EOF
+
+	;;
+curses.h) #(vi
+	cat >> confdefs.h <<EOF
+#define NEED_CURSES_H 1
+EOF
+
+	;;
+term.h) #(vi
+	cat >> confdefs.h <<EOF
+#define NEED_TERM_H 1
+EOF
+
+	;;
+termcap.h) #(vi
+	cat >> confdefs.h <<EOF
+#define NEED_TERMCAP_H 1
+EOF
+
+	;;
+esac
+
+
+
+
+
+echo $ac_n "checking declaration of tputs 3rd param""... $ac_c" 1>&6
+echo "configure:15077: 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
   
-    cf_cv_sizechange=unknown
-    cf_save_CPPFLAGS="$CPPFLAGS"
 
-for cf_opts in "" "NEED_PTEM_H"
-do
+cf_cv_type_outchar="int OutChar(int)"
+cf_cv_found=no
+cf_save_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$CPPFLAGS $CHECK_DECL_FLAG"
 
-    CPPFLAGS="$cf_save_CPPFLAGS"
-    test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
-    cat > conftest.$ac_ext <<EOF
-#line 10611 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#ifdef HAVE_TERMIOS_H
-#include <termios.h>
-#else
-#ifdef HAVE_TERMIO_H
-#include <termio.h>
-#endif
-#endif
-#ifdef NEED_PTEM_H
-/* This is a workaround for SCO:  they neglected to define struct winsize in
- * termios.h -- it's only in termio.h and ptem.h
- */
-#include        <sys/stream.h>
-#include        <sys/ptem.h>
-#endif
-#if !defined(sun) || !defined(HAVE_TERMIOS_H)
-#include <sys/ioctl.h>
-#endif
+for P in int void; do
+for Q in int void; do
+for R in int char; do
+for S in "" const; do
+	
+echo "${as_me:-configure}:15093: testing loop variables P:$P, Q:$Q, R:$R, S:$S ..." 1>&5
 
+	cat > conftest.$ac_ext <<EOF
+#line 15096 "configure"
+#include "confdefs.h"
+$CHECK_DECL_HDRS
 int main() {
-
-#ifdef TIOCGSIZE
-	struct ttysize win;	/* FIXME: what system is this? */
-	int y = win.ts_lines;
-	int x = win.ts_cols;
-#else
-#ifdef TIOCGWINSZ
-	struct winsize win;
-	int y = win.ws_row;
-	int x = win.ws_col;
-#else
-	no TIOCGSIZE or TIOCGWINSZ
-#endif /* TIOCGWINSZ */
-#endif /* TIOCGSIZE */
-	
+extern $Q OutChar($R);
+	extern $P tputs ($S char *string, int nlines, $Q (*_f)($R));
+	tputs("", 1, OutChar)
 ; return 0; }
 EOF
-if { (eval echo configure:10650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:15105: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_sizechange=yes
+  cf_cv_type_outchar="$Q OutChar($R)"
+	 cf_cv_found=yes
+	 break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_sizechange=no
 fi
 rm -f conftest*
-
-	CPPFLAGS="$cf_save_CPPFLAGS"
-	if test "$cf_cv_sizechange" = yes ; then
-		echo "size-change succeeded ($cf_opts)" >&5
-		test -n "$cf_opts" && cf_cv_sizechange="$cf_opts"
-		break
-	fi
+done
+	test $cf_cv_found = yes && break
+done
+	test $cf_cv_found = yes && break
+done
+	test $cf_cv_found = yes && break
 done
 
 fi
 
-echo "$ac_t""$cf_cv_sizechange" 1>&6
-if test "$cf_cv_sizechange" != no ; then
+echo "$ac_t""$cf_cv_type_outchar" 1>&6
+
+case $cf_cv_type_outchar in
+int*)
 	cat >> confdefs.h <<\EOF
-#define HAVE_SIZECHANGE 1
+#define OUTC_RETURN 1
 EOF
 
-	case $cf_cv_sizechange in #(vi
-	NEED*)
-		cat >> confdefs.h <<EOF
-#define $cf_cv_sizechange  1
+	;;
+esac
+case $cf_cv_type_outchar in
+*char*)
+	cat >> confdefs.h <<\EOF
+#define OUTC_ARGS char c
 EOF
 
-		;;
-	esac
+	;;
+esac
+
+CPPFLAGS="$cf_save_CPPFLAGS"
+
 fi
 
+cf_tc_funcs=
+cf_tc_externs=
+if test ".$cf_cv_termlib" = .terminfo ; then
+	cat >> confdefs.h <<\EOF
+#define USE_TERMINFO 1
+EOF
 
-echo $ac_n "checking if sys/time.h conflicts with sys/select.h""... $ac_c" 1>&6
-echo "configure:10689: 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
-  
-for cf_opts in no yes
-do
-cat > conftest.$ac_ext <<EOF
-#line 10697 "configure"
+	cf_tc_funcs="tigetint tigetnum tparam tparm"
+	cf_tc_externs="$cf_tc_funcs tgoto tigetstr tputs tigetflag"
+elif test ".$cf_cv_termlib" = .termcap ; then
+	# BSD 'tputs()' may need 'PC' to be set.
+	cat > conftest.$ac_ext <<EOF
+#line 15160 "configure"
 #include "confdefs.h"
 
-#define yes 1
-#define no 0
-#if $cf_opts
-#define timeval fake_timeval
-#endif
-#include <sys/types.h>
-#ifdef TIME_WITH_SYS_TIME
-#	include <sys/time.h>
-#	include <time.h>
-#else
-#	ifdef HAVE_SYS_TIME_H
-#		include <sys/time.h>
-#	else
-#		include <time.h>
-#	endif
-#endif
-#undef timeval
-#ifdef HAVE_SYS_SELECT_H
-#	include <sys/select.h>
-#endif
-
 int main() {
-struct timeval foo
+extern char PC; PC = 0
 ; return 0; }
 EOF
-if { (eval echo configure:10725: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_sys_select_timeval=$cf_opts
-	 break
+if { (eval echo configure:15167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cat >> confdefs.h <<\EOF
+#define HAVE_EXTERN_TCAP_PC 1
+EOF
+
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_sys_select_timeval=no
 fi
-rm -f conftest*
-done
-
+rm -rf conftest*
+	cf_tc_funcs="tgetint tgetnum tparam tparm"
+	cf_tc_externs="$cf_tc_funcs tgoto tgetstr tputs tgetent tgetflag"
 fi
 
-echo "$ac_t""$cf_cv_sys_select_timeval" 1>&6
-test $cf_cv_sys_select_timeval = yes && cat >> confdefs.h <<\EOF
-#define NEED_TIMEVAL_FIX 1
-EOF
-
+###	Checks for external-data
 
 
-###	Checks for Datatypes.
-echo $ac_n "checking for gid_t""... $ac_c" 1>&6
-echo "configure:10749: checking for gid_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_gid_t'+set}'`\" = set"; then
+echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6
+echo "configure:15186: 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 10754 "configure"
+  
+    cat > conftest.$ac_ext <<EOF
+#line 15192 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
+
+#ifdef HAVE_STDLIB_H
 #include <stdlib.h>
-#include <stddef.h>
 #endif
+#include <stdio.h>
+#include <sys/types.h>
+#include <errno.h> 
+int main() {
+int x = (int) errno
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])gid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+if { (eval echo configure:15205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_type_gid_t=yes
+  cf_cv_dcl_errno=yes
 else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_type_gid_t=no
+  cf_cv_dcl_errno=no
 fi
 rm -f conftest*
 
 fi
-echo "$ac_t""$ac_cv_type_gid_t" 1>&6
-if test $ac_cv_type_gid_t = no; then
-  cat >> confdefs.h <<\EOF
-#define gid_t int
+
+echo "$ac_t""$cf_cv_dcl_errno" 1>&6
+
+if test "$cf_cv_dcl_errno" = no ; then
+    
+cf_result=`echo "decl_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+    cat >> confdefs.h <<EOF
+#define $cf_result 1
 EOF
 
 fi
 
-echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:10782: checking for mode_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
+# 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:15233: 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 10787 "configure"
+  
+    cat > conftest.$ac_ext <<EOF
+#line 15239 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
+
+#undef errno
+extern int errno;
+
+int main() {
+errno = 2
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])mode_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_type_mode_t=yes
+if { (eval echo configure:15249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_have_errno=yes
 else
-  rm -rf conftest*
-  ac_cv_type_mode_t=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cf_cv_have_errno=no
 fi
-rm -f conftest*
+rm -rf conftest*
 
 fi
-echo "$ac_t""$ac_cv_type_mode_t" 1>&6
-if test $ac_cv_type_mode_t = no; then
-  cat >> confdefs.h <<\EOF
-#define mode_t int
+
+echo "$ac_t""$cf_cv_have_errno" 1>&6
+
+if test "$cf_cv_have_errno" = yes ; then
+    
+cf_result=`echo "have_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+    cat >> confdefs.h <<EOF
+#define $cf_result 1
 EOF
 
 fi
 
-echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:10815: checking for off_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+
+
+
+
+for ac_func in strerror
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:15281: 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 10820 "configure"
+#line 15286 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
 #endif
+
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_type_off_t=yes
+if { (eval echo configure:15309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
 else
-  rm -rf conftest*
-  ac_cv_type_off_t=no
-fi
-rm -f conftest*
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_func_$ac_func=no"
 fi
-echo "$ac_t""$ac_cv_type_off_t" 1>&6
-if test $ac_cv_type_off_t = no; then
-  cat >> confdefs.h <<\EOF
-#define off_t long
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ cat >> confdefs.h <<\EOF
+#define HAVE_STRERROR 1
 EOF
 
-fi
+else
+  echo "$ac_t""no" 1>&6
 
-echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:10848: checking for pid_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
+    
+echo $ac_n "checking if external sys_nerr is declared""... $ac_c" 1>&6
+echo "configure:15336: 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 10853 "configure"
+  
+    cat > conftest.$ac_ext <<EOF
+#line 15342 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
+
+#ifdef HAVE_STDLIB_H
 #include <stdlib.h>
-#include <stddef.h>
 #endif
+#include <stdio.h>
+#include <sys/types.h>
+#include <errno.h> 
+int main() {
+int x = (int) sys_nerr
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])pid_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+if { (eval echo configure:15355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_type_pid_t=yes
+  cf_cv_dcl_sys_nerr=yes
 else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_type_pid_t=no
+  cf_cv_dcl_sys_nerr=no
 fi
 rm -f conftest*
 
 fi
-echo "$ac_t""$ac_cv_type_pid_t" 1>&6
-if test $ac_cv_type_pid_t = no; then
-  cat >> confdefs.h <<\EOF
-#define pid_t int
+
+echo "$ac_t""$cf_cv_dcl_sys_nerr" 1>&6
+
+if test "$cf_cv_dcl_sys_nerr" = no ; then
+    
+cf_result=`echo "decl_sys_nerr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+    cat >> confdefs.h <<EOF
+#define $cf_result 1
 EOF
 
 fi
 
-echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:10881: checking for size_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+# 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:15383: 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 10886 "configure"
+  
+    cat > conftest.$ac_ext <<EOF
+#line 15389 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
+
+#undef sys_nerr
+extern int sys_nerr;
+
+int main() {
+sys_nerr = 2
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_type_size_t=yes
+if { (eval echo configure:15399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_have_sys_nerr=yes
 else
-  rm -rf conftest*
-  ac_cv_type_size_t=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cf_cv_have_sys_nerr=no
 fi
-rm -f conftest*
+rm -rf conftest*
 
 fi
-echo "$ac_t""$ac_cv_type_size_t" 1>&6
-if test $ac_cv_type_size_t = no; then
-  cat >> confdefs.h <<\EOF
-#define size_t unsigned
+
+echo "$ac_t""$cf_cv_have_sys_nerr" 1>&6
+
+if test "$cf_cv_have_sys_nerr" = yes ; then
+    
+cf_result=`echo "have_sys_nerr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+    cat >> confdefs.h <<EOF
+#define $cf_result 1
 EOF
 
 fi
 
-echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:10914: checking for ssize_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
+
+
+    
+echo $ac_n "checking if external sys_errlist is declared""... $ac_c" 1>&6
+echo "configure:15428: 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 10919 "configure"
+  
+    cat > conftest.$ac_ext <<EOF
+#line 15434 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
+
+#ifdef HAVE_STDLIB_H
 #include <stdlib.h>
-#include <stddef.h>
 #endif
+#include <stdio.h>
+#include <sys/types.h>
+#include <errno.h> 
+int main() {
+int x = (int) sys_errlist
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])ssize_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+if { (eval echo configure:15447: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_type_ssize_t=yes
+  cf_cv_dcl_sys_errlist=yes
 else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_type_ssize_t=no
+  cf_cv_dcl_sys_errlist=no
 fi
 rm -f conftest*
 
 fi
-echo "$ac_t""$ac_cv_type_ssize_t" 1>&6
-if test $ac_cv_type_ssize_t = no; then
-  cat >> confdefs.h <<\EOF
-#define ssize_t int
+
+echo "$ac_t""$cf_cv_dcl_sys_errlist" 1>&6
+
+if test "$cf_cv_dcl_sys_errlist" = no ; then
+    
+cf_result=`echo "decl_sys_errlist" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+    cat >> confdefs.h <<EOF
+#define $cf_result 1
 EOF
 
 fi
 
-echo $ac_n "checking for time_t""... $ac_c" 1>&6
-echo "configure:10947: checking for time_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_time_t'+set}'`\" = set"; then
+# 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:15475: 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 10952 "configure"
+  
+    cat > conftest.$ac_ext <<EOF
+#line 15481 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
+
+#undef sys_errlist
+extern int sys_errlist;
+
+int main() {
+sys_errlist = 2
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])time_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_type_time_t=yes
+if { (eval echo configure:15491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_have_sys_errlist=yes
 else
-  rm -rf conftest*
-  ac_cv_type_time_t=no
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  cf_cv_have_sys_errlist=no
 fi
-rm -f conftest*
+rm -rf conftest*
 
 fi
-echo "$ac_t""$ac_cv_type_time_t" 1>&6
-if test $ac_cv_type_time_t = no; then
-  cat >> confdefs.h <<\EOF
-#define time_t long
+
+echo "$ac_t""$cf_cv_have_sys_errlist" 1>&6
+
+if test "$cf_cv_have_sys_errlist" = yes ; then
+    
+cf_result=`echo "have_sys_errlist" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+    cat >> confdefs.h <<EOF
+#define $cf_result 1
 EOF
 
 fi
 
-cat > conftest.$ac_ext <<EOF
-#line 10980 "configure"
-#include "confdefs.h"
-#include <netinet/in.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "in_addr_t" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  
-	cat > conftest.$ac_ext <<EOF
-#line 10991 "configure"
-#include "confdefs.h"
-#include <sys/endian.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "in_addr_t" >/dev/null 2>&1; then
-  :
-else
-  rm -rf conftest*
-  
-		echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
-echo "configure:11002: checking for in_addr_t" >&5
-if eval "test \"`echo '$''{'ac_cv_type_in_addr_t'+set}'`\" = set"; then
+
+
+
+fi
+done
+
+
+
+###	Checks for library functions.
+for ac_func in \
+	alarm \
+	atoi \
+	atol \
+	bcopy \
+	chmod \
+	closesocket \
+	execlp \
+	fcntl \
+	fdopen \
+	fork \
+	ftime \
+	ftruncate \
+	fsync \
+	getcwd \
+	gettimeofday \
+	getwd \
+	inet_aton \
+	is_xterm \
+	isascii \
+	lockf \
+	memcmp \
+	memcpy \
+	memmove \
+	memset \
+	mkdir \
+	mkfifo \
+	mktemp \
+	mkstemp \
+	nl_langinfo \
+	poll \
+	putenv \
+	rewinddir \
+	resizeterm \
+	select \
+	setenv \
+	setlocale \
+	settz \
+	sigaction \
+	snprintf \
+	stpcpy \
+	strchr \
+	strcasecmp \
+	strcasestr \
+	strdup \
+	strftime \
+	strpbrk \
+	strrchr \
+	strrstr \
+	strsep \
+	strstr \
+	strtol \
+	tmpfile \
+	tzset \
+	uname \
+	unlink \
+	use_default_colors \
+	usleep \
+	vasprintf \
+	vsnprintf \
+	waitpid \
+$cf_tc_funcs 
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:15589: 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 11007 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
+#line 15594 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
 #endif
+
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "(^|[^a-zA-Z_0-9])in_addr_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_type_in_addr_t=yes
+if { (eval echo configure:15617: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
 else
-  rm -rf conftest*
-  ac_cv_type_in_addr_t=no
-fi
-rm -f conftest*
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_func_$ac_func=no"
 fi
-echo "$ac_t""$ac_cv_type_in_addr_t" 1>&6
-if test $ac_cv_type_in_addr_t = no; then
-  cat >> confdefs.h <<\EOF
-#define in_addr_t unsigned long
-EOF
-
+rm -rf conftest*
 fi
 
-	
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest*
-
+done
 
-fi
-rm -f conftest*
 
-echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:11043: checking for uid_t in sys/types.h" >&5
-if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
+echo $ac_n "checking for flock""... $ac_c" 1>&6
+echo "configure:15643: 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 11048 "configure"
+#line 15648 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char flock(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char flock();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_flock) || defined (__stub___flock)
+choke me
+#else
+flock();
+#endif
+
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "uid_t" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_type_uid_t=yes
+if { (eval echo configure:15671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_flock=yes"
 else
-  rm -rf conftest*
-  ac_cv_type_uid_t=no
-fi
-rm -f conftest*
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_func_flock=no"
+fi
+rm -rf conftest*
 fi
 
-echo "$ac_t""$ac_cv_type_uid_t" 1>&6
-if test $ac_cv_type_uid_t = no; then
-  cat >> confdefs.h <<\EOF
-#define uid_t int
-EOF
-
+if eval "test \"`echo '$ac_cv_func_'flock`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
   cat >> confdefs.h <<\EOF
-#define gid_t int
+#define HAVE_FLOCK 1
 EOF
 
-fi
-
+else
+  echo "$ac_t""no" 1>&6
 
-echo $ac_n "checking for quad_t""... $ac_c" 1>&6
-echo "configure:11078: checking for quad_t" >&5
+	echo $ac_n "checking for flock in -lbsd""... $ac_c" 1>&6
+echo "configure:15693: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lbsd  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 11080 "configure"
+#line 15701 "configure"
 #include "confdefs.h"
-
-#include <sys/types.h>
-#if 0
-#include <stdlib.h>
-#include <stddef.h>
-#endif /* 0 */
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char flock();
 
 int main() {
-quad_t x; x = 0
+flock()
 ; return 0; }
 EOF
-if { (eval echo configure:11093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_quad_t=yes
+if { (eval echo configure:15712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_quad_t=no
-fi
-rm -f conftest*
-echo "$ac_t""$ac_cv_quad_t" 1>&6
-if test $ac_cv_quad_t = yes; then
-	cat >> confdefs.h <<\EOF
-#define HAVE_QUAD_T 1
-EOF
 
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-echo $ac_n "checking for long long""... $ac_c" 1>&6
-echo "configure:11112: checking for long long" >&5
-cat > conftest.$ac_ext <<EOF
-#line 11114 "configure"
-#include "confdefs.h"
-
-#include <sys/types.h>
-
-int main() {
-long long x; x = 0
-; return 0; }
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_FLOCK 1
 EOF
-if { (eval echo configure:11123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_long_long=yes
+
+		LIBS="$LIBS -lbsd"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_long_long=no
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest*
-echo "$ac_t""$ac_cv_long_long" 1>&6
-if test $ac_cv_long_long = yes; then
-	cat >> confdefs.h <<\EOF
-#define HAVE_LONG_LONG 1
-EOF
 
 fi
 
-echo $ac_n "checking for nl_item""... $ac_c" 1>&6
-echo "configure:11142: checking for nl_item" >&5
-cat > conftest.$ac_ext <<EOF
-#line 11144 "configure"
-#include "confdefs.h"
 
-#ifdef HAVE_LANGINFO_H
-#include <langinfo.h>
-#else
-#ifdef HAVE_NL_TYPES_H
-#include <nl_types.h>
-#endif
-#endif
+
+  echo $ac_n "checking for wide char and multibyte support""... $ac_c" 1>&6
+echo "configure:15741: 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 15746 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+#ifdef HAVE_STDLIB_H
+#	include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+#ifdef HAVE_WCHAR_H
+#	include <wchar.h>
+#endif /* HAVE_WCHAR_H */
+#ifdef HAVE_WCTYPE_H
+#	include <wctype.h>
+#endif /* HAVE_WCTYPE_H */
 
 int main() {
-nl_item x; x = 0
+const char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
+      char ocb[5];
+      wchar_t wcb[5];
+      wchar_t wcb2[5];
+      wchar_t format[3];
+
+      putwc(0, 0);
+      fputwc(0, 0);
+      fwide(0, 0);
+      mbtowc(wcb, icb, MB_CUR_MAX);
+      mbstowcs(wcb, icb, 5);
+      (void) iswalnum((wint_t) wcb[0]);
+      (void) iswcntrl((wint_t) wcb[0]);
+      (void) iswdigit((wint_t) wcb[0]);
+      (void) iswgraph((wint_t) wcb[0]);
+      (void) iswprint((wint_t) wcb[0]);
+      (void) iswspace((wint_t) wcb[0]);
+      (void) towupper((wint_t) wcb[0]);
+      /* (void) iswupper((wint_t) wcb[0]); */
+      /* (void) towlower((wint_t) wcb[0]); */
+      /* (void) iswlower((wint_t) wcb[0]); */
+      /* (void) iswalpha((wint_t) wcb[0]); */
+      /* (void) iswblank((wint_t) wcb[0]); */
+      /* (void) iswpunct((wint_t) wcb[0]); */
+      /* (void) iswxdigit((wint_t) wcb[0]); */
+      /* (void) iswctype((wint_t) wcb[0], wctype("print")); */
+      /* (void) towctranse((wint_t) wcb[0], wctrans("toupper")); */
+      (void) wcslen(wcb);
+      /* (void) wcsnlen(wcb, 4); */
+      wcwidth((wint_t) wcb[0]);
+      wcswidth(wcb, 5);
+      wcstombs(ocb, wcb, 5);
+      wctomb(ocb, wcb[0]);
+      wcscat(wcb2, wcb);
+      wcscpy(wcb2, wcb);
+      mbstowcs(format, "%s", 2);
+      swprintf(wcb, 5, format, "test");
+      wcsncat(wcb2, wcb, 5);
 ; return 0; }
 EOF
-if { (eval echo configure:11159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_nl_item=yes
+if { (eval echo configure:15800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  am_cv_multibyte_able=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_nl_item=no
-fi
-rm -f conftest*
-echo "$ac_t""$ac_cv_nl_item" 1>&6
-if test $ac_cv_nl_item = yes; then
-        cat >> confdefs.h <<\EOF
-#define HAVE_NL_ITEM 1
-EOF
-
-fi
 
-###	Checks for libraries.
-# 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:11181: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-luu  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 11189 "configure"
+  cf_save_LIBS="$LIBS"
+      LIBS="-lutf8 $LIBS"
+      cat > conftest.$ac_ext <<EOF
+#line 15810 "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
-    builtin and then its argument prototype would still apply.  */
-char UUInitialize();
-
+#include <libutf8.h>
 int main() {
-UUInitialize()
+const char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
+        char ocb[5];
+        wchar_t wcb[5];
+        wchar_t wcb2[5];
+        wchar_t format[3];
+
+        putwc(0, 0);
+        fputwc(0, 0);
+        fwide(0, 0);
+        mbtowc(wcb, icb, MB_CUR_MAX);
+        mbstowcs(wcb, icb, 5);
+        (void) iswalnum((wint_t) wcb[0]);
+        (void) iswcntrl((wint_t) wcb[0]);
+        (void) iswdigit((wint_t) wcb[0]);
+        (void) iswgraph((wint_t) wcb[0]);
+        (void) iswprint((wint_t) wcb[0]);
+        (void) iswspace((wint_t) wcb[0]);
+        (void) towupper((wint_t) wcb[0]);
+        /* (void) iswupper((wint_t) wcb[0]); */
+        /* (void) towlower((wint_t) wcb[0]); */
+        /* (void) iswlower((wint_t) wcb[0]); */
+        /* (void) iswalpha((wint_t) wcb[0]); */
+        /* (void) iswblank((wint_t) wcb[0]); */
+        /* (void) iswpunct((wint_t) wcb[0]); */
+        /* (void) iswxdigit((wint_t) wcb[0]); */
+        /* (void) iswctype((wint_t) wcb[0], wctype("print")); */
+        /* (void) towctranse((wint_t) wcb[0], wctrans("toupper")); */
+        (void) wcslen(wcb);
+        /* (void) wcsnlen(wcb, 4); */
+        wcwidth((wint_t) wcb[0]);
+        wcswidth(wcb, 5);
+        wcstombs(ocb, wcb, 5);
+        wctomb(ocb, wcb[0]);
+        wcscat(wcb2, wcb);
+        wcscpy(wcb2, wcb);
+        mbstowcs(format, "%s", 2);
+        swprintf(wcb, 5, format, "test");
+        wcsncat(wcb2, wcb, 5);
 ; return 0; }
 EOF
-if { (eval echo configure:11200: \"$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"
+if { (eval echo configure:15854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  am_cv_multibyte_able=libutf8
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+  am_cv_multibyte_able=no
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  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:11217: 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 11222 "configure"
-#include "confdefs.h"
-#include <uudeview.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11227: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+rm -rf conftest*
+      LIBS="$cf_save_LIBS"
+   
 fi
-rm -f conftest*
+rm -rf conftest*
+  
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_LIBUU 1
-EOF
 
-		cat >> confdefs.h <<\EOF
-#define HAVE_UUDEVIEW_H 1
+echo "$ac_t""$am_cv_multibyte_able" 1>&6
+  if test "$am_cv_multibyte_able" != no; then
+    if test "$am_cv_multibyte_able" = libutf8; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_LIBUTF8_H 1
 EOF
 
-		LIBS="$LIBS -luu"
-	
-else
-  echo "$ac_t""no" 1>&6
-fi
-
+      LIBS="-lutf8 $LIBS"
+    fi
+    cat >> confdefs.h <<\EOF
+#define MULTIBYTE_ABLE 1
+EOF
 
-else
-  echo "$ac_t""no" 1>&6
-fi
+  fi
 
 
-# libidn - Internationalized Domain Names
-echo $ac_n "checking for stringprep_check_version in -lidn""... $ac_c" 1>&6
-echo "configure:11265: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lidn  $LIBS"
+echo $ac_n "checking if gettimeofday takes two arguments""... $ac_c" 1>&6
+echo "configure:15888: checking if gettimeofday takes two arguments" >&5
 cat > conftest.$ac_ext <<EOF
-#line 11273 "configure"
+#line 15890 "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
-    builtin and then its argument prototype would still apply.  */
-char stringprep_check_version();
 
+#if HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
 int main() {
-stringprep_check_version()
+struct timeval *tv;
+struct timezone *tz;
+gettimeofday(&tv, &tz);
 ; return 0; }
 EOF
-if { (eval echo configure:11284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15902: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  ac_cv_func_gettimeofday_2args=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  ac_cv_func_gettimeofday_2args=no
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
+echo "$ac_t""$ac_cv_func_gettimeofday_2args" 1>&6
+if test $ac_cv_func_gettimeofday_2args = yes; then
+	cat >> confdefs.h <<\EOF
+#define GETTIMEOFDAY_2ARGS 1
+EOF
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  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:11301: checking for stringprep.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+
+echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
+echo "configure:15921: 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 11306 "configure"
+#line 15926 "configure"
 #include "confdefs.h"
-#include <stringprep.h>
+#include <sys/types.h>
+#include <signal.h>
+#ifdef signal
+#undef signal
+#endif
+#ifdef __cplusplus
+extern "C" void (*signal (int, void (*)(int)))(int);
+#else
+void (*signal ()) ();
+#endif
+
+int main() {
+int i;
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11311: \"$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
+if { (eval echo configure:15943: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  ac_cv_type_signal=void
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  ac_cv_type_signal=int
 fi
 rm -f conftest*
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-		cat >> confdefs.h <<\EOF
-#define HAVE_STRINGPREP_H 1
+
+echo "$ac_t""$ac_cv_type_signal" 1>&6
+cat >> confdefs.h <<EOF
+#define RETSIGTYPE $ac_cv_type_signal
 EOF
 
-		ac_safe=`echo "idna.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for idna.h""... $ac_c" 1>&6
-echo "configure:11334: checking for idna.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+
+
+echo $ac_n "checking declaration of signal arguments""... $ac_c" 1>&6
+echo "configure:15963: 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
-  cat > conftest.$ac_ext <<EOF
-#line 11339 "configure"
+  
+cf_cv_sig_args=
+for cf_test in "int sig" "int sig, ..."
+do
+	cat > conftest.$ac_ext <<EOF
+#line 15972 "configure"
 #include "confdefs.h"
-#include <idna.h>
+
+#include <signal.h>
+int main() {
+extern RETSIGTYPE catch($cf_test); signal(SIGINT, catch)
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11344: \"$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
+if { (eval echo configure:15980: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  cf_cv_sig_args="$cf_test";break
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
+done
+
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-			cat >> confdefs.h <<\EOF
-#define HAVE_IDNA_H 1
+
+echo "$ac_t""$cf_cv_sig_args" 1>&6
+cat >> confdefs.h <<EOF
+#define SIG_ARGS $cf_cv_sig_args
 EOF
 
-			echo $ac_n "checking for idna_to_unicode_lzlz in -lidn""... $ac_c" 1>&6
-echo "configure:11366: 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
+
+
+
+
+
+
+if test "$ac_cv_func_sigaction" = yes; then
+
+echo $ac_n "checking whether sigaction needs _POSIX_SOURCE""... $ac_c" 1>&6
+echo "configure:16006: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-lidn  $LIBS"
+  
 cat > conftest.$ac_ext <<EOF
-#line 11374 "configure"
+#line 16012 "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
-    builtin and then its argument prototype would still apply.  */
-char idna_to_unicode_lzlz();
 
+#include <sys/types.h>
+#include <signal.h>
 int main() {
-idna_to_unicode_lzlz()
+struct sigaction act
 ; return 0; }
 EOF
-if { (eval echo configure:11385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  cf_cv_sigact_bad=no
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  cf_cv_sigact_bad=yes
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
 
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-				cat >> confdefs.h <<\EOF
-#define HAVE_IDNA_TO_UNICODE_LZLZ 1
+
+echo "$ac_t""$cf_cv_sigact_bad" 1>&6
+
+test "$cf_cv_sigact_bad" = yes && cat >> confdefs.h <<\EOF
+#define SVR4_ACTION 1
 EOF
 
-				echo $ac_n "checking for IDNA_USE_STD3_ASCII_RULES""... $ac_c" 1>&6
-echo "configure:11406: checking for IDNA_USE_STD3_ASCII_RULES" >&5
-				cat > conftest.$ac_ext <<EOF
-#line 11408 "configure"
+
+echo $ac_n "checking if we have sigaction/related functions""... $ac_c" 1>&6
+echo "configure:16042: 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 16048 "configure"
 #include "confdefs.h"
-#include <idna.h>
+
+#ifdef SVR4_ACTION
+#define _POSIX_SOURCE
+#endif
+#include <sys/types.h>
+#include <signal.h>
+int main() {
+
+    RETSIGTYPE (*func)(SIG_ARGS) = SIG_IGN;
+    struct sigaction sa, osa;
+    sa.sa_handler = func;
+    sa.sa_flags = 0;
+    sigemptyset (&sa.sa_mask);
+    sigaction (SIGBUS,&sa,&osa);
+; return 0; }
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "IDNA_USE_STD3_ASCII_RULES" >/dev/null 2>&1; then
-  rm -rf conftest*
+if { (eval echo configure:16066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-					cat >> confdefs.h <<\EOF
-#define HAVE_IDNA_USE_STD3_ASCII_RULES 1
-EOF
+  cf_cv_sigaction_funcs=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-					echo "$ac_t""yes" 1>&6
-else
-  rm -rf conftest*
-  echo "$ac_t""no" 1>&6
-				
+  cf_cv_sigaction_funcs=no
 fi
-rm -f conftest*
-
-			
-else
-  echo "$ac_t""no" 1>&6
+rm -rf conftest*
 fi
 
-		
-else
-  echo "$ac_t""no" 1>&6
-fi
+echo "$ac_t""$cf_cv_sigaction_funcs" 1>&6
 
-		cat >> confdefs.h <<\EOF
-#define HAVE_LIBIDN 1
+test "$cf_cv_sigaction_funcs" = yes && cat >> confdefs.h <<\EOF
+#define HAVE_POSIX_JC 1
 EOF
 
-		LIBS="$LIBS -lidn"
-	
-else
-  echo "$ac_t""no" 1>&6
-fi
-
 
-else
-  echo "$ac_t""no" 1>&6
 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:11457: checking for unicode/unorm.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+echo $ac_n "checking for fork""... $ac_c" 1>&6
+echo "configure:16088: checking for fork" >&5
+if eval "test \"`echo '$''{'cf_cv_func_fork'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
+  
+if test "$cross_compiling" = yes; then
+  cf_cv_func_fork=unknown
+else
   cat > conftest.$ac_ext <<EOF
-#line 11462 "configure"
+#line 16097 "configure"
 #include "confdefs.h"
-#include <unicode/unorm.h>
+
+int main()
+{
+	if (fork() < 0)
+		${cf_cv_main_return:-return}(1);
+	${cf_cv_main_return:-return}(0);
+}
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11467: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:16107: \"$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
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  rm -fr conftest*
+  cf_cv_func_fork=no
 fi
-rm -f conftest*
+rm -fr conftest*
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-	ac_safe=`echo "unicode/ustring.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for unicode/ustring.h""... $ac_c" 1>&6
-echo "configure:11486: checking for unicode/ustring.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+
+
+fi
+echo "$ac_t""$cf_cv_func_fork" 1>&6
+test $cf_cv_func_fork = yes && cat >> confdefs.h <<\EOF
+#define HAVE_FORK 1
+EOF
+
+
+
+echo $ac_n "checking for memmove""... $ac_c" 1>&6
+echo "configure:16129: 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 11491 "configure"
+#line 16134 "configure"
 #include "confdefs.h"
-#include <unicode/ustring.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char memmove(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char memmove();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_memmove) || defined (__stub___memmove)
+choke me
+#else
+memmove();
+#endif
+
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11496: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:16157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_memmove=yes"
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+
+  eval "ac_cv_func_memmove=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-		cat >> confdefs.h <<\EOF
-#define HAVE_UNICODE_UNORM_H 1
-EOF
 
-		cat >> confdefs.h <<\EOF
-#define HAVE_UNICODE_USTRING_H 1
-EOF
+if eval "test \"`echo '$ac_cv_func_'memmove`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
 
-		echo $ac_n "checking for unorm_normalize in libicuuc""... $ac_c" 1>&6
-echo "configure:11522: checking for unorm_normalize in libicuuc" >&5
-		cf_save_LIBS="$LIBS"
-		cf_try_icuuc="no"
-		LIBS="$LIBS -licuuc"
-		cat > conftest.$ac_ext <<EOF
-#line 11527 "configure"
+echo $ac_n "checking for bcopy""... $ac_c" 1>&6
+echo "configure:16176: 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 16181 "configure"
 #include "confdefs.h"
-#include <unicode/unorm.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char bcopy(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char bcopy();
+
 int main() {
 
-			int32_t needed, ustr = NULL;
- 			UErrorCode status;
-			needed = unorm_normalize(ustr, -1, UNORM_DEFAULT, 0, NULL, 0, &status);
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_bcopy) || defined (__stub___bcopy)
+choke me
+#else
+bcopy();
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:11537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:16204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-			cat >> confdefs.h <<\EOF
-#define HAVE_LIBICUUC 1
-EOF
-
-			cf_try_icuuc="yes"
+  eval "ac_cv_func_bcopy=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  LIBS=$cf_save_LIBS
-		
+
+  eval "ac_cv_func_bcopy=no"
 fi
-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:11556: checking for unicode/ubidi.h" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'bcopy`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  
+	echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
+echo "configure:16220: 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
+  
+		if test "$cross_compiling" = yes; then
+  cf_cv_good_bcopy=unknown
+else
   cat > conftest.$ac_ext <<EOF
-#line 11561 "configure"
+#line 16229 "configure"
 #include "confdefs.h"
-#include <unicode/ubidi.h>
+
+int main() {
+	static char data[] = "abcdefghijklmnopqrstuwwxyz";
+	char temp[40];
+	bcopy(data, temp, sizeof(data));
+	bcopy(temp+10, temp, 15);
+	bcopy(temp+5, temp+15, 10);
+	${cf_cv_main_return:-return} (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
+}
+		
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11566: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:16242: \"$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
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  rm -fr conftest*
+  cf_cv_good_bcopy=no
 fi
-rm -f conftest*
+rm -fr conftest*
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-			cat >> confdefs.h <<\EOF
-#define HAVE_UNICODE_UBIDI_H 1
-EOF
 
 		
-else
-  echo "$ac_t""no" 1>&6
 fi
 
+echo "$ac_t""$cf_cv_good_bcopy" 1>&6
 	
 else
   echo "$ac_t""no" 1>&6
+cf_cv_good_bcopy=no
 fi
 
+	if test "$cf_cv_good_bcopy" = yes ; then
+		cat >> confdefs.h <<\EOF
+#define USE_OK_BCOPY 1
+EOF
+
+	else
+		cat >> confdefs.h <<\EOF
+#define USE_MY_MEMMOVE 1
+EOF
+
+	fi
 
-else
-  echo "$ac_t""no" 1>&6
 fi
 
 
-if test $use_curses != no ; then
-	cf_cv_termlib=$cf_with_screen
-else
-	
-if eval "test \"`echo '$''{'cf_cv_termlib'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  
-cf_cv_termlib=none
+echo $ac_n "checking if select expects int * arguments""... $ac_c" 1>&6
+echo "configure:16280: checking if select expects int * arguments" >&5
 cat > conftest.$ac_ext <<EOF
-#line 11613 "configure"
+#line 16282 "configure"
 #include "confdefs.h"
-
-int main() {
-char *x=(char*)tgoto("",0,0)
-; return 0; }
+#include <time.h>
 EOF
-if { (eval echo configure:11620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "select\(.*, *int *\*," >/dev/null 2>&1; then
   rm -rf conftest*
-  cat > conftest.$ac_ext <<EOF
-#line 11623 "configure"
-#include "confdefs.h"
-
-int main() {
-int x=tigetstr("")
-; return 0; }
+  cat >> confdefs.h <<\EOF
+#define HAVE_SELECT_INTP 1
 EOF
-if { (eval echo configure:11630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_cv_termlib=terminfo
+ echo "$ac_t""yes" 1>&6
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_termlib=termcap
+  echo "$ac_t""no" 1>&6
+
 fi
 rm -f conftest*
-	test -n "$verbose" && echo "	using functions in predefined $cf_cv_termlib LIBS" 1>&6
 
 
+echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6
+echo "configure:16302: 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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  
-
-if test "$cf_cv_termlib" = none; then
-	# FreeBSD's linker gives bogus results for AC_CHECK_LIB, saying that
-	# tgetstr lives in -lcurses when it is only an unsatisfied extern.
-	cf_save_LIBS="$LIBS"
-	for cf_lib in curses ncurses termlib termcap
-	do
-	LIBS="-l$cf_lib $cf_save_LIBS"
-	for cf_func in tigetstr tgetstr
-	do
-		echo $ac_n "checking for $cf_func in -l$cf_lib""... $ac_c" 1>&6
-echo "configure:11659: checking for $cf_func in -l$cf_lib" >&5
-		cat > conftest.$ac_ext <<EOF
-#line 11661 "configure"
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_closedir_void=yes
+else
+  cat > conftest.$ac_ext <<EOF
+#line 16310 "configure"
 #include "confdefs.h"
-
-int main() {
-int x=$cf_func("")
-; return 0; }
+#include <sys/types.h>
+#include <$ac_header_dirent>
+int closedir(); main() { exit(closedir(opendir(".")) != 0); }
 EOF
-if { (eval echo configure:11668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_result=yes
+if { (eval echo configure:16316: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_result=no
+  rm -fr conftest*
+  ac_cv_func_closedir_void=yes
 fi
-rm -f conftest*
-		echo "$ac_t""$cf_result" 1>&6
-		if test "$cf_result" = yes ; then
-			if test "$cf_func" = tigetstr ; then
-				cf_cv_termlib=terminfo
-			else
-				cf_cv_termlib=termcap
-			fi
-			break
-		fi
-	done
-		test "$cf_result" = yes && break
-	done
-	test "$cf_result" = no && LIBS="$cf_save_LIBS"
+rm -fr conftest*
 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:11695: 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
+
+fi
+
+echo "$ac_t""$ac_cv_func_closedir_void" 1>&6
+if test $ac_cv_func_closedir_void = yes; then
+  cat >> confdefs.h <<\EOF
+#define CLOSEDIR_VOID 1
+EOF
+
+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:16342: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-lcurses  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 11703 "configure"
+  if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 16350 "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
-    builtin and then its argument prototype would still apply.  */
-char initscr();
-
-int main() {
-initscr()
-; return 0; }
+#include <stdio.h>
+/* If setvbuf has the reversed format, exit 0. */
+main () {
+  /* This call has the arguments reversed.
+     A reversed system may check and see that the address of main
+     is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
+  if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
+    exit(1);
+  putc('\r', stdout);
+  exit(0);			/* Non-reversed systems segv here.  */
+}
 EOF
-if { (eval echo configure:11714: \"$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"
+if { (eval echo configure:16364: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  rm -fr conftest*
+  ac_cv_func_setvbuf_reversed=no
+fi
+rm -fr conftest*
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+rm -f core core.* *.core
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -lcurses" cf_cv_termlib=termcap
-else
-  echo "$ac_t""no" 1>&6
+
+echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6
+if test $ac_cv_func_setvbuf_reversed = yes; then
+  cat >> confdefs.h <<\EOF
+#define SETVBUF_REVERSED 1
+EOF
+
 fi
 
-	echo $ac_n "checking for tgoto in -ltermcap""... $ac_c" 1>&6
-echo "configure:11735: 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
+fi
+
+###	Checks for network library functions.
+for ac_func in \
+	gai_strerror \
+	getaddrinfo \
+	gethostname \
+	gethostbyname \
+	getservbyname \
+	inet_addr \
+	inet_ntoa \
+	strncasecmp \
+
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:16402: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-ltermcap  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 11743 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 16407 "configure"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char tgoto();
+char $ac_func();
 
 int main() {
-tgoto()
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:11754: \"$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"
+if { (eval echo configure:16430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+  eval "ac_cv_func_$ac_func=no"
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+rm -rf conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  LIBS="$LIBS -ltermcap" cf_cv_termlib=termcap
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
 else
   echo "$ac_t""no" 1>&6
 fi
+done
 
-fi
-
-fi
-rm -f conftest*
-if test "$cf_cv_termlib" = none; then
-	echo "configure: warning: Cannot find -ltermlib, -lcurses, or -ltermcap" 1>&2
-fi
 
-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:11787: checking if we should include termcap.h" >&5
-	cf_save_CFLAGS="$CFLAGS"
-	CFLAGS="$CFLAGS -I$srcdir/include"
+echo $ac_n "checking for type sigaction_t""... $ac_c" 1>&6
+echo "configure:16457: 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 11791 "configure"
+#line 16463 "configure"
 #include "confdefs.h"
 
-#define HAVE_TERMCAP_H 1
-#include <tcurses.h>
+#include <signal.h>
 int main() {
-
-#ifdef NCURSES_VERSION
-make an error
-#endif
-
+sigaction_t x
 ; return 0; }
 EOF
-if { (eval echo configure:11804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16471: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_result=yes
+  cf_cv_type_sigaction=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_result=no
+  cf_cv_type_sigaction=no
 fi
 rm -f conftest*
-	echo "$ac_t""$cf_result" 1>&6
-	CFLAGS="$cf_save_CFLAGS"
-	test $cf_result = yes && cat >> confdefs.h <<\EOF
-#define HAVE_TERMCAP_H 1
+fi
+
+echo "$ac_t""$cf_cv_type_sigaction" 1>&6
+test "$cf_cv_type_sigaction" = yes && cat >> confdefs.h <<\EOF
+#define HAVE_TYPE_SIGACTION 1
 EOF
 
-	
-echo $ac_n "checking for term.h""... $ac_c" 1>&6
-echo "configure:11822: checking for term.h" >&5
-if eval "test \"`echo '$''{'cf_cv_term_header'+set}'`\" = set"; then
+
+
+echo $ac_n "checking for nonconflicting termios.h""... $ac_c" 1>&6
+echo "configure:16491: 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
   
-
-# If we found <ncurses/curses.h>, look for <ncurses/term.h>, but always look
-# for <term.h> if we do not find the variant.
-for cf_header in \
-	`echo ${cf_cv_ncurses_header-curses.h} | sed -e 's%/.*%/%'`term.h \
-	term.h
-do
 	cat > conftest.$ac_ext <<EOF
-#line 11835 "configure"
+#line 16497 "configure"
 #include "confdefs.h"
 
-#include <${cf_cv_ncurses_header-curses.h}>
-#include <${cf_header}>
+#ifdef HAVE_IOCTL_H
+#	include <ioctl.h>
+#else
+#	ifdef HAVE_SYS_IOCTL_H
+#		include <sys/ioctl.h>
+#	endif
+#endif
+
+#if !defined(sun) || !defined(NL0)
+#include <termios.h>
+#endif
+
 int main() {
-WINDOW *x
+
+	struct termios save_tty;
+	(void) tcsetattr (0, TCSANOW, &save_tty);
+	(void) tcgetattr (0, &save_tty)
 ; return 0; }
 EOF
-if { (eval echo configure:11844: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_term_header=$cf_header
-	 break
+if { (eval echo configure:16519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_use_termios_h=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_term_header=no
-fi
-rm -f conftest*
-done
 
+  cf_cv_use_termios_h=no
 fi
+rm -rf conftest*
 
-echo "$ac_t""$cf_cv_term_header" 1>&6
+fi
 
-case $cf_cv_term_header in #(vi
-term.h) #(vi
+echo "$ac_t""$cf_cv_use_termios_h" 1>&6
+if test $cf_cv_use_termios_h = yes; then
 	cat >> confdefs.h <<\EOF
-#define HAVE_TERM_H 1
+#define HAVE_TERMIOS_H 1
 EOF
 
-	;;
-ncurses/term.h)
 	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSES_TERM_H 1
+#define HAVE_TCGETATTR 1
 EOF
 
-	;;
-ncursesw/term.h)
 	cat >> confdefs.h <<\EOF
-#define HAVE_NCURSESW_TERM_H 1
+#define HAVE_TCSETATTR 1
 EOF
 
-	;;
-esac
-
+fi
 
 
-echo $ac_n "checking if we should include curses.h or termcap.h""... $ac_c" 1>&6
-echo "configure:11885: 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 "checking for passwd.pw_gecos""... $ac_c" 1>&6
+echo "configure:16550: 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
   
-cf_save_CPPFLAGS="$CPPFLAGS"
-cf_cv_need_curses_h=no
-
-for cf_t_opts in "" "NEED_TERMCAP_H"
-do
-for cf_c_opts in "" "NEED_CURSES_H"
-do
-
-    CPPFLAGS="$cf_save_CPPFLAGS $CHECK_DECL_FLAG"
-    test -n "$cf_c_opts" && CPPFLAGS="$CPPFLAGS -D$cf_c_opts"
-    test -n "$cf_t_opts" && CPPFLAGS="$CPPFLAGS -D$cf_t_opts"
-
-    cat > conftest.$ac_ext <<EOF
-#line 11903 "configure"
-#include "confdefs.h"
-/* $cf_c_opts $cf_t_opts */
-$CHECK_DECL_HDRS
-int main() {
-char *x = (char *)tgoto("")
-; return 0; }
-EOF
-if { (eval echo configure:11911: \"$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
-	     cf_ok_c_opts=$cf_c_opts
-	     cf_ok_t_opts=$cf_t_opts
-	}
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  echo "Recompiling with corrected call (C:$cf_c_opts, T:$cf_t_opts)" >&5
 	cat > conftest.$ac_ext <<EOF
-#line 11924 "configure"
+#line 16556 "configure"
 #include "confdefs.h"
 
-$CHECK_DECL_HDRS
+#include <pwd.h>
+
 int main() {
-char *x = (char *)tgoto("",0,0)
+
+	struct passwd foo;
+	char bar = foo.pw_gecos
 ; return 0; }
 EOF
-if { (eval echo configure:11932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16567: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_need_curses_h=yes
-	 cf_ok_c_opts=$cf_c_opts
-	 cf_ok_t_opts=$cf_t_opts
+  cf_cv_pw_gecos=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_pw_gecos=no
 fi
 rm -f conftest*
 fi
-rm -f conftest*
-
-	CPPFLAGS="$cf_save_CPPFLAGS"
-	test "$cf_cv_need_curses_h" = yes && break
-done
-	test "$cf_cv_need_curses_h" = yes && break
-done
-
-if test "$cf_cv_need_curses_h" != no ; then
-	echo "Curses/termcap test = $cf_cv_need_curses_h (C:$cf_ok_c_opts, T:$cf_ok_t_opts)" >&5
-	if test -n "$cf_ok_c_opts" ; then
-		if test -n "$cf_ok_t_opts" ; then
-			cf_cv_need_curses_h=both
-		else
-			cf_cv_need_curses_h=curses.h
-		fi
-	elif test -n "$cf_ok_t_opts" ; then
-		cf_cv_need_curses_h=termcap.h
-	elif test "$cf_cv_term_header" != no ; then
-		cf_cv_need_curses_h=term.h
-	else
-		cf_cv_need_curses_h=no
-	fi
-fi
-
-fi
-
-echo "$ac_t""$cf_cv_need_curses_h" 1>&6
-
-case $cf_cv_need_curses_h in
-both) #(vi
-	cat >> confdefs.h <<EOF
-#define NEED_CURSES_H 1
-EOF
-
-	cat >> confdefs.h <<EOF
-#define NEED_TERMCAP_H 1
-EOF
-
-	;;
-curses.h) #(vi
-	cat >> confdefs.h <<EOF
-#define NEED_CURSES_H 1
-EOF
-
-	;;
-term.h) #(vi
-	cat >> confdefs.h <<EOF
-#define NEED_TERM_H 1
-EOF
 
-	;;
-termcap.h) #(vi
-	cat >> confdefs.h <<EOF
-#define NEED_TERMCAP_H 1
+echo "$ac_t""$cf_cv_pw_gecos" 1>&6
+test $cf_cv_pw_gecos = no && cat >> confdefs.h <<\EOF
+#define DONT_HAVE_PW_GECOS 1
 EOF
 
-	;;
-esac
-
-
 
 
-
-echo $ac_n "checking declaration of tputs 3rd param""... $ac_c" 1>&6
-echo "configure:12008: checking declaration of tputs 3rd param" >&5
-if eval "test \"`echo '$''{'cf_cv_type_outchar'+set}'`\" = set"; then
+echo $ac_n "checking for tm.tm_gmtoff""... $ac_c" 1>&6
+echo "configure:16587: 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
   
-
-cf_cv_type_outchar="int OutChar(int)"
-cf_cv_found=no
-cf_save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $CHECK_DECL_FLAG"
-
-for P in int void; do
-for Q in int void; do
-for R in int char; do
-for S in "" const; do
-	
-echo "(line 12024) testing loop variables P:$P, Q:$Q, R:$R, S:$S ..." 1>&5
-
 	cat > conftest.$ac_ext <<EOF
-#line 12027 "configure"
+#line 16593 "configure"
 #include "confdefs.h"
-$CHECK_DECL_HDRS
+
+#ifdef TIME_WITH_SYS_TIME
+#	include <sys/time.h>
+#	include <time.h>
+#else
+#	ifdef HAVE_SYS_TIME_H
+#		include <sys/time.h>
+#	else
+#		include <time.h>
+#	endif
+#endif
+
 int main() {
-extern $Q OutChar($R);
-	extern $P tputs ($S char *string, int nlines, $Q (*_f)($R));
-	tputs("", 1, OutChar)
+
+	struct tm foo;
+	long bar = foo.tm_gmtoff
 ; return 0; }
 EOF
-if { (eval echo configure:12036: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16613: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_type_outchar="$Q OutChar($R)"
-	 cf_cv_found=yes
-	 break
+  cf_cv_tm_gmtoff=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_cv_tm_gmtoff=no
 fi
 rm -f conftest*
-done
-	test $cf_cv_found = yes && break
-done
-	test $cf_cv_found = yes && break
-done
-	test $cf_cv_found = yes && break
-done
-
 fi
 
-echo "$ac_t""$cf_cv_type_outchar" 1>&6
-
-case $cf_cv_type_outchar in
-int*)
-	cat >> confdefs.h <<\EOF
-#define OUTC_RETURN 1
-EOF
-
-	;;
-esac
-case $cf_cv_type_outchar in
-*char*)
-	cat >> confdefs.h <<\EOF
-#define OUTC_ARGS char c
+echo "$ac_t""$cf_cv_tm_gmtoff" 1>&6
+test $cf_cv_tm_gmtoff = no && cat >> confdefs.h <<\EOF
+#define DONT_HAVE_TM_GMTOFF 1
 EOF
 
-	;;
-esac
 
-CPPFLAGS="$cf_save_CPPFLAGS"
 
+echo $ac_n "checking for long file names""... $ac_c" 1>&6
+echo "configure:16633: 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
+  ac_cv_sys_long_file_names=yes
+# Test for long file names in all the places we know might matter:
+#      .		the current directory, where building will happen
+#      $prefix/lib	where we will be installing things
+#      $exec_prefix/lib	likewise
+# eval it to expand exec_prefix.
+#      $TMPDIR		if set, where it might want to write temporary files
+# if $TMPDIR is not set:
+#      /tmp		where it might want to write temporary files
+#      /var/tmp		likewise
+#      /usr/tmp		likewise
+if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
+  ac_tmpdirs="$TMPDIR"
+else
+  ac_tmpdirs='/tmp /var/tmp /usr/tmp'
+fi
+for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
+  test -d $ac_dir || continue
+  test -w $ac_dir || continue # It is less confusing to not echo anything here.
+  (echo 1 > $ac_dir/conftest9012345) 2>/dev/null
+  (echo 2 > $ac_dir/conftest9012346) 2>/dev/null
+  val=`cat $ac_dir/conftest9012345 2>/dev/null`
+  if test ! -f $ac_dir/conftest9012345 || test "$val" != 1; then
+    ac_cv_sys_long_file_names=no
+    rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
+    break
+  fi
+  rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
+done
 fi
 
-cf_tc_funcs=
-cf_tc_externs=
-if test ".$cf_cv_termlib" = .terminfo ; then
-	cat >> confdefs.h <<\EOF
-#define USE_TERMINFO 1
+echo "$ac_t""$ac_cv_sys_long_file_names" 1>&6
+if test $ac_cv_sys_long_file_names = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_LONG_FILE_NAMES 1
 EOF
 
-	cf_tc_funcs="tigetint tigetnum tparam tparm"
-	cf_tc_externs="$cf_tc_funcs tgoto tigetstr tputs tigetflag"
-elif test ".$cf_cv_termlib" = .termcap ; then
-	# BSD 'tputs()' may need 'PC' to be set.
-	cat > conftest.$ac_ext <<EOF
-#line 12091 "configure"
-#include "confdefs.h"
+fi
 
-int main() {
-extern char PC; PC = 0
-; return 0; }
+
+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:16681: 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 16686 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:12098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:16691: \"$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*
-  cat >> confdefs.h <<\EOF
-#define HAVE_EXTERN_TCAP_PC 1
-EOF
-
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-	cf_tc_funcs="tgetint tgetnum tparam tparm"
-	cf_tc_externs="$cf_tc_funcs tgoto tgetstr tputs tgetent tgetflag"
 fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
 
-###	Checks for external-data
-
-
-echo $ac_n "checking if external errno is declared""... $ac_c" 1>&6
-echo "configure:12117: checking if external errno is declared" >&5
-if eval "test \"`echo '$''{'cf_cv_dcl_errno'+set}'`\" = set"; then
+cf_wait_headers="#include <sys/types.h>
+"
+if test $ac_cv_header_sys_wait_h = yes; then
+cf_wait_headers="$cf_wait_headers
+#include <sys/wait.h>
+"
+else
+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:16728: 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 12123 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 16733 "configure"
 #include "confdefs.h"
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h> 
-int main() {
-long x = (long) errno
-; return 0; }
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:12136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:16738: \"$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*
-  cf_cv_dcl_errno=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_dcl_errno=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-
 fi
-
-echo "$ac_t""$cf_cv_dcl_errno" 1>&6
-
-if test "$cf_cv_dcl_errno" = no ; then
-    
-cf_result=`echo "decl_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-    cat >> confdefs.h <<EOF
-#define $cf_result 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
-
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
+done
 
-# 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:12164: checking if external errno exists" >&5
-if eval "test \"`echo '$''{'cf_cv_have_errno'+set}'`\" = set"; then
+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:16768: 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 12170 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 16773 "configure"
 #include "confdefs.h"
-
-#undef errno
-extern int errno;
-
-int main() {
-errno = 2
-; return 0; }
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:12180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:16778: \"$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*
-  cf_cv_have_errno=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_have_errno=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
 
+if test $ac_cv_header_wait_h = yes; then
+cf_wait_headers="$cf_wait_headers
+#include <wait.h>
+"
+fi
+if test $ac_cv_header_waitstatus_h = yes; then
+cf_wait_headers="$cf_wait_headers
+#include <waitstatus.h>
+"
+fi
 fi
 
-echo "$ac_t""$cf_cv_have_errno" 1>&6
 
-if test "$cf_cv_have_errno" = yes ; then
-    
-cf_result=`echo "have_errno" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-    cat >> confdefs.h <<EOF
-#define $cf_result 1
+echo $ac_n "checking for union wait""... $ac_c" 1>&6
+echo "configure:16819: 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 16825 "configure"
+#include "confdefs.h"
+$cf_wait_headers
+int main() {
+int x;
+	 int y = WEXITSTATUS(x);
+	 int z = WTERMSIG(x);
+	 wait(&x);
+	
+; return 0; }
+EOF
+if { (eval echo configure:16836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_type_unionwait=no
+	 echo compiles ok w/o union wait 1>&5
+	
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  
+	cat > conftest.$ac_ext <<EOF
+#line 16847 "configure"
+#include "confdefs.h"
+$cf_wait_headers
+int main() {
+union wait x;
+#ifdef WEXITSTATUS
+	 int y = WEXITSTATUS(x);
+#endif
+#ifdef WTERMSIG
+	 int z = WTERMSIG(x);
+#endif
+	 wait(&x);
+	
+; return 0; }
 EOF
+if { (eval echo configure:16862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_type_unionwait=yes
+	 echo compiles ok with union wait and possibly macros too 1>&5
+	
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  cf_cv_type_unionwait=no
+fi
+rm -rf conftest*
+fi
+rm -rf conftest*
 fi
 
+echo "$ac_t""$cf_cv_type_unionwait" 1>&6
+test $cf_cv_type_unionwait = yes && cat >> confdefs.h <<\EOF
+#define HAVE_TYPE_UNIONWAIT 1
+EOF
 
 
 
 
-for ac_func in strerror
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12212: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+echo $ac_n "checking if the system function returns usable child-status""... $ac_c" 1>&6
+echo "configure:16887: 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
+  
+	if test "$cross_compiling" = yes; then
+  cf_cv_system_status=unknown
+else
   cat > conftest.$ac_ext <<EOF
-#line 12217 "configure"
+#line 16896 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
 
-int main() {
+#include <stdio.h>
+#include <signal.h>
+#if HAVE_SYS_WAIT_H
+#include <sys/wait.h>
+#endif
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
+RETSIGTYPE signal_handler (int sig)
+{
+#if HAVE_TYPE_UNIONWAIT
+	union wait wait_status;
 #else
-$ac_func();
+	int wait_status = 1;
 #endif
+	int system_status;
+	wait (&wait_status);
+	system_status = WEXITSTATUS(wait_status); /* should be nonzero */
+	${cf_cv_main_return:-return}(system_status != 23);
+}
+
+int main()
+{
+	/* this looks weird, but apparently the SIGCHLD gets there first on
+	 * machines where 'system()' doesn't return a usable code, so ...
+	 */
+	signal (SIGCHLD, signal_handler);
+	system("exit 23");
+	${cf_cv_main_return:-return}(1);
+}
 
-; return 0; }
 EOF
-if { (eval echo configure:12240: \"$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"
+if { (eval echo configure:16929: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- cat >> confdefs.h <<\EOF
-#define HAVE_STRERROR 1
-EOF
-
-else
-  echo "$ac_t""no" 1>&6
-
-    
-echo $ac_n "checking if external sys_nerr is declared""... $ac_c" 1>&6
-echo "configure:12267: 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
+  rm -fr conftest*
+  if test "$cross_compiling" = yes; then
+  cf_cv_system_status=unknown
 else
-  
-    cat > conftest.$ac_ext <<EOF
-#line 12273 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 16940 "configure"
 #include "confdefs.h"
-
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h> 
-int main() {
-long x = (long) sys_nerr
-; return 0; }
+int main() { ${cf_cv_main_return:-return}(system("exit 23") != (23 << 8)); }
 EOF
-if { (eval echo configure:12286: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_dcl_sys_nerr=yes
+if { (eval echo configure:16944: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_dcl_sys_nerr=no
+  rm -fr conftest*
+  cf_cv_system_status=unknown
+fi
+rm -fr conftest*
 fi
-rm -f conftest*
 
 fi
+rm -fr conftest*
+fi
 
-echo "$ac_t""$cf_cv_dcl_sys_nerr" 1>&6
 
-if test "$cf_cv_dcl_sys_nerr" = no ; then
-    
-cf_result=`echo "decl_sys_nerr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+fi
 
-    cat >> confdefs.h <<EOF
-#define $cf_result 1
+echo "$ac_t""$cf_cv_system_status" 1>&6
+test $cf_cv_system_status = no && cat >> confdefs.h <<\EOF
+#define USE_SYSTEM_STATUS 1
 EOF
 
-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:12314: checking if external sys_nerr exists" >&5
-if eval "test \"`echo '$''{'cf_cv_have_sys_nerr'+set}'`\" = set"; then
+# Check if we are trying to use curses+color, but cannot
+if test $use_color = yes ; then
+	if test $use_curses = no ; then
+		cat >> confdefs.h <<\EOF
+#define HAVE_COLOR 1
+EOF
+
+	elif test $cf_with_screen = pdcurses ; then
+		cat >> confdefs.h <<\EOF
+#define HAVE_COLOR 1
+EOF
+
+	else
+	 	
+
+if test "$cf_cv_ncurses_version" != no ; then
+echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6
+echo "configure:16987: 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 12320 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 16993 "configure"
 #include "confdefs.h"
 
-#undef sys_nerr
-extern int sys_nerr;
-
+#include <${cf_cv_ncurses_header:-curses.h}>
 int main() {
-sys_nerr = 2
+
+#if defined(NCURSES_VERSION) && defined(wgetbkgd)
+	make an error
+#else
+	int x = 1
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:12330: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_have_sys_nerr=yes
+  cf_cv_ncurses_broken=no
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_have_sys_nerr=no
+  cf_cv_ncurses_broken=yes
 fi
 rm -f conftest*
 
 fi
 
-echo "$ac_t""$cf_cv_have_sys_nerr" 1>&6
-
-if test "$cf_cv_have_sys_nerr" = yes ; then
-    
-cf_result=`echo "have_sys_nerr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-    cat >> confdefs.h <<EOF
-#define $cf_result 1
+echo "$ac_t""$cf_cv_ncurses_broken" 1>&6
+if test "$cf_cv_ncurses_broken" = yes ; then
+	echo "configure: warning: hmm... you should get an up-to-date version of ncurses" 1>&2
+	cat >> confdefs.h <<\EOF
+#define NCURSES_BROKEN 1
 EOF
 
 fi
+fi
 
-
-
-    
-echo $ac_n "checking if external sys_errlist is declared""... $ac_c" 1>&6
-echo "configure:12359: checking if external sys_errlist is declared" >&5
-if eval "test \"`echo '$''{'cf_cv_dcl_sys_errlist'+set}'`\" = set"; then
+		
+echo $ac_n "checking if curses supports color attributes""... $ac_c" 1>&6
+echo "configure:17032: 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 12365 "configure"
+	cat > conftest.$ac_ext <<EOF
+#line 17038 "configure"
 #include "confdefs.h"
 
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
-#include <stdio.h>
-#include <sys/types.h>
-#include <errno.h> 
+#include <${cf_cv_ncurses_header:-curses.h}>
+
 int main() {
-long x = (long) sys_errlist
+chtype x = COLOR_BLUE;
+	 has_colors();
+	 start_color();
+#ifndef NCURSES_BROKEN
+	 wbkgd(curscr, getbkgd(stdscr)); /* X/Open XPG4 aka SVr4 Curses */
+#endif
+	
 ; return 0; }
 EOF
-if { (eval echo configure:12378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_dcl_sys_errlist=yes
+if { (eval echo configure:17053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_color_curses=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_dcl_sys_errlist=no
-fi
-rm -f conftest*
 
+  cf_cv_color_curses=no
+fi
+rm -rf conftest*
+	
 fi
 
-echo "$ac_t""$cf_cv_dcl_sys_errlist" 1>&6
+echo "$ac_t""$cf_cv_color_curses" 1>&6
+if test $cf_cv_color_curses = yes ; then
+	cat >> confdefs.h <<\EOF
+#define COLOR_CURSES 1
+EOF
 
-if test "$cf_cv_dcl_sys_errlist" = no ; then
-    
-cf_result=`echo "decl_sys_errlist" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+	test ".$cf_cv_ncurses_broken" != .yes && cat >> confdefs.h <<\EOF
+#define HAVE_GETBKGD 1
+EOF
 
-    cat >> confdefs.h <<EOF
-#define $cf_result 1
+fi
+
+		if test $cf_cv_color_curses = yes ; then
+			cat >> confdefs.h <<\EOF
+#define HAVE_COLOR 1
 EOF
 
+		else
+			echo "configure: warning: This curses library does not support color" 1>&2
+		fi
+	fi
 fi
 
-# It's possible (for near-UNIX clones) that the data doesn't exist
+# GCC and Apollo compilers are quite noisy about signal constants (quiet them).
+if test -n "$GCC"; then
+	check_sig_const=yes
+elif test -f /sys/dm/dm ; then
+	check_sig_const=yes
+elif test -f /sys/dm/spm ; then
+	check_sig_const=yes
+else
+	check_sig_const=no
+fi
 
-echo $ac_n "checking if external sys_errlist exists""... $ac_c" 1>&6
-echo "configure:12406: checking if external sys_errlist exists" >&5
-if eval "test \"`echo '$''{'cf_cv_have_sys_errlist'+set}'`\" = set"; then
+if test $check_sig_const = yes ; then
+	
+
+echo $ac_n "checking for redefinable signal constants""... $ac_c" 1>&6
+echo "configure:17104: 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
   
-    cat > conftest.$ac_ext <<EOF
-#line 12412 "configure"
+cf_cv_sig_const=no
+if test -n "$cf_cv_sig_args"; then
+	cf_test=`echo $cf_cv_sig_args|sed -e s/sig//`
+	if test "$cross_compiling" = yes; then
+  cf_cv_sig_const=unknown
+else
+  cat > conftest.$ac_ext <<EOF
+#line 17116 "configure"
 #include "confdefs.h"
 
-#undef sys_errlist
-extern int sys_errlist;
+#define NEW_DFL	((RETSIGTYPE (*)($cf_test))0)
+#define NEW_IGN	((RETSIGTYPE (*)($cf_test))1)
+#define NEW_ERR	((RETSIGTYPE (*)($cf_test))-1)
 
-int main() {
-sys_errlist = 2
-; return 0; }
+#include <signal.h>
+
+int main()
+{
+	if (NEW_DFL != SIG_DFL
+	 || NEW_IGN != SIG_IGN
+	 || NEW_ERR != SIG_ERR
+	 /* at least one system won't let me redefine these! */
+#undef SIG_DFL
+#undef SIG_IGN
+#undef SIG_ERR
+#define SIG_DFL NEW_DFL
+#define SIG_IGN NEW_IGN
+#define SIG_ERR NEW_ERR
+	 || NEW_DFL != SIG_DFL)
+	 	${cf_cv_main_return:-return}(1);
+	signal(SIGINT, SIG_DFL);
+	${cf_cv_main_return:-return}(0);
+}
 EOF
-if { (eval echo configure:12422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_cv_have_sys_errlist=yes
+if { (eval echo configure:17143: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_have_sys_errlist=no
+  rm -fr conftest*
+  cf_cv_sig_const=no
 fi
-rm -f conftest*
-
+rm -fr conftest*
 fi
 
-echo "$ac_t""$cf_cv_have_sys_errlist" 1>&6
-
-if test "$cf_cv_have_sys_errlist" = yes ; then
-    
-cf_result=`echo "have_sys_errlist" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
-    cat >> confdefs.h <<EOF
-#define $cf_result 1
-EOF
-
 fi
 
+fi
 
+echo "$ac_t""$cf_cv_sig_const" 1>&6
+test "$cf_cv_sig_const" = yes && cat >> confdefs.h <<\EOF
+#define DECL_SIG_CONST 1
+EOF
 
 
 fi
-done
-
 
 
-###	Checks for library functions.
-for ac_func in \
-	atoi \
-	atol \
-	bcopy \
-	chmod \
-	closesocket \
-	execlp \
-	fcntl \
-	fdopen \
-	fork \
-	ftime \
-	ftruncate \
-	getcwd \
-	gettimeofday \
-	getwd \
-	inet_aton \
-	is_xterm \
-	isascii \
-	link \
-	lockf \
-	memcmp \
-	memcpy \
-	memmove \
-	memset \
-	mkdir \
-	mkfifo \
-	mktemp \
-	mkstemp \
-	nl_langinfo \
-	poll \
-	putenv \
-	rewinddir \
-	resizeterm \
-	select \
-	setenv \
-	setlocale \
-	settz \
-	sigaction \
-	snprintf \
-	stpcpy \
-	strchr \
-	strcasecmp \
-	strcasestr \
-	strdup \
-	strftime \
-	strpbrk \
-	strrstr \
-	strsep \
-	strstr \
-	strtol \
-	tmpfile \
-	tzset \
-	uname \
-	unlink \
-	use_default_colors \
-	usleep \
-	vasprintf \
-	vsnprintf \
-	waitpid \
-$cf_tc_funcs 
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12518: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+echo $ac_n "checking for ANSI qsort""... $ac_c" 1>&6
+echo "configure:17169: 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 12523 "configure"
+  
+	cat > conftest.$ac_ext <<EOF
+#line 17175 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
 #endif
-
+int main() {
+extern int compare(const void *, const void *);
+	 char *foo = "string";
+	 qsort(foo, sizeof(foo)/sizeof(*foo), sizeof(*foo), compare)
 ; return 0; }
 EOF
-if { (eval echo configure:12546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
+  cf_cv_comptype=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+  cf_cv_comptype=no
 fi
 rm -f conftest*
+
 fi
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+echo "$ac_t""$cf_cv_comptype" 1>&6
+if test $cf_cv_comptype = yes; then
+	cat >> confdefs.h <<\EOF
+#define HAVE_COMPTYPE_VOID 1
 EOF
- 
+
 else
-  echo "$ac_t""no" 1>&6
+	cat >> confdefs.h <<\EOF
+#define HAVE_COMPTYPE_CHAR 1
+EOF
+
 fi
-done
 
 
-echo $ac_n "checking for flock""... $ac_c" 1>&6
-echo "configure:12572: checking for flock" >&5
-if eval "test \"`echo '$''{'ac_cv_func_flock'+set}'`\" = set"; then
+echo $ac_n "checking if application can dump core""... $ac_c" 1>&6
+echo "configure:17215: 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
+  
+	if test "$cross_compiling" = yes; then
+  cf_cv_corefile=unknown
+else
   cat > conftest.$ac_ext <<EOF
-#line 12577 "configure"
+#line 17224 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char flock(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char flock();
 
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_flock) || defined (__stub___flock)
-choke me
+#include <signal.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+int found()
+{
+	struct stat sb;
+	return ((stat("core", &sb) == 0			/* UNIX */
+	   ||    stat("conftest.core", &sb) == 0	/* FreeBSD */
+		)
+		&& ((sb.st_mode & S_IFMT) == S_IFREG));
+}
+int main()
+{
+#ifdef __amiga__
+/* Nicholas d'Alterio (nagd@ic.ac.uk) reports that the check for ability to
+ * core dump causes the machine to crash - reason unknown (gcc 2.7.2)
+ */
+	${cf_cv_main_return:-return}(1);
 #else
-flock();
+	int	pid, status;
+	if (found())
+		unlink("core");
+	if (found())
+		${cf_cv_main_return:-return}(1);
+	if ((pid = fork()) != 0) {
+		while (wait(&status) <= 0)
+			;
+	} else {
+		abort();	/* this will dump core, if anything will */
+	}
+	if (found()) {
+		unlink("core");
+		${cf_cv_main_return:-return}(0);
+	}
+	${cf_cv_main_return:-return}(1);
 #endif
-
-; return 0; }
+}
 EOF
-if { (eval echo configure:12600: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  eval "ac_cv_func_flock=yes"
+if { (eval echo configure:17265: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_flock=no"
+  rm -fr conftest*
+  cf_cv_corefile=no
 fi
-rm -f conftest*
+rm -fr conftest*
 fi
 
-if eval "test \"`echo '$ac_cv_func_'flock`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_FLOCK 1
+fi
+
+echo "$ac_t""$cf_cv_corefile" 1>&6
+test $cf_cv_corefile = yes && cat >> confdefs.h <<\EOF
+#define HAVE_COREFILE 1
 EOF
 
-else
-  echo "$ac_t""no" 1>&6
 
-	echo $ac_n "checking for flock in -lbsd""... $ac_c" 1>&6
-echo "configure:12622: 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
+
+### test this last, since it uses a partly-built autoconf.h
+# Setup includes for test-program to verify declarations
+CHECK_DECL_FLAG="-I$srcdir/include -I$srcdir/pcre"
+CHECK_DECL_HDRS='
+#define M_UNIX
+#define __CPROTO__
+#define HAVE_CONFDEFS_H
+#include <tin.h>'
+TIN_DECL_HDRS="$CHECK_DECL_HDRS"
+
+for ac_func in \
+	errno \
+	getenv \
+	getlogin \
+	getpwnam \
+	popen \
+	strchr \
+	strcasestr \
+	strsep \
+	tmpfile \
+
+do
+
+ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+
+echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
+echo "configure:17313: 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
-  ac_save_LIBS="$LIBS"
-LIBS="-lbsd  $LIBS"
+  
+
+echo "${as_me:-configure}:17319: testing for missing "${ac_func}" external ..." 1>&5
+
+cf_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
 cat > conftest.$ac_ext <<EOF
-#line 12630 "configure"
+#line 17324 "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
-    builtin and then its argument prototype would still apply.  */
-char flock();
+
+$CHECK_DECL_HDRS
+
+#undef ${ac_func}
+struct zowie { int a; double b; struct zowie *c; char d; };
+extern struct zowie *${ac_func}();
+
+int main() {
+
+
+; return 0; }
+EOF
+if { (eval echo configure:17338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  if test -n "$CHECK_DECL_HDRS" ; then
+# try to work around system headers which are infested with non-standard syntax
+
+cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat > conftest.$ac_ext <<EOF
+#line 17346 "configure"
+#include "confdefs.h"
+
+#define DECL_${cf_1_up}
+$CHECK_DECL_HDRS
 
 int main() {
-flock()
+long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:12641: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  eval 'cf_cv_func_'${ac_func}'=yes'
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
+else
+eval 'cf_cv_func_'${ac_func}'=yes'
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<\EOF
-#define HAVE_FLOCK 1
-EOF
 
-		LIBS="$LIBS -lbsd"
 else
-  echo "$ac_t""no" 1>&6
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
+rm -rf conftest*
+CFLAGS="$cf_save_CFLAGS"
 
 fi
 
+eval 'cf_result=$cf_cv_func_'${ac_func}
+echo "$ac_t""$cf_result" 1>&6
+test $cf_result = yes && cat >> confdefs.h <<EOF
+#define DECL_${ac_tr_func} 1
+EOF
+
+done
 
 
-  echo $ac_n "checking for wide char and multibyte support""... $ac_c" 1>&6
-echo "configure:12670: checking for wide char and multibyte support" >&5
-if eval "test \"`echo '$''{'am_cv_multibyte_able'+set}'`\" = set"; then
+CHECK_DECL_HDRS="$TIN_DECL_HDRS
+#include <tnntp.h>"
+for ac_func in \
+	gethostbyname \
+	getservbyname \
+	inet_aton \
+	inet_ntoa \
+	socket \
+
+do
+
+ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+
+echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
+echo "configure:17405: 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
-  cat > conftest.$ac_ext <<EOF
-#line 12675 "configure"
-#include "confdefs.h"
-#include <stdio.h>
-#ifdef HAVE_STDLIB_H
-#	include <stdlib.h>
-#endif /* HAVE_STDLIB_H */
-#ifdef HAVE_WCHAR_H
-#	include <wchar.h>
-#endif /* HAVE_WCHAR_H */
-#ifdef HAVE_WCTYPE_H
-#	include <wctype.h>
-#endif /* HAVE_WCTYPE_H */
+  
 
-int main() {
-char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
-      char ocb[5];
-      wchar_t wcb[5];
-      wchar_t wcb2[5];
-      wchar_t format[3];
+echo "${as_me:-configure}:17411: testing for missing "${ac_func}" external ..." 1>&5
 
-      putwc(0, 0);
-      fputwc(0, 0);
-      fwide(0, 0);
-      mbtowc(wcb, icb, MB_CUR_MAX);
-      mbstowcs(wcb, icb, 5);
-      iswprint((wint_t) wcb[0]);
-      wcslen(wcb);
-      /* wcsnlen(wcb, 4); */
-      wcwidth((wint_t) wcb[0]);
-      wcswidth(wcb, 5);
-      wcstombs(ocb, wcb, 5);
-      mbstowcs(format, "%s", 2);
-      swprintf(wcb, 5, format, "test");
-      wcsncat(wcb2, wcb, 5);
-; return 0; }
-EOF
-if { (eval echo configure:12711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_multibyte_able=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_save_LIBS="$LIBS"
-      LIBS="-lutf8 $LIBS"
-      cat > conftest.$ac_ext <<EOF
-#line 12721 "configure"
+cf_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
+cat > conftest.$ac_ext <<EOF
+#line 17416 "configure"
 #include "confdefs.h"
-#include <libutf8.h>
+
+$CHECK_DECL_HDRS
+
+#undef ${ac_func}
+struct zowie { int a; double b; struct zowie *c; char d; };
+extern struct zowie *${ac_func}();
+
 int main() {
-char icb[5] = {0xa4, 0xa4, 0xa4, 0xe5, 0x00};
-        char ocb[5];
-        wchar_t wcb[5];
-        wchar_t wcb2[5];
-        wchar_t format[3];
 
-        putwc(0, 0);
-        fputwc(0, 0);
-        fwide(0, 0);
-        mbtowc(wcb, icb, MB_CUR_MAX);
-        mbstowcs(wcb, icb, 5);
-        iswprint((wint_t) wcb[0]);
-        wcslen(wcb);
-        /* wcsnlen(wcb, 4); */
-        wcwidth((wint_t) wcb[0]);
-        wcswidth(wcb, 5);
-        wcstombs(ocb, wcb, 5);
-        mbstowcs(format, "%s", 2);
-        swprintf(wcb, 5, format, "test");
-        wcsncat(wcb2, wcb, 5);
+
 ; return 0; }
 EOF
-if { (eval echo configure:12747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_multibyte_able=libutf8
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  am_cv_multibyte_able=no
-fi
-rm -f conftest*
-      LIBS="$cf_save_LIBS"
-   
-fi
-rm -f conftest*
+if { (eval echo configure:17430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
-fi
-
-echo "$ac_t""$am_cv_multibyte_able" 1>&6
-  if test "$am_cv_multibyte_able" != no; then
-    if test "$am_cv_multibyte_able" = libutf8; then
-      cat >> confdefs.h <<\EOF
-#define HAVE_LIBUTF8_H 1
-EOF
-
-      LIBS="-lutf8 $LIBS"
-    fi
-    cat >> confdefs.h <<\EOF
-#define MULTIBYTE_ABLE 1
-EOF
-
-  fi
+  if test -n "$CHECK_DECL_HDRS" ; then
+# try to work around system headers which are infested with non-standard syntax
 
+cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-echo $ac_n "checking if gettimeofday takes two arguments""... $ac_c" 1>&6
-echo "configure:12781: checking if gettimeofday takes two arguments" >&5
 cat > conftest.$ac_ext <<EOF
-#line 12783 "configure"
+#line 17438 "configure"
 #include "confdefs.h"
 
-#if HAVE_SYS_TIME_H
-#include <sys/time.h>
-#endif
+#define DECL_${cf_1_up}
+$CHECK_DECL_HDRS
+
 int main() {
-struct timeval *tv;
-struct timezone *tz;
-gettimeofday(tv, tz);
+long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:12795: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17448: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  ac_cv_func_gettimeofday_2args=yes
+  eval 'cf_cv_func_'${ac_func}'=yes'
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_func_gettimeofday_2args=no
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
 rm -f conftest*
-echo "$ac_t""$ac_cv_func_gettimeofday_2args" 1>&6
-if test $ac_cv_func_gettimeofday_2args = yes; then
-	cat >> confdefs.h <<\EOF
-#define GETTIMEOFDAY_2ARGS 1
-EOF
-
-fi
-
-echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:12814: 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 12819 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-#include <signal.h>
-#ifdef signal
-#undef signal
-#endif
-#ifdef __cplusplus
-extern "C" void (*signal (int, void (*)(int)))(int);
-#else
-void (*signal ()) ();
-#endif
+eval 'cf_cv_func_'${ac_func}'=yes'
+fi
 
-int main() {
-int i;
-; return 0; }
-EOF
-if { (eval echo configure:12836: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  ac_cv_type_signal=void
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_type_signal=int
+
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
-rm -f conftest*
+rm -rf conftest*
+CFLAGS="$cf_save_CFLAGS"
+
 fi
 
-echo "$ac_t""$ac_cv_type_signal" 1>&6
-cat >> confdefs.h <<EOF
-#define RETSIGTYPE $ac_cv_type_signal
+eval 'cf_result=$cf_cv_func_'${ac_func}
+echo "$ac_t""$cf_result" 1>&6
+test $cf_result = yes && cat >> confdefs.h <<EOF
+#define DECL_${ac_tr_func} 1
 EOF
 
+done
 
 
-echo $ac_n "checking declaration of signal arguments""... $ac_c" 1>&6
-echo "configure:12856: checking declaration of signal arguments" >&5
-if eval "test \"`echo '$''{'cf_cv_sig_args'+set}'`\" = set"; then
+if test $use_curses = no ; then
+CHECK_DECL_HDRS="$TIN_DECL_HDRS
+#include <tcurses.h>"
+for ac_func in \
+	tgetstr \
+	tgoto \
+
+do
+
+ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+
+echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
+echo "configure:17495: 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
   
-cf_cv_sig_args=
-for cf_test in "int sig" "int sig, ..."
-do
-	cat > conftest.$ac_ext <<EOF
-#line 12865 "configure"
+
+echo "${as_me:-configure}:17501: testing for missing "${ac_func}" external ..." 1>&5
+
+cf_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
+cat > conftest.$ac_ext <<EOF
+#line 17506 "configure"
+#include "confdefs.h"
+
+$CHECK_DECL_HDRS
+
+#undef ${ac_func}
+struct zowie { int a; double b; struct zowie *c; char d; };
+extern struct zowie *${ac_func}();
+
+int main() {
+
+
+; return 0; }
+EOF
+if { (eval echo configure:17520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  if test -n "$CHECK_DECL_HDRS" ; then
+# try to work around system headers which are infested with non-standard syntax
+
+cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat > conftest.$ac_ext <<EOF
+#line 17528 "configure"
 #include "confdefs.h"
 
-#include <signal.h>
+#define DECL_${cf_1_up}
+$CHECK_DECL_HDRS
+
 int main() {
-extern RETSIGTYPE catch($cf_test); signal(SIGINT, catch)
+long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:12873: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_sig_args="$cf_test";break
+  eval 'cf_cv_func_'${ac_func}'=yes'
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
 rm -f conftest*
-done
+else
+eval 'cf_cv_func_'${ac_func}'=yes'
+fi
+
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
+rm -rf conftest*
+CFLAGS="$cf_save_CFLAGS"
 
-echo "$ac_t""$cf_cv_sig_args" 1>&6
-cat >> confdefs.h <<EOF
-#define SIG_ARGS $cf_cv_sig_args
-EOF
+fi
 
+eval 'cf_result=$cf_cv_func_'${ac_func}
+echo "$ac_t""$cf_result" 1>&6
+test $cf_result = yes && cat >> confdefs.h <<EOF
+#define DECL_${ac_tr_func} 1
+EOF
 
+done
 
+fi
 
+if test $with_decl_check = yes; then
+CHECK_DECL_HDRS="$TIN_DECL_HDRS"
+for ac_func in \
+	_flsbuf \
+	alarm \
+	atoi \
+	atol \
+	bcopy \
+	bzero \
+	calloc \
+	fchmod \
+	fclose \
+	fdopen \
+	fflush \
+	fgetc \
+	fileno \
+	fprintf \
+	fputc \
+	fputs \
+	fread \
+	free \
+	fseek \
+	fwrite \
+	getcwd \
+	getopt \
+	getwd \
+	ioctl \
+	isascii \
+	kill \
+	malloc \
+	memset \
+	mkstemp \
+	mktemp \
+	pclose \
+	perror \
+	printf \
+	putenv \
+	qsort \
+	realloc \
+	rename \
+	rewind \
+	select \
+	setenv \
+	snprintf \
+	sscanf \
+	strcasecmp \
+	strftime \
+	strncasecmp \
+	strtol \
+	system \
+	time \
+	tolower \
+	toupper \
+	ungetc \
+	usleep \
+	vsprintf \
+	vsnprintf \
 
+do
 
+ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-if test "$ac_cv_func_sigaction" = yes; then
 
-echo $ac_n "checking whether sigaction needs _POSIX_SOURCE""... $ac_c" 1>&6
-echo "configure:12899: checking whether sigaction needs _POSIX_SOURCE" >&5
-if eval "test \"`echo '$''{'cf_cv_sigact_bad'+set}'`\" = set"; then
+echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
+echo "configure:17637: 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 "${as_me:-configure}:17643: testing for missing "${ac_func}" external ..." 1>&5
+
+cf_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
 cat > conftest.$ac_ext <<EOF
-#line 12905 "configure"
+#line 17648 "configure"
 #include "confdefs.h"
 
-#include <sys/types.h>
-#include <signal.h>
-int main() {
-struct sigaction act
-; return 0; }
-EOF
-if { (eval echo configure:12914: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_sigact_bad=no
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_sigact_bad=yes
-fi
-rm -f conftest*
+$CHECK_DECL_HDRS
 
-fi
+#undef ${ac_func}
+struct zowie { int a; double b; struct zowie *c; char d; };
+extern struct zowie *${ac_func}();
 
-echo "$ac_t""$cf_cv_sigact_bad" 1>&6
+int main() {
 
-test "$cf_cv_sigact_bad" = yes && cat >> confdefs.h <<\EOF
-#define SVR4_ACTION 1
+
+; return 0; }
 EOF
+if { (eval echo configure:17662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  if test -n "$CHECK_DECL_HDRS" ; then
+# try to work around system headers which are infested with non-standard syntax
 
+cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-echo $ac_n "checking if we have sigaction/related functions""... $ac_c" 1>&6
-echo "configure:12935: 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 12941 "configure"
+#line 17670 "configure"
 #include "confdefs.h"
 
-#ifdef SVR4_ACTION
-#define _POSIX_SOURCE
-#endif
-#include <sys/types.h>
-#include <signal.h>
-int main() {
+#define DECL_${cf_1_up}
+$CHECK_DECL_HDRS
 
-    RETSIGTYPE (*func)(SIG_ARGS) = SIG_IGN;
-    struct sigaction sa, osa;
-    sa.sa_handler = func;
-    sa.sa_flags = 0;
-    sigemptyset (&sa.sa_mask);
-    sigaction (SIGBUS,&sa,&osa);
+int main() {
+long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:12959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17680: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_sigaction_funcs=yes
+  eval 'cf_cv_func_'${ac_func}'=yes'
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_sigaction_funcs=no
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
 rm -f conftest*
+else
+eval 'cf_cv_func_'${ac_func}'=yes'
 fi
 
-echo "$ac_t""$cf_cv_sigaction_funcs" 1>&6
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-test "$cf_cv_sigaction_funcs" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_POSIX_JC 1
+  eval 'cf_cv_func_'${ac_func}'=no'
+fi
+rm -rf conftest*
+CFLAGS="$cf_save_CFLAGS"
+
+fi
+
+eval 'cf_result=$cf_cv_func_'${ac_func}
+echo "$ac_t""$cf_result" 1>&6
+test $cf_result = yes && cat >> confdefs.h <<EOF
+#define DECL_${ac_tr_func} 1
 EOF
 
+done
 
-fi
 
-echo $ac_n "checking for fork""... $ac_c" 1>&6
-echo "configure:12981: checking for fork" >&5
-if eval "test \"`echo '$''{'cf_cv_func_fork'+set}'`\" = set"; then
+if test $use_curses = no ; then
+CHECK_DECL_HDRS="$TIN_DECL_HDRS
+#include <tcurses.h>"
+for ac_func in $cf_tc_externs
+do
+
+ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+
+echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
+echo "configure:17724: 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
   
-if test "$cross_compiling" = yes; then
-  cf_cv_func_fork=unknown
-else
-  cat > conftest.$ac_ext <<EOF
-#line 12990 "configure"
+
+echo "${as_me:-configure}:17730: testing for missing "${ac_func}" external ..." 1>&5
+
+cf_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
+cat > conftest.$ac_ext <<EOF
+#line 17735 "configure"
 #include "confdefs.h"
 
-int main()
-{
-	if (fork() < 0)
-		exit(1);
-	exit(0);
-}
-EOF
-if { (eval echo configure:13000: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_func_fork=no
-fi
-rm -fr conftest*
-fi
+$CHECK_DECL_HDRS
+
+#undef ${ac_func}
+struct zowie { int a; double b; struct zowie *c; char d; };
+extern struct zowie *${ac_func}();
 
+int main() {
 
-fi
-echo "$ac_t""$cf_cv_func_fork" 1>&6
-test $cf_cv_func_fork = yes && cat >> confdefs.h <<\EOF
-#define HAVE_FORK 1
-EOF
 
+; return 0; }
+EOF
+if { (eval echo configure:17749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  if test -n "$CHECK_DECL_HDRS" ; then
+# try to work around system headers which are infested with non-standard syntax
 
+cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-echo $ac_n "checking for memmove""... $ac_c" 1>&6
-echo "configure:13022: 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 13027 "configure"
+cat > conftest.$ac_ext <<EOF
+#line 17757 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char memmove(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char memmove();
-
-int main() {
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_memmove) || defined (__stub___memmove)
-choke me
-#else
-memmove();
-#endif
+#define DECL_${cf_1_up}
+$CHECK_DECL_HDRS
 
+int main() {
+long x = 0
 ; return 0; }
 EOF
-if { (eval echo configure:13050: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_func_memmove=yes"
+  eval 'cf_cv_func_'${ac_func}'=yes'
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_memmove=no"
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
 rm -f conftest*
+else
+eval 'cf_cv_func_'${ac_func}'=yes'
 fi
 
-if eval "test \"`echo '$ac_cv_func_'memmove`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
 else
-  echo "$ac_t""no" 1>&6
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-echo $ac_n "checking for bcopy""... $ac_c" 1>&6
-echo "configure:13069: checking for bcopy" >&5
-if eval "test \"`echo '$''{'ac_cv_func_bcopy'+set}'`\" = set"; then
+  eval 'cf_cv_func_'${ac_func}'=no'
+fi
+rm -rf conftest*
+CFLAGS="$cf_save_CFLAGS"
+
+fi
+
+eval 'cf_result=$cf_cv_func_'${ac_func}
+echo "$ac_t""$cf_result" 1>&6
+test $cf_result = yes && cat >> confdefs.h <<EOF
+#define DECL_${ac_tr_func} 1
+EOF
+
+done
+
+fi
+
+CHECK_DECL_HDRS="$TIN_DECL_HDRS
+#include <tnntp.h>"
+for ac_func in \
+	connect \
+	gethostname \
+
+do
+
+ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+
+echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
+echo "configure:17814: 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
-  cat > conftest.$ac_ext <<EOF
-#line 13074 "configure"
+  
+
+echo "${as_me:-configure}:17820: testing for missing "${ac_func}" external ..." 1>&5
+
+cf_save_CFLAGS="$CFLAGS"
+CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
+cat > conftest.$ac_ext <<EOF
+#line 17825 "configure"
 #include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char bcopy(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char bcopy();
+
+$CHECK_DECL_HDRS
+
+#undef ${ac_func}
+struct zowie { int a; double b; struct zowie *c; char d; };
+extern struct zowie *${ac_func}();
 
 int main() {
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_bcopy) || defined (__stub___bcopy)
-choke me
-#else
-bcopy();
-#endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:13097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17839: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  if test -n "$CHECK_DECL_HDRS" ; then
+# try to work around system headers which are infested with non-standard syntax
+
+cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+cat > conftest.$ac_ext <<EOF
+#line 17847 "configure"
+#include "confdefs.h"
+
+#define DECL_${cf_1_up}
+$CHECK_DECL_HDRS
+
+int main() {
+long x = 0
+; return 0; }
+EOF
+if { (eval echo configure:17857: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval "ac_cv_func_bcopy=yes"
+  eval 'cf_cv_func_'${ac_func}'=yes'
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_func_bcopy=no"
+  eval 'cf_cv_func_'${ac_func}'=no'
 fi
 rm -f conftest*
+else
+eval 'cf_cv_func_'${ac_func}'=yes'
 fi
 
-if eval "test \"`echo '$ac_cv_func_'bcopy`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  
-	echo $ac_n "checking if bcopy does overlapping moves""... $ac_c" 1>&6
-echo "configure:13113: checking if bcopy does overlapping moves" >&5
-if eval "test \"`echo '$''{'cf_cv_good_bcopy'+set}'`\" = set"; then
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval 'cf_cv_func_'${ac_func}'=no'
+fi
+rm -rf conftest*
+CFLAGS="$cf_save_CFLAGS"
+
+fi
+
+eval 'cf_result=$cf_cv_func_'${ac_func}
+echo "$ac_t""$cf_result" 1>&6
+test $cf_result = yes && cat >> confdefs.h <<EOF
+#define DECL_${ac_tr_func} 1
+EOF
+
+done
+
+
+fi
+
+
+echo $ac_n "checking for working TIOCGWINSZ""... $ac_c" 1>&6
+echo "configure:17895: 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
   
-		if test "$cross_compiling" = yes; then
-  cf_cv_good_bcopy=unknown
+	cf_save_CFLAGS="$CFLAGS"
+	CFLAGS="$CFLAGS -D__CPROTO__ $CHECK_DECL_FLAG"
+	if test "$cross_compiling" = yes; then
+  cf_cv_use_tiocgwinsz=unknown
 else
   cat > conftest.$ac_ext <<EOF
-#line 13122 "configure"
+#line 17906 "configure"
 #include "confdefs.h"
 
-int main() {
-	static char data[] = "abcdefghijklmnopqrstuwwxyz";
-	char temp[40];
-	bcopy(data, temp, sizeof(data));
-	bcopy(temp+10, temp, 15);
-	bcopy(temp+5, temp+15, 10);
-	exit (strcmp(temp, "klmnopqrstuwwxypqrstuwwxyz"));
+$CHECK_DECL_HDRS
+int main()
+{
+	int fd;
+	for (fd = 0; fd <= 2; fd++) {	/* try in/out/err in case redirected */
+#ifdef TIOCGSIZE
+		struct ttysize size;
+		if (ioctl (0, TIOCGSIZE, &size) == 0
+		 && size.ts_lines > 0
+		 && size.ts_cols > 0)
+			${cf_cv_main_return:-return}(0);
+#else
+		struct winsize size;
+		if (ioctl(0, TIOCGWINSZ, &size) == 0
+		 && size.ws_row > 0
+		 && size.ws_col > 0)
+			${cf_cv_main_return:-return}(0);
+#endif
+	}
+	${cf_cv_main_return:-return}(0);	/* we cannot guarantee this is run interactively */
 }
-		
 EOF
-if { (eval echo configure:13135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17931: \"$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
+  cf_cv_use_tiocgwinsz=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
-  cf_cv_good_bcopy=no
+  cf_cv_use_tiocgwinsz=no
 fi
 rm -fr conftest*
 fi
 
-		
+		rm -f autoconf.h
+		CFLAGS="$cf_save_CFLAGS"
 fi
 
-echo "$ac_t""$cf_cv_good_bcopy" 1>&6
-	
-else
-  echo "$ac_t""no" 1>&6
-cf_cv_good_bcopy=no
-fi
+echo "$ac_t""$cf_cv_use_tiocgwinsz" 1>&6
+test $cf_cv_use_tiocgwinsz != yes && cat >> confdefs.h <<\EOF
+#define DONT_HAVE_SIGWINCH 1
+EOF
 
-	if test "$cf_cv_good_bcopy" = yes ; then
-		cat >> confdefs.h <<\EOF
-#define USE_OK_BCOPY 1
+
+
+### append special libraries that get in the way of testing
+case $debug_malloc in
+DBMALLOC)
+	cat >> confdefs.h <<\EOF
+#define USE_DBMALLOC 1
 EOF
 
-	else
-		cat >> confdefs.h <<\EOF
-#define USE_MY_MEMMOVE 1
+	LIBS="$LIBS -ldbmalloc"
+	;;
+DMALLOC)
+	cat >> confdefs.h <<\EOF
+#define USE_DMALLOC 1
 EOF
 
-	fi
+	LIBS="$LIBS -ldmalloc"
+	;;
+esac
 
+### Use gettext
+### this also calls AM_LANGINFO_CODESET and AM_ICONV
+### so we don't need to do the tests ourselves.
+# 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:17978: 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
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
 fi
-
-
-echo $ac_n "checking if select expects int * arguments""... $ac_c" 1>&6
-echo "configure:13173: checking if select expects int * arguments" >&5
-cat > conftest.$ac_ext <<EOF
-#line 13175 "configure"
-#include "confdefs.h"
-#include <time.h>
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "select\(.*, *int *\*," >/dev/null 2>&1; then
-  rm -rf conftest*
-  cat >> confdefs.h <<\EOF
-#define HAVE_SELECT_INTP 1
-EOF
- echo "$ac_t""yes" 1>&6
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
 else
-  rm -rf conftest*
   echo "$ac_t""no" 1>&6
-
 fi
-rm -f conftest*
-
 
-echo $ac_n "checking whether closedir returns void""... $ac_c" 1>&6
-echo "configure:13195: checking whether closedir returns void" >&5
-if eval "test \"`echo '$''{'ac_cv_func_closedir_void'+set}'`\" = set"; 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:18008: 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
-  if test "$cross_compiling" = yes; then
-  ac_cv_func_closedir_void=yes
-else
   cat > conftest.$ac_ext <<EOF
-#line 13203 "configure"
+#line 18013 "configure"
 #include "confdefs.h"
-#include <sys/types.h>
-#include <$ac_header_dirent>
-int closedir(); main() { exit(closedir(opendir(".")) != 0); }
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
 EOF
-if { (eval echo configure:13209: \"$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
+if { (eval echo configure:18020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  ac_cv_header_alloca_h=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_func_closedir_void=yes
-fi
-rm -fr conftest*
-fi
 
+  ac_cv_header_alloca_h=no
+fi
+rm -rf conftest*
 fi
 
-echo "$ac_t""$ac_cv_func_closedir_void" 1>&6
-if test $ac_cv_func_closedir_void = yes; then
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
   cat >> confdefs.h <<\EOF
-#define CLOSEDIR_VOID 1
+#define HAVE_ALLOCA_H 1
 EOF
 
 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:13235: checking whether setvbuf arguments are reversed" >&5
-if eval "test \"`echo '$''{'ac_cv_func_setvbuf_reversed'+set}'`\" = set"; then
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:18041: 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
-  if test "$cross_compiling" = yes; then
-    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
-else
   cat > conftest.$ac_ext <<EOF
-#line 13243 "configure"
+#line 18046 "configure"
 #include "confdefs.h"
-#include <stdio.h>
-/* If setvbuf has the reversed format, exit 0. */
-main () {
-  /* This call has the arguments reversed.
-     A reversed system may check and see that the address of main
-     is not _IOLBF, _IONBF, or _IOFBF, and return nonzero.  */
-  if (setvbuf(stdout, _IOLBF, (char *) main, BUFSIZ) != 0)
-    exit(1);
-  putc('\r', stdout);
-  exit(0);			/* Non-reversed systems segv here.  */
-}
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# ifdef _MSC_VER
+#  include <malloc.h>
+#  define alloca _alloca
+# else
+#  if HAVE_ALLOCA_H
+#   include <alloca.h>
+#  else
+#   ifdef _AIX
+ #pragma alloca
+#   else
+#    ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#    endif
+#   endif
+#  endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
 EOF
-if { (eval echo configure:13257: \"$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
+if { (eval echo configure:18074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  ac_cv_func_alloca_works=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_func_setvbuf_reversed=no
+
+  ac_cv_func_alloca_works=no
 fi
-rm -fr conftest*
+rm -rf conftest*
 fi
 
-rm -f core core.* *.core
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
 fi
 
-echo "$ac_t""$ac_cv_func_setvbuf_reversed" 1>&6
-if test $ac_cv_func_setvbuf_reversed = yes; then
+if test $ac_cv_func_alloca_works = no; then
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+  # that cause trouble.  Some versions do not even contain alloca or
+  # contain a buggy version.  If you still want to use their alloca,
+  # use ar to extract alloca.o from them instead of compiling alloca.c.
+  ALLOCA=alloca.${ac_objext}
   cat >> confdefs.h <<\EOF
-#define SETVBUF_REVERSED 1
+#define C_ALLOCA 1
 EOF
 
-fi
 
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:18106: 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 18111 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "webecray" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_os_cray=yes
+else
+  rm -rf conftest*
+  ac_cv_os_cray=no
 fi
+rm -f conftest*
 
-###	Checks for network library functions.
-for ac_func in \
-	gai_strerror \
-	getaddrinfo \
-	gethostname \
-	gethostbyname \
-	getservbyname \
-	inet_addr \
-	inet_ntoa \
-	strncasecmp \
+fi
 
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13295: checking for $ac_func" >&5
+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:18136: 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 13300 "configure"
+#line 18141 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13319,268 +18160,423 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:13323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:18164: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
   cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+#define CRAY_STACKSEG_END $ac_func
 EOF
- 
+
+  break
 else
   echo "$ac_t""no" 1>&6
 fi
-done
-
 
+done
+fi
 
-echo $ac_n "checking for type sigaction_t""... $ac_c" 1>&6
-echo "configure:13350: checking for type sigaction_t" >&5
-if eval "test \"`echo '$''{'cf_cv_type_sigaction'+set}'`\" = set"; then
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:18191: 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
-  
-	cat > conftest.$ac_ext <<EOF
-#line 13356 "configure"
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 18199 "configure"
 #include "confdefs.h"
-
-#include <signal.h>
-int main() {
-sigaction_t x
-; return 0; }
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+  exit (find_stack_direction() < 0);
+}
 EOF
-if { (eval echo configure:13364: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_type_sigaction=yes
+if { (eval echo configure:18218: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_type_sigaction=no
+  rm -fr conftest*
+  ac_cv_c_stack_direction=-1
 fi
-rm -f conftest*
+rm -fr conftest*
 fi
 
-echo "$ac_t""$cf_cv_type_sigaction" 1>&6
-test "$cf_cv_type_sigaction" = yes && cat >> confdefs.h <<\EOF
-#define HAVE_TYPE_SIGACTION 1
-EOF
+fi
 
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
 
+fi
 
-echo $ac_n "checking for nonconflicting termios.h""... $ac_c" 1>&6
-echo "configure:13384: checking for nonconflicting termios.h" >&5
-if eval "test \"`echo '$''{'cf_cv_use_termios_h'+set}'`\" = set"; then
+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:18243: 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 13390 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 18248 "configure"
 #include "confdefs.h"
-
-#ifdef HAVE_IOCTL_H
-#	include <ioctl.h>
-#else
-#	ifdef HAVE_SYS_IOCTL_H
-#		include <sys/ioctl.h>
-#	endif
-#endif
-
-#if !defined(sun) || !defined(NL0)
-#include <termios.h>
-#endif
-
-int main() {
-
-	struct termios save_tty;
-	(void) tcsetattr (0, TCSANOW, &save_tty);
-	(void) tcgetattr (0, &save_tty)
-; return 0; }
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:13412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:18253: \"$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*
-  cf_cv_use_termios_h=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_use_termios_h=no
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
-
 fi
-
-echo "$ac_t""$cf_cv_use_termios_h" 1>&6
-if test $cf_cv_use_termios_h = yes; then
-	cat >> confdefs.h <<\EOF
-#define HAVE_TERMIOS_H 1
-EOF
-
-	cat >> confdefs.h <<\EOF
-#define HAVE_TCGETATTR 1
-EOF
-
-	cat >> confdefs.h <<\EOF
-#define HAVE_TCSETATTR 1
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
 EOF
-
+ 
+else
+  echo "$ac_t""no" 1>&6
 fi
-
-
-echo $ac_n "checking for passwd.pw_gecos""... $ac_c" 1>&6
-echo "configure:13443: checking for passwd.pw_gecos" >&5
-if eval "test \"`echo '$''{'cf_cv_pw_gecos'+set}'`\" = set"; then
+done
+
+for ac_func in getpagesize
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:18282: 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 13449 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 18287 "configure"
 #include "confdefs.h"
-
-#include <pwd.h>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
 
 int main() {
 
-	struct passwd foo;
-	char bar = foo.pw_gecos
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
 ; return 0; }
 EOF
-if { (eval echo configure:13460: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_pw_gecos=yes
+if { (eval echo configure:18310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_pw_gecos=no
+
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-echo "$ac_t""$cf_cv_pw_gecos" 1>&6
-test $cf_cv_pw_gecos = no && cat >> confdefs.h <<\EOF
-#define DONT_HAVE_PW_GECOS 1
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
 EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
 
-
-
-echo $ac_n "checking for tm.tm_gmtoff""... $ac_c" 1>&6
-echo "configure:13480: checking for tm.tm_gmtoff" >&5
-if eval "test \"`echo '$''{'cf_cv_tm_gmtoff'+set}'`\" = set"; then
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:18335: 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
-  
-	cat > conftest.$ac_ext <<EOF
-#line 13486 "configure"
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_mmap_fixed_mapped=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 18343 "configure"
 #include "confdefs.h"
 
-#ifdef TIME_WITH_SYS_TIME
-#	include <sys/time.h>
-#	include <time.h>
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+	mmap private not fixed
+	mmap private fixed at somewhere currently unmapped
+	mmap private fixed at somewhere already mapped
+	mmap shared not fixed
+	mmap shared fixed at somewhere currently unmapped
+	mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the filesystem buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propogated back to all the places they're supposed to be.
+
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h.  */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h.  */
+# ifndef HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  ifdef HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192	/* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
 #else
-#	ifdef HAVE_SYS_TIME_H
-#		include <sys/time.h>
-#	else
-#		include <time.h>
-#	endif
+char *malloc();
 #endif
 
-int main() {
+int
+main()
+{
+	char *data, *data2, *data3;
+	int i, pagesize;
+	int fd;
+
+	pagesize = getpagesize();
+
+	/*
+	 * First, make a file with some known garbage in it.
+	 */
+	data = malloc(pagesize);
+	if (!data)
+		exit(1);
+	for (i = 0; i < pagesize; ++i)
+		*(data + i) = rand();
+	umask(0);
+	fd = creat("conftestmmap", 0600);
+	if (fd < 0)
+		exit(1);
+	if (write(fd, data, pagesize) != pagesize)
+		exit(1);
+	close(fd);
+
+	/*
+	 * Next, try to mmap the file at a fixed address which
+	 * already has something else allocated at it.  If we can,
+	 * also make sure that we see the same garbage.
+	 */
+	fd = open("conftestmmap", O_RDWR);
+	if (fd < 0)
+		exit(1);
+	data2 = malloc(2 * pagesize);
+	if (!data2)
+		exit(1);
+	data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+	if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+	    MAP_PRIVATE | MAP_FIXED, fd, 0L))
+		exit(1);
+	for (i = 0; i < pagesize; ++i)
+		if (*(data + i) != *(data2 + i))
+			exit(1);
+
+	/*
+	 * Finally, make sure that changes to the mapped area
+	 * do not percolate back to the file as seen by read().
+	 * (This is a bug on some variants of i386 svr4.0.)
+	 */
+	for (i = 0; i < pagesize; ++i)
+		*(data2 + i) = *(data2 + i) + 1;
+	data3 = malloc(pagesize);
+	if (!data3)
+		exit(1);
+	if (read(fd, data3, pagesize) != pagesize)
+		exit(1);
+	for (i = 0; i < pagesize; ++i)
+		if (*(data + i) != *(data3 + i))
+			exit(1);
+	close(fd);
+	unlink("conftestmmap");
+	exit(0);
+}
 
-	struct tm foo;
-	long bar = foo.tm_gmtoff
-; return 0; }
 EOF
-if { (eval echo configure:13506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_tm_gmtoff=yes
+if { (eval echo configure:18483: \"$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
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_tm_gmtoff=no
+  rm -fr conftest*
+  ac_cv_func_mmap_fixed_mapped=no
 fi
-rm -f conftest*
+rm -fr conftest*
 fi
 
-echo "$ac_t""$cf_cv_tm_gmtoff" 1>&6
-test $cf_cv_tm_gmtoff = no && cat >> confdefs.h <<\EOF
-#define DONT_HAVE_TM_GMTOFF 1
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
 EOF
 
+fi
 
 
-echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:13526: checking for long file names" >&5
-if eval "test \"`echo '$''{'ac_cv_sys_long_file_names'+set}'`\" = set"; then
+    echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6
+echo "configure:18507: 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
-  ac_cv_sys_long_file_names=yes
-# Test for long file names in all the places we know might matter:
-#      .		the current directory, where building will happen
-#      $prefix/lib	where we will be installing things
-#      $exec_prefix/lib	likewise
-# eval it to expand exec_prefix.
-#      $TMPDIR		if set, where it might want to write temporary files
-# if $TMPDIR is not set:
-#      /tmp		where it might want to write temporary files
-#      /var/tmp		likewise
-#      /usr/tmp		likewise
-if test -n "$TMPDIR" && test -d "$TMPDIR" && test -w "$TMPDIR"; then
-  ac_tmpdirs="$TMPDIR"
+  cat > conftest.$ac_ext <<EOF
+#line 18512 "configure"
+#include "confdefs.h"
+
+#include <features.h>
+#ifdef __GNU_LIBRARY__
+ #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
+  Lucky GNU user
+ #endif
+#endif
+	
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "Lucky GNU user" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_gnu_library_2_1=yes
 else
-  ac_tmpdirs='/tmp /var/tmp /usr/tmp'
+  rm -rf conftest*
+  ac_cv_gnu_library_2_1=no
 fi
-for ac_dir in  . $ac_tmpdirs `eval echo $prefix/lib $exec_prefix/lib` ; do
-  test -d $ac_dir || continue
-  test -w $ac_dir || continue # It is less confusing to not echo anything here.
-  (echo 1 > $ac_dir/conftest9012345) 2>/dev/null
-  (echo 2 > $ac_dir/conftest9012346) 2>/dev/null
-  val=`cat $ac_dir/conftest9012345 2>/dev/null`
-  if test ! -f $ac_dir/conftest9012345 || test "$val" != 1; then
-    ac_cv_sys_long_file_names=no
-    rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
-    break
-  fi
-  rm -f $ac_dir/conftest9012345 $ac_dir/conftest9012346 2>/dev/null
-done
+rm -f conftest*
+
+      
+    
 fi
 
-echo "$ac_t""$ac_cv_sys_long_file_names" 1>&6
-if test $ac_cv_sys_long_file_names = yes; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_LONG_FILE_NAMES 1
-EOF
+echo "$ac_t""$ac_cv_gnu_library_2_1" 1>&6
+    
+    GLIBC21="$ac_cv_gnu_library_2_1"
+  
+
 
+cf_makefile=Makefile
+
+test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d $srcdir/po && cd $srcdir/po && echo *.po|sed -e 's/\.po//g' -e 's/*//'`
+
+# Allow override of "config.h" definition:
+: ${CONFIG_H:=config.h}
+
+
+if test -z "$PACKAGE" ; then
+	{ echo "configure: error: CF_BUNDLED_INTL used without setting PACKAGE variable" 1>&2; exit 1; }
+fi
+
+if test -z "$VERSION" ; then
+if test -f $srcdir/VERSION ; then
+	VERSION=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
+else
+	VERSION=unknown
+fi
 fi
 
 
-for ac_hdr in sys/wait.h
+                                    
+   for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+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:13574: checking for $ac_hdr" >&5
+echo "configure:18570: 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 13579 "configure"
+#line 18575 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13584: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:18580: \"$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*
@@ -13606,46 +18602,56 @@ else
 fi
 done
 
-cf_wait_headers="#include <sys/types.h>
-"
-if test $ac_cv_header_sys_wait_h = yes; then
-cf_wait_headers="$cf_wait_headers
-#include <sys/wait.h>
-"
-else
-for ac_hdr in wait.h
+   for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \
+getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
+strdup strtoul tsearch __argz_count __argz_stringify __argz_next
 do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:13621: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:18611: 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 13626 "configure"
+#line 18616 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13631: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:18639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_$ac_func=yes"
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+
+  eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
   cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+#define $ac_tr_func 1
 EOF
  
 else
@@ -13653,1271 +18659,2125 @@ else
 fi
 done
 
-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:13661: 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 13666 "configure"
+
+   
+    
+  
+# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then
+  withval="$with_libiconv_prefix"
+  
+    
+  case "$withval" in #(vi
+  no) #(vi
+      ;;
+  yes) #(vi
+      ;;
+  *)
+      
+
+for cf_searchpath in `echo "$withval" | tr $PATH_SEPARATOR ' '`; do
+	if test -d $cf_searchpath/include; then
+		
+if test -n "$cf_searchpath/include" ; then
+  for cf_add_incdir in $cf_searchpath/include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 18707 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:13671: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:18714: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  cf_have_incdir=yes
 fi
 rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:18731: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
+
+	elif test -d $cf_searchpath/../include ; then
+		
+if test -n "$cf_searchpath/../include" ; then
+  for cf_add_incdir in $cf_searchpath/../include
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 18773 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int main() {
+printf("Hello")
+; return 0; }
 EOF
- 
+if { (eval echo configure:18780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
-  echo "$ac_t""no" 1>&6
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  cf_have_incdir=yes
 fi
-done
+rm -f conftest*
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-if test $ac_cv_header_wait_h = yes; then
-cf_wait_headers="$cf_wait_headers
-#include <wait.h>
-"
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
+
+echo "${as_me:-configure}:18797: testing adding $cf_add_incdir to include-path ..." 1>&5
+
+
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
 fi
-if test $ac_cv_header_waitstatus_h = yes; then
-cf_wait_headers="$cf_wait_headers
-#include <waitstatus.h>
-"
+
+	else
+{ echo "configure: error: cannot find libiconv under $withval" 1>&2; exit 1; }
+	fi
+	if test -d $cf_searchpath/lib; then
+		
+if test -n "$cf_searchpath/lib" ; then
+  for cf_add_libdir in $cf_searchpath/lib
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:18837: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
+fi
+
+	elif test -d $cf_searchpath ; then
+		
+if test -n "$cf_searchpath" ; then
+  for cf_add_libdir in $cf_searchpath
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:18867: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
 fi
+
+	else
+{ echo "configure: error: cannot find libiconv under $withval" 1>&2; exit 1; }
+	fi
+done
+
+      ;;
+  esac
+
+   
 fi
 
 
+  echo $ac_n "checking for iconv""... $ac_c" 1>&6
+echo "configure:18889: checking for iconv" >&5
+if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+    
+
+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+# will be set on completion of the AC_TRY_LINK below.
+cf_cv_header_path_iconv=
+cf_cv_library_path_iconv=
+
+
+echo "${as_me:-configure}:18902: testing Starting FIND_LINKAGE(iconv,) ..." 1>&5
+
+
+cf_save_LIBS="$LIBS"
+
+cat > conftest.$ac_ext <<EOF
+#line 18908 "configure"
+#include "confdefs.h"
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int main() {
+
+	iconv_t cd = iconv_open("","");
+	iconv(cd,NULL,NULL,NULL,NULL);
+	iconv_close(cd);
+
+; return 0; }
+EOF
+if { (eval echo configure:18922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+	cf_cv_find_linkage_iconv=yes
+	cf_cv_header_path_iconv=/usr/include
+	cf_cv_library_path_iconv=/usr/lib
 
-echo $ac_n "checking for union wait""... $ac_c" 1>&6
-echo "configure:13712: 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
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
   
-	cat > conftest.$ac_ext <<EOF
-#line 13718 "configure"
+
+LIBS="-liconv  $cf_save_LIBS"
+
+cat > conftest.$ac_ext <<EOF
+#line 18938 "configure"
 #include "confdefs.h"
-$cf_wait_headers
+
+#include <stdlib.h>
+#include <iconv.h>
+
 int main() {
-int x;
-	 int y = WEXITSTATUS(x);
-	 int z = WTERMSIG(x);
-	 wait(&x);
-	
+
+	iconv_t cd = iconv_open("","");
+	iconv(cd,NULL,NULL,NULL,NULL);
+	iconv_close(cd);
+
 ; return 0; }
 EOF
-if { (eval echo configure:13729: \"$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
-	
+if { (eval echo configure:18952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+	cf_cv_find_linkage_iconv=yes
+	cf_cv_header_path_iconv=/usr/include
+	cf_cv_library_path_iconv=/usr/lib
+	cf_cv_library_file_iconv="-liconv"
+
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   
-	cat > conftest.$ac_ext <<EOF
-#line 13740 "configure"
+	cf_cv_find_linkage_iconv=no
+	LIBS="$cf_save_LIBS"
+
+    test -n "$verbose" && echo "	find linkage for iconv library" 1>&6
+
+echo "${as_me:-configure}:18970: testing find linkage for iconv library ..." 1>&5
+
+
+    
+echo "${as_me:-configure}:18974: testing Searching for headers in FIND_LINKAGE(iconv,) ..." 1>&5
+
+
+    cf_save_CPPFLAGS="$CPPFLAGS"
+    cf_test_CPPFLAGS="$CPPFLAGS"
+
+    
+cf_search=
+
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/iconv &&       cf_search="$cf_search $cf_header_path/include/iconv"
+	test -d $cf_header_path/include/iconv/include &&    cf_search="$cf_search $cf_header_path/include/iconv/include"
+	test -d $cf_header_path/iconv/include &&       cf_search="$cf_search $cf_header_path/iconv/include"
+	test -d $cf_header_path/iconv/include/iconv &&    cf_search="$cf_search $cf_header_path/iconv/include/iconv"
+}
+
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
+fi
+
+# add the variations for the package we are looking for
+
+cf_search=
+
+
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/iconv &&       cf_search="$cf_search /usr/include/iconv"
+	test -d /usr/include/iconv/include &&    cf_search="$cf_search /usr/include/iconv/include"
+	test -d /usr/iconv/include &&       cf_search="$cf_search /usr/iconv/include"
+	test -d /usr/iconv/include/iconv &&    cf_search="$cf_search /usr/iconv/include/iconv"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/iconv &&       cf_search="$cf_search $prefix/include/iconv"
+	test -d $prefix/include/iconv/include &&    cf_search="$cf_search $prefix/include/iconv/include"
+	test -d $prefix/iconv/include &&       cf_search="$cf_search $prefix/iconv/include"
+	test -d $prefix/iconv/include/iconv &&    cf_search="$cf_search $prefix/iconv/include/iconv"
+}
+
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/iconv &&       cf_search="$cf_search /usr/local/include/iconv"
+	test -d /usr/local/include/iconv/include &&    cf_search="$cf_search /usr/local/include/iconv/include"
+	test -d /usr/local/iconv/include &&       cf_search="$cf_search /usr/local/iconv/include"
+	test -d /usr/local/iconv/include/iconv &&    cf_search="$cf_search /usr/local/iconv/include/iconv"
+}
+
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/iconv &&       cf_search="$cf_search /opt/include/iconv"
+	test -d /opt/include/iconv/include &&    cf_search="$cf_search /opt/include/iconv/include"
+	test -d /opt/iconv/include &&       cf_search="$cf_search /opt/iconv/include"
+	test -d /opt/iconv/include/iconv &&    cf_search="$cf_search /opt/iconv/include/iconv"
+}
+
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/iconv &&       cf_search="$cf_search $HOME/include/iconv"
+	test -d $HOME/include/iconv/include &&    cf_search="$cf_search $HOME/include/iconv/include"
+	test -d $HOME/iconv/include &&       cf_search="$cf_search $HOME/iconv/include"
+	test -d $HOME/iconv/include/iconv &&    cf_search="$cf_search $HOME/iconv/include/iconv"
+}
+
+
+
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/iconv && cf_search="$cf_search $includedir/iconv"
+}
+
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/iconv && cf_search="$cf_search $oldincludedir/iconv"
+}
+
+cf_search="$cf_search $cf_header_path_list"
+
+    for cf_cv_header_path_iconv in $cf_search
+    do
+      if test -d $cf_cv_header_path_iconv ; then
+        test -n "$verbose" && echo "	... testing $cf_cv_header_path_iconv" 1>&6
+
+echo "${as_me:-configure}:19096: testing ... testing $cf_cv_header_path_iconv ..." 1>&5
+
+
+        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_iconv"
+        cat > conftest.$ac_ext <<EOF
+#line 19101 "configure"
 #include "confdefs.h"
-$cf_wait_headers
+
+#include <stdlib.h>
+#include <iconv.h>
+
 int main() {
-union wait x;
-#ifdef WEXITSTATUS
-	 int y = WEXITSTATUS(x);
-#endif
-#ifdef WTERMSIG
-	 int z = WTERMSIG(x);
-#endif
-	 wait(&x);
-	
+
+	iconv_t cd = iconv_open("","");
+	iconv(cd,NULL,NULL,NULL,NULL);
+	iconv_close(cd);
+
 ; return 0; }
 EOF
-if { (eval echo configure:13755: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19115: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_type_unionwait=yes
-	 echo compiles ok with union wait and possibly macros too 1>&5
-	
+  
+            test -n "$verbose" && echo "	... found iconv headers in $cf_cv_header_path_iconv" 1>&6
+
+echo "${as_me:-configure}:19120: testing ... found iconv headers in $cf_cv_header_path_iconv ..." 1>&5
+
+
+            cf_cv_find_linkage_iconv=maybe
+            cf_test_CPPFLAGS="$CPPFLAGS"
+            break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_type_unionwait=no
-fi
-rm -f conftest*
+  
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            
 fi
 rm -f conftest*
+      fi
+    done
+
+    if test "$cf_cv_find_linkage_iconv" = maybe ; then
+
+      
+echo "${as_me:-configure}:19141: testing Searching for iconv library in FIND_LINKAGE(iconv,) ..." 1>&5
+
+
+      cf_save_LIBS="$LIBS"
+      cf_save_LDFLAGS="$LDFLAGS"
+
+      
+
+      if test "$cf_cv_find_linkage_iconv" != yes ; then
+        
+cf_search=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/iconv &&       cf_search="$cf_search $cf_library_path/lib/iconv"
+	test -d $cf_library_path/lib/iconv/lib &&    cf_search="$cf_search $cf_library_path/lib/iconv/lib"
+	test -d $cf_library_path/iconv/lib &&       cf_search="$cf_search $cf_library_path/iconv/lib"
+	test -d $cf_library_path/iconv/lib/iconv &&    cf_search="$cf_search $cf_library_path/iconv/lib/iconv"
+}
+
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
 fi
 
-echo "$ac_t""$cf_cv_type_unionwait" 1>&6
-test $cf_cv_type_unionwait = yes && cat >> confdefs.h <<\EOF
-#define HAVE_TYPE_UNIONWAIT 1
-EOF
 
+cf_search=
 
 
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr"
+	test -d /usr/lib &&          cf_search="$cf_search /usr/lib"
+	test -d /usr/lib/iconv &&       cf_search="$cf_search /usr/lib/iconv"
+	test -d /usr/lib/iconv/lib &&    cf_search="$cf_search /usr/lib/iconv/lib"
+	test -d /usr/iconv/lib &&       cf_search="$cf_search /usr/iconv/lib"
+	test -d /usr/iconv/lib/iconv &&    cf_search="$cf_search /usr/iconv/lib/iconv"
+}
 
-echo $ac_n "checking if the system function returns usable child-status""... $ac_c" 1>&6
-echo "configure:13780: 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
-  
-	if test "$cross_compiling" = yes; then
-  cf_cv_system_status=unknown
-else
-  cat > conftest.$ac_ext <<EOF
-#line 13789 "configure"
-#include "confdefs.h"
 
-#include <stdio.h>
-#include <signal.h>
-#if HAVE_SYS_WAIT_H
-#include <sys/wait.h>
-#endif
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $prefix"
+	test -d $prefix/lib &&          cf_search="$cf_search $prefix/lib"
+	test -d $prefix/lib/iconv &&       cf_search="$cf_search $prefix/lib/iconv"
+	test -d $prefix/lib/iconv/lib &&    cf_search="$cf_search $prefix/lib/iconv/lib"
+	test -d $prefix/iconv/lib &&       cf_search="$cf_search $prefix/iconv/lib"
+	test -d $prefix/iconv/lib/iconv &&    cf_search="$cf_search $prefix/iconv/lib/iconv"
+}
 
-RETSIGTYPE signal_handler (int sig)
-{
-#if HAVE_TYPE_UNIONWAIT
-	union wait wait_status;
-#else
-	int wait_status = 1;
-#endif
-	int system_status;
-	wait (&wait_status);
-	system_status = WEXITSTATUS(wait_status); /* should be nonzero */
-	exit(system_status != 23);
+
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /usr/local"
+	test -d /usr/local/lib &&          cf_search="$cf_search /usr/local/lib"
+	test -d /usr/local/lib/iconv &&       cf_search="$cf_search /usr/local/lib/iconv"
+	test -d /usr/local/lib/iconv/lib &&    cf_search="$cf_search /usr/local/lib/iconv/lib"
+	test -d /usr/local/iconv/lib &&       cf_search="$cf_search /usr/local/iconv/lib"
+	test -d /usr/local/iconv/lib/iconv &&    cf_search="$cf_search /usr/local/iconv/lib/iconv"
 }
 
-int main()
-{
-	/* this looks weird, but apparently the SIGCHLD gets there first on
-	 * machines where 'system()' doesn't return a usable code, so ...
-	 */
-	signal (SIGCHLD, signal_handler);
-	system("exit 23");
-	exit(1);
+
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under /opt"
+	test -d /opt/lib &&          cf_search="$cf_search /opt/lib"
+	test -d /opt/lib/iconv &&       cf_search="$cf_search /opt/lib/iconv"
+	test -d /opt/lib/iconv/lib &&    cf_search="$cf_search /opt/lib/iconv/lib"
+	test -d /opt/iconv/lib &&       cf_search="$cf_search /opt/iconv/lib"
+	test -d /opt/iconv/lib/iconv &&    cf_search="$cf_search /opt/iconv/lib/iconv"
 }
 
-EOF
-if { (eval echo configure:13822: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  if test "$cross_compiling" = yes; then
-  cf_cv_system_status=unknown
-else
-  cat > conftest.$ac_ext <<EOF
-#line 13833 "configure"
+
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for lib-directories under $HOME"
+	test -d $HOME/lib &&          cf_search="$cf_search $HOME/lib"
+	test -d $HOME/lib/iconv &&       cf_search="$cf_search $HOME/lib/iconv"
+	test -d $HOME/lib/iconv/lib &&    cf_search="$cf_search $HOME/lib/iconv/lib"
+	test -d $HOME/iconv/lib &&       cf_search="$cf_search $HOME/iconv/lib"
+	test -d $HOME/iconv/lib/iconv &&    cf_search="$cf_search $HOME/iconv/lib/iconv"
+}
+
+
+
+cf_search="$cf_library_path_list $cf_search"
+
+        for cf_cv_library_path_iconv in $cf_search
+        do
+          if test -d $cf_cv_library_path_iconv ; then
+            test -n "$verbose" && echo "	... testing $cf_cv_library_path_iconv" 1>&6
+
+echo "${as_me:-configure}:19249: testing ... testing $cf_cv_library_path_iconv ..." 1>&5
+
+
+            CPPFLAGS="$cf_test_CPPFLAGS"
+            LIBS="-liconv  $cf_save_LIBS"
+            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_iconv"
+            cat > conftest.$ac_ext <<EOF
+#line 19256 "configure"
 #include "confdefs.h"
-int main() { exit(system("exit 23") != (23 << 8)); }
+
+#include <stdlib.h>
+#include <iconv.h>
+
+int main() {
+
+	iconv_t cd = iconv_open("","");
+	iconv(cd,NULL,NULL,NULL,NULL);
+	iconv_close(cd);
+
+; return 0; }
 EOF
-if { (eval echo configure:13837: \"$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
+if { (eval echo configure:19270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+                test -n "$verbose" && echo "	... found iconv library in $cf_cv_library_path_iconv" 1>&6
+
+echo "${as_me:-configure}:19275: testing ... found iconv library in $cf_cv_library_path_iconv ..." 1>&5
+
+
+                cf_cv_find_linkage_iconv=yes
+                cf_cv_library_file_iconv="-liconv"
+                break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_system_status=unknown
-fi
-rm -fr conftest*
-fi
 
+  
+                CPPFLAGS="$cf_save_CPPFLAGS"
+                LIBS="$cf_save_LIBS"
+                LDFLAGS="$cf_save_LDFLAGS"
+                
 fi
-rm -fr conftest*
-fi
+rm -rf conftest*
+          fi
+        done
+        CPPFLAGS="$cf_save_CPPFLAGS"
+        LDFLAGS="$cf_save_LDFLAGS"
+      fi
 
+    else
+      cf_cv_find_linkage_iconv=no
+    fi
+    
+fi
+rm -rf conftest*
 
 fi
+rm -rf conftest*
 
-echo "$ac_t""$cf_cv_system_status" 1>&6
-test $cf_cv_system_status = no && cat >> confdefs.h <<\EOF
-#define USE_SYSTEM_STATUS 1
-EOF
+LIBS="$cf_save_LIBS"
 
+if test "$cf_cv_find_linkage_iconv" = yes ; then
+am_cv_func_iconv=yes
+else
+am_cv_func_iconv="no, consider installing GNU libiconv"
+fi
 
+fi
 
-# Check if we are trying to use curses+color, but cannot
-if test $use_color = yes ; then
-	if test $use_curses = no ; then
-		cat >> confdefs.h <<\EOF
-#define HAVE_COLOR 1
-EOF
+echo "$ac_t""$am_cv_func_iconv" 1>&6
 
-	elif test $cf_with_screen = pdcurses ; then
-		cat >> confdefs.h <<\EOF
-#define HAVE_COLOR 1
+  if test "$am_cv_func_iconv" = yes; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_ICONV 1
 EOF
 
-	else
-	 	
 
-if test "$cf_cv_ncurses_version" != no ; then
-echo $ac_n "checking for obsolete/broken version of ncurses""... $ac_c" 1>&6
-echo "configure:13880: checking for obsolete/broken version of ncurses" >&5
-if eval "test \"`echo '$''{'cf_cv_ncurses_broken'+set}'`\" = set"; then
+    echo $ac_n "checking if the declaration of iconv() needs const.""... $ac_c" 1>&6
+echo "configure:19327: checking if the declaration of iconv() needs const." >&5
+if eval "test \"`echo '$''{'am_cv_proto_iconv_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
-cat > conftest.$ac_ext <<EOF
-#line 13886 "configure"
+      cat > conftest.$ac_ext <<EOF
+#line 19333 "configure"
 #include "confdefs.h"
 
-#include <${cf_cv_ncurses_header-curses.h}>
-int main() {
-
-#if defined(NCURSES_VERSION) && defined(wgetbkgd)
-	make an error
+#include <stdlib.h>
+#include <iconv.h>
+ 
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
 #else
-	int x = 1
+size_t iconv();
 #endif
 
+int main() {
+
 ; return 0; }
 EOF
-if { (eval echo configure:13900: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:19353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  cf_cv_ncurses_broken=no
+  am_cv_proto_iconv_const=no
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_ncurses_broken=yes
+  am_cv_proto_iconv_const=yes
 fi
 rm -f conftest*
-
 fi
 
-echo "$ac_t""$cf_cv_ncurses_broken" 1>&6
-if test "$cf_cv_ncurses_broken" = yes ; then
-	echo "configure: warning: hmm... you should get an up-to-date version of ncurses" 1>&2
-	cat >> confdefs.h <<\EOF
-#define NCURSES_BROKEN 1
-EOF
+echo "$ac_t""$am_cv_proto_iconv_const" 1>&6
 
-fi
-fi
+    if test "$am_cv_proto_iconv_const" = yes ; then
+      am_cv_proto_iconv_arg1="const"
+    else
+      am_cv_proto_iconv_arg1=""
+    fi
 
-		
-echo $ac_n "checking if curses supports color attributes""... $ac_c" 1>&6
-echo "configure:13925: 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 13931 "configure"
-#include "confdefs.h"
+    cat >> confdefs.h <<EOF
+#define ICONV_CONST $am_cv_proto_iconv_arg1
+EOF
+
+  fi
 
-#include <${cf_cv_ncurses_header-curses.h}>
+  LIBICONV=
+  if test "$cf_cv_find_linkage_iconv" = yes; then
+    
+if test -n "$cf_cv_header_path_iconv" ; then
+  for cf_add_incdir in $cf_cv_header_path_iconv
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
 
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 19406 "configure"
+#include "confdefs.h"
+#include <stdio.h>
 int main() {
-chtype x = COLOR_BLUE;
-	 has_colors();
-	 start_color();
-#ifndef NCURSES_BROKEN
-	 wbkgd(curscr, getbkgd(stdscr)); /* X/Open XPG4 aka SVr4 Curses */
-#endif
-	
+printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:13946: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  cf_cv_color_curses=yes
+if { (eval echo configure:19413: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  cf_cv_color_curses=no
+  cf_have_incdir=yes
 fi
 rm -f conftest*
-	
-fi
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-echo "$ac_t""$cf_cv_color_curses" 1>&6
-if test $cf_cv_color_curses = yes ; then
-	cat >> confdefs.h <<\EOF
-#define COLOR_CURSES 1
-EOF
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-	test ".$cf_cv_ncurses_broken" != .yes && cat >> confdefs.h <<\EOF
-#define HAVE_GETBKGD 1
-EOF
+echo "${as_me:-configure}:19430: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-fi
 
-		if test $cf_cv_color_curses = yes ; then
-			cat >> confdefs.h <<\EOF
-#define HAVE_COLOR 1
-EOF
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
 		else
-			echo "configure: warning: This curses library does not support color" 1>&2
+		  break
 		fi
-	fi
+	  fi
+	done
+  done
 fi
 
-# GCC and Apollo compilers are quite noisy about signal constants (quiet them).
-if test -n "$GCC"; then
-	check_sig_const=yes
-elif test -f /sys/dm/dm ; then
-	check_sig_const=yes
-elif test -f /sys/dm/spm ; then
-	check_sig_const=yes
-else
-	check_sig_const=no
+    if test -n "$cf_cv_library_file_iconv" ; then
+      LIBICONV="-liconv"
+      
+if test -n "$cf_cv_library_path_iconv" ; then
+  for cf_add_libdir in $cf_cv_library_path_iconv
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
+
+echo "${as_me:-configure}:19468: testing adding $cf_add_libdir to library-path ..." 1>&5
+
+
+        LDFLAGS="-L$cf_add_libdir $LDFLAGS"
+      fi
+    fi
+  done
 fi
 
-if test $check_sig_const = yes ; then
-	
+    fi
+  fi
 
-echo $ac_n "checking for redefinable signal constants""... $ac_c" 1>&6
-echo "configure:13997: 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
   
-cf_cv_sig_const=no
-if test -n "$cf_cv_sig_args"; then
-	cf_test=`echo $cf_cv_sig_args|sed -e s/sig//`
-	if test "$cross_compiling" = yes; then
-  cf_cv_sig_const=unknown
+
+   
+  echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6
+echo "configure:19484: 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 14009 "configure"
+#line 19489 "configure"
 #include "confdefs.h"
+#include <langinfo.h>
+int main() {
+char* cs = nl_langinfo(CODESET);
+; return 0; }
+EOF
+if { (eval echo configure:19496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  am_cv_langinfo_codeset=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-#define NEW_DFL	((RETSIGTYPE (*)($cf_test))0)
-#define NEW_IGN	((RETSIGTYPE (*)($cf_test))1)
-#define NEW_ERR	((RETSIGTYPE (*)($cf_test))-1)
+  am_cv_langinfo_codeset=no
+fi
+rm -rf conftest*
+    
+fi
 
-#include <signal.h>
+echo "$ac_t""$am_cv_langinfo_codeset" 1>&6
+  if test $am_cv_langinfo_codeset = yes; then
+    cat >> confdefs.h <<\EOF
+#define HAVE_LANGINFO_CODESET 1
+EOF
 
-int main()
-{
-	if (NEW_DFL != SIG_DFL
-	 || NEW_IGN != SIG_IGN
-	 || NEW_ERR != SIG_ERR
-	 /* at least one system won't let me redefine these! */
-#undef SIG_DFL
-#undef SIG_IGN
-#undef SIG_ERR
-#define SIG_DFL NEW_DFL
-#define SIG_IGN NEW_IGN
-#define SIG_ERR NEW_ERR
-	 || NEW_DFL != SIG_DFL)
-	 	exit(1);
-	signal(SIGINT, SIG_DFL);
-	exit(0);
-}
+  fi
+
+   if test $ac_cv_header_locale_h = yes; then
+    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:19519: 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 19524 "configure"
+#include "confdefs.h"
+#include <locale.h>
+int main() {
+return LC_MESSAGES
+; return 0; }
 EOF
-if { (eval echo configure:14036: \"$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
+if { (eval echo configure:19531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  am_cv_val_LC_MESSAGES=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_sig_const=no
+
+  am_cv_val_LC_MESSAGES=no
 fi
-rm -fr conftest*
+rm -rf conftest*
 fi
 
-fi
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
 
+    fi
+  fi
+   echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
+echo "configure:19552: checking whether NLS is requested" >&5
+    
+  
+# Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+  enableval="$enable_nls"
+  USE_NLS=$enableval
+else
+  USE_NLS=yes
 fi
 
-echo "$ac_t""$cf_cv_sig_const" 1>&6
-test "$cf_cv_sig_const" = yes && cat >> confdefs.h <<\EOF
-#define DECL_SIG_CONST 1
-EOF
+  echo "$ac_t""$USE_NLS" 1>&6
+  
+
+  BUILD_INCLUDED_LIBINTL=no
+  USE_INCLUDED_LIBINTL=no
+  INTLLIBS=
 
+    if test "$USE_NLS" = "yes"; then
+    cat >> confdefs.h <<\EOF
+#define ENABLE_NLS 1
+EOF
 
+    echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
+echo "configure:19576: 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
+  withval="$with_included_gettext"
+  nls_cv_force_use_gnu_gettext=$withval
+else
+  nls_cv_force_use_gnu_gettext=no
 fi
 
+    echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
+
+    nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+    if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+                        CATOBJEXT=NONE
+
+      cf_save_LIBS_1="$LIBS"
+      LIBS="$LIBICONV $LIBS"
+      echo $ac_n "checking for libintl.h and gettext()""... $ac_c" 1>&6
+echo "configure:19595: checking for libintl.h and gettext()" >&5
+if eval "test \"`echo '$''{'cf_cv_func_gettext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+        
+
+# If the linkage is not already in the $CPPFLAGS/$LDFLAGS configuration, these
+# will be set on completion of the AC_TRY_LINK below.
+cf_cv_header_path_intl=
+cf_cv_library_path_intl=
+
+
+echo "${as_me:-configure}:19608: testing Starting FIND_LINKAGE(intl,) ..." 1>&5
+
+
+cf_save_LIBS="$LIBS"
+
+cat > conftest.$ac_ext <<EOF
+#line 19614 "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:19629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+	cf_cv_find_linkage_intl=yes
+	cf_cv_header_path_intl=/usr/include
+	cf_cv_library_path_intl=/usr/lib
 
-echo $ac_n "checking for ANSI qsort""... $ac_c" 1>&6
-echo "configure:14062: checking for ANSI qsort" >&5
-if eval "test \"`echo '$''{'cf_cv_comptype'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
 else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
   
-	cat > conftest.$ac_ext <<EOF
-#line 14068 "configure"
+
+LIBS="-lintl  $cf_save_LIBS"
+
+cat > conftest.$ac_ext <<EOF
+#line 19645 "configure"
 #include "confdefs.h"
 
-#ifdef HAVE_STDLIB_H
-#include <stdlib.h>
-#endif
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+
 int main() {
-extern int compare(const void *, const void *);
-	 char *foo = "string";
-	 qsort(foo, sizeof(foo)/sizeof(*foo), sizeof(*foo), compare)
+
+    bindtextdomain ("", "");
+    return (int) gettext ("")
+            
+             + _nl_msg_cat_cntr
+
 ; return 0; }
 EOF
-if { (eval echo configure:14080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  cf_cv_comptype=yes
+if { (eval echo configure:19660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+	cf_cv_find_linkage_intl=yes
+	cf_cv_header_path_intl=/usr/include
+	cf_cv_library_path_intl=/usr/lib
+	cf_cv_library_file_intl="-lintl"
+
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_cv_comptype=no
-fi
-rm -f conftest*
 
-fi
+  
+	cf_cv_find_linkage_intl=no
+	LIBS="$cf_save_LIBS"
 
-echo "$ac_t""$cf_cv_comptype" 1>&6
-if test $cf_cv_comptype = yes; then
-	cat >> confdefs.h <<\EOF
-#define HAVE_COMPTYPE_VOID 1
-EOF
+    test -n "$verbose" && echo "	find linkage for intl library" 1>&6
 
-else
-	cat >> confdefs.h <<\EOF
-#define HAVE_COMPTYPE_CHAR 1
-EOF
+echo "${as_me:-configure}:19678: testing find linkage for intl library ..." 1>&5
 
-fi
 
+    
+echo "${as_me:-configure}:19682: testing Searching for headers in FIND_LINKAGE(intl,) ..." 1>&5
 
-echo $ac_n "checking if application can dump core""... $ac_c" 1>&6
-echo "configure:14108: 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
-  
-	if test "$cross_compiling" = yes; then
-  cf_cv_corefile=unknown
-else
-  cat > conftest.$ac_ext <<EOF
-#line 14117 "configure"
-#include "confdefs.h"
 
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-int found()
-{
-	struct stat sb;
-	return ((stat("core", &sb) == 0			/* UNIX */
-	   ||    stat("conftest.core", &sb) == 0	/* FreeBSD */
-		)
-		&& ((sb.st_mode & S_IFMT) == S_IFREG));
-}
-int main()
-{
-#ifdef __amiga__
-/* Nicholas d'Alterio (nagd@ic.ac.uk) reports that the check for ability to
- * core dump causes the machine to crash - reason unknown (gcc 2.7.2)
- */
-	exit(1);
-#else
-	int	pid, status;
-	if (found())
-		unlink("core");
-	if (found())
-		exit(1);
-	if ((pid = fork()) != 0) {
-		while (wait(&status) <= 0)
-			;
-	} else {
-		abort();	/* this will dump core, if anything will */
-	}
-	if (found()) {
-		unlink("core");
-		exit(0);
-	}
-	exit(1);
-#endif
+    cf_save_CPPFLAGS="$CPPFLAGS"
+    cf_test_CPPFLAGS="$CPPFLAGS"
+
+    
+cf_search=
+
+# collect the current set of include-directories from compiler flags
+cf_header_path_list=""
+if test -n "${CFLAGS}${CPPFLAGS}" ; then
+	for cf_header_path in $CPPFLAGS $CFLAGS
+	do
+		case $cf_header_path in #(vi
+		-I*)
+			cf_header_path=`echo ".$cf_header_path" |sed -e 's/^...//' -e 's,/include$,,'`
+			
+test "$cf_header_path" != "NONE" && \
+test -d "$cf_header_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $cf_header_path"
+	test -d $cf_header_path/include &&          cf_search="$cf_search $cf_header_path/include"
+	test -d $cf_header_path/include/intl &&       cf_search="$cf_search $cf_header_path/include/intl"
+	test -d $cf_header_path/include/intl/include &&    cf_search="$cf_search $cf_header_path/include/intl/include"
+	test -d $cf_header_path/intl/include &&       cf_search="$cf_search $cf_header_path/intl/include"
+	test -d $cf_header_path/intl/include/intl &&    cf_search="$cf_search $cf_header_path/intl/include/intl"
 }
-EOF
-if { (eval echo configure:14158: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_corefile=no
-fi
-rm -fr conftest*
-fi
 
+			cf_header_path_list="$cf_header_path_list $cf_search"
+			;;
+		esac
+	done
 fi
 
-echo "$ac_t""$cf_cv_corefile" 1>&6
-test $cf_cv_corefile = yes && cat >> confdefs.h <<\EOF
-#define HAVE_COREFILE 1
-EOF
+# add the variations for the package we are looking for
 
+cf_search=
 
 
-### test this last, since it uses a partly-built autoconf.h
-# Setup includes for test-program to verify declarations
-CHECK_DECL_FLAG="-I$srcdir/include -I$srcdir/pcre"
-CHECK_DECL_HDRS='
-#define M_UNIX
-#define __CPROTO__
-#define HAVE_CONFDEFS_H
-#include <tin.h>'
-TIN_DECL_HDRS="$CHECK_DECL_HDRS"
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr"
+	test -d /usr/include &&          cf_search="$cf_search /usr/include"
+	test -d /usr/include/intl &&       cf_search="$cf_search /usr/include/intl"
+	test -d /usr/include/intl/include &&    cf_search="$cf_search /usr/include/intl/include"
+	test -d /usr/intl/include &&       cf_search="$cf_search /usr/intl/include"
+	test -d /usr/intl/include/intl &&    cf_search="$cf_search /usr/intl/include/intl"
+}
 
-for ac_func in \
-	errno \
-	getenv \
-	getlogin \
-	getpwnam \
-	popen \
-	strchr \
-	strcasestr \
-	strsep \
 
-do
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for include-directories under $prefix"
+	test -d $prefix/include &&          cf_search="$cf_search $prefix/include"
+	test -d $prefix/include/intl &&       cf_search="$cf_search $prefix/include/intl"
+	test -d $prefix/include/intl/include &&    cf_search="$cf_search $prefix/include/intl/include"
+	test -d $prefix/intl/include &&       cf_search="$cf_search $prefix/intl/include"
+	test -d $prefix/intl/include/intl &&    cf_search="$cf_search $prefix/intl/include/intl"
+}
 
-ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
+test "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /usr/local"
+	test -d /usr/local/include &&          cf_search="$cf_search /usr/local/include"
+	test -d /usr/local/include/intl &&       cf_search="$cf_search /usr/local/include/intl"
+	test -d /usr/local/include/intl/include &&    cf_search="$cf_search /usr/local/include/intl/include"
+	test -d /usr/local/intl/include &&       cf_search="$cf_search /usr/local/intl/include"
+	test -d /usr/local/intl/include/intl &&    cf_search="$cf_search /usr/local/intl/include/intl"
+}
 
-echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
-echo "configure:14205: 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 14211) testing for missing "${ac_func}" external ..." 1>&5
+test "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under /opt"
+	test -d /opt/include &&          cf_search="$cf_search /opt/include"
+	test -d /opt/include/intl &&       cf_search="$cf_search /opt/include/intl"
+	test -d /opt/include/intl/include &&    cf_search="$cf_search /opt/include/intl/include"
+	test -d /opt/intl/include &&       cf_search="$cf_search /opt/intl/include"
+	test -d /opt/intl/include/intl &&    cf_search="$cf_search /opt/intl/include/intl"
+}
 
-cf_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
-cat > conftest.$ac_ext <<EOF
-#line 14216 "configure"
-#include "confdefs.h"
 
-$CHECK_DECL_HDRS
+test "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for include-directories under $HOME"
+	test -d $HOME/include &&          cf_search="$cf_search $HOME/include"
+	test -d $HOME/include/intl &&       cf_search="$cf_search $HOME/include/intl"
+	test -d $HOME/include/intl/include &&    cf_search="$cf_search $HOME/include/intl/include"
+	test -d $HOME/intl/include &&       cf_search="$cf_search $HOME/intl/include"
+	test -d $HOME/intl/include/intl &&    cf_search="$cf_search $HOME/intl/include/intl"
+}
 
-#undef ${ac_func}
-struct zowie { int a; double b; struct zowie *c; char d; };
-extern struct zowie *${ac_func}();
 
-int main() {
 
+test "$includedir" != NONE && \
+test "$includedir" != "/usr/include" && \
+test -d "$includedir" && {
+	test -d $includedir &&    cf_search="$cf_search $includedir"
+	test -d $includedir/intl && cf_search="$cf_search $includedir/intl"
+}
 
-; return 0; }
-EOF
-if { (eval echo configure:14230: \"$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
+test "$oldincludedir" != NONE && \
+test "$oldincludedir" != "/usr/include" && \
+test -d "$oldincludedir" && {
+	test -d $oldincludedir    && cf_search="$cf_search $oldincludedir"
+	test -d $oldincludedir/intl && cf_search="$cf_search $oldincludedir/intl"
+}
 
-cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cf_search="$cf_search $cf_header_path_list"
 
-cat > conftest.$ac_ext <<EOF
-#line 14238 "configure"
+    for cf_cv_header_path_intl in $cf_search
+    do
+      if test -d $cf_cv_header_path_intl ; then
+        test -n "$verbose" && echo "	... testing $cf_cv_header_path_intl" 1>&6
+
+echo "${as_me:-configure}:19804: testing ... testing $cf_cv_header_path_intl ..." 1>&5
+
+
+        CPPFLAGS="$cf_save_CPPFLAGS -I$cf_cv_header_path_intl"
+        cat > conftest.$ac_ext <<EOF
+#line 19809 "configure"
 #include "confdefs.h"
 
-#define DECL_${cf_1_up}
-$CHECK_DECL_HDRS
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
 
 int main() {
-long x = 0
+
+    bindtextdomain ("", "");
+    return (int) gettext ("")
+            
+             + _nl_msg_cat_cntr
+
 ; return 0; }
 EOF
-if { (eval echo configure:14248: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=yes'
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+if { (eval echo configure:19824: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
-fi
-rm -f conftest*
-else
-eval 'cf_cv_func_'${ac_func}'=yes'
-fi
+  
+            test -n "$verbose" && echo "	... found intl headers in $cf_cv_header_path_intl" 1>&6
+
+echo "${as_me:-configure}:19829: testing ... found intl headers in $cf_cv_header_path_intl ..." 1>&5
 
+
+            cf_cv_find_linkage_intl=maybe
+            cf_test_CPPFLAGS="$CPPFLAGS"
+            break
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
+  
+            CPPFLAGS="$cf_save_CPPFLAGS"
+            
 fi
 rm -f conftest*
-CFLAGS="$cf_save_CFLAGS"
+      fi
+    done
+
+    if test "$cf_cv_find_linkage_intl" = maybe ; then
+
+      
+echo "${as_me:-configure}:19850: testing Searching for intl library in FIND_LINKAGE(intl,) ..." 1>&5
+
+
+      cf_save_LIBS="$LIBS"
+      cf_save_LDFLAGS="$LDFLAGS"
+
+      
+
+      if test "$cf_cv_find_linkage_intl" != yes ; then
+        
+cf_search=
+cf_library_path_list=""
+if test -n "${LDFLAGS}${LIBS}" ; then
+	for cf_library_path in $LDFLAGS $LIBS
+	do
+		case $cf_library_path in #(vi
+		-L*)
+			cf_library_path=`echo ".$cf_library_path" |sed -e 's/^...//' -e 's,/lib$,,'`
+			
+test "$cf_library_path" != "NONE" && \
+test -d "$cf_library_path" && \
+ {
+	test -n "$verbose" && echo "	... testing for lib-directories under $cf_library_path"
+	test -d $cf_library_path/lib &&          cf_search="$cf_search $cf_library_path/lib"
+	test -d $cf_library_path/lib/intl &&       cf_search="$cf_search $cf_library_path/lib/intl"
+	test -d $cf_library_path/lib/intl/lib &&    cf_search="$cf_search $cf_library_path/lib/intl/lib"
+	test -d $cf_library_path/intl/lib &&       cf_search="$cf_search $cf_library_path/intl/lib"
+	test -d $cf_library_path/intl/lib/intl &&    cf_search="$cf_search $cf_library_path/intl/lib/intl"
+}
 
+			cf_library_path_list="$cf_library_path_list $cf_search"
+			;;
+		esac
+	done
 fi
 
-eval 'cf_result=$cf_cv_func_'${ac_func}
-echo "$ac_t""$cf_result" 1>&6
-test $cf_result = yes && cat >> confdefs.h <<EOF
-#define DECL_${ac_tr_func} 1
-EOF
 
-done
+cf_search=
 
 
-CHECK_DECL_HDRS="$TIN_DECL_HDRS
-#include <tnntp.h>"
-for ac_func in \
-	gethostbyname \
-	getservbyname \
-	inet_aton \
-	inet_ntoa \
-	socket \
+test "/usr" != "$prefix" && \
+test -d "/usr" && \
+(test $prefix = NONE || test "/usr" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for 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"
+	test -d /usr/intl/lib/intl &&    cf_search="$cf_search /usr/intl/lib/intl"
+}
+
+
+test "$prefix" != "NONE" && \
+test -d "$prefix" && \
+ {
+	test -n "$verbose" && echo "	... testing for 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 "/usr/local" != "$prefix" && \
+test -d "/usr/local" && \
+(test $prefix = NONE || test "/usr/local" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for 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 "/opt" != "$prefix" && \
+test -d "/opt" && \
+(test $prefix = NONE || test "/opt" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for 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 "$HOME" != "$prefix" && \
+test -d "$HOME" && \
+(test $prefix = NONE || test "$HOME" != "$prefix") && {
+	test -n "$verbose" && echo "	... testing for 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"
+	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"
+}
+
+
+
+cf_search="$cf_library_path_list $cf_search"
+
+        for cf_cv_library_path_intl in $cf_search
+        do
+          if test -d $cf_cv_library_path_intl ; then
+            test -n "$verbose" && echo "	... testing $cf_cv_library_path_intl" 1>&6
+
+echo "${as_me:-configure}:19958: testing ... testing $cf_cv_library_path_intl ..." 1>&5
+
+
+            CPPFLAGS="$cf_test_CPPFLAGS"
+            LIBS="-lintl  $cf_save_LIBS"
+            LDFLAGS="$cf_save_LDFLAGS -L$cf_cv_library_path_intl"
+            cat > conftest.$ac_ext <<EOF
+#line 19965 "configure"
+#include "confdefs.h"
+
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+
+int main() {
+
+    bindtextdomain ("", "");
+    return (int) gettext ("")
+            
+             + _nl_msg_cat_cntr
 
-do
+; return 0; }
+EOF
+if { (eval echo configure:19980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  
+                test -n "$verbose" && echo "	... found intl library in $cf_cv_library_path_intl" 1>&6
 
-ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+echo "${as_me:-configure}:19985: testing ... found intl library in $cf_cv_library_path_intl ..." 1>&5
 
 
-echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
-echo "configure:14297: 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
+                cf_cv_find_linkage_intl=yes
+                cf_cv_library_file_intl="-lintl"
+                break
 else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
   
+                CPPFLAGS="$cf_save_CPPFLAGS"
+                LIBS="$cf_save_LIBS"
+                LDFLAGS="$cf_save_LDFLAGS"
+                
+fi
+rm -rf conftest*
+          fi
+        done
+        CPPFLAGS="$cf_save_CPPFLAGS"
+        LDFLAGS="$cf_save_LDFLAGS"
+      fi
 
-echo "(line 14303) testing for missing "${ac_func}" external ..." 1>&5
+    else
+      cf_cv_find_linkage_intl=no
+    fi
+    
+fi
+rm -rf conftest*
 
-cf_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
-cat > conftest.$ac_ext <<EOF
-#line 14308 "configure"
-#include "confdefs.h"
+fi
+rm -rf conftest*
 
-$CHECK_DECL_HDRS
+LIBS="$cf_save_LIBS"
 
-#undef ${ac_func}
-struct zowie { int a; double b; struct zowie *c; char d; };
-extern struct zowie *${ac_func}();
+if test "$cf_cv_find_linkage_intl" = yes ; then
+cf_cv_func_gettext=yes
+else
+cf_cv_func_gettext=no
+fi
 
-int main() {
+      
+fi
 
+echo "$ac_t""$cf_cv_func_gettext" 1>&6
+      LIBS="$cf_save_LIBS_1"
 
-; return 0; }
+      if test "$cf_cv_func_gettext" = yes ; then
+        cat >> confdefs.h <<\EOF
+#define HAVE_LIBINTL_H 1
 EOF
-if { (eval echo configure:14322: \"$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
 
-cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-cat > conftest.$ac_ext <<EOF
-#line 14330 "configure"
-#include "confdefs.h"
+                                        if test "$PACKAGE" != gettext; then
+          cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
+EOF
 
-#define DECL_${cf_1_up}
-$CHECK_DECL_HDRS
 
+          
+if test -n "$cf_cv_header_path_intl" ; then
+  for cf_add_incdir in $cf_cv_header_path_intl
+  do
+	while test $cf_add_incdir != /usr/include
+	do
+	  if test -d $cf_add_incdir
+	  then
+		cf_have_incdir=no
+		if test -n "$CFLAGS$CPPFLAGS" ; then
+		  # a loop is needed to ensure we can add subdirs of existing dirs
+		  for cf_test_incdir in $CFLAGS $CPPFLAGS ; do
+			if test ".$cf_test_incdir" = ".-I$cf_add_incdir" ; then
+			  cf_have_incdir=yes; break
+			fi
+		  done
+		fi
+
+		if test "$cf_have_incdir" = no ; then
+		  if test "$cf_add_incdir" = /usr/local/include ; then
+			if test "$GCC" = yes
+			then
+			  cf_save_CPPFLAGS=$CPPFLAGS
+			  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
+			  cat > conftest.$ac_ext <<EOF
+#line 20069 "configure"
+#include "confdefs.h"
+#include <stdio.h>
 int main() {
-long x = 0
+printf("Hello")
 ; return 0; }
 EOF
-if { (eval echo configure:14340: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=yes'
+if { (eval echo configure:20076: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
+  cf_have_incdir=yes
 fi
 rm -f conftest*
-else
-eval 'cf_cv_func_'${ac_func}'=yes'
-fi
+			  CPPFLAGS=$cf_save_CPPFLAGS
+			fi
+		  fi
+		fi
 
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
-fi
-rm -f conftest*
-CFLAGS="$cf_save_CFLAGS"
+		if test "$cf_have_incdir" = no ; then
+		  test -n "$verbose" && echo "	adding $cf_add_incdir to include-path" 1>&6
 
-fi
+echo "${as_me:-configure}:20093: testing adding $cf_add_incdir to include-path ..." 1>&5
 
-eval 'cf_result=$cf_cv_func_'${ac_func}
-echo "$ac_t""$cf_result" 1>&6
-test $cf_result = yes && cat >> confdefs.h <<EOF
-#define DECL_${ac_tr_func} 1
-EOF
 
-done
+		  CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
 
+		  cf_top_incdir=`echo $cf_add_incdir | sed -e 's%/include/.*$%/include%'`
+		  test "$cf_top_incdir" = "$cf_add_incdir" && break
+		  cf_add_incdir="$cf_top_incdir"
+		else
+		  break
+		fi
+	  fi
+	done
+  done
+fi
 
-if test $use_curses = no ; then
-CHECK_DECL_HDRS="$TIN_DECL_HDRS
-#include <tcurses.h>"
-for ac_func in \
-	tgetstr \
-	tgoto \
 
-do
+          if test -n "$cf_cv_library_file_intl" ; then
+                                                INTLLIBS="$cf_cv_library_file_intl $LIBICONV"
+            
+if test -n "$cf_cv_library_path_intl" ; then
+  for cf_add_libdir in $cf_cv_library_path_intl
+  do
+    if test $cf_add_libdir = /usr/lib ; then
+      :
+    elif test -d $cf_add_libdir
+    then
+      cf_have_libdir=no
+      if test -n "$LDFLAGS$LIBS" ; then
+        # a loop is needed to ensure we can add subdirs of existing dirs
+        for cf_test_libdir in $LDFLAGS $LIBS ; do
+          if test ".$cf_test_libdir" = ".-L$cf_add_libdir" ; then
+            cf_have_libdir=yes; break
+          fi
+        done
+      fi
+      if test "$cf_have_libdir" = no ; then
+        test -n "$verbose" && echo "	adding $cf_add_libdir to library-path" 1>&6
 
-ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+echo "${as_me:-configure}:20132: testing adding $cf_add_libdir to library-path ..." 1>&5
 
 
-echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
-echo "configure:14387: checking for missing "${ac_func}" extern" >&5
-if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then
+        INTLLIBS="-L$cf_add_libdir $INTLLIBS"
+      fi
+    fi
+  done
+fi
+
+          fi
+
+          gt_save_LIBS="$LIBS"
+          LIBS="$LIBS $INTLLIBS"
+          for ac_func in dcgettext
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:20148: 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 20153 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:20176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-echo "(line 14393) testing for missing "${ac_func}" external ..." 1>&5
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -rf conftest*
+fi
 
-cf_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
-cat > conftest.$ac_ext <<EOF
-#line 14398 "configure"
-#include "confdefs.h"
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
 
-$CHECK_DECL_HDRS
+          LIBS="$gt_save_LIBS"
 
-#undef ${ac_func}
-struct zowie { int a; double b; struct zowie *c; char d; };
-extern struct zowie *${ac_func}();
+                    # Extract the first word of "msgfmt", so it can be a program name with args.
 
-int main() {
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:20206: 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.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    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_exeext"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+  echo "$ac_t""$MSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+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:20240: 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
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
 
 
-; return 0; }
-EOF
-if { (eval echo configure:14412: \"$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
+                    # Extract the first word of "xgettext", so it can be a program name with args.
+
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:20278: 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.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    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_exeext"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-cat > conftest.$ac_ext <<EOF
-#line 14420 "configure"
-#include "confdefs.h"
+          CATOBJEXT=.gmo
+        fi
+      fi
 
-#define DECL_${cf_1_up}
-$CHECK_DECL_HDRS
+      if test "$CATOBJEXT" = "NONE"; then
+                        nls_cv_use_gnu_gettext=yes
+      fi
+    fi
 
-int main() {
-long x = 0
-; return 0; }
-EOF
-if { (eval echo configure:14430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=yes'
+    if test "$nls_cv_use_gnu_gettext" = "yes"; then
+      if test ! -d $srcdir/intl ; then
+        { echo "configure: error: no NLS library is packaged with this application" 1>&2; exit 1; }
+      fi
+            INTLOBJS="\$(GETTOBJS)"
+      # Extract the first word of "msgfmt", so it can be a program name with args.
+
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:20328: 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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
+  case "$MSGFMT" in
+  [\\/]*|?:[\\/]*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    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_exeext"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+  ;;
+esac
 fi
-rm -f conftest*
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+  echo "$ac_t""$MSGFMT" 1>&6
 else
-eval 'cf_cv_func_'${ac_func}'=yes'
+  echo "$ac_t""no" 1>&6
 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:20362: 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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
-fi
-rm -f conftest*
-CFLAGS="$cf_save_CFLAGS"
-
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
 fi
-
-eval 'cf_result=$cf_cv_func_'${ac_func}
-echo "$ac_t""$cf_result" 1>&6
-test $cf_result = yes && cat >> confdefs.h <<EOF
-#define DECL_${ac_tr_func} 1
-EOF
-
-done
-
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-if test $with_decl_check = yes; then
-CHECK_DECL_HDRS="$TIN_DECL_HDRS"
-for ac_func in \
-	_flsbuf \
-	atoi \
-	atol \
-	bcopy \
-	bzero \
-	calloc \
-	fchmod \
-	fclose \
-	fdopen \
-	fflush \
-	fgetc \
-	fileno \
-	fprintf \
-	fputc \
-	fputs \
-	fread \
-	free \
-	fseek \
-	fwrite \
-	getcwd \
-	getopt \
-	getpass \
-	getwd \
-	ioctl \
-	isascii \
-	kill \
-	malloc \
-	memset \
-	mkstemp \
-	mktemp \
-	pclose \
-	perror \
-	printf \
-	putenv \
-	qsort \
-	realloc \
-	rename \
-	rewind \
-	select \
-	setenv \
-	snprintf \
-	sscanf \
-	strcasecmp \
-	strftime \
-	strncasecmp \
-	strtol \
-	system \
-	time \
-	tolower \
-	toupper \
-	ungetc \
-	usleep \
-	vsprintf \
-	vsnprintf \
-
-do
-
-ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
+      # Extract the first word of "xgettext", so it can be a program name with args.
 
-echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
-echo "configure:14529: checking for missing "${ac_func}" extern" >&5
-if eval "test \"`echo '$''{'cf_cv_func_${ac_func}'+set}'`\" = set"; then
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:20399: 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
-  
-
-echo "(line 14535) testing for missing "${ac_func}" external ..." 1>&5
-
-cf_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
-cat > conftest.$ac_ext <<EOF
-#line 14540 "configure"
-#include "confdefs.h"
-
-$CHECK_DECL_HDRS
-
-#undef ${ac_func}
-struct zowie { int a; double b; struct zowie *c; char d; };
-extern struct zowie *${ac_func}();
+  case "$XGETTEXT" in
+  [\\/]*|?:[\\/]*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    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_exeext"
+	break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-int main() {
+      
+      BUILD_INCLUDED_LIBINTL=yes
+      USE_INCLUDED_LIBINTL=yes
+      CATOBJEXT=.gmo
+      INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV"
+      LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+    fi
 
+            if test "$GMSGFMT" != ":"; then
+                  if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
+        : ;
+      else
+        echo "$ac_t""found msgfmt program is not GNU msgfmt; ignore it" 1>&6
+        GMSGFMT=":"
+      fi
+    fi
 
-; return 0; }
-EOF
-if { (eval echo configure:14554: \"$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
+            if test "$XGETTEXT" != ":"; then
+                      if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
+        : ;
+      else
+        echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
+        XGETTEXT=":"
+      fi
+    fi
 
-cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+        POSUB=po
+  fi
 
-cat > conftest.$ac_ext <<EOF
-#line 14562 "configure"
-#include "confdefs.h"
+  
 
-#define DECL_${cf_1_up}
-$CHECK_DECL_HDRS
+      if test "$PACKAGE" = gettext; then
+    BUILD_INCLUDED_LIBINTL=yes
+  fi
 
-int main() {
-long x = 0
-; return 0; }
-EOF
-if { (eval echo configure:14572: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=yes'
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
-fi
-rm -f conftest*
+                      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+    for ac_prog in bison
+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:20471: 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
-eval 'cf_cv_func_'${ac_func}'=yes'
-fi
-
+  if test -n "$INTLBISON"; then
+  ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test.
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_INTLBISON="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
 fi
-rm -f conftest*
-CFLAGS="$cf_save_CFLAGS"
-
+fi
+INTLBISON="$ac_cv_prog_INTLBISON"
+if test -n "$INTLBISON"; then
+  echo "$ac_t""$INTLBISON" 1>&6
+else
+  echo "$ac_t""no" 1>&6
 fi
 
-eval 'cf_result=$cf_cv_func_'${ac_func}
-echo "$ac_t""$cf_result" 1>&6
-test $cf_result = yes && cat >> confdefs.h <<EOF
-#define DECL_${ac_tr_func} 1
-EOF
-
+test -n "$INTLBISON" && break
 done
 
+    if test -z "$INTLBISON"; then
+      ac_verc_fail=yes
+    else
+            echo $ac_n "checking version of bison""... $ac_c" 1>&6
+echo "configure:20504: 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;;
+        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+           ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+      esac
+    echo "$ac_t""$ac_prog_version" 1>&6
+    fi
+    if test $ac_verc_fail = yes; then
+      INTLBISON=:
+    fi
+  fi
 
-if test $use_curses = no ; then
-CHECK_DECL_HDRS="$TIN_DECL_HDRS
-#include <tcurses.h>"
-for ac_func in $cf_tc_externs
-do
-
-ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-
+        for lang in $ALL_LINGUAS; do
+    GMOFILES="$GMOFILES $lang.gmo"
+    POFILES="$POFILES $lang.po"
+  done
 
-echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
-echo "configure:14616: 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 14622) testing for missing "${ac_func}" external ..." 1>&5
-
-cf_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
-cat > conftest.$ac_ext <<EOF
-#line 14627 "configure"
-#include "confdefs.h"
-
-$CHECK_DECL_HDRS
+    nls_cv_header_intl=
+  nls_cv_header_libgt=
 
-#undef ${ac_func}
-struct zowie { int a; double b; struct zowie *c; char d; };
-extern struct zowie *${ac_func}();
+    DATADIRNAME=share
+  
 
-int main() {
+    INSTOBJEXT=.mo
+  
 
+    GENCAT=gencat
+  
 
-; return 0; }
-EOF
-if { (eval echo configure:14641: \"$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
 
-cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
+echo "configure:20552: checking for catalogs to be installed" >&5
+       NEW_LINGUAS=
+       for presentlang in $ALL_LINGUAS; do
+         useit=no
+         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
+           # Use the presentlang catalog if desiredlang is
+           #   a. equal to presentlang, or
+           #   b. a variant of presentlang (because in this case,
+           #      presentlang can be used as a fallback for messages
+           #      which are not translated in the desiredlang catalog).
+           case "$desiredlang" in
+             "$presentlang"*) useit=yes;;
+           esac
+         done
+         if test $useit = yes; then
+           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
+         fi
+       done
+       LINGUAS=$NEW_LINGUAS
+       echo "$ac_t""$LINGUAS" 1>&6
+     fi
 
-cat > conftest.$ac_ext <<EOF
-#line 14649 "configure"
-#include "confdefs.h"
+          if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
 
-#define DECL_${cf_1_up}
-$CHECK_DECL_HDRS
+      INTL_LIBTOOL_SUFFIX_PREFIX=
+   
 
-int main() {
-long x = 0
-; return 0; }
-EOF
-if { (eval echo configure:14659: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=yes'
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
-fi
-rm -f conftest*
-else
-eval 'cf_cv_func_'${ac_func}'=yes'
-fi
 
+if test "$USE_NLS" = yes ; then
+	
+# Check whether --with-textdomain or --without-textdomain was given.
+if test "${with_textdomain+set}" = set; then
+  withval="$with_textdomain"
+  NLS_TEXTDOMAIN=$withval
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
-fi
-rm -f conftest*
-CFLAGS="$cf_save_CFLAGS"
-
+  NLS_TEXTDOMAIN=$PACKAGE
 fi
 
-eval 'cf_result=$cf_cv_func_'${ac_func}
-echo "$ac_t""$cf_result" 1>&6
-test $cf_result = yes && cat >> confdefs.h <<EOF
-#define DECL_${ac_tr_func} 1
+	cat >> confdefs.h <<EOF
+#define NLS_TEXTDOMAIN "$NLS_TEXTDOMAIN"
 EOF
 
-done
-
+	
 fi
 
-CHECK_DECL_HDRS="$TIN_DECL_HDRS
-#include <tnntp.h>"
-for ac_func in \
-	connect \
-	gethostname \
-
-do
+INTLDIR_MAKE=
+MSG_DIR_MAKE=
+SUB_MAKEFILE=
 
-ac_tr_func=`echo "$ac_func" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
+cf_makefile=Makefile
 
-echo $ac_n "checking for missing "${ac_func}" extern""... $ac_c" 1>&6
-echo "configure:14706: 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
+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:20611: 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
+  enableval="$enable_included_msgs"
+  use_our_messages=$enableval
 else
-  
+  use_our_messages=yes
+fi
 
-echo "(line 14712) testing for missing "${ac_func}" external ..." 1>&5
+fi
+echo "$ac_t""$use_our_messages" 1>&6
+fi
 
-cf_save_CFLAGS="$CFLAGS"
-CFLAGS="$CFLAGS $CHECK_DECL_FLAG"
-cat > conftest.$ac_ext <<EOF
-#line 14717 "configure"
-#include "confdefs.h"
+MSG_DIR_MAKE="#"
+if test "$use_our_messages" = yes
+then
+	SUB_MAKEFILE="$SUB_MAKEFILE po/$cf_makefile.in:$srcdir/po/$cf_makefile.inn"
+	MSG_DIR_MAKE=
+fi
 
-$CHECK_DECL_HDRS
 
-#undef ${ac_func}
-struct zowie { int a; double b; struct zowie *c; char d; };
-extern struct zowie *${ac_func}();
 
-int main() {
 
 
-; return 0; }
+if test "$USE_INCLUDED_LIBINTL" = yes ; then
+        if test "$nls_cv_force_use_gnu_gettext" = yes ; then
+		:
+	elif test "$nls_cv_use_gnu_gettext" = yes ; then
+		:
+	else
+		INTLDIR_MAKE="#"
+	fi
+	if test -z "$INTLDIR_MAKE"; then
+		cat >> confdefs.h <<\EOF
+#define HAVE_LIBGETTEXT_H 1
 EOF
-if { (eval echo configure:14731: \"$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
-
-cf_1_up=`echo "${ac_func}" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-cat > conftest.$ac_ext <<EOF
-#line 14739 "configure"
+		for cf_makefile in \
+			$srcdir/intl/Makefile.in \
+			$srcdir/intl/makefile.in
+		do
+			if test -f "$cf_makefile" ; then
+				SUB_MAKEFILE="$SUB_MAKEFILE `echo \"${cf_makefile}\"|sed -e 's,^'$srcdir/',,' -e 's/\.in$//'`:${cf_makefile}"
+				break
+			fi
+		done
+	fi
+else
+	INTLDIR_MAKE="#"
+	if test "$USE_NLS" = yes ; then
+		for ac_hdr in libintl.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:20666: 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 20671 "configure"
 #include "confdefs.h"
-
-#define DECL_${cf_1_up}
-$CHECK_DECL_HDRS
-
-int main() {
-long x = 0
-; return 0; }
+#include <$ac_hdr>
 EOF
-if { (eval echo configure:14749: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:20676: \"$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*
-  eval 'cf_cv_func_'${ac_func}'=yes'
+  eval "ac_cv_header_$ac_safe=yes"
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
 else
-eval 'cf_cv_func_'${ac_func}'=yes'
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+	fi
 fi
 
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval 'cf_cv_func_'${ac_func}'=no'
+if test -z "$INTLDIR_MAKE" ; then
+	CPPFLAGS="$CPPFLAGS -I../intl"
 fi
-rm -f conftest*
-CFLAGS="$cf_save_CFLAGS"
 
+if test "$BUILD_INCLUDED_LIBINTL" = yes ; then
+	GT_YES="#"
+	GT_NO=
+else
+	GT_YES=
+	GT_NO="#"
 fi
 
-eval 'cf_result=$cf_cv_func_'${ac_func}
-echo "$ac_t""$cf_result" 1>&6
-test $cf_result = yes && cat >> confdefs.h <<EOF
-#define DECL_${ac_tr_func} 1
-EOF
 
-done
 
 
-fi
 
 
-echo $ac_n "checking for working TIOCGWINSZ""... $ac_c" 1>&6
-echo "configure:14787: 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
-  
-	cf_save_CFLAGS="$CFLAGS"
-	CFLAGS="$CFLAGS -D__CPROTO__ $CHECK_DECL_FLAG"
-	if test "$cross_compiling" = yes; then
-  cf_cv_use_tiocgwinsz=unknown
-else
-  cat > conftest.$ac_ext <<EOF
-#line 14798 "configure"
-#include "confdefs.h"
 
-$CHECK_DECL_HDRS
-int main()
-{
-	int fd;
-	for (fd = 0; fd <= 2; fd++) {	/* try in/out/err in case redirected */
-#ifdef TIOCGSIZE
-		struct ttysize size;
-		if (ioctl (0, TIOCGSIZE, &size) == 0
-		 && size.ts_lines > 0
-		 && size.ts_cols > 0)
-			exit(0);
-#else
-		struct winsize size;
-		if (ioctl(0, TIOCGWINSZ, &size) == 0
-		 && size.ws_row > 0
-		 && size.ws_col > 0)
-			exit(0);
-#endif
-	}
-	exit(0);	/* we cannot guarantee this is run interactively */
-}
+if test "$USE_INCLUDED_LIBINTL" = yes ; then
+	if test "$nls_cv_force_use_gnu_gettext" = yes ; then
+		cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
 EOF
-if { (eval echo configure:14823: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  cf_cv_use_tiocgwinsz=no
-fi
-rm -fr conftest*
-fi
-
-		rm -f autoconf.h
-		CFLAGS="$cf_save_CFLAGS"
-fi
 
-echo "$ac_t""$cf_cv_use_tiocgwinsz" 1>&6
-test $cf_cv_use_tiocgwinsz != yes && cat >> confdefs.h <<\EOF
-#define DONT_HAVE_SIGWINCH 1
+	elif test "$nls_cv_use_gnu_gettext" = yes ; then
+		cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
 EOF
 
+	fi
+	if test -n "$nls_cv_header_intl" ; then
+		cat >> confdefs.h <<\EOF
+#define HAVE_LIBINTL_H 1
+EOF
 
+	fi
+fi
 
-### append special libraries that get in the way of testing
-case $debug_malloc in
-DBMALLOC)
-	cat >> confdefs.h <<\EOF
-#define USE_DBMALLOC 1
-EOF
+LIBS="$LIBS $LIBICONV"
 
-	LIBS="$LIBS -ldbmalloc"
+### check for alloca (required for bison and/or intl/*)
+case "$YACC" in
+bison*)
+	use_alloca=yes
 	;;
-DMALLOC)
-	cat >> confdefs.h <<\EOF
-#define USE_DMALLOC 1
-EOF
-
-	LIBS="$LIBS -ldmalloc"
+*)
+	use_alloca=$USE_INCLUDED_LIBINTL
 	;;
 esac
 
-### Use gettext
-### this also calls AM_LANGINFO_CODESET and AM_ICONV
-### so we don't need to do the tests ourselves.
-# 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:14870: 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
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_RANLIB="ranlib"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
-fi
-fi
-RANLIB="$ac_cv_prog_RANLIB"
-if test -n "$RANLIB"; then
-  echo "$ac_t""$RANLIB" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
+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:14900: checking for working alloca.h" >&5
+echo "configure:20760: 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 14905 "configure"
+#line 20765 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:14912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:20772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   ac_cv_header_alloca_h=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   ac_cv_header_alloca_h=no
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
@@ -14929,12 +20789,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:14933: checking for alloca" >&5
+echo "configure:20793: 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 14938 "configure"
+#line 20798 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -14956,226 +20816,80 @@ char *alloca ();
 #   endif
 #  endif
 # endif
-#endif
-
-int main() {
-char *p = (char *) alloca(1);
-; return 0; }
-EOF
-if { (eval echo configure:14966: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_func_alloca_works=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
-if test $ac_cv_func_alloca_works = yes; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
-
-fi
-
-if test $ac_cv_func_alloca_works = no; then
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-  # that cause trouble.  Some versions do not even contain alloca or
-  # contain a buggy version.  If you still want to use their alloca,
-  # use ar to extract alloca.o from them instead of compiling alloca.c.
-  ALLOCA=alloca.${ac_objext}
-  cat >> confdefs.h <<\EOF
-#define C_ALLOCA 1
-EOF
-
-
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:14998: 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 15003 "configure"
-#include "confdefs.h"
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
-
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "webecray" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_os_cray=yes
-else
-  rm -rf conftest*
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-
-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:15028: 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 15033 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:15056: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<EOF
-#define CRAY_STACKSEG_END $ac_func
-EOF
-
-  break
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-done
-fi
+#endif
 
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:15083: 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
-  if test "$cross_compiling" = yes; then
-  ac_cv_c_stack_direction=0
-else
-  cat > conftest.$ac_ext <<EOF
-#line 15091 "configure"
-#include "confdefs.h"
-find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
-  exit (find_stack_direction() < 0);
-}
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
 EOF
-if { (eval echo configure:15110: \"$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
+if { (eval echo configure:20826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  ac_cv_func_alloca_works=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_c_stack_direction=-1
+
+  ac_cv_func_alloca_works=no
 fi
-rm -fr conftest*
+rm -rf conftest*
 fi
 
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
 fi
 
-echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
-cat >> confdefs.h <<EOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
+if test $ac_cv_func_alloca_works = no; then
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+  # that cause trouble.  Some versions do not even contain alloca or
+  # contain a buggy version.  If you still want to use their alloca,
+  # use ar to extract alloca.o from them instead of compiling alloca.c.
+  ALLOCA=alloca.${ac_objext}
+  cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
 EOF
 
-fi
 
-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:15135: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:20858: 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 15140 "configure"
+#line 20863 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15145: \"$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
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "webecray" >/dev/null 2>&1; then
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
+  ac_cv_os_cray=yes
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  ac_cv_os_cray=no
 fi
 rm -f conftest*
+
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
 
-for ac_func in getpagesize
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15174: checking for $ac_func" >&5
+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:20888: 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 15179 "configure"
+#line 20893 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -15198,2276 +20912,2289 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:15202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:20916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_func_$ac_func=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
   cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
+#define CRAY_STACKSEG_END $ac_func
 EOF
- 
+
+  break
 else
   echo "$ac_t""no" 1>&6
 fi
+
 done
+fi
 
-echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:15227: checking for working mmap" >&5
-if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:20943: 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
   if test "$cross_compiling" = yes; then
-  ac_cv_func_mmap_fixed_mapped=no
+  ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 15235 "configure"
+#line 20951 "configure"
 #include "confdefs.h"
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-	mmap private not fixed
-	mmap private fixed at somewhere currently unmapped
-	mmap private fixed at somewhere already mapped
-	mmap shared not fixed
-	mmap shared fixed at somewhere currently unmapped
-	mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the filesystem buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propogated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-#include <sys/types.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#ifndef HAVE_GETPAGESIZE
-# ifdef HAVE_UNISTD_H
-#  include <unistd.h>
-# endif
-
-/* Assume that all systems that can run configure have sys/param.h.  */
-# ifndef HAVE_SYS_PARAM_H
-#  define HAVE_SYS_PARAM_H 1
-# endif
-
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  ifdef HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192	/* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-#ifdef __cplusplus
-extern "C" { void *malloc(unsigned); }
-#else
-char *malloc();
-#endif
-
-int
-main()
-{
-	char *data, *data2, *data3;
-	int i, pagesize;
-	int fd;
-
-	pagesize = getpagesize();
-
-	/*
-	 * First, make a file with some known garbage in it.
-	 */
-	data = malloc(pagesize);
-	if (!data)
-		exit(1);
-	for (i = 0; i < pagesize; ++i)
-		*(data + i) = rand();
-	umask(0);
-	fd = creat("conftestmmap", 0600);
-	if (fd < 0)
-		exit(1);
-	if (write(fd, data, pagesize) != pagesize)
-		exit(1);
-	close(fd);
-
-	/*
-	 * Next, try to mmap the file at a fixed address which
-	 * already has something else allocated at it.  If we can,
-	 * also make sure that we see the same garbage.
-	 */
-	fd = open("conftestmmap", O_RDWR);
-	if (fd < 0)
-		exit(1);
-	data2 = malloc(2 * pagesize);
-	if (!data2)
-		exit(1);
-	data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
-	if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
-	    MAP_PRIVATE | MAP_FIXED, fd, 0L))
-		exit(1);
-	for (i = 0; i < pagesize; ++i)
-		if (*(data + i) != *(data2 + i))
-			exit(1);
-
-	/*
-	 * Finally, make sure that changes to the mapped area
-	 * do not percolate back to the file as seen by read().
-	 * (This is a bug on some variants of i386 svr4.0.)
-	 */
-	for (i = 0; i < pagesize; ++i)
-		*(data2 + i) = *(data2 + i) + 1;
-	data3 = malloc(pagesize);
-	if (!data3)
-		exit(1);
-	if (read(fd, data3, pagesize) != pagesize)
-		exit(1);
-	for (i = 0; i < pagesize; ++i)
-		if (*(data + i) != *(data3 + i))
-			exit(1);
-	close(fd);
-	unlink("conftestmmap");
-	exit(0);
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+  exit (find_stack_direction() < 0);
 }
-
 EOF
-if { (eval echo configure:15375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:20970: \"$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
+  ac_cv_c_stack_direction=1
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -fr conftest*
-  ac_cv_func_mmap_fixed_mapped=no
+  ac_cv_c_stack_direction=-1
 fi
 rm -fr conftest*
 fi
 
 fi
 
-echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_MMAP 1
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
 EOF
 
 fi
 
 
-    echo $ac_n "checking whether we are using the GNU C Library 2.1 or newer""... $ac_c" 1>&6
-echo "configure:15399: 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
+case $host_os in
+linux*|gnu*)
+	# workaround for bison 1.875c (compound breakage in Linux stdlib.h
+	# and bison's output make bison try to use alloca()).
+	if test -z "$GCC" ; then
+		CPPFLAGS="$CPPFLAGS -DYYSTACK_USE_ALLOCA=0"
+		ALLOCA=""
+	elif test "$INTEL_COMPILER" = yes ; then
+		CPPFLAGS="$CPPFLAGS -DYYSTACK_USE_ALLOCA=0"
+		ALLOCA=""
+	fi
+	;;
+esac
+
 else
-  cat > conftest.$ac_ext <<EOF
-#line 15404 "configure"
+	ALLOCA=""
+	
+fi
+
+
+for cf_hdr in iconv.h
+do
+	echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6
+echo "configure:21015: checking for $cf_hdr" >&5
+	cat > conftest.$ac_ext <<EOF
+#line 21017 "configure"
 #include "confdefs.h"
 
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
-#endif
-	
+#include <sys/types.h>
+#include <$cf_hdr>
+
 EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "Lucky GNU user" >/dev/null 2>&1; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:21025: \"$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*
-  ac_cv_gnu_library_2_1=yes
+  cf_found=yes
 else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
   rm -rf conftest*
-  ac_cv_gnu_library_2_1=no
+  cf_found=no
 fi
 rm -f conftest*
+echo "$ac_t""$cf_found" 1>&6
+if test $cf_found = yes ; then
+	
+cf_tr_hdr=`echo "$cf_hdr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+
+	cat >> confdefs.h <<EOF
+#define HAVE_${cf_tr_hdr} 1
+EOF
 
-      
-    
 fi
+done
 
-echo "$ac_t""$ac_cv_gnu_library_2_1" 1>&6
-    
-    GLIBC21="$ac_cv_gnu_library_2_1"
-  
+echo $ac_n "checking for iconv_open() //TRANSLIT extension""... $ac_c" 1>&6
+echo "configure:21051: 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 21057 "configure"
+#include "confdefs.h"
 
-	case $cf_cv_system_name in
-	os2*)	PATHSEP=';'  ;;
-	*)	PATHSEP=':'  ;;
-	esac
+#ifdef HAVE_ICONV_H
+#	include <iconv.h>
+#endif /* HAVE_ICONV_H */
+#ifdef HAVE_STDLIB_H
+#	include <stdlib.h>
+#endif /* HAVE_STDLIB_H */
+int main() {
+	iconv_t cd;
 
-	
+	if ((cd = iconv_open("US-ASCII//TRANSLIT", "ISO-8859-1")) == (iconv_t) (-1))
+		exit(1);
+	exit(0);
+}
+EOF
+if { (eval echo configure:21074: \"$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
+EOF
+ echo "$ac_t""yes" 1>&6
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  echo "$ac_t""no" 1>&6
+fi
+rm -fr conftest*
+fi
 
 
-cf_makefile=Makefile
+# FIXME / TESTME
+# locale is broken on cygwin < 1.7.0
+# group/other bits don't work on cygwin < 1.7.0
+# locking doesn't work on cygwin
+# link(2) is detected but doesn't work on cygwin
+case "$host_os" in
+	*cygwin*)
+		case `uname -r | sed 's,(.*,,'` in
+			1.7.*)
+				cat >> confdefs.h <<\EOF
+#define NO_LOCKING 1
+EOF
 
-test -z "$ALL_LINGUAS" && ALL_LINGUAS=`test -d $srcdir/po && cd $srcdir/po && echo *.po|sed -e 's/\.po//g' -e 's/*//'`
+				;;
+			*)
+				# link does not work
+				cat >> confdefs.h <<\EOF
+#define NO_LOCALE 1
+EOF
 
-# Allow override of "config.h" definition:
-: ${CONFIG_H=config.h}
+				cat >> confdefs.h <<\EOF
+#define NO_LOCKING 1
+EOF
 
+				cat >> confdefs.h <<\EOF
+#define FILE_MODE_BROKEN 1
+EOF
 
-if test -z "$VERSION" ; then
-if test -f $srcdir/VERSION ; then
-	VERSION=`sed -e '2,$d' $srcdir/VERSION|cut -f1`
+				;;
+			esac
+		;;
+	*haiku*)
+		# link does not work
+		cat >> confdefs.h <<\EOF
+#define NO_LOCKING 1
+EOF
+
+		;;
+	*)
+		echo $ac_n "checking for link""... $ac_c" 1>&6
+echo "configure:21130: checking for link" >&5
+if eval "test \"`echo '$''{'ac_cv_func_link'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
 else
-	VERSION=unknown
+  cat > conftest.$ac_ext <<EOF
+#line 21135 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char link(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char link();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_link) || defined (__stub___link)
+choke me
+#else
+link();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:21158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_link=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_func_link=no"
+fi
+rm -rf conftest*
 fi
+
+if eval "test \"`echo '$ac_cv_func_'link`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
+#define HAVE_LINK 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
 fi
 
+esac
 
-                                    
-   for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
-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:15466: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+if test "$cf_cv_termlib" = pdcurses ; then
+	# If we find X, set shell vars x_includes and x_libraries to the
+# paths, otherwise set no_x=yes.
+# Uses ac_ vars as temps to allow command line to override cache and checks.
+# --without-x overrides everything else, but does not touch the cache.
+echo $ac_n "checking for X""... $ac_c" 1>&6
+echo "configure:21188: checking for X" >&5
+
+
+# Check whether --with-x or --without-x was given.
+if test "${with_x+set}" = set; then
+  withval="$with_x"
+  :
+fi
+
+# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
+if test "x$with_x" = xno; then
+  # The user explicitly disabled X.
+  have_x=disabled
+else
+  if test "x$x_includes" != xNONE && test "x$x_libraries" != xNONE; then
+    # Both variables are already set.
+    have_x=yes
+  else
+if eval "test \"`echo '$''{'ac_cv_have_x'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 15471 "configure"
+  # One or both of the vars are not set, and there is no cached value.
+ac_x_includes=NO ac_x_libraries=NO
+rm -fr conftestdir
+if mkdir conftestdir; then
+  cd conftestdir
+  # Make sure to not put "make" in the Imakefile rules, since we grep it out.
+  cat > Imakefile <<'EOF'
+acfindx:
+	@echo 'ac_im_incroot="${INCROOT}"; ac_im_usrlibdir="${USRLIBDIR}"; ac_im_libdir="${LIBDIR}"'
+EOF
+  if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then
+    # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+    eval `${MAKE-make} acfindx 2>/dev/null | grep -v make`
+    # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
+    for ac_extension in a so sl; do
+      if test ! -f $ac_im_usrlibdir/libX11.$ac_extension &&
+        test -f $ac_im_libdir/libX11.$ac_extension; then
+        ac_im_usrlibdir=$ac_im_libdir; break
+      fi
+    done
+    # Screen out bogus values from the imake configuration.  They are
+    # bogus both because they are the default anyway, and because
+    # using them would break gcc on systems where it needs fixed includes.
+    case "$ac_im_incroot" in
+	/usr/include) ;;
+	*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes="$ac_im_incroot" ;;
+    esac
+    case "$ac_im_usrlibdir" in
+	/usr/lib | /lib) ;;
+	*) test -d "$ac_im_usrlibdir" && ac_x_libraries="$ac_im_usrlibdir" ;;
+    esac
+  fi
+  cd ..
+  rm -fr conftestdir
+fi
+
+if test "$ac_x_includes" = NO; then
+  # Guess where to find include files, by looking for this one X11 .h file.
+  test -z "$x_direct_test_include" && x_direct_test_include=X11/Intrinsic.h
+
+  # First, try using that file with no special directory specified.
+cat > conftest.$ac_ext <<EOF
+#line 21251 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+#include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:21256: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+  # We can compile using X headers with no special include directory.
+ac_x_includes=
 else
   echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+  # Look for the header file in a standard set of common directories.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+  for ac_dir in               \
+    /usr/X11/include          \
+    /usr/X11R6/include        \
+    /usr/X11R5/include        \
+    /usr/X11R4/include        \
+                              \
+    /usr/include/X11          \
+    /usr/include/X11R6        \
+    /usr/include/X11R5        \
+    /usr/include/X11R4        \
+                              \
+    /usr/local/X11/include    \
+    /usr/local/X11R6/include  \
+    /usr/local/X11R5/include  \
+    /usr/local/X11R4/include  \
+                              \
+    /usr/local/include/X11    \
+    /usr/local/include/X11R6  \
+    /usr/local/include/X11R5  \
+    /usr/local/include/X11R4  \
+                              \
+    /usr/X386/include         \
+    /usr/x386/include         \
+    /usr/XFree86/include/X11  \
+                              \
+    /usr/include              \
+    /usr/local/include        \
+    /usr/unsupported/include  \
+    /usr/athena/include       \
+    /usr/local/x11r5/include  \
+    /usr/lpp/Xamples/include  \
+                              \
+    /usr/openwin/include      \
+    /usr/openwin/share/include \
+    ; \
+  do
+    if test -r "$ac_dir/$x_direct_test_include"; then
+      ac_x_includes=$ac_dir
+      break
+    fi
+  done
 fi
 rm -f conftest*
-fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
+fi # $ac_x_includes = NO
 
-   for ac_func in feof_unlocked fgets_unlocked getcwd getegid geteuid \
-getgid getuid mempcpy munmap putenv setenv setlocale stpcpy strchr strcasecmp \
-strdup strtoul tsearch __argz_count __argz_stringify __argz_next
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15507: 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 15512 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+if test "$ac_x_libraries" = NO; then
+  # Check for the libraries.
 
-int main() {
+  test -z "$x_direct_test_library" && x_direct_test_library=Xt
+  test -z "$x_direct_test_function" && x_direct_test_function=XtMalloc
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
+  # See if we find them without any special options.
+  # Don't add to $LIBS permanently.
+  ac_save_LIBS="$LIBS"
+  LIBS="-l$x_direct_test_library $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 21325 "configure"
+#include "confdefs.h"
 
+int main() {
+${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:15535: \"$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"
+if { (eval echo configure:21332: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  LIBS="$ac_save_LIBS"
+# We can link X programs with no special library path.
+ac_x_libraries=
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
+
+  LIBS="$ac_save_LIBS"
+# First see if replacing the include by lib works.
+# Check X11 before X11Rn because it is often a symlink to the current release.
+for ac_dir in `echo "$ac_x_includes" | sed s/include/lib/` \
+    /usr/X11/lib          \
+    /usr/X11R6/lib        \
+    /usr/X11R5/lib        \
+    /usr/X11R4/lib        \
+                          \
+    /usr/lib/X11          \
+    /usr/lib/X11R6        \
+    /usr/lib/X11R5        \
+    /usr/lib/X11R4        \
+                          \
+    /usr/local/X11/lib    \
+    /usr/local/X11R6/lib  \
+    /usr/local/X11R5/lib  \
+    /usr/local/X11R4/lib  \
+                          \
+    /usr/local/lib/X11    \
+    /usr/local/lib/X11R6  \
+    /usr/local/lib/X11R5  \
+    /usr/local/lib/X11R4  \
+                          \
+    /usr/X386/lib         \
+    /usr/x386/lib         \
+    /usr/XFree86/lib/X11  \
+                          \
+    /usr/lib              \
+    /usr/local/lib        \
+    /usr/unsupported/lib  \
+    /usr/athena/lib       \
+    /usr/local/x11r5/lib  \
+    /usr/lpp/Xamples/lib  \
+    /lib/usr/lib/X11	  \
+                          \
+    /usr/openwin/lib      \
+    /usr/openwin/share/lib \
+    ; \
+do
+  for ac_extension in a so sl; do
+    if test -r $ac_dir/lib${x_direct_test_library}.$ac_extension; then
+      ac_x_libraries=$ac_dir
+      break 2
+    fi
+  done
+done
+fi
+rm -rf conftest*
+fi # $ac_x_libraries = NO
+
+if test "$ac_x_includes" = NO || test "$ac_x_libraries" = NO; then
+  # Didn't find X anywhere.  Cache the known absence of X.
+  ac_cv_have_x="have_x=no"
+else
+  # Record where we found X for the cache.
+  ac_cv_have_x="have_x=yes \
+	        ac_x_includes=$ac_x_includes ac_x_libraries=$ac_x_libraries"
 fi
-rm -f conftest*
 fi
+  fi
+  eval "$ac_cv_have_x"
+fi # $with_x != no
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
+if test "$have_x" != yes; then
+  echo "$ac_t""$have_x" 1>&6
+  no_x=yes
 else
-  echo "$ac_t""no" 1>&6
+  # If each of the values was on the command line, it overrides each guess.
+  test "x$x_includes" = xNONE && x_includes=$ac_x_includes
+  test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
+  # Update the cache value to reflect the command line values.
+  ac_cv_have_x="have_x=yes \
+		ac_x_includes=$x_includes ac_x_libraries=$x_libraries"
+  echo "$ac_t""libraries $x_libraries, headers $x_includes" 1>&6
 fi
-done
 
 
-   
-    
-  
-# Check whether --with-libiconv-prefix or --without-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then
-  withval="$with_libiconv_prefix"
-  
-    for dir in `echo "$withval" | tr : ' '`; do
-      if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
-      if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
-    done
-   
+echo $ac_n "checking if you want to use pkg-config""... $ac_c" 1>&6
+echo "configure:21420: checking if you want to use pkg-config" >&5
+
+# Check whether --with-pkg-config or --without-pkg-config was given.
+if test "${with_pkg_config+set}" = set; then
+  withval="$with_pkg_config"
+  cf_pkg_config=$withval
+else
+  cf_pkg_config=yes
 fi
 
+echo "$ac_t""$cf_pkg_config" 1>&6
 
-  echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:15576: checking for iconv" >&5
-if eval "test \"`echo '$''{'am_cv_func_iconv'+set}'`\" = set"; then
+case $cf_pkg_config in #(vi
+no) #(vi
+	PKG_CONFIG=none
+	;;
+yes) #(vi
+	# Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:21440: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    cat > conftest.$ac_ext <<EOF
-#line 15584 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <iconv.h>
-int main() {
-iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);
-; return 0; }
-EOF
-if { (eval echo configure:15594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_func_iconv=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  case "$PKG_CONFIG" in
+  /*)
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_PKG_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="none"
+  ;;
+esac
 fi
-rm -f conftest*
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS -liconv"
-      cat > conftest.$ac_ext <<EOF
-#line 15606 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-#include <iconv.h>
-int main() {
-iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);
-; return 0; }
-EOF
-if { (eval echo configure:15616: \"$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
+PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+if test -n "$PKG_CONFIG"; then
+  echo "$ac_t""$PKG_CONFIG" 1>&6
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
+  echo "$ac_t""no" 1>&6
 fi
-rm -f conftest*
-      LIBS="$am_save_LIBS"
-    fi
-  
+
+	;;
+*)
+	PKG_CONFIG=$withval
+	;;
+esac
+
+test -z "$PKG_CONFIG" && PKG_CONFIG=none
+if test "$PKG_CONFIG" != none ; then
+	
+if test "x$prefix" != xNONE; then
+  cf_path_syntax="$prefix"
+else
+  cf_path_syntax="$ac_default_prefix"
 fi
 
-echo "$ac_t""$am_cv_func_iconv" 1>&6
-  if test "$am_cv_func_iconv" = yes; then
-    cat >> confdefs.h <<\EOF
-#define HAVE_ICONV 1
+case ".$PKG_CONFIG" in #(vi
+.\$\(*\)*|.\'*\'*) #(vi
+  ;;
+..|./*|.\\*) #(vi
+  ;;
+.[a-zA-Z]:[\\/]*) #(vi OS/2 EMX
+  ;;
+.\${*prefix}*) #(vi
+  eval PKG_CONFIG="$PKG_CONFIG"
+  case ".$PKG_CONFIG" in #(vi
+  .NONE/*)
+    PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+    ;;
+  esac
+  ;; #(vi
+.no|.NONE/*)
+  PKG_CONFIG=`echo $PKG_CONFIG | sed -e s%NONE%$cf_path_syntax%`
+  ;;
+*)
+  { echo "configure: error: expected a pathname, not \"$PKG_CONFIG\"" 1>&2; exit 1; }
+  ;;
+esac
+
+fi
+
+
+
+if test "$no_x" = yes; then
+  # Not all programs may use this symbol, but it does not hurt to define it.
+  cat >> confdefs.h <<\EOF
+#define X_DISPLAY_MISSING 1
 EOF
 
-    echo $ac_n "checking for iconv declaration""... $ac_c" 1>&6
-echo "configure:15637: checking for iconv declaration" >&5
-    if eval "test \"`echo '$''{'am_cv_proto_iconv'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
+  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
 else
-  
+  if test -n "$x_includes"; then
+    X_CFLAGS="$X_CFLAGS -I$x_includes"
+  fi
+
+  # It would also be nice to do this for all -L options, not just this one.
+  if test -n "$x_libraries"; then
+    X_LIBS="$X_LIBS -L$x_libraries"
+    # For Solaris; some versions of Sun CC require a space after -R and
+    # others require no space.  Words are not sufficient . . . .
+    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:21535: 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 15643 "configure"
+#line 21538 "configure"
 #include "confdefs.h"
 
-#include <stdlib.h>
-#include <iconv.h>
-extern
-#ifdef __cplusplus
-"C"
-#endif
-#if defined(__STDC__) || defined(__cplusplus)
-size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-
 int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:15662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-  rm -rf conftest*
-  am_cv_proto_iconv_arg1=""
+if { (eval echo configure:21545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  ac_R_nospace=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  am_cv_proto_iconv_arg1="const"
-fi
-rm -f conftest*
-      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"
-fi
-
-    am_cv_proto_iconv=`echo "$am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    echo "$ac_t""${ac_t:-
-         }$am_cv_proto_iconv" 1>&6
-    cat >> confdefs.h <<EOF
-#define ICONV_CONST $am_cv_proto_iconv_arg1
-EOF
-
-  fi
-  LIBICONV=
-  if test "$am_cv_lib_iconv" = yes; then
-    LIBICONV="-liconv"
-  fi
-  
 
-   
-  echo $ac_n "checking for nl_langinfo and CODESET""... $ac_c" 1>&6
-echo "configure:15691: 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 15696 "configure"
+  ac_R_nospace=no
+fi
+rm -rf conftest*
+      if test $ac_R_nospace = yes; then
+	echo "$ac_t""no" 1>&6
+	X_LIBS="$X_LIBS -R$x_libraries"
+      else
+	LIBS="$ac_xsave_LIBS -R $x_libraries"
+	cat > conftest.$ac_ext <<EOF
+#line 21561 "configure"
 #include "confdefs.h"
-#include <langinfo.h>
+
 int main() {
-char* cs = nl_langinfo(CODESET);
+
 ; return 0; }
 EOF
-if { (eval echo configure:15703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_langinfo_codeset=yes
+if { (eval echo configure:21568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  ac_R_space=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  am_cv_langinfo_codeset=no
-fi
-rm -f conftest*
-    
-fi
-
-echo "$ac_t""$am_cv_langinfo_codeset" 1>&6
-  if test $am_cv_langinfo_codeset = yes; then
-    cat >> confdefs.h <<\EOF
-#define HAVE_LANGINFO_CODESET 1
-EOF
 
+  ac_R_space=no
+fi
+rm -rf conftest*
+	if test $ac_R_space = yes; then
+	  echo "$ac_t""yes" 1>&6
+	  X_LIBS="$X_LIBS -R $x_libraries"
+	else
+	  echo "$ac_t""neither works" 1>&6
+	fi
+      fi
+      LIBS="$ac_xsave_LIBS"
+    esac
   fi
 
-   if test $ac_cv_header_locale_h = yes; then
-    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
-echo "configure:15726: checking for LC_MESSAGES" >&5
-if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+  # Check for system-dependent libraries X programs must link with.
+  # Do this before checking for the system-independent R6 libraries
+  # (-lICE), since we may need -lsocket or whatever for X linking.
+
+  if test "$ISC" = yes; then
+    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
+  else
+    # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
+    # 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:21600: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 15731 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-ldnet  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 21608 "configure"
 #include "confdefs.h"
-#include <locale.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char dnet_ntoa();
+
 int main() {
-return LC_MESSAGES
+dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:15738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  am_cv_val_LC_MESSAGES=yes
+if { (eval echo configure:21619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  am_cv_val_LC_MESSAGES=no
-fi
-rm -f conftest*
-fi
-
-echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
-    if test $am_cv_val_LC_MESSAGES = yes; then
-      cat >> confdefs.h <<\EOF
-#define HAVE_LC_MESSAGES 1
-EOF
-
-    fi
-  fi
-   echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
-echo "configure:15759: checking whether NLS is requested" >&5
-        
-    
-# Check whether --enable-nls or --disable-nls was given.
-if test "${enable_nls+set}" = set; then
-  enableval="$enable_nls"
-  USE_NLS=$enableval
-else
-  USE_NLS=yes
-fi
-
-    echo "$ac_t""$USE_NLS" 1>&6
-    
-
-    BUILD_INCLUDED_LIBINTL=no
-    USE_INCLUDED_LIBINTL=no
-    INTLLIBS=
-
-        if test "$USE_NLS" = "yes"; then
-      cat >> confdefs.h <<\EOF
-#define ENABLE_NLS 1
-EOF
 
-      echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
-echo "configure:15783: 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
-  withval="$with_included_gettext"
-  nls_cv_force_use_gnu_gettext=$withval
-else
-  nls_cv_force_use_gnu_gettext=no
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-      echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
-
-      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
-      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
-                        	CATOBJEXT=NONE
-
-                
-        
-
-	ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
-echo "configure:15804: 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 15809 "configure"
-#include "confdefs.h"
-#include <libintl.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:15814: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  echo $ac_n "checking for GNU gettext in libc""... $ac_c" 1>&6
-echo "configure:15831: 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 15836 "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:15845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  gt_cv_func_gnugettext1_libc=yes
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  gt_cv_func_gnugettext1_libc=no
-fi
-rm -f conftest*
+  echo "$ac_t""no" 1>&6
 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:15861: checking for GNU gettext in libintl" >&5
-if eval "test \"`echo '$''{'gt_cv_func_gnugettext1_libintl'+set}'`\" = set"; then
+    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:21641: 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
 else
-  gt_save_LIBS="$LIBS"
-		LIBS="$LIBS -lintl $LIBICONV"
-		cat > conftest.$ac_ext <<EOF
-#line 15868 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-ldnet_stub  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 21649 "configure"
 #include "confdefs.h"
-#include <libintl.h>
-extern int _nl_msg_cat_cntr;
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char dnet_ntoa();
+
 int main() {
-bindtextdomain ("", "");
-return (int) gettext ("") + _nl_msg_cat_cntr
+dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:15877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  gt_cv_func_gnugettext1_libintl=yes
+if { (eval echo configure:21660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  gt_cv_func_gnugettext1_libintl=no
-fi
-rm -f conftest*
-		LIBS="$gt_save_LIBS"
-fi
 
-echo "$ac_t""$gt_cv_func_gnugettext1_libintl" 1>&6
-	   fi
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-	   	   	   	   	   if test "$gt_cv_func_gnugettext1_libc" = "yes" \
-	      || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
-		   && test "$PACKAGE" != gettext; }; then
-	     cat >> confdefs.h <<\EOF
-#define HAVE_GETTEXT 1
-EOF
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
+else
+  echo "$ac_t""no" 1>&6
+fi
 
+    fi
 
-	     if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
-	       	       	       	       INTLLIBS="-lintl $LIBICONV"
-	     fi
-
-	     gt_save_LIBS="$LIBS"
-	     LIBS="$LIBS $INTLLIBS"
-	     for ac_func in dcgettext
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:15910: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
+    # to get the SysV transport functions.
+    # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4)
+    # needs -lnsl.
+    # 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:21689: 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 15915 "configure"
+#line 21694 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
+    which can conflict with char gethostbyname(); below.  */
 #include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char $ac_func();
+char gethostbyname();
 
 int main() {
 
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
 choke me
 #else
-$ac_func();
+gethostbyname();
 #endif
 
 ; return 0; }
 EOF
-if { (eval echo configure:15938: \"$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"
+if { (eval echo configure:21717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_gethostbyname=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-	     LIBS="$gt_save_LIBS"
-
-	     	     # Extract the first word of "msgfmt", so it can be a program name with args.
-
-set dummy msgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:15968: 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.
-  ;;
-  *)
-  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 $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then
-	ac_cv_path_MSGFMT="$ac_dir/$ac_word"
-	break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
-  ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
-  echo "$ac_t""$MSGFMT" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-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:16002: 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
-  case "$GMSGFMT" in
-  /*)
-  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
-  ;;
-  *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do 
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
-  ;;
-esac
-fi
-GMSGFMT="$ac_cv_path_GMSGFMT"
-if test -n "$GMSGFMT"; then
-  echo "$ac_t""$GMSGFMT" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
 
-	     	     # Extract the first word of "xgettext", so it can be a program name with args.
-
-set dummy xgettext; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:16040: 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.
-  ;;
-  *)
-  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 $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then
-	ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
-	break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
-  ;;
-esac
-fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
-  echo "$ac_t""$XGETTEXT" 1>&6
-else
-  echo "$ac_t""no" 1>&6
+  eval "ac_cv_func_gethostbyname=no"
 fi
-
-
-	     CATOBJEXT=.gmo
-	   fi
-	
-else
-  echo "$ac_t""no" 1>&6
+rm -rf conftest*
 fi
 
-
-        if test "$CATOBJEXT" = "NONE"; then
-	  	  	  nls_cv_use_gnu_gettext=yes
-        fi
-      fi
-
-      if test "$nls_cv_use_gnu_gettext" = "yes"; then
-        if test ! -d $srcdir/intl ; then
-	  { echo "configure: error: no NLS library is packaged with this application" 1>&2; exit 1; }
-	fi
-                INTLOBJS="\$(GETTOBJS)"
-        # Extract the first word of "msgfmt", so it can be a program name with args.
-
-set dummy msgfmt; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:16094: 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.
-  ;;
-  *)
-  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 $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1; then
-	ac_cv_path_MSGFMT="$ac_dir/$ac_word"
-	break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
-  ;;
-esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
-  echo "$ac_t""$MSGFMT" 1>&6
+if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
 else
   echo "$ac_t""no" 1>&6
 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:16128: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+    if test $ac_cv_func_gethostbyname = no; then
+      echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
+echo "configure:21738: 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
 else
-  case "$GMSGFMT" in
-  /*)
-  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
-  ;;
-  ?:/*)			 
-  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
-  ;;
-  *)
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do 
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
-  ;;
-esac
-fi
-GMSGFMT="$ac_cv_path_GMSGFMT"
-if test -n "$GMSGFMT"; then
-  echo "$ac_t""$GMSGFMT" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-        # Extract the first word of "xgettext", so it can be a program name with args.
+  ac_save_LIBS="$LIBS"
+LIBS="-lnsl  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 21746 "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
+    builtin and then its argument prototype would still apply.  */
+char gethostbyname();
 
-set dummy xgettext; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:16165: 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.
-  ;;
-  *)
-  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 $ac_dir/$ac_word --omit-header /dev/null >/dev/null 2>&1; then
-	ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
-	break
-      fi
-    fi
-  done
-  IFS="$ac_save_ifs"
-  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
-  ;;
-esac
+int main() {
+gethostbyname()
+; return 0; }
+EOF
+if { (eval echo configure:21757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
-  echo "$ac_t""$XGETTEXT" 1>&6
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
 else
   echo "$ac_t""no" 1>&6
 fi
 
-        
-	BUILD_INCLUDED_LIBINTL=yes
-	USE_INCLUDED_LIBINTL=yes
-        CATOBJEXT=.gmo
-	INTLLIBS="\$(top_builddir)/intl/libintl.a $LIBICONV"
-	LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
-      fi
+    fi
 
-                  if test "$GMSGFMT" != ":"; then
-			if $GMSGFMT --statistics /dev/null >/dev/null 2>&1; then
-	  : ;
-	else
-	  echo "$ac_t""found msgfmt program is not GNU msgfmt; ignore it" 1>&6
-	  GMSGFMT=":"
-	fi
-      fi
+    # lieder@skyler.mavd.honeywell.com says without -lsocket,
+    # socket/setsockopt and other routines are undefined under SCO ODT
+    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
+    # on later versions), says simon@lia.di.epfl.ch: it contains
+    # gethostby* variants that don't use the nameserver (or something).
+    # -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:21787: 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 21792 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char connect(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char connect();
 
-                  if test "$XGETTEXT" != ":"; then
-			if $XGETTEXT --omit-header /dev/null >/dev/null 2>&1; then
-	  : ;
-	else
-	  echo "$ac_t""found xgettext program is not GNU xgettext; ignore it" 1>&6
-	  XGETTEXT=":"
-	fi
-      fi
+int main() {
 
-            POSUB=po
-    fi
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_connect) || defined (__stub___connect)
+choke me
+#else
+connect();
+#endif
 
-    
+; return 0; }
+EOF
+if { (eval echo configure:21815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_connect=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_func_connect=no"
+fi
+rm -rf conftest*
+fi
 
-            if test "$PACKAGE" = gettext; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
+if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-                                            if test "$nls_cv_use_gnu_gettext" = "yes"; then
-    for ac_prog in bison
-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:16238: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_INTLBISON'+set}'`\" = set"; then
+    if test $ac_cv_func_connect = no; then
+      echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
+echo "configure:21836: 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
 else
-  if test -n "$INTLBISON"; then
-  ac_cv_prog_INTLBISON="$INTLBISON" # Let the user override the test.
+  ac_save_LIBS="$LIBS"
+LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 21844 "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
+    builtin and then its argument prototype would still apply.  */
+char connect();
+
+int main() {
+connect()
+; return 0; }
+EOF
+if { (eval echo configure:21855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_INTLBISON="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-INTLBISON="$ac_cv_prog_INTLBISON"
-if test -n "$INTLBISON"; then
-  echo "$ac_t""$INTLBISON" 1>&6
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
 else
   echo "$ac_t""no" 1>&6
 fi
 
-test -n "$INTLBISON" && break
-done
-
-    if test -z "$INTLBISON"; then
-      ac_verc_fail=yes
-    else
-            echo $ac_n "checking version of bison""... $ac_c" 1>&6
-echo "configure:16271: 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;;
-        1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
-           ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
-        *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
-      esac
-      echo "$ac_t""$ac_prog_version" 1>&6
-    fi
-    if test $ac_verc_fail = yes; then
-      INTLBISON=:
-    fi
     fi
 
-                for lang in $ALL_LINGUAS; do
-      GMOFILES="$GMOFILES $lang.gmo"
-      POFILES="$POFILES $lang.po"
-    done
+    # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
+    echo $ac_n "checking for remove""... $ac_c" 1>&6
+echo "configure:21879: 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 21884 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char remove(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char remove();
 
-        
-    
-    
-    
-    
-    
-    
-    
-    
+int main() {
 
-        nls_cv_header_intl=
-    nls_cv_header_libgt=
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_remove) || defined (__stub___remove)
+choke me
+#else
+remove();
+#endif
 
-        DATADIRNAME=share
-    
+; return 0; }
+EOF
+if { (eval echo configure:21907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_remove=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-        INSTOBJEXT=.mo
-    
+  eval "ac_cv_func_remove=no"
+fi
+rm -rf conftest*
+fi
 
-        GENCAT=gencat
-    
-  
+if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-   if test "x$CATOBJEXT" != "x"; then
-     if test "x$ALL_LINGUAS" = "x"; then
-       LINGUAS=
-     else
-       echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
-echo "configure:16319: checking for catalogs to be installed" >&5
-       NEW_LINGUAS=
-       for presentlang in $ALL_LINGUAS; do
-         useit=no
-         for desiredlang in ${LINGUAS-$ALL_LINGUAS}; do
-           # Use the presentlang catalog if desiredlang is
-           #   a. equal to presentlang, or
-           #   b. a variant of presentlang (because in this case,
-           #      presentlang can be used as a fallback for messages
-           #      which are not translated in the desiredlang catalog).
-           case "$desiredlang" in
-             "$presentlang"*) useit=yes;;
-           esac
-         done
-         if test $useit = yes; then
-           NEW_LINGUAS="$NEW_LINGUAS $presentlang"
-         fi
-       done
-       LINGUAS=$NEW_LINGUAS
-       echo "$ac_t""$LINGUAS" 1>&6
-     fi
+    if test $ac_cv_func_remove = no; then
+      echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
+echo "configure:21928: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lposix  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 21936 "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
+    builtin and then its argument prototype would still apply.  */
+char remove();
 
-          if test -n "$LINGUAS"; then
-       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
-     fi
-   fi
+int main() {
+remove()
+; return 0; }
+EOF
+if { (eval echo configure:21947: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
-                  MKINSTALLDIRS=
-   if test -n "$ac_aux_dir"; then
-     MKINSTALLDIRS="$ac_aux_dir/mkdirs.sh"
-   fi
-   if test -z "$MKINSTALLDIRS"; then
-     MKINSTALLDIRS="\$(top_srcdir)/mkdirs.sh"
-   fi
-   if test -n "$GNUSYSTEM_AUX_DIR" ; then
-     if test -e "${GNUSYSTEM_AUX_DIR}/mkinstalldirs"; then
-       MKINSTALLDIRS="${GNUSYSTEM_AUX_DIR}/mkinstalldirs"
-     fi
-   fi
-   
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
-      INTL_LIBTOOL_SUFFIX_PREFIX=
-   
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
+else
+  echo "$ac_t""no" 1>&6
+fi
 
+    fi
 
-INTLDIR_MAKE=
-MSG_DIR_MAKE=
-SUB_MAKEFILE=
+    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
+    echo $ac_n "checking for shmat""... $ac_c" 1>&6
+echo "configure:21971: 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 21976 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char shmat(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char shmat();
 
+int main() {
 
-cf_makefile=Makefile
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_shmat) || defined (__stub___shmat)
+choke me
+#else
+shmat();
+#endif
 
-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:16375: 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
-  enableval="$enable_included_msgs"
-  use_our_messages=$enableval
+; return 0; }
+EOF
+if { (eval echo configure:21999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_func_shmat=yes"
 else
-  use_our_messages=yes
-fi
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_func_shmat=no"
 fi
-echo "$ac_t""$use_our_messages" 1>&6
+rm -rf conftest*
 fi
 
-MSG_DIR_MAKE="#"
-if test "$use_our_messages" = yes
-then
-	SUB_MAKEFILE="$SUB_MAKEFILE po/$cf_makefile.in:$srcdir/po/$cf_makefile.inn"
-	MSG_DIR_MAKE=
+if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
 fi
 
+    if test $ac_cv_func_shmat = no; then
+      echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
+echo "configure:22020: 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
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lipc  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 22028 "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
+    builtin and then its argument prototype would still apply.  */
+char shmat();
 
+int main() {
+shmat()
+; return 0; }
+EOF
+if { (eval echo configure:22039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
 
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
 
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
+else
+  echo "$ac_t""no" 1>&6
+fi
 
-if test "$USE_INCLUDED_LIBINTL" = yes ; then
-        if test "$nls_cv_force_use_gnu_gettext" = yes ; then
-		:
-	elif test "$nls_cv_use_gnu_gettext" = yes ; then
-		:
-	else
-		INTLDIR_MAKE="#"
-	fi
-	if test -z "$INTLDIR_MAKE"; then
-		cat >> confdefs.h <<\EOF
-#define HAVE_LIBGETTEXT_H 1
-EOF
+    fi
+  fi
 
-		for cf_makefile in \
-			$srcdir/intl/Makefile.in \
-			$srcdir/intl/makefile.in
-		do
-			if test -f "$cf_makefile" ; then
-				SUB_MAKEFILE="$SUB_MAKEFILE `echo \"${cf_makefile}\"|sed -e 's,^'$srcdir/',,' -e 's/\.in$//'`:${cf_makefile}"
-				break
-			fi
-		done
-	fi
-else
-	INTLDIR_MAKE="#"
-	if test "$USE_NLS" = yes ; then
-		for ac_hdr in libintl.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16430: checking for $ac_hdr" >&5
-if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  # Check for libraries that X11R6 Xt/Xaw programs need.
+  ac_save_LDFLAGS="$LDFLAGS"
+  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
+  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
+  # check for ICE first), but we must link in the order -lSM -lICE or
+  # we get undefined symbols.  So assume we have SM if we have ICE.
+  # These have to be linked with before -lX11, unlike the other
+  # 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:22072: 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
 else
-  cat > conftest.$ac_ext <<EOF
-#line 16435 "configure"
+  ac_save_LIBS="$LIBS"
+LIBS="-lICE $X_EXTRA_LIBS $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 22080 "configure"
 #include "confdefs.h"
-#include <$ac_hdr>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char IceConnectionNumber();
+
+int main() {
+IceConnectionNumber()
+; return 0; }
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16440: \"$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*
-  eval "ac_cv_header_$ac_safe=yes"
+if { (eval echo configure:22091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  eval "ac_cv_lib_$ac_lib_var=yes"
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
+
+  eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
+LIBS="$ac_save_LIBS"
+
 fi
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
- 
+  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
 else
   echo "$ac_t""no" 1>&6
 fi
-done
 
-	fi
+  LDFLAGS="$ac_save_LDFLAGS"
+
 fi
 
-if test -z "$INTLDIR_MAKE" ; then
-	CPPFLAGS="-I../intl $CPPFLAGS"
+
+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:22119: checking if you want to link with Xaw 3d library" >&5
+withval=
+
+# Check whether --with-Xaw3d or --without-Xaw3d was given.
+if test "${with_Xaw3d+set}" = set; then
+  withval="$with_Xaw3d"
+  :
 fi
 
-if test "$BUILD_INCLUDED_LIBINTL" = yes ; then
-	GT_YES="#"
-	GT_NO=
+if test "$withval" = yes ; then
+	cf_x_athena=Xaw3d
+	echo "$ac_t""yes" 1>&6
 else
-	GT_YES=
-	GT_NO="#"
+	echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6
+echo "configure:22136: checking if you want to link with neXT Athena library" >&5
+withval=
+
+# Check whether --with-neXtaw or --without-neXtaw was given.
+if test "${with_neXtaw+set}" = set; then
+  withval="$with_neXtaw"
+  :
+fi
+
+if test "$withval" = yes ; then
+	cf_x_athena=neXtaw
+	echo "$ac_t""yes" 1>&6
+else
+	echo "$ac_t""no" 1>&6
+fi
+
+echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6
+echo "configure:22153: checking if you want to link with Athena-Plus library" >&5
+withval=
+
+# Check whether --with-XawPlus or --without-XawPlus was given.
+if test "${with_XawPlus+set}" = set; then
+  withval="$with_XawPlus"
+  :
+fi
+
+if test "$withval" = yes ; then
+	cf_x_athena=XawPlus
+	echo "$ac_t""yes" 1>&6
+else
+	echo "$ac_t""no" 1>&6
 fi
 
+cf_x_athena_lib=""
+
+if test "$PKG_CONFIG" != none ; then
+	cf_athena_list=
+	test "$cf_x_athena" = Xaw && cf_athena_list="xaw8 xaw7 xaw6"
+	for cf_athena_pkg in \
+		$cf_athena_list \
+		${cf_x_athena} \
+		${cf_x_athena}-devel \
+		lib${cf_x_athena} \
+		lib${cf_x_athena}-devel
+	do
+		
+
+
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists $cf_athena_pkg; then
+	test -n "$verbose" && echo "	found package $cf_athena_pkg" 1>&6
+
+echo "${as_me:-configure}:22187: testing found package $cf_athena_pkg ..." 1>&5
+
+
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags $cf_athena_pkg 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   $cf_athena_pkg 2>/dev/null`"
+	test -n "$verbose" && echo "	package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+echo "${as_me:-configure}:22194: testing package $cf_athena_pkg CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+
+	test -n "$verbose" && echo "	package $cf_athena_pkg LIBS: $cf_pkgconfig_libs" 1>&6
+
+echo "${as_me:-configure}:22199: testing package $cf_athena_pkg LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
 
+for cf_add_cflags in $cf_pkgconfig_incs
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
 
+				;;
+			esac
+			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/^[^"]*"'\''//'`
 
-if test "$USE_INCLUDED_LIBINTL" = yes ; then
-	if test "$nls_cv_force_use_gnu_gettext" = yes ; then
-		cat >> confdefs.h <<\EOF
-#define HAVE_GETTEXT 1
-EOF
+	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
+	;;
+esac
+done
 
-	elif test "$nls_cv_use_gnu_gettext" = yes ; then
-		cat >> confdefs.h <<\EOF
-#define HAVE_GETTEXT 1
-EOF
+if test -n "$cf_new_cflags" ; then
+	
+	CFLAGS="$CFLAGS $cf_new_cflags"
+fi
 
-	fi
-	if test -n "$nls_cv_header_intl" ; then
-		cat >> confdefs.h <<\EOF
-#define HAVE_LIBINTL_H 1
-EOF
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
 
-	fi
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
-LIBS="$LIBS $LIBICONV"
 
-### check for alloca (required for bison and/or intl/*)
-case "$YACC" in
-bison*)
-	use_alloca=yes
-	;;
-*)
-	use_alloca=$USE_INCLUDED_LIBINTL
-	;;
-esac
 
-if test ".$use_alloca" = .yes ; then
+
+	LIBS="$cf_pkgconfig_libs $LIBS"
 	
-# 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:16524: 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 16529 "configure"
-#include "confdefs.h"
-#include <alloca.h>
-int main() {
-char *p = alloca(2 * sizeof(int));
-; return 0; }
-EOF
-if { (eval echo configure:16536: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_header_alloca_h=no
-fi
-rm -f conftest*
-fi
+			cf_x_athena_lib="$cf_pkgconfig_libs"
+			
+cf_x_athena_LIBS=`echo "HAVE_LIB_$cf_x_athena" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
-if test $ac_cv_header_alloca_h = yes; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA_H 1
+			cat >> confdefs.h <<EOF
+#define $cf_x_athena_LIBS 1
 EOF
 
-fi
 
-echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:16557: checking for alloca" >&5
-if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+echo $ac_n "checking for usable $cf_x_athena/Xmu package""... $ac_c" 1>&6
+echo "configure:22296: checking for usable $cf_x_athena/Xmu package" >&5
+if eval "test \"`echo '$''{'cf_cv_xaw_compat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  cat > conftest.$ac_ext <<EOF
-#line 16562 "configure"
+  
+cat > conftest.$ac_ext <<EOF
+#line 22302 "configure"
 #include "confdefs.h"
 
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  if HAVE_ALLOCA_H
-#   include <alloca.h>
-#  else
-#   ifdef _AIX
- #pragma alloca
-#   else
-#    ifndef alloca /* predefined by HP cc +Olibcalls */
-char *alloca ();
-#    endif
-#   endif
-#  endif
-# endif
-#endif
+#include <X11/Xmu/CharSet.h>
 
 int main() {
-char *p = (char *) alloca(1);
+
+int check = XmuCompareISOLatin1("big", "small")
+
 ; return 0; }
 EOF
-if { (eval echo configure:16590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  ac_cv_func_alloca_works=yes
+if { (eval echo configure:22313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_xaw_compat=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_cv_func_alloca_works=no
+
+  cf_cv_xaw_compat=no
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
-echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
-if test $ac_cv_func_alloca_works = yes; then
-  cat >> confdefs.h <<\EOF
-#define HAVE_ALLOCA 1
-EOF
+echo "$ac_t""$cf_cv_xaw_compat" 1>&6
 
-fi
+			if test "$cf_cv_xaw_compat" = no
+			then
+				# workaround for broken ".pc" files...
+				case "$cf_x_athena_lib" in #(vi
+				*-lXmu*) #(vi
+					;;
+				*)
+					test -n "$verbose" && echo "	work around broken package" 1>&6
 
-if test $ac_cv_func_alloca_works = no; then
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-  # that cause trouble.  Some versions do not even contain alloca or
-  # contain a buggy version.  If you still want to use their alloca,
-  # use ar to extract alloca.o from them instead of compiling alloca.c.
-  ALLOCA=alloca.${ac_objext}
-  cat >> confdefs.h <<\EOF
-#define C_ALLOCA 1
-EOF
+echo "${as_me:-configure}:22336: testing work around broken package ..." 1>&5
 
 
-echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:16622: 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 16627 "configure"
-#include "confdefs.h"
-#if defined(CRAY) && ! defined(CRAY2)
-webecray
-#else
-wenotbecray
-#endif
+					
 
-EOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  egrep "webecray" >/dev/null 2>&1; then
-  rm -rf conftest*
-  ac_cv_os_cray=yes
-else
-  rm -rf conftest*
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
 
-fi
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xmu; then
+	test -n "$verbose" && echo "	found package xmu" 1>&6
 
-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:16652: 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 16657 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
+echo "${as_me:-configure}:22345: testing found package xmu ..." 1>&5
 
-int main() {
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags xmu 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   xmu 2>/dev/null`"
+	test -n "$verbose" && echo "	package xmu CFLAGS: $cf_pkgconfig_incs" 1>&6
 
-; return 0; }
-EOF
-if { (eval echo configure:16680: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
+echo "${as_me:-configure}:22352: testing package xmu CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+
+	test -n "$verbose" && echo "	package xmu LIBS: $cf_pkgconfig_libs" 1>&6
+
+echo "${as_me:-configure}:22357: testing package xmu LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_pkgconfig_incs
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
 
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  cat >> confdefs.h <<EOF
-#define CRAY_STACKSEG_END $ac_func
-EOF
+				;;
+			esac
+			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"
 
-  break
-else
-  echo "$ac_t""no" 1>&6
-fi
+	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
-fi
 
-echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:16707: 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
-  if test "$cross_compiling" = yes; then
-  ac_cv_c_stack_direction=0
-else
-  cat > conftest.$ac_ext <<EOF
-#line 16715 "configure"
-#include "confdefs.h"
-find_stack_direction ()
-{
-  static char *addr = 0;
-  auto char dummy;
-  if (addr == 0)
-    {
-      addr = &dummy;
-      return find_stack_direction ();
-    }
-  else
-    return (&dummy > addr) ? 1 : -1;
-}
-main ()
-{
-  exit (find_stack_direction() < 0);
-}
-EOF
-if { (eval echo configure:16734: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  ac_cv_c_stack_direction=-1
-fi
-rm -fr conftest*
+if test -n "$cf_new_cflags" ; then
+	
+	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
-echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
-cat >> confdefs.h <<EOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-EOF
-
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
 
-case $host_os in
-linux*|gnu*)
-	# workaround for bison 1.875c (compound breakage in Linux stdlib.h
-	# and bison's output make bison try to use alloca()).
-	if test -z "$GCC" ; then
-		CPPFLAGS="-DYYSTACK_USE_ALLOCA=0 $CPPFLAGS"
-		ALLOCA=""
-	elif test "$INTEL_COMPILER" = yes ; then
-		CPPFLAGS="-DYYSTACK_USE_ALLOCA=0 $CPPFLAGS"
-		ALLOCA=""
-	fi
-	;;
-esac
 
+
+	LIBS="$cf_pkgconfig_libs $LIBS"
+	:
 else
-	ALLOCA=""
 	
-fi
+test -n "$verbose" && echo "	...before $LIBS" 1>&6
 
+echo "${as_me:-configure}:22448: testing ...before $LIBS ..." 1>&5
 
-for cf_hdr in iconv.h
-do
-	echo $ac_n "checking for $cf_hdr""... $ac_c" 1>&6
-echo "configure:16779: checking for $cf_hdr" >&5
-	cat > conftest.$ac_ext <<EOF
-#line 16781 "configure"
-#include "confdefs.h"
 
-#include <sys/types.h>
-#include <$cf_hdr>
+LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt -lXmu ," -e 's/  / /g'`
+test -n "$verbose" && echo "	...after  $LIBS" 1>&6
 
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16789: \"$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*
-  cf_found=yes
+echo "${as_me:-configure}:22454: testing ...after  $LIBS ..." 1>&5
+
+
+
+fi
+
+					;;
+				esac
+			fi
+
+			break
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  cf_found=no
+	:
 fi
-rm -f conftest*
-echo "$ac_t""$cf_found" 1>&6
-if test $cf_found = yes ; then
+
+	done
+fi
+
+if test -z "$cf_x_athena_lib" ; then
 	
-cf_tr_hdr=`echo "$cf_hdr" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
 
-	cat >> confdefs.h <<EOF
-#define HAVE_${cf_tr_hdr} 1
-EOF
 
-fi
-done
 
-echo $ac_n "checking for iconv_open() //TRANSLIT extension""... $ac_c" 1>&6
-echo "configure:16815: checking for iconv_open() //TRANSLIT extension" >&5
-if test "$cross_compiling" = yes; then
-  echo "$ac_t""unknown" 1>&6
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists Xext; then
+	test -n "$verbose" && echo "	found package Xext" 1>&6
 
-else
-  cat > conftest.$ac_ext <<EOF
-#line 16821 "configure"
-#include "confdefs.h"
+echo "${as_me:-configure}:22480: testing found package Xext ..." 1>&5
 
-#ifdef HAVE_ICONV_H
-#	include <iconv.h>
-#endif /* HAVE_ICONV_H */
-#ifdef HAVE_STDLIB_H
-#	include <stdlib.h>
-#endif /* HAVE_STDLIB_H */
-int main() {
-	iconv_t cd;
 
-	if ((cd = iconv_open("US-ASCII//TRANSLIT", "ISO-8859-1")) == (iconv_t) (-1))
-		exit(1);
-	exit(0);
-}
-EOF
-if { (eval echo configure:16838: \"$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
-EOF
- echo "$ac_t""yes" 1>&6
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -fr conftest*
-  echo "$ac_t""no" 1>&6
-fi
-rm -fr conftest*
-fi
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags Xext 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   Xext 2>/dev/null`"
+	test -n "$verbose" && echo "	package Xext CFLAGS: $cf_pkgconfig_incs" 1>&6
 
+echo "${as_me:-configure}:22487: testing package Xext CFLAGS: $cf_pkgconfig_incs ..." 1>&5
 
 
-# tin has mkdirs.sh instead of mkinstalldirs, overwrite the result of test
-# in gettext.m4
-MKINSTALLDIRS="\$(top_srcdir)/mkdirs.sh"
+	test -n "$verbose" && echo "	package Xext LIBS: $cf_pkgconfig_libs" 1>&6
 
+echo "${as_me:-configure}:22492: testing package Xext LIBS: $cf_pkgconfig_libs ..." 1>&5
 
-if test "$cf_cv_termlib" = pdcurses ; then
-	if test "$no_x" = yes; then
-  # Not all programs may use this symbol, but it does not hurt to define it.
-  cat >> confdefs.h <<\EOF
-#define X_DISPLAY_MISSING 1
-EOF
 
-  X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
-else
-  if test -n "$x_includes"; then
-    X_CFLAGS="$X_CFLAGS -I$x_includes"
-  fi
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
 
-  # It would also be nice to do this for all -L options, not just this one.
-  if test -n "$x_libraries"; then
-    X_LIBS="$X_LIBS -L$x_libraries"
-    # For Solaris; some versions of Sun CC require a space after -R and
-    # others require no space.  Words are not sufficient . . . .
-    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:16881: 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 16884 "configure"
-#include "confdefs.h"
+for cf_add_cflags in $cf_pkgconfig_incs
+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[^=]*='\''\"[^"]*//'`
 
-int main() {
+			test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+				&& test -z "${cf_tst_cflags}" \
+				&& cf_fix_cppflags=yes
 
-; return 0; }
-EOF
-if { (eval echo configure:16891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  ac_R_nospace=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_R_nospace=no
+			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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			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
-rm -f conftest*
-      if test $ac_R_nospace = yes; then
-	echo "$ac_t""no" 1>&6
-	X_LIBS="$X_LIBS -R$x_libraries"
-      else
-	LIBS="$ac_xsave_LIBS -R $x_libraries"
-	cat > conftest.$ac_ext <<EOF
-#line 16907 "configure"
-#include "confdefs.h"
 
-int main() {
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
+fi
 
-; return 0; }
-EOF
-if { (eval echo configure:16914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
-  ac_R_space=yes
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  ac_R_space=no
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
-rm -f conftest*
-	if test $ac_R_space = yes; then
-	  echo "$ac_t""yes" 1>&6
-	  X_LIBS="$X_LIBS -R $x_libraries"
-	else
-	  echo "$ac_t""neither works" 1>&6
-	fi
-      fi
-      LIBS="$ac_xsave_LIBS"
-    esac
-  fi
 
-  # Check for system-dependent libraries X programs must link with.
-  # Do this before checking for the system-independent R6 libraries
-  # (-lICE), since we may need -lsocket or whatever for X linking.
 
-  if test "$ISC" = yes; then
-    X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
-  else
-    # Martyn.Johnson@cl.cam.ac.uk says this is needed for Ultrix, if the X
-    # 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:16946: checking for dnet_ntoa in -ldnet" >&5
-ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
+
+
+	LIBS="$cf_pkgconfig_libs $LIBS"
+	:
+else
+	
+	echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
+echo "configure:22582: 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
 else
   ac_save_LIBS="$LIBS"
-LIBS="-ldnet  $LIBS"
+LIBS="-lXext  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 16954 "configure"
+#line 22590 "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
     builtin and then its argument prototype would still apply.  */
-char dnet_ntoa();
+char XextCreateExtension();
 
 int main() {
-dnet_ntoa()
+XextCreateExtension()
 ; return 0; }
 EOF
-if { (eval echo configure:16965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:22601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"
+  LIBS="-lXext $LIBS"
 else
   echo "$ac_t""no" 1>&6
 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:16987: 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
+fi
+
+
+	
+
+
+
+cf_have_X_LIBS=no
+
+
+
+
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists xt; then
+	test -n "$verbose" && echo "	found package xt" 1>&6
+
+echo "${as_me:-configure}:22636: testing found package xt ..." 1>&5
+
+
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags xt 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   xt 2>/dev/null`"
+	test -n "$verbose" && echo "	package xt CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+echo "${as_me:-configure}:22643: testing package xt CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+
+	test -n "$verbose" && echo "	package xt LIBS: $cf_pkgconfig_libs" 1>&6
+
+echo "${as_me:-configure}:22648: testing package xt LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_pkgconfig_incs
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			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="$CPPFLAGS $cf_new_cppflags"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+
+
+
+	LIBS="$cf_pkgconfig_libs $LIBS"
+	
+
+	case "x$LIBS" in #(vi
+	*-lX11*) #(vi
+		;;
+	*)
+# we have an "xt" package, but it may omit Xt's dependency on X11
+echo $ac_n "checking for usable X dependency""... $ac_c" 1>&6
+echo "configure:22742: checking for usable X dependency" >&5
+if eval "test \"`echo '$''{'cf_cv_xt_x11_compat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-ldnet_stub  $LIBS"
+  
 cat > conftest.$ac_ext <<EOF
-#line 16995 "configure"
+#line 22748 "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
-    builtin and then its argument prototype would still apply.  */
-char dnet_ntoa();
+
+#include <X11/Xlib.h>
 
 int main() {
-dnet_ntoa()
+
+	int rc1 = XDrawLine((Display*) 0, (Drawable) 0, (GC) 0, 0, 0, 0, 0);
+	int rc2 = XClearWindow((Display*) 0, (Window) 0);
+	int rc3 = XMoveWindow((Display*) 0, (Window) 0, 0, 0);
+	int rc4 = XMoveResizeWindow((Display*)0, (Window)0, 0, 0, 0, 0);
+
 ; return 0; }
 EOF
-if { (eval echo configure:17006: \"$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"
+if { (eval echo configure:22762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_xt_x11_compat=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+  cf_cv_xt_x11_compat=no
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"
-else
-  echo "$ac_t""no" 1>&6
+rm -rf conftest*
 fi
 
-    fi
+echo "$ac_t""$cf_cv_xt_x11_compat" 1>&6
+		if test "$cf_cv_xt_x11_compat" = no
+		then
+			test -n "$verbose" && echo "	work around broken X11 dependency" 1>&6
 
-    # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
-    # to get the SysV transport functions.
-    # chad@anasazi.com says the Pyramis MIS-ES running DC/OSx (SVR4)
-    # needs -lnsl.
-    # 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:17035: 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 17040 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostbyname(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char gethostbyname();
+echo "${as_me:-configure}:22779: testing work around broken X11 dependency ..." 1>&5
+
+
+			# 2010/11/19 - good enough until a working Xt on Xcb is delivered.
+			
+
+
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists x11; then
+	test -n "$verbose" && echo "	found package x11" 1>&6
+
+echo "${as_me:-configure}:22789: testing found package x11 ..." 1>&5
+
+
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags x11 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   x11 2>/dev/null`"
+	test -n "$verbose" && echo "	package x11 CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+echo "${as_me:-configure}:22796: testing package x11 CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+
+	test -n "$verbose" && echo "	package x11 LIBS: $cf_pkgconfig_libs" 1>&6
+
+echo "${as_me:-configure}:22801: testing package x11 LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_pkgconfig_incs
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			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"
 
-int main() {
+	cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_gethostbyname) || defined (__stub___gethostbyname)
-choke me
-#else
-gethostbyname();
-#endif
+	test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
+	;;
+esac
+done
 
-; return 0; }
-EOF
-if { (eval echo configure:17063: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_gethostbyname=no"
+if test -n "$cf_new_cflags" ; then
+	
+	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
-rm -f conftest*
+
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
-if eval "test \"`echo '$ac_cv_func_'gethostbyname`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
-else
-  echo "$ac_t""no" 1>&6
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
-    if test $ac_cv_func_gethostbyname = no; then
-      echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:17084: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lnsl  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 17092 "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
-    builtin and then its argument prototype would still apply.  */
-char gethostbyname();
 
-int main() {
-gethostbyname()
-; return 0; }
-EOF
-if { (eval echo configure:17103: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl"
+
+	LIBS="$cf_pkgconfig_libs $LIBS"
+	:
 else
-  echo "$ac_t""no" 1>&6
-fi
+	
+test -n "$verbose" && echo "	...before $LIBS" 1>&6
 
-    fi
+echo "${as_me:-configure}:22892: testing ...before $LIBS ..." 1>&5
 
-    # lieder@skyler.mavd.honeywell.com says without -lsocket,
-    # socket/setsockopt and other routines are undefined under SCO ODT
-    # 2.0.  But -lsocket is broken on IRIX 5.2 (and is not necessary
-    # on later versions), says simon@lia.di.epfl.ch: it contains
-    # gethostby* variants that don't use the nameserver (or something).
-    # -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:17133: 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 17138 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char connect(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char connect();
 
-int main() {
+LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt -lX11 ," -e 's/  / /g'`
+test -n "$verbose" && echo "	...after  $LIBS" 1>&6
+
+echo "${as_me:-configure}:22898: testing ...after  $LIBS ..." 1>&5
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_connect) || defined (__stub___connect)
-choke me
-#else
-connect();
-#endif
 
-; return 0; }
-EOF
-if { (eval echo configure:17161: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_connect=no"
-fi
-rm -f conftest*
-fi
 
-if eval "test \"`echo '$ac_cv_func_'connect`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
-else
-  echo "$ac_t""no" 1>&6
 fi
 
-    if test $ac_cv_func_connect = no; then
-      echo $ac_n "checking for connect in -lsocket""... $ac_c" 1>&6
-echo "configure:17182: 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
+		fi
+		;;
+	esac
+
+echo $ac_n "checking for usable X Toolkit package""... $ac_c" 1>&6
+echo "configure:22909: checking for usable X Toolkit package" >&5
+if eval "test \"`echo '$''{'cf_cv_xt_ice_compat'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  ac_save_LIBS="$LIBS"
-LIBS="-lsocket $X_EXTRA_LIBS $LIBS"
+  
 cat > conftest.$ac_ext <<EOF
-#line 17190 "configure"
+#line 22915 "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
-    builtin and then its argument prototype would still apply.  */
-char connect();
+
+#include <X11/Shell.h>
 
 int main() {
-connect()
+int num = IceConnectionNumber(0)
+
 ; return 0; }
 EOF
-if { (eval echo configure:17201: \"$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"
+if { (eval echo configure:22925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
+  cf_cv_xt_ice_compat=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+  cf_cv_xt_ice_compat=no
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS"
-else
-  echo "$ac_t""no" 1>&6
+rm -rf conftest*
 fi
 
-    fi
+echo "$ac_t""$cf_cv_xt_ice_compat" 1>&6
 
-    # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
-    echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:17225: 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 17230 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char remove(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char remove();
+	if test "$cf_cv_xt_ice_compat" = no
+	then
+		# workaround for broken ".pc" files used for X Toolkit.
+		case "x$X_PRE_LIBS" in #(vi
+		*-lICE*)
+			case "x$LIBS" in #(vi
+			*-lICE*) #(vi
+				;;
+			*)
+				test -n "$verbose" && echo "	work around broken ICE dependency" 1>&6
 
-int main() {
+echo "${as_me:-configure}:22950: testing work around broken ICE dependency ..." 1>&5
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_remove) || defined (__stub___remove)
-choke me
-#else
-remove();
-#endif
 
-; return 0; }
-EOF
-if { (eval echo configure:17253: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_remove=no"
+				
+
+
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists ice; then
+	test -n "$verbose" && echo "	found package ice" 1>&6
+
+echo "${as_me:-configure}:22959: testing found package ice ..." 1>&5
+
+
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags ice 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   ice 2>/dev/null`"
+	test -n "$verbose" && echo "	package ice CFLAGS: $cf_pkgconfig_incs" 1>&6
+
+echo "${as_me:-configure}:22966: testing package ice CFLAGS: $cf_pkgconfig_incs ..." 1>&5
+
+
+	test -n "$verbose" && echo "	package ice LIBS: $cf_pkgconfig_libs" 1>&6
+
+echo "${as_me:-configure}:22971: testing package ice LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_pkgconfig_incs
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			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
-rm -f conftest*
+
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
-if eval "test \"`echo '$ac_cv_func_'remove`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
-else
-  echo "$ac_t""no" 1>&6
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
-    if test $ac_cv_func_remove = no; then
-      echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:17274: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lposix  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 17282 "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
-    builtin and then its argument prototype would still apply.  */
-char remove();
 
-int main() {
-remove()
-; return 0; }
-EOF
-if { (eval echo configure:17293: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix"
-else
-  echo "$ac_t""no" 1>&6
-fi
 
-    fi
+	LIBS="$cf_pkgconfig_libs $LIBS"
+	
 
-    # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
-    echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:17317: 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 17322 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shmat(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char shmat();
 
-int main() {
+if test "$PKG_CONFIG" != none && "$PKG_CONFIG" --exists sm; then
+	test -n "$verbose" && echo "	found package sm" 1>&6
 
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_shmat) || defined (__stub___shmat)
-choke me
-#else
-shmat();
-#endif
+echo "${as_me:-configure}:23063: testing found package sm ..." 1>&5
 
-; return 0; }
-EOF
-if { (eval echo configure:17345: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_shmat=no"
-fi
-rm -f conftest*
-fi
 
-if eval "test \"`echo '$ac_cv_func_'shmat`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  :
-else
-  echo "$ac_t""no" 1>&6
-fi
+	cf_pkgconfig_incs="`$PKG_CONFIG --cflags sm 2>/dev/null`"
+	cf_pkgconfig_libs="`$PKG_CONFIG --libs   sm 2>/dev/null`"
+	test -n "$verbose" && echo "	package sm CFLAGS: $cf_pkgconfig_incs" 1>&6
 
-    if test $ac_cv_func_shmat = no; then
-      echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:17366: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lipc  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 17374 "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
-    builtin and then its argument prototype would still apply.  */
-char shmat();
+echo "${as_me:-configure}:23070: testing package sm CFLAGS: $cf_pkgconfig_incs ..." 1>&5
 
-int main() {
-shmat()
-; return 0; }
-EOF
-if { (eval echo configure:17385: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+
+	test -n "$verbose" && echo "	package sm LIBS: $cf_pkgconfig_libs" 1>&6
+
+echo "${as_me:-configure}:23075: testing package sm LIBS: $cf_pkgconfig_libs ..." 1>&5
+
+
+	
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_pkgconfig_incs
+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
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
+			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
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
+if test -n "$cf_new_cppflags" ; then
+	
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc"
-else
-  echo "$ac_t""no" 1>&6
+
+if test -n "$cf_new_extra_cppflags" ; then
+	
+	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
-    fi
-  fi
 
-  # Check for libraries that X11R6 Xt/Xaw programs need.
-  ac_save_LDFLAGS="$LDFLAGS"
-  test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
-  # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
-  # check for ICE first), but we must link in the order -lSM -lICE or
-  # we get undefined symbols.  So assume we have SM if we have ICE.
-  # These have to be linked with before -lX11, unlike the other
-  # 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:17418: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lICE $X_EXTRA_LIBS $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 17426 "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
-    builtin and then its argument prototype would still apply.  */
-char IceConnectionNumber();
 
-int main() {
-IceConnectionNumber()
-; return 0; }
-EOF
-if { (eval echo configure:17437: \"$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"
+
+	LIBS="$cf_pkgconfig_libs $LIBS"
+	:
 else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+	:
 fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
 
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"
 else
-  echo "$ac_t""no" 1>&6
-fi
+	
+test -n "$verbose" && echo "	...before $LIBS" 1>&6
 
-  LDFLAGS="$ac_save_LDFLAGS"
+echo "${as_me:-configure}:23170: testing ...before $LIBS ..." 1>&5
 
-fi
 
+LIBS=`echo "$LIBS" | sed -e "s/[ 	][ 	]*/ /g" -e "s,-lXt ,-lXt $X_PRE_LIBS ," -e 's/  / /g'`
+test -n "$verbose" && echo "	...after  $LIBS" 1>&6
 
+echo "${as_me:-configure}:23176: testing ...after  $LIBS ..." 1>&5
 
 
 
-# SYSTEM_NAME=`echo "$cf_cv_system_name"|tr ' ' -`
+fi
 
-cf_have_X_LIBS=no
+				;;
+			esac
+			;;
+		esac
+	fi
+
+	cf_have_X_LIBS=yes
+
+else
+	
+
+	LDFLAGS="$X_LIBS $LDFLAGS"
+	
+test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
 
-LDFLAGS="$X_LIBS $LDFLAGS"
+echo "${as_me:-configure}:23197: testing checking additions to CFLAGS ..." 1>&5
 
-test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
 
 cf_check_cflags="$CFLAGS"
 cf_check_cppflags="$CPPFLAGS"
@@ -17488,8 +23215,8 @@ no)
 			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
+				&& 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"
@@ -17504,6 +23231,16 @@ no)
 		*$cf_add_cflags) #(vi
 			;;
 		*) #(vi
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
 			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
 			;;
 		esac
@@ -17519,8 +23256,8 @@ yes)
 	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
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
 	;;
 esac
 done
@@ -17528,18 +23265,27 @@ done
 if test -n "$cf_new_cflags" ; then
 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
 
+echo "${as_me:-configure}:23269: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+
 	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
 if test -n "$cf_new_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+echo "${as_me:-configure}:23278: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
 
+echo "${as_me:-configure}:23287: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
@@ -17548,38 +23294,44 @@ fi
 
 if test "$cf_check_cflags" != "$CFLAGS" ; then
 cat > conftest.$ac_ext <<EOF
-#line 17552 "configure"
+#line 23298 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello world");
 ; return 0; }
 EOF
-if { (eval echo configure:17559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
 
+echo "${as_me:-configure}:23313: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+
+
 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
 
+echo "${as_me:-configure}:23319: testing but keeping change to \$CPPFLAGS ..." 1>&5
+
+
 	 fi
 	 CFLAGS="$cf_check_flags"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 
-echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6
-echo "configure:17578: checking for XOpenDisplay" >&5
+	echo $ac_n "checking for XOpenDisplay""... $ac_c" 1>&6
+echo "configure:23330: 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 17583 "configure"
+#line 23335 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XOpenDisplay(); below.  */
@@ -17602,16 +23354,16 @@ XOpenDisplay();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_func_XOpenDisplay=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_func_XOpenDisplay=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 if eval "test \"`echo '$ac_cv_func_'XOpenDisplay`\" = yes"; then
@@ -17620,8 +23372,8 @@ if eval "test \"`echo '$ac_cv_func_'XOpe
 else
   echo "$ac_t""no" 1>&6
 
-echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:17625: checking for XOpenDisplay in -lX11" >&5
+	echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
+echo "configure:23377: 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
@@ -17629,7 +23381,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17633 "configure"
+#line 23385 "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
@@ -17640,16 +23392,16 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:17644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
@@ -17663,13 +23415,13 @@ fi
 fi
 
 
-echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6
-echo "configure:17668: checking for XtAppInitialize" >&5
+	echo $ac_n "checking for XtAppInitialize""... $ac_c" 1>&6
+echo "configure:23420: 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 17673 "configure"
+#line 23425 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char XtAppInitialize(); below.  */
@@ -17692,16 +23444,16 @@ XtAppInitialize();
 
 ; return 0; }
 EOF
-if { (eval echo configure:17696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_func_XtAppInitialize=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_func_XtAppInitialize=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 if eval "test \"`echo '$ac_cv_func_'XtAppInitialize`\" = yes"; then
@@ -17710,8 +23462,8 @@ if eval "test \"`echo '$ac_cv_func_'XtAp
 else
   echo "$ac_t""no" 1>&6
 
-echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
-echo "configure:17715: checking for XtAppInitialize in -lXt" >&5
+	echo $ac_n "checking for XtAppInitialize in -lXt""... $ac_c" 1>&6
+echo "configure:23467: 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
@@ -17719,7 +23471,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 17723 "configure"
+#line 23475 "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
@@ -17730,16 +23482,16 @@ int main() {
 XtAppInitialize()
 ; return 0; }
 EOF
-if { (eval echo configure:17734: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
@@ -17749,8 +23501,8 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_l
 #define HAVE_LIBXT 1
 EOF
 
-	 cf_have_X_LIBS=Xt
-	 LIBS="-lXt $X_PRE_LIBS $LIBS"
+		 cf_have_X_LIBS=Xt
+		 LIBS="-lXt $X_PRE_LIBS $LIBS $X_EXTRA_LIBS"
 else
   echo "$ac_t""no" 1>&6
 fi
@@ -17758,112 +23510,18 @@ fi
 fi
 
 
+fi
+
+
 if test $cf_have_X_LIBS = no ; then
 	echo "configure: warning: Unable to successfully link X Toolkit library (-lXt) with
 test program.  You will have to check and add the proper libraries by hand
 to makefile." 1>&2
 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:17772: checking if you want to link with Xaw 3d library" >&5
-withval=
-
-# Check whether --with-Xaw3d or --without-Xaw3d was given.
-if test "${with_Xaw3d+set}" = set; then
-  withval="$with_Xaw3d"
-  :
-fi
-
-if test "$withval" = yes ; then
-	cf_x_athena=Xaw3d
-	echo "$ac_t""yes" 1>&6
-else
-	echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking if you want to link with neXT Athena library""... $ac_c" 1>&6
-echo "configure:17789: checking if you want to link with neXT Athena library" >&5
-withval=
-
-# Check whether --with-neXtaw or --without-neXtaw was given.
-if test "${with_neXtaw+set}" = set; then
-  withval="$with_neXtaw"
-  :
-fi
-
-if test "$withval" = yes ; then
-	cf_x_athena=neXtaw
-	echo "$ac_t""yes" 1>&6
-else
-	echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking if you want to link with Athena-Plus library""... $ac_c" 1>&6
-echo "configure:17806: checking if you want to link with Athena-Plus library" >&5
-withval=
-
-# Check whether --with-XawPlus or --without-XawPlus was given.
-if test "${with_XawPlus+set}" = set; then
-  withval="$with_XawPlus"
-  :
-fi
-
-if test "$withval" = yes ; then
-	cf_x_athena=XawPlus
-	echo "$ac_t""yes" 1>&6
-else
-	echo "$ac_t""no" 1>&6
-fi
-
-echo $ac_n "checking for XextCreateExtension in -lXext""... $ac_c" 1>&6
-echo "configure:17823: 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
-else
-  ac_save_LIBS="$LIBS"
-LIBS="-lXext  $LIBS"
-cat > conftest.$ac_ext <<EOF
-#line 17831 "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
-    builtin and then its argument prototype would still apply.  */
-char XextCreateExtension();
-
-int main() {
-XextCreateExtension()
-; return 0; }
-EOF
-if { (eval echo configure:17842: \"$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
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
-fi
-rm -f conftest*
-LIBS="$ac_save_LIBS"
-
-fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  LIBS="-lXext $LIBS"
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-
-cf_x_athena_lib=""
-
-
+	
 cf_x_athena_root=$cf_x_athena
-cf_x_athena_include=""
+cf_x_athena_inc=""
 
 for cf_path in default \
 	/usr/contrib/X11R6 \
@@ -17871,19 +23529,19 @@ for cf_path in default \
 	/usr/lib/X11R5 \
 	/usr/local
 do
-	if test -z "$cf_x_athena_include" ; then
+	if test -z "$cf_x_athena_inc" ; then
 		cf_save="$CPPFLAGS"
 		cf_test=X11/$cf_x_athena_root/SimpleMenu.h
 		if test $cf_path != default ; then
-			CPPFLAGS="-I$cf_path/include $cf_save"
+			CPPFLAGS="$cf_save -I$cf_path/include"
 			echo $ac_n "checking for $cf_test in $cf_path""... $ac_c" 1>&6
-echo "configure:17881: checking for $cf_test in $cf_path" >&5
+echo "configure:23539: checking for $cf_test in $cf_path" >&5
 		else
 			echo $ac_n "checking for $cf_test""... $ac_c" 1>&6
-echo "configure:17884: checking for $cf_test" >&5
+echo "configure:23542: checking for $cf_test" >&5
 		fi
 		cat > conftest.$ac_ext <<EOF
-#line 17887 "configure"
+#line 23545 "configure"
 #include "confdefs.h"
 
 #include <X11/Intrinsic.h>
@@ -17892,7 +23550,7 @@ int main() {
 
 ; return 0; }
 EOF
-if { (eval echo configure:17896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:23554: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   cf_result=yes
 else
@@ -17904,7 +23562,7 @@ fi
 rm -f conftest*
 		echo "$ac_t""$cf_result" 1>&6
 		if test "$cf_result" = yes ; then
-			cf_x_athena_include=$cf_path
+			cf_x_athena_inc=$cf_path
 			break
 		else
 			CPPFLAGS="$cf_save"
@@ -17912,13 +23570,13 @@ rm -f conftest*
 	fi
 done
 
-if test -z "$cf_x_athena_include" ; then
+if test -z "$cf_x_athena_inc" ; then
 	echo "configure: warning: Unable to successfully find Athena header files with test program" 1>&2
-elif test "$cf_x_athena_include" != default ; then
-	CPPFLAGS="$CPPFLAGS -I$cf_x_athena_include"
+elif test "$cf_x_athena_inc" != default ; then
+	CPPFLAGS="$CPPFLAGS -I$cf_x_athena_inc"
 fi
 
-
+	
 cf_x_athena_root=$cf_x_athena
 cf_x_athena_lib=""
 
@@ -17939,40 +23597,40 @@ 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:17943: checking for $cf_lib in $cf_path" >&5
+echo "configure:23601: 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:17947: checking for $cf_test in $cf_lib" >&5
+echo "configure:23605: 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 17952 "configure"
+#line 23608 "configure"
 #include "confdefs.h"
 
+#include <X11/Intrinsic.h>
+#include <X11/$cf_x_athena_root/SimpleMenu.h>
+
 int main() {
-$cf_test()
+
+$cf_test((XtAppContext) 0)
 ; return 0; }
 EOF
-if { (eval echo configure:17959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   cf_result=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   cf_result=no
 fi
-rm -f conftest*
+rm -rf conftest*
 			echo "$ac_t""$cf_result" 1>&6
 			if test "$cf_result" = yes ; then
 				cf_x_athena_lib="$cf_lib"
-				LIBS="$cf_SAVE"
 				break
-			else
-				LIBS="$cf_save"
 			fi
+			LIBS="$cf_save"
 		fi
 	done
 done
@@ -17989,13 +23647,69 @@ cat >> confdefs.h <<EOF
 EOF
 
 
+fi
+
+
+
+
+for ac_prog in xcurses-config
+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:23661: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XCURSES_CONFIG'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$XCURSES_CONFIG" in
+  /*)
+  ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_XCURSES_CONFIG="$XCURSES_CONFIG" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_XCURSES_CONFIG="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+XCURSES_CONFIG="$ac_cv_path_XCURSES_CONFIG"
+if test -n "$XCURSES_CONFIG"; then
+  echo "$ac_t""$XCURSES_CONFIG" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$XCURSES_CONFIG" && break
+done
+test -n "$XCURSES_CONFIG" || XCURSES_CONFIG="none"
+
+
+if test "$XCURSES_CONFIG" != none ; then
 
+CPPFLAGS="$CPPFLAGS `$XCURSES_CONFIG --cflags`"
+LIBS="`$XCURSES_CONFIG --libs` $LIBS"
 
+cf_cv_lib_XCurses=yes
+
+else
 
 LDFLAGS="$LDFLAGS $X_LIBS"
 
 test -n "$verbose" && echo "	checking additions to CFLAGS" 1>&6
 
+echo "${as_me:-configure}:23711: testing checking additions to CFLAGS ..." 1>&5
+
+
 cf_check_cflags="$CFLAGS"
 cf_check_cppflags="$CPPFLAGS"
 
@@ -18015,8 +23729,8 @@ no)
 			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
+				&& 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"
@@ -18031,6 +23745,16 @@ no)
 		*$cf_add_cflags) #(vi
 			;;
 		*) #(vi
+			case $cf_add_cflags in #(vi
+			-D*)
+				cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+				
+CPPFLAGS=`echo "$CPPFLAGS" | \
+	sed	-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?[ 	]/ /g' \
+		-e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ 	]*\)\?$//g'`
+
+				;;
+			esac
 			cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
 			;;
 		esac
@@ -18046,8 +23770,8 @@ yes)
 	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
+		&& test -z "${cf_tst_cflags}" \
+		&& cf_fix_cppflags=no
 	;;
 esac
 done
@@ -18055,18 +23779,27 @@ done
 if test -n "$cf_new_cflags" ; then
 	test -n "$verbose" && echo "	add to \$CFLAGS $cf_new_cflags" 1>&6
 
+echo "${as_me:-configure}:23783: testing add to \$CFLAGS $cf_new_cflags ..." 1>&5
+
+
 	CFLAGS="$CFLAGS $cf_new_cflags"
 fi
 
 if test -n "$cf_new_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$CPPFLAGS $cf_new_cppflags" 1>&6
 
-	CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+echo "${as_me:-configure}:23792: testing add to \$CPPFLAGS $cf_new_cppflags ..." 1>&5
+
+
+	CPPFLAGS="$CPPFLAGS $cf_new_cppflags"
 fi
 
 if test -n "$cf_new_extra_cppflags" ; then
 	test -n "$verbose" && echo "	add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags" 1>&6
 
+echo "${as_me:-configure}:23801: testing add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags ..." 1>&5
+
+
 	EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
 fi
 
@@ -18075,32 +23808,38 @@ fi
 
 if test "$cf_check_cflags" != "$CFLAGS" ; then
 cat > conftest.$ac_ext <<EOF
-#line 18079 "configure"
+#line 23812 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 int main() {
 printf("Hello world");
 ; return 0; }
 EOF
-if { (eval echo configure:18086: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23819: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   :
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   test -n "$verbose" && echo "	test-compile failed.  Undoing change to \$CFLAGS" 1>&6
 
+echo "${as_me:-configure}:23827: testing test-compile failed.  Undoing change to \$CFLAGS ..." 1>&5
+
+
 	 if test "$cf_check_cppflags" != "$CPPFLAGS" ; then
 		 test -n "$verbose" && echo "	but keeping change to \$CPPFLAGS" 1>&6
 
+echo "${as_me:-configure}:23833: testing but keeping change to \$CPPFLAGS ..." 1>&5
+
+
 	 fi
 	 CFLAGS="$cf_check_flags"
 fi
-rm -f conftest*
+rm -rf conftest*
 fi
 
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:18104: checking for XOpenDisplay in -lX11" >&5
+echo "configure:23843: 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
@@ -18108,7 +23847,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lX11 $X_PRE_LIBS $LIBS $X_EXTRA_LIBS $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 18112 "configure"
+#line 23851 "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
@@ -18119,16 +23858,16 @@ int main() {
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:18123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   eval "ac_cv_lib_$ac_lib_var=no"
 fi
-rm -f conftest*
+rm -rf conftest*
 LIBS="$ac_save_LIBS"
 
 fi
@@ -18140,14 +23879,14 @@ else
 fi
 
 echo $ac_n "checking for XCurses library""... $ac_c" 1>&6
-echo "configure:18144: checking for XCurses library" >&5
+echo "configure:23883: 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 18151 "configure"
+#line 23890 "configure"
 #include "confdefs.h"
 
 #include <xcurses.h>
@@ -18157,20 +23896,23 @@ int main() {
 XCursesExit();
 ; return 0; }
 EOF
-if { (eval echo configure:18161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-  rm -rf conftest*
+if { (eval echo configure:23900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+  
   cf_cv_lib_XCurses=yes
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
-  rm -rf conftest*
+
   cf_cv_lib_XCurses=no
 fi
-rm -f conftest*
+rm -rf conftest*
 
 fi
 
 echo "$ac_t""$cf_cv_lib_XCurses" 1>&6
+
+fi
+
 if test $cf_cv_lib_XCurses = yes ; then
 	cat >> confdefs.h <<\EOF
 #define UNIX 1
@@ -18180,11 +23922,43 @@ EOF
 #define XCURSES 1
 EOF
 
-	cat >> confdefs.h <<\EOF
+	ac_safe=`echo "xcurses.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for xcurses.h""... $ac_c" 1>&6
+echo "configure:23928: checking for xcurses.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 23933 "configure"
+#include "confdefs.h"
+#include <xcurses.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:23938: \"$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*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<\EOF
 #define HAVE_XCURSES 1
 EOF
 
 else
+  echo "$ac_t""no" 1>&6
+fi
+
+else
 	{ echo "configure: error: Cannot link with XCurses" 1>&2; exit 1; }
 fi
 
@@ -18192,18 +23966,21 @@ fi
 
 ### sum up warnings
 if test "$cf_cv_termlib" = none ; then
-	echo "configure: warning: no term-lib found" 1>&2
+	echo "configure: warning: no term-lib found, you might run into trouble later." 1>&2
 fi
 if test "$YACC" = "" ; then
-	echo "configure: warning: no yacc-parser found" 1>&2
+	echo "configure: warning: no yacc-parser found, you might run into trouble later." 1>&2
 fi
 if test "$RANLIB" = "" ; then
-        echo "configure: warning: no library archive builder found" 1>&2
+	echo "configure: warning: no library archive builder found, you might run into trouble later." 1>&2
 fi
 
 ### Finally, build autoconf.h and the makefiles
 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
 
+LINTFLAGS=$LINTFLAGS
+
+
 
 cf_define=`echo "$CC"|sed -e 's/\\\\/\\\\134/g' -e 's/^[ 	]\\+//' -e 's/[ 	]\\+$//' -e 's/"/\\\\042/g'`
 cat >> confdefs.h <<EOF
@@ -18344,7 +24121,7 @@ do
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.13.20030927"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13.20110430"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
@@ -18357,6 +24134,7 @@ ac_given_INSTALL="$INSTALL"
 
 trap 'rm -fr `echo "$PCRE_MAKEFILE
 	$SUB_MAKEFILE
+	$CAN_MAKEFILE
 	src/Makefile include/autoconf.h:include/autoconf.hin" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
@@ -18396,6 +24174,7 @@ s%@host_alias@%$host_alias%g
 s%@host_cpu@%$host_cpu%g
 s%@host_vendor@%$host_vendor%g
 s%@host_os@%$host_os%g
+s%@PATH_SEPARATOR@%$PATH_SEPARATOR%g
 s%@DESTDIR@%$DESTDIR%g
 s%@XLC@%$XLC%g
 s%@CC@%$CC%g
@@ -18428,7 +24207,7 @@ s%@build_os@%$build_os%g
 s%@RANLIB@%$RANLIB%g
 s%@LD@%$LD%g
 s%@AR@%$AR%g
-s%@AR_OPTS@%$AR_OPTS%g
+s%@ARFLAGS@%$ARFLAGS%g
 s%@PATH_ISPELL@%$PATH_ISPELL%g
 s%@PATH_METAMAIL@%$PATH_METAMAIL%g
 s%@PATH_SUM@%$PATH_SUM%g
@@ -18437,6 +24216,7 @@ s%@DEFAULT_MAILER@%$DEFAULT_MAILER%g
 s%@PATH_PGP@%$PATH_PGP%g
 s%@PATH_PGPK@%$PATH_PGPK%g
 s%@PATH_GPG@%$PATH_GPG%g
+s%@PATH_SLRNFACE@%$PATH_SLRNFACE%g
 s%@DEFAULT_SHELL@%$DEFAULT_SHELL%g
 s%@ENABLE_DEBUG@%$ENABLE_DEBUG%g
 s%@ECHO_LT@%$ECHO_LT%g
@@ -18450,7 +24230,7 @@ s%@SPOOLDIR@%$SPOOLDIR%g
 s%@NOVROOTDIR@%$NOVROOTDIR%g
 s%@INEWSDIR@%$INEWSDIR%g
 s%@INEWS@%$INEWS%g
-s%@INN_NNTPLIB@%$INN_NNTPLIB%g
+s%@NCURSES_CONFIG@%$NCURSES_CONFIG%g
 s%@PCRE_MAJOR@%$PCRE_MAJOR%g
 s%@PCRE_MINOR@%$PCRE_MINOR%g
 s%@PCRE_DATE@%$PCRE_DATE%g
@@ -18458,7 +24238,11 @@ s%@PCRE_DEFINES@%$PCRE_DEFINES%g
 s%@PCREDIR_MAKE@%$PCREDIR_MAKE%g
 s%@PCREDIR_LIBS@%$PCREDIR_LIBS%g
 s%@PCREDIR_CPPFLAGS@%$PCREDIR_CPPFLAGS%g
+s%@LINK_SIZE@%$LINK_SIZE%g
 s%@EXTRAOBJS@%$EXTRAOBJS%g
+s%@EXTRAO_DEP@%$EXTRAO_DEP%g
+s%@CANDIR_MAKE@%$CANDIR_MAKE%g
+s%@CANLIBS@%$CANLIBS%g
 s%@TIN_DEFAULTS_DIR@%$TIN_DEFAULTS_DIR%g
 s%@LIBOBJS@%$LIBOBJS%g
 s%@cf_cv_makeflags@%$cf_cv_makeflags%g
@@ -18467,7 +24251,6 @@ s%@ALLOCA@%$ALLOCA%g
 s%@GLIBC21@%$GLIBC21%g
 s%@LIBICONV@%$LIBICONV%g
 s%@USE_NLS@%$USE_NLS%g
-s%@PATHSEP@%$PATHSEP%g
 s%@MSGFMT@%$MSGFMT%g
 s%@GMSGFMT@%$GMSGFMT%g
 s%@XGETTEXT@%$XGETTEXT%g
@@ -18484,17 +24267,20 @@ s%@POSUB@%$POSUB%g
 s%@DATADIRNAME@%$DATADIRNAME%g
 s%@INSTOBJEXT@%$INSTOBJEXT%g
 s%@GENCAT@%$GENCAT%g
-s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
 s%@INTL_LIBTOOL_SUFFIX_PREFIX@%$INTL_LIBTOOL_SUFFIX_PREFIX%g
+s%@NLS_TEXTDOMAIN@%$NLS_TEXTDOMAIN%g
 s%@MSG_DIR_MAKE@%$MSG_DIR_MAKE%g
 s%@SUB_MAKEFILE@%$SUB_MAKEFILE%g
 s%@INTLDIR_MAKE@%$INTLDIR_MAKE%g
 s%@GT_YES@%$GT_YES%g
 s%@GT_NO@%$GT_NO%g
+s%@PKG_CONFIG@%$PKG_CONFIG%g
 s%@X_CFLAGS@%$X_CFLAGS%g
 s%@X_PRE_LIBS@%$X_PRE_LIBS%g
 s%@X_LIBS@%$X_LIBS%g
 s%@X_EXTRA_LIBS@%$X_EXTRA_LIBS%g
+s%@XCURSES_CONFIG@%$XCURSES_CONFIG%g
+s%@LINTFLAGS@%$LINTFLAGS%g
 
 CEOF
 EOF
@@ -18538,6 +24324,7 @@ cat >> $CONFIG_STATUS <<EOF
 
 CONFIG_FILES=\${CONFIG_FILES-"$PCRE_MAKEFILE
 	$SUB_MAKEFILE
+	$CAN_MAKEFILE
 	src/Makefile"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
@@ -18714,35 +24501,39 @@ cat >> $CONFIG_STATUS <<EOF
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in $CONFIG_FILES; do
-        # Support "outfile[:infile[:infile...]]"
-        case "$ac_file" in
-          *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-        esac
-        # PO directories have a Makefile.in generated from Makefile.inn.
-        case "$ac_file" in */[Mm]akefile.in)
-          # Adjust a relative srcdir.
-          ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
-          ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
-          ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
-	  ac_base=`basename $ac_file .in`
-          # In autoconf-2.13 it is called $ac_given_srcdir.
-          # In autoconf-2.50 it is called $srcdir.
-          test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
-          case "$ac_given_srcdir" in
-            .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
-            /*) top_srcdir="$ac_given_srcdir" ;;
-            *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
-          esac
-          if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
-            rm -f "$ac_dir/POTFILES"
-            test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
-            sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
-            test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base"
-            sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base"
-          fi
-          ;;
+
+      # Support "outfile[:infile[:infile...]]"
+      case "$ac_file" in
+        *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+      esac
+
+      # PO directories have a Makefile.in generated from Makefile.inn.
+      case "$ac_file" in */[Mm]akefile.in)
+        # Adjust a relative srcdir.
+        ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+        ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+        ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+        ac_base=`basename $ac_file .in`
+        # In autoconf-2.13 it is called $ac_given_srcdir.
+        # In autoconf-2.50 it is called $srcdir.
+        test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+
+        case "$ac_given_srcdir" in
+          .)  top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+          /*) top_srcdir="$ac_given_srcdir" ;;
+          *)  top_srcdir="$ac_dots$ac_given_srcdir" ;;
         esac
-      done
+
+        if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+          rm -f "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+          sed -e "/^#/d" -e "/^[ 	]*\$/d" -e "s,.*,     $top_srcdir/& \\\\," -e "\$s/\(.*\) \\\\/\1/" < "$ac_given_srcdir/$ac_dir/POTFILES.in" > "$ac_dir/POTFILES"
+          test -n "$as_me" && echo "$as_me: creating $ac_dir/$ac_base" || echo "creating $ac_dir/$ac_base"
+          sed -e "/POTFILES =/r $ac_dir/POTFILES" "$ac_dir/$ac_base.in" > "$ac_dir/$ac_base"
+        fi
+        ;;
+      esac
+    done
 # Extra commands, if any
 
 exit 0
diff -Nurp --exclude='.bzr*' tin-1.8.3/configure.in tin-2.0.0/configure.in
--- tin-1.8.3/configure.in	2007-02-01 14:11:14.000000000 +0100
+++ tin-2.0.0/configure.in	2011-08-23 00:03:55.029301209 +0200
@@ -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   : 2011-08-07
 dnl Notes     :
 dnl
-dnl Copyright (c) 1995-2006 Thomas E. Dickey <dickey@invisible-island.net>
+dnl Copyright (c) 1995-2011 Thomas E. Dickey <dickey@invisible-island.net>
 dnl All rights reserved.
 dnl
 dnl Redistribution and use in source and binary forms, with or without
@@ -34,14 +34,14 @@ dnl SOFTWARE, EVEN IF ADVISED OF THE POS
 dnl
 dnl Process this file with autoconf to produce a configure script.
 
-AC_PREREQ(2.13.20020210)
+AC_PREREQ(2.13.20110430)
 AC_INIT(include/tin.h)
 AC_CONFIG_HEADER(include/autoconf.h:include/autoconf.hin)
 AC_PREFIX_DEFAULT(/usr/local)
 
 dnl PACKAGE is required for GNU gettext
 PACKAGE=tin
-VERSION=1.8.3
+VERSION=2.0.0
 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
 AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
 AC_SUBST(PACKAGE)
@@ -49,6 +49,7 @@ AC_SUBST(VERSION)
 
 CF_CHECK_CACHE
 
+CF_PATHSEP
 CF_WITH_PATH(install-prefix,
 	[  --with-install-prefix   prefixes actual install location],
 	DESTDIR,/)
@@ -60,6 +61,8 @@ case ".$DESTDIR" in # (vi
 	;;
 esac
 
+AC_ARG_PROGRAM
+
 ###	Compiler/options that autoconf doesn't get right
 case "$host_os" in
 	aix*)	#(vi
@@ -76,7 +79,7 @@ case "$host_os" in
 esac
 
 ### Native Language Support
-ALL_LINGUAS="de en_GB et fr ru rw sv tr"
+ALL_LINGUAS="da de en_GB et fr ru sv tr"
 
 ### Checks for programs
 save_CFLAGS="$CFLAGS"
@@ -88,6 +91,7 @@ CF_PROG_YACC
 AC_CHECK_PROGS(LINT, lint alint lclint tdlint splint, :)
 AC_AIX
 CF_XOPEN_SOURCE
+CF_SIGWINCH
 AC_ISC_POSIX
 CF_ANSI_CC_REQD
 CF_PROG_EXT
@@ -99,21 +103,21 @@ CF_BUILD_CC([-I$(INCDIR)],[])
 dnl These are standard among *NIX systems, but not when cross-compiling
 AC_CHECK_TOOL(RANLIB, ranlib, ':')
 AC_CHECK_TOOL(LD, ld, ld)
-AC_CHECK_TOOL(AR, ar, ar)
-CF_SUBST(archiver options,AR_OPTS,rv)
+CF_PROG_AR
+CF_AR_FLAGS
 
 case "$host_cpu:$host_vendor:$host_os" in
 	# check for MacOS X, exclude Darwin on ix86
-	powerpc:apple:darwin*)  #
-		AC_DEFINE(MAC_OS_X)
-		;;
-	# check for cygwin enviroment
+#	powerpc:apple:darwin*)  #(vi
+#		AC_DEFINE(MAC_OS_X)
+#		;;
+	# check for cygwin environment
 	# -DSTATIC is needed for pcre
 	*:*:*cygwin*)	#(vi
 		PCRE_DEFINES="$PCRE_DEFINES -DSTATIC"
 		;;
-	# SEIUX doesn't have any usefull preprocessor symbol
-	mips:sei:seiux*)
+	# SEIUX doesn't have any useful preprocessor symbol
+	mips:sei:seiux*)	#(vi
 		AC_DEFINE(SEIUX)
 		;;
 esac
@@ -153,6 +157,10 @@ if test "$USE_PGP_GPG" = "yes" ; then
 	[  --with-gpg              (default: from system path)])
 fi
 
+## slrnface
+CF_WITH_PROGRAM(slrnface,
+[  --with-slrnface         (default: from system path)])
+
 ## Default shell
 AC_ARG_WITH(shell,
 	[  --with-shell=PROG       default $SHELL program (default: sh)],
@@ -182,7 +190,7 @@ fi
 ###	use option --enable-debug to compile-in test/development code
 AC_MSG_CHECKING(if you want to compile-in debug support)
 CF_ARG_ENABLE(debug,
-	[  --enable-debug          turn on debug/profiling/traces],
+	[  --enable-debug          turn on debug support],
 	[ENABLE_DEBUG=''
 	CFLAGS="-g $CFLAGS"
 	LDFLAGS="-g $LDFLAGS"],
@@ -274,19 +282,6 @@ if test "$ac_cv_path_INEWS" != ""; then
 	fi
 fi
 
-## !NNTP_ONLY
-if test "$USE_SPOOLDIR" = "yes"; then
-	## options for libraries
-	AC_MSG_CHECKING(for optional INN-NNTP library)
-	CF_WITH_VALUE(inn-nntplib,
-		[  --with-inn-nntplib=PATH specify INN-NNTP library],
-		INN_NNTPLIB)
-	AC_MSG_RESULT($INN_NNTPLIB)
-else
-	INN_NNTPLIB=""
-fi
-AC_SUBST(INN_NNTPLIB)
-
 ### Look for network libraries first, since some functions (such as gethostname)
 ### are used in a lot of places.
 AC_CACHE_CHECK(if you want socks library,cf_cv_use_libsocks,[
@@ -316,7 +311,7 @@ fi
 ### first look for all available locking methods
 CF_LOCKFILE
 
-AC_MSG_CHECKING(which locking method should be used)
+AC_MSG_CHECKING(which locking method will be used)
 ### fcntl() is preferred, if the user just disables fcntl()
 ### without specifying an alternative lockf() is preferred
 CF_ARG_DISABLE(fcntl,
@@ -337,7 +332,7 @@ if test -n "$cf_cv_lockfile"; then
 			break
 		fi
 	done
-### if none of them matched use the one with the higest priority
+### if none of them matched use the one with the highest priority
 	if test "x$used_locking" = "x"; then
 		used_locking=`echo $cf_cv_lockfile|sed -e 's/^\([[^ ]]\+\).*/\1/g'`
 	fi
@@ -345,7 +340,8 @@ if test -n "$cf_cv_lockfile"; then
 	CF_UPPER(used_locking,$used_locking)
 	AC_DEFINE_UNQUOTED(USE_$used_locking)
 else
-	AC_MSG_WARN(None of fcntl(), lockf(), flock() available)
+	AC_MSG_RESULT(none);
+	AC_MSG_WARN([[None of fcntl(), lockf(), flock() available]])
 fi
 
 
@@ -362,9 +358,7 @@ AC_MSG_RESULT($cf_with_screen)
 use_curses=no
 use_ncurses=no
 
-AC_MSG_CHECKING(if you specified curses install-directory)
 CF_WITH_CURSES_DIR($cf_with_screen)
-AC_MSG_RESULT($cf_cv_curses_dir)
 
 case $cf_with_screen in #(vi
 termcap|terminfo) #(we will determine which it really is
@@ -386,14 +380,14 @@ pdcurses) #(vi
 none)
 	AC_MSG_CHECKING(if you want to use ncurses library)
 	AC_ARG_WITH(ncurses,
-		[  --with-ncurses          link with ncurses if available (depriciated)],
+		[  --with-ncurses          link with ncurses if available (deprecated)],
 		[use_ncurses=$withval],
 		[use_ncurses=no])
 	AC_MSG_RESULT($use_ncurses)
 
 	AC_MSG_CHECKING(if you want curses rather than termcap interface)
 	CF_ARG_ENABLE(curses,
-		[  --enable-curses         use curses interface (depriciated)],
+		[  --enable-curses         use curses interface (deprecated)],
 		[cf_with_screen=curses;  use_curses=$withval],
 		[cf_with_screen=termcap; use_curses=no])
 	AC_MSG_RESULT($enableval)
@@ -404,22 +398,17 @@ if test $use_curses != no ; then
 	AC_DEFINE(USE_CURSES)
 	case $cf_with_screen in #(vi
 	ncurses) #(vi
-		CF_NCURSES_CPPFLAGS
-		CF_NCURSES_LIBS
+		CF_NCURSES_CONFIG
 		;;
 	ncursesw) #(vi
 		CF_CHECK_HEADERS(stdlib.h wchar.h wctype.h)
 		AM_MULTIBYTE_ABLE
-		CF_NCURSES_CPPFLAGS(ncursesw)
-		CF_NCURSES_LIBS(ncursesw)
-		CF_NCURSES_VERSION
+		CF_NCURSES_CONFIG(ncursesw)
 		CF_XOPEN_CURSES
 		test "$cf_cv_need_xopen_extension" = unknown && AC_ERROR(X/Open curses not found)
 		;;
 	curses) #(vi
-		CF_CURSES_CPPFLAGS
-		CF_CURSES_LIBS
-		CF_NCURSES_VERSION
+		CF_CURSES_CONFIG
 		CF_XOPEN_CURSES
 		;;
 	esac
@@ -436,7 +425,9 @@ CF_BUNDLED_PCRE($PCRE_HOME)
 
 PCRE_MAKEFILE=
 if test "$PCRE_HOME" = "no" ; then
-	PCRE_MAKEFILE="$PCRE_MAKEFILE pcre/Makefile pcre/RunTest pcre/pcre.h"
+	LINK_SIZE="-DLINK_SIZE=2"
+	AC_SUBST(LINK_SIZE)
+	PCRE_MAKEFILE="$PCRE_MAKEFILE pcre/Makefile pcre/RunTest"
 fi
 
 ## debugging libraries (do this after other libraries)
@@ -444,22 +435,25 @@ debug_malloc=none
 CF_WITH_DBMALLOC(debug_malloc=DBMALLOC)
 CF_WITH_DMALLOC(debug_malloc=DMALLOC)
 
-AC_MSG_CHECKING(if you want debugging-trace)
+EXTRAO_DEP='#'
 AC_ARG_WITH(trace,
-	[  --with-trace            use debugging/traces],
-	[use_trace=yes],
-	[use_trace=no])
-AC_MSG_RESULT($use_trace)
-if test "$use_trace" = yes ; then
-	AC_DEFINE(USE_TRACE)
-	EXTRAOBJS="$EXTRAOBJS trace.o"
+	[  --with-trace            use debugging/traces for screen output],
+	[
 	AC_CHECK_FUNC(_tracef,[AC_DEFINE(HAVE__TRACEF)],[
 	AC_CHECK_LIB(${cf_with_screen}_g,_tracef,
 		[AC_DEFINE(HAVE__TRACEF)
 		 LIBS=`echo "$LIBS" | sed -e s/-l${cf_with_screen}// -e s/-lcurses//`
-		 LIBS="-l${cf_with_screen}_g $LIBS"])])
-fi
+		 LIBS="-l${cf_with_screen}_g $LIBS"
+		 use_trace=yes
+		 AC_DEFINE(USE_TRACE)
+		 EXTRAO_DEP=''
+		 EXTRAOBJS="$EXTRAOBJS trace.o"],
+		 use_trace=no)])],
+	[use_trace=no])
+#AC_MSG_CHECKING(if you want debugging-trace)
+#AC_MSG_RESULT($use_trace)
 AC_SUBST(EXTRAOBJS)
+AC_SUBST(EXTRAO_DEP)
 
 ## options for miscellaneous definitions
 AC_MSG_CHECKING(for domain-name)
@@ -516,6 +510,33 @@ CF_ARG_ENABLE(mh-mail-handling,
 	[AC_DEFINE(HAVE_MH_MAIL_HANDLING)])
 AC_MSG_RESULT($enableval)
 
+CAN_MAKEFILE=
+CANDIR_MAKE=
+AC_MSG_CHECKING(whether to use Cancel-Locks)
+CF_ARG_ENABLE(cancel-locks,
+	[  --enable-cancel-locks   enable creation of Cancel-Locks],
+	[CANLIBS='-L../libcanlock -lcanlock'
+	CAN_MAKEFILE="libcanlock/Makefile"
+	AC_DEFINE(USE_CANLOCK)],
+	[CANDIR_MAKE='#'
+	CANLIBS=''])
+AC_MSG_RESULT($enableval)
+AC_SUBST(CANDIR_MAKE)
+AC_SUBST(CANLIBS)
+
+## gsasl - used for AUTH SASL PLAIN
+AC_CHECK_HEADER(gsasl.h,
+	AC_CHECK_LIB(gsasl, gsasl_check_version, gsasl=yes, gsasl=no),
+	gsasl=no)
+if test "$gsasl" = "yes"; then
+	CF_ARG_DISABLE(gsasl,
+		[  --disable-gsasl         don't use GNU SASL],
+		USE_SASL=no,
+		[USE_SASL=yes
+		AC_DEFINE(USE_SASL, 1, [Define to 1 if you want GNU SASL.])
+		LIBS="$LIBS -lgsasl"])
+fi
+
 AC_MSG_CHECKING(whether to enable 8-bit keycodes)
 CF_ARG_DISABLE(8bit-keys,
 	[  --disable-8bit-keys     disable 8-bit keycode support],,
@@ -691,6 +712,7 @@ CF_CHECK_HEADERS(\
 	fcntl.h \
 	getopt.h \
 	ioctl.h \
+	inttypes.h \
 	langinfo.h \
 	libc.h \
 	locale.h \
@@ -710,6 +732,7 @@ CF_CHECK_HEADERS(\
 	stdarg.h \
 	stdbool.h \
 	stddef.h \
+	stdint.h \
 	stdlib.h \
 	string.h \
 	strings.h \
@@ -902,6 +925,7 @@ CF_STRERROR
 
 ###	Checks for library functions.
 AC_CHECK_FUNCS(\
+	alarm \
 	atoi \
 	atol \
 	bcopy \
@@ -913,13 +937,13 @@ AC_CHECK_FUNCS(\
 	fork \
 	ftime \
 	ftruncate \
+	fsync \
 	getcwd \
 	gettimeofday \
 	getwd \
 	inet_aton \
 	is_xterm \
 	isascii \
-	link \
 	lockf \
 	memcmp \
 	memcpy \
@@ -947,6 +971,7 @@ AC_CHECK_FUNCS(\
 	strdup \
 	strftime \
 	strpbrk \
+	strrchr \
 	strrstr \
 	strsep \
 	strstr \
@@ -977,7 +1002,7 @@ AC_TRY_COMPILE([
 #endif],
 [struct timeval *tv;
 struct timezone *tz;
-gettimeofday(tv, tz);],
+gettimeofday(&tv, &tz);],
 ac_cv_func_gettimeofday_2args=yes, ac_cv_func_gettimeofday_2args=no)
 AC_MSG_RESULT($ac_cv_func_gettimeofday_2args)
 if test $ac_cv_func_gettimeofday_2args = yes; then
@@ -1076,6 +1101,7 @@ CF_CHECK_DECL(\
 	strchr \
 	strcasestr \
 	strsep \
+	tmpfile \
 )
 
 dnl Check network stuff separately, to limit the effect of inconsistent headers
@@ -1102,6 +1128,7 @@ if test $with_decl_check = yes; then
 CHECK_DECL_HDRS="$TIN_DECL_HDRS"
 CF_CHECK_DECL(\
 	_flsbuf \
+	alarm \
 	atoi \
 	atol \
 	bcopy \
@@ -1122,7 +1149,6 @@ CF_CHECK_DECL(\
 	fwrite \
 	getcwd \
 	getopt \
-	getpass \
 	getwd \
 	ioctl \
 	isascii \
@@ -1230,11 +1256,32 @@ int main() {
 	AC_MSG_RESULT(unknown)
 )
 
-
-# tin has mkdirs.sh instead of mkinstalldirs, overwrite the result of test
-# in gettext.m4
-MKINSTALLDIRS="\$(top_srcdir)/mkdirs.sh"
-AC_SUBST(MKINSTALLDIRS)
+# FIXME / TESTME
+# locale is broken on cygwin < 1.7.0
+# group/other bits don't work on cygwin < 1.7.0
+# locking doesn't work on cygwin
+# link(2) is detected but doesn't work on cygwin
+case "$host_os" in
+	*cygwin*)
+		case `uname -r | sed 's,(.*,,'` in
+			1.7.*)
+				AC_DEFINE(NO_LOCKING)
+				;;
+			*)
+				# link does not work
+				AC_DEFINE(NO_LOCALE)
+				AC_DEFINE(NO_LOCKING)
+				AC_DEFINE(FILE_MODE_BROKEN)
+				;;
+			esac
+		;;
+	*haiku*)
+		# link does not work
+		AC_DEFINE(NO_LOCKING)
+		;;
+	*)
+		AC_CHECK_FUNC(link, AC_DEFINE(HAVE_LINK))
+esac
 
 if test "$cf_cv_termlib" = pdcurses ; then
 	CF_PDCURSES_X11
@@ -1242,18 +1289,21 @@ fi
 
 ### sum up warnings
 if test "$cf_cv_termlib" = none ; then
-	AC_MSG_WARN(no term-lib found, you might run into trouble later.)
+	AC_MSG_WARN([no term-lib found, you might run into trouble later.])
 fi
 if test "$YACC" = "" ; then
-	AC_MSG_WARN(no yacc-parser found, you might run into trouble later.)
+	AC_MSG_WARN([no yacc-parser found, you might run into trouble later.])
 fi
 if test "$RANLIB" = "" ; then
-        AC_MSG_WARN(no library archive builder found, you might run into trouble later.)
+	AC_MSG_WARN([no library archive builder found, you might run into trouble later.])
 fi
 
 ### Finally, build autoconf.h and the makefiles
 CFLAGS="$CFLAGS $EXTRA_CFLAGS"
 
+LINTFLAGS=$LINTFLAGS
+AC_SUBST(LINTFLAGS)
+
 CF_DEFINE_STRING(TIN_CC,       "$CC")
 CF_DEFINE_STRING(TIN_CFLAGS,   "$CFLAGS")
 CF_DEFINE_STRING(TIN_CPP,      "$CPP")
@@ -1264,4 +1314,5 @@ CF_DEFINE_STRING(TIN_LIBS,     "$LIBS")
 
 AC_OUTPUT($PCRE_MAKEFILE
 	$SUB_MAKEFILE
+	$CAN_MAKEFILE
 	src/Makefile)
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/CHANGES tin-2.0.0/doc/CHANGES
--- tin-1.8.3/doc/CHANGES	2007-02-01 14:07:02.000000000 +0100
+++ tin-2.0.0/doc/CHANGES	2011-08-22 00:17:19.035286979 +0200
@@ -1,38 +1,451 @@
--- 1.8.3 release 20070201 "Scotasay" --
+-- 2.0.0 release 20110823 "Ardenistiel" --
 
-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
+U029) Thomas E. Dickey <dickey@invisible-island.net>
+      ADD. update configure macros; switch to 2.13.20110430
+      ADD. --with-pkg-config configure switch
+      ADD. --with-textdomain configure switch
+      ADD. don't use hardcoded number of available colors; don't try to set
+           colors out of identified range
+      FIX. color.c, curses.c, init.c, main.c, tcurses.c, autoconf.h[in]
+           proto.h aclocal.m4, configure[.in], Makefile, Makefile.in
+           install-sh
+
+U028) Dennis Preiser <dennis@d--p.de>
+      BUG. used preprocessor directives within snprintf which may be
+           implemented as a macro
+      BUG. fixed a typo
+      BUG. fixed several display problems in the !USE_CURSES case
+      BUG. fixed several display problems with non default foreground and
+           background colors.
+      BUG. dead increment
+      BUG. didn't unfold structured news_headers_to_display before calling
+           convert_to_printable which replaces \n with ?
+      BUG. scopes with just quick_{kill,select}_* rules got lost when
+           entering the scopes menu
+      BUG. last option in options 'M'enu may be invisible
+      BUG. unnecessary screen redraw in options 'M'enu
+      ADD. reject out of range background colors in menu/tinrc
+      ADD. removed some unnecessary variables
+      ADD. PageToggleAllHeaders
+      ADD. do not strip tabs from Subject or Organization in page header
+      ADD. tinrc.utf8_graphics to use UTF-8 characters for various graphics
+      FIX. extern.h, keymap.h, proto.h, tcurses.h, tin.h, tinrc.h, art.c
+           attrib.c, charset.c, color.c, config.c, cook.c, curses.c, feed.c
+           filter.c, group.c, help.c, init.c, keymap.c, lang.c, mail.c, misc.c
+           nntplib.c, options_menu.c, page.c, pgp.c, post.c, prompt.c, read.c
+           rfc2046.c, save.c, screen.c, select.c, string.c, tcurses.c, thread.c
+           tincfg.tbl, tin.1, tin.5, keymap.sample
+
+U027) Urs Janssen <urs@tin.org>
+      BUG. used preprocessor directives within snprintf which may be
+           implemented as a macro
+      BUG. tinrc.ask_for_metamail had no effect
+      BUG. CHECK_SIGN for gpg was wrong (at least for gpg 1.4.x)
+      BUG. .so TLD wasn't allowed but is in use since 11/2010
+      BUG. .xxx gTLD wasn't allowed but is in use since 04/2011
+      BUG. .yu TLD was still allowed but is defunct since 04/2010
+      BUG. forged supersedes (-DFORGERY) were only allowed via 'x'(repost)
+           but not via 'D'(cancel)
+      BUG. superseding own articles in forgery conf. didn't add Cancel-Key
+      BUG. possible double fclose
+      ADD. allow -- in domain names in URL_REGEX and NEWS_REGEX
+      ADD. allow new IDN ccTLDs of Algeria, India, Korea, Morocco, Serbia
+           Singapore and Syria
+      REM. Kinyarwanda po files
+      REM. configure check for unused getpass(3)
+      ADD. cache getenv("NNTPSERVER") result early
+      ADD. -4 / -6 cmd. line switch
+      ADD. config.guess, config.sub update
+      ADD. configure check for stdint.h and inttypes.h
+      ADD. configure check for fsync()
+      FIX. help.c, init.c, lang.c, main.c, newsrc.c, nntplib.c, pgp.c, post.c
+           prompt.c save.c, extern.h, policy.h, tin.h, tincfg.tbl
+           Makefile[.in], autoconf.h[in], configure[.in], config.guess
+           config.sub, tin.1, rw.po
+
+U026) Matt Anton <tin@syrius.org>
+      ADD. updated french translation
+      FIX. fr.po
+
+-- 1.9.6 release 20101126 "Burnside" --
+
+U025) Matt Anton <tin@syrius.org>
+      ADD. updated french translation
+      FIX. fr.po
 
-016) Toomas Soome <Toomas.Soome@microlink.ee>
+U024) Toomas Soome <Toomas.Soome@microlink.ee>
       ADD. updated estonian translation
       FIX. et.po
 
-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 Rrferences instead of Message-ID only
-     BUG. FILTER_FILE_OFFSET was wrong
-     ADD. allow .ax TLD
-     FIX. tin.h, filter.c, policy.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
+U023) Joe Hansen <joedalton2@yahoo.dk>
+      ADD. updated danish translation
+      FIX. da.po
+
+U022) Thomas E. Dickey <dickey@invisible-island.net>
+      BUG. _XOPEN_SOURCE was defined on darwin
+      ADD. CF_SIGWINCH - compile check for SIGWINCH
+      FIX. aclocal.m4, configure[.in], Makefile[.in]
+
+U021) Dennis Preiser <dennis@d--p.de>
+      BUG. SIGWINCH at page level after a connection timeout lead to a crash
+      BUG. no SIGWINCH hadling in setup_check_article()
+      BUG. comments in references were not skipped
+      BUG. fixed some display problems in the !USE_CURSES case
+      ADD. info message on SearchRepeat without previous search
+      ADD. attachment level 'V' at the article-pager
+      ADD. URL level 'U' at the article-pager
+      ADD. cancel article 'D' to the group and thread level
+      ADD. shell escape '!' to the 'M'enu
+      ADD. workaround for buggy isspace() implementations
+      ADD. tinrc.abbreviate_groupname option
+      ADD. don't take a copy of the article in raw mode when reading from
+           local-spool
+      ADD. skip over text/plain parts in multibyte charsets which may contain
+           null-bytes
+      ADD. message/rfc822 mime-parts are now parsed and included text/plain
+           parts are shown to the user
+      BUG. highlighting for SearchBody didn't work
+      BUG. depending on used terminal highlighting sometimes ran too far
+      BUG. fixed several sorting/threading/filtering options which did not
+           instantly reflect changes when not beeing in select level
+      BUG. help string was truncated at cCOLS without checking if inside a
+           multibyte sequence
+      BUG. build_gline() miscalculates free space for utf-8 groups &
+           descriptions
+      FIX. art.c, attrib.c, color.c, config.c, cook.c, curses.c, filter.c
+           group.c, help.c, init.c, keymap.c, lang.c, mail.c, main.c, misc.c
+           newsrc.c, nntplib.c, options_menu.c, page.c, post.c, prompt.c
+           refs.c, rfc2046.c, rfc2047.c, save.c, screen.c, select.c, signal.c
+           string.c, tags.c, thread.c, extern.h, keymap.h, proto.h, rfc2046.h
+           tin.h, tinrc.h, tincfg.tbl, tin.1, tin.5, keymap.sample
+
+U020) Urs Janssen <urs@tin.org>
+      ADD. minor manpage tweaking
+      ADD. config.guess, config.sub update
+      ADD. disallow postings to 'j' groups
+      ADD. disallow 198.51.100.0/24 and 203.0.113.0/24 in gnksa-checks
+      ADD. forbid "poster" in Newsgroups, warn about "example" in Newsgroups
+      ADD. forbid "poster" and a groupname in Followup-To, warn about "example"
+           in Followup-To
+      ADD. allow IDN ccTLDs in 'GNKSA'-parser
+      ADD. keep failed article in dead.article is server closes the
+           connection and no reconnection is done.
+      BUG. DEFAULT_VERBATIM_BEGIN_REGEX / DEFAULT_VERBATIM_END_REGEX allowed
+           tailing text in the line
+      BUG. da.po was missing from the tarball
+      BUG. x-posting to an unexisting group named first in Newsgroups caused
+           a crash
+      BUG. remembered capabilities over reconnects, they are flushed now
+      BUG. memleak on duplicated overview fields
+      BUG. don't send GROUP for groups not listed in the servers active file
+           when newsrc_active && list_active is set
+      FIX. active.c, art.c, attrib.c, config.c, curses.c, filter.c, init.c
+           lang.c, misc.c, newsrc.c, nntplib.c, post.c, rfc2047.c, save.c
+           select.c, sigfile.c, string.c, tcurses.c, thread.c, extern.h
+           nntplib.h, policy.h, tin.h, Makefile, tin.1, tin.5, config.guess
+           config.sub
+
+-- 1.9.5 release 20091224 "Lochruan" --
+
+U019) Urs Janssen <urs@tin.org>
+      ADD. MarkFeedRead ^X / MarkFeedUnread ^Y to thread-level
+      ADD. configure check for gethostbyname in libnetwork (Haiku)
+      ADD. check if SIGBUS == SIGSEGV (Haiku)
+      ADD. don't define HAVE_LINK on Haiku
+      ADD. config.guess, config.sub update
+      FIX. help.c, keymap.c, signal.c, thread.c, extern.h, tin.1, tin.5
+           configure.in, aclocal.m4, config.guess, config.sub
 
--- 1.8.2 release 20060425 "Shillay" --
+U018) Frederic Briere <fbriere@fbriere.net>
+      ADD. MarkFeedRead ^X / MarkFeedUnread ^W to page-level
+      FIX. feed.c, group.c, help.c, keymap.c, lang.c, extern.h, keymap.h, tin.h
+
+U017) Joe Hansen <joedalton2@yahoo.dk>
+      ADD. initial danish translation
+      FIX. da.po
+
+U016) Volker Borchert <v.borchert@vistecprivat.de>
+      BUG. used towupper() in the !MULTIBYTE_ABLE case
+      ADD. fallback for missing sys_errlist declaration
+      FIX. prompt.c, string.c, pcre/Makefile[.in]
+
+U015) Dennis Preiser <dennis@d--p.de>
+      ADD. scope and attributes menu
+      ADD. help pages to the various menus
+      ADD. PageSkipIncludedText now skips over the next quoted block
+      ADD. runtime calculation of the filter file offset
+      ADD. '-w' now suggests the first given cmd-line group to post to
+      ADD. '-s', '-m' and '-G' cmd-line switches no longer change the
+           corresponding tinrc values
+      ADD. -G for the !NNTP-case
+      ADD. disable creation of cached overviews in getart_limit case
+      ADD. disable getart_limit in -u case
+      ADD. mail/pipe/print articles now work on ranges
+      ADD. NNTP read timeout
+      BUG. maildirs starting with '=' caused tin to hang after 's'aving an
+           article to a mailbox
+      BUG. savedirs starting with '+' caused tin to hang after 's'aving an
+           article to a file
+      BUG. in rare cases (aborted article load or '-' after cancel) one
+           article was incorrectly marked as unavailable
+      BUG. memleaks in canlock operations
+      BUG. fix a long overflow in print_bitmap_seq() when xmax = __LONG_MAX__
+      BUG. didn't create Message-ID when cancelling own article when
+           configured as FORGERY + EVIL_INSIDE
+      BUG. batch mode wasn't as quitet/as verbose as it could be
+      BUG. aborted prompt_getart_limit() lost previous value
+      BUG. MARK_FEED_READ/MARK_FEED_UNREAD in thread level with no selected
+           or tagged arts and selecting 'a' marks the base-art read/unead
+      BUG. signal handler not unset while piping
+      BUG. sort_article_type didn't always work correct with
+           thread_articles={2,3}
+      BUG. realloc in expand_ctrl_chars() caused a crash
+      FIX. active.c, art.c, attrib.c, auth.c, config.c, cook.c, curses.c
+           feed.c, filter.c, group.c, help.c, inews.c, init.c, keymap.c, lang.c
+           mail.c, main.c, makecfg.c, memory.c, misc.c, newsrc.c, nntplib.c
+           nrctbl.c, options_menu.c, page.c, post.c, prompt.c, read.c
+           rfc1524.c, rfc2046.c, save.c, select.c, sigfile.c, signal.c
+           tcurses.c, thread.c, tincfg.tbl, extern.h, keymap.h, nntplib.h
+           proto.h, tcurses.h, tin.h, tinrc.h, tin.1, tin.5
+
+U014) Urs Janssen <urs@tin.org>
+      ADD. minor code cleanup
+      ADD. assume pid_t is long instead of int
+      ADD. comment out trace.o dependeny-rule if not configured --with-trace
+      ADD. disable abort-posting for cursor-keys on check-article screen
+           (debian bug #231070)
+      ADD. try AUTHINFO USER/PASS on -A if CAPABILITIES didn't announce any
+           supported auth methods
+      ADD. config.guess, config.sub update
+      ADD. configure check for towupper(), wcscat(), wcscpy() and wctomb() in
+           AM_MULTIBYTE_ABLE
+      ADD. disallow 192.0.2.0/24 in gnksa-checks
+      ADD. convert MOTD from UTF-8 to local-charset
+      ADD. warn about aliased groups
+      ADD. reduce number of "LIST ACTIVE grp" cmds send with -n if server
+           announces "LIST ACTIVE" capabillity
+      ADD. reduce number of "LIST NEWSGROUPS grp" cmds send with -n if server
+           announces "LIST NEWSGROUPS" capabillity
+      ADD. prefer "LIST COUNTS" over "LIST ACTIVE" when announced via
+           CAPABILITIES
+      BUG. NULL was only allowed once to unbound a keymapping
+      BUG. don't de/encode header(-fields) which can not hold RFC2047-encoded
+           words (but strings which may look like encoded words)
+      BUG. memleaks in cancel_article(), submit_mail_file(),
+           create_normal_article_headers()
+      BUG. expand_ctrl_chars() misscalculated tabexpansion on multiline input
+      BUG. uuencoded parts might get 'V'iewd twice
+      BUG. when pipelinming GROUP cmds. and server requires auth for some groups
+           tin got confused
+      BUG. attributes autoupdate on version change didn't work
+      BUG. entered wrong group at startup if a groupname was given on the
+           cmd.-line and there were new groups on the server
+      REM. AUTHINFO GENERIC support
+      FIX. active.c, art.c, attrib.c, auth.c, charset.c, color.c, config.c
+           cook.c, debug.c, filter.c, init.c, keymap.c, lang.c, mail.c, main.c
+           memory.c, misc.c, my_tmpfile.c, newsrc.c, nntplib.c, pgp.c, post.c
+           prompt.c, refs.c, rfc2047.c, save.c, select.c, xref.c, extern.h
+           nntplib.h, proto.h, tin.h, configure[.in], src/Makefile[.in]
+           aclocal.m4, tin.1, tin.5
+
+-- 1.9.4 release 20090211 "Rieclachan" --
+
+U013) Thomas E. Dickey <dickey@invisible-island.net>
+      ADD. update configure macros
+      ADD. configure check to guess $ARFLAGS
+      FIX. aclocal.m4, configure[.in], libcanlock/Makefile.in, pcre/Makefile.in
+
+ 021) Dennis Preiser <dennis@d--p.de>
+      BUG. memleak in free_attributes()
+      FIX. memory.c
+
+U012) Dennis Preiser <dennis@d--p.de>
+      ADD. enhance attributes documentation
+      ADD. menu-option/attribute to turn verbatim block handling on and off
+      ADD. menu-option to color the lines between the verbatim marks
+      ADD. menu-option/attribute to trim article body (compact empty lines)
+      ADD. most tinrc options to attributes
+      ADD. merged auto_cc and auto_bcc into auto_cc_bcc
+      BUG. mem-leak in set_colors()
+      BUG. -S used group specific savedir if set via attributes
+      BUG. long lines in verbatim blocks may grabble the screen
+      BUG. unescaped metacharacter in DEFAULT_VERBATIM_BEGIN_REGEX
+      BUG. rot13 does not rotate the verbatim_begin_regex line
+      BUG. numeric attributes got lost on big-endian OSs
+      BUG. missing newline in multipart/mixed articles before the very last
+           text/plain part
+      FIX. active.c, art.c, attrib.c, color.c, config.c, cook.c, debug.c
+           feed.c, filter.c, group.c, inews.c, init.c, lang.c, mail.c, main.c
+           memory.c, misc.c, options_menu.c, page.c, post.c, refs.c, rfc2047.c
+           save.c, search.c, select.c, sigfile.c, tags.c, thread.c, extern.h
+           proto.h, rfc2046.h, tin.h, tinrc.h, version.h, tincfg.tbl, tin.1
+           tin.5
+
+U011) Urs Janssen <urs@tin.org>
+      ADD. minor code cleanup
+      ADD. workaround bogus XHDR response from SoftVelocity Discussions 2.5q
+      ADD. configurable path via tin.defaults to overview.fmt file
+      ADD. send "LIST HEADERS" before doing "HDR" if server supports it
+      ADD. config.guess, config.sub update
+      ADD. started german manpage translation
+      ADD. issue extra "GROUP" when NEXT receives 412
+      ADD. issue a warning if attributes file has an unexpected version number
+      ADD. check for 8bit chars in Newsgroups, Followup-To and Distribution
+           before posting
+      ADD. check user supplied Message-ID, Date and Expires-header before
+           posting
+      ADD. speedup -S, -N, -M
+      ADD. improved DEFAULT_STRIP_WAS_REGEX
+      BUG. PageEditArticle was allowed for GROUP_TYPE_SAVE
+      BUG. Distribution was mime-decoded
+      BUG. don't break long body-lines in original article when superseding
+      BUG. don't send "LIST NEWSGROUPS" for mailgroups in the -n case
+      BUG. empty but present Followup-To header (server bug) was used in f'ups
+      BUG. didn't recheck CAPABILITIES after successful auth or after mode
+           switching if received 500er response in the first pass
+      BUG. don't prompt for authdata if we can't auth as the server doesn't
+           offer any auth-method we can send
+      BUG. configure options --program-prefix, --program-suffix and
+           --program-transform-name didn't work
+      BUG. headers with just one byte content were automagicaly removed
+      BUG. -R didn't work if savedir was set to an unexpanded path
+      BUG. fixed memleak with -R
+      BUG. --disable-posting didn't catch 'x' (repost) early enough
+      FIX. active.c, art.c, attrib.c, auth.c, config.c, cook.c, debug.c, feed.c
+           filter.c, getline.c, group.c, header.c, help.c, inews.c, init.c
+           keymap.c, lang.c, list.c, mail.c, main.c, memory.c, misc.c
+           my_tmpfile.c, newsrc.c, nntplib.c, options_menu.c, page.c, post.c
+           prompt.c, refs.c, regex.c, rfc2046.c, save.c, screen.c, select.c
+           sigfile.c, tags.c, thread.c, version.c, xface.c, xref.c, extern.h
+           proto.h, stpwatch.h, tin.h, version.h, tincfg.tbl, Makefile[.in]
+           configure[.in], tin.defaults, tin.5, config.guess, config.sub
+           doc/l10n/*
+
+-- 1.9.3 release 20080506 "Dalintober" --
+
+U010) Thomas E. Dickey <dickey@invisible-island.net>
+      ADD. update configure macros
+      FIX. aclocal.m4, configure[.in], mkdirs.sh
+
+U009) Dirk Nimmich <nimmich@muenster.de>
+      ADD. (g)oto group search now is case insensitive
+      ADD. infrastructure for editing and writing attributes
+      ADD. write attributes file from internal structures
+      BUG. possible memleak when freeing group attributes
+      ADD. check joinpath for overruns
+      BUG. potential buffer overruns
+      BUG. memleak in curses.c:ReadWch()
+      BUG. uninitialized mm_local_charset when no config files available,
+           leading to an endless loop on exit when newsrc cannot be written
+      BUG. inconsistent update of mm_local_charset on runtime
+      BUG. fixed length buffer in rfc1522_do_encode()
+      FIX. extern.h proto.h, tin.h, active.c, art.c, attrib.c, auth.c, config.c
+           curses.c, debug.c, feed.c, inews.c, init.c, joinpath.c, keymap.c
+           list.c, mail.c, main.c, memory.c, mimetypes.c, my_tmpfile.c
+           newsrc.c, nntplib.c, nrctbl.c, options_menu.c, pgp.c, post.c
+           rfc2046.c, save.c, select.c, sigfile.c, string.c, xref.c
+
+ 020) Urs Janssen <urs@tin.org>
+      BUG. my_realloc() didn't handle zero size reallocs
+      BUG. subjects > 256 chars were tunrcated at group-level without adding
+           a \0-termination
+      FIX. group.c, memory.c
+
+U008) Rado S <regrado@web.de>
+      ADD. use same article numbers in different levels
+      FIX. extern.h, lang.c, page.c
+
+ 019) Philip Hazel <ph10@cam.ac.uk>
+      BUG. missing a check for a possible return value of pcre_exec()
+      FIX. misc.c, regex.c
+
+U007) Urs Janssen <urs@tin.org>
+      ADD. enable some more CAPABILLITIES related code
+      ADD. minor code cleanup
+      ADD. config.guess, config.sub update
+      ADD. allow .kp, .me, .rs, .tel and .asia TLDs
+      ADD. check permissions of .cancelsecret-file
+      ADD. --enable-cancel-locks configure option
+      ADD. --with-slrnface configure option
+      ADD. libcanlock update (1.0 -> 2b-4)
+      ADD. url_handler.pl as new DEFAULT_URL_HANDLER
+      ADD. remove leading/tailing whitespace in filter scope
+      ADD. increase internal buffer in rfc1522_encode()/rfc1522_do_encode()
+      ADD. restrictions to tin generated Message-IDs (disallow
+           .invalid-TLD, disallow IDs > 250 octets)
+      ADD. SIGUSR2 handler to write out newsrc
+      ADD. configure check for gsasl.h/libgsasl
+      ADD. AUTHINFO SASL PLAIN support if gsasl.h/libgsasl is found
+      ADD. use "LIST NEWSGROUPS grp" with -n cmd-line switch
+      ADD. use "LIST ACTIVE grp" with -n cmd-line switch
+      ADD. don't treat empty Bytes or Lines-filed in overview as error in
+           debug mode
+      ADD. parse LIST OVERVIEW.FMT
+      ADD. if LIST OVERVIEW.FMT didn't mention Xref:full, but XOVER includes
+           Xref: use it instead of sending XHDR XREF
+      ADD. do "XHDR XREF -" instead of gazillions of single cmds.
+      BUG. missing utf-8 validation for news_headers_to_display
+      BUG. newnewsrc tmp-file wasn't always removed
+      BUG. subscribe_pattern() was overcomplex
+      BUG. mail_to_someone() didn't convert the article into the local charset
+      REM. libinn support (was broken for ages)
+      FIX. active.c, art.c, attrib.c, auth.c, charset.c, config.c, color.c
+           cook.c, debug.c, filter.c, group.c, header.c, help.c, inews.c
+           init.c, keymap.c, lang.c, mail.c, main.c, memory.c, mimetypes.c
+           misc.c, my_tmpfile.c, newsrc.c, nntplib.c, options_menu.c, page.c
+           post.c, refs.c, regex.c, rfc2045.c, rfc2047.c, save.c, screen.c
+           search.c, select.c, sigfile.c, signcal.c, string.c, tags.c
+           tcurses.c, thread.c, version.c, xface.c, xref.c, config.guess
+           config.sub, de.po, autoconf.h[in], debug.h, extern.h, policy.h
+           proto.h, rfc2046.h, keymap.h, tin.h, version.h, Makefile
+           configure[.in], Makefile[.in], libcanlock/*, tin.1, tin.5
+
+-- 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 reconnection 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
@@ -42,6 +455,44 @@
       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>
+      ADD. slrn style verbatim mark support (#v+/#v-)
+      ADD. use tinrc.date_format for %D date expansion
+      ADD. config.guess update
+      REM. unused gb, so and um TLDs
+      FIX. config.guess, autoconf.hin, extern.h, tin.h, cook.c, init.c
+           memory.c, misc.c, tin.1
+
  009) Urs Janssen <urs@tin.org>
       BUG. didn't reissue GROUP cmd after reconnect with authentication
       BUG. possible buffer overflow
@@ -49,6 +500,8 @@
       ADD. cat, jobs, travel and mobi TLDs
       FIX. aclocal.m4, policy.h, misc.c, nntplib.c
 
+-- 1.9.0 release 20060228 "Ardlussa" --
+
  008) Urs Janssen <urs@tin.org>
       ADD. config.guess, config.sub update
       FIX. config.guess, config.sub
@@ -57,6 +510,14 @@
       BUG. buffer overflow in convert_tex2iso in UTF-8 environment
       FIX. charset.c
 
+U001) Urs Janssen <urs@tin.org>
+      ADD. pcre update (6.4 -> 6.6)
+      REM. VMS support
+      FIX. Makefile, aclocal.m4, attrib.c, curses.c, config.c, header.c
+           inews.c, init.c, lang.c, mail.c, main.c, mimetypes.c, misc.c
+           newsrc.c, nntplib.c, post.c, read.c, save.c, signal.c, bugrep.h
+           tin.h, tnntp.h, version.h, pcre/*, vms/*
+
 -- 1.8.1 release 20060215 "Mealasta" --
 
  006) Aleksey Salow <aleksey.salow@gmail.com>
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/CHANGES.old tin-2.0.0/doc/CHANGES.old
--- tin-1.8.3/doc/CHANGES.old	2006-02-15 19:21:22.000000000 +0100
+++ tin-2.0.0/doc/CHANGES.old	2011-06-09 11:08:42.387736075 +0200
@@ -57,7 +57,7 @@ U047) Urs Janssen <urs@tin.org>
            prompt_slk_response()
       BUG. newsgroups file caching didn't work
       ADD. pcre update (6.1 -> 6.4)
-      ADD. check replyto address befor mailing
+      ADD. check replyto address before mailing
       ADD. a few missing german translations
       ADD. config.guess, config.sub update
       ADD. allow unbinding keys by mapping them to "NULL"
@@ -86,13 +86,13 @@ U043) Urs Janssen <urs@tin.org>
       BUG. POST_EDIT was mssing from post_cancel_keys
       BUG. GLOBAL_QUIT was missing from post_edit_keys and
            post_edit_ext_keys and not rebindable in post_continue_keys
-      BUG. dublicated onlinehelp entries
+      BUG. duplicated onlinehelp entries
       BUG. FeedRepost didn't work
       BUG. digits were missing in option_menu_keys
       BUG. PGP_INCLUDE_KEY in the pgp-2 case didn't work
       ADD. pcre update (5.0 -> 6.1)
       ADD. warning about lines exceeding 998 octets
-      ADD. try LIST MOTD at start and show it's output if any
+      ADD. try LIST MOTD at start and show its output if any
       ADD. merged GroupBugReport, SelectBugReport, ThreadBugReport to
            BugReport; GroupMarkArtUnread, PageMarkArtUnread,
            ThreadMarkArtUnread to MarkArticleUnread; GroupMarkThdUnread,
@@ -124,7 +124,7 @@ U041) Andrei Emeltchenko <andrei.emeltch
 U040) Michael Bienia <michael@vorlon.ping.de>
       BUG. keybindings were inited to late
       ADD. dynamic space calculation in filter_menu()
-      ADD. use enum option_enum instead of int where appropiate
+      ADD. use enum option_enum instead of int where appropriate
       FIX. Makefile[.in], proto.h, tin.h, filter.c, group.c, keymap.c, main.c
            options_menu.c, page.c, prompt.c, search.c, signal.c, thread.c
            makecfg.c
@@ -246,7 +246,7 @@ U028) Michael Bienia <michael@vorlon.pin
       ADD. remove CURR_GROUP dependecy from sort functions
       ADD. wcspart() now mallocs the needed space on its own
       ADD. kill/hot-menu "Kill/Select pattern scope" now walks up the
-           hierarchie level
+           hierarchy level
       ADD. move '-V' code into a function, use it inside mail_bug_report()
       ADD. use mark_screen() also in GROUP_LEVEL and THREAD_LEVEL
       ADD. move the options menu code from config.c to options_menu.c
@@ -384,7 +384,7 @@ U015) Michael Bienia <michael@vorlon.pin
       BUG. in REGEX-mode a iKeyGroupSelPattern of "*" wasn't transformed
            into a valid regex
       ADD. search again wraps around if no more matches are found
-      ADD. turn pcre into UTF-8 mode if usefull
+      ADD. turn pcre into UTF-8 mode if useful
       ADD. unicode normalization for search items
       FIX. extern.h, proto.h, tin.h, tinrc.h, config.c, feed.c, filter.c
            group.c, init.c, lang.c, misc.c, page.c, prompt.c, regex.c
@@ -781,7 +781,7 @@ U146) Urs Janssen <urs@tin.org>
       REM. tinrcupdate.pl
       REM. --with-local-charset
       REM. some unnecessary casts and unused vars
-      REM. Author-IDs and persistant header support
+      REM. Author-IDs and persistent header support
       REM. xref_max
       REM. $BUG_ADDRESS
       BUG. plugged a few small memory leaks
@@ -984,7 +984,7 @@ U129) Michael Bienia <michael@vorlon.pin
 
 U128) Olaf Dietrich <olaf@dtrx.de>
       BUG. TeX2ISO was done before charset conversion
-      BUG. curses.h was prefered over ncurses[w].h
+      BUG. curses.h was preferred over ncurses[w].h
       FIX. proto.h, charset.c, cook.c, misc.c, rfc2047.c, aclocal.m4
 
 U127) Michael Bienia <michael@vorlon.ping.de>
@@ -1331,7 +1331,7 @@ U089) Urs Janssen <urs@tin.org>
            local cached overviews
       BUG. missing From caused crashes when replying
       BUG. match_string() doesn't allow emtpy strings (U048)
-      BUG. dublicated Cancel-Lock in rare cases
+      BUG. duplicated Cancel-Lock in rare cases
       BUG. eat_re() could modify subject in aborted posts
       BUG. unknown Content-Transfer-Encodings defaulted to 7bit instead of
            binary
@@ -1395,7 +1395,7 @@ U083) Urs Janssen <urs@tin.org>
       BUG. possible buffer overrun and empty pgp-address
       BUG. missing screen redraw after supersede
       BUG. possible dereferenced pointer (network_charset)
-      BUG. fixed some typos, reformated po-files
+      BUG. fixed some typos, reformatted po-files
       BUG. mailing_list attribute was ignored on no posting servers in page
            level
       FIX. config.guess, config.sub, Makefile, extern.h, tin.h, art.c
@@ -2376,7 +2376,7 @@ U001) Urs Janssen <urs@tin.org>
      ADD. check if tin fallback prototypes work with the system headers
      ADD. update configure script macros to accommodate cygwin32
      ADD. rearrange the configure script's check for network libraries
-     ADD. fix a couple of casts loosing const
+     ADD. fix a couple of casts losing const
      FIX. aclocal.m4, configure[.in], proto.h, getline.c, init.c, main.c
           memory.c, misc.c, nntplib.c, read.c, refs.c, select.c, signal.c
 
@@ -2391,7 +2391,7 @@ U001) Urs Janssen <urs@tin.org>
      ADD. 'w' post article, 'm' mail article to thread menu
      ADD. big code cleanup
      ADD. clear status line after error_message() is displayed
-     ADD. correct inital cursor position when mailing bug reports
+     ADD. correct initial cursor position when mailing bug reports
      ADD. cleanup tinrc/option menu variable naming
      BUG. mail bug report coredumps on bogus groups in selection menu
      FIX. extern.h, proto.h, tin.h, filter.c, group.c, inews.c, init.c
@@ -3468,7 +3468,7 @@ U001) Urs Janssen <urs@tin.org>
      FIX. thread.c
 
 507) Roland Rosenfeld <roland@spinnaker.rhein.de>
-     BUG. group=hierarchie.* in filter-editor was always changed to
+     BUG. group=hierarchy.* in filter-editor was always changed to
           group=*
      FIX. filter.c
 
@@ -5611,7 +5611,7 @@ U001) Urs Janssen <urs@tin.org>
 
 151) Dirk Nimmich <nimmich@uni-muenster.de>
      ADD. rewrote options 'M'enu, add several configurable options
-     ADD. getline() now allows to set maximum number of characters to type
+     ADD. getline() now allows one to set maximum number of characters to type
           in.
      FIX. several supplied patches
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/CREDITS tin-2.0.0/doc/CREDITS
--- tin-1.8.3/doc/CREDITS	2007-01-25 20:30:29.000000000 +0100
+++ tin-2.0.0/doc/CREDITS	2011-04-17 16:04:26.550479212 +0200
@@ -6,60 +6,62 @@ 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, 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, 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,
-Dirk Nimmich, James Nugen, Daniel Nylander, David E. O'Brien, Michael
-O'Reilly, Oleg Ohotnikov, Ronald Orr, Julien Oster, Guido Ostkamp, Philip
-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, 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,
-Ed Sznyter, Lech Szychowski, Dean Takemori, Darrell Tangman, Derek Terveer,
+Volker Borchert, Sebastian Bork, Mark Boucher, Robert Brady, Peter
+Breitenlohner, Jessica Brennan, Frederic Briere, 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, Joe Hansen, 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, Marco d'Itri, 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, Dirk Nimmich, James Nugen, Daniel Nylander, David E.
+O'Brien, Michael O'Reilly, Oleg Ohotnikov, Ronald Orr, Julien Oster, Guido
+Ostkamp, Philip 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, Dennis Preiser, Marc 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, Rado S., 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, Ed
+Sznyter, Lech Szychowski, Dean Takemori, Darrell Tangman, Derek Terveer,
 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
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/DEBUG_REFS tin-2.0.0/doc/DEBUG_REFS
--- tin-1.8.3/doc/DEBUG_REFS	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/DEBUG_REFS	2011-04-17 16:04:26.586484691 +0200
@@ -1,4 +1,4 @@
-Using the DEBUG_REFS toggle to get threading information
+Using the -D 8 switch to get threading information
 --------------------------------------------------------
 
 This file is of use to people wishing to submit bug reports related to
@@ -14,18 +14,10 @@ Warning: The output may be large. A big 
 in the order of .5Mb of output. It is much more useful if problems
 can be reproduced in groups with as few articles as possible.
 
-1) Recompile Tin with DEBUG_REFS enabled.
-   If you have a build tree already, simply editing refs.c to make
+1) Recompile Tin with DEBUG enabled.
+2) Start Tin as
 
-   #undef DEBUG_REFS
-	read
-   #define DEBUG_REFS	1
-
-   and rebuilding will do it.
-
-2) Start Tin as normal
-
-   ./tin
+   ./tin -D 8
 
 3) If the problem only occurs when entering a group, enter the group in
    question. Make sure the first group you enter is the one causing the
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/INSTALL tin-2.0.0/doc/INSTALL
--- tin-1.8.3/doc/INSTALL	2005-09-22 15:45:49.000000000 +0200
+++ tin-2.0.0/doc/INSTALL	2011-06-09 13:22:12.043119931 +0200
@@ -22,32 +22,33 @@ The following configure options and defi
   --enable-break-long-lines               --with-curses-dir
   --enable-broken-listgroup-fix           --with-dbmalloc
   --enable-broken-system-fix              --with-defaults-dir
-  --enable-color                          --with-dmalloc
-  --enable-curses                         --with-domain-name
-  --enable-debug                          --with-editor
-  --enable-echo                           --with-gpg
-  --enable-etiquette                      --with-included-gettext
-  --enable-fascist-newsadmin              --with-inews-dir
-  --enable-flock                          --with-inn-nntplib
-  --enable-inverse-video                  --with-iso-to-ascii
-  --enable-locale                         --with-ispell
-  --enable-lockf                          --with-libdir
-  --enable-mh-mail-handling               --with-libiconv-prefix
-  --enable-mime-strict-charset            --with-mailbox
-  --enable-nls                            --with-mailer
-  --enable-nntp                           --with-metamail
-  --enable-nntp-only                      --with-mime-default-charset
-  --enable-pgp-gpg                        --with-ncurses
-  --enable-piping                         --with-nntp-default-server
-  --enable-posting                        --with-nov-dir
-  --enable-printing                       --with-nov-fname
-  --enable-prototypes                     --with-pcre
-  --enable-shell-escape                   --with-pgp
-  --enable-warnings                       --with-pgpk
-  --enable-xhdr-xref                      --with-screen
-  --exec-prefix                           --with-shell
-  --mandir                                --with-spooldir
-  --prefix                                --with-trace
+  --enable-cancel-locks                   --with-dmalloc
+  --enable-color                          --with-domain-name
+  --enable-curses                         --with-editor
+  --enable-debug                          --with-gpg
+  --enable-echo                           --with-included-gettext
+  --enable-etiquette                      --with-inews-dir
+  --enable-fascist-newsadmin              --with-slrnface
+  --enable-flock                          --with-iso-to-ascii
+  --enable-inverse-video                  --with-ispell
+  --enable-locale                         --with-libdir
+  --enable-lockf                          --with-libiconv-prefix
+  --enable-mh-mail-handling               --with-mailbox
+  --enable-mime-strict-charset            --with-mailer
+  --enable-nls                            --with-metamail
+  --enable-nntp                           --with-mime-default-charset
+  --enable-nntp-only                      --with-ncurses
+  --enable-pgp-gpg                        --with-nntp-default-server
+  --enable-piping                         --with-nov-dir
+  --enable-posting                        --with-nov-fname
+  --enable-printing                       --with-pcre
+  --enable-prototypes                     --with-pgp
+  --enable-shell-escape                   --with-pgpk
+  --enable-warnings                       --with-screen
+  --enable-xhdr-xref                      --with-shell
+  --exec-prefix                           --with-spooldir
+  --mandir                                --with-trace
+  --prefix
 
 
   ENFORCE_RFC1034                         HAVE_UUDEVIEW_H
@@ -55,8 +56,8 @@ The following configure options and defi
   FOLLOW_USEFOR_DRAFT                     NNTP_SERVER_FILE
   FORGERY                                 PROFILE
   REQUIRE_BRACKETS_IN_DOMAIN_LITERAL      SMALL_MEMORY_MACHINE
-  HAVE_LIBUU                              XFACE_ABLE
-  USE_CANLOCK                             HAVE_BROKEN_SSCANF
+  HAVE_LIBUU
+  HAVE_BROKEN_SSCANF                      DISABLE_PIPELINING
 
 
 Not yet documented configure options and defines:
@@ -66,10 +67,9 @@ TIN related:
   --with-socks                           --with-sum
 
   DEBUG                                   MATCH_TAR_PATTERN
-  DEBUG_NEWSRC                            NEW_HASH_METHOD
-  DEBUG_REFS (see doc/DEBUG_REFS)         OPTIMIZE_JUST_STAR
-  JUST_TESTING                            REREAD_ACTIVE_FILE_SECS
-  USE_UTF8_HORIZONTAL_ELLIPSIS
+  JUST_TESTING                            NEW_HASH_METHOD
+  OPTIMIZE_JUST_STAR                      REREAD_ACTIVE_FILE_SECS
+  NO_LOCKING                              FILE_MODE_BROKEN
 
 System related:
   --datadir                               --localstatedir
@@ -84,6 +84,7 @@ System related:
   --with-build-cppflags                   --with-build-ldflags
   --with-build-libs                       --build
   --host                                  --target
+  --with-pkg-config                       --with-textdomain
 
 News machine names
 ------------------
@@ -257,11 +258,9 @@ Can be overridden by setting the environ
 
 --enable-broken-listgroup-fix (default: off)
 Bypass a bug in some broken NNTPservers which need an extra GROUP command
-before accepting a LISTGROUP command.
-
---with-inn-nntplib=PATH (default: not set)
-Define if you want to use the INN library functions GetConfigValue()
-& GetFQDN(). PATH must be the correct path to the INN library.
+before accepting a LISTGROUP command. This can be also used to bypass the
+bug in some servers (i.e. DeleGate) where LISTGROUP doesn't select the
+group and thus subseqent cmds. fail.
 
 --enable-xhdr-xref (default: on)
 If disabled, don't allow using XHDR XREF if XOVER doesn't work to mark
@@ -278,7 +277,7 @@ being configured into the executable.
         --enable-lockf          enable lockf() locking
         --enable-flock          enable flock() locking
 
-NNTP_INEWS (default: set if using VMS, --enable-nntp, or enable-nntp-only;
+NNTP_INEWS (default: set if using --enable-nntp or enable-nntp-only;
                      unset if not using NNTP)
 Define if you want to use the built-in NNTP POST routine so that you no
 longer have to rely on the mini-inews from NNTP to be installed on each
@@ -291,6 +290,8 @@ time they use tin.
 NNTP_SERVER_FILE (default: /etc/nntpserver)
 Only define if your NNTP-server file is other than /etc/nntpserver.
 
+DISABLE_PIPELINING
+Define if your newsserver can't handle pipelined commands.
 
 Options to set some default values
 ----------------------------------
@@ -375,7 +376,7 @@ environment variable ISO2ASC.
 
 --with-curses-dir=dir (default: empty)
 If (n)curses is not installed in a standard location (i.e below /usr) you
-can specify it's installation directory here.
+can specify its installation directory here.
 
 --with-screen=type (default: termcap)
 This is a simpler way (than --with-ncurses and --enable-curses) to specify
@@ -389,7 +390,7 @@ Define this if you want to link with ncu
 is required on some Linux distributions (i.e., SuSE) where there is either a
 curses or termcap library which is not ncurses. If ncurses is installed as
 the curses library, this option is usually not needed. This option is
-depriciated, use --with-screen=ncurses (see above) instead.
+deprecated, use --with-screen=ncurses (see above) instead.
 
 --enable-curses (default: off)
 Enable this if you wish to use the curses screen optimizing rather than
@@ -398,7 +399,7 @@ termcap. This has been tested well start
 is known to have a bug in libc which prevents use of curses, ncurses works
 well on that platform). To build with ncurses screen optimizing, you must
 give both the --with-ncurses and --enable-curses options. This option is
-depriciated, use --with-screen=ncurses (see above) instead.
+deprecated, use --with-screen=ncurses (see above) instead.
 
 --enable-inverse-video (default: on)
 Disable if you want inverse video and highlighted bar disabled by default.
@@ -463,6 +464,10 @@ found in search path, this is used autom
 Define if you want metamail display your MIME messages. If found in search
 path, this is used automatically.
 
+--with-slrnface=PATH (default: set automatically)
+Define if you have slrnface installed and want to use it to show X-Faces. If
+found in search path, this is used automatically.
+
 --enable-posting (default: on)
 If disabled, TIN does not allow posting/followup of articles.
 
@@ -503,6 +508,11 @@ yet fully implemented. You can expect er
 me know the problems by sending me a bug report ('R' bug command from
 within tin). See doc/reading-mail.txt for further information.
 
+--enable-cancel-locks (default: off)
+Turn on Cancel-Locks. This feature requires the client to know the
+Message-ID of the posting, so if your server does not offer server side
+purposed IDs you have to mess around with EVIL_INSIDE
+
 --enable-nls (default: on)
 The --enable-nls option enables Native Language Support (NLS), which allows
 tin to run in languages other than American English. Native Language
@@ -533,16 +543,20 @@ Link with Conor Cahill's dbmalloc librar
 incorrect frees, etc.
 
 --enable-debug (default: off)
-Define if you want tin to log debug information to files in /tmp. Activated
-by tin -Dn where n is 1 for NNTP only debug logging, n is 2 for logging
-most debug info, n is 3 for newsrc debugging and n is 4 for malloc debug
-logging. Debug files written to /tmp are ARTS, ACTIVE, BASE, NNTP, SAVE_COMP,
-BITMAP, MALLOC and FILTER. Depending on the debuglevel some files may not be
-generated. newsrc debugging also needs DEBUG_NEWSRC defined.
+Define if you want tin to log debug information to files in $TMPDIR.
+Activated by tin -Dn where n is 1 = NNTP-dialog, 2 = filter-file,
+4 = newsrc-file, 8 = threading, 16 = memory allocation (malloc/free),
+32 = misc (-D 63 = debug all). Debug files written to $TMPDIR are ARTS,
+ACTIVE, BASE, NNTP, SAVE_COMP, BITMAP, MALLOC and FILTER. Depending on
+the debuglevel some files may not be generated. As the files written in
+$TMPDIR are world readable and may contian uncryted password information
+(e.g. when using -D 1) don't run "-D n" on multiuser systems without setting
+$TMPDIR to a safe location, e.g. "TMPDIR=$HOME ./tin -D 1".
 
 --with-trace (default: off)
 Trace data which is formatted and written to the screen. Use this to debug
-changes to the curses or termcap interfaces.
+changes to the curses or termcap interfaces. A file trace will be created in
+$PWD when tin is started.
 
 --with-dmalloc (default: off)
 Link with Gray Watson's dmalloc library, used to check for memory leaks,
@@ -629,22 +643,15 @@ allow additional toplevel domains (GNKSA
 EVIL_INSIDE
 let tin generate Message-IDs
 
-USE_CANLOCK
-turn on cancel-locks, you need to compile libcanlock first by running
-./Build in the libcanlock dir or by using "make canlock" from the src
-dir. You also have to uncomment the CANLOCK/CANLIB lines in src/Makefile.
-
 FOLLOW_USEFOR_DRAFT
 issue a warning instead of an error-message if Newsgroups: or
 Followup-To:-header contains spaces, newlines or tabs.
 
-XFACE_ABLE
-Define if you have slrnface installed and want to use it to show X-Faces
 
 Compiled & installed
 --------------------
 Tin was successfully built and installed on a variety of platforms including
 Linux, FreeBSD, OpenBSD, NetBSD, BSDi, Darwin, Solaris, IRIX, HP-UX, Ultrix,
 Tru64, AIX, SINIX, UXP/V, SUPER-UX, Unicos, QNX, GNU Hurd, DG/UX, SEIUX,
-Openstep, MiNT and Cygwin.
+Openstep, MiNT, Haiku and Cygwin.
 For a detailed list see <http://www.tin.org/builds.html>
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/TODO tin-2.0.0/doc/TODO
--- tin-1.8.3/doc/TODO	2006-05-02 03:02:27.000000000 +0200
+++ tin-2.0.0/doc/TODO	2011-08-16 22:02:07.311190484 +0200
@@ -4,18 +4,26 @@ not read only ,-).
 
 Bugs
 ----
-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  get_respcode() doesn't handle the 401 response code. as we have to
+   evaluate the response text as well we have to fix every
+   nntp_command(..., NULL, 0) call.
+   [20100429 Urs Janssen <urs@tin.org>]
+
+o  col_response is a misnomer as the counter doesn't count responses
+   anymore (except on the very first article). The man-page is outdated too.
+   [20080826 Urs Janssen <urs@tin.org>]
+
+o  'T'ag all parts of multipart message doesn't work (it never did)
+   with thread_arts 4 (multipart) or 5 (percentage)
+   [20080606 Urs Janssen <urs@tin.org>]
+
+o  cLINES < MIN_LINES_ON_TERMINAL || cCOLS < MIN_COLUMNS_ON_TERMINAL
+   isn't checked on startup
+   [20071210 Urs Janssen <urs@tin.org>]
+
+o  a wrong username/password in ~/.newsauth can lead to an endless AUTH-loop
+   when using -A and issuing a wrong username/password in the prompt
+   [20080926 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?=
@@ -23,32 +31,6 @@ o  unexpected multiline responses confus
    (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
-   attributes, whereas select.c does. Fix the problem properly in config.c by
-   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>]
-
 o  better integrate saving of MIME/non-MIME articles when not using libuu.
    MIME sections are saved by the 's'ave operations, uuencoded sections
    are saved as part of the postprocess backend
@@ -56,43 +38,21 @@ o  better integrate saving of MIME/non-M
    [Jason Faultless <jason@altarstone.com>]
 
 o  batch mode has several bugs
-   - -Z and giving a cmd-line group ends up in a loop
-     (filters each group several times, ~25 times slower as without a
-      cmd-line group) and the cmd-line group is not displayed in the
-      statistics nor taken into account for the 'any unread news' status.
+   - -Z and giving a cmd-line group 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
+   - if server requires authentication (and no ~/.newsauth entry matches)
+     tin prompts for username but not for password
    [Urs Janssen <urs@tin.org>]
 
-o  '-s' cmd-line switch implicitly changes 'savedir' in tinrc
-   [Urs Janssen <urs@tin.org>]
-   Is -s supposed to affect all save operations? What about attributes?
-   Might get away with simply setting glob_attributes->savedir
-   [Jason Faultless <jason@altarstone.com>]
-
 o  add version number to other config-files (e.g. tin.defaults)
    and do the same checks as for TINRC_VERSION/tinrc. for the
-   filter (and attributes) file also store the editor offset (different
-   languages do use different headers) and the filter method used
-   (wildmat or regexp) and the charset the file is written in (e.g.
-   ISO-8859-x vs. unicode)
+   filter and attributes file store the charset the file is written in
+   (e.g. ISO-8859-x vs. unicode) and for the filter file the filter method
+   used (wildmat or regexp)
    [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>
-
-o  remove built in path of external commands (metamail, ispell, ...)
-   [for ispell $ISPELL can be used to override systempath and progname]
-
 o  overview file cacheing code is over-complex
    - cache the original overview info instead of rebuilding it from
      the processed (decoded etc.) data, no matter if it's broken (e.g.
@@ -101,23 +61,34 @@ 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>]
 
+o  comments in attributes get lost (we need to do something like we do for
+   the filter file)
+   [20080425 Urs Janssen <urs@tin.org>]
+
+o  if tin is falling back to HEAD/NEXT ([X]OVER not working) it doesn't honor
+   tinrc.getart_limit
+   [20090112 Urs Janssen <urs@tin.org>]
+
 Pager Problems
 --------------
 
 Posting Problems
 ----------------
+o  8bit chars in some headers are RFC-2047-encoded where this is not allowed
+   according to usefor (Newsgrous, Distribution, ...) - do_rfc15211522_encode()
+   simply encodes all headers no matter if any of them must not be encoded
+   (see parse_rfc822_headers()).
+   [20090112 Urs Janssen <urs@tin.org>]
+
 o  remove Message-IDs with 8bit chars in them when they occur in
    Message-ID or References header
    [done for References in replies/followups, Urs]
 
 o  repost ('x') ignores ~/.tin/attributes - bug or feature?!
+   [IMHO a bug as settings like mailing_list are essential, Urs]
 
 o  forged cancelling via Supersedes:/Also-Control:/Control:-header is possible
    if it is supplied by hand (inews_prog=--internal)
@@ -130,31 +101,60 @@ o  mailers other than sendmail (f.e. elm
 
 New features
 ------------
+o  as libidn only does IDNA 2003 but not IDNA 2008 (RFC 5890-5894) add
+   a configure check for libidnkit2.x (<http://jprs.co.jp/idn/index-e.html>)
+   and if found use idn_decodename() in misc.c:idna_decode()
+   [20110120 Urs Janssen <urs@tin.org>]
+
+o  add nntp_default_server to tin.defaults to override compile time setting.
+   if given strings starts with / or ~ the value is taken from the referenced
+   file, if it starts with $ it is read from the referenced variable.
+   [20101118 Urs Janssen <urs@tin.org>]
+
+o  the old space_goto_next_article=ON && space_goto_next_unread=OFF is not
+   possible with the new goto_next_unread rc-var, we need something like
+   an additional goto_next_read rc-var
+   [20101101 Urs Janssen <urs@tin.org>]
+
+o  add DEFAULT_SIGDASHES_REGEX and related 'M'enu-entry for signature
+   detection in cook.c
+   [20080925 Urs Janssen <urs@tin.org>]
+
+o  give an error message if append_mail() fails (grep TODO post.c)
+   [20080423 Urs Janssen <urs@tin.org>]
+
 o  allow remapping of the 'z' abort-key (lynx style) in wait_for_input().
 
 o  add user defined screen layout at different levels
    [20041025 Urs Janssen <urs@tin.org>]
 
-o  add TLS, NNTPS support
-   (see draft-ietf-nntpext-tls-nntp-09.txt;
-    <http://www.gnu.org/software/gnutls/>, <http://www.openssl.org/>
-    might be useful;
+o  add TLS (RFC 4642), NNTPS support
+   (<http://www.gnu.org/software/gnutls/>, <http://www.openssl.org/>
+    might be useful (but unfortunately we use fputs()/fgets() instead of
+    read()/write() - BIO_*() may be useful);
     "stunnel -c -d 1119 -r news.example.org:563; tin -g localhost -p 1119"
     can be used for NNTPS)
    [20031210 Urs Janssen <urs@tin.org>]
 
-o  make 'GNKSA'-parser RFC2822/USEFOR compliant
+o  add more AUTHINFO SASL (RFC 4643) support (DIGEST-MD5, EXTERNAL, ...)
+   and a fallback if no libgsasl is found (e.g cyrus-sasl or a handrolled
+   version for at least PLAIN)
+   [20080316 Urs Janssen <urs@tin.org>]
+
+o  add XZVER (and XZHDR) support (zlib compressed yyencoded overview data)
+   <http://helpdesk.astraweb.com/index.php?_m=news&_a=viewnews&newsid=9>
+
+o  make 'GNKSA'-parser RFC5322/USEFOR compliant and fix bugs
+   (e.g. "<~$!~( )@( )example.com>" causes "illegal character in RHS", but
+   the address is valid)
 
 o  add In-Reply-To threading for mailgroups
    [20030518 Urs Janssen <urs@tin.org>]
 
-o  make auto'S'ave also work for inrange articles/threads(/groups)
+o  make auto'S'ave also work for inrange groups
    (unfortunately 'S' at select level is used for something else)
    [20030508 Urs Janssen <urs@tin.org>]
 
-o  sub-parse message/rfc822 messages (might occur in mail-groups)
-   [20030310 Urs Janssen <urs@tin.org>]
-
 o  turn ask_for_metamail into $MM_NOASK support (see metamail(1))
    [20030314 Urs Janssen <urs@tin.org>]
 
@@ -172,7 +172,10 @@ o  allow bold, underline, italic, ... as
    <nntp://news.tin.org/20020416202232.A4575@bloatware.reston01.va.comcast.net>)
    [20030218 Serge Matveev <sm@cl.spb.ru>]
 
-o  hierarchical 'M'enu, e.g. put all art_marked_*into a 'submenu', ...
+o  hierarchical 'M'enu, e.g. put all art_marked_*into a 'submenu',
+   restructure/sort 'M'enu items, some disply-options (render BiDi) are
+   currently under expert options, some options in display options are
+   navigation options (catchup thread, use mouse, ...)
    [20020322 Urs Janssen <urs@tin.org>]
 
 o  add a postponed 'browser' (store postponed arts in MH or maildir
@@ -181,7 +184,7 @@ o  add a postponed 'browser' (store post
 
 o  add postpone option for mail-actions;
    reusing p'o'stponed articles in mailing_list groups doesn't work
-   (possible fix: store Newsgroups (and other infos) via msg_add_header()
+   (possible fix: store Newsgroups (and other info) via msg_add_header()
     (to overwrite any old values) in X-Tin-Postponed:-header and remove it
     before posting.)
    [20010623 Urs Janssen <urs@tin.org>]
@@ -254,23 +257,9 @@ o  check if the articles Subject/From in
    if they are higher than the server's high-mark don't trust them (and
    discard the locally cached data).
 
-o  attributes (still) needs some work, some entrys aren't really useful
-   on a per group basis but others would (e.g. Reply-To)
-   once we have a 'attributes-menu' we could remove most of the
-   global 'attributes' set in tinrc and move them to a scope=*
-   in attributes (e.g. From)
-   [Urs Janssen <urs@tin.org>]
-
-o  add post_8bit_header, mail_8bit_header, post_mime_encoding,
-   mail_mime_encoding to the attributes file to allow plain 8 bit
-   header in e.g. fr.* but avoid them in e.g. de.*
-   [20020910 Urs Janssen <urs@tin.org>]
-   See doc/config-anomalies for other candidates that should move to
-   attributes
+o  attributes (still) needs some work; See doc/config-anomalies.
    [20030303 Dirk Nimmich <nimmich@muenster.de>]
 
-o  add 'make unproto'
-
 o  add IPv6 support
    (add protocol independent wrappers which use IPv6 (functions)
     whenever possible).
@@ -296,11 +285,9 @@ o  check if server supports 'LIST MODERA
 o  if using "-n" commandline switch you can't subscribe to newsgroups not
    present in your newsrc - a simple check against the server
    (e.g. GROUP $newsgroup or if !NNTP try to stat the dir) would help.
-   if we are running in NNTP mode and if the server understands
-   LIST NEWSGROUPS pattern (don't use XGTITLE, it will become obsolete) we
-   could also fetch the description without loosing "-n" speed improvements;
-   if the server understands LIST ACTIVE pattern we could also get the group
-   attribute (moderated, etc.)
+   if the server understands "LIST ACTIVE grp" we could also get the group's
+   attribute (moderated, etc.) and with "LIST NEWSGROUPS grp" it's
+   description.
 
 o  item_by_item_etiquette_warnings [compile-time?]
    (e.g. enable x-posts without f'up warning, disable long-sig warning)
@@ -311,9 +298,17 @@ o  unify Fcc and posted_articles_file
 o  MIME-pgp support according to RFC 2015, RFC 3156 - (should be easy now)
    and/or in the format that used by signcontrol/pgpverify (see also
    tinews.pl)
+   As MIME-pgp verification needs the undecoded mime-part with its headers
+   storing the raw-offset of each part in the article would be very helpful.
+
+o  pgpverify invocation with a single key instead of '|''a''pgpverify' or a
+   buildin pgpverify solution.
 
 o  pgp-{6,7} support
 
+o  add check for GPGME (<http://www.gnupg.org/related_software/gpgme/>) and if
+   found use it for pgp actions.
+
 o  add feature Cc:
 
 o  add feature show_new_newsgroups_since
@@ -321,12 +316,11 @@ o  add feature show_new_newsgroups_since
 o  add new key which taggs articles based on a prompted regex, could be used
    for GROUP_MARK_THREAD_READ,PAGE_MARK_THREAD_READ,THREAD_MARK_ARTICLE_READ
    and/or something like GROUP_SELECT_THREAD/THREAD_SELECT_ARTICLE which
-   works on tagged arts (the later might be usefull in conjnction with
+   works on tagged arts (the later might be useful in conjnction with
    GROUP_MARK_UNSELECTED_ARTICLES_READ)
    [20051110 Urs Janssen <urs@tin.org>]
 
 o  Additions to the thread menu:
-     'D'  (cancel article)
      ']'  (GLOBAL_QUICK_FILTER_KILL)
      '['  (GLOBAL_QUICK_FILTER_SELECT)
      'r'  (reply to) /* not 'R' cause it conflicts with mail_bugreport */
@@ -334,16 +328,21 @@ o  Additions to the thread menu:
      'f'  (post a followup) (maybe also 'F', '^W', ...)
      'N'  (next unread article)
      'P'  (previous unread article)
+     'T'  (tag all parts of current multipart-message in order)
+     'V'  (View/pipe/save multimedia attachments)
      'X'  (mark all unread articles that have not been selected as read)
      ';'  (mark unread arts as hot if >= 1 art in thread is hot)
      '+'  (mark thread as hot)
      '='  (mark pattern as hot)
+     '@'  (toggle selections)
      'Y'  (check for new articles in thread)
      '%'  (toggle rot13 encoding of screen content)
      'x'  (repost)
+     'e'  (edit mailgroup article)
      keys to go to previous/next thread
 
 o  Additions to the group menu:
+     'V'  (View/pipe/save multimedia attachments)
      'Y'  (check for new articles in group)
      '%'  (toggle rot13 encoding of screen content)
 
@@ -351,15 +350,25 @@ o  Additions to the select menu:
      '%'  (toggle rot13 encoding of screen content)
 
 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, ...
+     '&'  (GLOBAL_TOGGLE_COLOR)
+     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
-                         searched which is not that useful)
-     'h'  (GLOBAL_HELP)
+o  Add to the attachment menu ('V'):
+     'F'  post followup to current article, not including current attachment
+     'R'  reply through mail to author, not including current attachment
+          or
+     'R'  (GLOBAL_BUGREPORT)
+     'f'  post followup to current article, including current (or tagged)
+          attachment(s)
+     'm'  mail attachment
+     'o'  print attachment
+     'r'  reply through mail to author, including current attachment
+     't'  tag attachments for '|', 'p', 's', 'm' (done for 's')
+     '#'  tag range of attachments (n-m)
+     'x'  repost current attachment to another group
+     '%'  (toggle rot13 encoding of screen content)
+     '&'  (GLOBAL_TOGGLE_COLOR)
 
 o  Add a commandline switch (-V) that prints out all values of cpp-symbols
    etc. [partly done, but should be cleaned up]
@@ -372,22 +381,6 @@ o  A system-wide tinrc configuration fil
    Maybe a second file which could be used to force settings (eg
    inews & mailer) (tin.defaults [--with-defaults-dir] is a start)
 
-o  (g)oto group is case sensitive (note that MH mailgroups might
-   contain uppercase chars)
-   also newsgroup names in the command-line are case sensitive
-   better would be: check if they exist and if not ask if you would
-   like to convert newsgroup name to lowercase
-	[son_of_1036]
-	NOTE: Possibly newsgroup names  should  have  been
-	case-insensitive, but all existing software treats
-	them as case-sensitive.   (RFC  977  [rrr]  claims
-	that they are case-insensitive in NNTP, but exist-
-	ing implementations are believed to ignore  this.)
-	The simplest solution is just to ban use of upper-
-	case letters, since no widespread  newsgroup  name
-	uses  them  anyway; this avoids any possibility of
-	confusion.
-
 o  when From: only contains "First-name Last-name" tin strips the
    Last-name in group/thread/page-level
    [20020319 Urs Janssen <urs@tin.org>]
@@ -402,18 +395,17 @@ o  Merge the selection code with the ran
    of picking articles with similar goals is wasteful.
    [Jason Faultless <jason@altarstone.com>]
 
-o  add check for libbzip2/zlib (>=1.1.4)/[mini]lzo
-   (<http://sources.redhat.com/bzip2/>, <http://www.gzip.org/zlib/>,
-    <http://www.oberhumer.com/opensource/lzo/>) and add an
-   option to write/read {g,b,l}zipped local overviews.
-   zlib, libbzip2 and lzo might also be used for post-processing.
-
-o  add check for GPGME (<http://www.gnupg.org/gpgme.html>) and if found
-   use it for pgp actions.
-
-o  rewrite/cleanup all the debugging code; clearly seperate the debugging
-   levels, e.g.: NNTP=0x01, FILTER=0x02, NEWSRC=0x04, MEMORY=0x08,
-   ALL=0x0f
+o  add check for liblzma/libbzip2/zlib (>=1.1.4)/[mini]lzo
+   (<http://tukaani.org/xz/>, <http://sources.redhat.com/bzip2/>,
+    <http://www.gzip.org/zlib/>, <http://www.oberhumer.com/opensource/lzo/>)
+   and add an option to write/read {g,b,l}zipped local overviews.
+   liblzma, zlib, libbzip2 and lzo might also be used for post-processing.
+
+o  rewrite/cleanup all the debugging code, the output in /tmp is messy; the
+   on screen output either slows down things dramatically or is unreadable;
+   add timestamps to at least the NNTP-log; split DEBUG_MISC?
+
+o  Add 'M'enu option to define chars for utf8_graphics.
 
 Posting enhancements
 --------------------
@@ -433,11 +425,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.:
@@ -454,8 +441,6 @@ o  posting to a binary group should warn
 o  when posting to a group containing uppercase-letters: bring up a
    warning: "Newsgroup-names should be all lowercase, correct it? (Y/n)"
 
-o  Enhance -w to take newsgroup name as argument.
-
 o  Enhance -n to take newsgroup name as argument and use group_get_art_info()
    to allow posting to groups other than those in newsrc.
 
@@ -493,6 +478,17 @@ o  add 'autoview' (spawn external viewer
 o  integrate multi-part tagging with regular tagging, eg.
    "This article appears to have multi-parts, try and find them (y/n)?"
 
+o  do RFC 2231 decoding of non us-ascii MIME-parameter values
+   (rfc2046.c:parse_params())
+   [20110428 Urs Janssen <urs@tin.org>]
+
+o  allow RFC 2231 parameter value continuations
+   [20110428 Urs Janssen <urs@tin.org>]
+
+o  allow RFC 2231 language specification in encoded words
+   (rfc2047.c:rfc1522_decode())
+   [20110428 Urs Janssen <urs@tin.org>]
+
 o  add Content-Language (RFC 3282) analysis
 
 o  suppress hide_uue=2 checking unless first line in an article or following
@@ -500,33 +496,70 @@ o  suppress hide_uue=2 checking unless f
 
 Internal Changes
 ----------------
-o  move serveral (server related) files into the per-server dir
+o  curses.c:input_pending() and curses.c:get_arrow_key() have
+   #ifdef HAVE_SELECT and a code path for the case when we don't have
+   select(2), but read.c:wait_for_input() has no code path the the
+   !HAVE_SELECT case. we should add a !HAVE_SELECT case there (or at
+   least have adjusted messages in txt_reading_article and txt_group)
+   [20110506 Urs Janssen <urs@tin.org>]
+
+o  ditch MAX_MSG_HEADERS (post.c)
+   [20110212 Urs Janssen <urs@tin.org>]
+
+o  always display (also) the servers error response string to the user,
+   currently tin sometimes gives generic messages (i.e. when authentication
+   fails), but the servers response may include additional infos (like
+   bandwidth exceeded)
+   [20101230 Urs Janssen <urs@tin.org>]
+
+o  rewrite mini-help, remove the long strings and generate them dynamicly
+   one help text for each key makes translations more easy and uniq and can
+   use the available space on the screen much better if not running on 80
+   columns.
+   [20100326 Urs Janssen <urs@tin.org>]
+
+o  rewrite auth.c
+   - turn t_bool authinfo_user, authinfo_sasl, authinfo_state into
+     enum authinfo { NONE = 0, USER = 1, SASL = 2 }
+
+o  make article numbers (u)int_least64_t/PRI[iu]LEAST64 (on OSs where possible),
+   provide useful fallbacks if system doesn't have <inttypes.h>/<stdint.h>
+   (check for long long and if present use "%lld";
+   #ifdef int_least64_t typedef artnum_t int_least64_t #else ...).
+   use atoll/strtoll for parsing article numbers. (#ifdef HAVE ATOLL
+   #define atoartnum atoll #else ...)
+   [20050728 Urs Janssen <urs@tin.org>]
+
+o  fix aclocal.m4:CF_FUNC_SYSTEM and/or misc.c:invoke_cmd() that
+   --enable-broken-system-fix/IGNORE_SYSTEM_STATUS isn't needed anymore.
+   [20090520 Urs Janssen <urs@tin.org>]
+
+o  tinrc.confirm_choice should be written/read as int, not string as users
+   who edit the tinrc manually can't know the exact strings required.
+   unfortunately rc_update() can't handle type changes (rc_update should
+   also get the split version number as arg so we can do specific
+   changes).
+   [20081112 Urs Janssen <urs@tin.org>]
+
+o  use read()/write() instead of fputs()/fgets()
+
+o  move several (server related) files into the per-server dir
    e.g.:
       ${TIN_INDEX_NEWSDIR-"${TIN_HOMEDIR-"$HOME"}/.tin"}/.news${NNTPSERVER+"-$NNTPSERVER"}/
    should be
       ${TIN_INDEX_NEWSDIR-"${TIN_HOMEDIR-"$HOME"}/.tin"}${NNTPSERVER+"/$NNTPSERVER"}/.news/
    [20050807 Urs Janssen <urs@tin.org>]
 
-o  make article numbers uint_least64_t (on OSs where possible), provide
-   usefull fallbacks if system doesn't have <inttypes.h>/<stdint.h>
-   [20050728 Urs Janssen <urs@tin.org>]
-
-o  upgrade configure-script to autoconf-2.59
+o  upgrade configure-script to >= autoconf-2.61
    [20050728 Urs Janssen <urs@tin.org>]
 
-o  remove untranslateable constructs like txt_prefix_*
+o  remove untranslatable 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:
+   - 'l' GroupListThd, PageListThd
    - 'm' GroupMail, PageMail, PostMail, ThreadMail
+   - 'D' GroupCancel, PageCancel, ThreadCancel
    - 'N' GroupNextUnreadArt, PageNextUnreadArt, (SelectNextUnreadGrp)
    - 'S' GroupAutoSave, PageAutoSave, ThreadAutoSave
    - 'P' GroupPrevUnreadArt, PagePrevUnreadArt
@@ -535,14 +568,14 @@ o  keys which could be renamed/merged:
    [20050408 Urs Janssen <urs@tin.org>]
 
 o  read_overview() calls eat_re() which strips the "Re: " out of the
-   subject. the modified subject ist used for batch_mode opperatios (-N/-M)
+   subject. the modified subject is used for batch_mode opperatios (-N/-M)
    which might not be what ppl. expect and eat_re() is the only function
    which needs the 'regex' overhead in batch_mode... (see also the note
    about "Re: "strpping at "Filtering enhancements").
    [20050225 Urs Janssen <urs@tin.org>]
 
 o  use new_nntp_command() instead of nntp_command() in the rest of the
-   code (where usefull; if we do a global change, rename it to
+   code (where useful; if we do a global change, rename it to
    nntp_command()). see check_extensions() for a sample usage.
    [20050211 Urs Janssen <urs@tin.org>]
 
@@ -550,9 +583,6 @@ o  replace various occurrence of "US-ASC
    and define that to "US-ASCII" (to make 'updates' easier).
    [20040929 Urs Janssen <urs@tin.org>]
 
-o  add configure option for slrnface
-   [20030506 Urs Janssen <urs@tin.org>]
-
 o  get rid of CURR_GROUP, use t_group instead
    create a global t_group *CURR_GROUP instead of the current macro
    reduce dependencies on my_group[] & selmenu outside of select.c
@@ -565,8 +595,7 @@ o  try to get rid of the magic numbers l
    a sentinel in the arrays instead (match_list is a showstopper here).
    [20030203 Urs Janssen <urs@tin.org>]
 
-o  check where joinpath() should be used; check joinpath() for overruns.
-   (e.g. grep for TMPDIR in the source)
+o  check where joinpath() should be used (e.g. grep for TMPDIR in the source)
    [Urs Janssen <urs@tin.org>]
 
 o  make configure look for strrstr() in libpub/publib.h
@@ -603,14 +632,12 @@ o  close potential security holes:
    - check getenv() results before using it
    - check where my_strncpy() or STRCPY() should be used
      or include OpenBSDs strlcpy(3) (and strlcat(3)) and use it.
-   (<ftp://ftp.openbsd.org/pub/OpenBSD/src/lib/libc/string/>)
+   (<http://www.openbsd.org/cgi-bin/cvsweb/src/lib/libc/string/strlcpy.c>)
    [Urs Janssen <urs@tin.org> - its4 <http://www.rstcorp.com/its4>, rats
     <http://www.securesw.com/rats/> and flawfinder
     <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
 
@@ -630,28 +657,37 @@ o  add check for sizeof char, short, int
 o  cleanup post.c
 
 o  check code with Splint (LCLint) <http://www.splint.org/>,
-   ccmalloc (<http://www.inf.ethz.ch/personal/biere/projects/ccmalloc/>),
-   MSS (<http://hem1.passagen.se/blizzar/mss/>) and
-   valgrind (<http://developer.kde.org/~sewardj/>)
+   ccmalloc (<http://ftp.de.debian.org/debian/pool/main/c/ccmalloc/>),
+   MSS (<http://hem1.passagen.se/blizzar/mss/>),
+   valgrind (<http://valgrind.org/>) and cppcheck
+   (<http://cppcheck.wiki.sourceforge.net/>)
 
 o  rewrite the tag code so that arts[].tagged becomes index in arts[]
    of next tagged article. num_of_tagged_arts becomes index of first
    tagged art. Traversing tagged arts becomes much easier & faster.
    [Jason Faultless <jason@altarstone.com>]
 
-o  do real overview.fmt parsing - not only looking for Xref:full
-   [Urs Janssen <urs@tin.org>]
-
 o  strip Xref:-header if saving news in batch mode (-S)?
    [Urs Janssen <urs@tin.org>]
 
-o  When reading local spool, assign the filehandle of the on-spool
-   article directly to artinfo->raw. There is no need to take a local
-   copy.
-   [Jason Faultless <jason@altarstone.com>]
-
 o  what is with NEW_HASH_METHOD in list.c?
 
+o  rewrite code to use INEWS_PATH instead of INEWSDIR
+   [20021007 Urs Janssen <urs@tin.org>
+
+o  remove built in path of external commands (metamail, ispell, ...)
+   [for ispell $ISPELL can be used to override systempath and progname]
+
+o  add configure-switch for DISABLE_PIPELINING
+   [20090612 Urs Janssen <urs@tin.org>]
+
+o  mask inline PGP SIGNATURE/KEY BLOCK like we do for uu-sections
+   [20090722 Urs Janssen <urs@tin.org>]
+
+o  some non fixed width strings could be formatted nicer (warp on last space
+   before cCOLS), i.e. txt_warn_downgrade
+   [20110325 Urs Janssen <urs@tin.org>]
+
 Unicode
 -------
 o  add UTF-8 (unicode) support (RFC 2279)
@@ -672,9 +708,9 @@ o  make mm_network_charset an "option_li
    undesired (UTF-1, UTF-7, UTF-16*, UTF-32*, UCS-2, UCS-4, ...) encodings.
    add configure check for the hardcoded charsets (try iconv_open(x,
    us-ascii) on each...) and disable those not available.
-   (think about more network charsets (GB2312, Shift_JIS,
-    ISO-8859-6[-{I,E}], ISO-8859-8[-{I,E}]), ISO-8859-11, VISCII, VIQR;
-    check wether KOI8-RU is still used/valid)
+   (think about more network charsets (GB2312, GB18030, Shift_JIS,
+    ISO-8859-6[-{I,E}], ISO-8859-8[-{I,E}], ISO-8859-11, VISCII, VIQR;
+    check wether KOI8-RU is still used/valid))
    [done except configure check 20010907 urs@tin.org]
 
 o  make mm_network_charset an user configurable item list
@@ -686,7 +722,7 @@ o  make mm_network_charset an user confi
    [20050805 <urs@tin.org>]
 
 o  add IDNA support (RFC 3490ff.)
-   (<http://www.gnu.org/software/libidn/> might be usefull)
+   (<http://www.gnu.org/software/libidn/> might be useful)
    (added minimalistic IDNA decoding support if a recent libidn is found, urs)
    [20030917 Urs Janssen <urs@tin.org>]
 
@@ -698,8 +734,25 @@ o  add normalization
 
 Docs/online help
 ----------------
-o  review the turkish, russian and kinyarwanda translations
-   (tr.po, ru.po, rw.po)
+o  the documentation of PageFollowupQuoteHeaders (^W) and
+   PageReplyQuoteHeaders (^E) is wrong as not all headers but just those
+   visible via news_headers_to_display (or all if raw mode is on
+   (PageToggleHeaders (^H)) are included.
+   [20100911 Urs Janssen <urs@tin.org>]
+
+o  the online help of GroupMarkUnselArtRead 'X' is unclear as it doesn't
+   say that the article are marked read
+   [20090814 Urs Janssen <urs@tin.org>]
+
+o  document the different singnals/actions (i.e. SIGUSR2 writes newsrc)
+   [20080209 Urs Janssen <urs@tin.org>]
+
+o  exit staus documentation in the manpage isn't correct, we have more
+   exit codes than just 0/1 (and 2 in the -Z case).
+   [20080320 Urs Janssen <urs@tin.org>]
+
+o  review the danish, swedish, turkish, russian and kinyarwanda translations
+   (da.po, sv.po, tr.po, ru.po, rw.po); add/finish man-page translation(s).
 
 o  add installation guide (in html)
 
@@ -718,8 +771,101 @@ o  tin.defaults could use more documenta
 
 o  replace "\\" by "\e" in manpages (portable?)
 
+o  integrate doc/auth.txt into tin.1-manpage
+
 Not yet classified
 ------------------
+o  make --with-defaults-dir= default to $sysconfdir/tin
+   (=/usr/local/etc/tin)?
+   [20110809 Urs Janssen <urs@tin.org>]
+
+o  Supersedes (and repost) don't reuse the Reply-To: header of the original
+   article
+   [20110808 Urs Janssen <urs@tin.org>]
+
+o  what about !us-ascii chars in username/password when using
+   AUTHINFO USER/PASS? Currently they are sent as is, RFC 3977 says
+   "The character set for all NNTP commands is UTF-8", RFC 4643 doesn't
+   mention any special handling.
+   [20101104 Urs Janssen <urs@tin.org>]
+
+o  what is or was HIST_HELP_SEARCH good for? And what about cHelp?
+   [20101008 Urs Janssen <urs@tin.org>]
+
+o  fix memleaks on early exits (i.e. host unreachable, auth failed, ...)
+   [20100517 Urs Janssen <urs@tin.org>]
+
+o  charset conversion fails when converting articles from multibyte charsets
+   with 0 bytes (UCS2, UCS4, UTF-16[[LB]E], UTF-32[[LB]E], ...), currently
+   we just skip over such parts instead of handling them properly
+   [20100905 Urs Janssen <urs@tin.org>]
+
+o  add "COMPRESS DEFLATE" support once it's official? this would require a
+   rewrite of the code which reads data from the network (which should be
+   done anyway for TLS) as we must handle null-bytes in the stream.
+   <http://www.ietf.org/internet-drafts/draft-murchison-nntp-compress-01.txt>
+   [20100122 Urs Janssen <urs@tin.org>]
+
+o  the documentation suggests that novrootdir/$TIN_NOVROOTDIR defaults to
+   spooldir/$TIN_SPOOLDIR if unset, which is not exactly what happens as
+   this default is set at configure/compile time, not at runtime, so
+   setting $TIN_SPOOLDIR to something different than the default will not
+   automatically adjust $TIN_NOVROOTDIR at runtime. we should either
+   fix the documentation or the behaviour.
+   [20100103 Urs Janssen <urs@tin.org>]
+
+o  FOLLOW_USEFOR_DRAFT is a minomer as RFC 5536 is released
+   [20091225 Urs Janssen <urs@tin.org>]
+
+o  un/subscribe_pattern() is very slow on servers with a huge active file
+   [20091223 Urs Janssen <urs@tin.org>]
+
+o  replace wildmat.c with uwildmat.c
+   <http://inn.eyrie.org/trac/browser/trunk/lib/uwildmat.c>? It knows poison
+   patterns and can handle UTF-8 strings
+   [20091223 Urs Janssen <urs@tin.org>]
+
+o  support $XDG_CONFIG_HOME / $XDG_DATA_HOME?
+   <http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>
+   [20081010 Urs Janssen <urs@tin.org>]
+
+o  add //IGNORE iconv-option like //TRANSLIT?
+   [20080824 Urs Janssen <urs@tin.org>]
+
+o  what about REDIRECT_OUTPUT? shouldn't we better add this to DEFAULT_PRINTER
+   so ppl. can override it via the 'M'enu? and shouldn't DEFAULT_PRINTER be
+   detected via configure?
+   [20080625 Urs Janssen <urs@tin.org>]
+
+o  create debug output in
+   ${TIN_HOMEDIR-"$HOME"}/.tin"}${NNTPSERVER+"/$NNTPSERVER"}
+   instead of in $TMPDIR (as it may contain username and password,
+   access restrictions in $TMPDIR are a bad idea as other users
+   need to be able to overwrite the file)
+   [20080211 Urs Janssen <urs@tin.org>]
+
+o  -M/-N report is malied to userid, should we use tinrc.mail_address
+   instead?
+
+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 attributes 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)
@@ -755,47 +901,32 @@ o  inverse_okay's Menu description isn't
 o  --disable-inverse-video seems to be ignored - do we still need it?
 
 o  move tinrc.defaults for certain comands to a pre-filled .inputhistory?
-   (if so, also move i_key_search_last there)
+   (if so, also move last_search there)
    [Jason Faultless]
 
 o  what about -a cmd-line flag? is this really needed? IMHO this can be
    dropped, '&' can be used for runtime color toggling.
    [20021106 Urs Janssen <urs@tin.org>]
 
-o  -G doesn't "work" in the !NNTP case, shall we disallow it in that case
-   or shall we try to implement it?
-   [20030421 Urs Janssen <urs@tin.org>]
-
 o  commas in real-name might cause problems in mail-replys
    From: Last, First <user@accou.nt> (which is illegal) leads to
    To: Last, First<user@accou.nt> which is last@localhost,user@accou.nt
    should we try to fix things and quote the realname part?
    [20021007 Urs Janssen <urs@tin.org>]
 
-o  what is with FOPEN_OPTS (VMS)? is it missing from ~50% of all
-   fopen()-calls or can it be dropped entirely?
-   [20020821 Urs Janssen <urs@tin.org>]
-
 o  setting TIN_HOMEDIR to a non-existent dir gives a "Filesystem full"
    error-message (but doesn't abort) instead of creating the dir. bug?
    feature? if the later we should give a more exact error-message.
    [20011112 Urs Janssen <urs@tin.org>]
 
-o  check_article_to_be_posted() still need some cleanup
+o  check_article_to_be_posted() needs a cleanup!
    (avoid setup_check_article_screen(&init);StartInverse();EndInverse();
     overhead)
    [20010629 Urs Janssen <urs@tin.org>]
 
 o  update gettext stuff to > gettext-0.12.1
 
-o  clean up included pcre stuff (pcre/Makefile.in)
-   [20050608 Urs Janssen <urs@tin.org>]
-
-o  tin in batchmode dumps core if getting a SIGINT, useful?
-
-o  what is with conflicting tinrc settings? should we disallow those, or leave
-   it to the user to realise that e.g. strip_blanks=ON && inverse_okay=ON
-   looks ugly?
+o  clean up included pcre stuff and update to >= pcre-8.13
 
 o  shows up cross-postings multiple times even if read once before getting
    a resync/reread active/newsrc-file
@@ -807,23 +938,29 @@ o  think about group numbering in "only 
 o  remove tinrc.strip_blanks? IMHO it's not needed anymore
    [20020305 Urs Janssen <urs@tin.org>]
 
+o  what is with conflicting tinrc settings? should we disallow those, or leave
+   it to the user to realise that e.g. strip_blanks=ON && inverse_okay=ON
+   looks ugly?
+
 o  doesn't handle symlinks for .oldnewsrc
    (see <20021003021508.GA28021@akk10.akk.uni-karlsruhe.de> for details, urs.
     if we're going to 'fix' this we must be careful to avoid symlink
     attacks (<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-1999-1091>)
    [20020627 Jeff Sheinberg <jeffsh@erols.com>]
 
+o  missing newsrc file and connecting to a server without groups leads to the
+   question "Try and save newsrc file again? (Y/n)" but a newsrc file doesn't
+   get written. Same may occur on quitting if newsrc file had been removed
+   while tin was running. Useful? Should write_newsrc() try to create a newsrc
+   file if it is missing instead of just leaving?
+   [20061102 Dirk Nimmich <nimmich@muenster.de>]
+
 o  cleanup main.c/init_selfinfo()
    ('strace -e trace=file tin' and/or 'ltrace -e getenv tin' and you know
     what I mean)
    [fixed some of the double/tripple reads, urs]
 
-o  either use libinn(3) where ever it's possible inside the code (if
-   configured to use that lib) or drop support for it.
-   [20030511 Urs Janssen <urs@tin.org>]
-
-o  detect pcre version and add compatibility macros for old versions
-   (interface has changed twice and might do so again)
-   (leafnode comes with a (suboptimal) check)
-   (is this still needed with the configure option for extern pcre?)
-   [Urs Janssen <urs@tin.org>]
+o  re add innlib support? (the old one was dropped as the lib has retired
+   all (which were not that many) features we used and our code didn't
+   use the innlibs code where ever it was possible (and useful).
+   [20080211 Urs Janssen <urs@tin.org>]
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/WHATSNEW tin-2.0.0/doc/WHATSNEW
--- tin-1.8.3/doc/WHATSNEW	2006-02-15 19:23:41.000000000 +0100
+++ tin-2.0.0/doc/WHATSNEW	2011-04-17 16:04:26.674498085 +0200
@@ -1,11 +1,52 @@
-New features and changes since tin-1.8.0
+New features and changes since tin-1.8.1
 
 New features
 ------------
-. initial swedish translation
+. attributes and scope menu
+. attachment level
+. URL level
+. configurable verbatim marks (default is slrn style)
+. configurable body trimming
+. UTF-8 descriptions (RFC 3977)
+. sort by date of last posted article
+. writes out newsrc if getting SIGUSR2
+. authentication via SASL PLAIN (RFC 4643) is preferred over USER/PASS
+. prefer LIST COUNTS (RFC 6048) over LIST ACTIVE if supported
+. danish translation
+. -4 / -6 cmd. line switches to force IPv4 / IPv6 connection
 
 Changes
 -------
+. Cancel-Locks can be enabled via configure switch
+. url_handler.pl as DEFAULT_URL_HANDLER
+. mime_forward is forced on multipart articles
+. changed names in tinrc:
+    default_editor_format -> editor_format
+    default_maildir       -> maildir
+    default_mailer_format -> mailer_format
+    default_printer       -> printer
+    default_savedir       -> savedir
+    default_sigfile       -> sigfile
+    show_only_unread      -> show_only_unread_arts
+. changed names in attributes:
+    post_proc_type        -> post_process_type
+    show_only_unread      -> show_only_unread_arts
+    sort_art_type         -> sort_article_type
+    thread_arts           -> thread_articles
+. changed names in keymap:
+    PageToggleHeaders     -> PageToggleRaw
+. '-s', '-m' and '-G' cmd-line options no longer change the corresponding
+  tinrc values
+. '-w' uses the first given cmd-line group as default group to post to
+. with positive getart_limit all unread articles less than getart_limit are
+  kept as unread
+. mail/pipe/print articles now work on ranges too
+. PageReplyQuoteHeaders (^E) and PageFollowupQuoteHeaders (^W) now quote only
+  visible headers due to news_headers_to_display
 
 Retired Features
 ----------------
+. VMS support
+. libinn support (was broken for ages)
+. AUTHINFO GENERIC (deprecated by RFC 4643)
+. Kinyarwanda translation (unmaintained since initial commit)
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/art_handling.txt tin-2.0.0/doc/art_handling.txt
--- tin-1.8.3/doc/art_handling.txt	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/art_handling.txt	2011-04-17 16:04:26.722505389 +0200
@@ -44,7 +44,7 @@ There is one of these per article 'part'
 whole counts as 1 part so there will always be at least one of these structures
 linked to the header.
 Each t_part is pre-initialised to the RFC2045 defaults. (text/plain, 7bit etc..)
-Content-* headers if present will then supercede this information.
+Content-* headers if present will then supersede this information.
 The other fields are:
 params		A linked list of parameters associated with the Content-Type and
 			Content-Disposition headers
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/article.txt tin-2.0.0/doc/article.txt
--- tin-1.8.3/doc/article.txt	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/article.txt	2011-04-17 16:04:26.766512087 +0200
@@ -1,6 +1,6 @@
 This attempts to document the article lifecycle.
 
-arts[] is trashed and rebuilt everytime a group is entered.
+arts[] is trashed and rebuilt every time a group is entered.
 This is handled entirely by index_group()
 
 setup_hard_base() creates an array of 'valid' article numbers in base[]
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/auth.txt tin-2.0.0/doc/auth.txt
--- tin-1.8.3/doc/auth.txt	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/auth.txt	2011-04-17 16:04:26.826521219 +0200
@@ -1,12 +1,14 @@
                   Authentication to a NNTP server with tin
 
 Tin is able to do authentication to news servers according to the "Common
-NNTP Extensions" (this document is available at [1]). There are several
-ways of authentication described in that text which are referred to as
-Original AUTHINFO, AUTHINFO GENERIC, and AUTHINFO SIMPLE. Tin supports the
-Original AUTHINFO and the AUTHINFO GENERIC methods. In addition to answers
-to authentication requests as described in the "Common NNTP Extensions",
-tin also provides authentication at connection startup.
+NNTP Extensions" (this document is available at [1]). There are several ways
+of authentication described in that text which are referred to as Original
+AUTHINFO, AUTHINFO GENERIC, and AUTHINFO SIMPLE. Tin supports the Original
+AUTHINFO and the AUTHINFO GENERIC methods and if tin is linked against
+libgsasl and the server announces it as described in RFC 3977 [2] it
+supports the AUTHINFO SASL PLAIN mechanisem as described in RFC 4643 [3]. In
+addition to answers to authentication requests as described in the "Common
+NNTP Extensions", tin also provides authentication at connection startup.
 
 Unfortunately, you cannot rely on the response codes of authentication
 requests as described in the "Common NNTP Extensions"; today's news servers
@@ -34,7 +36,9 @@ The first line matching the current news
 between the fields MUST be spaces or TABS. If a password contains spaces,
 you have to surround the whole password by double quotes. If no user-name is
 given for the current news server, the user-id of the user who started tin
-is assumed.
+is assumed. Mind that tin expects unix line endings ('\n'), a
+.newsauth-file with dos line endings ('\r\n') or mac line endings ('\r')
+is likely to cause trouble.
 
 Security consideration: Make sure that the .newsauth file cannot be read by
 others. Tin checks the permissions of the file and complains if they are
@@ -63,6 +67,9 @@ If NNTPAUTH is empty or not available, t
 <user-id>" command to the server and expects the result as a NNTP response
 code.
 
+The AUTHINFO SASL PLAIN authentication method requires tin to be linked
+against libgsasl.
+
 The AUTHINFO SIMPLE authentication method is not supported by tin (and
 possibly won't be since nobody seems to use it and there are some problems
 with the protocol). If you need this, drop me a message or see the source
@@ -73,4 +80,6 @@ Dirk Nimmich (2000-01-22)
 <nimmich@uni-muenster.de>
 
 References:
-<http://www.karlsruhe.org/rfc/rfc2980.txt>
+[1] <http://www.karlsruhe.org/rfc/rfc2980.txt>
+[2] <http://www.karlsruhe.org/rfc/rfc3977.txt>
+[3] <http://www.karlsruhe.org/rfc/rfc4643.txt>
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/config-anomalies tin-2.0.0/doc/config-anomalies
--- tin-1.8.3/doc/config-anomalies	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/config-anomalies	2011-05-08 11:53:02.432430682 +0200
@@ -1,14 +1,6 @@
 config anomalies in tin:
 
 different variable names in tinrc file and struct tinrc:
-post_process_type	tinrc.post_process
-show_only_unread	tinrc.show_only_unread_arts
-default_maildir		tinrc.maildir
-default_savedir		tinrc.savedir
-default_printer		tinrc.printer
-default_editor_format	tinrc.editor_format
-default_mailer_format	tinrc.mailer_format
-default_sigfile		tinrc.sigfile
 default_filter_days	tinrc.filter_days
 
 changing the struct tinrc names can help cleaning up read/write_config_file()
@@ -40,78 +32,65 @@ art_marked_selected, art_marked_recent, 
 art_marked_killed and art_marked_read_selected must be converted by
 SPACE_TO_DASH() before writing to tinrc file.
 
-default_filter_kill_case and default_filter_select_case write inverted values
-to tinrc file (not really a problem -- these are not in option_table and must
-be handled explicitly anyway)
-
 -----------------------------------------------------------------------------
 
 tinrc variables that should be removed because they can be used in the
 attributes file with scope=*:
 
-default_savedir                savedir in attributes
+savedir
 auto_save
-mark_saved_read              *
-post_process_type              post_proc_type in attributes
-post_process_view            *
-process_only_unread          *
-prompt_followupto            *
-pos_first_unread             *
-show_only_unread             *
+mark_saved_read
+post_process_type
+post_process_view
+process_only_unread
+prompt_followupto
+pos_first_unread
+show_only_unread_arts
 kill_level                   *
-tab_goto_next_unread         *
-space_goto_next_unread       *
-pgdn_goto_next               *
-full_page_scroll             *
-show_last_line_prev_page     *
-group_catchup_on_exit        *
-thread_catchup_on_exit       *
-thread_articles                thread_arts in attributes
-thread_perc                  *
+group_catchup_on_exit
+thread_catchup_on_exit
+thread_articles
+thread_perc
 show_author
-news_headers_to_display      *
-news_headers_to_not_display  *
-sort_article_type              sort_art_type in attributes
+news_headers_to_display
+news_headers_to_not_display
+sort_article_type
 sort_threads_type
-default_maildir                maildir in attributes
-print_header                 *
+maildir
+print_header
 batch_save
-start_editor_offset          * allows for different editors in different
-default_editor_format        * hierarchies (e.g. a special one for asian
-                               newsgroups)
+start_editor_offset
+editor_format
 show_info                    *
 posted_articles_file         *
-add_posted_to_filter         *
-default_sigfile                sigfile in attributes
-sigdashes                    * it doesn't make sense to set that globally if
-                               you can have different sigfiles in different
-                               groups
-signature_repost             *
-advertising                  *
+add_posted_to_filter
+sigfile
+sigdashes
+signature_repost
+advertising
 quote_chars
 quote_regex                  *
 quote_regex2                 *
 quote_regex3                 *
 strip_re_regex               *
 strip_was_regex              *
-show_signatures              *
+show_signatures
 hide_uue                     *
 news_quote_format
 mail_quote_format            *
 xpost_quote_format           *
-auto_cc                      *
-auto_bcc                     *
+auto_cc_bcc
 default_filter_days          *
 getart_limit                 *
 recent_time                  *
-mail_address                   from in attributes; should be splitted into
+mail_address                   from in attributes; should be split into
                                username and addresse
 mm_charset                     mm_network_charset
                                (if charset conversion is available)
-post_mime_encoding           *
-mail_mime_encoding           *
-post_8bit_header             *
-mail_8bit_header             *
+post_mime_encoding
+mail_mime_encoding
+post_8bit_header
+mail_8bit_header
 default_filter_kill_header     quick_kill_header in attributes
 default_filter_kill_global     quick_kill_scope=* in attributes
 default_filter_kill_case       quick_kill_case in attributes
@@ -127,8 +106,8 @@ default_save_file              savefile 
 variables with different types in tinrc and attributes:
 default_filter_kill_header (int)     quick_kill_header (unsigned int)
 default_filter_select_header (int)   quick_select_header (unsigned int)
-thread_articles (int)                thread_arts (unsigned int)
-sort_article_type (int)              sort_art_type (unsigned int)
+thread_articles (int)                thread_articles (unsigned int)
+sort_article_type (int)              sort_article_type (unsigned int)
 sort_threads_type (int)              sort_threads_type (unsigned int)
 show_author (int)                    show_author (unsigned int)
-post_process (int)                   post_proc_type (unsigned int)
+post_process_type (int)              post_process_type (unsigned int)
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/filtering tin-2.0.0/doc/filtering
--- tin-1.8.3/doc/filtering	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/filtering	2011-04-17 16:04:26.914534613 +0200
@@ -151,12 +151,13 @@ matches:            matched to:
 
 subj=pattern        Subject:
 from=pattern        From:
-                    Tin converts the contents of the From-header to an old-style
-                    e-mail address, i.e. ''some@body.example (John Doe)''
-                    instead of ''John Doe <some@body.example>'', before trying to
-                    match the patterns in the filter rule. That way a rule tailored to
-                    to match the full from header "jsmith@ac.example (John Smith)" will still
-                    work when John posts with a different newsreader which uses
+                    Tin converts the contents of the From-header to an
+                    old-style e-mail address, i.e. ''some@body.example (John
+                    Doe)'' instead of ''John Doe <some@body.example>'',
+                    before trying to match the patterns in the filter rule.
+                    That way a rule tailored to match the full from
+                    header "jsmith@ac.example (John Smith)" will still work
+                    when John posts with a different newsreader which uses
                     "John Smith <jsmith@ac.example>".
 msgid=pattern       Message-Id: *AND* full References:
 msgid_last=pattern  Message-Id: and last Reference:s entry only
@@ -307,7 +308,7 @@ score=-100
 refs_only=.*<[^@\s]+@\S+(?<!akk3\.akk\.uni-karlsruhe\.de)>$
 
 comment= Kill all articles from John Smith, who writes under different
-comment= addresses at ac.me, e.g john@ac.me and boss@ac.me
+comment= addresses at ac.example, e.g john@ac.example and boss@ac.example
 group=*
 case=1
 score=kill
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/good-netkeeping-seal tin-2.0.0/doc/good-netkeeping-seal
--- tin-1.8.3/doc/good-netkeeping-seal	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/doc/good-netkeeping-seal	2011-04-17 16:04:26.962541919 +0200
@@ -629,7 +629,7 @@ engage in flame warfare, all of which is
 19) Be kind to servers, leave room for others
 
 Reading or posting software MUST NOT put excessive demands on news
-servers unnecessarily.  The sofware MUST limit itself to 4 simultaneous
+servers unnecessarily.  The software MUST limit itself to 4 simultaneous
 connections to a given server.  Spurious connects and unnecessary
 traffic MUST be avoided; the software MUST use as few as possible
 connections, reusing existing connections whenever possible.
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/keymap.sample tin-2.0.0/doc/keymap.sample
--- tin-1.8.3/doc/keymap.sample	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/keymap.sample	2011-04-17 16:04:27.074558965 +0200
@@ -1,11 +1,10 @@
-# Keymap file V1.0.6 for the TIN newsreader
+# Keymap file V1.0.9 for the TIN newsreader
 #
 # Sample keymap file
 # This file contains the default key mappings
 #
 # Global keys
 
-PageDown3			SPACE
 ShellEscape			!
 SetRange			#
 LastPage			$
@@ -45,17 +44,32 @@ QuickFilterKill			]
 ScrollUp			<
 ScrollDown			>
 PageUp				b	^B	^U
-PageDown			^D	^F
+PageDown			^D	^F	SPACE
 RedrawScr			^L
 MenuFilterSelect		^A
 MenuFilterKill			^K
+MarkFeedRead			^X
+MarkFeedUnread			^W
 
 #####
 
+AttachPipe			p
+AttachSave			s
+AttachSelect			^J	^M
+AttachTag			t
+AttachTagPattern		=
+AttachToggleTagged		@
+AttachUntag			U
+
+#####
+
+ConfigToggleAttrib		TAB
 ConfigSelect			^J	^M
 ConfigLastPage			G
 ConfigNoSave			Q
+ConfigScopeMenu			S
 ConfigFirstPage			g
+ConfigResetAttrib		r
 
 #####
 
@@ -82,6 +96,7 @@ GroupToggleThdSel		.
 GroupSelThdIfUnreadSelected	;
 GroupSelPattern			=
 GroupReverseSel			@
+GroupCancel			D
 GroupToggleGetartLimit		G
 GroupMarkThdRead		K
 GroupNextUnreadArt		N
@@ -112,7 +127,7 @@ HelpFirstPage			g
 
 PageReplyQuoteHeaders		^E
 PagePGPCheckArticle		^G
-PageToggleHeaders		^H
+PageToggleRaw			^H
 PageNextUnread			TAB
 PageNextThd			^J	^M
 PageToggleTabs			^T
@@ -121,6 +136,7 @@ PageToggleTex2iso		"
 PageToggleRot			%
 PageToggleUue			(
 PageReveal			)
+PageToggleAllHeaders		*
 PageSkipIncludedText		:
 PageTopThd			<
 PageBotThd			>
@@ -214,11 +230,21 @@ SelectMarkGrpUnread		z	Z
 
 #####
 
+ScopeSelect			^J	^M
+ScopeEditAttributesFile		E
+ScopeAdd			a
+ScopeDelete			d
+ScopeMove			m
+ScopeRename			r
+
+#####
+
 ThreadReadNextArtOrThread	TAB
 ThreadReadArt			^J	^M
 ThreadSelArt			*
 ThreadToggleArtSel		.
 ThreadReverseSel		@
+ThreadCancel			D
 ThreadMarkArtRead		K
 ThreadAutoSave			S
 ThreadUntag			U
@@ -227,3 +253,7 @@ ThreadMail			m
 ThreadSave			s
 ThreadTag			t
 ThreadUndoSel			~
+
+#####
+
+UrlSelect			^J	^M
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/de/tin.1 tin-2.0.0/doc/l10n/de/tin.1
--- tin-1.8.3/doc/l10n/de/tin.1	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/de/tin.1	2011-08-22 00:21:06.738589017 +0200
@@ -0,0 +1,3418 @@
+.\"
+.\" Project   : tin - a Usenet newsreader
+.\" Module    : tin.1
+.\" Author    : I. Lea, U. Janssen
+.\" Created   : 1991-08-23
+.\" Updated   : 2011-08-23
+.\" Notes     : use american english; still needs some work, e.g.:
+.\"             - document authorization (.newsauth)
+.\"             - document random organization feature
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH tin 1 "23. August 2011" 2.0.0 "Usenet Newsreader"
+.\"
+.\"
+.SH NAME
+.\"
+.\"
+tin, rtin \- Ein Usenet Newsreader
+.SH ÜBERSICHT
+.\"
+.\"
+\fBtin\fP [\|[\|\fB\-h\fP\||\|\fB\-H\fP\||\|\fB\-V\fP\|]\ \|| [\|[\|[\|\fB\-a\fP\|]
+[\|\fB\-dlnq\fP\||\|\fB\-Q\fP\|] [\|\fB\-ArzxX\fP\|]\|] [\|[\|\fB\-R\fP\||\|\fB\-S\fP\|]
+\|\|\fB\-s\fP \fINews\-Verz.\fP\|] [\|\fB\-cuvZ\fP\|] [\|\fB\-4\fP\||\|\fB\-6\fP\|]
+[\|\fB\-N\fP\||\|\fB\-M\fP \fIAdresse\fP\|] [\|\fB\-o\fP\||\|\fB\-w\fP\|]\|] [\|\fB\-D\fP
+\fIDebuggrad\fP\|] [\|\fB\-G\fP \fIArtikellimit\fP\|] [\|\fB\-f\fP \fInewsrc\-Datei\fP\|]
+[\|\fB\-g\fP \fIServer\fP\|] [\|\fB\-m\fP \fIMail\-Verz.\fP\|] [\|\fB\-p\fP \fIPort\fP\|] [\|\fB\-I\fP
+\fIindex\-Verz.\fP\|]\ \|[\fINewsgruppe\fP\|[\|,.\|.\|.\|]\|]\|]
+.SH BESCHREIBUNG
+\fBtin\fP ist ein einfach zu bedienender Newsreader für das Usenet. Er kann
+Artikel von einem lokalen (z. B. aus \fI/var/spool/news\fP) oder entfernten
+Server (\fBrtin\fP oder \fBtin \-r\fP Option) mittels NNTP (Network News Transport
+Protocol) lesen. Er benutzt, sofern vorhanden, lokale NOV \fBnewsoverview\fP(5)
+Indexdateien bzw. den [X]OVER NNTP\-Befehl (\fBRFC2980\fP, \fBRFC3977\fP).
+.PP
+\fBtin\fP hat vier unterschiedliche Arbeitsebenen: Auswahlebene, Gruppenebene,
+Threadebene und Artikelebene. Mit dem \fBHelp\fP ('\fBh\fP') Befehl können die
+jeweils verfügbaren Befehle angezeigt werden.
+.PP
+Am Anfang zeigt \fBtin\fP eine Liste der Gruppen in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP. Ein Pfeil '\->' oder ein inverser
+Balken zeigt auf die erste Newsgruppe. Um zu einer Gruppe zu navigieren
+können die Cursor\-Tasten (hängt vom verwendetem Terminal ab) oder \fBDown\fP
+('\fBj\fP') und \fBUp\fP ('\fBk\fP') benutzt werden. Mit Bildhoch/Bildrunter (hängt
+vom verwendetem Terminal ab) oder \fBPageUp\fP ('\fB^U\fP') (CTRL\-U) und
+\fBPageDown\fP ('\fB^D\fP') (CTRL\-D) kann Seitenweise navigiert werden. Die
+ausgewählte Gruppe wird durch Drücken von '\fB<CR>\fP' betreten.
+.PP
+.\"
+.\"
+Durch Drücken der \fBGroupNextUnreadArtOrGrp\fP ('\fB<TAB>\fP') Taste wird
+die nächste Newsgruppe mit ungelesenen Artikeln betreten.
+.SH EXIT\-STATUS
+Interaktiver\-Modus:
+.RS +.5i
+.TP 
+\fB0\fP
+Programm erfolgreich beendet.
+.TP 
+\fB1\fP
+Bedien\-, Syntax\-, Konfigurations\- oder Netzwerk\-Fehler.
+.RE
+.PP
+Batch\-Modus (\*(rq\fB\-Z\fP\*(rq):
+.RS +.5i
+.TP 
+\fB0\fP
+Keine ungelesenen Nachrichten vorhanden
+.TP 
+\fB1\fP
+Bedien\-, Syntax\-, Konfigurations\- oder Netzwerk\-Fehler.
+.TP 
+\fB2\fP
+Ungelesene Nachrichten vorhanden
+.RE
+.\"
+.\"
+.SH OPTIONEN
+.TP  12
+\fB\-4\fP
+Verbindung via IPv4 zum NNTP Server erzwingen.
+.TP 
+\fB\-6\fP
+Verbindung via IPv6 zum NNTP Server erzwingen.
+.TP 
+\fB\-a\fP
+ANSI\-Farben ein/\-ausschalten (Standard ist aus).
+.TP 
+\fB\-A\fP
+Erzwinge Authentifikation beim Verbindungsaufbau.
+.TP 
+\fB\-c\fP
+Erstelle bzw. aktualisiere Index\-Dateien für alle Gruppen in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP bzw. der mittels \*(rq\fB\-f\fP\*(rq angegebenen
+Datei und markiere alle Artikel als gelesen.
+.TP 
+\fB\-d\fP
+Keine Gruppenbeschreibungen laden (Interaktiver\-Modus).
+.TP 
+\fB\-D\fP\fI Debuggrad\fP
+Debuggrad angeben (1 = NNTP, 2 = Filter, 4 = newsrc, 8 = Threading, 16 =
+Speicher, 32 = attributes, 64 = Diverses).
+.TP 
+\fB\-f\fP\fI Datei\fP
+Benutze die angegebene newsrc\-Datei anstelle von
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP.
+.TP 
+\fB\-g\fP\fI Server\fP
+Zugehörigen Newsserver und newsrc\-Datei aus
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP benutzen.
+.TP 
+\fB\-G\fP\fI Artikellimit\fP
+Beschränkt die Anzahl der zu ladenden Artikel pro Gruppe.
+.TP 
+\fB\-h\fP
+Kurzübersicht der verfügbaren Komandozeilenoptionen.
+.TP 
+\fB\-H\fP
+Kurzeinführung in \fBtin\fP welche auch beim allerersten Start ausgegeben wird.
+.TP 
+\fB\-I\fP\fI Verzeichnis\fP
+Directory in which to store newsgroup index files. Default is
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news\fP.  This option
+has no effect if \fBtin\fP retrieves its index files via NNTP and
+\fBcache_overview_files\fP is turned off.
+.TP 
+\fB\-l\fP
+Get number of articles per group from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file. If reading
+via NNTP this is done with the LIST command (\fBRFC3977\fP). This might result
+in incorrect article counts but is usually faster than the default which is
+to read the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file
+(either directly or via LIST) and then check the article count via NNTP
+GROUP command (\fBRFC3977\fP) \*(rq\fB\-ln\fP\*(rq.
+.TP 
+\fB\-m\fP\fI Verzeichnis\fP
+Zu benutzendes Mailbox\-Verzeichnis. Standard ist
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fP.
+.TP 
+\fB\-M\fP\fI Benutzer\fP
+Sende ungelesene Artikel an den angegebenen Benutzer um sie später lesen zu
+können. Für weitere Informationen siehe den Abschnitt "AUTOMATISCHES MAILEN
+UND SPEICHERN VON UNGELESENEN ARTIKELN".
+.TP 
+\fB\-n\fP
+Only load groups from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file that are
+subscribed to in the user's \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP. This allows
+a noticeable speedup when connecting via a slow line, but \fBtin\fP can not
+tell which groups are moderated. See also \*(rq\fB\-l\fP\*(rq.
+.TP 
+\fB\-N\fP
+Sende ungelesene Artikel an dich selbst um sie später lesen zu können. Für
+weitere Informationen siehe den Abschnitt "AUTOMATISCHES MAILEN UND
+SPEICHERN VON UNGELESENEN ARTIKELN".
+.TP 
+\fB\-o\fP
+Quick post all postponed articles and exit. In order for this to be really
+quick, it should be used with \*(rq\fB\-n\fP\*(rq if possible.
+.TP 
+\fB\-p\fP\fI Port\fP
+Zu benutzende Portnummer falls per NNTP gelesen wird (Standard ist
+119). Übersteuert die Umgebungsvariable $\fBNNTPPORT\fP.
+.TP 
+\fB\-q\fP
+Nicht prüfen ob neue Newsgruppen vorhanden sind.
+.TP 
+\fB\-Q\fP
+Schnellstart. \fBtin\fP so schnell wie möglich starten, zur Zeit entspricht
+diese Option \*(rq\fB\-nqd\fP\*(rq.
+.TP 
+\fB\-r\fP
+Read news remotely from the default NNTP server specified in the environment
+variable $\fBNNTPSERVER\fP or contained in the file \fI/etc/nntpserver\fP.
+.TP 
+\fB\-R\fP
+Lese mittels \*(rq\fB\-S\fP\*(rq gespeicherte Artikel.
+.TP 
+\fB\-s\fP\fI Verzeichnis\fP
+Save/read articles to/in directory. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP.
+.TP 
+\fB\-S\fP
+Speichere ungelesene Artikel zum späteren Lesen mittels \*(rq\fB\-R\fP\*(rq. Für
+weitere Informationen siehe den Abschnitt "AUTOMATISCHES MAILEN UND
+SPEICHERN VON UNGELESENEN ARTIKELN".
+.TP 
+\fB\-u\fP
+Create/update index files for every group in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP or file specified by the \*(rq\fB\-f\fP\*(rq
+option. This option is disabled if \fBtin\fP retrieves its index files via a
+NNTP server and \fBcache_overview_files\fP is turned off.
+.TP 
+\fB\-v\fP
+Ausführliche Ausgabe für \*(rq\fB\-c\fP\*(rq, \*(rq\fB\-M\fP\*(rq, \*(rq\fB\-N\fP\*(rq, \*(rq\fB\-S\fP\*(rq,
+\&\*(rq\fB\-u\fP\*(rq und \*(rq\fB\-Z\fP\*(rq\-Optionen.
+.TP 
+\fB\-V\fP
+Versionsinformationen ausgeben.
+.TP 
+\fB\-w\fP
+Schnell\-Modus um nur einen Artikel zu posten. Nach Möglichkeit mit \*(rq\fB\-n\fP\*(rq
+kombinieren.
+.TP 
+\fB\-x\fP
+No posting mode. You cannot post articles if you use this option.
+.TP 
+\fB\-X\fP
+No overwrite mode. \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP and files in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin\fP will not be overwritten but may be created
+if they don't exist.
+.TP 
+\fB\-z\fP
+Only start \fBtin\fP if there is any new/unread news. If there is news \fBtin\fP
+will position cursor at first group with unread news. Useful for putting in
+login file.
+.TP 
+\fB\-Z\fP
+Check if there is any new/unread news and exit with appropriate status. If
+\&\*(rq\fB\-v\fP\*(rq option is specified the number of unread articles in each group
+is printed. An exit code 0 indicates no news, 1 that an error occurred and 2
+that new/unread news exists. Useful for writing scripts.
+.PP
+\fBtin\fP can also dynamically change its options by the \fBOptionMenu\fP ('\fBM\fP')
+command. Any changes are written to
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP. For more information see section
+"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" and \fBtin\fP(5).
+.PP
+A list of groups can be specified after the other command\-line options. This
+can be useful if you wish to yank in or subscribe to a hand\-picked subset of
+the active newsgroups. See the section "NEWSGROUP LISTS & WILDCARDS" for the
+types of pattern that \fBtin\fP understands.
+.PP
+If you specify a single group\-name, or a wildcard that matches a single
+group, then you will automatically enter that group. Otherwise the normal
+group selection screen will appear, but with all the matching groups present
+too, as though you had yanked just those groups in.
+.PP
+With the \*(rq\fB\-w\fP\*(rq flag a given group\-name is used as default group to post
+to. If more than one group or a wildcard is specified only the first group
+respectively the first group that matches is used.
+.PP
+Once you use \fBSelectYankActive\fP ('\fBy\fP') to yank in all active groups, or
+\fBSelectToggleReadDisplay\fP ('\fBr\fP') to toggle the read/unread status, then
+the command\-line groups will be gone. You can use \fBSelectSyncWithActive\fP
+('\fBY\fP') to reread the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file and get them
+back.
+.PP
+NB: With the \*(rq\fB\-n\fP\*(rq flag, only unsubscribed groups in the
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file (or the newsrc\-file given by the
+\&\*(rq\fB\-f\fP\*(rq command\-line switch or via
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP) can be matched.
+.PP
+.\"
+.\"
+Komandozeilenoptionen haben eine höhere Priorität als attributes und tinrc
+Optionen und übersteuern daher die konfigurierten Werte.
+.SH GEBRAUCH
+.\"
+.\"
+.SS "NEWS ADMINISTRATION"
+Maintaining Netnews on large networks of machines can be a pretty time
+consuming job as I discovered when I was given the job of maintaining our
+news system and news users.
+.PP
+.\"
+.\"
+A user starting \fBtin\fP for the first time can be automatically subscribed to
+a list of newsgroups that are deemed appropriate by the news
+administrator. The subscriptions file should be created in your news lib
+directory (i.e., \fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fP) and should have
+file permissions set to 0644. If you read news via NNTP, then your news
+server must support the LIST SUBSCRIPTIONS command. It is part of the NNTP
+List Extensions (\fBRFC6048\fP) and all modern servers should understand it.
+.SS "SCREEN FORMAT"
+\fBtin\fP hat vier unterschiedliche Arbeitsebenen: Auswahlebene, Gruppenebene,
+Threadebene und Artikelebene.
+.PP
+At the Selection level the title displays (the name of the newsserver and)
+the number of subscribed groups (containing new unread articles). The
+newsgroups are displayed in the middle of the screen with the number of
+unread articles displayed on the same line in front.
+.PP
+.\" FIXME - make this autoscale
+.nf
+\->M    1     2  comp.security.announce  Announcements from the CERT abou
+  M    2     1  news.admin.announce     Announcements for news adminstra
+       3    22  news.software.misc      News\-related software other than
+       4  1475  news.software.nntp      The Network News Transfer Protoc
+  X    5   124  news.software.readers   Discussion of software used to r
+.fi
+.PP
+Eventuell steht am Anfang der Zeile noch eines der folgende Zeichen:
+.TP  10
+\fBu\fP
+This group is unsubscribed. To see only your subscribed groups use the
+\fBSelectToggleReadDisplay\fP ('\fBr\fP') or \fBSelectYankActive\fP ('\fBy\fP') toggle
+keys.
+.TP 
+\fBM\fP
+This is a moderated group. Any posts you make will have to be approved by
+the group administrator before it will be made public. \fBtin\fP will ask for
+confirmation before you post to a moderated group.
+.TP 
+\fBN\fP
+This is a new newsgroup which has been created since you last used
+\fBtin\fP. New newsgroups are not subscribed to by default (However, see the
+$\fBAUTOSUBSCRIBE\fP / $\fBAUTOUNSUBSCRIBE\fP environment variables).  Subscribe
+to it in the normal way if you wish the group to continue to appear in your
+Selection Menu. Simply ignore new newsgroups and they will be gone the next
+time you start \fBtin\fP. You will have to yank in all the groups to find them
+in a later session.
+.TP 
+\fBD\fP
+This group no longer exists. If you no longer wish to see this group then
+unsubscribe from it in the normal way. This flag will only appear if you
+have set \fBstrip_bogus\fP to "ask" in the Options Menu.
+.TP 
+\fBX\fP
+You may no longer make posts to this group. Often a group will be superseded
+by a more appropriately named one.
+.TP 
+\fB=\fP
+This group has been renamed and you may no longer post to it. If you do,
+then you will receive an error from your newsserver telling you the correct
+group to post to.
+.PP
+At the Group level the title contains the name of the group, the number of
+conversation threads, the threading method, the limit of articles to get,
+the total number of articles, the number of hot articles, the number of
+recent articles and the number of killed articles. I.e.:
+.PP
+.nf
+.\" FIXME - make this autocenter
+            alt.sources (5B \-50/23+ 0* 3o 0K)
+.fi
+.PP
+The characters after the numbers are depending to the configuration and if
+your are in \fBshow_only_unread_arts\fP mode or not. Some numbers could be
+missing if the specific option is not enabled. It might also contain an 'M',
+\&'X' or '=' (see above; doesn't work with the \*(rq\fB\-n\fP\*(rq command\-line
+switch!) if the group is moderated, set to no posting or postings to it get
+redirected.
+.PP
+If a thread has unread articles in it it's marked with a
+\fBart_marked_unread\fP in front of the total number of articles in the
+thread. If there are recent articles within the thread it might be marked
+with \fBart_marked_recent\fP in front of the total number of articles in the
+thread \- this is controlled by the \fBrecent_time\fP option. If a thread has
+hot articles in it (see also section "FILTERING ARTICLES") it's marked with
+\fBart_marked_selected\fP in front of the total number of articles in the
+thread. The number of lines of the first (unread) article in the thread
+might also be shown right before the subject \- this is controlled by the
+\fBshow_info\fP option.
+.PP
+.\" FIXME - make this autoscale
+.nf
+                de.admin.net\-abuse.announce (11B 13+ 1* 1o 0K) M
+
+\->   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg <l
+     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede <hwee
+     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede <hwee
+     4   *      368 <1997\-11\-12> Fremdcancel\-FAQ     Thomas Roessler <ro
+.fi
+.PP
+.\" FIXME - add description of fields
+At the Thread level the screen usually (depends on the threading method
+used) looks like this:
+.PP
+.\" FIXME - make this autoscale
+.nf
+\->   1      [   7]  What is this funny tree in the thr  Robert F. Simmig
+     2      [  12]  +\->                                 Sephan Wagner <s
+     3      [ 230]  | `\->Tin thread\-level (was: What is Bob Johnson <bob
+     4      [  22]  `\->tin threading menu               Brian Richardson
+
+.fi
+.PP
+.\" FIXME - add description of fields
+At the Article level the page header has the following format:
+.PP
+.\" FIXME - make this autoscale
+.nf
+So, 28 Dez 1997 21:21:01    de.admin.news.groups      Thread   20 v. 86
+Zeilen 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL Artikel  47 von 59
+Urs Janssen <urs@akk.org>       bei Arbeitskreis Kultur und Kommunikati
+
+Artikel\-Körper
+.fi
+.\"
+.\"
+.SS "COMMON MOVING KEYS"
+This table shows the common keys used for moving around all levels within
+\fBtin\fP.
+.RS
+.nf
+.ta \w'Beg. of list/article  'u +\w'ANSI/vt100   'u
+	ANSI/vt100	Other Terminals
+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 \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
+.RE
+.\"
+.\"
+.SS "COMMON EDITING COMMANDS"
+An emacs style editing package allows the easy editing of input strings.  An
+history list allows the easy reuse of previously entered strings.  In
+addition to the cursor keys, the following commands are available when
+editing a string:
+.PP
+.TP  10
+\fB^A, ^E\fP
+move to beginning or end of line, respectively.
+.TP 
+\fB^F, ^B\fP
+non\-destructive move forward or back one location, respectively.
+.TP 
+\fB^D\fP
+delete the character currently under the cursor, or send EOF if no
+characters in the buffer.
+.TP 
+\fB^H, <ENTF>\fP
+Zeichen links vom Cursor löschen.
+.TP 
+\fB^K\fP
+Lösche vom Cursor bis zum Zeilenende.
+.TP 
+\fB^P, ^N\fP
+move through history, previous and next, respectively.
+.TP 
+\fB^L, ^R\fP
+redraw the current line.
+.TP 
+\fB<CR>\fP
+places line on history list if non\-blank, appends newline and returns to the
+caller.
+.TP 
+\fB<ESC>\fP
+.\"
+.\"
+aborts the present editing operation.
+.SS "ALLGEMEINE BEFEHLE"
+Die folgenden Befehle stehen in allen vier Ebenen zur Verfügung und bewirken
+überall das Gleichen.
+.PP
+.TP  10
+\fBShellEscape '!'\fP
+Shell escape. \fBShellEscape\fP by itself will launch a shell, \fBShellEscape\fP
+<command> will run an external <command>. This facility may
+have been disabled by the System Administrator.
+.TP 
+\fBToggleColor '&'\fP
+Toggle use of ANSI color.
+.TP 
+\fBRedrawScr '^L'\fP
+Bildschirminhalt neu aufbauen.
+.TP 
+\fBScrollUp '<'\fP
+Eine Zeile nach oben blättern (scrollen).
+.TP 
+\fBScrollDown '>'\fP
+Eine Zeile nach unten blättern (scrollen).
+.TP 
+\fBPostponed 'O' '^O'\fP
+Reload postponed article. If your system blocks the \fBPostponed\fP key you
+must quote it by pressing '\fB^V\fP' (CTRL\-V) first. The postpone\-menu offers
+the following actions: \fBPromptYes\fP ('\fBy\fP') = reload and spawn editor;
+\fBPostponeOverride\fP ('\fBY\fP') = post article (without spawning editor);
+\fBPostponeAll\fP ('\fBA\fP') = post all postponed articles (without spawning
+editor); \fBPromptNo\fP ('\fBn\fP') = skip this article; \fBQuit\fP ('\fBq\fP') = quit
+postponed menu. Currently there is no 'simple' way to delete a postponed
+article from the postponed\-file, you have to use the following command
+sequence instead: reload it with \fBPostponed\fP, enter editor with
+\fBPromptYes\fP, quit editor, discard posting with \fBQuit\fP
+('\fB^O\fP\*(rq\fBy\fP\*(rq\fBq\fP'). See also \*(rq\fB\-o\fP\*(rq command\-line switch.
+.TP 
+\fBHelp 'h'\fP
+Help screen of commands available on the current menu. You can use
+\fBSearchSubjF\fP ('\fB/\fP'), \fBSearchSubjB\fP ('\fB?\fP') and \fBSearchRepeat\fP
+('\fB\e\fP') to search on this screen. \fBQuit\fP ('\fBq\fP') returns to the menu.
+.TP 
+\fBToggleHelpDisplay 'H'\fP
+Toggle the display of help mini menu at the bottom of the screen.
+.TP 
+\fBDisplayPostHist 'W'\fP
+List articles posted by user. The date posted, the newsgroup and the subject
+are listed. You can use \fBSearchSubjF\fP ('\fB/\fP'), \fBSearchSubjB\fP ('\fB?\fP') and
+\fBSearchRepeat\fP ('\fB\e\fP') to search on this screen. \fBQuit\fP ('\fBq\fP') returns
+to the menu.
+.TP 
+\fBVersion 'v'\fP
+.\"--------------------------------------------------------------------
+.\"
+Versions\-Informationen ausgeben.
+.SS "NEWSGROUP SELECTION COMMANDS"
+.TP  10
+\fB4\fP
+Gruppe 4 auswählen.
+.TP 
+\fBSelectResetNewsrc '^R'\fP
+Reset \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file. This will destroy all records
+of which articles have been read, so use this carefully.
+.TP 
+\fBSetRange '#'\fP
+Wählen Sie eine Reihe von Artikeln auf die der nächste Befehl angewendet
+wird. Siehe Abschnitt "BEREICHE" für weitere Informationen.
+.TP 
+\fBSelectSortActive '.'\fP
+Liste vorhandener Newsgroups sortieren.
+.TP 
+\fBSearchRepeat '\e'\fP
+Vorherige Suche wiederholen.
+.TP 
+\fBSearchSubjF '/'\fP
+Search for a group by name and description (if displayed).
+.TP 
+\fBSearchSubjB '?'\fP
+Backward search through the group names and descriptions.
+.TP 
+\fBSelectReadGrp '^J' '<CR>'\fP
+Read current group.
+.TP 
+\fBSelectEnterNextUnreadGrp '<TAB>' 'n'\fP
+Enter next group with unread news. Will wrap around to the beginning of the
+group selection list looking for unread groups.
+.TP 
+\fBCatchup 'c'\fP
+Make current group as all read [after confirmation] and move to the next
+group in the group selection list.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark current group as all read [after confirmation] and enter the next
+unread group in the group selection list.
+.TP 
+\fBSelectToggleDescriptions 'd'\fP
+Toggle display to show just the group name or the group name and the group
+descriptions.
+.TP 
+\fBEditFilter 'E'\fP
+Filter\-Datei bearbeiten und danach anwenden.
+.TP 
+\fBSelectGoto 'g'\fP
+Choose a new group by name. This command can be used to access any group,
+even those not currently yanked in.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Toggle the display of the description of the current newsgroup in the last
+line. This will not be available if \fBtin\fP was started with the \&\*(rq\fB\-d\fP\*(rq
+option.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBSelectMoveGrp 'm'\fP
+Move the current group within the group selection list. By entering '1' the
+group will become the first displayed group in the list, by entering '8' the
+eighth group in the list etc. By entering '$' the group will be the last
+group displayed.
+.TP 
+\fBOptionMenu 'M'\fP
+User configurable options menu (for more information see section "GLOBAL
+OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
+.TP 
+\fBSelectNextUnreadGrp 'N'\fP
+Positions the cursor on the next group with unread articles in it.
+.TP 
+\fBQuit 'q'\fP
+Quit \fBtin\fP \- ask the user to confirm if \fBconfirm_choice\fP is set
+accordingly.
+.TP 
+\fBQuitTin 'Q'\fP
+Beendet \fBtin\fP sofort, ohne Bestätigungsnachfrage.
+.TP 
+\fBSelectToggleReadDisplay 'r'\fP
+Toggle display of all subscribed to groups and just those groups containing
+unread articles. Command has no effect if groups were specified on the
+command\-line when \fBtin\fP was started.
+.TP 
+\fBBugReport 'R'\fP
+Einen Fehlerbericht oder Kommentar an <tin\-bugs@tin.org>
+senden. Dies ist der sinnvollste Weg um Fehler zu melden und behoben zu
+bekommen bzw. nach neuen Funktionen zu fragen.
+.TP 
+\fBSelectSubscribe 's'\fP
+Ausgewählte Gruppe abonnieren.
+.TP 
+\fBSelectSubscribePat 'S'\fP
+Subscribe to groups matching user specified pattern. See the section
+"NEWSGROUP LISTS & WILDCARDS" for the types of pattern that \fBtin\fP
+understands.
+.TP 
+\fBSelectUnsubscribe 'u'\fP
+Unsubscribe to current group. This can be used to remove bogus groups.  See
+\fBstrip_bogus\fP in the "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+section.
+.TP 
+\fBSelectUnsubscribePat 'U'\fP
+Unsubscribe to groups matching user specified pattern. See the section
+"NEWSGROUP LISTS & WILDCARDS" for the types of pattern that \fBtin\fP
+understands.
+.TP 
+\fBPost 'w'\fP
+Post an article to current group. If posting fails for some reason, you'll
+get the chance to \fBPostEdit\fP ('\fBe\fP') the article again, \fBPostPostpone\fP
+('\fBo\fP') it for later processing (see also \*(rq\fB\-o\fP\*(rq command\-line switch) or
+discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBSelectQuitNoWrite 'X'\fP
+Quit \fBtin\fP without saving any changes to the configuration.
+.TP 
+\fBSelectYankActive 'y'\fP
+Yanks in all groups. Toggles the displayed groups between all the groups in
+the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file and just
+those that are subscribed to in \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP.
+.TP 
+\fBSelectSyncWithActive 'Y'\fP
+Reread the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file to
+see if any new news has arrived since starting \fBtin\fP.
+.TP 
+\fBSelectMarkGrpUnread 'z' 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Alle Artikel in der aktuellen Gruppe als ungelesen markieren.
+.SS "GROUP INDEX COMMANDS"
+.TP  10
+\fB4\fP
+Artikel 4 auswählen.
+.TP 
+\fBMenuFilterSelect '^A'\fP
+Auto select article(s) using a menu. Read the section "FILTERING ARTICLES"
+for more information.
+.TP 
+\fBMenuFilterKill '^K'\fP
+Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
+information.
+.TP 
+\fBMarkFeedRead '^X'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as read. A prompt asks which type should
+be marked.
+.TP 
+\fBMarkFeedUnread '^W'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as unread. A prompt asks which type
+should be marked.
+.TP 
+\fBSetRange '#'\fP
+Wählen Sie eine Reihe von Artikeln auf die der nächste Befehl angewendet
+wird. Siehe Abschnitt "BEREICHE" für weitere Informationen.
+.TP 
+\fBLastViewed '\-'\fP
+Re\-enter the last message that was viewed.
+.TP 
+\fBSearchRepeat '\e'\fP
+Vorherige Suche wiederholen.
+.TP 
+\fBSearchSubjF '/'\fP
+Search forward for specified subject.
+.TP 
+\fBSearchSubjB '?'\fP
+Search backward for specified subject.
+.TP 
+\fBGroupSelThd '*'\fP
+Select current thread for later processing.
+.TP 
+\fBGroupDoAutoSel '+'\fP
+Selects all threads in current group. It is a shortcut for calling
+\fBGroupSelPattern\fP with a pattern of \*(rq*\*(rq.
+.TP 
+\fBGroupToggleThdSel '.'\fP
+Toggle selection of current thread. If at least one unread article, (but not
+every unread article) in the current thread is selected, then all unread
+articles become selected.
+.TP 
+\fBGroupSelThdIfUnreadSelected ';'\fP
+For each thread in current group, if it at least one unread article is
+selected, all unread articles become selected. This is useful for
+auto\-selection on author where reader wants to see entire thread.
+.TP 
+\fBGroupSelPattern '='\fP
+Prompts for a pattern with which to match on. All threads whose subjects
+match the pattern will be marked selected. A pattern of \*(rq*\*(rq will match all
+subjects. Entering just '\fB<CR>\fP' will re\-use the last pattern that
+was entered.
+.TP 
+\fBGroupReverseSel '@'\fP
+Reverse all selections on all articles.
+.TP 
+\fBGroupUndoSel '~'\fP
+Undo all selections on all articles. It clears the toggle effect of
+\fBGroupMarkUnselArtRead\fP ('\fBX\fP') command. Thus after first doing a
+\fBGroupMarkUnselArtRead\fP, one can then do \fBGroupUndoSel\fP to reset
+articles. Thus, one can iteratively whittle down uninteresting threads.
+.TP 
+\fBPipe '|'\fP
+Pipe current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles into command. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBQuickFilterSelect '['\fP
+Auto select article(s) with a single key [after confirmation]. The defaults
+used for selection are based upon the following four tinrc config variables:
+\fBdefault_filter_select_case\fP, \fBdefault_filter_select_expire\fP,
+\fBdefault_filter_select_global\fP and \fBdefault_filter_select_header\fP.  Read
+the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a
+full explanation of these variables and "FILTERING ARTICLES" for more
+information on filtering.
+.TP 
+\fBQuickFilterKill ']'\fP
+Kill article(s) with a single key [after confirmation]. The defaults used
+for killing are based upon the following four tinrc config variables:
+\fBdefault_filter_kill_case\fP, \fBdefault_filter_kill_expire\fP,
+\fBdefault_filter_kill_global\fP and \fBdefault_filter_kill_header\fP.  Read the
+section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full
+explanation of these variables and "FILTERING ARTICLES" for more information
+on filtering.
+.TP 
+\fBGroupReadBasenote '^J' '<CR>'\fP
+Read current article.
+.TP 
+\fBGroupNextUnreadArtOrGrp '<TAB>'\fP
+View next unread article or group.
+.TP 
+\fBSearchAuthF 'a'\fP
+Author forward search. This searches for articles with a specific \*(rqFrom:\*(rq
+line.
+.TP 
+\fBSearchAuthB 'A'\fP
+Author backward search. Otherwise, see \fBSearchAuthF\fP ('\fBa\fP') above.
+.TP 
+\fBSearchBody 'B'\fP
+Search the body of all articles in group (can be slow). You can abort the
+search using \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBCatchup 'c'\fP
+Mark all articles as read [after confirmation] then return to the group
+selection list. Move cursor to next group.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark all articles as read [after confirmation] and enter the next group with
+unread news.
+.TP 
+\fBGroupToggleSubjDisplay 'd'\fP
+Cycle the display of the author through all the possible options for the
+tinrc variable \fBshow_author\fP.
+.TP 
+\fBGroupCancel 'D'\fP
+Cancel (delete) or supersede (overwrite) the current article. It must have
+been posted by the same user. The cancel message can be seen in the
+newsgroup 'control' or 'control.cancel'.
+.TP 
+\fBEditFilter 'E'\fP
+Filter\-Datei bearbeiten und danach anwenden.
+.TP 
+\fBGroupGoto 'g'\fP
+Choose a new group by name. This command can be used to access any group,
+even those not currently yanked in.
+.TP 
+\fBGroupToggleGetartLimit 'G'\fP
+Toggle article/group limit.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Display the subject of the first article in the current thread in the last
+line.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBGroupMarkThdRead 'K'\fP
+Mark article/thread as read and move onto the next unread article/thread. If
+a range of articles/threads is set, the range will be marked as read instead
+of the current article/thread. When tagged articles/threads are present, a
+prompt asks how to proceed.
+.TP 
+\fBGroupListThd 'l'\fP
+Open the thread under the current cursor position.
+.TP 
+\fBLookupMessage 'L'\fP
+Artikel anhand der \*(rqMessage\-ID:\*(rq nachschlagen.
+.TP 
+\fBGroupMail 'm'\fP
+Mail current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to someone. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBOptionMenu 'M'\fP
+User configurable options menu (for more information see section "GLOBAL
+OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
+.TP 
+\fBGroupNextGroup 'n'\fP
+Go to next group.
+.TP 
+\fBGroupNextUnreadArt 'N'\fP
+Go to next unread article.
+.TP 
+\fBPrint 'o'\fP
+Send current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to printer. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBGroupPrevGroup 'p'\fP
+Go to previous group.
+.TP 
+\fBGroupPrevUnreadArt 'P'\fP
+Go to previous unread article.
+.TP 
+\fBQuit 'q'\fP
+Return to previous level.
+.TP 
+\fBQuitTin 'Q'\fP
+Beendet \fBtin\fP sofort, ohne Bestätigungsnachfrage.
+.TP 
+\fBGroupToggleReadUnread 'r'\fP
+Toggle the display between all articles and unread articles.
+.TP 
+\fBBugReport 'R'\fP
+Einen Fehlerbericht oder Kommentar an <tin\-bugs@tin.org>
+senden. Dies ist der sinnvollste Weg um Fehler zu melden und behoben zu
+bekommen bzw. nach neuen Funktionen zu fragen.
+.TP 
+\fBGroupSave 's'\fP
+Save current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles. See the section "MAILING PIPING PRINTING
+REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBGroupAutoSave 'S'\fP
+Markierte Artikel automatisch ohne weiteres Nachfragen speichern.
+.TP 
+\fBGroupTag 't'\fP
+Toggle tag\-status of current article / thread for \fBGroupMail\fP ('\fBm\fP')  /
+\fBPipe\fP ('\fB|\fP') / \fBPrint\fP ('\fBo\fP') / \fBGroupSave\fP ('\fBs\fP') /
+\fBGroupRepost\fP ('\fBx\fP').
+.TP 
+\fBGroupTagParts 'T'\fP
+Automatically tag in order all the parts of the current multi\-part message.
+.TP 
+\fBGroupToggleThreading 'u'\fP
+Cycle the threading mode through no threading, threading by subject,
+threading by references, threading on both subject and references, group
+multipart articles into a thread (\*(rqSubject:\*(rq based).
+.TP 
+\fBGroupUntag 'U'\fP
+Untag all articles that were tagged.
+.TP 
+\fBPost 'w'\fP
+Post an article to current group. If posting fails for some reason, you'll
+get the chance to edit the article again via \fBPostEdit\fP ('\fBe\fP'), postpone
+it via \fBPostPostpone\fP ('\fBo\fP') for later processing (see also \*(rq\fB\-o\fP\*(rq
+command\-line switch) or discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBGroupRepost 'x'\fP
+Repost an already posted article / thread / auto\-selected (hot) articles /
+articles matching pattern / tagged articles to another newsgroup(s). Useful
+for reposting from global to local newsgroups. Do not use this to cross\-post
+your own articles.
+.TP 
+\fBGroupMarkUnselArtRead 'X'\fP
+Mark all unread articles that have not been selected as read, redraw screen
+to reflect changes and put index at the first thread to begin reading. 
+Pressing \fBGroupMarkUnselArtRead\fP ('\fBX\fP') again will toggle back to the way
+it was before. See \fBGroupUndoSel\fP ('\fB~\fP') command for clearing the toggle
+effect, leaving the group will also clear the toggle effect and make the
+changes permanent.
+.TP 
+\fBMarkArtUnread 'z'\fP
+Aktuellen Artikel als ungelesen markieren.
+.TP 
+\fBMarkThdUnread 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Mark current thread as unread. If a range of threads is set, the range will
+be marked as unread instead of the current thread. When tagged threads are
+present, a prompt asks how to proceed.
+.SS "THREAD LISTING COMMANDS"
+.\" this sections should be complete
+.TP  10
+\fB4\fP
+Artikel 4 aus dem Thread auswählen.
+.TP 
+\fBMenuFilterSelect '^A'\fP
+Auto select article(s) using a menu. Read the section "FILTERING ARTICLES"
+for more information.
+.TP 
+\fBMenuFilterKill '^K'\fP
+Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
+information.
+.TP 
+\fBMarkFeedRead '^X'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as read. A prompt asks which type should
+be marked.
+.TP 
+\fBMarkFeedUnread '^W'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as unread. A prompt asks which type
+should be marked.
+.TP 
+\fBSetRange '#'\fP
+Wählen Sie eine Reihe von Artikeln auf die der nächste Befehl angewendet
+wird. Siehe Abschnitt "BEREICHE" für weitere Informationen.
+.TP 
+\fBLastViewed '\-'\fP
+Re\-enter the last message that was viewed.
+.TP 
+\fBSearchRepeat '\e'\fP
+Vorherige Suche wiederholen.
+.TP 
+\fBSearchSubjF '/'\fP
+Search forward for a specified subject.
+.TP 
+\fBSearchSubjB '?'\fP
+Search backwards for a specified subject.
+.TP 
+\fBThreadSelArt '*'\fP
+Select the current thread for later processing.
+.TP 
+\fBThreadToggleArtSel '.'\fP
+Toggle selection of current article.
+.TP 
+\fBThreadReverseSel '@'\fP
+Artikelauswahl invertieren.
+.TP 
+\fBThreadUndoSel '~'\fP
+Undo all selections on current thread.
+.TP 
+\fBPipe '|'\fP
+Pipe current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles into command. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBThreadReadArt '^J' '<CR>'\fP
+Read current article within thread.
+.TP 
+\fBThreadReadNextArtOrThread '<TAB>'\fP
+Nächsten ungelesenen Artikel im Thread anzeigen.
+.TP 
+\fBSearchAuthF 'a'\fP
+Author forward search. This searches for articles with a specific \*(rqFrom:\*(rq
+line. The search will wrap over into the next thread if nothing is found in
+the current one.
+.TP 
+\fBSearchAuthB 'A'\fP
+Author backward search. Otherwise, see \fBSearchAuthF\fP ('\fBa\fP') above.
+.TP 
+\fBSearchBody 'B'\fP
+Search the body of all articles in group (can be slow). You can abort the
+search using \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBCatchup 'c'\fP
+Mark thread as read [after confirmation] and return to the group index
+page.  Move cursor to next thread.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark thread as read [after confirmation] and enter the next thread
+containing unread news.
+.TP 
+\fBThreadToggleSubjDisplay 'd'\fP
+Cycle the display of the author through all the possible options for the
+tinrc variable \fBshow_author\fP.
+.TP 
+\fBThreadCancel 'D'\fP
+Cancel (delete) or supersede (overwrite) the current article. It must have
+been posted by the same user. The cancel message can be seen in the
+newsgroup 'control' or 'control.cancel'.
+.TP 
+\fBEditFilter 'E'\fP
+Filter\-Datei bearbeiten und danach anwenden.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Subject des geöffneten Artikels in der untersten Zeile anzeigen.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBThreadMarkArtRead 'K'\fP
+Mark article as read and move onto the next unread article. If a range of
+articles is set, the range will be marked as read instead of the current
+article. When tagged articles are present, a prompt asks how to proceed.
+.TP 
+\fBLookupMessage 'L'\fP
+Artikel anhand der \*(rqMessage\-ID:\*(rq nachschlagen.
+.TP 
+\fBThreadMail 'm'\fP
+Mail current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to someone. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBPrint 'o'\fP
+Send current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to printer. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBQuit 'q'\fP
+Return to previous level.
+.TP 
+\fBQuitTin 'Q'\fP
+Beendet \fBtin\fP sofort, ohne Bestätigungsnachfrage.
+.TP 
+\fBBugReport 'R'\fP
+Einen Fehlerbericht oder Kommentar an <tin\-bugs@tin.org>
+senden. Dies ist der sinnvollste Weg um Fehler zu melden und behoben zu
+bekommen bzw. nach neuen Funktionen zu fragen.
+.TP 
+\fBThreadSave 's'\fP
+Save current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles. See the section "MAILING PIPING PRINTING
+REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBThreadAutoSave 'S'\fP
+Markierte Artikel automatisch ohne weiteres Nachfragen speichern.
+.TP 
+\fBThreadTag 't'\fP
+Toggle tag status of current article for mailing, piping, printing, saving
+or reposting.
+.TP 
+\fBThreadUntag 'U'\fP
+Untag all tagged threads.
+.TP 
+\fBPost 'w'\fP
+Post an article to current group. If posting fails for some reason, you'll
+get the chance to edit the article again via \fBPostEdit\fP ('\fBe\fP'), postpone
+it for later processing via \fBPostPostpone\fP ('\fBo\fP') (see also \*(rq\fB\-o\fP\*(rq
+command\-line switch) or discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBMarkArtUnread 'z'\fP
+Mark current article in thread as unread. If a range of articles is set, the
+range will be marked as unread instead of the current article. When tagged
+articles are present, a prompt asks how to proceed.
+.TP 
+\fBMarkThdUnread 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Alle Artikel im aktuellen Thread as ungelesen markieren.
+.SS "ARTICLE VIEWER COMMANDS"
+.\" FIXME - refine descriptions
+.TP  10
+\fB0\fP
+Read the first (base) article in this thread.
+.TP 
+\fB4\fP
+Antwort 4 im diesem Thread lesen.
+.TP 
+\fBMenuFilterSelect '^A'\fP
+Auto select article(s) using a menu. Read the section "FILTERING ARTICLES"
+for more information.
+.TP 
+\fBPageReplyQuoteHeaders '^E'\fP
+Reply through mail to the author of the current article with a copy of the
+article with all headers included.
+.TP 
+\fBPagePGPCheckArticle '^G'\fP
+Perform \fBpgp\fP(1)  operations on article.
+.TP 
+\fBPageToggleRaw '^H'\fP
+Toggles the display mode (raw including all headers vs. cooked).
+.TP 
+\fBMenuFilterKill '^K'\fP
+Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
+information.
+.TP 
+\fBPageToggleTabs '^T'\fP
+Tabulatorbreite zwischen 4 und 8 Zeichen Umschalten.
+.TP 
+\fBPageFollowupQuoteHeaders '^W'\fP
+Post a followup to the current article with a copy of the article with all
+headers included.
+.TP 
+\fBPageToggleTex2iso '"'\fP
+Toggle TeX to ISO decoding for current article. The default behavior is
+taken from the \fBtex2iso_conv\fP variable in the tinrc file.
+.TP 
+\fBPageToggleAllHeaders '*'\fP
+Toggles the display of all headers vs. headers in
+\fBnews_headers_to_display\fP.
+.TP 
+\fBPageToggleRot '%'\fP
+Toggle ROT\-13 decoding for this article.
+.TP 
+\fBPageToggleUue '('\fP
+Toggle the display of uuencoded sections. The default behavior is taken from
+the \fBhide_uue\fP variable in the tinrc file.
+.TP 
+\fBPageReveal ')'\fP
+The formfeed character (^L) is often used to hide 'spoilers' that the reader
+may not initially wish to see when viewing an article. Any text after a
+formfeed is not displayed. This key\-press acts like a reveal key and turns
+the hidden text back on. Scrolling down will also reveal the text, scrolling
+up will hide it again.
+.TP 
+\fBLastViewed '\-'\fP
+Re\-enter the last message that was viewed.
+.TP 
+\fBSearchRepeat '\e'\fP
+Vorherige Suche wiederholen.
+.TP 
+\fBSearchSubjF '/'\fP
+Forward search the text of this article.
+.TP 
+\fBSearchSubjB '?'\fP
+Backward search the text of this article.
+.TP 
+\fBPageSkipIncludedText ':'\fP
+Skip to the end of the next quoted text\-block in this article. Quoted text
+is everything which matches \fBquote_regex\fP, \fBquote_regex2\fP or
+\fBquote_regex3\fP.
+.TP 
+\fBPageTopThd '<'\fP
+Go to the first article in the current thread.
+.TP 
+\fBPageBotThd '>'\fP
+Go to the last article in the current thread.
+.TP 
+\fBPageToggleHighlight '_'\fP
+Toggle word highlighting on/off.
+.TP 
+\fBPipe '|'\fP
+Pipe current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles into command. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBQuickFilterSelect '['\fP
+Auto select article(s) with a single key. The defaults used for selection
+are set based upon the following four tinrc config variables:
+\fBdefault_filter_select_case\fP, \fBdefault_filter_select_expire\fP,
+\fBdefault_filter_select_global\fP and \fBdefault_filter_select_header\fP Read the
+section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full
+explanation of these variables and "FILTERING ARTICLES" for more information
+on filtering.
+.TP 
+\fBQuickFilterKill ']'\fP
+Kill article(s) with a single key. The defaults used for killing are based
+upon the following four tinrc config variables: \fBdefault_filter_kill_case\fP,
+\fBdefault_filter_kill_expire\fP, \fBdefault_filter_kill_global\fP and
+\fBdefault_filter_kill_header\fP.  Read the section "GLOBAL OPTIONS MENU AND
+TINRC CONFIGURABLE VARIABLES" for a full explanation of these variables and
+"FILTERING ARTICLES" for more information on filtering.
+.TP 
+\fBPageNextThd '^J' '<CR>'\fP
+Go to next base article.
+.TP 
+\fBPageNextUnread '<TAB>'\fP
+Go to 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 
+\fBSearchAuthF 'a'\fP
+Suche nach Autor (vorwärts).
+.TP 
+\fBSearchAuthB 'A'\fP
+Suche nach Autor (rückwärts).
+.TP 
+\fBSearchBody 'B'\fP
+Search the body of all articles in group (can be slow). You can abort the
+search using \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBCatchup 'c'\fP
+Mark the current thread as read [after confirmation] and return to the
+previous menu. Move cursor to next item.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark the rest of the current thread as read [after confirmation] and enter
+the next thread with unread articles.
+.TP 
+\fBPageCancel 'D'\fP
+Cancel (delete) or supersede (overwrite) the current article. It must have
+been posted by the same user. The cancel message can be seen in the
+newsgroup 'control' or 'control.cancel'.
+.TP 
+\fBPageEditArticle 'e'\fP
+Edit the current article. This is restricted to mailgroups and saved news.
+.TP 
+\fBEditFilter 'E'\fP
+Filter\-Datei bearbeiten und danach anwenden.
+.TP 
+\fBPageFollowupQuote 'f'\fP
+Post a followup to the current article with a copy of the article included.
+.TP 
+\fBPageFollowup 'F'\fP
+Post a followup to the current article without including a copy of the
+article.
+.TP 
+\fBPageFirstPage 'g'\fP
+Zum Anfang des Artikels springen.
+.TP 
+\fBPageLastPage 'G'\fP
+Zum Ende des Artikels springen.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Subject des geöffneten Artikels in der untersten Zeile anzeigen.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBPageKillThd 'K'\fP
+Mark rest of thread as read and move onto the next unread thread.
+.TP 
+\fBPageListThd 'l'\fP
+Show the thread menu that the current article is a part of.
+.TP 
+\fBLookupMessage 'L'\fP
+Artikel anhand der \*(rqMessage\-ID:\*(rq nachschlagen.
+.TP 
+\fBPageMail 'm'\fP
+Mail current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to someone. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBOptionMenu 'M'\fP
+User configurable options menu (for more information see section "GLOBAL
+OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
+.TP 
+\fBPageNextArt 'n'\fP
+Go to the next article.
+.TP 
+\fBPageNextUnreadArt 'N'\fP
+Go to the next unread article.
+.TP 
+\fBPrint 'o'\fP
+Send current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to printer. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBPagePrevArt 'p'\fP
+Go to the previous article.
+.TP 
+\fBPagePrevUnreadArt 'P'\fP
+Go to the previous unread article.
+.TP 
+\fBQuit 'q'\fP
+Return to the previous level.
+.TP 
+\fBQuitTin 'Q'\fP
+Beendet \fBtin\fP sofort, ohne Bestätigungsnachfrage.
+.TP 
+\fBPageReplyQuote 'r'\fP
+Reply through mail to the author of the current article with a copy of the
+article included.
+.TP 
+\fBPageReply 'R'\fP
+Reply through mail to the author of the current article without including
+the original article.
+.TP 
+\fBPageSave 's'\fP
+Save current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles. See the section "MAILING PIPING PRINTING
+REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBPageAutoSave 'S'\fP
+Markierte Artikel automatisch ohne weiteres Nachfragen speichern.
+.TP 
+\fBPageTag 't'\fP
+Toggle tag status of current article for mailing, piping, printing, saving
+or reposting.
+.TP 
+\fBPageGroupSel 'T'\fP
+Return to group selection level.
+.TP 
+\fBPageGotoParent 'u'\fP
+Go to parent article.
+.TP 
+\fBPageViewUrl 'U'\fP
+Display a list of URLs in the current article. See the section "URL LISTING"
+for more information.
+.TP 
+\fBPageViewAttach 'V'\fP
+Display a list of attachments of the current article. See the section
+"ATTACHMENT LISTING" for more information.
+.TP 
+\fBPost 'w'\fP
+Post an article to the current group. If posting fails for some reason,
+you'll get the chance to edit the article again via \fBPostEdit\fP ('\fBe\fP'),
+postpone it for later processing via \fBPostPostpone\fP ('\fBo\fP') (see also
+\&\*(rq\fB\-o\fP\*(rq command\-line switch) or discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBPageRepost 'x'\fP
+Repost an already posted article / thread / auto\-selected (hot) articles /
+articles matching pattern / tagged articles to another newsgroup(s). Useful
+for reposting from global to local newsgroups. Do not use this to crosspost
+your own articles.
+.TP 
+\fBMarkArtUnread 'z'\fP
+Alle Artikel als ungelesen markieren.
+.TP 
+\fBMarkThdUnread 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Markiere den aktuellen Thread als ungelesen.
+.SS "URL LISTE"
+\fBPageViewUrl\fP ('\fBU\fP') displays a list of URLs in the current
+article. Besides the common moving keys, the following commands are
+available:
+.RS 4
+.TP  10
+\fBUrlSelect '^J' '<CR>'\fP
+The current URL will be prompted and opened using the
+\fBurl_handler\fP. '\fB<ESC>\fP' or no input will skip the URL.
+.TP 
+\fBSearchSubjF '/'\fP
+Suche nach URL (vorwärts).
+.TP 
+\fBSearchSubjB '?'\fP
+Suche nach URL (rückwärts).
+.TP 
+\fBSearchRepeat '\e'\fP
+Vorherige Suche wiederholen.
+.TP 
+\fBShellEscape '!'\fP
+Shell escape.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Toggle the display of the current URL in the last line.
+.TP 
+\fBHelp 'h'\fP
+Help screen of commands available.
+.TP 
+\fBToggleHelpDisplay 'H'\fP
+Toggle the display of help mini menu at the bottom of the screen.
+.RE
+.\"--------------------------------------------------------------------
+.\"
+.SS "ATTACHMENT LISTING"
+\fBPageViewAttach\fP ('\fBV\fP') displays a list of attachments of the current
+article. Besides the common moving keys, the following commands are
+available:
+.RS 4
+.TP  10
+\fBAttachPipe 'p'\fP
+Pipe attachment into command.
+.TP 
+\fBAttachSave 's'\fP
+Save current attachment / tagged attachments to disk.
+.TP 
+\fBAttachSelect '^J' '<CR>'\fP
+Multimediaanhänge anzeigen.
+.TP 
+\fBAttachTag 't'\fP
+Tag one or more attachments for saving.
+.TP 
+\fBAttachTagPattern '='\fP
+Prompts for a pattern to match. All attachments whose name/description or
+content type/transfer encoding match the pattern will be tagged.
+.TP 
+\fBAttachToggleTagged '@'\fP
+Reverse tagging of all attachments.
+.TP 
+\fBAttachUntag 'U'\fP
+Untag all tagged attachments.
+.TP 
+\fBSearchSubjF '/'\fP
+Attachment forward search.
+.TP 
+\fBSearchSubjB '?'\fP
+Attachment backward search.
+.TP 
+\fBSearchRepeat '\e'\fP
+Vorherige Suche wiederholen.
+.TP 
+\fBGlobalPipe '|'\fP
+Pipe attachment into command. Uses the raw attachment, no decoding is done.
+.TP 
+\fBShellEscape '!'\fP
+Shell escape.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Names oder Beschreibung des Anhangs in der untersten Zeile anzeigen.
+.TP 
+\fBHelp 'h'\fP
+Help screen of commands available.
+.TP 
+\fBToggleHelpDisplay 'H'\fP
+Toggle the display of help mini menu at the bottom of the screen.
+.RE
+.\"--------------------------------------------------------------------
+.\"
+.SS "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+.\" FIXME - add missing descriptions
+At startup, \fBtin\fP reads in the configuration files (see also \fBtin\fP(5)). 
+They contain a list of variables that can be used to configure the way
+\fBtin\fP works. If it exists, the global configuration file,
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fP is read. After that, the user's own
+configuration file is read from \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP. The
+global file is useful for distributing system\-wide defaults to new users who
+have no private tinrc yet.
+.PP
+The variables are user configurable by editing
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP directly. Most of them can also be set
+in the GLOBAL OPTIONS MENU which is accessed by pressing \fBOptionMenu\fP
+('\fBM\fP') at all levels. It allows the user to customize the behavior of
+\fBtin\fP. The options are saved to the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP when you exit \fBtin\fP so don't edit the
+file directly whilst \fBtin\fP is running.
+.PP
+In the options menu use the cursor keys in the usual way to move around. Use
+\fBConfigSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') to 'open' the option you wish
+to change. You will need to enter a new value or use '\fB<SPACE>\fP' to
+toggle the available options. \fBConfigSelect\fP will save the new value,
+\&'\fB<ESC>\fP' will abort without saving changes.
+.PP
+As with the other menus, \fBRedrawScr\fP ('\fB^L\fP') will redraw the screen. You
+can use \fBSearchSubjF\fP ('\fB/\fP'), \fBSearchSubjB\fP ('\fB?\fP') and \fBSearchRepeat\fP
+('\fB\e\fP') to search for a specific option. Use \fBQuit\fP ('\fBq\fP') to exit the
+option menu and keep your changes. Use \fBQuitTin\fP ('\fBQ\fP') to exit without
+keeping your changes.
+.PP
+The options menu provides access to the attributes menu for the current
+group by the \fBConfigToggleAttrib\fP ('\fB<TAB>\fP') command. Pressing
+\fBConfigToggleAttrib\fP again toggles back to the options menu. For more
+information see section "ATTRIBUTES MENU AND GROUP ATTRIBUTES".
+.PP
+The \fBConfigScopeMenu\fP ('\fBS\fP') command brings up the scopes menu. For more
+information see section "SCOPES MENU".
+.PP
+Here is a full list of all the available variables. The name in braces is
+the name of the corresponding setting in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP.
+.TP  4
+\fBLange Newsgruppennamen abkürzen (abbreviate_groupname)\fP
+If ON abbreviate long newsgroup names at group selection level and article
+level (if necessary) like this: news.software.readers \->
+n.software.readers \-> n.s.readers \-> n.s.r.  Default is OFF.
+.TP 
+\fBFüge gepostete Artikel zum Filter (add_posted_to_filter)\fP
+If ON add posted articles which start a new thread to filter for
+highlighting follow\-ups. Default is ON.
+.TP 
+\fBFüge 'User\-Agent:'\-header ein (advertising)\fP
+Turn ON advertising in header (\*(rqUser\-Agent:\*(rq). Default is ON.
+.TP 
+\fBÜbersp. multipart/alternative\-Teile (alternative_handling)\fP
+If ON strip multipart/alternative messages automatically. Default is ON.
+.TP 
+\fBZeichen für gelöschte Artikel (art_marked_deleted)\fP
+Zeichen das anzeigt, dass ein Artikel gelöscht wurde. Standard is 'D'.
+.TP 
+\fBZeichen für Artikel im Bereich (art_marked_inrange)\fP
+The character used to show that an article is in a range. Default is '#'.
+.TP 
+\fBZeichen für wiederkehrende Artikel (art_marked_return)\fP
+The character used to show that an article will return as an unread article
+when the group is next entered. Default is '\-'.
+.TP 
+\fBZeichen für wichtige Artikel (art_marked_selected)\fP
+The character used to show that an article/thread is auto\-selected (hot). 
+Default is '*'.
+.TP 
+\fBZeichen für aktuelle Artikel (art_marked_recent)\fP
+The character used to show that an article/thread is recent (not older than
+X days). See also \fBrecent_time\fP. Default is 'o'.
+.TP 
+\fBZeichen für ungelesene Artikel (art_marked_unread)\fP
+The character used to show that an article has not been read. Default is
+\&'+'.
+.TP 
+\fBZeichen für gelesene Artikel (art_marked_read)\fP
+The character used to show that an article was read. Default is ' '.
+.TP 
+\fBZeichen für gekillte Artikel (art_marked_killed)\fP
+The character used to show that an article was killed. Default is 'K'. 
+\fBkill_level\fP must be set accordingly.
+.TP 
+\fBZeichen für gelesene wichtige Art. (art_marked_read_selected)\fP
+The character used to show that an article was hot before it was read. 
+Default is ':'. \fBkill_level\fP must be set accordingly.
+.TP 
+\fBStart des MIME\-Viewers bestätigen (ask_for_metamail)\fP
+If ON \fBtin\fP will ask before using a MIME viewer (\fBmetamail_prog\fP) to
+display MIME messages. This only occurs if a MIME viewer is set. Default is
+OFF.
+.TP 
+\fBSendet Ihnen eine cc und/oder eine blinde cc autom. (auto_cc_bcc)\fP
+Automatically put your name in the \*(rqCc:\*(rq and/or \*(rqBcc:\*(rq field when
+mailing an article. Default is No.
+.TP 
+\fBZeige Thread mit rechter Pfeilt. an (auto_list_thread)\fP
+If ON automatically list thread when entering it using right arrow key. 
+Default is ON.
+.TP 
+\fBAutom. Wiederverbindung zum Server (auto_reconnect)\fP
+Standard ist OFF.
+.TP 
+\fBNutze Archive\-name: zum Speichern (auto_save)\fP
+If ON articles/threads with \*(rqArchive\-name:\*(rq in header will be
+automatically saved with the Archive\-name & part/patch no and post processed
+if \fBpost_process_type\fP is set to something other than 'No'.  Default is
+OFF.
+.TP 
+\fBSpeicher Artikel im Batchmode (\-S) (batch_save)\fP
+If set ON articles/threads will be saved in batch mode when save \&\*(rq\fB\-S\fP\*(rq
+or mail \*(rq\fB\-M\fP, \fB\-N\fP\*(rq is specified on the command line. Default is ON.
+.TP 
+\fBZeigt Minimenü & Posting etiquette (beginner_level)\fP
+If set ON a mini menu of the most useful commands will be displayed at the
+bottom of the screen for each level. Also a short posting etiquette will be
+displayed after composing an article. Default is ON.
+.TP 
+\fBSpeichere NNTP Overview Daten lokal (cache_overview_files)\fP
+If ON, create local copies of NNTP overview files. This can be used to
+considerably speed up accessing large groups when using a slow connection. 
+See also "INDEX FILES". Default is OFF.
+.TP 
+\fBCatchup der Gruppen beim Beenden (catchup_read_groups)\fP
+.\"
+.\" FIXME - I leave this to someone who's using colors
+If set ON the user is asked when quitting if all groups read during the
+current session should be marked read. Default is OFF.
+.TP 
+\fBStandard Hintergrundfarbe (col_back)\fP
+Standard Hintergrundfarbe
+.TP 
+\fBFarbe des Autors (From:) (col_from)\fP
+Farbe des Autors (From:)
+.TP 
+\fBFarbe der Artikelheaderzeilen (col_head)\fP
+Farbe der Artikelheaderzeilen
+.TP 
+\fBFarbe des Hilfstext (col_help)\fP
+Farbe des Hilfstext
+.TP 
+\fBFarbe des inversen Text (Hinterg.) (col_invers_bg)\fP
+Hintergrundfarbe für inversen Text
+.TP 
+\fBFarbe des inversen Text (Vordergr.) (col_invers_fg)\fP
+Vordergrundfarbe für inversen Text
+.TP 
+\fBFarbe der Hervorhebung _Striche_ (col_markdash)\fP
+Color of words emphasized like _this_. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBFarbe der Hervorhebung /Schrägstr./ (col_markslash)\fP
+Color of words emphasized like /this/. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBFarbe der Hervorhebung *Sterne* (col_markstar)\fP
+Color of words emphasized like *this*. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBFarbe der Hervorhebung \-Durchstr.\- (col_markstroke)\fP
+Color of words emphasized like \-this\-. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBFarbe des Minihilfemenü (col_minihelp)\fP
+Farbe des Minihilfemenü
+.TP 
+\fBFarbe des angezeigten Headers (col_newsheaders)\fP
+Farbe des angezeigten Headers
+.TP 
+\fBStandard Vordergrundfarbe (col_normal)\fP
+Standard Vordergrundfarbe
+.TP 
+\fBFarbe der zitierten Zeilen (col_quote)\fP
+Farbe der zitierten Zeilen
+.TP 
+\fBFarbe von zweifach zitierten Zeilen (col_quote2)\fP
+Farbe von zweifach zitierten Zeilen
+.TP 
+\fBFarbe von =>3\-fach zitierten Zeilen (col_quote3)\fP
+Farbe von =>3\-fach zitierten Zeilen
+.TP 
+\fBFarbe des Antwortzählers (col_response)\fP
+Color of response counter. This is the text that says "Response x of y" in
+the article viewer.
+.TP 
+\fBFarbe von Signaturen (col_signature)\fP
+Farbe von Signaturen
+.TP 
+\fBFarbe der hervorgehobenen URLs (col_urls)\fP
+Farbe der hervorgehobenen URLs
+.TP 
+\fBFarbe des wortgetreu darzustellenden Textes (col_verbatim)\fP
+Farbe des wortgetreu darzustellenden Textes
+.TP 
+\fBFarbe der Subjectzeile (col_subject)\fP
+Farbe der Subjectzeile
+.TP 
+\fBFarbe der Textzeilen (col_text)\fP
+Farbe der Textzeilen
+.TP 
+\fBFarbe des Hilfe/Mail\-Zeichens (col_title)\fP
+Farbe des Hilfe/Mail\-Zeichens
+.TP 
+\fBBestätigung erforderlich für (confirm_choice)\fP
+Ask for manual confirmation to protect the user.
+.RS +.5i
+.IP \(bu 3
+.\" TODO: check if all affected commands are marked [after confirmation]
+\fBcommands\fP Ask for confirmation before executing certain dangerous commands
+(e.g., \fBCatchup\fP ('\fBc\fP')). Commands that this affects are marked in this
+manual with '[after confirmation]'. Default is commands & quit.
+.IP \(bu
+\fBquit\fP You'll be asked to confirm that you wish to exit \fBtin\fP when you use
+the \fBQuit\fP ('\fBq\fP') command.
+.IP \(bu
+\fBselect\fP Ask for confirmation before marking all not selected (with
+\fBGroupMarkUnselArtRead\fP ('\fBX\fP') command) articles as read.
+.RE
+.TP 
+\fBDatums Format\-Zeichenkette (date_format)\fP
+.\"
+.\" most of these default_* settings are not available from the menu
+.\" as they are intended for internal use only.
+Format string \fBtin\fP uses for date representation. A description of the
+different format options can be found at \fBstrftime\fP(3).  \fBtin\fP uses
+\fBstrftime\fP(3)  when available and supports most format options in his
+fallback code.  Default is "%a, %d %b %Y %H:%M:%S".
+.TP 
+\fB(default_art_search)\fP
+.TP 
+\fB(default_author_search)\fP
+.TP 
+\fB(default_config_search)\fP
+The last article/author/config option that was searched for.
+.TP 
+\fB(default_filter_days)\fP
+Standard ist 28.
+.TP 
+\fB(default_filter_kill_case)\fP
+Default for quick (1 key) kill filter case.  ON = filter case sensitive, OFF
+= ignore case. Default is OFF.
+.TP 
+\fB(default_filter_kill_expire)\fP
+Default for quick (1 key) kill filter expire.  ON = limit to
+\fBdefault_filter_days\fP, OFF = don't ever expire. Default is OFF.
+.TP 
+\fB(default_filter_kill_global)\fP
+Default for quick (1 key) kill filter global.  ON=apply to all groups,
+OFF=apply to current group. Default is ON.
+.TP 
+\fB(default_filter_kill_header)\fP
+Default for quick (1 key) kill filter header.
+.RS +.5i
+.IP 0 4
+ \*(rqSubject:\*(rq (Groß/Kleinschreibung beachten)
+.IP 1
+ \*(rqSubject:\*(rq (Groß/Kleinschreibung ignorieren)
+.IP 2
+ \*(rqFrom:\*(rq (Groß/Kleinschreibung beachten)
+.IP 3
+ \*(rqFrom:\*(rq (Groß/Kleinschreibung ignorieren)
+.IP 4
+ \*(rqMessage\-ID:\*(rq & alle \*(rqReferences:\*(rq Einträge
+.IP 5
+\&\*(rqMessage\-ID:\*(rq & letzter \*(rqReferences:\*(rq Eintrag
+.IP 6
+ \*(rqMessage\-ID:\*(rq allein
+.IP 7
+ \*(rqLines:\*(rq
+.RE
+.TP 
+\fB(default_filter_select_case)\fP
+Default for quick (1 key) auto\-selection filter case. ON=filter case
+sensitive, OFF=ignore case. Default is OFF.
+.TP 
+\fB(default_filter_select_expire)\fP
+Default for quick (1 key) auto\-selection filter expire.  ON = limit to
+\fBdefault_filter_days\fP, OFF = don't ever expire.  Default is OFF.
+.TP 
+\fB(default_filter_select_global)\fP
+Default for quick (1 key) auto\-selection filter global.  ON=apply to all
+groups OFF=apply to current group. Default is ON.
+.TP 
+\fB(default_filter_select_header)\fP
+Default for quick (1 key) auto\-selection filter header.
+.RS +.5i
+.IP 0 4
+ \*(rqSubject:\*(rq (Groß/Kleinschreibung beachten)
+.IP 1
+ \*(rqSubject:\*(rq (Groß/Kleinschreibung ignorieren)
+.IP 2
+ \*(rqFrom:\*(rq (Groß/Kleinschreibung beachten)
+.IP 3
+ \*(rqFrom:\*(rq (Groß/Kleinschreibung ignorieren)
+.IP 4
+ \*(rqMessage\-ID:\*(rq & alle \*(rqReferences:\*(rq Einträge
+.IP 5
+\&\*(rqMessage\-ID:\*(rq & letzter \*(rqReferences:\*(rq Eintrag
+.IP 6
+ \*(rqMessage\-ID:\*(rq allein
+.IP 7
+ \*(rqLines:\*(rq
+.RE
+.TP 
+\fB(default_goto_group)\fP
+.TP 
+\fB(default_group_search)\fP
+.TP 
+\fB(default_mail_address)\fP
+.TP 
+\fB(default_move_group)\fP
+.TP 
+\fB(default_pattern)\fP
+.TP 
+\fB(default_pipe_command)\fP
+.TP 
+\fB(default_post_newsgroups)\fP
+.TP 
+\fB(default_post_subject)\fP
+.TP 
+\fB(default_range_group)\fP
+.TP 
+\fB(default_range_select)\fP
+.TP 
+\fB(default_range_thread)\fP
+.TP 
+\fB(default_repost_group)\fP
+.TP 
+\fB(default_save_file)\fP
+.TP 
+\fB(default_save_mode)\fP
+.TP 
+\fB(default_select_pattern)\fP
+.TP 
+\fB(default_shell_command)\fP
+.TP 
+\fB(default_subject_search)\fP
+.TP 
+\fBZeige \-> anstatt einer Markierung (draw_arrow)\fP
+Allows groups/articles to be selected by an arrow '\->' if set ON or by
+an highlighted bar if set OFF. Default is OFF.
+.TP 
+\fBAufruf Ihres Editors (editor_format)\fP
+The format string used to create the editor start command with parameters. 
+Default is "%E +%N %F" (i.e., /bin/vi +7 .article).
+.TP 
+\fBAnzeigeauffrischung nach Kommandos (force_screen_redraw)\fP
+Specifies whether a screen redraw should always be done after certain
+external commands. Default is OFF.
+.TP 
+\fBAnzahl der zu holenden Artikel (getart_limit)\fP
+If \fBgetart_limit\fP is > 0 not more than \fBgetart_limit\fP articles/group
+are fetched from the server. If \fBgetart_limit\fP is < 0 \fBtin\fP will start
+fetching articles from your first unread minus absolute value of
+\fBgetart_limit\fP. Default is 0, which means no limit.
+.TP 
+\fBCatchup der Gruppe mit l. Cursor (group_catchup_on_exit)\fP
+If ON catchup group when leaving with the left arrow key. Default is ON.
+.TP 
+\fBZum nächsten ungelesenen Artikel... (goto_next_unread)\fP
+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 
+\fBMax. Länge angezeigter Gruppennamen (groupname_max_length)\fP
+Maximum length of the names of newsgroups to be displayed so that more of
+the newsgroup description can be displayed. Default is 32.
+.TP 
+\fBZeige uue\-Teile als Anhang (hide_uue)\fP
+If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then
+sections of uuencoded data will be shown with a single tag line showing the
+size and filename (much the same as a MIME attachment). If set to 'Hide all'
+then any line that looks like uuencoded data will be folded into a tag
+line.  This is useful when uuencoded data is split across more than one
+article but can also lead to false positives. This setting can also be
+toggled in the article viewer. Default is 'No'.
+.TP 
+\fBExternes inews\-Programm (inews_prog)\fP
+Path, name and options of external \fBinews\fP(1).  If you are reading via NNTP
+the default value is \-\-internal (use built\-in NNTP inews), else it is "inews
+\-h". The article is passed to \fBinews_prog\fP on STDIN via '< article'.
+.TP 
+\fB(info_in_last_line)\fP
+.\" this is missing from the Menu
+If ON, show current group description or article subject in the last line
+(not in the pager and global menu) \- \fBToggleInfoLastLine\fP ('\fBi\fP')  toggles
+setting. This facility is useful as the full width of the screen is
+available to display long subjects. Default is OFF.
+.TP 
+\fBBenutze interaktives Mailprogramm (interactive_mailer)\fP
+Interactive mailreader: if greater than 0 your mailreader will be invoked
+earlier for reply so you can use more of its features (e.g. MIME, pgp,
+\&...). 1 means include headers, 2 means don't include headers (old
+use_mailreader_i=ON option). 0 turns off usage. This option has to suit
+\fBmailer_format\fP. Default is 0.
+.TP 
+.\" TODO: fix menu description
+.\"       mono_mark* currently do allow "Reverse video" even if
+.\"       inverse_okay=FALSE
+\fBInverse Darstellung für die Header (inverse_okay)\fP
+If ON use inverse video for page headers and URL highlighting.  Default is
+ON.
+.TP 
+\fBHalte Fehlschl. in ~/dead.articles (keep_dead_articles)\fP
+If ON keep all failed postings in \fI${TIN_HOMEDIR:\-"$HOME"}/dead.articles\fP
+besides keeping the last failed posting in
+\fI${TIN_HOMEDIR:\-"$HOME"}/dead.article\fP. Default is ON.
+.TP 
+\fBFilter (kill) anwenden auf (kill_level)\fP
+This option controls the processing and display of articles that are
+killed.  There are 3 options:
+.RS +.5i
+.IP 0 3
+\fBKill only unread arts\fP is the 'traditional' behavior of \fBtin\fP. Only
+unread articles are killed once only by marking them read. As filtering only
+happens on unread articles with \fBkill_level\fP set to 0, \fBart_marked_killed\fP
+and \fBart_marked_read_selected\fP are only shown once. When you reenter the
+group the mark will be gone.
+.IP 1
+\fBKill all arts & show with K\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles are threaded as normal but they will be marked with
+\fBart_marked_killed\fP.
+.IP 2
+\fBKill all arts and never show\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles simply does not get displayed at all.
+.RE
+Voreinstellung ist 0 (\fBKillt nur ungelesene Artikel\fP).
+.TP 
+\fBBenutze 8bit Zeichen im Mail Header (mail_8bit_header)\fP
+Allows 8bit characters unencoded in the header of mail message. Default is
+OFF. Turning it ON is effective only if \fBmail_mime_encoding\fP is also set to
+8bit. Leaving it OFF is safe for most users and compliant to Internet Mail
+Standard (\fBRFC5322\fP and \fBRFC2047\fP). Default is OFF.
+.TP 
+\fBMailadresse (und Name) (mail_address)\fP
+User's mail address (and full name), if not username@host. This is used when
+creating articles, sending mail and when \fBpgp\fP(1)  signing.
+.TP 
+\fBMIME\-Kodierung für E\-Mails (mail_mime_encoding)\fP
+MIME encoding of the body in mail message, if necessary (8bit, base64,
+quoted\-printable, 7bit). Default is quoted\-printable.
+.TP 
+\fBEinleitungszeile bei Mailantwort (mail_quote_format)\fP
+Format of quote line when replying (via mail) to an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "In article %M you wrote:"
+.TP 
+\fBMailbox\-Format (mailbox_format)\fP
+Select one of the following mailbox\-formats: MBOXO (default, except for
+SCO), MBOXRD or MMDF (default on SCO). See \fBmbox\fP(5)  for more details on
+MBOXO and MBOXRD and \fBmmdf\fP(5)  for more details about MMDF.
+.TP 
+\fBMail Verzeichnis (maildir)\fP
+The directory where articles/threads are to be saved in \fBmbox\fP(5) 
+format. This feature is mainly for use with the \fBelm\fP(1)  mail program. It
+allows the user to save articles/threads/groups simply by giving '=' as the
+filename to save to.  Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fP.
+.TP 
+\fBAufruf Ihres Mailkommandos (mailer_format)\fP
+.\" TODO: document %S, %T, %M, %F, %U ...
+The format string used to create the mailer command with parameters that is
+used for mailing articles to other people. Default is '%M "%T" < %F'
+(e.g., /bin/mail "iain" < .article). The flexible format allows other
+mailers with different command\-line parameters to be used such as 'elm \-s
+"%S" "%T" < "%F"' (e.g., elm \-s "subject" "iain" < .article) or
+\&'sendmail \-oi \-oem \-t < %F' (e.g. sendmail \-oi \-oem \-t < .article).
+.TP 
+\&\fB'Art. (un)gelesen markieren' ignorie... (mark_ignore_tags)\fP
+When this is ON, the \fBGroupMarkThdRead\fP ('\fBK\fP'), \fBThreadMarkArtRead\fP
+('\fBK\fP'), \fBMarkThdUnread\fP ('\fBZ\fP') at Group level and \fBMarkArtUnread\fP
+('\fBz\fP') at Thread level functions mark just the current article or thread,
+ignoring other tagged, (un)read articles. When OFF, the same function
+presents a menu with choices of the current thread or article, all tagged,
+unread articles, or nothing.
+.TP 
+\fBMark. gesp. Artikel/Threads gelesen (mark_saved_read)\fP
+If ON mark articles that are saved as read. Default is ON.
+.TP 
+\fBMIME\-Viewer (metamail_prog)\fP
+Path, name and options of external \fBmetamail\fP(1)  program used to view
+non\-textual parts of articles.  To use the built\-in viewer, set to
+\-\-internal. This is the default value when \fBmetamail\fP(1)  is not
+installed. Leave it blank if you don't want any automatic viewing of
+non\-textual attachments. The 'V' command can always be used to manually view
+any attachments.  See also \fBask_for_metamail\fP.
+.TP 
+\fBMM_CHARSET (mm_charset)\fP
+Charset supported locally, which is also used for MIME header (charset
+parameter and charset name in header encoding) in mail and news postings. If
+\fBMIME_STRICT_CHARSET\fP is defined at compile time, text in charset other
+than the value of this parameter is considered not displayable and
+represented as '?'. Otherwise, all character sets are regarded as compatible
+with the display. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined. If your system supports \fBiconv\fP(3), this option
+is disabled and you should use \fBmm_network_charset\fP instead.
+.TP 
+\fBMM_NETWORK_CHARSET (mm_network_charset)\fP
+Charset used for posting and MIME headers; replaces \fBmm_charset\fP. 
+Conversion between \fBmm_network_charset\fP and local charset (determined via
+\fBnl_langinfo\fP(3))  is done via \fBiconv\fP(3), if this function is not
+available on your system this option is disabled and you have to use
+\fBmm_charset\fP instead. \fBmm_network_charset\fP is limited to one of the
+following charsets:
+.in +.3i
+US\-ASCII, ISO\-8859\-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8\-{R,U,RU}
+EUC\-{CN,JP,KR,TW}, ISO\-2022\-{CN,CN\-EXT,JP,JP\-1,JP\-2}, Big5, UTF\-8
+.in -.3i
+Not all values might work on your system, see \fBiconv_open\fP(3)  for more
+details. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined.
+.TP 
+\fBHervorhebungsattr. _Unterstriche_ (mono_markdash)\fP
+Character attribute of words emphasized like _this_. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBHervorhebungsattr. /Schrägstriche/ (mono_markslash)\fP
+Character attribute of words emphasized like /this/. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBHervorhebungsattribute *Sterne* (mono_markstar)\fP
+Character attribute of words emphasized like *this*. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBHervorhebungsattr. \-Durchstreich.\- (mono_markstroke)\fP
+Character attribute of words emphasized like \-this\-. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fB(newnews)\fP
+These are internal timers used by \fBtin\fP to keep track of new newsgroups. 
+Do not change them unless you understand what they are for.
+.TP 
+\fBor *) (news_headers_to_display\fP
+Which news headers you wish to see. If you want to see _all_ the headers,
+place an '*' as this value. This is the only way a wildcard can be used.  If
+you enter 'X\-' as the value, you will see all headers beginning with 'X\-'
+(like X\-Alan or X\-Pape). You can list more than one by delimiting with
+spaces. Not defining anything turns off this option.
+.TP 
+\fBZeige folgende Header nicht an (news_headers_to_not_display)\fP
+Same as \fBnews_headers_to_display\fP except it denotes the opposite. An
+example of using both options might be if you thought X\- headers were A Good
+Thing(tm), but thought Alan and Pape were miscreants... well then you would
+do something like this: \fInews_headers_to_display=X\-\fP
+\fInews_headers_to_not_display=X\-Alan X\-Pape\fP.  Not defining anything turns
+off this option.
+.TP 
+\fBEinleitungszeile beim Antworten (news_quote_format)\fP
+Format of quote line when posting/following up an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "%F wrote:".
+.TP 
+\fBUnicode Normalisierungsart (normalization_form)\fP
+The normalization form \fBtin\fP should use to normalize unicode input.  The
+possible values are:
+.RS +.5i
+.IP 0 3
+\fBNone\fP: keine Normalisierung
+.IP 1
+\fBNFKC\fP: Compatibility Decomposition, followed by Canonical Composition
+.IP 2
+\fBNFKD\fP: Compatibility Decomposition
+.IP 3
+\fBNFC\fP: Canonical Decomposition, followed by Canonical Composition
+.IP 4
+\fBNFD\fP: Canonical Decomposition
+.RE
+Some normalization modes are only available if they are supported by the
+library \fBtin\fP uses to do the normalization. Default is NFKC.
+.TP 
+\fBSetze Cursor auf ersten ungel. Art. (pos_first_unread)\fP
+If ON put cursor at first unread article in group otherwise at last
+article. Default is ON.
+.TP 
+\fBBenutze 8bit\-Zeichen im Newsheader (post_8bit_header)\fP
+Allows 8bit characters unencoded in the header of a news article, if set
+this also disables the generation of MIME\-headers when they are usually
+required. Default is OFF. Only enacted if \fBpost_mime_encoding\fP is also set
+to 8bit. In a number of local hierarchies where 8bit characters are used,
+using unencoded (raw)  8bit characters in header is acceptable and sometimes
+even recommended so that you need to check the convention adopted in the
+local hierarchy of your interest to determine what to do with this and
+\fBpost_mime_encoding\fP.
+.TP 
+\fBMIME\-Kodierung in Newsartikeln (post_mime_encoding)\fP
+MIME encoding of the body in news message, if necessary. (8bit, base64,
+quoted\-printable, 7bit). Default is 8bit, which leads to no encoding. base64
+and quoted\-printable are usually undesired on usenet.
+.TP 
+\fBNachbearbeitete Artikel anzeigen (post_process_view)\fP
+If ON, then \fBtin\fP will start an appropriate viewer program to display any
+files that were post processed and uudecoded. The program is determined
+using the mailcap file. Default is ON.
+.TP 
+\fBNachbearbeiten gespeichert. Artikel (post_process_type)\fP
+This specifies whether to perform post processing on saved articles.  The
+following values are allowed:
+.RS +.5i
+.IP 0 3
+\fBNo\fP (default), no post processing is done.
+.IP 1
+\fBShell archives\fP, unpacking of multi\-part \fBshar\fP(1)  files only.
+.IP 2
+\fBYes\fP, binary attachments and data will be decoded and saved.
+.RE
+.TP 
+\fBGepostete Artikel speichern in (posted_articles_file)\fP
+Keep posted articles in
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/\fP\fBposted_articles_file\fP.  If no filename is
+set then postings will not be saved.  Default is 'posted'.
+.TP 
+\fBAlle Header beim Drucken ausgeben (print_header)\fP
+If ON, then the full article header is sent to the printer. Otherwise only
+the \*(rqSubject:\*(rq and \*(rqFrom:\*(rq fields are output. Default is OFF.
+.TP 
+\fBDruckprogramm mit Optionen (printer)\fP
+The printer program with options that is to be used to print articles.  The
+default is \fBlpr\fP(1)  for BSD machines and \fBlp\fP(1)  for SysV
+machines. Printing from \fBtin\fP may have been disabled by the System
+Administrator.
+.TP 
+\fBBearbeite nur ungelesene Artikel (process_only_unread)\fP
+If ON only save/print/pipe/mail unread articles (tagged articles excepted). 
+Default is OFF.
+.TP 
+\fBLeeres Fup'2 im Editor anzeigen (prompt_followupto)\fP
+If ON show empty \*(rqFollowup\-To:\*(rq header when editing an article. Default is
+OFF.
+.TP 
+\fBZitatzeichen (quote_chars)\fP
+The character used in quoting included text to article followups and mail
+replies. The '_' character represents a blank character and is replaced with
+\&' ' when read. Default is '>_'.
+.TP 
+\fBZitierverhalten (quote_style)\fP
+How articles should be quoted when following up or replying to them. There
+are a number of things that can be done: empty lines can be quoted,
+signatures can be quoted and quote_chars can be compressed when quoting
+multiple times (for example, '> > >' will be turned into
+\&'>>>'). The default is to compress quotes, and to quote empty
+lines.
+.br
+When you are viewing an article in raw mode ('\fB^H\fP'), and follow up or
+reply to it, the signature will be quoted even if it would otherwise not
+be.  If \fBshow_signatures\fP is off, then the signature will never be quoted.
+.TP 
+\fBRegulärer Ausd. für zit. Zeilen (quote_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote\fP. If \fBquote_regex\fP is blank, then
+\fBtin\fP uses a built\-in default.
+.TP 
+\fBReg. Ausd. für zweifach zitierte Z. (quote_regex2)\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote2\fP. If \fBquote_regex2\fP is blank, then
+\fBtin\fP uses a built\-in default.
+.TP 
+\fBReg. Ausd. für >=3\-fach zitierte Z. (quote_regex3)\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote3\fP. If \fBquote_regex3\fP is blank, then
+\fBtin\fP uses a built\-in default.
+.TP 
+\fBArtikel Neuheitszeit\-Limit (recent_time)\fP
+If set to 0, this feature is deactivated, otherwise it means the number of
+days. Default is 2.
+.TP 
+\fBBiDi wiedergeben (render_bidi)\fP
+If ON \fBtin\fP does the rendering of bi\-directional text. If OFF \fBtin\fP leaves
+the rendering of bi\-directional text to the terminal. Default is OFF.
+.TP 
+\fBActive alle ... Sekunden neu lesen (reread_active_file_secs)\fP
+The news \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file is
+reread at regular intervals to show if any new news has arrived. Default is
+1200. Setting this to 0 will disable this feature.
+.TP 
+\fBVerz. um Art/Threads zu speichern (savedir)\fP
+Directory where articles/threads are saved. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP.
+.TP 
+\fBkill) (score_limit_kill\fP
+If the score of an article is below or equal this value the article gets
+marked as killed.
+.TP 
+\fBselect) (score_limit_select\fP
+If the score of an article is above or equal this value the article gets
+marked as hot.
+.TP 
+\fBBewertung für gekillte Artikel (score_kill)\fP
+Score of an article which should be killed, this must be <=
+\fBscore_limit_kill\fP.
+.TP 
+\fBBewertung für wichtige Artikel (score_select)\fP
+Score of an article which should be marked hot, this must be >=
+\fBscore_limit_select\fP.
+.TP 
+\fBBlättere Artikel um ... Zeilen (scroll_lines)\fP
+The number of lines that will be scrolled up/down in the article pager when
+using cursor\-up/down. The default is 1 (line\-by\-line). Set to 0 to get
+traditional tin page\-by\-page scrolling. Set to \-1 to get page\-by\-page
+scrolling where the top/bottom line is carried over onto the next page. 
+This setting supersedes show_last_line_prev_page=ON. Set to \-2 to get
+half\-page scrolling. This setting supersedes full_page_scroll=OFF.
+.TP 
+\fBIm Gruppenmenü, zeige Autor an nach (show_author)\fP
+Which information about the author should be shown. Default is 2, authors
+full name.
+.RS +.5i
+.IP 0 3
+\fBNichts\fP, nur die \*(rqSubject:\*(rq Zeile wird angezeigt.
+.IP 1
+\fBAddress\fP, \*(rqSubject:\*(rq line & the address part of the \*(rqFrom:\*(rq line are
+displayed.
+.IP 2
+\fBFull Name\fP, \*(rqSubject:\*(rq line & the authors full name part of the
+\&\*(rqFrom:\*(rq line are displayed (default).
+.IP 3
+\fBAddress and Name\fP, \*(rqSubject:\*(rq line & all of the \*(rqFrom:\*(rq line are
+displayed.
+.RE
+.TP 
+\fBZeige Beschreibung der Newsgruppen (show_description)\fP
+If ON show a short group description text after newsgroup name at the group
+selection level. The \*(rq\fB\-d\fP\*(rq command\-line flag will override the setting
+and turn descriptions off. The text used is taken from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP file and if supported (requires
+\fBtin\fP to be build with mh\-mail\-handling support) from
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP for mailgroups. Default is ON.
+.TP 
+\fBZeige Zeilenz./Bewert. in Übersicht (show_info)\fP
+Which information about the thread or article should be shown. Default is 1,
+show only the line count.
+.RS +.5i
+.IP 0 3
+\fBNichts\fP. Keine weiteren Informationen werden angezeigt.
+.IP 1
+\fBLines\fP, in article listing the line count of an article will be displayed
+and in thread listing the line count of first (unread) article will be
+displayed.
+.IP 2
+\fBScore\fP, in article listing the score of an article will be displayed and
+in thread listing the score of the thread will be displayed \- see also
+\fBthread_score\fP.
+.IP 3
+\fBZeilen und Bewertung\fP, Zeilenzahl und Bewertung zusätzlich anzeigen.
+.RE
+.TP 
+\fBZeige nur ungelesene Artikel (show_only_unread_arts)\fP
+If ON show only new/unread articles otherwise show all articles.  Default is
+ON.
+.TP 
+\fBZeige nur Gruppen mit ungel. Art. (show_only_unread_groups)\fP
+If ON show only subscribed groups that contain unread articles. Default is
+OFF.
+.TP 
+\fBZeige Signaturen an (show_signatures)\fP
+If OFF don't show signatures when displaying articles.  Default is ON.
+.TP 
+\fBTrenne Sig mit '\en\-\- \en' ab (sigdashes)\fP
+If ON prepend the signature with sigdashes. Default is ON.
+.TP 
+\fBErzeuge Signatur aus Pfad/Kommando (sigfile)\fP
+The path that specifies the signature file to use when posting, following up
+to or replying to an article. If the path is a directory then the signature
+will be randomly generated from files that are in the specified
+directory. If the path starts with a ! the program the path points to will
+be executed to generate a signature. \fBtin\fP will pass the name of the
+current newsgroup as argument to the program. \-\-none will suppress any
+signature.  Default is \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP.
+.TP 
+\fBSignatur beim Reposten anhängen (signature_repost)\fP
+If ON add signature to reposted articles. Default is ON.
+.TP 
+\fBReg. für /Schrägst./ Hervorhebungen (slashes_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markslash\fP or \fBmono_markslash\fP. If
+\fBslashes_regex\fP is blank, then \fBtin\fP uses a built\-in default.
+.TP 
+\fBSortiere Artikel nach (sort_article_type)\fP
+This specifies how articles should be sorted. Sort by ascending Date (6) is
+the default. The following sort types are allowed:
+.RS +.5i
+.IP 0 3
+\fBNothing\fP, don't sort articles.
+.IP 1
+\fBSubject: (absteigend)\fP, Artikel absteigend nach \*(rqSubject:\*(rq sortieren.
+.IP 2
+\fBSubject: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqSubject:\*(rq sortieren.
+.IP 3
+\fBFrom: (absteigend)\fP, Artikel absteigend nach \*(rqFrom:\*(rq sortieren.
+.IP 4
+\fBFrom: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqFrom:\*(rq sortieren.
+.IP 5
+\fBDate: (absteigend)\fP, Artikel absteigend nach \*(rqDate:\*(rq sortieren.
+.IP 6
+\fBDate: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqDate:\*(rq sortieren.
+.IP 7
+\fBScore (absteigend)\fP, Artikel absteigend nach Score sortieren.
+.IP 8
+\fBScore (aufsteigend)\fP, Artikel aufsteigend nach Score sortieren.
+.IP 9
+\fBLines: (absteigend)\fP, Artikel absteigend nach \*(rqLines:\*(rq sortieren.
+.IP 10
+\fBLines: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqLines:\*(rq sortieren.
+.RE
+.TP 
+\fBSortiere Threads nach (sort_threads_type)\fP
+This specifies how threads will be sorted. Sort by descending Score (1) is
+the default. The following sort types are allowed:
+.RS +.5i
+.IP 0 3
+\fBNothing\fP, don't sort threads.
+.IP 1
+\fBScore (descending)\fP, sort threads by filtering score descending (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 
+\fBSpamfallenwarnung in Adresse (spamtrap_warning_addresses)\fP
+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
+these strings. The matching is case\-insensitive. Example:
+.sp
+\fIspam,delete,remove\fP
+.TP 
+\fBRegu. A. für *Stern* Hervorhebungen (stars_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markstar\fP or \fBmono_markstar\fP. If
+\fBstars_regex\fP is blank, then \fBtin\fP uses a built\-in default.
+.TP 
+\fBStarte Editor mit Einrückung (start_editor_offset)\fP
+Set ON if the editor used for posting, follow\-ups and bug reports has the
+capability of starting and positioning the cursor at a specified line within
+a file. Default is ON.
+.TP 
+\fBLeerzeichen am Zeilenende entfernen (strip_blanks)\fP
+.\" only done in select/thread level, not in group level (nor in the pager)
+.\" IMHO we should remove it
+Strips the blanks from the end of each line therefore speeding up the
+display when reading on a slow terminal or via modem. Default is ON.
+.TP 
+\fBLösche nicht vorhan. G. aus newsrc (strip_bogus)\fP
+Bogus groups are groups that are present in your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file that no longer exist on the news
+server. There are 3 options. 0 means do nothing & always keep bogus groups. 
+1 means bogus groups will be permanently removed. 2 means that bogus groups
+will appear on the Group Selection Menu, prefixed with a 'D'. This allows
+you to unsubscribe from them as and when you wish. Default is 0 (Always
+Keep).
+.TP 
+\fBNur abonnierte Gruppen in newsrc (strip_newsrc)\fP
+If ON, then unsubscribed groups will be permanently removed from your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file. Default is OFF.
+.TP 
+\fBReg. für \-Durchstr.\- Hervorhebungen (strokes_regex)\fP
+A regular expression that will be applied when reading articles. All
+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 
+\fBNä.ungel.\-kein Abbr. am Listenende? (wrap_on_next_unread)\fP
+If enabled a search for the next unread article will wrap around all
+articles to find also previous unread articles. If disabled the search stops
+at the end of the thread list. Default is ON.
+.TP 
+\fBWandle TeX\-Umlaute automatisch um (tex2iso_conv)\fP
+If ON, show "a as Umlaut\-a, etc. Default is OFF. This behavior can also be
+toggled in the article viewer via \fBPageToggleTex2iso\fP ('\fB"\fP').
+.TP 
+\fBThreade Artikel anhand (thread_articles)\fP
+Defines which threading method to use. It's possible to set the threading
+type on a per group basis by setting the group attribute variable
+\fBthread_arts\fP to 0 \- 4 in the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP. (See also "GROUP ATTRIBUTES".) 
+The default is Both Subject and References.  The choices are:
+.RS +.5i
+.IP 0 3
+\fBNone\fP, don't thread.
+.IP 1
+\fBSubject\fP, thread on \*(rqSubject:\*(rq only.
+.IP 2
+\fBReferences\fP, thread on \*(rqReferences:\*(rq only.
+.IP 3
+\fBBoth Subject and References\fP, thread on \*(rqReferences:\*(rq then
+\&\*(rqSubject:\*(rq (default).
+.IP 4
+\fBMultipart Subject\fP, thread multipart articles on \*(rqSubject:\*(rq.
+.IP 5
+\fBPercentage Match\fP, thread base upon a partial character match on
+\&\*(rqSubject:\*(rq.
+.RE
+.TP 
+\fBCatchup mit der linken Cursort. (thread_catchup_on_exit)\fP
+If ON catchup group/thread when leaving with the left arrow key. Default is
+ON.
+.TP 
+\fBProzentualer Subject Vergleich (thread_perc)\fP
+How closely the subjects must match for two threads to be considered part of
+the same thread. This is a percentage and the default if 75%.
+.TP 
+\fBBewertung eines Threads (thread_score)\fP
+How the total score of a thread is computed. Default is 0, the maximum score
+in this thread.
+.RS +.5i
+.IP 0 3
+\fBMax\fP, the maximum score in this thread.
+.IP 1
+\fBSum\fP, the sum of all scores in this thread.
+.IP 2
+\fBAverage\fP, the average score in this thread.
+.RE
+.TP 
+\fBVerwende Umschreibungen (translit)\fP
+If ON append //TRANSLIT to the first argument of \fBiconv_open\fP(3)  to enable
+transliteration. This means that when a character cannot be represented in
+the target character set, it can be approximated through one or several
+similarly looking characters. On systems where this extension doesn't exist,
+this option is disabled. Default is OFF.
+.TP 
+\fBHow to treat blank lines (trim_article_body)\fP
+Allows you to select how \fBtin\fP treats blank lines in article bodies. 
+Default is 0. This option does not affect lines within verbatim blocks.
+.RS +.5i
+.IP 0 3
+\fBDon't trim article body\fP, do nothing.
+.IP 1
+\fBFührende Leerzeilen überspringen\fP.
+.IP 2
+\fBAbschliessende Leerzeilen überspr.\fP.
+.IP 3
+\fBSkip leading and trailing blank l.\fP, skip leading and trailing blank
+lines.
+.IP 4
+\fBCompact multiple between text\fP, replace multiple blank lines between
+textblocks with one blank line.
+.IP 5
+\fBCompact multiple and skip leading\fP, 4 + 1
+.IP 6
+\fBCompact multiple and skip trailing\fP, 4 + 2
+.IP 7
+\fBCompact mltpl., skip lead. & trai.\fP, 4 + 3
+.RE
+.TP 
+\fBReg. für _Unterstr._ Hervorhebungen (underscores_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markdash\fP or \fBmono_markdash\fP. If
+\fBunderscores_regex\fP is blank, then \fBtin\fP uses a built\-in default.
+.TP 
+\fBEntferne ~/.article nach dem posten (unlink_article)\fP
+If ON remove \fI~/.article\fP after posting. Default is ON.
+.TP 
+\fBÖffne URLs mit ... (url_handler)\fP
+The program that will be run when launching URL's in the article viewer
+using \fBPageViewUrl\fP ('\fBU\fP'). The actual URL will be appended to this. 
+Default is \fBurl_handler.pl %s\fP.
+.TP 
+\fBURL\-Hervorhebung im Artikel (url_highlight)\fP
+Enable highlighting URLs in message body. Default is ON.
+.TP 
+\fBBenutze ANSI\-Farben (use_color)\fP
+If enabled \fBtin\fP uses ANSI\-colors. Default is OFF.
+.TP 
+\fBScrollt. vom Nummernblock nutzen (use_keypad)\fP
+Standard ist OFF.
+.TP 
+\fBMaus in xterm nutzen (use_mouse)\fP
+Allows the mouse button support in a \fBxterm\fP(1x)  to be enabled/disabled. 
+Default is OFF.
+.TP 
+\&\fB\*(rqX\-Face:\*(rqs mit slrnface Anzeigen (use_slrnface)\fP
+If enabled \fBtin\fP uses \fBslrnface\fP(1)  to interpret the \*(rqX\-Face:\*(rq
+header. For this option to have any effect, \fBtin\fP must be running in an
+\fBxterm\fP(1x)  and \fBslrnface\fP(1)  must be in your $\fBPATH\fP. Default is OFF.
+.TP 
+\fBUse UTF\-8 graphics (utf8_graphics)\fP
+If ON use UTF\-8 characters for indicator ('\->'), thread/attachment tree
+and ellipsis ('...'). Default is OFF.
+.TP 
+\fBReg. Ausd. für den Anfang e. wortgetreuen Textblock (verbatim_begin_regex)\fP
+A regular expression that tin will use to find the begin of a verbatim
+block.
+.TP 
+\fBReg. Ausd. für das Ende eines wortgetreuen Textblocks (verbatim_end_regex)\fP
+A regular expression that tin will use to find the end of a verbatim block.
+.TP 
+\fBWortgetreue Textblöcke erkennen (verbatim_handling)\fP
+If ON verbatim blocks will be detected. Default is ON.
+.TP 
+\fBWildcardprüfung (wildcard)\fP
+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. 
+Setting this to 1 allows you to use \fBperl\fP(1)  compatible regular
+expressions \fBpcre\fP(3)  (see also \fBperlre\fP(1)  and \fBpcrepattern\fP(3)).  You
+will probably want to update your filter file if you use this regularly. 
+NB: Newsgroup names will always be matched using the wildmat notation.
+.TP 
+\fBAnstelle der Markierung anzeigen (word_h_display_marks)\fP
+Should the leading and ending stars, slashes, strokes and dashes also be
+displayed, even when they are highlighting marks?
+.RS +.5i
+.IP 0 3
+\fBnein\fP
+.IP 1
+ja, \fBMarkierung\fP anzeigen
+.IP 2
+ein \fBLeerzeichen\fP ausgeben
+.RE
+.TP 
+\fBWort\-Hervorhebung im Artikel (word_highlight)\fP
+Enable word highlighting. See \fBword_h_display_marks\fP for the options
+available. If \fBuse_color\fP is enabled the colors specified in
+\fBcol_markdash\fP, \fBcol_markslash\fP, \fBcol_markstar\fP and \fBcol_markstroke\fP are
+used for word highlighting else the character attributes specified in
+\fBmono_markdash\fP, \fBmono_markslash\fP, \fBmono_markstar\fP and \fBmono_markstroke\fP
+are used. Default is ON.
+.TP 
+\fBZeilen umbrechen nach (wrap_column)\fP
+Sets the column at which a displayed article body should be wrapped.  If
+this value is equal to 0, it defaults to the current screen width.  If this
+value is greater than your current screen width the part off\-screen is not
+displayed. Thus setting this option to a large value can be used to disable
+wrapping. If this value is negative the wrap margin is the current screen
+width plus the given value (as long as the result is still positive,
+otherwise it will fall back to the current screen width). Default is 0,
+wrapping at the current screen width.
+.TP 
+\fBEinleitungszeile beim Crossposten (xpost_quote_format)\fP
+.\"
+.\"
+Format is the same as for \fBnews_quote_format\fP, this is used when answering
+to a crossposting to several groups with no \*(rqFollowup\-To:\*(rq set.
+.SS "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
+\fBtin\fP allows certain attributes to be set on a per group basis. If it
+exists, the global attributes file, \fI${TIN_LIBDIR:\-NEWSLIBDIR}/attributes\fP
+is read. After that, the user's own attributes file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP is read.  The global attributes
+file is useful for distributing system\-wide defaults to new users who have
+no private attributes file yet.
+.PP
+Note that the \fIscope=<grouplist>\fP line has to be specified before
+the attributes are specified for that list. All attributes are set to a
+reasonable default so you only have to specify the attribute that you want
+to change (e.g., savedir). All toggle attributes are set by specifying
+ON/OFF. Otherwise, these function exactly the same as their global
+equivalents. For more details see \fBtin\fP(5).
+.PP
+Attributes can also be changed from the attributes menu which can be
+accessed by \fBConfigToggleAttrib\fP ('\fB<TAB>\fP') from the options menu
+or \fBScopeSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') from the scopes menu.  The
+attributes menu looks and behaves very similar to the options menu. The
+title shows the current scope. Attributes set in the current scope are
+marked with '\+' to the left of the attributes number.
+.PP
+.\"
+.\"
+Besides the keys for moving around and changing values known from the
+options menu the attributes menu provides the following command:
+\fBConfigResetAttrib\fP ('\fBr\fP') which resets an attribute to a default value.
+.SS "SCOPES MENU"
+The scopes menu (accessible from the options menu with \fBConfigScopeMenu\fP
+('\fBS\fP')) shows all scopes read from the global and local attributes file. 
+Scopes from the global attributes file are marked with '!' to the left of
+the scope number. Delete/rename/move are not possible with those scopes.
+.PP
+.\"
+.\"
+In addition to the common moving keys the following commands are available:
+\fBScopeSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') enter the attributes menu for
+the current scope, \fBScopeEditAttributesFile\fP ('\fBE\fP') edit the local
+attributes file, \fBScopeAdd\fP ('\fBa\fP') add a new scope, \fBScopeDelete\fP
+('\fBd\fP') delete the current scope, \fBScopeMove\fP ('\fBm\fP') move the current
+scope to a new position, \fBScopeRename\fP ('\fBr\fP') rename the current
+scope. \fBToggleHelpDisplay\fP ('\fBH\fP') toggles the help mini menu at the
+bottom of the screen.
+.SS "ARTIKEL FILTERN"
+.\" FIXME - add scoring description
+When there is a subject or an author which you are either very interested
+in, or find completely uninteresting, you can easily instruct \fBtin\fP to
+\fIauto\-select\fP or \fIauto\-kill\fP articles that match \fIrules\fP that you
+specify. This can be anything from the name of the author to the number of
+lines in an article.
+.PP
+When \fBtin\fP starts up the user's kill\-file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP (see also \fBtin\fP(5))  is read. Each
+time a newsgroup is entered the rules are applied and articles killed or
+selected when they meet certain criteria.
+.PP
+The degree to which rules are applied depend on the \fBkill_level\fP tinrc
+setting. By default killed articles will only be marked read. Adjust
+\fBkill_level\fP for more aggressive processing. Articles that match an
+auto\-selection rule are marked with a \*(rq*\*(rq.
+.PP
+Filtering rules can be manually entered into
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP (but don't do this whilst running
+\fBtin\fP else you will lose your changes) or by using an on\-screen menu within
+\fBtin\fP.
+.PP
+The filtering capabilities of \fBtin\fP have been significantly enhanced over
+previous versions to include scoring and better pattern matching. It is
+recommended that you read the file \fIfiltering\fP in the \fBtin\fP documentation
+directory. This file can also be read online at
+<http://www.tin.org/filtering.txt>.
+.PP
+.\" FIXME - Next paragraph is out of date
+.\"
+.\"
+The on\-screen filtering menu is accessed by pressing '\fB^K\fP' at the Group
+and Article levels. It allows the user to kill or select an article that
+matches the current \*(rqSubject:\*(rq line, \*(rqFrom:\*(rq line or a string entered by
+the user. The user entered string can be applied to the \*(rqSubject:\*(rq or
+\&\*(rqFrom:\*(rq lines of an article. The kill description can be limited to the
+current newsgroup or it can apply to all newsgroups. Once entered the user
+can abort the command and not save the kill description, edit the kill file
+or save the kill description.
+.SS "POSTING ARTICLES"
+\fBtin\fP allows posting of articles, follow\-up to already posted articles and
+replying direct through mail to the author of an article.
+.PP
+Use the \fBPost\fP ('\fBw\fP') command to post an article to a newsgroup.  After
+entering the post subject the default editor (i.e., \fBvi\fP(1))  or the editor
+specified by the $\fBVISUAL\fP or $\fBEDITOR\fP environment variable will be
+started and the article can be entered. To crosspost articles simply add a
+comma and the name of the newsgroup(s) to the end of the \*(rqNewsgroups:\*(rq
+line at the beginning of the article. After saving and exiting the editor
+you are asked if you wish to a)bort posting the article, e)dit the article
+again or p)ost the article to the specified newsgroup(s).
+.PP
+Use the \fBDisplayPostHist\fP ('\fBW\fP') command to display a history of the
+articles you have posted. The date the article was posted, which newsgroups
+the article was posted to and the articles subject line are displayed.
+.PP
+Use the \fBPageFollowupQuote\fP ('\fBf\fP'), \fBPageFollowup\fP ('\fBF\fP')  or
+\fBPageFollowupQuoteHeaders\fP ('\fB^W\fP') command to post a follow\-up article to
+an already posted article. The \fBPageFollowupQuote\fP command will copy the
+text of the original article into the editor. The
+\fBPageFollowupQuoteHeaders\fP command will copy the text and all headers of
+the original article into the editor. The editing procedure is the same as
+when posting an article with the \fBPost\fP ('\fBw\fP') command.
+.PP
+.\"
+.\"
+Use the \fBPageReplyQuote\fP ('\fBr\fP'), \fBPageReply\fP ('\fBR\fP') or
+\fBPageReplyQuoteHeaders\fP ('\fB^E\fP') command to reply direct through mail to
+the author of an already posted article. The \fBPageReplyQuote\fP command will
+copy the text of the original article into the editor. The
+\fBPageReplyQuoteHeaders\fP command will copy the text and all headers of the
+original article into the editor. The editing procedure is the same as when
+posting an article with the \fBPost\fP ('\fBw\fP') command. After saving and
+exiting the editor you are asked if you wish to abort sending the article
+via \fBPostAbort\fP ('\fBa\fP'), edit the article again via \fBPostEdit\fP ('\fBe\fP')
+or send the article to the author via \fBPostSend\fP ('\fBs\fP').
+.SS "EINLEITUNGSZEILE ANPASSEN"
+When posting a followup to an article or replying direct to the author of an
+article via email the text of the article can be quoted. The beginning of
+the quoted text can contain information about the quoted article (e.g., Name
+and the Message\-ID of the article). To allow for different situations
+certain information from the article can be used in the quoted string. The
+following variables are expanded if found in the tinrc variables
+\fBmail_quote_format\fP, \fBnews_quote_format\fP or \fBxpost_quote_format\fP:
+.RS
+.nf
+.ta \w'%A  'u +\w'Mailadresse'u
+\fB%A\fP	Mailadresse
+\fB%D\fP	Datum (benutzt \fBdate_format\fP)
+\fB%F\fP	Name und Adresse (%N <%A>)
+\fB%G\fP	Groupname
+\fB%M\fP	Message\-ID
+\fB%N\fP	Name des Autors
+\fB%C\fP	Vorname des Autors
+\fB%I\fP	Initialen des Autor
+.fi
+.RE
+z. B.
+.RS
+.nf
+\f(CWmail_quote_format=Am %D in %G schrieben Sie:
+news_quote_format=In %M schreib %F:\fP
+.fi
+.RE
+ergäbe folgendes:
+.RS
+.nf
+\f(CWAm 21. Sept 1993 9:45:51 \-0400 in alt.sources schrieben Sie:
+In <abcINN123@example.org> schreib Joe Bar <joe@example.org>:\fP
+.fi
+.RE
+.\"
+.\"
+The quoted text section of an article is marked by a preceding quote string
+at the beginning of each quoted line. The default quote string is set to
+\&'>_'. The default can be changed by setting the tinrc variable
+\fBquote_chars\fP to ones own preference. (Note that '_' underline is used to
+represent a space).
+.SS "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"
+The command interface to \fBGroupMail\fP, \fBPageMail\fP, \fBPostMail\fP or
+\fBThreadMail\fP ('\fBm\fP'), \fBPipe\fP ('\fB|\fP'), \fBPrint\fP ('\fBo\fP'), \fBPageRepost\fP
+or \fBGroupRepost\fP ('\fBx\fP') and \fBGroupSave\fP, \fBPageSave\fP or \fBThreadSave\fP
+('\fBs\fP' and \fBGroupAutoSave\fP, \fBPageAutoSave\fP or \fBThreadAutoSave\fP '\fBS\fP')
+articles is the same for ease of use.
+.PP
+Auto\-saving with \fB*AutoSave\fP ('\fBS\fP') is a special case and operates only
+on marked articles. They will processed without any further prompting
+according to the default save parameters defined in tinrc or by any
+attributes set for the current group.
+.PP
+Otherwise, the initial prompt will ask you to select which article, thread,
+hot (auto\-selected), regex pattern, tagged articles you wish to mail, pipe
+etc.
+.PP
+Tagged articles must have already been tagged with a \fB*Tag\fP ('\fBt\fP') 
+command. All tagged articles can be untagged by a \fB*Untag\fP ('\fBU\fP')  untag
+command.
+.PP
+If a regex pattern is selected you are asked to enter a pattern (e.g., to
+match all articles subject lines containing 'net News' you enter "net
+News"). Any articles that match the entered expression will be mailed, piped
+etc. See also the \fBwildcard\fP tinrc variable for advanced pattern matching
+options.
+.PP
+Various expansion characters are recognized when entering the directory and
+file to save to. Environment variables (prefixed with '$') and user home
+directories (prefixed by '~' or '~username') can be specified.  Environment
+variables can themselves contain other special characters.
+.PP
+To save articles to a mailbox enter '=<mailbox name>' when asked for
+the save filename. If you enter just '=' then articles will be saved to a
+mailbox with the name of the current newsgroup (eg, alt.sources).  See
+\fBmaildir\fP.
+.PP
+To save in savedir/<news.group.name>/<filename> format enter
+\&'+<filename>'.  Environment variables are allowed within a filename
+(e.g., \fI$SOURCES/dir/filename\fP). See \fBsavedir\fP.
+.PP
+.\"
+.\"
+When saving articles you can specify whether the saved files should be post
+processed. A default process type can be set via \fBpost_process_type\fP.
+.SS "AUTOMATISCHES MAILEN UND SPEICHERN VON UNGELESENEN ARTIKELN"
+\fBtin\fP allows new/unread news articles to be mailed (\*(rq\fB\-M\fP\*(rq and
+\&\*(rq\fB\-N\fP\*(rq option) or saved (\*(rq\fB\-S\fP\*(rq option) in batch mode for later
+reading. Useful when going on holiday and you don't want to return and find
+that expire has removed a whole load of unread articles. Best to run via
+\fBcron\fP(1)  everyday while away, after which you will be mailed a report of
+which articles were mailed/saved from which newsgroups and the total number
+of articles mailed/saved. Articles are saved in a private news structure
+under your <savedir> directory (default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP). Be careful of using this option if you
+read a lot of groups because you could overflow your file system.
+.PP
+When using \*(rq\fB\-S\fP\*(rq together with a given directory to save to (\*(rq\fB\-s\fP\*(rq
+option), the same directory must be specified when reading the articles by
+\&\*(rq\fB\-R\fP\*(rq.
+.PP
+If you only want to save some of your groups use the \fBbatch_save\fP tinrc
+variable. Set to ON or OFF in tinrc to enable/disable saving of all groups
+and then use the \fBbatch_save\fP attribute to fine tune which groups you want
+to have saved. For example, if you want to save most of your groups, then
+set \fBbatch_save\fP to ON in tinrc and selectively turn off the ones you don't
+want using attributes.
+.PP
+.TP  2i
+\fBtin \-M iain \-c \-f newsrc.mail\fP
+(mail any unread articles in newsgroups specified in file newsrc.mail to the
+local user iain and mark them as read)
+.PP
+.TP  2i
+\fBtin \-S \-c \-f newsrc.save\fP
+(save any unread articles in newsgroups specified in file newsrc.save and
+mark them as read)
+.PP
+.TP  2i
+\fBtin \-R\fP
+.\"
+.\"
+(read any articles saved by \fBtin \-S\fP)
+.SS BEREICHE
+A range is simply a group of items marked using the \fBSetRange\fP (\fB'#'\fP)
+key. Certain \fBtin\fP commands will operate on a range if one exists rather
+than just the current item. A range is an expression of the form
+<min>\-<max>, e.g. 10\-15 will highlight items 10 through 15
+on the current screen. Other than absolute numeric positions, '.' can be
+used in place of the current cursor position and '$' can be used to mean the
+highest number available. Currently the only commands that understand ranges
+are \fBGroupMarkThdRead\fP ('\fBK\fP'), \fBMarkArtUnread\fP ('\fBz\fP') and
+\fBMarkThdUnread\fP ('\fBZ\fP').
+.PP
+.SS "NEWSGROUP LISTS & WILDCARDS"
+Several places in \fBtin\fP allow you to specify a list of newsgroups. These
+include command\-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE
+mechanism. The scope= attributes file tag and the filter file group= tag
+also use the same syntax. \fBtin\fP interprets this variable similarly to
+\fBrn(1).\fP It contains a list of patterns, separated by commas and possibly
+prefixed with exclamation points. An exclamation point negates the meaning
+of a match on this pattern, and can be used to cancel certain matches. Some
+examples:
+.sp
+\fIalt.config,news.*,!news.test\fP
+.sp
+Matches alt.config and everything in the 'news' hierarchy except news.test
+.PP
+.\"
+.\"
+See the explanation for the $\fBAUTOSUBSCRIBE\fP variables for further
+examples.
+.SS SIGNATUREN
+\fBtin\fP will recognize a signature in either
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP or \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP. 
+If \fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP exists, then the signature will be
+pulled into the editor for mail commands only. A signature in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP will not be pulled into the editor for
+posting commands since \fBinews\fP(1)  will append the signature itself.
+.PP
+A signature in \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP will be pulled into the
+editor for both posting and mailing commands.
+.PP
+Nachstehend eine Beispiel \fI.Sig\fP Datei:
+.RS
+.nf
+\f(CWNAMES  Erika Mustermann <erika@example.org>
+SNAIL  Heidestraße 17, 99999 Notreal, Germany\fP
+.fi
+.RE
+.PP
+.\"
+.\"
+\fBtin\fP also has the capability to generate random signatures on a per
+newsgroup basis if so desired. The way to accomplish this is to specify the
+default signature or the group attribute sigfile as a directory. If for
+example the sigfile path is \fI/usr/iain/.sigs\fP and \fI.sigs\fP is a directory
+then \fBtin\fP will select a random signature from any file that is in the
+directory \fI.sigs\fP (note: one signature per numbered file). A random
+signature can also consist of a fixed part signature that can contain your
+name, address etc. followed by the random sig. The fixed part of the random
+sig is read from the file \fI$HOME/.sigfixed\fP.
+.SS "TIPS UND TRICKS"
+\fBtin\fP can be pretty much be navigated by using the four cursor keys.  The
+left arrow key goes up a level, the right arrow key goes down a level, the
+up arrow key goes up a line and the down arrow key goes down a line.
+.PP
+In den folgenden Newsgruppen finden sich nützliche Informationen über
+Newssoftware:
+.in +.5i
+.ti -\w'\(em'u
+\(emde.comm.software.newsreader (Informationen über Newsrader wie tin, slrn,
+\&...)
+.ti -\w'\(em'u
+\(emnews.software.nntp (Informationen über NNTP)
+.ti -\w'\(em'u
+\(emnews.answers (Frequently Asked Questions (FAQ) about many different
+themes)
+.PP
+Many prompts within \fBtin\fP offer a default choice that the cursor is
+positioned on. By pressing '\fB<CR>\fP' the default value is taken. 
+Most prompts can be aborted by pressing '\fB<ESC>\fP'.
+.PP
+When \fBtin\fP is run in an \fBxterm\fP(1x)  it will resize itself each time the
+\fBxterm\fP(1x)  is resized.
+.PP
+\fBtin\fP will reread the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file at set
+intervals (\fBreread_active_file_secs\fP) to show any newly arrived news.
+.PP
+.\"
+.\"
+If you find large number of new newsgroups cluttering up your screen,
+pressing \fBSelectToggleReadDisplay\fP ('\fBr\fP') will make them go away.
+.SS "XTERM BUTTONS"
+If the environment variable \fB$TERM\fP is set to \fBxterm\fP(1x), then button
+pressing can be used to select groups and articles. In this discussion, the
+buttons are assumed to be assigned conventionally (i.e., Button1 is the left
+button).
+.PP
+In general (i.e., for the group, thread and article menus),
+.TP  10
+Button1 (left)
+enters next (lower) level if you click on an article, otherwise pages down.
+.TP 
+Button2 (center)
+returns to the previous (upper) level if you click on an article, otherwise
+pages up.
+.TP 
+Button3 (right)
+positions on the article line under mouse cursor, or pages down if you've
+clicked outside the list of articles.
+.PP
+In the group selection menu, if the mouse is pointing at a group then:
+.TP  10
+Linke Maustaste
+moves to and selects the group pointed at, just like \fBSelectReadGrp\fP
+('\fB<CR>\fP').
+.TP 
+Mittlere Maustaste
+quits the program, just like \fBQuit\fP ('\fBq\fP').
+.TP 
+Rechte Maustaste
+moves to the group pointed at.
+.PP
+In the article menu, if the mouse is pointing at an article (or thread)
+then:
+.TP  10
+Linke Maustaste
+reads the article pointed at, just like \fBGroupReadBasenote\fP
+('\fB<CR>\fP'), or the thread, just like \fBGroupListThd\fP ('\fBl\fP').
+.TP 
+Mittlere Maustaste
+exits the menu, catching up on the group if you have
+\fBgroup_catchup_on_exit\fP set in your configuration, just like \fBQuit\fP
+('\fBq\fP').
+.TP 
+Rechte Maustaste
+moves to the article (or thread) pointed at.
+.PP
+In the thread menu, if the mouse is pointing at an article then:
+.TP  10
+Linke Maustaste
+reads article pointed at, just like \fBThreadReadArt\fP ('\fB<CR>\fP').
+.TP 
+Mittlere Maustaste
+exits the menu, catching up on the thread if you have
+\fBthread_catchup_on_exit\fP set in your configuration, just like \fBQuit\fP
+('\fBq\fP').
+.TP 
+Rechte Maustaste
+moves to the article pointed at.
+.PP
+.\"
+.\"
+In other menus and areas button pressing reverts back to usual cut and paste
+of \fBxterm\fP(1x), but after one click of any button.
+.SS "INDEX DATEIEN"
+If your news server supports NOV index files (see \fBnewsoverview\fP(5), most
+modern installations will) and you have a fast connection to your news
+server then this section can be ignored.
+.PP
+If your news server doesn't support NOV index files or you have a very slow
+connection to your news server then \fBtin\fP can cache the index for each
+newsgroup if \fBcache_overview_files\fP is set to ON.  Note that this cache can
+use up large amounts of diskspace if you read a lot of groups and/or high
+traffic groups.
+.PP
+Each user creates/updates his/her own index files that are stored in
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news/\fP. If you are
+reading via NNTP then the news server name will be appended to keep the
+indexes for different servers separate. If you are reading off the local
+spool and local overview files already exist then turning on caching will
+have no effect. Likewise unless you see significant delays entering a group
+when reading via NNTP then turning on caching will have little or no effect.
+.PP
+Entering a group the first time tends to be slow because the index file must
+be built from scratch. To alleviate the slowness start \fBtin\fP to create all
+index files for the groups you subscribe to with \fBtin \-u \-v\fP and go for a
+coffee. Subsequent readings of a group will only need to do incremental
+updating of the index file and will be much faster as only new articles will
+need to be cached.
+.PP
+As indexing might take some time you may want to run \fBtin\fP form the system
+batcher \fBcron\fP(1)  with the \*(rq\fB\-u\fP\*(rq option:
+.PP
+.RS
+.nf
+\f(CW30 6 * * * /usr/local/bin/tin \-u\fP
+.fi
+.RE
+.PP
+If you are low on local disk space you should consider using \fBgetart_limit\fP
+to limit the size of cached indexes and also manually purge cached data for
+groups you are not reading anymore with something like:
+.PP
+.RS
+.nf
+\f(CWfind ${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news* \e
+\-type f \-name "[0\-9]*.[0\-9]" \-atime +28 | xargs rm \-f\fP
+.fi
+.RE
+.\"
+.\"
+.SH DATEIEN
+.\" TODO: mention dead.article, dead.articles
+.\"               .article[.$$], .cancel[.$$], .letter[.$$]?
+.\"       $PWD/trace[.out]   (--with-trace)
+.\"       $TMPDIR/NNTP       (-D 1)
+.\"       $TMPDIR/FILTER     (-D 2)
+.\"       $TMPDIR/ARTS       (-D 2)
+.\"       $TMPDIR/BITMAP     (-D 4)
+.\"       $TMPDIR/REFS.dump  (-D 8)
+.\"       $TMPDIR/REFS.info  (-D 8)
+.\"       $TMPDIR/MALLOC     (-D 16)
+.\"       $TMPDIR/ATTRIBUTES (-D 32)
+.\"       $TMPDIR/SCOPES-R   (-D 32)
+.\"       $TMPDIR/SCOPES-W   (-D 32)
+.\"       $TMPDIR/ACTIVE     (-D 64)
+Für eine ausführlich Beschreibung siehe \fBtin\fP(5).
+.PP
+\fI$MAILCAPS\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mailcap\fP
+.br
+\fI/etc/mailcap\fP
+.br
+\fI/usr/etc/mailcap\fP
+.br
+\fI/usr/local/etc/mailcap\fP
+.br
+\fI/etc/mail/mailcap\fP
+.PP
+
+\fI/etc/nntpserver\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.cancelsecret\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mime.types\fP
+.br
+\fI/etc/mime.types\fP
+.br
+\fI/etc/tin/mime.types\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsauth\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc\fP
+.fi
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.sigfixed\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/.inputhistory\fP
+.PP
+
+\fI${TIN_INDEX_MAILDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.mail/\fP
+.PP
+
+.nf
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news${NNTPSERVER:+"\-$NNTPSERVER"}/\fP
+.fi
+.PP
+
+\fI${TIN_INDEX_SAVEDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.save/\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.mail\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.save\fP
+.PP
+
+.\" .IR ${TIN_LIBDIR:\-NEWSLIBDIR}/attributes
+\fI/etc/tin/attributes\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP
+.PP
+
+.nf
+\fI/etc/tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.fi
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/posted\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/posted\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/postponed.articles\fP
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/newsgroups\fP
+.fi
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/serverrc\fP
+.fi
+.PP
+
+.\" .IR ${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc
+\fI/etc/tin/tinrc\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP
+.PP
+
+\fI/etc/tin/tin.defaults\fP
+.PP
+
+\fI/usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/active.times\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/organization\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/overview.fmt\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fP
+.PP
+.\"
+.\"
+.SH UMGEBUNGSVARIABLEN
+.\" TODO: sort in a useful order, add undocumented env-vars like:
+.\"
+.\" .TP
+.\" .B SHELL (Unix)
+.\" The pathname of the user's login shell.
+.\"
+.\" used in xface support
+.\" .TP
+.\" .B DISPLAY
+.\" .TP
+.\" .B WINDOWID
+.\"
+.\"
+.TP 
+\fBTINRC\fP
+Define this variable if you want to specify command\-line options that \fBtin\fP
+should be started with to save typing them each time it is started. The
+contents of the environment variable are added to the front of the
+command\-line options before it is parsed therefore allowing an option
+specified on the command\-line to override the same option specified in the
+environment.
+.TP 
+\fBTIN_HOMEDIR\fP
+Define this variable if you do not want the \fI.tin\fP directory in
+\fI$HOME/\fP. E.g., if you want all \fBtin\fP's private files in \fI/tmp/.tin\fP you
+would set $\fBTIN_HOMEDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_INDEX_NEWSDIR\fP
+Define this variable if you do not want the \fI.news\fP directory in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fP. E.g., if you want all \fBtin\fP's news index
+files in \fI/tmp/.news\fP you would set $\fBTIN_INDEX_NEWSDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_INDEX_MAILDIR\fP
+Define this variable if you do not want the \fI.mail\fP directory in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fP. E.g., if you want all \fBtin\fP's mail index
+files in \fI/tmp/.mail\fP you would set $\fBTIN_INDEX_MAILDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_INDEX_SAVEDIR\fP
+Define this variable if you do not want the \fI.save\fP directory in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fP. E.g., if you want all \fBtin\fP's save index
+files in \fI/tmp/.save\fP you would set $\fBTIN_INDEX_SAVEDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_LIBDIR\fP
+Define this variable if you want to override the \fBNEWSLIBDIR\fP path that was
+compiled into the \fBtin\fP binary, default is \fI/usr/lib/news\fP.  If tin is
+running in NNTP mode setting this variable has no effect.
+.TP 
+\fBTIN_SPOOLDIR\fP
+Define this variable if you want to override the \fBSPOOLDIR\fP path that was
+compiled into the \fBtin\fP binary, default is \fI/var/spool/news\fP.  If tin is
+running in NNTP mode setting this variable has no effect.
+.TP 
+\fBTIN_NOVROOTDIR\fP
+Define this variable if you want to override the \fBNOVROOTDIR\fP path that was
+compiled into the \fBtin\fP binary, default is \fBSPOOLDIR\fP (see above). If tin
+is running in NNTP mode setting this variable has no effect.
+.TP 
+\fBTIN_ACTIVEFILE\fP
+Define this variable if you want to override the \fBNEWSLIBDIR/active\fP path
+that was compiled into the \fBtin\fP binary. If tin is running in NNTP mode
+setting this variable has no effect. If $\fBTIN_LIBDIR\fP is set it is
+prepended to $\fBTIN_ACTIVEFILE\fP.
+.TP 
+\fBNNTPSERVER\fP
+The default NNTP server to remotely read news from. This variable only needs
+to be set if the \*(rq\fB\-r\fP\*(rq command\-line option is specified and the file
+\fI/etc/nntpserver\fP does not exist. The \*(rq\fB\-g\fP\*(rq command line option
+overrides $\fBNNTPSERVER\fP.
+.TP 
+\fBNNTPPORT\fP
+The NNTP TCP\-port to read news from. This variable only needs to be set if
+the TCP\-port is not 119 (the default).  The \*(rq\fB\-p\fP\*(rq command\-line option
+overrides $\fBNNTPPORT\fP.
+.TP 
+\fBDISTRIBUTION\fP
+Set the article header field \*(rqDistribution:\*(rq to the contents of the
+variable instead of the system default.
+.TP 
+\fBISO2ASC\fP
+Set the ISO to ASCII charset decoding table character to use in decoding an
+article text. Values can range from 0 to 6.
+.RS +.5i
+.TP 
+\fB0\fP
+universal table for many languages
+.TP 
+\fB1\fP
+single\-spacing universal table
+.TP 
+\fB2\fP
+table for Danish, Dutch, German, Norwegian and Swedish
+.TP 
+\fB3\fP
+table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO
+646 variant
+.TP 
+\fB4\fP
+table with RFC 1345 codes in brackets
+.TP 
+\fB5\fP
+table for printers that allow overstriking with backspace
+.RE
+.TP 
+\fBORGANIZATION\fP
+Set the article header field \*(rqOrganization:\*(rq to the contents of the
+variable instead of the system default. If reading news on an Apollo
+DomainOS machine the environment variable $\fBNEWSORG\fP has to be used instead
+of $\fBORGANIZATION\fP.
+.TP 
+\fBNEWSORG (DomainOS)\fP
+DomainOS specific, same as $\fBORGANIZATION\fP on other OSs (see above).
+.TP 
+\fBREPLYTO\fP
+Set the article header field \*(rqReply\-To:\*(rq to the return address specified
+by the variable. This is useful if you wish to receive replies at a
+different address.
+.TP 
+\fBNAME\fP
+Overrides the full name given in the gecos\-files in \fI/etc/passwd\fP, see also
+\fBmail_address\fP.
+.TP 
+\fBREALNAME\fP
+Same as $\fBNAME\fP.
+.TP 
+\fBHOME\fP
+Das Anmeldeverzeichnis des Benutzers. Weitere Informationen finden sich in
+\fBenviron\fP(5).
+.TP 
+\fBMAILER\fP
+This variable has precedence over the default mailer that is used in all
+mailing operations within \fBtin\fP.
+.TP 
+\fBMAIL\fP
+Full path to the user's mailbox.
+.TP 
+\fBVISUAL\fP
+This variable has precedence over the default editor (i.e., \fBvi\fP(1))  that
+is used in all editing operations within \fBtin\fP (e.g., posting, replying,
+follow\-ups, ...). Evaluation order is \fI${VISUAL:\-"${EDITOR:\-vi}"}\fP. See
+\fBenviron\fP(5)  for more info.
+.TP 
+\fBEDITOR\fP
+If $\fBVISUAL\fP is unset, then this variable is looked up for a default
+editor. If $\fBEDITOR\fP and $\fBVISUAL\fP are both unset, \fBtin\fP uses the systems
+default editor (i.e.  \fBvi\fP(1))  on UNIX\-systems). See \fBenviron\fP(5)  for
+more info.
+.TP 
+\fBAUTOSUBSCRIBE\fP
+A new group is checked against the list of patterns; if it matches, \fBtin\fP
+subscribes the user to the group without further query.  See the section
+"NEWSGROUP LISTS & WILDCARDS" for an explanation of the valid syntax. For
+example, setting
+.sp
+\fIAUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*\fP
+.sp
+will automatically subscribe the user to all new groups in the comp.os.unix
+hierarchy, and all talk groups other than talk.politics groups (which will
+be queried for as usual). Of course this does not work if \fBtin\fP is started
+with the \*(rq\fB\-X\fP\*(rq command\-line switch.
+.TP 
+\fBAUTOUNSUBSCRIBE\fP
+Is handled like the $\fBAUTOSUBSCRIBE\fP variable, but groups matching the list
+are unsubscribed from without further query. For example, setting
+.sp
+\fIAUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*\fP
+.sp
+will automatically unsubscribe the user from all new alt.flame groups and
+all groups starting with u (university groups) other than UK groups (which
+will be queried for as usual).
+.TP 
+\fBTMPDIR\fP
+A pathname of a directory made available for \fBtin\fP to create temporary
+files.
+.TP 
+\fBMAILCAPS\fP
+This variable can be used to override the default path search for mailcap
+files. See also \fBtin\fP(5).
+.TP 
+\fBNOMETAMAIL\fP
+Set this variable to disable the use of \fBmetamail\fP(1)  or a replacement
+(e.g. metamutt).
+.TP 
+\fBMM_CHARSET\fP
+.TP 
+\fBISPELL\fP
+Set this variable to point to \fBispell\fP(1)  or a replacement and its
+cmd\-line options.
+.TP 
+\fBPGPOPTS\fP
+Define any additional options that you wish to pass to your \fBpgp\fP(1)  or
+\fBgpg\fP(1)  program.
+.TP 
+\fBPGPPATH\fP
+Override the name of the \fBpgp\fP(1)  directory in \fB$HOME\fP that holds your
+keys etc..
+.TP 
+\fBGNUPGHOME\fP
+Override the name of the \fBgpg\fP(1)  directory in \fB$HOME\fP that holds your
+keys etc..
+.TP 
+\fBLC_CTYPE\fP
+.\" TODO: document LC_CTYPEs influence on
+.\"       ~/.tin/keymap.*, 8bit char display, ...
+This variable determines the \fBlocale\fP(5)  category for character handling
+functions. Usually it determines the character classes for pattern matching
+character classification and case conversion. Currently this is not true for
+\fBtin\fP (which temporary unsets \fB$LC_CTYPE\fP right before any match is done
+to avoid confusion).  It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP][\fI@modifier\fP]. See \fBenviron\fP(5) 
+for more information.
+.TP 
+\fBLC_MESSAGES\fP
+Formats of informative and diagnostic messages and interactive responses. 
+It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP][\fI@modifier\fP]. See \fBlocale\fP(5)  and
+\fBenviron\fP(5)  for more information.
+.TP 
+\fBLC_TIME\fP
+Date and time formats. It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP][\fI@modifier\fP]. See \fBlocale\fP(5)  and
+\fBenviron\fP(5)  for more information.
+.TP 
+\fBLC_ALL\fP
+This variable overrides the value of the \fB$LANG\fP variable and any other
+\fB$LC_\fP variable. It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP]. See \fBlocale\fP(5)  and \fBenviron\fP(5) 
+for more information.
+.TP 
+\fBLANG\fP
+This variable determines the \fBlocale\fP(5)  category for any category not
+specifically selected with a variable starting with \fB$LC_\fP. It's value
+should be of the form \fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP]. See
+\fBenviron\fP(5)  for more information.
+.TP 
+\fBLANGUAGE\fP
+This variable defines a priority list for translations. Whenever a
+translation is not available in the language selected via \fB$LC_ALL\fP or
+\fB$LANG\fP the next language from the list is tried. It's value should be of
+the form \fIlanguage:language[:language]\fP. See \fBenviron\fP(5)  for more
+information.
+.TP 
+\fBCOLUMNS\fP
+A decimal integer > 0 used to indicate the user's preferred width in
+column positions for the terminal screen or window. If this variable is
+unset or null, the implementation determines the number of columns,
+appropriate for the terminal or window. When \fB$COLUMNS\fP is set, any
+terminal\-width information implied by \fB$TERM\fP will be overridden. Users and
+portable applications should not set \fB$COLUMNS\fP unless they wish to
+override the system selection and produce output unrelated to the terminal
+characteristics.
+.TP 
+\fBLINES\fP
+A decimal integer > 0 used to indicate the user's preferred number of
+lines on a page or the vertical screen or window size in lines. A line in
+this case is a vertical measure large enough to hold the tallest character
+in the character set being displayed. If this variable is unset or null, the
+implementation determines the number of lines, appropriate for the terminal
+or window. When \fB$LINES\fP is set, any terminal\-height information implied by
+\fB$TERM\fP will be overridden. Users and portable applications should not set
+\fB$LINES\fP unless they wish to override the system selection.
+.TP 
+\fBTERM\fP
+.\"
+.\"
+.\" TODO: add missing, sort useful, document in detail
+Der verwendete Terminaltyp. Weitere Informationen finden sich in
+\fBenviron\fP(5).
+.SH SIGNALE
+\fBtin\fP verarbeitet folgende Signale:
+.TP 
+\fBSIGHUP\fP
+Terminate gracefully.
+.TP 
+\fBSIGTERM\fP
+Terminate gracefully.
+.TP 
+\fBSIGUSR1\fP
+Terminate gracefully but do not restore tty.
+.TP 
+\fBSIGUSR2\fP
+.\"
+.\"
+.\" .SH DIAGNOSTICS
+.\" give an overview of the most common error messages and how to cope with
+.\" them.
+.\"
+.\"
+.\"
+Write out \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP\-file.
+.SH SICHERHEIT
+.\"
+.\"
+When \fBtin\fP is started in debug mode (\*(rq\fB\-D n\fP\*(rq) it will create world
+readable files in \fB$TMPDIR\fP which may contain the users NNTP password in
+cleartext. On multiuser\-systems \fB$TMPDIR\fP should be set to a safe location
+before starting tin in debug mode (e.g.  \fBTMPDIR=$HOME tin \-D 1\fP).
+.SH "KONFORM ZU"
+.\" - RFC2045, RFC2047, RFC2980, RFC3977, RFC4643, RFC5322
+.\"   RFC5536, RFC5537, RFC6048 or whatever
+.\"
+.\"
+\fBtin\fP does conform to the Base Definitions volume of IEEE Std 1003.1\-2001,
+Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax
+Guidelines).
+.SH ANMERKUNGEN
+Regular expression support is provided by the PCRE library package
+\fBpcre\fP(3), which is open source software, written by Philip Hazel, and
+copyright by the University of Cambridge, England.
+.br
+.\"
+.\"
+ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
+.SH BUGS
+\fBCNews\fP NNTPd, \fBnoffle\fP(1)  (<= V1.0\-pre5) and \fBNewsCache\fP (<=
+V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with
+any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h
+and recompile.
+.br
+.\"
+.\"
+Before mailing a bug\-report to <tin\-bugs@tin.org> please check if
+you are using the latest (stable) release, and if not, please upgrade first!
+Have a look at the doc/TODO file for known bugs. If you still think you've
+found a bug, please use the \fBBugReport\fP ('\fBR\fP')  function and write in
+English. Please do NOT enclose a core\-file in your bugreport until we
+request it.
+.SH GESCHICHTE
+.\"
+.\"
+\fBtin\fP basiert auf \fBtass\fP(1), einem Newsreader der von Rich Skrenta
+entwickelt und dessen Code im März 1991 von ihm in alt.sources
+veröffentlicht wurde. Die erste Version von \fBtin\fP wurde am 23. August 1991
+veröffentlicht. \fBtass\fP(1) orientiert sich stark an notesfiles, einer Public
+Domain Version für UNIX von PLATO Notes, welches 1982 von Ray Essick und Rob
+Kolstad an der University of Illinois entstand. Eine Übersicht der Versionen
+findet sich unter <http://www.tin.org/history.html>.
+.SH DANKSAGUNGEN
+.PP
+.IP "Rich Skrenta"
+Autor von \fBtass\fP(1)  v3.2, der Basis für diesen Newsreader.
+.IP "Bill Davidsen"
+Autor von envarg.c, Umgebungsvariablenleseroutine.
+.IP "Mike Gleason"
+Autor von sigfile.c, Zufallssignaturengenerierungsroutine.
+.IP "Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>"
+author of langinfo.c, charset.c and iso2asc.txt ISO\-8859\-1 documentation.
+.IP "Arnold Robbins"
+Autor von strftime.c, Datumsfromatierungsroutine.
+.IP "Rich Salz"
+author of wildmat.c pattern matching and parsdate.y date parsing routines.
+.IP "Dave Taylor"
+author of curses.c from the \fBelm\fP(1)  mailreader.
+.IP "Chris Thewalt"
+author of getline.c \fBemacs\fP(1)  style editing routine.
+.IP "Steven Madsen"
+for adding \fBpgp\fP(1)  (Pretty Good Privacy) support.
+.IP "Philip Hazel <ph10@cam.ac.uk>"
+für \fBpcre\fP(3) (Library für Perl\-kompatible reguläre Ausdrücke).
+.IP "Patrick Powell <papowell@astart.com>"
+.\"
+.\"
+für \fBsnprintf\fP(3)  und \fBvsnprintf\fP(3)  Fallbacks.
+.SH AUTOR
+.TP  1i
+Iain Lea <iain@bricbrac.de>
+.\"
+.\"
+.SH MAINTAINER
+.TP  1i
+Urs Janßen <urs@tin.org>
+.\"
+.\"
+.SH ÜBERSETZUNG
+.TP 1i
+Erika Mustermann <erika@example.org>
+.\"
+.SH "SIEHE AUCH"
+\fBcron\fP(1), \fBelm\fP(1), \fBemacs\fP(1), \fBgpg\fP(1), \fBinews\fP(1), \fBispell\fP(1),
+\fBlp\fP(1), \fBlpr\fP(1), \fBmetamail\fP(1), \fBnoffle\fP(1), \fBperl\fP(1), \fBperlre\fP(1),
+\fBpgp\fP(1), \fBrn\fP(1), \fBsendmail\fP(1), \fBshar\fP(1), \fBslrnface\fP(1), \fBtass\fP(1),
+\fBunshar\fP(1), \fBuudecode\fP(1), \fBvi\fP(1), \fBxterm\fP(1x), \fBiconv\fP(3),
+\fBiconv_open\fP(3), \fBnl_langinfo\fP(3), \fBpcre\fP(3), \fBpcrepattern\fP(3),
+\fBsnprintf\fP(3), \fBstrftime\fP(3), \fBvsnprintf\fP(3), \fBwildmat\fP(3),
+\fBenviron\fP(5), \fBlocale\fP(5), \fBmbox\fP(5), \fBmmdf\fP(5), \fBnewsoverview\fP(5),
+\fBtin\fP(5), \fBRFC1524\fP, \fBRFC2045\fP, \fBRFC2046\fP, \fBRFC2047\fP, \fBRFC2048\fP,
+\fBRFC2980\fP, \fBRFC3977\fP, \fBRFC4643\fP, \fBRFC5322\fP, \fBRFC5536\fP, \fBRFC5537\fP,
+\fBRFC6048\fP
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/de/tin.5 tin-2.0.0/doc/l10n/de/tin.5
--- tin-1.8.3/doc/l10n/de/tin.5	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/de/tin.5	2011-08-22 00:21:07.766748414 +0200
@@ -0,0 +1,2407 @@
+.\" Project   : tin
+.\" Module    : tin.5
+.\" Author    : U. Janssen
+.\" Created   : 2000-07-10
+.\" Updated   : 2011-08-23
+.\" Notes     : needs a some work
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH tin 5 "23. August 2011" 2.0.0 "Usenet Newsreader"
+
+.SH NAME
+tin, rtin \- zugehörige Dateien
+
+.SH BESCHREIBUNG
+Diese Manpage beschreibt die vom Newsreader \fBtin\fP(1) benutzen
+(Konfigurations)\-Dateien und deren Formate. Alle Dateien sollten Unixartige
+Zeilenenden ('\en' aka LF) haben.
+
+.SH DATEIEN
+.\" TODO: mention
+.\" ${TIN_HOMEDIR:\-"$HOME"}/dead.article
+.\" ${TIN_HOMEDIR:\-"$HOME"}/dead.articles
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.article[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.cancel[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.letter[.$$]
+.\" $PWD/trace[.out]   (--with-trace)
+.\" $TMPDIR/NNTP       (-D 1)
+.\" $TMPDIR/FILTER     (-D 2)
+.\" $TMPDIR/ARTS       (-D 2)
+.\" $TMPDIR/BITMAP     (-D 4)
+.\" $TMPDIR/REFS.dump  (-D 8)
+.\" $TMPDIR/REFS.info  (-D 8)
+.\" $TMPDIR/MALLOC     (-D 16)
+.\" $TMPDIR/ATTRIBUTES (-D 32)
+.\" $TMPDIR/SCOPES-R   (-D 32)
+.\" $TMPDIR/SCOPES-W   (-D 32)
+.\" $TMPDIR/ACTIVE     (-D 64)
+.PP
+\fI$MAILCAPS\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mailcap\fP
+.br
+\fI/etc/mailcap\fP
+.br
+\fI/usr/etc/mailcap\fP
+.br
+\fI/usr/local/etc/mailcap\fP
+.br
+\fI/etc/mail/mailcap\fP
+.sp
+.RS
+\fBmailcap\fP(4)  files as defined in \fBRFC1524\fP. The Mailcap files are read by
+\fBtin\fP(1)  to determine how to display non\-text messages at the local
+site. Any line that starts with "#" is a comment. Blank lines are
+ignored. Otherwise, each line defines a single mailcap entry for a single
+content type. Long lines may be continued by ending them with a backslash
+character, "\e".
+.sp
+Each individual mailcap entry consists of a content\-type specification, a
+command to execute, and (possibly) a set of optional "flag" values.
+.sp
+The "type" field is simply any legal content type name. It is the string
+that will be matched against the \*(rqContent\-Type:\*(rq header to decide if this
+is the mailcap entry that matches the current message. Additionally, the
+type field may specify a subtype or a wildcard to match all subtypes.
+.sp
+The "command" field is any UNIX command and is used to specify the
+interpreter for the given type of message. It will be passed to the shell
+via the \fBsystem\fP(3)  facility.
+.sp
+.\"
+.\" Two special codes can appear in the viewing command for objects of type
+.\" multipart (any subtype). These are "%n" and "%F". %n will be replaced by
+.\" the number of parts within the multipart object. %F will be replaced by a
+.\" series of arguments, two for each part, giving first the content-type and
+.\" then the name of the temporary file where the decoded part has been stored.
+.\"
+Semicolons and backslashes within the command or any flag field must be
+quoted with backslashes. If the field contains "%s", those two characters
+will be replaced by the name of a file that contains the body of the
+message. If it contains "%t", those two characters will be replaced by the
+content\-type field, including the subtype, if any. If it contains "%{"
+followed by a parameter name and a closing "}", then all those characters
+will be replaced by the value of the named parameter, if any, from the
+\&\*(rqContent\-Type:\*(rq header. Finally, if the field contains "\e%", those two
+characters will be replaced by a single "%" character.
+.sp
+Besides the type and command field the following "flags" are defined:
+.TP 
+\fBcompose\fP
+The "compose" field may be used to specify a program that can be used to
+compose a new body or body part in the given format. Its intended use is to
+support mail composing agents that support the composition of multiple types
+of mail using external composing agents. As with the view\-command, the
+semantics of program execution are operating system dependent. The result of
+the composing program may be data that is not yet suitable for mail
+transport \- that is, a Content\-Transfer\-Encoding may need to be applied to
+the data.
+.TP 
+\fBcomposetyped\fP
+The "composetyped" field is similar to the "compose" field, but is to be
+used when the composing program needs to specify the \*(rqContent\-Type:\*(rq
+header field to be applied to the composed data. The "compose" field is
+simpler, and is preferred for use with existing (non\-mail\-oriented) programs
+for composing data in a given format. The "composetyped" field is necessary
+when the Content\-Type information must include auxiliary parameters, and the
+composition program must then know enough about mail formats to produce
+output that includes the mail type information.
+.TP 
+\fBedit\fP
+The "edit" field may be used to specify a program that can be used to edit a
+body or body part in the given format. In many cases, it may be identical in
+content to the "compose" field, and shares the operating\-system dependent
+semantics for program execution.
+.TP 
+\fBprint\fP
+The "print" field may be used to specify a program that can be used to print
+a message or body part in the given format. As with the view\-command, the
+semantics of program execution are operating system dependent.
+.TP 
+\fBtest\fP
+The "test" field may be used to test some external condition (e.g., the
+machine architecture, or the window system in use) to determine whether or
+not the mailcap line applies. It specifies a program to be run to test some
+condition. The semantics of execution and of the value returned by the test
+program are operating system dependent. If the test fails, a subsequent
+mailcap entry should be sought. Multiple test fields are not permitted \-
+since a test can call a program, it can already be arbitrarily complex.
+.TP 
+\fBneedsterminal\fP
+The "needsterminal" field indicates that the view\-command must be run on an
+interactive terminal. This is needed to inform window\-oriented user agents
+that an interactive terminal is needed. (The decision is not left
+exclusively to the view\-command because in some circumstances it may not be
+possible for such programs to tell whether or not they are on interactive
+terminals.) The needsterminal command should be assumed to apply to the
+compose and edit commands, too, if they exist. Note that this is NOT a test
+\- it is a requirement for the environment in which the program will be
+executed, and should typically cause the creation of a terminal window when
+not executed on either a real terminal or a terminal window.
+.TP 
+\fBcopiousoutput\fP
+The "copiousoutput" field indicates that the output from the view\-command
+will be an extended stream of output, and is to be interpreted as advice to
+the UA (User Agent mail\-reading program) that the output should be either
+paged or made scroll\-able. Note that it is probably a mistake if
+needsterminal and copiousoutput are both specified.
+.TP 
+\fBdescription\fP
+The "description" field simply provides a textual description, optionally
+quoted, that describes the type of data, to be used optionally by mail
+readers that wish to describe the data before offering to display it.
+.TP 
+\fBtextualnewlines\fP
+The "textualnewlines" field, if set to any non\-zero value, indicates that
+this type of data is line\-oriented and that, if encoded in base64, all
+newlines should be converted to canonical form (CRLF) before encoding, and
+will be in that form after decoding. In general, this field is needed only
+if there is line\-oriented data of some type other than text/* or non\-line\-
+oriented data that is a subtype of text.
+.TP 
+\fBx11\-bitmap\fP
+The "x11\-bitmap" field names a file, in X11 bitmap (xbm) format, which
+points to an appropriate icon to be used to visually denote the presence of
+this kind of data.
+.TP 
+\fBnametemplate\fP
+The "nametemplate" field gives a file name format, in which %s will be
+replaced by a short unique string to give the name of the temporary file to
+be passed to the viewing command. This is only expected to be relevant in
+environments where filename extensions are meaningful, e.g., one could
+specify that a GIF file being passed to a gif viewer should have a name
+ending in ".gif" by using "nametemplate=%s.gif"
+.PP
+\fBtin\fP(1)  currently only respects the "test", "description", "nametemplate"
+and partly the "needsterminal" flags, all other flags are internally
+ignored. It also can't handle the "%F" and "%n" expansions yet.
+.TP 
+Beispiel:
+.RS
+.nf
+# mailcap Beispiel\-Datei
+.br
+image/*;\e
+.br
+.in +.3i
+xv \-8 \-geometry +0 '%s';\e
+.br
+description=%{name} %t\-Image;\e
+.br
+test=test "$DISPLAY" != "";\e
+.br
+nametemplate=%s.IMAGE
+.in -.3i
+.sp
+message/rfc822;\e
+.br
+.in +.3i
+${PAGER:\-"more"} '%s';\e
+.br
+edit=${EDITOR:\-"vi"} '%s';\e
+.br
+compose=${EDITOR:\-"vi"} '%s';\e
+.br
+print=a2ps '%s';\e
+.br
+needsterminal
+.in -.3i
+.fi
+.RE
+.RE
+.PP
+
+\fI/etc/nntpserver\fP
+.sp
+.RS
+default NNTP\-server to read news from if not reading from the local spool. 
+\&'\fB\-g\fP \fIserver\fP', $\fBNNTPSERVER\fP have higher priority (in that order),
+the default server given at compile time has lower priority.
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.cancelsecret\fP
+.sp
+.RS
+secret to be used for canlocks
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mime.types\fP
+.br
+\fI/etc/mime.types\fP
+.br
+\fI/etc/tin/mime.types\fP
+.sp
+.RS
+mime type / filename extension pairs
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsauth\fP
+.sp
+.RS
+"\fInntpserver\fP \fIpassword\fP [\fIuser\fP]" pairs for NNTP servers that require
+authorization. If the password contains a space or a tab it must be enclosed
+in doublequotes ("). Usernames must not be enclosed in doublequotes and thus
+can't contain spaces or tabs. Any line that starts with "#" is a
+comment. Blank lines are ignored. This file should be readable only for the
+user as it contains the user's uncrypted password for reading news!
+.TP 
+\fBNNTPServer\fP
+Vollständiger Name (FQDN) des Newsservers.
+.TP 
+\fBPasswort\fP
+Unverschlüsseltes Passwort für den Newsserver.
+.TP 
+\fBUser\fP
+Username auf dem Newsserver falls er vom lokalen Benutzernamen
+abweicht. Dieses Feld ist optional.
+.TP 
+Beispiel:
+.RS
+# Beispiel .newsauth\-Datei
+.br
+news.example.org geheim
+.br
+news.example.net verborgen gast
+.br
+news.example.com "streng geheim" james.bond@example.com
+.RE
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP
+.sp
+.RS
+"\fInewsgroup\fP\fIflag\fP [\fIarticle\fP[,\fIarticle\fP | \-\fIarticle\fP]...]" lines.
+.TP 
+\fBnewsgroup\fP
+the name of the newsgroup.
+.TP 
+\fBflag\fP
+a flag indicating if the group is subscribed ':' or not '!'.
+.TP 
+\fBarticle\fP
+range of already read articles from that group; numbers separated by commas
+with sequential numbers collapsed with hyphens.
+.TP 
+Beispiel:
+.RS
+# .newsrc Beispiel\-Datei
+.br
+news.software.b! 1\-666,669
+.br
+news.software.nntp: 1\-13245,13247,13249
+.br
+news.software.readers: 1\-19567,19571\-19597
+.RE
+.RE
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc\fP
+.fi
+.sp
+.RS
+Sicherungskopie von \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP
+.sp
+.RS
+Signatur
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.sigfixed\fP
+.sp
+.RS
+fixed part of a randomly generated signature
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/.inputhistory\fP
+.sp
+.RS
+history of last used strings
+.RE
+.PP
+
+\fI${TIN_INDEX_MAILDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.mail/\fP
+.sp
+.RS
+mailgroups index files
+.RE
+.PP
+
+.nf
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news${NNTPSERVER:+"\-$NNTPSERVER"}/\fP
+.fi
+.sp
+.RS
+newsgroups index files
+.RE
+.PP
+
+\fI${TIN_INDEX_SAVEDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.save/\fP
+.sp
+.RS
+saved newsgroups index files
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.mail\fP
+.sp
+.RS
+active file ("\fImail_group_name\fP \fImaxnum\fP \fIminnum\fP \fImailspool\fP"
+quadruples) of user's mailgroups (requires \fBtin\fP(1)  to be build with
+mh\-mail\-handling support).
+.TP 
+\fBmail_group_name\fP
+must be the pathname of the mailbox relative to field #4 with / changed to .
+.TP 
+\fBmaxnum\fP
+just put a large number here, something higher than the highest message in
+the mailbox
+.TP 
+\fBminnum\fP
+hier 0 angeben
+.TP 
+\fBmailspool\fP
+path of mail spool directory. This must be the full pathname to the root of
+the mail folder area.
+.TP 
+Beispiel:
+.RS
+Mail.inbox 12345 00000 /home/foo
+.br
+Mail.outbox 23456 00000 /home/foo
+.RE
+.sp
+This allows access to the 'inbox' and 'outbox' folders of user foo.  They
+are accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.save\fP
+.sp
+.RS
+active file of user's saved newsgroups, used by \fBtin \-R\fP.
+.RE
+.PP
+
+.\" tin uses inns old (pre 2.x) Path convention.
+.\" as with inn >= 2.2.x getting more and more popular
+.\" we should think about checking for the new Paths (/news/etc/)
+.\" ${TIN_LIBDIR\-/news/etc"}/attributes
+\fI/etc/tin/attributes\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP
+.sp
+.RS
+The group attributes files may be used to override some global settings from
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP on a per group basis. Order is
+important as last match counts; this allows one to refine attributes for
+narrowed scopes. Note that the \fIscope=<grouplist>\fP line has to be
+specified before the attributes are specified for that list and each
+attribute can only be set once per scope section. All attributes are set to
+a reasonable default so you only have to specify the attribute that you want
+to change. All toggle attributes are set by specifying ON/OFF. Otherwise,
+they function exactly as their global equivalents. The following group
+attributes are available:
+.TP 
+\fBscope\fP
+This changes the list of groups to which the attributes that follow will be
+applied. See the section NEWSGROUP LISTS & WILDCARDS in \fBtin\fP(1)  for the
+types of pattern that can be used here.
+.TP 
+\fBadd_posted_to_filter\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBadvertising\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBalternative_handling\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBask_for_metamail\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBauto_cc_bcc\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBauto_list_thread\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBauto_save\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBauto_select\fP
+Automatically perform the \fBGroupMarkUnselArtRead\fP ('\fBX\fP') command after
+entering the group.
+.TP 
+\fBbatch_save\fP
+Can be used to override the global setting in tinrc on a per group
+basis. For more information read section AUTOMATIC MAILING AND SAVING NEW
+NEWS in \fBtin\fP(1).
+.TP 
+\fBdate_format\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBdelete_tmp_files\fP
+If this is set to ON, then saved article files that have been post\-processed
+will be automatically deleted, otherwise the user will be asked whether to
+delete the post\-processed files. Automatic processing of marked articles
+using \fBGroupAutoSave\fP ('\fBS\fP') will suppress prompting.
+.TP 
+\fBeditor_format\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBfcc\fP
+Mailbox to save sent mails. The format of the mailbox is controlled via the
+tinrc \fBmailbox_format\fP variable.
+.TP 
+\fBfollowup_to\fP
+Set \*(rqFollowup\-To:\*(rq header to the specified group(s).
+.TP 
+\fBfrom\fP
+Identisch mit der tinrc\-Variable \fBmail_address\fP
+.TP 
+\fBgroup_catchup_on_exit\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBmail_8bit_header\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBmail_mime_encoding\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBmaildir\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBmailing_list\fP
+Used when a group is a mailing list. All responses to the group will be
+directed to this email address instead
+.TP 
+\fBmark_ignore_tags\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBmark_saved_read\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBmime_forward\fP
+Determines whether usenet articles are forwarded as attachment or
+inline. When set to OFF, the forwarded article will be included in the body
+of the mail, while setting this variable to ON will cause the article to be
+attached as a separate MIME part. Enabling \fBmime_forward\fP is particularly
+useful for articles consisting of multiple MIME parts such as PGP/MIME
+signed messages or being encoded in a different character set than your
+local one. It is also useful if the receiver should be able to operate on
+the entire forwarded article (i.e., view or save it without your
+comments). On the other hand, if you want to forward only some parts of the
+article or to insert 'inline' annotations, you might want to disable this
+option.  Currently mime_forward is forced if the article to be attached is a
+multipart MIME article, this may change in a future version.  Please note
+that for this option to have effect, the tinrc variable
+\fBinteractive_mailer\fP has to be set to 0 (which is the default).
+.TP 
+\fBmime_types_to_save\fP
+A comma separated list of MIME major/minor Content\-Types that will be saved
+when using the view/save and save/autosave features.  A single * can be used
+to wildcard the major and/or minor type and a ! as the first character in an
+entry will negate it, eg: image/*,!image/bmp,!text/html. Default is */*
+.TP 
+\fBnews_headers_to_display\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBnews_headers_to_not_display\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBnews_quote_format\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBorganization\fP
+This can be used to set the article header field \*(rqOrganization:\*(rq. It
+overrides the setting (if any) of organization in \fI/etc/tin/tin.defaults\fP
+and $\fBORGANIZATION\fP (or $\fBNEWSORG\fP on Apollo DomainOS). Note that some
+newsserver might still overwrite the \&\*(rqOrganization:\*(rq header.
+.TP 
+\fBpos_first_unread\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBpost_8bit_header\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBpost_mime_encoding\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBpost_process_type\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBpost_process_view\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBprint_header\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBprocess_only_unread\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBprompt_followupto\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBquote_chars\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBsavedir\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+.\" TODO: document option
+\fBsavefile\fP
+.TP 
+\fBshow_author\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBshow_info\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBshow_only_unread_arts\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBshow_signatures\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBsigdashes\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBsigfile\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBsignature_repost\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBsort_article_type\fP
+Identisch mit der tinrc\-Variable \fBsort_article_type\fP
+.TP 
+\fBsort_threads_type\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBstart_editor_offset\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBtex2iso_conv\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBthread_articles\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBthread_catchup_on_exit\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBthread_perc\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBtrim_article_body\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBverbatim_handling\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBwrap_on_next_unread\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBx_body\fP
+A piece of text that will be added at the start of a message body. If this
+string starts with a / or ~ then it is assumed to be the name of a file
+containing the text to insert.
+.TP 
+\fBx_comment_to\fP
+Insert \*(rqX\-Comment\-To:\*(rq header, this is only useful in FIDO groups.
+.TP 
+\fBx_headers\fP
+A string including header\-name and the contents of the header that will be
+automatically added when posting. If the string starts with a / or ~ then it
+is assumed to be the name of a file containing the header and its content to
+be inserted. If the string starts with a ! then what follows is assumed to
+be the path to a program to be executed to generate the header and its
+content.
+.TP 
+\fBquick_kill_scope\fP
+A comma\-separated list of newsgroup patterns (wildmat\-style) to which groups
+the filter rule added by \fBQuickFilterKill\fP will be applied.  If unset the
+default from the tinrc variable \fBdefault_filter_kill_global\fP will be used.
+.TP 
+\fBquick_kill_expire\fP
+Identisch mit der tinrc\-Variable \fBdefault_filter_kill_expire\fP
+.TP 
+\fBquick_kill_case\fP
+Identisch mit der tinrc\-Variable \fBdefault_filter_kill_case\fP
+.TP 
+\fBquick_kill_header\fP
+Identisch mit der tinrc\-Variable \fBdefault_filter_kill_header\fP
+.TP 
+\fBquick_select_scope\fP
+A comma\-separated list of newsgroup patterns (wildmat\-style) to which groups
+the filter rule added by \fBQuickFilterSelect\fP will be applied. If unset the
+default from the tinrc variable \fBdefault_filter_select_global\fP will be
+used.
+.TP 
+\fBquick_select_expire\fP
+Identisch mit der tinrc\-Variable \fBdefault_filter_select_expire\fP
+.TP 
+\fBquick_select_case\fP
+Identisch mit der tinrc\-Variable \fBdefault_filter_select_case\fP
+.TP 
+\fBquick_select_header\fP
+Identisch mit der tinrc\-Variable \fBdefault_filter_select_header\fP
+.TP 
+\fBispell\fP
+Path and options for \fBispell\fP(1)\-like spell\-checker, e.g. "aspell
+\-\-mode=email \-\-dont\-backup check"
+.TP 
+\fBmm_network_charset\fP
+Identisch mit der tinrc\-Variable gleichen Namens
+.TP 
+\fBundeclared_charset\fP
+Assume (broken) articles without MIME charset declaration have this charset
+\- default is US\-ASCII. This attribute works only on systems with working
+\fBiconv\fP(3), others might have to compile \fBtin\fP(1)  with
+\-\-disable\-mime\-strict\-charset.
+.PP
+.TP 
+Beispiel:
+.RS
+.nf
+# zusätzliche Header einfügen
+# ISO\-8859\-1 als Zeichensatz annehmen falls keiner angegeben wurde
+scope=*
+x_headers=~/.tin/headers
+undeclared_charset=ISO\-8859\-1
+
+# in *sources* set post process type to shar only
+scope=*sources*
+post_process_type=1
+
+# in *binaries* turn on full post processing,
+# remove tmp files and set Followup\-To: poster
+scope=*binaries*
+post_process_type=2
+delete_tmp_files=ON
+followup_to=poster
+
+# in fido.* newsgroups change quote_chars
+# and add X\-Comment\-To: line
+scope=fido.*
+quote_chars=%s>_
+x_comment_to=ON
+
+# in *.test newsgroups, don't append signature
+# and preset Subject
+scope=*.test
+sigfile=\-\-none
+x_headers=Subject: test \- ignore \- no reply
+
+# ISO\-2022\-JP\-2 als Zeichensatz annehmen
+scope=fj.*,japan.*
+undeclared_charset=ISO\-2022\-JP\-2
+.fi
+.RE
+.RE
+.PP
+
+.\" TODO: add missing descriptions and explain things in detail.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP
+.sp
+.RS
+The filter file is used to assign scores to certain articles. Based on the
+score an article can be filtered out (hidden) or marked hot. Empty lines or
+lines beginning with a '#' are ignored.
+.TP 
+\fBcomment\fP
+Every entry (rule) in the filter file might get a comment. Multiple lines
+are allowed (but only for comments yet). Every line must start with the
+"comment=" keyword. Comments must appear first in the rule.  Comment lines
+placed within a rule will be moved to the begin of the next rule. This might
+be changed in the future. Don't use '#' to mark comments as those lines are
+ignored and your comments will get lost on the next write of the file.
+.TP 
+\fBgroup\fP
+A comma\-separated list of newsgroup patterns (wildmat\-style) to which groups
+the filter rule will be applied. This line is mandatory!
+.TP 
+\fBcase\fP
+0=case\-sensitive, 1=case\-insensitive
+.TP 
+\fBscore\fP
+Score value of the rule; can also be one of the magic words "kill" or "hot".
+.TP 
+\fBsubj\fP
+Vergleiche mit \*(rqSubject:\*(rq
+.TP 
+\fBfrom\fP
+Match against \*(rqFrom:\*(rq.  \fBtin\fP(1)  converts the contents of the \*(rqFrom:\*(rq
+header to an old style e\-mail address, e.g. \*(rqsome@body.example (John Doe)\*(rq
+instead of \*(rqJohn Doe <some@body.example>\*(rq, before trying to match
+the patterns in the filter rule.
+.TP 
+\fBmsgid\fP
+Match against \*(rqMessage\-ID:\*(rq and full \*(rqReferences:\*(rq
+.TP 
+\fBmsgid_last\fP
+Match against \*(rqMessage\-ID:\*(rq and last \*(rqReferences:\*(rq entry only
+.TP 
+\fBmsgid_only\fP
+Vergleiche mit \*(rqMessage\-ID:\*(rq
+.TP 
+\fBrefs_only\fP
+Vergleiche mit \*(rqReferences:\*(rq
+.TP 
+\fBlines\fP
+Match against \*(rqLines:\*(rq, <num matches less than, >num matches more
+than.
+.TP 
+.\" TODO: document option in detail
+\fBgnksa\fP
+Match against \*(rqFrom:\*(rq address parser return codes.
+.TP 
+\fBxref\fP
+Match against \*(rqXref:\*(rq line. Before any matching is done the line is turned
+into the same format \*(rqNewsgroups:\*(rq has that is it is turned into a comma
+separated newsgroup list with all other information (i.e.  the article
+counter) removed.
+.TP 
+\fBtime\fP
+time_t value when rule expires
+.PP
+.TP 
+Beispiel:
+.RS
+.nf
+comment=mark all articles about tin, rtin,
+comment=tind, ktin or cdtin as hot
+group=*
+case=1
+score=hot
+subj=\eb(cd|[rk]?)?tin(d|pre)?[\-.0\-9]*\eb
+.fi
+.RE
+.RE
+.PP
+
+.\" TODO: LC_CTYPE has a higher priority as LC_MESSAGES, does this make sense?
+.nf
+\fI/etc/tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.fi
+.sp
+.RS
+Keymap\-file, containing "\fIkeyname\fP \fIvalue\fP \fI[value]\fP" pairs separated by
+spaces or tabs. Below is a list of all rebindable keynames and their
+defaults. If a keyname is bound to NULL it is unassigned.
+.sp
+.nf
+.ta \w'GroupSelThdIfUnreadSelected    'u +\w'SPACE'u +\w'SPACE'u
+\fBShellEscape\fP	!
+\fBSetRange\fP	#
+\fBLastPage\fP	$
+\fBToggleColor\fP	&
+\fBLastViewed\fP	\-
+\fBSearchRepeat\fP	\e
+\fBSearchSubjF\fP	/
+\fBSearchSubjB\fP	?
+\fBSearchAuthB\fP	A
+\fBSearchBody\fP	B
+\fBCatchupNextUnread\fP	C
+\fBEditFilter\fP	E
+\fBToggleHelpDisplay\fP	H
+\fBToggleInverseVideo\fP	I
+\fBLookupMessage\fP	L
+\fBOptionMenu\fP	M
+\fBPostponed\fP	O	^O
+\fBQuitTin\fP	Q
+\fBBugReport\fP	R
+\fBDisplayPostHist\fP	W
+\fBMarkThrUnread\fP	Z
+\fBFirstPage\fP	^
+\fBSearchAuthF\fP	a
+\fBCatchup\fP	c
+\fBHelp\fP	h
+\fBToggleInfoLastLine\fP	i
+\fBDown\fP	j	^N
+\fBUp\fP	k	^P
+\fBPrint\fP	o
+\fBQuit\fP	q
+\fBVersion\fP	v
+\fBPost\fP	w
+\fBMarkArtUnread\fP	z
+\fBQuickFilterSelect\fP	[
+\fBQuickFilterKill\fP	]
+\fBPipe\fP	|
+\fBScrollUp\fP	<
+\fBScrollDown\fP	>
+\fBPageUp\fP	b	^B	^U
+\fBPageDown\fP	^D	^F	SPACE
+\fBRedrawScr\fP	^L
+\fBPostponed\fP	^O
+\fBMenuFilterSelect\fP	^A
+\fBMenuFilterKill\fP	^K
+\fBMarkFeedRead\fP	^X
+\fBMarkFeedUnread\fP	^W
+.sp
+\fBAttachSelect\fP	^J	^M
+\fBAttachPipe\fP	p
+\fBAttachSave\fP	s
+\fBAttachTag\fP		t
+\fBAttachUntag\fP	U
+\fBAttachTagPattern\fP	=
+\fBAttachToggleTagged\fP	@
+.sp
+\fBConfigToggleAttrib\fP	TAB
+\fBConfigSelect\fP	^J	^M
+\fBConfigLastPage\fP	G
+\fBConfigNoSave\fP	Q
+\fBConfigScopeMenu\fP	S
+\fBConfigFirstPage\fP	g
+\fBConfigResetAttrib\fP	r
+.sp
+\fBFeedTag\fP	T
+\fBFeedArt\fP	a
+\fBFeedHot\fP	h
+\fBFeedPat\fP	p
+\fBFeedRepost\fP	r
+\fBFeedSupersede\fP	s
+\fBFeedThd\fP	t
+.sp
+\fBFilterEdit\fP	e
+\fBFilterSave\fP	s
+.sp
+\fBGroupNextUnreadArtOrGrp\fP	TAB
+\fBGroupReadBasenote\fP	^J	^M
+\fBGroupSelThd\fP	*
+\fBGroupDoAutoSel\fP	+
+\fBGroupToggleThdSel\fP	.
+\fBGroupSelThdIfUnreadSelected\fP	;
+\fBGroupSelPattern\fP	=
+\fBGroupReverseSel\fP	@
+\fBGroupCancel\fP	D
+\fBGroupToggleGetartLimit\fP	G
+\fBGroupMarkThdRead\fP	K
+\fBGroupNextUnreadArt\fP	N
+\fBGroupPrevUnreadArt\fP	P
+\fBGroupAutoSave\fP	S
+\fBGroupTagParts\fP	T
+\fBGroupUntag\fP	U
+\fBGroupMarkUnselArtRead\fP	X
+\fBGroupToggleSubjDisplay\fP	d
+\fBGroupGoto\fP	g
+\fBGroupListThd\fP	l
+\fBGroupMail\fP	m
+\fBGroupNextGroup\fP	n
+\fBGroupPrevGroup\fP	p
+\fBGroupToggleReadUnread\fP	r
+\fBGroupSave\fP	s
+\fBGroupTag\fP	t
+\fBGroupToggleThreading\fP	u
+\fBGroupRepost\fP	x
+\fBGroupUndoSel\fP	~
+.sp
+\fBHelpLastPage\fP	G
+\fBHelpFirstPage\fP	g
+.sp
+\fBPageReplyQuoteHeaders\fP	^E
+\fBPagePGPCheckArticle\fP	^G
+\fBPageToggleRaw\fP	^H
+\fBPageNextUnread\fP	TAB
+\fBPageNextThd\fP	^J	^M
+\fBPageToggleTabs\fP	^T
+\fBPageFollowupQuoteHeaders\fP	^W
+\fBPageToggleTex2iso\fP	"
+\fBPageToggleAllHeaders\fP	*
+\fBPageToggleRot\fP	%
+\fBPageToggleUue\fP	(
+\fBPageReveal\fP	)
+\fBPageSkipIncludedText\fP	:
+\fBPageTopThd\fP	<
+\fBPageBotThd\fP	>
+\fBPageCancel\fP	D
+\fBPageFollowup\fP	F
+\fBPageLastPage\fP	G
+\fBPageKillThd\fP	K
+\fBPageNextUnreadArt\fP	N
+\fBPagePrevUnreadArt\fP	P
+\fBPageReply\fP	R
+\fBPageAutoSave\fP	S
+\fBPageGroupSel\fP	T
+\fBPageViewUrl\fP	U
+\fBPageViewAttach\fP	V
+\fBPageToggleHighlight\fP	_
+\fBPageEditArticle\fP	e
+\fBPageFollowupQuote\fP	f
+\fBPageFirstPage\fP	g
+\fBPageListThd\fP	l
+\fBPageMail\fP	m
+\fBPageNextArt\fP	n
+\fBPagePrevArt\fP	p
+\fBPageReplyQuote\fP	r
+\fBPageSave\fP	s
+\fBPageTag\fP	t
+\fBPageGotoParent\fP	u
+\fBPageRepost\fP	x
+.sp
+\fBPgpEncSign\fP	b
+\fBPgpEncrypt\fP	e
+\fBPgpIncludekey\fP	i
+\fBPgpSign\fP	s
+.sp
+\fBPostAbort\fP	a
+\fBPostContinue\fP	c
+\fBPostCancel\fP	d
+\fBPostEdit\fP	e
+\fBPostPGP\fP	g
+\fBPostIspell\fP	i
+\fBPostIgnore\fP	i
+\fBPostMail\fP	m
+\fBPostPostpone\fP	o
+\fBPostPost\fP	p	y
+\fBPostSupersede\fP	s
+\fBPostSend\fP	s	y
+.sp
+\fBPostponeOverride\fP	Y
+\fBPostponeAll\fP	A
+.sp
+\fBPromptYes\fP	y	Y
+\fBPromptNo\fP	n	N
+.sp
+\fBSaveAppendFile\fP	a
+\fBSaveOverwriteFile\fP	o
+.sp
+\fBPProcNone\fP	n
+\fBPProcShar\fP	s
+\fBPProcYes\fP	y
+.sp
+\fBSelectEnterNextUnreadGrp\fP	TAB	n
+\fBSelectReadGrp\fP	^J	^M
+\fBSelectResetNewsrc\fP	^R
+\fBSelectSortActive\fP	.
+\fBSelectNextUnreadGrp\fP	N
+\fBSelectSubscribePat\fP	S
+\fBSelectUnsubscribePat\fP	U
+\fBSelectQuitNoWrite\fP	X
+\fBSelectSyncWithActive\fP	Y
+\fBSelectToggleDescriptions\fP	d
+\fBSelectGoto\fP	g
+\fBSelectMoveGrp\fP	m
+\fBSelectToggleReadDisplay\fP	r
+\fBSelectSubscribe\fP	s
+\fBSelectUnsubscribe\fP	u
+\fBSelectYankActive\fP	y
+\fBSelectMarkGrpUnread\fP	z	Z
+.sp
+\fBScopeSelect\fP	^J	^M
+\fBScopeEditAttributesFile\fP	E
+\fBScopeAdd\fP	a
+\fBScopeDelete\fP	d
+\fBScopeMove\fP	m
+\fBScopeRename\fP	r
+.sp
+\fBThreadReadNextArtOrThread\fP	TAB
+\fBThreadReadArt\fP	^J	^M
+\fBThreadSelArt\fP	*
+\fBThreadToggleArtSel\fP	.
+\fBThreadReverseSel\fP	@
+\fBThreadCancel\fP	D
+\fBThreadMarkArtRead\fP	K
+\fBThreadAutoSave\fP	S
+\fBThreadUntag\fP	U
+\fBThreadToggleSubjDisplay\fP	d
+\fBThreadMail\fP	m
+\fBThreadSave\fP	s
+\fBThreadTag\fP	t
+\fBThreadUndoSel\fP	~
+.sp
+\fBUrlSelect\fP	^J	^M
+.fi
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP
+.sp
+.RS
+This file provides short descriptions of each mailgroup. (requires \fBtin\fP(1) 
+to be build with mh\-mail\-handling support). Each line consist of two
+tab\-separated fields "\fImailgroupname\fP \fIone\-line description\fP".
+.TP 
+\fBmailgroupname\fP
+ist der Name der Newsgruppe
+.TP 
+\fBdescription\fP
+ist die zugehörige Kurzbeschreibung
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP
+.sp
+.RS
+"\fInntpserver\fP \fInewsrc\fP [\fIshortname\fP [\fI...\fP]]" pairs to use with the
+\&\*(rq\fB\-g\fP\*(rq command\-line switch.
+.TP 
+\fBNNTPServer\fP
+Vollständiger Name (FQDN) des Newsservers.
+.TP 
+\fBnewsrc\fP
+related newsrc.
+.TP 
+\fBshortname\fP
+nickname(s) for the nntpserver.
+.TP 
+Beispiel:
+.RS
+# Beispiel newsrctable\-Datei
+.br
+news.tin.org .newsrc\-tin.org tinorg
+.br
+news.example.org /tmp/nrc\-ex example ex
+.RE
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/posted\fP
+.sp
+.RS
+posting history
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/posted\fP
+.sp
+.RS
+Copy of all posted articles in \fBmbox\fP(5)  format. The filename can be
+changed by setting \fBposted_articles_file\fP.
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/postponed.articles\fP
+.sp
+.RS
+Vorrat an zurückgestellten Artikeln. Diese Datei benutzt das \fBmbox\fP(5)
+Format.
+.RE
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/newsgroups\fP
+.fi
+.sp
+.RS
+This file a copy of the servers newsgroups file which provides short
+descriptions of each newsgroup. It is automatically updated on startup
+except when using the \*(rq\fB\-X\fP\*(rqor \*(rq\fB\-q\fP\*(rq command\-line option and an old
+copy exists. Each line consist of two tab\-separated fields
+"\fIgroup.name\fP	\fIone\-line description\fP".
+.TP 
+\fBgroup.name\fP
+ist der Name der Newsgruppe
+.TP 
+\fBKurzbeschreibung\fP
+ist die zugehörige Kurzbeschreibung
+.RE
+.PP
+
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/serverrc\fP
+.fi
+.sp
+.RS
+File to store $\fBNNTPSERVER\fP and $\fBNNTPPORT\fP related data via a list of
+"\fIvariable\fP=\fIvalue\fP" pairs. Currently there are only two variables, both
+are not meant to be changed by the user.
+.TP 
+\fBversion\fP
+Interne Versionsnummer.
+.TP 
+\fBlast_newnews\fP
+Internal timestamp used by \fBtin\fP(1)  to keep track of new newsgroups on the
+server.
+.RE
+.PP
+
+.\" tin uses inns old (pre 2.x) Path convention.
+.\" as with inn >= 2.2.x getting more and more popular
+.\" we should think about checking for the new Paths (/news/etc/)
+.\" .IR ${TIN_LIBDIR\-"/news/etc"}/tinrc
+\fI/etc/tin/tinrc\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP
+.sp
+.RS
+At startup, \fBtin\fP(1)  reads in the configuration file. This contains a list
+of "\fIvariable\fP=\fIvalue\fP" pairs that can be used to configure the way
+\fBtin\fP(1)  works. If it exists, the global configuration file,
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fP is read first. After that, the user's own
+configuration file \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP is read.  The
+global file is useful for distributing system\-wide defaults to new users who
+have no private tinrc yet (see also \fB/etc/tin/tin.defaults\fP).
+.TP 
+\fBabbreviate_groupname\fP
+If ON abbreviate long newsgroup names at group selection level and article
+level (if necessary) like this: news.software.readers \->
+n.software.readers \-> n.s.readers \-> n.s.r.  Default is OFF.
+.TP 
+\fBadd_posted_to_filter\fP
+If ON add posted articles which start a new thread to filter for
+highlighting follow\-ups. Default is ON.
+.TP 
+\fBadvertising\fP
+Turn ON advertising in header (\*(rqUser\-Agent:\*(rq). Default is ON.
+.TP 
+\fBalternative_handling\fP
+If ON strip multipart/alternative messages automatically. Default is ON.
+.TP 
+\fBart_marked_deleted\fP
+Zeichen das anzeigt, dass ein Artikel gelöscht wurde. Standard is 'D'.
+.TP 
+\fBart_marked_inrange\fP
+The character used to show that an article is in a range. Default is '#'.
+.TP 
+\fBart_marked_return\fP
+The character used to show that an article will return as an unread article
+when the group is next entered. Default is '\-'.
+.TP 
+\fBart_marked_selected\fP
+The character used to show that an article/thread is auto\-selected (hot). 
+Default is '*'.
+.TP 
+\fBart_marked_recent\fP
+The character used to show that an article/thread is recent (not older than
+X days). See also \fBrecent_time\fP. Default is 'o'.
+.TP 
+\fBart_marked_unread\fP
+The character used to show that an article has not been read.  Default is
+\&'+'.
+.TP 
+\fBart_marked_read\fP
+The character used to show that an article was read. Default is ' '.
+.TP 
+\fBart_marked_killed\fP
+The character used to show that an article was killed. Default is 'K'. 
+\fBkill_level\fP must be set accordingly.
+.TP 
+\fBart_marked_read_selected\fP
+The character used to show that an article was hot before it was read. 
+Default is ':'. \fBkill_level\fP must be set accordingly.
+.TP 
+\fBStart des MIME\-Viewers bestätigen (ask_for_metamail)\fP
+If ON \fBtin\fP(1)  will ask before using a MIME viewer (\fBmetamail_prog\fP) to
+display MIME messages. This only occurs if a MIME viewer is set. Default is
+OFF.
+.TP 
+\fBauto_cc_bcc\fP
+Automatically put your name in the \*(rqCc:\*(rq and/or \*(rqBcc:\*(rq field when
+mailing an article. Default is No.
+.TP 
+\fBauto_list_thread\fP
+If ON automatically list thread when entering it using right arrow key. 
+Default is ON.
+.TP 
+\fBauto_reconnect\fP
+Reconnect to server automatically. Default is OFF.
+.TP 
+\fBauto_save\fP
+If ON articles/threads with \*(rqArchive\-name:\*(rq in header will be
+automatically saved with the Archive\-name & part/patch no and post processed
+if \fBpost_process_type\fP is set to something other than 'No'.  Default is
+OFF.
+.TP 
+\fBbatch_save\fP
+If set ON articles/threads will be saved in batch mode when save \&\*(rq\fB\-S\fP\*(rq
+or mail \*(rq\fB\-M\fP, \fB\-N\fP\*(rq is specified on the command line. Default is ON.
+.TP 
+\fBbeginner_level\fP
+If set ON a mini menu of the most useful commands will be displayed at the
+bottom of the screen for each level. Also a short posting etiquette will be
+displayed after composing an article. Default is ON.
+.TP 
+\fBcache_overview_files\fP
+If ON, create local copies of NNTP overview files. This can be used to
+considerably speed up accessing large groups when using a slow connection. 
+Default is OFF.
+.TP 
+\fBcatchup_read_groups\fP
+If set ON the user is asked when quitting if all groups read during the
+current session should be marked read. Default is OFF.
+.TP 
+\fBcol_back\fP
+Standard Hintergrundfarbe
+.TP 
+\fBcol_from\fP
+Farbe des Autors (From:)
+.TP 
+\fBcol_head\fP
+Farbe der Artikelheaderzeilen
+.TP 
+\fBcol_help\fP
+Farbe des Hilfstext
+.TP 
+\fBcol_invers_bg\fP
+Hintergrundfarbe für inversen Text
+.TP 
+\fBcol_invers_fg\fP
+Vordergrundfarbe für inversen Text
+.TP 
+\fBcol_markdash\fP
+Color of words emphasized like _this_. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_markslash\fP
+Color of words emphasized like /this/. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_markstar\fP
+Color of words emphasized like *this*. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_markstroke\fP
+Color of words emphasized like \-this\-. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_minihelp\fP
+Farbe des Minihilfemenü
+.TP 
+\fBcol_newsheaders\fP
+Farbe des angezeigten Headers
+.TP 
+\fBcol_normal\fP
+Standard Vordergrundfarbe
+.TP 
+\fBcol_quote\fP
+Farbe der zitierten Zeilen
+.TP 
+\fBcol_quote2\fP
+Farbe von zweifach zitierten Zeilen
+.TP 
+\fBcol_quote3\fP
+Farbe von =>3\-fach zitierten Zeilen
+.TP 
+\fBcol_response\fP
+Color of response counter. This is the text that says 'Response x of y' in
+the article viewer.
+.TP 
+\fBcol_signature\fP
+Farbe von Signaturen
+.TP 
+\fBcol_urls\fP
+Farbe der hervorgehobenen URLs
+.TP 
+\fBcol_verbatim\fP
+Farbe des wortgetreu darzustellenden Textes
+.TP 
+\fBcol_subject\fP
+Farbe der Subjectzeile
+.TP 
+\fBcol_text\fP
+Farbe der Textzeilen
+.TP 
+\fBcol_title\fP
+Farbe des Hilfe/Mail\-Zeichens
+.TP 
+\fBconfirm_choice\fP
+\fBtin\fP(1)  can ask for manual confirmation to protect the user. Available
+choices:
+.in +.5i
+.\" TODO: check if all affected commands are marked [after confirmation]
+\fBcommands:\fP Ask for confirmation before executing certain dangerous
+commands (e.g., \fBCatchup\fP ('\fBc\fP')). Commands that this affects are marked
+in this manual with '[after confirmation]'.
+.sp
+\fBquit:\fP You'll be asked to confirm that you wish to exit \fBtin\fP(1)  when
+you use the \fBQuit\fP ('\fBq\fP') command.
+.sp
+\fBselect:\fP Ask for confirmation before marking all not selected (with
+\fBGroupMarkUnselArtRead\fP ('\fBX\fP') command) articles as read.
+.in -.5i
+Default is commands & quit.
+.TP 
+\fBdate_format\fP
+Format string used for date representation. A description of the different
+format options can be found at \fBstrftime\fP(3).  \fBtin\fP(1)  uses
+\fBstrftime\fP(3)  when available and supports most format options in his
+fallback code.  Default is "%a, %d %b %Y %H:%M:%S".
+.TP 
+\fBdefault_art_search\fP
+.TP 
+\fBdefault_author_search\fP
+.TP 
+\fBdefault_config_search\fP
+The last article/author/config option that was searched for.
+.TP 
+\fBdefault_filter_days\fP
+Standard ist 28.
+.TP 
+\fBdefault_filter_kill_case\fP
+Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF
+= ignore case. Default is OFF.
+.TP 
+\fBdefault_filter_kill_expire\fP
+Default for quick (1 key) kill filter expire. ON = limit to
+\&'\fBdefault_filter_days\fP', OFF = don't ever expire. Default is OFF.
+.TP 
+\fBdefault_filter_kill_global\fP
+Default for quick (1 key) kill filter global. ON=apply to all groups,
+OFF=apply to current group. Default is ON.
+.TP 
+\fBdefault_filter_kill_header\fP
+Default for quick (1 key) kill filter header.
+.in +.3i
+.nf
+.ta \w'0,1   'u +\w'\'\'Message\-ID:\'\' & last \'\'References:\'\' entry only'u
+0	\*(rqSubject:\*(rq (Groß/Kleinschreibung beachten)
+1	\*(rqSubject:\*(rq (Groß/Kleinschreibung ignorieren)
+2	\*(rqFrom:\*(rq (Groß/Kleinschreibung beachten)
+3	\*(rqFrom:\*(rq (Groß/Kleinschreibung ignorieren)
+4	\*(rqMessage\-ID:\*(rq & alle \*(rqReferences:\*(rq Einträge
+5	\*(rqMessage\-ID:\*(rq & letzter \*(rqReferences:\*(rq Eintrag
+6	\*(rqMessage\-ID:\*(rq allein
+7	\*(rqLines:\*(rq
+.fi
+.in -.3i
+.TP 
+\fBdefault_filter_select_case\fP
+Default for quick (1 key) auto\-selection filter case. ON=filter case
+sensitive, OFF=ignore case. Default is OFF.
+.TP 
+\fBdefault_filter_select_expire\fP
+Default for quick (1 key) auto\-selection filter expire. ON = limit to
+\&'\fBdefault_filter_days\fP', OFF = don't ever expire. Default is OFF.
+.TP 
+\fBdefault_filter_select_global\fP
+Default for quick (1 key) auto\-selection filter global. ON=apply to all
+groups, OFF=apply to current group. Default is ON.
+.TP 
+\fBdefault_filter_select_header\fP
+Default for quick (1 key) auto\-selection filter header.
+.in +.3i
+.nf
+.ta \w'0,1   'u +\w'\'\'Message\-ID:\'\' & last \'\'References:\'\' entry only'u
+0	\*(rqSubject:\*(rq (Groß/Kleinschreibung beachten)
+1	\*(rqSubject:\*(rq (Groß/Kleinschreibung ignorieren)
+2	\*(rqFrom:\*(rq (Groß/Kleinschreibung beachten)
+3	\*(rqFrom:\*(rq (Groß/Kleinschreibung ignorieren)
+4	\*(rqMessage\-ID:\*(rq & alle \*(rqReferences:\*(rq Einträge
+5	\*(rqMessage\-ID:\*(rq & letzter \*(rqReferences:\*(rq Eintrag
+6	\*(rqMessage\-ID:\*(rq allein
+7	\*(rqLines:\*(rq
+.fi
+.in -.3i
+.TP 
+\fBdefault_goto_group\fP
+.TP 
+\fBdefault_group_search\fP
+.TP 
+\fBdefault_mail_address\fP
+.TP 
+\fBdefault_move_group\fP
+.TP 
+\fBdefault_pattern\fP
+.TP 
+\fBdefault_pipe_command\fP
+.TP 
+\fBdefault_post_newsgroups\fP
+.TP 
+\fBdefault_post_subject\fP
+.TP 
+\fBdefault_range_group\fP
+.TP 
+\fBdefault_range_select\fP
+.TP 
+\fBdefault_range_thread\fP
+.TP 
+\fBdefault_repost_group\fP
+.TP 
+\fBdefault_save_file\fP
+.TP 
+\fBdefault_save_mode\fP
+.TP 
+\fBdefault_select_pattern\fP
+.TP 
+\fBdefault_shell_command\fP
+.TP 
+\fBdefault_subject_search\fP
+.TP 
+\fBdraw_arrow\fP
+Allows groups/articles to be selected by an arrow '\->' if set ON or by
+an highlighted bar if set OFF.
+.TP 
+\fBeditor_format\fP
+The format string used to create the editor start command with parameters. 
+Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename (e.g.,
+/bin/vi +7 .article).
+.TP 
+\fBforce_screen_redraw\fP
+Specifies whether a screen redraw should always be done after certain
+external commands. Default is OFF.
+.TP 
+\fBgetart_limit\fP
+If \fBgetart_limit\fP is > 0 not more than \fBgetart_limit\fP articles/group
+are fetched from the server. If \fBgetart_limit\fP is < 0 \fBtin\fP(1)  will
+start fetching articles from your first unread minus absolute value of
+\fBgetart_limit\fP. Default is 0, which means no limit.
+.TP 
+\fBgoto_next_unread\fP
+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 
+\fBgroup_catchup_on_exit\fP
+If ON catchup group when leaving with the left arrow key. Default is ON.
+.TP 
+\fBgroupname_max_length\fP
+Maximum length of the names of newsgroups to be displayed so that more of
+the newsgroup description can be displayed. Default is 32.
+.TP 
+\fBhide_uue\fP
+If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then
+sections of uuencoded data will be shown with a single tag line showing the
+size and filename (much the same as a MIME attachment).  If set to 'Hide
+all' then any line that looks like uuencoded data will be folded into a tag
+line. This is useful when uuencoded data is split across more than one
+article but can also lead to false positives. This setting can also be
+toggled in the article viewer.  Default is 'No'.
+.TP 
+\fBinews_prog\fP
+Path, name and options of external \fBinews\fP(1).  If you are reading via NNTP
+the default value is "\-\-internal" (use built\-in NNTP inews), else it is
+"inews \-h". The article is passed to \fBinews_prog\fP on STDIN via '<
+article'.
+.TP 
+\fBinfo_in_last_line\fP
+If ON, show current group description or article subject in the last line
+(not in the pager and global menu) \- \fBToggleInfoLastLine\fP ('\fBi\fP' toggles
+setting). This facility is useful as the full width of the screen is
+available to display long subjects. Default is OFF.
+.TP 
+\fBinteractive_mailer\fP
+If greater than 0 your mailreader will be invoked earlier for reply so you
+can use more of its features (e.g. MIME, pgp, ...). 1 means include headers,
+2 means don't include headers (old use_mailreader_i=ON option). 0 turns off
+usage. This option has to suit \fBmailer_format\fP. Default is 0.
+.TP 
+\fBinverse_okay\fP
+If ON use inverse video for page headers and URL highlighting.  Default is
+ON.
+.TP 
+\fBkeep_dead_articles\fP
+If ON keep all failed postings in \fI${TIN_HOMEDIR:\-"$HOME"}/dead.articles\fP
+besides keeping the last failed posting in
+\fI${TIN_HOMEDIR:\-"$HOME"}/dead.article\fP. Default is ON.
+.TP 
+\fBkill_level\fP
+This option controls the processing and display of articles that are
+killed. There are 3 options, default is 0 (\fBKill only unread arts\fP).
+.RS +1i
+.IP 0 3
+\fBKill only unread arts\fP is the 'traditional' behavior of \fBtin\fP(1).  Only
+unread articles are killed once only by marking them read. As filtering only
+happens on unread articles with \fBkill_level\fP set to 0, \fBart_marked_killed\fP
+and \fBart_marked_read_selected\fP are only shown once. When you reenter the
+group the mark will be gone.
+.IP 1
+\fBKill all arts & show with K\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles are threaded as normal but they will be marked with
+\fBart_marked_killed\fP.
+.IP 2
+\fBKill all arts and never show\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles simply does not get displayed at all.
+.RE
+.TP 
+\fBmail_8bit_header\fP
+Allows 8bit characters unencoded in the header of mail message. Default is
+OFF. Turning it ON is effective only if \fBmail_mime_encoding\fP is also set to
+8bit. Leaving it OFF is safe for most users and compliant to Internet Mail
+Standard (\fBRFC5322\fP and \fBRFC2047\fP). Default is OFF.
+.TP 
+\fBmail_address\fP
+User's mail address (and full name), if not username@host. This is used when
+creating articles, sending mail and when \fBpgp\fP(1)  signing.
+.TP 
+\fBmail_mime_encoding\fP
+MIME encoding of the body in mail message, if necessary (8bit, base64,
+quoted\-printable, 7bit). Default is quoted\-printable.
+.TP 
+\fBmail_quote_format\fP
+Format of quote line when replying (via mail) to an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "In article %M you wrote:"
+.TP 
+\fBmailbox_format\fP
+Select one of the following mailbox\-formats: MBOXO (default, except on SCO),
+MBOXRD or MMDF (default on SCO). See \fBmbox\fP(5)  for more details on MBOXO
+and MBOXRD and \fBmmdf\fP(5)  for more details about MMDF.
+.TP 
+\fBmaildir\fP
+The directory where articles/threads are to be saved in \fBmbox\fP(5) 
+format. This feature is mainly for use with the \fBelm\fP(1)  mail program. It
+allows the user to save articles/threads/groups simply by giving '=' as the
+filename to save to. Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fP.
+.TP 
+\fBmailer_format\fP
+The format string used to create the mailer command with parameters that is
+used for mailing articles to other people. Default is '%M "%T" < %F'
+(e.g., /bin/mail "iain" < .article). The flexible format allows other
+mailers with different command line parameters to be used such as
+.in +.3i
+.nf
+sendmail \-oem \-t < %F
+elm \-s "%S" "%T" < "%F"
+claws\-mail \-\-compose "mailto:%T?subject=%S&insert=%F"
+.fi
+.in -.3i
+\fBinteractive_mailer\fP muss passend dazu gesetzt sein. Folgende Ersetzungen
+werden unterstützt:
+.in +.3i
+.nf
+.ta \w'%S'u +\w'subject\-field'u
+%F	Dateiname
+%M	default_mailer
+%S	Subject\-Feld
+%T	To\-Feld
+%U	Username
+%%	%
+.fi
+.in -.3i
+.TP 
+\fBmark_saved_read\fP
+If ON mark articles that are saved as read. Default is ON.
+.TP 
+\fBmark_ignore_tags\fP
+When this is ON, the \fBGroupMarkThdRead\fP ('\fBK\fP'), \fBThreadMarkArtRead\fP
+('\fBK\fP'), \fBMarkThdUnread\fP ('\fBZ\fP') at Group level and \fBMarkArtUnread\fP
+('\fBz\fP') at Thread level functions mark just the current article or thread,
+ignoring other tagged, (un)read articles. When OFF, the same function
+presents a menu with choices of the current thread or article, all tagged,
+unread articles, or nothing.
+.TP 
+\fBmetamail_prog\fP
+Path, name and options of external \fBmetamail\fP(1)  program used to view
+non\-textual parts of articles.  To use the built\-in viewer, set to
+\-\-internal. This is the default value when \fBmetamail\fP(1)  is not
+installed. Leave it blank if you don't want any automatic viewing of
+non\-textual attachments. The 'V' command can always be used to manually view
+any attachments. See also \fBask_for_metamail\fP.
+.TP 
+\fBmm_charset\fP
+Charset supported locally, which is also used for MIME header (charset
+parameter and charset name in header encoding) in mail and news postings. If
+\fBMIME_STRICT_CHARSET\fP is defined at the compile time, text in charset other
+than the value of this parameter is considered not displayable and
+represented as '?'. Otherwise, all character sets are regarded as compatible
+with the display. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined. If your system supports \fBiconv\fP(3), this option
+is disabled and you should use \fBmm_network_charset\fP instead.
+.TP 
+\fBmm_network_charset\fP
+Charset used for posting and MIME headers; replaces \fBmm_charset\fP. 
+Conversion between \fBmm_network_charset\fP and local charset (determined via
+\fBnl_langinfo\fP(3))  is done via \fBiconv\fP(3), if this function is not
+available on your system this option is disabled and you have to use
+\fBmm_charset\fP instead.  \fBmm_network_charset\fP is limited to one of the
+following charsets:
+.in +.3i
+US\-ASCII, ISO\-8859\-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8\-{R,U,RU}
+EUC\-{CN,JP,KR,TW}, ISO\-2022\-{CN,CN\-EXT,JP,JP\-1,JP\-2}, Big5, UTF\-8
+.in -.3i
+Not all values might work on your system, see \fBiconv_open\fP(3)  for more
+details. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined.
+.TP 
+\fBmono_markdash\fP
+Character attribute of words emphasized like _this_. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBmono_markslash\fP
+Character attribute of words emphasized like /this/. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBmono_markstar\fP
+Character attribute of words emphasized like *this*. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBmono_markstroke\fP
+Character attribute of words emphasized like \-this\-. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBnewnews\fP
+These are internal timers used by \fBtin\fP(1)  to keep track of new
+newsgroups. Do not change them unless you understand what they are for.
+.TP 
+\fBnews_headers_to_display\fP
+Which news headers you wish to see. If you want to see _all_ the headers,
+place an '*' as this value. This is the only way a wildcard can be used. If
+you enter 'X\-' as the value, you will see all headers beginning with 'X\-'
+(like X\-Alan or X\-Pape). You can list more than one by delimiting with
+spaces. Not defining anything turns off this option.
+.TP 
+\fBnews_headers_to_not_display\fP
+Same as \fBnews_headers_to_display\fP except it denotes the opposite. An
+example of using both options might be if you thought 'X\-' headers were A
+Good Thing(tm), but thought Alan and Pape were miscreants... well then you
+would do something like this: \fBnews_headers_to_display=X\-\fP
+\fBnews_headers_to_not_display=X\-Alan X\-Pape\fP Not defining anything turns off
+this option.
+.TP 
+\fBnews_quote_format\fP
+Format of quote line when posting/following up an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "%F wrote:".
+.TP 
+\fBnormalization_form\fP
+The normalization form which should be used to normalize unicode input.  The
+possible values are:
+.RS +1i
+.IP 0 3
+\fBNone\fP: keine Normalisierung
+.IP 1
+\fBNFKC\fP: Compatibility Decomposition, followed by Canonical Composition
+.IP 2
+\fBNFKD\fP: Compatibility Decomposition
+.IP 3
+\fBNFC\fP: Canonical Decomposition, followed by Canonical Composition
+.IP 4
+\fBNFD\fP: Canonical Decomposition
+.RE
+Some normalization modes are only available if they are supported by the
+library \fBtin\fP(1)  uses to do the normalization. Default is NFKC.
+.TP 
+\fBpos_first_unread\fP
+If ON put cursor at first unread article in group otherwise at last
+article.  Default is ON.
+.TP 
+\fBpost_8bit_header\fP
+Allows 8bit characters unencoded in the header of a news article, if set
+this also disables the generation of MIME\-headers when they are usually
+required. Default is OFF. Only enacted if \fBpost_mime_encoding\fP is also set
+to 8bit. In a number of local hierarchies where 8bit characters are used,
+using unencoded (raw)  8bit characters in header is acceptable and sometimes
+even recommended so that you need to check the convention adopted in the
+local hierarchy of your interest to determine what to do with this and
+\fBpost_mime_encoding\fP.
+.TP 
+\fBpost_mime_encoding\fP
+MIME encoding of the body in news message, if necessary. (8bit, base64,
+quoted\-printable, 7bit). Default is 8bit, which leads to no encoding. 
+base64 and quoted\-printable are usually undesired on usenet.
+.TP 
+\fBpost_process_view\fP
+If ON, then \fBtin\fP(1)  will start an appropriate viewer program to display
+any files that were post processed and uudecoded. The program is determined
+using the mailcap file.  Default is ON.
+.TP 
+\fBpost_process_type\fP
+This specifies whether to perform post processing on saved articles. 
+Because the shell archive may contain commands you may not want to be
+executed, be careful when extracting shell archives.  The following values
+are allowed:
+.RS +1i
+.IP 0 3
+\fBNo\fP (default), no post processing is done.
+.IP 1
+\fBShell archives\fP, unpacking of multi\-part \fBshar\fP(1)  files only. Because
+the shell archive may contain commands you may not want to be executed, be
+careful with this option.
+.IP 2
+\fBYes\fP, binary attachments and data will be decoded and saved.
+.RE
+.TP 
+\fBposted_articles_file\fP
+Keep posted articles in
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/\fP\fBposted_articles_file\fP.  If no filename is
+set then postings will not be saved.  Default is 'posted'.
+.TP 
+\fBprint_header\fP
+If ON, then the full article header is sent to the printer. Otherwise only
+the \*(rqSubject:\*(rq and \*(rqFrom:\*(rq fields are output. Default is OFF.
+.TP 
+\fBprinter\fP
+The printer program with options that is to be used to print articles. The
+default is \fBlpr\fP(1)  for BSD machines and \fBlp\fP(1)  for SysV
+machines. Printing from \fBtin\fP(1)  may have been disabled by the System
+Administrator.
+.TP 
+\fBprocess_only_unread\fP
+If ON only save/print/pipe/mail unread articles (tagged articles excepted). 
+Default is OFF.
+.TP 
+\fBprompt_followupto\fP
+If ON show empty \*(rqFollowup\-To:\*(rq header when editing an article.  Default
+is OFF.
+.TP 
+\fBquote_chars\fP
+.\" TODO: document %s
+The character used in quoting included text to article followups and mail
+replies. The '_' character represents a blank character and is replaced with
+\&' ' when read. Default is '>_'.
+.TP 
+\fBquote_style\fP
+This bit coded integer value controls how articles are to be quoted when
+following up or replying to them. Any of the following options can be
+combined by adding all relevant values. Default is 5, which means that quote
+characters are compressed and empty lines are quoted.
+.RS +1i
+.IP 1 3
+\fBCompress quotes\fP Compress quote characters together when quoting multiple
+times (for example, '> > >' will be turned into
+\&'>>>'). This option is on by default.
+.IP 2
+\fBQuote Signatures\fP This option is off by default. Signatures are always
+quoted regardless of this option when you are viewing an article in raw mode
+\fBPageToggleRaw\fP ('\fB^H\fP') and followup or reply to it. Signatures are never
+quoted regardless of this option when \fBshow_signatures\fP is off.
+.IP 4
+\fBLeerzeilen zitieren\fP Diese Option ist standardmäßig aktiviert.
+.RE
+.TP 
+\fBquote_regex\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote\fP. If \fBquote_regex\fP is blank, then
+\fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBquote_regex2\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote2\fP. If \fBquote_regex2\fP is blank, then
+\fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBquote_regex3\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote3\fP. If \fBquote_regex3\fP is blank, then
+\fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBrecent_time\fP
+If set to 0, this feature is deactivated, otherwise it means the number of
+days. Default is 2.
+.TP 
+\fBrender_bidi\fP
+If ON \fBtin\fP does the rendering of bi\-directional text. If OFF \fBtin\fP leaves
+the rendering of bi\-directional text to the terminal. Default is OFF.
+.TP 
+\fBreread_active_file_secs\fP
+The news \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file is
+reread at regular intervals to show if any new news has arrived. Default is
+1200. Setting this to 0 will disable this feature.
+.TP 
+\fBsavedir\fP
+Directory where articles/threads are saved. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP.
+.TP 
+\fBscore_limit_kill\fP
+If the score of an article is below or equal this value the article gets
+marked as killed.
+.TP 
+\fBscore_limit_select\fP
+If the score of an article is above or equal this value the article gets
+marked as hot.
+.TP 
+\fBscore_kill\fP
+Score of an article which should be killed, this must be <=
+\fBscore_limit_kill\fP.
+.TP 
+\fBscore_select\fP
+Score of an article which should be marked hot, this must be >=
+\fBscore_limit_select\fP.
+.TP 
+\fBscroll_lines\fP
+The number of lines that will be scrolled up/down in the article pager when
+using cursor\-up/down. The default is 1 (line\-by\-line). Set to 0 to get
+traditional page\-by\-page scrolling. Set to \-1 to get page\-by\-page scrolling
+where the top/bottom line is carried over onto the next page.  This setting
+supersedes show_last_line_prev_page=ON. Set to \-2 to get half\-page
+scrolling. This setting supersedes full_page_scroll=OFF.
+.TP 
+\fBshow_author\fP
+Which information about the author should be shown. Default is 2, authors
+full name.
+.RS +1i
+.IP 0 3
+\fBNichts\fP, nur die \*(rqSubject:\*(rq Zeile wird angezeigt.
+.IP 1
+\fBAddress\fP, \*(rqSubject:\*(rq line & the address part of the \*(rqFrom:\*(rq line are
+displayed.
+.IP 2
+\fBFull Name\fP, \*(rqSubject:\*(rq line & the authors full name part of the
+\&\*(rqFrom:\*(rq line are displayed (default).
+.IP 3
+\fBAddress and Name\fP, \*(rqSubject:\*(rq line & all of the \*(rqFrom:\*(rq line are
+displayed.
+.RE
+.TP 
+\fBshow_description\fP
+If ON show a short group description text after newsgroup name at the group
+selection level. The \*(rq\fB\-d\fP\*(rq command\-line flag will override the setting
+and turn descriptions off. The text used is taken from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP file and if supported (requires
+\fBtin\fP(1)  to be build with mh\-mail\-handling support) from
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP for mailgroups. Default is ON.
+.TP 
+\fBshow_info\fP
+Which information about the thread or article should be shown. Default is 1,
+show only the line count.
+.RS +1i
+.IP 0 3
+\fBNichts\fP. Keine weiteren Informationen werden angezeigt.
+.IP 1
+\fBLines\fP, in article listing the line count of an article will be displayed
+and in thread listing the line count of first (unread)  article will be
+displayed.
+.IP 2
+\fBScore\fP, in article listing the score of an article will be displayed and
+in thread listing the score of the thread will be displayed \- see also
+\fBthread_score\fP.
+.IP 3
+\fBZeilen und Bewertung\fP, Zeilenzahl und Bewertung zusätzlich anzeigen.
+.RE
+.TP 
+\fBshow_only_unread_arts\fP
+If ON show only new/unread articles otherwise show all articles. Default is
+ON.
+.TP 
+\fBshow_only_unread_groups\fP
+If ON show only subscribed groups that contain unread articles. Default is
+OFF.
+.TP 
+\fBshow_signatures\fP
+If OFF don't show signatures when displaying articles. Default is ON.
+.TP 
+\fBsigdashes\fP
+If ON prepend the signature with sigdashes. Default is ON.
+.TP 
+\fBsigfile\fP
+The path that specifies the signature file to use when posting, following up
+to or replying to an article. If the path is a directory then the signature
+will be randomly generated from files that are in the specified
+directory. If the path starts with a ! the program the path points to will
+be executed to generate a signature.  \fBtin\fP(1)  will pass the name of the
+current newsgroup as argument to the program. \-\-none will suppress any
+signature.  Default is \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP.
+.TP 
+\fBsignature_repost\fP
+If ON add signature to reposted articles. Default is ON.
+.TP 
+\fBslashes_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markslash\fP or \fBmono_markslash\fP. If
+\fBslashes_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBsort_article_type\fP
+This specifies how articles should be sorted. Sort by ascending Date (6) is
+the default. The following sort types are allowed:
+.RS +1i
+.IP 0 3
+\fBNothing\fP, don't sort articles.
+.IP 1
+\fBSubject: (absteigend)\fP, Artikel absteigend nach \*(rqSubject:\*(rq sortieren.
+.IP 2
+\fBSubject: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqSubject:\*(rq sortieren.
+.IP 3
+\fBFrom: (absteigend)\fP, Artikel absteigend nach \*(rqFrom:\*(rq sortieren.
+.IP 4
+\fBFrom: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqFrom:\*(rq sortieren.
+.IP 5
+\fBDate: (absteigend)\fP, Artikel absteigend nach \*(rqDate:\*(rq sortieren.
+.IP 6
+\fBDate: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqDate:\*(rq sortieren.
+.IP 7
+\fBScore (absteigend)\fP, Artikel absteigend nach Score sortieren.
+.IP 8
+\fBScore (aufsteigend)\fP, Artikel aufsteigend nach Score sortieren.
+.IP 9
+\fBLines: (absteigend)\fP, Artikel absteigend nach \*(rqLines:\*(rq sortieren.
+.IP 10
+\fBLines: (aufsteigend)\fP, Artikel aufsteigend nach \*(rqLines:\*(rq sortieren.
+.RE
+.TP 
+\fBsort_threads_type\fP
+This specifies how threads will be sorted. Sort by descending Score (1) is
+the default. The following sort types are allowed:
+.RS +1i
+.IP 0 3
+\fBNothing\fP, don't sort threads.
+.IP 1
+\fBScore (descending)\fP, sort threads by filtering score descending (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 
+\fBspamtrap_warning_addresses\fP
+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
+these strings. The matching is case\-insensitive.
+.TP 
+\fBstars_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markstar\fP or \fBmono_markstar\fP. If
+\fBstars_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBstart_editor_offset\fP
+Set ON if the editor used for posting, follow\-ups and bug reports has the
+capability of starting and positioning the cursor at a specified line within
+a file. Default is ON.
+.TP 
+\fBstrip_blanks\fP
+Strips the blanks from the end of each line therefore speeding up the
+display when reading on a slow terminal or via modem. Default is ON.
+.TP 
+\fBstrip_bogus\fP
+Bogus groups are groups that are present in your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file that no longer exist on the news
+server. There are 3 options. 0 means do nothing & always keep bogus groups. 
+1 means bogus groups will be permanently removed. 2 means that bogus groups
+will appear on the Group Selection Menu, prefixed with a 'D'. This allows
+you to unsubscribe from them as and when you wish. Default is 0 (Always
+Keep).
+.TP 
+\fBstrip_newsrc\fP
+If ON, then unsubscribed groups will be permanently removed from your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file. Default is OFF.
+.TP 
+\fBstrokes_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markstroke\fP or \fBmono_markstroke\fP.  If
+\fBstrokes_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBtex2iso_conv\fP
+Decode German style TeX umlaut codes to ISO If ON, show "a as Umlaut\-a,
+etc. Default is OFF. This behavior can also be toggled in the article viewer
+via \fBPageToggleTex2iso\fP ('\fB"\fP').
+.TP 
+\fBthread_articles\fP
+Defines which threading method to use. The choices are: 0) Don't thread, 1)
+Thread on Subject only 2) Thread on References only, 3) Thread on References
+then Subject (default)  4) Thread multipart articles on Subject.  5) Thread
+on Percentage Match of the Subjects It's also possible to set the threading
+type on a per group basis by setting the group attribute variable
+\fBthread_articles\fP to 0 \- 5 in the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP.
+.TP 
+\fBthread_perc\fP
+Defines how close the subjects must match while threading by Percentage
+Match for threads to be considered part of a single thread. This value is in
+the range 0 to 100. The default is 75.
+.TP 
+\fBthread_catchup_on_exit\fP
+If ON catchup group/thread when leaving with the left arrow key. Default is
+ON.
+.TP 
+\fBthread_score\fP
+How the total score of a thread is computed. Default is 0, the maximum score
+in this thread.
+.RS +1i
+.IP 0 3
+\fBMax\fP, the maximum score in this thread.
+.IP 1
+\fBSum\fP, the sum of all scores in this thread.
+.IP 2
+\fBAverage\fP, the average score in this thread.
+.RE
+.TP 
+\fBtranslit\fP
+If ON append //TRANSLIT to the first argument of \fBiconv_open\fP(3)  to enable
+transliteration. This means that when a character cannot be represented in
+the target character set, it can be approximated through one or several
+similarly looking characters. On systems where this extension doesn't exist,
+this option is disabled. Default is OFF.
+.TP 
+\fBtrim_article_body\fP
+Allows you to select how \fBtin\fP treats blank lines in article bodies. 
+Default is 0. This option does not affect lines within verbatim blocks.
+.RS +1i
+.IP 0 3
+\fBDon't trim article body\fP, do nothing.
+.IP 1
+\fBFührende Leerzeilen überspringen\fP.
+.IP 2
+\fBAbschliessende Leerzeilen überspr.\fP.
+.IP 3
+\fBSkip leading and trailing blank l.\fP, skip leading and trailing blank
+lines.
+.IP 4
+\fBCompact multiple between text\fP, replace multiple blank lines between
+textblocks with one blank line.
+.IP 5
+\fBCompact multiple and skip leading\fP, 4 + 1
+.IP 6
+\fBCompact multiple and skip trailing\fP, 4 + 2
+.IP 7
+\fBCompact mltpl., skip lead. & trai.\fP, 4 + 3
+.RE
+.TP 
+\fBunderscores_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markdash\fP or \fBmono_markdash\fP. If
+\fBundescores_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBunlink_article\fP
+If ON remove \fI${TIN_HOMEDIR:\-"$HOME"}/.article\fP after posting. Default is
+ON.
+.TP 
+\fBurl_handler\fP
+The program that will be run when launching URLs in the article viewer using
+\fBPageViewUrl\fP ('\fBU\fP'). The actual URL will be appended to this. Default is
+\fBurl_handler.pl %s\fP.
+.TP 
+\fBurl_highlight\fP
+Enable highlighting URLs in message body. Default is ON.
+.TP 
+\fBuse_color\fP
+If enabled \fBtin\fP(1)  uses ANSI\-colors. Default is OFF.
+.TP 
+\fBuse_keypad\fP
+Use scroll keys on keypad. Default is OFF.
+.TP 
+\fBuse_mouse\fP
+Allows the mouse button support in a \fBxterm\fP(1x)  to be enabled/disabled. 
+Default is OFF.
+.TP 
+\fBuse_slrnface\fP
+If enabled \fBslrnface\fP(1)  will be used to interpret the \*(rqX\-Face:\*(rq
+header. For this option to have any effect, \fBtin\fP(1)  must be running in an
+\fBxterm\fP(1x)  and \fBslrnface\fP(1)  must be in your $\fBPATH\fP. Default is OFF.
+.TP 
+\fButf8_graphics\fP
+If ON use UTF\-8 characters for indicator ('\->'), thread/attachment tree
+and ellipsis ('...'). Default is OFF.
+.TP 
+\fBverbatim_begin_regex\fP
+A regular expression that tin will use to find the begin of a verbatim
+block.  Default is #v+
+.TP 
+\fBverbatim_end_regex\fP
+A regular expression that tin will use to find the end of a verbatim block. 
+Default is #v\-
+.TP 
+\fBverbatim_handling\fP
+If ON verbatim blocks will be detected.  Default is ON
+.TP 
+\fBwildcard\fP
+Allows you to select how \fBtin\fP(1)  matches strings. The default is 0 and
+uses the wildmat notation, which is how this has traditionally been
+handled. Setting this to 1 allows you to use \fBperl\fP(1)  compatible regular
+expressions \fBpcre\fP(3).  You will probably want to update your filter file
+if you use this regularly. NB: Newsgroup names will always be matched using
+the wildmat notation.
+.TP 
+\fBword_h_display_marks\fP
+Should the leading and ending stars, slashes, strokes and dashes also be
+displayed, even when they are highlighting marks?
+.RS +1i
+.IP 0 3
+\fBnein\fP
+.IP 1
+ja, \fBMarkierung\fP anzeigen
+.IP 2
+ein \fBLeerzeichen\fP ausgeben
+.RE
+.TP 
+\fBword_highlight\fP
+Enable word highlighting. See \fBword_h_display_marks\fP for the options
+available. If \fBuse_color\fP is enabled the colors specified in
+\fBcol_markdash\fP, \fBcol_markslash\fP, \fBcol_markstar\fP and \fBcol_markstroke\fP are
+used for word highlighting else the character attributes specified in
+\fBmono_markdash\fP, \fBmono_markslash\fP, \fBmono_markstar\fP and \fBmono_markstroke\fP
+are used.
+.TP 
+\fBwrap_column\fP
+Sets the column at which a displayed article body should be wrapped.  If
+this value is equal to 0, it defaults to the current screen width.  If this
+value is greater than your current screen width the part off\-screen is not
+displayed. Thus setting this option to a large value can be used to disable
+wrapping. If this value is negative the wrap margin is the current screen
+width plus the given value (as long as the result is still positive,
+otherwise it will fall back to the current screen width). Default is 0,
+wrapping at the current screen width.
+.TP 
+\fBwrap_on_next_unread\fP
+If enabled a search for the next unread article will wrap around all
+articles to find also previous unread articles. If disabled the search stops
+at the end of the thread list. Default is ON.
+.TP 
+\fBxpost_quote_format\fP
+Format is the same as for \fBnews_quote_format\fP, this is used when answering
+to a crossposting to several groups with no \*(rqFollowup\-To:\*(rq set.
+.RE
+.PP
+
+\fI/etc/tin/tin.defaults\fP
+.sp
+.RS
+Yet another global configuration file with "\fIvariable\fP=\fIvalue\fP"
+pairs. This one is for the more general options which usually can't be
+controlled via \fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fP and/or
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP like resetting (to override the
+built\-in default) the \fInewslibdir\fP.
+.TP 
+\fBdomainname\fP
+Sets a global domain name used in From lines
+.TP 
+\fBorganization\fP
+Defines the name of your organization. $\fBORGANIZATION\fP overrides any
+specified value.
+.TP 
+\fBnewslibdir\fP
+Defines the default place for some configuration files, common values are
+\fI/usr/lib/news\fP, \fI/var/lib/news\fP, \fI/usr/local/lib/news\fP or
+\fI/news/db\fP. $\fBTIN_LIBDIR\fP overrides any specified value.
+.TP 
+\fBbugaddress\fP
+Defines the email address to which users can send bug reports using a
+built\-in function. The default points to a developers mailing list located
+at tin.org. You might want to change this address to one of your local
+administration if you want to deal with your lusers problems on your own.
+.TP 
+\fBinewsdir\fP
+Defines the directory containing of the \fBinews\fP(1)  executable
+.TP 
+\fBmm_charset\fP
+Default charset to be used in MIME's \*(rqContent\-Type:\*(rq
+header. $\fBMM_CHARSET\fP overrides any specified value.
+.TP 
+\fBpost_mime_encoding\fP
+Default encoding scheme use in MIME articles. 8bit might be the best value.
+.TP 
+\fBmail_mime_encoding\fP
+Default encoding scheme use in MIME letters. quoted\-printable is a good
+choice here.
+.TP 
+\fBdisable_gnksa_domain_check\fP
+Unregistrierte Top\-Level\-Domains zulassen
+.TP 
+\fBdisable_sender\fP
+Keinen \*(rqSender:\*(rq Header erzeugen. Falls \fBinews_prog\fP nicht auf \-\-internal
+steht wird die Einstellung ignoriert.
+.TP 
+\fBspooldir\fP
+Base of your newsspool (Bnews, Cnews and INN traditional spool style),
+common values are \fI/var/spool/news\fP, \fI/usr/spool/news\fP, \fI/news/spool\fP. 
+$\fBTIN_SPOOLDIR\fP overrides any specified value.
+.TP 
+\fBoverviewdir\fP
+Base of your NOV database \fBnewsoverview\fP(5)  (tradspool style; might be the
+same dir as \fIspooldir\fP), common values are \fI/var/spool/overview\fP,
+\fI/usr/spool/overview\fP, \fI/news/overview\fP. $\fBTIN_NOVROOTDIR\fP overrides any
+specified value.
+.TP 
+\fBoverviewfile\fP
+Name einer Overview\-Datei, übliche Namen sind \fI.overview\fP oder
+\fIover.view\fP.
+.TP 
+\fBoverviewfmtfile\fP
+Full pathname of your newssystem's overview.fmt file; usually the
+overview.fmt file is in \fInewslibdir\fP, so you only have to change this
+setting if your configuration differs.
+.TP 
+\fBactivefile\fP
+Full pathname of your newssystem's active file; usually the active file
+resides in \fInewslibdir\fP and is named \fIactive\fP, so you only have to change
+this setting if your configuration differs. $\fBTIN_ACTIVEFILE\fP overrides any
+specified value.
+.TP 
+\fBactivetimesfile\fP
+Full pathname of your newssystem's active.times file; usually the
+active.times file is \fInewslibdir\fP, so you only have to change this setting
+if your configuration differs.
+.TP 
+\fBnewsgroupsfile\fP
+Full pathname of your newssystem's newsgroups file; usually the newsgroups
+file is in \fInewslibdir\fP, so you only have to change this setting if your
+configuration differs.
+.TP 
+\fBsubscriptionsfile\fP
+Full pathname of your newssystem's subscriptions file; usually the
+subscriptions file is in \fInewslibdir\fP, so you only have to change this
+setting if your configuration differs.
+.RE
+.PP
+
+\fI/usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo\fP
+.sp
+.RS
+Übersetzung in die in $\fBLC_ALL\fP, $\fBLC_MESSAGES\fP oder $\fBLANG\fP angegebene
+Sprache
+.RE
+.PP
+
+.\" tin uses inns old (pre 2.x) Path convention.
+.\" as with inn >= 2.2.x getting more and more popular
+.\" we should think about checking for the new Paths
+.\" (described shown below).
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP
+.sp
+.RS
+This file lists the newsgroups that the local site receives. Each newsgroup
+should be listed only once. Each line specifies one group; within each
+newsgroup, articles are assigned unique names, which are monotonically
+increasing numbers.
+.sp
+.\" TODO: IIRC tin issues just a warning in that case?
+If an article is posted to newsgroups not mentioned in this file, those
+newsgroups are ignored.  If no valid newsgroups are specified, the article
+is rejected.
+.sp
+Each line consists of four space\-separated fields "\fIname\fP \fIhighmark\fP
+\fIlowmark\fP \fIflags\fP".
+.TP 
+\fBname\fP
+ist der Name der Newsgruppe
+.TP 
+\fBhighmark\fP
+die höchste Artikelnummer die je in der Gruppe benutzt wurde
+.TP 
+\fBlowmark\fP
+is the lowest article number in the group; this number is not guaranteed to
+be accurate, and should only be taken to be a hint. Note that because of
+article cancellations, there may be gaps in the numbering sequence. If the
+lowest article number is greater then the highest article number, then there
+are no articles in the newsgroup.
+.TP 
+\fBflags\fP
+can be one of those
+.RS
+.TP 
+\fBy\fP
+local postings are allowed
+.TP 
+\fBn\fP
+no local postings are allowed, only remote ones
+.TP 
+\fBm\fP
+die Gruppe ist moderiert und alle Postings müssen approved werden
+.TP 
+\fBj\fP
+articles in this group are not kept, but only passed on
+.TP 
+\fBx\fP
+in diese Gruppe darf nicht geposted werden
+.TP 
+\fB=foo.bar\fP
+Artikel werden auf dem Server in der Gruppe \*(rqfoo.bar\*(rq abgelegt
+.RE
+.TP 
+\fBtin\fP(1)
+only tries to read the file if you read directly from the local spool, if
+you read news via NNTP, \fBtin\fP(1)  uses the LIST (\fBRFC3977\fP) command
+instead.
+.RE
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/active.times\fP
+.sp
+.RS
+This file provides a chronological record of when newsgroups are created. It
+is normally updated by the local newsserver (e.g.  \fBinnd\fP(8))  whenever a
+new group is created. Each line consist of three space\-separated fields
+"\fIname\fP \fItime\fP \fIcreator\fP".
+.TP 
+\fBname\fP
+ist der Name der Newsgruppe
+.TP 
+\fBtime\fP
+is the time when the group was created, expressed as the number of seconds
+since the epoch.
+.TP 
+\fBcreator\fP
+die Mailadresse der Person die die Gruppe angelegt hat.
+.TP 
+\fBtin\fP(1)
+only tries to read the file if you read directly from the local spool, if
+you read news via NNTP, \fBtin\fP(1)  uses the NEWGROUPS (\fBRFC3977\fP) command
+instead.
+.RE
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP
+.sp
+.RS
+This file provides short descriptions of each newsgroup. It is normally
+updated by the local newsserver (e.g.  \fBinnd\fP(8))  whenever a new group is
+created. Each line consist of two tab\-separated fields
+"\fIgroup.name\fP	\fIone\-line description\fP".
+.TP 
+\fBgroup.name\fP
+ist der Name der Newsgruppe
+.TP 
+\fBKurzbeschreibung\fP
+ist die zugehörige Kurzbeschreibung
+.TP 
+\fBtin\fP(1)
+only tries to read the file if you read directly from the local spool, if
+you read news via NNTP, \fBtin\fP(1)  uses the LIST NEWSGROUPS (\fBRFC3977\fP)
+command instead.
+.RE
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/organization\fP
+.sp
+.RS
+This file specifies might hold a default organization to be used in the
+\&\*(rqOrganization:\*(rq header. $\fBORGANIZATION\fP has a higher priority if set.
+.RE
+.PP
+
+.\" is the Path correct? or is it /news/etc/overview.fmt
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/overview.fmt\fP
+.sp
+.RS
+This file specifies the organization of the news overview database (see also
+\fBnewsoverview\fP(5)).  The order of lines in this file is important; it
+determines the order in which the fields will appear in the database. See
+also \fBoverview.fmt\fP(5).  \fBtin\fP(1)  only tries to read the file if you read
+directly from the local spool, if you read news via NNTP, \fBtin\fP(1)  uses
+the LIST OVERVIEW.FMT (\fBRFC3977\fP) command instead.
+.RE
+.PP
+
+.\" is the Path correct? or is it /news/etc/subscriptions
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fP
+.sp
+.RS
+This file contains a list of newsgroups \- one per line \- which the client
+should subscribe to when the user has no ${TIN_HOMEDIR:\-"$HOME"}/.newsrc for
+the newsserver.  \fBtin\fP(1)  only tries to read the file if you read directly
+from the local spool, if you read news via NNTP, \fBtin\fP(1)  uses the LIST
+SUBSCRIPTIONS (\fBRFC6048\fP) command instead.
+.RE
+.PP
+
+.SH "SIEHE AUCH"
+\fBelm\fP(1), \fBinews\fP(1), \fBispell\fP(1), \fBlp\fP(1), \fBlpr\fP(1), \fBmetamail\fP(1) 
+\fBperl\fP(1), \fBpgp\fP(1), \fBrn\fP(1), \fBshar\fP(1), \fBslrnface\fP(1), \fBtin\fP(1),
+\fBxterm\fP(1x), \fBiconv\fP(3), \fBiconv_open\fP(3), \fBnl_langinfo\fP(3), \fBpcre\fP(3),
+\fBstrftime\fP(3), \fBsystem\fP(3), \fBmailcap\fP(4), \fBactive\fP(5), \fBmbox\fP(5),
+\fBmmdf\fP(5), \fBnewsoverview\fP(5), \fBoverview.fmt\fP(5), \fBinnd\fP(8), \fBRFC1524\fP,
+\fBRFC2045\fP, \fBRFC2046\fP, \fBRFC2047\fP, \fBRFC2048\fP, \fBRFC2980\fP, \fBRFC3977\fP,
+\fBRFC4643\fP, \fBRFC5322\fP, \fBRFC5536\fP, \fBRFC5537\fP, \fBRFC6048\fP
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/de.add tin-2.0.0/doc/l10n/de.add
--- tin-1.8.3/doc/l10n/de.add	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/de.add	2011-04-17 16:04:28.038705687 +0200
@@ -0,0 +1,5 @@
+PO4A-HEADER: mode=after; position=MAINTAINER;beginboundary=^\.SH
+.SH ÜBERSETZUNG
+.TP 1i
+Erika Mustermann <erika@example.org>
+.\"
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/de.po tin-2.0.0/doc/l10n/de.po
--- tin-1.8.3/doc/l10n/de.po	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/de.po	2011-08-22 00:21:02.773974368 +0200
@@ -0,0 +1,12430 @@
+# German translations for tin manpages
+# This file is distributed under the same license as the tin package.
+# Urs Janssen <urs@tin.org>, 2008-2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tin 1.9.5\n"
+"POT-Creation-Date: 2011-08-22 00:19+0200\n"
+"PO-Revision-Date: 2009-10-01 16:17+0200\n"
+"Last-Translator: Urs Janssen <urs@tin.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "tin"
+msgstr "tin"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "August 23rd, 2011"
+msgstr "23. August 2011"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "2.0.0"
+msgstr "2.0.0"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "A Usenet newsreader"
+msgstr "Usenet Newsreader"
+
+# type: SH
+#: ../tin.1:15 ../tin.5:11
+#, no-wrap
+msgid "NAME"
+msgstr "NAME"
+
+# type: Plain text
+#: ../tin.1:19
+msgid "tin, rtin - A Usenet newsreader"
+msgstr "tin, rtin - Ein Usenet Newsreader"
+
+# type: SH
+#: ../tin.1:19
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "ÜBERSICHT"
+
+# type: Plain text
+#: ../tin.1:49
+msgid ""
+"B<tin> [\\|[\\|B<-h>\\||\\|B<-H>\\||\\|B<-V>\\|]\\ \\|| [\\|[\\|[\\|B<-a>"
+"\\|] [\\|B<-dlnq>\\||\\|B<-Q>\\|] [\\|B<-ArzxX>\\|]\\|] [\\|[\\|B<-R>\\||\\|"
+"B<-S>\\|] \\|\\|B<-s> I<News_dir>\\|] [\\|B<-cuvZ>\\|] [\\|B<-4>\\||\\|B<-6>"
+"\\|] [\\|B<-N>\\||\\|B<-M> I<address>\\|] [\\|B<-o>\\||\\|B<-w>\\|]\\|] [\\|"
+"B<-D> I<debug_level>\\|] [\\|B<-G> I<article_limit>\\|] [\\|B<-f> "
+"I<newsrc_file>\\|] [\\|B<-g> I<server>\\|] [\\|B<-m> I<Mail_dir>\\|] [\\|B<-"
+"p> I<port>\\|] [\\|B<-I> I<index_dir>\\|]\\ \\|[I<newsgroup>\\|[\\|,.\\|.\\|."
+"\\|]\\|]\\|]"
+msgstr ""
+"B<tin> [\\|[\\|B<-h>\\||\\|B<-H>\\||\\|B<-V>\\|]\\ \\|| [\\|[\\|[\\|B<-a>"
+"\\|] [\\|B<-dlnq>\\||\\|B<-Q>\\|] [\\|B<-ArzxX>\\|]\\|] [\\|[\\|B<-R>\\||\\|"
+"B<-S>\\|] \\|\\|B<-s> I<News-Verz.>\\|] [\\|B<-cuvZ>\\|] [\\|B<-4>\\||\\|B<-"
+"6>\\|] [\\|B<-N>\\||\\|B<-M> I<Adresse>\\|] [\\|B<-o>\\||\\|B<-w>\\|]\\|] "
+"[\\|B<-D> I<Debuggrad>\\|] [\\|B<-G> I<Artikellimit>\\|] [\\|B<-f> I<newsrc-"
+"Datei>\\|] [\\|B<-g> I<Server>\\|] [\\|B<-m> I<Mail-Verz.>\\|] [\\|B<-p> "
+"I<Port>\\|] [\\|B<-I> I<index-Verz.>\\|]\\ \\|[I<Newsgruppe>\\|[\\|,.\\|.\\|."
+"\\|]\\|]\\|]"
+
+# type: SH
+#: ../tin.1:49 ../tin.5:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "BESCHREIBUNG"
+
+# type: Plain text
+#: ../tin.1:58
+msgid ""
+"B<tin> is a full-screen easy to use Usenet newsreader. It can read news "
+"locally (e.g., I</var/spool/news>) or remotely (B<rtin> or B<tin -r> option) "
+"via a NNTP (Network News Transport Protocol) server. It will automatically "
+"utilize NOV B<newsoverview>(5)  style index files if available locally or "
+"via the NNTP [X]OVER command (B<RFC2980>, B<RFC3977>)."
+msgstr ""
+"B<tin> ist ein einfach zu bedienender Newsreader für das Usenet. Er kann "
+"Artikel von einem lokalen (z. B. aus I</var/spool/news>) oder entfernten "
+"Server (B<rtin> oder B<tin -r> Option) mittels NNTP (Network News Transport "
+"Protocol) lesen. Er benutzt, sofern vorhanden, lokale NOV B<newsoverview>(5) "
+"Indexdateien bzw. den [X]OVER NNTP-Befehl (B<RFC2980>, B<RFC3977>)."
+
+# type: Plain text
+#: ../tin.1:64
+msgid ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level. Use the B<Help> ('B<h>')  command to view a "
+"list of the commands available at a particular level."
+msgstr ""
+"B<tin> hat vier unterschiedliche Arbeitsebenen: Auswahlebene, Gruppenebene, "
+"Threadebene und Artikelebene. Mit dem B<Help> ('B<h>') Befehl können die "
+"jeweils verfügbaren Befehle angezeigt werden."
+
+# type: Plain text
+#: ../tin.1:72
+msgid ""
+"On startup B<tin> will show a list of the newsgroups found in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>. An arrow '-E<gt>' or highlighted bar "
+"will point to the first newsgroup. Move to a group by using the terminal "
+"arrow keys (terminal dependent) or B<Down> ('B<j>')  and B<Up> ('B<k>'). Use "
+"PgUp/PgDn (terminal dependent) or B<PageUp> ('B<^U>') (CTRL-U) and "
+"B<PageDown> ('B<^D>')  (CTRL-D) to page up/down. Enter a newsgroup by "
+"pressing 'B<E<lt>CRE<gt>>'."
+msgstr ""
+"Am Anfang zeigt B<tin> eine Liste der Gruppen in I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc>. Ein Pfeil '-E<gt>' oder ein inverser Balken zeigt auf die "
+"erste Newsgruppe. Um zu einer Gruppe zu navigieren können die Cursor-Tasten "
+"(hängt vom verwendetem Terminal ab) oder B<Down> ('B<j>') und B<Up> ('B<k>') "
+"benutzt werden. Mit Bildhoch/Bildrunter (hängt vom verwendetem Terminal ab) "
+"oder B<PageUp> ('B<^U>') (CTRL-U) und B<PageDown> ('B<^D>') (CTRL-D) kann "
+"Seitenweise navigiert werden. Die ausgewählte Gruppe wird durch Drücken von "
+"'B<E<lt>CRE<gt>>' betreten."
+
+# type: Plain text
+#: ../tin.1:77
+msgid ""
+"The B<GroupNextUnreadArtOrGrp> ('B<E<lt>TABE<gt>>') key enters the next "
+"newsgroup with unread articles."
+msgstr ""
+"Durch Drücken der B<GroupNextUnreadArtOrGrp> ('B<E<lt>TABE<gt>>') Taste wird "
+"die nächste Newsgruppe mit ungelesenen Artikeln betreten."
+
+# type: SH
+#: ../tin.1:77
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "EXIT-STATUS"
+
+# type: Plain text
+#: ../tin.1:79
+msgid "Interactive mode:"
+msgstr "Interaktiver-Modus:"
+
+# type: TP
+#: ../tin.1:80 ../tin.1:90 ../tin.1:1066 ../tin.1:3230
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+# type: Plain text
+#: ../tin.1:83
+msgid "Successful program execution."
+msgstr "Programm erfolgreich beendet."
+
+# type: TP
+#: ../tin.1:83 ../tin.1:93 ../tin.1:3233
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+# type: Plain text
+#: ../tin.1:86 ../tin.1:96
+msgid "Usage, syntax, configuration file or network error."
+msgstr "Bedien-, Syntax-, Konfigurations- oder Netzwerk-Fehler."
+
+# type: Plain text
+#: ../tin.1:89
+msgid "Batch mode (''B<-Z>''):"
+msgstr "Batch-Modus (''B<-Z>''):"
+
+# type: Plain text
+#: ../tin.1:93
+msgid "No unread news"
+msgstr "Keine ungelesenen Nachrichten vorhanden"
+
+# type: TP
+#: ../tin.1:96 ../tin.1:3236
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+# type: Plain text
+#: ../tin.1:99
+msgid "Unread news"
+msgstr "Ungelesene Nachrichten vorhanden"
+
+# type: SH
+#: ../tin.1:102
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONEN"
+
+# type: TP
+#: ../tin.1:103
+#, no-wrap
+msgid "B<-4>"
+msgstr "B<-4>"
+
+# type: Plain text
+#: ../tin.1:106
+msgid "Force connecting via IPv4 to the remote NNTP server."
+msgstr "Verbindung via IPv4 zum NNTP Server erzwingen."
+
+# type: TP
+#: ../tin.1:106
+#, no-wrap
+msgid "B<-6>"
+msgstr "B<-6>"
+
+# type: Plain text
+#: ../tin.1:109
+msgid "Force connecting via IPv6 to the remote NNTP server."
+msgstr "Verbindung via IPv6 zum NNTP Server erzwingen."
+
+# type: TP
+#: ../tin.1:109
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+# type: Plain text
+#: ../tin.1:112
+msgid "Toggle ANSI color (default is off)."
+msgstr "ANSI-Farben ein/-ausschalten (Standard ist aus)."
+
+# type: TP
+#: ../tin.1:112
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+# type: Plain text
+#: ../tin.1:115
+msgid "Force authentication on initial connect."
+msgstr "Erzwinge Authentifikation beim Verbindungsaufbau."
+
+# type: TP
+#: ../tin.1:115
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+# type: Plain text
+#: ../tin.1:120
+msgid ""
+"Create/update index files for every group in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"newsrc> or file specified by the ''B<-f>'' option and mark all articles as "
+"read."
+msgstr ""
+"Erstelle bzw. aktualisiere Index-Dateien für alle Gruppen in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> bzw. der mittels ''B<-f>'' angegebenen "
+"Datei und markiere alle Artikel als gelesen."
+
+# type: TP
+#: ../tin.1:120
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+# type: Plain text
+#: ../tin.1:123
+msgid "Don't load newsgroup descriptions (interactive mode)."
+msgstr "Keine Gruppenbeschreibungen laden (Interaktiver-Modus)."
+
+# type: TP
+#: ../tin.1:123
+#, no-wrap
+msgid "B<-D>I< debug-level>"
+msgstr "B<-D>I< Debuggrad>"
+
+# type: Plain text
+#: ../tin.1:127
+msgid ""
+"Enter debug-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 = "
+"memory, 32 = attributes, 64 = misc)."
+msgstr ""
+"Debuggrad angeben (1 = NNTP, 2 = Filter, 4 = newsrc, 8 = Threading, 16 = "
+"Speicher, 32 = attributes, 64 = Diverses)."
+
+# type: TP
+#: ../tin.1:127
+#, no-wrap
+msgid "B<-f>I< file>"
+msgstr "B<-f>I< Datei>"
+
+# type: Plain text
+#: ../tin.1:131
+msgid ""
+"Use the specified file of subscribed to newsgroups in place of I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+msgstr ""
+"Benutze die angegebene newsrc-Datei anstelle von I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc>."
+
+# type: TP
+#: ../tin.1:131
+#, no-wrap
+msgid "B<-g>I< server>"
+msgstr "B<-g>I< Server>"
+
+# type: Plain text
+#: ../tin.1:135
+msgid ""
+"Use the server and newsrc specified in I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable>."
+msgstr ""
+"Zugehörigen Newsserver und newsrc-Datei aus I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable> benutzen."
+
+# type: TP
+#: ../tin.1:135
+#, no-wrap
+msgid "B<-G>I< article-limit>"
+msgstr "B<-G>I< Artikellimit>"
+
+# type: Plain text
+#: ../tin.1:138
+msgid "Limit the number of articles/group to retrieve from the server."
+msgstr "Beschränkt die Anzahl der zu ladenden Artikel pro Gruppe."
+
+# type: TP
+#: ../tin.1:138
+#, no-wrap
+msgid "B<-h>"
+msgstr "B<-h>"
+
+# type: Plain text
+#: ../tin.1:141
+msgid "Help listing all command-line options."
+msgstr "Kurzübersicht der verfügbaren Komandozeilenoptionen."
+
+# type: TP
+#: ../tin.1:141
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+# type: Plain text
+#: ../tin.1:145
+msgid ""
+"Brief introduction to B<tin> that is also shown the first time it is started."
+msgstr ""
+"Kurzeinführung in B<tin> welche auch beim allerersten Start ausgegeben wird."
+
+# type: TP
+#: ../tin.1:145
+#, no-wrap
+msgid "B<-I>I< dir>"
+msgstr "B<-I>I< Verzeichnis>"
+
+# type: Plain text
+#: ../tin.1:151
+msgid ""
+"Directory in which to store newsgroup index files. Default is I<"
+"${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news>.  This "
+"option has no effect if B<tin> retrieves its index files via NNTP and "
+"B<cache_overview_files> is turned off."
+msgstr ""
+
+# type: TP
+#: ../tin.1:151
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+# type: Plain text
+#: ../tin.1:161
+msgid ""
+"Get number of articles per group from the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/"
+"\"${TIN_ACTIVEFILE:-active}> file. If reading via NNTP this is done with the "
+"LIST command (B<RFC3977>). This might result in incorrect article counts but "
+"is usually faster than the default which is to read the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file (either directly or via "
+"LIST) and then check the article count via NNTP GROUP command (B<RFC3977>) "
+"''B<-ln>''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:161
+#, no-wrap
+msgid "B<-m>I< dir>"
+msgstr "B<-m>I< Verzeichnis>"
+
+# type: Plain text
+#: ../tin.1:164
+msgid "Mailbox directory to use. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+"Zu benutzendes Mailbox-Verzeichnis. Standard ist I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"Mail>."
+
+# type: TP
+#: ../tin.1:164
+#, no-wrap
+msgid "B<-M>I< user>"
+msgstr "B<-M>I< Benutzer>"
+
+# type: Plain text
+#: ../tin.1:168
+msgid ""
+"Mail unread articles to specified user for later reading. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+"Sende ungelesene Artikel an den angegebenen Benutzer um sie später lesen zu "
+"können. Für weitere Informationen siehe den Abschnitt \"AUTOMATISCHES MAILEN "
+"UND SPEICHERN VON UNGELESENEN ARTIKELN\"."
+
+# type: TP
+#: ../tin.1:168
+#, no-wrap
+msgid "B<-n>"
+msgstr "B<-n>"
+
+# type: Plain text
+#: ../tin.1:175
+msgid ""
+"Only load groups from the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file that are subscribed to in the user's I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc>. This allows a noticeable speedup when connecting via a slow "
+"line, but B<tin> can not tell which groups are moderated. See also ''B<-l>''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:175
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+# type: Plain text
+#: ../tin.1:179
+msgid ""
+"Mail unread articles to yourself for later reading. For more information "
+"read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+"Sende ungelesene Artikel an dich selbst um sie später lesen zu können. Für "
+"weitere Informationen siehe den Abschnitt \"AUTOMATISCHES MAILEN UND "
+"SPEICHERN VON UNGELESENEN ARTIKELN\"."
+
+# type: TP
+#: ../tin.1:179
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+# type: Plain text
+#: ../tin.1:183
+msgid ""
+"Quick post all postponed articles and exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+msgstr ""
+
+# type: TP
+#: ../tin.1:183
+#, no-wrap
+msgid "B<-p>I< port>"
+msgstr "B<-p>I< Port>"
+
+# type: Plain text
+#: ../tin.1:187
+msgid ""
+"Port to use if reading via NNTP (default is 119). This also overrides the "
+"environment variable $B<NNTPPORT> if set."
+msgstr ""
+"Zu benutzende Portnummer falls per NNTP gelesen wird (Standard ist 119). "
+"Übersteuert die Umgebungsvariable $B<NNTPPORT>."
+
+# type: TP
+#: ../tin.1:187
+#, no-wrap
+msgid "B<-q>"
+msgstr "B<-q>"
+
+# type: Plain text
+#: ../tin.1:190
+msgid "Don't check for new newsgroups."
+msgstr "Nicht prüfen ob neue Newsgruppen vorhanden sind."
+
+# type: TP
+#: ../tin.1:190
+#, no-wrap
+msgid "B<-Q>"
+msgstr "B<-Q>"
+
+# type: Plain text
+#: ../tin.1:194
+msgid ""
+"Quick start. Start B<tin> as quickly as possible. Currently this is "
+"equivalent to ''B<-nqd>''."
+msgstr ""
+"Schnellstart. B<tin> so schnell wie möglich starten, zur Zeit entspricht "
+"diese Option ''B<-nqd>''."
+
+# type: TP
+#: ../tin.1:194
+#, no-wrap
+msgid "B<-r>"
+msgstr "B<-r>"
+
+# type: Plain text
+#: ../tin.1:199
+msgid ""
+"Read news remotely from the default NNTP server specified in the environment "
+"variable $B<NNTPSERVER> or contained in the file I</etc/nntpserver>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:199
+#, no-wrap
+msgid "B<-R>"
+msgstr "B<-R>"
+
+# type: Plain text
+#: ../tin.1:202
+msgid "Read news saved by the ''B<-S>'' option."
+msgstr "Lese mittels ''B<-S>'' gespeicherte Artikel."
+
+# type: TP
+#: ../tin.1:202
+#, no-wrap
+msgid "B<-s>I< dir>"
+msgstr "B<-s>I< Verzeichnis>"
+
+# type: Plain text
+#: ../tin.1:206
+msgid ""
+"Save/read articles to/in directory. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"News>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:206
+#, no-wrap
+msgid "B<-S>"
+msgstr "B<-S>"
+
+# type: Plain text
+#: ../tin.1:210
+msgid ""
+"Save unread articles for later reading by the ''B<-R>'' option. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+"Speichere ungelesene Artikel zum späteren Lesen mittels ''B<-R>''. Für "
+"weitere Informationen siehe den Abschnitt \"AUTOMATISCHES MAILEN UND "
+"SPEICHERN VON UNGELESENEN ARTIKELN\"."
+
+# type: TP
+#: ../tin.1:210
+#, no-wrap
+msgid "B<-u>"
+msgstr "B<-u>"
+
+# type: Plain text
+#: ../tin.1:216
+msgid ""
+"Create/update index files for every group in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"newsrc> or file specified by the ''B<-f>'' option. This option is disabled "
+"if B<tin> retrieves its index files via a NNTP server and "
+"B<cache_overview_files> is turned off."
+msgstr ""
+
+# type: TP
+#: ../tin.1:216
+#, no-wrap
+msgid "B<-v>"
+msgstr "B<-v>"
+
+# type: Plain text
+#: ../tin.1:220
+msgid ""
+"Verbose mode for ''B<-c>'', ''B<-M>'', ''B<-N>'', ''B<-S>'', \\&''B<-u>'' "
+"and ''B<-Z>'' options."
+msgstr ""
+"Ausführliche Ausgabe für ''B<-c>'', ''B<-M>'', ''B<-N>'', ''B<-S>'', \\&''B<-"
+"u>'' und ''B<-Z>''-Optionen."
+
+# type: TP
+#: ../tin.1:220
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+# type: Plain text
+#: ../tin.1:223
+msgid "Print version and date information."
+msgstr "Versionsinformationen ausgeben."
+
+# type: TP
+#: ../tin.1:223
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+# type: Plain text
+#: ../tin.1:227
+msgid ""
+"Quick mode to post an article and then exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+msgstr ""
+"Schnell-Modus um nur einen Artikel zu posten. Nach Möglichkeit mit ''B<-n>'' "
+"kombinieren."
+
+# type: TP
+#: ../tin.1:227
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+# type: Plain text
+#: ../tin.1:230
+msgid "No posting mode. You cannot post articles if you use this option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:230
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+# type: Plain text
+#: ../tin.1:235
+msgid ""
+"No overwrite mode. I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> and files in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin> will not be overwritten but may be created "
+"if they don't exist."
+msgstr ""
+
+# type: TP
+#: ../tin.1:235
+#, no-wrap
+msgid "B<-z>"
+msgstr "B<-z>"
+
+# type: Plain text
+#: ../tin.1:240
+msgid ""
+"Only start B<tin> if there is any new/unread news. If there is news B<tin> "
+"will position cursor at first group with unread news. Useful for putting in "
+"login file."
+msgstr ""
+
+# type: TP
+#: ../tin.1:240
+#, no-wrap
+msgid "B<-Z>"
+msgstr "B<-Z>"
+
+# type: Plain text
+#: ../tin.1:246
+msgid ""
+"Check if there is any new/unread news and exit with appropriate status. If "
+"\\&''B<-v>'' option is specified the number of unread articles in each group "
+"is printed. An exit code 0 indicates no news, 1 that an error occurred and 2 "
+"that new/unread news exists. Useful for writing scripts."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:252
+msgid ""
+"B<tin> can also dynamically change its options by the B<OptionMenu> ('B<M>') "
+"command. Any changes are written to I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. "
+"For more information see section \"GLOBAL OPTIONS MENU AND TINRC "
+"CONFIGURABLE VARIABLES\" and B<tin>(5)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:257
+msgid ""
+"A list of groups can be specified after the other command-line options. This "
+"can be useful if you wish to yank in or subscribe to a hand-picked subset of "
+"the active newsgroups. See the section \"NEWSGROUP LISTS & WILDCARDS\" for "
+"the types of pattern that B<tin> understands."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:262
+msgid ""
+"If you specify a single group-name, or a wildcard that matches a single "
+"group, then you will automatically enter that group. Otherwise the normal "
+"group selection screen will appear, but with all the matching groups present "
+"too, as though you had yanked just those groups in."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:266
+msgid ""
+"With the ''B<-w>'' flag a given group-name is used as default group to post "
+"to. If more than one group or a wildcard is specified only the first group "
+"respectively the first group that matches is used."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:273
+msgid ""
+"Once you use B<SelectYankActive> ('B<y>') to yank in all active groups, or "
+"B<SelectToggleReadDisplay> ('B<r>') to toggle the read/unread status, then "
+"the command-line groups will be gone. You can use B<SelectSyncWithActive> "
+"('B<Y>') to reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file and get them back."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:278
+msgid ""
+"NB: With the ''B<-n>'' flag, only unsubscribed groups in the I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file (or the newsrc-file given by the "
+"\\&''B<-f>'' command-line switch or via I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable>) can be matched."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:283
+msgid ""
+"Command-line options have higher priority than attributes and tinrc "
+"options.  Thus, command-line option takes precedence over configured values."
+msgstr ""
+"Komandozeilenoptionen haben eine höhere Priorität als attributes und tinrc "
+"Optionen und übersteuern daher die konfigurierten Werte."
+
+# type: SH
+#: ../tin.1:283
+#, no-wrap
+msgid "USAGE"
+msgstr "GEBRAUCH"
+
+# type: SS
+#: ../tin.1:286
+#, no-wrap
+msgid "NEWS ADMINISTRATION"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:290
+msgid ""
+"Maintaining Netnews on large networks of machines can be a pretty time "
+"consuming job as I discovered when I was given the job of maintaining our "
+"news system and news users."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:300
+msgid ""
+"A user starting B<tin> for the first time can be automatically subscribed to "
+"a list of newsgroups that are deemed appropriate by the news administrator. "
+"The subscriptions file should be created in your news lib directory (i.e., I<"
+"${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>) and should have file permissions "
+"set to 0644. If you read news via NNTP, then your news server must support "
+"the LIST SUBSCRIPTIONS command. It is part of the NNTP List Extensions "
+"(B<RFC6048>) and all modern servers should understand it."
+msgstr ""
+
+# type: SS
+#: ../tin.1:300
+#, no-wrap
+msgid "SCREEN FORMAT"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:303
+msgid ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level."
+msgstr ""
+"B<tin> hat vier unterschiedliche Arbeitsebenen: Auswahlebene, Gruppenebene, "
+"Threadebene und Artikelebene."
+
+# type: Plain text
+#: ../tin.1:308
+msgid ""
+"At the Selection level the title displays (the name of the newsserver and) "
+"the number of subscribed groups (containing new unread articles). The "
+"newsgroups are displayed in the middle of the screen with the number of "
+"unread articles displayed on the same line in front."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:316
+#, no-wrap
+msgid ""
+"-E<gt>M    1     2  comp.security.announce  Announcements from the CERT abou\n"
+"  M    2     1  news.admin.announce     Announcements for news adminstra\n"
+"       3    22  news.software.misc      News-related software other than\n"
+"       4  1475  news.software.nntp      The Network News Transfer Protoc\n"
+"  X    5   124  news.software.readers   Discussion of software used to r\n"
+msgstr ""
+"-E<gt>M    1     2  comp.security.announce  Announcements from the CERT abou\n"
+"  M    2     1  news.admin.announce     Announcements for news adminstra\n"
+"       3    22  news.software.misc      News-related software other than\n"
+"       4  1475  news.software.nntp      The Network News Transfer Protoc\n"
+"  X    5   124  news.software.readers   Discussion of software used to r\n"
+
+# type: Plain text
+#: ../tin.1:319
+msgid ""
+"There may also be a character prefixing the line. An explanation follows:"
+msgstr "Eventuell steht am Anfang der Zeile noch eines der folgende Zeichen:"
+
+# type: TP
+#: ../tin.1:319
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+# type: Plain text
+#: ../tin.1:324
+msgid ""
+"This group is unsubscribed. To see only your subscribed groups use the "
+"B<SelectToggleReadDisplay> ('B<r>') or B<SelectYankActive> ('B<y>') toggle "
+"keys."
+msgstr ""
+
+# type: TP
+#: ../tin.1:324
+#, no-wrap
+msgid "B<M>"
+msgstr "B<M>"
+
+# type: Plain text
+#: ../tin.1:329
+msgid ""
+"This is a moderated group. Any posts you make will have to be approved by "
+"the group administrator before it will be made public. B<tin> will ask for "
+"confirmation before you post to a moderated group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:329
+#, no-wrap
+msgid "B<N>"
+msgstr "B<N>"
+
+# type: Plain text
+#: ../tin.1:338
+msgid ""
+"This is a new newsgroup which has been created since you last used B<tin>. "
+"New newsgroups are not subscribed to by default (However, see the "
+"$B<AUTOSUBSCRIBE> / $B<AUTOUNSUBSCRIBE> environment variables).  Subscribe "
+"to it in the normal way if you wish the group to continue to appear in your "
+"Selection Menu. Simply ignore new newsgroups and they will be gone the next "
+"time you start B<tin>. You will have to yank in all the groups to find them "
+"in a later session."
+msgstr ""
+
+# type: TP
+#: ../tin.1:338
+#, no-wrap
+msgid "B<D>"
+msgstr "B<D>"
+
+# type: Plain text
+#: ../tin.1:343
+msgid ""
+"This group no longer exists. If you no longer wish to see this group then "
+"unsubscribe from it in the normal way. This flag will only appear if you "
+"have set B<strip_bogus> to \"ask\" in the Options Menu."
+msgstr ""
+
+# type: TP
+#: ../tin.1:343
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+# type: Plain text
+#: ../tin.1:347
+msgid ""
+"You may no longer make posts to this group. Often a group will be superseded "
+"by a more appropriately named one."
+msgstr ""
+
+# type: TP
+#: ../tin.1:347
+#, no-wrap
+msgid "B<=>"
+msgstr "B<=>"
+
+# type: Plain text
+#: ../tin.1:352
+msgid ""
+"This group has been renamed and you may no longer post to it. If you do, "
+"then you will receive an error from your newsserver telling you the correct "
+"group to post to."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:357
+msgid ""
+"At the Group level the title contains the name of the group, the number of "
+"conversation threads, the threading method, the limit of articles to get, "
+"the total number of articles, the number of hot articles, the number of "
+"recent articles and the number of killed articles. I.e.:"
+msgstr ""
+
+# type: Plain text
+#.  FIXME - make this autocenter
+#: ../tin.1:361
+#, no-wrap
+msgid "            alt.sources (5B -50/23+ 0* 3o 0K)\n"
+msgstr "            alt.sources (5B -50/23+ 0* 3o 0K)\n"
+
+# type: Plain text
+#: ../tin.1:369
+msgid ""
+"The characters after the numbers are depending to the configuration and if "
+"your are in B<show_only_unread_arts> mode or not. Some numbers could be "
+"missing if the specific option is not enabled. It might also contain an 'M', "
+"\\&'X' or '=' (see above; doesn't work with the ''B<-n>'' command-line "
+"switch!) if the group is moderated, set to no posting or postings to it get "
+"redirected."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:380
+msgid ""
+"If a thread has unread articles in it it's marked with a "
+"B<art_marked_unread> in front of the total number of articles in the thread. "
+"If there are recent articles within the thread it might be marked with "
+"B<art_marked_recent> in front of the total number of articles in the thread "
+"- this is controlled by the B<recent_time> option. If a thread has hot "
+"articles in it (see also section \"FILTERING ARTICLES\") it's marked with "
+"B<art_marked_selected> in front of the total number of articles in the "
+"thread. The number of lines of the first (unread) article in the thread "
+"might also be shown right before the subject - this is controlled by the "
+"B<show_info> option."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:384
+#, no-wrap
+msgid "                de.admin.net-abuse.announce (11B 13+ 1* 1o 0K) M\n"
+msgstr "                de.admin.net-abuse.announce (11B 13+ 1* 1o 0K) M\n"
+
+# type: Plain text
+#: ../tin.1:389
+#, no-wrap
+msgid ""
+"-E<gt>   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg E<lt>l\n"
+"     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede E<lt>hwee\n"
+"     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede E<lt>hwee\n"
+"     4   *      368 E<lt>1997-11-12E<gt> Fremdcancel-FAQ     Thomas Roessler E<lt>ro\n"
+msgstr ""
+"-E<gt>   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg E<lt>l\n"
+"     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede E<lt>hwee\n"
+"     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede E<lt>hwee\n"
+"     4   *      368 E<lt>1997-11-12E<gt> Fremdcancel-FAQ     Thomas Roessler E<lt>ro\n"
+
+# type: Plain text
+#.  FIXME - add description of fields
+#: ../tin.1:394
+msgid ""
+"At the Thread level the screen usually (depends on the threading method "
+"used) looks like this:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:401
+#, no-wrap
+msgid ""
+"-E<gt>   1      [   7]  What is this funny tree in the thr  Robert F. Simmig\n"
+"     2      [  12]  +-E<gt>                                 Sephan Wagner E<lt>s\n"
+"     3      [ 230]  | `-E<gt>Tin thread-level (was: What is Bob Johnson E<lt>bob\n"
+"     4      [  22]  `-E<gt>tin threading menu               Brian Richardson\n"
+msgstr ""
+"-E<gt>   1      [   7]  What is this funny tree in the thr  Robert F. Simmig\n"
+"     2      [  12]  +-E<gt>                                 Sephan Wagner E<lt>s\n"
+"     3      [ 230]  | `-E<gt>Tin thread-level (was: What is Bob Johnson E<lt>bob\n"
+"     4      [  22]  `-E<gt>tin threading menu               Brian Richardson\n"
+
+# type: Plain text
+#.  FIXME - add description of fields
+#: ../tin.1:406
+msgid "At the Article level the page header has the following format:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:412
+#, no-wrap
+msgid ""
+"Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86\n"
+"Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59\n"
+"Urs Janssen E<lt>urs@akk.orgE<gt>        at Arbeitskreis Kultur und Kommunikati\n"
+msgstr ""
+"So, 28 Dez 1997 21:21:01    de.admin.news.groups      Thread   20 v. 86\n"
+"Zeilen 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL Artikel  47 von 59\n"
+"Urs Janssen E<lt>urs@akk.orgE<gt>       bei Arbeitskreis Kultur und Kommunikati\n"
+
+# type: Plain text
+#: ../tin.1:414
+#, no-wrap
+msgid "article-body\n"
+msgstr "Artikel-Körper\n"
+
+# type: SS
+#: ../tin.1:417
+#, no-wrap
+msgid "COMMON MOVING KEYS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:420
+msgid ""
+"This table shows the common keys used for moving around all levels within "
+"B<tin>."
+msgstr ""
+
+# type: ta
+#: ../tin.1:422
+#, no-wrap
+msgid "\\w'Beg. of list/article  'u +\\w'ANSI/vt100   'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:430
+#, no-wrap
+msgid ""
+"\tANSI/vt100\tOther Terminals\n"
+"Beg. of list/article\tB<Home>\tB<FirstPage> (B<^>)\n"
+"End of list/article\tB<End>\tB<LastPage> (B<$>)\n"
+"Page Up\tB<PgUp>\tB<PageUp> (B<u>, B<^U> or B<^B>)\n"
+"Page Down\tB<PgDn>\tB<PageDown> (B<^D> or B<^F> or B<E<lt>SPACEE<gt>>)\n"
+"Line Up\tB<Up arrow>\tB<Up> (B<k> or B<^P>)\n"
+"Line Down\tB<Down arrow>\tB<Down> (B<j> or B<^N>)\n"
+msgstr ""
+
+# type: SS
+#: ../tin.1:434
+#, no-wrap
+msgid "COMMON EDITING COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:439
+msgid ""
+"An emacs style editing package allows the easy editing of input strings.  An "
+"history list allows the easy reuse of previously entered strings.  In "
+"addition to the cursor keys, the following commands are available when "
+"editing a string:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:440
+#, no-wrap
+msgid "B<^A, ^E>"
+msgstr "B<^A, ^E>"
+
+# type: Plain text
+#: ../tin.1:443
+msgid "move to beginning or end of line, respectively."
+msgstr ""
+
+# type: TP
+#: ../tin.1:443
+#, no-wrap
+msgid "B<^F, ^B>"
+msgstr "B<^F, ^B>"
+
+# type: Plain text
+#: ../tin.1:446
+msgid "non-destructive move forward or back one location, respectively."
+msgstr ""
+
+# type: TP
+#: ../tin.1:446
+#, no-wrap
+msgid "B<^D>"
+msgstr "B<^D>"
+
+# type: Plain text
+#: ../tin.1:450
+msgid ""
+"delete the character currently under the cursor, or send EOF if no "
+"characters in the buffer."
+msgstr ""
+
+# type: TP
+#: ../tin.1:450
+#, no-wrap
+msgid "B<^H, E<lt>DELE<gt>>"
+msgstr "B<^H, E<lt>ENTFE<gt>>"
+
+# type: Plain text
+#: ../tin.1:453
+msgid "delete character left of the cursor."
+msgstr "Zeichen links vom Cursor löschen."
+
+# type: TP
+#: ../tin.1:453
+#, no-wrap
+msgid "B<^K>"
+msgstr "B<^K>"
+
+# type: Plain text
+#: ../tin.1:456
+msgid "delete from cursor to end of line."
+msgstr "Lösche vom Cursor bis zum Zeilenende."
+
+# type: TP
+#: ../tin.1:456
+#, no-wrap
+msgid "B<^P, ^N>"
+msgstr "B<^P, ^N>"
+
+# type: Plain text
+#: ../tin.1:459
+msgid "move through history, previous and next, respectively."
+msgstr ""
+
+# type: TP
+#: ../tin.1:459
+#, no-wrap
+msgid "B<^L, ^R>"
+msgstr "B<^L, ^R>"
+
+# type: Plain text
+#: ../tin.1:462
+msgid "redraw the current line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:462
+#, no-wrap
+msgid "B<E<lt>CRE<gt>>"
+msgstr "B<E<lt>CRE<gt>>"
+
+# type: Plain text
+#: ../tin.1:466
+msgid ""
+"places line on history list if non-blank, appends newline and returns to the "
+"caller."
+msgstr ""
+
+# type: TP
+#: ../tin.1:466
+#, no-wrap
+msgid "B<E<lt>ESCE<gt>>"
+msgstr "B<E<lt>ESCE<gt>>"
+
+# type: Plain text
+#: ../tin.1:471
+msgid "aborts the present editing operation."
+msgstr ""
+
+# type: SS
+#: ../tin.1:471
+#, no-wrap
+msgid "GLOBAL COMMANDS"
+msgstr "ALLGEMEINE BEFEHLE"
+
+# type: Plain text
+#: ../tin.1:474
+msgid ""
+"The following commands are available at all 4 menu levels and always have "
+"the same effect."
+msgstr ""
+"Die folgenden Befehle stehen in allen vier Ebenen zur Verfügung und bewirken "
+"überall das Gleichen."
+
+# type: TP
+#: ../tin.1:475 ../tin.1:1338 ../tin.1:1391
+#, no-wrap
+msgid "B<ShellEscape '!'>"
+msgstr "B<ShellEscape '!'>"
+
+# type: Plain text
+#: ../tin.1:480
+msgid ""
+"Shell escape. B<ShellEscape> by itself will launch a shell, B<ShellEscape> "
+"E<lt>commandE<gt> will run an external E<lt>commandE<gt>. This facility may "
+"have been disabled by the System Administrator."
+msgstr ""
+
+# type: TP
+#: ../tin.1:480
+#, no-wrap
+msgid "B<ToggleColor '&'>"
+msgstr "B<ToggleColor '&'>"
+
+# type: Plain text
+#: ../tin.1:483
+msgid "Toggle use of ANSI color."
+msgstr ""
+
+# type: TP
+#: ../tin.1:483
+#, no-wrap
+msgid "B<RedrawScr '^L'>"
+msgstr "B<RedrawScr '^L'>"
+
+# type: Plain text
+#: ../tin.1:486
+msgid "Redraw the current screen."
+msgstr "Bildschirminhalt neu aufbauen."
+
+# type: TP
+#: ../tin.1:486
+#, no-wrap
+msgid "B<ScrollUp 'E<lt>'>"
+msgstr "B<ScrollUp 'E<lt>'>"
+
+# type: Plain text
+#: ../tin.1:489
+msgid "Scroll screen up by one line."
+msgstr "Eine Zeile nach oben blättern (scrollen)."
+
+# type: TP
+#: ../tin.1:489
+#, no-wrap
+msgid "B<ScrollDown 'E<gt>'>"
+msgstr "B<ScrollDown 'E<gt>'>"
+
+# type: Plain text
+#: ../tin.1:492
+msgid "Scroll screen down by one line."
+msgstr "Eine Zeile nach unten blättern (scrollen)."
+
+# type: TP
+#: ../tin.1:492
+#, no-wrap
+msgid "B<Postponed 'O' '^O'>"
+msgstr "B<Postponed 'O' '^O'>"
+
+# type: Plain text
+#: ../tin.1:506
+msgid ""
+"Reload postponed article. If your system blocks the B<Postponed> key you "
+"must quote it by pressing 'B<^V>' (CTRL-V) first. The postpone-menu offers "
+"the following actions: B<PromptYes> ('B<y>') = reload and spawn editor; "
+"B<PostponeOverride> ('B<Y>') = post article (without spawning editor); "
+"B<PostponeAll> ('B<A>') = post all postponed articles (without spawning "
+"editor); B<PromptNo> ('B<n>') = skip this article; B<Quit> ('B<q>') = quit "
+"postponed menu. Currently there is no 'simple' way to delete a postponed "
+"article from the postponed-file, you have to use the following command "
+"sequence instead: reload it with B<Postponed>, enter editor with "
+"B<PromptYes>, quit editor, discard posting with B<Quit> "
+"('B<^O>''B<y>''B<q>'). See also ''B<-o>'' command-line switch."
+msgstr ""
+
+# type: TP
+#: ../tin.1:506 ../tin.1:1344 ../tin.1:1398
+#, no-wrap
+msgid "B<Help 'h'>"
+msgstr "B<Help 'h'>"
+
+# type: Plain text
+#: ../tin.1:512
+msgid ""
+"Help screen of commands available on the current menu. You can use "
+"B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> ('B<"
+"\\e>') to search on this screen. B<Quit> ('B<q>') returns to the menu."
+msgstr ""
+
+# type: TP
+#: ../tin.1:512 ../tin.1:1347 ../tin.1:1401
+#, no-wrap
+msgid "B<ToggleHelpDisplay 'H'>"
+msgstr "B<ToggleHelpDisplay 'H'>"
+
+# type: Plain text
+#: ../tin.1:515 ../tin.1:1350 ../tin.1:1404
+msgid "Toggle the display of help mini menu at the bottom of the screen."
+msgstr ""
+
+# type: TP
+#: ../tin.1:515
+#, no-wrap
+msgid "B<DisplayPostHist 'W'>"
+msgstr "B<DisplayPostHist 'W'>"
+
+# type: Plain text
+#: ../tin.1:521
+msgid ""
+"List articles posted by user. The date posted, the newsgroup and the subject "
+"are listed. You can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and "
+"B<SearchRepeat> ('B<\\e>') to search on this screen. B<Quit> ('B<q>') "
+"returns to the menu."
+msgstr ""
+
+# type: TP
+#: ../tin.1:521
+#, no-wrap
+msgid "B<Version 'v'>"
+msgstr "B<Version 'v'>"
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:526
+msgid "Print B<tin> version information."
+msgstr "Versions-Informationen ausgeben."
+
+# type: SS
+#: ../tin.1:526
+#, no-wrap
+msgid "NEWSGROUP SELECTION COMMANDS"
+msgstr ""
+
+# type: TP
+#: ../tin.1:527 ../tin.1:655 ../tin.1:905 ../tin.1:1069 ../tin.1:3242
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+# type: Plain text
+#: ../tin.1:530
+msgid "Select group 4."
+msgstr "Gruppe 4 auswählen."
+
+# type: TP
+#: ../tin.1:530
+#, no-wrap
+msgid "B<SelectResetNewsrc '^R'>"
+msgstr "B<SelectResetNewsrc '^R'>"
+
+# type: Plain text
+#: ../tin.1:534
+msgid ""
+"Reset I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. This will destroy all "
+"records of which articles have been read, so use this carefully."
+msgstr ""
+
+# type: TP
+#: ../tin.1:534 ../tin.1:676 ../tin.1:926
+#, no-wrap
+msgid "B<SetRange '#'>"
+msgstr "B<SetRange '#'>"
+
+# type: Plain text
+#: ../tin.1:538 ../tin.1:680 ../tin.1:930
+msgid ""
+"Choose a range of articles to be affected by the next command. See the "
+"section \"RANGES\" for more information."
+msgstr ""
+"Wählen Sie eine Reihe von Artikeln auf die der nächste Befehl angewendet "
+"wird. Siehe Abschnitt \"BEREICHE\" für weitere Informationen."
+
+# type: TP
+#: ../tin.1:538
+#, no-wrap
+msgid "B<SelectSortActive '.'>"
+msgstr "B<SelectSortActive '.'>"
+
+# type: Plain text
+#: ../tin.1:541
+msgid "Sort the list of newsgroups."
+msgstr "Liste vorhandener Newsgroups sortieren."
+
+# type: TP
+#: ../tin.1:541 ../tin.1:683 ../tin.1:933 ../tin.1:1123 ../tin.1:1335
+#: ../tin.1:1385
+#, no-wrap
+msgid "B<SearchRepeat '\\e'>"
+msgstr "B<SearchRepeat '\\e'>"
+
+# type: Plain text
+#: ../tin.1:544 ../tin.1:936 ../tin.1:1126 ../tin.1:1338 ../tin.1:1388
+msgid "Repeat the previous search."
+msgstr "Vorherige Suche wiederholen."
+
+# type: TP
+#: ../tin.1:544 ../tin.1:686 ../tin.1:936 ../tin.1:1126 ../tin.1:1329
+#: ../tin.1:1379
+#, no-wrap
+msgid "B<SearchSubjF '/'>"
+msgstr "B<SearchSubjF '/'>"
+
+# type: Plain text
+#: ../tin.1:547
+msgid "Search for a group by name and description (if displayed)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:547 ../tin.1:689 ../tin.1:939 ../tin.1:1129 ../tin.1:1332
+#: ../tin.1:1382
+#, no-wrap
+msgid "B<SearchSubjB '?'>"
+msgstr "B<SearchSubjB '?'>"
+
+# type: Plain text
+#: ../tin.1:550
+msgid "Backward search through the group names and descriptions."
+msgstr ""
+
+# type: TP
+#: ../tin.1:550
+#, no-wrap
+msgid "B<SelectReadGrp '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<SelectReadGrp '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:553
+msgid "Read current group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:553
+#, no-wrap
+msgid "B<SelectEnterNextUnreadGrp 'E<lt>TABE<gt>' 'n'>"
+msgstr "B<SelectEnterNextUnreadGrp 'E<lt>TABE<gt>' 'n'>"
+
+# type: Plain text
+#: ../tin.1:557
+msgid ""
+"Enter next group with unread news. Will wrap around to the beginning of the "
+"group selection list looking for unread groups."
+msgstr ""
+
+# type: TP
+#: ../tin.1:557 ../tin.1:764 ../tin.1:977 ../tin.1:1187
+#, no-wrap
+msgid "B<Catchup 'c'>"
+msgstr "B<Catchup 'c'>"
+
+# type: Plain text
+#: ../tin.1:561
+msgid ""
+"Make current group as all read [after confirmation] and move to the next "
+"group in the group selection list."
+msgstr ""
+
+# type: TP
+#: ../tin.1:561 ../tin.1:768 ../tin.1:981 ../tin.1:1191
+#, no-wrap
+msgid "B<CatchupNextUnread 'C'>"
+msgstr "B<CatchupNextUnread 'C'>"
+
+# type: Plain text
+#: ../tin.1:565
+msgid ""
+"Mark current group as all read [after confirmation] and enter the next "
+"unread group in the group selection list."
+msgstr ""
+
+# type: TP
+#: ../tin.1:565
+#, no-wrap
+msgid "B<SelectToggleDescriptions 'd'>"
+msgstr "B<SelectToggleDescriptions 'd'>"
+
+# type: Plain text
+#: ../tin.1:569
+msgid ""
+"Toggle display to show just the group name or the group name and the group "
+"descriptions."
+msgstr ""
+
+# type: TP
+#: ../tin.1:569 ../tin.1:781 ../tin.1:994 ../tin.1:1203
+#, no-wrap
+msgid "B<EditFilter 'E'>"
+msgstr "B<EditFilter 'E'>"
+
+# type: Plain text
+#: ../tin.1:572 ../tin.1:784 ../tin.1:997 ../tin.1:1206
+msgid "Edit the filter file and reload it afterwards."
+msgstr "Filter-Datei bearbeiten und danach anwenden."
+
+# type: TP
+#: ../tin.1:572
+#, no-wrap
+msgid "B<SelectGoto 'g'>"
+msgstr "B<SelectGoto 'g'>"
+
+# type: Plain text
+#: ../tin.1:576 ../tin.1:788
+msgid ""
+"Choose a new group by name. This command can be used to access any group, "
+"even those not currently yanked in."
+msgstr ""
+
+# type: TP
+#: ../tin.1:576 ../tin.1:791 ../tin.1:997 ../tin.1:1219 ../tin.1:1341
+#: ../tin.1:1394
+#, no-wrap
+msgid "B<ToggleInfoLastLine 'i'>"
+msgstr "B<ToggleInfoLastLine 'i'>"
+
+# type: Plain text
+#: ../tin.1:581
+msgid ""
+"Toggle the display of the description of the current newsgroup in the last "
+"line. This will not be available if B<tin> was started with the \\&''B<-d>'' "
+"option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:581 ../tin.1:795 ../tin.1:1000 ../tin.1:1222
+#, no-wrap
+msgid "B<ToggleInverseVideo 'I'>"
+msgstr "B<ToggleInverseVideo 'I'>"
+
+# type: Plain text
+#: ../tin.1:584 ../tin.1:798 ../tin.1:1003 ../tin.1:1225
+msgid "Toggle inverse video."
+msgstr ""
+
+# type: TP
+#: ../tin.1:584
+#, no-wrap
+msgid "B<SelectMoveGrp 'm'>"
+msgstr "B<SelectMoveGrp 'm'>"
+
+# type: Plain text
+#: ../tin.1:590
+msgid ""
+"Move the current group within the group selection list. By entering '1' the "
+"group will become the first displayed group in the list, by entering '8' the "
+"eighth group in the list etc. By entering '$' the group will be the last "
+"group displayed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:590 ../tin.1:815 ../tin.1:1239
+#, no-wrap
+msgid "B<OptionMenu 'M'>"
+msgstr "B<OptionMenu 'M'>"
+
+# type: Plain text
+#: ../tin.1:594 ../tin.1:819 ../tin.1:1243
+msgid ""
+"User configurable options menu (for more information see section \"GLOBAL "
+"OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\")."
+msgstr ""
+
+# type: TP
+#: ../tin.1:594
+#, no-wrap
+msgid "B<SelectNextUnreadGrp 'N'>"
+msgstr "B<SelectNextUnreadGrp 'N'>"
+
+# type: Plain text
+#: ../tin.1:597
+msgid "Positions the cursor on the next group with unread articles in it."
+msgstr ""
+
+# type: TP
+#: ../tin.1:597 ../tin.1:836 ../tin.1:1022 ../tin.1:1260
+#, no-wrap
+msgid "B<Quit 'q'>"
+msgstr "B<Quit 'q'>"
+
+# type: Plain text
+#: ../tin.1:601
+msgid ""
+"Quit B<tin> - ask the user to confirm if B<confirm_choice> is set "
+"accordingly."
+msgstr ""
+
+# type: TP
+#: ../tin.1:601 ../tin.1:839 ../tin.1:1025 ../tin.1:1263
+#, no-wrap
+msgid "B<QuitTin 'Q'>"
+msgstr "B<QuitTin 'Q'>"
+
+# type: Plain text
+#: ../tin.1:604 ../tin.1:842 ../tin.1:1028 ../tin.1:1266
+msgid "Quit B<tin> - don't ask the user to confirm."
+msgstr "Beendet B<tin> sofort, ohne Bestätigungsnachfrage."
+
+# type: TP
+#: ../tin.1:604
+#, no-wrap
+msgid "B<SelectToggleReadDisplay 'r'>"
+msgstr "B<SelectToggleReadDisplay 'r'>"
+
+# type: Plain text
+#: ../tin.1:609
+msgid ""
+"Toggle display of all subscribed to groups and just those groups containing "
+"unread articles. Command has no effect if groups were specified on the "
+"command-line when B<tin> was started."
+msgstr ""
+
+# type: TP
+#: ../tin.1:609 ../tin.1:845 ../tin.1:1028
+#, no-wrap
+msgid "B<BugReport 'R'>"
+msgstr "B<BugReport 'R'>"
+
+# type: Plain text
+#: ../tin.1:613 ../tin.1:849 ../tin.1:1032
+msgid ""
+"Mail a bug report or comment to E<lt>tin-bugs@tin.orgE<gt>. This is the best "
+"way of getting bugs fixed and features added/changed."
+msgstr ""
+"Einen Fehlerbericht oder Kommentar an E<lt>tin-bugs@tin.orgE<gt> senden. "
+"Dies ist der sinnvollste Weg um Fehler zu melden und behoben zu bekommen "
+"bzw. nach neuen Funktionen zu fragen."
+
+# type: TP
+#: ../tin.1:613
+#, no-wrap
+msgid "B<SelectSubscribe 's'>"
+msgstr "B<SelectSubscribe 's'>"
+
+# type: Plain text
+#: ../tin.1:616
+msgid "Subscribe to current group."
+msgstr "Ausgewählte Gruppe abonnieren."
+
+# type: TP
+#: ../tin.1:616
+#, no-wrap
+msgid "B<SelectSubscribePat 'S'>"
+msgstr "B<SelectSubscribePat 'S'>"
+
+# type: Plain text
+#: ../tin.1:621
+msgid ""
+"Subscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+msgstr ""
+
+# type: TP
+#: ../tin.1:621
+#, no-wrap
+msgid "B<SelectUnsubscribe 'u'>"
+msgstr "B<SelectUnsubscribe 'u'>"
+
+# type: Plain text
+#: ../tin.1:626
+msgid ""
+"Unsubscribe to current group. This can be used to remove bogus groups.  See "
+"B<strip_bogus> in the \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+"\" section."
+msgstr ""
+
+# type: TP
+#: ../tin.1:626
+#, no-wrap
+msgid "B<SelectUnsubscribePat 'U'>"
+msgstr "B<SelectUnsubscribePat 'U'>"
+
+# type: Plain text
+#: ../tin.1:631
+msgid ""
+"Unsubscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+msgstr ""
+
+# type: TP
+#: ../tin.1:631 ../tin.1:873 ../tin.1:1047 ../tin.1:1300
+#, no-wrap
+msgid "B<Post 'w'>"
+msgstr "B<Post 'w'>"
+
+# type: Plain text
+#: ../tin.1:637
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to B<PostEdit> ('B<e>') the article again, B<PostPostpone> "
+"('B<o>') it for later processing (see also ''B<-o>'' command-line switch) or "
+"discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:637
+#, no-wrap
+msgid "B<SelectQuitNoWrite 'X'>"
+msgstr "B<SelectQuitNoWrite 'X'>"
+
+# type: Plain text
+#: ../tin.1:640
+msgid "Quit B<tin> without saving any changes to the configuration."
+msgstr ""
+
+# type: TP
+#: ../tin.1:640
+#, no-wrap
+msgid "B<SelectYankActive 'y'>"
+msgstr "B<SelectYankActive 'y'>"
+
+# type: Plain text
+#: ../tin.1:645
+msgid ""
+"Yanks in all groups. Toggles the displayed groups between all the groups in "
+"the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file and just "
+"those that are subscribed to in I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:645
+#, no-wrap
+msgid "B<SelectSyncWithActive 'Y'>"
+msgstr "B<SelectSyncWithActive 'Y'>"
+
+# type: Plain text
+#: ../tin.1:649
+msgid ""
+"Reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file "
+"to see if any new news has arrived since starting B<tin>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:649
+#, no-wrap
+msgid "B<SelectMarkGrpUnread 'z' 'Z'>"
+msgstr "B<SelectMarkGrpUnread 'z' 'Z'>"
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:654
+msgid "Mark all articles in the current group as unread."
+msgstr "Alle Artikel in der aktuellen Gruppe als ungelesen markieren."
+
+# type: SS
+#: ../tin.1:654
+#, no-wrap
+msgid "GROUP INDEX COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:658
+msgid "Select article 4."
+msgstr "Artikel 4 auswählen."
+
+# type: TP
+#: ../tin.1:658 ../tin.1:908 ../tin.1:1072
+#, no-wrap
+msgid "B<MenuFilterSelect '^A'>"
+msgstr "B<MenuFilterSelect '^A'>"
+
+# type: Plain text
+#: ../tin.1:662 ../tin.1:912 ../tin.1:1076
+msgid ""
+"Auto select article(s) using a menu. Read the section \"FILTERING ARTICLES\" "
+"for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:662 ../tin.1:912 ../tin.1:1088
+#, no-wrap
+msgid "B<MenuFilterKill '^K'>"
+msgstr "B<MenuFilterKill '^K'>"
+
+# type: Plain text
+#: ../tin.1:666 ../tin.1:916 ../tin.1:1092
+msgid ""
+"Kill article(s) using a menu. Read the section \"FILTERING ARTICLES\" for "
+"more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:666 ../tin.1:916
+#, no-wrap
+msgid "B<MarkFeedRead '^X'>"
+msgstr "B<MarkFeedRead '^X'>"
+
+# type: Plain text
+#: ../tin.1:671 ../tin.1:921
+msgid ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as read. A prompt asks which type should "
+"be marked."
+msgstr ""
+
+# type: TP
+#: ../tin.1:671 ../tin.1:921
+#, no-wrap
+msgid "B<MarkFeedUnread '^W'>"
+msgstr "B<MarkFeedUnread '^W'>"
+
+# type: Plain text
+#: ../tin.1:676 ../tin.1:926
+msgid ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as unread. A prompt asks which type "
+"should be marked."
+msgstr ""
+
+# type: TP
+#: ../tin.1:680 ../tin.1:930 ../tin.1:1120
+#, no-wrap
+msgid "B<LastViewed '-'>"
+msgstr "B<LastViewed '-'>"
+
+# type: Plain text
+#: ../tin.1:683 ../tin.1:933 ../tin.1:1123
+msgid "Re-enter the last message that was viewed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:686
+msgid "Repeat the previous search"
+msgstr "Vorherige Suche wiederholen."
+
+# type: Plain text
+#: ../tin.1:689
+msgid "Search forward for specified subject."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:692
+msgid "Search backward for specified subject."
+msgstr ""
+
+# type: TP
+#: ../tin.1:692
+#, no-wrap
+msgid "B<GroupSelThd '*'>"
+msgstr "B<GroupSelThd '*'>"
+
+# type: Plain text
+#: ../tin.1:695
+msgid "Select current thread for later processing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:695
+#, no-wrap
+msgid "B<GroupDoAutoSel '+'>"
+msgstr "B<GroupDoAutoSel '+'>"
+
+# type: Plain text
+#: ../tin.1:699
+msgid ""
+"Selects all threads in current group. It is a shortcut for calling "
+"B<GroupSelPattern> with a pattern of ''*''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:699
+#, no-wrap
+msgid "B<GroupToggleThdSel '.'>"
+msgstr "B<GroupToggleThdSel '.'>"
+
+# type: Plain text
+#: ../tin.1:704
+msgid ""
+"Toggle selection of current thread. If at least one unread article, (but not "
+"every unread article) in the current thread is selected, then all unread "
+"articles become selected."
+msgstr ""
+
+# type: TP
+#: ../tin.1:704
+#, no-wrap
+msgid "B<GroupSelThdIfUnreadSelected ';'>"
+msgstr "B<GroupSelThdIfUnreadSelected ';'>"
+
+# type: Plain text
+#: ../tin.1:709
+msgid ""
+"For each thread in current group, if it at least one unread article is "
+"selected, all unread articles become selected. This is useful for auto-"
+"selection on author where reader wants to see entire thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:709
+#, no-wrap
+msgid "B<GroupSelPattern '='>"
+msgstr "B<GroupSelPattern '='>"
+
+# type: Plain text
+#: ../tin.1:715
+msgid ""
+"Prompts for a pattern with which to match on. All threads whose subjects "
+"match the pattern will be marked selected. A pattern of ''*'' will match all "
+"subjects. Entering just 'B<E<lt>CRE<gt>>' will re-use the last pattern that "
+"was entered."
+msgstr ""
+
+# type: TP
+#: ../tin.1:715
+#, no-wrap
+msgid "B<GroupReverseSel '@'>"
+msgstr "B<GroupReverseSel '@'>"
+
+# type: Plain text
+#: ../tin.1:718
+msgid "Reverse all selections on all articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:718
+#, no-wrap
+msgid "B<GroupUndoSel '~'>"
+msgstr "B<GroupUndoSel '~'>"
+
+# type: Plain text
+#: ../tin.1:724
+msgid ""
+"Undo all selections on all articles. It clears the toggle effect of "
+"B<GroupMarkUnselArtRead> ('B<X>') command. Thus after first doing a "
+"B<GroupMarkUnselArtRead>, one can then do B<GroupUndoSel> to reset articles. "
+"Thus, one can iteratively whittle down uninteresting threads."
+msgstr ""
+
+# type: TP
+#: ../tin.1:724 ../tin.1:954 ../tin.1:1146
+#, no-wrap
+msgid "B<Pipe '|'>"
+msgstr "B<Pipe '|'>"
+
+# type: Plain text
+#: ../tin.1:729 ../tin.1:959 ../tin.1:1151
+msgid ""
+"Pipe current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles into command. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:729 ../tin.1:1151
+#, no-wrap
+msgid "B<QuickFilterSelect '['>"
+msgstr "B<QuickFilterSelect '['>"
+
+# type: Plain text
+#: ../tin.1:738
+msgid ""
+"Auto select article(s) with a single key [after confirmation]. The defaults "
+"used for selection are based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header>.  Read "
+"the section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a "
+"full explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+
+# type: TP
+#: ../tin.1:738 ../tin.1:1160
+#, no-wrap
+msgid "B<QuickFilterKill ']'>"
+msgstr "B<QuickFilterKill ']'>"
+
+# type: Plain text
+#: ../tin.1:747
+msgid ""
+"Kill article(s) with a single key [after confirmation]. The defaults used "
+"for killing are based upon the following four tinrc config variables: "
+"B<default_filter_kill_case>, B<default_filter_kill_expire>, "
+"B<default_filter_kill_global> and B<default_filter_kill_header>.  Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+
+# type: TP
+#: ../tin.1:747
+#, no-wrap
+msgid "B<GroupReadBasenote '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<GroupReadBasenote '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:750
+msgid "Read current article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:750
+#, no-wrap
+msgid "B<GroupNextUnreadArtOrGrp 'E<lt>TABE<gt>'>"
+msgstr "B<GroupNextUnreadArtOrGrp 'E<lt>TABE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:753
+msgid "View next unread article or group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:753 ../tin.1:965 ../tin.1:1177
+#, no-wrap
+msgid "B<SearchAuthF 'a'>"
+msgstr "B<SearchAuthF 'a'>"
+
+# type: Plain text
+#: ../tin.1:757
+msgid ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:757 ../tin.1:970 ../tin.1:1180
+#, no-wrap
+msgid "B<SearchAuthB 'A'>"
+msgstr "B<SearchAuthB 'A'>"
+
+# type: Plain text
+#: ../tin.1:760 ../tin.1:973
+msgid "Author backward search. Otherwise, see B<SearchAuthF> ('B<a>') above."
+msgstr ""
+
+# type: TP
+#: ../tin.1:760 ../tin.1:973 ../tin.1:1183
+#, no-wrap
+msgid "B<SearchBody 'B'>"
+msgstr "B<SearchBody 'B'>"
+
+# type: Plain text
+#: ../tin.1:764 ../tin.1:977 ../tin.1:1187
+msgid ""
+"Search the body of all articles in group (can be slow). You can abort the "
+"search using B<Quit> ('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:768
+msgid ""
+"Mark all articles as read [after confirmation] then return to the group "
+"selection list. Move cursor to next group."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:772
+msgid ""
+"Mark all articles as read [after confirmation] and enter the next group with "
+"unread news."
+msgstr ""
+
+# type: TP
+#: ../tin.1:772
+#, no-wrap
+msgid "B<GroupToggleSubjDisplay 'd'>"
+msgstr "B<GroupToggleSubjDisplay 'd'>"
+
+# type: Plain text
+#: ../tin.1:776 ../tin.1:989
+msgid ""
+"Cycle the display of the author through all the possible options for the "
+"tinrc variable B<show_author>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:776
+#, no-wrap
+msgid "B<GroupCancel 'D'>"
+msgstr "B<GroupCancel 'D'>"
+
+# type: Plain text
+#: ../tin.1:781 ../tin.1:994 ../tin.1:1200
+msgid ""
+"Cancel (delete) or supersede (overwrite) the current article. It must have "
+"been posted by the same user. The cancel message can be seen in the "
+"newsgroup 'control' or 'control.cancel'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:784
+#, no-wrap
+msgid "B<GroupGoto 'g'>"
+msgstr "B<GroupGoto 'g'>"
+
+# type: TP
+#: ../tin.1:788
+#, no-wrap
+msgid "B<GroupToggleGetartLimit 'G'>"
+msgstr "B<GroupToggleGetartLimit 'G'>"
+
+# type: Plain text
+#: ../tin.1:791
+msgid "Toggle article/group limit."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:795
+msgid ""
+"Display the subject of the first article in the current thread in the last "
+"line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:798
+#, no-wrap
+msgid "B<GroupMarkThdRead 'K'>"
+msgstr "B<GroupMarkThdRead 'K'>"
+
+# type: Plain text
+#: ../tin.1:804
+msgid ""
+"Mark article/thread as read and move onto the next unread article/thread. If "
+"a range of articles/threads is set, the range will be marked as read instead "
+"of the current article/thread. When tagged articles/threads are present, a "
+"prompt asks how to proceed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:804
+#, no-wrap
+msgid "B<GroupListThd 'l'>"
+msgstr "B<GroupListThd 'l'>"
+
+# type: Plain text
+#: ../tin.1:807
+msgid "Open the thread under the current cursor position."
+msgstr ""
+
+# type: TP
+#: ../tin.1:807 ../tin.1:1009 ../tin.1:1231
+#, no-wrap
+msgid "B<LookupMessage 'L'>"
+msgstr "B<LookupMessage 'L'>"
+
+# type: Plain text
+#: ../tin.1:810 ../tin.1:1012 ../tin.1:1234
+msgid "Look up article by ''Message-ID:''."
+msgstr "Artikel anhand der ''Message-ID:'' nachschlagen."
+
+# type: TP
+#: ../tin.1:810
+#, no-wrap
+msgid "B<GroupMail 'm'>"
+msgstr "B<GroupMail 'm'>"
+
+# type: Plain text
+#: ../tin.1:815 ../tin.1:1017 ../tin.1:1239
+msgid ""
+"Mail current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to someone. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:819
+#, no-wrap
+msgid "B<GroupNextGroup 'n'>"
+msgstr "B<GroupNextGroup 'n'>"
+
+# type: Plain text
+#: ../tin.1:822
+msgid "Go to next group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:822
+#, no-wrap
+msgid "B<GroupNextUnreadArt 'N'>"
+msgstr "B<GroupNextUnreadArt 'N'>"
+
+# type: Plain text
+#: ../tin.1:825
+msgid "Go to next unread article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:825 ../tin.1:1017 ../tin.1:1249
+#, no-wrap
+msgid "B<Print 'o'>"
+msgstr "B<Print 'o'>"
+
+# type: Plain text
+#: ../tin.1:830 ../tin.1:1022 ../tin.1:1254
+msgid ""
+"Send current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to printer. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:830
+#, no-wrap
+msgid "B<GroupPrevGroup 'p'>"
+msgstr "B<GroupPrevGroup 'p'>"
+
+# type: Plain text
+#: ../tin.1:833
+msgid "Go to previous group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:833
+#, no-wrap
+msgid "B<GroupPrevUnreadArt 'P'>"
+msgstr "B<GroupPrevUnreadArt 'P'>"
+
+# type: Plain text
+#: ../tin.1:836
+msgid "Go to previous unread article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:839 ../tin.1:1025
+msgid "Return to previous level."
+msgstr ""
+
+# type: TP
+#: ../tin.1:842
+#, no-wrap
+msgid "B<GroupToggleReadUnread 'r'>"
+msgstr "B<GroupToggleReadUnread 'r'>"
+
+# type: Plain text
+#: ../tin.1:845
+msgid "Toggle the display between all articles and unread articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:849
+#, no-wrap
+msgid "B<GroupSave 's'>"
+msgstr "B<GroupSave 's'>"
+
+# type: Plain text
+#: ../tin.1:854 ../tin.1:1037 ../tin.1:1279
+msgid ""
+"Save current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles. See the section \"MAILING PIPING "
+"PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:854
+#, no-wrap
+msgid "B<GroupAutoSave 'S'>"
+msgstr "B<GroupAutoSave 'S'>"
+
+# type: Plain text
+#: ../tin.1:857 ../tin.1:1040 ../tin.1:1282
+msgid "Save marked articles automatically without further prompting."
+msgstr "Markierte Artikel automatisch ohne weiteres Nachfragen speichern."
+
+# type: TP
+#: ../tin.1:857
+#, no-wrap
+msgid "B<GroupTag 't'>"
+msgstr "B<GroupTag 't'>"
+
+# type: Plain text
+#: ../tin.1:862
+msgid ""
+"Toggle tag-status of current article / thread for B<GroupMail> ('B<m>')  / "
+"B<Pipe> ('B<|>') / B<Print> ('B<o>') / B<GroupSave> ('B<s>') / "
+"B<GroupRepost> ('B<x>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:862
+#, no-wrap
+msgid "B<GroupTagParts 'T'>"
+msgstr "B<GroupTagParts 'T'>"
+
+# type: Plain text
+#: ../tin.1:865
+msgid ""
+"Automatically tag in order all the parts of the current multi-part message."
+msgstr ""
+
+# type: TP
+#: ../tin.1:865
+#, no-wrap
+msgid "B<GroupToggleThreading 'u'>"
+msgstr "B<GroupToggleThreading 'u'>"
+
+# type: Plain text
+#: ../tin.1:870
+msgid ""
+"Cycle the threading mode through no threading, threading by subject, "
+"threading by references, threading on both subject and references, group "
+"multipart articles into a thread (''Subject:'' based)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:870
+#, no-wrap
+msgid "B<GroupUntag 'U'>"
+msgstr "B<GroupUntag 'U'>"
+
+# type: Plain text
+#: ../tin.1:873
+msgid "Untag all articles that were tagged."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:879
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it via B<PostPostpone> ('B<o>') for later processing (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:879
+#, no-wrap
+msgid "B<GroupRepost 'x'>"
+msgstr "B<GroupRepost 'x'>"
+
+# type: Plain text
+#: ../tin.1:885
+msgid ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to cross-post "
+"your own articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:885
+#, no-wrap
+msgid "B<GroupMarkUnselArtRead 'X'>"
+msgstr "B<GroupMarkUnselArtRead 'X'>"
+
+# type: Plain text
+#: ../tin.1:893
+msgid ""
+"Mark all unread articles that have not been selected as read, redraw screen "
+"to reflect changes and put index at the first thread to begin reading.  "
+"Pressing B<GroupMarkUnselArtRead> ('B<X>') again will toggle back to the way "
+"it was before. See B<GroupUndoSel> ('B<~>') command for clearing the toggle "
+"effect, leaving the group will also clear the toggle effect and make the "
+"changes permanent."
+msgstr ""
+
+# type: TP
+#: ../tin.1:893 ../tin.1:1054 ../tin.1:1313
+#, no-wrap
+msgid "B<MarkArtUnread 'z'>"
+msgstr "B<MarkArtUnread 'z'>"
+
+# type: Plain text
+#: ../tin.1:896
+msgid "Mark current article as unread."
+msgstr "Aktuellen Artikel als ungelesen markieren."
+
+# type: TP
+#: ../tin.1:896 ../tin.1:1059 ../tin.1:1316
+#, no-wrap
+msgid "B<MarkThdUnread 'Z'>"
+msgstr "B<MarkThdUnread 'Z'>"
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:903
+msgid ""
+"Mark current thread as unread. If a range of threads is set, the range will "
+"be marked as unread instead of the current thread. When tagged threads are "
+"present, a prompt asks how to proceed."
+msgstr ""
+
+# type: SS
+#: ../tin.1:903
+#, no-wrap
+msgid "THREAD LISTING COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:908
+msgid "Select article 4 within thread."
+msgstr "Artikel 4 aus dem Thread auswählen."
+
+# type: Plain text
+#: ../tin.1:939
+msgid "Search forward for a specified subject."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:942
+msgid "Search backwards for a specified subject."
+msgstr ""
+
+# type: TP
+#: ../tin.1:942
+#, no-wrap
+msgid "B<ThreadSelArt '*'>"
+msgstr "B<ThreadSelArt '*'>"
+
+# type: Plain text
+#: ../tin.1:945
+msgid "Select the current thread for later processing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:945
+#, no-wrap
+msgid "B<ThreadToggleArtSel '.'>"
+msgstr "B<ThreadToggleArtSel '.'>"
+
+# type: Plain text
+#: ../tin.1:948
+msgid "Toggle selection of current article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:948
+#, no-wrap
+msgid "B<ThreadReverseSel '@'>"
+msgstr "B<ThreadReverseSel '@'>"
+
+# type: Plain text
+#: ../tin.1:951
+msgid "Reverse article selections."
+msgstr "Artikelauswahl invertieren."
+
+# type: TP
+#: ../tin.1:951
+#, no-wrap
+msgid "B<ThreadUndoSel '~'>"
+msgstr "B<ThreadUndoSel '~'>"
+
+# type: Plain text
+#: ../tin.1:954
+msgid "Undo all selections on current thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:959
+#, no-wrap
+msgid "B<ThreadReadArt '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<ThreadReadArt '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:962
+msgid "Read current article within thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:962
+#, no-wrap
+msgid "B<ThreadReadNextArtOrThread 'E<lt>TABE<gt>'>"
+msgstr "B<ThreadReadNextArtOrThread 'E<lt>TABE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:965
+msgid "View next unread article within thread."
+msgstr "Nächsten ungelesenen Artikel im Thread anzeigen."
+
+# type: Plain text
+#: ../tin.1:970
+msgid ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line. The search will wrap over into the next thread if nothing is found in "
+"the current one."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:981
+msgid ""
+"Mark thread as read [after confirmation] and return to the group index "
+"page.  Move cursor to next thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:985
+msgid ""
+"Mark thread as read [after confirmation] and enter the next thread "
+"containing unread news."
+msgstr ""
+
+# type: TP
+#: ../tin.1:985
+#, no-wrap
+msgid "B<ThreadToggleSubjDisplay 'd'>"
+msgstr "B<ThreadToggleSubjDisplay 'd'>"
+
+# type: TP
+#: ../tin.1:989
+#, no-wrap
+msgid "B<ThreadCancel 'D'>"
+msgstr "B<ThreadCancel 'D'>"
+
+# type: Plain text
+#: ../tin.1:1000 ../tin.1:1222
+msgid "Display the subject of the current article in the last line."
+msgstr "Subject des geöffneten Artikels in der untersten Zeile anzeigen."
+
+# type: TP
+#: ../tin.1:1003
+#, no-wrap
+msgid "B<ThreadMarkArtRead 'K'>"
+msgstr "B<ThreadMarkArtRead 'K'>"
+
+# type: Plain text
+#: ../tin.1:1009
+msgid ""
+"Mark article as read and move onto the next unread article. If a range of "
+"articles is set, the range will be marked as read instead of the current "
+"article. When tagged articles are present, a prompt asks how to proceed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1012
+#, no-wrap
+msgid "B<ThreadMail 'm'>"
+msgstr "B<ThreadMail 'm'>"
+
+# type: TP
+#: ../tin.1:1032
+#, no-wrap
+msgid "B<ThreadSave 's'>"
+msgstr "B<ThreadSave 's'>"
+
+# type: TP
+#: ../tin.1:1037
+#, no-wrap
+msgid "B<ThreadAutoSave 'S'>"
+msgstr "B<ThreadAutoSave 'S'>"
+
+# type: TP
+#: ../tin.1:1040
+#, no-wrap
+msgid "B<ThreadTag 't'>"
+msgstr "B<ThreadTag 't'>"
+
+# type: Plain text
+#: ../tin.1:1044 ../tin.1:1286
+msgid ""
+"Toggle tag status of current article for mailing, piping, printing, saving "
+"or reposting."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1044
+#, no-wrap
+msgid "B<ThreadUntag 'U'>"
+msgstr "B<ThreadUntag 'U'>"
+
+# type: Plain text
+#: ../tin.1:1047
+msgid "Untag all tagged threads."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1054
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1059
+msgid ""
+"Mark current article in thread as unread. If a range of articles is set, the "
+"range will be marked as unread instead of the current article. When tagged "
+"articles are present, a prompt asks how to proceed."
+msgstr ""
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:1064
+msgid "Mark all articles in thread as unread."
+msgstr "Alle Artikel im aktuellen Thread as ungelesen markieren."
+
+# type: SS
+#: ../tin.1:1064
+#, no-wrap
+msgid "ARTICLE VIEWER COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1069
+msgid "Read the first (base) article in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1072
+msgid "Read response 4 in this thread."
+msgstr "Antwort 4 im diesem Thread lesen."
+
+# type: TP
+#: ../tin.1:1076
+#, no-wrap
+msgid "B<PageReplyQuoteHeaders '^E'>"
+msgstr "B<PageReplyQuoteHeaders '^E'>"
+
+# type: Plain text
+#: ../tin.1:1080
+msgid ""
+"Reply through mail to the author of the current article with a copy of the "
+"article with all headers included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1080
+#, no-wrap
+msgid "B<PagePGPCheckArticle '^G'>"
+msgstr "B<PagePGPCheckArticle '^G'>"
+
+# type: Plain text
+#: ../tin.1:1085
+msgid "Perform B<pgp>(1)  operations on article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1085
+#, no-wrap
+msgid "B<PageToggleRaw '^H'>"
+msgstr "B<PageToggleRaw '^H'>"
+
+# type: Plain text
+#: ../tin.1:1088
+msgid "Toggles the display mode (raw including all headers vs. cooked)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1092
+#, no-wrap
+msgid "B<PageToggleTabs '^T'>"
+msgstr "B<PageToggleTabs '^T'>"
+
+# type: Plain text
+#: ../tin.1:1095
+msgid "Toggle the TAB width between 4 and 8 characters."
+msgstr "Tabulatorbreite zwischen 4 und 8 Zeichen Umschalten."
+
+# type: TP
+#: ../tin.1:1095
+#, no-wrap
+msgid "B<PageFollowupQuoteHeaders '^W'>"
+msgstr "B<PageFollowupQuoteHeaders '^W'>"
+
+# type: Plain text
+#: ../tin.1:1099
+msgid ""
+"Post a followup to the current article with a copy of the article with all "
+"headers included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1099
+#, no-wrap
+msgid "B<PageToggleTex2iso '\"'>"
+msgstr "B<PageToggleTex2iso '\"'>"
+
+# type: Plain text
+#: ../tin.1:1103
+msgid ""
+"Toggle TeX to ISO decoding for current article. The default behavior is "
+"taken from the B<tex2iso_conv> variable in the tinrc file."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1103
+#, no-wrap
+msgid "B<PageToggleAllHeaders '*'>"
+msgstr "B<PageToggleAllHeaders '*'>"
+
+# type: TP
+#: ../tin.1:1106
+msgid ""
+"Toggles the display of all headers vs. headers in B<news_headers_to_display>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1106
+#, no-wrap
+msgid "B<PageToggleRot '%'>"
+msgstr "B<PageToggleRot '%'>"
+
+# type: Plain text
+#: ../tin.1:1109
+msgid "Toggle ROT-13 decoding for this article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1109
+#, no-wrap
+msgid "B<PageToggleUue '('>"
+msgstr "B<PageToggleUue '('>"
+
+# type: Plain text
+#: ../tin.1:1113
+msgid ""
+"Toggle the display of uuencoded sections. The default behavior is taken from "
+"the B<hide_uue> variable in the tinrc file."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1113
+#, no-wrap
+msgid "B<PageReveal ')'>"
+msgstr "B<PageReveal ')'>"
+
+# type: Plain text
+#: ../tin.1:1120
+msgid ""
+"The formfeed character (^L) is often used to hide 'spoilers' that the reader "
+"may not initially wish to see when viewing an article. Any text after a "
+"formfeed is not displayed. This key-press acts like a reveal key and turns "
+"the hidden text back on. Scrolling down will also reveal the text, scrolling "
+"up will hide it again."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1129
+msgid "Forward search the text of this article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1132
+msgid "Backward search the text of this article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1132
+#, no-wrap
+msgid "B<PageSkipIncludedText ':'>"
+msgstr "B<PageSkipIncludedText ':'>"
+
+# type: Plain text
+#: ../tin.1:1137
+msgid ""
+"Skip to the end of the next quoted text-block in this article. Quoted text "
+"is everything which matches B<quote_regex>, B<quote_regex2> or "
+"B<quote_regex3>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1137
+#, no-wrap
+msgid "B<PageTopThd 'E<lt>'>"
+msgstr "B<PageTopThd 'E<lt>'>"
+
+# type: Plain text
+#: ../tin.1:1140
+msgid "Go to the first article in the current thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1140
+#, no-wrap
+msgid "B<PageBotThd 'E<gt>'>"
+msgstr "B<PageBotThd 'E<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1143
+msgid "Go to the last article in the current thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1143
+#, no-wrap
+msgid "B<PageToggleHighlight '_'>"
+msgstr "B<PageToggleHighlight '_'>"
+
+# type: Plain text
+#: ../tin.1:1146
+msgid "Toggle word highlighting on/off."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1160
+msgid ""
+"Auto select article(s) with a single key. The defaults used for selection "
+"are set based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header> Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1169
+msgid ""
+"Kill article(s) with a single key. The defaults used for killing are based "
+"upon the following four tinrc config variables: B<default_filter_kill_case>, "
+"B<default_filter_kill_expire>, B<default_filter_kill_global> and "
+"B<default_filter_kill_header>.  Read the section \"GLOBAL OPTIONS MENU AND "
+"TINRC CONFIGURABLE VARIABLES\" for a full explanation of these variables and "
+"\"FILTERING ARTICLES\" for more information on filtering."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1169
+#, no-wrap
+msgid "B<PageNextThd '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<PageNextThd '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1172
+msgid "Go to next base article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1172
+#, no-wrap
+msgid "B<PageNextUnread 'E<lt>TABE<gt>'>"
+msgstr "B<PageNextUnread 'E<lt>TABE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1177
+msgid ""
+"Go to next unread article. If the tinrc variable B<goto_next_unread> doesn't "
+"contain PageNextUnread, then this key will first page through the current "
+"article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1180
+msgid "Author forward search."
+msgstr "Suche nach Autor (vorwärts)."
+
+# type: Plain text
+#: ../tin.1:1183
+msgid "Author backward search."
+msgstr "Suche nach Autor (rückwärts)."
+
+# type: Plain text
+#: ../tin.1:1191
+msgid ""
+"Mark the current thread as read [after confirmation] and return to the "
+"previous menu. Move cursor to next item."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1195
+msgid ""
+"Mark the rest of the current thread as read [after confirmation] and enter "
+"the next thread with unread articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1195
+#, no-wrap
+msgid "B<PageCancel 'D'>"
+msgstr "B<PageCancel 'D'>"
+
+# type: TP
+#: ../tin.1:1200
+#, no-wrap
+msgid "B<PageEditArticle 'e'>"
+msgstr "B<PageEditArticle 'e'>"
+
+# type: Plain text
+#: ../tin.1:1203
+msgid ""
+"Edit the current article. This is restricted to mailgroups and saved news."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1206
+#, no-wrap
+msgid "B<PageFollowupQuote 'f'>"
+msgstr "B<PageFollowupQuote 'f'>"
+
+# type: Plain text
+#: ../tin.1:1209
+msgid ""
+"Post a followup to the current article with a copy of the article included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1209
+#, no-wrap
+msgid "B<PageFollowup 'F'>"
+msgstr "B<PageFollowup 'F'>"
+
+# type: Plain text
+#: ../tin.1:1213
+msgid ""
+"Post a followup to the current article without including a copy of the "
+"article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1213
+#, no-wrap
+msgid "B<PageFirstPage 'g'>"
+msgstr "B<PageFirstPage 'g'>"
+
+# type: Plain text
+#: ../tin.1:1216
+msgid "Go to the start of the article."
+msgstr "Zum Anfang des Artikels springen."
+
+# type: TP
+#: ../tin.1:1216
+#, no-wrap
+msgid "B<PageLastPage 'G'>"
+msgstr "B<PageLastPage 'G'>"
+
+# type: Plain text
+#: ../tin.1:1219
+msgid "Go to the end of the article."
+msgstr "Zum Ende des Artikels springen."
+
+# type: TP
+#: ../tin.1:1225
+#, no-wrap
+msgid "B<PageKillThd 'K'>"
+msgstr "B<PageKillThd 'K'>"
+
+# type: Plain text
+#: ../tin.1:1228
+msgid "Mark rest of thread as read and move onto the next unread thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1228
+#, no-wrap
+msgid "B<PageListThd 'l'>"
+msgstr "B<PageListThd 'l'>"
+
+# type: Plain text
+#: ../tin.1:1231
+msgid "Show the thread menu that the current article is a part of."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1234
+#, no-wrap
+msgid "B<PageMail 'm'>"
+msgstr "B<PageMail 'm'>"
+
+# type: TP
+#: ../tin.1:1243
+#, no-wrap
+msgid "B<PageNextArt 'n'>"
+msgstr "B<PageNextArt 'n'>"
+
+# type: Plain text
+#: ../tin.1:1246
+msgid "Go to the next article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1246
+#, no-wrap
+msgid "B<PageNextUnreadArt 'N'>"
+msgstr "B<PageNextUnreadArt 'N'>"
+
+# type: Plain text
+#: ../tin.1:1249
+msgid "Go to the next unread article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1254
+#, no-wrap
+msgid "B<PagePrevArt 'p'>"
+msgstr "B<PagePrevArt 'p'>"
+
+# type: Plain text
+#: ../tin.1:1257
+msgid "Go to the previous article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1257
+#, no-wrap
+msgid "B<PagePrevUnreadArt 'P'>"
+msgstr "B<PagePrevUnreadArt 'P'>"
+
+# type: Plain text
+#: ../tin.1:1260
+msgid "Go to the previous unread article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1263
+msgid "Return to the previous level."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1266
+#, no-wrap
+msgid "B<PageReplyQuote 'r'>"
+msgstr "B<PageReplyQuote 'r'>"
+
+# type: Plain text
+#: ../tin.1:1270
+msgid ""
+"Reply through mail to the author of the current article with a copy of the "
+"article included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1270
+#, no-wrap
+msgid "B<PageReply 'R'>"
+msgstr "B<PageReply 'R'>"
+
+# type: Plain text
+#: ../tin.1:1274
+msgid ""
+"Reply through mail to the author of the current article without including "
+"the original article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1274
+#, no-wrap
+msgid "B<PageSave 's'>"
+msgstr "B<PageSave 's'>"
+
+# type: TP
+#: ../tin.1:1279
+#, no-wrap
+msgid "B<PageAutoSave 'S'>"
+msgstr "B<PageAutoSave 'S'>"
+
+# type: TP
+#: ../tin.1:1282
+#, no-wrap
+msgid "B<PageTag 't'>"
+msgstr "B<PageTag 't'>"
+
+# type: TP
+#: ../tin.1:1286
+#, no-wrap
+msgid "B<PageGroupSel 'T'>"
+msgstr "B<PageGroupSel 'T'>"
+
+# type: Plain text
+#: ../tin.1:1289
+msgid "Return to group selection level."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1289
+#, no-wrap
+msgid "B<PageGotoParent 'u'>"
+msgstr "B<PageGotoParent 'u'>"
+
+# type: Plain text
+#: ../tin.1:1292
+msgid "Go to parent article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1292
+#, no-wrap
+msgid "B<PageViewUrl 'U'>"
+msgstr "B<PageViewUrl 'U'>"
+
+# type: Plain text
+#: ../tin.1:1296
+msgid ""
+"Display a list of URLs in the current article. See the section \"URL LISTING"
+"\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1296
+#, no-wrap
+msgid "B<PageViewAttach 'V'>"
+msgstr "B<PageViewAttach 'V'>"
+
+# type: Plain text
+#: ../tin.1:1300
+msgid ""
+"Display a list of attachments of the current article. See the section "
+"\"ATTACHMENT LISTING\" for more information."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1307
+msgid ""
+"Post an article to the current group. If posting fails for some reason, "
+"you'll get the chance to edit the article again via B<PostEdit> ('B<e>'), "
+"postpone it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-"
+"o>'' command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1307
+#, no-wrap
+msgid "B<PageRepost 'x'>"
+msgstr "B<PageRepost 'x'>"
+
+# type: Plain text
+#: ../tin.1:1313
+msgid ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to crosspost "
+"your own articles."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1316
+msgid "Mark article as unread."
+msgstr "Alle Artikel als ungelesen markieren."
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:1321
+msgid "Mark the current thread as unread."
+msgstr "Markiere den aktuellen Thread als ungelesen."
+
+# type: SS
+#: ../tin.1:1321
+#, no-wrap
+msgid "URL LISTING"
+msgstr "URL LISTE"
+
+# type: Plain text
+#: ../tin.1:1324
+msgid ""
+"B<PageViewUrl> ('B<U>') displays a list of URLs in the current article. "
+"Besides the common moving keys, the following commands are available:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1325
+#, no-wrap
+msgid "B<UrlSelect '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<UrlSelect '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1329
+msgid ""
+"The current URL will be prompted and opened using the B<url_handler>. "
+"'B<E<lt>ESCE<gt>>' or no input will skip the URL."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1332
+msgid "URL forward search."
+msgstr "Suche nach URL (vorwärts)."
+
+# type: Plain text
+#: ../tin.1:1335
+msgid "URL backward search."
+msgstr "Suche nach URL (rückwärts)."
+
+# type: TP
+#: ../tin.1:1341 ../tin.1:1394
+msgid "Shell escape."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1344
+msgid "Toggle the display of the current URL in the last line."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1347 ../tin.1:1401
+msgid "Help screen of commands available."
+msgstr ""
+
+# type: SS
+#. --------------------------------------------------------------------
+#: ../tin.1:1353
+#, no-wrap
+msgid "ATTACHMENT LISTING"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1356
+msgid ""
+"B<PageViewAttach> ('B<V>') displays a list of attachments of the current "
+"article. Besides the common moving keys, the following commands are "
+"available:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1357
+#, no-wrap
+msgid "B<AttachPipe 'p'>"
+msgstr "B<AttachPipe 'p'>"
+
+# type: Plain text
+#: ../tin.1:1360
+msgid "Pipe attachment into command."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1360
+#, no-wrap
+msgid "B<AttachSave 's'>"
+msgstr "B<AttachSave 's'>"
+
+# type: Plain text
+#: ../tin.1:1363
+msgid "Save current attachment / tagged attachments to disk."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1363
+#, no-wrap
+msgid "B<AttachSelect '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<AttachSelect '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1366
+msgid "View attachment."
+msgstr "Multimediaanhänge anzeigen."
+
+# type: TP
+#: ../tin.1:1366
+#, no-wrap
+msgid "B<AttachTag 't'>"
+msgstr "B<AttachTag 't'>"
+
+# type: Plain text
+#: ../tin.1:1369
+msgid "Tag one or more attachments for saving."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1369
+#, no-wrap
+msgid "B<AttachTagPattern '='>"
+msgstr "B<AttachTagPattern '='>"
+
+# type: Plain text
+#: ../tin.1:1373
+msgid ""
+"Prompts for a pattern to match. All attachments whose name/description or "
+"content type/transfer encoding match the pattern will be tagged."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1373
+#, no-wrap
+msgid "B<AttachToggleTagged '@'>"
+msgstr "B<AttachToggleTagged '@'>"
+
+# type: Plain text
+#: ../tin.1:1376
+msgid "Reverse tagging of all attachments."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1376
+#, no-wrap
+msgid "B<AttachUntag 'U'>"
+msgstr "B<AttachUntag 'U'>"
+
+# type: Plain text
+#: ../tin.1:1379
+msgid "Untag all tagged attachments."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1382
+msgid "Attachment forward search."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1385
+msgid "Attachment backward search."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1388
+#, no-wrap
+msgid "B<GlobalPipe '|'>"
+msgstr "B<GlobalPipe '|'>"
+
+# type: Plain text
+#: ../tin.1:1391
+msgid ""
+"Pipe attachment into command. Uses the raw attachment, no decoding is done."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1398
+msgid ""
+"Toggle the display of the name/description of the current attachment in the "
+"last line."
+msgstr "Names oder Beschreibung des Anhangs in der untersten Zeile anzeigen."
+
+# type: SS
+#. --------------------------------------------------------------------
+#: ../tin.1:1407
+#, no-wrap
+msgid "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+msgstr ""
+
+# type: Plain text
+#.  FIXME - add missing descriptions
+#: ../tin.1:1417
+msgid ""
+"At startup, B<tin> reads in the configuration files (see also B<tin>(5)).  "
+"They contain a list of variables that can be used to configure the way "
+"B<tin> works. If it exists, the global configuration file, I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/tinrc> is read. After that, the user's own configuration file is "
+"read from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. The global file is useful "
+"for distributing system-wide defaults to new users who have no private tinrc "
+"yet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1425
+msgid ""
+"The variables are user configurable by editing I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/tinrc> directly. Most of them can also be set in the GLOBAL OPTIONS MENU "
+"which is accessed by pressing B<OptionMenu> ('B<M>') at all levels. It "
+"allows the user to customize the behavior of B<tin>. The options are saved "
+"to the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> when you exit B<tin> so "
+"don't edit the file directly whilst B<tin> is running."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1431
+msgid ""
+"In the options menu use the cursor keys in the usual way to move around. Use "
+"B<ConfigSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') to 'open' the option you wish "
+"to change. You will need to enter a new value or use 'B<E<lt>SPACEE<gt>>' to "
+"toggle the available options. B<ConfigSelect> will save the new value, "
+"\\&'B<E<lt>ESCE<gt>>' will abort without saving changes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1438
+msgid ""
+"As with the other menus, B<RedrawScr> ('B<^L>') will redraw the screen. You "
+"can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> "
+"('B<\\e>') to search for a specific option. Use B<Quit> ('B<q>') to exit the "
+"option menu and keep your changes. Use B<QuitTin> ('B<Q>') to exit without "
+"keeping your changes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1443
+msgid ""
+"The options menu provides access to the attributes menu for the current "
+"group by the B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') command. Pressing "
+"B<ConfigToggleAttrib> again toggles back to the options menu. For more "
+"information see section \"ATTRIBUTES MENU AND GROUP ATTRIBUTES\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1446
+msgid ""
+"The B<ConfigScopeMenu> ('B<S>') command brings up the scopes menu. For more "
+"information see section \"SCOPES MENU\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1450
+msgid ""
+"Here is a full list of all the available variables. The name in braces is "
+"the name of the corresponding setting in I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"tinrc>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1450
+#, no-wrap
+msgid "B<Abbreviate long newsgroup names (abbreviate_groupname)>"
+msgstr "B<Lange Newsgruppennamen abkürzen (abbreviate_groupname)>"
+
+# type: Plain text
+#: ../tin.1:1456 ../tin.5:1185
+msgid ""
+"If ON abbreviate long newsgroup names at group selection level and article "
+"level (if necessary) like this: news.software.readers -E<gt> n.software."
+"readers -E<gt> n.s.readers -E<gt> n.s.r.  Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1456
+#, no-wrap
+msgid "B<Add posted articles to filter (add_posted_to_filter)>"
+msgstr "B<Füge gepostete Artikel zum Filter (add_posted_to_filter)>"
+
+# type: Plain text
+#: ../tin.1:1460 ../tin.5:1189
+msgid ""
+"If ON add posted articles which start a new thread to filter for "
+"highlighting follow-ups. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1460
+#, no-wrap
+msgid "B<Insert 'User-Agent:'-header (advertising)>"
+msgstr "B<Füge 'User-Agent:'-header ein (advertising)>"
+
+# type: Plain text
+#: ../tin.1:1463 ../tin.5:1192
+msgid "Turn ON advertising in header (''User-Agent:''). Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1463
+#, no-wrap
+msgid "B<Skip multipart/alternative parts (alternative_handling)>"
+msgstr "B<Übersp. multipart/alternative-Teile (alternative_handling)>"
+
+# type: Plain text
+#: ../tin.1:1466 ../tin.5:1195
+msgid ""
+"If ON strip multipart/alternative messages automatically. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1466
+#, no-wrap
+msgid "B<Character to show deleted articles (art_marked_deleted)>"
+msgstr "B<Zeichen für gelöschte Artikel (art_marked_deleted)>"
+
+# type: Plain text
+#: ../tin.1:1469 ../tin.5:1198
+msgid "The character used to show that an article was deleted. Default is 'D'."
+msgstr "Zeichen das anzeigt, dass ein Artikel gelöscht wurde. Standard is 'D'."
+
+# type: TP
+#: ../tin.1:1469
+#, no-wrap
+msgid "B<Character to show inrange articles (art_marked_inrange)>"
+msgstr "B<Zeichen für Artikel im Bereich (art_marked_inrange)>"
+
+# type: Plain text
+#: ../tin.1:1472 ../tin.5:1201
+msgid ""
+"The character used to show that an article is in a range. Default is '#'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1472
+#, no-wrap
+msgid "B<Character to show returning arts (art_marked_return)>"
+msgstr "B<Zeichen für wiederkehrende Artikel (art_marked_return)>"
+
+# type: Plain text
+#: ../tin.1:1476 ../tin.5:1205
+msgid ""
+"The character used to show that an article will return as an unread article "
+"when the group is next entered. Default is '-'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1476
+#, no-wrap
+msgid "B<Character to show selected articles (art_marked_selected)>"
+msgstr "B<Zeichen für wichtige Artikel (art_marked_selected)>"
+
+# type: Plain text
+#: ../tin.1:1480 ../tin.5:1209
+msgid ""
+"The character used to show that an article/thread is auto-selected (hot).  "
+"Default is '*'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1480
+#, no-wrap
+msgid "B<Character to show recent articles (art_marked_recent)>"
+msgstr "B<Zeichen für aktuelle Artikel (art_marked_recent)>"
+
+# type: Plain text
+#: ../tin.1:1484 ../tin.5:1213
+msgid ""
+"The character used to show that an article/thread is recent (not older than "
+"X days). See also B<recent_time>. Default is 'o'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1484
+#, no-wrap
+msgid "B<Character to show unread articles (art_marked_unread)>"
+msgstr "B<Zeichen für ungelesene Artikel (art_marked_unread)>"
+
+# type: Plain text
+#: ../tin.1:1488
+msgid ""
+"The character used to show that an article has not been read. Default is "
+"\\&'+'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1488
+#, no-wrap
+msgid "B<Character to show read articles (art_marked_read)>"
+msgstr "B<Zeichen für gelesene Artikel (art_marked_read)>"
+
+# type: Plain text
+#: ../tin.1:1491 ../tin.5:1220
+msgid "The character used to show that an article was read. Default is ' '."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1491
+#, no-wrap
+msgid "B<Character to show killed articles (art_marked_killed)>"
+msgstr "B<Zeichen für gekillte Artikel (art_marked_killed)>"
+
+# type: Plain text
+#: ../tin.1:1495 ../tin.5:1224
+msgid ""
+"The character used to show that an article was killed. Default is 'K'.  "
+"B<kill_level> must be set accordingly."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1495
+#, no-wrap
+msgid "B<Character to show read selected arts (art_marked_read_selected)>"
+msgstr "B<Zeichen für gelesene wichtige Art. (art_marked_read_selected)>"
+
+# type: Plain text
+#: ../tin.1:1499 ../tin.5:1228
+msgid ""
+"The character used to show that an article was hot before it was read.  "
+"Default is ':'. B<kill_level> must be set accordingly."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1499 ../tin.5:1228
+#, no-wrap
+msgid "B<Ask before using MIME viewer (ask_for_metamail)>"
+msgstr "B<Start des MIME-Viewers bestätigen (ask_for_metamail)>"
+
+# type: Plain text
+#: ../tin.1:1504
+msgid ""
+"If ON B<tin> will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1504
+#, no-wrap
+msgid "B<Send you a cc and/or bcc automatically (auto_cc_bcc)>"
+msgstr "B<Sendet Ihnen eine cc und/oder eine blinde cc autom. (auto_cc_bcc)>"
+
+# type: Plain text
+#: ../tin.1:1508 ../tin.5:1239
+msgid ""
+"Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when "
+"mailing an article. Default is No."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1508
+#, no-wrap
+msgid "B<List thread using right arrow key (auto_list_thread)>"
+msgstr "B<Zeige Thread mit rechter Pfeilt. an (auto_list_thread)>"
+
+# type: Plain text
+#: ../tin.1:1512 ../tin.5:1243
+msgid ""
+"If ON automatically list thread when entering it using right arrow key.  "
+"Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1512
+#, no-wrap
+msgid "B<Reconnect to server automatically (auto_reconnect)>"
+msgstr "B<Autom. Wiederverbindung zum Server (auto_reconnect)>"
+
+# type: Plain text
+#: ../tin.1:1515 ../tin.1:2430
+msgid "Default is OFF."
+msgstr "Standard ist OFF."
+
+# type: TP
+#: ../tin.1:1515
+#, no-wrap
+msgid "B<Use Archive-name: header for save (auto_save)>"
+msgstr "B<Nutze Archive-name: zum Speichern (auto_save)>"
+
+# type: Plain text
+#: ../tin.1:1521 ../tin.5:1252
+msgid ""
+"If ON articles/threads with ''Archive-name:'' in header will be "
+"automatically saved with the Archive-name & part/patch no and post processed "
+"if B<post_process_type> is set to something other than 'No'.  Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1521
+#, no-wrap
+msgid "B<Save articles in batch mode (batch_save)>"
+msgstr "B<Speicher Artikel im Batchmode (-S) (batch_save)>"
+
+# type: Plain text
+#: ../tin.1:1526 ../tin.5:1257
+msgid ""
+"If set ON articles/threads will be saved in batch mode when save \\&''B<-"
+"S>'' or mail ''B<-M>, B<-N>'' is specified on the command line. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1526
+#, no-wrap
+msgid "B<Show mini menu & posting etiquette (beginner_level)>"
+msgstr "B<Zeigt Minimenü & Posting etiquette (beginner_level)>"
+
+# type: Plain text
+#: ../tin.1:1531 ../tin.5:1262
+msgid ""
+"If set ON a mini menu of the most useful commands will be displayed at the "
+"bottom of the screen for each level. Also a short posting etiquette will be "
+"displayed after composing an article. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1531
+#, no-wrap
+msgid "B<Cache NNTP overview files locally (cache_overview_files)>"
+msgstr "B<Speichere NNTP Overview Daten lokal (cache_overview_files)>"
+
+# type: Plain text
+#: ../tin.1:1536
+msgid ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"See also \"INDEX FILES\". Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1536
+#, no-wrap
+msgid "B<Catchup read groups when quitting (catchup_read_groups)>"
+msgstr "B<Catchup der Gruppen beim Beenden (catchup_read_groups)>"
+
+# type: Plain text
+#: ../tin.1:1542 ../tin.5:1271
+msgid ""
+"If set ON the user is asked when quitting if all groups read during the "
+"current session should be marked read. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1542
+#, no-wrap
+msgid "B<Standard background color (col_back)>"
+msgstr "B<Standard Hintergrundfarbe (col_back)>"
+
+# type: Plain text
+#: ../tin.1:1545 ../tin.5:1274
+msgid "Standard background color"
+msgstr "Standard Hintergrundfarbe"
+
+# type: TP
+#: ../tin.1:1545
+#, no-wrap
+msgid "B<Color of sender (From:) (col_from)>"
+msgstr "B<Farbe des Autors (From:) (col_from)>"
+
+# type: Plain text
+#: ../tin.1:1548 ../tin.5:1277
+msgid "Color of sender (From:)"
+msgstr "Farbe des Autors (From:)"
+
+# type: TP
+#: ../tin.1:1548
+#, no-wrap
+msgid "B<Color of article header lines (col_head)>"
+msgstr "B<Farbe der Artikelheaderzeilen (col_head)>"
+
+# type: Plain text
+#: ../tin.1:1551 ../tin.5:1280
+msgid "Color of header-lines"
+msgstr "Farbe der Artikelheaderzeilen"
+
+# type: TP
+#: ../tin.1:1551
+#, no-wrap
+msgid "B<Color of help text (col_help)>"
+msgstr "B<Farbe des Hilfstext (col_help)>"
+
+# type: Plain text
+#: ../tin.1:1554 ../tin.5:1283
+msgid "Color of help pages"
+msgstr "Farbe des Hilfstext"
+
+# type: TP
+#: ../tin.1:1554
+#, no-wrap
+msgid "B<Color for inverse text (background) (col_invers_bg)>"
+msgstr "B<Farbe des inversen Text (Hinterg.) (col_invers_bg)>"
+
+# type: Plain text
+#: ../tin.1:1557 ../tin.5:1286
+msgid "Color of background for inverse text"
+msgstr "Hintergrundfarbe für inversen Text"
+
+# type: TP
+#: ../tin.1:1557
+#, no-wrap
+msgid "B<Color for inverse text (foreground) (col_invers_fg)>"
+msgstr "B<Farbe des inversen Text (Vordergr.) (col_invers_fg)>"
+
+# type: Plain text
+#: ../tin.1:1560 ../tin.5:1289
+msgid "Color of foreground for inverse text"
+msgstr "Vordergrundfarbe für inversen Text"
+
+# type: TP
+#: ../tin.1:1560
+#, no-wrap
+msgid "B<Color of highlighting with _dash_ (col_markdash)>"
+msgstr "B<Farbe der Hervorhebung _Striche_ (col_markdash)>"
+
+# type: Plain text
+#: ../tin.1:1564 ../tin.5:1293
+msgid ""
+"Color of words emphasized like _this_. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1564
+#, no-wrap
+msgid "B<Color of highlighting with /slash/ (col_markslash)>"
+msgstr "B<Farbe der Hervorhebung /Schrägstr./ (col_markslash)>"
+
+# type: Plain text
+#: ../tin.1:1568 ../tin.5:1297
+msgid ""
+"Color of words emphasized like /this/. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1568
+#, no-wrap
+msgid "B<Color of highlighting with *stars* (col_markstar)>"
+msgstr "B<Farbe der Hervorhebung *Sterne* (col_markstar)>"
+
+# type: Plain text
+#: ../tin.1:1572 ../tin.5:1301
+msgid ""
+"Color of words emphasized like *this*. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1572
+#, no-wrap
+msgid "B<Color of highlighting with -stroke- (col_markstroke)>"
+msgstr "B<Farbe der Hervorhebung -Durchstr.- (col_markstroke)>"
+
+# type: Plain text
+#: ../tin.1:1576 ../tin.5:1305
+msgid ""
+"Color of words emphasized like -this-. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1576
+#, no-wrap
+msgid "B<Color of mini help menu (col_minihelp)>"
+msgstr "B<Farbe des Minihilfemenü (col_minihelp)>"
+
+# type: Plain text
+#: ../tin.1:1579 ../tin.5:1308
+msgid "Color of mini help menu"
+msgstr "Farbe des Minihilfemenü"
+
+# type: TP
+#: ../tin.1:1579
+#, no-wrap
+msgid "B<Color of actual news header fields (col_newsheaders)>"
+msgstr "B<Farbe des angezeigten Headers (col_newsheaders)>"
+
+# type: Plain text
+#: ../tin.1:1582 ../tin.5:1311
+msgid "Color of actual news header fields"
+msgstr "Farbe des angezeigten Headers"
+
+# type: TP
+#: ../tin.1:1582
+#, no-wrap
+msgid "B<Standard foreground color (col_normal)>"
+msgstr "B<Standard Vordergrundfarbe (col_normal)>"
+
+# type: Plain text
+#: ../tin.1:1585 ../tin.5:1314
+msgid "Standard foreground color"
+msgstr "Standard Vordergrundfarbe"
+
+# type: TP
+#: ../tin.1:1585
+#, no-wrap
+msgid "B<Color of quoted lines (col_quote)>"
+msgstr "B<Farbe der zitierten Zeilen (col_quote)>"
+
+# type: Plain text
+#: ../tin.1:1588 ../tin.5:1317
+msgid "Color of quoted lines"
+msgstr "Farbe der zitierten Zeilen"
+
+# type: TP
+#: ../tin.1:1588
+#, no-wrap
+msgid "B<Color of twice quoted line (col_quote2)>"
+msgstr "B<Farbe von zweifach zitierten Zeilen (col_quote2)>"
+
+# type: Plain text
+#: ../tin.1:1591 ../tin.5:1320
+msgid "Color of twice quoted lines"
+msgstr "Farbe von zweifach zitierten Zeilen"
+
+# type: TP
+#: ../tin.1:1591
+#, no-wrap
+msgid "B<Color of =E<gt>3 times quoted line (col_quote3)>"
+msgstr "B<Farbe von =E<gt>3-fach zitierten Zeilen (col_quote3)>"
+
+# type: Plain text
+#: ../tin.1:1594 ../tin.5:1323
+msgid "Color of E<gt>=3 times quoted lines"
+msgstr "Farbe von =E<gt>3-fach zitierten Zeilen"
+
+# type: TP
+#: ../tin.1:1594
+#, no-wrap
+msgid "B<Color of response counter (col_response)>"
+msgstr "B<Farbe des Antwortzählers (col_response)>"
+
+# type: Plain text
+#: ../tin.1:1598
+msgid ""
+"Color of response counter. This is the text that says \"Response x of y\" in "
+"the article viewer."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1598
+#, no-wrap
+msgid "B<Color of signatures (col_signature)>"
+msgstr "B<Farbe von Signaturen (col_signature)>"
+
+# type: Plain text
+#: ../tin.1:1601 ../tin.5:1330
+msgid "Color of signatures"
+msgstr "Farbe von Signaturen"
+
+# type: TP
+#: ../tin.1:1601
+#, no-wrap
+msgid "B<Color of urls highlight (col_urls)>"
+msgstr "B<Farbe der hervorgehobenen URLs (col_urls)>"
+
+# type: Plain text
+#: ../tin.1:1604 ../tin.5:1333
+msgid "Color of urls highlight"
+msgstr "Farbe der hervorgehobenen URLs"
+
+# type: TP
+#: ../tin.1:1604
+#, no-wrap
+msgid "B<Color of verbatim blocks (col_verbatim)>"
+msgstr "B<Farbe des wortgetreu darzustellenden Textes (col_verbatim)>"
+
+# type: Plain text
+#
+#: ../tin.1:1607 ../tin.5:1336
+msgid "Color of verbatim blocks"
+msgstr "Farbe des wortgetreu darzustellenden Textes"
+
+# type: TP
+#: ../tin.1:1607
+#, no-wrap
+msgid "B<Color of article subject lines (col_subject)>"
+msgstr "B<Farbe der Subjectzeile (col_subject)>"
+
+# type: Plain text
+#: ../tin.1:1610 ../tin.5:1339
+msgid "Color of article subject"
+msgstr "Farbe der Subjectzeile"
+
+# type: TP
+#: ../tin.1:1610
+#, no-wrap
+msgid "B<Color of text lines (col_text)>"
+msgstr "B<Farbe der Textzeilen (col_text)>"
+
+# type: Plain text
+#: ../tin.1:1613 ../tin.5:1342
+msgid "Color of text-lines"
+msgstr "Farbe der Textzeilen"
+
+# type: TP
+#: ../tin.1:1613
+#, no-wrap
+msgid "B<Color of help/mail sign (col_title)>"
+msgstr "B<Farbe des Hilfe/Mail-Zeichens (col_title)>"
+
+# type: Plain text
+#: ../tin.1:1616 ../tin.5:1345
+msgid "Color of help/mail sign"
+msgstr "Farbe des Hilfe/Mail-Zeichens"
+
+# type: TP
+#: ../tin.1:1616
+#, no-wrap
+msgid "B<Which actions require confirmation (confirm_choice)>"
+msgstr "B<Bestätigung erforderlich für (confirm_choice)>"
+
+# type: Plain text
+#: ../tin.1:1619
+msgid "Ask for manual confirmation to protect the user."
+msgstr ""
+
+# type: IP
+#: ../tin.1:1620 ../tin.1:1626 ../tin.1:1630
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+# type: Plain text
+#.  TODO: check if all affected commands are marked [after confirmation]
+#: ../tin.1:1626
+msgid ""
+"B<commands> Ask for confirmation before executing certain dangerous commands "
+"(e.g., B<Catchup> ('B<c>')). Commands that this affects are marked in this "
+"manual with '[after confirmation]'. Default is commands & quit."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1630
+msgid ""
+"B<quit> You'll be asked to confirm that you wish to exit B<tin> when you use "
+"the B<Quit> ('B<q>') command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1634
+msgid ""
+"B<select> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1635
+#, no-wrap
+msgid "B<Format string for display of dates (date_format)>"
+msgstr "B<Datums Format-Zeichenkette (date_format)>"
+
+#
+# type: Plain text
+#.  most of these default_* settings are not available from the menu
+#.  as they are intended for internal use only.
+#: ../tin.1:1647
+msgid ""
+"Format string B<tin> uses for date representation. A description of the "
+"different format options can be found at B<strftime>(3).  B<tin> uses "
+"B<strftime>(3)  when available and supports most format options in his "
+"fallback code.  Default is \"%a, %d %b %Y %H:%M:%S\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1647
+#, no-wrap
+msgid "B<(default_art_search)>"
+msgstr "B<(default_art_search)>"
+
+# type: TP
+#: ../tin.1:1649
+#, no-wrap
+msgid "B<(default_author_search)>"
+msgstr "B<(default_author_search)>"
+
+# type: TP
+#: ../tin.1:1651
+#, no-wrap
+msgid "B<(default_config_search)>"
+msgstr "B<(default_config_search)>"
+
+# type: Plain text
+#: ../tin.1:1654 ../tin.5:1384
+msgid "The last article/author/config option that was searched for."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1654
+#, no-wrap
+msgid "B<(default_filter_days)>"
+msgstr "B<(default_filter_days)>"
+
+# type: Plain text
+#: ../tin.1:1657 ../tin.5:1387
+msgid "Default is 28."
+msgstr "Standard ist 28."
+
+# type: TP
+#: ../tin.1:1657
+#, no-wrap
+msgid "B<(default_filter_kill_case)>"
+msgstr "B<(default_filter_kill_case)>"
+
+# type: Plain text
+#: ../tin.1:1661
+msgid ""
+"Default for quick (1 key) kill filter case.  ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1661
+#, no-wrap
+msgid "B<(default_filter_kill_expire)>"
+msgstr "B<(default_filter_kill_expire)>"
+
+# type: Plain text
+#: ../tin.1:1666
+msgid ""
+"Default for quick (1 key) kill filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1666
+#, no-wrap
+msgid "B<(default_filter_kill_global)>"
+msgstr "B<(default_filter_kill_global)>"
+
+# type: Plain text
+#: ../tin.1:1670
+msgid ""
+"Default for quick (1 key) kill filter global.  ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1670
+#, no-wrap
+msgid "B<(default_filter_kill_header)>"
+msgstr "B<(default_filter_kill_header)>"
+
+# type: Plain text
+#: ../tin.1:1673 ../tin.5:1402
+msgid "Default for quick (1 key) kill filter header."
+msgstr ""
+
+# type: IP
+#: ../tin.1:1674 ../tin.1:1708 ../tin.1:1839 ../tin.1:2009 ../tin.1:2052
+#: ../tin.1:2164 ../tin.1:2190 ../tin.1:2241 ../tin.1:2271 ../tin.1:2342
+#: ../tin.1:2370 ../tin.1:2390 ../tin.1:2478 ../tin.5:1555 ../tin.5:1744
+#: ../tin.5:1793 ../tin.5:1924 ../tin.5:1950 ../tin.5:2003 ../tin.5:2032
+#: ../tin.5:2113 ../tin.5:2133 ../tin.5:2229
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+# type: Plain text
+#: ../tin.1:1676 ../tin.1:1710
+#, no-wrap
+msgid " ''Subject:'' (case sensitive)\n"
+msgstr " ''Subject:'' (Groß/Kleinschreibung beachten)\n"
+
+# type: IP
+#: ../tin.1:1676 ../tin.1:1710 ../tin.1:1845 ../tin.1:2011 ../tin.1:2054
+#: ../tin.1:2166 ../tin.1:2192 ../tin.1:2243 ../tin.1:2273 ../tin.1:2344
+#: ../tin.1:2372 ../tin.1:2392 ../tin.1:2480 ../tin.5:1562 ../tin.5:1746
+#: ../tin.5:1795 ../tin.5:1844 ../tin.5:1926 ../tin.5:1952 ../tin.5:2005
+#: ../tin.5:2034 ../tin.5:2115 ../tin.5:2135 ../tin.5:2231
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+# type: Plain text
+#: ../tin.1:1678 ../tin.1:1712
+#, no-wrap
+msgid " ''Subject:'' (ignore case)\n"
+msgstr " ''Subject:'' (Groß/Kleinschreibung ignorieren)\n"
+
+# type: IP
+#: ../tin.1:1678 ../tin.1:1712 ../tin.1:1850 ../tin.1:2013 ../tin.1:2058
+#: ../tin.1:2169 ../tin.1:2196 ../tin.1:2245 ../tin.1:2276 ../tin.1:2346
+#: ../tin.1:2374 ../tin.1:2394 ../tin.1:2482 ../tin.5:1567 ../tin.5:1748
+#: ../tin.5:1800 ../tin.5:1848 ../tin.5:1929 ../tin.5:1956 ../tin.5:2007
+#: ../tin.5:2037 ../tin.5:2117 ../tin.5:2137 ../tin.5:2233
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+# type: Plain text
+#: ../tin.1:1680 ../tin.1:1714
+#, no-wrap
+msgid " ''From:'' (case sensitive)\n"
+msgstr " ''From:'' (Groß/Kleinschreibung beachten)\n"
+
+# type: IP
+#: ../tin.1:1680 ../tin.1:1714 ../tin.1:2015 ../tin.1:2172 ../tin.1:2200
+#: ../tin.1:2247 ../tin.1:2278 ../tin.1:2348 ../tin.1:2396 ../tin.5:1750
+#: ../tin.5:1932 ../tin.5:1960 ../tin.5:2009 ../tin.5:2039 ../tin.5:2139
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+# type: Plain text
+#: ../tin.1:1682 ../tin.1:1716
+#, no-wrap
+msgid " ''From:'' (ignore case)\n"
+msgstr " ''From:'' (Groß/Kleinschreibung ignorieren)\n"
+
+# type: IP
+#: ../tin.1:1682 ../tin.1:1716 ../tin.1:2017 ../tin.1:2249 ../tin.1:2280
+#: ../tin.1:2351 ../tin.1:2398 ../tin.5:1752 ../tin.5:1854 ../tin.5:2011
+#: ../tin.5:2041 ../tin.5:2141
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+# type: Plain text
+#: ../tin.1:1684 ../tin.1:1718
+#, no-wrap
+msgid " ''Message-ID:'' & full ''References:'' line\n"
+msgstr " ''Message-ID:'' & alle ''References:'' Einträge\n"
+
+# type: IP
+#: ../tin.1:1684 ../tin.1:1718 ../tin.1:2251 ../tin.1:2353 ../tin.1:2401
+#: ../tin.5:2013 ../tin.5:2144
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+# type: Plain text
+#: ../tin.1:1686 ../tin.1:1720
+#, no-wrap
+msgid " ''Message-ID:'' & last ''References:'' entry only\n"
+msgstr "''Message-ID:'' & letzter ''References:'' Eintrag\n"
+
+# type: IP
+#: ../tin.1:1686 ../tin.1:1720 ../tin.1:2253 ../tin.1:2403 ../tin.5:2015
+#: ../tin.5:2146
+#, no-wrap
+msgid "6"
+msgstr "6"
+
+# type: Plain text
+#: ../tin.1:1688 ../tin.1:1722
+#, no-wrap
+msgid " ''Message-ID:'' entry only\n"
+msgstr " ''Message-ID:'' allein\n"
+
+# type: IP
+#: ../tin.1:1688 ../tin.1:1722 ../tin.1:2256 ../tin.1:2405 ../tin.5:2018
+#: ../tin.5:2148
+#, no-wrap
+msgid "7"
+msgstr "7"
+
+# type: Plain text
+#: ../tin.1:1690 ../tin.1:1724
+#, no-wrap
+msgid " ''Lines:''\n"
+msgstr " ''Lines:''\n"
+
+# type: TP
+#: ../tin.1:1691
+#, no-wrap
+msgid "B<(default_filter_select_case)>"
+msgstr "B<(default_filter_select_case)>"
+
+# type: Plain text
+#: ../tin.1:1695 ../tin.5:1419
+msgid ""
+"Default for quick (1 key) auto-selection filter case. ON=filter case "
+"sensitive, OFF=ignore case. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1695
+#, no-wrap
+msgid "B<(default_filter_select_expire)>"
+msgstr "B<(default_filter_select_expire)>"
+
+# type: Plain text
+#: ../tin.1:1700
+msgid ""
+"Default for quick (1 key) auto-selection filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire.  Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1700
+#, no-wrap
+msgid "B<(default_filter_select_global)>"
+msgstr "B<(default_filter_select_global)>"
+
+# type: Plain text
+#: ../tin.1:1704
+msgid ""
+"Default for quick (1 key) auto-selection filter global.  ON=apply to all "
+"groups OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1704
+#, no-wrap
+msgid "B<(default_filter_select_header)>"
+msgstr "B<(default_filter_select_header)>"
+
+# type: Plain text
+#: ../tin.1:1707 ../tin.5:1430
+msgid "Default for quick (1 key) auto-selection filter header."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1725
+#, no-wrap
+msgid "B<(default_goto_group)>"
+msgstr "B<(default_goto_group)>"
+
+# type: TP
+#: ../tin.1:1727
+#, no-wrap
+msgid "B<(default_group_search)>"
+msgstr "B<(default_group_search)>"
+
+# type: TP
+#: ../tin.1:1729
+#, no-wrap
+msgid "B<(default_mail_address)>"
+msgstr "B<(default_mail_address)>"
+
+# type: TP
+#: ../tin.1:1731
+#, no-wrap
+msgid "B<(default_move_group)>"
+msgstr "B<(default_move_group)>"
+
+# type: TP
+#: ../tin.1:1733
+#, no-wrap
+msgid "B<(default_pattern)>"
+msgstr "B<(default_pattern)>"
+
+# type: TP
+#: ../tin.1:1735
+#, no-wrap
+msgid "B<(default_pipe_command)>"
+msgstr "B<(default_pipe_command)>"
+
+# type: TP
+#: ../tin.1:1737
+#, no-wrap
+msgid "B<(default_post_newsgroups)>"
+msgstr "B<(default_post_newsgroups)>"
+
+# type: TP
+#: ../tin.1:1739
+#, no-wrap
+msgid "B<(default_post_subject)>"
+msgstr "B<(default_post_subject)>"
+
+# type: TP
+#: ../tin.1:1741
+#, no-wrap
+msgid "B<(default_range_group)>"
+msgstr "B<(default_range_group)>"
+
+# type: TP
+#: ../tin.1:1743
+#, no-wrap
+msgid "B<(default_range_select)>"
+msgstr "B<(default_range_select)>"
+
+# type: TP
+#: ../tin.1:1745
+#, no-wrap
+msgid "B<(default_range_thread)>"
+msgstr "B<(default_range_thread)>"
+
+# type: TP
+#: ../tin.1:1747
+#, no-wrap
+msgid "B<(default_repost_group)>"
+msgstr "B<(default_repost_group)>"
+
+# type: TP
+#: ../tin.1:1749
+#, no-wrap
+msgid "B<(default_save_file)>"
+msgstr "B<(default_save_file)>"
+
+# type: TP
+#: ../tin.1:1751
+#, no-wrap
+msgid "B<(default_save_mode)>"
+msgstr "B<(default_save_mode)>"
+
+# type: TP
+#: ../tin.1:1753
+#, no-wrap
+msgid "B<(default_select_pattern)>"
+msgstr "B<(default_select_pattern)>"
+
+# type: TP
+#: ../tin.1:1755
+#, no-wrap
+msgid "B<(default_shell_command)>"
+msgstr "B<(default_shell_command)>"
+
+# type: TP
+#: ../tin.1:1757
+#, no-wrap
+msgid "B<(default_subject_search)>"
+msgstr "B<(default_subject_search)>"
+
+# type: TP
+#: ../tin.1:1759
+#, no-wrap
+msgid "B<Draw -E<gt> instead of highlighted bar (draw_arrow)>"
+msgstr "B<Zeige -E<gt> anstatt einer Markierung (draw_arrow)>"
+
+# type: Plain text
+#: ../tin.1:1763
+msgid ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1763
+#, no-wrap
+msgid "B<Invocation of your editor (editor_format)>"
+msgstr "B<Aufruf Ihres Editors (editor_format)>"
+
+# type: Plain text
+#: ../tin.1:1767
+msgid ""
+"The format string used to create the editor start command with parameters.  "
+"Default is \"%E +%N %F\" (i.e., /bin/vi +7 .article)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1767
+#, no-wrap
+msgid "B<Force redraw after certain commands (force_screen_redraw)>"
+msgstr "B<Anzeigeauffrischung nach Kommandos (force_screen_redraw)>"
+
+# type: Plain text
+#: ../tin.1:1771 ../tin.5:1490
+msgid ""
+"Specifies whether a screen redraw should always be done after certain "
+"external commands. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1771
+#, no-wrap
+msgid "B<Number of articles to get (getart_limit)>"
+msgstr "B<Anzahl der zu holenden Artikel (getart_limit)>"
+
+# type: Plain text
+#: ../tin.1:1777
+msgid ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin> will start "
+"fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1777
+#, no-wrap
+msgid "B<Catchup group using left key (group_catchup_on_exit)>"
+msgstr "B<Catchup der Gruppe mit l. Cursor (group_catchup_on_exit)>"
+
+# type: Plain text
+#: ../tin.1:1780 ../tin.5:1508
+msgid ""
+"If ON catchup group when leaving with the left arrow key. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1780
+#, no-wrap
+msgid "B<Go to the next unread article with (goto_next_unread)>"
+msgstr "B<Zum nächsten ungelesenen Artikel... (goto_next_unread)>"
+
+# type: Plain text
+#: ../tin.1:1788 ../tin.5:1505
+msgid ""
+"Which keys B<tin> should accept to jump to the next unread article.  "
+"Possible is any combination of B<PageDown> and B<PageNextUnread>.  When "
+"B<PageDown> is set B<tin> jumps to the next article at the end of the "
+"current one. When B<PageNextUnread> is set B<tin> jumps immediately to the "
+"next article when B<PageNextUnread> ('B<E<lt>TABE<gt>>')  is pressed. "
+"Default is PageNextUnread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1788
+#, no-wrap
+msgid "B<Max. length of group names shown (groupname_max_length)>"
+msgstr "B<Max. Länge angezeigter Gruppennamen (groupname_max_length)>"
+
+# type: Plain text
+#: ../tin.1:1792 ../tin.5:1512
+msgid ""
+"Maximum length of the names of newsgroups to be displayed so that more of "
+"the newsgroup description can be displayed. Default is 32."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1792
+#, no-wrap
+msgid "B<Display uue data as an attachment (hide_uue)>"
+msgstr "B<Zeige uue-Teile als Anhang (hide_uue)>"
+
+# type: Plain text
+#: ../tin.1:1801
+msgid ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment). If set to 'Hide all' "
+"then any line that looks like uuencoded data will be folded into a tag "
+"line.  This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer. Default is 'No'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1801
+#, no-wrap
+msgid "B<External inews (inews_prog)>"
+msgstr "B<Externes inews-Programm (inews_prog)>"
+
+# type: Plain text
+#: ../tin.1:1808
+msgid ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is --internal (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1808
+#, no-wrap
+msgid "B<(info_in_last_line)>"
+msgstr "B<(info_in_last_line)>"
+
+# type: Plain text
+#.  this is missing from the Menu
+#: ../tin.1:1815
+msgid ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>')  toggles "
+"setting. This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1815
+#, no-wrap
+msgid "B<Use interactive mail reader (interactive_mailer)>"
+msgstr "B<Benutze interaktives Mailprogramm (interactive_mailer)>"
+
+# type: Plain text
+#: ../tin.1:1822
+msgid ""
+"Interactive mailreader: if greater than 0 your mailreader will be invoked "
+"earlier for reply so you can use more of its features (e.g. MIME, pgp, ...). "
+"1 means include headers, 2 means don't include headers (old "
+"use_mailreader_i=ON option). 0 turns off usage. This option has to suit "
+"B<mailer_format>. Default is 0."
+msgstr ""
+
+# type: TP
+#.  TODO: fix menu description
+#.        mono_mark* currently do allow "Reverse video" even if
+#.        inverse_okay=FALSE
+#: ../tin.1:1822
+#, no-wrap
+msgid "B<Use inverse video for page headers (inverse_okay)>"
+msgstr "B<Inverse Darstellung für die Header (inverse_okay)>"
+
+# type: Plain text
+#: ../tin.1:1829 ../tin.5:1545
+msgid ""
+"If ON use inverse video for page headers and URL highlighting.  Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1829
+#, no-wrap
+msgid "B<Keep failed arts in ~/dead.articles (keep_dead_articles)>"
+msgstr "B<Halte Fehlschl. in ~/dead.articles (keep_dead_articles)>"
+
+# type: Plain text
+#: ../tin.1:1834 ../tin.5:1550
+msgid ""
+"If ON keep all failed postings in I<${TIN_HOMEDIR:-\"$HOME\"}/dead.articles> "
+"besides keeping the last failed posting in I<${TIN_HOMEDIR:-\"$HOME\"}/dead."
+"article>. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1834
+#, no-wrap
+msgid "B<Filter which articles (kill_level)>"
+msgstr "B<Filter (kill) anwenden auf (kill_level)>"
+
+# type: Plain text
+#: ../tin.1:1838
+msgid ""
+"This option controls the processing and display of articles that are "
+"killed.  There are 3 options:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1845
+msgid ""
+"B<Kill only unread arts> is the 'traditional' behavior of B<tin>. Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1850 ../tin.5:1567
+msgid ""
+"B<Kill all arts & show with K> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles are threaded as normal but they will be marked with "
+"B<art_marked_killed>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1854 ../tin.5:1571
+msgid ""
+"B<Kill all arts and never show> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles simply does not get displayed at all."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1856
+msgid "Default is 0 (B<Kill only unread arts>)."
+msgstr "Voreinstellung ist 0 (B<Killt nur ungelesene Artikel>)."
+
+# type: TP
+#: ../tin.1:1856
+#, no-wrap
+msgid "B<Use 8bit characters in mail headers (mail_8bit_header)>"
+msgstr "B<Benutze 8bit Zeichen im Mail Header (mail_8bit_header)>"
+
+# type: Plain text
+#: ../tin.1:1862 ../tin.5:1578
+msgid ""
+"Allows 8bit characters unencoded in the header of mail message. Default is "
+"OFF. Turning it ON is effective only if B<mail_mime_encoding> is also set to "
+"8bit. Leaving it OFF is safe for most users and compliant to Internet Mail "
+"Standard (B<RFC5322> and B<RFC2047>). Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1862
+#, no-wrap
+msgid "B<Mail address (mail_address)>"
+msgstr "B<Mailadresse (und Name) (mail_address)>"
+
+# type: Plain text
+#: ../tin.1:1868 ../tin.5:1584
+msgid ""
+"User's mail address (and full name), if not username@host. This is used when "
+"creating articles, sending mail and when B<pgp>(1)  signing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1868
+#, no-wrap
+msgid "B<MIME encoding in mail messages (mail_mime_encoding)>"
+msgstr "B<MIME-Kodierung für E-Mails (mail_mime_encoding)>"
+
+# type: Plain text
+#: ../tin.1:1872 ../tin.5:1588
+msgid ""
+"MIME encoding of the body in mail message, if necessary (8bit, base64, "
+"quoted-printable, 7bit). Default is quoted-printable."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1872
+#, no-wrap
+msgid "B<Quote line when mailing (mail_quote_format)>"
+msgstr "B<Einleitungszeile bei Mailantwort (mail_quote_format)>"
+
+# type: Plain text
+#: ../tin.1:1877 ../tin.5:1593
+msgid ""
+"Format of quote line when replying (via mail) to an article (%A=Address, %"
+"D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %"
+"C=Firstname, %I=Initials). Default is \"In article %M you wrote:\""
+msgstr ""
+
+# type: TP
+#: ../tin.1:1877
+#, no-wrap
+msgid "B<Format of the mailbox (mailbox_format)>"
+msgstr "B<Mailbox-Format (mailbox_format)>"
+
+# type: Plain text
+#: ../tin.1:1885
+msgid ""
+"Select one of the following mailbox-formats: MBOXO (default, except for "
+"SCO), MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on "
+"MBOXO and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1885
+#, no-wrap
+msgid "B<Mail directory (maildir)>"
+msgstr "B<Mail Verzeichnis (maildir)>"
+
+# type: Plain text
+#: ../tin.1:1894
+msgid ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  format. "
+"This feature is mainly for use with the B<elm>(1)  mail program. It allows "
+"the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to.  Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1894
+#, no-wrap
+msgid "B<Invocation of your mail command (mailer_format)>"
+msgstr "B<Aufruf Ihres Mailkommandos (mailer_format)>"
+
+# type: Plain text
+#.  TODO: document %S, %T, %M, %F, %U ...
+#: ../tin.1:1903
+msgid ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %"
+"F' (e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows "
+"other mailers with different command-line parameters to be used such as 'elm "
+"-s \"%S\" \"%T\" E<lt> \"%F\"' (e.g., elm -s \"subject\" \"iain\" E<lt> ."
+"article) or 'sendmail -oi -oem -t E<lt> %F' (e.g. sendmail -oi -oem -t "
+"E<lt> .article)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1903
+#, no-wrap
+msgid "B<'Mark as (un)read' ignores tags (mark_ignore_tags)>"
+msgstr "B<'Art. (un)gelesen markieren' ignorie... (mark_ignore_tags)>"
+
+# type: Plain text
+#: ../tin.1:1911 ../tin.5:1647
+msgid ""
+"When this is ON, the B<GroupMarkThdRead> ('B<K>'), B<ThreadMarkArtRead> "
+"('B<K>'), B<MarkThdUnread> ('B<Z>') at Group level and B<MarkArtUnread> "
+"('B<z>') at Thread level functions mark just the current article or thread, "
+"ignoring other tagged, (un)read articles. When OFF, the same function "
+"presents a menu with choices of the current thread or article, all tagged, "
+"unread articles, or nothing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1911
+#, no-wrap
+msgid "B<Mark saved articles/threads as read (mark_saved_read)>"
+msgstr "B<Mark. gesp. Artikel/Threads gelesen (mark_saved_read)>"
+
+# type: Plain text
+#: ../tin.1:1914 ../tin.5:1639
+msgid "If ON mark articles that are saved as read. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1914
+#, no-wrap
+msgid "B<Viewer program for MIME articles (metamail_prog)>"
+msgstr "B<MIME-Viewer (metamail_prog)>"
+
+# type: Plain text
+#: ../tin.1:1926
+msgid ""
+"Path, name and options of external B<metamail>(1)  program used to view non-"
+"textual parts of articles.  To use the built-in viewer, set to --internal. "
+"This is the default value when B<metamail>(1)  is not installed. Leave it "
+"blank if you don't want any automatic viewing of non-textual attachments. "
+"The 'V' command can always be used to manually view any attachments.  See "
+"also B<ask_for_metamail>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1926
+#, no-wrap
+msgid "B<MM_CHARSET (mm_charset)>"
+msgstr "B<MM_CHARSET (mm_charset)>"
+
+# type: Plain text
+#: ../tin.1:1939
+msgid ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1939
+#, no-wrap
+msgid "B<MM_NETWORK_CHARSET (mm_network_charset)>"
+msgstr "B<MM_NETWORK_CHARSET (mm_network_charset)>"
+
+# type: Plain text
+#: ../tin.1:1950
+msgid ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead. B<mm_network_charset> is limited to one of the "
+"following charsets:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1953 ../tin.5:1686
+msgid ""
+"US-ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-{R,U,RU} EUC-{CN,JP,"
+"KR,TW}, ISO-2022-{CN,CN-EXT,JP,JP-1,JP-2}, Big5, UTF-8"
+msgstr ""
+"US-ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-{R,U,RU} EUC-{CN,JP,"
+"KR,TW}, ISO-2022-{CN,CN-EXT,JP,JP-1,JP-2}, Big5, UTF-8"
+
+# type: Plain text
+#: ../tin.1:1959 ../tin.5:1692
+msgid ""
+"Not all values might work on your system, see B<iconv_open>(3)  for more "
+"details. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1959
+#, no-wrap
+msgid "B<Attribute of highlighting with _dash_ (mono_markdash)>"
+msgstr "B<Hervorhebungsattr. _Unterstriche_ (mono_markdash)>"
+
+# type: Plain text
+#: ../tin.1:1964
+msgid ""
+"Character attribute of words emphasized like _this_. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1964
+#, no-wrap
+msgid "B<Attribute of highlighting with /slash/ (mono_markslash)>"
+msgstr "B<Hervorhebungsattr. /Schrägstriche/ (mono_markslash)>"
+
+# type: Plain text
+#: ../tin.1:1969
+msgid ""
+"Character attribute of words emphasized like /this/. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1969
+#, no-wrap
+msgid "B<Attribute of highlighting with *stars* (mono_markstar)>"
+msgstr "B<Hervorhebungsattribute *Sterne* (mono_markstar)>"
+
+# type: Plain text
+#: ../tin.1:1974
+msgid ""
+"Character attribute of words emphasized like *this*. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1974
+#, no-wrap
+msgid "B<Attribute of highlighting with -stroke- (mono_markstroke)>"
+msgstr "B<Hervorhebungsattr. -Durchstreich.- (mono_markstroke)>"
+
+# type: Plain text
+#: ../tin.1:1979
+msgid ""
+"Character attribute of words emphasized like -this-. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1979
+#, no-wrap
+msgid "B<(newnews)>"
+msgstr "B<(newnews)>"
+
+# type: Plain text
+#: ../tin.1:1983
+msgid ""
+"These are internal timers used by B<tin> to keep track of new newsgroups.  "
+"Do not change them unless you understand what they are for."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1983
+#, no-wrap
+msgid "B<Display these header fields (or *) (news_headers_to_display)>"
+msgstr "B<or *) (news_headers_to_display>"
+
+# type: Plain text
+#: ../tin.1:1990
+msgid ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used.  If "
+"you enter 'X-' as the value, you will see all headers beginning with "
+"'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1990
+#, no-wrap
+msgid "B<Do not display these header fields (news_headers_to_not_display)>"
+msgstr "B<Zeige folgende Header nicht an (news_headers_to_not_display)>"
+
+# type: Plain text
+#: ../tin.1:1999
+msgid ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought X- headers were A Good "
+"Thing(tm), but thought Alan and Pape were miscreants... well then you would "
+"do something like this: I<news_headers_to_display=X-> "
+"I<news_headers_to_not_display=X-Alan X-Pape>.  Not defining anything turns "
+"off this option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1999
+#, no-wrap
+msgid "B<Quote line when following up (news_quote_format)>"
+msgstr "B<Einleitungszeile beim Antworten (news_quote_format)>"
+
+# type: Plain text
+#: ../tin.1:2004 ../tin.5:1739
+msgid ""
+"Format of quote line when posting/following up an article (%A=Address, %"
+"D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %"
+"C=Firstname, %I=Initials). Default is \"%F wrote:\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2004
+#, no-wrap
+msgid "B<Unicode normalization form (normalization_form)>"
+msgstr "B<Unicode Normalisierungsart (normalization_form)>"
+
+# type: Plain text
+#: ../tin.1:2008
+msgid ""
+"The normalization form B<tin> should use to normalize unicode input.  The "
+"possible values are:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2011 ../tin.5:1746
+msgid "B<None>: no normalization"
+msgstr "B<None>: keine Normalisierung"
+
+# type: Plain text
+#: ../tin.1:2013 ../tin.5:1748
+msgid "B<NFKC>: Compatibility Decomposition, followed by Canonical Composition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2015 ../tin.5:1750
+msgid "B<NFKD>: Compatibility Decomposition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2017 ../tin.5:1752
+msgid "B<NFC>: Canonical Decomposition, followed by Canonical Composition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2019 ../tin.5:1754
+msgid "B<NFD>: Canonical Decomposition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2022
+msgid ""
+"Some normalization modes are only available if they are supported by the "
+"library B<tin> uses to do the normalization. Default is NFKC."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2022
+#, no-wrap
+msgid "B<Go to first unread article in group (pos_first_unread)>"
+msgstr "B<Setze Cursor auf ersten ungel. Art. (pos_first_unread)>"
+
+# type: Plain text
+#: ../tin.1:2026
+msgid ""
+"If ON put cursor at first unread article in group otherwise at last article. "
+"Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2026
+#, no-wrap
+msgid "B<Use 8bit characters in news headers (post_8bit_header)>"
+msgstr "B<Benutze 8bit-Zeichen im Newsheader (post_8bit_header)>"
+
+# type: Plain text
+#: ../tin.1:2037 ../tin.5:1774
+msgid ""
+"Allows 8bit characters unencoded in the header of a news article, if set "
+"this also disables the generation of MIME-headers when they are usually "
+"required. Default is OFF. Only enacted if B<post_mime_encoding> is also set "
+"to 8bit. In a number of local hierarchies where 8bit characters are used, "
+"using unencoded (raw)  8bit characters in header is acceptable and sometimes "
+"even recommended so that you need to check the convention adopted in the "
+"local hierarchy of your interest to determine what to do with this and "
+"B<post_mime_encoding>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2037
+#, no-wrap
+msgid "B<MIME encoding in news messages (post_mime_encoding)>"
+msgstr "B<MIME-Kodierung in Newsartikeln (post_mime_encoding)>"
+
+# type: Plain text
+#: ../tin.1:2042
+msgid ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding. base64 "
+"and quoted-printable are usually undesired on usenet."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2042
+#, no-wrap
+msgid "B<View post-processed files (post_process_view)>"
+msgstr "B<Nachbearbeitete Artikel anzeigen (post_process_view)>"
+
+# type: Plain text
+#: ../tin.1:2047
+msgid ""
+"If ON, then B<tin> will start an appropriate viewer program to display any "
+"files that were post processed and uudecoded. The program is determined "
+"using the mailcap file. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2047
+#, no-wrap
+msgid "B<Post process saved articles (post_process_type)>"
+msgstr "B<Nachbearbeiten gespeichert. Artikel (post_process_type)>"
+
+# type: Plain text
+#: ../tin.1:2051
+msgid ""
+"This specifies whether to perform post processing on saved articles.  The "
+"following values are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2054 ../tin.5:1795
+msgid "B<No> (default), no post processing is done."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2058
+msgid "B<Shell archives>, unpacking of multi-part B<shar>(1)  files only."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2060 ../tin.5:1802
+msgid "B<Yes>, binary attachments and data will be decoded and saved."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2061
+#, no-wrap
+msgid "B<Filename to be used for storing posted articles (posted_articles_file)>"
+msgstr "B<Gepostete Artikel speichern in (posted_articles_file)>"
+
+# type: Plain text
+#: ../tin.1:2067 ../tin.5:1809
+msgid ""
+"Keep posted articles in I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/"
+">B<posted_articles_file>.  If no filename is set then postings will not be "
+"saved.  Default is 'posted'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2067
+#, no-wrap
+msgid "B<Print all headers when printing (print_header)>"
+msgstr "B<Alle Header beim Drucken ausgeben (print_header)>"
+
+# type: Plain text
+#: ../tin.1:2071 ../tin.5:1813
+msgid ""
+"If ON, then the full article header is sent to the printer. Otherwise only "
+"the ''Subject:'' and ''From:'' fields are output. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2071
+#, no-wrap
+msgid "B<Printer program with options (printer)>"
+msgstr "B<Druckprogramm mit Optionen (printer)>"
+
+# type: Plain text
+#: ../tin.1:2080
+msgid ""
+"The printer program with options that is to be used to print articles.  The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV machines. "
+"Printing from B<tin> may have been disabled by the System Administrator."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2080
+#, no-wrap
+msgid "B<Process only unread articles (process_only_unread)>"
+msgstr "B<Bearbeite nur ungelesene Artikel (process_only_unread)>"
+
+# type: Plain text
+#: ../tin.1:2084 ../tin.5:1827
+msgid ""
+"If ON only save/print/pipe/mail unread articles (tagged articles excepted).  "
+"Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2084
+#, no-wrap
+msgid "B<Show empty Followup-To in editor (prompt_followupto)>"
+msgstr "B<Leeres Fup'2 im Editor anzeigen (prompt_followupto)>"
+
+# type: Plain text
+#: ../tin.1:2087
+msgid ""
+"If ON show empty ''Followup-To:'' header when editing an article. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2087
+#, no-wrap
+msgid "B<Characters used as quote-marks (quote_chars)>"
+msgstr "B<Zitatzeichen (quote_chars)>"
+
+# type: Plain text
+#.  TODO: document %s
+#: ../tin.1:2092 ../tin.5:1837
+msgid ""
+"The character used in quoting included text to article followups and mail "
+"replies. The '_' character represents a blank character and is replaced with "
+"' ' when read. Default is 'E<gt>_'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2092
+#, no-wrap
+msgid "B<Quoting behavior (quote_style)>"
+msgstr "B<Zitierverhalten (quote_style)>"
+
+# type: Plain text
+#: ../tin.1:2099
+msgid ""
+"How articles should be quoted when following up or replying to them. There "
+"are a number of things that can be done: empty lines can be quoted, "
+"signatures can be quoted and quote_chars can be compressed when quoting "
+"multiple times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). The default is to compress quotes, and to quote empty "
+"lines."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2103
+msgid ""
+"When you are viewing an article in raw mode ('B<^H>'), and follow up or "
+"reply to it, the signature will be quoted even if it would otherwise not "
+"be.  If B<show_signatures> is off, then the signature will never be quoted."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2103
+#, no-wrap
+msgid "B<Regex used to show quoted lines (quote_regex)>"
+msgstr "B<Regulärer Ausd. für zit. Zeilen (quote_regex)>"
+
+# type: Plain text
+#: ../tin.1:2108
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2108
+#, no-wrap
+msgid "B<Regex used to show twice quoted l. (quote_regex2)>"
+msgstr "B<Reg. Ausd. für zweifach zitierte Z. (quote_regex2)>"
+
+# type: Plain text
+#: ../tin.1:2113
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2113
+#, no-wrap
+msgid "B<Regex used to show E<gt>= 3 times q.l. (quote_regex3)>"
+msgstr "B<Reg. Ausd. für E<gt>=3-fach zitierte Z. (quote_regex3)>"
+
+# type: Plain text
+#: ../tin.1:2118
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2118
+#, no-wrap
+msgid "B<Article recentness time limit (recent_time)>"
+msgstr "B<Artikel Neuheitszeit-Limit (recent_time)>"
+
+# type: Plain text
+#: ../tin.1:2122 ../tin.5:1882
+msgid ""
+"If set to 0, this feature is deactivated, otherwise it means the number of "
+"days. Default is 2."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2122
+#, no-wrap
+msgid "B<Render BiDi (render_bidi)>"
+msgstr "B<BiDi wiedergeben (render_bidi)>"
+
+# type: Plain text
+#: ../tin.1:2126 ../tin.5:1886
+msgid ""
+"If ON B<tin> does the rendering of bi-directional text. If OFF B<tin> leaves "
+"the rendering of bi-directional text to the terminal. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2126
+#, no-wrap
+msgid "B<Interval in seconds to reread active (reread_active_file_secs)>"
+msgstr "B<Active alle ... Sekunden neu lesen (reread_active_file_secs)>"
+
+# type: Plain text
+#: ../tin.1:2131 ../tin.5:1891
+msgid ""
+"The news I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file is "
+"reread at regular intervals to show if any new news has arrived. Default is "
+"1200. Setting this to 0 will disable this feature."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2131
+#, no-wrap
+msgid "B<Directory to save arts/threads in (savedir)>"
+msgstr "B<Verz. um Art/Threads zu speichern (savedir)>"
+
+# type: Plain text
+#: ../tin.1:2135 ../tin.5:1895
+msgid ""
+"Directory where articles/threads are saved. Default is I<${TIN_HOMEDIR:-"
+"\"$HOME\"}/News>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2135
+#, no-wrap
+msgid "B<Score limit (kill) (score_limit_kill)>"
+msgstr "B<kill) (score_limit_kill>"
+
+# type: Plain text
+#: ../tin.1:2139 ../tin.5:1899
+msgid ""
+"If the score of an article is below or equal this value the article gets "
+"marked as killed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2139
+#, no-wrap
+msgid "B<Score limit (select) (score_limit_select)>"
+msgstr "B<select) (score_limit_select>"
+
+# type: Plain text
+#: ../tin.1:2143 ../tin.5:1903
+msgid ""
+"If the score of an article is above or equal this value the article gets "
+"marked as hot."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2143
+#, no-wrap
+msgid "B<Default score to kill articles (score_kill)>"
+msgstr "B<Bewertung für gekillte Artikel (score_kill)>"
+
+# type: Plain text
+#: ../tin.1:2147 ../tin.5:1907
+msgid ""
+"Score of an article which should be killed, this must be E<lt>= "
+"B<score_limit_kill>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2147
+#, no-wrap
+msgid "B<Default score to select articles (score_select)>"
+msgstr "B<Bewertung für wichtige Artikel (score_select)>"
+
+# type: Plain text
+#: ../tin.1:2151 ../tin.5:1911
+msgid ""
+"Score of an article which should be marked hot, this must be E<gt>= "
+"B<score_limit_select>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2151
+#, no-wrap
+msgid "B<Number of lines to scroll in pager (scroll_lines)>"
+msgstr "B<Blättere Artikel um ... Zeilen (scroll_lines)>"
+
+# type: Plain text
+#: ../tin.1:2159
+msgid ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional tin page-by-page scrolling. Set to -1 to get page-by-page "
+"scrolling where the top/bottom line is carried over onto the next page.  "
+"This setting supersedes show_last_line_prev_page=ON. Set to -2 to get half-"
+"page scrolling. This setting supersedes full_page_scroll=OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2159
+#, no-wrap
+msgid "B<In group menu, show author by (show_author)>"
+msgstr "B<Im Gruppenmenü, zeige Autor an nach (show_author)>"
+
+# type: Plain text
+#: ../tin.1:2163 ../tin.5:1923
+msgid ""
+"Which information about the author should be shown. Default is 2, authors "
+"full name."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2166 ../tin.5:1926
+msgid "B<None>, only the ''Subject:'' line will be displayed."
+msgstr "B<Nichts>, nur die ''Subject:'' Zeile wird angezeigt."
+
+# type: Plain text
+#: ../tin.1:2169 ../tin.5:1929
+msgid ""
+"B<Address>, ''Subject:'' line & the address part of the ''From:'' line are "
+"displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2172 ../tin.5:1932
+msgid ""
+"B<Full Name>, ''Subject:'' line & the authors full name part of the "
+"\\&''From:'' line are displayed (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2175 ../tin.5:1935
+msgid ""
+"B<Address and Name>, ''Subject:'' line & all of the ''From:'' line are "
+"displayed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2176
+#, no-wrap
+msgid "B<Show description of each newsgroup (show_description)>"
+msgstr "B<Zeige Beschreibung der Newsgruppen (show_description)>"
+
+# type: Plain text
+#: ../tin.1:2185
+msgid ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/newsgroups> file and if supported (requires B<tin> to be build "
+"with mh-mail-handling support) from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"mailgroups> for mailgroups. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2185
+#, no-wrap
+msgid "B<Show lines/score in listings (show_info)>"
+msgstr "B<Zeige Zeilenz./Bewert. in Übersicht (show_info)>"
+
+# type: Plain text
+#: ../tin.1:2189 ../tin.5:1949
+msgid ""
+"Which information about the thread or article should be shown. Default is 1, "
+"show only the line count."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2192 ../tin.5:1952
+msgid "B<None>, no information will be displayed."
+msgstr "B<Nichts>. Keine weiteren Informationen werden angezeigt."
+
+# type: Plain text
+#: ../tin.1:2196
+msgid ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread) article will be "
+"displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2200 ../tin.5:1960
+msgid ""
+"B<Score>, in article listing the score of an article will be displayed and "
+"in thread listing the score of the thread will be displayed - see also "
+"B<thread_score>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2202 ../tin.5:1962
+msgid "B<Lines & Score>, display line count and score."
+msgstr "B<Zeilen und Bewertung>, Zeilenzahl und Bewertung zusätzlich anzeigen."
+
+# type: TP
+#: ../tin.1:2203
+#, no-wrap
+msgid "B<Show only unread articles (show_only_unread_arts)>"
+msgstr "B<Zeige nur ungelesene Artikel (show_only_unread_arts)>"
+
+# type: Plain text
+#: ../tin.1:2207
+msgid ""
+"If ON show only new/unread articles otherwise show all articles.  Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2207
+#, no-wrap
+msgid "B<Show only groups with unread arts (show_only_unread_groups)>"
+msgstr "B<Zeige nur Gruppen mit ungel. Art. (show_only_unread_groups)>"
+
+# type: Plain text
+#: ../tin.1:2211 ../tin.5:1971
+msgid ""
+"If ON show only subscribed groups that contain unread articles. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2211
+#, no-wrap
+msgid "B<Display signatures (show_signatures)>"
+msgstr "B<Zeige Signaturen an (show_signatures)>"
+
+# type: Plain text
+#: ../tin.1:2215
+msgid "If OFF don't show signatures when displaying articles.  Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2215
+#, no-wrap
+msgid "B<Prepend signature with '\\en-- \\en' (sigdashes)>"
+msgstr "B<Trenne Sig mit '\\en-- \\en' ab (sigdashes)>"
+
+# type: Plain text
+#: ../tin.1:2218 ../tin.5:1977
+msgid "If ON prepend the signature with sigdashes. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2218
+#, no-wrap
+msgid "B<Create signature from path/command (sigfile)>"
+msgstr "B<Erzeuge Signatur aus Pfad/Kommando (sigfile)>"
+
+# type: Plain text
+#: ../tin.1:2228
+msgid ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified directory. "
+"If the path starts with a ! the program the path points to will be executed "
+"to generate a signature. B<tin> will pass the name of the current newsgroup "
+"as argument to the program. --none will suppress any signature.  Default is "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2228
+#, no-wrap
+msgid "B<Add signature when reposting (signature_repost)>"
+msgstr "B<Signatur beim Reposten anhängen (signature_repost)>"
+
+# type: Plain text
+#: ../tin.1:2231 ../tin.5:1991
+msgid "If ON add signature to reposted articles. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2231
+#, no-wrap
+msgid "B<Regex used to highlight /slashes/ (slashes_regex)>"
+msgstr "B<Reg. für /Schrägst./ Hervorhebungen (slashes_regex)>"
+
+# type: Plain text
+#: ../tin.1:2236
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2236
+#, no-wrap
+msgid "B<Sort articles by (sort_article_type)>"
+msgstr "B<Sortiere Artikel nach (sort_article_type)>"
+
+# type: Plain text
+#: ../tin.1:2240 ../tin.5:2002
+msgid ""
+"This specifies how articles should be sorted. Sort by ascending Date (6) is "
+"the default. The following sort types are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2243 ../tin.5:2005
+msgid "B<Nothing>, don't sort articles."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2245 ../tin.5:2007
+msgid ""
+"B<Subject: (descending)>, sort articles by ''Subject:'' field descending."
+msgstr ""
+"B<Subject: (absteigend)>, Artikel absteigend nach ''Subject:'' sortieren."
+
+# type: Plain text
+#: ../tin.1:2247 ../tin.5:2009
+msgid "B<Subject: (ascending)>, sort articles by ''Subject:'' field ascending."
+msgstr ""
+"B<Subject: (aufsteigend)>, Artikel aufsteigend nach ''Subject:'' sortieren."
+
+# type: Plain text
+#: ../tin.1:2249 ../tin.5:2011
+msgid "B<From: (descending)>, sort articles by ''From:'' field descending."
+msgstr "B<From: (absteigend)>, Artikel absteigend nach ''From:'' sortieren."
+
+# type: Plain text
+#: ../tin.1:2251 ../tin.5:2013
+msgid "B<From: (ascending)>, sort articles by ''From:'' field ascending."
+msgstr "B<From: (aufsteigend)>, Artikel aufsteigend nach ''From:'' sortieren."
+
+# type: Plain text
+#: ../tin.1:2253 ../tin.5:2015
+msgid "B<Date: (descending)>, sort articles by ''Date:'' field descending."
+msgstr "B<Date: (absteigend)>, Artikel absteigend nach ''Date:'' sortieren."
+
+# type: Plain text
+#: ../tin.1:2256 ../tin.5:2018
+msgid ""
+"B<Date: (ascending)>, sort articles by ''Date:'' field ascending (default)."
+msgstr "B<Date: (aufsteigend)>, Artikel aufsteigend nach ''Date:'' sortieren."
+
+# type: Plain text
+#: ../tin.1:2258 ../tin.5:2020
+msgid "B<Score (descending)>, sort articles by filtering score descending."
+msgstr "B<Score (absteigend)>, Artikel absteigend nach Score sortieren."
+
+# type: IP
+#: ../tin.1:2258 ../tin.5:2020
+#, no-wrap
+msgid "8"
+msgstr "8"
+
+# type: Plain text
+#: ../tin.1:2260 ../tin.5:2022
+msgid "B<Score (ascending)>, sort articles by filtering score ascending."
+msgstr "B<Score (aufsteigend)>, Artikel aufsteigend nach Score sortieren."
+
+# type: IP
+#: ../tin.1:2260 ../tin.5:2022
+#, no-wrap
+msgid "9"
+msgstr "9"
+
+# type: Plain text
+#: ../tin.1:2262 ../tin.5:2024
+msgid "B<Lines: (descending)>, sort articles by ''Lines:'' field descending."
+msgstr "B<Lines: (absteigend)>, Artikel absteigend nach ''Lines:'' sortieren."
+
+# type: IP
+#: ../tin.1:2262 ../tin.5:2024
+#, no-wrap
+msgid "10"
+msgstr "10"
+
+# type: Plain text
+#: ../tin.1:2264 ../tin.5:2026
+msgid "B<Lines: (ascending)>, sort articles by ''Lines:'' field ascending."
+msgstr ""
+"B<Lines: (aufsteigend)>, Artikel aufsteigend nach ''Lines:'' sortieren."
+
+# type: TP
+#: ../tin.1:2265
+#, no-wrap
+msgid "B<Sort threads by (sort_threads_type)>"
+msgstr "B<Sortiere Threads nach (sort_threads_type)>"
+
+# type: Plain text
+#: ../tin.1:2270 ../tin.5:2031
+msgid ""
+"This specifies how threads will be sorted. Sort by descending Score (1) is "
+"the default. The following sort types are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2273 ../tin.5:2034
+msgid "B<Nothing>, don't sort threads."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2276 ../tin.5:2037
+msgid ""
+"B<Score (descending)>, sort threads by filtering score descending (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2278 ../tin.5:2039
+msgid "B<Score (ascending)>, sort threads by filtering score ascending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2280 ../tin.5:2041
+msgid ""
+"B<Last posting date (descending)>, sort threads by date of last posting "
+"descending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2282 ../tin.5:2043
+msgid ""
+"B<Last posting date (ascending)>, sort threads by date of last posting "
+"ascending."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2283
+#, no-wrap
+msgid "B<Spamtrap warning address parts (spamtrap_warning_addresses)>"
+msgstr "B<Spamfallenwarnung in Adresse (spamtrap_warning_addresses)>"
+
+# type: Plain text
+#: ../tin.1:2288
+msgid ""
+"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 "
+"these strings. The matching is case-insensitive. Example:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2290
+msgid "I<spam,delete,remove>"
+msgstr "I<spam,delete,remove>"
+
+# type: TP
+#: ../tin.1:2290
+#, no-wrap
+msgid "B<Regex used to highlight *stars* (stars_regex)>"
+msgstr "B<Regu. A. für *Stern* Hervorhebungen (stars_regex)>"
+
+# type: Plain text
+#: ../tin.1:2295
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2295
+#, no-wrap
+msgid "B<Start editor with line offset (start_editor_offset)>"
+msgstr "B<Starte Editor mit Einrückung (start_editor_offset)>"
+
+# type: Plain text
+#: ../tin.1:2300 ../tin.5:2061
+msgid ""
+"Set ON if the editor used for posting, follow-ups and bug reports has the "
+"capability of starting and positioning the cursor at a specified line within "
+"a file. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2300
+#, no-wrap
+msgid "B<Strip blanks of end of lines (strip_blanks)>"
+msgstr "B<Leerzeichen am Zeilenende entfernen (strip_blanks)>"
+
+# type: Plain text
+#: ../tin.1:2306 ../tin.5:2065
+msgid ""
+"Strips the blanks from the end of each line therefore speeding up the "
+"display when reading on a slow terminal or via modem. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2306
+#, no-wrap
+msgid "B<Remove bogus groups from newsrc (strip_bogus)>"
+msgstr "B<Lösche nicht vorhan. G. aus newsrc (strip_bogus)>"
+
+# type: Plain text
+#: ../tin.1:2315 ../tin.5:2073
+msgid ""
+"Bogus groups are groups that are present in your I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc> file that no longer exist on the news server. There are 3 "
+"options. 0 means do nothing & always keep bogus groups.  1 means bogus "
+"groups will be permanently removed. 2 means that bogus groups will appear on "
+"the Group Selection Menu, prefixed with a 'D'. This allows you to "
+"unsubscribe from them as and when you wish. Default is 0 (Always Keep)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2315
+#, no-wrap
+msgid "B<No unsubscribed groups in newsrc (strip_newsrc)>"
+msgstr "B<Nur abonnierte Gruppen in newsrc (strip_newsrc)>"
+
+# type: Plain text
+#: ../tin.1:2319 ../tin.5:2077
+msgid ""
+"If ON, then unsubscribed groups will be permanently removed from your I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2319
+#, no-wrap
+msgid "B<Regex used to highlight -strokes- (strokes_regex)>"
+msgstr "B<Reg. für -Durchstr.- Hervorhebungen (strokes_regex)>"
+
+# type: Plain text
+#: ../tin.1:2324
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2324
+#, no-wrap
+msgid "B<Wrap around threads on next unread (wrap_on_next_unread)>"
+msgstr "B<Nä.ungel.-kein Abbr. am Listenende? (wrap_on_next_unread)>"
+
+# type: Plain text
+#: ../tin.1:2329 ../tin.5:2260
+msgid ""
+"If enabled a search for the next unread article will wrap around all "
+"articles to find also previous unread articles. If disabled the search stops "
+"at the end of the thread list. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2329
+#, no-wrap
+msgid "B<Display \"a as Umlaut-a (tex2iso_conv)>"
+msgstr "B<Wandle TeX-Umlaute automatisch um (tex2iso_conv)>"
+
+# type: Plain text
+#: ../tin.1:2333
+msgid ""
+"If ON, show \"a as Umlaut-a, etc. Default is OFF. This behavior can also be "
+"toggled in the article viewer via B<PageToggleTex2iso> ('B<\">')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2333
+#, no-wrap
+msgid "B<Thread articles by (thread_articles)>"
+msgstr "B<Threade Artikel anhand (thread_articles)>"
+
+# type: Plain text
+#: ../tin.1:2341
+msgid ""
+"Defines which threading method to use. It's possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_arts> to 0 - 4 in the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"attributes>. (See also \"GROUP ATTRIBUTES\".)  The default is Both Subject "
+"and References.  The choices are:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2344
+msgid "B<None>, don't thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2346
+msgid "B<Subject>, thread on ''Subject:'' only."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2348
+msgid "B<References>, thread on ''References:'' only."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2351
+msgid ""
+"B<Both Subject and References>, thread on ''References:'' then "
+"\\&''Subject:'' (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2353
+msgid "B<Multipart Subject>, thread multipart articles on ''Subject:''."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2356
+msgid ""
+"B<Percentage Match>, thread base upon a partial character match on "
+"\\&''Subject:''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2357
+#, no-wrap
+msgid "B<Catchup thread by using left key (thread_catchup_on_exit)>"
+msgstr "B<Catchup mit der linken Cursort. (thread_catchup_on_exit)>"
+
+# type: Plain text
+#: ../tin.1:2361 ../tin.5:2108
+msgid ""
+"If ON catchup group/thread when leaving with the left arrow key. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2361
+#, no-wrap
+msgid "B<Matchingness of a thread (thread_perc)>"
+msgstr "B<Prozentualer Subject Vergleich (thread_perc)>"
+
+# type: Plain text
+#: ../tin.1:2365
+msgid ""
+"How closely the subjects must match for two threads to be considered part of "
+"the same thread. This is a percentage and the default if 75%."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2365
+#, no-wrap
+msgid "B<Score of a thread (thread_score)>"
+msgstr "B<Bewertung eines Threads (thread_score)>"
+
+# type: Plain text
+#: ../tin.1:2369 ../tin.5:2112
+msgid ""
+"How the total score of a thread is computed. Default is 0, the maximum score "
+"in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2372 ../tin.5:2115
+msgid "B<Max>, the maximum score in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2374 ../tin.5:2117
+msgid "B<Sum>, the sum of all scores in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2376 ../tin.5:2119
+msgid "B<Average>, the average score in this thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2377
+#, no-wrap
+msgid "B<Transliteration (translit)>"
+msgstr "B<Verwende Umschreibungen (translit)>"
+
+# type: Plain text
+#: ../tin.1:2385 ../tin.5:2128
+msgid ""
+"If ON append //TRANSLIT to the first argument of B<iconv_open>(3)  to enable "
+"transliteration. This means that when a character cannot be represented in "
+"the target character set, it can be approximated through one or several "
+"similarly looking characters. On systems where this extension doesn't exist, "
+"this option is disabled. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2385
+#, no-wrap
+msgid "B<How to treat blank lines (trim_article_body)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2389 ../tin.5:2132
+msgid ""
+"Allows you to select how B<tin> treats blank lines in article bodies.  "
+"Default is 0. This option does not affect lines within verbatim blocks."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2392 ../tin.5:2135
+msgid "B<Don't trim article body>, do nothing."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2394 ../tin.5:2137
+msgid "B<Skip leading blank lines>."
+msgstr "B<Führende Leerzeilen überspringen>."
+
+# type: Plain text
+#: ../tin.1:2396 ../tin.5:2139
+msgid "B<Skip trailing blank lines>."
+msgstr "B<Abschliessende Leerzeilen überspr.>."
+
+# type: Plain text
+#: ../tin.1:2398 ../tin.5:2141
+msgid ""
+"B<Skip leading and trailing blank l.>, skip leading and trailing blank lines."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2401 ../tin.5:2144
+msgid ""
+"B<Compact multiple between text>, replace multiple blank lines between "
+"textblocks with one blank line."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2403 ../tin.5:2146
+msgid "B<Compact multiple and skip leading>, 4 + 1"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2405 ../tin.5:2148
+msgid "B<Compact multiple and skip trailing>, 4 + 2"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2407 ../tin.5:2150
+msgid "B<Compact mltpl., skip lead. & trai.>, 4 + 3"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2408
+#, no-wrap
+msgid "B<Regex used to highlight _underline_ (underscores_regex)>"
+msgstr "B<Reg. für _Unterstr._ Hervorhebungen (underscores_regex)>"
+
+# type: Plain text
+#: ../tin.1:2413
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<underscores_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2413
+#, no-wrap
+msgid "B<Remove ~/.article after posting (unlink_article)>"
+msgstr "B<Entferne ~/.article nach dem posten (unlink_article)>"
+
+# type: Plain text
+#: ../tin.1:2416
+msgid "If ON remove I<~/.article> after posting. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2416
+#, no-wrap
+msgid "B<Program that opens URL's (url_handler)>"
+msgstr "B<Öffne URLs mit ... (url_handler)>"
+
+# type: Plain text
+#: ../tin.1:2421
+msgid ""
+"The program that will be run when launching URL's in the article viewer "
+"using B<PageViewUrl> ('B<U>'). The actual URL will be appended to this.  "
+"Default is B<url_handler.pl %s>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2421
+#, no-wrap
+msgid "B<URL highlighting in message body (url_highlight)>"
+msgstr "B<URL-Hervorhebung im Artikel (url_highlight)>"
+
+# type: Plain text
+#: ../tin.1:2424 ../tin.5:2170
+msgid "Enable highlighting URLs in message body. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2424
+#, no-wrap
+msgid "B<Use ANSI color (use_color)>"
+msgstr "B<Benutze ANSI-Farben (use_color)>"
+
+# type: Plain text
+#: ../tin.1:2427
+msgid "If enabled B<tin> uses ANSI-colors. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2427
+#, no-wrap
+msgid "B<Use scroll keys on keypad (use_keypad)>"
+msgstr "B<Scrollt. vom Nummernblock nutzen (use_keypad)>"
+
+# type: TP
+#: ../tin.1:2430
+#, no-wrap
+msgid "B<Use mouse in xterm (use_mouse)>"
+msgstr "B<Maus in xterm nutzen (use_mouse)>"
+
+# type: Plain text
+#: ../tin.1:2436 ../tin.5:2184
+msgid ""
+"Allows the mouse button support in a B<xterm>(1x)  to be enabled/disabled.  "
+"Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2436
+#, no-wrap
+msgid "B<Use slrnface to show ''X-Face:''s (use_slrnface)>"
+msgstr "B<''X-Face:''s mit slrnface Anzeigen (use_slrnface)>"
+
+# type: Plain text
+#: ../tin.1:2446
+msgid ""
+"If enabled B<tin> uses B<slrnface>(1)  to interpret the ''X-Face:'' header. "
+"For this option to have any effect, B<tin> must be running in an B<xterm>"
+"(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2446
+#, no-wrap
+msgid "B<Use UTF-8 graphics (utf8_graphics)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2450 ../tin.5:2200
+msgid ""
+"If ON use UTF-8 characters for indicator ('-E<gt>'), thread/attachment tree "
+"and ellipsis ('...'). Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2450
+#, no-wrap
+msgid "B<Regex for begin of a verbatim block (verbatim_begin_regex)>"
+msgstr "B<Reg. Ausd. für den Anfang e. wortgetreuen Textblock (verbatim_begin_regex)>"
+
+# type: Plain text
+#: ../tin.1:2453
+msgid ""
+"A regular expression that tin will use to find the begin of a verbatim block."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2453
+#, no-wrap
+msgid "B<Regex for end of a verbatim block (verbatim_end_regex)>"
+msgstr "B<Reg. Ausd. für das Ende eines wortgetreuen Textblocks (verbatim_end_regex)>"
+
+# type: Plain text
+#: ../tin.1:2456
+msgid ""
+"A regular expression that tin will use to find the end of a verbatim block."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2456
+#, no-wrap
+msgid "B<Detection of verbatim blocks (verbatim_handling)>"
+msgstr "B<Wortgetreue Textblöcke erkennen (verbatim_handling)>"
+
+# type: Plain text
+#: ../tin.1:2459
+msgid "If ON verbatim blocks will be detected. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2459
+#, no-wrap
+msgid "B<Wildcard matching (wildcard)>"
+msgstr "B<Wildcardprüfung (wildcard)>"
+
+# type: Plain text
+#: ../tin.1:2473
+msgid ""
+"Allows you to select how B<tin> matches strings. The default is 0 and uses "
+"the wildmat notation, which is how this has traditionally been handled.  "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3)  (see also B<perlre>(1)  and B<pcrepattern>(3)).  You "
+"will probably want to update your filter file if you use this regularly.  "
+"NB: Newsgroup names will always be matched using the wildmat notation."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2473
+#, no-wrap
+msgid "B<What to display instead of mark (word_h_display_marks)>"
+msgstr "B<Anstelle der Markierung anzeigen (word_h_display_marks)>"
+
+# type: Plain text
+#: ../tin.1:2477 ../tin.5:2228
+msgid ""
+"Should the leading and ending stars, slashes, strokes and dashes also be "
+"displayed, even when they are highlighting marks?"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2480 ../tin.5:2231
+msgid "B<no>"
+msgstr "B<nein>"
+
+# type: Plain text
+#: ../tin.1:2482 ../tin.5:2233
+msgid "yes, B<display mark>"
+msgstr "ja, B<Markierung> anzeigen"
+
+# type: Plain text
+#: ../tin.1:2484 ../tin.5:2235
+msgid "print a B<space> instead"
+msgstr "ein B<Leerzeichen> ausgeben"
+
+# type: TP
+#: ../tin.1:2485
+#, no-wrap
+msgid "B<Word highlighting in message body (word_highlight)>"
+msgstr "B<Wort-Hervorhebung im Artikel (word_highlight)>"
+
+# type: Plain text
+#: ../tin.1:2493
+msgid ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colors specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2493
+#, no-wrap
+msgid "B<Page line wrap column (wrap_column)>"
+msgstr "B<Zeilen umbrechen nach (wrap_column)>"
+
+# type: Plain text
+#: ../tin.1:2504 ../tin.5:2255
+msgid ""
+"Sets the column at which a displayed article body should be wrapped.  If "
+"this value is equal to 0, it defaults to the current screen width.  If this "
+"value is greater than your current screen width the part off-screen is not "
+"displayed. Thus setting this option to a large value can be used to disable "
+"wrapping. If this value is negative the wrap margin is the current screen "
+"width plus the given value (as long as the result is still positive, "
+"otherwise it will fall back to the current screen width). Default is 0, "
+"wrapping at the current screen width."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2504
+#, no-wrap
+msgid "B<Quote line when cross-posting (xpost_quote_format)>"
+msgstr "B<Einleitungszeile beim Crossposten (xpost_quote_format)>"
+
+# type: Plain text
+#: ../tin.1:2511 ../tin.5:2265
+msgid ""
+"Format is the same as for B<news_quote_format>, this is used when answering "
+"to a crossposting to several groups with no ''Followup-To:'' set."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2511
+#, no-wrap
+msgid "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2518
+msgid ""
+"B<tin> allows certain attributes to be set on a per group basis. If it "
+"exists, the global attributes file, I<${TIN_LIBDIR:-NEWSLIBDIR}/attributes> "
+"is read. After that, the user's own attributes file I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.tin/attributes> is read.  The global attributes file is useful for "
+"distributing system-wide defaults to new users who have no private "
+"attributes file yet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2526
+msgid ""
+"Note that the I<scope=E<lt>grouplistE<gt>> line has to be specified before "
+"the attributes are specified for that list. All attributes are set to a "
+"reasonable default so you only have to specify the attribute that you want "
+"to change (e.g., savedir). All toggle attributes are set by specifying ON/"
+"OFF. Otherwise, these function exactly the same as their global equivalents. "
+"For more details see B<tin>(5)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2533
+msgid ""
+"Attributes can also be changed from the attributes menu which can be "
+"accessed by B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') from the options menu "
+"or B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') from the scopes menu.  The "
+"attributes menu looks and behaves very similar to the options menu. The "
+"title shows the current scope. Attributes set in the current scope are "
+"marked with '\\+' to the left of the attributes number."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2540
+msgid ""
+"Besides the keys for moving around and changing values known from the "
+"options menu the attributes menu provides the following command: "
+"B<ConfigResetAttrib> ('B<r>') which resets an attribute to a default value."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2540
+#, no-wrap
+msgid "SCOPES MENU"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2545
+msgid ""
+"The scopes menu (accessible from the options menu with B<ConfigScopeMenu> "
+"('B<S>')) shows all scopes read from the global and local attributes file.  "
+"Scopes from the global attributes file are marked with '!' to the left of "
+"the scope number. Delete/rename/move are not possible with those scopes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2556
+msgid ""
+"In addition to the common moving keys the following commands are available: "
+"B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') enter the attributes menu for "
+"the current scope, B<ScopeEditAttributesFile> ('B<E>') edit the local "
+"attributes file, B<ScopeAdd> ('B<a>') add a new scope, B<ScopeDelete> "
+"('B<d>') delete the current scope, B<ScopeMove> ('B<m>') move the current "
+"scope to a new position, B<ScopeRename> ('B<r>') rename the current scope. "
+"B<ToggleHelpDisplay> ('B<H>') toggles the help mini menu at the bottom of "
+"the screen."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2556
+#, no-wrap
+msgid "FILTERING ARTICLES"
+msgstr "ARTIKEL FILTERN"
+
+# type: Plain text
+#.  FIXME - add scoring description
+#: ../tin.1:2563
+msgid ""
+"When there is a subject or an author which you are either very interested "
+"in, or find completely uninteresting, you can easily instruct B<tin> to "
+"I<auto-select> or I<auto-kill> articles that match I<rules> that you "
+"specify. This can be anything from the name of the author to the number of "
+"lines in an article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2569
+msgid ""
+"When B<tin> starts up the user's kill-file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"filter> (see also B<tin>(5))  is read. Each time a newsgroup is entered the "
+"rules are applied and articles killed or selected when they meet certain "
+"criteria."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2574
+msgid ""
+"The degree to which rules are applied depend on the B<kill_level> tinrc "
+"setting. By default killed articles will only be marked read. Adjust "
+"B<kill_level> for more aggressive processing. Articles that match an auto-"
+"selection rule are marked with a ''*''."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2579
+msgid ""
+"Filtering rules can be manually entered into I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/filter> (but don't do this whilst running B<tin> else you will lose your "
+"changes) or by using an on-screen menu within B<tin>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2585
+msgid ""
+"The filtering capabilities of B<tin> have been significantly enhanced over "
+"previous versions to include scoring and better pattern matching. It is "
+"recommended that you read the file I<filtering> in the B<tin> documentation "
+"directory. This file can also be read online at E<lt>http://www.tin.org/"
+"filtering.txtE<gt>."
+msgstr ""
+
+# type: Plain text
+#.  FIXME - Next paragraph is out of date
+#: ../tin.1:2597
+msgid ""
+"The on-screen filtering menu is accessed by pressing 'B<^K>' at the Group "
+"and Article levels. It allows the user to kill or select an article that "
+"matches the current ''Subject:'' line, ''From:'' line or a string entered by "
+"the user. The user entered string can be applied to the ''Subject:'' or "
+"\\&''From:'' lines of an article. The kill description can be limited to the "
+"current newsgroup or it can apply to all newsgroups. Once entered the user "
+"can abort the command and not save the kill description, edit the kill file "
+"or save the kill description."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2597
+#, no-wrap
+msgid "POSTING ARTICLES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2600
+msgid ""
+"B<tin> allows posting of articles, follow-up to already posted articles and "
+"replying direct through mail to the author of an article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2610
+msgid ""
+"Use the B<Post> ('B<w>') command to post an article to a newsgroup.  After "
+"entering the post subject the default editor (i.e., B<vi>(1))  or the editor "
+"specified by the $B<VISUAL> or $B<EDITOR> environment variable will be "
+"started and the article can be entered. To crosspost articles simply add a "
+"comma and the name of the newsgroup(s) to the end of the ''Newsgroups:'' "
+"line at the beginning of the article. After saving and exiting the editor "
+"you are asked if you wish to a)bort posting the article, e)dit the article "
+"again or p)ost the article to the specified newsgroup(s)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2615
+msgid ""
+"Use the B<DisplayPostHist> ('B<W>') command to display a history of the "
+"articles you have posted. The date the article was posted, which newsgroups "
+"the article was posted to and the articles subject line are displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2623
+msgid ""
+"Use the B<PageFollowupQuote> ('B<f>'), B<PageFollowup> ('B<F>')  or "
+"B<PageFollowupQuoteHeaders> ('B<^W>') command to post a follow-up article to "
+"an already posted article. The B<PageFollowupQuote> command will copy the "
+"text of the original article into the editor. The "
+"B<PageFollowupQuoteHeaders> command will copy the text and all headers of "
+"the original article into the editor. The editing procedure is the same as "
+"when posting an article with the B<Post> ('B<w>') command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2637
+msgid ""
+"Use the B<PageReplyQuote> ('B<r>'), B<PageReply> ('B<R>') or "
+"B<PageReplyQuoteHeaders> ('B<^E>') command to reply direct through mail to "
+"the author of an already posted article. The B<PageReplyQuote> command will "
+"copy the text of the original article into the editor. The "
+"B<PageReplyQuoteHeaders> command will copy the text and all headers of the "
+"original article into the editor. The editing procedure is the same as when "
+"posting an article with the B<Post> ('B<w>') command. After saving and "
+"exiting the editor you are asked if you wish to abort sending the article "
+"via B<PostAbort> ('B<a>'), edit the article again via B<PostEdit> ('B<e>') "
+"or send the article to the author via B<PostSend> ('B<s>')."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2637
+#, no-wrap
+msgid "CUSTOMIZING THE ARTICLE QUOTE STRING"
+msgstr "EINLEITUNGSZEILE ANPASSEN"
+
+# type: Plain text
+#: ../tin.1:2645
+msgid ""
+"When posting a followup to an article or replying direct to the author of an "
+"article via email the text of the article can be quoted. The beginning of "
+"the quoted text can contain information about the quoted article (e.g., Name "
+"and the Message-ID of the article). To allow for different situations "
+"certain information from the article can be used in the quoted string. The "
+"following variables are expanded if found in the tinrc variables "
+"B<mail_quote_format>, B<news_quote_format> or B<xpost_quote_format>:"
+msgstr ""
+
+# type: ta
+#: ../tin.1:2647
+#, no-wrap
+msgid "\\w'%A  'u +\\w'Address'u"
+msgstr "\\w'%A  'u +\\w'Mailadresse'u"
+
+# type: Plain text
+#: ../tin.1:2656
+#, no-wrap
+msgid ""
+"B<%A>\tAddress (Email)\n"
+"B<%D>\tDate (uses B<date_format>)\n"
+"B<%F>\tFull address (%N E<lt>%AE<gt>)\n"
+"B<%G>\tGroupname\n"
+"B<%M>\tMessage-ID\n"
+"B<%N>\tFullname of author\n"
+"B<%C>\tFirstname of author\n"
+"B<%I>\tInitials of author\n"
+msgstr ""
+"B<%A>\tMailadresse\n"
+"B<%D>\tDatum (benutzt B<date_format>)\n"
+"B<%F>\tName und Adresse (%N E<lt>%AE<gt>)\n"
+"B<%G>\tGroupname\n"
+"B<%M>\tMessage-ID\n"
+"B<%N>\tName des Autors\n"
+"B<%C>\tVorname des Autors\n"
+"B<%I>\tInitialen des Autor\n"
+
+# type: Plain text
+#: ../tin.1:2659
+msgid "e.g.,"
+msgstr "z. B."
+
+# type: Plain text
+#: ../tin.1:2664
+#, no-wrap
+msgid ""
+"CW<mail_quote_format=On %D in %G you wrote:\n"
+"news_quote_format=In %M, %F wrote:>\n"
+msgstr ""
+"CW<mail_quote_format=Am %D in %G schrieben Sie:\n"
+"news_quote_format=In %M schreib %F:>\n"
+
+# type: Plain text
+#: ../tin.1:2668
+msgid "would expand to:"
+msgstr "ergäbe folgendes:"
+
+# type: Plain text
+#: ../tin.1:2673
+#, no-wrap
+msgid ""
+"CW<On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote:\n"
+"In E<lt>abcINN123@example.orgE<gt>, Joe Bar E<lt>joe@example.orgE<gt> wrote:>\n"
+msgstr ""
+"CW<Am 21. Sept 1993 9:45:51 -0400 in alt.sources schrieben Sie:\n"
+"In E<lt>abcINN123@example.orgE<gt> schreib Joe Bar E<lt>joe@example.orgE<gt>:>\n"
+
+# type: Plain text
+#: ../tin.1:2683
+msgid ""
+"The quoted text section of an article is marked by a preceding quote string "
+"at the beginning of each quoted line. The default quote string is set to "
+"\\&'E<gt>_'. The default can be changed by setting the tinrc variable "
+"B<quote_chars> to ones own preference. (Note that '_' underline is used to "
+"represent a space)."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2683
+#, no-wrap
+msgid "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2690
+msgid ""
+"The command interface to B<GroupMail>, B<PageMail>, B<PostMail> or "
+"B<ThreadMail> ('B<m>'), B<Pipe> ('B<|>'), B<Print> ('B<o>'), B<PageRepost> "
+"or B<GroupRepost> ('B<x>') and B<GroupSave>, B<PageSave> or B<ThreadSave> "
+"('B<s>' and B<GroupAutoSave>, B<PageAutoSave> or B<ThreadAutoSave> 'B<S>') "
+"articles is the same for ease of use."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2695
+msgid ""
+"Auto-saving with B<*AutoSave> ('B<S>') is a special case and operates only "
+"on marked articles. They will processed without any further prompting "
+"according to the default save parameters defined in tinrc or by any "
+"attributes set for the current group."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2699
+msgid ""
+"Otherwise, the initial prompt will ask you to select which article, thread, "
+"hot (auto-selected), regex pattern, tagged articles you wish to mail, pipe "
+"etc."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2703
+msgid ""
+"Tagged articles must have already been tagged with a B<*Tag> ('B<t>')  "
+"command. All tagged articles can be untagged by a B<*Untag> ('B<U>')  untag "
+"command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2709
+msgid ""
+"If a regex pattern is selected you are asked to enter a pattern (e.g., to "
+"match all articles subject lines containing 'net News' you enter \"net News"
+"\"). Any articles that match the entered expression will be mailed, piped "
+"etc. See also the B<wildcard> tinrc variable for advanced pattern matching "
+"options."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2714
+msgid ""
+"Various expansion characters are recognized when entering the directory and "
+"file to save to. Environment variables (prefixed with '$') and user home "
+"directories (prefixed by '~' or '~username') can be specified.  Environment "
+"variables can themselves contain other special characters."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2719
+msgid ""
+"To save articles to a mailbox enter '=E<lt>mailbox nameE<gt>' when asked for "
+"the save filename. If you enter just '=' then articles will be saved to a "
+"mailbox with the name of the current newsgroup (eg, alt.sources).  See "
+"B<maildir>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2723
+msgid ""
+"To save in savedir/E<lt>news.group.nameE<gt>/E<lt>filenameE<gt> format enter "
+"'+E<lt>filenameE<gt>'.  Environment variables are allowed within a filename "
+"(e.g., I<$SOURCES/dir/filename>). See B<savedir>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2729
+msgid ""
+"When saving articles you can specify whether the saved files should be post "
+"processed. A default process type can be set via B<post_process_type>."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2729
+#, no-wrap
+msgid "AUTOMATIC MAILING AND SAVING NEW NEWS"
+msgstr "AUTOMATISCHES MAILEN UND SPEICHERN VON UNGELESENEN ARTIKELN"
+
+# type: Plain text
+#: ../tin.1:2741
+msgid ""
+"B<tin> allows new/unread news articles to be mailed (''B<-M>'' and \\&''B<-"
+"N>'' option) or saved (''B<-S>'' option) in batch mode for later reading. "
+"Useful when going on holiday and you don't want to return and find that "
+"expire has removed a whole load of unread articles. Best to run via B<cron>"
+"(1)  everyday while away, after which you will be mailed a report of which "
+"articles were mailed/saved from which newsgroups and the total number of "
+"articles mailed/saved. Articles are saved in a private news structure under "
+"your E<lt>savedirE<gt> directory (default is I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"News>). Be careful of using this option if you read a lot of groups because "
+"you could overflow your file system."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2745
+msgid ""
+"When using ''B<-S>'' together with a given directory to save to (''B<-s>'' "
+"option), the same directory must be specified when reading the articles by "
+"''B<-R>''."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2752
+msgid ""
+"If you only want to save some of your groups use the B<batch_save> tinrc "
+"variable. Set to ON or OFF in tinrc to enable/disable saving of all groups "
+"and then use the B<batch_save> attribute to fine tune which groups you want "
+"to have saved. For example, if you want to save most of your groups, then "
+"set B<batch_save> to ON in tinrc and selectively turn off the ones you don't "
+"want using attributes."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2753
+#, no-wrap
+msgid "B<tin -M iain -c -f newsrc.mail>"
+msgstr "B<tin -M iain -c -f newsrc.mail>"
+
+# type: Plain text
+#: ../tin.1:2757
+msgid ""
+"(mail any unread articles in newsgroups specified in file newsrc.mail to the "
+"local user iain and mark them as read)"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2758
+#, no-wrap
+msgid "B<tin -S -c -f newsrc.save>"
+msgstr "B<tin -S -c -f newsrc.save>"
+
+# type: Plain text
+#: ../tin.1:2762
+msgid ""
+"(save any unread articles in newsgroups specified in file newsrc.save and "
+"mark them as read)"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2763
+#, no-wrap
+msgid "B<tin -R>"
+msgstr "B<tin -R>"
+
+# type: Plain text
+#: ../tin.1:2768
+msgid "(read any articles saved by B<tin -S>)"
+msgstr ""
+
+# type: SS
+#: ../tin.1:2768
+#, no-wrap
+msgid "RANGES"
+msgstr "BEREICHE"
+
+# type: Plain text
+#: ../tin.1:2779
+msgid ""
+"A range is simply a group of items marked using the B<SetRange> (B<'#'>) "
+"key. Certain B<tin> commands will operate on a range if one exists rather "
+"than just the current item. A range is an expression of the form "
+"E<lt>minE<gt>-E<lt>maxE<gt>, e.g. 10-15 will highlight items 10 through 15 "
+"on the current screen. Other than absolute numeric positions, '.' can be "
+"used in place of the current cursor position and '$' can be used to mean the "
+"highest number available. Currently the only commands that understand ranges "
+"are B<GroupMarkThdRead> ('B<K>'), B<MarkArtUnread> ('B<z>') and "
+"B<MarkThdUnread> ('B<Z>')."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2780
+#, no-wrap
+msgid "NEWSGROUP LISTS & WILDCARDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2791
+msgid ""
+"Several places in B<tin> allow you to specify a list of newsgroups. These "
+"include command-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE "
+"mechanism. The scope= attributes file tag and the filter file group= tag "
+"also use the same syntax. B<tin> interprets this variable similarly to B<rn"
+"(1).> It contains a list of patterns, separated by commas and possibly "
+"prefixed with exclamation points. An exclamation point negates the meaning "
+"of a match on this pattern, and can be used to cancel certain matches. Some "
+"examples:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2793
+msgid "I<alt.config,news.*,!news.test>"
+msgstr "I<alt.config,news.*,!news.test>"
+
+# type: Plain text
+#: ../tin.1:2795
+msgid ""
+"Matches alt.config and everything in the 'news' hierarchy except news.test"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2800
+msgid ""
+"See the explanation for the $B<AUTOSUBSCRIBE> variables for further examples."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2800
+#, no-wrap
+msgid "SIGNATURES"
+msgstr "SIGNATUREN"
+
+# type: Plain text
+#: ../tin.1:2809
+msgid ""
+"B<tin> will recognize a signature in either I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"signature> or I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>.  If I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.signature> exists, then the signature will be pulled into the editor "
+"for mail commands only. A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"signature> will not be pulled into the editor for posting commands since "
+"B<inews>(1)  will append the signature itself."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2812
+msgid ""
+"A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig> will be pulled into the "
+"editor for both posting and mailing commands."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2814
+msgid "The following is an example of a I<.Sig> file:"
+msgstr "Nachstehend eine Beispiel I<.Sig> Datei:"
+
+# type: Plain text
+#: ../tin.1:2819
+#, no-wrap
+msgid ""
+"CW<NAMES  Joe Bar E<lt>joe@example.orgE<gt>\n"
+"SNAIL  Musterweg 12, 99999 Notreal, Germany>\n"
+msgstr ""
+"CW<NAMES  Erika Mustermann E<lt>erika@example.orgE<gt>\n"
+"SNAIL  Heidestraße 17, 99999 Notreal, Germany>\n"
+
+# type: Plain text
+#: ../tin.1:2834
+msgid ""
+"B<tin> also has the capability to generate random signatures on a per "
+"newsgroup basis if so desired. The way to accomplish this is to specify the "
+"default signature or the group attribute sigfile as a directory. If for "
+"example the sigfile path is I</usr/iain/.sigs> and I<.sigs> is a directory "
+"then B<tin> will select a random signature from any file that is in the "
+"directory I<.sigs> (note: one signature per numbered file). A random "
+"signature can also consist of a fixed part signature that can contain your "
+"name, address etc. followed by the random sig. The fixed part of the random "
+"sig is read from the file I<$HOME/.sigfixed>."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2834
+#, no-wrap
+msgid "TIPS AND TRICKS"
+msgstr "TIPS UND TRICKS"
+
+# type: Plain text
+#: ../tin.1:2838
+msgid ""
+"B<tin> can be pretty much be navigated by using the four cursor keys.  The "
+"left arrow key goes up a level, the right arrow key goes down a level, the "
+"up arrow key goes up a line and the down arrow key goes down a line."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2840
+msgid ""
+"The following newsgroups provide useful information concerning news software:"
+msgstr ""
+"In den folgenden Newsgruppen finden sich nützliche Informationen über "
+"Newssoftware:"
+
+# type: Plain text
+#: ../tin.1:2843
+msgid ""
+"\\(emnews.software.readers (info. about news user agents tin, rn, nn, slrn "
+"etc.)"
+msgstr ""
+"\\(emde.comm.software.newsreader (Informationen über Newsrader wie tin, "
+"slrn, ...)"
+
+# type: Plain text
+#: ../tin.1:2845
+msgid "\\(emnews.software.nntp (info. about NNTP)"
+msgstr "\\(emnews.software.nntp (Informationen über NNTP)"
+
+# type: Plain text
+#: ../tin.1:2847
+msgid ""
+"\\(emnews.answers (Frequently Asked Questions (FAQ) about many different "
+"themes)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2851
+msgid ""
+"Many prompts within B<tin> offer a default choice that the cursor is "
+"positioned on. By pressing 'B<E<lt>CRE<gt>>' the default value is taken.  "
+"Most prompts can be aborted by pressing 'B<E<lt>ESCE<gt>>'."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2858
+msgid ""
+"When B<tin> is run in an B<xterm>(1x)  it will resize itself each time the "
+"B<xterm>(1x)  is resized."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2862
+msgid ""
+"B<tin> will reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file at set intervals (B<reread_active_file_secs>) to show any "
+"newly arrived news."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2867
+msgid ""
+"If you find large number of new newsgroups cluttering up your screen, "
+"pressing B<SelectToggleReadDisplay> ('B<r>') will make them go away."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2867
+#, no-wrap
+msgid "XTERM BUTTONS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2873
+msgid ""
+"If the environment variable B<$TERM> is set to B<xterm>(1x), then button "
+"pressing can be used to select groups and articles. In this discussion, the "
+"buttons are assumed to be assigned conventionally (i.e., Button1 is the left "
+"button)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2875
+msgid "In general (i.e., for the group, thread and article menus),"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2875
+#, no-wrap
+msgid "Button1 (left)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2878
+msgid ""
+"enters next (lower) level if you click on an article, otherwise pages down."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2878
+#, no-wrap
+msgid "Button2 (center)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2882
+msgid ""
+"returns to the previous (upper) level if you click on an article, otherwise "
+"pages up."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2882
+#, no-wrap
+msgid "Button3 (right)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2886
+msgid ""
+"positions on the article line under mouse cursor, or pages down if you've "
+"clicked outside the list of articles."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2888
+msgid "In the group selection menu, if the mouse is pointing at a group then:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2888 ../tin.1:2900 ../tin.1:2914
+#, no-wrap
+msgid "left button"
+msgstr "Linke Maustaste"
+
+# type: Plain text
+#: ../tin.1:2892
+msgid ""
+"moves to and selects the group pointed at, just like B<SelectReadGrp> "
+"('B<E<lt>CRE<gt>>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2892 ../tin.1:2904 ../tin.1:2917
+#, no-wrap
+msgid "center button"
+msgstr "Mittlere Maustaste"
+
+# type: Plain text
+#: ../tin.1:2895
+msgid "quits the program, just like B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2895 ../tin.1:2909 ../tin.1:2922
+#, no-wrap
+msgid "right button"
+msgstr "Rechte Maustaste"
+
+# type: Plain text
+#: ../tin.1:2898
+msgid "moves to the group pointed at."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2900
+msgid ""
+"In the article menu, if the mouse is pointing at an article (or thread) then:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2904
+msgid ""
+"reads the article pointed at, just like B<GroupReadBasenote> "
+"('B<E<lt>CRE<gt>>'), or the thread, just like B<GroupListThd> ('B<l>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2909
+msgid ""
+"exits the menu, catching up on the group if you have "
+"B<group_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2912
+msgid "moves to the article (or thread) pointed at."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2914
+msgid "In the thread menu, if the mouse is pointing at an article then:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2917
+msgid ""
+"reads article pointed at, just like B<ThreadReadArt> ('B<E<lt>CRE<gt>>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2922
+msgid ""
+"exits the menu, catching up on the thread if you have "
+"B<thread_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2925
+msgid "moves to the article pointed at."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2932
+msgid ""
+"In other menus and areas button pressing reverts back to usual cut and paste "
+"of B<xterm>(1x), but after one click of any button."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2932
+#, no-wrap
+msgid "INDEX FILES"
+msgstr "INDEX DATEIEN"
+
+# type: Plain text
+#: ../tin.1:2937
+msgid ""
+"If your news server supports NOV index files (see B<newsoverview>(5), most "
+"modern installations will) and you have a fast connection to your news "
+"server then this section can be ignored."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2943
+msgid ""
+"If your news server doesn't support NOV index files or you have a very slow "
+"connection to your news server then B<tin> can cache the index for each "
+"newsgroup if B<cache_overview_files> is set to ON.  Note that this cache can "
+"use up large amounts of diskspace if you read a lot of groups and/or high "
+"traffic groups."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2952
+msgid ""
+"Each user creates/updates his/her own index files that are stored in I<"
+"${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news/>. If you are "
+"reading via NNTP then the news server name will be appended to keep the "
+"indexes for different servers separate. If you are reading off the local "
+"spool and local overview files already exist then turning on caching will "
+"have no effect. Likewise unless you see significant delays entering a group "
+"when reading via NNTP then turning on caching will have little or no effect."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2959
+msgid ""
+"Entering a group the first time tends to be slow because the index file must "
+"be built from scratch. To alleviate the slowness start B<tin> to create all "
+"index files for the groups you subscribe to with B<tin -u -v> and go for a "
+"coffee. Subsequent readings of a group will only need to do incremental "
+"updating of the index file and will be much faster as only new articles will "
+"need to be cached."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2964
+msgid ""
+"As indexing might take some time you may want to run B<tin> form the system "
+"batcher B<cron>(1)  with the ''B<-u>'' option:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2969
+#, no-wrap
+msgid "CW<30 6 * * * /usr/local/bin/tin -u>\n"
+msgstr "CW<30 6 * * * /usr/local/bin/tin -u>\n"
+
+# type: Plain text
+#: ../tin.1:2977
+msgid ""
+"If you are low on local disk space you should consider using B<getart_limit> "
+"to limit the size of cached indexes and also manually purge cached data for "
+"groups you are not reading anymore with something like:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2983
+#, no-wrap
+msgid ""
+"CW<find ${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news* \\e\n"
+"-type f -name \"[0-9]*.[0-9]\" -atime +28 | xargs rm -f>\n"
+msgstr ""
+"CW<find ${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news* \\e\n"
+"-type f -name \"[0-9]*.[0-9]\" -atime +28 | xargs rm -f>\n"
+
+# type: SH
+#: ../tin.1:2988 ../tin.5:20
+#, no-wrap
+msgid "FILES"
+msgstr "DATEIEN"
+
+# type: Plain text
+#.  TODO: mention dead.article, dead.articles
+#.                .article[.$$], .cancel[.$$], .letter[.$$]?
+#.        $PWD/trace[.out]   (--with-trace)
+#.        $TMPDIR/NNTP       (-D 1)
+#.        $TMPDIR/FILTER     (-D 2)
+#.        $TMPDIR/ARTS       (-D 2)
+#.        $TMPDIR/BITMAP     (-D 4)
+#.        $TMPDIR/REFS.dump  (-D 8)
+#.        $TMPDIR/REFS.info  (-D 8)
+#.        $TMPDIR/MALLOC     (-D 16)
+#.        $TMPDIR/ATTRIBUTES (-D 32)
+#.        $TMPDIR/SCOPES-R   (-D 32)
+#.        $TMPDIR/SCOPES-W   (-D 32)
+#.        $TMPDIR/ACTIVE     (-D 64)
+#: ../tin.1:3005
+msgid "For a detailed description see B<tin>(5)."
+msgstr "Für eine ausführlich Beschreibung siehe B<tin>(5)."
+
+# type: Plain text
+#: ../tin.1:3007 ../tin.5:41
+msgid "I<$MAILCAPS>"
+msgstr "I<$MAILCAPS>"
+
+# type: Plain text
+#: ../tin.1:3009 ../tin.5:43
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.mailcap>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.mailcap>"
+
+# type: Plain text
+#: ../tin.1:3011 ../tin.5:45
+msgid "I</etc/mailcap>"
+msgstr "I</etc/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3013 ../tin.5:47
+msgid "I</usr/etc/mailcap>"
+msgstr "I</usr/etc/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3015 ../tin.5:49
+msgid "I</usr/local/etc/mailcap>"
+msgstr "I</usr/local/etc/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3017 ../tin.5:51
+msgid "I</etc/mail/mailcap>"
+msgstr "I</etc/mail/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3020 ../tin.5:220
+msgid "I</etc/nntpserver>"
+msgstr "I</etc/nntpserver>"
+
+# type: Plain text
+#: ../tin.1:3023 ../tin.5:230
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.cancelsecret>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.cancelsecret>"
+
+# type: Plain text
+#: ../tin.1:3026 ../tin.5:237
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.mime.types>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.mime.types>"
+
+# type: Plain text
+#: ../tin.1:3028 ../tin.5:239
+msgid "I</etc/mime.types>"
+msgstr "I</etc/mime.types>"
+
+# type: Plain text
+#: ../tin.1:3030 ../tin.5:241
+msgid "I</etc/tin/mime.types>"
+msgstr "I</etc/tin/mime.types>"
+
+# type: Plain text
+#: ../tin.1:3033 ../tin.5:248
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsauth>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsauth>"
+
+# type: Plain text
+#: ../tin.1:3036 ../tin.5:281
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+
+# type: Plain text
+#: ../tin.1:3040 ../tin.5:310
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/.oldnewsrc>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/.oldnewsrc>\n"
+
+# type: Plain text
+#: ../tin.1:3044 ../tin.5:318
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.signature>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.signature>"
+
+# type: Plain text
+#: ../tin.1:3046 ../tin.5:320
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>"
+
+# type: Plain text
+#: ../tin.1:3049 ../tin.5:327
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.sigfixed>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.sigfixed>"
+
+# type: Plain text
+#: ../tin.1:3052 ../tin.5:334
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/.inputhistory>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/.inputhistory>"
+
+# type: Plain text
+#: ../tin.1:3055 ../tin.5:341
+msgid "I<${TIN_INDEX_MAILDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.mail/>"
+msgstr "I<${TIN_INDEX_MAILDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.mail/>"
+
+# type: Plain text
+#: ../tin.1:3059 ../tin.5:349
+#, no-wrap
+msgid "I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news${NNTPSERVER:+\"-$NNTPSERVER\"}/>\n"
+msgstr "I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news${NNTPSERVER:+\"-$NNTPSERVER\"}/>\n"
+
+# type: Plain text
+#: ../tin.1:3063 ../tin.5:357
+msgid "I<${TIN_INDEX_SAVEDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.save/>"
+msgstr "I<${TIN_INDEX_SAVEDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.save/>"
+
+# type: Plain text
+#: ../tin.1:3066 ../tin.5:364
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.mail>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.mail>"
+
+# type: Plain text
+#: ../tin.1:3069 ../tin.5:398
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.save>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.save>"
+
+# type: Plain text
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths (/news/etc/)
+#.  ${TIN_LIBDIR\-/news/etc"}/attributes
+#: ../tin.1:3073 ../tin.5:409
+msgid "I</etc/tin/attributes>"
+msgstr "I</etc/tin/attributes>"
+
+# type: Plain text
+#: ../tin.1:3075 ../tin.5:411
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>"
+
+# type: Plain text
+#.  TODO: add missing descriptions and explain things in detail.
+#: ../tin.1:3078 ../tin.5:736
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter>"
+
+# type: Plain text
+#: ../tin.1:3082 ../tin.5:818
+#, no-wrap
+msgid "I</etc/tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+msgstr "I</etc/tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+
+# type: Plain text
+#: ../tin.1:3084 ../tin.5:820
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+
+# type: Plain text
+#: ../tin.1:3088 ../tin.5:1053
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups>"
+
+# type: Plain text
+#: ../tin.1:3091 ../tin.5:1069
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>"
+
+# type: Plain text
+#: ../tin.1:3094 ../tin.5:1095
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/posted>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/posted>"
+
+# type: Plain text
+#: ../tin.1:3097 ../tin.5:1102
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/posted>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/posted>"
+
+# type: Plain text
+#: ../tin.1:3100 ../tin.5:1112
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/postponed.articles>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/postponed.articles>"
+
+# type: Plain text
+#: ../tin.1:3104
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+
+# type: Plain text
+#: ../tin.1:3109
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+
+# type: Plain text
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths (/news/etc/)
+#.  .IR ${TIN_LIBDIR\-"/news/etc"}/tinrc
+#: ../tin.1:3114 ../tin.5:1165
+msgid "I</etc/tin/tinrc>"
+msgstr "I</etc/tin/tinrc>"
+
+# type: Plain text
+#: ../tin.1:3116 ../tin.5:1167
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>"
+
+# type: Plain text
+#: ../tin.1:3119 ../tin.5:2269
+msgid "I</etc/tin/tin.defaults>"
+msgstr "I</etc/tin/tin.defaults>"
+
+# type: Plain text
+#: ../tin.1:3122
+msgid "I</usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo>"
+msgstr "I</usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo>"
+
+# type: Plain text
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths
+#.  (described shown below).
+#: ../tin.1:3125 ../tin.5:2376
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}>"
+
+# type: Plain text
+#: ../tin.1:3128 ../tin.5:2436
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/active.times>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/active.times>"
+
+# type: Plain text
+#: ../tin.1:3131 ../tin.5:2463
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups>"
+
+# type: Plain text
+#: ../tin.1:3134 ../tin.5:2486
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/organization>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/organization>"
+
+# type: Plain text
+#.  is the Path correct? or is it /news/etc/overview.fmt
+#: ../tin.1:3137 ../tin.5:2496
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt>"
+
+# type: Plain text
+#.  is the Path correct? or is it /news/etc/subscriptions
+#: ../tin.1:3140 ../tin.5:2514
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>"
+
+# type: SH
+#: ../tin.1:3143
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "UMGEBUNGSVARIABLEN"
+
+# type: TP
+#: ../tin.1:3157
+#, no-wrap
+msgid "B<TINRC>"
+msgstr "B<TINRC>"
+
+# type: Plain text
+#: ../tin.1:3165
+msgid ""
+"Define this variable if you want to specify command-line options that B<tin> "
+"should be started with to save typing them each time it is started. The "
+"contents of the environment variable are added to the front of the command-"
+"line options before it is parsed therefore allowing an option specified on "
+"the command-line to override the same option specified in the environment."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3165
+#, no-wrap
+msgid "B<TIN_HOMEDIR>"
+msgstr "B<TIN_HOMEDIR>"
+
+# type: Plain text
+#: ../tin.1:3170
+msgid ""
+"Define this variable if you do not want the I<.tin> directory in I<$HOME/>. "
+"E.g., if you want all B<tin>'s private files in I</tmp/.tin> you would set "
+"$B<TIN_HOMEDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3170
+#, no-wrap
+msgid "B<TIN_INDEX_NEWSDIR>"
+msgstr "B<TIN_INDEX_NEWSDIR>"
+
+# type: Plain text
+#: ../tin.1:3176
+msgid ""
+"Define this variable if you do not want the I<.news> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s news index "
+"files in I</tmp/.news> you would set $B<TIN_INDEX_NEWSDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3176
+#, no-wrap
+msgid "B<TIN_INDEX_MAILDIR>"
+msgstr "B<TIN_INDEX_MAILDIR>"
+
+# type: Plain text
+#: ../tin.1:3182
+msgid ""
+"Define this variable if you do not want the I<.mail> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s mail index "
+"files in I</tmp/.mail> you would set $B<TIN_INDEX_MAILDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3182
+#, no-wrap
+msgid "B<TIN_INDEX_SAVEDIR>"
+msgstr "B<TIN_INDEX_SAVEDIR>"
+
+# type: Plain text
+#: ../tin.1:3188
+msgid ""
+"Define this variable if you do not want the I<.save> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s save index "
+"files in I</tmp/.save> you would set $B<TIN_INDEX_SAVEDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3188
+#, no-wrap
+msgid "B<TIN_LIBDIR>"
+msgstr "B<TIN_LIBDIR>"
+
+# type: Plain text
+#: ../tin.1:3193
+msgid ""
+"Define this variable if you want to override the B<NEWSLIBDIR> path that was "
+"compiled into the B<tin> binary, default is I</usr/lib/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3193
+#, no-wrap
+msgid "B<TIN_SPOOLDIR>"
+msgstr "B<TIN_SPOOLDIR>"
+
+# type: Plain text
+#: ../tin.1:3198
+msgid ""
+"Define this variable if you want to override the B<SPOOLDIR> path that was "
+"compiled into the B<tin> binary, default is I</var/spool/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3198
+#, no-wrap
+msgid "B<TIN_NOVROOTDIR>"
+msgstr "B<TIN_NOVROOTDIR>"
+
+# type: Plain text
+#: ../tin.1:3204
+msgid ""
+"Define this variable if you want to override the B<NOVROOTDIR> path that was "
+"compiled into the B<tin> binary, default is B<SPOOLDIR> (see above). If tin "
+"is running in NNTP mode setting this variable has no effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3204
+#, no-wrap
+msgid "B<TIN_ACTIVEFILE>"
+msgstr "B<TIN_ACTIVEFILE>"
+
+# type: Plain text
+#: ../tin.1:3210
+msgid ""
+"Define this variable if you want to override the B<NEWSLIBDIR/active> path "
+"that was compiled into the B<tin> binary. If tin is running in NNTP mode "
+"setting this variable has no effect. If $B<TIN_LIBDIR> is set it is "
+"prepended to $B<TIN_ACTIVEFILE>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3210
+#, no-wrap
+msgid "B<NNTPSERVER>"
+msgstr "B<NNTPSERVER>"
+
+# type: Plain text
+#: ../tin.1:3216
+msgid ""
+"The default NNTP server to remotely read news from. This variable only needs "
+"to be set if the ''B<-r>'' command-line option is specified and the file I</"
+"etc/nntpserver> does not exist. The ''B<-g>'' command line option overrides "
+"$B<NNTPSERVER>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3216
+#, no-wrap
+msgid "B<NNTPPORT>"
+msgstr "B<NNTPPORT>"
+
+# type: Plain text
+#: ../tin.1:3221
+msgid ""
+"The NNTP TCP-port to read news from. This variable only needs to be set if "
+"the TCP-port is not 119 (the default).  The ''B<-p>'' command-line option "
+"overrides $B<NNTPPORT>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3221
+#, no-wrap
+msgid "B<DISTRIBUTION>"
+msgstr "B<DISTRIBUTION>"
+
+# type: Plain text
+#: ../tin.1:3225
+msgid ""
+"Set the article header field ''Distribution:'' to the contents of the "
+"variable instead of the system default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3225
+#, no-wrap
+msgid "B<ISO2ASC>"
+msgstr "B<ISO2ASC>"
+
+# type: Plain text
+#: ../tin.1:3229
+msgid ""
+"Set the ISO to ASCII charset decoding table character to use in decoding an "
+"article text. Values can range from 0 to 6."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3233
+msgid "universal table for many languages"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3236
+msgid "single-spacing universal table"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3239
+msgid "table for Danish, Dutch, German, Norwegian and Swedish"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3239
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+# type: Plain text
+#: ../tin.1:3242
+msgid ""
+"table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO "
+"646 variant"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3245
+msgid "table with RFC 1345 codes in brackets"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3245
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+# type: Plain text
+#: ../tin.1:3248
+msgid "table for printers that allow overstriking with backspace"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3249
+#, no-wrap
+msgid "B<ORGANIZATION>"
+msgstr "B<ORGANIZATION>"
+
+# type: Plain text
+#: ../tin.1:3255
+msgid ""
+"Set the article header field ''Organization:'' to the contents of the "
+"variable instead of the system default. If reading news on an Apollo "
+"DomainOS machine the environment variable $B<NEWSORG> has to be used instead "
+"of $B<ORGANIZATION>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3255
+#, no-wrap
+msgid "B<NEWSORG (DomainOS)>"
+msgstr "B<NEWSORG (DomainOS)>"
+
+# type: Plain text
+#: ../tin.1:3258
+msgid "DomainOS specific, same as $B<ORGANIZATION> on other OSs (see above)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3258
+#, no-wrap
+msgid "B<REPLYTO>"
+msgstr "B<REPLYTO>"
+
+# type: Plain text
+#: ../tin.1:3263
+msgid ""
+"Set the article header field ''Reply-To:'' to the return address specified "
+"by the variable. This is useful if you wish to receive replies at a "
+"different address."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3263
+#, no-wrap
+msgid "B<NAME>"
+msgstr "B<NAME>"
+
+# type: Plain text
+#: ../tin.1:3267
+msgid ""
+"Overrides the full name given in the gecos-files in I</etc/passwd>, see also "
+"B<mail_address>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3267
+#, no-wrap
+msgid "B<REALNAME>"
+msgstr "B<REALNAME>"
+
+# type: Plain text
+#: ../tin.1:3270
+msgid "Same as $B<NAME>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3270
+#, no-wrap
+msgid "B<HOME>"
+msgstr "B<HOME>"
+
+# type: Plain text
+#: ../tin.1:3275
+msgid ""
+"Pathname of the user's home directory. See B<environ>(5)  for more info."
+msgstr ""
+"Das Anmeldeverzeichnis des Benutzers. Weitere Informationen finden sich in "
+"B<environ>(5)."
+
+# type: TP
+#: ../tin.1:3275
+#, no-wrap
+msgid "B<MAILER>"
+msgstr "B<MAILER>"
+
+# type: Plain text
+#: ../tin.1:3279
+msgid ""
+"This variable has precedence over the default mailer that is used in all "
+"mailing operations within B<tin>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3279
+#, no-wrap
+msgid "B<MAIL>"
+msgstr "B<MAIL>"
+
+# type: Plain text
+#: ../tin.1:3282
+msgid "Full path to the user's mailbox."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3282
+#, no-wrap
+msgid "B<VISUAL>"
+msgstr "B<VISUAL>"
+
+# type: Plain text
+#: ../tin.1:3291
+msgid ""
+"This variable has precedence over the default editor (i.e., B<vi>(1))  that "
+"is used in all editing operations within B<tin> (e.g., posting, replying, "
+"follow-ups, ...). Evaluation order is I<${VISUAL:-\"${EDITOR:-vi}\"}>. See "
+"B<environ>(5)  for more info."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3291
+#, no-wrap
+msgid "B<EDITOR>"
+msgstr "B<EDITOR>"
+
+# type: Plain text
+#: ../tin.1:3300
+msgid ""
+"If $B<VISUAL> is unset, then this variable is looked up for a default "
+"editor. If $B<EDITOR> and $B<VISUAL> are both unset, B<tin> uses the systems "
+"default editor (i.e.  B<vi>(1))  on UNIX-systems). See B<environ>(5)  for "
+"more info."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3300
+#, no-wrap
+msgid "B<AUTOSUBSCRIBE>"
+msgstr "B<AUTOSUBSCRIBE>"
+
+# type: Plain text
+#: ../tin.1:3306
+msgid ""
+"A new group is checked against the list of patterns; if it matches, B<tin> "
+"subscribes the user to the group without further query.  See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for an explanation of the valid syntax. For "
+"example, setting"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3308
+msgid "I<AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*>"
+msgstr "I<AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*>"
+
+# type: Plain text
+#: ../tin.1:3313
+msgid ""
+"will automatically subscribe the user to all new groups in the comp.os.unix "
+"hierarchy, and all talk groups other than talk.politics groups (which will "
+"be queried for as usual). Of course this does not work if B<tin> is started "
+"with the ''B<-X>'' command-line switch."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3313
+#, no-wrap
+msgid "B<AUTOUNSUBSCRIBE>"
+msgstr "B<AUTOUNSUBSCRIBE>"
+
+# type: Plain text
+#: ../tin.1:3317
+msgid ""
+"Is handled like the $B<AUTOSUBSCRIBE> variable, but groups matching the list "
+"are unsubscribed from without further query. For example, setting"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3319
+msgid "I<AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*>"
+msgstr "I<AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*>"
+
+# type: Plain text
+#: ../tin.1:3323
+msgid ""
+"will automatically unsubscribe the user from all new alt.flame groups and "
+"all groups starting with u (university groups) other than UK groups (which "
+"will be queried for as usual)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3323
+#, no-wrap
+msgid "B<TMPDIR>"
+msgstr "B<TMPDIR>"
+
+# type: Plain text
+#: ../tin.1:3327
+msgid ""
+"A pathname of a directory made available for B<tin> to create temporary "
+"files."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3327
+#, no-wrap
+msgid "B<MAILCAPS>"
+msgstr "B<MAILCAPS>"
+
+# type: Plain text
+#: ../tin.1:3332
+msgid ""
+"This variable can be used to override the default path search for mailcap "
+"files. See also B<tin>(5)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3332
+#, no-wrap
+msgid "B<NOMETAMAIL>"
+msgstr "B<NOMETAMAIL>"
+
+# type: Plain text
+#: ../tin.1:3337
+msgid ""
+"Set this variable to disable the use of B<metamail>(1)  or a replacement (e."
+"g. metamutt)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3337
+#, no-wrap
+msgid "B<MM_CHARSET>"
+msgstr "B<MM_CHARSET>"
+
+# type: TP
+#: ../tin.1:3339
+#, no-wrap
+msgid "B<ISPELL>"
+msgstr "B<ISPELL>"
+
+# type: Plain text
+#: ../tin.1:3344
+msgid ""
+"Set this variable to point to B<ispell>(1)  or a replacement and its cmd-"
+"line options."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3344
+#, no-wrap
+msgid "B<PGPOPTS>"
+msgstr "B<PGPOPTS>"
+
+# type: Plain text
+#: ../tin.1:3351
+msgid ""
+"Define any additional options that you wish to pass to your B<pgp>(1)  or "
+"B<gpg>(1)  program."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3351
+#, no-wrap
+msgid "B<PGPPATH>"
+msgstr "B<PGPPATH>"
+
+# type: Plain text
+#: ../tin.1:3356
+msgid ""
+"Override the name of the B<pgp>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3356
+#, no-wrap
+msgid "B<GNUPGHOME>"
+msgstr "B<GNUPGHOME>"
+
+# type: Plain text
+#: ../tin.1:3361
+msgid ""
+"Override the name of the B<gpg>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3361
+#, no-wrap
+msgid "B<LC_CTYPE>"
+msgstr "B<LC_CTYPE>"
+
+# type: Plain text
+#.  TODO: document LC_CTYPEs influence on
+#.        ~/.tin/keymap.*, 8bit char display, ...
+#: ../tin.1:3375
+msgid ""
+"This variable determines the B<locale>(5)  category for character handling "
+"functions. Usually it determines the character classes for pattern matching "
+"character classification and case conversion. Currently this is not true for "
+"B<tin> (which temporary unsets B<$LC_CTYPE> right before any match is done "
+"to avoid confusion).  It's value should be of the form I<language>"
+"[I<_territory>][I<.codeset>][I<@modifier>]. See B<environ>(5)  for more "
+"information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3375
+#, no-wrap
+msgid "B<LC_MESSAGES>"
+msgstr "B<LC_MESSAGES>"
+
+# type: Plain text
+#: ../tin.1:3384
+msgid ""
+"Formats of informative and diagnostic messages and interactive responses.  "
+"It's value should be of the form I<language>[I<_territory>][I<.codeset>]"
+"[I<@modifier>]. See B<locale>(5)  and B<environ>(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3384
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+# type: Plain text
+#: ../tin.1:3392
+msgid ""
+"Date and time formats. It's value should be of the form I<language>"
+"[I<_territory>][I<.codeset>][I<@modifier>]. See B<locale>(5)  and B<environ>"
+"(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3392
+#, no-wrap
+msgid "B<LC_ALL>"
+msgstr "B<LC_ALL>"
+
+# type: Plain text
+#: ../tin.1:3401
+msgid ""
+"This variable overrides the value of the B<$LANG> variable and any other B<"
+"$LC_> variable. It's value should be of the form I<language>[I<_territory>]"
+"[I<.codeset>]. See B<locale>(5)  and B<environ>(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3401
+#, no-wrap
+msgid "B<LANG>"
+msgstr "B<LANG>"
+
+# type: Plain text
+#: ../tin.1:3410
+msgid ""
+"This variable determines the B<locale>(5)  category for any category not "
+"specifically selected with a variable starting with B<$LC_>. It's value "
+"should be of the form I<language>[I<_territory>][I<.codeset>]. See B<environ>"
+"(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3410
+#, no-wrap
+msgid "B<LANGUAGE>"
+msgstr "B<LANGUAGE>"
+
+# type: Plain text
+#: ../tin.1:3418
+msgid ""
+"This variable defines a priority list for translations. Whenever a "
+"translation is not available in the language selected via B<$LC_ALL> or B<"
+"$LANG> the next language from the list is tried. It's value should be of the "
+"form I<language:language[:language]>. See B<environ>(5)  for more "
+"information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3418
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLUMNS>"
+
+# type: Plain text
+#: ../tin.1:3428
+msgid ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred width in "
+"column positions for the terminal screen or window. If this variable is "
+"unset or null, the implementation determines the number of columns, "
+"appropriate for the terminal or window. When B<$COLUMNS> is set, any "
+"terminal-width information implied by B<$TERM> will be overridden. Users and "
+"portable applications should not set B<$COLUMNS> unless they wish to "
+"override the system selection and produce output unrelated to the terminal "
+"characteristics."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3428
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINES>"
+
+# type: Plain text
+#: ../tin.1:3438
+msgid ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred number of "
+"lines on a page or the vertical screen or window size in lines. A line in "
+"this case is a vertical measure large enough to hold the tallest character "
+"in the character set being displayed. If this variable is unset or null, the "
+"implementation determines the number of lines, appropriate for the terminal "
+"or window. When B<$LINES> is set, any terminal-height information implied by "
+"B<$TERM> will be overridden. Users and portable applications should not set "
+"B<$LINES> unless they wish to override the system selection."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3438
+#, no-wrap
+msgid "B<TERM>"
+msgstr "B<TERM>"
+
+#
+#
+# type: Plain text
+#.  TODO: add missing, sort useful, document in detail
+#: ../tin.1:3447
+msgid ""
+"The type of terminal in use. This is used when looking up termcap "
+"sequences.  See B<environ>(5)  for more information."
+msgstr ""
+"Der verwendete Terminaltyp. Weitere Informationen finden sich in B<environ>"
+"(5)."
+
+# type: SH
+#: ../tin.1:3447
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SIGNALE"
+
+# type: Plain text
+#: ../tin.1:3450
+msgid "B<tin> handles a couple of signals:"
+msgstr "B<tin> verarbeitet folgende Signale:"
+
+# type: TP
+#: ../tin.1:3450
+#, no-wrap
+msgid "B<SIGHUP>"
+msgstr "B<SIGHUP>"
+
+# type: Plain text
+#: ../tin.1:3453 ../tin.1:3456
+msgid "Terminate gracefully."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3453
+#, no-wrap
+msgid "B<SIGTERM>"
+msgstr "B<SIGTERM>"
+
+# type: TP
+#: ../tin.1:3456
+#, no-wrap
+msgid "B<SIGUSR1>"
+msgstr "B<SIGUSR1>"
+
+# type: Plain text
+#: ../tin.1:3459
+msgid "Terminate gracefully but do not restore tty."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3459
+#, no-wrap
+msgid "B<SIGUSR2>"
+msgstr "B<SIGUSR2>"
+
+#
+#
+# type: Plain text
+#.  .SH DIAGNOSTICS
+#.  give an overview of the most common error messages and how to cope with
+#.  them.
+#: ../tin.1:3470
+msgid "Write out I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>-file."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3470
+#, no-wrap
+msgid "SECURITY"
+msgstr "SICHERHEIT"
+
+# type: Plain text
+#: ../tin.1:3478
+msgid ""
+"When B<tin> is started in debug mode (''B<-D n>'') it will create world "
+"readable files in B<$TMPDIR> which may contain the users NNTP password in "
+"cleartext. On multiuser-systems B<$TMPDIR> should be set to a safe location "
+"before starting tin in debug mode (e.g.  B<TMPDIR=$HOME tin -D 1>)."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3478
+#, no-wrap
+msgid "CONFORMING TO"
+msgstr "KONFORM ZU"
+
+# type: Plain text
+#.  - RFC2045, RFC2047, RFC2980, RFC3977, RFC4643, RFC5322
+#.    RFC5536, RFC5537, RFC6048 or whatever
+#: ../tin.1:3486
+msgid ""
+"B<tin> does conform to the Base Definitions volume of IEEE Std 1003.1-2001, "
+"Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax "
+"Guidelines)."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3486
+#, no-wrap
+msgid "NOTES"
+msgstr "ANMERKUNGEN"
+
+# type: Plain text
+#: ../tin.1:3491
+msgid ""
+"Regular expression support is provided by the PCRE library package B<pcre>"
+"(3), which is open source software, written by Philip Hazel, and copyright "
+"by the University of Cambridge, England."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3495
+msgid "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"
+msgstr "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"
+
+# type: SH
+#: ../tin.1:3495
+#, no-wrap
+msgid "BUGS"
+msgstr "BUGS"
+
+# type: Plain text
+#: ../tin.1:3503
+msgid ""
+"B<CNews> NNTPd, B<noffle>(1)  (E<lt>= V1.0-pre5) and B<NewsCache> (E<lt>= "
+"V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with "
+"any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h "
+"and recompile."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3512
+msgid ""
+"Before mailing a bug-report to E<lt>tin-bugs@tin.orgE<gt> please check if "
+"you are using the latest (stable) release, and if not, please upgrade first! "
+"Have a look at the doc/TODO file for known bugs. If you still think you've "
+"found a bug, please use the B<BugReport> ('B<R>')  function and write in "
+"English. Please do NOT enclose a core-file in your bugreport until we "
+"request it."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3512
+#, no-wrap
+msgid "HISTORY"
+msgstr "GESCHICHTE"
+
+# type: Plain text
+#: ../tin.1:3524
+msgid ""
+"B<tin> is based on the B<tass>(1)  newsreader that was developed by Rich "
+"Skrenta and posted to alt.sources in March 1991; its first version was "
+"released on August 23rd 1991.  B<tass>(1)  itself was heavily influenced by "
+"notesfiles a public domain UNIX version of PLATO Notes, developed at the "
+"University of Illinois by Ray Essick and Rob Kolstad in 1982. For a version "
+"overview see E<lt>http://www.tin.org/history.htmlE<gt>."
+msgstr ""
+"B<tin> basiert auf B<tass>(1), einem Newsreader der von Rich Skrenta "
+"entwickelt und dessen Code im März 1991 von ihm in alt.sources "
+"veröffentlicht wurde. Die erste Version von B<tin> wurde am 23. August 1991 "
+"veröffentlicht. B<tass>(1) orientiert sich stark an notesfiles, einer Public "
+"Domain Version für UNIX von PLATO Notes, welches 1982 von Ray Essick und Rob "
+"Kolstad an der University of Illinois entstand. Eine Übersicht der Versionen "
+"findet sich unter E<lt>http://www.tin.org/history.htmlE<gt>."
+
+# type: SH
+#: ../tin.1:3524
+#, no-wrap
+msgid "CREDITS"
+msgstr "DANKSAGUNGEN"
+
+# type: IP
+#: ../tin.1:3526
+#, no-wrap
+msgid "Rich Skrenta"
+msgstr "Rich Skrenta"
+
+# type: Plain text
+#: ../tin.1:3530
+msgid "author of B<tass>(1)  v3.2 which this newsreader used as its base."
+msgstr "Autor von B<tass>(1)  v3.2, der Basis für diesen Newsreader."
+
+# type: IP
+#: ../tin.1:3530
+#, no-wrap
+msgid "Bill Davidsen"
+msgstr "Bill Davidsen"
+
+# type: Plain text
+#: ../tin.1:3532
+msgid "author of envarg.c environment variable reading routine."
+msgstr "Autor von envarg.c, Umgebungsvariablenleseroutine."
+
+# type: IP
+#: ../tin.1:3532
+#, no-wrap
+msgid "Mike Gleason"
+msgstr "Mike Gleason"
+
+# type: Plain text
+#: ../tin.1:3534
+msgid "author of sigfile.c random signature generation routines."
+msgstr "Autor von sigfile.c, Zufallssignaturengenerierungsroutine."
+
+# type: IP
+#: ../tin.1:3534
+#, no-wrap
+msgid "Markus Kuhn E<lt>Markus.Kuhn@cl.cam.ac.ukE<gt>"
+msgstr "Markus Kuhn E<lt>Markus.Kuhn@cl.cam.ac.ukE<gt>"
+
+# type: Plain text
+#: ../tin.1:3536
+msgid ""
+"author of langinfo.c, charset.c and iso2asc.txt ISO-8859-1 documentation."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3536
+#, no-wrap
+msgid "Arnold Robbins"
+msgstr "Arnold Robbins"
+
+# type: Plain text
+#: ../tin.1:3538
+msgid "author of strftime.c date formatting routine."
+msgstr "Autor von strftime.c, Datumsfromatierungsroutine."
+
+# type: IP
+#: ../tin.1:3538
+#, no-wrap
+msgid "Rich Salz"
+msgstr "Rich Salz"
+
+# type: Plain text
+#: ../tin.1:3540
+msgid ""
+"author of wildmat.c pattern matching and parsdate.y date parsing routines."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3540
+#, no-wrap
+msgid "Dave Taylor"
+msgstr "Dave Taylor"
+
+# type: Plain text
+#: ../tin.1:3544
+msgid "author of curses.c from the B<elm>(1)  mailreader."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3544
+#, no-wrap
+msgid "Chris Thewalt"
+msgstr "Chris Thewalt"
+
+# type: Plain text
+#: ../tin.1:3548
+msgid "author of getline.c B<emacs>(1)  style editing routine."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3548
+#, no-wrap
+msgid "Steven Madsen"
+msgstr "Steven Madsen"
+
+# type: Plain text
+#: ../tin.1:3552
+msgid "for adding B<pgp>(1)  (Pretty Good Privacy) support."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3552
+#, no-wrap
+msgid "Philip Hazel E<lt>ph10@cam.ac.ukE<gt>"
+msgstr "Philip Hazel E<lt>ph10@cam.ac.ukE<gt>"
+
+# type: Plain text
+#: ../tin.1:3556
+msgid "for B<pcre>(3)  (Perl-compatible regular expression library)."
+msgstr "für B<pcre>(3) (Library für Perl-kompatible reguläre Ausdrücke)."
+
+# type: IP
+#: ../tin.1:3556
+#, no-wrap
+msgid "Patrick Powell E<lt>papowell@astart.comE<gt>"
+msgstr "Patrick Powell E<lt>papowell@astart.comE<gt>"
+
+# type: Plain text
+#: ../tin.1:3564
+msgid "for B<snprintf>(3)  and B<vsnprintf>(3)  fallbacks."
+msgstr "für B<snprintf>(3)  und B<vsnprintf>(3)  Fallbacks."
+
+# type: SH
+#: ../tin.1:3564
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTOR"
+
+# type: TP
+#: ../tin.1:3565
+#, no-wrap
+msgid "Iain Lea E<lt>iain@bricbrac.deE<gt>"
+msgstr "Iain Lea E<lt>iain@bricbrac.deE<gt>"
+
+# type: SH
+#: ../tin.1:3569
+#, no-wrap
+msgid "MAINTAINER"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3570
+#, no-wrap
+msgid "Urs Janssen E<lt>urs@tin.orgE<gt>"
+msgstr "Urs Janßen E<lt>urs@tin.orgE<gt>"
+
+# type: SH
+#: ../tin.1:3574 ../tin.5:2527
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SIEHE AUCH"
+
+# type: Plain text
+#: ../tin.1:3623
+msgid ""
+"B<cron>(1), B<elm>(1), B<emacs>(1), B<gpg>(1), B<inews>(1), B<ispell>(1), "
+"B<lp>(1), B<lpr>(1), B<metamail>(1), B<noffle>(1), B<perl>(1), B<perlre>(1), "
+"B<pgp>(1), B<rn>(1), B<sendmail>(1), B<shar>(1), B<slrnface>(1), B<tass>(1), "
+"B<unshar>(1), B<uudecode>(1), B<vi>(1), B<xterm>(1x), B<iconv>(3), "
+"B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), B<pcrepattern>(3), "
+"B<snprintf>(3), B<strftime>(3), B<vsnprintf>(3), B<wildmat>(3), B<environ>"
+"(5), B<locale>(5), B<mbox>(5), B<mmdf>(5), B<newsoverview>(5), B<tin>(5), "
+"B<RFC1524>, B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, "
+"B<RFC3977>, B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+msgstr ""
+"B<cron>(1), B<elm>(1), B<emacs>(1), B<gpg>(1), B<inews>(1), B<ispell>(1), "
+"B<lp>(1), B<lpr>(1), B<metamail>(1), B<noffle>(1), B<perl>(1), B<perlre>(1), "
+"B<pgp>(1), B<rn>(1), B<sendmail>(1), B<shar>(1), B<slrnface>(1), B<tass>(1), "
+"B<unshar>(1), B<uudecode>(1), B<vi>(1), B<xterm>(1x), B<iconv>(3), "
+"B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), B<pcrepattern>(3), "
+"B<snprintf>(3), B<strftime>(3), B<vsnprintf>(3), B<wildmat>(3), B<environ>"
+"(5), B<locale>(5), B<mbox>(5), B<mmdf>(5), B<newsoverview>(5), B<tin>(5), "
+"B<RFC1524>, B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, "
+"B<RFC3977>, B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+
+# type: Plain text
+#: ../tin.5:13
+msgid "tin, rtin - related files"
+msgstr "tin, rtin - zugehörige Dateien"
+
+# type: Plain text
+#: ../tin.5:19
+msgid ""
+"This manpage describes the various (config) files and their formats used by "
+"the B<tin>(1)  newsreader. All files are expected to have unix style ('\\en' "
+"aka LF) line endings."
+msgstr ""
+"Diese Manpage beschreibt die vom Newsreader B<tin>(1) benutzen "
+"(Konfigurations)-Dateien und deren Formate. Alle Dateien sollten Unixartige "
+"Zeilenenden ('\\en' aka LF) haben."
+
+# type: Plain text
+#: ../tin.5:60
+msgid ""
+"B<mailcap>(4)  files as defined in B<RFC1524>. The Mailcap files are read by "
+"B<tin>(1)  to determine how to display non-text messages at the local site. "
+"Any line that starts with \"#\" is a comment. Blank lines are ignored. "
+"Otherwise, each line defines a single mailcap entry for a single content "
+"type. Long lines may be continued by ending them with a backslash character, "
+"\"\\e\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:63
+msgid ""
+"Each individual mailcap entry consists of a content-type specification, a "
+"command to execute, and (possibly) a set of optional \"flag\" values."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:68
+msgid ""
+"The \"type\" field is simply any legal content type name. It is the string "
+"that will be matched against the ''Content-Type:'' header to decide if this "
+"is the mailcap entry that matches the current message. Additionally, the "
+"type field may specify a subtype or a wildcard to match all subtypes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:74
+msgid ""
+"The \"command\" field is any UNIX command and is used to specify the "
+"interpreter for the given type of message. It will be passed to the shell "
+"via the B<system>(3)  facility."
+msgstr ""
+
+#
+# type: Plain text
+#.  Two special codes can appear in the viewing command for objects of type
+#.  multipart (any subtype). These are "%n" and "%F". %n will be replaced by
+#.  the number of parts within the multipart object. %F will be replaced by a
+#.  series of arguments, two for each part, giving first the content-type and
+#.  then the name of the temporary file where the decoded part has been stored.
+#: ../tin.5:91
+msgid ""
+"Semicolons and backslashes within the command or any flag field must be "
+"quoted with backslashes. If the field contains \"%s\", those two characters "
+"will be replaced by the name of a file that contains the body of the "
+"message. If it contains \"%t\", those two characters will be replaced by the "
+"content-type field, including the subtype, if any. If it contains \"%{\" "
+"followed by a parameter name and a closing \"}\", then all those characters "
+"will be replaced by the value of the named parameter, if any, from the "
+"\\&''Content-Type:'' header. Finally, if the field contains \"\\e%\", those "
+"two characters will be replaced by a single \"%\" character."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:93
+msgid "Besides the type and command field the following \"flags\" are defined:"
+msgstr ""
+
+# type: TP
+#: ../tin.5:93
+#, no-wrap
+msgid "B<compose>"
+msgstr "B<compose>"
+
+# type: Plain text
+#: ../tin.5:103
+msgid ""
+"The \"compose\" field may be used to specify a program that can be used to "
+"compose a new body or body part in the given format. Its intended use is to "
+"support mail composing agents that support the composition of multiple types "
+"of mail using external composing agents. As with the view-command, the "
+"semantics of program execution are operating system dependent. The result of "
+"the composing program may be data that is not yet suitable for mail "
+"transport - that is, a Content-Transfer-Encoding may need to be applied to "
+"the data."
+msgstr ""
+
+# type: TP
+#: ../tin.5:103
+#, no-wrap
+msgid "B<composetyped>"
+msgstr "B<composetyped>"
+
+# type: Plain text
+#: ../tin.5:113
+msgid ""
+"The \"composetyped\" field is similar to the \"compose\" field, but is to be "
+"used when the composing program needs to specify the ''Content-Type:'' "
+"header field to be applied to the composed data. The \"compose\" field is "
+"simpler, and is preferred for use with existing (non-mail-oriented) programs "
+"for composing data in a given format. The \"composetyped\" field is "
+"necessary when the Content-Type information must include auxiliary "
+"parameters, and the composition program must then know enough about mail "
+"formats to produce output that includes the mail type information."
+msgstr ""
+
+# type: TP
+#: ../tin.5:113
+#, no-wrap
+msgid "B<edit>"
+msgstr "B<edit>"
+
+# type: Plain text
+#: ../tin.5:119
+msgid ""
+"The \"edit\" field may be used to specify a program that can be used to edit "
+"a body or body part in the given format. In many cases, it may be identical "
+"in content to the \"compose\" field, and shares the operating-system "
+"dependent semantics for program execution."
+msgstr ""
+
+# type: TP
+#: ../tin.5:119
+#, no-wrap
+msgid "B<print>"
+msgstr "B<print>"
+
+# type: Plain text
+#: ../tin.5:124
+msgid ""
+"The \"print\" field may be used to specify a program that can be used to "
+"print a message or body part in the given format. As with the view-command, "
+"the semantics of program execution are operating system dependent."
+msgstr ""
+
+# type: TP
+#: ../tin.5:124
+#, no-wrap
+msgid "B<test>"
+msgstr "B<test>"
+
+# type: Plain text
+#: ../tin.5:133
+msgid ""
+"The \"test\" field may be used to test some external condition (e.g., the "
+"machine architecture, or the window system in use) to determine whether or "
+"not the mailcap line applies. It specifies a program to be run to test some "
+"condition. The semantics of execution and of the value returned by the test "
+"program are operating system dependent. If the test fails, a subsequent "
+"mailcap entry should be sought. Multiple test fields are not permitted - "
+"since a test can call a program, it can already be arbitrarily complex."
+msgstr ""
+
+# type: TP
+#: ../tin.5:133
+#, no-wrap
+msgid "B<needsterminal>"
+msgstr "B<needsterminal>"
+
+# type: Plain text
+#: ../tin.5:145
+msgid ""
+"The \"needsterminal\" field indicates that the view-command must be run on "
+"an interactive terminal. This is needed to inform window-oriented user "
+"agents that an interactive terminal is needed. (The decision is not left "
+"exclusively to the view-command because in some circumstances it may not be "
+"possible for such programs to tell whether or not they are on interactive "
+"terminals.) The needsterminal command should be assumed to apply to the "
+"compose and edit commands, too, if they exist. Note that this is NOT a test "
+"- it is a requirement for the environment in which the program will be "
+"executed, and should typically cause the creation of a terminal window when "
+"not executed on either a real terminal or a terminal window."
+msgstr ""
+
+# type: TP
+#: ../tin.5:145
+#, no-wrap
+msgid "B<copiousoutput>"
+msgstr "B<copiousoutput>"
+
+# type: Plain text
+#: ../tin.5:152
+msgid ""
+"The \"copiousoutput\" field indicates that the output from the view-command "
+"will be an extended stream of output, and is to be interpreted as advice to "
+"the UA (User Agent mail-reading program) that the output should be either "
+"paged or made scroll-able. Note that it is probably a mistake if "
+"needsterminal and copiousoutput are both specified."
+msgstr ""
+
+# type: TP
+#: ../tin.5:152 ../tin.5:1062
+#, no-wrap
+msgid "B<description>"
+msgstr "B<description>"
+
+# type: Plain text
+#: ../tin.5:157
+msgid ""
+"The \"description\" field simply provides a textual description, optionally "
+"quoted, that describes the type of data, to be used optionally by mail "
+"readers that wish to describe the data before offering to display it."
+msgstr ""
+
+# type: TP
+#: ../tin.5:157
+#, no-wrap
+msgid "B<textualnewlines>"
+msgstr "B<textualnewlines>"
+
+# type: Plain text
+#: ../tin.5:165
+msgid ""
+"The \"textualnewlines\" field, if set to any non-zero value, indicates that "
+"this type of data is line-oriented and that, if encoded in base64, all "
+"newlines should be converted to canonical form (CRLF) before encoding, and "
+"will be in that form after decoding. In general, this field is needed only "
+"if there is line-oriented data of some type other than text/* or non-line- "
+"oriented data that is a subtype of text."
+msgstr ""
+
+# type: TP
+#: ../tin.5:165
+#, no-wrap
+msgid "B<x11-bitmap>"
+msgstr "B<x11-bitmap>"
+
+# type: Plain text
+#: ../tin.5:170
+msgid ""
+"The \"x11-bitmap\" field names a file, in X11 bitmap (xbm) format, which "
+"points to an appropriate icon to be used to visually denote the presence of "
+"this kind of data."
+msgstr ""
+
+# type: TP
+#: ../tin.5:170
+#, no-wrap
+msgid "B<nametemplate>"
+msgstr "B<nametemplate>"
+
+# type: Plain text
+#: ../tin.5:178
+msgid ""
+"The \"nametemplate\" field gives a file name format, in which %s will be "
+"replaced by a short unique string to give the name of the temporary file to "
+"be passed to the viewing command. This is only expected to be relevant in "
+"environments where filename extensions are meaningful, e.g., one could "
+"specify that a GIF file being passed to a gif viewer should have a name "
+"ending in \".gif\" by using \"nametemplate=%s.gif\""
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:183
+msgid ""
+"B<tin>(1)  currently only respects the \"test\", \"description\", "
+"\"nametemplate\" and partly the \"needsterminal\" flags, all other flags are "
+"internally ignored. It also can't handle the \"%F\" and \"%n\" expansions "
+"yet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:183 ../tin.5:266 ../tin.5:294 ../tin.5:384 ../tin.5:693
+#: ../tin.5:800 ../tin.5:1082
+#, no-wrap
+msgid "Example:"
+msgstr "Beispiel:"
+
+# type: Plain text
+#: ../tin.5:188
+#, no-wrap
+msgid "# mailcap file example\n"
+msgstr "# mailcap Beispiel-Datei\n"
+
+# type: Plain text
+#: ../tin.5:190
+#, no-wrap
+msgid "image/*;\\e\n"
+msgstr "image/*;\\e\n"
+
+# type: Plain text
+#: ../tin.5:193
+#, no-wrap
+msgid "xv -8 -geometry +0 '%s';\\e\n"
+msgstr "xv -8 -geometry +0 '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:195
+#, no-wrap
+msgid "description=%{name} %t-Image;\\e\n"
+msgstr "description=%{name} %t-Image;\\e\n"
+
+# type: Plain text
+#: ../tin.5:197
+#, no-wrap
+msgid "test=test \"$DISPLAY\" != \"\";\\e\n"
+msgstr "test=test \"$DISPLAY\" != \"\";\\e\n"
+
+# type: Plain text
+#: ../tin.5:199
+#, no-wrap
+msgid "nametemplate=%s.IMAGE\n"
+msgstr "nametemplate=%s.IMAGE\n"
+
+# type: Plain text
+#: ../tin.5:202
+#, no-wrap
+msgid "message/rfc822;\\e\n"
+msgstr "message/rfc822;\\e\n"
+
+# type: Plain text
+#: ../tin.5:205
+#, no-wrap
+msgid "${PAGER:-\"more\"} '%s';\\e\n"
+msgstr "${PAGER:-\"more\"} '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:207
+#, no-wrap
+msgid "edit=${EDITOR:-\"vi\"} '%s';\\e\n"
+msgstr "edit=${EDITOR:-\"vi\"} '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:209
+#, no-wrap
+msgid "compose=${EDITOR:-\"vi\"} '%s';\\e\n"
+msgstr "compose=${EDITOR:-\"vi\"} '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:211
+#, no-wrap
+msgid "print=a2ps '%s';\\e\n"
+msgstr "print=a2ps '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:213
+#, no-wrap
+msgid "needsterminal\n"
+msgstr "needsterminal\n"
+
+# type: Plain text
+#: ../tin.5:226
+msgid ""
+"default NNTP-server to read news from if not reading from the local spool.  "
+"\\&'B<-g> I<server>', $B<NNTPSERVER> have higher priority (in that order), "
+"the default server given at compile time has lower priority."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:233
+msgid "secret to be used for canlocks"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:244
+msgid "mime type / filename extension pairs"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:256
+msgid ""
+"\"I<nntpserver> I<password> [I<user>]\" pairs for NNTP servers that require "
+"authorization. If the password contains a space or a tab it must be enclosed "
+"in doublequotes (\"). Usernames must not be enclosed in doublequotes and "
+"thus can't contain spaces or tabs. Any line that starts with \"#\" is a "
+"comment. Blank lines are ignored. This file should be readable only for the "
+"user as it contains the user's uncrypted password for reading news!"
+msgstr ""
+
+# type: TP
+#: ../tin.5:256 ../tin.5:1073
+#, no-wrap
+msgid "B<nntpserver>"
+msgstr "B<NNTPServer>"
+
+# type: Plain text
+#: ../tin.5:259 ../tin.5:1076
+msgid "full qualified domain name of the newsserver."
+msgstr "Vollständiger Name (FQDN) des Newsservers."
+
+# type: TP
+#: ../tin.5:259
+#, no-wrap
+msgid "B<password>"
+msgstr "B<Passwort>"
+
+# type: Plain text
+#: ../tin.5:262
+msgid "user's uncrypted password for reading news."
+msgstr "Unverschlüsseltes Passwort für den Newsserver."
+
+# type: TP
+#: ../tin.5:262
+#, no-wrap
+msgid "B<user>"
+msgstr "B<User>"
+
+# type: Plain text
+#: ../tin.5:266
+msgid ""
+"username on the newsserver if it differs from the local login. This field is "
+"optional."
+msgstr ""
+"Username auf dem Newsserver falls er vom lokalen Benutzernamen abweicht. "
+"Dieses Feld ist optional."
+
+# type: Plain text
+#: ../tin.5:270
+msgid "# sample .newsauth file"
+msgstr "# Beispiel .newsauth-Datei"
+
+# type: Plain text
+#: ../tin.5:272
+msgid "news.example.org secret"
+msgstr "news.example.org geheim"
+
+# type: Plain text
+#: ../tin.5:274
+msgid "news.example.net arcane guest"
+msgstr "news.example.net verborgen gast"
+
+# type: Plain text
+#: ../tin.5:276
+msgid "news.example.com \"top secret\" james.bond@example.com"
+msgstr "news.example.com \"streng geheim\" james.bond@example.com"
+
+# type: Plain text
+#: ../tin.5:284
+msgid ""
+"\"I<newsgroup>I<flag> [I<article>[,I<article> | -I<article>]...]\" lines."
+msgstr ""
+
+# type: TP
+#: ../tin.5:284
+#, no-wrap
+msgid "B<newsgroup>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:287
+msgid "the name of the newsgroup."
+msgstr ""
+
+# type: TP
+#: ../tin.5:287
+#, no-wrap
+msgid "B<flag>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:290
+msgid "a flag indicating if the group is subscribed ':' or not '!'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:290
+#, no-wrap
+msgid "B<article>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:294
+msgid ""
+"range of already read articles from that group; numbers separated by commas "
+"with sequential numbers collapsed with hyphens."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:298
+msgid "# sample .newsrc file"
+msgstr "# .newsrc Beispiel-Datei"
+
+# type: Plain text
+#: ../tin.5:300
+msgid "news.software.b! 1-666,669"
+msgstr "news.software.b! 1-666,669"
+
+# type: Plain text
+#: ../tin.5:302
+msgid "news.software.nntp: 1-13245,13247,13249"
+msgstr "news.software.nntp: 1-13245,13247,13249"
+
+# type: Plain text
+#: ../tin.5:304
+msgid "news.software.readers: 1-19567,19571-19597"
+msgstr "news.software.readers: 1-19567,19571-19597"
+
+# type: Plain text
+#: ../tin.5:314
+msgid "backup of I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+msgstr "Sicherungskopie von I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+
+# type: Plain text
+#: ../tin.5:323
+msgid "signature"
+msgstr "Signatur"
+
+# type: Plain text
+#: ../tin.5:330
+msgid "fixed part of a randomly generated signature"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:337
+msgid "history of last used strings"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:344
+msgid "mailgroups index files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:353
+msgid "newsgroups index files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:360
+msgid "saved newsgroups index files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:370
+msgid ""
+"active file (\"I<mail_group_name> I<maxnum> I<minnum> I<mailspool>\" "
+"quadruples) of user's mailgroups (requires B<tin>(1)  to be build with mh-"
+"mail-handling support)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:370
+#, no-wrap
+msgid "B<mail_group_name>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:373
+msgid ""
+"must be the pathname of the mailbox relative to field #4 with / changed to ."
+msgstr ""
+
+# type: TP
+#: ../tin.5:373
+#, no-wrap
+msgid "B<maxnum>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:377
+msgid ""
+"just put a large number here, something higher than the highest message in "
+"the mailbox"
+msgstr ""
+
+# type: TP
+#: ../tin.5:377
+#, no-wrap
+msgid "B<minnum>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:380
+msgid "put 0 here"
+msgstr "hier 0 angeben"
+
+# type: TP
+#: ../tin.5:380
+#, no-wrap
+msgid "B<mailspool>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:384
+msgid ""
+"path of mail spool directory. This must be the full pathname to the root of "
+"the mail folder area."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:388
+msgid "Mail.inbox 12345 00000 /home/foo"
+msgstr "Mail.inbox 12345 00000 /home/foo"
+
+# type: Plain text
+#: ../tin.5:390
+msgid "Mail.outbox 23456 00000 /home/foo"
+msgstr "Mail.outbox 23456 00000 /home/foo"
+
+# type: Plain text
+#: ../tin.5:394
+msgid ""
+"This allows access to the 'inbox' and 'outbox' folders of user foo.  They "
+"are accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:401
+msgid "active file of user's saved newsgroups, used by B<tin -R>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:423
+msgid ""
+"The group attributes files may be used to override some global settings from "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> on a per group basis. Order is "
+"important as last match counts; this allows one to refine attributes for "
+"narrowed scopes. Note that the I<scope=E<lt>grouplistE<gt>> line has to be "
+"specified before the attributes are specified for that list and each "
+"attribute can only be set once per scope section. All attributes are set to "
+"a reasonable default so you only have to specify the attribute that you want "
+"to change. All toggle attributes are set by specifying ON/OFF. Otherwise, "
+"they function exactly as their global equivalents. The following group "
+"attributes are available:"
+msgstr ""
+
+# type: TP
+#: ../tin.5:423
+#, no-wrap
+msgid "B<scope>"
+msgstr "B<scope>"
+
+# type: Plain text
+#: ../tin.5:429
+msgid ""
+"This changes the list of groups to which the attributes that follow will be "
+"applied. See the section NEWSGROUP LISTS & WILDCARDS in B<tin>(1)  for the "
+"types of pattern that can be used here."
+msgstr ""
+
+# type: TP
+#: ../tin.5:429 ../tin.5:1185
+#, no-wrap
+msgid "B<add_posted_to_filter>"
+msgstr "B<add_posted_to_filter>"
+
+# type: Plain text
+#: ../tin.5:432 ../tin.5:435 ../tin.5:438 ../tin.5:441 ../tin.5:444
+#: ../tin.5:447 ../tin.5:450 ../tin.5:463 ../tin.5:473 ../tin.5:486
+#: ../tin.5:489 ../tin.5:492 ../tin.5:495 ../tin.5:502 ../tin.5:505
+#: ../tin.5:532 ../tin.5:535 ../tin.5:538 ../tin.5:548 ../tin.5:551
+#: ../tin.5:554 ../tin.5:557 ../tin.5:560 ../tin.5:563 ../tin.5:566
+#: ../tin.5:569 ../tin.5:572 ../tin.5:575 ../tin.5:581 ../tin.5:584
+#: ../tin.5:587 ../tin.5:590 ../tin.5:593 ../tin.5:596 ../tin.5:599
+#: ../tin.5:605 ../tin.5:608 ../tin.5:611 ../tin.5:614 ../tin.5:617
+#: ../tin.5:620 ../tin.5:623 ../tin.5:626 ../tin.5:629 ../tin.5:683
+msgid "Identical to the tinrc variable of the same name"
+msgstr "Identisch mit der tinrc-Variable gleichen Namens"
+
+# type: TP
+#: ../tin.5:432 ../tin.5:1189
+#, no-wrap
+msgid "B<advertising>"
+msgstr "B<advertising>"
+
+# type: TP
+#: ../tin.5:435 ../tin.5:1192
+#, no-wrap
+msgid "B<alternative_handling>"
+msgstr "B<alternative_handling>"
+
+# type: TP
+#: ../tin.5:438
+#, no-wrap
+msgid "B<ask_for_metamail>"
+msgstr "B<ask_for_metamail>"
+
+# type: TP
+#: ../tin.5:441 ../tin.5:1235
+#, no-wrap
+msgid "B<auto_cc_bcc>"
+msgstr "B<auto_cc_bcc>"
+
+# type: TP
+#: ../tin.5:444 ../tin.5:1239
+#, no-wrap
+msgid "B<auto_list_thread>"
+msgstr "B<auto_list_thread>"
+
+# type: TP
+#: ../tin.5:447 ../tin.5:1246
+#, no-wrap
+msgid "B<auto_save>"
+msgstr "B<auto_save>"
+
+# type: TP
+#: ../tin.5:450
+#, no-wrap
+msgid "B<auto_select>"
+msgstr "B<auto_select>"
+
+# type: Plain text
+#: ../tin.5:454
+msgid ""
+"Automatically perform the B<GroupMarkUnselArtRead> ('B<X>') command after "
+"entering the group."
+msgstr ""
+
+# type: TP
+#: ../tin.5:454 ../tin.5:1252
+#, no-wrap
+msgid "B<batch_save>"
+msgstr "B<batch_save>"
+
+# type: Plain text
+#: ../tin.5:460
+msgid ""
+"Can be used to override the global setting in tinrc on a per group basis. "
+"For more information read section AUTOMATIC MAILING AND SAVING NEW NEWS in "
+"B<tin>(1)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:460 ../tin.5:1366
+#, no-wrap
+msgid "B<date_format>"
+msgstr "B<date_format>"
+
+# type: TP
+#: ../tin.5:463
+#, no-wrap
+msgid "B<delete_tmp_files>"
+msgstr "B<delete_tmp_files>"
+
+# type: Plain text
+#: ../tin.5:470
+msgid ""
+"If this is set to ON, then saved article files that have been post-processed "
+"will be automatically deleted, otherwise the user will be asked whether to "
+"delete the post-processed files. Automatic processing of marked articles "
+"using B<GroupAutoSave> ('B<S>') will suppress prompting."
+msgstr ""
+
+# type: TP
+#: ../tin.5:470 ../tin.5:1481
+#, no-wrap
+msgid "B<editor_format>"
+msgstr "B<editor_format>"
+
+# type: TP
+#: ../tin.5:473
+#, no-wrap
+msgid "B<fcc>"
+msgstr "B<fcc>"
+
+# type: Plain text
+#: ../tin.5:477
+msgid ""
+"Mailbox to save sent mails. The format of the mailbox is controlled via the "
+"tinrc B<mailbox_format> variable."
+msgstr ""
+
+# type: TP
+#: ../tin.5:477
+#, no-wrap
+msgid "B<followup_to>"
+msgstr "B<followup_to>"
+
+# type: Plain text
+#: ../tin.5:480
+msgid "Set ''Followup-To:'' header to the specified group(s)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:480 ../tin.5:763
+#, no-wrap
+msgid "B<from>"
+msgstr "B<from>"
+
+# type: Plain text
+#: ../tin.5:483
+msgid "Identical to the tinrc variable B<mail_address>"
+msgstr "Identisch mit der tinrc-Variable B<mail_address>"
+
+# type: TP
+#: ../tin.5:483 ../tin.5:1505
+#, no-wrap
+msgid "B<group_catchup_on_exit>"
+msgstr "B<group_catchup_on_exit>"
+
+# type: TP
+#: ../tin.5:486 ../tin.5:1572
+#, no-wrap
+msgid "B<mail_8bit_header>"
+msgstr "B<mail_8bit_header>"
+
+# type: TP
+#: ../tin.5:489 ../tin.5:1584 ../tin.5:2306
+#, no-wrap
+msgid "B<mail_mime_encoding>"
+msgstr "B<mail_mime_encoding>"
+
+# type: TP
+#: ../tin.5:492 ../tin.5:1601
+#, no-wrap
+msgid "B<maildir>"
+msgstr "B<maildir>"
+
+# type: TP
+#: ../tin.5:495
+#, no-wrap
+msgid "B<mailing_list>"
+msgstr "B<mailing_list>"
+
+# type: Plain text
+#: ../tin.5:499
+msgid ""
+"Used when a group is a mailing list. All responses to the group will be "
+"directed to this email address instead"
+msgstr ""
+
+# type: TP
+#: ../tin.5:499 ../tin.5:1639
+#, no-wrap
+msgid "B<mark_ignore_tags>"
+msgstr "B<mark_ignore_tags>"
+
+# type: TP
+#: ../tin.5:502 ../tin.5:1636
+#, no-wrap
+msgid "B<mark_saved_read>"
+msgstr "B<mark_saved_read>"
+
+# type: TP
+#: ../tin.5:505
+#, no-wrap
+msgid "B<mime_forward>"
+msgstr "B<mime_forward>"
+
+# type: Plain text
+#: ../tin.5:522
+msgid ""
+"Determines whether usenet articles are forwarded as attachment or inline. "
+"When set to OFF, the forwarded article will be included in the body of the "
+"mail, while setting this variable to ON will cause the article to be "
+"attached as a separate MIME part. Enabling B<mime_forward> is particularly "
+"useful for articles consisting of multiple MIME parts such as PGP/MIME "
+"signed messages or being encoded in a different character set than your "
+"local one. It is also useful if the receiver should be able to operate on "
+"the entire forwarded article (i.e., view or save it without your comments). "
+"On the other hand, if you want to forward only some parts of the article or "
+"to insert 'inline' annotations, you might want to disable this option.  "
+"Currently mime_forward is forced if the article to be attached is a "
+"multipart MIME article, this may change in a future version.  Please note "
+"that for this option to have effect, the tinrc variable "
+"B<interactive_mailer> has to be set to 0 (which is the default)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:522
+#, no-wrap
+msgid "B<mime_types_to_save>"
+msgstr "B<mime_types_to_save>"
+
+# type: Plain text
+#: ../tin.5:529
+msgid ""
+"A comma separated list of MIME major/minor Content-Types that will be saved "
+"when using the view/save and save/autosave features.  A single * can be used "
+"to wildcard the major and/or minor type and a ! as the first character in an "
+"entry will negate it, eg: image/*,!image/bmp,!text/html. Default is */*"
+msgstr ""
+
+# type: TP
+#: ../tin.5:529 ../tin.5:1718
+#, no-wrap
+msgid "B<news_headers_to_display>"
+msgstr "B<news_headers_to_display>"
+
+# type: TP
+#: ../tin.5:532 ../tin.5:1725
+#, no-wrap
+msgid "B<news_headers_to_not_display>"
+msgstr "B<news_headers_to_not_display>"
+
+# type: TP
+#: ../tin.5:535 ../tin.5:1734
+#, no-wrap
+msgid "B<news_quote_format>"
+msgstr "B<news_quote_format>"
+
+# type: TP
+#: ../tin.5:538 ../tin.5:2279
+#, no-wrap
+msgid "B<organization>"
+msgstr "B<organization>"
+
+# type: Plain text
+#: ../tin.5:545
+msgid ""
+"This can be used to set the article header field ''Organization:''. It "
+"overrides the setting (if any) of organization in I</etc/tin/tin.defaults> "
+"and $B<ORGANIZATION> (or $B<NEWSORG> on Apollo DomainOS). Note that some "
+"newsserver might still overwrite the \\&''Organization:'' header."
+msgstr ""
+
+# type: TP
+#: ../tin.5:545 ../tin.5:1759
+#, no-wrap
+msgid "B<pos_first_unread>"
+msgstr "B<pos_first_unread>"
+
+# type: TP
+#: ../tin.5:548 ../tin.5:1763
+#, no-wrap
+msgid "B<post_8bit_header>"
+msgstr "B<post_8bit_header>"
+
+# type: TP
+#: ../tin.5:551 ../tin.5:1774 ../tin.5:2303
+#, no-wrap
+msgid "B<post_mime_encoding>"
+msgstr "B<post_mime_encoding>"
+
+# type: TP
+#: ../tin.5:554 ../tin.5:1786
+#, no-wrap
+msgid "B<post_process_type>"
+msgstr "B<post_process_type>"
+
+# type: TP
+#: ../tin.5:557 ../tin.5:1779
+#, no-wrap
+msgid "B<post_process_view>"
+msgstr "B<post_process_view>"
+
+# type: TP
+#: ../tin.5:560 ../tin.5:1809
+#, no-wrap
+msgid "B<print_header>"
+msgstr "B<print_header>"
+
+# type: TP
+#: ../tin.5:563 ../tin.5:1823
+#, no-wrap
+msgid "B<process_only_unread>"
+msgstr "B<process_only_unread>"
+
+# type: TP
+#: ../tin.5:566 ../tin.5:1827
+#, no-wrap
+msgid "B<prompt_followupto>"
+msgstr "B<prompt_followupto>"
+
+# type: TP
+#: ../tin.5:569 ../tin.5:1831
+#, no-wrap
+msgid "B<quote_chars>"
+msgstr "B<quote_chars>"
+
+# type: TP
+#: ../tin.5:572 ../tin.5:1891
+#, no-wrap
+msgid "B<savedir>"
+msgstr "B<savedir>"
+
+# type: TP
+#.  TODO: document option
+#: ../tin.5:575
+#, no-wrap
+msgid "B<savefile>"
+msgstr "B<savefile>"
+
+# type: TP
+#: ../tin.5:578 ../tin.5:1919
+#, no-wrap
+msgid "B<show_author>"
+msgstr "B<show_author>"
+
+# type: TP
+#: ../tin.5:581 ../tin.5:1945
+#, no-wrap
+msgid "B<show_info>"
+msgstr "B<show_info>"
+
+# type: TP
+#: ../tin.5:584 ../tin.5:1963
+#, no-wrap
+msgid "B<show_only_unread_arts>"
+msgstr "B<show_only_unread_arts>"
+
+# type: TP
+#: ../tin.5:587 ../tin.5:1971
+#, no-wrap
+msgid "B<show_signatures>"
+msgstr "B<show_signatures>"
+
+# type: TP
+#: ../tin.5:590 ../tin.5:1974
+#, no-wrap
+msgid "B<sigdashes>"
+msgstr "B<sigdashes>"
+
+# type: TP
+#: ../tin.5:593 ../tin.5:1977
+#, no-wrap
+msgid "B<sigfile>"
+msgstr "B<sigfile>"
+
+# type: TP
+#: ../tin.5:596 ../tin.5:1988
+#, no-wrap
+msgid "B<signature_repost>"
+msgstr "B<signature_repost>"
+
+# type: TP
+#: ../tin.5:599 ../tin.5:1998
+#, no-wrap
+msgid "B<sort_article_type>"
+msgstr "B<sort_article_type>"
+
+# type: Plain text
+#: ../tin.5:602
+msgid "Identical to the tinrc variable B<sort_article_type>"
+msgstr "Identisch mit der tinrc-Variable B<sort_article_type>"
+
+# type: TP
+#: ../tin.5:602 ../tin.5:2027
+#, no-wrap
+msgid "B<sort_threads_type>"
+msgstr "B<sort_threads_type>"
+
+# type: TP
+#: ../tin.5:605 ../tin.5:2056
+#, no-wrap
+msgid "B<start_editor_offset>"
+msgstr "B<start_editor_offset>"
+
+# type: TP
+#: ../tin.5:608 ../tin.5:2084
+#, no-wrap
+msgid "B<tex2iso_conv>"
+msgstr "B<tex2iso_conv>"
+
+# type: TP
+#: ../tin.5:611 ../tin.5:2089
+#, no-wrap
+msgid "B<thread_articles>"
+msgstr "B<thread_articles>"
+
+# type: TP
+#: ../tin.5:614 ../tin.5:2104
+#, no-wrap
+msgid "B<thread_catchup_on_exit>"
+msgstr "B<thread_catchup_on_exit>"
+
+# type: TP
+#: ../tin.5:617 ../tin.5:2099
+#, no-wrap
+msgid "B<thread_perc>"
+msgstr "B<thread_perc>"
+
+# type: TP
+#: ../tin.5:620 ../tin.5:2128
+#, no-wrap
+msgid "B<trim_article_body>"
+msgstr "B<trim_article_body>"
+
+# type: TP
+#: ../tin.5:623 ../tin.5:2208
+#, no-wrap
+msgid "B<verbatim_handling>"
+msgstr "B<verbatim_handling>"
+
+# type: TP
+#: ../tin.5:626 ../tin.5:2255
+#, no-wrap
+msgid "B<wrap_on_next_unread>"
+msgstr "B<wrap_on_next_unread>"
+
+# type: TP
+#: ../tin.5:629
+#, no-wrap
+msgid "B<x_body>"
+msgstr "B<x_body>"
+
+# type: Plain text
+#: ../tin.5:634
+msgid ""
+"A piece of text that will be added at the start of a message body. If this "
+"string starts with a / or ~ then it is assumed to be the name of a file "
+"containing the text to insert."
+msgstr ""
+
+# type: TP
+#: ../tin.5:634
+#, no-wrap
+msgid "B<x_comment_to>"
+msgstr "B<x_comment_to>"
+
+# type: Plain text
+#: ../tin.5:637
+msgid "Insert ''X-Comment-To:'' header, this is only useful in FIDO groups."
+msgstr ""
+
+# type: TP
+#: ../tin.5:637
+#, no-wrap
+msgid "B<x_headers>"
+msgstr "B<x_headers>"
+
+# type: Plain text
+#: ../tin.5:645
+msgid ""
+"A string including header-name and the contents of the header that will be "
+"automatically added when posting. If the string starts with a / or ~ then it "
+"is assumed to be the name of a file containing the header and its content to "
+"be inserted. If the string starts with a ! then what follows is assumed to "
+"be the path to a program to be executed to generate the header and its "
+"content."
+msgstr ""
+
+# type: TP
+#: ../tin.5:645
+#, no-wrap
+msgid "B<quick_kill_scope>"
+msgstr "B<quick_kill_scope>"
+
+# type: Plain text
+#: ../tin.5:651
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterKill> will be applied.  If unset the "
+"default from the tinrc variable B<default_filter_kill_global> will be used."
+msgstr ""
+
+# type: TP
+#: ../tin.5:651
+#, no-wrap
+msgid "B<quick_kill_expire>"
+msgstr "B<quick_kill_expire>"
+
+# type: Plain text
+#: ../tin.5:654
+msgid "Identical to the tinrc variable B<default_filter_kill_expire>"
+msgstr "Identisch mit der tinrc-Variable B<default_filter_kill_expire>"
+
+# type: TP
+#: ../tin.5:654
+#, no-wrap
+msgid "B<quick_kill_case>"
+msgstr "B<quick_kill_case>"
+
+# type: Plain text
+#: ../tin.5:657
+msgid "Identical to the tinrc variable B<default_filter_kill_case>"
+msgstr "Identisch mit der tinrc-Variable B<default_filter_kill_case>"
+
+# type: TP
+#: ../tin.5:657
+#, no-wrap
+msgid "B<quick_kill_header>"
+msgstr "B<quick_kill_header>"
+
+# type: Plain text
+#: ../tin.5:660
+msgid "Identical to the tinrc variable B<default_filter_kill_header>"
+msgstr "Identisch mit der tinrc-Variable B<default_filter_kill_header>"
+
+# type: TP
+#: ../tin.5:660
+#, no-wrap
+msgid "B<quick_select_scope>"
+msgstr "B<quick_select_scope>"
+
+# type: Plain text
+#: ../tin.5:666
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterSelect> will be applied. If unset the "
+"default from the tinrc variable B<default_filter_select_global> will be used."
+msgstr ""
+
+# type: TP
+#: ../tin.5:666
+#, no-wrap
+msgid "B<quick_select_expire>"
+msgstr "B<quick_select_expire>"
+
+# type: Plain text
+#: ../tin.5:669
+msgid "Identical to the tinrc variable B<default_filter_select_expire>"
+msgstr "Identisch mit der tinrc-Variable B<default_filter_select_expire>"
+
+# type: TP
+#: ../tin.5:669
+#, no-wrap
+msgid "B<quick_select_case>"
+msgstr "B<quick_select_case>"
+
+# type: Plain text
+#: ../tin.5:672
+msgid "Identical to the tinrc variable B<default_filter_select_case>"
+msgstr "Identisch mit der tinrc-Variable B<default_filter_select_case>"
+
+# type: TP
+#: ../tin.5:672
+#, no-wrap
+msgid "B<quick_select_header>"
+msgstr "B<quick_select_header>"
+
+# type: Plain text
+#: ../tin.5:675
+msgid "Identical to the tinrc variable B<default_filter_select_header>"
+msgstr "Identisch mit der tinrc-Variable B<default_filter_select_header>"
+
+# type: TP
+#: ../tin.5:675
+#, no-wrap
+msgid "B<ispell>"
+msgstr "B<ispell>"
+
+# type: Plain text
+#: ../tin.5:680
+msgid ""
+"Path and options for B<ispell>(1)-like spell-checker, e.g. \"aspell --"
+"mode=email --dont-backup check\""
+msgstr ""
+
+# type: TP
+#: ../tin.5:680 ../tin.5:1672
+#, no-wrap
+msgid "B<mm_network_charset>"
+msgstr "B<mm_network_charset>"
+
+# type: TP
+#: ../tin.5:683
+#, no-wrap
+msgid "B<undeclared_charset>"
+msgstr "B<undeclared_charset>"
+
+# type: Plain text
+#: ../tin.5:692
+msgid ""
+"Assume (broken) articles without MIME charset declaration have this charset "
+"- default is US-ASCII. This attribute works only on systems with working "
+"B<iconv>(3), others might have to compile B<tin>(1)  with --disable-mime-"
+"strict-charset."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:702
+#, no-wrap
+msgid ""
+"# include extra headers\n"
+"# assume ISO-8859-1 as charset if no charset is declared\n"
+"scope=*\n"
+"x_headers=~/.tin/headers\n"
+"undeclared_charset=ISO-8859-1\n"
+msgstr ""
+"# zusätzliche Header einfügen\n"
+"# ISO-8859-1 als Zeichensatz annehmen falls keiner angegeben wurde\n"
+"scope=*\n"
+"x_headers=~/.tin/headers\n"
+"undeclared_charset=ISO-8859-1\n"
+
+# type: Plain text
+#: ../tin.5:706
+#, no-wrap
+msgid ""
+"# in *sources* set post process type to shar only\n"
+"scope=*sources*\n"
+"post_process_type=1\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:713
+#, no-wrap
+msgid ""
+"# in *binaries* turn on full post processing,\n"
+"# remove tmp files and set Followup-To: poster\n"
+"scope=*binaries*\n"
+"post_process_type=2\n"
+"delete_tmp_files=ON\n"
+"followup_to=poster\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:719
+#, no-wrap
+msgid ""
+"# in fido.* newsgroups change quote_chars\n"
+"# and add X-Comment-To: line\n"
+"scope=fido.*\n"
+"quote_chars=%sE<gt>_\n"
+"x_comment_to=ON\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:725
+#, no-wrap
+msgid ""
+"# in *.test newsgroups, don't append signature\n"
+"# and preset Subject\n"
+"scope=*.test\n"
+"sigfile=--none\n"
+"x_headers=Subject: test - ignore - no reply\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:729
+#, no-wrap
+msgid ""
+"# assume ISO-2022-JP-2 as charset\n"
+"scope=fj.*,japan.*\n"
+"undeclared_charset=ISO-2022-JP-2\n"
+msgstr ""
+"# ISO-2022-JP-2 als Zeichensatz annehmen\n"
+"scope=fj.*,japan.*\n"
+"undeclared_charset=ISO-2022-JP-2\n"
+
+# type: Plain text
+#: ../tin.5:741
+msgid ""
+"The filter file is used to assign scores to certain articles. Based on the "
+"score an article can be filtered out (hidden) or marked hot. Empty lines or "
+"lines beginning with a '#' are ignored."
+msgstr ""
+
+# type: TP
+#: ../tin.5:741
+#, no-wrap
+msgid "B<comment>"
+msgstr "B<comment>"
+
+# type: Plain text
+#: ../tin.5:750
+msgid ""
+"Every entry (rule) in the filter file might get a comment. Multiple lines "
+"are allowed (but only for comments yet). Every line must start with the "
+"\"comment=\" keyword. Comments must appear first in the rule.  Comment lines "
+"placed within a rule will be moved to the begin of the next rule. This might "
+"be changed in the future. Don't use '#' to mark comments as those lines are "
+"ignored and your comments will get lost on the next write of the file."
+msgstr ""
+
+# type: TP
+#: ../tin.5:750
+#, no-wrap
+msgid "B<group>"
+msgstr "B<group>"
+
+# type: Plain text
+#: ../tin.5:754
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule will be applied. This line is mandatory!"
+msgstr ""
+
+# type: TP
+#: ../tin.5:754
+#, no-wrap
+msgid "B<case>"
+msgstr "B<case>"
+
+# type: Plain text
+#: ../tin.5:757
+msgid "0=case-sensitive, 1=case-insensitive"
+msgstr ""
+
+# type: TP
+#: ../tin.5:757
+#, no-wrap
+msgid "B<score>"
+msgstr "B<score>"
+
+# type: Plain text
+#: ../tin.5:760
+msgid ""
+"Score value of the rule; can also be one of the magic words \"kill\" or \"hot"
+"\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:760
+#, no-wrap
+msgid "B<subj>"
+msgstr "B<subj>"
+
+# type: Plain text
+#: ../tin.5:763
+msgid "Match against ''Subject:''"
+msgstr "Vergleiche mit ''Subject:''"
+
+# type: Plain text
+#: ../tin.5:771
+msgid ""
+"Match against ''From:''.  B<tin>(1)  converts the contents of the ''From:'' "
+"header to an old style e-mail address, e.g. ''some@body.example (John Doe)'' "
+"instead of ''John Doe E<lt>some@body.exampleE<gt>'', before trying to match "
+"the patterns in the filter rule."
+msgstr ""
+
+# type: TP
+#: ../tin.5:771
+#, no-wrap
+msgid "B<msgid>"
+msgstr "B<msgid>"
+
+# type: Plain text
+#: ../tin.5:774
+msgid "Match against ''Message-ID:'' and full ''References:''"
+msgstr ""
+
+# type: TP
+#: ../tin.5:774
+#, no-wrap
+msgid "B<msgid_last>"
+msgstr "B<msgid_last>"
+
+# type: Plain text
+#: ../tin.5:777
+msgid "Match against ''Message-ID:'' and last ''References:'' entry only"
+msgstr ""
+
+# type: TP
+#: ../tin.5:777
+#, no-wrap
+msgid "B<msgid_only>"
+msgstr "B<msgid_only>"
+
+# type: Plain text
+#: ../tin.5:780
+msgid "Match against ''Message-ID:''"
+msgstr "Vergleiche mit ''Message-ID:''"
+
+# type: TP
+#: ../tin.5:780
+#, no-wrap
+msgid "B<refs_only>"
+msgstr "B<refs_only>"
+
+# type: Plain text
+#: ../tin.5:783
+msgid "Match against ''References:''"
+msgstr "Vergleiche mit ''References:''"
+
+# type: TP
+#: ../tin.5:783
+#, no-wrap
+msgid "B<lines>"
+msgstr "B<lines>"
+
+# type: Plain text
+#: ../tin.5:786
+msgid ""
+"Match against ''Lines:'', E<lt>num matches less than, E<gt>num matches more "
+"than."
+msgstr ""
+
+# type: TP
+#.  TODO: document option in detail
+#: ../tin.5:786
+#, no-wrap
+msgid "B<gnksa>"
+msgstr "B<gnksa>"
+
+# type: Plain text
+#: ../tin.5:790
+msgid "Match against ''From:'' address parser return codes."
+msgstr ""
+
+# type: TP
+#: ../tin.5:790
+#, no-wrap
+msgid "B<xref>"
+msgstr "B<xref>"
+
+# type: Plain text
+#: ../tin.5:796
+msgid ""
+"Match against ''Xref:'' line. Before any matching is done the line is turned "
+"into the same format ''Newsgroups:'' has that is it is turned into a comma "
+"separated newsgroup list with all other information (i.e.  the article "
+"counter) removed."
+msgstr ""
+
+# type: TP
+#: ../tin.5:796 ../tin.5:2446
+#, no-wrap
+msgid "B<time>"
+msgstr "B<time>"
+
+# type: Plain text
+#: ../tin.5:799
+msgid "time_t value when rule expires"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:810
+#, no-wrap
+msgid ""
+"comment=mark all articles about tin, rtin,\n"
+"comment=tind, ktin or cdtin as hot\n"
+"group=*\n"
+"case=1\n"
+"score=hot\n"
+"subj=\\eb(cd|[rk]?)?tin(d|pre)?[-.0-9]*\\eb\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:826
+msgid ""
+"Keymap-file, containing \"I<keyname> I<value> I<[value]>\" pairs separated "
+"by spaces or tabs. Below is a list of all rebindable keynames and their "
+"defaults. If a keyname is bound to NULL it is unassigned."
+msgstr ""
+
+# type: ta
+#: ../tin.5:828
+#, no-wrap
+msgid "\\w'GroupSelThdIfUnreadSelected    'u +\\w'SPACE'u +\\w'SPACE'u"
+msgstr "\\w'GroupSelThdIfUnreadSelected    'u +\\w'SPACE'u +\\w'SPACE'u"
+
+# type: Plain text
+#: ../tin.5:875
+#, no-wrap
+msgid ""
+"B<ShellEscape>\t!\n"
+"B<SetRange>\t#\n"
+"B<LastPage>\t$\n"
+"B<ToggleColor>\t&\n"
+"B<LastViewed>\t-\n"
+"B<SearchRepeat>\t\\e\n"
+"B<SearchSubjF>\t/\n"
+"B<SearchSubjB>\t?\n"
+"B<SearchAuthB>\tA\n"
+"B<SearchBody>\tB\n"
+"B<CatchupNextUnread>\tC\n"
+"B<EditFilter>\tE\n"
+"B<ToggleHelpDisplay>\tH\n"
+"B<ToggleInverseVideo>\tI\n"
+"B<LookupMessage>\tL\n"
+"B<OptionMenu>\tM\n"
+"B<Postponed>\tO\t^O\n"
+"B<QuitTin>\tQ\n"
+"B<BugReport>\tR\n"
+"B<DisplayPostHist>\tW\n"
+"B<MarkThrUnread>\tZ\n"
+"B<FirstPage>\t^\n"
+"B<SearchAuthF>\ta\n"
+"B<Catchup>\tc\n"
+"B<Help>\th\n"
+"B<ToggleInfoLastLine>\ti\n"
+"B<Down>\tj\t^N\n"
+"B<Up>\tk\t^P\n"
+"B<Print>\to\n"
+"B<Quit>\tq\n"
+"B<Version>\tv\n"
+"B<Post>\tw\n"
+"B<MarkArtUnread>\tz\n"
+"B<QuickFilterSelect>\t[\n"
+"B<QuickFilterKill>\t]\n"
+"B<Pipe>\t|\n"
+"B<ScrollUp>\tE<lt>\n"
+"B<ScrollDown>\tE<gt>\n"
+"B<PageUp>\tb\t^B\t^U\n"
+"B<PageDown>\t^D\t^F\tSPACE\n"
+"B<RedrawScr>\t^L\n"
+"B<Postponed>\t^O\n"
+"B<MenuFilterSelect>\t^A\n"
+"B<MenuFilterKill>\t^K\n"
+"B<MarkFeedRead>\t^X\n"
+"B<MarkFeedUnread>\t^W\n"
+msgstr ""
+"B<ShellEscape>\t!\n"
+"B<SetRange>\t#\n"
+"B<LastPage>\t$\n"
+"B<ToggleColor>\t&\n"
+"B<LastViewed>\t-\n"
+"B<SearchRepeat>\t\\e\n"
+"B<SearchSubjF>\t/\n"
+"B<SearchSubjB>\t?\n"
+"B<SearchAuthB>\tA\n"
+"B<SearchBody>\tB\n"
+"B<CatchupNextUnread>\tC\n"
+"B<EditFilter>\tE\n"
+"B<ToggleHelpDisplay>\tH\n"
+"B<ToggleInverseVideo>\tI\n"
+"B<LookupMessage>\tL\n"
+"B<OptionMenu>\tM\n"
+"B<Postponed>\tO\t^O\n"
+"B<QuitTin>\tQ\n"
+"B<BugReport>\tR\n"
+"B<DisplayPostHist>\tW\n"
+"B<MarkThrUnread>\tZ\n"
+"B<FirstPage>\t^\n"
+"B<SearchAuthF>\ta\n"
+"B<Catchup>\tc\n"
+"B<Help>\th\n"
+"B<ToggleInfoLastLine>\ti\n"
+"B<Down>\tj\t^N\n"
+"B<Up>\tk\t^P\n"
+"B<Print>\to\n"
+"B<Quit>\tq\n"
+"B<Version>\tv\n"
+"B<Post>\tw\n"
+"B<MarkArtUnread>\tz\n"
+"B<QuickFilterSelect>\t[\n"
+"B<QuickFilterKill>\t]\n"
+"B<Pipe>\t|\n"
+"B<ScrollUp>\tE<lt>\n"
+"B<ScrollDown>\tE<gt>\n"
+"B<PageUp>\tb\t^B\t^U\n"
+"B<PageDown>\t^D\t^F\tSPACE\n"
+"B<RedrawScr>\t^L\n"
+"B<Postponed>\t^O\n"
+"B<MenuFilterSelect>\t^A\n"
+"B<MenuFilterKill>\t^K\n"
+"B<MarkFeedRead>\t^X\n"
+"B<MarkFeedUnread>\t^W\n"
+
+# type: Plain text
+#: ../tin.5:883
+#, no-wrap
+msgid ""
+"B<AttachSelect>\t^J\t^M\n"
+"B<AttachPipe>\tp\n"
+"B<AttachSave>\ts\n"
+"B<AttachTag>\tt\n"
+"B<AttachUntag>\tU\n"
+"B<AttachTagPattern>\t=\n"
+"B<AttachToggleTagged>\t@\n"
+msgstr ""
+"B<AttachSelect>\t^J\t^M\n"
+"B<AttachPipe>\tp\n"
+"B<AttachSave>\ts\n"
+"B<AttachTag>\t\tt\n"
+"B<AttachUntag>\tU\n"
+"B<AttachTagPattern>\t=\n"
+"B<AttachToggleTagged>\t@\n"
+
+# type: Plain text
+#: ../tin.5:891
+#, no-wrap
+msgid ""
+"B<ConfigToggleAttrib>\tTAB\n"
+"B<ConfigSelect>\t^J\t^M\n"
+"B<ConfigLastPage>\tG\n"
+"B<ConfigNoSave>\tQ\n"
+"B<ConfigScopeMenu>\tS\n"
+"B<ConfigFirstPage>\tg\n"
+"B<ConfigResetAttrib>\tr\n"
+msgstr ""
+"B<ConfigToggleAttrib>\tTAB\n"
+"B<ConfigSelect>\t^J\t^M\n"
+"B<ConfigLastPage>\tG\n"
+"B<ConfigNoSave>\tQ\n"
+"B<ConfigScopeMenu>\tS\n"
+"B<ConfigFirstPage>\tg\n"
+"B<ConfigResetAttrib>\tr\n"
+
+# type: Plain text
+#: ../tin.5:899
+#, no-wrap
+msgid ""
+"B<FeedTag>\tT\n"
+"B<FeedArt>\ta\n"
+"B<FeedHot>\th\n"
+"B<FeedPat>\tp\n"
+"B<FeedRepost>\tr\n"
+"B<FeedSupersede>\ts\n"
+"B<FeedThd>\tt\n"
+msgstr ""
+"B<FeedTag>\tT\n"
+"B<FeedArt>\ta\n"
+"B<FeedHot>\th\n"
+"B<FeedPat>\tp\n"
+"B<FeedRepost>\tr\n"
+"B<FeedSupersede>\ts\n"
+"B<FeedThd>\tt\n"
+
+# type: Plain text
+#: ../tin.5:902
+#, no-wrap
+msgid ""
+"B<FilterEdit>\te\n"
+"B<FilterSave>\ts\n"
+msgstr ""
+"B<FilterEdit>\te\n"
+"B<FilterSave>\ts\n"
+
+# type: Plain text
+#: ../tin.5:932
+#, no-wrap
+msgid ""
+"B<GroupNextUnreadArtOrGrp>\tTAB\n"
+"B<GroupReadBasenote>\t^J\t^M\n"
+"B<GroupSelThd>\t*\n"
+"B<GroupDoAutoSel>\t+\n"
+"B<GroupToggleThdSel>\t.\n"
+"B<GroupSelThdIfUnreadSelected>\t;\n"
+"B<GroupSelPattern>\t=\n"
+"B<GroupReverseSel>\t@\n"
+"B<GroupCancel>\tD\n"
+"B<GroupToggleGetartLimit>\tG\n"
+"B<GroupMarkThdRead>\tK\n"
+"B<GroupNextUnreadArt>\tN\n"
+"B<GroupPrevUnreadArt>\tP\n"
+"B<GroupAutoSave>\tS\n"
+"B<GroupTagParts>\tT\n"
+"B<GroupUntag>\tU\n"
+"B<GroupMarkUnselArtRead>\tX\n"
+"B<GroupToggleSubjDisplay>\td\n"
+"B<GroupGoto>\tg\n"
+"B<GroupListThd>\tl\n"
+"B<GroupMail>\tm\n"
+"B<GroupNextGroup>\tn\n"
+"B<GroupPrevGroup>\tp\n"
+"B<GroupToggleReadUnread>\tr\n"
+"B<GroupSave>\ts\n"
+"B<GroupTag>\tt\n"
+"B<GroupToggleThreading>\tu\n"
+"B<GroupRepost>\tx\n"
+"B<GroupUndoSel>\t~\n"
+msgstr ""
+"B<GroupNextUnreadArtOrGrp>\tTAB\n"
+"B<GroupReadBasenote>\t^J\t^M\n"
+"B<GroupSelThd>\t*\n"
+"B<GroupDoAutoSel>\t+\n"
+"B<GroupToggleThdSel>\t.\n"
+"B<GroupSelThdIfUnreadSelected>\t;\n"
+"B<GroupSelPattern>\t=\n"
+"B<GroupReverseSel>\t@\n"
+"B<GroupCancel>\tD\n"
+"B<GroupToggleGetartLimit>\tG\n"
+"B<GroupMarkThdRead>\tK\n"
+"B<GroupNextUnreadArt>\tN\n"
+"B<GroupPrevUnreadArt>\tP\n"
+"B<GroupAutoSave>\tS\n"
+"B<GroupTagParts>\tT\n"
+"B<GroupUntag>\tU\n"
+"B<GroupMarkUnselArtRead>\tX\n"
+"B<GroupToggleSubjDisplay>\td\n"
+"B<GroupGoto>\tg\n"
+"B<GroupListThd>\tl\n"
+"B<GroupMail>\tm\n"
+"B<GroupNextGroup>\tn\n"
+"B<GroupPrevGroup>\tp\n"
+"B<GroupToggleReadUnread>\tr\n"
+"B<GroupSave>\ts\n"
+"B<GroupTag>\tt\n"
+"B<GroupToggleThreading>\tu\n"
+"B<GroupRepost>\tx\n"
+"B<GroupUndoSel>\t~\n"
+
+# type: Plain text
+#: ../tin.5:935
+#, no-wrap
+msgid ""
+"B<HelpLastPage>\tG\n"
+"B<HelpFirstPage>\tg\n"
+msgstr ""
+"B<HelpLastPage>\tG\n"
+"B<HelpFirstPage>\tg\n"
+
+# type: Plain text
+#: ../tin.5:975
+#, no-wrap
+msgid ""
+"B<PageReplyQuoteHeaders>\t^E\n"
+"B<PagePGPCheckArticle>\t^G\n"
+"B<PageToggleRaw>\t^H\n"
+"B<PageNextUnread>\tTAB\n"
+"B<PageNextThd>\t^J\t^M\n"
+"B<PageToggleTabs>\t^T\n"
+"B<PageFollowupQuoteHeaders>\t^W\n"
+"B<PageToggleTex2iso>\t\"\n"
+"B<PageToggleAllHeaders>\t*\n"
+"B<PageToggleRot>\t%\n"
+"B<PageToggleUue>\t(\n"
+"B<PageReveal>\t)\n"
+"B<PageSkipIncludedText>\t:\n"
+"B<PageTopThd>\tE<lt>\n"
+"B<PageBotThd>\tE<gt>\n"
+"B<PageCancel>\tD\n"
+"B<PageFollowup>\tF\n"
+"B<PageLastPage>\tG\n"
+"B<PageKillThd>\tK\n"
+"B<PageNextUnreadArt>\tN\n"
+"B<PagePrevUnreadArt>\tP\n"
+"B<PageReply>\tR\n"
+"B<PageAutoSave>\tS\n"
+"B<PageGroupSel>\tT\n"
+"B<PageViewUrl>\tU\n"
+"B<PageViewAttach>\tV\n"
+"B<PageToggleHighlight>\t_\n"
+"B<PageEditArticle>\te\n"
+"B<PageFollowupQuote>\tf\n"
+"B<PageFirstPage>\tg\n"
+"B<PageListThd>\tl\n"
+"B<PageMail>\tm\n"
+"B<PageNextArt>\tn\n"
+"B<PagePrevArt>\tp\n"
+"B<PageReplyQuote>\tr\n"
+"B<PageSave>\ts\n"
+"B<PageTag>\tt\n"
+"B<PageGotoParent>\tu\n"
+"B<PageRepost>\tx\n"
+msgstr ""
+"B<PageReplyQuoteHeaders>\t^E\n"
+"B<PagePGPCheckArticle>\t^G\n"
+"B<PageToggleRaw>\t^H\n"
+"B<PageNextUnread>\tTAB\n"
+"B<PageNextThd>\t^J\t^M\n"
+"B<PageToggleTabs>\t^T\n"
+"B<PageFollowupQuoteHeaders>\t^W\n"
+"B<PageToggleTex2iso>\t\"\n"
+"B<PageToggleAllHeaders>\t*\n"
+"B<PageToggleRot>\t%\n"
+"B<PageToggleUue>\t(\n"
+"B<PageReveal>\t)\n"
+"B<PageSkipIncludedText>\t:\n"
+"B<PageTopThd>\tE<lt>\n"
+"B<PageBotThd>\tE<gt>\n"
+"B<PageCancel>\tD\n"
+"B<PageFollowup>\tF\n"
+"B<PageLastPage>\tG\n"
+"B<PageKillThd>\tK\n"
+"B<PageNextUnreadArt>\tN\n"
+"B<PagePrevUnreadArt>\tP\n"
+"B<PageReply>\tR\n"
+"B<PageAutoSave>\tS\n"
+"B<PageGroupSel>\tT\n"
+"B<PageViewUrl>\tU\n"
+"B<PageViewAttach>\tV\n"
+"B<PageToggleHighlight>\t_\n"
+"B<PageEditArticle>\te\n"
+"B<PageFollowupQuote>\tf\n"
+"B<PageFirstPage>\tg\n"
+"B<PageListThd>\tl\n"
+"B<PageMail>\tm\n"
+"B<PageNextArt>\tn\n"
+"B<PagePrevArt>\tp\n"
+"B<PageReplyQuote>\tr\n"
+"B<PageSave>\ts\n"
+"B<PageTag>\tt\n"
+"B<PageGotoParent>\tu\n"
+"B<PageRepost>\tx\n"
+
+# type: Plain text
+#: ../tin.5:980
+#, no-wrap
+msgid ""
+"B<PgpEncSign>\tb\n"
+"B<PgpEncrypt>\te\n"
+"B<PgpIncludekey>\ti\n"
+"B<PgpSign>\ts\n"
+msgstr ""
+"B<PgpEncSign>\tb\n"
+"B<PgpEncrypt>\te\n"
+"B<PgpIncludekey>\ti\n"
+"B<PgpSign>\ts\n"
+
+# type: Plain text
+#: ../tin.5:993
+#, no-wrap
+msgid ""
+"B<PostAbort>\ta\n"
+"B<PostContinue>\tc\n"
+"B<PostCancel>\td\n"
+"B<PostEdit>\te\n"
+"B<PostPGP>\tg\n"
+"B<PostIspell>\ti\n"
+"B<PostIgnore>\ti\n"
+"B<PostMail>\tm\n"
+"B<PostPostpone>\to\n"
+"B<PostPost>\tp\ty\n"
+"B<PostSupersede>\ts\n"
+"B<PostSend>\ts\ty\n"
+msgstr ""
+"B<PostAbort>\ta\n"
+"B<PostContinue>\tc\n"
+"B<PostCancel>\td\n"
+"B<PostEdit>\te\n"
+"B<PostPGP>\tg\n"
+"B<PostIspell>\ti\n"
+"B<PostIgnore>\ti\n"
+"B<PostMail>\tm\n"
+"B<PostPostpone>\to\n"
+"B<PostPost>\tp\ty\n"
+"B<PostSupersede>\ts\n"
+"B<PostSend>\ts\ty\n"
+
+# type: Plain text
+#: ../tin.5:996
+#, no-wrap
+msgid ""
+"B<PostponeOverride>\tY\n"
+"B<PostponeAll>\tA\n"
+msgstr ""
+"B<PostponeOverride>\tY\n"
+"B<PostponeAll>\tA\n"
+
+# type: Plain text
+#: ../tin.5:999
+#, no-wrap
+msgid ""
+"B<PromptYes>\ty\tY\n"
+"B<PromptNo>\tn\tN\n"
+msgstr ""
+"B<PromptYes>\ty\tY\n"
+"B<PromptNo>\tn\tN\n"
+
+# type: Plain text
+#: ../tin.5:1002
+#, no-wrap
+msgid ""
+"B<SaveAppendFile>\ta\n"
+"B<SaveOverwriteFile>\to\n"
+msgstr ""
+"B<SaveAppendFile>\ta\n"
+"B<SaveOverwriteFile>\to\n"
+
+# type: Plain text
+#: ../tin.5:1006
+#, no-wrap
+msgid ""
+"B<PProcNone>\tn\n"
+"B<PProcShar>\ts\n"
+"B<PProcYes>\ty\n"
+msgstr ""
+"B<PProcNone>\tn\n"
+"B<PProcShar>\ts\n"
+"B<PProcYes>\ty\n"
+
+# type: Plain text
+#: ../tin.5:1024
+#, no-wrap
+msgid ""
+"B<SelectEnterNextUnreadGrp>\tTAB\tn\n"
+"B<SelectReadGrp>\t^J\t^M\n"
+"B<SelectResetNewsrc>\t^R\n"
+"B<SelectSortActive>\t.\n"
+"B<SelectNextUnreadGrp>\tN\n"
+"B<SelectSubscribePat>\tS\n"
+"B<SelectUnsubscribePat>\tU\n"
+"B<SelectQuitNoWrite>\tX\n"
+"B<SelectSyncWithActive>\tY\n"
+"B<SelectToggleDescriptions>\td\n"
+"B<SelectGoto>\tg\n"
+"B<SelectMoveGrp>\tm\n"
+"B<SelectToggleReadDisplay>\tr\n"
+"B<SelectSubscribe>\ts\n"
+"B<SelectUnsubscribe>\tu\n"
+"B<SelectYankActive>\ty\n"
+"B<SelectMarkGrpUnread>\tz\tZ\n"
+msgstr ""
+"B<SelectEnterNextUnreadGrp>\tTAB\tn\n"
+"B<SelectReadGrp>\t^J\t^M\n"
+"B<SelectResetNewsrc>\t^R\n"
+"B<SelectSortActive>\t.\n"
+"B<SelectNextUnreadGrp>\tN\n"
+"B<SelectSubscribePat>\tS\n"
+"B<SelectUnsubscribePat>\tU\n"
+"B<SelectQuitNoWrite>\tX\n"
+"B<SelectSyncWithActive>\tY\n"
+"B<SelectToggleDescriptions>\td\n"
+"B<SelectGoto>\tg\n"
+"B<SelectMoveGrp>\tm\n"
+"B<SelectToggleReadDisplay>\tr\n"
+"B<SelectSubscribe>\ts\n"
+"B<SelectUnsubscribe>\tu\n"
+"B<SelectYankActive>\ty\n"
+"B<SelectMarkGrpUnread>\tz\tZ\n"
+
+# type: Plain text
+#: ../tin.5:1031
+#, no-wrap
+msgid ""
+"B<ScopeSelect>\t^J\t^M\n"
+"B<ScopeEditAttributesFile>\tE\n"
+"B<ScopeAdd>\ta\n"
+"B<ScopeDelete>\td\n"
+"B<ScopeMove>\tm\n"
+"B<ScopeRename>\tr\n"
+msgstr ""
+"B<ScopeSelect>\t^J\t^M\n"
+"B<ScopeEditAttributesFile>\tE\n"
+"B<ScopeAdd>\ta\n"
+"B<ScopeDelete>\td\n"
+"B<ScopeMove>\tm\n"
+"B<ScopeRename>\tr\n"
+
+# type: Plain text
+#: ../tin.5:1046
+#, no-wrap
+msgid ""
+"B<ThreadReadNextArtOrThread>\tTAB\n"
+"B<ThreadReadArt>\t^J\t^M\n"
+"B<ThreadSelArt>\t*\n"
+"B<ThreadToggleArtSel>\t.\n"
+"B<ThreadReverseSel>\t@\n"
+"B<ThreadCancel>\tD\n"
+"B<ThreadMarkArtRead>\tK\n"
+"B<ThreadAutoSave>\tS\n"
+"B<ThreadUntag>\tU\n"
+"B<ThreadToggleSubjDisplay>\td\n"
+"B<ThreadMail>\tm\n"
+"B<ThreadSave>\ts\n"
+"B<ThreadTag>\tt\n"
+"B<ThreadUndoSel>\t~\n"
+msgstr ""
+"B<ThreadReadNextArtOrThread>\tTAB\n"
+"B<ThreadReadArt>\t^J\t^M\n"
+"B<ThreadSelArt>\t*\n"
+"B<ThreadToggleArtSel>\t.\n"
+"B<ThreadReverseSel>\t@\n"
+"B<ThreadCancel>\tD\n"
+"B<ThreadMarkArtRead>\tK\n"
+"B<ThreadAutoSave>\tS\n"
+"B<ThreadUntag>\tU\n"
+"B<ThreadToggleSubjDisplay>\td\n"
+"B<ThreadMail>\tm\n"
+"B<ThreadSave>\ts\n"
+"B<ThreadTag>\tt\n"
+"B<ThreadUndoSel>\t~\n"
+
+# type: Plain text
+#: ../tin.5:1048
+#, no-wrap
+msgid "B<UrlSelect>\t^J\t^M\n"
+msgstr "B<UrlSelect>\t^J\t^M\n"
+
+# type: Plain text
+#: ../tin.5:1059
+msgid ""
+"This file provides short descriptions of each mailgroup. (requires B<tin>"
+"(1)  to be build with mh-mail-handling support). Each line consist of two "
+"tab-separated fields \"I<mailgroupname> I<one-line description>\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1059
+#, no-wrap
+msgid "B<mailgroupname>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1062 ../tin.5:1133 ../tin.5:2393 ../tin.5:2446 ../tin.5:2473
+msgid "is the name of the newsgroup"
+msgstr "ist der Name der Newsgruppe"
+
+# type: Plain text
+#: ../tin.5:1065 ../tin.5:1136 ../tin.5:2476
+msgid "is a short single-line description of the group"
+msgstr "ist die zugehörige Kurzbeschreibung"
+
+# type: Plain text
+#: ../tin.5:1073
+msgid ""
+"\"I<nntpserver> I<newsrc> [I<shortname> [I<...>]]\" pairs to use with the "
+"''B<-g>'' command-line switch."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1076
+#, no-wrap
+msgid "B<newsrc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1079
+msgid "related newsrc."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1079
+#, no-wrap
+msgid "B<shortname>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1082
+msgid "nickname(s) for the nntpserver."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1086
+msgid "# sample newsrctable file"
+msgstr "# Beispiel newsrctable-Datei"
+
+# type: Plain text
+#: ../tin.5:1088
+msgid "news.tin.org .newsrc-tin.org tinorg"
+msgstr "news.tin.org .newsrc-tin.org tinorg"
+
+# type: Plain text
+#: ../tin.5:1090
+msgid "news.example.org /tmp/nrc-ex example ex"
+msgstr "news.example.org /tmp/nrc-ex example ex"
+
+# type: Plain text
+#: ../tin.5:1098
+msgid "posting history"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1108
+msgid ""
+"Copy of all posted articles in B<mbox>(5)  format. The filename can be "
+"changed by setting B<posted_articles_file>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1117
+msgid "Pool of postponed articles. This file is in B<mbox>(5)  format."
+msgstr ""
+"Vorrat an zurückgestellten Artikeln. Diese Datei benutzt das B<mbox>(5) "
+"Format."
+
+# type: Plain text
+#: ../tin.5:1122
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+
+# type: Plain text
+#: ../tin.5:1130
+msgid ""
+"This file a copy of the servers newsgroups file which provides short "
+"descriptions of each newsgroup. It is automatically updated on startup "
+"except when using the ''B<-X>''or ''B<-q>'' command-line option and an old "
+"copy exists. Each line consist of two tab-separated fields \"I<group.name>"
+"\tI<one-line description>\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1130 ../tin.5:2470
+#, no-wrap
+msgid "B<group.name>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1133 ../tin.5:2473
+#, no-wrap
+msgid "B<one-line description>"
+msgstr "B<Kurzbeschreibung>"
+
+# type: Plain text
+#: ../tin.5:1142
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+
+# type: Plain text
+#: ../tin.5:1149
+msgid ""
+"File to store $B<NNTPSERVER> and $B<NNTPPORT> related data via a list of "
+"\"I<variable>=I<value>\" pairs. Currently there are only two variables, both "
+"are not meant to be changed by the user."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1149
+#, no-wrap
+msgid "B<version>"
+msgstr "B<version>"
+
+# type: Plain text
+#: ../tin.5:1152
+msgid "Internal version number."
+msgstr "Interne Versionsnummer."
+
+# type: TP
+#: ../tin.5:1152
+#, no-wrap
+msgid "B<last_newnews>"
+msgstr "B<last_newnews>"
+
+# type: Plain text
+#: ../tin.5:1157
+msgid ""
+"Internal timestamp used by B<tin>(1)  to keep track of new newsgroups on the "
+"server."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1179
+msgid ""
+"At startup, B<tin>(1)  reads in the configuration file. This contains a list "
+"of \"I<variable>=I<value>\" pairs that can be used to configure the way "
+"B<tin>(1)  works. If it exists, the global configuration file, I<"
+"${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> is read first. After that, the user's own "
+"configuration file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> is read.  The "
+"global file is useful for distributing system-wide defaults to new users who "
+"have no private tinrc yet (see also B</etc/tin/tin.defaults>)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1179
+#, no-wrap
+msgid "B<abbreviate_groupname>"
+msgstr "B<abbreviate_groupname>"
+
+# type: TP
+#: ../tin.5:1195
+#, no-wrap
+msgid "B<art_marked_deleted>"
+msgstr "B<art_marked_deleted>"
+
+# type: TP
+#: ../tin.5:1198
+#, no-wrap
+msgid "B<art_marked_inrange>"
+msgstr "B<art_marked_inrange>"
+
+# type: TP
+#: ../tin.5:1201
+#, no-wrap
+msgid "B<art_marked_return>"
+msgstr "B<art_marked_return>"
+
+# type: TP
+#: ../tin.5:1205
+#, no-wrap
+msgid "B<art_marked_selected>"
+msgstr "B<art_marked_selected>"
+
+# type: TP
+#: ../tin.5:1209
+#, no-wrap
+msgid "B<art_marked_recent>"
+msgstr "B<art_marked_recent>"
+
+# type: TP
+#: ../tin.5:1213
+#, no-wrap
+msgid "B<art_marked_unread>"
+msgstr "B<art_marked_unread>"
+
+# type: Plain text
+#: ../tin.5:1217
+msgid ""
+"The character used to show that an article has not been read.  Default is "
+"'+'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1217
+#, no-wrap
+msgid "B<art_marked_read>"
+msgstr "B<art_marked_read>"
+
+# type: TP
+#: ../tin.5:1220
+#, no-wrap
+msgid "B<art_marked_killed>"
+msgstr "B<art_marked_killed>"
+
+# type: TP
+#: ../tin.5:1224
+#, no-wrap
+msgid "B<art_marked_read_selected>"
+msgstr "B<art_marked_read_selected>"
+
+# type: Plain text
+#: ../tin.5:1235
+msgid ""
+"If ON B<tin>(1)  will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1243
+#, no-wrap
+msgid "B<auto_reconnect>"
+msgstr "B<auto_reconnect>"
+
+# type: Plain text
+#: ../tin.5:1246
+msgid "Reconnect to server automatically. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1257
+#, no-wrap
+msgid "B<beginner_level>"
+msgstr "B<beginner_level>"
+
+# type: TP
+#: ../tin.5:1262
+#, no-wrap
+msgid "B<cache_overview_files>"
+msgstr "B<cache_overview_files>"
+
+# type: Plain text
+#: ../tin.5:1267
+msgid ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1267
+#, no-wrap
+msgid "B<catchup_read_groups>"
+msgstr "B<catchup_read_groups>"
+
+# type: TP
+#: ../tin.5:1271
+#, no-wrap
+msgid "B<col_back>"
+msgstr "B<col_back>"
+
+# type: TP
+#: ../tin.5:1274
+#, no-wrap
+msgid "B<col_from>"
+msgstr "B<col_from>"
+
+# type: TP
+#: ../tin.5:1277
+#, no-wrap
+msgid "B<col_head>"
+msgstr "B<col_head>"
+
+# type: TP
+#: ../tin.5:1280
+#, no-wrap
+msgid "B<col_help>"
+msgstr "B<col_help>"
+
+# type: TP
+#: ../tin.5:1283
+#, no-wrap
+msgid "B<col_invers_bg>"
+msgstr "B<col_invers_bg>"
+
+# type: TP
+#: ../tin.5:1286
+#, no-wrap
+msgid "B<col_invers_fg>"
+msgstr "B<col_invers_fg>"
+
+# type: TP
+#: ../tin.5:1289
+#, no-wrap
+msgid "B<col_markdash>"
+msgstr "B<col_markdash>"
+
+# type: TP
+#: ../tin.5:1293
+#, no-wrap
+msgid "B<col_markslash>"
+msgstr "B<col_markslash>"
+
+# type: TP
+#: ../tin.5:1297
+#, no-wrap
+msgid "B<col_markstar>"
+msgstr "B<col_markstar>"
+
+# type: TP
+#: ../tin.5:1301
+#, no-wrap
+msgid "B<col_markstroke>"
+msgstr "B<col_markstroke>"
+
+# type: TP
+#: ../tin.5:1305
+#, no-wrap
+msgid "B<col_minihelp>"
+msgstr "B<col_minihelp>"
+
+# type: TP
+#: ../tin.5:1308
+#, no-wrap
+msgid "B<col_newsheaders>"
+msgstr "B<col_newsheaders>"
+
+# type: TP
+#: ../tin.5:1311
+#, no-wrap
+msgid "B<col_normal>"
+msgstr "B<col_normal>"
+
+# type: TP
+#: ../tin.5:1314
+#, no-wrap
+msgid "B<col_quote>"
+msgstr "B<col_quote>"
+
+# type: TP
+#: ../tin.5:1317
+#, no-wrap
+msgid "B<col_quote2>"
+msgstr "B<col_quote2>"
+
+# type: TP
+#: ../tin.5:1320
+#, no-wrap
+msgid "B<col_quote3>"
+msgstr "B<col_quote3>"
+
+# type: TP
+#: ../tin.5:1323
+#, no-wrap
+msgid "B<col_response>"
+msgstr "B<col_response>"
+
+# type: Plain text
+#: ../tin.5:1327
+msgid ""
+"Color of response counter. This is the text that says 'Response x of y' in "
+"the article viewer."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1327
+#, no-wrap
+msgid "B<col_signature>"
+msgstr "B<col_signature>"
+
+# type: TP
+#: ../tin.5:1330
+#, no-wrap
+msgid "B<col_urls>"
+msgstr "B<col_urls>"
+
+# type: TP
+#: ../tin.5:1333
+#, no-wrap
+msgid "B<col_verbatim>"
+msgstr "B<col_verbatim>"
+
+# type: TP
+#: ../tin.5:1336
+#, no-wrap
+msgid "B<col_subject>"
+msgstr "B<col_subject>"
+
+# type: TP
+#: ../tin.5:1339
+#, no-wrap
+msgid "B<col_text>"
+msgstr "B<col_text>"
+
+# type: TP
+#: ../tin.5:1342
+#, no-wrap
+msgid "B<col_title>"
+msgstr "B<col_title>"
+
+# type: TP
+#: ../tin.5:1345
+#, no-wrap
+msgid "B<confirm_choice>"
+msgstr "B<confirm_choice>"
+
+# type: Plain text
+#: ../tin.5:1349
+msgid ""
+"B<tin>(1)  can ask for manual confirmation to protect the user. Available "
+"choices:"
+msgstr ""
+
+# type: Plain text
+#.  TODO: check if all affected commands are marked [after confirmation]
+#: ../tin.5:1355
+msgid ""
+"B<commands:> Ask for confirmation before executing certain dangerous "
+"commands (e.g., B<Catchup> ('B<c>')). Commands that this affects are marked "
+"in this manual with '[after confirmation]'."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1360
+msgid ""
+"B<quit:> You'll be asked to confirm that you wish to exit B<tin>(1)  when "
+"you use the B<Quit> ('B<q>') command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1364
+msgid ""
+"B<select:> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1366
+msgid "Default is commands & quit."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1377
+msgid ""
+"Format string used for date representation. A description of the different "
+"format options can be found at B<strftime>(3).  B<tin>(1)  uses B<strftime>"
+"(3)  when available and supports most format options in his fallback code.  "
+"Default is \"%a, %d %b %Y %H:%M:%S\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1377
+#, no-wrap
+msgid "B<default_art_search>"
+msgstr "B<default_art_search>"
+
+# type: TP
+#: ../tin.5:1379
+#, no-wrap
+msgid "B<default_author_search>"
+msgstr "B<default_author_search>"
+
+# type: TP
+#: ../tin.5:1381
+#, no-wrap
+msgid "B<default_config_search>"
+msgstr "B<default_config_search>"
+
+# type: TP
+#: ../tin.5:1384
+#, no-wrap
+msgid "B<default_filter_days>"
+msgstr "B<default_filter_days>"
+
+# type: TP
+#: ../tin.5:1387
+#, no-wrap
+msgid "B<default_filter_kill_case>"
+msgstr "B<default_filter_kill_case>"
+
+# type: Plain text
+#: ../tin.5:1391
+msgid ""
+"Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1391
+#, no-wrap
+msgid "B<default_filter_kill_expire>"
+msgstr "B<default_filter_kill_expire>"
+
+# type: Plain text
+#: ../tin.5:1395
+msgid ""
+"Default for quick (1 key) kill filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1395
+#, no-wrap
+msgid "B<default_filter_kill_global>"
+msgstr "B<default_filter_kill_global>"
+
+# type: Plain text
+#: ../tin.5:1399
+msgid ""
+"Default for quick (1 key) kill filter global. ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1399
+#, no-wrap
+msgid "B<default_filter_kill_header>"
+msgstr "B<default_filter_kill_header>"
+
+# type: ta
+#: ../tin.5:1404 ../tin.5:1432
+#, no-wrap
+msgid "\\w'0,1   'u +\\w'\\'\\'Message-ID:\\'\\' & last \\'\\'References:\\'\\' entry only'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1413 ../tin.5:1441
+#, no-wrap
+msgid ""
+"0\t''Subject:'' (case sensitive)\n"
+"1\t''Subject:'' (ignore case)\n"
+"2\t''From:'' (case sensitive)\n"
+"3\t''From:'' (ignore case)\n"
+"4\t''Message-ID:'' & full ''References:'' line\n"
+"5\t''Message-ID:'' & last ''References:'' entry only\n"
+"6\t''Message-ID:'' entry only\n"
+"7\t''Lines:''\n"
+msgstr ""
+"0\t''Subject:'' (Groß/Kleinschreibung beachten)\n"
+"1\t''Subject:'' (Groß/Kleinschreibung ignorieren)\n"
+"2\t''From:'' (Groß/Kleinschreibung beachten)\n"
+"3\t''From:'' (Groß/Kleinschreibung ignorieren)\n"
+"4\t''Message-ID:'' & alle ''References:'' Einträge\n"
+"5\t''Message-ID:'' & letzter ''References:'' Eintrag\n"
+"6\t''Message-ID:'' allein\n"
+"7\t''Lines:''\n"
+
+# type: TP
+#: ../tin.5:1415
+#, no-wrap
+msgid "B<default_filter_select_case>"
+msgstr "B<default_filter_select_case>"
+
+# type: TP
+#: ../tin.5:1419
+#, no-wrap
+msgid "B<default_filter_select_expire>"
+msgstr "B<default_filter_select_expire>"
+
+# type: Plain text
+#: ../tin.5:1423
+msgid ""
+"Default for quick (1 key) auto-selection filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1423
+#, no-wrap
+msgid "B<default_filter_select_global>"
+msgstr "B<default_filter_select_global>"
+
+# type: Plain text
+#: ../tin.5:1427
+msgid ""
+"Default for quick (1 key) auto-selection filter global. ON=apply to all "
+"groups, OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1427
+#, no-wrap
+msgid "B<default_filter_select_header>"
+msgstr "B<default_filter_select_header>"
+
+# type: TP
+#: ../tin.5:1443
+#, no-wrap
+msgid "B<default_goto_group>"
+msgstr "B<default_goto_group>"
+
+# type: TP
+#: ../tin.5:1445
+#, no-wrap
+msgid "B<default_group_search>"
+msgstr "B<default_group_search>"
+
+# type: TP
+#: ../tin.5:1447
+#, no-wrap
+msgid "B<default_mail_address>"
+msgstr "B<default_mail_address>"
+
+# type: TP
+#: ../tin.5:1449
+#, no-wrap
+msgid "B<default_move_group>"
+msgstr "B<default_move_group>"
+
+# type: TP
+#: ../tin.5:1451
+#, no-wrap
+msgid "B<default_pattern>"
+msgstr "B<default_pattern>"
+
+# type: TP
+#: ../tin.5:1453
+#, no-wrap
+msgid "B<default_pipe_command>"
+msgstr "B<default_pipe_command>"
+
+# type: TP
+#: ../tin.5:1455
+#, no-wrap
+msgid "B<default_post_newsgroups>"
+msgstr "B<default_post_newsgroups>"
+
+# type: TP
+#: ../tin.5:1457
+#, no-wrap
+msgid "B<default_post_subject>"
+msgstr "B<default_post_subject>"
+
+# type: TP
+#: ../tin.5:1459
+#, no-wrap
+msgid "B<default_range_group>"
+msgstr "B<default_range_group>"
+
+# type: TP
+#: ../tin.5:1461
+#, no-wrap
+msgid "B<default_range_select>"
+msgstr "B<default_range_select>"
+
+# type: TP
+#: ../tin.5:1463
+#, no-wrap
+msgid "B<default_range_thread>"
+msgstr "B<default_range_thread>"
+
+# type: TP
+#: ../tin.5:1465
+#, no-wrap
+msgid "B<default_repost_group>"
+msgstr "B<default_repost_group>"
+
+# type: TP
+#: ../tin.5:1467
+#, no-wrap
+msgid "B<default_save_file>"
+msgstr "B<default_save_file>"
+
+# type: TP
+#: ../tin.5:1469
+#, no-wrap
+msgid "B<default_save_mode>"
+msgstr "B<default_save_mode>"
+
+# type: TP
+#: ../tin.5:1471
+#, no-wrap
+msgid "B<default_select_pattern>"
+msgstr "B<default_select_pattern>"
+
+# type: TP
+#: ../tin.5:1473
+#, no-wrap
+msgid "B<default_shell_command>"
+msgstr "B<default_shell_command>"
+
+# type: TP
+#: ../tin.5:1475
+#, no-wrap
+msgid "B<default_subject_search>"
+msgstr "B<default_subject_search>"
+
+# type: TP
+#: ../tin.5:1477
+#, no-wrap
+msgid "B<draw_arrow>"
+msgstr "B<draw_arrow>"
+
+# type: Plain text
+#: ../tin.5:1481
+msgid ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1486
+msgid ""
+"The format string used to create the editor start command with parameters.  "
+"Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename (e.g., /"
+"bin/vi +7 .article)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1486
+#, no-wrap
+msgid "B<force_screen_redraw>"
+msgstr "B<force_screen_redraw>"
+
+# type: TP
+#: ../tin.5:1490
+#, no-wrap
+msgid "B<getart_limit>"
+msgstr "B<getart_limit>"
+
+# type: Plain text
+#: ../tin.5:1497
+msgid ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin>(1)  will "
+"start fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1497
+#, no-wrap
+msgid "B<goto_next_unread>"
+msgstr "B<goto_next_unread>"
+
+# type: TP
+#: ../tin.5:1508
+#, no-wrap
+msgid "B<groupname_max_length>"
+msgstr "B<groupname_max_length>"
+
+# type: TP
+#: ../tin.5:1512
+#, no-wrap
+msgid "B<hide_uue>"
+msgstr "B<hide_uue>"
+
+# type: Plain text
+#: ../tin.5:1522
+msgid ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment).  If set to 'Hide "
+"all' then any line that looks like uuencoded data will be folded into a tag "
+"line. This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer.  Default is 'No'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1522
+#, no-wrap
+msgid "B<inews_prog>"
+msgstr "B<inews_prog>"
+
+# type: Plain text
+#: ../tin.5:1529
+msgid ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is \"--internal\" (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1529
+#, no-wrap
+msgid "B<info_in_last_line>"
+msgstr "B<info_in_last_line>"
+
+# type: Plain text
+#: ../tin.5:1535
+msgid ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>' toggles "
+"setting). This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1535
+#, no-wrap
+msgid "B<interactive_mailer>"
+msgstr "B<interactive_mailer>"
+
+# type: Plain text
+#: ../tin.5:1541
+msgid ""
+"If greater than 0 your mailreader will be invoked earlier for reply so you "
+"can use more of its features (e.g. MIME, pgp, ...). 1 means include headers, "
+"2 means don't include headers (old use_mailreader_i=ON option). 0 turns off "
+"usage. This option has to suit B<mailer_format>. Default is 0."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1541
+#, no-wrap
+msgid "B<inverse_okay>"
+msgstr "B<inverse_okay>"
+
+# type: TP
+#: ../tin.5:1545
+#, no-wrap
+msgid "B<keep_dead_articles>"
+msgstr "B<keep_dead_articles>"
+
+# type: TP
+#: ../tin.5:1550
+#, no-wrap
+msgid "B<kill_level>"
+msgstr "B<kill_level>"
+
+# type: Plain text
+#: ../tin.5:1554
+msgid ""
+"This option controls the processing and display of articles that are killed. "
+"There are 3 options, default is 0 (B<Kill only unread arts>)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1562
+msgid ""
+"B<Kill only unread arts> is the 'traditional' behavior of B<tin>(1).  Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1578
+#, no-wrap
+msgid "B<mail_address>"
+msgstr "B<mail_address>"
+
+# type: TP
+#: ../tin.5:1588
+#, no-wrap
+msgid "B<mail_quote_format>"
+msgstr "B<mail_quote_format>"
+
+# type: TP
+#: ../tin.5:1593
+#, no-wrap
+msgid "B<mailbox_format>"
+msgstr "B<mailbox_format>"
+
+# type: Plain text
+#: ../tin.5:1601
+msgid ""
+"Select one of the following mailbox-formats: MBOXO (default, except on SCO), "
+"MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on MBOXO "
+"and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1610
+msgid ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  format. "
+"This feature is mainly for use with the B<elm>(1)  mail program. It allows "
+"the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1610
+#, no-wrap
+msgid "B<mailer_format>"
+msgstr "B<mailer_format>"
+
+# type: Plain text
+#: ../tin.5:1616
+msgid ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %"
+"F' (e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows "
+"other mailers with different command line parameters to be used such as"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1621
+#, no-wrap
+msgid ""
+"sendmail -oem -t E<lt> %F\n"
+"elm -s \"%S\" \"%T\" E<lt> \"%F\"\n"
+"claws-mail --compose \"mailto:%T?subject=%S&insert=%F\"\n"
+msgstr ""
+"sendmail -oem -t E<lt> %F\n"
+"elm -s \"%S\" \"%T\" E<lt> \"%F\"\n"
+"claws-mail --compose \"mailto:%T?subject=%S&insert=%F\"\n"
+
+# type: Plain text
+#: ../tin.5:1625
+msgid ""
+"B<interactive_mailer> must be set adequate. The following substitutions are "
+"supported:"
+msgstr ""
+"B<interactive_mailer> muss passend dazu gesetzt sein. Folgende Ersetzungen "
+"werden unterstützt:"
+
+# type: ta
+#: ../tin.5:1627
+#, no-wrap
+msgid "\\w'%S'u +\\w'subject-field'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1634
+#, no-wrap
+msgid ""
+"%F\tfilename\n"
+"%M\tdefault_mailer\n"
+"%S\tsubject-field\n"
+"%T\tto-filed\n"
+"%U\tusername\n"
+"%%\t%\n"
+msgstr ""
+"%F\tDateiname\n"
+"%M\tdefault_mailer\n"
+"%S\tSubject-Feld\n"
+"%T\tTo-Feld\n"
+"%U\tUsername\n"
+"%%\t%\n"
+
+# type: TP
+#: ../tin.5:1647
+#, no-wrap
+msgid "B<metamail_prog>"
+msgstr "B<metamail_prog>"
+
+# type: Plain text
+#: ../tin.5:1659
+msgid ""
+"Path, name and options of external B<metamail>(1)  program used to view non-"
+"textual parts of articles.  To use the built-in viewer, set to --internal. "
+"This is the default value when B<metamail>(1)  is not installed. Leave it "
+"blank if you don't want any automatic viewing of non-textual attachments. "
+"The 'V' command can always be used to manually view any attachments. See "
+"also B<ask_for_metamail>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1659 ../tin.5:2299
+#, no-wrap
+msgid "B<mm_charset>"
+msgstr "B<mm_charset>"
+
+# type: Plain text
+#: ../tin.5:1672
+msgid ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at the compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1683
+msgid ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead.  B<mm_network_charset> is limited to one of the "
+"following charsets:"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1692
+#, no-wrap
+msgid "B<mono_markdash>"
+msgstr "B<mono_markdash>"
+
+# type: Plain text
+#: ../tin.5:1697
+msgid ""
+"Character attribute of words emphasized like _this_. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1697
+#, no-wrap
+msgid "B<mono_markslash>"
+msgstr "B<mono_markslash>"
+
+# type: Plain text
+#: ../tin.5:1702
+msgid ""
+"Character attribute of words emphasized like /this/. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1702
+#, no-wrap
+msgid "B<mono_markstar>"
+msgstr "B<mono_markstar>"
+
+# type: Plain text
+#: ../tin.5:1707
+msgid ""
+"Character attribute of words emphasized like *this*. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1707
+#, no-wrap
+msgid "B<mono_markstroke>"
+msgstr "B<mono_markstroke>"
+
+# type: Plain text
+#: ../tin.5:1712
+msgid ""
+"Character attribute of words emphasized like -this-. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1712
+#, no-wrap
+msgid "B<newnews>"
+msgstr "B<newnews>"
+
+# type: Plain text
+#: ../tin.5:1718
+msgid ""
+"These are internal timers used by B<tin>(1)  to keep track of new "
+"newsgroups. Do not change them unless you understand what they are for."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1725
+msgid ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used. If "
+"you enter 'X-' as the value, you will see all headers beginning with "
+"'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1734
+msgid ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought 'X-' headers were A "
+"Good Thing(tm), but thought Alan and Pape were miscreants... well then you "
+"would do something like this: B<news_headers_to_display=X-> "
+"B<news_headers_to_not_display=X-Alan X-Pape> Not defining anything turns off "
+"this option."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1739
+#, no-wrap
+msgid "B<normalization_form>"
+msgstr "B<normalization_form>"
+
+# type: Plain text
+#: ../tin.5:1743
+msgid ""
+"The normalization form which should be used to normalize unicode input.  The "
+"possible values are:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1759
+msgid ""
+"Some normalization modes are only available if they are supported by the "
+"library B<tin>(1)  uses to do the normalization. Default is NFKC."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1763
+msgid ""
+"If ON put cursor at first unread article in group otherwise at last "
+"article.  Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1779
+msgid ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding.  "
+"base64 and quoted-printable are usually undesired on usenet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1786
+msgid ""
+"If ON, then B<tin>(1)  will start an appropriate viewer program to display "
+"any files that were post processed and uudecoded. The program is determined "
+"using the mailcap file.  Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1792
+msgid ""
+"This specifies whether to perform post processing on saved articles.  "
+"Because the shell archive may contain commands you may not want to be "
+"executed, be careful when extracting shell archives.  The following values "
+"are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1800
+msgid ""
+"B<Shell archives>, unpacking of multi-part B<shar>(1)  files only. Because "
+"the shell archive may contain commands you may not want to be executed, be "
+"careful with this option."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1803
+#, no-wrap
+msgid "B<posted_articles_file>"
+msgstr "B<posted_articles_file>"
+
+# type: TP
+#: ../tin.5:1813
+#, no-wrap
+msgid "B<printer>"
+msgstr "B<printer>"
+
+# type: Plain text
+#: ../tin.5:1823
+msgid ""
+"The printer program with options that is to be used to print articles. The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV machines. "
+"Printing from B<tin>(1)  may have been disabled by the System Administrator."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1831
+msgid ""
+"If ON show empty ''Followup-To:'' header when editing an article.  Default "
+"is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1837
+#, no-wrap
+msgid "B<quote_style>"
+msgstr "B<quote_style>"
+
+# type: Plain text
+#: ../tin.5:1843
+msgid ""
+"This bit coded integer value controls how articles are to be quoted when "
+"following up or replying to them. Any of the following options can be "
+"combined by adding all relevant values. Default is 5, which means that quote "
+"characters are compressed and empty lines are quoted."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1848
+msgid ""
+"B<Compress quotes> Compress quote characters together when quoting multiple "
+"times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). This option is on by default."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1854
+msgid ""
+"B<Quote Signatures> This option is off by default. Signatures are always "
+"quoted regardless of this option when you are viewing an article in raw mode "
+"B<PageToggleRaw> ('B<^H>') and followup or reply to it. Signatures are never "
+"quoted regardless of this option when B<show_signatures> is off."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1856
+msgid "B<Quote empty lines> This option is on by default."
+msgstr "B<Leerzeilen zitieren> Diese Option ist standardmäßig aktiviert."
+
+# type: TP
+#: ../tin.5:1857
+#, no-wrap
+msgid "B<quote_regex>"
+msgstr "B<quote_regex>"
+
+# type: Plain text
+#: ../tin.5:1864
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1864
+#, no-wrap
+msgid "B<quote_regex2>"
+msgstr "B<quote_regex2>"
+
+# type: Plain text
+#: ../tin.5:1871
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1871
+#, no-wrap
+msgid "B<quote_regex3>"
+msgstr "B<quote_regex3>"
+
+# type: Plain text
+#: ../tin.5:1878
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1878
+#, no-wrap
+msgid "B<recent_time>"
+msgstr "B<recent_time>"
+
+# type: TP
+#: ../tin.5:1882
+#, no-wrap
+msgid "B<render_bidi>"
+msgstr "B<render_bidi>"
+
+# type: TP
+#: ../tin.5:1886
+#, no-wrap
+msgid "B<reread_active_file_secs>"
+msgstr "B<reread_active_file_secs>"
+
+# type: TP
+#: ../tin.5:1895
+#, no-wrap
+msgid "B<score_limit_kill>"
+msgstr "B<score_limit_kill>"
+
+# type: TP
+#: ../tin.5:1899
+#, no-wrap
+msgid "B<score_limit_select>"
+msgstr "B<score_limit_select>"
+
+# type: TP
+#: ../tin.5:1903
+#, no-wrap
+msgid "B<score_kill>"
+msgstr "B<score_kill>"
+
+# type: TP
+#: ../tin.5:1907
+#, no-wrap
+msgid "B<score_select>"
+msgstr "B<score_select>"
+
+# type: TP
+#: ../tin.5:1911
+#, no-wrap
+msgid "B<scroll_lines>"
+msgstr "B<scroll_lines>"
+
+# type: Plain text
+#: ../tin.5:1919
+msgid ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional page-by-page scrolling. Set to -1 to get page-by-page scrolling "
+"where the top/bottom line is carried over onto the next page.  This setting "
+"supersedes show_last_line_prev_page=ON. Set to -2 to get half-page "
+"scrolling. This setting supersedes full_page_scroll=OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1936
+#, no-wrap
+msgid "B<show_description>"
+msgstr "B<show_description>"
+
+# type: Plain text
+#: ../tin.5:1945
+msgid ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/newsgroups> file and if supported (requires B<tin>(1)  to be "
+"build with mh-mail-handling support) from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"mailgroups> for mailgroups. Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1956
+msgid ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread)  article will be "
+"displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1967
+msgid ""
+"If ON show only new/unread articles otherwise show all articles. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1967
+#, no-wrap
+msgid "B<show_only_unread_groups>"
+msgstr "B<show_only_unread_groups>"
+
+# type: Plain text
+#: ../tin.5:1974
+msgid "If OFF don't show signatures when displaying articles. Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1988
+msgid ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified directory. "
+"If the path starts with a ! the program the path points to will be executed "
+"to generate a signature.  B<tin>(1)  will pass the name of the current "
+"newsgroup as argument to the program. --none will suppress any signature.  "
+"Default is I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1991
+#, no-wrap
+msgid "B<slashes_regex>"
+msgstr "B<slashes_regex>"
+
+# type: Plain text
+#: ../tin.5:1998
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2044
+#, no-wrap
+msgid "B<spamtrap_warning_addresses>"
+msgstr "B<spamtrap_warning_addresses>"
+
+# type: Plain text
+#: ../tin.5:2049
+msgid ""
+"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 "
+"these strings. The matching is case-insensitive."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2049
+#, no-wrap
+msgid "B<stars_regex>"
+msgstr "B<stars_regex>"
+
+# type: Plain text
+#: ../tin.5:2056
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2061
+#, no-wrap
+msgid "B<strip_blanks>"
+msgstr "B<strip_blanks>"
+
+# type: TP
+#: ../tin.5:2065
+#, no-wrap
+msgid "B<strip_bogus>"
+msgstr "B<strip_bogus>"
+
+# type: TP
+#: ../tin.5:2073
+#, no-wrap
+msgid "B<strip_newsrc>"
+msgstr "B<strip_newsrc>"
+
+# type: TP
+#: ../tin.5:2077
+#, no-wrap
+msgid "B<strokes_regex>"
+msgstr "B<strokes_regex>"
+
+# type: Plain text
+#: ../tin.5:2084
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2089
+msgid ""
+"Decode German style TeX umlaut codes to ISO If ON, show \"a as Umlaut-a, "
+"etc. Default is OFF. This behavior can also be toggled in the article viewer "
+"via B<PageToggleTex2iso> ('B<\">')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2099
+msgid ""
+"Defines which threading method to use. The choices are: 0) Don't thread, 1) "
+"Thread on Subject only 2) Thread on References only, 3) Thread on References "
+"then Subject (default)  4) Thread multipart articles on Subject.  5) Thread "
+"on Percentage Match of the Subjects It's also possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_articles> to 0 - 5 in the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"attributes>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2104
+msgid ""
+"Defines how close the subjects must match while threading by Percentage "
+"Match for threads to be considered part of a single thread. This value is in "
+"the range 0 to 100. The default is 75."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2108
+#, no-wrap
+msgid "B<thread_score>"
+msgstr "B<thread_score>"
+
+# type: TP
+#: ../tin.5:2120
+#, no-wrap
+msgid "B<translit>"
+msgstr "B<translit>"
+
+# type: TP
+#: ../tin.5:2151
+#, no-wrap
+msgid "B<underscores_regex>"
+msgstr "B<underscores_regex>"
+
+# type: Plain text
+#: ../tin.5:2158
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<undescores_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2158
+#, no-wrap
+msgid "B<unlink_article>"
+msgstr "B<unlink_article>"
+
+# type: Plain text
+#: ../tin.5:2162
+msgid ""
+"If ON remove I<${TIN_HOMEDIR:-\"$HOME\"}/.article> after posting. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2162
+#, no-wrap
+msgid "B<url_handler>"
+msgstr "B<url_handler>"
+
+# type: Plain text
+#: ../tin.5:2167
+msgid ""
+"The program that will be run when launching URLs in the article viewer using "
+"B<PageViewUrl> ('B<U>'). The actual URL will be appended to this. Default is "
+"B<url_handler.pl %s>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2167
+#, no-wrap
+msgid "B<url_highlight>"
+msgstr "B<url_highlight>"
+
+# type: TP
+#: ../tin.5:2170
+#, no-wrap
+msgid "B<use_color>"
+msgstr "B<use_color>"
+
+# type: Plain text
+#: ../tin.5:2175
+msgid "If enabled B<tin>(1)  uses ANSI-colors. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2175
+#, no-wrap
+msgid "B<use_keypad>"
+msgstr "B<use_keypad>"
+
+# type: Plain text
+#: ../tin.5:2178
+msgid "Use scroll keys on keypad. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2178
+#, no-wrap
+msgid "B<use_mouse>"
+msgstr "B<use_mouse>"
+
+# type: TP
+#: ../tin.5:2184
+#, no-wrap
+msgid "B<use_slrnface>"
+msgstr "B<use_slrnface>"
+
+# type: Plain text
+#: ../tin.5:2196
+msgid ""
+"If enabled B<slrnface>(1)  will be used to interpret the ''X-Face:'' header. "
+"For this option to have any effect, B<tin>(1)  must be running in an B<xterm>"
+"(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2196
+#, no-wrap
+msgid "B<utf8_graphics>"
+msgstr "B<utf8_graphics>"
+
+# type: TP
+#: ../tin.5:2200
+#, no-wrap
+msgid "B<verbatim_begin_regex>"
+msgstr "B<verbatim_begin_regex>"
+
+# type: Plain text
+#: ../tin.5:2204
+msgid ""
+"A regular expression that tin will use to find the begin of a verbatim "
+"block.  Default is #v+"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2204
+#, no-wrap
+msgid "B<verbatim_end_regex>"
+msgstr "B<verbatim_end_regex>"
+
+# type: Plain text
+#: ../tin.5:2208
+msgid ""
+"A regular expression that tin will use to find the end of a verbatim block.  "
+"Default is #v-"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2212
+msgid "If ON verbatim blocks will be detected.  Default is ON"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2212
+#, no-wrap
+msgid "B<wildcard>"
+msgstr "B<wildcard>"
+
+# type: Plain text
+#: ../tin.5:2224
+msgid ""
+"Allows you to select how B<tin>(1)  matches strings. The default is 0 and "
+"uses the wildmat notation, which is how this has traditionally been handled. "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3).  You will probably want to update your filter file "
+"if you use this regularly. NB: Newsgroup names will always be matched using "
+"the wildmat notation."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2224
+#, no-wrap
+msgid "B<word_h_display_marks>"
+msgstr "B<word_h_display_marks>"
+
+# type: TP
+#: ../tin.5:2236
+#, no-wrap
+msgid "B<word_highlight>"
+msgstr "B<word_highlight>"
+
+# type: Plain text
+#: ../tin.5:2244
+msgid ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colors specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2244
+#, no-wrap
+msgid "B<wrap_column>"
+msgstr "B<wrap_column>"
+
+# type: TP
+#: ../tin.5:2260
+#, no-wrap
+msgid "B<xpost_quote_format>"
+msgstr "B<xpost_quote_format>"
+
+# type: Plain text
+#: ../tin.5:2276
+msgid ""
+"Yet another global configuration file with \"I<variable>=I<value>\" pairs. "
+"This one is for the more general options which usually can't be controlled "
+"via I<${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> and/or I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/tinrc> like resetting (to override the built-in default) the "
+"I<newslibdir>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2276
+#, no-wrap
+msgid "B<domainname>"
+msgstr "B<domainname>"
+
+# type: Plain text
+#: ../tin.5:2279
+msgid "Sets a global domain name used in From lines"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2283
+msgid ""
+"Defines the name of your organization. $B<ORGANIZATION> overrides any "
+"specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2283
+#, no-wrap
+msgid "B<newslibdir>"
+msgstr "B<newslibdir>"
+
+# type: Plain text
+#: ../tin.5:2288
+msgid ""
+"Defines the default place for some configuration files, common values are I</"
+"usr/lib/news>, I</var/lib/news>, I</usr/local/lib/news> or I</news/db>. "
+"$B<TIN_LIBDIR> overrides any specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2288
+#, no-wrap
+msgid "B<bugaddress>"
+msgstr "B<bugaddress>"
+
+# type: Plain text
+#: ../tin.5:2294
+msgid ""
+"Defines the email address to which users can send bug reports using a built-"
+"in function. The default points to a developers mailing list located at tin."
+"org. You might want to change this address to one of your local "
+"administration if you want to deal with your lusers problems on your own."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2294
+#, no-wrap
+msgid "B<inewsdir>"
+msgstr "B<inewsdir>"
+
+# type: Plain text
+#: ../tin.5:2299
+msgid "Defines the directory containing of the B<inews>(1)  executable"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2303
+msgid ""
+"Default charset to be used in MIME's ''Content-Type:'' header. "
+"$B<MM_CHARSET> overrides any specified value."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2306
+msgid ""
+"Default encoding scheme use in MIME articles. 8bit might be the best value."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2310
+msgid ""
+"Default encoding scheme use in MIME letters. quoted-printable is a good "
+"choice here."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2310
+#, no-wrap
+msgid "B<disable_gnksa_domain_check>"
+msgstr "B<disable_gnksa_domain_check>"
+
+# type: Plain text
+#: ../tin.5:2313
+msgid "Allow unregistered top level domains"
+msgstr "Unregistrierte Top-Level-Domains zulassen"
+
+# type: TP
+#: ../tin.5:2313
+#, no-wrap
+msgid "B<disable_sender>"
+msgstr "B<disable_sender>"
+
+# type: Plain text
+#: ../tin.5:2317
+msgid ""
+"Don't generate a ''Sender:'' header. This has an effect only if "
+"B<inews_prog> is set to --internal."
+msgstr ""
+"Keinen ''Sender:'' Header erzeugen. Falls B<inews_prog> nicht auf --internal "
+"steht wird die Einstellung ignoriert."
+
+# type: TP
+#: ../tin.5:2317
+#, no-wrap
+msgid "B<spooldir>"
+msgstr "B<spooldir>"
+
+# type: Plain text
+#: ../tin.5:2322
+msgid ""
+"Base of your newsspool (Bnews, Cnews and INN traditional spool style), "
+"common values are I</var/spool/news>, I</usr/spool/news>, I</news/spool>.  "
+"$B<TIN_SPOOLDIR> overrides any specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2322
+#, no-wrap
+msgid "B<overviewdir>"
+msgstr "B<overviewdir>"
+
+# type: Plain text
+#: ../tin.5:2330
+msgid ""
+"Base of your NOV database B<newsoverview>(5)  (tradspool style; might be the "
+"same dir as I<spooldir>), common values are I</var/spool/overview>, I</usr/"
+"spool/overview>, I</news/overview>. $B<TIN_NOVROOTDIR> overrides any "
+"specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2330
+#, no-wrap
+msgid "B<overviewfile>"
+msgstr "B<overviewfile>"
+
+# type: Plain text
+#: ../tin.5:2334
+msgid ""
+"Name of a single overview file, common values are I<.overview>, I<over.view>."
+msgstr ""
+"Name einer Overview-Datei, übliche Namen sind I<.overview> oder I<over.view>."
+
+# type: TP
+#: ../tin.5:2334
+#, no-wrap
+msgid "B<overviewfmtfile>"
+msgstr "B<overviewfmtfile>"
+
+# type: Plain text
+#: ../tin.5:2339
+msgid ""
+"Full pathname of your newssystem's overview.fmt file; usually the overview."
+"fmt file is in I<newslibdir>, so you only have to change this setting if "
+"your configuration differs."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2339
+#, no-wrap
+msgid "B<activefile>"
+msgstr "B<activefile>"
+
+# type: Plain text
+#: ../tin.5:2345
+msgid ""
+"Full pathname of your newssystem's active file; usually the active file "
+"resides in I<newslibdir> and is named I<active>, so you only have to change "
+"this setting if your configuration differs. $B<TIN_ACTIVEFILE> overrides any "
+"specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2345
+#, no-wrap
+msgid "B<activetimesfile>"
+msgstr "B<activetimesfile>"
+
+# type: Plain text
+#: ../tin.5:2350
+msgid ""
+"Full pathname of your newssystem's active.times file; usually the active."
+"times file is I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2350
+#, no-wrap
+msgid "B<newsgroupsfile>"
+msgstr "B<newsgroupsfile>"
+
+# type: Plain text
+#: ../tin.5:2355
+msgid ""
+"Full pathname of your newssystem's newsgroups file; usually the newsgroups "
+"file is in I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2355
+#, no-wrap
+msgid "B<subscriptionsfile>"
+msgstr "B<subscriptionsfile>"
+
+# type: Plain text
+#: ../tin.5:2360
+msgid ""
+"Full pathname of your newssystem's subscriptions file; usually the "
+"subscriptions file is in I<newslibdir>, so you only have to change this "
+"setting if your configuration differs."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2364
+msgid "I</usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo>"
+msgstr "I</usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo>"
+
+# type: Plain text
+#: ../tin.5:2368
+msgid ""
+"translation into language specified in $B<LC_ALL>, $B<LC_MESSAGES> or "
+"$B<LANG>"
+msgstr ""
+"Übersetzung in die in $B<LC_ALL>, $B<LC_MESSAGES> oder $B<LANG> angegebene "
+"Sprache"
+
+# type: Plain text
+#: ../tin.5:2382
+msgid ""
+"This file lists the newsgroups that the local site receives. Each newsgroup "
+"should be listed only once. Each line specifies one group; within each "
+"newsgroup, articles are assigned unique names, which are monotonically "
+"increasing numbers."
+msgstr ""
+
+# type: Plain text
+#.  TODO: IIRC tin issues just a warning in that case?
+#: ../tin.5:2387
+msgid ""
+"If an article is posted to newsgroups not mentioned in this file, those "
+"newsgroups are ignored.  If no valid newsgroups are specified, the article "
+"is rejected."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2390
+msgid ""
+"Each line consists of four space-separated fields \"I<name> I<highmark> "
+"I<lowmark> I<flags>\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2390 ../tin.5:2443
+#, no-wrap
+msgid "B<name>"
+msgstr "B<name>"
+
+# type: TP
+#: ../tin.5:2393
+#, no-wrap
+msgid "B<highmark>"
+msgstr "B<highmark>"
+
+# type: Plain text
+#: ../tin.5:2396
+msgid "is the highest article number that has been used in that newsgroup"
+msgstr "die höchste Artikelnummer die je in der Gruppe benutzt wurde"
+
+# type: TP
+#: ../tin.5:2396
+#, no-wrap
+msgid "B<lowmark>"
+msgstr "B<lowmark>"
+
+# type: Plain text
+#: ../tin.5:2403
+msgid ""
+"is the lowest article number in the group; this number is not guaranteed to "
+"be accurate, and should only be taken to be a hint. Note that because of "
+"article cancellations, there may be gaps in the numbering sequence. If the "
+"lowest article number is greater then the highest article number, then there "
+"are no articles in the newsgroup."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2403
+#, no-wrap
+msgid "B<flags>"
+msgstr "B<flags>"
+
+# type: Plain text
+#: ../tin.5:2406
+msgid "can be one of those"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2407
+#, no-wrap
+msgid "B<y>"
+msgstr "B<y>"
+
+# type: Plain text
+#: ../tin.5:2410
+msgid "local postings are allowed"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2410
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+# type: Plain text
+#: ../tin.5:2413
+msgid "no local postings are allowed, only remote ones"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2413
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+# type: Plain text
+#: ../tin.5:2416
+msgid "the group is moderated and all postings must be approved"
+msgstr "die Gruppe ist moderiert und alle Postings müssen approved werden"
+
+# type: TP
+#: ../tin.5:2416
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+# type: Plain text
+#: ../tin.5:2419
+msgid "articles in this group are not kept, but only passed on"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2419
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+# type: Plain text
+#: ../tin.5:2422
+msgid "articles cannot be posted to this newsgroup"
+msgstr "in diese Gruppe darf nicht geposted werden"
+
+# type: TP
+#: ../tin.5:2422
+#, no-wrap
+msgid "B<=foo.bar>"
+msgstr "B<=foo.bar>"
+
+# type: Plain text
+#: ../tin.5:2425
+msgid "articles are locally filed into the ''foo.bar'' group"
+msgstr "Artikel werden auf dem Server in der Gruppe ''foo.bar'' abgelegt"
+
+# type: TP
+#: ../tin.5:2426 ../tin.5:2453 ../tin.5:2476
+#, no-wrap
+msgid "B<tin>(1)"
+msgstr "B<tin>(1)"
+
+# type: Plain text
+#: ../tin.5:2432
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST (B<RFC3977>) command "
+"instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2443
+msgid ""
+"This file provides a chronological record of when newsgroups are created. It "
+"is normally updated by the local newsserver (e.g.  B<innd>(8))  whenever a "
+"new group is created. Each line consist of three space-separated fields "
+"\"I<name> I<time> I<creator>\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2450
+msgid ""
+"is the time when the group was created, expressed as the number of seconds "
+"since the epoch."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2450
+#, no-wrap
+msgid "B<creator>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2453
+msgid "is the electronic mail address of the person who created the group."
+msgstr "die Mailadresse der Person die die Gruppe angelegt hat."
+
+# type: Plain text
+#: ../tin.5:2459
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the NEWGROUPS (B<RFC3977>) command "
+"instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2470
+msgid ""
+"This file provides short descriptions of each newsgroup. It is normally "
+"updated by the local newsserver (e.g.  B<innd>(8))  whenever a new group is "
+"created. Each line consist of two tab-separated fields \"I<group.name>"
+"\tI<one-line description>\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2482
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST NEWSGROUPS (B<RFC3977>) "
+"command instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2491
+msgid ""
+"This file specifies might hold a default organization to be used in the "
+"''Organization:'' header. $B<ORGANIZATION> has a higher priority if set."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2509
+msgid ""
+"This file specifies the organization of the news overview database (see also "
+"B<newsoverview>(5)).  The order of lines in this file is important; it "
+"determines the order in which the fields will appear in the database. See "
+"also B<overview.fmt>(5).  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST OVERVIEW.FMT (B<RFC3977>) command instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2524
+msgid ""
+"This file contains a list of newsgroups - one per line - which the client "
+"should subscribe to when the user has no ${TIN_HOMEDIR:-\"$HOME\"}/.newsrc "
+"for the newsserver.  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST SUBSCRIPTIONS (B<RFC6048>) command instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2565
+msgid ""
+"B<elm>(1), B<inews>(1), B<ispell>(1), B<lp>(1), B<lpr>(1), B<metamail>(1)  "
+"B<perl>(1), B<pgp>(1), B<rn>(1), B<shar>(1), B<slrnface>(1), B<tin>(1), "
+"B<xterm>(1x), B<iconv>(3), B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), "
+"B<strftime>(3), B<system>(3), B<mailcap>(4), B<active>(5), B<mbox>(5), "
+"B<mmdf>(5), B<newsoverview>(5), B<overview.fmt>(5), B<innd>(8), B<RFC1524>, "
+"B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, B<RFC3977>, "
+"B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+msgstr ""
+"B<elm>(1), B<inews>(1), B<ispell>(1), B<lp>(1), B<lpr>(1), B<metamail>(1)  "
+"B<perl>(1), B<pgp>(1), B<rn>(1), B<shar>(1), B<slrnface>(1), B<tin>(1), "
+"B<xterm>(1x), B<iconv>(3), B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), "
+"B<strftime>(3), B<system>(3), B<mailcap>(4), B<active>(5), B<mbox>(5), "
+"B<mmdf>(5), B<newsoverview>(5), B<overview.fmt>(5), B<innd>(8), B<RFC1524>, "
+"B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, B<RFC3977>, "
+"B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/en_GB/tin.1 tin-2.0.0/doc/l10n/en_GB/tin.1
--- tin-1.8.3/doc/l10n/en_GB/tin.1	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/en_GB/tin.1	2011-08-22 00:20:17.334929787 +0200
@@ -0,0 +1,3406 @@
+.\"
+.\" Project   : tin - a Usenet newsreader
+.\" Module    : tin.1
+.\" Author    : I. Lea, U. Janssen
+.\" Created   : 1991-08-23
+.\" Updated   : 2011-08-23
+.\" Notes     : use american english; still needs some work, e.g.:
+.\"             - document authorization (.newsauth)
+.\"             - document random organization feature
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH tin 1 "August 23rd, 2011" 2.0.0 "A Usenet newsreader"
+.\"
+.\"
+.SH NAME
+.\"
+.\"
+tin, rtin \- A Usenet newsreader
+.SH SYNOPSIS
+.\"
+.\"
+\fBtin\fP [\|[\|\fB\-h\fP\||\|\fB\-H\fP\||\|\fB\-V\fP\|]\ \|| [\|[\|[\|\fB\-a\fP\|]
+[\|\fB\-dlnq\fP\||\|\fB\-Q\fP\|] [\|\fB\-ArzxX\fP\|]\|] [\|[\|\fB\-R\fP\||\|\fB\-S\fP\|]
+\|\|\fB\-s\fP \fINews_dir\fP\|] [\|\fB\-cuvZ\fP\|] [\|\fB\-4\fP\||\|\fB\-6\fP\|]
+[\|\fB\-N\fP\||\|\fB\-M\fP \fIaddress\fP\|] [\|\fB\-o\fP\||\|\fB\-w\fP\|]\|] [\|\fB\-D\fP
+\fIdebug_level\fP\|] [\|\fB\-G\fP \fIarticle_limit\fP\|] [\|\fB\-f\fP \fInewsrc_file\fP\|]
+[\|\fB\-g\fP \fIserver\fP\|] [\|\fB\-m\fP \fIMail_dir\fP\|] [\|\fB\-p\fP \fIport\fP\|] [\|\fB\-I\fP
+\fIindex_dir\fP\|]\ \|[\fInewsgroup\fP\|[\|,.\|.\|.\|]\|]\|]
+.SH DESCRIPTION
+\fBtin\fP is a full\-screen easy to use Usenet newsreader. It can read news
+locally (e.g., \fI/var/spool/news\fP) or remotely (\fBrtin\fP or \fBtin \-r\fP option)
+via a NNTP (Network News Transport Protocol) server. It will automatically
+utilize NOV \fBnewsoverview\fP(5)  style index files if available locally or
+via the NNTP [X]OVER command (\fBRFC2980\fP, \fBRFC3977\fP).
+.PP
+\fBtin\fP has four separate levels of operation: Selection level, Group level,
+Thread level and Article level. Use the \fBHelp\fP ('\fBh\fP')  command to view a
+list of the commands available at a particular level.
+.PP
+On startup \fBtin\fP will show a list of the newsgroups found in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP. An arrow '\->' or highlighted bar
+will point to the first newsgroup. Move to a group by using the terminal
+arrow keys (terminal dependent) or \fBDown\fP ('\fBj\fP')  and \fBUp\fP ('\fBk\fP'). Use
+PgUp/PgDn (terminal dependent) or \fBPageUp\fP ('\fB^U\fP') (CTRL\-U) and
+\fBPageDown\fP ('\fB^D\fP')  (CTRL\-D) to page up/down. Enter a newsgroup by
+pressing '\fB<CR>\fP'.
+.PP
+.\"
+.\"
+The \fBGroupNextUnreadArtOrGrp\fP ('\fB<TAB>\fP') key enters the next
+newsgroup with unread articles.
+.SH "EXIT STATUS"
+Interactive mode:
+.RS +.5i
+.TP 
+\fB0\fP
+Successful program execution.
+.TP 
+\fB1\fP
+Usage, syntax, configuration file or network error.
+.RE
+.PP
+Batch mode (\*(rq\fB\-Z\fP\*(rq):
+.RS +.5i
+.TP 
+\fB0\fP
+No unread news
+.TP 
+\fB1\fP
+Usage, syntax, configuration file or network error.
+.TP 
+\fB2\fP
+Unread news
+.RE
+.\"
+.\"
+.SH OPTIONS
+.TP  12
+\fB\-4\fP
+Force connecting via IPv4 to the remote NNTP server.
+.TP 
+\fB\-6\fP
+Force connecting via IPv6 to the remote NNTP server.
+.TP 
+\fB\-a\fP
+Toggle ANSI colour (default is off).
+.TP 
+\fB\-A\fP
+Force authentication on initial connect.
+.TP 
+\fB\-c\fP
+Create/update index files for every group in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP or file specified by the \*(rq\fB\-f\fP\*(rq option
+and mark all articles as read.
+.TP 
+\fB\-d\fP
+Don't load newsgroup descriptions (interactive mode).
+.TP 
+\fB\-D\fP\fI debug\-level\fP
+Enter debug\-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 =
+memory, 32 = attributes, 64 = misc).
+.TP 
+\fB\-f\fP\fI file\fP
+Use the specified file of subscribed to newsgroups in place of
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP.
+.TP 
+\fB\-g\fP\fI server\fP
+Use the server and newsrc specified in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP.
+.TP 
+\fB\-G\fP\fI article\-limit\fP
+Limit the number of articles/group to retrieve from the server.
+.TP 
+\fB\-h\fP
+Help listing all command\-line options.
+.TP 
+\fB\-H\fP
+Brief introduction to \fBtin\fP that is also shown the first time it is
+started.
+.TP 
+\fB\-I\fP\fI dir\fP
+Directory in which to store newsgroup index files. Default is
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news\fP.  This option
+has no effect if \fBtin\fP retrieves its index files via NNTP and
+\fBcache_overview_files\fP is turned off.
+.TP 
+\fB\-l\fP
+Get number of articles per group from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file. If reading
+via NNTP this is done with the LIST command (\fBRFC3977\fP). This might result
+in incorrect article counts but is usually faster than the default which is
+to read the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file
+(either directly or via LIST) and then check the article count via NNTP
+GROUP command (\fBRFC3977\fP) \*(rq\fB\-ln\fP\*(rq.
+.TP 
+\fB\-m\fP\fI dir\fP
+Mailbox directory to use. Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fP.
+.TP 
+\fB\-M\fP\fI user\fP
+Mail unread articles to specified user for later reading. For more
+information read section "AUTOMATIC MAILING AND SAVING NEW NEWS".
+.TP 
+\fB\-n\fP
+Only load groups from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file that are
+subscribed to in the user's \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP. This allows
+a noticeable speedup when connecting via a slow line, but \fBtin\fP can not
+tell which groups are moderated. See also \*(rq\fB\-l\fP\*(rq.
+.TP 
+\fB\-N\fP
+Mail unread articles to yourself for later reading. For more information
+read section "AUTOMATIC MAILING AND SAVING NEW NEWS".
+.TP 
+\fB\-o\fP
+Quick post all postponed articles and exit. In order for this to be really
+quick, it should be used with \*(rq\fB\-n\fP\*(rq if possible.
+.TP 
+\fB\-p\fP\fI port\fP
+Port to use if reading via NNTP (default is 119). This also overrides the
+environment variable $\fBNNTPPORT\fP if set.
+.TP 
+\fB\-q\fP
+Don't check for new newsgroups.
+.TP 
+\fB\-Q\fP
+Quick start. Start \fBtin\fP as quickly as possible. Currently this is
+equivalent to \*(rq\fB\-nqd\fP\*(rq.
+.TP 
+\fB\-r\fP
+Read news remotely from the default NNTP server specified in the environment
+variable $\fBNNTPSERVER\fP or contained in the file \fI/etc/nntpserver\fP.
+.TP 
+\fB\-R\fP
+Read news saved by the \*(rq\fB\-S\fP\*(rq option.
+.TP 
+\fB\-s\fP\fI dir\fP
+Save/read articles to/in directory. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP.
+.TP 
+\fB\-S\fP
+Save unread articles for later reading by the \*(rq\fB\-R\fP\*(rq option. For more
+information read section "AUTOMATIC MAILING AND SAVING NEW NEWS".
+.TP 
+\fB\-u\fP
+Create/update index files for every group in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP or file specified by the \*(rq\fB\-f\fP\*(rq
+option. This option is disabled if \fBtin\fP retrieves its index files via a
+NNTP server and \fBcache_overview_files\fP is turned off.
+.TP 
+\fB\-v\fP
+Verbose mode for \*(rq\fB\-c\fP\*(rq, \*(rq\fB\-M\fP\*(rq, \*(rq\fB\-N\fP\*(rq, \*(rq\fB\-S\fP\*(rq, \&\*(rq\fB\-u\fP\*(rq and
+\&\*(rq\fB\-Z\fP\*(rq options.
+.TP 
+\fB\-V\fP
+Print version and date information.
+.TP 
+\fB\-w\fP
+Quick mode to post an article and then exit. In order for this to be really
+quick, it should be used with \*(rq\fB\-n\fP\*(rq if possible.
+.TP 
+\fB\-x\fP
+No posting mode. You cannot post articles if you use this option.
+.TP 
+\fB\-X\fP
+No overwrite mode. \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP and files in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin\fP will not be overwritten but may be created
+if they don't exist.
+.TP 
+\fB\-z\fP
+Only start \fBtin\fP if there is any new/unread news. If there is news \fBtin\fP
+will position cursor at first group with unread news. Useful for putting in
+login file.
+.TP 
+\fB\-Z\fP
+Check if there is any new/unread news and exit with appropriate status. If
+\&\*(rq\fB\-v\fP\*(rq option is specified the number of unread articles in each group
+is printed. An exit code 0 indicates no news, 1 that an error occurred and 2
+that new/unread news exists. Useful for writing scripts.
+.PP
+\fBtin\fP can also dynamically change its options by the \fBOptionMenu\fP ('\fBM\fP')
+command. Any changes are written to
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP. For more information see section
+"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" and \fBtin\fP(5).
+.PP
+A list of groups can be specified after the other command\-line options. This
+can be useful if you wish to yank in or subscribe to a hand\-picked subset of
+the active newsgroups. See the section "NEWSGROUP LISTS & WILDCARDS" for the
+types of pattern that \fBtin\fP understands.
+.PP
+If you specify a single group\-name, or a wildcard that matches a single
+group, then you will automatically enter that group. Otherwise the normal
+group selection screen will appear, but with all the matching groups present
+too, as though you had yanked just those groups in.
+.PP
+With the \*(rq\fB\-w\fP\*(rq flag a given group\-name is used as default group to post
+to. If more than one group or a wildcard is specified only the first group
+respectively the first group that matches is used.
+.PP
+Once you use \fBSelectYankActive\fP ('\fBy\fP') to yank in all active groups, or
+\fBSelectToggleReadDisplay\fP ('\fBr\fP') to toggle the read/unread status, then
+the command\-line groups will be gone. You can use \fBSelectSyncWithActive\fP
+('\fBY\fP') to reread the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file and get them
+back.
+.PP
+NB: With the \*(rq\fB\-n\fP\*(rq flag, only unsubscribed groups in the
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file (or the newsrc\-file given by the
+\&\*(rq\fB\-f\fP\*(rq command\-line switch or via
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP) can be matched.
+.PP
+.\"
+.\"
+Command\-line options have higher priority than attributes and tinrc
+options.  Thus, command\-line option takes precedence over configured values.
+.SH USAGE
+.\"
+.\"
+.SS "NEWS ADMINISTRATION"
+Maintaining Netnews on large networks of machines can be a pretty time
+consuming job as I discovered when I was given the job of maintaining our
+news system and news users.
+.PP
+.\"
+.\"
+A user starting \fBtin\fP for the first time can be automatically subscribed to
+a list of newsgroups that are deemed appropriate by the news
+administrator. The subscriptions file should be created in your news lib
+directory (i.e., \fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fP) and should have
+file permissions set to 0644. If you read news via NNTP, then your news
+server must support the LIST SUBSCRIPTIONS command. It is part of the NNTP
+List Extensions (\fBRFC6048\fP) and all modern servers should understand it.
+.SS "SCREEN FORMAT"
+\fBtin\fP has four separate levels of operation: Selection level, Group level,
+Thread level and Article level.
+.PP
+At the Selection level the title displays (the name of the newsserver and)
+the number of subscribed groups (containing new unread articles). The
+newsgroups are displayed in the middle of the screen with the number of
+unread articles displayed on the same line in front.
+.PP
+.\" FIXME - make this autoscale
+.nf
+\->M    1     2  comp.security.announce  Announcements from the CERT abou
+  M    2     1  news.admin.announce     Announcements for news adminstra
+       3    22  news.software.misc      News\-related software other than
+       4  1475  news.software.nntp      The Network News Transfer Protoc
+  X    5   124  news.software.readers   Discussion of software used to r
+.fi
+.PP
+There may also be a character prefixing the line. An explanation follows:
+.TP  10
+\fBu\fP
+This group is unsubscribed. To see only your subscribed groups use the
+\fBSelectToggleReadDisplay\fP ('\fBr\fP') or \fBSelectYankActive\fP ('\fBy\fP') toggle
+keys.
+.TP 
+\fBM\fP
+This is a moderated group. Any posts you make will have to be approved by
+the group administrator before it will be made public. \fBtin\fP will ask for
+confirmation before you post to a moderated group.
+.TP 
+\fBN\fP
+This is a new newsgroup which has been created since you last used
+\fBtin\fP. New newsgroups are not subscribed to by default (However, see the
+$\fBAUTOSUBSCRIBE\fP / $\fBAUTOUNSUBSCRIBE\fP environment variables).  Subscribe
+to it in the normal way if you wish the group to continue to appear in your
+Selection Menu. Simply ignore new newsgroups and they will be gone the next
+time you start \fBtin\fP. You will have to yank in all the groups to find them
+in a later session.
+.TP 
+\fBD\fP
+This group no longer exists. If you no longer wish to see this group then
+unsubscribe from it in the normal way. This flag will only appear if you
+have set \fBstrip_bogus\fP to "ask" in the Options Menu.
+.TP 
+\fBX\fP
+You may no longer make posts to this group. Often a group will be superseded
+by a more appropriately named one.
+.TP 
+\fB=\fP
+This group has been renamed and you may no longer post to it. If you do,
+then you will receive an error from your newsserver telling you the correct
+group to post to.
+.PP
+At the Group level the title contains the name of the group, the number of
+conversation threads, the threading method, the limit of articles to get,
+the total number of articles, the number of hot articles, the number of
+recent articles and the number of killed articles. I.e.:
+.PP
+.nf
+.\" FIXME - make this autocenter
+            alt.sources (5B \-50/23+ 0* 3o 0K)
+.fi
+.PP
+The characters after the numbers are depending to the configuration and if
+your are in \fBshow_only_unread_arts\fP mode or not. Some numbers could be
+missing if the specific option is not enabled. It might also contain an 'M',
+\&'X' or '=' (see above; doesn't work with the \*(rq\fB\-n\fP\*(rq command\-line
+switch!) if the group is moderated, set to no posting or postings to it get
+redirected.
+.PP
+If a thread has unread articles in it it's marked with a
+\fBart_marked_unread\fP in front of the total number of articles in the
+thread. If there are recent articles within the thread it might be marked
+with \fBart_marked_recent\fP in front of the total number of articles in the
+thread \- this is controlled by the \fBrecent_time\fP option. If a thread has
+hot articles in it (see also section "FILTERING ARTICLES") it's marked with
+\fBart_marked_selected\fP in front of the total number of articles in the
+thread. The number of lines of the first (unread) article in the thread
+might also be shown right before the subject \- this is controlled by the
+\fBshow_info\fP option.
+.PP
+.\" FIXME - make this autoscale
+.nf
+                de.admin.net\-abuse.announce (11B 13+ 1* 1o 0K) M
+
+\->   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg <l
+     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede <hwee
+     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede <hwee
+     4   *      368 <1997\-11\-12> Fremdcancel\-FAQ     Thomas Roessler <ro
+.fi
+.PP
+.\" FIXME - add description of fields
+At the Thread level the screen usually (depends on the threading method
+used) looks like this:
+.PP
+.\" FIXME - make this autoscale
+.nf
+\->   1      [   7]  What is this funny tree in the thr  Robert F. Simmig
+     2      [  12]  +\->                                 Sephan Wagner <s
+     3      [ 230]  | `\->Tin thread\-level (was: What is Bob Johnson <bob
+     4      [  22]  `\->tin threading menu               Brian Richardson
+
+.fi
+.PP
+.\" FIXME - add description of fields
+At the Article level the page header has the following format:
+.PP
+.\" FIXME - make this autoscale
+.nf
+Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86
+Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59
+Urs Janssen <urs@akk.org>        at Arbeitskreis Kultur und Kommunikati
+
+article\-body
+.fi
+.\"
+.\"
+.SS "COMMON MOVING KEYS"
+This table shows the common keys used for moving around all levels within
+\fBtin\fP.
+.RS
+.nf
+.ta \w'Beg. of list/article  'u +\w'ANSI/vt100   'u
+	ANSI/vt100	Other Terminals
+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 \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
+.RE
+.\"
+.\"
+.SS "COMMON EDITING COMMANDS"
+An emacs style editing package allows the easy editing of input strings.  An
+history list allows the easy reuse of previously entered strings.  In
+addition to the cursor keys, the following commands are available when
+editing a string:
+.PP
+.TP  10
+\fB^A, ^E\fP
+move to beginning or end of line, respectively.
+.TP 
+\fB^F, ^B\fP
+non\-destructive move forward or back one location, respectively.
+.TP 
+\fB^D\fP
+delete the character currently under the cursor, or send EOF if no
+characters in the buffer.
+.TP 
+\fB^H, <DEL>\fP
+delete character left of the cursor.
+.TP 
+\fB^K\fP
+delete from cursor to end of line.
+.TP 
+\fB^P, ^N\fP
+move through history, previous and next, respectively.
+.TP 
+\fB^L, ^R\fP
+redraw the current line.
+.TP 
+\fB<CR>\fP
+places line on history list if non\-blank, appends newline and returns to the
+caller.
+.TP 
+\fB<ESC>\fP
+.\"
+.\"
+aborts the present editing operation.
+.SS "GLOBAL COMMANDS"
+The following commands are available at all 4 menu levels and always have
+the same effect.
+.PP
+.TP  10
+\fBShellEscape '!'\fP
+Shell escape. \fBShellEscape\fP by itself will launch a shell, \fBShellEscape\fP
+<command> will run an external <command>. This facility may
+have been disabled by the System Administrator.
+.TP 
+\fBToggleColor '&'\fP
+Toggle use of ANSI colour.
+.TP 
+\fBRedrawScr '^L'\fP
+Redraw the current screen.
+.TP 
+\fBScrollUp '<'\fP
+Scroll screen up by one line.
+.TP 
+\fBScrollDown '>'\fP
+Scroll screen down by one line.
+.TP 
+\fBPostponed 'O' '^O'\fP
+Reload postponed article. If your system blocks the \fBPostponed\fP key you
+must quote it by pressing '\fB^V\fP' (CTRL\-V) first. The postpone\-menu offers
+the following actions: \fBPromptYes\fP ('\fBy\fP') = reload and spawn editor;
+\fBPostponeOverride\fP ('\fBY\fP') = post article (without spawning editor);
+\fBPostponeAll\fP ('\fBA\fP') = post all postponed articles (without spawning
+editor); \fBPromptNo\fP ('\fBn\fP') = skip this article; \fBQuit\fP ('\fBq\fP') = quit
+postponed menu. Currently there is no 'simple' way to delete a postponed
+article from the postponed\-file, you have to use the following command
+sequence instead: reload it with \fBPostponed\fP, enter editor with
+\fBPromptYes\fP, quit editor, discard posting with \fBQuit\fP
+('\fB^O\fP\*(rq\fBy\fP\*(rq\fBq\fP'). See also \*(rq\fB\-o\fP\*(rq command\-line switch.
+.TP 
+\fBHelp 'h'\fP
+Help screen of commands available on the current menu. You can use
+\fBSearchSubjF\fP ('\fB/\fP'), \fBSearchSubjB\fP ('\fB?\fP') and \fBSearchRepeat\fP
+('\fB\e\fP') to search on this screen. \fBQuit\fP ('\fBq\fP') returns to the menu.
+.TP 
+\fBToggleHelpDisplay 'H'\fP
+Toggle the display of help mini menu at the bottom of the screen.
+.TP 
+\fBDisplayPostHist 'W'\fP
+List articles posted by user. The date posted, the newsgroup and the subject
+are listed. You can use \fBSearchSubjF\fP ('\fB/\fP'), \fBSearchSubjB\fP ('\fB?\fP') and
+\fBSearchRepeat\fP ('\fB\e\fP') to search on this screen. \fBQuit\fP ('\fBq\fP') returns
+to the menu.
+.TP 
+\fBVersion 'v'\fP
+.\"--------------------------------------------------------------------
+.\"
+Print \fBtin\fP version information.
+.SS "NEWSGROUP SELECTION COMMANDS"
+.TP  10
+\fB4\fP
+Select group 4.
+.TP 
+\fBSelectResetNewsrc '^R'\fP
+Reset \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file. This will destroy all records
+of which articles have been read, so use this carefully.
+.TP 
+\fBSetRange '#'\fP
+Choose a range of articles to be affected by the next command. See the
+section "RANGES" for more information.
+.TP 
+\fBSelectSortActive '.'\fP
+Sort the list of newsgroups.
+.TP 
+\fBSearchRepeat '\e'\fP
+Repeat the previous search.
+.TP 
+\fBSearchSubjF '/'\fP
+Search for a group by name and description (if displayed).
+.TP 
+\fBSearchSubjB '?'\fP
+Backward search through the group names and descriptions.
+.TP 
+\fBSelectReadGrp '^J' '<CR>'\fP
+Read current group.
+.TP 
+\fBSelectEnterNextUnreadGrp '<TAB>' 'n'\fP
+Enter next group with unread news. Will wrap around to the beginning of the
+group selection list looking for unread groups.
+.TP 
+\fBCatchup 'c'\fP
+Make current group as all read [after confirmation] and move to the next
+group in the group selection list.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark current group as all read [after confirmation] and enter the next
+unread group in the group selection list.
+.TP 
+\fBSelectToggleDescriptions 'd'\fP
+Toggle display to show just the group name or the group name and the group
+descriptions.
+.TP 
+\fBEditFilter 'E'\fP
+Edit the filter file and reload it afterwards.
+.TP 
+\fBSelectGoto 'g'\fP
+Choose a new group by name. This command can be used to access any group,
+even those not currently yanked in.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Toggle the display of the description of the current newsgroup in the last
+line. This will not be available if \fBtin\fP was started with the \&\*(rq\fB\-d\fP\*(rq
+option.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBSelectMoveGrp 'm'\fP
+Move the current group within the group selection list. By entering '1' the
+group will become the first displayed group in the list, by entering '8' the
+eighth group in the list etc. By entering '$' the group will be the last
+group displayed.
+.TP 
+\fBOptionMenu 'M'\fP
+User configurable options menu (for more information see section "GLOBAL
+OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
+.TP 
+\fBSelectNextUnreadGrp 'N'\fP
+Positions the cursor on the next group with unread articles in it.
+.TP 
+\fBQuit 'q'\fP
+Quit \fBtin\fP \- ask the user to confirm if \fBconfirm_choice\fP is set
+accordingly.
+.TP 
+\fBQuitTin 'Q'\fP
+Quit \fBtin\fP \- don't ask the user to confirm.
+.TP 
+\fBSelectToggleReadDisplay 'r'\fP
+Toggle display of all subscribed to groups and just those groups containing
+unread articles. Command has no effect if groups were specified on the
+command\-line when \fBtin\fP was started.
+.TP 
+\fBBugReport 'R'\fP
+Mail a bug report or comment to <tin\-bugs@tin.org>. This is the best
+way of getting bugs fixed and features added/changed.
+.TP 
+\fBSelectSubscribe 's'\fP
+Subscribe to current group.
+.TP 
+\fBSelectSubscribePat 'S'\fP
+Subscribe to groups matching user specified pattern. See the section
+"NEWSGROUP LISTS & WILDCARDS" for the types of pattern that \fBtin\fP
+understands.
+.TP 
+\fBSelectUnsubscribe 'u'\fP
+Unsubscribe to current group. This can be used to remove bogus groups.  See
+\fBstrip_bogus\fP in the "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+section.
+.TP 
+\fBSelectUnsubscribePat 'U'\fP
+Unsubscribe to groups matching user specified pattern. See the section
+"NEWSGROUP LISTS & WILDCARDS" for the types of pattern that \fBtin\fP
+understands.
+.TP 
+\fBPost 'w'\fP
+Post an article to current group. If posting fails for some reason, you'll
+get the chance to \fBPostEdit\fP ('\fBe\fP') the article again, \fBPostPostpone\fP
+('\fBo\fP') it for later processing (see also \*(rq\fB\-o\fP\*(rq command\-line switch) or
+discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBSelectQuitNoWrite 'X'\fP
+Quit \fBtin\fP without saving any changes to the configuration.
+.TP 
+\fBSelectYankActive 'y'\fP
+Yanks in all groups. Toggles the displayed groups between all the groups in
+the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file and just
+those that are subscribed to in \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP.
+.TP 
+\fBSelectSyncWithActive 'Y'\fP
+Reread the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file to
+see if any new news has arrived since starting \fBtin\fP.
+.TP 
+\fBSelectMarkGrpUnread 'z' 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Mark all articles in the current group as unread.
+.SS "GROUP INDEX COMMANDS"
+.TP  10
+\fB4\fP
+Select article 4.
+.TP 
+\fBMenuFilterSelect '^A'\fP
+Auto select article(s) using a menu. Read the section "FILTERING ARTICLES"
+for more information.
+.TP 
+\fBMenuFilterKill '^K'\fP
+Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
+information.
+.TP 
+\fBMarkFeedRead '^X'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as read. A prompt asks which type should
+be marked.
+.TP 
+\fBMarkFeedUnread '^W'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as unread. A prompt asks which type
+should be marked.
+.TP 
+\fBSetRange '#'\fP
+Choose a range of articles to be affected by the next command. See the
+section "RANGES" for more information.
+.TP 
+\fBLastViewed '\-'\fP
+Re\-enter the last message that was viewed.
+.TP 
+\fBSearchRepeat '\e'\fP
+Repeat the previous search
+.TP 
+\fBSearchSubjF '/'\fP
+Search forward for specified subject.
+.TP 
+\fBSearchSubjB '?'\fP
+Search backward for specified subject.
+.TP 
+\fBGroupSelThd '*'\fP
+Select current thread for later processing.
+.TP 
+\fBGroupDoAutoSel '+'\fP
+Selects all threads in current group. It is a shortcut for calling
+\fBGroupSelPattern\fP with a pattern of \*(rq*\*(rq.
+.TP 
+\fBGroupToggleThdSel '.'\fP
+Toggle selection of current thread. If at least one unread article, (but not
+every unread article) in the current thread is selected, then all unread
+articles become selected.
+.TP 
+\fBGroupSelThdIfUnreadSelected ';'\fP
+For each thread in current group, if it at least one unread article is
+selected, all unread articles become selected. This is useful for
+auto\-selection on author where reader wants to see entire thread.
+.TP 
+\fBGroupSelPattern '='\fP
+Prompts for a pattern with which to match on. All threads whose subjects
+match the pattern will be marked selected. A pattern of \*(rq*\*(rq will match all
+subjects. Entering just '\fB<CR>\fP' will re\-use the last pattern that
+was entered.
+.TP 
+\fBGroupReverseSel '@'\fP
+Reverse all selections on all articles.
+.TP 
+\fBGroupUndoSel '~'\fP
+Undo all selections on all articles. It clears the toggle effect of
+\fBGroupMarkUnselArtRead\fP ('\fBX\fP') command. Thus after first doing a
+\fBGroupMarkUnselArtRead\fP, one can then do \fBGroupUndoSel\fP to reset
+articles. Thus, one can iteratively whittle down uninteresting threads.
+.TP 
+\fBPipe '|'\fP
+Pipe current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles into command. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBQuickFilterSelect '['\fP
+Auto select article(s) with a single key [after confirmation]. The defaults
+used for selection are based upon the following four tinrc config variables:
+\fBdefault_filter_select_case\fP, \fBdefault_filter_select_expire\fP,
+\fBdefault_filter_select_global\fP and \fBdefault_filter_select_header\fP.  Read
+the section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a
+full explanation of these variables and "FILTERING ARTICLES" for more
+information on filtering.
+.TP 
+\fBQuickFilterKill ']'\fP
+Kill article(s) with a single key [after confirmation]. The defaults used
+for killing are based upon the following four tinrc config variables:
+\fBdefault_filter_kill_case\fP, \fBdefault_filter_kill_expire\fP,
+\fBdefault_filter_kill_global\fP and \fBdefault_filter_kill_header\fP.  Read the
+section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full
+explanation of these variables and "FILTERING ARTICLES" for more information
+on filtering.
+.TP 
+\fBGroupReadBasenote '^J' '<CR>'\fP
+Read current article.
+.TP 
+\fBGroupNextUnreadArtOrGrp '<TAB>'\fP
+View next unread article or group.
+.TP 
+\fBSearchAuthF 'a'\fP
+Author forward search. This searches for articles with a specific \*(rqFrom:\*(rq
+line.
+.TP 
+\fBSearchAuthB 'A'\fP
+Author backward search. Otherwise, see \fBSearchAuthF\fP ('\fBa\fP') above.
+.TP 
+\fBSearchBody 'B'\fP
+Search the body of all articles in group (can be slow). You can abort the
+search using \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBCatchup 'c'\fP
+Mark all articles as read [after confirmation] then return to the group
+selection list. Move cursor to next group.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark all articles as read [after confirmation] and enter the next group with
+unread news.
+.TP 
+\fBGroupToggleSubjDisplay 'd'\fP
+Cycle the display of the author through all the possible options for the
+tinrc variable \fBshow_author\fP.
+.TP 
+\fBGroupCancel 'D'\fP
+Cancel (delete) or supersede (overwrite) the current article. It must have
+been posted by the same user. The cancel message can be seen in the
+newsgroup 'control' or 'control.cancel'.
+.TP 
+\fBEditFilter 'E'\fP
+Edit the filter file and reload it afterwards.
+.TP 
+\fBGroupGoto 'g'\fP
+Choose a new group by name. This command can be used to access any group,
+even those not currently yanked in.
+.TP 
+\fBGroupToggleGetartLimit 'G'\fP
+Toggle article/group limit.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Display the subject of the first article in the current thread in the last
+line.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBGroupMarkThdRead 'K'\fP
+Mark article/thread as read and move onto the next unread article/thread. If
+a range of articles/threads is set, the range will be marked as read instead
+of the current article/thread. When tagged articles/threads are present, a
+prompt asks how to proceed.
+.TP 
+\fBGroupListThd 'l'\fP
+Open the thread under the current cursor position.
+.TP 
+\fBLookupMessage 'L'\fP
+Look up article by \*(rqMessage\-ID:\*(rq.
+.TP 
+\fBGroupMail 'm'\fP
+Mail current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to someone. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBOptionMenu 'M'\fP
+User configurable options menu (for more information see section "GLOBAL
+OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
+.TP 
+\fBGroupNextGroup 'n'\fP
+Go to next group.
+.TP 
+\fBGroupNextUnreadArt 'N'\fP
+Go to next unread article.
+.TP 
+\fBPrint 'o'\fP
+Send current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to printer. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBGroupPrevGroup 'p'\fP
+Go to previous group.
+.TP 
+\fBGroupPrevUnreadArt 'P'\fP
+Go to previous unread article.
+.TP 
+\fBQuit 'q'\fP
+Return to previous level.
+.TP 
+\fBQuitTin 'Q'\fP
+Quit \fBtin\fP \- don't ask the user to confirm.
+.TP 
+\fBGroupToggleReadUnread 'r'\fP
+Toggle the display between all articles and unread articles.
+.TP 
+\fBBugReport 'R'\fP
+Mail a bug report or comment to <tin\-bugs@tin.org>. This is the best
+way of getting bugs fixed and features added/changed.
+.TP 
+\fBGroupSave 's'\fP
+Save current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles. See the section "MAILING PIPING PRINTING
+REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBGroupAutoSave 'S'\fP
+Save marked articles automatically without further prompting.
+.TP 
+\fBGroupTag 't'\fP
+Toggle tag\-status of current article / thread for \fBGroupMail\fP ('\fBm\fP')  /
+\fBPipe\fP ('\fB|\fP') / \fBPrint\fP ('\fBo\fP') / \fBGroupSave\fP ('\fBs\fP') /
+\fBGroupRepost\fP ('\fBx\fP').
+.TP 
+\fBGroupTagParts 'T'\fP
+Automatically tag in order all the parts of the current multi\-part message.
+.TP 
+\fBGroupToggleThreading 'u'\fP
+Cycle the threading mode through no threading, threading by subject,
+threading by references, threading on both subject and references, group
+multipart articles into a thread (\*(rqSubject:\*(rq based).
+.TP 
+\fBGroupUntag 'U'\fP
+Untag all articles that were tagged.
+.TP 
+\fBPost 'w'\fP
+Post an article to current group. If posting fails for some reason, you'll
+get the chance to edit the article again via \fBPostEdit\fP ('\fBe\fP'), postpone
+it via \fBPostPostpone\fP ('\fBo\fP') for later processing (see also \*(rq\fB\-o\fP\*(rq
+command\-line switch) or discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBGroupRepost 'x'\fP
+Repost an already posted article / thread / auto\-selected (hot) articles /
+articles matching pattern / tagged articles to another newsgroup(s). Useful
+for reposting from global to local newsgroups. Do not use this to cross\-post
+your own articles.
+.TP 
+\fBGroupMarkUnselArtRead 'X'\fP
+Mark all unread articles that have not been selected as read, redraw screen
+to reflect changes and put index at the first thread to begin reading. 
+Pressing \fBGroupMarkUnselArtRead\fP ('\fBX\fP') again will toggle back to the way
+it was before. See \fBGroupUndoSel\fP ('\fB~\fP') command for clearing the toggle
+effect, leaving the group will also clear the toggle effect and make the
+changes permanent.
+.TP 
+\fBMarkArtUnread 'z'\fP
+Mark current article as unread.
+.TP 
+\fBMarkThdUnread 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Mark current thread as unread. If a range of threads is set, the range will
+be marked as unread instead of the current thread. When tagged threads are
+present, a prompt asks how to proceed.
+.SS "THREAD LISTING COMMANDS"
+.\" this sections should be complete
+.TP  10
+\fB4\fP
+Select article 4 within thread.
+.TP 
+\fBMenuFilterSelect '^A'\fP
+Auto select article(s) using a menu. Read the section "FILTERING ARTICLES"
+for more information.
+.TP 
+\fBMenuFilterKill '^K'\fP
+Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
+information.
+.TP 
+\fBMarkFeedRead '^X'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as read. A prompt asks which type should
+be marked.
+.TP 
+\fBMarkFeedUnread '^W'\fP
+Mark current article, thread, range, auto\-selected (hot) articles, articles
+matching pattern or tagged articles as unread. A prompt asks which type
+should be marked.
+.TP 
+\fBSetRange '#'\fP
+Choose a range of articles to be affected by the next command. See the
+section "RANGES" for more information.
+.TP 
+\fBLastViewed '\-'\fP
+Re\-enter the last message that was viewed.
+.TP 
+\fBSearchRepeat '\e'\fP
+Repeat the previous search.
+.TP 
+\fBSearchSubjF '/'\fP
+Search forward for a specified subject.
+.TP 
+\fBSearchSubjB '?'\fP
+Search backwards for a specified subject.
+.TP 
+\fBThreadSelArt '*'\fP
+Select the current thread for later processing.
+.TP 
+\fBThreadToggleArtSel '.'\fP
+Toggle selection of current article.
+.TP 
+\fBThreadReverseSel '@'\fP
+Reverse article selections.
+.TP 
+\fBThreadUndoSel '~'\fP
+Undo all selections on current thread.
+.TP 
+\fBPipe '|'\fP
+Pipe current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles into command. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBThreadReadArt '^J' '<CR>'\fP
+Read current article within thread.
+.TP 
+\fBThreadReadNextArtOrThread '<TAB>'\fP
+View next unread article within thread.
+.TP 
+\fBSearchAuthF 'a'\fP
+Author forward search. This searches for articles with a specific \*(rqFrom:\*(rq
+line. The search will wrap over into the next thread if nothing is found in
+the current one.
+.TP 
+\fBSearchAuthB 'A'\fP
+Author backward search. Otherwise, see \fBSearchAuthF\fP ('\fBa\fP') above.
+.TP 
+\fBSearchBody 'B'\fP
+Search the body of all articles in group (can be slow). You can abort the
+search using \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBCatchup 'c'\fP
+Mark thread as read [after confirmation] and return to the group index
+page.  Move cursor to next thread.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark thread as read [after confirmation] and enter the next thread
+containing unread news.
+.TP 
+\fBThreadToggleSubjDisplay 'd'\fP
+Cycle the display of the author through all the possible options for the
+tinrc variable \fBshow_author\fP.
+.TP 
+\fBThreadCancel 'D'\fP
+Cancel (delete) or supersede (overwrite) the current article. It must have
+been posted by the same user. The cancel message can be seen in the
+newsgroup 'control' or 'control.cancel'.
+.TP 
+\fBEditFilter 'E'\fP
+Edit the filter file and reload it afterwards.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Display the subject of the current article in the last line.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBThreadMarkArtRead 'K'\fP
+Mark article as read and move onto the next unread article. If a range of
+articles is set, the range will be marked as read instead of the current
+article. When tagged articles are present, a prompt asks how to proceed.
+.TP 
+\fBLookupMessage 'L'\fP
+Look up article by \*(rqMessage\-ID:\*(rq.
+.TP 
+\fBThreadMail 'm'\fP
+Mail current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to someone. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBPrint 'o'\fP
+Send current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to printer. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBQuit 'q'\fP
+Return to previous level.
+.TP 
+\fBQuitTin 'Q'\fP
+Quit \fBtin\fP \- don't ask the user to confirm.
+.TP 
+\fBBugReport 'R'\fP
+Mail a bug report or comment to <tin\-bugs@tin.org>. This is the best
+way of getting bugs fixed and features added/changed.
+.TP 
+\fBThreadSave 's'\fP
+Save current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles. See the section "MAILING PIPING PRINTING
+REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBThreadAutoSave 'S'\fP
+Save marked articles automatically without further prompting.
+.TP 
+\fBThreadTag 't'\fP
+Toggle tag status of current article for mailing, piping, printing, saving
+or reposting.
+.TP 
+\fBThreadUntag 'U'\fP
+Untag all tagged threads.
+.TP 
+\fBPost 'w'\fP
+Post an article to current group. If posting fails for some reason, you'll
+get the chance to edit the article again via \fBPostEdit\fP ('\fBe\fP'), postpone
+it for later processing via \fBPostPostpone\fP ('\fBo\fP') (see also \*(rq\fB\-o\fP\*(rq
+command\-line switch) or discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBMarkArtUnread 'z'\fP
+Mark current article in thread as unread. If a range of articles is set, the
+range will be marked as unread instead of the current article. When tagged
+articles are present, a prompt asks how to proceed.
+.TP 
+\fBMarkThdUnread 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Mark all articles in thread as unread.
+.SS "ARTICLE VIEWER COMMANDS"
+.\" FIXME - refine descriptions
+.TP  10
+\fB0\fP
+Read the first (base) article in this thread.
+.TP 
+\fB4\fP
+Read response 4 in this thread.
+.TP 
+\fBMenuFilterSelect '^A'\fP
+Auto select article(s) using a menu. Read the section "FILTERING ARTICLES"
+for more information.
+.TP 
+\fBPageReplyQuoteHeaders '^E'\fP
+Reply through mail to the author of the current article with a copy of the
+article with all headers included.
+.TP 
+\fBPagePGPCheckArticle '^G'\fP
+Perform \fBpgp\fP(1)  operations on article.
+.TP 
+\fBPageToggleRaw '^H'\fP
+Toggles the display mode (raw including all headers vs. cooked).
+.TP 
+\fBMenuFilterKill '^K'\fP
+Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
+information.
+.TP 
+\fBPageToggleTabs '^T'\fP
+Toggle the TAB width between 4 and 8 characters.
+.TP 
+\fBPageFollowupQuoteHeaders '^W'\fP
+Post a followup to the current article with a copy of the article with all
+headers included.
+.TP 
+\fBPageToggleTex2iso '"'\fP
+Toggle TeX to ISO decoding for current article. The default behaviour is
+taken from the \fBtex2iso_conv\fP variable in the tinrc file.
+.TP 
+\fBPageToggleAllHeaders '*'\fP
+Toggles the display of all headers vs. headers in
+\fBnews_headers_to_display\fP.
+.TP 
+\fBPageToggleRot '%'\fP
+Toggle ROT\-13 decoding for this article.
+.TP 
+\fBPageToggleUue '('\fP
+Toggle the display of uuencoded sections. The default behaviour is taken
+from the \fBhide_uue\fP variable in the tinrc file.
+.TP 
+\fBPageReveal ')'\fP
+The formfeed character (^L) is often used to hide 'spoilers' that the reader
+may not initially wish to see when viewing an article. Any text after a
+formfeed is not displayed. This key\-press acts like a reveal key and turns
+the hidden text back on. Scrolling down will also reveal the text, scrolling
+up will hide it again.
+.TP 
+\fBLastViewed '\-'\fP
+Re\-enter the last message that was viewed.
+.TP 
+\fBSearchRepeat '\e'\fP
+Repeat the previous search.
+.TP 
+\fBSearchSubjF '/'\fP
+Forward search the text of this article.
+.TP 
+\fBSearchSubjB '?'\fP
+Backward search the text of this article.
+.TP 
+\fBPageSkipIncludedText ':'\fP
+Skip to the end of the next quoted text\-block in this article. Quoted text
+is everything which matches \fBquote_regex\fP, \fBquote_regex2\fP or
+\fBquote_regex3\fP.
+.TP 
+\fBPageTopThd '<'\fP
+Go to the first article in the current thread.
+.TP 
+\fBPageBotThd '>'\fP
+Go to the last article in the current thread.
+.TP 
+\fBPageToggleHighlight '_'\fP
+Toggle word highlighting on/off.
+.TP 
+\fBPipe '|'\fP
+Pipe current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles into command. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBQuickFilterSelect '['\fP
+Auto select article(s) with a single key. The defaults used for selection
+are set based upon the following four tinrc config variables:
+\fBdefault_filter_select_case\fP, \fBdefault_filter_select_expire\fP,
+\fBdefault_filter_select_global\fP and \fBdefault_filter_select_header\fP Read the
+section "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" for a full
+explanation of these variables and "FILTERING ARTICLES" for more information
+on filtering.
+.TP 
+\fBQuickFilterKill ']'\fP
+Kill article(s) with a single key. The defaults used for killing are based
+upon the following four tinrc config variables: \fBdefault_filter_kill_case\fP,
+\fBdefault_filter_kill_expire\fP, \fBdefault_filter_kill_global\fP and
+\fBdefault_filter_kill_header\fP.  Read the section "GLOBAL OPTIONS MENU AND
+TINRC CONFIGURABLE VARIABLES" for a full explanation of these variables and
+"FILTERING ARTICLES" for more information on filtering.
+.TP 
+\fBPageNextThd '^J' '<CR>'\fP
+Go to next base article.
+.TP 
+\fBPageNextUnread '<TAB>'\fP
+Go to 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 
+\fBSearchAuthF 'a'\fP
+Author forward search.
+.TP 
+\fBSearchAuthB 'A'\fP
+Author backward search.
+.TP 
+\fBSearchBody 'B'\fP
+Search the body of all articles in group (can be slow). You can abort the
+search using \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBCatchup 'c'\fP
+Mark the current thread as read [after confirmation] and return to the
+previous menu. Move cursor to next item.
+.TP 
+\fBCatchupNextUnread 'C'\fP
+Mark the rest of the current thread as read [after confirmation] and enter
+the next thread with unread articles.
+.TP 
+\fBPageCancel 'D'\fP
+Cancel (delete) or supersede (overwrite) the current article. It must have
+been posted by the same user. The cancel message can be seen in the
+newsgroup 'control' or 'control.cancel'.
+.TP 
+\fBPageEditArticle 'e'\fP
+Edit the current article. This is restricted to mailgroups and saved news.
+.TP 
+\fBEditFilter 'E'\fP
+Edit the filter file and reload it afterwards.
+.TP 
+\fBPageFollowupQuote 'f'\fP
+Post a followup to the current article with a copy of the article included.
+.TP 
+\fBPageFollowup 'F'\fP
+Post a followup to the current article without including a copy of the
+article.
+.TP 
+\fBPageFirstPage 'g'\fP
+Go to the start of the article.
+.TP 
+\fBPageLastPage 'G'\fP
+Go to the end of the article.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Display the subject of the current article in the last line.
+.TP 
+\fBToggleInverseVideo 'I'\fP
+Toggle inverse video.
+.TP 
+\fBPageKillThd 'K'\fP
+Mark rest of thread as read and move onto the next unread thread.
+.TP 
+\fBPageListThd 'l'\fP
+Show the thread menu that the current article is a part of.
+.TP 
+\fBLookupMessage 'L'\fP
+Look up article by \*(rqMessage\-ID:\*(rq.
+.TP 
+\fBPageMail 'm'\fP
+Mail current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to someone. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBOptionMenu 'M'\fP
+User configurable options menu (for more information see section "GLOBAL
+OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES").
+.TP 
+\fBPageNextArt 'n'\fP
+Go to the next article.
+.TP 
+\fBPageNextUnreadArt 'N'\fP
+Go to the next unread article.
+.TP 
+\fBPrint 'o'\fP
+Send current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles to printer. See the section "MAILING
+PIPING PRINTING REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBPagePrevArt 'p'\fP
+Go to the previous article.
+.TP 
+\fBPagePrevUnreadArt 'P'\fP
+Go to the previous unread article.
+.TP 
+\fBQuit 'q'\fP
+Return to the previous level.
+.TP 
+\fBQuitTin 'Q'\fP
+Quit \fBtin\fP \- don't ask the user to confirm.
+.TP 
+\fBPageReplyQuote 'r'\fP
+Reply through mail to the author of the current article with a copy of the
+article included.
+.TP 
+\fBPageReply 'R'\fP
+Reply through mail to the author of the current article without including
+the original article.
+.TP 
+\fBPageSave 's'\fP
+Save current article / thread / auto\-selected (hot) articles / articles
+matching pattern / tagged articles. See the section "MAILING PIPING PRINTING
+REPOSTING AND SAVING ARTICLES" for more information.
+.TP 
+\fBPageAutoSave 'S'\fP
+Save marked articles automatically without further prompting.
+.TP 
+\fBPageTag 't'\fP
+Toggle tag status of current article for mailing, piping, printing, saving
+or reposting.
+.TP 
+\fBPageGroupSel 'T'\fP
+Return to group selection level.
+.TP 
+\fBPageGotoParent 'u'\fP
+Go to parent article.
+.TP 
+\fBPageViewUrl 'U'\fP
+Display a list of URLs of the current article. See the section "URL LISTING"
+for more information.
+.TP 
+\fBPageViewAttach 'V'\fP
+Display a list of attachments of the current article. See the section
+"ATTACHMENT LISTING" for more information.
+.TP 
+\fBPost 'w'\fP
+Post an article to the current group. If posting fails for some reason,
+you'll get the chance to edit the article again via \fBPostEdit\fP ('\fBe\fP'),
+postpone it for later processing via \fBPostPostpone\fP ('\fBo\fP') (see also
+\&\*(rq\fB\-o\fP\*(rq command\-line switch) or discard it via \fBQuit\fP ('\fBq\fP').
+.TP 
+\fBPageRepost 'x'\fP
+Repost an already posted article / thread / auto\-selected (hot) articles /
+articles matching pattern / tagged articles to another newsgroup(s). Useful
+for reposting from global to local newsgroups. Do not use this to crosspost
+your own articles.
+.TP 
+\fBMarkArtUnread 'z'\fP
+Mark article as unread.
+.TP 
+\fBMarkThdUnread 'Z'\fP
+.\"--------------------------------------------------------------------
+.\"
+Mark the current thread as unread.
+.SS "URL LISTING"
+\fBPageViewUrl\fP ('\fBU\fP') displays a list of URLs of the current
+article. Besides the common moving keys, the following commands are
+available:
+.RS 4
+.TP  10
+\fBUrlSelect '^J' '<CR>'\fP
+The current URL will be prompted and opened using the
+\fBurl_handler\fP. '\fB<ESC>\fP' or no input will skip the URL.
+.TP 
+\fBSearchSubjF '/'\fP
+URL forward search.
+.TP 
+\fBSearchSubjB '?'\fP
+URL backward search.
+.TP 
+\fBSearchRepeat '\e'\fP
+Repeat the previous search.
+.TP 
+\fBShellEscape '!'\fP
+Shell escape.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Toggle the display of the current URL in the last line.
+.TP 
+\fBHelp 'h'\fP
+Help screen of commands available.
+.TP 
+\fBToggleHelpDisplay 'H'\fP
+Toggle the display of help mini menu at the bottom of the screen.
+.RE
+.\"--------------------------------------------------------------------
+.\"
+.SS "ATTACHMENT LISTING"
+\fBPageViewAttach\fP ('\fBV\fP') displays a list of attachments of the current
+article. Besides the common moving keys, the following commands are
+available:
+.RS 4
+.TP  10
+\fBAttachPipe 'p'\fP
+Pipe attachment into command.
+.TP 
+\fBAttachSave 's'\fP
+Save current attachment / tagged attachments to disk.
+.TP 
+\fBAttachSelect '^J' '<CR>'\fP
+View attachment.
+.TP 
+\fBAttachTag 't'\fP
+Tag one or more attachments for saving.
+.TP 
+\fBAttachTagPattern '='\fP
+Prompts for a pattern to match. All attachments whose name/description or
+content type/transfer encoding match the pattern will be tagged.
+.TP 
+\fBAttachToggleTagged '@'\fP
+Reverse tagging of all attachments.
+.TP 
+\fBAttachUntag 'U'\fP
+Untag all tagged attachments.
+.TP 
+\fBSearchSubjF '/'\fP
+Attachment forward search.
+.TP 
+\fBSearchSubjB '?'\fP
+Attachment backward search.
+.TP 
+\fBSearchRepeat '\e'\fP
+Repeat the previous search.
+.TP 
+\fBGlobalPipe '|'\fP
+Pipe attachment into command. Uses the raw attachment, no decoding is done.
+.TP 
+\fBShellEscape '!'\fP
+Shell escape.
+.TP 
+\fBToggleInfoLastLine 'i'\fP
+Toggle the display of the name/description of the current attachment in the
+last line.
+.TP 
+\fBHelp 'h'\fP
+Help screen of commands available.
+.TP 
+\fBToggleHelpDisplay 'H'\fP
+Toggle the display of help mini menu at the bottom of the screen.
+.RE
+.\"--------------------------------------------------------------------
+.\"
+.SS "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+.\" FIXME - add missing descriptions
+At startup, \fBtin\fP reads in the configuration files (see also \fBtin\fP(5)). 
+They contain a list of variables that can be used to configure the way
+\fBtin\fP works. If it exists, the global configuration file,
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fP is read. After that, the user's own
+configuration file is read from \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP. The
+global file is useful for distributing system\-wide defaults to new users who
+have no private tinrc yet.
+.PP
+The variables are user configurable by editing
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP directly. Most of them can also be set
+in the GLOBAL OPTIONS MENU which is accessed by pressing \fBOptionMenu\fP
+('\fBM\fP') at all levels. It allows the user to customise the behaviour of
+\fBtin\fP. The options are saved to the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP when you exit \fBtin\fP so don't edit the
+file directly whilst \fBtin\fP is running.
+.PP
+In the options menu use the cursor keys in the usual way to move around. Use
+\fBConfigSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') to 'open' the option you wish
+to change. You will need to enter a new value or use '\fB<SPACE>\fP' to
+toggle the available options. \fBConfigSelect\fP will save the new value,
+\&'\fB<ESC>\fP' will abort without saving changes.
+.PP
+As with the other menus, \fBRedrawScr\fP ('\fB^L\fP') will redraw the screen. You
+can use \fBSearchSubjF\fP ('\fB/\fP'), \fBSearchSubjB\fP ('\fB?\fP') and \fBSearchRepeat\fP
+('\fB\e\fP') to search for a specific option. Use \fBQuit\fP ('\fBq\fP') to exit the
+option menu and keep your changes. Use \fBQuitTin\fP ('\fBQ\fP') to exit without
+keeping your changes.
+.PP
+The options menu provides access to the attributes menu for the current
+group by the \fBConfigToggleAttrib\fP ('\fB<TAB>\fP') command. Pressing
+\fBConfigToggleAttrib\fP again toggles back to the options menu. For more
+information see section "ATTRIBUTES MENU AND GROUP ATTRIBUTES".
+.PP
+The \fBConfigScopeMenu\fP ('\fBS\fP') command brings up the scopes menu. For more
+information see section "SCOPES MENU".
+.PP
+Here is a full list of all the available variables. The name in braces is
+the name of the corresponding setting in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP.
+.TP  4
+\fBAbbreviate long newsgroup names (abbreviate_groupname)\fP
+If ON abbreviate long newsgroup names at group selection level and article
+level (if necessary) like this: news.software.readers \->
+n.software.readers \-> n.s.readers \-> n.s.r.  Default is OFF.
+.TP 
+\fBAdd posted articles to filter (add_posted_to_filter)\fP
+If ON add posted articles which start a new thread to filter for
+highlighting follow\-ups. Default is ON.
+.TP 
+\fBInsert 'User\-Agent:'\-header (advertising)\fP
+Turn ON advertising in header (\*(rqUser\-Agent:\*(rq). Default is ON.
+.TP 
+\fBSkip multipart/alternative parts (alternative_handling)\fP
+If ON strip multipart/alternative messages automatically. Default is ON.
+.TP 
+\fBCharacter to show deleted articles (art_marked_deleted)\fP
+The character used to show that an article was deleted. Default is 'D'.
+.TP 
+\fBCharacter to show inrange articles (art_marked_inrange)\fP
+The character used to show that an article is in a range. Default is '#'.
+.TP 
+\fBCharacter to show returning arts (art_marked_return)\fP
+The character used to show that an article will return as an unread article
+when the group is next entered. Default is '\-'.
+.TP 
+\fBCharacter to show selected articles (art_marked_selected)\fP
+The character used to show that an article/thread is auto\-selected (hot). 
+Default is '*'.
+.TP 
+\fBCharacter to show recent articles (art_marked_recent)\fP
+The character used to show that an article/thread is recent (not older than
+X days). See also \fBrecent_time\fP. Default is 'o'.
+.TP 
+\fBCharacter to show unread articles (art_marked_unread)\fP
+The character used to show that an article has not been read. Default is
+\&'+'.
+.TP 
+\fBCharacter to show read articles (art_marked_read)\fP
+The character used to show that an article was read. Default is ' '.
+.TP 
+\fBCharacter to show killed articles (art_marked_killed)\fP
+The character used to show that an article was killed. Default is 'K'. 
+\fBkill_level\fP must be set accordingly.
+.TP 
+\fBCharacter to show read selected arts (art_marked_read_selected)\fP
+The character used to show that an article was hot before it was read. 
+Default is ':'. \fBkill_level\fP must be set accordingly.
+.TP 
+\fBAsk before using MIME viewer (ask_for_metamail)\fP
+If ON \fBtin\fP will ask before using a MIME viewer (\fBmetamail_prog\fP) to
+display MIME messages. This only occurs if a MIME viewer is set. Default is
+OFF.
+.TP 
+\fBSend you a cc and/or bcc automatically (auto_cc_bcc)\fP
+Automatically put your name in the \*(rqCc:\*(rq and/or \*(rqBcc:\*(rq field when
+mailing an article. Default is No.
+.TP 
+\fBList thread using right arrow key (auto_list_thread)\fP
+If ON automatically list thread when entering it using right arrow key. 
+Default is ON.
+.TP 
+\fBReconnect to server automatically (auto_reconnect)\fP
+Default is OFF.
+.TP 
+\fBUse Archive\-name: header for save (auto_save)\fP
+If ON articles/threads with \*(rqArchive\-name:\*(rq in header will be
+automatically saved with the Archive\-name & part/patch no and post processed
+if \fBpost_process_type\fP is set to something other than 'No'.  Default is
+OFF.
+.TP 
+\fBSave articles in batch mode (batch_save)\fP
+If set ON articles/threads will be saved in batch mode when save \&\*(rq\fB\-S\fP\*(rq
+or mail \*(rq\fB\-M\fP, \fB\-N\fP\*(rq is specified on the command line. Default is ON.
+.TP 
+\fBShow mini menu & posting etiquette (beginner_level)\fP
+If set ON a mini menu of the most useful commands will be displayed at the
+bottom of the screen for each level. Also a short posting etiquette will be
+displayed after composing an article. Default is ON.
+.TP 
+\fBCache NNTP overview files locally (cache_overview_files)\fP
+If ON, create local copies of NNTP overview files. This can be used to
+considerably speed up accessing large groups when using a slow connection. 
+See also "INDEX FILES". Default is OFF.
+.TP 
+\fBCatchup read groups when quitting (catchup_read_groups)\fP
+.\"
+.\" FIXME - I leave this to someone who's using colors
+If set ON the user is asked when quitting if all groups read during the
+current session should be marked read. Default is OFF.
+.TP 
+\fBStandard background colour (col_back)\fP
+Standard background colour
+.TP 
+\fBColour of sender (From:) (col_from)\fP
+Colour of sender (From:)
+.TP 
+\fBColour of article header lines (col_head)\fP
+Colour of header\-lines
+.TP 
+\fBColour of help text (col_help)\fP
+Colour of help pages
+.TP 
+\fBColour for inverse text (background) (col_invers_bg)\fP
+Colour of background for inverse text
+.TP 
+\fBColour for inverse text (foreground) (col_invers_fg)\fP
+Colour of foreground for inverse text
+.TP 
+\fBColour of highlighting with _dash_ (col_markdash)\fP
+Colour of words emphasized like _this_. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBColour of highlighting with /slash/ (col_markslash)\fP
+Colour of words emphasized like /this/. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBColour of highlighting with *stars* (col_markstar)\fP
+Colour of words emphasized like *this*. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBColour of highlighting with \-stroke\- (col_markstroke)\fP
+Colour of words emphasized like \-this\-. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBColour of mini help menu (col_minihelp)\fP
+Colour of mini help menu
+.TP 
+\fBColour of actual news header fields (col_newsheaders)\fP
+Colour of actual news header fields
+.TP 
+\fBStandard foreground colour (col_normal)\fP
+Standard foreground colour
+.TP 
+\fBColour of quoted lines (col_quote)\fP
+Colour of quoted lines
+.TP 
+\fBColour of twice quoted line (col_quote2)\fP
+Colour of twice quoted lines
+.TP 
+\fBColour of =>3 times quoted line (col_quote3)\fP
+Colour of >=3 times quoted lines
+.TP 
+\fBColour of response counter (col_response)\fP
+Colour of response counter. This is the text that says "Response x of y" in
+the article viewer.
+.TP 
+\fBColour of signatures (col_signature)\fP
+Colour of signatures
+.TP 
+\fBColour of urls highlight (col_urls)\fP
+Colour of urls highlight
+.TP 
+\fBColour of verbatim blocks (col_verbatim)\fP
+Colour of verbatim blocks
+.TP 
+\fBColour of article subject lines (col_subject)\fP
+Colour of article subject
+.TP 
+\fBColour of text lines (col_text)\fP
+Colour of text\-lines
+.TP 
+\fBColour of help/mail sign (col_title)\fP
+Colour of help/mail sign
+.TP 
+\fBWhich actions require confirmation (confirm_choice)\fP
+Ask for manual confirmation to protect the user.
+.RS +.5i
+.IP \(bu 3
+.\" TODO: check if all affected commands are marked [after confirmation]
+\fBcommands\fP Ask for confirmation before executing certain dangerous commands
+(e.g., \fBCatchup\fP ('\fBc\fP')). Commands that this affects are marked in this
+manual with '[after confirmation]'. Default is commands & quit.
+.IP \(bu
+\fBquit\fP You'll be asked to confirm that you wish to exit \fBtin\fP when you use
+the \fBQuit\fP ('\fBq\fP') command.
+.IP \(bu
+\fBselect\fP Ask for confirmation before marking all not selected (with
+\fBGroupMarkUnselArtRead\fP ('\fBX\fP') command) articles as read.
+.RE
+.TP 
+\fBFormat string for display of dates (date_format)\fP
+.\"
+.\" most of these default_* settings are not available from the menu
+.\" as they are intended for internal use only.
+Format string \fBtin\fP uses for date representation. A description of the
+different format options can be found at \fBstrftime\fP(3).  \fBtin\fP uses
+\fBstrftime\fP(3)  when available and supports most format options in his
+fallback code.  Default is "%a, %d %b %Y %H:%M:%S".
+.TP 
+\fB(default_art_search)\fP
+.TP 
+\fB(default_author_search)\fP
+.TP 
+\fB(default_config_search)\fP
+The last article/author/config option that was searched for.
+.TP 
+\fB(default_filter_days)\fP
+Default is 28.
+.TP 
+\fB(default_filter_kill_case)\fP
+Default for quick (1 key) kill filter case.  ON = filter case sensitive, OFF
+= ignore case. Default is OFF.
+.TP 
+\fB(default_filter_kill_expire)\fP
+Default for quick (1 key) kill filter expire.  ON = limit to
+\fBdefault_filter_days\fP, OFF = don't ever expire. Default is OFF.
+.TP 
+\fB(default_filter_kill_global)\fP
+Default for quick (1 key) kill filter global.  ON=apply to all groups,
+OFF=apply to current group. Default is ON.
+.TP 
+\fB(default_filter_kill_header)\fP
+Default for quick (1 key) kill filter header.
+.RS +.5i
+.IP 0 4
+ \*(rqSubject:\*(rq (case sensitive)
+.IP 1
+ \*(rqSubject:\*(rq (ignore case)
+.IP 2
+ \*(rqFrom:\*(rq (case sensitive)
+.IP 3
+ \*(rqFrom:\*(rq (ignore case)
+.IP 4
+ \*(rqMessage\-ID:\*(rq & full \*(rqReferences:\*(rq line
+.IP 5
+ \*(rqMessage\-ID:\*(rq & last \*(rqReferences:\*(rq entry only
+.IP 6
+ \*(rqMessage\-ID:\*(rq entry only
+.IP 7
+ \*(rqLines:\*(rq
+.RE
+.TP 
+\fB(default_filter_select_case)\fP
+Default for quick (1 key) auto\-selection filter case. ON=filter case
+sensitive, OFF=ignore case. Default is OFF.
+.TP 
+\fB(default_filter_select_expire)\fP
+Default for quick (1 key) auto\-selection filter expire.  ON = limit to
+\fBdefault_filter_days\fP, OFF = don't ever expire.  Default is OFF.
+.TP 
+\fB(default_filter_select_global)\fP
+Default for quick (1 key) auto\-selection filter global.  ON=apply to all
+groups OFF=apply to current group. Default is ON.
+.TP 
+\fB(default_filter_select_header)\fP
+Default for quick (1 key) auto\-selection filter header.
+.RS +.5i
+.IP 0 4
+ \*(rqSubject:\*(rq (case sensitive)
+.IP 1
+ \*(rqSubject:\*(rq (ignore case)
+.IP 2
+ \*(rqFrom:\*(rq (case sensitive)
+.IP 3
+ \*(rqFrom:\*(rq (ignore case)
+.IP 4
+ \*(rqMessage\-ID:\*(rq & full \*(rqReferences:\*(rq line
+.IP 5
+ \*(rqMessage\-ID:\*(rq & last \*(rqReferences:\*(rq entry only
+.IP 6
+ \*(rqMessage\-ID:\*(rq entry only
+.IP 7
+ \*(rqLines:\*(rq
+.RE
+.TP 
+\fB(default_goto_group)\fP
+.TP 
+\fB(default_group_search)\fP
+.TP 
+\fB(default_mail_address)\fP
+.TP 
+\fB(default_move_group)\fP
+.TP 
+\fB(default_pattern)\fP
+.TP 
+\fB(default_pipe_command)\fP
+.TP 
+\fB(default_post_newsgroups)\fP
+.TP 
+\fB(default_post_subject)\fP
+.TP 
+\fB(default_range_group)\fP
+.TP 
+\fB(default_range_select)\fP
+.TP 
+\fB(default_range_thread)\fP
+.TP 
+\fB(default_repost_group)\fP
+.TP 
+\fB(default_save_file)\fP
+.TP 
+\fB(default_save_mode)\fP
+.TP 
+\fB(default_select_pattern)\fP
+.TP 
+\fB(default_shell_command)\fP
+.TP 
+\fB(default_subject_search)\fP
+.TP 
+\fBDraw \-> instead of highlighted bar (draw_arrow)\fP
+Allows groups/articles to be selected by an arrow '\->' if set ON or by
+an highlighted bar if set OFF. Default is OFF.
+.TP 
+\fBInvocation of your editor (editor_format)\fP
+The format string used to create the editor start command with parameters. 
+Default is "%E +%N %F" (i.e., /bin/vi +7 .article).
+.TP 
+\fBForce redraw after certain commands (force_screen_redraw)\fP
+Specifies whether a screen redraw should always be done after certain
+external commands. Default is OFF.
+.TP 
+\fBNumber of articles to get (getart_limit)\fP
+If \fBgetart_limit\fP is > 0 not more than \fBgetart_limit\fP articles/group
+are fetched from the server. If \fBgetart_limit\fP is < 0 \fBtin\fP will start
+fetching articles from your first unread minus absolute value of
+\fBgetart_limit\fP. Default is 0, which means no limit.
+.TP 
+\fBCatchup group using left key (group_catchup_on_exit)\fP
+If ON catchup group when leaving with the left arrow key. Default is ON.
+.TP 
+\fBGo to the next unread article with (goto_next_unread)\fP
+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 
+\fBMax. length of group names shown (groupname_max_length)\fP
+Maximum length of the names of newsgroups to be displayed so that more of
+the newsgroup description can be displayed. Default is 32.
+.TP 
+\fBDisplay uue data as an attachment (hide_uue)\fP
+If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then
+sections of uuencoded data will be shown with a single tag line showing the
+size and filename (much the same as a MIME attachment). If set to 'Hide all'
+then any line that looks like uuencoded data will be folded into a tag
+line.  This is useful when uuencoded data is split across more than one
+article but can also lead to false positives. This setting can also be
+toggled in the article viewer. Default is 'No'.
+.TP 
+\fBExternal inews (inews_prog)\fP
+Path, name and options of external \fBinews\fP(1).  If you are reading via NNTP
+the default value is \-\-internal (use built\-in NNTP inews), else it is "inews
+\-h". The article is passed to \fBinews_prog\fP on STDIN via '< article'.
+.TP 
+\fB(info_in_last_line)\fP
+.\" this is missing from the Menu
+If ON, show current group description or article subject in the last line
+(not in the pager and global menu) \- \fBToggleInfoLastLine\fP ('\fBi\fP')  toggles
+setting. This facility is useful as the full width of the screen is
+available to display long subjects. Default is OFF.
+.TP 
+\fBUse interactive mail reader (interactive_mailer)\fP
+Interactive mailreader: if greater than 0 your mailreader will be invoked
+earlier for reply so you can use more of its features (e.g. MIME, pgp,
+\&...). 1 means include headers, 2 means don't include headers (old
+use_mailreader_i=ON option). 0 turns off usage. This option has to suit
+\fBmailer_format\fP. Default is 0.
+.TP 
+.\" TODO: fix menu description
+.\"       mono_mark* currently do allow "Reverse video" even if
+.\"       inverse_okay=FALSE
+\fBUse inverse video for page headers (inverse_okay)\fP
+If ON use inverse video for page headers and URL highlighting.  Default is
+ON.
+.TP 
+\fBKeep failed arts in ~/dead.articles (keep_dead_articles)\fP
+If ON keep all failed postings in \fI${TIN_HOMEDIR:\-"$HOME"}/dead.articles\fP
+besides keeping the last failed posting in
+\fI${TIN_HOMEDIR:\-"$HOME"}/dead.article\fP. Default is ON.
+.TP 
+\fBFilter which articles (kill_level)\fP
+This option controls the processing and display of articles that are
+killed.  There are 3 options:
+.RS +.5i
+.IP 0 3
+\fBKill only unread arts\fP is the 'traditional' behaviour of \fBtin\fP. Only
+unread articles are killed once only by marking them read. As filtering only
+happens on unread articles with \fBkill_level\fP set to 0, \fBart_marked_killed\fP
+and \fBart_marked_read_selected\fP are only shown once. When you reenter the
+group the mark will be gone.
+.IP 1
+\fBKill all arts & show with K\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles are threaded as normal but they will be marked with
+\fBart_marked_killed\fP.
+.IP 2
+\fBKill all arts and never show\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles simply does not get displayed at all.
+.RE
+Default is 0 (\fBKill only unread arts\fP).
+.TP 
+\fBUse 8bit characters in mail headers (mail_8bit_header)\fP
+Allows 8bit characters unencoded in the header of mail message. Default is
+OFF. Turning it ON is effective only if \fBmail_mime_encoding\fP is also set to
+8bit. Leaving it OFF is safe for most users and compliant to Internet Mail
+Standard (\fBRFC5322\fP and \fBRFC2047\fP). Default is OFF.
+.TP 
+\fBMail address (mail_address)\fP
+User's mail address (and full name), if not username@host. This is used when
+creating articles, sending mail and when \fBpgp\fP(1)  signing.
+.TP 
+\fBMIME encoding in mail messages (mail_mime_encoding)\fP
+MIME encoding of the body in mail message, if necessary (8bit, base64,
+quoted\-printable, 7bit). Default is quoted\-printable.
+.TP 
+\fBQuote line when mailing (mail_quote_format)\fP
+Format of quote line when replying (via mail) to an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "In article %M you wrote:"
+.TP 
+\fBFormat of the mailbox (mailbox_format)\fP
+Select one of the following mailbox\-formats: MBOXO (default, except for
+SCO), MBOXRD or MMDF (default on SCO). See \fBmbox\fP(5)  for more details on
+MBOXO and MBOXRD and \fBmmdf\fP(5)  for more details about MMDF.
+.TP 
+\fBMail directory (maildir)\fP
+The directory where articles/threads are to be saved in \fBmbox\fP(5) 
+format. This feature is mainly for use with the \fBelm\fP(1)  mail program. It
+allows the user to save articles/threads/groups simply by giving '=' as the
+filename to save to.  Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fP.
+.TP 
+\fBInvocation of your mail command (mailer_format)\fP
+.\" TODO: document %S, %T, %M, %F, %U ...
+The format string used to create the mailer command with parameters that is
+used for mailing articles to other people. Default is '%M "%T" < %F'
+(e.g., /bin/mail "iain" < .article). The flexible format allows other
+mailers with different command\-line parameters to be used such as 'elm \-s
+"%S" "%T" < "%F"' (e.g., elm \-s "subject" "iain" < .article) or
+\&'sendmail \-oi \-oem \-t < %F' (e.g. sendmail \-oi \-oem \-t < .article).
+.TP 
+\&\fB'Mark as (un)read' ignores tags (mark_ignore_tags)\fP
+When this is ON, the \fBGroupMarkThdRead\fP ('\fBK\fP'), \fBThreadMarkArtRead\fP
+('\fBK\fP'), \fBMarkThdUnread\fP ('\fBZ\fP') at Group level and \fBMarkArtUnread\fP
+('\fBz\fP') at Thread level functions mark just the current article or thread,
+ignoring other tagged, (un)read articles. When OFF, the same function
+presents a menu with choices of the current thread or article, all tagged,
+unread articles, or nothing.
+.TP 
+\fBMark saved articles/threads as read (mark_saved_read)\fP
+If ON mark articles that are saved as read. Default is ON.
+.TP 
+\fBViewer program for MIME articles (metamail_prog)\fP
+Path, name and options of external \fBmetamail\fP(1)  program used to view
+non\-textual parts of articles.  To use the built\-in viewer, set to
+\-\-internal. This is the default value when \fBmetamail\fP(1)  is not
+installed. Leave it blank if you don't want any automatic viewing of
+non\-textual attachments. The 'V' command can always be used to manually view
+any attachments.  See also \fBask_for_metamail\fP.
+.TP 
+\fBMM_CHARSET (mm_charset)\fP
+Charset supported locally, which is also used for MIME header (charset
+parameter and charset name in header encoding) in mail and news postings. If
+\fBMIME_STRICT_CHARSET\fP is defined at compile time, text in charset other
+than the value of this parameter is considered not displayable and
+represented as '?'. Otherwise, all character sets are regarded as compatible
+with the display. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined. If your system supports \fBiconv\fP(3), this option
+is disabled and you should use \fBmm_network_charset\fP instead.
+.TP 
+\fBMM_NETWORK_CHARSET (mm_network_charset)\fP
+Charset used for posting and MIME headers; replaces \fBmm_charset\fP. 
+Conversion between \fBmm_network_charset\fP and local charset (determined via
+\fBnl_langinfo\fP(3))  is done via \fBiconv\fP(3), if this function is not
+available on your system this option is disabled and you have to use
+\fBmm_charset\fP instead. \fBmm_network_charset\fP is limited to one of the
+following charsets:
+.in +.3i
+US\-ASCII, ISO\-8859\-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8\-{R,U,RU}
+EUC\-{CN,JP,KR,TW}, ISO\-2022\-{CN,CN\-EXT,JP,JP\-1,JP\-2}, Big5, UTF\-8
+.in -.3i
+Not all values might work on your system, see \fBiconv_open\fP(3)  for more
+details. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined.
+.TP 
+\fBAttribute of highlighting with _dash_ (mono_markdash)\fP
+Character attribute of words emphasized like _this_. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBAttribute of highlighting with /slash/ (mono_markslash)\fP
+Character attribute of words emphasized like /this/. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBAttribute of highlighting with *stars* (mono_markstar)\fP
+Character attribute of words emphasized like *this*. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBAttribute of highlighting with \-stroke\- (mono_markstroke)\fP
+Character attribute of words emphasized like \-this\-. It depends on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fB(newnews)\fP
+These are internal timers used by \fBtin\fP to keep track of new newsgroups. 
+Do not change them unless you understand what they are for.
+.TP 
+\fBDisplay these header fields (or *) (news_headers_to_display)\fP
+Which news headers you wish to see. If you want to see _all_ the headers,
+place an '*' as this value. This is the only way a wildcard can be used.  If
+you enter 'X\-' as the value, you will see all headers beginning with 'X\-'
+(like X\-Alan or X\-Pape). You can list more than one by delimiting with
+spaces. Not defining anything turns off this option.
+.TP 
+\fBDo not display these header fields (news_headers_to_not_display)\fP
+Same as \fBnews_headers_to_display\fP except it denotes the opposite. An
+example of using both options might be if you thought X\- headers were A Good
+Thing(tm), but thought Alan and Pape were miscreants... well then you would
+do something like this: \fInews_headers_to_display=X\-\fP
+\fInews_headers_to_not_display=X\-Alan X\-Pape\fP.  Not defining anything turns
+off this option.
+.TP 
+\fBQuote line when following up (news_quote_format)\fP
+Format of quote line when posting/following up an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "%F wrote:".
+.TP 
+\fBUnicode normalisation form (normalization_form)\fP
+The normalisation form \fBtin\fP should use to normalise unicode input.  The
+possible values are:
+.RS +.5i
+.IP 0 3
+\fBNone\fP: no normalisation
+.IP 1
+\fBNFKC\fP: Compatibility Decomposition, followed by Canonical Composition
+.IP 2
+\fBNFKD\fP: Compatibility Decomposition
+.IP 3
+\fBNFC\fP: Canonical Decomposition, followed by Canonical Composition
+.IP 4
+\fBNFD\fP: Canonical Decomposition
+.RE
+Some normalisation modes are only available if they are supported by the
+library \fBtin\fP uses to do the normalisation. Default is NFKC.
+.TP 
+\fBGo to first unread article in group (pos_first_unread)\fP
+If ON put cursor at first unread article in group otherwise at last
+article. Default is ON.
+.TP 
+\fBUse 8bit characters in news headers (post_8bit_header)\fP
+Allows 8bit characters unencoded in the header of a news article, if set
+this also disables the generation of MIME\-headers when they are usually
+required. Default is OFF. Only enacted if \fBpost_mime_encoding\fP is also set
+to 8bit. In a number of local hierarchies where 8bit characters are used,
+using unencoded (raw)  8bit characters in header is acceptable and sometimes
+even recommended so that you need to check the convention adopted in the
+local hierarchy of your interest to determine what to do with this and
+\fBpost_mime_encoding\fP.
+.TP 
+\fBMIME encoding in news messages (post_mime_encoding)\fP
+MIME encoding of the body in news message, if necessary. (8bit, base64,
+quoted\-printable, 7bit). Default is 8bit, which leads to no encoding. base64
+and quoted\-printable are usually undesired on usenet.
+.TP 
+\fBView post\-processed files (post_process_view)\fP
+If ON, then \fBtin\fP will start an appropriate viewer program to display any
+files that were post processed and uudecoded. The program is determined
+using the mailcap file. Default is ON.
+.TP 
+\fBPost process saved articles (post_process_type)\fP
+This specifies whether to perform post processing on saved articles.  The
+following values are allowed:
+.RS +.5i
+.IP 0 3
+\fBNo\fP (default), no post processing is done.
+.IP 1
+\fBShell archives\fP, unpacking of multi\-part \fBshar\fP(1)  files only.
+.IP 2
+\fBYes\fP, binary attachments and data will be decoded and saved.
+.RE
+.TP 
+\fBFilename to be used for storing posted articles (posted_articles_file)\fP
+Keep posted articles in
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/\fP\fBposted_articles_file\fP.  If no filename is
+set then postings will not be saved.  Default is 'posted'.
+.TP 
+\fBPrint all headers when printing (print_header)\fP
+If ON, then the full article header is sent to the printer. Otherwise only
+the \*(rqSubject:\*(rq and \*(rqFrom:\*(rq fields are output. Default is OFF.
+.TP 
+\fBPrinter program with options (printer)\fP
+The printer program with options that is to be used to print articles.  The
+default is \fBlpr\fP(1)  for BSD machines and \fBlp\fP(1)  for SysV
+machines. Printing from \fBtin\fP may have been disabled by the System
+Administrator.
+.TP 
+\fBProcess only unread articles (process_only_unread)\fP
+If ON only save/print/pipe/mail unread articles (tagged articles excepted). 
+Default is OFF.
+.TP 
+\fBShow empty Followup\-To in editor (prompt_followupto)\fP
+If ON show empty \*(rqFollowup\-To:\*(rq header when editing an article. Default is
+OFF.
+.TP 
+\fBCharacters used as quote\-marks (quote_chars)\fP
+The character used in quoting included text to article followups and mail
+replies. The '_' character represents a blank character and is replaced with
+\&' ' when read. Default is '>_'.
+.TP 
+\fBQuoting behaviour (quote_style)\fP
+How articles should be quoted when following up or replying to them. There
+are a number of things that can be done: empty lines can be quoted,
+signatures can be quoted and quote_chars can be compressed when quoting
+multiple times (for example, '> > >' will be turned into
+\&'>>>'). The default is to compress quotes, and to quote empty
+lines.
+.br
+When you are viewing an article in raw mode ('\fB^H\fP'), and follow up or
+reply to it, the signature will be quoted even if it would otherwise not
+be.  If \fBshow_signatures\fP is off, then the signature will never be quoted.
+.TP 
+\fBRegex used to show quoted lines (quote_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote\fP. If \fBquote_regex\fP is blank, then
+\fBtin\fP uses a built\-in default.
+.TP 
+\fBRegex used to show twice quoted l. (quote_regex2)\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote2\fP. If \fBquote_regex2\fP is blank, then
+\fBtin\fP uses a built\-in default.
+.TP 
+\fBRegex used to show >= 3 times q.l. (quote_regex3)\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote3\fP. If \fBquote_regex3\fP is blank, then
+\fBtin\fP uses a built\-in default.
+.TP 
+\fBArticle recentness time limit (recent_time)\fP
+If set to 0, this feature is deactivated, otherwise it means the number of
+days. Default is 2.
+.TP 
+\fBRender BiDi (render_bidi)\fP
+If ON \fBtin\fP does the rendering of bi\-directional text. If OFF \fBtin\fP leaves
+the rendering of bi\-directional text to the terminal. Default is OFF.
+.TP 
+\fBInterval in seconds to reread active (reread_active_file_secs)\fP
+The news \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file is
+reread at regular intervals to show if any new news has arrived. Default is
+1200. Setting this to 0 will disable this feature.
+.TP 
+\fBDirectory to save arts/threads in (savedir)\fP
+Directory where articles/threads are saved. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP.
+.TP 
+\fBScore limit (kill) (score_limit_kill)\fP
+If the score of an article is below or equal this value the article gets
+marked as killed.
+.TP 
+\fBScore limit (select) (score_limit_select)\fP
+If the score of an article is above or equal this value the article gets
+marked as hot.
+.TP 
+\fBDefault score to kill articles (score_kill)\fP
+Score of an article which should be killed, this must be <=
+\fBscore_limit_kill\fP.
+.TP 
+\fBDefault score to select articles (score_select)\fP
+Score of an article which should be marked hot, this must be >=
+\fBscore_limit_select\fP.
+.TP 
+\fBNumber of lines to scroll in pager (scroll_lines)\fP
+The number of lines that will be scrolled up/down in the article pager when
+using cursor\-up/down. The default is 1 (line\-by\-line). Set to 0 to get
+traditional tin page\-by\-page scrolling. Set to \-1 to get page\-by\-page
+scrolling where the top/bottom line is carried over onto the next page. 
+This setting supersedes show_last_line_prev_page=ON. Set to \-2 to get
+half\-page scrolling. This setting supersedes full_page_scroll=OFF.
+.TP 
+\fBIn group menu, show author by (show_author)\fP
+Which information about the author should be shown. Default is 2, authors
+full name.
+.RS +.5i
+.IP 0 3
+\fBNone\fP, only the \*(rqSubject:\*(rq line will be displayed.
+.IP 1
+\fBAddress\fP, \*(rqSubject:\*(rq line & the address part of the \*(rqFrom:\*(rq line are
+displayed.
+.IP 2
+\fBFull Name\fP, \*(rqSubject:\*(rq line & the authors full name part of the
+\&\*(rqFrom:\*(rq line are displayed (default).
+.IP 3
+\fBAddress and Name\fP, \*(rqSubject:\*(rq line & all of the \*(rqFrom:\*(rq line are
+displayed.
+.RE
+.TP 
+\fBShow description of each newsgroup (show_description)\fP
+If ON show a short group description text after newsgroup name at the group
+selection level. The \*(rq\fB\-d\fP\*(rq command\-line flag will override the setting
+and turn descriptions off. The text used is taken from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP file and if supported (requires
+\fBtin\fP to be build with mh\-mail\-handling support) from
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP for mailgroups. Default is ON.
+.TP 
+\fBShow lines/score in listings (show_info)\fP
+Which information about the thread or article should be shown. Default is 1,
+show only the line count.
+.RS +.5i
+.IP 0 3
+\fBNone\fP, no information will be displayed.
+.IP 1
+\fBLines\fP, in article listing the line count of an article will be displayed
+and in thread listing the line count of first (unread) article will be
+displayed.
+.IP 2
+\fBScore\fP, in article listing the score of an article will be displayed and
+in thread listing the score of the thread will be displayed \- see also
+\fBthread_score\fP.
+.IP 3
+\fBLines & Score\fP, display line count and score.
+.RE
+.TP 
+\fBShow only unread articles (show_only_unread_arts)\fP
+If ON show only new/unread articles otherwise show all articles.  Default is
+ON.
+.TP 
+\fBShow only groups with unread arts (show_only_unread_groups)\fP
+If ON show only subscribed groups that contain unread articles. Default is
+OFF.
+.TP 
+\fBDisplay signatures (show_signatures)\fP
+If OFF don't show signatures when displaying articles.  Default is ON.
+.TP 
+\fBPrepend signature with '\en\-\- \en' (sigdashes)\fP
+If ON prepend the signature with sigdashes. Default is ON.
+.TP 
+\fBCreate signature from path/command (sigfile)\fP
+The path that specifies the signature file to use when posting, following up
+to or replying to an article. If the path is a directory then the signature
+will be randomly generated from files that are in the specified
+directory. If the path starts with a ! the program the path points to will
+be executed to generate a signature. \fBtin\fP will pass the name of the
+current newsgroup as argument to the program. \-\-none will suppress any
+signature.  Default is \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP.
+.TP 
+\fBAdd signature when reposting (signature_repost)\fP
+If ON add signature to reposted articles. Default is ON.
+.TP 
+\fBRegex used to highlight /slashes/ (slashes_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markslash\fP or \fBmono_markslash\fP. If
+\fBslashes_regex\fP is blank, then \fBtin\fP uses a built\-in default.
+.TP 
+\fBSort articles by (sort_article_type)\fP
+This specifies how articles should be sorted. Sort by ascending Date (6) is
+the default. The following sort types are allowed:
+.RS +.5i
+.IP 0 3
+\fBNothing\fP, don't sort articles.
+.IP 1
+\fBSubject: (descending)\fP, sort articles by \*(rqSubject:\*(rq field descending.
+.IP 2
+\fBSubject: (ascending)\fP, sort articles by \*(rqSubject:\*(rq field ascending.
+.IP 3
+\fBFrom: (descending)\fP, sort articles by \*(rqFrom:\*(rq field descending.
+.IP 4
+\fBFrom: (ascending)\fP, sort articles by \*(rqFrom:\*(rq field ascending.
+.IP 5
+\fBDate: (descending)\fP, sort articles by \*(rqDate:\*(rq field descending.
+.IP 6
+\fBDate: (ascending)\fP, sort articles by \*(rqDate:\*(rq field ascending (default).
+.IP 7
+\fBScore (descending)\fP, sort articles by filtering score descending.
+.IP 8
+\fBScore (ascending)\fP, sort articles by filtering score ascending.
+.IP 9
+\fBLines: (descending)\fP, sort articles by \*(rqLines:\*(rq field descending.
+.IP 10
+\fBLines: (ascending)\fP, sort articles by \*(rqLines:\*(rq field ascending.
+.RE
+.TP 
+\fBSort threads by (sort_threads_type)\fP
+This specifies how threads will be sorted. Sort by descending Score (1) is
+the default. The following sort types are allowed:
+.RS +.5i
+.IP 0 3
+\fBNothing\fP, don't sort threads.
+.IP 1
+\fBScore (descending)\fP, sort threads by filtering score descending (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 
+\fBSpamtrap warning address parts (spamtrap_warning_addresses)\fP
+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
+these strings. The matching is case\-insensitive. Example:
+.sp
+\fIspam,delete,remove\fP
+.TP 
+\fBRegex used to highlight *stars* (stars_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markstar\fP or \fBmono_markstar\fP. If
+\fBstars_regex\fP is blank, then \fBtin\fP uses a built\-in default.
+.TP 
+\fBStart editor with line offset (start_editor_offset)\fP
+Set ON if the editor used for posting, follow\-ups and bug reports has the
+capability of starting and positioning the cursor at a specified line within
+a file. Default is ON.
+.TP 
+\fBStrip blanks of end of lines (strip_blanks)\fP
+.\" only done in select/thread level, not in group level (nor in the pager)
+.\" IMHO we should remove it
+Strips the blanks from the end of each line therefore speeding up the
+display when reading on a slow terminal or via modem. Default is ON.
+.TP 
+\fBRemove bogus groups from newsrc (strip_bogus)\fP
+Bogus groups are groups that are present in your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file that no longer exist on the news
+server. There are 3 options. 0 means do nothing & always keep bogus groups. 
+1 means bogus groups will be permanently removed. 2 means that bogus groups
+will appear on the Group Selection Menu, prefixed with a 'D'. This allows
+you to unsubscribe from them as and when you wish. Default is 0 (Always
+Keep).
+.TP 
+\fBNo unsubscribed groups in newsrc (strip_newsrc)\fP
+If ON, then unsubscribed groups will be permanently removed from your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file. Default is OFF.
+.TP 
+\fBRegex used to highlight \-strokes\- (strokes_regex)\fP
+A regular expression that will be applied when reading articles. All
+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 
+\fBWrap around threads on next unread (wrap_on_next_unread)\fP
+If enabled a search for the next unread article will wrap around all
+articles to find also previous unread articles. If disabled the search stops
+at the end of the thread list. Default is ON.
+.TP 
+\fBDisplay "a as Umlaut\-a (tex2iso_conv)\fP
+If ON, show "a as Umlaut\-a, etc. Default is OFF. This behaviour can also be
+toggled in the article viewer via \fBPageToggleTex2iso\fP ('\fB"\fP').
+.TP 
+\fBThread articles by (thread_articles)\fP
+Defines which threading method to use. It's possible to set the threading
+type on a per group basis by setting the group attribute variable
+\fBthread_arts\fP to 0 \- 4 in the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP. (See also "GROUP ATTRIBUTES".) 
+The default is Both Subject and References.  The choices are:
+.RS +.5i
+.IP 0 3
+\fBNone\fP, don't thread.
+.IP 1
+\fBSubject\fP, thread on \*(rqSubject:\*(rq only.
+.IP 2
+\fBReferences\fP, thread on \*(rqReferences:\*(rq only.
+.IP 3
+\fBBoth Subject and References\fP, thread on \*(rqReferences:\*(rq then
+\&\*(rqSubject:\*(rq (default).
+.IP 4
+\fBMultipart Subject\fP, thread multipart articles on \*(rqSubject:\*(rq.
+.IP 5
+\fBPercentage Match\fP, thread base upon a partial character match on
+\&\*(rqSubject:\*(rq.
+.RE
+.TP 
+\fBCatchup thread by using left key (thread_catchup_on_exit)\fP
+If ON catchup group/thread when leaving with the left arrow key. Default is
+ON.
+.TP 
+\fBMatchingness of a thread (thread_perc)\fP
+How closely the subjects must match for two threads to be considered part of
+the same thread. This is a percentage and the default if 75%.
+.TP 
+\fBScore of a thread (thread_score)\fP
+How the total score of a thread is computed. Default is 0, the maximum score
+in this thread.
+.RS +.5i
+.IP 0 3
+\fBMax\fP, the maximum score in this thread.
+.IP 1
+\fBSum\fP, the sum of all scores in this thread.
+.IP 2
+\fBAverage\fP, the average score in this thread.
+.RE
+.TP 
+\fBTransliteration (translit)\fP
+If ON append //TRANSLIT to the first argument of \fBiconv_open\fP(3)  to enable
+transliteration. This means that when a character cannot be represented in
+the target character set, it can be approximated through one or several
+similarly looking characters. On systems where this extension doesn't exist,
+this option is disabled. Default is OFF.
+.TP 
+\fBHow to treat blank lines (trim_article_body)\fP
+Allows you to select how \fBtin\fP treats blank lines in article bodies. 
+Default is 0. This option does not affect lines within verbatim blocks.
+.RS +.5i
+.IP 0 3
+\fBDon't trim article body\fP, do nothing.
+.IP 1
+\fBSkip leading blank lines\fP.
+.IP 2
+\fBSkip trailing blank lines\fP.
+.IP 3
+\fBSkip leading and trailing blank l.\fP, skip leading and trailing blank
+lines.
+.IP 4
+\fBCompact multiple between text\fP, replace multiple blank lines between
+textblocks with one blank line.
+.IP 5
+\fBCompact multiple and skip leading\fP, 4 + 1
+.IP 6
+\fBCompact multiple and skip trailing\fP, 4 + 2
+.IP 7
+\fBCompact mltpl., skip lead. & trai.\fP, 4 + 3
+.RE
+.TP 
+\fBRegex used to highlight _underline_ (underscores_regex)\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markdash\fP or \fBmono_markdash\fP. If
+\fBunderscores_regex\fP is blank, then \fBtin\fP uses a built\-in default.
+.TP 
+\fBRemove ~/.article after posting (unlink_article)\fP
+If ON remove \fI~/.article\fP after posting. Default is ON.
+.TP 
+\fBProgram that opens URL's (url_handler)\fP
+The program that will be run when launching URL's in the article viewer
+using \fBPageViewUrl\fP ('\fBU\fP'). The actual URL will be appended to this. 
+Default is \fBurl_handler.pl %s\fP.
+.TP 
+\fBURL highlighting in message body (url_highlight)\fP
+Enable highlighting URLs in message body. Default is ON.
+.TP 
+\fBUse ANSI colour (use_color)\fP
+If enabled \fBtin\fP uses ANSI\-colours. Default is OFF.
+.TP 
+\fBUse scroll keys on keypad (use_keypad)\fP
+Default is OFF.
+.TP 
+\fBUse mouse in xterm (use_mouse)\fP
+Allows the mouse button support in a \fBxterm\fP(1x)  to be enabled/disabled. 
+Default is OFF.
+.TP 
+\fBUse slrnface to show \*(rqX\-Face:\*(rqs (use_slrnface)\fP
+If enabled \fBtin\fP uses \fBslrnface\fP(1)  to interpret the \*(rqX\-Face:\*(rq
+header. For this option to have any effect, \fBtin\fP must be running in an
+\fBxterm\fP(1x)  and \fBslrnface\fP(1)  must be in your $\fBPATH\fP. Default is OFF.
+.TP 
+\fBUse UTF\-8 graphics (utf8_graphics)\fP
+If ON use UTF\-8 characters for indicator ('\->'), thread/attachment tree
+and ellipsis ('...'). Default is OFF.
+.TP 
+\fBRegex for begin of a verbatim block (verbatim_begin_regex)\fP
+A regular expression that tin will use to find the begin of a verbatim
+block.
+.TP 
+\fBRegex for end of a verbatim block (verbatim_end_regex)\fP
+A regular expression that tin will use to find the end of a verbatim block.
+.TP 
+\fBDetection of verbatim blocks (verbatim_handling)\fP
+If ON verbatim blocks will be detected. Default is ON.
+.TP 
+\fBWildcard matching (wildcard)\fP
+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. 
+Setting this to 1 allows you to use \fBperl\fP(1)  compatible regular
+expressions \fBpcre\fP(3)  (see also \fBperlre\fP(1)  and \fBpcrepattern\fP(3)).  You
+will probably want to update your filter file if you use this regularly. 
+NB: Newsgroup names will always be matched using the wildmat notation.
+.TP 
+\fBWhat to display instead of mark (word_h_display_marks)\fP
+Should the leading and ending stars, slashes, strokes and dashes also be
+displayed, even when they are highlighting marks?
+.RS +.5i
+.IP 0 3
+\fBno\fP
+.IP 1
+yes, \fBdisplay mark\fP
+.IP 2
+print a \fBspace\fP instead
+.RE
+.TP 
+\fBWord highlighting in message body (word_highlight)\fP
+Enable word highlighting. See \fBword_h_display_marks\fP for the options
+available. If \fBuse_color\fP is enabled the colours specified in
+\fBcol_markdash\fP, \fBcol_markslash\fP, \fBcol_markstar\fP and \fBcol_markstroke\fP are
+used for word highlighting else the character attributes specified in
+\fBmono_markdash\fP, \fBmono_markslash\fP, \fBmono_markstar\fP and \fBmono_markstroke\fP
+are used. Default is ON.
+.TP 
+\fBPage line wrap column (wrap_column)\fP
+Sets the column at which a displayed article body should be wrapped.  If
+this value is equal to 0, it defaults to the current screen width.  If this
+value is greater than your current screen width the part off\-screen is not
+displayed. Thus setting this option to a large value can be used to disable
+wrapping. If this value is negative the wrap margin is the current screen
+width plus the given value (as long as the result is still positive,
+otherwise it will fall back to the current screen width). Default is 0,
+wrapping at the current screen width.
+.TP 
+\fBQuote line when cross\-posting (xpost_quote_format)\fP
+.\"
+.\"
+Format is the same as for \fBnews_quote_format\fP, this is used when answering
+to a crossposting to several groups with no \*(rqFollowup\-To:\*(rq set.
+.SS "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
+\fBtin\fP allows certain attributes to be set on a per group basis. If it
+exists, the global attributes file, \fI${TIN_LIBDIR:\-NEWSLIBDIR}/attributes\fP
+is read. After that, the user's own attributes file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP is read.  The global attributes
+file is useful for distributing system\-wide defaults to new users who have
+no private attributes file yet.
+.PP
+Note that the \fIscope=<grouplist>\fP line has to be specified before
+the attributes are specified for that list. All attributes are set to a
+reasonable default so you only have to specify the attribute that you want
+to change (e.g., savedir). All toggle attributes are set by specifying
+ON/OFF. Otherwise, these function exactly the same as their global
+equivalents. For more details see \fBtin\fP(5).
+.PP
+Attributes can also be changed from the attributes menu which can be
+accessed by \fBConfigToggleAttrib\fP ('\fB<TAB>\fP') from the options menu
+or \fBScopeSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') from the scopes menu.  The
+attributes menu looks and behaves very similar to the options menu. The
+title shows the current scope. Attributes set in the current scope are
+marked with '\+' to the left of the attributes number.
+.PP
+.\"
+.\"
+Besides the keys for moving around and changing values known from the
+options menu the attributes menu provides the following command:
+\fBConfigResetAttrib\fP ('\fBr\fP') which resets an attribute to a default value.
+.SS "SCOPES MENU"
+The scopes menu (accessible from the options menu with \fBConfigScopeMenu\fP
+('\fBS\fP')) shows all scopes read from the global and local attributes file. 
+Scopes from the global attributes file are marked with '!' to the left of
+the scope number. Delete/rename/move are not possible with those scopes.
+.PP
+.\"
+.\"
+In addition to the common moving keys the following commands are available:
+\fBScopeSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') enter the attributes menu for
+the current scope, \fBScopeEditAttributesFile\fP ('\fBE\fP') edit the local
+attributes file, \fBScopeAdd\fP ('\fBa\fP') add a new scope, \fBScopeDelete\fP
+('\fBd\fP') delete the current scope, \fBScopeMove\fP ('\fBm\fP') move the current
+scope to a new position, \fBScopeRename\fP ('\fBr\fP') rename the current
+scope. \fBToggleHelpDisplay\fP ('\fBH\fP') toggles the help mini menu at the
+bottom of the screen.
+.SS "FILTERING ARTICLES"
+.\" FIXME - add scoring description
+When there is a subject or an author which you are either very interested
+in, or find completely uninteresting, you can easily instruct \fBtin\fP to
+\fIauto\-select\fP or \fIauto\-kill\fP articles that match \fIrules\fP that you
+specify. This can be anything from the name of the author to the number of
+lines in an article.
+.PP
+When \fBtin\fP starts up the user's kill\-file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP (see also \fBtin\fP(5))  is read. Each
+time a newsgroup is entered the rules are applied and articles killed or
+selected when they meet certain criteria.
+.PP
+The degree to which rules are applied depend on the \fBkill_level\fP tinrc
+setting. By default killed articles will only be marked read. Adjust
+\fBkill_level\fP for more aggressive processing. Articles that match an
+auto\-selection rule are marked with a \*(rq*\*(rq.
+.PP
+Filtering rules can be manually entered into
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP (but don't do this whilst running
+\fBtin\fP else you will lose your changes) or by using an on\-screen menu within
+\fBtin\fP.
+.PP
+The filtering capabilities of \fBtin\fP have been significantly enhanced over
+previous versions to include scoring and better pattern matching. It is
+recommended that you read the file \fIfiltering\fP in the \fBtin\fP documentation
+directory. This file can also be read online at
+<http://www.tin.org/filtering.txt>.
+.PP
+.\" FIXME - Next paragraph is out of date
+.\"
+.\"
+The on\-screen filtering menu is accessed by pressing '\fB^K\fP' at the Group
+and Article levels. It allows the user to kill or select an article that
+matches the current \*(rqSubject:\*(rq line, \*(rqFrom:\*(rq line or a string entered by
+the user. The user entered string can be applied to the \*(rqSubject:\*(rq or
+\&\*(rqFrom:\*(rq lines of an article. The kill description can be limited to the
+current newsgroup or it can apply to all newsgroups. Once entered the user
+can abort the command and not save the kill description, edit the kill file
+or save the kill description.
+.SS "POSTING ARTICLES"
+\fBtin\fP allows posting of articles, follow\-up to already posted articles and
+replying direct through mail to the author of an article.
+.PP
+Use the \fBPost\fP ('\fBw\fP') command to post an article to a newsgroup.  After
+entering the post subject the default editor (i.e., \fBvi\fP(1))  or the editor
+specified by the $\fBVISUAL\fP or $\fBEDITOR\fP environment variable will be
+started and the article can be entered. To crosspost articles simply add a
+comma and the name of the newsgroup(s) to the end of the \*(rqNewsgroups:\*(rq
+line at the beginning of the article. After saving and exiting the editor
+you are asked if you wish to a)bort posting the article, e)dit the article
+again or p)ost the article to the specified newsgroup(s).
+.PP
+Use the \fBDisplayPostHist\fP ('\fBW\fP') command to display a history of the
+articles you have posted. The date the article was posted, which newsgroups
+the article was posted to and the articles subject line are displayed.
+.PP
+Use the \fBPageFollowupQuote\fP ('\fBf\fP'), \fBPageFollowup\fP ('\fBF\fP')  or
+\fBPageFollowupQuoteHeaders\fP ('\fB^W\fP') command to post a follow\-up article to
+an already posted article. The \fBPageFollowupQuote\fP command will copy the
+text of the original article into the editor. The
+\fBPageFollowupQuoteHeaders\fP command will copy the text and all headers of
+the original article into the editor. The editing procedure is the same as
+when posting an article with the \fBPost\fP ('\fBw\fP') command.
+.PP
+.\"
+.\"
+Use the \fBPageReplyQuote\fP ('\fBr\fP'), \fBPageReply\fP ('\fBR\fP') or
+\fBPageReplyQuoteHeaders\fP ('\fB^E\fP') command to reply direct through mail to
+the author of an already posted article. The \fBPageReplyQuote\fP command will
+copy the text of the original article into the editor. The
+\fBPageReplyQuoteHeaders\fP command will copy the text and all headers of the
+original article into the editor. The editing procedure is the same as when
+posting an article with the \fBPost\fP ('\fBw\fP') command. After saving and
+exiting the editor you are asked if you wish to abort sending the article
+via \fBPostAbort\fP ('\fBa\fP'), edit the article again via \fBPostEdit\fP ('\fBe\fP')
+or send the article to the author via \fBPostSend\fP ('\fBs\fP').
+.SS "CUSTOMIZING THE ARTICLE QUOTE STRING"
+When posting a followup to an article or replying direct to the author of an
+article via email the text of the article can be quoted. The beginning of
+the quoted text can contain information about the quoted article (e.g., Name
+and the Message\-ID of the article). To allow for different situations
+certain information from the article can be used in the quoted string. The
+following variables are expanded if found in the tinrc variables
+\fBmail_quote_format\fP, \fBnews_quote_format\fP or \fBxpost_quote_format\fP:
+.RS
+.nf
+.ta \w'%A  'u +\w'Address'u
+\fB%A\fP	Address (Email)
+\fB%D\fP	Date (uses \fBdate_format\fP)
+\fB%F\fP	Full address (%N <%A>)
+\fB%G\fP	Groupname
+\fB%M\fP	Message\-ID
+\fB%N\fP	Fullname of author
+\fB%C\fP	Firstname of author
+\fB%I\fP	Initials of author
+.fi
+.RE
+e.g.,
+.RS
+.nf
+\f(CWmail_quote_format=On %D in %G you wrote:
+news_quote_format=In %M, %F wrote:\fP
+.fi
+.RE
+would expand to:
+.RS
+.nf
+\f(CWOn 21 Sep 1993 09:45:51 \-0400 in alt.sources you wrote:
+In <abcINN123@example.org>, Joe Bar <joe@example.org> wrote:\fP
+.fi
+.RE
+.\"
+.\"
+The quoted text section of an article is marked by a preceding quote string
+at the beginning of each quoted line. The default quote string is set to
+\&'>_'. The default can be changed by setting the tinrc variable
+\fBquote_chars\fP to ones own preference. (Note that '_' underline is used to
+represent a space).
+.SS "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"
+The command interface to \fBGroupMail\fP, \fBPageMail\fP, \fBPostMail\fP or
+\fBThreadMail\fP ('\fBm\fP'), \fBPipe\fP ('\fB|\fP'), \fBPrint\fP ('\fBo\fP'), \fBPageRepost\fP
+or \fBGroupRepost\fP ('\fBx\fP') and \fBGroupSave\fP, \fBPageSave\fP or \fBThreadSave\fP
+('\fBs\fP' and \fBGroupAutoSave\fP, \fBPageAutoSave\fP or \fBThreadAutoSave\fP '\fBS\fP')
+articles is the same for ease of use.
+.PP
+Auto\-saving with \fB*AutoSave\fP ('\fBS\fP') is a special case and operates only
+on marked articles. They will processed without any further prompting
+according to the default save parameters defined in tinrc or by any
+attributes set for the current group.
+.PP
+Otherwise, the initial prompt will ask you to select which article, thread,
+hot (auto\-selected), regex pattern, tagged articles you wish to mail, pipe
+etc.
+.PP
+Tagged articles must have already been tagged with a \fB*Tag\fP ('\fBt\fP') 
+command. All tagged articles can be untagged by a \fB*Untag\fP ('\fBU\fP')  untag
+command.
+.PP
+If a regex pattern is selected you are asked to enter a pattern (e.g., to
+match all articles subject lines containing 'net News' you enter "net
+News"). Any articles that match the entered expression will be mailed, piped
+etc. See also the \fBwildcard\fP tinrc variable for advanced pattern matching
+options.
+.PP
+Various expansion characters are recognised when entering the directory and
+file to save to. Environment variables (prefixed with '$') and user home
+directories (prefixed by '~' or '~username') can be specified.  Environment
+variables can themselves contain other special characters.
+.PP
+To save articles to a mailbox enter '=<mailbox name>' when asked for
+the save filename. If you enter just '=' then articles will be saved to a
+mailbox with the name of the current newsgroup (eg, alt.sources).  See
+\fBmaildir\fP.
+.PP
+To save in savedir/<news.group.name>/<filename> format enter
+\&'+<filename>'.  Environment variables are allowed within a filename
+(e.g., \fI$SOURCES/dir/filename\fP). See \fBsavedir\fP.
+.PP
+.\"
+.\"
+When saving articles you can specify whether the saved files should be post
+processed. A default process type can be set via \fBpost_process_type\fP.
+.SS "AUTOMATIC MAILING AND SAVING NEW NEWS"
+\fBtin\fP allows new/unread news articles to be mailed (\*(rq\fB\-M\fP\*(rq and
+\&\*(rq\fB\-N\fP\*(rq option) or saved (\*(rq\fB\-S\fP\*(rq option) in batch mode for later
+reading. Useful when going on holiday and you don't want to return and find
+that expire has removed a whole load of unread articles. Best to run via
+\fBcron\fP(1)  everyday while away, after which you will be mailed a report of
+which articles were mailed/saved from which newsgroups and the total number
+of articles mailed/saved. Articles are saved in a private news structure
+under your <savedir> directory (default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP). Be careful of using this option if you
+read a lot of groups because you could overflow your file system.
+.PP
+When using \*(rq\fB\-S\fP\*(rq together with a given directory to save to (\*(rq\fB\-s\fP\*(rq
+option), the same directory must be specified when reading the articles by
+\&\*(rq\fB\-R\fP\*(rq.
+.PP
+If you only want to save some of your groups use the \fBbatch_save\fP tinrc
+variable. Set to ON or OFF in tinrc to enable/disable saving of all groups
+and then use the \fBbatch_save\fP attribute to fine tune which groups you want
+to have saved. For example, if you want to save most of your groups, then
+set \fBbatch_save\fP to ON in tinrc and selectively turn off the ones you don't
+want using attributes.
+.PP
+.TP  2i
+\fBtin \-M iain \-c \-f newsrc.mail\fP
+(mail any unread articles in newsgroups specified in file newsrc.mail to the
+local user iain and mark them as read)
+.PP
+.TP  2i
+\fBtin \-S \-c \-f newsrc.save\fP
+(save any unread articles in newsgroups specified in file newsrc.save and
+mark them as read)
+.PP
+.TP  2i
+\fBtin \-R\fP
+.\"
+.\"
+(read any articles saved by \fBtin \-S\fP)
+.SS RANGES
+A range is simply a group of items marked using the \fBSetRange\fP (\fB'#'\fP)
+key. Certain \fBtin\fP commands will operate on a range if one exists rather
+than just the current item. A range is an expression of the form
+<min>\-<max>, e.g. 10\-15 will highlight items 10 through 15
+on the current screen. Other than absolute numeric positions, '.' can be
+used in place of the current cursor position and '$' can be used to mean the
+highest number available. Currently the only commands that understand ranges
+are \fBGroupMarkThdRead\fP ('\fBK\fP'), \fBMarkArtUnread\fP ('\fBz\fP') and
+\fBMarkThdUnread\fP ('\fBZ\fP').
+.PP
+.SS "NEWSGROUP LISTS & WILDCARDS"
+Several places in \fBtin\fP allow you to specify a list of newsgroups. These
+include command\-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE
+mechanism. The scope= attributes file tag and the filter file group= tag
+also use the same syntax. \fBtin\fP interprets this variable similarly to
+\fBrn(1).\fP It contains a list of patterns, separated by commas and possibly
+prefixed with exclamation points. An exclamation point negates the meaning
+of a match on this pattern, and can be used to cancel certain matches. Some
+examples:
+.sp
+\fIalt.config,news.*,!news.test\fP
+.sp
+Matches alt.config and everything in the 'news' hierarchy except news.test
+.PP
+.\"
+.\"
+See the explanation for the $\fBAUTOSUBSCRIBE\fP variables for further
+examples.
+.SS SIGNATURES
+\fBtin\fP will recognise a signature in either
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP or \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP. 
+If \fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP exists, then the signature will be
+pulled into the editor for mail commands only. A signature in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP will not be pulled into the editor for
+posting commands since \fBinews\fP(1)  will append the signature itself.
+.PP
+A signature in \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP will be pulled into the
+editor for both posting and mailing commands.
+.PP
+The following is an example of a \fI.Sig\fP file:
+.RS
+.nf
+\f(CWNAMES  Joe Bar <joe@example.org>
+SNAIL  Musterweg 12, 99999 Notreal, Germany\fP
+.fi
+.RE
+.PP
+.\"
+.\"
+\fBtin\fP also has the capability to generate random signatures on a per
+newsgroup basis if so desired. The way to accomplish this is to specify the
+default signature or the group attribute sigfile as a directory. If for
+example the sigfile path is \fI/usr/iain/.sigs\fP and \fI.sigs\fP is a directory
+then \fBtin\fP will select a random signature from any file that is in the
+directory \fI.sigs\fP (note: one signature per numbered file). A random
+signature can also consist of a fixed part signature that can contain your
+name, address etc. followed by the random sig. The fixed part of the random
+sig is read from the file \fI$HOME/.sigfixed\fP.
+.SS "TIPS AND TRICKS"
+\fBtin\fP can be pretty much be navigated by using the four cursor keys.  The
+left arrow key goes up a level, the right arrow key goes down a level, the
+up arrow key goes up a line and the down arrow key goes down a line.
+.PP
+The following newsgroups provide useful information concerning news
+software:
+.in +.5i
+.ti -\w'\(em'u
+\(emnews.software.readers (info. about news user agents tin, rn, nn, slrn
+etc.)
+.ti -\w'\(em'u
+\(emnews.software.nntp (info. about NNTP)
+.ti -\w'\(em'u
+\(emnews.answers (Frequently Asked Questions (FAQ) about many different
+themes)
+.PP
+Many prompts within \fBtin\fP offer a default choice that the cursor is
+positioned on. By pressing '\fB<CR>\fP' the default value is taken. 
+Most prompts can be aborted by pressing '\fB<ESC>\fP'.
+.PP
+When \fBtin\fP is run in an \fBxterm\fP(1x)  it will resize itself each time the
+\fBxterm\fP(1x)  is resized.
+.PP
+\fBtin\fP will reread the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file at set
+intervals (\fBreread_active_file_secs\fP) to show any newly arrived news.
+.PP
+.\"
+.\"
+If you find large number of new newsgroups cluttering up your screen,
+pressing \fBSelectToggleReadDisplay\fP ('\fBr\fP') will make them go away.
+.SS "XTERM BUTTONS"
+If the environment variable \fB$TERM\fP is set to \fBxterm\fP(1x), then button
+pressing can be used to select groups and articles. In this discussion, the
+buttons are assumed to be assigned conventionally (i.e., Button1 is the left
+button).
+.PP
+In general (i.e., for the group, thread and article menus),
+.TP  10
+Button1 (left)
+enters next (lower) level if you click on an article, otherwise pages down.
+.TP 
+Button2 (centre)
+returns to the previous (upper) level if you click on an article, otherwise
+pages up.
+.TP 
+Button3 (right)
+positions on the article line under mouse cursor, or pages down if you've
+clicked outside the list of articles.
+.PP
+In the group selection menu, if the mouse is pointing at a group then:
+.TP  10
+left button
+moves to and selects the group pointed at, just like \fBSelectReadGrp\fP
+('\fB<CR>\fP').
+.TP 
+centre button
+quits the program, just like \fBQuit\fP ('\fBq\fP').
+.TP 
+right button
+moves to the group pointed at.
+.PP
+In the article menu, if the mouse is pointing at an article (or thread)
+then:
+.TP  10
+left button
+reads the article pointed at, just like \fBGroupReadBasenote\fP
+('\fB<CR>\fP'), or the thread, just like \fBGroupListThd\fP ('\fBl\fP').
+.TP 
+centre button
+exits the menu, catching up on the group if you have
+\fBgroup_catchup_on_exit\fP set in your configuration, just like \fBQuit\fP
+('\fBq\fP').
+.TP 
+right button
+moves to the article (or thread) pointed at.
+.PP
+In the thread menu, if the mouse is pointing at an article then:
+.TP  10
+left button
+reads article pointed at, just like \fBThreadReadArt\fP ('\fB<CR>\fP').
+.TP 
+centre button
+exits the menu, catching up on the thread if you have
+\fBthread_catchup_on_exit\fP set in your configuration, just like \fBQuit\fP
+('\fBq\fP').
+.TP 
+right button
+moves to the article pointed at.
+.PP
+.\"
+.\"
+In other menus and areas button pressing reverts back to usual cut and paste
+of \fBxterm\fP(1x), but after one click of any button.
+.SS "INDEX FILES"
+If your news server supports NOV index files (see \fBnewsoverview\fP(5), most
+modern installations will) and you have a fast connection to your news
+server then this section can be ignored.
+.PP
+If your news server doesn't support NOV index files or you have a very slow
+connection to your news server then \fBtin\fP can cache the index for each
+newsgroup if \fBcache_overview_files\fP is set to ON.  Note that this cache can
+use up large amounts of diskspace if you read a lot of groups and/or high
+traffic groups.
+.PP
+Each user creates/updates his/her own index files that are stored in
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news/\fP. If you are
+reading via NNTP then the news server name will be appended to keep the
+indexes for different servers separate. If you are reading off the local
+spool and local overview files already exist then turning on caching will
+have no effect. Likewise unless you see significant delays entering a group
+when reading via NNTP then turning on caching will have little or no effect.
+.PP
+Entering a group the first time tends to be slow because the index file must
+be built from scratch. To alleviate the slowness start \fBtin\fP to create all
+index files for the groups you subscribe to with \fBtin \-u \-v\fP and go for a
+coffee. Subsequent readings of a group will only need to do incremental
+updating of the index file and will be much faster as only new articles will
+need to be cached.
+.PP
+As indexing might take some time you may want to run \fBtin\fP form the system
+batcher \fBcron\fP(1)  with the \*(rq\fB\-u\fP\*(rq option:
+.PP
+.RS
+.nf
+\f(CW30 6 * * * /usr/local/bin/tin \-u\fP
+.fi
+.RE
+.PP
+If you are low on local disk space you should consider using \fBgetart_limit\fP
+to limit the size of cached indexes and also manually purge cached data for
+groups you are not reading anymore with something like:
+.PP
+.RS
+.nf
+\f(CWfind ${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news* \e
+\-type f \-name "[0\-9]*.[0\-9]" \-atime +28 | xargs rm \-f\fP
+.fi
+.RE
+.\"
+.\"
+.SH FILES
+.\" TODO: mention dead.article, dead.articles
+.\"               .article[.$$], .cancel[.$$], .letter[.$$]?
+.\"       $PWD/trace[.out]   (--with-trace)
+.\"       $TMPDIR/NNTP       (-D 1)
+.\"       $TMPDIR/FILTER     (-D 2)
+.\"       $TMPDIR/ARTS       (-D 2)
+.\"       $TMPDIR/BITMAP     (-D 4)
+.\"       $TMPDIR/REFS.dump  (-D 8)
+.\"       $TMPDIR/REFS.info  (-D 8)
+.\"       $TMPDIR/MALLOC     (-D 16)
+.\"       $TMPDIR/ATTRIBUTES (-D 32)
+.\"       $TMPDIR/SCOPES-R   (-D 32)
+.\"       $TMPDIR/SCOPES-W   (-D 32)
+.\"       $TMPDIR/ACTIVE     (-D 64)
+For a detailed description see \fBtin\fP(5).
+.PP
+\fI$MAILCAPS\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mailcap\fP
+.br
+\fI/etc/mailcap\fP
+.br
+\fI/usr/etc/mailcap\fP
+.br
+\fI/usr/local/etc/mailcap\fP
+.br
+\fI/etc/mail/mailcap\fP
+.PP
+
+\fI/etc/nntpserver\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.cancelsecret\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mime.types\fP
+.br
+\fI/etc/mime.types\fP
+.br
+\fI/etc/tin/mime.types\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsauth\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc\fP
+.fi
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.sigfixed\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/.inputhistory\fP
+.PP
+
+\fI${TIN_INDEX_MAILDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.mail/\fP
+.PP
+
+.nf
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news${NNTPSERVER:+"\-$NNTPSERVER"}/\fP
+.fi
+.PP
+
+\fI${TIN_INDEX_SAVEDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.save/\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.mail\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.save\fP
+.PP
+
+.\" .IR ${TIN_LIBDIR:\-NEWSLIBDIR}/attributes
+\fI/etc/tin/attributes\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP
+.PP
+
+.nf
+\fI/etc/tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.fi
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/posted\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/posted\fP
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/postponed.articles\fP
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/newsgroups\fP
+.fi
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/serverrc\fP
+.fi
+.PP
+
+.\" .IR ${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc
+\fI/etc/tin/tinrc\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP
+.PP
+
+\fI/etc/tin/tin.defaults\fP
+.PP
+
+\fI/usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/active.times\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/organization\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/overview.fmt\fP
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fP
+.PP
+.\"
+.\"
+.SH ENVIRONMENT
+.\" TODO: sort in a useful order, add undocumented env-vars like:
+.\"
+.\" .TP
+.\" .B SHELL (Unix)
+.\" The pathname of the user's login shell.
+.\"
+.\" used in xface support
+.\" .TP
+.\" .B DISPLAY
+.\" .TP
+.\" .B WINDOWID
+.\"
+.\"
+.TP 
+\fBTINRC\fP
+Define this variable if you want to specify command\-line options that \fBtin\fP
+should be started with to save typing them each time it is started. The
+contents of the environment variable are added to the front of the
+command\-line options before it is parsed therefore allowing an option
+specified on the command\-line to override the same option specified in the
+environment.
+.TP 
+\fBTIN_HOMEDIR\fP
+Define this variable if you do not want the \fI.tin\fP directory in
+\fI$HOME/\fP. E.g., if you want all \fBtin\fP's private files in \fI/tmp/.tin\fP you
+would set $\fBTIN_HOMEDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_INDEX_NEWSDIR\fP
+Define this variable if you do not want the \fI.news\fP directory in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fP. E.g., if you want all \fBtin\fP's news index
+files in \fI/tmp/.news\fP you would set $\fBTIN_INDEX_NEWSDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_INDEX_MAILDIR\fP
+Define this variable if you do not want the \fI.mail\fP directory in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fP. E.g., if you want all \fBtin\fP's mail index
+files in \fI/tmp/.mail\fP you would set $\fBTIN_INDEX_MAILDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_INDEX_SAVEDIR\fP
+Define this variable if you do not want the \fI.save\fP directory in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fP. E.g., if you want all \fBtin\fP's save index
+files in \fI/tmp/.save\fP you would set $\fBTIN_INDEX_SAVEDIR\fP to \fI/tmp\fP.
+.TP 
+\fBTIN_LIBDIR\fP
+Define this variable if you want to override the \fBNEWSLIBDIR\fP path that was
+compiled into the \fBtin\fP binary, default is \fI/usr/lib/news\fP.  If tin is
+running in NNTP mode setting this variable has no effect.
+.TP 
+\fBTIN_SPOOLDIR\fP
+Define this variable if you want to override the \fBSPOOLDIR\fP path that was
+compiled into the \fBtin\fP binary, default is \fI/var/spool/news\fP.  If tin is
+running in NNTP mode setting this variable has no effect.
+.TP 
+\fBTIN_NOVROOTDIR\fP
+Define this variable if you want to override the \fBNOVROOTDIR\fP path that was
+compiled into the \fBtin\fP binary, default is \fBSPOOLDIR\fP (see above). If tin
+is running in NNTP mode setting this variable has no effect.
+.TP 
+\fBTIN_ACTIVEFILE\fP
+Define this variable if you want to override the \fBNEWSLIBDIR/active\fP path
+that was compiled into the \fBtin\fP binary. If tin is running in NNTP mode
+setting this variable has no effect. If $\fBTIN_LIBDIR\fP is set it is
+prepended to $\fBTIN_ACTIVEFILE\fP.
+.TP 
+\fBNNTPSERVER\fP
+The default NNTP server to remotely read news from. This variable only needs
+to be set if the \*(rq\fB\-r\fP\*(rq command\-line option is specified and the file
+\fI/etc/nntpserver\fP does not exist. The \*(rq\fB\-g\fP\*(rq command line option
+overrides $\fBNNTPSERVER\fP.
+.TP 
+\fBNNTPPORT\fP
+The NNTP TCP\-port to read news from. This variable only needs to be set if
+the TCP\-port is not 119 (the default).  The \*(rq\fB\-p\fP\*(rq command\-line option
+overrides $\fBNNTPPORT\fP.
+.TP 
+\fBDISTRIBUTION\fP
+Set the article header field \*(rqDistribution:\*(rq to the contents of the
+variable instead of the system default.
+.TP 
+\fBISO2ASC\fP
+Set the ISO to ASCII charset decoding table character to use in decoding an
+article text. Values can range from 0 to 6.
+.RS +.5i
+.TP 
+\fB0\fP
+universal table for many languages
+.TP 
+\fB1\fP
+single\-spacing universal table
+.TP 
+\fB2\fP
+table for Danish, Dutch, German, Norwegian and Swedish
+.TP 
+\fB3\fP
+table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO
+646 variant
+.TP 
+\fB4\fP
+table with RFC 1345 codes in brackets
+.TP 
+\fB5\fP
+table for printers that allow overstriking with backspace
+.RE
+.TP 
+\fBORGANIZATION\fP
+Set the article header field \*(rqOrganization:\*(rq to the contents of the
+variable instead of the system default. If reading news on an Apollo
+DomainOS machine the environment variable $\fBNEWSORG\fP has to be used instead
+of $\fBORGANIZATION\fP.
+.TP 
+\fBNEWSORG (DomainOS)\fP
+DomainOS specific, same as $\fBORGANIZATION\fP on other OSs (see above).
+.TP 
+\fBREPLYTO\fP
+Set the article header field \*(rqReply\-To:\*(rq to the return address specified
+by the variable. This is useful if you wish to receive replies at a
+different address.
+.TP 
+\fBNAME\fP
+Overrides the full name given in the gecos\-files in \fI/etc/passwd\fP, see also
+\fBmail_address\fP.
+.TP 
+\fBREALNAME\fP
+Same as $\fBNAME\fP.
+.TP 
+\fBHOME\fP
+Pathname of the user's home directory. See \fBenviron\fP(5)  for more info.
+.TP 
+\fBMAILER\fP
+This variable has precedence over the default mailer that is used in all
+mailing operations within \fBtin\fP.
+.TP 
+\fBMAIL\fP
+Full path to the user's mailbox.
+.TP 
+\fBVISUAL\fP
+This variable has precedence over the default editor (i.e., \fBvi\fP(1))  that
+is used in all editing operations within \fBtin\fP (e.g., posting, replying,
+follow\-ups, ...). Evaluation order is \fI${VISUAL:\-"${EDITOR:\-vi}"}\fP. See
+\fBenviron\fP(5)  for more info.
+.TP 
+\fBEDITOR\fP
+If $\fBVISUAL\fP is unset, then this variable is looked up for a default
+editor. If $\fBEDITOR\fP and $\fBVISUAL\fP are both unset, \fBtin\fP uses the systems
+default editor (i.e.  \fBvi\fP(1))  on UNIX\-systems). See \fBenviron\fP(5)  for
+more info.
+.TP 
+\fBAUTOSUBSCRIBE\fP
+A new group is checked against the list of patterns; if it matches, \fBtin\fP
+subscribes the user to the group without further query.  See the section
+"NEWSGROUP LISTS & WILDCARDS" for an explanation of the valid syntax. For
+example, setting
+.sp
+\fIAUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*\fP
+.sp
+will automatically subscribe the user to all new groups in the comp.os.unix
+hierarchy, and all talk groups other than talk.politics groups (which will
+be queried for as usual). Of course this does not work if \fBtin\fP is started
+with the \*(rq\fB\-X\fP\*(rq command\-line switch.
+.TP 
+\fBAUTOUNSUBSCRIBE\fP
+Is handled like the $\fBAUTOSUBSCRIBE\fP variable, but groups matching the list
+are unsubscribed from without further query. For example, setting
+.sp
+\fIAUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*\fP
+.sp
+will automatically unsubscribe the user from all new alt.flame groups and
+all groups starting with u (university groups) other than UK groups (which
+will be queried for as usual).
+.TP 
+\fBTMPDIR\fP
+A pathname of a directory made available for \fBtin\fP to create temporary
+files.
+.TP 
+\fBMAILCAPS\fP
+This variable can be used to override the default path search for mailcap
+files. See also \fBtin\fP(5).
+.TP 
+\fBNOMETAMAIL\fP
+Set this variable to disable the use of \fBmetamail\fP(1)  or a replacement
+(e.g. metamutt).
+.TP 
+\fBMM_CHARSET\fP
+.TP 
+\fBISPELL\fP
+Set this variable to point to \fBispell\fP(1)  or a replacement and its
+cmd\-line options.
+.TP 
+\fBPGPOPTS\fP
+Define any additional options that you wish to pass to your \fBpgp\fP(1)  or
+\fBgpg\fP(1)  program.
+.TP 
+\fBPGPPATH\fP
+Override the name of the \fBpgp\fP(1)  directory in \fB$HOME\fP that holds your
+keys etc..
+.TP 
+\fBGNUPGHOME\fP
+Override the name of the \fBgpg\fP(1)  directory in \fB$HOME\fP that holds your
+keys etc..
+.TP 
+\fBLC_CTYPE\fP
+.\" TODO: document LC_CTYPEs influence on
+.\"       ~/.tin/keymap.*, 8bit char display, ...
+This variable determines the \fBlocale\fP(5)  category for character handling
+functions. Usually it determines the character classes for pattern matching
+character classification and case conversion. Currently this is not true for
+\fBtin\fP (which temporary unsets \fB$LC_CTYPE\fP right before any match is done
+to avoid confusion).  It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP][\fI@modifier\fP]. See \fBenviron\fP(5) 
+for more information.
+.TP 
+\fBLC_MESSAGES\fP
+Formats of informative and diagnostic messages and interactive responses. 
+It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP][\fI@modifier\fP]. See \fBlocale\fP(5)  and
+\fBenviron\fP(5)  for more information.
+.TP 
+\fBLC_TIME\fP
+Date and time formats. It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP][\fI@modifier\fP]. See \fBlocale\fP(5)  and
+\fBenviron\fP(5)  for more information.
+.TP 
+\fBLC_ALL\fP
+This variable overrides the value of the \fB$LANG\fP variable and any other
+\fB$LC_\fP variable. It's value should be of the form
+\fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP]. See \fBlocale\fP(5)  and \fBenviron\fP(5) 
+for more information.
+.TP 
+\fBLANG\fP
+This variable determines the \fBlocale\fP(5)  category for any category not
+specifically selected with a variable starting with \fB$LC_\fP. It's value
+should be of the form \fIlanguage\fP[\fI_territory\fP][\fI.codeset\fP]. See
+\fBenviron\fP(5)  for more information.
+.TP 
+\fBLANGUAGE\fP
+This variable defines a priority list for translations. Whenever a
+translation is not available in the language selected via \fB$LC_ALL\fP or
+\fB$LANG\fP the next language from the list is tried. It's value should be of
+the form \fIlanguage:language[:language]\fP. See \fBenviron\fP(5)  for more
+information.
+.TP 
+\fBCOLUMNS\fP
+A decimal integer > 0 used to indicate the user's preferred width in
+column positions for the terminal screen or window. If this variable is
+unset or null, the implementation determines the number of columns,
+appropriate for the terminal or window. When \fB$COLUMNS\fP is set, any
+terminal\-width information implied by \fB$TERM\fP will be overridden. Users and
+portable applications should not set \fB$COLUMNS\fP unless they wish to
+override the system selection and produce output unrelated to the terminal
+characteristics.
+.TP 
+\fBLINES\fP
+A decimal integer > 0 used to indicate the user's preferred number of
+lines on a page or the vertical screen or window size in lines. A line in
+this case is a vertical measure large enough to hold the tallest character
+in the character set being displayed. If this variable is unset or null, the
+implementation determines the number of lines, appropriate for the terminal
+or window. When \fB$LINES\fP is set, any terminal\-height information implied by
+\fB$TERM\fP will be overridden. Users and portable applications should not set
+\fB$LINES\fP unless they wish to override the system selection.
+.TP 
+\fBTERM\fP
+.\"
+.\"
+.\" TODO: add missing, sort useful, document in detail
+The type of terminal in use. This is used when looking up termcap
+sequences.  See \fBenviron\fP(5)  for more information.
+.SH SIGNALS
+\fBtin\fP handles a couple of signals:
+.TP 
+\fBSIGHUP\fP
+Terminate gracefully.
+.TP 
+\fBSIGTERM\fP
+Terminate gracefully.
+.TP 
+\fBSIGUSR1\fP
+Terminate gracefully but do not restore tty.
+.TP 
+\fBSIGUSR2\fP
+.\"
+.\"
+.\" .SH DIAGNOSTICS
+.\" give an overview of the most common error messages and how to cope with
+.\" them.
+.\"
+.\"
+.\"
+Write out \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP\-file.
+.SH SECURITY
+.\"
+.\"
+When \fBtin\fP is started in debug mode (\*(rq\fB\-D n\fP\*(rq) it will create world
+readable files in \fB$TMPDIR\fP which may contain the users NNTP password in
+cleartext. On multiuser\-systems \fB$TMPDIR\fP should be set to a safe location
+before starting tin in debug mode (e.g.  \fBTMPDIR=$HOME tin \-D 1\fP).
+.SH "CONFORMING TO"
+.\" - RFC2045, RFC2047, RFC2980, RFC3977, RFC4643, RFC5322
+.\"   RFC5536, RFC5537, RFC6048 or whatever
+.\"
+.\"
+\fBtin\fP does conform to the Base Definitions volume of IEEE Std 1003.1\-2001,
+Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax
+Guidelines).
+.SH NOTES
+Regular expression support is provided by the PCRE library package
+\fBpcre\fP(3), which is open source software, written by Philip Hazel, and
+copyright by the University of Cambridge, England.
+.br
+.\"
+.\"
+ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
+.SH BUGS
+\fBCNews\fP NNTPd, \fBnoffle\fP(1)  (<= V1.0\-pre5) and \fBNewsCache\fP (<=
+V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with
+any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h
+and recompile.
+.br
+.\"
+.\"
+Before mailing a bug\-report to <tin\-bugs@tin.org> please check if
+you are using the latest (stable) release, and if not, please upgrade first!
+Have a look at the doc/TODO file for known bugs. If you still think you've
+found a bug, please use the \fBBugReport\fP ('\fBR\fP')  function and write in
+English. Please do NOT enclose a core\-file in your bugreport until we
+request it.
+.SH HISTORY
+.\"
+.\"
+\fBtin\fP is based on the \fBtass\fP(1)  newsreader that was developed by Rich
+Skrenta and posted to alt.sources in March 1991; its first version was
+released on August 23rd 1991.  \fBtass\fP(1)  itself was heavily influenced by
+notesfiles a public domain UNIX version of PLATO Notes, developed at the
+University of Illinois by Ray Essick and Rob Kolstad in 1982. For a version
+overview see <http://www.tin.org/history.html>.
+.SH CREDITS
+.PP
+.IP "Rich Skrenta"
+author of \fBtass\fP(1)  v3.2 which this newsreader used as its base.
+.IP "Bill Davidsen"
+author of envarg.c environment variable reading routine.
+.IP "Mike Gleason"
+author of sigfile.c random signature generation routines.
+.IP "Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk>"
+author of langinfo.c, charset.c and iso2asc.txt ISO\-8859\-1 documentation.
+.IP "Arnold Robbins"
+author of strftime.c date formatting routine.
+.IP "Rich Salz"
+author of wildmat.c pattern matching and parsdate.y date parsing routines.
+.IP "Dave Taylor"
+author of curses.c from the \fBelm\fP(1)  mailreader.
+.IP "Chris Thewalt"
+author of getline.c \fBemacs\fP(1)  style editing routine.
+.IP "Steven Madsen"
+for adding \fBpgp\fP(1)  (Pretty Good Privacy) support.
+.IP "Philip Hazel <ph10@cam.ac.uk>"
+for \fBpcre\fP(3)  (Perl\-compatible regular expression library).
+.IP "Patrick Powell <papowell@astart.com>"
+.\"
+.\"
+for \fBsnprintf\fP(3)  and \fBvsnprintf\fP(3)  fallbacks.
+.SH AUTHOR
+.TP  1i
+Iain Lea <iain@bricbrac.de>
+.\"
+.\"
+.SH MAINTAINER
+.TP  1i
+Urs Janssen <urs@tin.org>
+.\"
+.\"
+.SH "SEE ALSO"
+\fBcron\fP(1), \fBelm\fP(1), \fBemacs\fP(1), \fBgpg\fP(1), \fBinews\fP(1), \fBispell\fP(1),
+\fBlp\fP(1), \fBlpr\fP(1), \fBmetamail\fP(1), \fBnoffle\fP(1), \fBperl\fP(1), \fBperlre\fP(1),
+\fBpgp\fP(1), \fBrn\fP(1), \fBsendmail\fP(1), \fBshar\fP(1), \fBslrnface\fP(1), \fBtass\fP(1),
+\fBunshar\fP(1), \fBuudecode\fP(1), \fBvi\fP(1), \fBxterm\fP(1x), \fBiconv\fP(3),
+\fBiconv_open\fP(3), \fBnl_langinfo\fP(3), \fBpcre\fP(3), \fBpcrepattern\fP(3),
+\fBsnprintf\fP(3), \fBstrftime\fP(3), \fBvsnprintf\fP(3), \fBwildmat\fP(3),
+\fBenviron\fP(5), \fBlocale\fP(5), \fBmbox\fP(5), \fBmmdf\fP(5), \fBnewsoverview\fP(5),
+\fBtin\fP(5), \fBRFC1524\fP, \fBRFC2045\fP, \fBRFC2046\fP, \fBRFC2047\fP, \fBRFC2048\fP,
+\fBRFC2980\fP, \fBRFC3977\fP, \fBRFC4643\fP, \fBRFC5322\fP, \fBRFC5536\fP, \fBRFC5537\fP,
+\fBRFC6048\fP
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/en_GB/tin.5 tin-2.0.0/doc/l10n/en_GB/tin.5
--- tin-1.8.3/doc/l10n/en_GB/tin.5	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/en_GB/tin.5	2011-08-22 00:20:18.315081745 +0200
@@ -0,0 +1,2406 @@
+.\" Project   : tin
+.\" Module    : tin.5
+.\" Author    : U. Janssen
+.\" Created   : 2000-07-10
+.\" Updated   : 2011-08-23
+.\" Notes     : needs a some work
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH tin 5 "August 23rd, 2011" 2.0.0 "A Usenet newsreader"
+
+.SH NAME
+tin, rtin \- related files
+
+.SH DESCRIPTION
+This manpage describes the various (config) files and their formats used by
+the \fBtin\fP(1)  newsreader. All files are expected to have unix style ('\en'
+aka LF) line endings.
+
+.SH FILES
+.\" TODO: mention
+.\" ${TIN_HOMEDIR:\-"$HOME"}/dead.article
+.\" ${TIN_HOMEDIR:\-"$HOME"}/dead.articles
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.article[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.cancel[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.letter[.$$]
+.\" $PWD/trace[.out]   (--with-trace)
+.\" $TMPDIR/NNTP       (-D 1)
+.\" $TMPDIR/FILTER     (-D 2)
+.\" $TMPDIR/ARTS       (-D 2)
+.\" $TMPDIR/BITMAP     (-D 4)
+.\" $TMPDIR/REFS.dump  (-D 8)
+.\" $TMPDIR/REFS.info  (-D 8)
+.\" $TMPDIR/MALLOC     (-D 16)
+.\" $TMPDIR/ATTRIBUTES (-D 32)
+.\" $TMPDIR/SCOPES-R   (-D 32)
+.\" $TMPDIR/SCOPES-W   (-D 32)
+.\" $TMPDIR/ACTIVE     (-D 64)
+.PP
+\fI$MAILCAPS\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mailcap\fP
+.br
+\fI/etc/mailcap\fP
+.br
+\fI/usr/etc/mailcap\fP
+.br
+\fI/usr/local/etc/mailcap\fP
+.br
+\fI/etc/mail/mailcap\fP
+.sp
+.RS
+\fBmailcap\fP(4)  files as defined in \fBRFC1524\fP. The Mailcap files are read by
+\fBtin\fP(1)  to determine how to display non\-text messages at the local
+site. Any line that starts with "#" is a comment. Blank lines are
+ignored. Otherwise, each line defines a single mailcap entry for a single
+content type. Long lines may be continued by ending them with a backslash
+character, "\e".
+.sp
+Each individual mailcap entry consists of a content\-type specification, a
+command to execute, and (possibly) a set of optional "flag" values.
+.sp
+The "type" field is simply any legal content type name. It is the string
+that will be matched against the \*(rqContent\-Type:\*(rq header to decide if this
+is the mailcap entry that matches the current message. Additionally, the
+type field may specify a subtype or a wildcard to match all subtypes.
+.sp
+The "command" field is any UNIX command and is used to specify the
+interpreter for the given type of message. It will be passed to the shell
+via the \fBsystem\fP(3)  facility.
+.sp
+.\"
+.\" Two special codes can appear in the viewing command for objects of type
+.\" multipart (any subtype). These are "%n" and "%F". %n will be replaced by
+.\" the number of parts within the multipart object. %F will be replaced by a
+.\" series of arguments, two for each part, giving first the content-type and
+.\" then the name of the temporary file where the decoded part has been stored.
+.\"
+Semicolons and backslashes within the command or any flag field must be
+quoted with backslashes. If the field contains "%s", those two characters
+will be replaced by the name of a file that contains the body of the
+message. If it contains "%t", those two characters will be replaced by the
+content\-type field, including the subtype, if any. If it contains "%{"
+followed by a parameter name and a closing "}", then all those characters
+will be replaced by the value of the named parameter, if any, from the
+\&\*(rqContent\-Type:\*(rq header. Finally, if the field contains "\e%", those two
+characters will be replaced by a single "%" character.
+.sp
+Besides the type and command field the following "flags" are defined:
+.TP 
+\fBcompose\fP
+The "compose" field may be used to specify a program that can be used to
+compose a new body or body part in the given format. Its intended use is to
+support mail composing agents that support the composition of multiple types
+of mail using external composing agents. As with the view\-command, the
+semantics of program execution are operating system dependent. The result of
+the composing program may be data that is not yet suitable for mail
+transport \- that is, a Content\-Transfer\-Encoding may need to be applied to
+the data.
+.TP 
+\fBcomposetyped\fP
+The "composetyped" field is similar to the "compose" field, but is to be
+used when the composing program needs to specify the \*(rqContent\-Type:\*(rq
+header field to be applied to the composed data. The "compose" field is
+simpler, and is preferred for use with existing (non\-mail\-oriented) programs
+for composing data in a given format. The "composetyped" field is necessary
+when the Content\-Type information must include auxiliary parameters, and the
+composition program must then know enough about mail formats to produce
+output that includes the mail type information.
+.TP 
+\fBedit\fP
+The "edit" field may be used to specify a program that can be used to edit a
+body or body part in the given format. In many cases, it may be identical in
+content to the "compose" field, and shares the operating\-system dependent
+semantics for program execution.
+.TP 
+\fBprint\fP
+The "print" field may be used to specify a program that can be used to print
+a message or body part in the given format. As with the view\-command, the
+semantics of program execution are operating system dependent.
+.TP 
+\fBtest\fP
+The "test" field may be used to test some external condition (e.g., the
+machine architecture, or the window system in use) to determine whether or
+not the mailcap line applies. It specifies a program to be run to test some
+condition. The semantics of execution and of the value returned by the test
+program are operating system dependent. If the test fails, a subsequent
+mailcap entry should be sought. Multiple test fields are not permitted \-
+since a test can call a program, it can already be arbitrarily complex.
+.TP 
+\fBneedsterminal\fP
+The "needsterminal" field indicates that the view\-command must be run on an
+interactive terminal. This is needed to inform window\-oriented user agents
+that an interactive terminal is needed. (The decision is not left
+exclusively to the view\-command because in some circumstances it may not be
+possible for such programs to tell whether or not they are on interactive
+terminals.) The needsterminal command should be assumed to apply to the
+compose and edit commands, too, if they exist. Note that this is NOT a test
+\- it is a requirement for the environment in which the program will be
+executed, and should typically cause the creation of a terminal window when
+not executed on either a real terminal or a terminal window.
+.TP 
+\fBcopiousoutput\fP
+The "copiousoutput" field indicates that the output from the view\-command
+will be an extended stream of output, and is to be interpreted as advice to
+the UA (User Agent mail\-reading program) that the output should be either
+paged or made scroll\-able. Note that it is probably a mistake if
+needsterminal and copiousoutput are both specified.
+.TP 
+\fBdescription\fP
+The "description" field simply provides a textual description, optionally
+quoted, that describes the type of data, to be used optionally by mail
+readers that wish to describe the data before offering to display it.
+.TP 
+\fBtextualnewlines\fP
+The "textualnewlines" field, if set to any non\-zero value, indicates that
+this type of data is line\-oriented and that, if encoded in base64, all
+newlines should be converted to canonical form (CRLF) before encoding, and
+will be in that form after decoding. In general, this field is needed only
+if there is line\-oriented data of some type other than text/* or non\-line\-
+oriented data that is a subtype of text.
+.TP 
+\fBx11\-bitmap\fP
+The "x11\-bitmap" field names a file, in X11 bitmap (xbm) format, which
+points to an appropriate icon to be used to visually denote the presence of
+this kind of data.
+.TP 
+\fBnametemplate\fP
+The "nametemplate" field gives a file name format, in which %s will be
+replaced by a short unique string to give the name of the temporary file to
+be passed to the viewing command. This is only expected to be relevant in
+environments where filename extensions are meaningful, e.g., one could
+specify that a GIF file being passed to a gif viewer should have a name
+ending in ".gif" by using "nametemplate=%s.gif"
+.PP
+\fBtin\fP(1)  currently only respects the "test", "description", "nametemplate"
+and partly the "needsterminal" flags, all other flags are internally
+ignored. It also can't handle the "%F" and "%n" expansions yet.
+.TP 
+Example:
+.RS
+.nf
+# mailcap file example
+.br
+image/*;\e
+.br
+.in +.3i
+xv \-8 \-geometry +0 '%s';\e
+.br
+description=%{name} %t\-Image;\e
+.br
+test=test "$DISPLAY" != "";\e
+.br
+nametemplate=%s.IMAGE
+.in -.3i
+.sp
+message/rfc822;\e
+.br
+.in +.3i
+${PAGER:\-"more"} '%s';\e
+.br
+edit=${EDITOR:\-"vi"} '%s';\e
+.br
+compose=${EDITOR:\-"vi"} '%s';\e
+.br
+print=a2ps '%s';\e
+.br
+needsterminal
+.in -.3i
+.fi
+.RE
+.RE
+.PP
+
+\fI/etc/nntpserver\fP
+.sp
+.RS
+default NNTP\-server to read news from if not reading from the local spool. 
+\&'\fB\-g\fP \fIserver\fP', $\fBNNTPSERVER\fP have higher priority (in that order),
+the default server given at compile time has lower priority.
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.cancelsecret\fP
+.sp
+.RS
+secret to be used for canlocks
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.mime.types\fP
+.br
+\fI/etc/mime.types\fP
+.br
+\fI/etc/tin/mime.types\fP
+.sp
+.RS
+mime type / filename extension pairs
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsauth\fP
+.sp
+.RS
+"\fInntpserver\fP \fIpassword\fP [\fIuser\fP]" pairs for NNTP servers that require
+authorisation. If the password contains a space or a tab it must be enclosed
+in doublequotes ("). Usernames must not be enclosed in doublequotes and thus
+can't contain spaces or tabs. Any line that starts with "#" is a
+comment. Blank lines are ignored. This file should be readable only for the
+user as it contains the user's uncrypted password for reading news!
+.TP 
+\fBnntpserver\fP
+full qualified domain name of the newsserver.
+.TP 
+\fBpassword\fP
+user's uncrypted password for reading news.
+.TP 
+\fBuser\fP
+username on the newsserver if it differs from the local login. This field is
+optional.
+.TP 
+Example:
+.RS
+# sample .newsauth file
+.br
+news.example.org secret
+.br
+news.example.net arcane guest
+.br
+news.example.com "top secret" james.bond@example.com
+.RE
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP
+.sp
+.RS
+"\fInewsgroup\fP\fIflag\fP [\fIarticle\fP[,\fIarticle\fP | \-\fIarticle\fP]...]" lines.
+.TP 
+\fBnewsgroup\fP
+the name of the newsgroup.
+.TP 
+\fBflag\fP
+a flag indicating if the group is subscribed ':' or not '!'.
+.TP 
+\fBarticle\fP
+range of already read articles from that group; numbers separated by commas
+with sequential numbers collapsed with hyphens.
+.TP 
+Example:
+.RS
+# sample .newsrc file
+.br
+news.software.b! 1\-666,669
+.br
+news.software.nntp: 1\-13245,13247,13249
+.br
+news.software.readers: 1\-19567,19571\-19597
+.RE
+.RE
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc\fP
+.fi
+.sp
+.RS
+backup of \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP
+.sp
+.RS
+signature
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.sigfixed\fP
+.sp
+.RS
+fixed part of a randomly generated signature
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/.inputhistory\fP
+.sp
+.RS
+history of last used strings
+.RE
+.PP
+
+\fI${TIN_INDEX_MAILDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.mail/\fP
+.sp
+.RS
+mailgroups index files
+.RE
+.PP
+
+.nf
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news${NNTPSERVER:+"\-$NNTPSERVER"}/\fP
+.fi
+.sp
+.RS
+newsgroups index files
+.RE
+.PP
+
+\fI${TIN_INDEX_SAVEDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.save/\fP
+.sp
+.RS
+saved newsgroups index files
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.mail\fP
+.sp
+.RS
+active file ("\fImail_group_name\fP \fImaxnum\fP \fIminnum\fP \fImailspool\fP"
+quadruples) of user's mailgroups (requires \fBtin\fP(1)  to be build with
+mh\-mail\-handling support).
+.TP 
+\fBmail_group_name\fP
+must be the pathname of the mailbox relative to field #4 with / changed to .
+.TP 
+\fBmaxnum\fP
+just put a large number here, something higher than the highest message in
+the mailbox
+.TP 
+\fBminnum\fP
+put 0 here
+.TP 
+\fBmailspool\fP
+path of mail spool directory. This must be the full pathname to the root of
+the mail folder area.
+.TP 
+Example:
+.RS
+Mail.inbox 12345 00000 /home/foo
+.br
+Mail.outbox 23456 00000 /home/foo
+.RE
+.sp
+This allows access to the 'inbox' and 'outbox' folders of user foo.  They
+are accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/active.save\fP
+.sp
+.RS
+active file of user's saved newsgroups, used by \fBtin \-R\fP.
+.RE
+.PP
+
+.\" tin uses inns old (pre 2.x) Path convention.
+.\" as with inn >= 2.2.x getting more and more popular
+.\" we should think about checking for the new Paths (/news/etc/)
+.\" ${TIN_LIBDIR\-/news/etc"}/attributes
+\fI/etc/tin/attributes\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP
+.sp
+.RS
+The group attributes files may be used to override some global settings from
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP on a per group basis. Order is
+important as last match counts; this allows one to refine attributes for
+narrowed scopes. Note that the \fIscope=<grouplist>\fP line has to be
+specified before the attributes are specified for that list and each
+attribute can only be set once per scope section. All attributes are set to
+a reasonable default so you only have to specify the attribute that you want
+to change. All toggle attributes are set by specifying ON/OFF. Otherwise,
+they function exactly as their global equivalents. The following group
+attributes are available:
+.TP 
+\fBscope\fP
+This changes the list of groups to which the attributes that follow will be
+applied. See the section NEWSGROUP LISTS & WILDCARDS in \fBtin\fP(1)  for the
+types of pattern that can be used here.
+.TP 
+\fBadd_posted_to_filter\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBadvertising\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBalternative_handling\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBask_for_metamail\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBauto_cc_bcc\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBauto_list_thread\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBauto_save\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBauto_select\fP
+Automatically perform the \fBGroupMarkUnselArtRead\fP ('\fBX\fP') command after
+entering the group.
+.TP 
+\fBbatch_save\fP
+Can be used to override the global setting in tinrc on a per group
+basis. For more information read section AUTOMATIC MAILING AND SAVING NEW
+NEWS in \fBtin\fP(1).
+.TP 
+\fBdate_format\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBdelete_tmp_files\fP
+If this is set to ON, then saved article files that have been post\-processed
+will be automatically deleted, otherwise the user will be asked whether to
+delete the post\-processed files. Automatic processing of marked articles
+using \fBGroupAutoSave\fP ('\fBS\fP') will suppress prompting.
+.TP 
+\fBeditor_format\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBfcc\fP
+Mailbox to save sent mails. The format of the mailbox is controlled via the
+tinrc \fBmailbox_format\fP variable.
+.TP 
+\fBfollowup_to\fP
+Set \*(rqFollowup\-To:\*(rq header to the specified group(s).
+.TP 
+\fBfrom\fP
+Identical to the tinrc variable \fBmail_address\fP
+.TP 
+\fBgroup_catchup_on_exit\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBmail_8bit_header\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBmail_mime_encoding\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBmaildir\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBmailing_list\fP
+Used when a group is a mailing list. All responses to the group will be
+directed to this email address instead
+.TP 
+\fBmark_ignore_tags\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBmark_saved_read\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBmime_forward\fP
+Determines whether usenet articles are forwarded as attachment or
+inline. When set to OFF, the forwarded article will be included in the body
+of the mail, while setting this variable to ON will cause the article to be
+attached as a separate MIME part. Enabling \fBmime_forward\fP is particularly
+useful for articles consisting of multiple MIME parts such as PGP/MIME
+signed messages or being encoded in a different character set than your
+local one. It is also useful if the receiver should be able to operate on
+the entire forwarded article (i.e., view or save it without your
+comments). On the other hand, if you want to forward only some parts of the
+article or to insert 'inline' annotations, you might want to disable this
+option.  Currently mime_forward is forced if the article to be attached is a
+multipart MIME article, this may change in a future version.  Please note
+that for this option to have effect, the tinrc variable
+\fBinteractive_mailer\fP has to be set to 0 (which is the default).
+.TP 
+\fBmime_types_to_save\fP
+A comma separated list of MIME major/minor Content\-Types that will be saved
+when using the view/save and save/autosave features.  A single * can be used
+to wildcard the major and/or minor type and a ! as the first character in an
+entry will negate it, eg: image/*,!image/bmp,!text/html. Default is */*
+.TP 
+\fBnews_headers_to_display\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBnews_headers_to_not_display\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBnews_quote_format\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBorganization\fP
+This can be used to set the article header field \*(rqOrganization:\*(rq. It
+overrides the setting (if any) of organization in \fI/etc/tin/tin.defaults\fP
+and $\fBORGANIZATION\fP (or $\fBNEWSORG\fP on Apollo DomainOS). Note that some
+newsserver might still overwrite the \&\*(rqOrganization:\*(rq header.
+.TP 
+\fBpos_first_unread\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBpost_8bit_header\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBpost_mime_encoding\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBpost_process_type\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBpost_process_view\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBprint_header\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBprocess_only_unread\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBprompt_followupto\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBquote_chars\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBsavedir\fP
+Identical to the tinrc variable of the same name
+.TP 
+.\" TODO: document option
+\fBsavefile\fP
+.TP 
+\fBshow_author\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBshow_info\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBshow_only_unread_arts\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBshow_signatures\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBsigdashes\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBsigfile\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBsignature_repost\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBsort_article_type\fP
+Identical to the tinrc variable \fBsort_article_type\fP
+.TP 
+\fBsort_threads_type\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBstart_editor_offset\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBtex2iso_conv\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBthread_articles\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBthread_catchup_on_exit\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBthread_perc\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBtrim_article_body\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBverbatim_handling\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBwrap_on_next_unread\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBx_body\fP
+A piece of text that will be added at the start of a message body. If this
+string starts with a / or ~ then it is assumed to be the name of a file
+containing the text to insert.
+.TP 
+\fBx_comment_to\fP
+Insert \*(rqX\-Comment\-To:\*(rq header, this is only useful in FIDO groups.
+.TP 
+\fBx_headers\fP
+A string including header\-name and the contents of the header that will be
+automatically added when posting. If the string starts with a / or ~ then it
+is assumed to be the name of a file containing the header and its content to
+be inserted. If the string starts with a ! then what follows is assumed to
+be the path to a program to be executed to generate the header and its
+content.
+.TP 
+\fBquick_kill_scope\fP
+A comma\-separated list of newsgroup patterns (wildmat\-style) to which groups
+the filter rule added by \fBQuickFilterKill\fP will be applied.  If unset the
+default from the tinrc variable \fBdefault_filter_kill_global\fP will be used.
+.TP 
+\fBquick_kill_expire\fP
+Identical to the tinrc variable \fBdefault_filter_kill_expire\fP
+.TP 
+\fBquick_kill_case\fP
+Identical to the tinrc variable \fBdefault_filter_kill_case\fP
+.TP 
+\fBquick_kill_header\fP
+Identical to the tinrc variable \fBdefault_filter_kill_header\fP
+.TP 
+\fBquick_select_scope\fP
+A comma\-separated list of newsgroup patterns (wildmat\-style) to which groups
+the filter rule added by \fBQuickFilterSelect\fP will be applied. If unset the
+default from the tinrc variable \fBdefault_filter_select_global\fP will be
+used.
+.TP 
+\fBquick_select_expire\fP
+Identical to the tinrc variable \fBdefault_filter_select_expire\fP
+.TP 
+\fBquick_select_case\fP
+Identical to the tinrc variable \fBdefault_filter_select_case\fP
+.TP 
+\fBquick_select_header\fP
+Identical to the tinrc variable \fBdefault_filter_select_header\fP
+.TP 
+\fBispell\fP
+Path and options for \fBispell\fP(1)\-like spell\-checker, e.g. "aspell
+\-\-mode=email \-\-dont\-backup check"
+.TP 
+\fBmm_network_charset\fP
+Identical to the tinrc variable of the same name
+.TP 
+\fBundeclared_charset\fP
+Assume (broken) articles without MIME charset declaration have this charset
+\- default is US\-ASCII. This attribute works only on systems with working
+\fBiconv\fP(3), others might have to compile \fBtin\fP(1)  with
+\-\-disable\-mime\-strict\-charset.
+.PP
+.TP 
+Example:
+.RS
+.nf
+# include extra headers
+# assume ISO\-8859\-1 as charset if no charset is declared
+scope=*
+x_headers=~/.tin/headers
+undeclared_charset=ISO\-8859\-1
+
+# in *sources* set post process type to shar only
+scope=*sources*
+post_process_type=1
+
+# in *binaries* turn on full post processing,
+# remove tmp files and set Followup\-To: poster
+scope=*binaries*
+post_process_type=2
+delete_tmp_files=ON
+followup_to=poster
+
+# in fido.* newsgroups change quote_chars
+# and add X\-Comment\-To: line
+scope=fido.*
+quote_chars=%s>_
+x_comment_to=ON
+
+# in *.test newsgroups, don't append signature
+# and preset Subject
+scope=*.test
+sigfile=\-\-none
+x_headers=Subject: test \- ignore \- no reply
+
+# assume ISO\-2022\-JP\-2 as charset
+scope=fj.*,japan.*
+undeclared_charset=ISO\-2022\-JP\-2
+.fi
+.RE
+.RE
+.PP
+
+.\" TODO: add missing descriptions and explain things in detail.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fP
+.sp
+.RS
+The filter file is used to assign scores to certain articles. Based on the
+score an article can be filtered out (hidden) or marked hot. Empty lines or
+lines beginning with a '#' are ignored.
+.TP 
+\fBcomment\fP
+Every entry (rule) in the filter file might get a comment. Multiple lines
+are allowed (but only for comments yet). Every line must start with the
+"comment=" keyword. Comments must appear first in the rule.  Comment lines
+placed within a rule will be moved to the begin of the next rule. This might
+be changed in the future. Don't use '#' to mark comments as those lines are
+ignored and your comments will get lost on the next write of the file.
+.TP 
+\fBgroup\fP
+A comma\-separated list of newsgroup patterns (wildmat\-style) to which groups
+the filter rule will be applied. This line is mandatory!
+.TP 
+\fBcase\fP
+0=case\-sensitive, 1=case\-insensitive
+.TP 
+\fBscore\fP
+Score value of the rule; can also be one of the magic words "kill" or "hot".
+.TP 
+\fBsubj\fP
+Match against \*(rqSubject:\*(rq
+.TP 
+\fBfrom\fP
+Match against \*(rqFrom:\*(rq.  \fBtin\fP(1)  converts the contents of the \*(rqFrom:\*(rq
+header to an old style e\-mail address, e.g. \*(rqsome@body.example (John Doe)\*(rq
+instead of \*(rqJohn Doe <some@body.example>\*(rq, before trying to match
+the patterns in the filter rule.
+.TP 
+\fBmsgid\fP
+Match against \*(rqMessage\-ID:\*(rq and full \*(rqReferences:\*(rq
+.TP 
+\fBmsgid_last\fP
+Match against \*(rqMessage\-ID:\*(rq and last \*(rqReferences:\*(rq entry only
+.TP 
+\fBmsgid_only\fP
+Match against \*(rqMessage\-ID:\*(rq
+.TP 
+\fBrefs_only\fP
+Match against \*(rqReferences:\*(rq
+.TP 
+\fBlines\fP
+Match against \*(rqLines:\*(rq, <num matches less than, >num matches more
+than.
+.TP 
+.\" TODO: document option in detail
+\fBgnksa\fP
+Match against \*(rqFrom:\*(rq address parser return codes.
+.TP 
+\fBxref\fP
+Match against \*(rqXref:\*(rq line. Before any matching is done the line is turned
+into the same format \*(rqNewsgroups:\*(rq has that is it is turned into a comma
+separated newsgroup list with all other information (i.e.  the article
+counter) removed.
+.TP 
+\fBtime\fP
+time_t value when rule expires
+.PP
+.TP 
+Example:
+.RS
+.nf
+comment=mark all articles about tin, rtin,
+comment=tind, ktin or cdtin as hot
+group=*
+case=1
+score=hot
+subj=\eb(cd|[rk]?)?tin(d|pre)?[\-.0\-9]*\eb
+.fi
+.RE
+.RE
+.PP
+
+.\" TODO: LC_CTYPE has a higher priority as LC_MESSAGES, does this make sense?
+.nf
+\fI/etc/tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/keymap${${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}:+".${LC_ALL:\-"${LC_CTYPE:\-"${LC_MESSAGES:\-"$LANG"}"}"}"}\fP
+.fi
+.sp
+.RS
+Keymap\-file, containing "\fIkeyname\fP \fIvalue\fP \fI[value]\fP" pairs separated by
+spaces or tabs. Below is a list of all rebindable keynames and their
+defaults. If a keyname is bound to NULL it is unassigned.
+.sp
+.nf
+.ta \w'GroupSelThdIfUnreadSelected    'u +\w'SPACE'u +\w'SPACE'u
+\fBShellEscape\fP	!
+\fBSetRange\fP	#
+\fBLastPage\fP	$
+\fBToggleColor\fP	&
+\fBLastViewed\fP	\-
+\fBSearchRepeat\fP	\e
+\fBSearchSubjF\fP	/
+\fBSearchSubjB\fP	?
+\fBSearchAuthB\fP	A
+\fBSearchBody\fP	B
+\fBCatchupNextUnread\fP	C
+\fBEditFilter\fP	E
+\fBToggleHelpDisplay\fP	H
+\fBToggleInverseVideo\fP	I
+\fBLookupMessage\fP	L
+\fBOptionMenu\fP	M
+\fBPostponed\fP	O	^O
+\fBQuitTin\fP	Q
+\fBBugReport\fP	R
+\fBDisplayPostHist\fP	W
+\fBMarkThrUnread\fP	Z
+\fBFirstPage\fP	^
+\fBSearchAuthF\fP	a
+\fBCatchup\fP	c
+\fBHelp\fP	h
+\fBToggleInfoLastLine\fP	i
+\fBDown\fP	j	^N
+\fBUp\fP	k	^P
+\fBPrint\fP	o
+\fBQuit\fP	q
+\fBVersion\fP	v
+\fBPost\fP	w
+\fBMarkArtUnread\fP	z
+\fBQuickFilterSelect\fP	[
+\fBQuickFilterKill\fP	]
+\fBPipe\fP	|
+\fBScrollUp\fP	<
+\fBScrollDown\fP	>
+\fBPageUp\fP	b	^B	^U
+\fBPageDown\fP	^D	^F	SPACE
+\fBRedrawScr\fP	^L
+\fBPostponed\fP	^O
+\fBMenuFilterSelect\fP	^A
+\fBMenuFilterKill\fP	^K
+\fBMarkFeedRead\fP	^X
+\fBMarkFeedUnread\fP	^W
+.sp
+\fBAttachSelect\fP	^J	^M
+\fBAttachPipe\fP	p
+\fBAttachSave\fP	s
+\fBAttachTag\fP		t
+\fBAttachUntag\fP	U
+\fBAttachTagPattern\fP	=
+\fBAttachToggleTagged\fP	@
+.sp
+\fBConfigToggleAttrib\fP	TAB
+\fBConfigSelect\fP	^J	^M
+\fBConfigLastPage\fP	G
+\fBConfigNoSave\fP	Q
+\fBConfigScopeMenu\fP	S
+\fBConfigFirstPage\fP	g
+\fBConfigResetAttrib\fP	r
+.sp
+\fBFeedTag\fP	T
+\fBFeedArt\fP	a
+\fBFeedHot\fP	h
+\fBFeedPat\fP	p
+\fBFeedRepost\fP	r
+\fBFeedSupersede\fP	s
+\fBFeedThd\fP	t
+.sp
+\fBFilterEdit\fP	e
+\fBFilterSave\fP	s
+.sp
+\fBGroupNextUnreadArtOrGrp\fP	TAB
+\fBGroupReadBasenote\fP	^J	^M
+\fBGroupSelThd\fP	*
+\fBGroupDoAutoSel\fP	+
+\fBGroupToggleThdSel\fP	.
+\fBGroupSelThdIfUnreadSelected\fP	;
+\fBGroupSelPattern\fP	=
+\fBGroupReverseSel\fP	@
+\fBGroupCancel\fP	D
+\fBGroupToggleGetartLimit\fP	G
+\fBGroupMarkThdRead\fP	K
+\fBGroupNextUnreadArt\fP	N
+\fBGroupPrevUnreadArt\fP	P
+\fBGroupAutoSave\fP	S
+\fBGroupTagParts\fP	T
+\fBGroupUntag\fP	U
+\fBGroupMarkUnselArtRead\fP	X
+\fBGroupToggleSubjDisplay\fP	d
+\fBGroupGoto\fP	g
+\fBGroupListThd\fP	l
+\fBGroupMail\fP	m
+\fBGroupNextGroup\fP	n
+\fBGroupPrevGroup\fP	p
+\fBGroupToggleReadUnread\fP	r
+\fBGroupSave\fP	s
+\fBGroupTag\fP	t
+\fBGroupToggleThreading\fP	u
+\fBGroupRepost\fP	x
+\fBGroupUndoSel\fP	~
+.sp
+\fBHelpLastPage\fP	G
+\fBHelpFirstPage\fP	g
+.sp
+\fBPageReplyQuoteHeaders\fP	^E
+\fBPagePGPCheckArticle\fP	^G
+\fBPageToggleRaw\fP	^H
+\fBPageNextUnread\fP	TAB
+\fBPageNextThd\fP	^J	^M
+\fBPageToggleTabs\fP	^T
+\fBPageFollowupQuoteHeaders\fP	^W
+\fBPageToggleTex2iso\fP	"
+\fBPageToggleAllHeaders\fP	*
+\fBPageToggleRot\fP	%
+\fBPageToggleUue\fP	(
+\fBPageReveal\fP	)
+\fBPageSkipIncludedText\fP	:
+\fBPageTopThd\fP	<
+\fBPageBotThd\fP	>
+\fBPageCancel\fP	D
+\fBPageFollowup\fP	F
+\fBPageLastPage\fP	G
+\fBPageKillThd\fP	K
+\fBPageNextUnreadArt\fP	N
+\fBPagePrevUnreadArt\fP	P
+\fBPageReply\fP	R
+\fBPageAutoSave\fP	S
+\fBPageGroupSel\fP	T
+\fBPageViewUrl\fP	U
+\fBPageViewAttach\fP	V
+\fBPageToggleHighlight\fP	_
+\fBPageEditArticle\fP	e
+\fBPageFollowupQuote\fP	f
+\fBPageFirstPage\fP	g
+\fBPageListThd\fP	l
+\fBPageMail\fP	m
+\fBPageNextArt\fP	n
+\fBPagePrevArt\fP	p
+\fBPageReplyQuote\fP	r
+\fBPageSave\fP	s
+\fBPageTag\fP	t
+\fBPageGotoParent\fP	u
+\fBPageRepost\fP	x
+.sp
+\fBPgpEncSign\fP	b
+\fBPgpEncrypt\fP	e
+\fBPgpIncludekey\fP	i
+\fBPgpSign\fP	s
+.sp
+\fBPostAbort\fP	a
+\fBPostContinue\fP	c
+\fBPostCancel\fP	d
+\fBPostEdit\fP	e
+\fBPostPGP\fP	g
+\fBPostIspell\fP	i
+\fBPostIgnore\fP	i
+\fBPostMail\fP	m
+\fBPostPostpone\fP	o
+\fBPostPost\fP	p	y
+\fBPostSupersede\fP	s
+\fBPostSend\fP	s	y
+.sp
+\fBPostponeOverride\fP	Y
+\fBPostponeAll\fP	A
+.sp
+\fBPromptYes\fP	y	Y
+\fBPromptNo\fP	n	N
+.sp
+\fBSaveAppendFile\fP	a
+\fBSaveOverwriteFile\fP	o
+.sp
+\fBPProcNone\fP	n
+\fBPProcShar\fP	s
+\fBPProcYes\fP	y
+.sp
+\fBSelectEnterNextUnreadGrp\fP	TAB	n
+\fBSelectReadGrp\fP	^J	^M
+\fBSelectResetNewsrc\fP	^R
+\fBSelectSortActive\fP	.
+\fBSelectNextUnreadGrp\fP	N
+\fBSelectSubscribePat\fP	S
+\fBSelectUnsubscribePat\fP	U
+\fBSelectQuitNoWrite\fP	X
+\fBSelectSyncWithActive\fP	Y
+\fBSelectToggleDescriptions\fP	d
+\fBSelectGoto\fP	g
+\fBSelectMoveGrp\fP	m
+\fBSelectToggleReadDisplay\fP	r
+\fBSelectSubscribe\fP	s
+\fBSelectUnsubscribe\fP	u
+\fBSelectYankActive\fP	y
+\fBSelectMarkGrpUnread\fP	z	Z
+.sp
+\fBScopeSelect\fP	^J	^M
+\fBScopeEditAttributesFile\fP	E
+\fBScopeAdd\fP	a
+\fBScopeDelete\fP	d
+\fBScopeMove\fP	m
+\fBScopeRename\fP	r
+.sp
+\fBThreadReadNextArtOrThread\fP	TAB
+\fBThreadReadArt\fP	^J	^M
+\fBThreadSelArt\fP	*
+\fBThreadToggleArtSel\fP	.
+\fBThreadReverseSel\fP	@
+\fBThreadCancel\fP	D
+\fBThreadMarkArtRead\fP	K
+\fBThreadAutoSave\fP	S
+\fBThreadUntag\fP	U
+\fBThreadToggleSubjDisplay\fP	d
+\fBThreadMail\fP	m
+\fBThreadSave\fP	s
+\fBThreadTag\fP	t
+\fBThreadUndoSel\fP	~
+.sp
+\fBUrlSelect\fP	^J	^M
+.fi
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP
+.sp
+.RS
+This file provides short descriptions of each mailgroup. (requires \fBtin\fP(1) 
+to be build with mh\-mail\-handling support). Each line consist of two
+tab\-separated fields "\fImailgroupname\fP \fIone\-line description\fP".
+.TP 
+\fBmailgroupname\fP
+is the name of the newsgroup
+.TP 
+\fBdescription\fP
+is a short single\-line description of the group
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fP
+.sp
+.RS
+"\fInntpserver\fP \fInewsrc\fP [\fIshortname\fP [\fI...\fP]]" pairs to use with the
+\&\*(rq\fB\-g\fP\*(rq command\-line switch.
+.TP 
+\fBnntpserver\fP
+full qualified domain name of the newsserver.
+.TP 
+\fBnewsrc\fP
+related newsrc.
+.TP 
+\fBshortname\fP
+nickname(s) for the nntpserver.
+.TP 
+Example:
+.RS
+# sample newsrctable file
+.br
+news.tin.org .newsrc\-tin.org tinorg
+.br
+news.example.org /tmp/nrc\-ex example ex
+.RE
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/posted\fP
+.sp
+.RS
+posting history
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/posted\fP
+.sp
+.RS
+Copy of all posted articles in \fBmbox\fP(5)  format. The filename can be
+changed by setting \fBposted_articles_file\fP.
+.RE
+.PP
+
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/postponed.articles\fP
+.sp
+.RS
+Pool of postponed articles. This file is in \fBmbox\fP(5)  format.
+.RE
+.PP
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/newsgroups\fP
+.fi
+.sp
+.RS
+This file a copy of the servers newsgroups file which provides short
+descriptions of each newsgroup. It is automatically updated on startup
+except when using the \*(rq\fB\-X\fP\*(rqor \*(rq\fB\-q\fP\*(rq command\-line option and an old
+copy exists. Each line consist of two tab\-separated fields
+"\fIgroup.name\fP	\fIone\-line description\fP".
+.TP 
+\fBgroup.name\fP
+is the name of the newsgroup
+.TP 
+\fBone\-line description\fP
+is a short single\-line description of the group
+.RE
+.PP
+
+
+.nf
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/serverrc\fP
+.fi
+.sp
+.RS
+File to store $\fBNNTPSERVER\fP and $\fBNNTPPORT\fP related data via a list of
+"\fIvariable\fP=\fIvalue\fP" pairs. Currently there are only two variables, both
+are not meant to be changed by the user.
+.TP 
+\fBversion\fP
+Internal version number.
+.TP 
+\fBlast_newnews\fP
+Internal timestamp used by \fBtin\fP(1)  to keep track of new newsgroups on the
+server.
+.RE
+.PP
+
+.\" tin uses inns old (pre 2.x) Path convention.
+.\" as with inn >= 2.2.x getting more and more popular
+.\" we should think about checking for the new Paths (/news/etc/)
+.\" .IR ${TIN_LIBDIR\-"/news/etc"}/tinrc
+\fI/etc/tin/tinrc\fP
+.br
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP
+.sp
+.RS
+At startup, \fBtin\fP(1)  reads in the configuration file. This contains a list
+of "\fIvariable\fP=\fIvalue\fP" pairs that can be used to configure the way
+\fBtin\fP(1)  works. If it exists, the global configuration file,
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fP is read first. After that, the user's own
+configuration file \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP is read.  The
+global file is useful for distributing system\-wide defaults to new users who
+have no private tinrc yet (see also \fB/etc/tin/tin.defaults\fP).
+.TP 
+\fBabbreviate_groupname\fP
+If ON abbreviate long newsgroup names at group selection level and article
+level (if necessary) like this: news.software.readers \->
+n.software.readers \-> n.s.readers \-> n.s.r.  Default is OFF.
+.TP 
+\fBadd_posted_to_filter\fP
+If ON add posted articles which start a new thread to filter for
+highlighting follow\-ups. Default is ON.
+.TP 
+\fBadvertising\fP
+Turn ON advertising in header (\*(rqUser\-Agent:\*(rq). Default is ON.
+.TP 
+\fBalternative_handling\fP
+If ON strip multipart/alternative messages automatically. Default is ON.
+.TP 
+\fBart_marked_deleted\fP
+The character used to show that an article was deleted. Default is 'D'.
+.TP 
+\fBart_marked_inrange\fP
+The character used to show that an article is in a range. Default is '#'.
+.TP 
+\fBart_marked_return\fP
+The character used to show that an article will return as an unread article
+when the group is next entered. Default is '\-'.
+.TP 
+\fBart_marked_selected\fP
+The character used to show that an article/thread is auto\-selected (hot). 
+Default is '*'.
+.TP 
+\fBart_marked_recent\fP
+The character used to show that an article/thread is recent (not older than
+X days). See also \fBrecent_time\fP. Default is 'o'.
+.TP 
+\fBart_marked_unread\fP
+The character used to show that an article has not been read.  Default is
+\&'+'.
+.TP 
+\fBart_marked_read\fP
+The character used to show that an article was read. Default is ' '.
+.TP 
+\fBart_marked_killed\fP
+The character used to show that an article was killed. Default is 'K'. 
+\fBkill_level\fP must be set accordingly.
+.TP 
+\fBart_marked_read_selected\fP
+The character used to show that an article was hot before it was read. 
+Default is ':'. \fBkill_level\fP must be set accordingly.
+.TP 
+\fBAsk before using MIME viewer (ask_for_metamail)\fP
+If ON \fBtin\fP(1)  will ask before using a MIME viewer (\fBmetamail_prog\fP) to
+display MIME messages. This only occurs if a MIME viewer is set. Default is
+OFF.
+.TP 
+\fBauto_cc_bcc\fP
+Automatically put your name in the \*(rqCc:\*(rq and/or \*(rqBcc:\*(rq field when
+mailing an article. Default is No.
+.TP 
+\fBauto_list_thread\fP
+If ON automatically list thread when entering it using right arrow key. 
+Default is ON.
+.TP 
+\fBauto_reconnect\fP
+Reconnect to server automatically. Default is OFF.
+.TP 
+\fBauto_save\fP
+If ON articles/threads with \*(rqArchive\-name:\*(rq in header will be
+automatically saved with the Archive\-name & part/patch no and post processed
+if \fBpost_process_type\fP is set to something other than 'No'.  Default is
+OFF.
+.TP 
+\fBbatch_save\fP
+If set ON articles/threads will be saved in batch mode when save \&\*(rq\fB\-S\fP\*(rq
+or mail \*(rq\fB\-M\fP, \fB\-N\fP\*(rq is specified on the command line. Default is ON.
+.TP 
+\fBbeginner_level\fP
+If set ON a mini menu of the most useful commands will be displayed at the
+bottom of the screen for each level. Also a short posting etiquette will be
+displayed after composing an article. Default is ON.
+.TP 
+\fBcache_overview_files\fP
+If ON, create local copies of NNTP overview files. This can be used to
+considerably speed up accessing large groups when using a slow connection. 
+Default is OFF.
+.TP 
+\fBcatchup_read_groups\fP
+If set ON the user is asked when quitting if all groups read during the
+current session should be marked read. Default is OFF.
+.TP 
+\fBcol_back\fP
+Standard background colour
+.TP 
+\fBcol_from\fP
+Colour of sender (From:)
+.TP 
+\fBcol_head\fP
+Colour of header\-lines
+.TP 
+\fBcol_help\fP
+Colour of help pages
+.TP 
+\fBcol_invers_bg\fP
+Colour of background for inverse text
+.TP 
+\fBcol_invers_fg\fP
+Colour of foreground for inverse text
+.TP 
+\fBcol_markdash\fP
+Colour of words emphasized like _this_. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_markslash\fP
+Colour of words emphasized like /this/. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_markstar\fP
+Colour of words emphasized like *this*. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_markstroke\fP
+Colour of words emphasized like \-this\-. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBcol_minihelp\fP
+Colour of mini help menu
+.TP 
+\fBcol_newsheaders\fP
+Colour of actual news header fields
+.TP 
+\fBcol_normal\fP
+Standard foreground colour
+.TP 
+\fBcol_quote\fP
+Colour of quoted lines
+.TP 
+\fBcol_quote2\fP
+Colour of twice quoted lines
+.TP 
+\fBcol_quote3\fP
+Colour of >=3 times quoted lines
+.TP 
+\fBcol_response\fP
+Colour of response counter. This is the text that says 'Response x of y' in
+the article viewer.
+.TP 
+\fBcol_signature\fP
+Colour of signatures
+.TP 
+\fBcol_urls\fP
+Colour of urls highlight
+.TP 
+\fBcol_verbatim\fP
+Colour of verbatim blocks
+.TP 
+\fBcol_subject\fP
+Colour of article subject
+.TP 
+\fBcol_text\fP
+Colour of text\-lines
+.TP 
+\fBcol_title\fP
+Colour of help/mail sign
+.TP 
+\fBconfirm_choice\fP
+\fBtin\fP(1)  can ask for manual confirmation to protect the user. Available
+choices:
+.in +.5i
+.\" TODO: check if all affected commands are marked [after confirmation]
+\fBcommands:\fP Ask for confirmation before executing certain dangerous
+commands (e.g., \fBCatchup\fP ('\fBc\fP')). Commands that this affects are marked
+in this manual with '[after confirmation]'.
+.sp
+\fBquit:\fP You'll be asked to confirm that you wish to exit \fBtin\fP(1)  when
+you use the \fBQuit\fP ('\fBq\fP') command.
+.sp
+\fBselect:\fP Ask for confirmation before marking all not selected (with
+\fBGroupMarkUnselArtRead\fP ('\fBX\fP') command) articles as read.
+.in -.5i
+Default is commands & quit.
+.TP 
+\fBdate_format\fP
+Format string used for date representation. A description of the different
+format options can be found at \fBstrftime\fP(3).  \fBtin\fP(1)  uses
+\fBstrftime\fP(3)  when available and supports most format options in his
+fallback code.  Default is "%a, %d %b %Y %H:%M:%S".
+.TP 
+\fBdefault_art_search\fP
+.TP 
+\fBdefault_author_search\fP
+.TP 
+\fBdefault_config_search\fP
+The last article/author/config option that was searched for.
+.TP 
+\fBdefault_filter_days\fP
+Default is 28.
+.TP 
+\fBdefault_filter_kill_case\fP
+Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF
+= ignore case. Default is OFF.
+.TP 
+\fBdefault_filter_kill_expire\fP
+Default for quick (1 key) kill filter expire. ON = limit to
+\&'\fBdefault_filter_days\fP', OFF = don't ever expire. Default is OFF.
+.TP 
+\fBdefault_filter_kill_global\fP
+Default for quick (1 key) kill filter global. ON=apply to all groups,
+OFF=apply to current group. Default is ON.
+.TP 
+\fBdefault_filter_kill_header\fP
+Default for quick (1 key) kill filter header.
+.in +.3i
+.nf
+.ta \w'0,1   'u +\w'\'\'Message\-ID:\'\' & last \'\'References:\'\' entry only'u
+0	\*(rqSubject:\*(rq (case sensitive)
+1	\*(rqSubject:\*(rq (ignore case)
+2	\*(rqFrom:\*(rq (case sensitive)
+3	\*(rqFrom:\*(rq (ignore case)
+4	\*(rqMessage\-ID:\*(rq & full \*(rqReferences:\*(rq line
+5	\*(rqMessage\-ID:\*(rq & last \*(rqReferences:\*(rq entry only
+6	\*(rqMessage\-ID:\*(rq entry only
+7	\*(rqLines:\*(rq
+.fi
+.in -.3i
+.TP 
+\fBdefault_filter_select_case\fP
+Default for quick (1 key) auto\-selection filter case. ON=filter case
+sensitive, OFF=ignore case. Default is OFF.
+.TP 
+\fBdefault_filter_select_expire\fP
+Default for quick (1 key) auto\-selection filter expire. ON = limit to
+\&'\fBdefault_filter_days\fP', OFF = don't ever expire. Default is OFF.
+.TP 
+\fBdefault_filter_select_global\fP
+Default for quick (1 key) auto\-selection filter global. ON=apply to all
+groups, OFF=apply to current group. Default is ON.
+.TP 
+\fBdefault_filter_select_header\fP
+Default for quick (1 key) auto\-selection filter header.
+.in +.3i
+.nf
+.ta \w'0,1   'u +\w'\'\'Message\-ID:\'\' & last \'\'References:\'\' entry only'u
+0	\*(rqSubject:\*(rq (case sensitive)
+1	\*(rqSubject:\*(rq (ignore case)
+2	\*(rqFrom:\*(rq (case sensitive)
+3	\*(rqFrom:\*(rq (ignore case)
+4	\*(rqMessage\-ID:\*(rq & full \*(rqReferences:\*(rq line
+5	\*(rqMessage\-ID:\*(rq & last \*(rqReferences:\*(rq entry only
+6	\*(rqMessage\-ID:\*(rq entry only
+7	\*(rqLines:\*(rq
+.fi
+.in -.3i
+.TP 
+\fBdefault_goto_group\fP
+.TP 
+\fBdefault_group_search\fP
+.TP 
+\fBdefault_mail_address\fP
+.TP 
+\fBdefault_move_group\fP
+.TP 
+\fBdefault_pattern\fP
+.TP 
+\fBdefault_pipe_command\fP
+.TP 
+\fBdefault_post_newsgroups\fP
+.TP 
+\fBdefault_post_subject\fP
+.TP 
+\fBdefault_range_group\fP
+.TP 
+\fBdefault_range_select\fP
+.TP 
+\fBdefault_range_thread\fP
+.TP 
+\fBdefault_repost_group\fP
+.TP 
+\fBdefault_save_file\fP
+.TP 
+\fBdefault_save_mode\fP
+.TP 
+\fBdefault_select_pattern\fP
+.TP 
+\fBdefault_shell_command\fP
+.TP 
+\fBdefault_subject_search\fP
+.TP 
+\fBdraw_arrow\fP
+Allows groups/articles to be selected by an arrow '\->' if set ON or by
+an highlighted bar if set OFF.
+.TP 
+\fBeditor_format\fP
+The format string used to create the editor start command with parameters. 
+Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename (e.g.,
+/bin/vi +7 .article).
+.TP 
+\fBforce_screen_redraw\fP
+Specifies whether a screen redraw should always be done after certain
+external commands. Default is OFF.
+.TP 
+\fBgetart_limit\fP
+If \fBgetart_limit\fP is > 0 not more than \fBgetart_limit\fP articles/group
+are fetched from the server. If \fBgetart_limit\fP is < 0 \fBtin\fP(1)  will
+start fetching articles from your first unread minus absolute value of
+\fBgetart_limit\fP. Default is 0, which means no limit.
+.TP 
+\fBgoto_next_unread\fP
+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 
+\fBgroup_catchup_on_exit\fP
+If ON catchup group when leaving with the left arrow key. Default is ON.
+.TP 
+\fBgroupname_max_length\fP
+Maximum length of the names of newsgroups to be displayed so that more of
+the newsgroup description can be displayed. Default is 32.
+.TP 
+\fBhide_uue\fP
+If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then
+sections of uuencoded data will be shown with a single tag line showing the
+size and filename (much the same as a MIME attachment).  If set to 'Hide
+all' then any line that looks like uuencoded data will be folded into a tag
+line. This is useful when uuencoded data is split across more than one
+article but can also lead to false positives. This setting can also be
+toggled in the article viewer.  Default is 'No'.
+.TP 
+\fBinews_prog\fP
+Path, name and options of external \fBinews\fP(1).  If you are reading via NNTP
+the default value is "\-\-internal" (use built\-in NNTP inews), else it is
+"inews \-h". The article is passed to \fBinews_prog\fP on STDIN via '<
+article'.
+.TP 
+\fBinfo_in_last_line\fP
+If ON, show current group description or article subject in the last line
+(not in the pager and global menu) \- \fBToggleInfoLastLine\fP ('\fBi\fP' toggles
+setting). This facility is useful as the full width of the screen is
+available to display long subjects. Default is OFF.
+.TP 
+\fBinteractive_mailer\fP
+If greater than 0 your mailreader will be invoked earlier for reply so you
+can use more of its features (e.g. MIME, pgp, ...). 1 means include headers,
+2 means don't include headers (old use_mailreader_i=ON option). 0 turns off
+usage. This option has to suit \fBmailer_format\fP. Default is 0.
+.TP 
+\fBinverse_okay\fP
+If ON use inverse video for page headers and URL highlighting.  Default is
+ON.
+.TP 
+\fBkeep_dead_articles\fP
+If ON keep all failed postings in \fI${TIN_HOMEDIR:\-"$HOME"}/dead.articles\fP
+besides keeping the last failed posting in
+\fI${TIN_HOMEDIR:\-"$HOME"}/dead.article\fP. Default is ON.
+.TP 
+\fBkill_level\fP
+This option controls the processing and display of articles that are
+killed. There are 3 options, default is 0 (\fBKill only unread arts\fP).
+.RS +1i
+.IP 0 3
+\fBKill only unread arts\fP is the 'traditional' behaviour of \fBtin\fP(1).  Only
+unread articles are killed once only by marking them read. As filtering only
+happens on unread articles with \fBkill_level\fP set to 0, \fBart_marked_killed\fP
+and \fBart_marked_read_selected\fP are only shown once. When you reenter the
+group the mark will be gone.
+.IP 1
+\fBKill all arts & show with K\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles are threaded as normal but they will be marked with
+\fBart_marked_killed\fP.
+.IP 2
+\fBKill all arts and never show\fP will process all articles in the group and
+therefore there is a processing overhead when using this option. Killed
+articles simply does not get displayed at all.
+.RE
+.TP 
+\fBmail_8bit_header\fP
+Allows 8bit characters unencoded in the header of mail message. Default is
+OFF. Turning it ON is effective only if \fBmail_mime_encoding\fP is also set to
+8bit. Leaving it OFF is safe for most users and compliant to Internet Mail
+Standard (\fBRFC5322\fP and \fBRFC2047\fP). Default is OFF.
+.TP 
+\fBmail_address\fP
+User's mail address (and full name), if not username@host. This is used when
+creating articles, sending mail and when \fBpgp\fP(1)  signing.
+.TP 
+\fBmail_mime_encoding\fP
+MIME encoding of the body in mail message, if necessary (8bit, base64,
+quoted\-printable, 7bit). Default is quoted\-printable.
+.TP 
+\fBmail_quote_format\fP
+Format of quote line when replying (via mail) to an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "In article %M you wrote:"
+.TP 
+\fBmailbox_format\fP
+Select one of the following mailbox\-formats: MBOXO (default, except on SCO),
+MBOXRD or MMDF (default on SCO). See \fBmbox\fP(5)  for more details on MBOXO
+and MBOXRD and \fBmmdf\fP(5)  for more details about MMDF.
+.TP 
+\fBmaildir\fP
+The directory where articles/threads are to be saved in \fBmbox\fP(5) 
+format. This feature is mainly for use with the \fBelm\fP(1)  mail program. It
+allows the user to save articles/threads/groups simply by giving '=' as the
+filename to save to. Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fP.
+.TP 
+\fBmailer_format\fP
+The format string used to create the mailer command with parameters that is
+used for mailing articles to other people. Default is '%M "%T" < %F'
+(e.g., /bin/mail "iain" < .article). The flexible format allows other
+mailers with different command line parameters to be used such as
+.in +.3i
+.nf
+sendmail \-oem \-t < %F
+elm \-s "%S" "%T" < "%F"
+claws\-mail \-\-compose "mailto:%T?subject=%S&insert=%F"
+.fi
+.in -.3i
+\fBinteractive_mailer\fP must be set adequate. The following substitutions are
+supported:
+.in +.3i
+.nf
+.ta \w'%S'u +\w'subject\-field'u
+%F	filename
+%M	default_mailer
+%S	subject\-field
+%T	to\-filed
+%U	username
+%%	%
+.fi
+.in -.3i
+.TP 
+\fBmark_saved_read\fP
+If ON mark articles that are saved as read. Default is ON.
+.TP 
+\fBmark_ignore_tags\fP
+When this is ON, the \fBGroupMarkThdRead\fP ('\fBK\fP'), \fBThreadMarkArtRead\fP
+('\fBK\fP'), \fBMarkThdUnread\fP ('\fBZ\fP') at Group level and \fBMarkArtUnread\fP
+('\fBz\fP') at Thread level functions mark just the current article or thread,
+ignoring other tagged, (un)read articles. When OFF, the same function
+presents a menu with choices of the current thread or article, all tagged,
+unread articles, or nothing.
+.TP 
+\fBmetamail_prog\fP
+Path, name and options of external \fBmetamail\fP(1)  program used to view
+non\-textual parts of articles.  To use the built\-in viewer, set to
+\-\-internal. This is the default value when \fBmetamail\fP(1)  is not
+installed. Leave it blank if you don't want any automatic viewing of
+non\-textual attachments. The 'V' command can always be used to manually view
+any attachments. See also \fBask_for_metamail\fP.
+.TP 
+\fBmm_charset\fP
+Charset supported locally, which is also used for MIME header (charset
+parameter and charset name in header encoding) in mail and news postings. If
+\fBMIME_STRICT_CHARSET\fP is defined at the compile time, text in charset other
+than the value of this parameter is considered not displayable and
+represented as '?'. Otherwise, all character sets are regarded as compatible
+with the display. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined. If your system supports \fBiconv\fP(3), this option
+is disabled and you should use \fBmm_network_charset\fP instead.
+.TP 
+\fBmm_network_charset\fP
+Charset used for posting and MIME headers; replaces \fBmm_charset\fP. 
+Conversion between \fBmm_network_charset\fP and local charset (determined via
+\fBnl_langinfo\fP(3))  is done via \fBiconv\fP(3), if this function is not
+available on your system this option is disabled and you have to use
+\fBmm_charset\fP instead.  \fBmm_network_charset\fP is limited to one of the
+following charsets:
+.in +.3i
+US\-ASCII, ISO\-8859\-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8\-{R,U,RU}
+EUC\-{CN,JP,KR,TW}, ISO\-2022\-{CN,CN\-EXT,JP,JP\-1,JP\-2}, Big5, UTF\-8
+.in -.3i
+Not all values might work on your system, see \fBiconv_open\fP(3)  for more
+details. If it's not set, the value of the environment variable
+$\fBMM_CHARSET\fP is used. US\-ASCII or compile\-time default is used in case
+neither of them is defined.
+.TP 
+\fBmono_markdash\fP
+Character attribute of words emphasized like _this_. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBmono_markslash\fP
+Character attribute of words emphasized like /this/. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBmono_markstar\fP
+Character attribute of words emphasized like *this*. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBmono_markstroke\fP
+Character attribute of words emphasized like \-this\-. It is depending on your
+terminal which attributes are usable. See also \fBword_h_display_marks\fP and
+\fBword_highlight\fP.
+.TP 
+\fBnewnews\fP
+These are internal timers used by \fBtin\fP(1)  to keep track of new
+newsgroups. Do not change them unless you understand what they are for.
+.TP 
+\fBnews_headers_to_display\fP
+Which news headers you wish to see. If you want to see _all_ the headers,
+place an '*' as this value. This is the only way a wildcard can be used. If
+you enter 'X\-' as the value, you will see all headers beginning with 'X\-'
+(like X\-Alan or X\-Pape). You can list more than one by delimiting with
+spaces. Not defining anything turns off this option.
+.TP 
+\fBnews_headers_to_not_display\fP
+Same as \fBnews_headers_to_display\fP except it denotes the opposite. An
+example of using both options might be if you thought 'X\-' headers were A
+Good Thing(tm), but thought Alan and Pape were miscreants... well then you
+would do something like this: \fBnews_headers_to_display=X\-\fP
+\fBnews_headers_to_not_display=X\-Alan X\-Pape\fP Not defining anything turns off
+this option.
+.TP 
+\fBnews_quote_format\fP
+Format of quote line when posting/following up an article (%A=Address,
+%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message\-ID, %N=Fullname,
+%C=Firstname, %I=Initials). Default is "%F wrote:".
+.TP 
+\fBnormalization_form\fP
+The normalisation form which should be used to normalise unicode input.  The
+possible values are:
+.RS +1i
+.IP 0 3
+\fBNone\fP: no normalisation
+.IP 1
+\fBNFKC\fP: Compatibility Decomposition, followed by Canonical Composition
+.IP 2
+\fBNFKD\fP: Compatibility Decomposition
+.IP 3
+\fBNFC\fP: Canonical Decomposition, followed by Canonical Composition
+.IP 4
+\fBNFD\fP: Canonical Decomposition
+.RE
+Some normalisation modes are only available if they are supported by the
+library \fBtin\fP(1)  uses to do the normalisation. Default is NFKC.
+.TP 
+\fBpos_first_unread\fP
+If ON put cursor at first unread article in group otherwise at last
+article.  Default is ON.
+.TP 
+\fBpost_8bit_header\fP
+Allows 8bit characters unencoded in the header of a news article, if set
+this also disables the generation of MIME\-headers when they are usually
+required. Default is OFF. Only enacted if \fBpost_mime_encoding\fP is also set
+to 8bit. In a number of local hierarchies where 8bit characters are used,
+using unencoded (raw)  8bit characters in header is acceptable and sometimes
+even recommended so that you need to check the convention adopted in the
+local hierarchy of your interest to determine what to do with this and
+\fBpost_mime_encoding\fP.
+.TP 
+\fBpost_mime_encoding\fP
+MIME encoding of the body in news message, if necessary. (8bit, base64,
+quoted\-printable, 7bit). Default is 8bit, which leads to no encoding. 
+base64 and quoted\-printable are usually undesired on usenet.
+.TP 
+\fBpost_process_view\fP
+If ON, then \fBtin\fP(1)  will start an appropriate viewer program to display
+any files that were post processed and uudecoded. The program is determined
+using the mailcap file.  Default is ON.
+.TP 
+\fBpost_process_type\fP
+This specifies whether to perform post processing on saved articles. 
+Because the shell archive may contain commands you may not want to be
+executed, be careful when extracting shell archives.  The following values
+are allowed:
+.RS +1i
+.IP 0 3
+\fBNo\fP (default), no post processing is done.
+.IP 1
+\fBShell archives\fP, unpacking of multi\-part \fBshar\fP(1)  files only. Because
+the shell archive may contain commands you may not want to be executed, be
+careful with this option.
+.IP 2
+\fBYes\fP, binary attachments and data will be decoded and saved.
+.RE
+.TP 
+\fBposted_articles_file\fP
+Keep posted articles in
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/\fP\fBposted_articles_file\fP.  If no filename is
+set then postings will not be saved.  Default is 'posted'.
+.TP 
+\fBprint_header\fP
+If ON, then the full article header is sent to the printer. Otherwise only
+the \*(rqSubject:\*(rq and \*(rqFrom:\*(rq fields are output. Default is OFF.
+.TP 
+\fBprinter\fP
+The printer program with options that is to be used to print articles. The
+default is \fBlpr\fP(1)  for BSD machines and \fBlp\fP(1)  for SysV
+machines. Printing from \fBtin\fP(1)  may have been disabled by the System
+Administrator.
+.TP 
+\fBprocess_only_unread\fP
+If ON only save/print/pipe/mail unread articles (tagged articles excepted). 
+Default is OFF.
+.TP 
+\fBprompt_followupto\fP
+If ON show empty \*(rqFollowup\-To:\*(rq header when editing an article.  Default
+is OFF.
+.TP 
+\fBquote_chars\fP
+.\" TODO: document %s
+The character used in quoting included text to article followups and mail
+replies. The '_' character represents a blank character and is replaced with
+\&' ' when read. Default is '>_'.
+.TP 
+\fBquote_style\fP
+This bit coded integer value controls how articles are to be quoted when
+following up or replying to them. Any of the following options can be
+combined by adding all relevant values. Default is 5, which means that quote
+characters are compressed and empty lines are quoted.
+.RS +1i
+.IP 1 3
+\fBCompress quotes\fP Compress quote characters together when quoting multiple
+times (for example, '> > >' will be turned into
+\&'>>>'). This option is on by default.
+.IP 2
+\fBQuote Signatures\fP This option is off by default. Signatures are always
+quoted regardless of this option when you are viewing an article in raw mode
+\fBPageToggleRaw\fP ('\fB^H\fP') and followup or reply to it. Signatures are never
+quoted regardless of this option when \fBshow_signatures\fP is off.
+.IP 4
+\fBQuote empty lines\fP This option is on by default.
+.RE
+.TP 
+\fBquote_regex\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote\fP. If \fBquote_regex\fP is blank, then
+\fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBquote_regex2\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote2\fP. If \fBquote_regex2\fP is blank, then
+\fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBquote_regex3\fP
+A regular expression that will be applied when reading articles. All
+matching lines are shown in \fBcol_quote3\fP. If \fBquote_regex3\fP is blank, then
+\fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBrecent_time\fP
+If set to 0, this feature is deactivated, otherwise it means the number of
+days. Default is 2.
+.TP 
+\fBrender_bidi\fP
+If ON \fBtin\fP does the rendering of bi\-directional text. If OFF \fBtin\fP leaves
+the rendering of bi\-directional text to the terminal. Default is OFF.
+.TP 
+\fBreread_active_file_secs\fP
+The news \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP file is
+reread at regular intervals to show if any new news has arrived. Default is
+1200. Setting this to 0 will disable this feature.
+.TP 
+\fBsavedir\fP
+Directory where articles/threads are saved. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fP.
+.TP 
+\fBscore_limit_kill\fP
+If the score of an article is below or equal this value the article gets
+marked as killed.
+.TP 
+\fBscore_limit_select\fP
+If the score of an article is above or equal this value the article gets
+marked as hot.
+.TP 
+\fBscore_kill\fP
+Score of an article which should be killed, this must be <=
+\fBscore_limit_kill\fP.
+.TP 
+\fBscore_select\fP
+Score of an article which should be marked hot, this must be >=
+\fBscore_limit_select\fP.
+.TP 
+\fBscroll_lines\fP
+The number of lines that will be scrolled up/down in the article pager when
+using cursor\-up/down. The default is 1 (line\-by\-line). Set to 0 to get
+traditional page\-by\-page scrolling. Set to \-1 to get page\-by\-page scrolling
+where the top/bottom line is carried over onto the next page.  This setting
+supersedes show_last_line_prev_page=ON. Set to \-2 to get half\-page
+scrolling. This setting supersedes full_page_scroll=OFF.
+.TP 
+\fBshow_author\fP
+Which information about the author should be shown. Default is 2, authors
+full name.
+.RS +1i
+.IP 0 3
+\fBNone\fP, only the \*(rqSubject:\*(rq line will be displayed.
+.IP 1
+\fBAddress\fP, \*(rqSubject:\*(rq line & the address part of the \*(rqFrom:\*(rq line are
+displayed.
+.IP 2
+\fBFull Name\fP, \*(rqSubject:\*(rq line & the authors full name part of the
+\&\*(rqFrom:\*(rq line are displayed (default).
+.IP 3
+\fBAddress and Name\fP, \*(rqSubject:\*(rq line & all of the \*(rqFrom:\*(rq line are
+displayed.
+.RE
+.TP 
+\fBshow_description\fP
+If ON show a short group description text after newsgroup name at the group
+selection level. The \*(rq\fB\-d\fP\*(rq command\-line flag will override the setting
+and turn descriptions off. The text used is taken from the
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP file and if supported (requires
+\fBtin\fP(1)  to be build with mh\-mail\-handling support) from
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fP for mailgroups. Default is ON.
+.TP 
+\fBshow_info\fP
+Which information about the thread or article should be shown. Default is 1,
+show only the line count.
+.RS +1i
+.IP 0 3
+\fBNone\fP, no information will be displayed.
+.IP 1
+\fBLines\fP, in article listing the line count of an article will be displayed
+and in thread listing the line count of first (unread)  article will be
+displayed.
+.IP 2
+\fBScore\fP, in article listing the score of an article will be displayed and
+in thread listing the score of the thread will be displayed \- see also
+\fBthread_score\fP.
+.IP 3
+\fBLines & Score\fP, display line count and score.
+.RE
+.TP 
+\fBshow_only_unread_arts\fP
+If ON show only new/unread articles otherwise show all articles. Default is
+ON.
+.TP 
+\fBshow_only_unread_groups\fP
+If ON show only subscribed groups that contain unread articles. Default is
+OFF.
+.TP 
+\fBshow_signatures\fP
+If OFF don't show signatures when displaying articles. Default is ON.
+.TP 
+\fBsigdashes\fP
+If ON prepend the signature with sigdashes. Default is ON.
+.TP 
+\fBsigfile\fP
+The path that specifies the signature file to use when posting, following up
+to or replying to an article. If the path is a directory then the signature
+will be randomly generated from files that are in the specified
+directory. If the path starts with a ! the program the path points to will
+be executed to generate a signature.  \fBtin\fP(1)  will pass the name of the
+current newsgroup as argument to the program. \-\-none will suppress any
+signature.  Default is \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fP.
+.TP 
+\fBsignature_repost\fP
+If ON add signature to reposted articles. Default is ON.
+.TP 
+\fBslashes_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markslash\fP or \fBmono_markslash\fP. If
+\fBslashes_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBsort_article_type\fP
+This specifies how articles should be sorted. Sort by ascending Date (6) is
+the default. The following sort types are allowed:
+.RS +1i
+.IP 0 3
+\fBNothing\fP, don't sort articles.
+.IP 1
+\fBSubject: (descending)\fP, sort articles by \*(rqSubject:\*(rq field descending.
+.IP 2
+\fBSubject: (ascending)\fP, sort articles by \*(rqSubject:\*(rq field ascending.
+.IP 3
+\fBFrom: (descending)\fP, sort articles by \*(rqFrom:\*(rq field descending.
+.IP 4
+\fBFrom: (ascending)\fP, sort articles by \*(rqFrom:\*(rq field ascending.
+.IP 5
+\fBDate: (descending)\fP, sort articles by \*(rqDate:\*(rq field descending.
+.IP 6
+\fBDate: (ascending)\fP, sort articles by \*(rqDate:\*(rq field ascending (default).
+.IP 7
+\fBScore (descending)\fP, sort articles by filtering score descending.
+.IP 8
+\fBScore (ascending)\fP, sort articles by filtering score ascending.
+.IP 9
+\fBLines: (descending)\fP, sort articles by \*(rqLines:\*(rq field descending.
+.IP 10
+\fBLines: (ascending)\fP, sort articles by \*(rqLines:\*(rq field ascending.
+.RE
+.TP 
+\fBsort_threads_type\fP
+This specifies how threads will be sorted. Sort by descending Score (1) is
+the default. The following sort types are allowed:
+.RS +1i
+.IP 0 3
+\fBNothing\fP, don't sort threads.
+.IP 1
+\fBScore (descending)\fP, sort threads by filtering score descending (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 
+\fBspamtrap_warning_addresses\fP
+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
+these strings. The matching is case\-insensitive.
+.TP 
+\fBstars_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markstar\fP or \fBmono_markstar\fP. If
+\fBstars_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBstart_editor_offset\fP
+Set ON if the editor used for posting, follow\-ups and bug reports has the
+capability of starting and positioning the cursor at a specified line within
+a file. Default is ON.
+.TP 
+\fBstrip_blanks\fP
+Strips the blanks from the end of each line therefore speeding up the
+display when reading on a slow terminal or via modem. Default is ON.
+.TP 
+\fBstrip_bogus\fP
+Bogus groups are groups that are present in your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file that no longer exist on the news
+server. There are 3 options. 0 means do nothing & always keep bogus groups. 
+1 means bogus groups will be permanently removed. 2 means that bogus groups
+will appear on the Group Selection Menu, prefixed with a 'D'. This allows
+you to unsubscribe from them as and when you wish. Default is 0 (Always
+Keep).
+.TP 
+\fBstrip_newsrc\fP
+If ON, then unsubscribed groups will be permanently removed from your
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fP file. Default is OFF.
+.TP 
+\fBstrokes_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markstroke\fP or \fBmono_markstroke\fP.  If
+\fBstrokes_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBtex2iso_conv\fP
+Decode German style TeX umlaut codes to ISO If ON, show "a as Umlaut\-a,
+etc. Default is OFF. This behaviour can also be toggled in the article
+viewer via \fBPageToggleTex2iso\fP ('\fB"\fP').
+.TP 
+\fBthread_articles\fP
+Defines which threading method to use. The choices are: 0) Don't thread, 1)
+Thread on Subject only 2) Thread on References only, 3) Thread on References
+then Subject (default)  4) Thread multipart articles on Subject.  5) Thread
+on Percentage Match of the Subjects It's also possible to set the threading
+type on a per group basis by setting the group attribute variable
+\fBthread_articles\fP to 0 \- 5 in the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fP.
+.TP 
+\fBthread_perc\fP
+Defines how close the subjects must match while threading by Percentage
+Match for threads to be considered part of a single thread. This value is in
+the range 0 to 100. The default is 75.
+.TP 
+\fBthread_catchup_on_exit\fP
+If ON catchup group/thread when leaving with the left arrow key. Default is
+ON.
+.TP 
+\fBthread_score\fP
+How the total score of a thread is computed. Default is 0, the maximum score
+in this thread.
+.RS +1i
+.IP 0 3
+\fBMax\fP, the maximum score in this thread.
+.IP 1
+\fBSum\fP, the sum of all scores in this thread.
+.IP 2
+\fBAverage\fP, the average score in this thread.
+.RE
+.TP 
+\fBtranslit\fP
+If ON append //TRANSLIT to the first argument of \fBiconv_open\fP(3)  to enable
+transliteration. This means that when a character cannot be represented in
+the target character set, it can be approximated through one or several
+similarly looking characters. On systems where this extension doesn't exist,
+this option is disabled. Default is OFF.
+.TP 
+\fBtrim_article_body\fP
+Allows you to select how \fBtin\fP treats blank lines in article bodies. 
+Default is 0. This option does not affect lines within verbatim blocks.
+.RS +1i
+.IP 0 3
+\fBDon't trim article body\fP, do nothing.
+.IP 1
+\fBSkip leading blank lines\fP.
+.IP 2
+\fBSkip trailing blank lines\fP.
+.IP 3
+\fBSkip leading and trailing blank l.\fP, skip leading and trailing blank
+lines.
+.IP 4
+\fBCompact multiple between text\fP, replace multiple blank lines between
+textblocks with one blank line.
+.IP 5
+\fBCompact multiple and skip leading\fP, 4 + 1
+.IP 6
+\fBCompact multiple and skip trailing\fP, 4 + 2
+.IP 7
+\fBCompact mltpl., skip lead. & trai.\fP, 4 + 3
+.RE
+.TP 
+\fBunderscores_regex\fP
+A regular expression that will be applied when reading articles. All
+matching words are shown in \fBcol_markdash\fP or \fBmono_markdash\fP. If
+\fBundescores_regex\fP is blank, then \fBtin\fP(1)  uses a built\-in default.
+.TP 
+\fBunlink_article\fP
+If ON remove \fI${TIN_HOMEDIR:\-"$HOME"}/.article\fP after posting. Default is
+ON.
+.TP 
+\fBurl_handler\fP
+The program that will be run when launching URLs in the article viewer using
+\fBPageViewUrl\fP ('\fBU\fP'). The actual URL will be appended to this. Default is
+\fBurl_handler.pl %s\fP.
+.TP 
+\fBurl_highlight\fP
+Enable highlighting URLs in message body. Default is ON.
+.TP 
+\fBuse_color\fP
+If enabled \fBtin\fP(1)  uses ANSI\-colours. Default is OFF.
+.TP 
+\fBuse_keypad\fP
+Use scroll keys on keypad. Default is OFF.
+.TP 
+\fBuse_mouse\fP
+Allows the mouse button support in a \fBxterm\fP(1x)  to be enabled/disabled. 
+Default is OFF.
+.TP 
+\fBuse_slrnface\fP
+If enabled \fBslrnface\fP(1)  will be used to interpret the \*(rqX\-Face:\*(rq
+header. For this option to have any effect, \fBtin\fP(1)  must be running in an
+\fBxterm\fP(1x)  and \fBslrnface\fP(1)  must be in your $\fBPATH\fP. Default is OFF.
+.TP 
+\fButf8_graphics\fP
+If ON use UTF\-8 characters for indicator ('\->'), thread/attachment tree
+and ellipsis ('...'). Default is OFF.
+.TP 
+\fBverbatim_begin_regex\fP
+A regular expression that tin will use to find the begin of a verbatim
+block.  Default is #v+
+.TP 
+\fBverbatim_end_regex\fP
+A regular expression that tin will use to find the end of a verbatim block. 
+Default is #v\-
+.TP 
+\fBverbatim_handling\fP
+If ON verbatim blocks will be detected.  Default is ON
+.TP 
+\fBwildcard\fP
+Allows you to select how \fBtin\fP(1)  matches strings. The default is 0 and
+uses the wildmat notation, which is how this has traditionally been
+handled. Setting this to 1 allows you to use \fBperl\fP(1)  compatible regular
+expressions \fBpcre\fP(3).  You will probably want to update your filter file
+if you use this regularly. NB: Newsgroup names will always be matched using
+the wildmat notation.
+.TP 
+\fBword_h_display_marks\fP
+Should the leading and ending stars, slashes, strokes and dashes also be
+displayed, even when they are highlighting marks?
+.RS +1i
+.IP 0 3
+\fBno\fP
+.IP 1
+yes, \fBdisplay mark\fP
+.IP 2
+print a \fBspace\fP instead
+.RE
+.TP 
+\fBword_highlight\fP
+Enable word highlighting. See \fBword_h_display_marks\fP for the options
+available. If \fBuse_color\fP is enabled the colours specified in
+\fBcol_markdash\fP, \fBcol_markslash\fP, \fBcol_markstar\fP and \fBcol_markstroke\fP are
+used for word highlighting else the character attributes specified in
+\fBmono_markdash\fP, \fBmono_markslash\fP, \fBmono_markstar\fP and \fBmono_markstroke\fP
+are used.
+.TP 
+\fBwrap_column\fP
+Sets the column at which a displayed article body should be wrapped.  If
+this value is equal to 0, it defaults to the current screen width.  If this
+value is greater than your current screen width the part off\-screen is not
+displayed. Thus setting this option to a large value can be used to disable
+wrapping. If this value is negative the wrap margin is the current screen
+width plus the given value (as long as the result is still positive,
+otherwise it will fall back to the current screen width). Default is 0,
+wrapping at the current screen width.
+.TP 
+\fBwrap_on_next_unread\fP
+If enabled a search for the next unread article will wrap around all
+articles to find also previous unread articles. If disabled the search stops
+at the end of the thread list. Default is ON.
+.TP 
+\fBxpost_quote_format\fP
+Format is the same as for \fBnews_quote_format\fP, this is used when answering
+to a crossposting to several groups with no \*(rqFollowup\-To:\*(rq set.
+.RE
+.PP
+
+\fI/etc/tin/tin.defaults\fP
+.sp
+.RS
+Yet another global configuration file with "\fIvariable\fP=\fIvalue\fP"
+pairs. This one is for the more general options which usually can't be
+controlled via \fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fP and/or
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fP like resetting (to override the
+built\-in default) the \fInewslibdir\fP.
+.TP 
+\fBdomainname\fP
+Sets a global domain name used in From lines
+.TP 
+\fBorganization\fP
+Defines the name of your organization. $\fBORGANIZATION\fP overrides any
+specified value.
+.TP 
+\fBnewslibdir\fP
+Defines the default place for some configuration files, common values are
+\fI/usr/lib/news\fP, \fI/var/lib/news\fP, \fI/usr/local/lib/news\fP or
+\fI/news/db\fP. $\fBTIN_LIBDIR\fP overrides any specified value.
+.TP 
+\fBbugaddress\fP
+Defines the email address to which users can send bug reports using a
+built\-in function. The default points to a developers mailing list located
+at tin.org. You might want to change this address to one of your local
+administration if you want to deal with your lusers problems on your own.
+.TP 
+\fBinewsdir\fP
+Defines the directory containing of the \fBinews\fP(1)  executable
+.TP 
+\fBmm_charset\fP
+Default charset to be used in MIME's \*(rqContent\-Type:\*(rq
+header. $\fBMM_CHARSET\fP overrides any specified value.
+.TP 
+\fBpost_mime_encoding\fP
+Default encoding scheme use in MIME articles. 8bit might be the best value.
+.TP 
+\fBmail_mime_encoding\fP
+Default encoding scheme use in MIME letters. quoted\-printable is a good
+choice here.
+.TP 
+\fBdisable_gnksa_domain_check\fP
+Allow unregistered top level domains
+.TP 
+\fBdisable_sender\fP
+Don't generate a \*(rqSender:\*(rq header. This has an effect only if
+\fBinews_prog\fP is set to \-\-internal.
+.TP 
+\fBspooldir\fP
+Base of your newsspool (Bnews, Cnews and INN traditional spool style),
+common values are \fI/var/spool/news\fP, \fI/usr/spool/news\fP, \fI/news/spool\fP. 
+$\fBTIN_SPOOLDIR\fP overrides any specified value.
+.TP 
+\fBoverviewdir\fP
+Base of your NOV database \fBnewsoverview\fP(5)  (tradspool style; might be the
+same dir as \fIspooldir\fP), common values are \fI/var/spool/overview\fP,
+\fI/usr/spool/overview\fP, \fI/news/overview\fP. $\fBTIN_NOVROOTDIR\fP overrides any
+specified value.
+.TP 
+\fBoverviewfile\fP
+Name of a single overview file, common values are \fI.overview\fP,
+\fIover.view\fP.
+.TP 
+\fBoverviewfmtfile\fP
+Full pathname of your newssystem's overview.fmt file; usually the
+overview.fmt file is in \fInewslibdir\fP, so you only have to change this
+setting if your configuration differs.
+.TP 
+\fBactivefile\fP
+Full pathname of your newssystem's active file; usually the active file
+resides in \fInewslibdir\fP and is named \fIactive\fP, so you only have to change
+this setting if your configuration differs. $\fBTIN_ACTIVEFILE\fP overrides any
+specified value.
+.TP 
+\fBactivetimesfile\fP
+Full pathname of your newssystem's active.times file; usually the
+active.times file is \fInewslibdir\fP, so you only have to change this setting
+if your configuration differs.
+.TP 
+\fBnewsgroupsfile\fP
+Full pathname of your newssystem's newsgroups file; usually the newsgroups
+file is in \fInewslibdir\fP, so you only have to change this setting if your
+configuration differs.
+.TP 
+\fBsubscriptionsfile\fP
+Full pathname of your newssystem's subscriptions file; usually the
+subscriptions file is in \fInewslibdir\fP, so you only have to change this
+setting if your configuration differs.
+.RE
+.PP
+
+\fI/usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo\fP
+.sp
+.RS
+translation into language specified in $\fBLC_ALL\fP, $\fBLC_MESSAGES\fP or
+$\fBLANG\fP
+.RE
+.PP
+
+.\" tin uses inns old (pre 2.x) Path convention.
+.\" as with inn >= 2.2.x getting more and more popular
+.\" we should think about checking for the new Paths
+.\" (described shown below).
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fP
+.sp
+.RS
+This file lists the newsgroups that the local site receives. Each newsgroup
+should be listed only once. Each line specifies one group; within each
+newsgroup, articles are assigned unique names, which are monotonically
+increasing numbers.
+.sp
+.\" TODO: IIRC tin issues just a warning in that case?
+If an article is posted to newsgroups not mentioned in this file, those
+newsgroups are ignored.  If no valid newsgroups are specified, the article
+is rejected.
+.sp
+Each line consists of four space\-separated fields "\fIname\fP \fIhighmark\fP
+\fIlowmark\fP \fIflags\fP".
+.TP 
+\fBname\fP
+is the name of the newsgroup
+.TP 
+\fBhighmark\fP
+is the highest article number that has been used in that newsgroup
+.TP 
+\fBlowmark\fP
+is the lowest article number in the group; this number is not guaranteed to
+be accurate, and should only be taken to be a hint. Note that because of
+article cancellations, there may be gaps in the numbering sequence. If the
+lowest article number is greater then the highest article number, then there
+are no articles in the newsgroup.
+.TP 
+\fBflags\fP
+can be one of those
+.RS
+.TP 
+\fBy\fP
+local postings are allowed
+.TP 
+\fBn\fP
+no local postings are allowed, only remote ones
+.TP 
+\fBm\fP
+the group is moderated and all postings must be approved
+.TP 
+\fBj\fP
+articles in this group are not kept, but only passed on
+.TP 
+\fBx\fP
+articles cannot be posted to this newsgroup
+.TP 
+\fB=foo.bar\fP
+articles are locally filed into the \*(rqfoo.bar\*(rq group
+.RE
+.TP 
+\fBtin\fP(1)
+only tries to read the file if you read directly from the local spool, if
+you read news via NNTP, \fBtin\fP(1)  uses the LIST (\fBRFC3977\fP) command
+instead.
+.RE
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/active.times\fP
+.sp
+.RS
+This file provides a chronological record of when newsgroups are created. It
+is normally updated by the local newsserver (e.g.  \fBinnd\fP(8))  whenever a
+new group is created. Each line consist of three space\-separated fields
+"\fIname\fP \fItime\fP \fIcreator\fP".
+.TP 
+\fBname\fP
+is the name of the newsgroup
+.TP 
+\fBtime\fP
+is the time when the group was created, expressed as the number of seconds
+since the epoch.
+.TP 
+\fBcreator\fP
+is the electronic mail address of the person who created the group.
+.TP 
+\fBtin\fP(1)
+only tries to read the file if you read directly from the local spool, if
+you read news via NNTP, \fBtin\fP(1)  uses the NEWGROUPS (\fBRFC3977\fP) command
+instead.
+.RE
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fP
+.sp
+.RS
+This file provides short descriptions of each newsgroup. It is normally
+updated by the local newsserver (e.g.  \fBinnd\fP(8))  whenever a new group is
+created. Each line consist of two tab\-separated fields
+"\fIgroup.name\fP	\fIone\-line description\fP".
+.TP 
+\fBgroup.name\fP
+is the name of the newsgroup
+.TP 
+\fBone\-line description\fP
+is a short single\-line description of the group
+.TP 
+\fBtin\fP(1)
+only tries to read the file if you read directly from the local spool, if
+you read news via NNTP, \fBtin\fP(1)  uses the LIST NEWSGROUPS (\fBRFC3977\fP)
+command instead.
+.RE
+.PP
+
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/organization\fP
+.sp
+.RS
+This file specifies might hold a default organization to be used in the
+\&\*(rqOrganization:\*(rq header. $\fBORGANIZATION\fP has a higher priority if set.
+.RE
+.PP
+
+.\" is the Path correct? or is it /news/etc/overview.fmt
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/overview.fmt\fP
+.sp
+.RS
+This file specifies the organization of the news overview database (see also
+\fBnewsoverview\fP(5)).  The order of lines in this file is important; it
+determines the order in which the fields will appear in the database. See
+also \fBoverview.fmt\fP(5).  \fBtin\fP(1)  only tries to read the file if you read
+directly from the local spool, if you read news via NNTP, \fBtin\fP(1)  uses
+the LIST OVERVIEW.FMT (\fBRFC3977\fP) command instead.
+.RE
+.PP
+
+.\" is the Path correct? or is it /news/etc/subscriptions
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fP
+.sp
+.RS
+This file contains a list of newsgroups \- one per line \- which the client
+should subscribe to when the user has no ${TIN_HOMEDIR:\-"$HOME"}/.newsrc for
+the newsserver.  \fBtin\fP(1)  only tries to read the file if you read directly
+from the local spool, if you read news via NNTP, \fBtin\fP(1)  uses the LIST
+SUBSCRIPTIONS (\fBRFC6048\fP) command instead.
+.RE
+.PP
+
+.SH "SEE ALSO"
+\fBelm\fP(1), \fBinews\fP(1), \fBispell\fP(1), \fBlp\fP(1), \fBlpr\fP(1), \fBmetamail\fP(1) 
+\fBperl\fP(1), \fBpgp\fP(1), \fBrn\fP(1), \fBshar\fP(1), \fBslrnface\fP(1), \fBtin\fP(1),
+\fBxterm\fP(1x), \fBiconv\fP(3), \fBiconv_open\fP(3), \fBnl_langinfo\fP(3), \fBpcre\fP(3),
+\fBstrftime\fP(3), \fBsystem\fP(3), \fBmailcap\fP(4), \fBactive\fP(5), \fBmbox\fP(5),
+\fBmmdf\fP(5), \fBnewsoverview\fP(5), \fBoverview.fmt\fP(5), \fBinnd\fP(8), \fBRFC1524\fP,
+\fBRFC2045\fP, \fBRFC2046\fP, \fBRFC2047\fP, \fBRFC2048\fP, \fBRFC2980\fP, \fBRFC3977\fP,
+\fBRFC4643\fP, \fBRFC5322\fP, \fBRFC5536\fP, \fBRFC5537\fP, \fBRFC6048\fP
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/en_GB.po tin-2.0.0/doc/l10n/en_GB.po
--- tin-1.8.3/doc/l10n/en_GB.po	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/en_GB.po	2011-08-22 00:20:12.262143334 +0200
@@ -0,0 +1,14266 @@
+# English (United Kingdom) translations for tin manpages
+# This file is distributed under the same license as the tin package.
+# Urs Janssen <urs@tin.org>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: tin 1.9.5\n"
+"POT-Creation-Date: 2011-08-22 00:19+0200\n"
+"PO-Revision-Date: 2009-10-01 16:17+0200\n"
+"Last-Translator: Urs Janssen <urs@tin.org>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "tin"
+msgstr "tin"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "August 23rd, 2011"
+msgstr "August 23rd, 2011"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "2.0.0"
+msgstr "2.0.0"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "A Usenet newsreader"
+msgstr "A Usenet newsreader"
+
+# type: SH
+#: ../tin.1:15 ../tin.5:11
+#, no-wrap
+msgid "NAME"
+msgstr "NAME"
+
+# type: Plain text
+#: ../tin.1:19
+msgid "tin, rtin - A Usenet newsreader"
+msgstr "tin, rtin - A Usenet newsreader"
+
+# type: SH
+#: ../tin.1:19
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+# type: Plain text
+#: ../tin.1:49
+msgid ""
+"B<tin> [\\|[\\|B<-h>\\||\\|B<-H>\\||\\|B<-V>\\|]\\ \\|| [\\|[\\|[\\|B<-a>"
+"\\|] [\\|B<-dlnq>\\||\\|B<-Q>\\|] [\\|B<-ArzxX>\\|]\\|] [\\|[\\|B<-R>\\||\\|"
+"B<-S>\\|] \\|\\|B<-s> I<News_dir>\\|] [\\|B<-cuvZ>\\|] [\\|B<-4>\\||\\|B<-6>"
+"\\|] [\\|B<-N>\\||\\|B<-M> I<address>\\|] [\\|B<-o>\\||\\|B<-w>\\|]\\|] [\\|"
+"B<-D> I<debug_level>\\|] [\\|B<-G> I<article_limit>\\|] [\\|B<-f> "
+"I<newsrc_file>\\|] [\\|B<-g> I<server>\\|] [\\|B<-m> I<Mail_dir>\\|] [\\|B<-"
+"p> I<port>\\|] [\\|B<-I> I<index_dir>\\|]\\ \\|[I<newsgroup>\\|[\\|,.\\|.\\|."
+"\\|]\\|]\\|]"
+msgstr ""
+"B<tin> [\\|[\\|B<-h>\\||\\|B<-H>\\||\\|B<-V>\\|]\\ \\|| [\\|[\\|[\\|B<-a>"
+"\\|] [\\|B<-dlnq>\\||\\|B<-Q>\\|] [\\|B<-ArzxX>\\|]\\|] [\\|[\\|B<-R>\\||\\|"
+"B<-S>\\|] \\|\\|B<-s> I<News_dir>\\|] [\\|B<-cuvZ>\\|] [\\|B<-4>\\||\\|B<-6>"
+"\\|] [\\|B<-N>\\||\\|B<-M> I<address>\\|] [\\|B<-o>\\||\\|B<-w>\\|]\\|] [\\|"
+"B<-D> I<debug_level>\\|] [\\|B<-G> I<article_limit>\\|] [\\|B<-f> "
+"I<newsrc_file>\\|] [\\|B<-g> I<server>\\|] [\\|B<-m> I<Mail_dir>\\|] [\\|B<-"
+"p> I<port>\\|] [\\|B<-I> I<index_dir>\\|]\\ \\|[I<newsgroup>\\|[\\|,.\\|.\\|."
+"\\|]\\|]\\|]"
+
+# type: SH
+#: ../tin.1:49 ../tin.5:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPTION"
+
+# type: Plain text
+#: ../tin.1:58
+msgid ""
+"B<tin> is a full-screen easy to use Usenet newsreader. It can read news "
+"locally (e.g., I</var/spool/news>) or remotely (B<rtin> or B<tin -r> option) "
+"via a NNTP (Network News Transport Protocol) server. It will automatically "
+"utilize NOV B<newsoverview>(5)  style index files if available locally or "
+"via the NNTP [X]OVER command (B<RFC2980>, B<RFC3977>)."
+msgstr ""
+"B<tin> is a full-screen easy to use Usenet newsreader. It can read news "
+"locally (e.g., I</var/spool/news>) or remotely (B<rtin> or B<tin -r> option) "
+"via a NNTP (Network News Transport Protocol) server. It will automatically "
+"utilize NOV B<newsoverview>(5)  style index files if available locally or "
+"via the NNTP [X]OVER command (B<RFC2980>, B<RFC3977>)."
+
+# type: Plain text
+#: ../tin.1:64
+msgid ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level. Use the B<Help> ('B<h>')  command to view a "
+"list of the commands available at a particular level."
+msgstr ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level. Use the B<Help> ('B<h>')  command to view a "
+"list of the commands available at a particular level."
+
+# type: Plain text
+#: ../tin.1:72
+msgid ""
+"On startup B<tin> will show a list of the newsgroups found in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>. An arrow '-E<gt>' or highlighted bar "
+"will point to the first newsgroup. Move to a group by using the terminal "
+"arrow keys (terminal dependent) or B<Down> ('B<j>')  and B<Up> ('B<k>'). Use "
+"PgUp/PgDn (terminal dependent) or B<PageUp> ('B<^U>') (CTRL-U) and "
+"B<PageDown> ('B<^D>')  (CTRL-D) to page up/down. Enter a newsgroup by "
+"pressing 'B<E<lt>CRE<gt>>'."
+msgstr ""
+"On startup B<tin> will show a list of the newsgroups found in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>. An arrow '-E<gt>' or highlighted bar "
+"will point to the first newsgroup. Move to a group by using the terminal "
+"arrow keys (terminal dependent) or B<Down> ('B<j>')  and B<Up> ('B<k>'). Use "
+"PgUp/PgDn (terminal dependent) or B<PageUp> ('B<^U>') (CTRL-U) and "
+"B<PageDown> ('B<^D>')  (CTRL-D) to page up/down. Enter a newsgroup by "
+"pressing 'B<E<lt>CRE<gt>>'."
+
+# type: Plain text
+#: ../tin.1:77
+msgid ""
+"The B<GroupNextUnreadArtOrGrp> ('B<E<lt>TABE<gt>>') key enters the next "
+"newsgroup with unread articles."
+msgstr ""
+"The B<GroupNextUnreadArtOrGrp> ('B<E<lt>TABE<gt>>') key enters the next "
+"newsgroup with unread articles."
+
+# type: SH
+#: ../tin.1:77
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "EXIT STATUS"
+
+# type: Plain text
+#: ../tin.1:79
+msgid "Interactive mode:"
+msgstr "Interactive mode:"
+
+# type: TP
+#: ../tin.1:80 ../tin.1:90 ../tin.1:1066 ../tin.1:3230
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+# type: Plain text
+#: ../tin.1:83
+msgid "Successful program execution."
+msgstr "Successful program execution."
+
+# type: TP
+#: ../tin.1:83 ../tin.1:93 ../tin.1:3233
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+# type: Plain text
+#: ../tin.1:86 ../tin.1:96
+msgid "Usage, syntax, configuration file or network error."
+msgstr "Usage, syntax, configuration file or network error."
+
+# type: Plain text
+#: ../tin.1:89
+msgid "Batch mode (''B<-Z>''):"
+msgstr "Batch mode (''B<-Z>''):"
+
+# type: Plain text
+#: ../tin.1:93
+msgid "No unread news"
+msgstr "No unread news"
+
+# type: TP
+#: ../tin.1:96 ../tin.1:3236
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+# type: Plain text
+#: ../tin.1:99
+msgid "Unread news"
+msgstr "Unread news"
+
+# type: SH
+#: ../tin.1:102
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONS"
+
+# type: TP
+#: ../tin.1:103
+#, no-wrap
+msgid "B<-4>"
+msgstr "B<-4>"
+
+# type: Plain text
+#: ../tin.1:106
+msgid "Force connecting via IPv4 to the remote NNTP server."
+msgstr "Force connecting via IPv4 to the remote NNTP server."
+
+# type: TP
+#: ../tin.1:106
+#, no-wrap
+msgid "B<-6>"
+msgstr "B<-6>"
+
+# type: Plain text
+#: ../tin.1:109
+msgid "Force connecting via IPv6 to the remote NNTP server."
+msgstr "Force connecting via IPv6 to the remote NNTP server."
+
+# type: TP
+#: ../tin.1:109
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+# type: Plain text
+#: ../tin.1:112
+msgid "Toggle ANSI color (default is off)."
+msgstr "Toggle ANSI colour (default is off)."
+
+# type: TP
+#: ../tin.1:112
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+# type: Plain text
+#: ../tin.1:115
+msgid "Force authentication on initial connect."
+msgstr "Force authentication on initial connect."
+
+# type: TP
+#: ../tin.1:115
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+# type: Plain text
+#: ../tin.1:120
+msgid ""
+"Create/update index files for every group in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"newsrc> or file specified by the ''B<-f>'' option and mark all articles as "
+"read."
+msgstr ""
+"Create/update index files for every group in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"newsrc> or file specified by the ''B<-f>'' option and mark all articles as "
+"read."
+
+# type: TP
+#: ../tin.1:120
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+# type: Plain text
+#: ../tin.1:123
+msgid "Don't load newsgroup descriptions (interactive mode)."
+msgstr "Don't load newsgroup descriptions (interactive mode)."
+
+# type: TP
+#: ../tin.1:123
+#, no-wrap
+msgid "B<-D>I< debug-level>"
+msgstr "B<-D>I< debug-level>"
+
+# type: Plain text
+#: ../tin.1:127
+msgid ""
+"Enter debug-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 = "
+"memory, 32 = attributes, 64 = misc)."
+msgstr ""
+"Enter debug-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 = "
+"memory, 32 = attributes, 64 = misc)."
+
+# type: TP
+#: ../tin.1:127
+#, no-wrap
+msgid "B<-f>I< file>"
+msgstr "B<-f>I< file>"
+
+# type: Plain text
+#: ../tin.1:131
+msgid ""
+"Use the specified file of subscribed to newsgroups in place of I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+msgstr ""
+"Use the specified file of subscribed to newsgroups in place of I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+
+# type: TP
+#: ../tin.1:131
+#, no-wrap
+msgid "B<-g>I< server>"
+msgstr "B<-g>I< server>"
+
+# type: Plain text
+#: ../tin.1:135
+msgid ""
+"Use the server and newsrc specified in I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable>."
+msgstr ""
+"Use the server and newsrc specified in I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable>."
+
+# type: TP
+#: ../tin.1:135
+#, no-wrap
+msgid "B<-G>I< article-limit>"
+msgstr "B<-G>I< article-limit>"
+
+# type: Plain text
+#: ../tin.1:138
+msgid "Limit the number of articles/group to retrieve from the server."
+msgstr "Limit the number of articles/group to retrieve from the server."
+
+# type: TP
+#: ../tin.1:138
+#, no-wrap
+msgid "B<-h>"
+msgstr "B<-h>"
+
+# type: Plain text
+#: ../tin.1:141
+msgid "Help listing all command-line options."
+msgstr "Help listing all command-line options."
+
+# type: TP
+#: ../tin.1:141
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+# type: Plain text
+#: ../tin.1:145
+msgid ""
+"Brief introduction to B<tin> that is also shown the first time it is started."
+msgstr ""
+"Brief introduction to B<tin> that is also shown the first time it is started."
+
+# type: TP
+#: ../tin.1:145
+#, no-wrap
+msgid "B<-I>I< dir>"
+msgstr "B<-I>I< dir>"
+
+# type: Plain text
+#: ../tin.1:151
+msgid ""
+"Directory in which to store newsgroup index files. Default is I<"
+"${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news>.  This "
+"option has no effect if B<tin> retrieves its index files via NNTP and "
+"B<cache_overview_files> is turned off."
+msgstr ""
+"Directory in which to store newsgroup index files. Default is I<"
+"${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news>.  This "
+"option has no effect if B<tin> retrieves its index files via NNTP and "
+"B<cache_overview_files> is turned off."
+
+# type: TP
+#: ../tin.1:151
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+# type: Plain text
+#: ../tin.1:161
+msgid ""
+"Get number of articles per group from the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/"
+"\"${TIN_ACTIVEFILE:-active}> file. If reading via NNTP this is done with the "
+"LIST command (B<RFC3977>). This might result in incorrect article counts but "
+"is usually faster than the default which is to read the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file (either directly or via "
+"LIST) and then check the article count via NNTP GROUP command (B<RFC3977>) "
+"''B<-ln>''."
+msgstr ""
+"Get number of articles per group from the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/"
+"\"${TIN_ACTIVEFILE:-active}> file. If reading via NNTP this is done with the "
+"LIST command (B<RFC3977>). This might result in incorrect article counts but "
+"is usually faster than the default which is to read the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file (either directly or via "
+"LIST) and then check the article count via NNTP GROUP command (B<RFC3977>) "
+"''B<-ln>''."
+
+# type: TP
+#: ../tin.1:161
+#, no-wrap
+msgid "B<-m>I< dir>"
+msgstr "B<-m>I< dir>"
+
+# type: Plain text
+#: ../tin.1:164
+msgid "Mailbox directory to use. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+"Mailbox directory to use. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+
+# type: TP
+#: ../tin.1:164
+#, no-wrap
+msgid "B<-M>I< user>"
+msgstr "B<-M>I< user>"
+
+# type: Plain text
+#: ../tin.1:168
+msgid ""
+"Mail unread articles to specified user for later reading. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+"Mail unread articles to specified user for later reading. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+
+# type: TP
+#: ../tin.1:168
+#, no-wrap
+msgid "B<-n>"
+msgstr "B<-n>"
+
+# type: Plain text
+#: ../tin.1:175
+msgid ""
+"Only load groups from the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file that are subscribed to in the user's I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc>. This allows a noticeable speedup when connecting via a slow "
+"line, but B<tin> can not tell which groups are moderated. See also ''B<-l>''."
+msgstr ""
+"Only load groups from the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file that are subscribed to in the user's I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc>. This allows a noticeable speedup when connecting via a slow "
+"line, but B<tin> can not tell which groups are moderated. See also ''B<-l>''."
+
+# type: TP
+#: ../tin.1:175
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+# type: Plain text
+#: ../tin.1:179
+msgid ""
+"Mail unread articles to yourself for later reading. For more information "
+"read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+"Mail unread articles to yourself for later reading. For more information "
+"read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+
+# type: TP
+#: ../tin.1:179
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+# type: Plain text
+#: ../tin.1:183
+msgid ""
+"Quick post all postponed articles and exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+msgstr ""
+"Quick post all postponed articles and exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+
+# type: TP
+#: ../tin.1:183
+#, no-wrap
+msgid "B<-p>I< port>"
+msgstr "B<-p>I< port>"
+
+# type: Plain text
+#: ../tin.1:187
+msgid ""
+"Port to use if reading via NNTP (default is 119). This also overrides the "
+"environment variable $B<NNTPPORT> if set."
+msgstr ""
+"Port to use if reading via NNTP (default is 119). This also overrides the "
+"environment variable $B<NNTPPORT> if set."
+
+# type: TP
+#: ../tin.1:187
+#, no-wrap
+msgid "B<-q>"
+msgstr "B<-q>"
+
+# type: Plain text
+#: ../tin.1:190
+msgid "Don't check for new newsgroups."
+msgstr "Don't check for new newsgroups."
+
+# type: TP
+#: ../tin.1:190
+#, no-wrap
+msgid "B<-Q>"
+msgstr "B<-Q>"
+
+# type: Plain text
+#: ../tin.1:194
+msgid ""
+"Quick start. Start B<tin> as quickly as possible. Currently this is "
+"equivalent to ''B<-nqd>''."
+msgstr ""
+"Quick start. Start B<tin> as quickly as possible. Currently this is "
+"equivalent to ''B<-nqd>''."
+
+# type: TP
+#: ../tin.1:194
+#, no-wrap
+msgid "B<-r>"
+msgstr "B<-r>"
+
+# type: Plain text
+#: ../tin.1:199
+msgid ""
+"Read news remotely from the default NNTP server specified in the environment "
+"variable $B<NNTPSERVER> or contained in the file I</etc/nntpserver>."
+msgstr ""
+"Read news remotely from the default NNTP server specified in the environment "
+"variable $B<NNTPSERVER> or contained in the file I</etc/nntpserver>."
+
+# type: TP
+#: ../tin.1:199
+#, no-wrap
+msgid "B<-R>"
+msgstr "B<-R>"
+
+# type: Plain text
+#: ../tin.1:202
+msgid "Read news saved by the ''B<-S>'' option."
+msgstr "Read news saved by the ''B<-S>'' option."
+
+# type: TP
+#: ../tin.1:202
+#, no-wrap
+msgid "B<-s>I< dir>"
+msgstr "B<-s>I< dir>"
+
+# type: Plain text
+#: ../tin.1:206
+msgid ""
+"Save/read articles to/in directory. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"News>."
+msgstr ""
+"Save/read articles to/in directory. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"News>."
+
+# type: TP
+#: ../tin.1:206
+#, no-wrap
+msgid "B<-S>"
+msgstr "B<-S>"
+
+# type: Plain text
+#: ../tin.1:210
+msgid ""
+"Save unread articles for later reading by the ''B<-R>'' option. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+"Save unread articles for later reading by the ''B<-R>'' option. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+
+# type: TP
+#: ../tin.1:210
+#, no-wrap
+msgid "B<-u>"
+msgstr "B<-u>"
+
+# type: Plain text
+#: ../tin.1:216
+msgid ""
+"Create/update index files for every group in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"newsrc> or file specified by the ''B<-f>'' option. This option is disabled "
+"if B<tin> retrieves its index files via a NNTP server and "
+"B<cache_overview_files> is turned off."
+msgstr ""
+"Create/update index files for every group in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"newsrc> or file specified by the ''B<-f>'' option. This option is disabled "
+"if B<tin> retrieves its index files via a NNTP server and "
+"B<cache_overview_files> is turned off."
+
+# type: TP
+#: ../tin.1:216
+#, no-wrap
+msgid "B<-v>"
+msgstr "B<-v>"
+
+# type: Plain text
+#: ../tin.1:220
+msgid ""
+"Verbose mode for ''B<-c>'', ''B<-M>'', ''B<-N>'', ''B<-S>'', \\&''B<-u>'' "
+"and ''B<-Z>'' options."
+msgstr ""
+"Verbose mode for ''B<-c>'', ''B<-M>'', ''B<-N>'', ''B<-S>'', \\&''B<-u>'' "
+"and ''B<-Z>'' options."
+
+# type: TP
+#: ../tin.1:220
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+# type: Plain text
+#: ../tin.1:223
+msgid "Print version and date information."
+msgstr "Print version and date information."
+
+# type: TP
+#: ../tin.1:223
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+# type: Plain text
+#: ../tin.1:227
+msgid ""
+"Quick mode to post an article and then exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+msgstr ""
+"Quick mode to post an article and then exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+
+# type: TP
+#: ../tin.1:227
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+# type: Plain text
+#: ../tin.1:230
+msgid "No posting mode. You cannot post articles if you use this option."
+msgstr "No posting mode. You cannot post articles if you use this option."
+
+# type: TP
+#: ../tin.1:230
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+# type: Plain text
+#: ../tin.1:235
+msgid ""
+"No overwrite mode. I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> and files in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin> will not be overwritten but may be created "
+"if they don't exist."
+msgstr ""
+"No overwrite mode. I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> and files in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin> will not be overwritten but may be created "
+"if they don't exist."
+
+# type: TP
+#: ../tin.1:235
+#, no-wrap
+msgid "B<-z>"
+msgstr "B<-z>"
+
+# type: Plain text
+#: ../tin.1:240
+msgid ""
+"Only start B<tin> if there is any new/unread news. If there is news B<tin> "
+"will position cursor at first group with unread news. Useful for putting in "
+"login file."
+msgstr ""
+"Only start B<tin> if there is any new/unread news. If there is news B<tin> "
+"will position cursor at first group with unread news. Useful for putting in "
+"login file."
+
+# type: TP
+#: ../tin.1:240
+#, no-wrap
+msgid "B<-Z>"
+msgstr "B<-Z>"
+
+# type: Plain text
+#: ../tin.1:246
+msgid ""
+"Check if there is any new/unread news and exit with appropriate status. If "
+"\\&''B<-v>'' option is specified the number of unread articles in each group "
+"is printed. An exit code 0 indicates no news, 1 that an error occurred and 2 "
+"that new/unread news exists. Useful for writing scripts."
+msgstr ""
+"Check if there is any new/unread news and exit with appropriate status. If "
+"\\&''B<-v>'' option is specified the number of unread articles in each group "
+"is printed. An exit code 0 indicates no news, 1 that an error occurred and 2 "
+"that new/unread news exists. Useful for writing scripts."
+
+# type: Plain text
+#: ../tin.1:252
+msgid ""
+"B<tin> can also dynamically change its options by the B<OptionMenu> ('B<M>') "
+"command. Any changes are written to I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. "
+"For more information see section \"GLOBAL OPTIONS MENU AND TINRC "
+"CONFIGURABLE VARIABLES\" and B<tin>(5)."
+msgstr ""
+"B<tin> can also dynamically change its options by the B<OptionMenu> ('B<M>') "
+"command. Any changes are written to I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. "
+"For more information see section \"GLOBAL OPTIONS MENU AND TINRC "
+"CONFIGURABLE VARIABLES\" and B<tin>(5)."
+
+# type: Plain text
+#: ../tin.1:257
+msgid ""
+"A list of groups can be specified after the other command-line options. This "
+"can be useful if you wish to yank in or subscribe to a hand-picked subset of "
+"the active newsgroups. See the section \"NEWSGROUP LISTS & WILDCARDS\" for "
+"the types of pattern that B<tin> understands."
+msgstr ""
+"A list of groups can be specified after the other command-line options. This "
+"can be useful if you wish to yank in or subscribe to a hand-picked subset of "
+"the active newsgroups. See the section \"NEWSGROUP LISTS & WILDCARDS\" for "
+"the types of pattern that B<tin> understands."
+
+# type: Plain text
+#: ../tin.1:262
+msgid ""
+"If you specify a single group-name, or a wildcard that matches a single "
+"group, then you will automatically enter that group. Otherwise the normal "
+"group selection screen will appear, but with all the matching groups present "
+"too, as though you had yanked just those groups in."
+msgstr ""
+"If you specify a single group-name, or a wildcard that matches a single "
+"group, then you will automatically enter that group. Otherwise the normal "
+"group selection screen will appear, but with all the matching groups present "
+"too, as though you had yanked just those groups in."
+
+# type: Plain text
+#: ../tin.1:266
+msgid ""
+"With the ''B<-w>'' flag a given group-name is used as default group to post "
+"to. If more than one group or a wildcard is specified only the first group "
+"respectively the first group that matches is used."
+msgstr ""
+"With the ''B<-w>'' flag a given group-name is used as default group to post "
+"to. If more than one group or a wildcard is specified only the first group "
+"respectively the first group that matches is used."
+
+# type: Plain text
+#: ../tin.1:273
+msgid ""
+"Once you use B<SelectYankActive> ('B<y>') to yank in all active groups, or "
+"B<SelectToggleReadDisplay> ('B<r>') to toggle the read/unread status, then "
+"the command-line groups will be gone. You can use B<SelectSyncWithActive> "
+"('B<Y>') to reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file and get them back."
+msgstr ""
+"Once you use B<SelectYankActive> ('B<y>') to yank in all active groups, or "
+"B<SelectToggleReadDisplay> ('B<r>') to toggle the read/unread status, then "
+"the command-line groups will be gone. You can use B<SelectSyncWithActive> "
+"('B<Y>') to reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file and get them back."
+
+# type: Plain text
+#: ../tin.1:278
+msgid ""
+"NB: With the ''B<-n>'' flag, only unsubscribed groups in the I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file (or the newsrc-file given by the "
+"\\&''B<-f>'' command-line switch or via I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable>) can be matched."
+msgstr ""
+"NB: With the ''B<-n>'' flag, only unsubscribed groups in the I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file (or the newsrc-file given by the "
+"\\&''B<-f>'' command-line switch or via I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"newsrctable>) can be matched."
+
+# type: Plain text
+#: ../tin.1:283
+msgid ""
+"Command-line options have higher priority than attributes and tinrc "
+"options.  Thus, command-line option takes precedence over configured values."
+msgstr ""
+"Command-line options have higher priority than attributes and tinrc "
+"options.  Thus, command-line option takes precedence over configured values."
+
+# type: SH
+#: ../tin.1:283
+#, no-wrap
+msgid "USAGE"
+msgstr "USAGE"
+
+# type: SS
+#: ../tin.1:286
+#, no-wrap
+msgid "NEWS ADMINISTRATION"
+msgstr "NEWS ADMINISTRATION"
+
+# type: Plain text
+#: ../tin.1:290
+msgid ""
+"Maintaining Netnews on large networks of machines can be a pretty time "
+"consuming job as I discovered when I was given the job of maintaining our "
+"news system and news users."
+msgstr ""
+"Maintaining Netnews on large networks of machines can be a pretty time "
+"consuming job as I discovered when I was given the job of maintaining our "
+"news system and news users."
+
+# type: Plain text
+#: ../tin.1:300
+msgid ""
+"A user starting B<tin> for the first time can be automatically subscribed to "
+"a list of newsgroups that are deemed appropriate by the news administrator. "
+"The subscriptions file should be created in your news lib directory (i.e., I<"
+"${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>) and should have file permissions "
+"set to 0644. If you read news via NNTP, then your news server must support "
+"the LIST SUBSCRIPTIONS command. It is part of the NNTP List Extensions "
+"(B<RFC6048>) and all modern servers should understand it."
+msgstr ""
+"A user starting B<tin> for the first time can be automatically subscribed to "
+"a list of newsgroups that are deemed appropriate by the news administrator. "
+"The subscriptions file should be created in your news lib directory (i.e., I<"
+"${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>) and should have file permissions "
+"set to 0644. If you read news via NNTP, then your news server must support "
+"the LIST SUBSCRIPTIONS command. It is part of the NNTP List Extensions "
+"(B<RFC6048>) and all modern servers should understand it."
+
+# type: SS
+#: ../tin.1:300
+#, no-wrap
+msgid "SCREEN FORMAT"
+msgstr "SCREEN FORMAT"
+
+# type: Plain text
+#: ../tin.1:303
+msgid ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level."
+msgstr ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level."
+
+# type: Plain text
+#: ../tin.1:308
+msgid ""
+"At the Selection level the title displays (the name of the newsserver and) "
+"the number of subscribed groups (containing new unread articles). The "
+"newsgroups are displayed in the middle of the screen with the number of "
+"unread articles displayed on the same line in front."
+msgstr ""
+"At the Selection level the title displays (the name of the newsserver and) "
+"the number of subscribed groups (containing new unread articles). The "
+"newsgroups are displayed in the middle of the screen with the number of "
+"unread articles displayed on the same line in front."
+
+# type: Plain text
+#: ../tin.1:316
+#, no-wrap
+msgid ""
+"-E<gt>M    1     2  comp.security.announce  Announcements from the CERT abou\n"
+"  M    2     1  news.admin.announce     Announcements for news adminstra\n"
+"       3    22  news.software.misc      News-related software other than\n"
+"       4  1475  news.software.nntp      The Network News Transfer Protoc\n"
+"  X    5   124  news.software.readers   Discussion of software used to r\n"
+msgstr ""
+"-E<gt>M    1     2  comp.security.announce  Announcements from the CERT abou\n"
+"  M    2     1  news.admin.announce     Announcements for news adminstra\n"
+"       3    22  news.software.misc      News-related software other than\n"
+"       4  1475  news.software.nntp      The Network News Transfer Protoc\n"
+"  X    5   124  news.software.readers   Discussion of software used to r\n"
+
+# type: Plain text
+#: ../tin.1:319
+msgid ""
+"There may also be a character prefixing the line. An explanation follows:"
+msgstr ""
+"There may also be a character prefixing the line. An explanation follows:"
+
+# type: TP
+#: ../tin.1:319
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+# type: Plain text
+#: ../tin.1:324
+msgid ""
+"This group is unsubscribed. To see only your subscribed groups use the "
+"B<SelectToggleReadDisplay> ('B<r>') or B<SelectYankActive> ('B<y>') toggle "
+"keys."
+msgstr ""
+"This group is unsubscribed. To see only your subscribed groups use the "
+"B<SelectToggleReadDisplay> ('B<r>') or B<SelectYankActive> ('B<y>') toggle "
+"keys."
+
+# type: TP
+#: ../tin.1:324
+#, no-wrap
+msgid "B<M>"
+msgstr "B<M>"
+
+# type: Plain text
+#: ../tin.1:329
+msgid ""
+"This is a moderated group. Any posts you make will have to be approved by "
+"the group administrator before it will be made public. B<tin> will ask for "
+"confirmation before you post to a moderated group."
+msgstr ""
+"This is a moderated group. Any posts you make will have to be approved by "
+"the group administrator before it will be made public. B<tin> will ask for "
+"confirmation before you post to a moderated group."
+
+# type: TP
+#: ../tin.1:329
+#, no-wrap
+msgid "B<N>"
+msgstr "B<N>"
+
+# type: Plain text
+#: ../tin.1:338
+msgid ""
+"This is a new newsgroup which has been created since you last used B<tin>. "
+"New newsgroups are not subscribed to by default (However, see the "
+"$B<AUTOSUBSCRIBE> / $B<AUTOUNSUBSCRIBE> environment variables).  Subscribe "
+"to it in the normal way if you wish the group to continue to appear in your "
+"Selection Menu. Simply ignore new newsgroups and they will be gone the next "
+"time you start B<tin>. You will have to yank in all the groups to find them "
+"in a later session."
+msgstr ""
+"This is a new newsgroup which has been created since you last used B<tin>. "
+"New newsgroups are not subscribed to by default (However, see the "
+"$B<AUTOSUBSCRIBE> / $B<AUTOUNSUBSCRIBE> environment variables).  Subscribe "
+"to it in the normal way if you wish the group to continue to appear in your "
+"Selection Menu. Simply ignore new newsgroups and they will be gone the next "
+"time you start B<tin>. You will have to yank in all the groups to find them "
+"in a later session."
+
+# type: TP
+#: ../tin.1:338
+#, no-wrap
+msgid "B<D>"
+msgstr "B<D>"
+
+# type: Plain text
+#: ../tin.1:343
+msgid ""
+"This group no longer exists. If you no longer wish to see this group then "
+"unsubscribe from it in the normal way. This flag will only appear if you "
+"have set B<strip_bogus> to \"ask\" in the Options Menu."
+msgstr ""
+"This group no longer exists. If you no longer wish to see this group then "
+"unsubscribe from it in the normal way. This flag will only appear if you "
+"have set B<strip_bogus> to \"ask\" in the Options Menu."
+
+# type: TP
+#: ../tin.1:343
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+# type: Plain text
+#: ../tin.1:347
+msgid ""
+"You may no longer make posts to this group. Often a group will be superseded "
+"by a more appropriately named one."
+msgstr ""
+"You may no longer make posts to this group. Often a group will be superseded "
+"by a more appropriately named one."
+
+# type: TP
+#: ../tin.1:347
+#, no-wrap
+msgid "B<=>"
+msgstr "B<=>"
+
+# type: Plain text
+#: ../tin.1:352
+msgid ""
+"This group has been renamed and you may no longer post to it. If you do, "
+"then you will receive an error from your newsserver telling you the correct "
+"group to post to."
+msgstr ""
+"This group has been renamed and you may no longer post to it. If you do, "
+"then you will receive an error from your newsserver telling you the correct "
+"group to post to."
+
+# type: Plain text
+#: ../tin.1:357
+msgid ""
+"At the Group level the title contains the name of the group, the number of "
+"conversation threads, the threading method, the limit of articles to get, "
+"the total number of articles, the number of hot articles, the number of "
+"recent articles and the number of killed articles. I.e.:"
+msgstr ""
+"At the Group level the title contains the name of the group, the number of "
+"conversation threads, the threading method, the limit of articles to get, "
+"the total number of articles, the number of hot articles, the number of "
+"recent articles and the number of killed articles. I.e.:"
+
+# type: Plain text
+#.  FIXME - make this autocenter
+#: ../tin.1:361
+#, no-wrap
+msgid "            alt.sources (5B -50/23+ 0* 3o 0K)\n"
+msgstr "            alt.sources (5B -50/23+ 0* 3o 0K)\n"
+
+# type: Plain text
+#: ../tin.1:369
+msgid ""
+"The characters after the numbers are depending to the configuration and if "
+"your are in B<show_only_unread_arts> mode or not. Some numbers could be "
+"missing if the specific option is not enabled. It might also contain an 'M', "
+"\\&'X' or '=' (see above; doesn't work with the ''B<-n>'' command-line "
+"switch!) if the group is moderated, set to no posting or postings to it get "
+"redirected."
+msgstr ""
+"The characters after the numbers are depending to the configuration and if "
+"your are in B<show_only_unread_arts> mode or not. Some numbers could be "
+"missing if the specific option is not enabled. It might also contain an 'M', "
+"\\&'X' or '=' (see above; doesn't work with the ''B<-n>'' command-line "
+"switch!) if the group is moderated, set to no posting or postings to it get "
+"redirected."
+
+# type: Plain text
+#: ../tin.1:380
+msgid ""
+"If a thread has unread articles in it it's marked with a "
+"B<art_marked_unread> in front of the total number of articles in the thread. "
+"If there are recent articles within the thread it might be marked with "
+"B<art_marked_recent> in front of the total number of articles in the thread "
+"- this is controlled by the B<recent_time> option. If a thread has hot "
+"articles in it (see also section \"FILTERING ARTICLES\") it's marked with "
+"B<art_marked_selected> in front of the total number of articles in the "
+"thread. The number of lines of the first (unread) article in the thread "
+"might also be shown right before the subject - this is controlled by the "
+"B<show_info> option."
+msgstr ""
+"If a thread has unread articles in it it's marked with a "
+"B<art_marked_unread> in front of the total number of articles in the thread. "
+"If there are recent articles within the thread it might be marked with "
+"B<art_marked_recent> in front of the total number of articles in the thread "
+"- this is controlled by the B<recent_time> option. If a thread has hot "
+"articles in it (see also section \"FILTERING ARTICLES\") it's marked with "
+"B<art_marked_selected> in front of the total number of articles in the "
+"thread. The number of lines of the first (unread) article in the thread "
+"might also be shown right before the subject - this is controlled by the "
+"B<show_info> option."
+
+# type: Plain text
+#: ../tin.1:384
+#, no-wrap
+msgid "                de.admin.net-abuse.announce (11B 13+ 1* 1o 0K) M\n"
+msgstr "                de.admin.net-abuse.announce (11B 13+ 1* 1o 0K) M\n"
+
+# type: Plain text
+#: ../tin.1:389
+#, no-wrap
+msgid ""
+"-E<gt>   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg E<lt>l\n"
+"     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede E<lt>hwee\n"
+"     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede E<lt>hwee\n"
+"     4   *      368 E<lt>1997-11-12E<gt> Fremdcancel-FAQ     Thomas Roessler E<lt>ro\n"
+msgstr ""
+"-E<gt>   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg E<lt>l\n"
+"     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede E<lt>hwee\n"
+"     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede E<lt>hwee\n"
+"     4   *      368 E<lt>1997-11-12E<gt> Fremdcancel-FAQ     Thomas Roessler E<lt>ro\n"
+
+# type: Plain text
+#.  FIXME - add description of fields
+#: ../tin.1:394
+msgid ""
+"At the Thread level the screen usually (depends on the threading method "
+"used) looks like this:"
+msgstr ""
+"At the Thread level the screen usually (depends on the threading method "
+"used) looks like this:"
+
+# type: Plain text
+#: ../tin.1:401
+#, no-wrap
+msgid ""
+"-E<gt>   1      [   7]  What is this funny tree in the thr  Robert F. Simmig\n"
+"     2      [  12]  +-E<gt>                                 Sephan Wagner E<lt>s\n"
+"     3      [ 230]  | `-E<gt>Tin thread-level (was: What is Bob Johnson E<lt>bob\n"
+"     4      [  22]  `-E<gt>tin threading menu               Brian Richardson\n"
+msgstr ""
+"-E<gt>   1      [   7]  What is this funny tree in the thr  Robert F. Simmig\n"
+"     2      [  12]  +-E<gt>                                 Sephan Wagner E<lt>s\n"
+"     3      [ 230]  | `-E<gt>Tin thread-level (was: What is Bob Johnson E<lt>bob\n"
+"     4      [  22]  `-E<gt>tin threading menu               Brian Richardson\n"
+
+# type: Plain text
+#.  FIXME - add description of fields
+#: ../tin.1:406
+msgid "At the Article level the page header has the following format:"
+msgstr "At the Article level the page header has the following format:"
+
+# type: Plain text
+#: ../tin.1:412
+#, no-wrap
+msgid ""
+"Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86\n"
+"Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59\n"
+"Urs Janssen E<lt>urs@akk.orgE<gt>        at Arbeitskreis Kultur und Kommunikati\n"
+msgstr ""
+"Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86\n"
+"Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59\n"
+"Urs Janssen E<lt>urs@akk.orgE<gt>        at Arbeitskreis Kultur und Kommunikati\n"
+
+# type: Plain text
+#: ../tin.1:414
+#, no-wrap
+msgid "article-body\n"
+msgstr "article-body\n"
+
+# type: SS
+#: ../tin.1:417
+#, no-wrap
+msgid "COMMON MOVING KEYS"
+msgstr "COMMON MOVING KEYS"
+
+# type: Plain text
+#: ../tin.1:420
+msgid ""
+"This table shows the common keys used for moving around all levels within "
+"B<tin>."
+msgstr ""
+"This table shows the common keys used for moving around all levels within "
+"B<tin>."
+
+# type: ta
+#: ../tin.1:422
+#, no-wrap
+msgid "\\w'Beg. of list/article  'u +\\w'ANSI/vt100   'u"
+msgstr "\\w'Beg. of list/article  'u +\\w'ANSI/vt100   'u"
+
+# type: Plain text
+#: ../tin.1:430
+#, no-wrap
+msgid ""
+"\tANSI/vt100\tOther Terminals\n"
+"Beg. of list/article\tB<Home>\tB<FirstPage> (B<^>)\n"
+"End of list/article\tB<End>\tB<LastPage> (B<$>)\n"
+"Page Up\tB<PgUp>\tB<PageUp> (B<u>, B<^U> or B<^B>)\n"
+"Page Down\tB<PgDn>\tB<PageDown> (B<^D> or B<^F> or B<E<lt>SPACEE<gt>>)\n"
+"Line Up\tB<Up arrow>\tB<Up> (B<k> or B<^P>)\n"
+"Line Down\tB<Down arrow>\tB<Down> (B<j> or B<^N>)\n"
+msgstr ""
+"\tANSI/vt100\tOther Terminals\n"
+"Beg. of list/article\tB<Home>\tB<FirstPage> (B<^>)\n"
+"End of list/article\tB<End>\tB<LastPage> (B<$>)\n"
+"Page Up\tB<PgUp>\tB<PageUp> (B<u>, B<^U> or B<^B>)\n"
+"Page Down\tB<PgDn>\tB<PageDown> (B<^D> or B<^F> or B<E<lt>SPACEE<gt>>)\n"
+"Line Up\tB<Up arrow>\tB<Up> (B<k> or B<^P>)\n"
+"Line Down\tB<Down arrow>\tB<Down> (B<j> or B<^N>)\n"
+
+# type: SS
+#: ../tin.1:434
+#, no-wrap
+msgid "COMMON EDITING COMMANDS"
+msgstr "COMMON EDITING COMMANDS"
+
+# type: Plain text
+#: ../tin.1:439
+msgid ""
+"An emacs style editing package allows the easy editing of input strings.  An "
+"history list allows the easy reuse of previously entered strings.  In "
+"addition to the cursor keys, the following commands are available when "
+"editing a string:"
+msgstr ""
+"An emacs style editing package allows the easy editing of input strings.  An "
+"history list allows the easy reuse of previously entered strings.  In "
+"addition to the cursor keys, the following commands are available when "
+"editing a string:"
+
+# type: TP
+#: ../tin.1:440
+#, no-wrap
+msgid "B<^A, ^E>"
+msgstr "B<^A, ^E>"
+
+# type: Plain text
+#: ../tin.1:443
+msgid "move to beginning or end of line, respectively."
+msgstr "move to beginning or end of line, respectively."
+
+# type: TP
+#: ../tin.1:443
+#, no-wrap
+msgid "B<^F, ^B>"
+msgstr "B<^F, ^B>"
+
+# type: Plain text
+#: ../tin.1:446
+msgid "non-destructive move forward or back one location, respectively."
+msgstr "non-destructive move forward or back one location, respectively."
+
+# type: TP
+#: ../tin.1:446
+#, no-wrap
+msgid "B<^D>"
+msgstr "B<^D>"
+
+# type: Plain text
+#: ../tin.1:450
+msgid ""
+"delete the character currently under the cursor, or send EOF if no "
+"characters in the buffer."
+msgstr ""
+"delete the character currently under the cursor, or send EOF if no "
+"characters in the buffer."
+
+# type: TP
+#: ../tin.1:450
+#, no-wrap
+msgid "B<^H, E<lt>DELE<gt>>"
+msgstr "B<^H, E<lt>DELE<gt>>"
+
+# type: Plain text
+#: ../tin.1:453
+msgid "delete character left of the cursor."
+msgstr "delete character left of the cursor."
+
+# type: TP
+#: ../tin.1:453
+#, no-wrap
+msgid "B<^K>"
+msgstr "B<^K>"
+
+# type: Plain text
+#: ../tin.1:456
+msgid "delete from cursor to end of line."
+msgstr "delete from cursor to end of line."
+
+# type: TP
+#: ../tin.1:456
+#, no-wrap
+msgid "B<^P, ^N>"
+msgstr "B<^P, ^N>"
+
+# type: Plain text
+#: ../tin.1:459
+msgid "move through history, previous and next, respectively."
+msgstr "move through history, previous and next, respectively."
+
+# type: TP
+#: ../tin.1:459
+#, no-wrap
+msgid "B<^L, ^R>"
+msgstr "B<^L, ^R>"
+
+# type: Plain text
+#: ../tin.1:462
+msgid "redraw the current line."
+msgstr "redraw the current line."
+
+# type: TP
+#: ../tin.1:462
+#, no-wrap
+msgid "B<E<lt>CRE<gt>>"
+msgstr "B<E<lt>CRE<gt>>"
+
+# type: Plain text
+#: ../tin.1:466
+msgid ""
+"places line on history list if non-blank, appends newline and returns to the "
+"caller."
+msgstr ""
+"places line on history list if non-blank, appends newline and returns to the "
+"caller."
+
+# type: TP
+#: ../tin.1:466
+#, no-wrap
+msgid "B<E<lt>ESCE<gt>>"
+msgstr "B<E<lt>ESCE<gt>>"
+
+# type: Plain text
+#: ../tin.1:471
+msgid "aborts the present editing operation."
+msgstr "aborts the present editing operation."
+
+# type: SS
+#: ../tin.1:471
+#, no-wrap
+msgid "GLOBAL COMMANDS"
+msgstr "GLOBAL COMMANDS"
+
+# type: Plain text
+#: ../tin.1:474
+msgid ""
+"The following commands are available at all 4 menu levels and always have "
+"the same effect."
+msgstr ""
+"The following commands are available at all 4 menu levels and always have "
+"the same effect."
+
+# type: TP
+#: ../tin.1:475 ../tin.1:1338 ../tin.1:1391
+#, no-wrap
+msgid "B<ShellEscape '!'>"
+msgstr "B<ShellEscape '!'>"
+
+# type: Plain text
+#: ../tin.1:480
+msgid ""
+"Shell escape. B<ShellEscape> by itself will launch a shell, B<ShellEscape> "
+"E<lt>commandE<gt> will run an external E<lt>commandE<gt>. This facility may "
+"have been disabled by the System Administrator."
+msgstr ""
+"Shell escape. B<ShellEscape> by itself will launch a shell, B<ShellEscape> "
+"E<lt>commandE<gt> will run an external E<lt>commandE<gt>. This facility may "
+"have been disabled by the System Administrator."
+
+# type: TP
+#: ../tin.1:480
+#, no-wrap
+msgid "B<ToggleColor '&'>"
+msgstr "B<ToggleColor '&'>"
+
+# type: Plain text
+#: ../tin.1:483
+msgid "Toggle use of ANSI color."
+msgstr "Toggle use of ANSI colour."
+
+# type: TP
+#: ../tin.1:483
+#, no-wrap
+msgid "B<RedrawScr '^L'>"
+msgstr "B<RedrawScr '^L'>"
+
+# type: Plain text
+#: ../tin.1:486
+msgid "Redraw the current screen."
+msgstr "Redraw the current screen."
+
+# type: TP
+#: ../tin.1:486
+#, no-wrap
+msgid "B<ScrollUp 'E<lt>'>"
+msgstr "B<ScrollUp 'E<lt>'>"
+
+# type: Plain text
+#: ../tin.1:489
+msgid "Scroll screen up by one line."
+msgstr "Scroll screen up by one line."
+
+# type: TP
+#: ../tin.1:489
+#, no-wrap
+msgid "B<ScrollDown 'E<gt>'>"
+msgstr "B<ScrollDown 'E<gt>'>"
+
+# type: Plain text
+#: ../tin.1:492
+msgid "Scroll screen down by one line."
+msgstr "Scroll screen down by one line."
+
+# type: TP
+#: ../tin.1:492
+#, no-wrap
+msgid "B<Postponed 'O' '^O'>"
+msgstr "B<Postponed 'O' '^O'>"
+
+# type: Plain text
+#: ../tin.1:506
+msgid ""
+"Reload postponed article. If your system blocks the B<Postponed> key you "
+"must quote it by pressing 'B<^V>' (CTRL-V) first. The postpone-menu offers "
+"the following actions: B<PromptYes> ('B<y>') = reload and spawn editor; "
+"B<PostponeOverride> ('B<Y>') = post article (without spawning editor); "
+"B<PostponeAll> ('B<A>') = post all postponed articles (without spawning "
+"editor); B<PromptNo> ('B<n>') = skip this article; B<Quit> ('B<q>') = quit "
+"postponed menu. Currently there is no 'simple' way to delete a postponed "
+"article from the postponed-file, you have to use the following command "
+"sequence instead: reload it with B<Postponed>, enter editor with "
+"B<PromptYes>, quit editor, discard posting with B<Quit> "
+"('B<^O>''B<y>''B<q>'). See also ''B<-o>'' command-line switch."
+msgstr ""
+"Reload postponed article. If your system blocks the B<Postponed> key you "
+"must quote it by pressing 'B<^V>' (CTRL-V) first. The postpone-menu offers "
+"the following actions: B<PromptYes> ('B<y>') = reload and spawn editor; "
+"B<PostponeOverride> ('B<Y>') = post article (without spawning editor); "
+"B<PostponeAll> ('B<A>') = post all postponed articles (without spawning "
+"editor); B<PromptNo> ('B<n>') = skip this article; B<Quit> ('B<q>') = quit "
+"postponed menu. Currently there is no 'simple' way to delete a postponed "
+"article from the postponed-file, you have to use the following command "
+"sequence instead: reload it with B<Postponed>, enter editor with "
+"B<PromptYes>, quit editor, discard posting with B<Quit> "
+"('B<^O>''B<y>''B<q>'). See also ''B<-o>'' command-line switch."
+
+# type: TP
+#: ../tin.1:506 ../tin.1:1344 ../tin.1:1398
+#, no-wrap
+msgid "B<Help 'h'>"
+msgstr "B<Help 'h'>"
+
+# type: Plain text
+#: ../tin.1:512
+msgid ""
+"Help screen of commands available on the current menu. You can use "
+"B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> ('B<"
+"\\e>') to search on this screen. B<Quit> ('B<q>') returns to the menu."
+msgstr ""
+"Help screen of commands available on the current menu. You can use "
+"B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> ('B<"
+"\\e>') to search on this screen. B<Quit> ('B<q>') returns to the menu."
+
+# type: TP
+#: ../tin.1:512 ../tin.1:1347 ../tin.1:1401
+#, no-wrap
+msgid "B<ToggleHelpDisplay 'H'>"
+msgstr "B<ToggleHelpDisplay 'H'>"
+
+# type: Plain text
+#: ../tin.1:515 ../tin.1:1350 ../tin.1:1404
+msgid "Toggle the display of help mini menu at the bottom of the screen."
+msgstr "Toggle the display of help mini menu at the bottom of the screen."
+
+# type: TP
+#: ../tin.1:515
+#, no-wrap
+msgid "B<DisplayPostHist 'W'>"
+msgstr "B<DisplayPostHist 'W'>"
+
+# type: Plain text
+#: ../tin.1:521
+msgid ""
+"List articles posted by user. The date posted, the newsgroup and the subject "
+"are listed. You can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and "
+"B<SearchRepeat> ('B<\\e>') to search on this screen. B<Quit> ('B<q>') "
+"returns to the menu."
+msgstr ""
+"List articles posted by user. The date posted, the newsgroup and the subject "
+"are listed. You can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and "
+"B<SearchRepeat> ('B<\\e>') to search on this screen. B<Quit> ('B<q>') "
+"returns to the menu."
+
+# type: TP
+#: ../tin.1:521
+#, no-wrap
+msgid "B<Version 'v'>"
+msgstr "B<Version 'v'>"
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:526
+msgid "Print B<tin> version information."
+msgstr "Print B<tin> version information."
+
+# type: SS
+#: ../tin.1:526
+#, no-wrap
+msgid "NEWSGROUP SELECTION COMMANDS"
+msgstr "NEWSGROUP SELECTION COMMANDS"
+
+# type: TP
+#: ../tin.1:527 ../tin.1:655 ../tin.1:905 ../tin.1:1069 ../tin.1:3242
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+# type: Plain text
+#: ../tin.1:530
+msgid "Select group 4."
+msgstr "Select group 4."
+
+# type: TP
+#: ../tin.1:530
+#, no-wrap
+msgid "B<SelectResetNewsrc '^R'>"
+msgstr "B<SelectResetNewsrc '^R'>"
+
+# type: Plain text
+#: ../tin.1:534
+msgid ""
+"Reset I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. This will destroy all "
+"records of which articles have been read, so use this carefully."
+msgstr ""
+"Reset I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. This will destroy all "
+"records of which articles have been read, so use this carefully."
+
+# type: TP
+#: ../tin.1:534 ../tin.1:676 ../tin.1:926
+#, no-wrap
+msgid "B<SetRange '#'>"
+msgstr "B<SetRange '#'>"
+
+# type: Plain text
+#: ../tin.1:538 ../tin.1:680 ../tin.1:930
+msgid ""
+"Choose a range of articles to be affected by the next command. See the "
+"section \"RANGES\" for more information."
+msgstr ""
+"Choose a range of articles to be affected by the next command. See the "
+"section \"RANGES\" for more information."
+
+# type: TP
+#: ../tin.1:538
+#, no-wrap
+msgid "B<SelectSortActive '.'>"
+msgstr "B<SelectSortActive '.'>"
+
+# type: Plain text
+#: ../tin.1:541
+msgid "Sort the list of newsgroups."
+msgstr "Sort the list of newsgroups."
+
+# type: TP
+#: ../tin.1:541 ../tin.1:683 ../tin.1:933 ../tin.1:1123 ../tin.1:1335
+#: ../tin.1:1385
+#, no-wrap
+msgid "B<SearchRepeat '\\e'>"
+msgstr "B<SearchRepeat '\\e'>"
+
+# type: Plain text
+#: ../tin.1:544 ../tin.1:936 ../tin.1:1126 ../tin.1:1338 ../tin.1:1388
+msgid "Repeat the previous search."
+msgstr "Repeat the previous search."
+
+# type: TP
+#: ../tin.1:544 ../tin.1:686 ../tin.1:936 ../tin.1:1126 ../tin.1:1329
+#: ../tin.1:1379
+#, no-wrap
+msgid "B<SearchSubjF '/'>"
+msgstr "B<SearchSubjF '/'>"
+
+# type: Plain text
+#: ../tin.1:547
+msgid "Search for a group by name and description (if displayed)."
+msgstr "Search for a group by name and description (if displayed)."
+
+# type: TP
+#: ../tin.1:547 ../tin.1:689 ../tin.1:939 ../tin.1:1129 ../tin.1:1332
+#: ../tin.1:1382
+#, no-wrap
+msgid "B<SearchSubjB '?'>"
+msgstr "B<SearchSubjB '?'>"
+
+# type: Plain text
+#: ../tin.1:550
+msgid "Backward search through the group names and descriptions."
+msgstr "Backward search through the group names and descriptions."
+
+# type: TP
+#: ../tin.1:550
+#, no-wrap
+msgid "B<SelectReadGrp '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<SelectReadGrp '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:553
+msgid "Read current group."
+msgstr "Read current group."
+
+# type: TP
+#: ../tin.1:553
+#, no-wrap
+msgid "B<SelectEnterNextUnreadGrp 'E<lt>TABE<gt>' 'n'>"
+msgstr "B<SelectEnterNextUnreadGrp 'E<lt>TABE<gt>' 'n'>"
+
+# type: Plain text
+#: ../tin.1:557
+msgid ""
+"Enter next group with unread news. Will wrap around to the beginning of the "
+"group selection list looking for unread groups."
+msgstr ""
+"Enter next group with unread news. Will wrap around to the beginning of the "
+"group selection list looking for unread groups."
+
+# type: TP
+#: ../tin.1:557 ../tin.1:764 ../tin.1:977 ../tin.1:1187
+#, no-wrap
+msgid "B<Catchup 'c'>"
+msgstr "B<Catchup 'c'>"
+
+# type: Plain text
+#: ../tin.1:561
+msgid ""
+"Make current group as all read [after confirmation] and move to the next "
+"group in the group selection list."
+msgstr ""
+"Make current group as all read [after confirmation] and move to the next "
+"group in the group selection list."
+
+# type: TP
+#: ../tin.1:561 ../tin.1:768 ../tin.1:981 ../tin.1:1191
+#, no-wrap
+msgid "B<CatchupNextUnread 'C'>"
+msgstr "B<CatchupNextUnread 'C'>"
+
+# type: Plain text
+#: ../tin.1:565
+msgid ""
+"Mark current group as all read [after confirmation] and enter the next "
+"unread group in the group selection list."
+msgstr ""
+"Mark current group as all read [after confirmation] and enter the next "
+"unread group in the group selection list."
+
+# type: TP
+#: ../tin.1:565
+#, no-wrap
+msgid "B<SelectToggleDescriptions 'd'>"
+msgstr "B<SelectToggleDescriptions 'd'>"
+
+# type: Plain text
+#: ../tin.1:569
+msgid ""
+"Toggle display to show just the group name or the group name and the group "
+"descriptions."
+msgstr ""
+"Toggle display to show just the group name or the group name and the group "
+"descriptions."
+
+# type: TP
+#: ../tin.1:569 ../tin.1:781 ../tin.1:994 ../tin.1:1203
+#, no-wrap
+msgid "B<EditFilter 'E'>"
+msgstr "B<EditFilter 'E'>"
+
+# type: Plain text
+#: ../tin.1:572 ../tin.1:784 ../tin.1:997 ../tin.1:1206
+msgid "Edit the filter file and reload it afterwards."
+msgstr "Edit the filter file and reload it afterwards."
+
+# type: TP
+#: ../tin.1:572
+#, no-wrap
+msgid "B<SelectGoto 'g'>"
+msgstr "B<SelectGoto 'g'>"
+
+# type: Plain text
+#: ../tin.1:576 ../tin.1:788
+msgid ""
+"Choose a new group by name. This command can be used to access any group, "
+"even those not currently yanked in."
+msgstr ""
+"Choose a new group by name. This command can be used to access any group, "
+"even those not currently yanked in."
+
+# type: TP
+#: ../tin.1:576 ../tin.1:791 ../tin.1:997 ../tin.1:1219 ../tin.1:1341
+#: ../tin.1:1394
+#, no-wrap
+msgid "B<ToggleInfoLastLine 'i'>"
+msgstr "B<ToggleInfoLastLine 'i'>"
+
+# type: Plain text
+#: ../tin.1:581
+msgid ""
+"Toggle the display of the description of the current newsgroup in the last "
+"line. This will not be available if B<tin> was started with the \\&''B<-d>'' "
+"option."
+msgstr ""
+"Toggle the display of the description of the current newsgroup in the last "
+"line. This will not be available if B<tin> was started with the \\&''B<-d>'' "
+"option."
+
+# type: TP
+#: ../tin.1:581 ../tin.1:795 ../tin.1:1000 ../tin.1:1222
+#, no-wrap
+msgid "B<ToggleInverseVideo 'I'>"
+msgstr "B<ToggleInverseVideo 'I'>"
+
+# type: Plain text
+#: ../tin.1:584 ../tin.1:798 ../tin.1:1003 ../tin.1:1225
+msgid "Toggle inverse video."
+msgstr "Toggle inverse video."
+
+# type: TP
+#: ../tin.1:584
+#, no-wrap
+msgid "B<SelectMoveGrp 'm'>"
+msgstr "B<SelectMoveGrp 'm'>"
+
+# type: Plain text
+#: ../tin.1:590
+msgid ""
+"Move the current group within the group selection list. By entering '1' the "
+"group will become the first displayed group in the list, by entering '8' the "
+"eighth group in the list etc. By entering '$' the group will be the last "
+"group displayed."
+msgstr ""
+"Move the current group within the group selection list. By entering '1' the "
+"group will become the first displayed group in the list, by entering '8' the "
+"eighth group in the list etc. By entering '$' the group will be the last "
+"group displayed."
+
+# type: TP
+#: ../tin.1:590 ../tin.1:815 ../tin.1:1239
+#, no-wrap
+msgid "B<OptionMenu 'M'>"
+msgstr "B<OptionMenu 'M'>"
+
+# type: Plain text
+#: ../tin.1:594 ../tin.1:819 ../tin.1:1243
+msgid ""
+"User configurable options menu (for more information see section \"GLOBAL "
+"OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\")."
+msgstr ""
+"User configurable options menu (for more information see section \"GLOBAL "
+"OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\")."
+
+# type: TP
+#: ../tin.1:594
+#, no-wrap
+msgid "B<SelectNextUnreadGrp 'N'>"
+msgstr "B<SelectNextUnreadGrp 'N'>"
+
+# type: Plain text
+#: ../tin.1:597
+msgid "Positions the cursor on the next group with unread articles in it."
+msgstr "Positions the cursor on the next group with unread articles in it."
+
+# type: TP
+#: ../tin.1:597 ../tin.1:836 ../tin.1:1022 ../tin.1:1260
+#, no-wrap
+msgid "B<Quit 'q'>"
+msgstr "B<Quit 'q'>"
+
+# type: Plain text
+#: ../tin.1:601
+msgid ""
+"Quit B<tin> - ask the user to confirm if B<confirm_choice> is set "
+"accordingly."
+msgstr ""
+"Quit B<tin> - ask the user to confirm if B<confirm_choice> is set "
+"accordingly."
+
+# type: TP
+#: ../tin.1:601 ../tin.1:839 ../tin.1:1025 ../tin.1:1263
+#, no-wrap
+msgid "B<QuitTin 'Q'>"
+msgstr "B<QuitTin 'Q'>"
+
+# type: Plain text
+#: ../tin.1:604 ../tin.1:842 ../tin.1:1028 ../tin.1:1266
+msgid "Quit B<tin> - don't ask the user to confirm."
+msgstr "Quit B<tin> - don't ask the user to confirm."
+
+# type: TP
+#: ../tin.1:604
+#, no-wrap
+msgid "B<SelectToggleReadDisplay 'r'>"
+msgstr "B<SelectToggleReadDisplay 'r'>"
+
+# type: Plain text
+#: ../tin.1:609
+msgid ""
+"Toggle display of all subscribed to groups and just those groups containing "
+"unread articles. Command has no effect if groups were specified on the "
+"command-line when B<tin> was started."
+msgstr ""
+"Toggle display of all subscribed to groups and just those groups containing "
+"unread articles. Command has no effect if groups were specified on the "
+"command-line when B<tin> was started."
+
+# type: TP
+#: ../tin.1:609 ../tin.1:845 ../tin.1:1028
+#, no-wrap
+msgid "B<BugReport 'R'>"
+msgstr "B<BugReport 'R'>"
+
+# type: Plain text
+#: ../tin.1:613 ../tin.1:849 ../tin.1:1032
+msgid ""
+"Mail a bug report or comment to E<lt>tin-bugs@tin.orgE<gt>. This is the best "
+"way of getting bugs fixed and features added/changed."
+msgstr ""
+"Mail a bug report or comment to E<lt>tin-bugs@tin.orgE<gt>. This is the best "
+"way of getting bugs fixed and features added/changed."
+
+# type: TP
+#: ../tin.1:613
+#, no-wrap
+msgid "B<SelectSubscribe 's'>"
+msgstr "B<SelectSubscribe 's'>"
+
+# type: Plain text
+#: ../tin.1:616
+msgid "Subscribe to current group."
+msgstr "Subscribe to current group."
+
+# type: TP
+#: ../tin.1:616
+#, no-wrap
+msgid "B<SelectSubscribePat 'S'>"
+msgstr "B<SelectSubscribePat 'S'>"
+
+# type: Plain text
+#: ../tin.1:621
+msgid ""
+"Subscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+msgstr ""
+"Subscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+
+# type: TP
+#: ../tin.1:621
+#, no-wrap
+msgid "B<SelectUnsubscribe 'u'>"
+msgstr "B<SelectUnsubscribe 'u'>"
+
+# type: Plain text
+#: ../tin.1:626
+msgid ""
+"Unsubscribe to current group. This can be used to remove bogus groups.  See "
+"B<strip_bogus> in the \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+"\" section."
+msgstr ""
+"Unsubscribe to current group. This can be used to remove bogus groups.  See "
+"B<strip_bogus> in the \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+"\" section."
+
+# type: TP
+#: ../tin.1:626
+#, no-wrap
+msgid "B<SelectUnsubscribePat 'U'>"
+msgstr "B<SelectUnsubscribePat 'U'>"
+
+# type: Plain text
+#: ../tin.1:631
+msgid ""
+"Unsubscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+msgstr ""
+"Unsubscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+
+# type: TP
+#: ../tin.1:631 ../tin.1:873 ../tin.1:1047 ../tin.1:1300
+#, no-wrap
+msgid "B<Post 'w'>"
+msgstr "B<Post 'w'>"
+
+# type: Plain text
+#: ../tin.1:637
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to B<PostEdit> ('B<e>') the article again, B<PostPostpone> "
+"('B<o>') it for later processing (see also ''B<-o>'' command-line switch) or "
+"discard it via B<Quit> ('B<q>')."
+msgstr ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to B<PostEdit> ('B<e>') the article again, B<PostPostpone> "
+"('B<o>') it for later processing (see also ''B<-o>'' command-line switch) or "
+"discard it via B<Quit> ('B<q>')."
+
+# type: TP
+#: ../tin.1:637
+#, no-wrap
+msgid "B<SelectQuitNoWrite 'X'>"
+msgstr "B<SelectQuitNoWrite 'X'>"
+
+# type: Plain text
+#: ../tin.1:640
+msgid "Quit B<tin> without saving any changes to the configuration."
+msgstr "Quit B<tin> without saving any changes to the configuration."
+
+# type: TP
+#: ../tin.1:640
+#, no-wrap
+msgid "B<SelectYankActive 'y'>"
+msgstr "B<SelectYankActive 'y'>"
+
+# type: Plain text
+#: ../tin.1:645
+msgid ""
+"Yanks in all groups. Toggles the displayed groups between all the groups in "
+"the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file and just "
+"those that are subscribed to in I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+msgstr ""
+"Yanks in all groups. Toggles the displayed groups between all the groups in "
+"the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file and just "
+"those that are subscribed to in I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+
+# type: TP
+#: ../tin.1:645
+#, no-wrap
+msgid "B<SelectSyncWithActive 'Y'>"
+msgstr "B<SelectSyncWithActive 'Y'>"
+
+# type: Plain text
+#: ../tin.1:649
+msgid ""
+"Reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file "
+"to see if any new news has arrived since starting B<tin>."
+msgstr ""
+"Reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file "
+"to see if any new news has arrived since starting B<tin>."
+
+# type: TP
+#: ../tin.1:649
+#, no-wrap
+msgid "B<SelectMarkGrpUnread 'z' 'Z'>"
+msgstr "B<SelectMarkGrpUnread 'z' 'Z'>"
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:654
+msgid "Mark all articles in the current group as unread."
+msgstr "Mark all articles in the current group as unread."
+
+# type: SS
+#: ../tin.1:654
+#, no-wrap
+msgid "GROUP INDEX COMMANDS"
+msgstr "GROUP INDEX COMMANDS"
+
+# type: Plain text
+#: ../tin.1:658
+msgid "Select article 4."
+msgstr "Select article 4."
+
+# type: TP
+#: ../tin.1:658 ../tin.1:908 ../tin.1:1072
+#, no-wrap
+msgid "B<MenuFilterSelect '^A'>"
+msgstr "B<MenuFilterSelect '^A'>"
+
+# type: Plain text
+#: ../tin.1:662 ../tin.1:912 ../tin.1:1076
+msgid ""
+"Auto select article(s) using a menu. Read the section \"FILTERING ARTICLES\" "
+"for more information."
+msgstr ""
+"Auto select article(s) using a menu. Read the section \"FILTERING ARTICLES\" "
+"for more information."
+
+# type: TP
+#: ../tin.1:662 ../tin.1:912 ../tin.1:1088
+#, no-wrap
+msgid "B<MenuFilterKill '^K'>"
+msgstr "B<MenuFilterKill '^K'>"
+
+# type: Plain text
+#: ../tin.1:666 ../tin.1:916 ../tin.1:1092
+msgid ""
+"Kill article(s) using a menu. Read the section \"FILTERING ARTICLES\" for "
+"more information."
+msgstr ""
+"Kill article(s) using a menu. Read the section \"FILTERING ARTICLES\" for "
+"more information."
+
+# type: TP
+#: ../tin.1:666 ../tin.1:916
+#, no-wrap
+msgid "B<MarkFeedRead '^X'>"
+msgstr "B<MarkFeedRead '^X'>"
+
+# type: Plain text
+#: ../tin.1:671 ../tin.1:921
+msgid ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as read. A prompt asks which type should "
+"be marked."
+msgstr ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as read. A prompt asks which type should "
+"be marked."
+
+# type: TP
+#: ../tin.1:671 ../tin.1:921
+#, no-wrap
+msgid "B<MarkFeedUnread '^W'>"
+msgstr "B<MarkFeedUnread '^W'>"
+
+# type: Plain text
+#: ../tin.1:676 ../tin.1:926
+msgid ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as unread. A prompt asks which type "
+"should be marked."
+msgstr ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as unread. A prompt asks which type "
+"should be marked."
+
+# type: TP
+#: ../tin.1:680 ../tin.1:930 ../tin.1:1120
+#, no-wrap
+msgid "B<LastViewed '-'>"
+msgstr "B<LastViewed '-'>"
+
+# type: Plain text
+#: ../tin.1:683 ../tin.1:933 ../tin.1:1123
+msgid "Re-enter the last message that was viewed."
+msgstr "Re-enter the last message that was viewed."
+
+# type: Plain text
+#: ../tin.1:686
+msgid "Repeat the previous search"
+msgstr "Repeat the previous search"
+
+# type: Plain text
+#: ../tin.1:689
+msgid "Search forward for specified subject."
+msgstr "Search forward for specified subject."
+
+# type: Plain text
+#: ../tin.1:692
+msgid "Search backward for specified subject."
+msgstr "Search backward for specified subject."
+
+# type: TP
+#: ../tin.1:692
+#, no-wrap
+msgid "B<GroupSelThd '*'>"
+msgstr "B<GroupSelThd '*'>"
+
+# type: Plain text
+#: ../tin.1:695
+msgid "Select current thread for later processing."
+msgstr "Select current thread for later processing."
+
+# type: TP
+#: ../tin.1:695
+#, no-wrap
+msgid "B<GroupDoAutoSel '+'>"
+msgstr "B<GroupDoAutoSel '+'>"
+
+# type: Plain text
+#: ../tin.1:699
+msgid ""
+"Selects all threads in current group. It is a shortcut for calling "
+"B<GroupSelPattern> with a pattern of ''*''."
+msgstr ""
+"Selects all threads in current group. It is a shortcut for calling "
+"B<GroupSelPattern> with a pattern of ''*''."
+
+# type: TP
+#: ../tin.1:699
+#, no-wrap
+msgid "B<GroupToggleThdSel '.'>"
+msgstr "B<GroupToggleThdSel '.'>"
+
+# type: Plain text
+#: ../tin.1:704
+msgid ""
+"Toggle selection of current thread. If at least one unread article, (but not "
+"every unread article) in the current thread is selected, then all unread "
+"articles become selected."
+msgstr ""
+"Toggle selection of current thread. If at least one unread article, (but not "
+"every unread article) in the current thread is selected, then all unread "
+"articles become selected."
+
+# type: TP
+#: ../tin.1:704
+#, no-wrap
+msgid "B<GroupSelThdIfUnreadSelected ';'>"
+msgstr "B<GroupSelThdIfUnreadSelected ';'>"
+
+# type: Plain text
+#: ../tin.1:709
+msgid ""
+"For each thread in current group, if it at least one unread article is "
+"selected, all unread articles become selected. This is useful for auto-"
+"selection on author where reader wants to see entire thread."
+msgstr ""
+"For each thread in current group, if it at least one unread article is "
+"selected, all unread articles become selected. This is useful for auto-"
+"selection on author where reader wants to see entire thread."
+
+# type: TP
+#: ../tin.1:709
+#, no-wrap
+msgid "B<GroupSelPattern '='>"
+msgstr "B<GroupSelPattern '='>"
+
+# type: Plain text
+#: ../tin.1:715
+msgid ""
+"Prompts for a pattern with which to match on. All threads whose subjects "
+"match the pattern will be marked selected. A pattern of ''*'' will match all "
+"subjects. Entering just 'B<E<lt>CRE<gt>>' will re-use the last pattern that "
+"was entered."
+msgstr ""
+"Prompts for a pattern with which to match on. All threads whose subjects "
+"match the pattern will be marked selected. A pattern of ''*'' will match all "
+"subjects. Entering just 'B<E<lt>CRE<gt>>' will re-use the last pattern that "
+"was entered."
+
+# type: TP
+#: ../tin.1:715
+#, no-wrap
+msgid "B<GroupReverseSel '@'>"
+msgstr "B<GroupReverseSel '@'>"
+
+# type: Plain text
+#: ../tin.1:718
+msgid "Reverse all selections on all articles."
+msgstr "Reverse all selections on all articles."
+
+# type: TP
+#: ../tin.1:718
+#, no-wrap
+msgid "B<GroupUndoSel '~'>"
+msgstr "B<GroupUndoSel '~'>"
+
+# type: Plain text
+#: ../tin.1:724
+msgid ""
+"Undo all selections on all articles. It clears the toggle effect of "
+"B<GroupMarkUnselArtRead> ('B<X>') command. Thus after first doing a "
+"B<GroupMarkUnselArtRead>, one can then do B<GroupUndoSel> to reset articles. "
+"Thus, one can iteratively whittle down uninteresting threads."
+msgstr ""
+"Undo all selections on all articles. It clears the toggle effect of "
+"B<GroupMarkUnselArtRead> ('B<X>') command. Thus after first doing a "
+"B<GroupMarkUnselArtRead>, one can then do B<GroupUndoSel> to reset articles. "
+"Thus, one can iteratively whittle down uninteresting threads."
+
+# type: TP
+#: ../tin.1:724 ../tin.1:954 ../tin.1:1146
+#, no-wrap
+msgid "B<Pipe '|'>"
+msgstr "B<Pipe '|'>"
+
+# type: Plain text
+#: ../tin.1:729 ../tin.1:959 ../tin.1:1151
+msgid ""
+"Pipe current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles into command. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+"Pipe current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles into command. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+
+# type: TP
+#: ../tin.1:729 ../tin.1:1151
+#, no-wrap
+msgid "B<QuickFilterSelect '['>"
+msgstr "B<QuickFilterSelect '['>"
+
+# type: Plain text
+#: ../tin.1:738
+msgid ""
+"Auto select article(s) with a single key [after confirmation]. The defaults "
+"used for selection are based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header>.  Read "
+"the section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a "
+"full explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+"Auto select article(s) with a single key [after confirmation]. The defaults "
+"used for selection are based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header>.  Read "
+"the section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a "
+"full explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+
+# type: TP
+#: ../tin.1:738 ../tin.1:1160
+#, no-wrap
+msgid "B<QuickFilterKill ']'>"
+msgstr "B<QuickFilterKill ']'>"
+
+# type: Plain text
+#: ../tin.1:747
+msgid ""
+"Kill article(s) with a single key [after confirmation]. The defaults used "
+"for killing are based upon the following four tinrc config variables: "
+"B<default_filter_kill_case>, B<default_filter_kill_expire>, "
+"B<default_filter_kill_global> and B<default_filter_kill_header>.  Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+"Kill article(s) with a single key [after confirmation]. The defaults used "
+"for killing are based upon the following four tinrc config variables: "
+"B<default_filter_kill_case>, B<default_filter_kill_expire>, "
+"B<default_filter_kill_global> and B<default_filter_kill_header>.  Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+
+# type: TP
+#: ../tin.1:747
+#, no-wrap
+msgid "B<GroupReadBasenote '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<GroupReadBasenote '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:750
+msgid "Read current article."
+msgstr "Read current article."
+
+# type: TP
+#: ../tin.1:750
+#, no-wrap
+msgid "B<GroupNextUnreadArtOrGrp 'E<lt>TABE<gt>'>"
+msgstr "B<GroupNextUnreadArtOrGrp 'E<lt>TABE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:753
+msgid "View next unread article or group."
+msgstr "View next unread article or group."
+
+# type: TP
+#: ../tin.1:753 ../tin.1:965 ../tin.1:1177
+#, no-wrap
+msgid "B<SearchAuthF 'a'>"
+msgstr "B<SearchAuthF 'a'>"
+
+# type: Plain text
+#: ../tin.1:757
+msgid ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line."
+msgstr ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line."
+
+# type: TP
+#: ../tin.1:757 ../tin.1:970 ../tin.1:1180
+#, no-wrap
+msgid "B<SearchAuthB 'A'>"
+msgstr "B<SearchAuthB 'A'>"
+
+# type: Plain text
+#: ../tin.1:760 ../tin.1:973
+msgid "Author backward search. Otherwise, see B<SearchAuthF> ('B<a>') above."
+msgstr "Author backward search. Otherwise, see B<SearchAuthF> ('B<a>') above."
+
+# type: TP
+#: ../tin.1:760 ../tin.1:973 ../tin.1:1183
+#, no-wrap
+msgid "B<SearchBody 'B'>"
+msgstr "B<SearchBody 'B'>"
+
+# type: Plain text
+#: ../tin.1:764 ../tin.1:977 ../tin.1:1187
+msgid ""
+"Search the body of all articles in group (can be slow). You can abort the "
+"search using B<Quit> ('B<q>')."
+msgstr ""
+"Search the body of all articles in group (can be slow). You can abort the "
+"search using B<Quit> ('B<q>')."
+
+# type: Plain text
+#: ../tin.1:768
+msgid ""
+"Mark all articles as read [after confirmation] then return to the group "
+"selection list. Move cursor to next group."
+msgstr ""
+"Mark all articles as read [after confirmation] then return to the group "
+"selection list. Move cursor to next group."
+
+# type: Plain text
+#: ../tin.1:772
+msgid ""
+"Mark all articles as read [after confirmation] and enter the next group with "
+"unread news."
+msgstr ""
+"Mark all articles as read [after confirmation] and enter the next group with "
+"unread news."
+
+# type: TP
+#: ../tin.1:772
+#, no-wrap
+msgid "B<GroupToggleSubjDisplay 'd'>"
+msgstr "B<GroupToggleSubjDisplay 'd'>"
+
+# type: Plain text
+#: ../tin.1:776 ../tin.1:989
+msgid ""
+"Cycle the display of the author through all the possible options for the "
+"tinrc variable B<show_author>."
+msgstr ""
+"Cycle the display of the author through all the possible options for the "
+"tinrc variable B<show_author>."
+
+# type: TP
+#: ../tin.1:776
+#, no-wrap
+msgid "B<GroupCancel 'D'>"
+msgstr "B<GroupCancel 'D'>"
+
+# type: Plain text
+#: ../tin.1:781 ../tin.1:994 ../tin.1:1200
+msgid ""
+"Cancel (delete) or supersede (overwrite) the current article. It must have "
+"been posted by the same user. The cancel message can be seen in the "
+"newsgroup 'control' or 'control.cancel'."
+msgstr ""
+"Cancel (delete) or supersede (overwrite) the current article. It must have "
+"been posted by the same user. The cancel message can be seen in the "
+"newsgroup 'control' or 'control.cancel'."
+
+# type: TP
+#: ../tin.1:784
+#, no-wrap
+msgid "B<GroupGoto 'g'>"
+msgstr "B<GroupGoto 'g'>"
+
+# type: TP
+#: ../tin.1:788
+#, no-wrap
+msgid "B<GroupToggleGetartLimit 'G'>"
+msgstr "B<GroupToggleGetartLimit 'G'>"
+
+# type: Plain text
+#: ../tin.1:791
+msgid "Toggle article/group limit."
+msgstr "Toggle article/group limit."
+
+# type: Plain text
+#: ../tin.1:795
+msgid ""
+"Display the subject of the first article in the current thread in the last "
+"line."
+msgstr ""
+"Display the subject of the first article in the current thread in the last "
+"line."
+
+# type: TP
+#: ../tin.1:798
+#, no-wrap
+msgid "B<GroupMarkThdRead 'K'>"
+msgstr "B<GroupMarkThdRead 'K'>"
+
+# type: Plain text
+#: ../tin.1:804
+msgid ""
+"Mark article/thread as read and move onto the next unread article/thread. If "
+"a range of articles/threads is set, the range will be marked as read instead "
+"of the current article/thread. When tagged articles/threads are present, a "
+"prompt asks how to proceed."
+msgstr ""
+"Mark article/thread as read and move onto the next unread article/thread. If "
+"a range of articles/threads is set, the range will be marked as read instead "
+"of the current article/thread. When tagged articles/threads are present, a "
+"prompt asks how to proceed."
+
+# type: TP
+#: ../tin.1:804
+#, no-wrap
+msgid "B<GroupListThd 'l'>"
+msgstr "B<GroupListThd 'l'>"
+
+# type: Plain text
+#: ../tin.1:807
+msgid "Open the thread under the current cursor position."
+msgstr "Open the thread under the current cursor position."
+
+# type: TP
+#: ../tin.1:807 ../tin.1:1009 ../tin.1:1231
+#, no-wrap
+msgid "B<LookupMessage 'L'>"
+msgstr "B<LookupMessage 'L'>"
+
+# type: Plain text
+#: ../tin.1:810 ../tin.1:1012 ../tin.1:1234
+msgid "Look up article by ''Message-ID:''."
+msgstr "Look up article by ''Message-ID:''."
+
+# type: TP
+#: ../tin.1:810
+#, no-wrap
+msgid "B<GroupMail 'm'>"
+msgstr "B<GroupMail 'm'>"
+
+# type: Plain text
+#: ../tin.1:815 ../tin.1:1017 ../tin.1:1239
+msgid ""
+"Mail current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to someone. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+"Mail current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to someone. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+
+# type: TP
+#: ../tin.1:819
+#, no-wrap
+msgid "B<GroupNextGroup 'n'>"
+msgstr "B<GroupNextGroup 'n'>"
+
+# type: Plain text
+#: ../tin.1:822
+msgid "Go to next group."
+msgstr "Go to next group."
+
+# type: TP
+#: ../tin.1:822
+#, no-wrap
+msgid "B<GroupNextUnreadArt 'N'>"
+msgstr "B<GroupNextUnreadArt 'N'>"
+
+# type: Plain text
+#: ../tin.1:825
+msgid "Go to next unread article."
+msgstr "Go to next unread article."
+
+# type: TP
+#: ../tin.1:825 ../tin.1:1017 ../tin.1:1249
+#, no-wrap
+msgid "B<Print 'o'>"
+msgstr "B<Print 'o'>"
+
+# type: Plain text
+#: ../tin.1:830 ../tin.1:1022 ../tin.1:1254
+msgid ""
+"Send current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to printer. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+"Send current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to printer. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+
+# type: TP
+#: ../tin.1:830
+#, no-wrap
+msgid "B<GroupPrevGroup 'p'>"
+msgstr "B<GroupPrevGroup 'p'>"
+
+# type: Plain text
+#: ../tin.1:833
+msgid "Go to previous group."
+msgstr "Go to previous group."
+
+# type: TP
+#: ../tin.1:833
+#, no-wrap
+msgid "B<GroupPrevUnreadArt 'P'>"
+msgstr "B<GroupPrevUnreadArt 'P'>"
+
+# type: Plain text
+#: ../tin.1:836
+msgid "Go to previous unread article."
+msgstr "Go to previous unread article."
+
+# type: Plain text
+#: ../tin.1:839 ../tin.1:1025
+msgid "Return to previous level."
+msgstr "Return to previous level."
+
+# type: TP
+#: ../tin.1:842
+#, no-wrap
+msgid "B<GroupToggleReadUnread 'r'>"
+msgstr "B<GroupToggleReadUnread 'r'>"
+
+# type: Plain text
+#: ../tin.1:845
+msgid "Toggle the display between all articles and unread articles."
+msgstr "Toggle the display between all articles and unread articles."
+
+# type: TP
+#: ../tin.1:849
+#, no-wrap
+msgid "B<GroupSave 's'>"
+msgstr "B<GroupSave 's'>"
+
+# type: Plain text
+#: ../tin.1:854 ../tin.1:1037 ../tin.1:1279
+msgid ""
+"Save current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles. See the section \"MAILING PIPING "
+"PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+"Save current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles. See the section \"MAILING PIPING "
+"PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+
+# type: TP
+#: ../tin.1:854
+#, no-wrap
+msgid "B<GroupAutoSave 'S'>"
+msgstr "B<GroupAutoSave 'S'>"
+
+# type: Plain text
+#: ../tin.1:857 ../tin.1:1040 ../tin.1:1282
+msgid "Save marked articles automatically without further prompting."
+msgstr "Save marked articles automatically without further prompting."
+
+# type: TP
+#: ../tin.1:857
+#, no-wrap
+msgid "B<GroupTag 't'>"
+msgstr "B<GroupTag 't'>"
+
+# type: Plain text
+#: ../tin.1:862
+msgid ""
+"Toggle tag-status of current article / thread for B<GroupMail> ('B<m>')  / "
+"B<Pipe> ('B<|>') / B<Print> ('B<o>') / B<GroupSave> ('B<s>') / "
+"B<GroupRepost> ('B<x>')."
+msgstr ""
+"Toggle tag-status of current article / thread for B<GroupMail> ('B<m>')  / "
+"B<Pipe> ('B<|>') / B<Print> ('B<o>') / B<GroupSave> ('B<s>') / "
+"B<GroupRepost> ('B<x>')."
+
+# type: TP
+#: ../tin.1:862
+#, no-wrap
+msgid "B<GroupTagParts 'T'>"
+msgstr "B<GroupTagParts 'T'>"
+
+# type: Plain text
+#: ../tin.1:865
+msgid ""
+"Automatically tag in order all the parts of the current multi-part message."
+msgstr ""
+"Automatically tag in order all the parts of the current multi-part message."
+
+# type: TP
+#: ../tin.1:865
+#, no-wrap
+msgid "B<GroupToggleThreading 'u'>"
+msgstr "B<GroupToggleThreading 'u'>"
+
+# type: Plain text
+#: ../tin.1:870
+msgid ""
+"Cycle the threading mode through no threading, threading by subject, "
+"threading by references, threading on both subject and references, group "
+"multipart articles into a thread (''Subject:'' based)."
+msgstr ""
+"Cycle the threading mode through no threading, threading by subject, "
+"threading by references, threading on both subject and references, group "
+"multipart articles into a thread (''Subject:'' based)."
+
+# type: TP
+#: ../tin.1:870
+#, no-wrap
+msgid "B<GroupUntag 'U'>"
+msgstr "B<GroupUntag 'U'>"
+
+# type: Plain text
+#: ../tin.1:873
+msgid "Untag all articles that were tagged."
+msgstr "Untag all articles that were tagged."
+
+# type: Plain text
+#: ../tin.1:879
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it via B<PostPostpone> ('B<o>') for later processing (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it via B<PostPostpone> ('B<o>') for later processing (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+
+# type: TP
+#: ../tin.1:879
+#, no-wrap
+msgid "B<GroupRepost 'x'>"
+msgstr "B<GroupRepost 'x'>"
+
+# type: Plain text
+#: ../tin.1:885
+msgid ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to cross-post "
+"your own articles."
+msgstr ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to cross-post "
+"your own articles."
+
+# type: TP
+#: ../tin.1:885
+#, no-wrap
+msgid "B<GroupMarkUnselArtRead 'X'>"
+msgstr "B<GroupMarkUnselArtRead 'X'>"
+
+# type: Plain text
+#: ../tin.1:893
+msgid ""
+"Mark all unread articles that have not been selected as read, redraw screen "
+"to reflect changes and put index at the first thread to begin reading.  "
+"Pressing B<GroupMarkUnselArtRead> ('B<X>') again will toggle back to the way "
+"it was before. See B<GroupUndoSel> ('B<~>') command for clearing the toggle "
+"effect, leaving the group will also clear the toggle effect and make the "
+"changes permanent."
+msgstr ""
+"Mark all unread articles that have not been selected as read, redraw screen "
+"to reflect changes and put index at the first thread to begin reading.  "
+"Pressing B<GroupMarkUnselArtRead> ('B<X>') again will toggle back to the way "
+"it was before. See B<GroupUndoSel> ('B<~>') command for clearing the toggle "
+"effect, leaving the group will also clear the toggle effect and make the "
+"changes permanent."
+
+# type: TP
+#: ../tin.1:893 ../tin.1:1054 ../tin.1:1313
+#, no-wrap
+msgid "B<MarkArtUnread 'z'>"
+msgstr "B<MarkArtUnread 'z'>"
+
+# type: Plain text
+#: ../tin.1:896
+msgid "Mark current article as unread."
+msgstr "Mark current article as unread."
+
+# type: TP
+#: ../tin.1:896 ../tin.1:1059 ../tin.1:1316
+#, no-wrap
+msgid "B<MarkThdUnread 'Z'>"
+msgstr "B<MarkThdUnread 'Z'>"
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:903
+msgid ""
+"Mark current thread as unread. If a range of threads is set, the range will "
+"be marked as unread instead of the current thread. When tagged threads are "
+"present, a prompt asks how to proceed."
+msgstr ""
+"Mark current thread as unread. If a range of threads is set, the range will "
+"be marked as unread instead of the current thread. When tagged threads are "
+"present, a prompt asks how to proceed."
+
+# type: SS
+#: ../tin.1:903
+#, no-wrap
+msgid "THREAD LISTING COMMANDS"
+msgstr "THREAD LISTING COMMANDS"
+
+# type: Plain text
+#: ../tin.1:908
+msgid "Select article 4 within thread."
+msgstr "Select article 4 within thread."
+
+# type: Plain text
+#: ../tin.1:939
+msgid "Search forward for a specified subject."
+msgstr "Search forward for a specified subject."
+
+# type: Plain text
+#: ../tin.1:942
+msgid "Search backwards for a specified subject."
+msgstr "Search backwards for a specified subject."
+
+# type: TP
+#: ../tin.1:942
+#, no-wrap
+msgid "B<ThreadSelArt '*'>"
+msgstr "B<ThreadSelArt '*'>"
+
+# type: Plain text
+#: ../tin.1:945
+msgid "Select the current thread for later processing."
+msgstr "Select the current thread for later processing."
+
+# type: TP
+#: ../tin.1:945
+#, no-wrap
+msgid "B<ThreadToggleArtSel '.'>"
+msgstr "B<ThreadToggleArtSel '.'>"
+
+# type: Plain text
+#: ../tin.1:948
+msgid "Toggle selection of current article."
+msgstr "Toggle selection of current article."
+
+# type: TP
+#: ../tin.1:948
+#, no-wrap
+msgid "B<ThreadReverseSel '@'>"
+msgstr "B<ThreadReverseSel '@'>"
+
+# type: Plain text
+#: ../tin.1:951
+msgid "Reverse article selections."
+msgstr "Reverse article selections."
+
+# type: TP
+#: ../tin.1:951
+#, no-wrap
+msgid "B<ThreadUndoSel '~'>"
+msgstr "B<ThreadUndoSel '~'>"
+
+# type: Plain text
+#: ../tin.1:954
+msgid "Undo all selections on current thread."
+msgstr "Undo all selections on current thread."
+
+# type: TP
+#: ../tin.1:959
+#, no-wrap
+msgid "B<ThreadReadArt '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<ThreadReadArt '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:962
+msgid "Read current article within thread."
+msgstr "Read current article within thread."
+
+# type: TP
+#: ../tin.1:962
+#, no-wrap
+msgid "B<ThreadReadNextArtOrThread 'E<lt>TABE<gt>'>"
+msgstr "B<ThreadReadNextArtOrThread 'E<lt>TABE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:965
+msgid "View next unread article within thread."
+msgstr "View next unread article within thread."
+
+# type: Plain text
+#: ../tin.1:970
+msgid ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line. The search will wrap over into the next thread if nothing is found in "
+"the current one."
+msgstr ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line. The search will wrap over into the next thread if nothing is found in "
+"the current one."
+
+# type: Plain text
+#: ../tin.1:981
+msgid ""
+"Mark thread as read [after confirmation] and return to the group index "
+"page.  Move cursor to next thread."
+msgstr ""
+"Mark thread as read [after confirmation] and return to the group index "
+"page.  Move cursor to next thread."
+
+# type: Plain text
+#: ../tin.1:985
+msgid ""
+"Mark thread as read [after confirmation] and enter the next thread "
+"containing unread news."
+msgstr ""
+"Mark thread as read [after confirmation] and enter the next thread "
+"containing unread news."
+
+# type: TP
+#: ../tin.1:985
+#, no-wrap
+msgid "B<ThreadToggleSubjDisplay 'd'>"
+msgstr "B<ThreadToggleSubjDisplay 'd'>"
+
+# type: TP
+#: ../tin.1:989
+#, no-wrap
+msgid "B<ThreadCancel 'D'>"
+msgstr "B<ThreadCancel 'D'>"
+
+# type: Plain text
+#: ../tin.1:1000 ../tin.1:1222
+msgid "Display the subject of the current article in the last line."
+msgstr "Display the subject of the current article in the last line."
+
+# type: TP
+#: ../tin.1:1003
+#, no-wrap
+msgid "B<ThreadMarkArtRead 'K'>"
+msgstr "B<ThreadMarkArtRead 'K'>"
+
+# type: Plain text
+#: ../tin.1:1009
+msgid ""
+"Mark article as read and move onto the next unread article. If a range of "
+"articles is set, the range will be marked as read instead of the current "
+"article. When tagged articles are present, a prompt asks how to proceed."
+msgstr ""
+"Mark article as read and move onto the next unread article. If a range of "
+"articles is set, the range will be marked as read instead of the current "
+"article. When tagged articles are present, a prompt asks how to proceed."
+
+# type: TP
+#: ../tin.1:1012
+#, no-wrap
+msgid "B<ThreadMail 'm'>"
+msgstr "B<ThreadMail 'm'>"
+
+# type: TP
+#: ../tin.1:1032
+#, no-wrap
+msgid "B<ThreadSave 's'>"
+msgstr "B<ThreadSave 's'>"
+
+# type: TP
+#: ../tin.1:1037
+#, no-wrap
+msgid "B<ThreadAutoSave 'S'>"
+msgstr "B<ThreadAutoSave 'S'>"
+
+# type: TP
+#: ../tin.1:1040
+#, no-wrap
+msgid "B<ThreadTag 't'>"
+msgstr "B<ThreadTag 't'>"
+
+# type: Plain text
+#: ../tin.1:1044 ../tin.1:1286
+msgid ""
+"Toggle tag status of current article for mailing, piping, printing, saving "
+"or reposting."
+msgstr ""
+"Toggle tag status of current article for mailing, piping, printing, saving "
+"or reposting."
+
+# type: TP
+#: ../tin.1:1044
+#, no-wrap
+msgid "B<ThreadUntag 'U'>"
+msgstr "B<ThreadUntag 'U'>"
+
+# type: Plain text
+#: ../tin.1:1047
+msgid "Untag all tagged threads."
+msgstr "Untag all tagged threads."
+
+# type: Plain text
+#: ../tin.1:1054
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+
+# type: Plain text
+#: ../tin.1:1059
+msgid ""
+"Mark current article in thread as unread. If a range of articles is set, the "
+"range will be marked as unread instead of the current article. When tagged "
+"articles are present, a prompt asks how to proceed."
+msgstr ""
+"Mark current article in thread as unread. If a range of articles is set, the "
+"range will be marked as unread instead of the current article. When tagged "
+"articles are present, a prompt asks how to proceed."
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:1064
+msgid "Mark all articles in thread as unread."
+msgstr "Mark all articles in thread as unread."
+
+# type: SS
+#: ../tin.1:1064
+#, no-wrap
+msgid "ARTICLE VIEWER COMMANDS"
+msgstr "ARTICLE VIEWER COMMANDS"
+
+# type: Plain text
+#: ../tin.1:1069
+msgid "Read the first (base) article in this thread."
+msgstr "Read the first (base) article in this thread."
+
+# type: Plain text
+#: ../tin.1:1072
+msgid "Read response 4 in this thread."
+msgstr "Read response 4 in this thread."
+
+# type: TP
+#: ../tin.1:1076
+#, no-wrap
+msgid "B<PageReplyQuoteHeaders '^E'>"
+msgstr "B<PageReplyQuoteHeaders '^E'>"
+
+# type: Plain text
+#: ../tin.1:1080
+msgid ""
+"Reply through mail to the author of the current article with a copy of the "
+"article with all headers included."
+msgstr ""
+"Reply through mail to the author of the current article with a copy of the "
+"article with all headers included."
+
+# type: TP
+#: ../tin.1:1080
+#, no-wrap
+msgid "B<PagePGPCheckArticle '^G'>"
+msgstr "B<PagePGPCheckArticle '^G'>"
+
+# type: Plain text
+#: ../tin.1:1085
+msgid "Perform B<pgp>(1)  operations on article."
+msgstr "Perform B<pgp>(1)  operations on article."
+
+# type: TP
+#: ../tin.1:1085
+#, no-wrap
+msgid "B<PageToggleRaw '^H'>"
+msgstr "B<PageToggleRaw '^H'>"
+
+# type: Plain text
+#: ../tin.1:1088
+msgid "Toggles the display mode (raw including all headers vs. cooked)."
+msgstr "Toggles the display mode (raw including all headers vs. cooked)."
+
+# type: TP
+#: ../tin.1:1092
+#, no-wrap
+msgid "B<PageToggleTabs '^T'>"
+msgstr "B<PageToggleTabs '^T'>"
+
+# type: Plain text
+#: ../tin.1:1095
+msgid "Toggle the TAB width between 4 and 8 characters."
+msgstr "Toggle the TAB width between 4 and 8 characters."
+
+# type: TP
+#: ../tin.1:1095
+#, no-wrap
+msgid "B<PageFollowupQuoteHeaders '^W'>"
+msgstr "B<PageFollowupQuoteHeaders '^W'>"
+
+# type: Plain text
+#: ../tin.1:1099
+msgid ""
+"Post a followup to the current article with a copy of the article with all "
+"headers included."
+msgstr ""
+"Post a followup to the current article with a copy of the article with all "
+"headers included."
+
+# type: TP
+#: ../tin.1:1099
+#, no-wrap
+msgid "B<PageToggleTex2iso '\"'>"
+msgstr "B<PageToggleTex2iso '\"'>"
+
+# type: Plain text
+#: ../tin.1:1103
+msgid ""
+"Toggle TeX to ISO decoding for current article. The default behavior is "
+"taken from the B<tex2iso_conv> variable in the tinrc file."
+msgstr ""
+"Toggle TeX to ISO decoding for current article. The default behaviour is "
+"taken from the B<tex2iso_conv> variable in the tinrc file."
+
+# type: TP
+#: ../tin.1:1103
+#, no-wrap
+msgid "B<PageToggleAllHeaders '*'>"
+msgstr "B<PageToggleAllHeaders '*'>"
+
+# type: TP
+#: ../tin.1:1106
+msgid ""
+"Toggles the display of all headers vs. headers in B<news_headers_to_display>."
+msgstr ""
+"Toggles the display of all headers vs. headers in B<news_headers_to_display>."
+
+# type: TP
+#: ../tin.1:1106
+#, no-wrap
+msgid "B<PageToggleRot '%'>"
+msgstr "B<PageToggleRot '%'>"
+
+# type: Plain text
+#: ../tin.1:1109
+msgid "Toggle ROT-13 decoding for this article."
+msgstr "Toggle ROT-13 decoding for this article."
+
+# type: TP
+#: ../tin.1:1109
+#, no-wrap
+msgid "B<PageToggleUue '('>"
+msgstr "B<PageToggleUue '('>"
+
+# type: Plain text
+#: ../tin.1:1113
+msgid ""
+"Toggle the display of uuencoded sections. The default behavior is taken from "
+"the B<hide_uue> variable in the tinrc file."
+msgstr ""
+"Toggle the display of uuencoded sections. The default behaviour is taken "
+"from the B<hide_uue> variable in the tinrc file."
+
+# type: TP
+#: ../tin.1:1113
+#, no-wrap
+msgid "B<PageReveal ')'>"
+msgstr "B<PageReveal ')'>"
+
+# type: Plain text
+#: ../tin.1:1120
+msgid ""
+"The formfeed character (^L) is often used to hide 'spoilers' that the reader "
+"may not initially wish to see when viewing an article. Any text after a "
+"formfeed is not displayed. This key-press acts like a reveal key and turns "
+"the hidden text back on. Scrolling down will also reveal the text, scrolling "
+"up will hide it again."
+msgstr ""
+"The formfeed character (^L) is often used to hide 'spoilers' that the reader "
+"may not initially wish to see when viewing an article. Any text after a "
+"formfeed is not displayed. This key-press acts like a reveal key and turns "
+"the hidden text back on. Scrolling down will also reveal the text, scrolling "
+"up will hide it again."
+
+# type: Plain text
+#: ../tin.1:1129
+msgid "Forward search the text of this article."
+msgstr "Forward search the text of this article."
+
+# type: Plain text
+#: ../tin.1:1132
+msgid "Backward search the text of this article."
+msgstr "Backward search the text of this article."
+
+# type: TP
+#: ../tin.1:1132
+#, no-wrap
+msgid "B<PageSkipIncludedText ':'>"
+msgstr "B<PageSkipIncludedText ':'>"
+
+# type: Plain text
+#: ../tin.1:1137
+msgid ""
+"Skip to the end of the next quoted text-block in this article. Quoted text "
+"is everything which matches B<quote_regex>, B<quote_regex2> or "
+"B<quote_regex3>."
+msgstr ""
+"Skip to the end of the next quoted text-block in this article. Quoted text "
+"is everything which matches B<quote_regex>, B<quote_regex2> or "
+"B<quote_regex3>."
+
+# type: TP
+#: ../tin.1:1137
+#, no-wrap
+msgid "B<PageTopThd 'E<lt>'>"
+msgstr "B<PageTopThd 'E<lt>'>"
+
+# type: Plain text
+#: ../tin.1:1140
+msgid "Go to the first article in the current thread."
+msgstr "Go to the first article in the current thread."
+
+# type: TP
+#: ../tin.1:1140
+#, no-wrap
+msgid "B<PageBotThd 'E<gt>'>"
+msgstr "B<PageBotThd 'E<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1143
+msgid "Go to the last article in the current thread."
+msgstr "Go to the last article in the current thread."
+
+# type: TP
+#: ../tin.1:1143
+#, no-wrap
+msgid "B<PageToggleHighlight '_'>"
+msgstr "B<PageToggleHighlight '_'>"
+
+# type: Plain text
+#: ../tin.1:1146
+msgid "Toggle word highlighting on/off."
+msgstr "Toggle word highlighting on/off."
+
+# type: Plain text
+#: ../tin.1:1160
+msgid ""
+"Auto select article(s) with a single key. The defaults used for selection "
+"are set based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header> Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+"Auto select article(s) with a single key. The defaults used for selection "
+"are set based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header> Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+
+# type: Plain text
+#: ../tin.1:1169
+msgid ""
+"Kill article(s) with a single key. The defaults used for killing are based "
+"upon the following four tinrc config variables: B<default_filter_kill_case>, "
+"B<default_filter_kill_expire>, B<default_filter_kill_global> and "
+"B<default_filter_kill_header>.  Read the section \"GLOBAL OPTIONS MENU AND "
+"TINRC CONFIGURABLE VARIABLES\" for a full explanation of these variables and "
+"\"FILTERING ARTICLES\" for more information on filtering."
+msgstr ""
+"Kill article(s) with a single key. The defaults used for killing are based "
+"upon the following four tinrc config variables: B<default_filter_kill_case>, "
+"B<default_filter_kill_expire>, B<default_filter_kill_global> and "
+"B<default_filter_kill_header>.  Read the section \"GLOBAL OPTIONS MENU AND "
+"TINRC CONFIGURABLE VARIABLES\" for a full explanation of these variables and "
+"\"FILTERING ARTICLES\" for more information on filtering."
+
+# type: TP
+#: ../tin.1:1169
+#, no-wrap
+msgid "B<PageNextThd '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<PageNextThd '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1172
+msgid "Go to next base article."
+msgstr "Go to next base article."
+
+# type: TP
+#: ../tin.1:1172
+#, no-wrap
+msgid "B<PageNextUnread 'E<lt>TABE<gt>'>"
+msgstr "B<PageNextUnread 'E<lt>TABE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1177
+msgid ""
+"Go to next unread article. If the tinrc variable B<goto_next_unread> doesn't "
+"contain PageNextUnread, then this key will first page through the current "
+"article."
+msgstr ""
+"Go to next unread article. If the tinrc variable B<goto_next_unread> doesn't "
+"contain PageNextUnread, then this key will first page through the current "
+"article."
+
+# type: Plain text
+#: ../tin.1:1180
+msgid "Author forward search."
+msgstr "Author forward search."
+
+# type: Plain text
+#: ../tin.1:1183
+msgid "Author backward search."
+msgstr "Author backward search."
+
+# type: Plain text
+#: ../tin.1:1191
+msgid ""
+"Mark the current thread as read [after confirmation] and return to the "
+"previous menu. Move cursor to next item."
+msgstr ""
+"Mark the current thread as read [after confirmation] and return to the "
+"previous menu. Move cursor to next item."
+
+# type: Plain text
+#: ../tin.1:1195
+msgid ""
+"Mark the rest of the current thread as read [after confirmation] and enter "
+"the next thread with unread articles."
+msgstr ""
+"Mark the rest of the current thread as read [after confirmation] and enter "
+"the next thread with unread articles."
+
+# type: TP
+#: ../tin.1:1195
+#, no-wrap
+msgid "B<PageCancel 'D'>"
+msgstr "B<PageCancel 'D'>"
+
+# type: TP
+#: ../tin.1:1200
+#, no-wrap
+msgid "B<PageEditArticle 'e'>"
+msgstr "B<PageEditArticle 'e'>"
+
+# type: Plain text
+#: ../tin.1:1203
+msgid ""
+"Edit the current article. This is restricted to mailgroups and saved news."
+msgstr ""
+"Edit the current article. This is restricted to mailgroups and saved news."
+
+# type: TP
+#: ../tin.1:1206
+#, no-wrap
+msgid "B<PageFollowupQuote 'f'>"
+msgstr "B<PageFollowupQuote 'f'>"
+
+# type: Plain text
+#: ../tin.1:1209
+msgid ""
+"Post a followup to the current article with a copy of the article included."
+msgstr ""
+"Post a followup to the current article with a copy of the article included."
+
+# type: TP
+#: ../tin.1:1209
+#, no-wrap
+msgid "B<PageFollowup 'F'>"
+msgstr "B<PageFollowup 'F'>"
+
+# type: Plain text
+#: ../tin.1:1213
+msgid ""
+"Post a followup to the current article without including a copy of the "
+"article."
+msgstr ""
+"Post a followup to the current article without including a copy of the "
+"article."
+
+# type: TP
+#: ../tin.1:1213
+#, no-wrap
+msgid "B<PageFirstPage 'g'>"
+msgstr "B<PageFirstPage 'g'>"
+
+# type: Plain text
+#: ../tin.1:1216
+msgid "Go to the start of the article."
+msgstr "Go to the start of the article."
+
+# type: TP
+#: ../tin.1:1216
+#, no-wrap
+msgid "B<PageLastPage 'G'>"
+msgstr "B<PageLastPage 'G'>"
+
+# type: Plain text
+#: ../tin.1:1219
+msgid "Go to the end of the article."
+msgstr "Go to the end of the article."
+
+# type: TP
+#: ../tin.1:1225
+#, no-wrap
+msgid "B<PageKillThd 'K'>"
+msgstr "B<PageKillThd 'K'>"
+
+# type: Plain text
+#: ../tin.1:1228
+msgid "Mark rest of thread as read and move onto the next unread thread."
+msgstr "Mark rest of thread as read and move onto the next unread thread."
+
+# type: TP
+#: ../tin.1:1228
+#, no-wrap
+msgid "B<PageListThd 'l'>"
+msgstr "B<PageListThd 'l'>"
+
+# type: Plain text
+#: ../tin.1:1231
+msgid "Show the thread menu that the current article is a part of."
+msgstr "Show the thread menu that the current article is a part of."
+
+# type: TP
+#: ../tin.1:1234
+#, no-wrap
+msgid "B<PageMail 'm'>"
+msgstr "B<PageMail 'm'>"
+
+# type: TP
+#: ../tin.1:1243
+#, no-wrap
+msgid "B<PageNextArt 'n'>"
+msgstr "B<PageNextArt 'n'>"
+
+# type: Plain text
+#: ../tin.1:1246
+msgid "Go to the next article."
+msgstr "Go to the next article."
+
+# type: TP
+#: ../tin.1:1246
+#, no-wrap
+msgid "B<PageNextUnreadArt 'N'>"
+msgstr "B<PageNextUnreadArt 'N'>"
+
+# type: Plain text
+#: ../tin.1:1249
+msgid "Go to the next unread article."
+msgstr "Go to the next unread article."
+
+# type: TP
+#: ../tin.1:1254
+#, no-wrap
+msgid "B<PagePrevArt 'p'>"
+msgstr "B<PagePrevArt 'p'>"
+
+# type: Plain text
+#: ../tin.1:1257
+msgid "Go to the previous article."
+msgstr "Go to the previous article."
+
+# type: TP
+#: ../tin.1:1257
+#, no-wrap
+msgid "B<PagePrevUnreadArt 'P'>"
+msgstr "B<PagePrevUnreadArt 'P'>"
+
+# type: Plain text
+#: ../tin.1:1260
+msgid "Go to the previous unread article."
+msgstr "Go to the previous unread article."
+
+# type: Plain text
+#: ../tin.1:1263
+msgid "Return to the previous level."
+msgstr "Return to the previous level."
+
+# type: TP
+#: ../tin.1:1266
+#, no-wrap
+msgid "B<PageReplyQuote 'r'>"
+msgstr "B<PageReplyQuote 'r'>"
+
+# type: Plain text
+#: ../tin.1:1270
+msgid ""
+"Reply through mail to the author of the current article with a copy of the "
+"article included."
+msgstr ""
+"Reply through mail to the author of the current article with a copy of the "
+"article included."
+
+# type: TP
+#: ../tin.1:1270
+#, no-wrap
+msgid "B<PageReply 'R'>"
+msgstr "B<PageReply 'R'>"
+
+# type: Plain text
+#: ../tin.1:1274
+msgid ""
+"Reply through mail to the author of the current article without including "
+"the original article."
+msgstr ""
+"Reply through mail to the author of the current article without including "
+"the original article."
+
+# type: TP
+#: ../tin.1:1274
+#, no-wrap
+msgid "B<PageSave 's'>"
+msgstr "B<PageSave 's'>"
+
+# type: TP
+#: ../tin.1:1279
+#, no-wrap
+msgid "B<PageAutoSave 'S'>"
+msgstr "B<PageAutoSave 'S'>"
+
+# type: TP
+#: ../tin.1:1282
+#, no-wrap
+msgid "B<PageTag 't'>"
+msgstr "B<PageTag 't'>"
+
+# type: TP
+#: ../tin.1:1286
+#, no-wrap
+msgid "B<PageGroupSel 'T'>"
+msgstr "B<PageGroupSel 'T'>"
+
+# type: Plain text
+#: ../tin.1:1289
+msgid "Return to group selection level."
+msgstr "Return to group selection level."
+
+# type: TP
+#: ../tin.1:1289
+#, no-wrap
+msgid "B<PageGotoParent 'u'>"
+msgstr "B<PageGotoParent 'u'>"
+
+# type: Plain text
+#: ../tin.1:1292
+msgid "Go to parent article."
+msgstr "Go to parent article."
+
+# type: TP
+#: ../tin.1:1292
+#, no-wrap
+msgid "B<PageViewUrl 'U'>"
+msgstr "B<PageViewUrl 'U'>"
+
+# type: Plain text
+#: ../tin.1:1296
+msgid ""
+"Display a list of URLs in the current article. See the section \"URL LISTING"
+"\" for more information."
+msgstr ""
+"Display a list of URLs of the current article. See the section \"URL LISTING"
+"\" for more information."
+
+# type: TP
+#: ../tin.1:1296
+#, no-wrap
+msgid "B<PageViewAttach 'V'>"
+msgstr "B<PageViewAttach 'V'>"
+
+# type: Plain text
+#: ../tin.1:1300
+msgid ""
+"Display a list of attachments of the current article. See the section "
+"\"ATTACHMENT LISTING\" for more information."
+msgstr ""
+"Display a list of attachments of the current article. See the section "
+"\"ATTACHMENT LISTING\" for more information."
+
+# type: Plain text
+#: ../tin.1:1307
+msgid ""
+"Post an article to the current group. If posting fails for some reason, "
+"you'll get the chance to edit the article again via B<PostEdit> ('B<e>'), "
+"postpone it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-"
+"o>'' command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+"Post an article to the current group. If posting fails for some reason, "
+"you'll get the chance to edit the article again via B<PostEdit> ('B<e>'), "
+"postpone it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-"
+"o>'' command-line switch) or discard it via B<Quit> ('B<q>')."
+
+# type: TP
+#: ../tin.1:1307
+#, no-wrap
+msgid "B<PageRepost 'x'>"
+msgstr "B<PageRepost 'x'>"
+
+# type: Plain text
+#: ../tin.1:1313
+msgid ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to crosspost "
+"your own articles."
+msgstr ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to crosspost "
+"your own articles."
+
+# type: Plain text
+#: ../tin.1:1316
+msgid "Mark article as unread."
+msgstr "Mark article as unread."
+
+# type: Plain text
+#. --------------------------------------------------------------------
+#: ../tin.1:1321
+msgid "Mark the current thread as unread."
+msgstr "Mark the current thread as unread."
+
+# type: SS
+#: ../tin.1:1321
+#, no-wrap
+msgid "URL LISTING"
+msgstr "URL LISTING"
+
+# type: Plain text
+#: ../tin.1:1324
+msgid ""
+"B<PageViewUrl> ('B<U>') displays a list of URLs in the current article. "
+"Besides the common moving keys, the following commands are available:"
+msgstr ""
+"B<PageViewUrl> ('B<U>') displays a list of URLs of the current article. "
+"Besides the common moving keys, the following commands are available:"
+
+# type: TP
+#: ../tin.1:1325
+#, no-wrap
+msgid "B<UrlSelect '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<UrlSelect '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1329
+msgid ""
+"The current URL will be prompted and opened using the B<url_handler>. "
+"'B<E<lt>ESCE<gt>>' or no input will skip the URL."
+msgstr ""
+"The current URL will be prompted and opened using the B<url_handler>. "
+"'B<E<lt>ESCE<gt>>' or no input will skip the URL."
+
+# type: Plain text
+#: ../tin.1:1332
+msgid "URL forward search."
+msgstr "URL forward search."
+
+# type: Plain text
+#: ../tin.1:1335
+msgid "URL backward search."
+msgstr "URL backward search."
+
+# type: Plain text
+#: ../tin.1:1341 ../tin.1:1394
+msgid "Shell escape."
+msgstr "Shell escape."
+
+# type: Plain text
+#: ../tin.1:1344
+msgid "Toggle the display of the current URL in the last line."
+msgstr "Toggle the display of the current URL in the last line."
+
+# type: Plain text
+#: ../tin.1:1347 ../tin.1:1401
+msgid "Help screen of commands available."
+msgstr "Help screen of commands available."
+
+# type: SS
+#. --------------------------------------------------------------------
+#: ../tin.1:1353
+#, no-wrap
+msgid "ATTACHMENT LISTING"
+msgstr "ATTACHMENT LISTING"
+
+# type: Plain text
+#: ../tin.1:1356
+msgid ""
+"B<PageViewAttach> ('B<V>') displays a list of attachments of the current "
+"article. Besides the common moving keys, the following commands are "
+"available:"
+msgstr ""
+"B<PageViewAttach> ('B<V>') displays a list of attachments of the current "
+"article. Besides the common moving keys, the following commands are "
+"available:"
+
+# type: TP
+#: ../tin.1:1357
+#, no-wrap
+msgid "B<AttachPipe 'p'>"
+msgstr "B<AttachPipe 'p'>"
+
+# type: Plain text
+#: ../tin.1:1360
+msgid "Pipe attachment into command."
+msgstr "Pipe attachment into command."
+
+# type: TP
+#: ../tin.1:1360
+#, no-wrap
+msgid "B<AttachSave 's'>"
+msgstr "B<AttachSave 's'>"
+
+# type: Plain text
+#: ../tin.1:1363
+msgid "Save current attachment / tagged attachments to disk."
+msgstr "Save current attachment / tagged attachments to disk."
+
+# type: TP
+#: ../tin.1:1363
+#, no-wrap
+msgid "B<AttachSelect '^J' 'E<lt>CRE<gt>'>"
+msgstr "B<AttachSelect '^J' 'E<lt>CRE<gt>'>"
+
+# type: Plain text
+#: ../tin.1:1366
+msgid "View attachment."
+msgstr "View attachment."
+
+# type: TP
+#: ../tin.1:1366
+#, no-wrap
+msgid "B<AttachTag 't'>"
+msgstr "B<AttachTag 't'>"
+
+# type: Plain text
+#: ../tin.1:1369
+msgid "Tag one or more attachments for saving."
+msgstr "Tag one or more attachments for saving."
+
+# type: TP
+#: ../tin.1:1369
+#, no-wrap
+msgid "B<AttachTagPattern '='>"
+msgstr "B<AttachTagPattern '='>"
+
+# type: Plain text
+#: ../tin.1:1373
+msgid ""
+"Prompts for a pattern to match. All attachments whose name/description or "
+"content type/transfer encoding match the pattern will be tagged."
+msgstr ""
+"Prompts for a pattern to match. All attachments whose name/description or "
+"content type/transfer encoding match the pattern will be tagged."
+
+# type: TP
+#: ../tin.1:1373
+#, no-wrap
+msgid "B<AttachToggleTagged '@'>"
+msgstr "B<AttachToggleTagged '@'>"
+
+# type: Plain text
+#: ../tin.1:1376
+msgid "Reverse tagging of all attachments."
+msgstr "Reverse tagging of all attachments."
+
+# type: TP
+#: ../tin.1:1376
+#, no-wrap
+msgid "B<AttachUntag 'U'>"
+msgstr "B<AttachUntag 'U'>"
+
+# type: Plain text
+#: ../tin.1:1379
+msgid "Untag all tagged attachments."
+msgstr "Untag all tagged attachments."
+
+# type: Plain text
+#: ../tin.1:1382
+msgid "Attachment forward search."
+msgstr "Attachment forward search."
+
+# type: Plain text
+#: ../tin.1:1385
+msgid "Attachment backward search."
+msgstr "Attachment backward search."
+
+# type: TP
+#: ../tin.1:1388
+#, no-wrap
+msgid "B<GlobalPipe '|'>"
+msgstr "B<GlobalPipe '|'>"
+
+# type: Plain text
+#: ../tin.1:1391
+msgid ""
+"Pipe attachment into command. Uses the raw attachment, no decoding is done."
+msgstr ""
+"Pipe attachment into command. Uses the raw attachment, no decoding is done."
+
+# type: Plain text
+#: ../tin.1:1398
+msgid ""
+"Toggle the display of the name/description of the current attachment in the "
+"last line."
+msgstr ""
+"Toggle the display of the name/description of the current attachment in the "
+"last line."
+
+# type: SS
+#. --------------------------------------------------------------------
+#: ../tin.1:1407
+#, no-wrap
+msgid "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+msgstr "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+
+# type: Plain text
+#.  FIXME - add missing descriptions
+#: ../tin.1:1417
+msgid ""
+"At startup, B<tin> reads in the configuration files (see also B<tin>(5)).  "
+"They contain a list of variables that can be used to configure the way "
+"B<tin> works. If it exists, the global configuration file, I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/tinrc> is read. After that, the user's own configuration file is "
+"read from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. The global file is useful "
+"for distributing system-wide defaults to new users who have no private tinrc "
+"yet."
+msgstr ""
+"At startup, B<tin> reads in the configuration files (see also B<tin>(5)).  "
+"They contain a list of variables that can be used to configure the way "
+"B<tin> works. If it exists, the global configuration file, I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/tinrc> is read. After that, the user's own configuration file is "
+"read from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. The global file is useful "
+"for distributing system-wide defaults to new users who have no private tinrc "
+"yet."
+
+# type: Plain text
+#: ../tin.1:1425
+msgid ""
+"The variables are user configurable by editing I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/tinrc> directly. Most of them can also be set in the GLOBAL OPTIONS MENU "
+"which is accessed by pressing B<OptionMenu> ('B<M>') at all levels. It "
+"allows the user to customize the behavior of B<tin>. The options are saved "
+"to the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> when you exit B<tin> so "
+"don't edit the file directly whilst B<tin> is running."
+msgstr ""
+"The variables are user configurable by editing I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/tinrc> directly. Most of them can also be set in the GLOBAL OPTIONS MENU "
+"which is accessed by pressing B<OptionMenu> ('B<M>') at all levels. It "
+"allows the user to customise the behaviour of B<tin>. The options are saved "
+"to the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> when you exit B<tin> so "
+"don't edit the file directly whilst B<tin> is running."
+
+# type: Plain text
+#: ../tin.1:1431
+msgid ""
+"In the options menu use the cursor keys in the usual way to move around. Use "
+"B<ConfigSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') to 'open' the option you wish "
+"to change. You will need to enter a new value or use 'B<E<lt>SPACEE<gt>>' to "
+"toggle the available options. B<ConfigSelect> will save the new value, "
+"\\&'B<E<lt>ESCE<gt>>' will abort without saving changes."
+msgstr ""
+"In the options menu use the cursor keys in the usual way to move around. Use "
+"B<ConfigSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') to 'open' the option you wish "
+"to change. You will need to enter a new value or use 'B<E<lt>SPACEE<gt>>' to "
+"toggle the available options. B<ConfigSelect> will save the new value, "
+"\\&'B<E<lt>ESCE<gt>>' will abort without saving changes."
+
+# type: Plain text
+#: ../tin.1:1438
+msgid ""
+"As with the other menus, B<RedrawScr> ('B<^L>') will redraw the screen. You "
+"can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> "
+"('B<\\e>') to search for a specific option. Use B<Quit> ('B<q>') to exit the "
+"option menu and keep your changes. Use B<QuitTin> ('B<Q>') to exit without "
+"keeping your changes."
+msgstr ""
+"As with the other menus, B<RedrawScr> ('B<^L>') will redraw the screen. You "
+"can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> "
+"('B<\\e>') to search for a specific option. Use B<Quit> ('B<q>') to exit the "
+"option menu and keep your changes. Use B<QuitTin> ('B<Q>') to exit without "
+"keeping your changes."
+
+# type: Plain text
+#: ../tin.1:1443
+msgid ""
+"The options menu provides access to the attributes menu for the current "
+"group by the B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') command. Pressing "
+"B<ConfigToggleAttrib> again toggles back to the options menu. For more "
+"information see section \"ATTRIBUTES MENU AND GROUP ATTRIBUTES\"."
+msgstr ""
+"The options menu provides access to the attributes menu for the current "
+"group by the B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') command. Pressing "
+"B<ConfigToggleAttrib> again toggles back to the options menu. For more "
+"information see section \"ATTRIBUTES MENU AND GROUP ATTRIBUTES\"."
+
+# type: Plain text
+#: ../tin.1:1446
+msgid ""
+"The B<ConfigScopeMenu> ('B<S>') command brings up the scopes menu. For more "
+"information see section \"SCOPES MENU\"."
+msgstr ""
+"The B<ConfigScopeMenu> ('B<S>') command brings up the scopes menu. For more "
+"information see section \"SCOPES MENU\"."
+
+# type: Plain text
+#: ../tin.1:1450
+msgid ""
+"Here is a full list of all the available variables. The name in braces is "
+"the name of the corresponding setting in I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"tinrc>."
+msgstr ""
+"Here is a full list of all the available variables. The name in braces is "
+"the name of the corresponding setting in I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"tinrc>."
+
+# type: TP
+#: ../tin.1:1450
+#, no-wrap
+msgid "B<Abbreviate long newsgroup names (abbreviate_groupname)>"
+msgstr "B<Abbreviate long newsgroup names (abbreviate_groupname)>"
+
+# type: Plain text
+#: ../tin.1:1456 ../tin.5:1185
+msgid ""
+"If ON abbreviate long newsgroup names at group selection level and article "
+"level (if necessary) like this: news.software.readers -E<gt> n.software."
+"readers -E<gt> n.s.readers -E<gt> n.s.r.  Default is OFF."
+msgstr ""
+"If ON abbreviate long newsgroup names at group selection level and article "
+"level (if necessary) like this: news.software.readers -E<gt> n.software."
+"readers -E<gt> n.s.readers -E<gt> n.s.r.  Default is OFF."
+
+# type: TP
+#: ../tin.1:1456
+#, no-wrap
+msgid "B<Add posted articles to filter (add_posted_to_filter)>"
+msgstr "B<Add posted articles to filter (add_posted_to_filter)>"
+
+# type: Plain text
+#: ../tin.1:1460 ../tin.5:1189
+msgid ""
+"If ON add posted articles which start a new thread to filter for "
+"highlighting follow-ups. Default is ON."
+msgstr ""
+"If ON add posted articles which start a new thread to filter for "
+"highlighting follow-ups. Default is ON."
+
+# type: TP
+#: ../tin.1:1460
+#, no-wrap
+msgid "B<Insert 'User-Agent:'-header (advertising)>"
+msgstr "B<Insert 'User-Agent:'-header (advertising)>"
+
+# type: Plain text
+#: ../tin.1:1463 ../tin.5:1192
+msgid "Turn ON advertising in header (''User-Agent:''). Default is ON."
+msgstr "Turn ON advertising in header (''User-Agent:''). Default is ON."
+
+# type: TP
+#: ../tin.1:1463
+#, no-wrap
+msgid "B<Skip multipart/alternative parts (alternative_handling)>"
+msgstr "B<Skip multipart/alternative parts (alternative_handling)>"
+
+# type: Plain text
+#: ../tin.1:1466 ../tin.5:1195
+msgid ""
+"If ON strip multipart/alternative messages automatically. Default is ON."
+msgstr ""
+"If ON strip multipart/alternative messages automatically. Default is ON."
+
+# type: TP
+#: ../tin.1:1466
+#, no-wrap
+msgid "B<Character to show deleted articles (art_marked_deleted)>"
+msgstr "B<Character to show deleted articles (art_marked_deleted)>"
+
+# type: Plain text
+#: ../tin.1:1469 ../tin.5:1198
+msgid "The character used to show that an article was deleted. Default is 'D'."
+msgstr ""
+"The character used to show that an article was deleted. Default is 'D'."
+
+# type: TP
+#: ../tin.1:1469
+#, no-wrap
+msgid "B<Character to show inrange articles (art_marked_inrange)>"
+msgstr "B<Character to show inrange articles (art_marked_inrange)>"
+
+# type: Plain text
+#: ../tin.1:1472 ../tin.5:1201
+msgid ""
+"The character used to show that an article is in a range. Default is '#'."
+msgstr ""
+"The character used to show that an article is in a range. Default is '#'."
+
+# type: TP
+#: ../tin.1:1472
+#, no-wrap
+msgid "B<Character to show returning arts (art_marked_return)>"
+msgstr "B<Character to show returning arts (art_marked_return)>"
+
+# type: Plain text
+#: ../tin.1:1476 ../tin.5:1205
+msgid ""
+"The character used to show that an article will return as an unread article "
+"when the group is next entered. Default is '-'."
+msgstr ""
+"The character used to show that an article will return as an unread article "
+"when the group is next entered. Default is '-'."
+
+# type: TP
+#: ../tin.1:1476
+#, no-wrap
+msgid "B<Character to show selected articles (art_marked_selected)>"
+msgstr "B<Character to show selected articles (art_marked_selected)>"
+
+# type: Plain text
+#: ../tin.1:1480 ../tin.5:1209
+msgid ""
+"The character used to show that an article/thread is auto-selected (hot).  "
+"Default is '*'."
+msgstr ""
+"The character used to show that an article/thread is auto-selected (hot).  "
+"Default is '*'."
+
+# type: TP
+#: ../tin.1:1480
+#, no-wrap
+msgid "B<Character to show recent articles (art_marked_recent)>"
+msgstr "B<Character to show recent articles (art_marked_recent)>"
+
+# type: Plain text
+#: ../tin.1:1484 ../tin.5:1213
+msgid ""
+"The character used to show that an article/thread is recent (not older than "
+"X days). See also B<recent_time>. Default is 'o'."
+msgstr ""
+"The character used to show that an article/thread is recent (not older than "
+"X days). See also B<recent_time>. Default is 'o'."
+
+# type: TP
+#: ../tin.1:1484
+#, no-wrap
+msgid "B<Character to show unread articles (art_marked_unread)>"
+msgstr "B<Character to show unread articles (art_marked_unread)>"
+
+# type: Plain text
+#: ../tin.1:1488
+msgid ""
+"The character used to show that an article has not been read. Default is "
+"\\&'+'."
+msgstr ""
+"The character used to show that an article has not been read. Default is "
+"\\&'+'."
+
+# type: TP
+#: ../tin.1:1488
+#, no-wrap
+msgid "B<Character to show read articles (art_marked_read)>"
+msgstr "B<Character to show read articles (art_marked_read)>"
+
+# type: Plain text
+#: ../tin.1:1491 ../tin.5:1220
+msgid "The character used to show that an article was read. Default is ' '."
+msgstr "The character used to show that an article was read. Default is ' '."
+
+# type: TP
+#: ../tin.1:1491
+#, no-wrap
+msgid "B<Character to show killed articles (art_marked_killed)>"
+msgstr "B<Character to show killed articles (art_marked_killed)>"
+
+# type: Plain text
+#: ../tin.1:1495 ../tin.5:1224
+msgid ""
+"The character used to show that an article was killed. Default is 'K'.  "
+"B<kill_level> must be set accordingly."
+msgstr ""
+"The character used to show that an article was killed. Default is 'K'.  "
+"B<kill_level> must be set accordingly."
+
+# type: TP
+#: ../tin.1:1495
+#, no-wrap
+msgid "B<Character to show read selected arts (art_marked_read_selected)>"
+msgstr "B<Character to show read selected arts (art_marked_read_selected)>"
+
+# type: Plain text
+#: ../tin.1:1499 ../tin.5:1228
+msgid ""
+"The character used to show that an article was hot before it was read.  "
+"Default is ':'. B<kill_level> must be set accordingly."
+msgstr ""
+"The character used to show that an article was hot before it was read.  "
+"Default is ':'. B<kill_level> must be set accordingly."
+
+# type: TP
+#: ../tin.1:1499 ../tin.5:1228
+#, no-wrap
+msgid "B<Ask before using MIME viewer (ask_for_metamail)>"
+msgstr "B<Ask before using MIME viewer (ask_for_metamail)>"
+
+# type: Plain text
+#: ../tin.1:1504
+msgid ""
+"If ON B<tin> will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+msgstr ""
+"If ON B<tin> will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+
+# type: TP
+#: ../tin.1:1504
+#, no-wrap
+msgid "B<Send you a cc and/or bcc automatically (auto_cc_bcc)>"
+msgstr "B<Send you a cc and/or bcc automatically (auto_cc_bcc)>"
+
+# type: Plain text
+#: ../tin.1:1508 ../tin.5:1239
+msgid ""
+"Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when "
+"mailing an article. Default is No."
+msgstr ""
+"Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when "
+"mailing an article. Default is No."
+
+# type: TP
+#: ../tin.1:1508
+#, no-wrap
+msgid "B<List thread using right arrow key (auto_list_thread)>"
+msgstr "B<List thread using right arrow key (auto_list_thread)>"
+
+# type: Plain text
+#: ../tin.1:1512 ../tin.5:1243
+msgid ""
+"If ON automatically list thread when entering it using right arrow key.  "
+"Default is ON."
+msgstr ""
+"If ON automatically list thread when entering it using right arrow key.  "
+"Default is ON."
+
+# type: TP
+#: ../tin.1:1512
+#, no-wrap
+msgid "B<Reconnect to server automatically (auto_reconnect)>"
+msgstr "B<Reconnect to server automatically (auto_reconnect)>"
+
+# type: Plain text
+#: ../tin.1:1515 ../tin.1:2430
+msgid "Default is OFF."
+msgstr "Default is OFF."
+
+# type: TP
+#: ../tin.1:1515
+#, no-wrap
+msgid "B<Use Archive-name: header for save (auto_save)>"
+msgstr "B<Use Archive-name: header for save (auto_save)>"
+
+# type: Plain text
+#: ../tin.1:1521 ../tin.5:1252
+msgid ""
+"If ON articles/threads with ''Archive-name:'' in header will be "
+"automatically saved with the Archive-name & part/patch no and post processed "
+"if B<post_process_type> is set to something other than 'No'.  Default is OFF."
+msgstr ""
+"If ON articles/threads with ''Archive-name:'' in header will be "
+"automatically saved with the Archive-name & part/patch no and post processed "
+"if B<post_process_type> is set to something other than 'No'.  Default is OFF."
+
+# type: TP
+#: ../tin.1:1521
+#, no-wrap
+msgid "B<Save articles in batch mode (batch_save)>"
+msgstr "B<Save articles in batch mode (batch_save)>"
+
+# type: Plain text
+#: ../tin.1:1526 ../tin.5:1257
+msgid ""
+"If set ON articles/threads will be saved in batch mode when save \\&''B<-"
+"S>'' or mail ''B<-M>, B<-N>'' is specified on the command line. Default is "
+"ON."
+msgstr ""
+"If set ON articles/threads will be saved in batch mode when save \\&''B<-"
+"S>'' or mail ''B<-M>, B<-N>'' is specified on the command line. Default is "
+"ON."
+
+# type: TP
+#: ../tin.1:1526
+#, no-wrap
+msgid "B<Show mini menu & posting etiquette (beginner_level)>"
+msgstr "B<Show mini menu & posting etiquette (beginner_level)>"
+
+# type: Plain text
+#: ../tin.1:1531 ../tin.5:1262
+msgid ""
+"If set ON a mini menu of the most useful commands will be displayed at the "
+"bottom of the screen for each level. Also a short posting etiquette will be "
+"displayed after composing an article. Default is ON."
+msgstr ""
+"If set ON a mini menu of the most useful commands will be displayed at the "
+"bottom of the screen for each level. Also a short posting etiquette will be "
+"displayed after composing an article. Default is ON."
+
+# type: TP
+#: ../tin.1:1531
+#, no-wrap
+msgid "B<Cache NNTP overview files locally (cache_overview_files)>"
+msgstr "B<Cache NNTP overview files locally (cache_overview_files)>"
+
+# type: Plain text
+#: ../tin.1:1536
+msgid ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"See also \"INDEX FILES\". Default is OFF."
+msgstr ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"See also \"INDEX FILES\". Default is OFF."
+
+# type: TP
+#: ../tin.1:1536
+#, no-wrap
+msgid "B<Catchup read groups when quitting (catchup_read_groups)>"
+msgstr "B<Catchup read groups when quitting (catchup_read_groups)>"
+
+# type: Plain text
+#: ../tin.1:1542 ../tin.5:1271
+msgid ""
+"If set ON the user is asked when quitting if all groups read during the "
+"current session should be marked read. Default is OFF."
+msgstr ""
+"If set ON the user is asked when quitting if all groups read during the "
+"current session should be marked read. Default is OFF."
+
+# type: TP
+#: ../tin.1:1542
+#, no-wrap
+msgid "B<Standard background color (col_back)>"
+msgstr "B<Standard background colour (col_back)>"
+
+# type: Plain text
+#: ../tin.1:1545 ../tin.5:1274
+msgid "Standard background color"
+msgstr "Standard background colour"
+
+# type: TP
+#: ../tin.1:1545
+#, no-wrap
+msgid "B<Color of sender (From:) (col_from)>"
+msgstr "B<Colour of sender (From:) (col_from)>"
+
+# type: Plain text
+#: ../tin.1:1548 ../tin.5:1277
+msgid "Color of sender (From:)"
+msgstr "Colour of sender (From:)"
+
+# type: TP
+#: ../tin.1:1548
+#, no-wrap
+msgid "B<Color of article header lines (col_head)>"
+msgstr "B<Colour of article header lines (col_head)>"
+
+# type: Plain text
+#: ../tin.1:1551 ../tin.5:1280
+msgid "Color of header-lines"
+msgstr "Colour of header-lines"
+
+# type: TP
+#: ../tin.1:1551
+#, no-wrap
+msgid "B<Color of help text (col_help)>"
+msgstr "B<Colour of help text (col_help)>"
+
+# type: Plain text
+#: ../tin.1:1554 ../tin.5:1283
+msgid "Color of help pages"
+msgstr "Colour of help pages"
+
+# type: TP
+#: ../tin.1:1554
+#, no-wrap
+msgid "B<Color for inverse text (background) (col_invers_bg)>"
+msgstr "B<Colour for inverse text (background) (col_invers_bg)>"
+
+# type: Plain text
+#: ../tin.1:1557 ../tin.5:1286
+msgid "Color of background for inverse text"
+msgstr "Colour of background for inverse text"
+
+# type: TP
+#: ../tin.1:1557
+#, no-wrap
+msgid "B<Color for inverse text (foreground) (col_invers_fg)>"
+msgstr "B<Colour for inverse text (foreground) (col_invers_fg)>"
+
+# type: Plain text
+#: ../tin.1:1560 ../tin.5:1289
+msgid "Color of foreground for inverse text"
+msgstr "Colour of foreground for inverse text"
+
+# type: TP
+#: ../tin.1:1560
+#, no-wrap
+msgid "B<Color of highlighting with _dash_ (col_markdash)>"
+msgstr "B<Colour of highlighting with _dash_ (col_markdash)>"
+
+# type: Plain text
+#: ../tin.1:1564 ../tin.5:1293
+msgid ""
+"Color of words emphasized like _this_. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Colour of words emphasized like _this_. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1564
+#, no-wrap
+msgid "B<Color of highlighting with /slash/ (col_markslash)>"
+msgstr "B<Colour of highlighting with /slash/ (col_markslash)>"
+
+# type: Plain text
+#: ../tin.1:1568 ../tin.5:1297
+msgid ""
+"Color of words emphasized like /this/. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Colour of words emphasized like /this/. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1568
+#, no-wrap
+msgid "B<Color of highlighting with *stars* (col_markstar)>"
+msgstr "B<Colour of highlighting with *stars* (col_markstar)>"
+
+# type: Plain text
+#: ../tin.1:1572 ../tin.5:1301
+msgid ""
+"Color of words emphasized like *this*. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Colour of words emphasized like *this*. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1572
+#, no-wrap
+msgid "B<Color of highlighting with -stroke- (col_markstroke)>"
+msgstr "B<Colour of highlighting with -stroke- (col_markstroke)>"
+
+# type: Plain text
+#: ../tin.1:1576 ../tin.5:1305
+msgid ""
+"Color of words emphasized like -this-. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Colour of words emphasized like -this-. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1576
+#, no-wrap
+msgid "B<Color of mini help menu (col_minihelp)>"
+msgstr "B<Colour of mini help menu (col_minihelp)>"
+
+# type: Plain text
+#: ../tin.1:1579 ../tin.5:1308
+msgid "Color of mini help menu"
+msgstr "Colour of mini help menu"
+
+# type: TP
+#: ../tin.1:1579
+#, no-wrap
+msgid "B<Color of actual news header fields (col_newsheaders)>"
+msgstr "B<Colour of actual news header fields (col_newsheaders)>"
+
+# type: Plain text
+#: ../tin.1:1582 ../tin.5:1311
+msgid "Color of actual news header fields"
+msgstr "Colour of actual news header fields"
+
+# type: TP
+#: ../tin.1:1582
+#, no-wrap
+msgid "B<Standard foreground color (col_normal)>"
+msgstr "B<Standard foreground colour (col_normal)>"
+
+# type: Plain text
+#: ../tin.1:1585 ../tin.5:1314
+msgid "Standard foreground color"
+msgstr "Standard foreground colour"
+
+# type: TP
+#: ../tin.1:1585
+#, no-wrap
+msgid "B<Color of quoted lines (col_quote)>"
+msgstr "B<Colour of quoted lines (col_quote)>"
+
+# type: Plain text
+#: ../tin.1:1588 ../tin.5:1317
+msgid "Color of quoted lines"
+msgstr "Colour of quoted lines"
+
+# type: TP
+#: ../tin.1:1588
+#, no-wrap
+msgid "B<Color of twice quoted line (col_quote2)>"
+msgstr "B<Colour of twice quoted line (col_quote2)>"
+
+# type: Plain text
+#: ../tin.1:1591 ../tin.5:1320
+msgid "Color of twice quoted lines"
+msgstr "Colour of twice quoted lines"
+
+# type: TP
+#: ../tin.1:1591
+#, no-wrap
+msgid "B<Color of =E<gt>3 times quoted line (col_quote3)>"
+msgstr "B<Colour of =E<gt>3 times quoted line (col_quote3)>"
+
+# type: Plain text
+#: ../tin.1:1594 ../tin.5:1323
+msgid "Color of E<gt>=3 times quoted lines"
+msgstr "Colour of E<gt>=3 times quoted lines"
+
+# type: TP
+#: ../tin.1:1594
+#, no-wrap
+msgid "B<Color of response counter (col_response)>"
+msgstr "B<Colour of response counter (col_response)>"
+
+# type: Plain text
+#: ../tin.1:1598
+msgid ""
+"Color of response counter. This is the text that says \"Response x of y\" in "
+"the article viewer."
+msgstr ""
+"Colour of response counter. This is the text that says \"Response x of y\" "
+"in the article viewer."
+
+# type: TP
+#: ../tin.1:1598
+#, no-wrap
+msgid "B<Color of signatures (col_signature)>"
+msgstr "B<Colour of signatures (col_signature)>"
+
+# type: Plain text
+#: ../tin.1:1601 ../tin.5:1330
+msgid "Color of signatures"
+msgstr "Colour of signatures"
+
+# type: TP
+#: ../tin.1:1601
+#, no-wrap
+msgid "B<Color of urls highlight (col_urls)>"
+msgstr "B<Colour of urls highlight (col_urls)>"
+
+# type: Plain text
+#: ../tin.1:1604 ../tin.5:1333
+msgid "Color of urls highlight"
+msgstr "Colour of urls highlight"
+
+# type: TP
+#: ../tin.1:1604
+#, no-wrap
+msgid "B<Color of verbatim blocks (col_verbatim)>"
+msgstr "B<Colour of verbatim blocks (col_verbatim)>"
+
+# type: Plain text
+#: ../tin.1:1607 ../tin.5:1336
+msgid "Color of verbatim blocks"
+msgstr "Colour of verbatim blocks"
+
+# type: TP
+#: ../tin.1:1607
+#, no-wrap
+msgid "B<Color of article subject lines (col_subject)>"
+msgstr "B<Colour of article subject lines (col_subject)>"
+
+# type: Plain text
+#: ../tin.1:1610 ../tin.5:1339
+msgid "Color of article subject"
+msgstr "Colour of article subject"
+
+# type: TP
+#: ../tin.1:1610
+#, no-wrap
+msgid "B<Color of text lines (col_text)>"
+msgstr "B<Colour of text lines (col_text)>"
+
+# type: Plain text
+#: ../tin.1:1613 ../tin.5:1342
+msgid "Color of text-lines"
+msgstr "Colour of text-lines"
+
+# type: TP
+#: ../tin.1:1613
+#, no-wrap
+msgid "B<Color of help/mail sign (col_title)>"
+msgstr "B<Colour of help/mail sign (col_title)>"
+
+# type: Plain text
+#: ../tin.1:1616 ../tin.5:1345
+msgid "Color of help/mail sign"
+msgstr "Colour of help/mail sign"
+
+# type: TP
+#: ../tin.1:1616
+#, no-wrap
+msgid "B<Which actions require confirmation (confirm_choice)>"
+msgstr "B<Which actions require confirmation (confirm_choice)>"
+
+# type: Plain text
+#: ../tin.1:1619
+msgid "Ask for manual confirmation to protect the user."
+msgstr "Ask for manual confirmation to protect the user."
+
+# type: IP
+#: ../tin.1:1620 ../tin.1:1626 ../tin.1:1630
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+# type: Plain text
+#.  TODO: check if all affected commands are marked [after confirmation]
+#: ../tin.1:1626
+msgid ""
+"B<commands> Ask for confirmation before executing certain dangerous commands "
+"(e.g., B<Catchup> ('B<c>')). Commands that this affects are marked in this "
+"manual with '[after confirmation]'. Default is commands & quit."
+msgstr ""
+"B<commands> Ask for confirmation before executing certain dangerous commands "
+"(e.g., B<Catchup> ('B<c>')). Commands that this affects are marked in this "
+"manual with '[after confirmation]'. Default is commands & quit."
+
+# type: Plain text
+#: ../tin.1:1630
+msgid ""
+"B<quit> You'll be asked to confirm that you wish to exit B<tin> when you use "
+"the B<Quit> ('B<q>') command."
+msgstr ""
+"B<quit> You'll be asked to confirm that you wish to exit B<tin> when you use "
+"the B<Quit> ('B<q>') command."
+
+# type: Plain text
+#: ../tin.1:1634
+msgid ""
+"B<select> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+msgstr ""
+"B<select> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+
+# type: TP
+#: ../tin.1:1635
+#, no-wrap
+msgid "B<Format string for display of dates (date_format)>"
+msgstr "B<Format string for display of dates (date_format)>"
+
+#
+# type: Plain text
+#.  most of these default_* settings are not available from the menu
+#.  as they are intended for internal use only.
+#: ../tin.1:1647
+msgid ""
+"Format string B<tin> uses for date representation. A description of the "
+"different format options can be found at B<strftime>(3).  B<tin> uses "
+"B<strftime>(3)  when available and supports most format options in his "
+"fallback code.  Default is \"%a, %d %b %Y %H:%M:%S\"."
+msgstr ""
+"Format string B<tin> uses for date representation. A description of the "
+"different format options can be found at B<strftime>(3).  B<tin> uses "
+"B<strftime>(3)  when available and supports most format options in his "
+"fallback code.  Default is \"%a, %d %b %Y %H:%M:%S\"."
+
+# type: TP
+#: ../tin.1:1647
+#, no-wrap
+msgid "B<(default_art_search)>"
+msgstr "B<(default_art_search)>"
+
+# type: TP
+#: ../tin.1:1649
+#, no-wrap
+msgid "B<(default_author_search)>"
+msgstr "B<(default_author_search)>"
+
+# type: TP
+#: ../tin.1:1651
+#, no-wrap
+msgid "B<(default_config_search)>"
+msgstr "B<(default_config_search)>"
+
+# type: Plain text
+#: ../tin.1:1654 ../tin.5:1384
+msgid "The last article/author/config option that was searched for."
+msgstr "The last article/author/config option that was searched for."
+
+# type: TP
+#: ../tin.1:1654
+#, no-wrap
+msgid "B<(default_filter_days)>"
+msgstr "B<(default_filter_days)>"
+
+# type: Plain text
+#: ../tin.1:1657 ../tin.5:1387
+msgid "Default is 28."
+msgstr "Default is 28."
+
+# type: TP
+#: ../tin.1:1657
+#, no-wrap
+msgid "B<(default_filter_kill_case)>"
+msgstr "B<(default_filter_kill_case)>"
+
+# type: Plain text
+#: ../tin.1:1661
+msgid ""
+"Default for quick (1 key) kill filter case.  ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+msgstr ""
+"Default for quick (1 key) kill filter case.  ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+
+# type: TP
+#: ../tin.1:1661
+#, no-wrap
+msgid "B<(default_filter_kill_expire)>"
+msgstr "B<(default_filter_kill_expire)>"
+
+# type: Plain text
+#: ../tin.1:1666
+msgid ""
+"Default for quick (1 key) kill filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire. Default is OFF."
+msgstr ""
+"Default for quick (1 key) kill filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire. Default is OFF."
+
+# type: TP
+#: ../tin.1:1666
+#, no-wrap
+msgid "B<(default_filter_kill_global)>"
+msgstr "B<(default_filter_kill_global)>"
+
+# type: Plain text
+#: ../tin.1:1670
+msgid ""
+"Default for quick (1 key) kill filter global.  ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+msgstr ""
+"Default for quick (1 key) kill filter global.  ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+
+# type: TP
+#: ../tin.1:1670
+#, no-wrap
+msgid "B<(default_filter_kill_header)>"
+msgstr "B<(default_filter_kill_header)>"
+
+# type: Plain text
+#: ../tin.1:1673 ../tin.5:1402
+msgid "Default for quick (1 key) kill filter header."
+msgstr "Default for quick (1 key) kill filter header."
+
+# type: IP
+#: ../tin.1:1674 ../tin.1:1708 ../tin.1:1839 ../tin.1:2009 ../tin.1:2052
+#: ../tin.1:2164 ../tin.1:2190 ../tin.1:2241 ../tin.1:2271 ../tin.1:2342
+#: ../tin.1:2370 ../tin.1:2390 ../tin.1:2478 ../tin.5:1555 ../tin.5:1744
+#: ../tin.5:1793 ../tin.5:1924 ../tin.5:1950 ../tin.5:2003 ../tin.5:2032
+#: ../tin.5:2113 ../tin.5:2133 ../tin.5:2229
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+# type: Plain text
+#: ../tin.1:1676 ../tin.1:1710
+#, no-wrap
+msgid " ''Subject:'' (case sensitive)\n"
+msgstr " ''Subject:'' (case sensitive)\n"
+
+# type: IP
+#: ../tin.1:1676 ../tin.1:1710 ../tin.1:1845 ../tin.1:2011 ../tin.1:2054
+#: ../tin.1:2166 ../tin.1:2192 ../tin.1:2243 ../tin.1:2273 ../tin.1:2344
+#: ../tin.1:2372 ../tin.1:2392 ../tin.1:2480 ../tin.5:1562 ../tin.5:1746
+#: ../tin.5:1795 ../tin.5:1844 ../tin.5:1926 ../tin.5:1952 ../tin.5:2005
+#: ../tin.5:2034 ../tin.5:2115 ../tin.5:2135 ../tin.5:2231
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+# type: Plain text
+#: ../tin.1:1678 ../tin.1:1712
+#, no-wrap
+msgid " ''Subject:'' (ignore case)\n"
+msgstr " ''Subject:'' (ignore case)\n"
+
+# type: IP
+#: ../tin.1:1678 ../tin.1:1712 ../tin.1:1850 ../tin.1:2013 ../tin.1:2058
+#: ../tin.1:2169 ../tin.1:2196 ../tin.1:2245 ../tin.1:2276 ../tin.1:2346
+#: ../tin.1:2374 ../tin.1:2394 ../tin.1:2482 ../tin.5:1567 ../tin.5:1748
+#: ../tin.5:1800 ../tin.5:1848 ../tin.5:1929 ../tin.5:1956 ../tin.5:2007
+#: ../tin.5:2037 ../tin.5:2117 ../tin.5:2137 ../tin.5:2233
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+# type: Plain text
+#: ../tin.1:1680 ../tin.1:1714
+#, no-wrap
+msgid " ''From:'' (case sensitive)\n"
+msgstr " ''From:'' (case sensitive)\n"
+
+# type: IP
+#: ../tin.1:1680 ../tin.1:1714 ../tin.1:2015 ../tin.1:2172 ../tin.1:2200
+#: ../tin.1:2247 ../tin.1:2278 ../tin.1:2348 ../tin.1:2396 ../tin.5:1750
+#: ../tin.5:1932 ../tin.5:1960 ../tin.5:2009 ../tin.5:2039 ../tin.5:2139
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+# type: Plain text
+#: ../tin.1:1682 ../tin.1:1716
+#, no-wrap
+msgid " ''From:'' (ignore case)\n"
+msgstr " ''From:'' (ignore case)\n"
+
+# type: IP
+#: ../tin.1:1682 ../tin.1:1716 ../tin.1:2017 ../tin.1:2249 ../tin.1:2280
+#: ../tin.1:2351 ../tin.1:2398 ../tin.5:1752 ../tin.5:1854 ../tin.5:2011
+#: ../tin.5:2041 ../tin.5:2141
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+# type: Plain text
+#: ../tin.1:1684 ../tin.1:1718
+#, no-wrap
+msgid " ''Message-ID:'' & full ''References:'' line\n"
+msgstr " ''Message-ID:'' & full ''References:'' line\n"
+
+# type: IP
+#: ../tin.1:1684 ../tin.1:1718 ../tin.1:2251 ../tin.1:2353 ../tin.1:2401
+#: ../tin.5:2013 ../tin.5:2144
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+# type: Plain text
+#: ../tin.1:1686 ../tin.1:1720
+#, no-wrap
+msgid " ''Message-ID:'' & last ''References:'' entry only\n"
+msgstr " ''Message-ID:'' & last ''References:'' entry only\n"
+
+# type: IP
+#: ../tin.1:1686 ../tin.1:1720 ../tin.1:2253 ../tin.1:2403 ../tin.5:2015
+#: ../tin.5:2146
+#, no-wrap
+msgid "6"
+msgstr "6"
+
+# type: Plain text
+#: ../tin.1:1688 ../tin.1:1722
+#, no-wrap
+msgid " ''Message-ID:'' entry only\n"
+msgstr " ''Message-ID:'' entry only\n"
+
+# type: IP
+#: ../tin.1:1688 ../tin.1:1722 ../tin.1:2256 ../tin.1:2405 ../tin.5:2018
+#: ../tin.5:2148
+#, no-wrap
+msgid "7"
+msgstr "7"
+
+# type: Plain text
+#: ../tin.1:1690 ../tin.1:1724
+#, no-wrap
+msgid " ''Lines:''\n"
+msgstr " ''Lines:''\n"
+
+# type: TP
+#: ../tin.1:1691
+#, no-wrap
+msgid "B<(default_filter_select_case)>"
+msgstr "B<(default_filter_select_case)>"
+
+# type: Plain text
+#: ../tin.1:1695 ../tin.5:1419
+msgid ""
+"Default for quick (1 key) auto-selection filter case. ON=filter case "
+"sensitive, OFF=ignore case. Default is OFF."
+msgstr ""
+"Default for quick (1 key) auto-selection filter case. ON=filter case "
+"sensitive, OFF=ignore case. Default is OFF."
+
+# type: TP
+#: ../tin.1:1695
+#, no-wrap
+msgid "B<(default_filter_select_expire)>"
+msgstr "B<(default_filter_select_expire)>"
+
+# type: Plain text
+#: ../tin.1:1700
+msgid ""
+"Default for quick (1 key) auto-selection filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire.  Default is OFF."
+msgstr ""
+"Default for quick (1 key) auto-selection filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire.  Default is OFF."
+
+# type: TP
+#: ../tin.1:1700
+#, no-wrap
+msgid "B<(default_filter_select_global)>"
+msgstr "B<(default_filter_select_global)>"
+
+# type: Plain text
+#: ../tin.1:1704
+msgid ""
+"Default for quick (1 key) auto-selection filter global.  ON=apply to all "
+"groups OFF=apply to current group. Default is ON."
+msgstr ""
+"Default for quick (1 key) auto-selection filter global.  ON=apply to all "
+"groups OFF=apply to current group. Default is ON."
+
+# type: TP
+#: ../tin.1:1704
+#, no-wrap
+msgid "B<(default_filter_select_header)>"
+msgstr "B<(default_filter_select_header)>"
+
+# type: Plain text
+#: ../tin.1:1707 ../tin.5:1430
+msgid "Default for quick (1 key) auto-selection filter header."
+msgstr "Default for quick (1 key) auto-selection filter header."
+
+# type: TP
+#: ../tin.1:1725
+#, no-wrap
+msgid "B<(default_goto_group)>"
+msgstr "B<(default_goto_group)>"
+
+# type: TP
+#: ../tin.1:1727
+#, no-wrap
+msgid "B<(default_group_search)>"
+msgstr "B<(default_group_search)>"
+
+# type: TP
+#: ../tin.1:1729
+#, no-wrap
+msgid "B<(default_mail_address)>"
+msgstr "B<(default_mail_address)>"
+
+# type: TP
+#: ../tin.1:1731
+#, no-wrap
+msgid "B<(default_move_group)>"
+msgstr "B<(default_move_group)>"
+
+# type: TP
+#: ../tin.1:1733
+#, no-wrap
+msgid "B<(default_pattern)>"
+msgstr "B<(default_pattern)>"
+
+# type: TP
+#: ../tin.1:1735
+#, no-wrap
+msgid "B<(default_pipe_command)>"
+msgstr "B<(default_pipe_command)>"
+
+# type: TP
+#: ../tin.1:1737
+#, no-wrap
+msgid "B<(default_post_newsgroups)>"
+msgstr "B<(default_post_newsgroups)>"
+
+# type: TP
+#: ../tin.1:1739
+#, no-wrap
+msgid "B<(default_post_subject)>"
+msgstr "B<(default_post_subject)>"
+
+# type: TP
+#: ../tin.1:1741
+#, no-wrap
+msgid "B<(default_range_group)>"
+msgstr "B<(default_range_group)>"
+
+# type: TP
+#: ../tin.1:1743
+#, no-wrap
+msgid "B<(default_range_select)>"
+msgstr "B<(default_range_select)>"
+
+# type: TP
+#: ../tin.1:1745
+#, no-wrap
+msgid "B<(default_range_thread)>"
+msgstr "B<(default_range_thread)>"
+
+# type: TP
+#: ../tin.1:1747
+#, no-wrap
+msgid "B<(default_repost_group)>"
+msgstr "B<(default_repost_group)>"
+
+# type: TP
+#: ../tin.1:1749
+#, no-wrap
+msgid "B<(default_save_file)>"
+msgstr "B<(default_save_file)>"
+
+# type: TP
+#: ../tin.1:1751
+#, no-wrap
+msgid "B<(default_save_mode)>"
+msgstr "B<(default_save_mode)>"
+
+# type: TP
+#: ../tin.1:1753
+#, no-wrap
+msgid "B<(default_select_pattern)>"
+msgstr "B<(default_select_pattern)>"
+
+# type: TP
+#: ../tin.1:1755
+#, no-wrap
+msgid "B<(default_shell_command)>"
+msgstr "B<(default_shell_command)>"
+
+# type: TP
+#: ../tin.1:1757
+#, no-wrap
+msgid "B<(default_subject_search)>"
+msgstr "B<(default_subject_search)>"
+
+# type: TP
+#: ../tin.1:1759
+#, no-wrap
+msgid "B<Draw -E<gt> instead of highlighted bar (draw_arrow)>"
+msgstr "B<Draw -E<gt> instead of highlighted bar (draw_arrow)>"
+
+# type: Plain text
+#: ../tin.1:1763
+msgid ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF. Default is OFF."
+msgstr ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF. Default is OFF."
+
+# type: TP
+#: ../tin.1:1763
+#, no-wrap
+msgid "B<Invocation of your editor (editor_format)>"
+msgstr "B<Invocation of your editor (editor_format)>"
+
+# type: Plain text
+#: ../tin.1:1767
+msgid ""
+"The format string used to create the editor start command with parameters.  "
+"Default is \"%E +%N %F\" (i.e., /bin/vi +7 .article)."
+msgstr ""
+"The format string used to create the editor start command with parameters.  "
+"Default is \"%E +%N %F\" (i.e., /bin/vi +7 .article)."
+
+# type: TP
+#: ../tin.1:1767
+#, no-wrap
+msgid "B<Force redraw after certain commands (force_screen_redraw)>"
+msgstr "B<Force redraw after certain commands (force_screen_redraw)>"
+
+# type: Plain text
+#: ../tin.1:1771 ../tin.5:1490
+msgid ""
+"Specifies whether a screen redraw should always be done after certain "
+"external commands. Default is OFF."
+msgstr ""
+"Specifies whether a screen redraw should always be done after certain "
+"external commands. Default is OFF."
+
+# type: TP
+#: ../tin.1:1771
+#, no-wrap
+msgid "B<Number of articles to get (getart_limit)>"
+msgstr "B<Number of articles to get (getart_limit)>"
+
+# type: Plain text
+#: ../tin.1:1777
+msgid ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin> will start "
+"fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+msgstr ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin> will start "
+"fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+
+# type: TP
+#: ../tin.1:1777
+#, no-wrap
+msgid "B<Catchup group using left key (group_catchup_on_exit)>"
+msgstr "B<Catchup group using left key (group_catchup_on_exit)>"
+
+# type: Plain text
+#: ../tin.1:1780 ../tin.5:1508
+msgid ""
+"If ON catchup group when leaving with the left arrow key. Default is ON."
+msgstr ""
+"If ON catchup group when leaving with the left arrow key. Default is ON."
+
+# type: TP
+#: ../tin.1:1780
+#, no-wrap
+msgid "B<Go to the next unread article with (goto_next_unread)>"
+msgstr "B<Go to the next unread article with (goto_next_unread)>"
+
+# type: Plain text
+#: ../tin.1:1788 ../tin.5:1505
+msgid ""
+"Which keys B<tin> should accept to jump to the next unread article.  "
+"Possible is any combination of B<PageDown> and B<PageNextUnread>.  When "
+"B<PageDown> is set B<tin> jumps to the next article at the end of the "
+"current one. When B<PageNextUnread> is set B<tin> jumps immediately to the "
+"next article when B<PageNextUnread> ('B<E<lt>TABE<gt>>')  is pressed. "
+"Default is PageNextUnread."
+msgstr ""
+"Which keys B<tin> should accept to jump to the next unread article.  "
+"Possible is any combination of B<PageDown> and B<PageNextUnread>.  When "
+"B<PageDown> is set B<tin> jumps to the next article at the end of the "
+"current one. When B<PageNextUnread> is set B<tin> jumps immediately to the "
+"next article when B<PageNextUnread> ('B<E<lt>TABE<gt>>')  is pressed. "
+"Default is PageNextUnread."
+
+# type: TP
+#: ../tin.1:1788
+#, no-wrap
+msgid "B<Max. length of group names shown (groupname_max_length)>"
+msgstr "B<Max. length of group names shown (groupname_max_length)>"
+
+# type: Plain text
+#: ../tin.1:1792 ../tin.5:1512
+msgid ""
+"Maximum length of the names of newsgroups to be displayed so that more of "
+"the newsgroup description can be displayed. Default is 32."
+msgstr ""
+"Maximum length of the names of newsgroups to be displayed so that more of "
+"the newsgroup description can be displayed. Default is 32."
+
+# type: TP
+#: ../tin.1:1792
+#, no-wrap
+msgid "B<Display uue data as an attachment (hide_uue)>"
+msgstr "B<Display uue data as an attachment (hide_uue)>"
+
+# type: Plain text
+#: ../tin.1:1801
+msgid ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment). If set to 'Hide all' "
+"then any line that looks like uuencoded data will be folded into a tag "
+"line.  This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer. Default is 'No'."
+msgstr ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment). If set to 'Hide all' "
+"then any line that looks like uuencoded data will be folded into a tag "
+"line.  This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer. Default is 'No'."
+
+# type: TP
+#: ../tin.1:1801
+#, no-wrap
+msgid "B<External inews (inews_prog)>"
+msgstr "B<External inews (inews_prog)>"
+
+# type: Plain text
+#: ../tin.1:1808
+msgid ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is --internal (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+msgstr ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is --internal (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+
+# type: TP
+#: ../tin.1:1808
+#, no-wrap
+msgid "B<(info_in_last_line)>"
+msgstr "B<(info_in_last_line)>"
+
+# type: Plain text
+#.  this is missing from the Menu
+#: ../tin.1:1815
+msgid ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>')  toggles "
+"setting. This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+msgstr ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>')  toggles "
+"setting. This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+
+# type: TP
+#: ../tin.1:1815
+#, no-wrap
+msgid "B<Use interactive mail reader (interactive_mailer)>"
+msgstr "B<Use interactive mail reader (interactive_mailer)>"
+
+# type: Plain text
+#: ../tin.1:1822
+msgid ""
+"Interactive mailreader: if greater than 0 your mailreader will be invoked "
+"earlier for reply so you can use more of its features (e.g. MIME, pgp, ...). "
+"1 means include headers, 2 means don't include headers (old "
+"use_mailreader_i=ON option). 0 turns off usage. This option has to suit "
+"B<mailer_format>. Default is 0."
+msgstr ""
+"Interactive mailreader: if greater than 0 your mailreader will be invoked "
+"earlier for reply so you can use more of its features (e.g. MIME, pgp, ...). "
+"1 means include headers, 2 means don't include headers (old "
+"use_mailreader_i=ON option). 0 turns off usage. This option has to suit "
+"B<mailer_format>. Default is 0."
+
+# type: TP
+#.  TODO: fix menu description
+#.        mono_mark* currently do allow "Reverse video" even if
+#.        inverse_okay=FALSE
+#: ../tin.1:1822
+#, no-wrap
+msgid "B<Use inverse video for page headers (inverse_okay)>"
+msgstr "B<Use inverse video for page headers (inverse_okay)>"
+
+# type: Plain text
+#: ../tin.1:1829 ../tin.5:1545
+msgid ""
+"If ON use inverse video for page headers and URL highlighting.  Default is "
+"ON."
+msgstr ""
+"If ON use inverse video for page headers and URL highlighting.  Default is "
+"ON."
+
+# type: TP
+#: ../tin.1:1829
+#, no-wrap
+msgid "B<Keep failed arts in ~/dead.articles (keep_dead_articles)>"
+msgstr "B<Keep failed arts in ~/dead.articles (keep_dead_articles)>"
+
+# type: Plain text
+#: ../tin.1:1834 ../tin.5:1550
+msgid ""
+"If ON keep all failed postings in I<${TIN_HOMEDIR:-\"$HOME\"}/dead.articles> "
+"besides keeping the last failed posting in I<${TIN_HOMEDIR:-\"$HOME\"}/dead."
+"article>. Default is ON."
+msgstr ""
+"If ON keep all failed postings in I<${TIN_HOMEDIR:-\"$HOME\"}/dead.articles> "
+"besides keeping the last failed posting in I<${TIN_HOMEDIR:-\"$HOME\"}/dead."
+"article>. Default is ON."
+
+# type: TP
+#: ../tin.1:1834
+#, no-wrap
+msgid "B<Filter which articles (kill_level)>"
+msgstr "B<Filter which articles (kill_level)>"
+
+# type: Plain text
+#: ../tin.1:1838
+msgid ""
+"This option controls the processing and display of articles that are "
+"killed.  There are 3 options:"
+msgstr ""
+"This option controls the processing and display of articles that are "
+"killed.  There are 3 options:"
+
+# type: Plain text
+#: ../tin.1:1845
+msgid ""
+"B<Kill only unread arts> is the 'traditional' behavior of B<tin>. Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+msgstr ""
+"B<Kill only unread arts> is the 'traditional' behaviour of B<tin>. Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+
+# type: Plain text
+#: ../tin.1:1850 ../tin.5:1567
+msgid ""
+"B<Kill all arts & show with K> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles are threaded as normal but they will be marked with "
+"B<art_marked_killed>."
+msgstr ""
+"B<Kill all arts & show with K> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles are threaded as normal but they will be marked with "
+"B<art_marked_killed>."
+
+# type: Plain text
+#: ../tin.1:1854 ../tin.5:1571
+msgid ""
+"B<Kill all arts and never show> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles simply does not get displayed at all."
+msgstr ""
+"B<Kill all arts and never show> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles simply does not get displayed at all."
+
+# type: Plain text
+#: ../tin.1:1856
+msgid "Default is 0 (B<Kill only unread arts>)."
+msgstr "Default is 0 (B<Kill only unread arts>)."
+
+# type: TP
+#: ../tin.1:1856
+#, no-wrap
+msgid "B<Use 8bit characters in mail headers (mail_8bit_header)>"
+msgstr "B<Use 8bit characters in mail headers (mail_8bit_header)>"
+
+# type: Plain text
+#: ../tin.1:1862 ../tin.5:1578
+msgid ""
+"Allows 8bit characters unencoded in the header of mail message. Default is "
+"OFF. Turning it ON is effective only if B<mail_mime_encoding> is also set to "
+"8bit. Leaving it OFF is safe for most users and compliant to Internet Mail "
+"Standard (B<RFC5322> and B<RFC2047>). Default is OFF."
+msgstr ""
+"Allows 8bit characters unencoded in the header of mail message. Default is "
+"OFF. Turning it ON is effective only if B<mail_mime_encoding> is also set to "
+"8bit. Leaving it OFF is safe for most users and compliant to Internet Mail "
+"Standard (B<RFC5322> and B<RFC2047>). Default is OFF."
+
+# type: TP
+#: ../tin.1:1862
+#, no-wrap
+msgid "B<Mail address (mail_address)>"
+msgstr "B<Mail address (mail_address)>"
+
+# type: Plain text
+#: ../tin.1:1868 ../tin.5:1584
+msgid ""
+"User's mail address (and full name), if not username@host. This is used when "
+"creating articles, sending mail and when B<pgp>(1)  signing."
+msgstr ""
+"User's mail address (and full name), if not username@host. This is used when "
+"creating articles, sending mail and when B<pgp>(1)  signing."
+
+# type: TP
+#: ../tin.1:1868
+#, no-wrap
+msgid "B<MIME encoding in mail messages (mail_mime_encoding)>"
+msgstr "B<MIME encoding in mail messages (mail_mime_encoding)>"
+
+# type: Plain text
+#: ../tin.1:1872 ../tin.5:1588
+msgid ""
+"MIME encoding of the body in mail message, if necessary (8bit, base64, "
+"quoted-printable, 7bit). Default is quoted-printable."
+msgstr ""
+"MIME encoding of the body in mail message, if necessary (8bit, base64, "
+"quoted-printable, 7bit). Default is quoted-printable."
+
+# type: TP
+#: ../tin.1:1872
+#, no-wrap
+msgid "B<Quote line when mailing (mail_quote_format)>"
+msgstr "B<Quote line when mailing (mail_quote_format)>"
+
+# type: Plain text
+#: ../tin.1:1877 ../tin.5:1593
+msgid ""
+"Format of quote line when replying (via mail) to an article (%A=Address, %"
+"D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %"
+"C=Firstname, %I=Initials). Default is \"In article %M you wrote:\""
+msgstr ""
+"Format of quote line when replying (via mail) to an article (%A=Address, %"
+"D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %"
+"C=Firstname, %I=Initials). Default is \"In article %M you wrote:\""
+
+# type: TP
+#: ../tin.1:1877
+#, no-wrap
+msgid "B<Format of the mailbox (mailbox_format)>"
+msgstr "B<Format of the mailbox (mailbox_format)>"
+
+# type: Plain text
+#: ../tin.1:1885
+msgid ""
+"Select one of the following mailbox-formats: MBOXO (default, except for "
+"SCO), MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on "
+"MBOXO and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+msgstr ""
+"Select one of the following mailbox-formats: MBOXO (default, except for "
+"SCO), MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on "
+"MBOXO and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+
+# type: TP
+#: ../tin.1:1885
+#, no-wrap
+msgid "B<Mail directory (maildir)>"
+msgstr "B<Mail directory (maildir)>"
+
+# type: Plain text
+#: ../tin.1:1894
+msgid ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  format. "
+"This feature is mainly for use with the B<elm>(1)  mail program. It allows "
+"the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to.  Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  format. "
+"This feature is mainly for use with the B<elm>(1)  mail program. It allows "
+"the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to.  Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+
+# type: TP
+#: ../tin.1:1894
+#, no-wrap
+msgid "B<Invocation of your mail command (mailer_format)>"
+msgstr "B<Invocation of your mail command (mailer_format)>"
+
+# type: Plain text
+#.  TODO: document %S, %T, %M, %F, %U ...
+#: ../tin.1:1903
+msgid ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %"
+"F' (e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows "
+"other mailers with different command-line parameters to be used such as 'elm "
+"-s \"%S\" \"%T\" E<lt> \"%F\"' (e.g., elm -s \"subject\" \"iain\" E<lt> ."
+"article) or 'sendmail -oi -oem -t E<lt> %F' (e.g. sendmail -oi -oem -t "
+"E<lt> .article)."
+msgstr ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %"
+"F' (e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows "
+"other mailers with different command-line parameters to be used such as 'elm "
+"-s \"%S\" \"%T\" E<lt> \"%F\"' (e.g., elm -s \"subject\" \"iain\" E<lt> ."
+"article) or 'sendmail -oi -oem -t E<lt> %F' (e.g. sendmail -oi -oem -t "
+"E<lt> .article)."
+
+# type: TP
+#: ../tin.1:1903
+#, no-wrap
+msgid "B<'Mark as (un)read' ignores tags (mark_ignore_tags)>"
+msgstr "B<'Mark as (un)read' ignores tags (mark_ignore_tags)>"
+
+# type: Plain text
+#: ../tin.1:1911 ../tin.5:1647
+msgid ""
+"When this is ON, the B<GroupMarkThdRead> ('B<K>'), B<ThreadMarkArtRead> "
+"('B<K>'), B<MarkThdUnread> ('B<Z>') at Group level and B<MarkArtUnread> "
+"('B<z>') at Thread level functions mark just the current article or thread, "
+"ignoring other tagged, (un)read articles. When OFF, the same function "
+"presents a menu with choices of the current thread or article, all tagged, "
+"unread articles, or nothing."
+msgstr ""
+"When this is ON, the B<GroupMarkThdRead> ('B<K>'), B<ThreadMarkArtRead> "
+"('B<K>'), B<MarkThdUnread> ('B<Z>') at Group level and B<MarkArtUnread> "
+"('B<z>') at Thread level functions mark just the current article or thread, "
+"ignoring other tagged, (un)read articles. When OFF, the same function "
+"presents a menu with choices of the current thread or article, all tagged, "
+"unread articles, or nothing."
+
+# type: TP
+#: ../tin.1:1911
+#, no-wrap
+msgid "B<Mark saved articles/threads as read (mark_saved_read)>"
+msgstr "B<Mark saved articles/threads as read (mark_saved_read)>"
+
+# type: Plain text
+#: ../tin.1:1914 ../tin.5:1639
+msgid "If ON mark articles that are saved as read. Default is ON."
+msgstr "If ON mark articles that are saved as read. Default is ON."
+
+# type: TP
+#: ../tin.1:1914
+#, no-wrap
+msgid "B<Viewer program for MIME articles (metamail_prog)>"
+msgstr "B<Viewer program for MIME articles (metamail_prog)>"
+
+# type: Plain text
+#: ../tin.1:1926
+msgid ""
+"Path, name and options of external B<metamail>(1)  program used to view non-"
+"textual parts of articles.  To use the built-in viewer, set to --internal. "
+"This is the default value when B<metamail>(1)  is not installed. Leave it "
+"blank if you don't want any automatic viewing of non-textual attachments. "
+"The 'V' command can always be used to manually view any attachments.  See "
+"also B<ask_for_metamail>."
+msgstr ""
+"Path, name and options of external B<metamail>(1)  program used to view non-"
+"textual parts of articles.  To use the built-in viewer, set to --internal. "
+"This is the default value when B<metamail>(1)  is not installed. Leave it "
+"blank if you don't want any automatic viewing of non-textual attachments. "
+"The 'V' command can always be used to manually view any attachments.  See "
+"also B<ask_for_metamail>."
+
+# type: TP
+#: ../tin.1:1926
+#, no-wrap
+msgid "B<MM_CHARSET (mm_charset)>"
+msgstr "B<MM_CHARSET (mm_charset)>"
+
+# type: Plain text
+#: ../tin.1:1939
+msgid ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+msgstr ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+
+# type: TP
+#: ../tin.1:1939
+#, no-wrap
+msgid "B<MM_NETWORK_CHARSET (mm_network_charset)>"
+msgstr "B<MM_NETWORK_CHARSET (mm_network_charset)>"
+
+# type: Plain text
+#: ../tin.1:1950
+msgid ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead. B<mm_network_charset> is limited to one of the "
+"following charsets:"
+msgstr ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead. B<mm_network_charset> is limited to one of the "
+"following charsets:"
+
+# type: Plain text
+#: ../tin.1:1953 ../tin.5:1686
+msgid ""
+"US-ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-{R,U,RU} EUC-{CN,JP,"
+"KR,TW}, ISO-2022-{CN,CN-EXT,JP,JP-1,JP-2}, Big5, UTF-8"
+msgstr ""
+"US-ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-{R,U,RU} EUC-{CN,JP,"
+"KR,TW}, ISO-2022-{CN,CN-EXT,JP,JP-1,JP-2}, Big5, UTF-8"
+
+# type: Plain text
+#: ../tin.1:1959 ../tin.5:1692
+msgid ""
+"Not all values might work on your system, see B<iconv_open>(3)  for more "
+"details. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined."
+msgstr ""
+"Not all values might work on your system, see B<iconv_open>(3)  for more "
+"details. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined."
+
+# type: TP
+#: ../tin.1:1959
+#, no-wrap
+msgid "B<Attribute of highlighting with _dash_ (mono_markdash)>"
+msgstr "B<Attribute of highlighting with _dash_ (mono_markdash)>"
+
+# type: Plain text
+#: ../tin.1:1964
+msgid ""
+"Character attribute of words emphasized like _this_. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like _this_. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1964
+#, no-wrap
+msgid "B<Attribute of highlighting with /slash/ (mono_markslash)>"
+msgstr "B<Attribute of highlighting with /slash/ (mono_markslash)>"
+
+# type: Plain text
+#: ../tin.1:1969
+msgid ""
+"Character attribute of words emphasized like /this/. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like /this/. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1969
+#, no-wrap
+msgid "B<Attribute of highlighting with *stars* (mono_markstar)>"
+msgstr "B<Attribute of highlighting with *stars* (mono_markstar)>"
+
+# type: Plain text
+#: ../tin.1:1974
+msgid ""
+"Character attribute of words emphasized like *this*. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like *this*. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1974
+#, no-wrap
+msgid "B<Attribute of highlighting with -stroke- (mono_markstroke)>"
+msgstr "B<Attribute of highlighting with -stroke- (mono_markstroke)>"
+
+# type: Plain text
+#: ../tin.1:1979
+msgid ""
+"Character attribute of words emphasized like -this-. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like -this-. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.1:1979
+#, no-wrap
+msgid "B<(newnews)>"
+msgstr "B<(newnews)>"
+
+# type: Plain text
+#: ../tin.1:1983
+msgid ""
+"These are internal timers used by B<tin> to keep track of new newsgroups.  "
+"Do not change them unless you understand what they are for."
+msgstr ""
+"These are internal timers used by B<tin> to keep track of new newsgroups.  "
+"Do not change them unless you understand what they are for."
+
+# type: TP
+#: ../tin.1:1983
+#, no-wrap
+msgid "B<Display these header fields (or *) (news_headers_to_display)>"
+msgstr "B<Display these header fields (or *) (news_headers_to_display)>"
+
+# type: Plain text
+#: ../tin.1:1990
+msgid ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used.  If "
+"you enter 'X-' as the value, you will see all headers beginning with "
+"'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+msgstr ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used.  If "
+"you enter 'X-' as the value, you will see all headers beginning with "
+"'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+
+# type: TP
+#: ../tin.1:1990
+#, no-wrap
+msgid "B<Do not display these header fields (news_headers_to_not_display)>"
+msgstr "B<Do not display these header fields (news_headers_to_not_display)>"
+
+# type: Plain text
+#: ../tin.1:1999
+msgid ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought X- headers were A Good "
+"Thing(tm), but thought Alan and Pape were miscreants... well then you would "
+"do something like this: I<news_headers_to_display=X-> "
+"I<news_headers_to_not_display=X-Alan X-Pape>.  Not defining anything turns "
+"off this option."
+msgstr ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought X- headers were A Good "
+"Thing(tm), but thought Alan and Pape were miscreants... well then you would "
+"do something like this: I<news_headers_to_display=X-> "
+"I<news_headers_to_not_display=X-Alan X-Pape>.  Not defining anything turns "
+"off this option."
+
+# type: TP
+#: ../tin.1:1999
+#, no-wrap
+msgid "B<Quote line when following up (news_quote_format)>"
+msgstr "B<Quote line when following up (news_quote_format)>"
+
+# type: Plain text
+#: ../tin.1:2004 ../tin.5:1739
+msgid ""
+"Format of quote line when posting/following up an article (%A=Address, %"
+"D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %"
+"C=Firstname, %I=Initials). Default is \"%F wrote:\"."
+msgstr ""
+"Format of quote line when posting/following up an article (%A=Address, %"
+"D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, %"
+"C=Firstname, %I=Initials). Default is \"%F wrote:\"."
+
+# type: TP
+#: ../tin.1:2004
+#, no-wrap
+msgid "B<Unicode normalization form (normalization_form)>"
+msgstr "B<Unicode normalisation form (normalization_form)>"
+
+# type: Plain text
+#: ../tin.1:2008
+msgid ""
+"The normalization form B<tin> should use to normalize unicode input.  The "
+"possible values are:"
+msgstr ""
+"The normalisation form B<tin> should use to normalise unicode input.  The "
+"possible values are:"
+
+# type: Plain text
+#: ../tin.1:2011 ../tin.5:1746
+msgid "B<None>: no normalization"
+msgstr "B<None>: no normalisation"
+
+# type: Plain text
+#: ../tin.1:2013 ../tin.5:1748
+msgid "B<NFKC>: Compatibility Decomposition, followed by Canonical Composition"
+msgstr ""
+"B<NFKC>: Compatibility Decomposition, followed by Canonical Composition"
+
+# type: Plain text
+#: ../tin.1:2015 ../tin.5:1750
+msgid "B<NFKD>: Compatibility Decomposition"
+msgstr "B<NFKD>: Compatibility Decomposition"
+
+# type: Plain text
+#: ../tin.1:2017 ../tin.5:1752
+msgid "B<NFC>: Canonical Decomposition, followed by Canonical Composition"
+msgstr "B<NFC>: Canonical Decomposition, followed by Canonical Composition"
+
+# type: Plain text
+#: ../tin.1:2019 ../tin.5:1754
+msgid "B<NFD>: Canonical Decomposition"
+msgstr "B<NFD>: Canonical Decomposition"
+
+# type: Plain text
+#: ../tin.1:2022
+msgid ""
+"Some normalization modes are only available if they are supported by the "
+"library B<tin> uses to do the normalization. Default is NFKC."
+msgstr ""
+"Some normalisation modes are only available if they are supported by the "
+"library B<tin> uses to do the normalisation. Default is NFKC."
+
+# type: TP
+#: ../tin.1:2022
+#, no-wrap
+msgid "B<Go to first unread article in group (pos_first_unread)>"
+msgstr "B<Go to first unread article in group (pos_first_unread)>"
+
+# type: Plain text
+#: ../tin.1:2026
+msgid ""
+"If ON put cursor at first unread article in group otherwise at last article. "
+"Default is ON."
+msgstr ""
+"If ON put cursor at first unread article in group otherwise at last article. "
+"Default is ON."
+
+# type: TP
+#: ../tin.1:2026
+#, no-wrap
+msgid "B<Use 8bit characters in news headers (post_8bit_header)>"
+msgstr "B<Use 8bit characters in news headers (post_8bit_header)>"
+
+# type: Plain text
+#: ../tin.1:2037 ../tin.5:1774
+msgid ""
+"Allows 8bit characters unencoded in the header of a news article, if set "
+"this also disables the generation of MIME-headers when they are usually "
+"required. Default is OFF. Only enacted if B<post_mime_encoding> is also set "
+"to 8bit. In a number of local hierarchies where 8bit characters are used, "
+"using unencoded (raw)  8bit characters in header is acceptable and sometimes "
+"even recommended so that you need to check the convention adopted in the "
+"local hierarchy of your interest to determine what to do with this and "
+"B<post_mime_encoding>."
+msgstr ""
+"Allows 8bit characters unencoded in the header of a news article, if set "
+"this also disables the generation of MIME-headers when they are usually "
+"required. Default is OFF. Only enacted if B<post_mime_encoding> is also set "
+"to 8bit. In a number of local hierarchies where 8bit characters are used, "
+"using unencoded (raw)  8bit characters in header is acceptable and sometimes "
+"even recommended so that you need to check the convention adopted in the "
+"local hierarchy of your interest to determine what to do with this and "
+"B<post_mime_encoding>."
+
+# type: TP
+#: ../tin.1:2037
+#, no-wrap
+msgid "B<MIME encoding in news messages (post_mime_encoding)>"
+msgstr "B<MIME encoding in news messages (post_mime_encoding)>"
+
+# type: Plain text
+#: ../tin.1:2042
+msgid ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding. base64 "
+"and quoted-printable are usually undesired on usenet."
+msgstr ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding. base64 "
+"and quoted-printable are usually undesired on usenet."
+
+# type: TP
+#: ../tin.1:2042
+#, no-wrap
+msgid "B<View post-processed files (post_process_view)>"
+msgstr "B<View post-processed files (post_process_view)>"
+
+# type: Plain text
+#: ../tin.1:2047
+msgid ""
+"If ON, then B<tin> will start an appropriate viewer program to display any "
+"files that were post processed and uudecoded. The program is determined "
+"using the mailcap file. Default is ON."
+msgstr ""
+"If ON, then B<tin> will start an appropriate viewer program to display any "
+"files that were post processed and uudecoded. The program is determined "
+"using the mailcap file. Default is ON."
+
+# type: TP
+#: ../tin.1:2047
+#, no-wrap
+msgid "B<Post process saved articles (post_process_type)>"
+msgstr "B<Post process saved articles (post_process_type)>"
+
+# type: Plain text
+#: ../tin.1:2051
+msgid ""
+"This specifies whether to perform post processing on saved articles.  The "
+"following values are allowed:"
+msgstr ""
+"This specifies whether to perform post processing on saved articles.  The "
+"following values are allowed:"
+
+# type: Plain text
+#: ../tin.1:2054 ../tin.5:1795
+msgid "B<No> (default), no post processing is done."
+msgstr "B<No> (default), no post processing is done."
+
+# type: Plain text
+#: ../tin.1:2058
+msgid "B<Shell archives>, unpacking of multi-part B<shar>(1)  files only."
+msgstr "B<Shell archives>, unpacking of multi-part B<shar>(1)  files only."
+
+# type: Plain text
+#: ../tin.1:2060 ../tin.5:1802
+msgid "B<Yes>, binary attachments and data will be decoded and saved."
+msgstr "B<Yes>, binary attachments and data will be decoded and saved."
+
+# type: TP
+#: ../tin.1:2061
+#, no-wrap
+msgid "B<Filename to be used for storing posted articles (posted_articles_file)>"
+msgstr "B<Filename to be used for storing posted articles (posted_articles_file)>"
+
+# type: Plain text
+#: ../tin.1:2067 ../tin.5:1809
+msgid ""
+"Keep posted articles in I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/"
+">B<posted_articles_file>.  If no filename is set then postings will not be "
+"saved.  Default is 'posted'."
+msgstr ""
+"Keep posted articles in I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/"
+">B<posted_articles_file>.  If no filename is set then postings will not be "
+"saved.  Default is 'posted'."
+
+# type: TP
+#: ../tin.1:2067
+#, no-wrap
+msgid "B<Print all headers when printing (print_header)>"
+msgstr "B<Print all headers when printing (print_header)>"
+
+# type: Plain text
+#: ../tin.1:2071 ../tin.5:1813
+msgid ""
+"If ON, then the full article header is sent to the printer. Otherwise only "
+"the ''Subject:'' and ''From:'' fields are output. Default is OFF."
+msgstr ""
+"If ON, then the full article header is sent to the printer. Otherwise only "
+"the ''Subject:'' and ''From:'' fields are output. Default is OFF."
+
+# type: TP
+#: ../tin.1:2071
+#, no-wrap
+msgid "B<Printer program with options (printer)>"
+msgstr "B<Printer program with options (printer)>"
+
+# type: Plain text
+#: ../tin.1:2080
+msgid ""
+"The printer program with options that is to be used to print articles.  The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV machines. "
+"Printing from B<tin> may have been disabled by the System Administrator."
+msgstr ""
+"The printer program with options that is to be used to print articles.  The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV machines. "
+"Printing from B<tin> may have been disabled by the System Administrator."
+
+# type: TP
+#: ../tin.1:2080
+#, no-wrap
+msgid "B<Process only unread articles (process_only_unread)>"
+msgstr "B<Process only unread articles (process_only_unread)>"
+
+# type: Plain text
+#: ../tin.1:2084 ../tin.5:1827
+msgid ""
+"If ON only save/print/pipe/mail unread articles (tagged articles excepted).  "
+"Default is OFF."
+msgstr ""
+"If ON only save/print/pipe/mail unread articles (tagged articles excepted).  "
+"Default is OFF."
+
+# type: TP
+#: ../tin.1:2084
+#, no-wrap
+msgid "B<Show empty Followup-To in editor (prompt_followupto)>"
+msgstr "B<Show empty Followup-To in editor (prompt_followupto)>"
+
+# type: Plain text
+#: ../tin.1:2087
+msgid ""
+"If ON show empty ''Followup-To:'' header when editing an article. Default is "
+"OFF."
+msgstr ""
+"If ON show empty ''Followup-To:'' header when editing an article. Default is "
+"OFF."
+
+# type: TP
+#: ../tin.1:2087
+#, no-wrap
+msgid "B<Characters used as quote-marks (quote_chars)>"
+msgstr "B<Characters used as quote-marks (quote_chars)>"
+
+# type: Plain text
+#.  TODO: document %s
+#: ../tin.1:2092 ../tin.5:1837
+msgid ""
+"The character used in quoting included text to article followups and mail "
+"replies. The '_' character represents a blank character and is replaced with "
+"' ' when read. Default is 'E<gt>_'."
+msgstr ""
+"The character used in quoting included text to article followups and mail "
+"replies. The '_' character represents a blank character and is replaced with "
+"' ' when read. Default is 'E<gt>_'."
+
+# type: TP
+#: ../tin.1:2092
+#, no-wrap
+msgid "B<Quoting behavior (quote_style)>"
+msgstr "B<Quoting behaviour (quote_style)>"
+
+# type: Plain text
+#: ../tin.1:2099
+msgid ""
+"How articles should be quoted when following up or replying to them. There "
+"are a number of things that can be done: empty lines can be quoted, "
+"signatures can be quoted and quote_chars can be compressed when quoting "
+"multiple times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). The default is to compress quotes, and to quote empty "
+"lines."
+msgstr ""
+"How articles should be quoted when following up or replying to them. There "
+"are a number of things that can be done: empty lines can be quoted, "
+"signatures can be quoted and quote_chars can be compressed when quoting "
+"multiple times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). The default is to compress quotes, and to quote empty "
+"lines."
+
+# type: Plain text
+#: ../tin.1:2103
+msgid ""
+"When you are viewing an article in raw mode ('B<^H>'), and follow up or "
+"reply to it, the signature will be quoted even if it would otherwise not "
+"be.  If B<show_signatures> is off, then the signature will never be quoted."
+msgstr ""
+"When you are viewing an article in raw mode ('B<^H>'), and follow up or "
+"reply to it, the signature will be quoted even if it would otherwise not "
+"be.  If B<show_signatures> is off, then the signature will never be quoted."
+
+# type: TP
+#: ../tin.1:2103
+#, no-wrap
+msgid "B<Regex used to show quoted lines (quote_regex)>"
+msgstr "B<Regex used to show quoted lines (quote_regex)>"
+
+# type: Plain text
+#: ../tin.1:2108
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2108
+#, no-wrap
+msgid "B<Regex used to show twice quoted l. (quote_regex2)>"
+msgstr "B<Regex used to show twice quoted l. (quote_regex2)>"
+
+# type: Plain text
+#: ../tin.1:2113
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2113
+#, no-wrap
+msgid "B<Regex used to show E<gt>= 3 times q.l. (quote_regex3)>"
+msgstr "B<Regex used to show E<gt>= 3 times q.l. (quote_regex3)>"
+
+# type: Plain text
+#: ../tin.1:2118
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2118
+#, no-wrap
+msgid "B<Article recentness time limit (recent_time)>"
+msgstr "B<Article recentness time limit (recent_time)>"
+
+# type: Plain text
+#: ../tin.1:2122 ../tin.5:1882
+msgid ""
+"If set to 0, this feature is deactivated, otherwise it means the number of "
+"days. Default is 2."
+msgstr ""
+"If set to 0, this feature is deactivated, otherwise it means the number of "
+"days. Default is 2."
+
+# type: TP
+#: ../tin.1:2122
+#, no-wrap
+msgid "B<Render BiDi (render_bidi)>"
+msgstr "B<Render BiDi (render_bidi)>"
+
+# type: Plain text
+#: ../tin.1:2126 ../tin.5:1886
+msgid ""
+"If ON B<tin> does the rendering of bi-directional text. If OFF B<tin> leaves "
+"the rendering of bi-directional text to the terminal. Default is OFF."
+msgstr ""
+"If ON B<tin> does the rendering of bi-directional text. If OFF B<tin> leaves "
+"the rendering of bi-directional text to the terminal. Default is OFF."
+
+# type: TP
+#: ../tin.1:2126
+#, no-wrap
+msgid "B<Interval in seconds to reread active (reread_active_file_secs)>"
+msgstr "B<Interval in seconds to reread active (reread_active_file_secs)>"
+
+# type: Plain text
+#: ../tin.1:2131 ../tin.5:1891
+msgid ""
+"The news I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file is "
+"reread at regular intervals to show if any new news has arrived. Default is "
+"1200. Setting this to 0 will disable this feature."
+msgstr ""
+"The news I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file is "
+"reread at regular intervals to show if any new news has arrived. Default is "
+"1200. Setting this to 0 will disable this feature."
+
+# type: TP
+#: ../tin.1:2131
+#, no-wrap
+msgid "B<Directory to save arts/threads in (savedir)>"
+msgstr "B<Directory to save arts/threads in (savedir)>"
+
+# type: Plain text
+#: ../tin.1:2135 ../tin.5:1895
+msgid ""
+"Directory where articles/threads are saved. Default is I<${TIN_HOMEDIR:-"
+"\"$HOME\"}/News>."
+msgstr ""
+"Directory where articles/threads are saved. Default is I<${TIN_HOMEDIR:-"
+"\"$HOME\"}/News>."
+
+# type: TP
+#: ../tin.1:2135
+#, no-wrap
+msgid "B<Score limit (kill) (score_limit_kill)>"
+msgstr "B<Score limit (kill) (score_limit_kill)>"
+
+# type: Plain text
+#: ../tin.1:2139 ../tin.5:1899
+msgid ""
+"If the score of an article is below or equal this value the article gets "
+"marked as killed."
+msgstr ""
+"If the score of an article is below or equal this value the article gets "
+"marked as killed."
+
+# type: TP
+#: ../tin.1:2139
+#, no-wrap
+msgid "B<Score limit (select) (score_limit_select)>"
+msgstr "B<Score limit (select) (score_limit_select)>"
+
+# type: Plain text
+#: ../tin.1:2143 ../tin.5:1903
+msgid ""
+"If the score of an article is above or equal this value the article gets "
+"marked as hot."
+msgstr ""
+"If the score of an article is above or equal this value the article gets "
+"marked as hot."
+
+# type: TP
+#: ../tin.1:2143
+#, no-wrap
+msgid "B<Default score to kill articles (score_kill)>"
+msgstr "B<Default score to kill articles (score_kill)>"
+
+# type: Plain text
+#: ../tin.1:2147 ../tin.5:1907
+msgid ""
+"Score of an article which should be killed, this must be E<lt>= "
+"B<score_limit_kill>."
+msgstr ""
+"Score of an article which should be killed, this must be E<lt>= "
+"B<score_limit_kill>."
+
+# type: TP
+#: ../tin.1:2147
+#, no-wrap
+msgid "B<Default score to select articles (score_select)>"
+msgstr "B<Default score to select articles (score_select)>"
+
+# type: Plain text
+#: ../tin.1:2151 ../tin.5:1911
+msgid ""
+"Score of an article which should be marked hot, this must be E<gt>= "
+"B<score_limit_select>."
+msgstr ""
+"Score of an article which should be marked hot, this must be E<gt>= "
+"B<score_limit_select>."
+
+# type: TP
+#: ../tin.1:2151
+#, no-wrap
+msgid "B<Number of lines to scroll in pager (scroll_lines)>"
+msgstr "B<Number of lines to scroll in pager (scroll_lines)>"
+
+# type: Plain text
+#: ../tin.1:2159
+msgid ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional tin page-by-page scrolling. Set to -1 to get page-by-page "
+"scrolling where the top/bottom line is carried over onto the next page.  "
+"This setting supersedes show_last_line_prev_page=ON. Set to -2 to get half-"
+"page scrolling. This setting supersedes full_page_scroll=OFF."
+msgstr ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional tin page-by-page scrolling. Set to -1 to get page-by-page "
+"scrolling where the top/bottom line is carried over onto the next page.  "
+"This setting supersedes show_last_line_prev_page=ON. Set to -2 to get half-"
+"page scrolling. This setting supersedes full_page_scroll=OFF."
+
+# type: TP
+#: ../tin.1:2159
+#, no-wrap
+msgid "B<In group menu, show author by (show_author)>"
+msgstr "B<In group menu, show author by (show_author)>"
+
+# type: Plain text
+#: ../tin.1:2163 ../tin.5:1923
+msgid ""
+"Which information about the author should be shown. Default is 2, authors "
+"full name."
+msgstr ""
+"Which information about the author should be shown. Default is 2, authors "
+"full name."
+
+# type: Plain text
+#: ../tin.1:2166 ../tin.5:1926
+msgid "B<None>, only the ''Subject:'' line will be displayed."
+msgstr "B<None>, only the ''Subject:'' line will be displayed."
+
+# type: Plain text
+#: ../tin.1:2169 ../tin.5:1929
+msgid ""
+"B<Address>, ''Subject:'' line & the address part of the ''From:'' line are "
+"displayed."
+msgstr ""
+"B<Address>, ''Subject:'' line & the address part of the ''From:'' line are "
+"displayed."
+
+# type: Plain text
+#: ../tin.1:2172 ../tin.5:1932
+msgid ""
+"B<Full Name>, ''Subject:'' line & the authors full name part of the "
+"\\&''From:'' line are displayed (default)."
+msgstr ""
+"B<Full Name>, ''Subject:'' line & the authors full name part of the "
+"\\&''From:'' line are displayed (default)."
+
+# type: Plain text
+#: ../tin.1:2175 ../tin.5:1935
+msgid ""
+"B<Address and Name>, ''Subject:'' line & all of the ''From:'' line are "
+"displayed."
+msgstr ""
+"B<Address and Name>, ''Subject:'' line & all of the ''From:'' line are "
+"displayed."
+
+# type: TP
+#: ../tin.1:2176
+#, no-wrap
+msgid "B<Show description of each newsgroup (show_description)>"
+msgstr "B<Show description of each newsgroup (show_description)>"
+
+# type: Plain text
+#: ../tin.1:2185
+msgid ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/newsgroups> file and if supported (requires B<tin> to be build "
+"with mh-mail-handling support) from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"mailgroups> for mailgroups. Default is ON."
+msgstr ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/newsgroups> file and if supported (requires B<tin> to be build "
+"with mh-mail-handling support) from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"mailgroups> for mailgroups. Default is ON."
+
+# type: TP
+#: ../tin.1:2185
+#, no-wrap
+msgid "B<Show lines/score in listings (show_info)>"
+msgstr "B<Show lines/score in listings (show_info)>"
+
+# type: Plain text
+#: ../tin.1:2189 ../tin.5:1949
+msgid ""
+"Which information about the thread or article should be shown. Default is 1, "
+"show only the line count."
+msgstr ""
+"Which information about the thread or article should be shown. Default is 1, "
+"show only the line count."
+
+# type: Plain text
+#: ../tin.1:2192 ../tin.5:1952
+msgid "B<None>, no information will be displayed."
+msgstr "B<None>, no information will be displayed."
+
+# type: Plain text
+#: ../tin.1:2196
+msgid ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread) article will be "
+"displayed."
+msgstr ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread) article will be "
+"displayed."
+
+# type: Plain text
+#: ../tin.1:2200 ../tin.5:1960
+msgid ""
+"B<Score>, in article listing the score of an article will be displayed and "
+"in thread listing the score of the thread will be displayed - see also "
+"B<thread_score>."
+msgstr ""
+"B<Score>, in article listing the score of an article will be displayed and "
+"in thread listing the score of the thread will be displayed - see also "
+"B<thread_score>."
+
+# type: Plain text
+#: ../tin.1:2202 ../tin.5:1962
+msgid "B<Lines & Score>, display line count and score."
+msgstr "B<Lines & Score>, display line count and score."
+
+# type: TP
+#: ../tin.1:2203
+#, no-wrap
+msgid "B<Show only unread articles (show_only_unread_arts)>"
+msgstr "B<Show only unread articles (show_only_unread_arts)>"
+
+# type: Plain text
+#: ../tin.1:2207
+msgid ""
+"If ON show only new/unread articles otherwise show all articles.  Default is "
+"ON."
+msgstr ""
+"If ON show only new/unread articles otherwise show all articles.  Default is "
+"ON."
+
+# type: TP
+#: ../tin.1:2207
+#, no-wrap
+msgid "B<Show only groups with unread arts (show_only_unread_groups)>"
+msgstr "B<Show only groups with unread arts (show_only_unread_groups)>"
+
+# type: Plain text
+#: ../tin.1:2211 ../tin.5:1971
+msgid ""
+"If ON show only subscribed groups that contain unread articles. Default is "
+"OFF."
+msgstr ""
+"If ON show only subscribed groups that contain unread articles. Default is "
+"OFF."
+
+# type: TP
+#: ../tin.1:2211
+#, no-wrap
+msgid "B<Display signatures (show_signatures)>"
+msgstr "B<Display signatures (show_signatures)>"
+
+# type: Plain text
+#: ../tin.1:2215
+msgid "If OFF don't show signatures when displaying articles.  Default is ON."
+msgstr "If OFF don't show signatures when displaying articles.  Default is ON."
+
+# type: TP
+#: ../tin.1:2215
+#, no-wrap
+msgid "B<Prepend signature with '\\en-- \\en' (sigdashes)>"
+msgstr "B<Prepend signature with '\\en-- \\en' (sigdashes)>"
+
+# type: Plain text
+#: ../tin.1:2218 ../tin.5:1977
+msgid "If ON prepend the signature with sigdashes. Default is ON."
+msgstr "If ON prepend the signature with sigdashes. Default is ON."
+
+# type: TP
+#: ../tin.1:2218
+#, no-wrap
+msgid "B<Create signature from path/command (sigfile)>"
+msgstr "B<Create signature from path/command (sigfile)>"
+
+# type: Plain text
+#: ../tin.1:2228
+msgid ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified directory. "
+"If the path starts with a ! the program the path points to will be executed "
+"to generate a signature. B<tin> will pass the name of the current newsgroup "
+"as argument to the program. --none will suppress any signature.  Default is "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+msgstr ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified directory. "
+"If the path starts with a ! the program the path points to will be executed "
+"to generate a signature. B<tin> will pass the name of the current newsgroup "
+"as argument to the program. --none will suppress any signature.  Default is "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+
+# type: TP
+#: ../tin.1:2228
+#, no-wrap
+msgid "B<Add signature when reposting (signature_repost)>"
+msgstr "B<Add signature when reposting (signature_repost)>"
+
+# type: Plain text
+#: ../tin.1:2231 ../tin.5:1991
+msgid "If ON add signature to reposted articles. Default is ON."
+msgstr "If ON add signature to reposted articles. Default is ON."
+
+# type: TP
+#: ../tin.1:2231
+#, no-wrap
+msgid "B<Regex used to highlight /slashes/ (slashes_regex)>"
+msgstr "B<Regex used to highlight /slashes/ (slashes_regex)>"
+
+# type: Plain text
+#: ../tin.1:2236
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2236
+#, no-wrap
+msgid "B<Sort articles by (sort_article_type)>"
+msgstr "B<Sort articles by (sort_article_type)>"
+
+# type: Plain text
+#: ../tin.1:2240 ../tin.5:2002
+msgid ""
+"This specifies how articles should be sorted. Sort by ascending Date (6) is "
+"the default. The following sort types are allowed:"
+msgstr ""
+"This specifies how articles should be sorted. Sort by ascending Date (6) is "
+"the default. The following sort types are allowed:"
+
+# type: Plain text
+#: ../tin.1:2243 ../tin.5:2005
+msgid "B<Nothing>, don't sort articles."
+msgstr "B<Nothing>, don't sort articles."
+
+# type: Plain text
+#: ../tin.1:2245 ../tin.5:2007
+msgid ""
+"B<Subject: (descending)>, sort articles by ''Subject:'' field descending."
+msgstr ""
+"B<Subject: (descending)>, sort articles by ''Subject:'' field descending."
+
+# type: Plain text
+#: ../tin.1:2247 ../tin.5:2009
+msgid "B<Subject: (ascending)>, sort articles by ''Subject:'' field ascending."
+msgstr ""
+"B<Subject: (ascending)>, sort articles by ''Subject:'' field ascending."
+
+# type: Plain text
+#: ../tin.1:2249 ../tin.5:2011
+msgid "B<From: (descending)>, sort articles by ''From:'' field descending."
+msgstr "B<From: (descending)>, sort articles by ''From:'' field descending."
+
+# type: Plain text
+#: ../tin.1:2251 ../tin.5:2013
+msgid "B<From: (ascending)>, sort articles by ''From:'' field ascending."
+msgstr "B<From: (ascending)>, sort articles by ''From:'' field ascending."
+
+# type: Plain text
+#: ../tin.1:2253 ../tin.5:2015
+msgid "B<Date: (descending)>, sort articles by ''Date:'' field descending."
+msgstr "B<Date: (descending)>, sort articles by ''Date:'' field descending."
+
+# type: Plain text
+#: ../tin.1:2256 ../tin.5:2018
+msgid ""
+"B<Date: (ascending)>, sort articles by ''Date:'' field ascending (default)."
+msgstr ""
+"B<Date: (ascending)>, sort articles by ''Date:'' field ascending (default)."
+
+# type: Plain text
+#: ../tin.1:2258 ../tin.5:2020
+msgid "B<Score (descending)>, sort articles by filtering score descending."
+msgstr "B<Score (descending)>, sort articles by filtering score descending."
+
+# type: IP
+#: ../tin.1:2258 ../tin.5:2020
+#, no-wrap
+msgid "8"
+msgstr "8"
+
+# type: Plain text
+#: ../tin.1:2260 ../tin.5:2022
+msgid "B<Score (ascending)>, sort articles by filtering score ascending."
+msgstr "B<Score (ascending)>, sort articles by filtering score ascending."
+
+# type: IP
+#: ../tin.1:2260 ../tin.5:2022
+#, no-wrap
+msgid "9"
+msgstr "9"
+
+# type: Plain text
+#: ../tin.1:2262 ../tin.5:2024
+msgid "B<Lines: (descending)>, sort articles by ''Lines:'' field descending."
+msgstr "B<Lines: (descending)>, sort articles by ''Lines:'' field descending."
+
+# type: IP
+#: ../tin.1:2262 ../tin.5:2024
+#, no-wrap
+msgid "10"
+msgstr "10"
+
+# type: Plain text
+#: ../tin.1:2264 ../tin.5:2026
+msgid "B<Lines: (ascending)>, sort articles by ''Lines:'' field ascending."
+msgstr "B<Lines: (ascending)>, sort articles by ''Lines:'' field ascending."
+
+# type: TP
+#: ../tin.1:2265
+#, no-wrap
+msgid "B<Sort threads by (sort_threads_type)>"
+msgstr "B<Sort threads by (sort_threads_type)>"
+
+# type: Plain text
+#: ../tin.1:2270 ../tin.5:2031
+msgid ""
+"This specifies how threads will be sorted. Sort by descending Score (1) is "
+"the default. The following sort types are allowed:"
+msgstr ""
+"This specifies how threads will be sorted. Sort by descending Score (1) is "
+"the default. The following sort types are allowed:"
+
+# type: Plain text
+#: ../tin.1:2273 ../tin.5:2034
+msgid "B<Nothing>, don't sort threads."
+msgstr "B<Nothing>, don't sort threads."
+
+# type: Plain text
+#: ../tin.1:2276 ../tin.5:2037
+msgid ""
+"B<Score (descending)>, sort threads by filtering score descending (default)."
+msgstr ""
+"B<Score (descending)>, sort threads by filtering score descending (default)."
+
+# type: Plain text
+#: ../tin.1:2278 ../tin.5:2039
+msgid "B<Score (ascending)>, sort threads by filtering score ascending."
+msgstr "B<Score (ascending)>, sort threads by filtering score ascending."
+
+# type: Plain text
+#: ../tin.1:2280 ../tin.5:2041
+msgid ""
+"B<Last posting date (descending)>, sort threads by date of last posting "
+"descending."
+msgstr ""
+"B<Last posting date (descending)>, sort threads by date of last posting "
+"descending."
+
+# type: Plain text
+#: ../tin.1:2282 ../tin.5:2043
+msgid ""
+"B<Last posting date (ascending)>, sort threads by date of last posting "
+"ascending."
+msgstr ""
+"B<Last posting date (ascending)>, sort threads by date of last posting "
+"ascending."
+
+# type: TP
+#: ../tin.1:2283
+#, no-wrap
+msgid "B<Spamtrap warning address parts (spamtrap_warning_addresses)>"
+msgstr "B<Spamtrap warning address parts (spamtrap_warning_addresses)>"
+
+# type: Plain text
+#: ../tin.1:2288
+msgid ""
+"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 "
+"these strings. The matching is case-insensitive. Example:"
+msgstr ""
+"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 "
+"these strings. The matching is case-insensitive. Example:"
+
+# type: Plain text
+#: ../tin.1:2290
+msgid "I<spam,delete,remove>"
+msgstr "I<spam,delete,remove>"
+
+# type: TP
+#: ../tin.1:2290
+#, no-wrap
+msgid "B<Regex used to highlight *stars* (stars_regex)>"
+msgstr "B<Regex used to highlight *stars* (stars_regex)>"
+
+# type: Plain text
+#: ../tin.1:2295
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2295
+#, no-wrap
+msgid "B<Start editor with line offset (start_editor_offset)>"
+msgstr "B<Start editor with line offset (start_editor_offset)>"
+
+# type: Plain text
+#: ../tin.1:2300 ../tin.5:2061
+msgid ""
+"Set ON if the editor used for posting, follow-ups and bug reports has the "
+"capability of starting and positioning the cursor at a specified line within "
+"a file. Default is ON."
+msgstr ""
+"Set ON if the editor used for posting, follow-ups and bug reports has the "
+"capability of starting and positioning the cursor at a specified line within "
+"a file. Default is ON."
+
+# type: TP
+#: ../tin.1:2300
+#, no-wrap
+msgid "B<Strip blanks of end of lines (strip_blanks)>"
+msgstr "B<Strip blanks of end of lines (strip_blanks)>"
+
+# type: Plain text
+#: ../tin.1:2306 ../tin.5:2065
+msgid ""
+"Strips the blanks from the end of each line therefore speeding up the "
+"display when reading on a slow terminal or via modem. Default is ON."
+msgstr ""
+"Strips the blanks from the end of each line therefore speeding up the "
+"display when reading on a slow terminal or via modem. Default is ON."
+
+# type: TP
+#: ../tin.1:2306
+#, no-wrap
+msgid "B<Remove bogus groups from newsrc (strip_bogus)>"
+msgstr "B<Remove bogus groups from newsrc (strip_bogus)>"
+
+# type: Plain text
+#: ../tin.1:2315 ../tin.5:2073
+msgid ""
+"Bogus groups are groups that are present in your I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc> file that no longer exist on the news server. There are 3 "
+"options. 0 means do nothing & always keep bogus groups.  1 means bogus "
+"groups will be permanently removed. 2 means that bogus groups will appear on "
+"the Group Selection Menu, prefixed with a 'D'. This allows you to "
+"unsubscribe from them as and when you wish. Default is 0 (Always Keep)."
+msgstr ""
+"Bogus groups are groups that are present in your I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.newsrc> file that no longer exist on the news server. There are 3 "
+"options. 0 means do nothing & always keep bogus groups.  1 means bogus "
+"groups will be permanently removed. 2 means that bogus groups will appear on "
+"the Group Selection Menu, prefixed with a 'D'. This allows you to "
+"unsubscribe from them as and when you wish. Default is 0 (Always Keep)."
+
+# type: TP
+#: ../tin.1:2315
+#, no-wrap
+msgid "B<No unsubscribed groups in newsrc (strip_newsrc)>"
+msgstr "B<No unsubscribed groups in newsrc (strip_newsrc)>"
+
+# type: Plain text
+#: ../tin.1:2319 ../tin.5:2077
+msgid ""
+"If ON, then unsubscribed groups will be permanently removed from your I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. Default is OFF."
+msgstr ""
+"If ON, then unsubscribed groups will be permanently removed from your I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. Default is OFF."
+
+# type: TP
+#: ../tin.1:2319
+#, no-wrap
+msgid "B<Regex used to highlight -strokes- (strokes_regex)>"
+msgstr "B<Regex used to highlight -strokes- (strokes_regex)>"
+
+# type: Plain text
+#: ../tin.1:2324
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2324
+#, no-wrap
+msgid "B<Wrap around threads on next unread (wrap_on_next_unread)>"
+msgstr "B<Wrap around threads on next unread (wrap_on_next_unread)>"
+
+# type: Plain text
+#: ../tin.1:2329 ../tin.5:2260
+msgid ""
+"If enabled a search for the next unread article will wrap around all "
+"articles to find also previous unread articles. If disabled the search stops "
+"at the end of the thread list. Default is ON."
+msgstr ""
+"If enabled a search for the next unread article will wrap around all "
+"articles to find also previous unread articles. If disabled the search stops "
+"at the end of the thread list. Default is ON."
+
+# type: TP
+#: ../tin.1:2329
+#, no-wrap
+msgid "B<Display \"a as Umlaut-a (tex2iso_conv)>"
+msgstr "B<Display \"a as Umlaut-a (tex2iso_conv)>"
+
+# type: Plain text
+#: ../tin.1:2333
+msgid ""
+"If ON, show \"a as Umlaut-a, etc. Default is OFF. This behavior can also be "
+"toggled in the article viewer via B<PageToggleTex2iso> ('B<\">')."
+msgstr ""
+"If ON, show \"a as Umlaut-a, etc. Default is OFF. This behaviour can also be "
+"toggled in the article viewer via B<PageToggleTex2iso> ('B<\">')."
+
+# type: TP
+#: ../tin.1:2333
+#, no-wrap
+msgid "B<Thread articles by (thread_articles)>"
+msgstr "B<Thread articles by (thread_articles)>"
+
+# type: Plain text
+#: ../tin.1:2341
+msgid ""
+"Defines which threading method to use. It's possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_arts> to 0 - 4 in the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"attributes>. (See also \"GROUP ATTRIBUTES\".)  The default is Both Subject "
+"and References.  The choices are:"
+msgstr ""
+"Defines which threading method to use. It's possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_arts> to 0 - 4 in the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"attributes>. (See also \"GROUP ATTRIBUTES\".)  The default is Both Subject "
+"and References.  The choices are:"
+
+# type: Plain text
+#: ../tin.1:2344
+msgid "B<None>, don't thread."
+msgstr "B<None>, don't thread."
+
+# type: Plain text
+#: ../tin.1:2346
+msgid "B<Subject>, thread on ''Subject:'' only."
+msgstr "B<Subject>, thread on ''Subject:'' only."
+
+# type: Plain text
+#: ../tin.1:2348
+msgid "B<References>, thread on ''References:'' only."
+msgstr "B<References>, thread on ''References:'' only."
+
+# type: Plain text
+#: ../tin.1:2351
+msgid ""
+"B<Both Subject and References>, thread on ''References:'' then "
+"\\&''Subject:'' (default)."
+msgstr ""
+"B<Both Subject and References>, thread on ''References:'' then "
+"\\&''Subject:'' (default)."
+
+# type: Plain text
+#: ../tin.1:2353
+msgid "B<Multipart Subject>, thread multipart articles on ''Subject:''."
+msgstr "B<Multipart Subject>, thread multipart articles on ''Subject:''."
+
+# type: Plain text
+#: ../tin.1:2356
+msgid ""
+"B<Percentage Match>, thread base upon a partial character match on "
+"\\&''Subject:''."
+msgstr ""
+"B<Percentage Match>, thread base upon a partial character match on "
+"\\&''Subject:''."
+
+# type: TP
+#: ../tin.1:2357
+#, no-wrap
+msgid "B<Catchup thread by using left key (thread_catchup_on_exit)>"
+msgstr "B<Catchup thread by using left key (thread_catchup_on_exit)>"
+
+# type: Plain text
+#: ../tin.1:2361 ../tin.5:2108
+msgid ""
+"If ON catchup group/thread when leaving with the left arrow key. Default is "
+"ON."
+msgstr ""
+"If ON catchup group/thread when leaving with the left arrow key. Default is "
+"ON."
+
+# type: TP
+#: ../tin.1:2361
+#, no-wrap
+msgid "B<Matchingness of a thread (thread_perc)>"
+msgstr "B<Matchingness of a thread (thread_perc)>"
+
+# type: Plain text
+#: ../tin.1:2365
+msgid ""
+"How closely the subjects must match for two threads to be considered part of "
+"the same thread. This is a percentage and the default if 75%."
+msgstr ""
+"How closely the subjects must match for two threads to be considered part of "
+"the same thread. This is a percentage and the default if 75%."
+
+# type: TP
+#: ../tin.1:2365
+#, no-wrap
+msgid "B<Score of a thread (thread_score)>"
+msgstr "B<Score of a thread (thread_score)>"
+
+# type: Plain text
+#: ../tin.1:2369 ../tin.5:2112
+msgid ""
+"How the total score of a thread is computed. Default is 0, the maximum score "
+"in this thread."
+msgstr ""
+"How the total score of a thread is computed. Default is 0, the maximum score "
+"in this thread."
+
+# type: Plain text
+#: ../tin.1:2372 ../tin.5:2115
+msgid "B<Max>, the maximum score in this thread."
+msgstr "B<Max>, the maximum score in this thread."
+
+# type: Plain text
+#: ../tin.1:2374 ../tin.5:2117
+msgid "B<Sum>, the sum of all scores in this thread."
+msgstr "B<Sum>, the sum of all scores in this thread."
+
+# type: Plain text
+#: ../tin.1:2376 ../tin.5:2119
+msgid "B<Average>, the average score in this thread."
+msgstr "B<Average>, the average score in this thread."
+
+# type: TP
+#: ../tin.1:2377
+#, no-wrap
+msgid "B<Transliteration (translit)>"
+msgstr "B<Transliteration (translit)>"
+
+# type: Plain text
+#: ../tin.1:2385 ../tin.5:2128
+msgid ""
+"If ON append //TRANSLIT to the first argument of B<iconv_open>(3)  to enable "
+"transliteration. This means that when a character cannot be represented in "
+"the target character set, it can be approximated through one or several "
+"similarly looking characters. On systems where this extension doesn't exist, "
+"this option is disabled. Default is OFF."
+msgstr ""
+"If ON append //TRANSLIT to the first argument of B<iconv_open>(3)  to enable "
+"transliteration. This means that when a character cannot be represented in "
+"the target character set, it can be approximated through one or several "
+"similarly looking characters. On systems where this extension doesn't exist, "
+"this option is disabled. Default is OFF."
+
+# type: TP
+#: ../tin.1:2385
+#, no-wrap
+msgid "B<How to treat blank lines (trim_article_body)>"
+msgstr "B<How to treat blank lines (trim_article_body)>"
+
+# type: Plain text
+#: ../tin.1:2389 ../tin.5:2132
+msgid ""
+"Allows you to select how B<tin> treats blank lines in article bodies.  "
+"Default is 0. This option does not affect lines within verbatim blocks."
+msgstr ""
+"Allows you to select how B<tin> treats blank lines in article bodies.  "
+"Default is 0. This option does not affect lines within verbatim blocks."
+
+# type: Plain text
+#: ../tin.1:2392 ../tin.5:2135
+msgid "B<Don't trim article body>, do nothing."
+msgstr "B<Don't trim article body>, do nothing."
+
+# type: Plain text
+#: ../tin.1:2394 ../tin.5:2137
+msgid "B<Skip leading blank lines>."
+msgstr "B<Skip leading blank lines>."
+
+# type: Plain text
+#: ../tin.1:2396 ../tin.5:2139
+msgid "B<Skip trailing blank lines>."
+msgstr "B<Skip trailing blank lines>."
+
+# type: Plain text
+#: ../tin.1:2398 ../tin.5:2141
+msgid ""
+"B<Skip leading and trailing blank l.>, skip leading and trailing blank lines."
+msgstr ""
+"B<Skip leading and trailing blank l.>, skip leading and trailing blank lines."
+
+# type: Plain text
+#: ../tin.1:2401 ../tin.5:2144
+msgid ""
+"B<Compact multiple between text>, replace multiple blank lines between "
+"textblocks with one blank line."
+msgstr ""
+"B<Compact multiple between text>, replace multiple blank lines between "
+"textblocks with one blank line."
+
+# type: Plain text
+#: ../tin.1:2403 ../tin.5:2146
+msgid "B<Compact multiple and skip leading>, 4 + 1"
+msgstr "B<Compact multiple and skip leading>, 4 + 1"
+
+# type: Plain text
+#: ../tin.1:2405 ../tin.5:2148
+msgid "B<Compact multiple and skip trailing>, 4 + 2"
+msgstr "B<Compact multiple and skip trailing>, 4 + 2"
+
+# type: Plain text
+#: ../tin.1:2407 ../tin.5:2150
+msgid "B<Compact mltpl., skip lead. & trai.>, 4 + 3"
+msgstr "B<Compact mltpl., skip lead. & trai.>, 4 + 3"
+
+# type: TP
+#: ../tin.1:2408
+#, no-wrap
+msgid "B<Regex used to highlight _underline_ (underscores_regex)>"
+msgstr "B<Regex used to highlight _underline_ (underscores_regex)>"
+
+# type: Plain text
+#: ../tin.1:2413
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<underscores_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<underscores_regex> is blank, then B<tin> uses a built-in default."
+
+# type: TP
+#: ../tin.1:2413
+#, no-wrap
+msgid "B<Remove ~/.article after posting (unlink_article)>"
+msgstr "B<Remove ~/.article after posting (unlink_article)>"
+
+# type: Plain text
+#: ../tin.1:2416
+msgid "If ON remove I<~/.article> after posting. Default is ON."
+msgstr "If ON remove I<~/.article> after posting. Default is ON."
+
+# type: TP
+#: ../tin.1:2416
+#, no-wrap
+msgid "B<Program that opens URL's (url_handler)>"
+msgstr "B<Program that opens URL's (url_handler)>"
+
+# type: Plain text
+#: ../tin.1:2421
+msgid ""
+"The program that will be run when launching URL's in the article viewer "
+"using B<PageViewUrl> ('B<U>'). The actual URL will be appended to this.  "
+"Default is B<url_handler.pl %s>."
+msgstr ""
+"The program that will be run when launching URL's in the article viewer "
+"using B<PageViewUrl> ('B<U>'). The actual URL will be appended to this.  "
+"Default is B<url_handler.pl %s>."
+
+# type: TP
+#: ../tin.1:2421
+#, no-wrap
+msgid "B<URL highlighting in message body (url_highlight)>"
+msgstr "B<URL highlighting in message body (url_highlight)>"
+
+# type: Plain text
+#: ../tin.1:2424 ../tin.5:2170
+msgid "Enable highlighting URLs in message body. Default is ON."
+msgstr "Enable highlighting URLs in message body. Default is ON."
+
+# type: TP
+#: ../tin.1:2424
+#, no-wrap
+msgid "B<Use ANSI color (use_color)>"
+msgstr "B<Use ANSI colour (use_color)>"
+
+# type: Plain text
+#: ../tin.1:2427
+msgid "If enabled B<tin> uses ANSI-colors. Default is OFF."
+msgstr "If enabled B<tin> uses ANSI-colours. Default is OFF."
+
+# type: TP
+#: ../tin.1:2427
+#, no-wrap
+msgid "B<Use scroll keys on keypad (use_keypad)>"
+msgstr "B<Use scroll keys on keypad (use_keypad)>"
+
+# type: TP
+#: ../tin.1:2430
+#, no-wrap
+msgid "B<Use mouse in xterm (use_mouse)>"
+msgstr "B<Use mouse in xterm (use_mouse)>"
+
+# type: Plain text
+#: ../tin.1:2436 ../tin.5:2184
+msgid ""
+"Allows the mouse button support in a B<xterm>(1x)  to be enabled/disabled.  "
+"Default is OFF."
+msgstr ""
+"Allows the mouse button support in a B<xterm>(1x)  to be enabled/disabled.  "
+"Default is OFF."
+
+# type: TP
+#: ../tin.1:2436
+#, no-wrap
+msgid "B<Use slrnface to show ''X-Face:''s (use_slrnface)>"
+msgstr "B<Use slrnface to show ''X-Face:''s (use_slrnface)>"
+
+# type: Plain text
+#: ../tin.1:2446
+msgid ""
+"If enabled B<tin> uses B<slrnface>(1)  to interpret the ''X-Face:'' header. "
+"For this option to have any effect, B<tin> must be running in an B<xterm>"
+"(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+msgstr ""
+"If enabled B<tin> uses B<slrnface>(1)  to interpret the ''X-Face:'' header. "
+"For this option to have any effect, B<tin> must be running in an B<xterm>"
+"(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+
+# type: TP
+#: ../tin.1:2446
+#, no-wrap
+msgid "B<Use UTF-8 graphics (utf8_graphics)>"
+msgstr "B<Use UTF-8 graphics (utf8_graphics)>"
+
+# type: Plain text
+#: ../tin.1:2450 ../tin.5:2200
+msgid ""
+"If ON use UTF-8 characters for indicator ('-E<gt>'), thread/attachment tree "
+"and ellipsis ('...'). Default is OFF."
+msgstr ""
+"If ON use UTF-8 characters for indicator ('-E<gt>'), thread/attachment tree "
+"and ellipsis ('...'). Default is OFF."
+
+# type: TP
+#: ../tin.1:2450
+#, no-wrap
+msgid "B<Regex for begin of a verbatim block (verbatim_begin_regex)>"
+msgstr "B<Regex for begin of a verbatim block (verbatim_begin_regex)>"
+
+# type: Plain text
+#: ../tin.1:2453
+msgid ""
+"A regular expression that tin will use to find the begin of a verbatim block."
+msgstr ""
+"A regular expression that tin will use to find the begin of a verbatim block."
+
+# type: TP
+#: ../tin.1:2453
+#, no-wrap
+msgid "B<Regex for end of a verbatim block (verbatim_end_regex)>"
+msgstr "B<Regex for end of a verbatim block (verbatim_end_regex)>"
+
+# type: Plain text
+#: ../tin.1:2456
+msgid ""
+"A regular expression that tin will use to find the end of a verbatim block."
+msgstr ""
+"A regular expression that tin will use to find the end of a verbatim block."
+
+# type: TP
+#: ../tin.1:2456
+#, no-wrap
+msgid "B<Detection of verbatim blocks (verbatim_handling)>"
+msgstr "B<Detection of verbatim blocks (verbatim_handling)>"
+
+# type: Plain text
+#: ../tin.1:2459
+msgid "If ON verbatim blocks will be detected. Default is ON."
+msgstr "If ON verbatim blocks will be detected. Default is ON."
+
+# type: TP
+#: ../tin.1:2459
+#, no-wrap
+msgid "B<Wildcard matching (wildcard)>"
+msgstr "B<Wildcard matching (wildcard)>"
+
+# type: Plain text
+#: ../tin.1:2473
+msgid ""
+"Allows you to select how B<tin> matches strings. The default is 0 and uses "
+"the wildmat notation, which is how this has traditionally been handled.  "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3)  (see also B<perlre>(1)  and B<pcrepattern>(3)).  You "
+"will probably want to update your filter file if you use this regularly.  "
+"NB: Newsgroup names will always be matched using the wildmat notation."
+msgstr ""
+"Allows you to select how B<tin> matches strings. The default is 0 and uses "
+"the wildmat notation, which is how this has traditionally been handled.  "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3)  (see also B<perlre>(1)  and B<pcrepattern>(3)).  You "
+"will probably want to update your filter file if you use this regularly.  "
+"NB: Newsgroup names will always be matched using the wildmat notation."
+
+# type: TP
+#: ../tin.1:2473
+#, no-wrap
+msgid "B<What to display instead of mark (word_h_display_marks)>"
+msgstr "B<What to display instead of mark (word_h_display_marks)>"
+
+# type: Plain text
+#: ../tin.1:2477 ../tin.5:2228
+msgid ""
+"Should the leading and ending stars, slashes, strokes and dashes also be "
+"displayed, even when they are highlighting marks?"
+msgstr ""
+"Should the leading and ending stars, slashes, strokes and dashes also be "
+"displayed, even when they are highlighting marks?"
+
+# type: Plain text
+#: ../tin.1:2480 ../tin.5:2231
+msgid "B<no>"
+msgstr "B<no>"
+
+# type: Plain text
+#: ../tin.1:2482 ../tin.5:2233
+msgid "yes, B<display mark>"
+msgstr "yes, B<display mark>"
+
+# type: Plain text
+#: ../tin.1:2484 ../tin.5:2235
+msgid "print a B<space> instead"
+msgstr "print a B<space> instead"
+
+# type: TP
+#: ../tin.1:2485
+#, no-wrap
+msgid "B<Word highlighting in message body (word_highlight)>"
+msgstr "B<Word highlighting in message body (word_highlight)>"
+
+# type: Plain text
+#: ../tin.1:2493
+msgid ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colors specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used. Default is ON."
+msgstr ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colours specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used. Default is ON."
+
+# type: TP
+#: ../tin.1:2493
+#, no-wrap
+msgid "B<Page line wrap column (wrap_column)>"
+msgstr "B<Page line wrap column (wrap_column)>"
+
+# type: Plain text
+#: ../tin.1:2504 ../tin.5:2255
+msgid ""
+"Sets the column at which a displayed article body should be wrapped.  If "
+"this value is equal to 0, it defaults to the current screen width.  If this "
+"value is greater than your current screen width the part off-screen is not "
+"displayed. Thus setting this option to a large value can be used to disable "
+"wrapping. If this value is negative the wrap margin is the current screen "
+"width plus the given value (as long as the result is still positive, "
+"otherwise it will fall back to the current screen width). Default is 0, "
+"wrapping at the current screen width."
+msgstr ""
+"Sets the column at which a displayed article body should be wrapped.  If "
+"this value is equal to 0, it defaults to the current screen width.  If this "
+"value is greater than your current screen width the part off-screen is not "
+"displayed. Thus setting this option to a large value can be used to disable "
+"wrapping. If this value is negative the wrap margin is the current screen "
+"width plus the given value (as long as the result is still positive, "
+"otherwise it will fall back to the current screen width). Default is 0, "
+"wrapping at the current screen width."
+
+# type: TP
+#: ../tin.1:2504
+#, no-wrap
+msgid "B<Quote line when cross-posting (xpost_quote_format)>"
+msgstr "B<Quote line when cross-posting (xpost_quote_format)>"
+
+# type: Plain text
+#: ../tin.1:2511 ../tin.5:2265
+msgid ""
+"Format is the same as for B<news_quote_format>, this is used when answering "
+"to a crossposting to several groups with no ''Followup-To:'' set."
+msgstr ""
+"Format is the same as for B<news_quote_format>, this is used when answering "
+"to a crossposting to several groups with no ''Followup-To:'' set."
+
+# type: SS
+#: ../tin.1:2511
+#, no-wrap
+msgid "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
+msgstr "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
+
+# type: Plain text
+#: ../tin.1:2518
+msgid ""
+"B<tin> allows certain attributes to be set on a per group basis. If it "
+"exists, the global attributes file, I<${TIN_LIBDIR:-NEWSLIBDIR}/attributes> "
+"is read. After that, the user's own attributes file I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.tin/attributes> is read.  The global attributes file is useful for "
+"distributing system-wide defaults to new users who have no private "
+"attributes file yet."
+msgstr ""
+"B<tin> allows certain attributes to be set on a per group basis. If it "
+"exists, the global attributes file, I<${TIN_LIBDIR:-NEWSLIBDIR}/attributes> "
+"is read. After that, the user's own attributes file I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.tin/attributes> is read.  The global attributes file is useful for "
+"distributing system-wide defaults to new users who have no private "
+"attributes file yet."
+
+# type: Plain text
+#: ../tin.1:2526
+msgid ""
+"Note that the I<scope=E<lt>grouplistE<gt>> line has to be specified before "
+"the attributes are specified for that list. All attributes are set to a "
+"reasonable default so you only have to specify the attribute that you want "
+"to change (e.g., savedir). All toggle attributes are set by specifying ON/"
+"OFF. Otherwise, these function exactly the same as their global equivalents. "
+"For more details see B<tin>(5)."
+msgstr ""
+"Note that the I<scope=E<lt>grouplistE<gt>> line has to be specified before "
+"the attributes are specified for that list. All attributes are set to a "
+"reasonable default so you only have to specify the attribute that you want "
+"to change (e.g., savedir). All toggle attributes are set by specifying ON/"
+"OFF. Otherwise, these function exactly the same as their global equivalents. "
+"For more details see B<tin>(5)."
+
+# type: Plain text
+#: ../tin.1:2533
+msgid ""
+"Attributes can also be changed from the attributes menu which can be "
+"accessed by B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') from the options menu "
+"or B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') from the scopes menu.  The "
+"attributes menu looks and behaves very similar to the options menu. The "
+"title shows the current scope. Attributes set in the current scope are "
+"marked with '\\+' to the left of the attributes number."
+msgstr ""
+"Attributes can also be changed from the attributes menu which can be "
+"accessed by B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') from the options menu "
+"or B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') from the scopes menu.  The "
+"attributes menu looks and behaves very similar to the options menu. The "
+"title shows the current scope. Attributes set in the current scope are "
+"marked with '\\+' to the left of the attributes number."
+
+# type: Plain text
+#: ../tin.1:2540
+msgid ""
+"Besides the keys for moving around and changing values known from the "
+"options menu the attributes menu provides the following command: "
+"B<ConfigResetAttrib> ('B<r>') which resets an attribute to a default value."
+msgstr ""
+"Besides the keys for moving around and changing values known from the "
+"options menu the attributes menu provides the following command: "
+"B<ConfigResetAttrib> ('B<r>') which resets an attribute to a default value."
+
+# type: SS
+#: ../tin.1:2540
+#, no-wrap
+msgid "SCOPES MENU"
+msgstr "SCOPES MENU"
+
+# type: Plain text
+#: ../tin.1:2545
+msgid ""
+"The scopes menu (accessible from the options menu with B<ConfigScopeMenu> "
+"('B<S>')) shows all scopes read from the global and local attributes file.  "
+"Scopes from the global attributes file are marked with '!' to the left of "
+"the scope number. Delete/rename/move are not possible with those scopes."
+msgstr ""
+"The scopes menu (accessible from the options menu with B<ConfigScopeMenu> "
+"('B<S>')) shows all scopes read from the global and local attributes file.  "
+"Scopes from the global attributes file are marked with '!' to the left of "
+"the scope number. Delete/rename/move are not possible with those scopes."
+
+# type: Plain text
+#: ../tin.1:2556
+msgid ""
+"In addition to the common moving keys the following commands are available: "
+"B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') enter the attributes menu for "
+"the current scope, B<ScopeEditAttributesFile> ('B<E>') edit the local "
+"attributes file, B<ScopeAdd> ('B<a>') add a new scope, B<ScopeDelete> "
+"('B<d>') delete the current scope, B<ScopeMove> ('B<m>') move the current "
+"scope to a new position, B<ScopeRename> ('B<r>') rename the current scope. "
+"B<ToggleHelpDisplay> ('B<H>') toggles the help mini menu at the bottom of "
+"the screen."
+msgstr ""
+"In addition to the common moving keys the following commands are available: "
+"B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') enter the attributes menu for "
+"the current scope, B<ScopeEditAttributesFile> ('B<E>') edit the local "
+"attributes file, B<ScopeAdd> ('B<a>') add a new scope, B<ScopeDelete> "
+"('B<d>') delete the current scope, B<ScopeMove> ('B<m>') move the current "
+"scope to a new position, B<ScopeRename> ('B<r>') rename the current scope. "
+"B<ToggleHelpDisplay> ('B<H>') toggles the help mini menu at the bottom of "
+"the screen."
+
+# type: SS
+#: ../tin.1:2556
+#, no-wrap
+msgid "FILTERING ARTICLES"
+msgstr "FILTERING ARTICLES"
+
+# type: Plain text
+#.  FIXME - add scoring description
+#: ../tin.1:2563
+msgid ""
+"When there is a subject or an author which you are either very interested "
+"in, or find completely uninteresting, you can easily instruct B<tin> to "
+"I<auto-select> or I<auto-kill> articles that match I<rules> that you "
+"specify. This can be anything from the name of the author to the number of "
+"lines in an article."
+msgstr ""
+"When there is a subject or an author which you are either very interested "
+"in, or find completely uninteresting, you can easily instruct B<tin> to "
+"I<auto-select> or I<auto-kill> articles that match I<rules> that you "
+"specify. This can be anything from the name of the author to the number of "
+"lines in an article."
+
+# type: Plain text
+#: ../tin.1:2569
+msgid ""
+"When B<tin> starts up the user's kill-file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"filter> (see also B<tin>(5))  is read. Each time a newsgroup is entered the "
+"rules are applied and articles killed or selected when they meet certain "
+"criteria."
+msgstr ""
+"When B<tin> starts up the user's kill-file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"filter> (see also B<tin>(5))  is read. Each time a newsgroup is entered the "
+"rules are applied and articles killed or selected when they meet certain "
+"criteria."
+
+# type: Plain text
+#: ../tin.1:2574
+msgid ""
+"The degree to which rules are applied depend on the B<kill_level> tinrc "
+"setting. By default killed articles will only be marked read. Adjust "
+"B<kill_level> for more aggressive processing. Articles that match an auto-"
+"selection rule are marked with a ''*''."
+msgstr ""
+"The degree to which rules are applied depend on the B<kill_level> tinrc "
+"setting. By default killed articles will only be marked read. Adjust "
+"B<kill_level> for more aggressive processing. Articles that match an auto-"
+"selection rule are marked with a ''*''."
+
+# type: Plain text
+#: ../tin.1:2579
+msgid ""
+"Filtering rules can be manually entered into I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/filter> (but don't do this whilst running B<tin> else you will lose your "
+"changes) or by using an on-screen menu within B<tin>."
+msgstr ""
+"Filtering rules can be manually entered into I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/filter> (but don't do this whilst running B<tin> else you will lose your "
+"changes) or by using an on-screen menu within B<tin>."
+
+# type: Plain text
+#: ../tin.1:2585
+msgid ""
+"The filtering capabilities of B<tin> have been significantly enhanced over "
+"previous versions to include scoring and better pattern matching. It is "
+"recommended that you read the file I<filtering> in the B<tin> documentation "
+"directory. This file can also be read online at E<lt>http://www.tin.org/"
+"filtering.txtE<gt>."
+msgstr ""
+"The filtering capabilities of B<tin> have been significantly enhanced over "
+"previous versions to include scoring and better pattern matching. It is "
+"recommended that you read the file I<filtering> in the B<tin> documentation "
+"directory. This file can also be read online at E<lt>http://www.tin.org/"
+"filtering.txtE<gt>."
+
+# type: Plain text
+#.  FIXME - Next paragraph is out of date
+#: ../tin.1:2597
+msgid ""
+"The on-screen filtering menu is accessed by pressing 'B<^K>' at the Group "
+"and Article levels. It allows the user to kill or select an article that "
+"matches the current ''Subject:'' line, ''From:'' line or a string entered by "
+"the user. The user entered string can be applied to the ''Subject:'' or "
+"\\&''From:'' lines of an article. The kill description can be limited to the "
+"current newsgroup or it can apply to all newsgroups. Once entered the user "
+"can abort the command and not save the kill description, edit the kill file "
+"or save the kill description."
+msgstr ""
+"The on-screen filtering menu is accessed by pressing 'B<^K>' at the Group "
+"and Article levels. It allows the user to kill or select an article that "
+"matches the current ''Subject:'' line, ''From:'' line or a string entered by "
+"the user. The user entered string can be applied to the ''Subject:'' or "
+"\\&''From:'' lines of an article. The kill description can be limited to the "
+"current newsgroup or it can apply to all newsgroups. Once entered the user "
+"can abort the command and not save the kill description, edit the kill file "
+"or save the kill description."
+
+# type: SS
+#: ../tin.1:2597
+#, no-wrap
+msgid "POSTING ARTICLES"
+msgstr "POSTING ARTICLES"
+
+# type: Plain text
+#: ../tin.1:2600
+msgid ""
+"B<tin> allows posting of articles, follow-up to already posted articles and "
+"replying direct through mail to the author of an article."
+msgstr ""
+"B<tin> allows posting of articles, follow-up to already posted articles and "
+"replying direct through mail to the author of an article."
+
+# type: Plain text
+#: ../tin.1:2610
+msgid ""
+"Use the B<Post> ('B<w>') command to post an article to a newsgroup.  After "
+"entering the post subject the default editor (i.e., B<vi>(1))  or the editor "
+"specified by the $B<VISUAL> or $B<EDITOR> environment variable will be "
+"started and the article can be entered. To crosspost articles simply add a "
+"comma and the name of the newsgroup(s) to the end of the ''Newsgroups:'' "
+"line at the beginning of the article. After saving and exiting the editor "
+"you are asked if you wish to a)bort posting the article, e)dit the article "
+"again or p)ost the article to the specified newsgroup(s)."
+msgstr ""
+"Use the B<Post> ('B<w>') command to post an article to a newsgroup.  After "
+"entering the post subject the default editor (i.e., B<vi>(1))  or the editor "
+"specified by the $B<VISUAL> or $B<EDITOR> environment variable will be "
+"started and the article can be entered. To crosspost articles simply add a "
+"comma and the name of the newsgroup(s) to the end of the ''Newsgroups:'' "
+"line at the beginning of the article. After saving and exiting the editor "
+"you are asked if you wish to a)bort posting the article, e)dit the article "
+"again or p)ost the article to the specified newsgroup(s)."
+
+# type: Plain text
+#: ../tin.1:2615
+msgid ""
+"Use the B<DisplayPostHist> ('B<W>') command to display a history of the "
+"articles you have posted. The date the article was posted, which newsgroups "
+"the article was posted to and the articles subject line are displayed."
+msgstr ""
+"Use the B<DisplayPostHist> ('B<W>') command to display a history of the "
+"articles you have posted. The date the article was posted, which newsgroups "
+"the article was posted to and the articles subject line are displayed."
+
+# type: Plain text
+#: ../tin.1:2623
+msgid ""
+"Use the B<PageFollowupQuote> ('B<f>'), B<PageFollowup> ('B<F>')  or "
+"B<PageFollowupQuoteHeaders> ('B<^W>') command to post a follow-up article to "
+"an already posted article. The B<PageFollowupQuote> command will copy the "
+"text of the original article into the editor. The "
+"B<PageFollowupQuoteHeaders> command will copy the text and all headers of "
+"the original article into the editor. The editing procedure is the same as "
+"when posting an article with the B<Post> ('B<w>') command."
+msgstr ""
+"Use the B<PageFollowupQuote> ('B<f>'), B<PageFollowup> ('B<F>')  or "
+"B<PageFollowupQuoteHeaders> ('B<^W>') command to post a follow-up article to "
+"an already posted article. The B<PageFollowupQuote> command will copy the "
+"text of the original article into the editor. The "
+"B<PageFollowupQuoteHeaders> command will copy the text and all headers of "
+"the original article into the editor. The editing procedure is the same as "
+"when posting an article with the B<Post> ('B<w>') command."
+
+# type: Plain text
+#: ../tin.1:2637
+msgid ""
+"Use the B<PageReplyQuote> ('B<r>'), B<PageReply> ('B<R>') or "
+"B<PageReplyQuoteHeaders> ('B<^E>') command to reply direct through mail to "
+"the author of an already posted article. The B<PageReplyQuote> command will "
+"copy the text of the original article into the editor. The "
+"B<PageReplyQuoteHeaders> command will copy the text and all headers of the "
+"original article into the editor. The editing procedure is the same as when "
+"posting an article with the B<Post> ('B<w>') command. After saving and "
+"exiting the editor you are asked if you wish to abort sending the article "
+"via B<PostAbort> ('B<a>'), edit the article again via B<PostEdit> ('B<e>') "
+"or send the article to the author via B<PostSend> ('B<s>')."
+msgstr ""
+"Use the B<PageReplyQuote> ('B<r>'), B<PageReply> ('B<R>') or "
+"B<PageReplyQuoteHeaders> ('B<^E>') command to reply direct through mail to "
+"the author of an already posted article. The B<PageReplyQuote> command will "
+"copy the text of the original article into the editor. The "
+"B<PageReplyQuoteHeaders> command will copy the text and all headers of the "
+"original article into the editor. The editing procedure is the same as when "
+"posting an article with the B<Post> ('B<w>') command. After saving and "
+"exiting the editor you are asked if you wish to abort sending the article "
+"via B<PostAbort> ('B<a>'), edit the article again via B<PostEdit> ('B<e>') "
+"or send the article to the author via B<PostSend> ('B<s>')."
+
+# type: SS
+#: ../tin.1:2637
+#, no-wrap
+msgid "CUSTOMIZING THE ARTICLE QUOTE STRING"
+msgstr "CUSTOMIZING THE ARTICLE QUOTE STRING"
+
+# type: Plain text
+#: ../tin.1:2645
+msgid ""
+"When posting a followup to an article or replying direct to the author of an "
+"article via email the text of the article can be quoted. The beginning of "
+"the quoted text can contain information about the quoted article (e.g., Name "
+"and the Message-ID of the article). To allow for different situations "
+"certain information from the article can be used in the quoted string. The "
+"following variables are expanded if found in the tinrc variables "
+"B<mail_quote_format>, B<news_quote_format> or B<xpost_quote_format>:"
+msgstr ""
+"When posting a followup to an article or replying direct to the author of an "
+"article via email the text of the article can be quoted. The beginning of "
+"the quoted text can contain information about the quoted article (e.g., Name "
+"and the Message-ID of the article). To allow for different situations "
+"certain information from the article can be used in the quoted string. The "
+"following variables are expanded if found in the tinrc variables "
+"B<mail_quote_format>, B<news_quote_format> or B<xpost_quote_format>:"
+
+# type: ta
+#: ../tin.1:2647
+#, no-wrap
+msgid "\\w'%A  'u +\\w'Address'u"
+msgstr "\\w'%A  'u +\\w'Address'u"
+
+# type: Plain text
+#: ../tin.1:2656
+#, no-wrap
+msgid ""
+"B<%A>\tAddress (Email)\n"
+"B<%D>\tDate (uses B<date_format>)\n"
+"B<%F>\tFull address (%N E<lt>%AE<gt>)\n"
+"B<%G>\tGroupname\n"
+"B<%M>\tMessage-ID\n"
+"B<%N>\tFullname of author\n"
+"B<%C>\tFirstname of author\n"
+"B<%I>\tInitials of author\n"
+msgstr ""
+"B<%A>\tAddress (Email)\n"
+"B<%D>\tDate (uses B<date_format>)\n"
+"B<%F>\tFull address (%N E<lt>%AE<gt>)\n"
+"B<%G>\tGroupname\n"
+"B<%M>\tMessage-ID\n"
+"B<%N>\tFullname of author\n"
+"B<%C>\tFirstname of author\n"
+"B<%I>\tInitials of author\n"
+
+# type: Plain text
+#: ../tin.1:2659
+msgid "e.g.,"
+msgstr "e.g.,"
+
+# type: Plain text
+#: ../tin.1:2664
+#, no-wrap
+msgid ""
+"CW<mail_quote_format=On %D in %G you wrote:\n"
+"news_quote_format=In %M, %F wrote:>\n"
+msgstr ""
+"CW<mail_quote_format=On %D in %G you wrote:\n"
+"news_quote_format=In %M, %F wrote:>\n"
+
+# type: Plain text
+#: ../tin.1:2668
+msgid "would expand to:"
+msgstr "would expand to:"
+
+# type: Plain text
+#: ../tin.1:2673
+#, no-wrap
+msgid ""
+"CW<On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote:\n"
+"In E<lt>abcINN123@example.orgE<gt>, Joe Bar E<lt>joe@example.orgE<gt> wrote:>\n"
+msgstr ""
+"CW<On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote:\n"
+"In E<lt>abcINN123@example.orgE<gt>, Joe Bar E<lt>joe@example.orgE<gt> wrote:>\n"
+
+# type: Plain text
+#: ../tin.1:2683
+msgid ""
+"The quoted text section of an article is marked by a preceding quote string "
+"at the beginning of each quoted line. The default quote string is set to "
+"\\&'E<gt>_'. The default can be changed by setting the tinrc variable "
+"B<quote_chars> to ones own preference. (Note that '_' underline is used to "
+"represent a space)."
+msgstr ""
+"The quoted text section of an article is marked by a preceding quote string "
+"at the beginning of each quoted line. The default quote string is set to "
+"\\&'E<gt>_'. The default can be changed by setting the tinrc variable "
+"B<quote_chars> to ones own preference. (Note that '_' underline is used to "
+"represent a space)."
+
+# type: SS
+#: ../tin.1:2683
+#, no-wrap
+msgid "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"
+msgstr "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"
+
+# type: Plain text
+#: ../tin.1:2690
+msgid ""
+"The command interface to B<GroupMail>, B<PageMail>, B<PostMail> or "
+"B<ThreadMail> ('B<m>'), B<Pipe> ('B<|>'), B<Print> ('B<o>'), B<PageRepost> "
+"or B<GroupRepost> ('B<x>') and B<GroupSave>, B<PageSave> or B<ThreadSave> "
+"('B<s>' and B<GroupAutoSave>, B<PageAutoSave> or B<ThreadAutoSave> 'B<S>') "
+"articles is the same for ease of use."
+msgstr ""
+"The command interface to B<GroupMail>, B<PageMail>, B<PostMail> or "
+"B<ThreadMail> ('B<m>'), B<Pipe> ('B<|>'), B<Print> ('B<o>'), B<PageRepost> "
+"or B<GroupRepost> ('B<x>') and B<GroupSave>, B<PageSave> or B<ThreadSave> "
+"('B<s>' and B<GroupAutoSave>, B<PageAutoSave> or B<ThreadAutoSave> 'B<S>') "
+"articles is the same for ease of use."
+
+# type: Plain text
+#: ../tin.1:2695
+msgid ""
+"Auto-saving with B<*AutoSave> ('B<S>') is a special case and operates only "
+"on marked articles. They will processed without any further prompting "
+"according to the default save parameters defined in tinrc or by any "
+"attributes set for the current group."
+msgstr ""
+"Auto-saving with B<*AutoSave> ('B<S>') is a special case and operates only "
+"on marked articles. They will processed without any further prompting "
+"according to the default save parameters defined in tinrc or by any "
+"attributes set for the current group."
+
+# type: Plain text
+#: ../tin.1:2699
+msgid ""
+"Otherwise, the initial prompt will ask you to select which article, thread, "
+"hot (auto-selected), regex pattern, tagged articles you wish to mail, pipe "
+"etc."
+msgstr ""
+"Otherwise, the initial prompt will ask you to select which article, thread, "
+"hot (auto-selected), regex pattern, tagged articles you wish to mail, pipe "
+"etc."
+
+# type: Plain text
+#: ../tin.1:2703
+msgid ""
+"Tagged articles must have already been tagged with a B<*Tag> ('B<t>')  "
+"command. All tagged articles can be untagged by a B<*Untag> ('B<U>')  untag "
+"command."
+msgstr ""
+"Tagged articles must have already been tagged with a B<*Tag> ('B<t>')  "
+"command. All tagged articles can be untagged by a B<*Untag> ('B<U>')  untag "
+"command."
+
+# type: Plain text
+#: ../tin.1:2709
+msgid ""
+"If a regex pattern is selected you are asked to enter a pattern (e.g., to "
+"match all articles subject lines containing 'net News' you enter \"net News"
+"\"). Any articles that match the entered expression will be mailed, piped "
+"etc. See also the B<wildcard> tinrc variable for advanced pattern matching "
+"options."
+msgstr ""
+"If a regex pattern is selected you are asked to enter a pattern (e.g., to "
+"match all articles subject lines containing 'net News' you enter \"net News"
+"\"). Any articles that match the entered expression will be mailed, piped "
+"etc. See also the B<wildcard> tinrc variable for advanced pattern matching "
+"options."
+
+# type: Plain text
+#: ../tin.1:2714
+msgid ""
+"Various expansion characters are recognized when entering the directory and "
+"file to save to. Environment variables (prefixed with '$') and user home "
+"directories (prefixed by '~' or '~username') can be specified.  Environment "
+"variables can themselves contain other special characters."
+msgstr ""
+"Various expansion characters are recognised when entering the directory and "
+"file to save to. Environment variables (prefixed with '$') and user home "
+"directories (prefixed by '~' or '~username') can be specified.  Environment "
+"variables can themselves contain other special characters."
+
+# type: Plain text
+#: ../tin.1:2719
+msgid ""
+"To save articles to a mailbox enter '=E<lt>mailbox nameE<gt>' when asked for "
+"the save filename. If you enter just '=' then articles will be saved to a "
+"mailbox with the name of the current newsgroup (eg, alt.sources).  See "
+"B<maildir>."
+msgstr ""
+"To save articles to a mailbox enter '=E<lt>mailbox nameE<gt>' when asked for "
+"the save filename. If you enter just '=' then articles will be saved to a "
+"mailbox with the name of the current newsgroup (eg, alt.sources).  See "
+"B<maildir>."
+
+# type: Plain text
+#: ../tin.1:2723
+msgid ""
+"To save in savedir/E<lt>news.group.nameE<gt>/E<lt>filenameE<gt> format enter "
+"'+E<lt>filenameE<gt>'.  Environment variables are allowed within a filename "
+"(e.g., I<$SOURCES/dir/filename>). See B<savedir>."
+msgstr ""
+"To save in savedir/E<lt>news.group.nameE<gt>/E<lt>filenameE<gt> format enter "
+"'+E<lt>filenameE<gt>'.  Environment variables are allowed within a filename "
+"(e.g., I<$SOURCES/dir/filename>). See B<savedir>."
+
+# type: Plain text
+#: ../tin.1:2729
+msgid ""
+"When saving articles you can specify whether the saved files should be post "
+"processed. A default process type can be set via B<post_process_type>."
+msgstr ""
+"When saving articles you can specify whether the saved files should be post "
+"processed. A default process type can be set via B<post_process_type>."
+
+# type: SS
+#: ../tin.1:2729
+#, no-wrap
+msgid "AUTOMATIC MAILING AND SAVING NEW NEWS"
+msgstr "AUTOMATIC MAILING AND SAVING NEW NEWS"
+
+# type: Plain text
+#: ../tin.1:2741
+msgid ""
+"B<tin> allows new/unread news articles to be mailed (''B<-M>'' and \\&''B<-"
+"N>'' option) or saved (''B<-S>'' option) in batch mode for later reading. "
+"Useful when going on holiday and you don't want to return and find that "
+"expire has removed a whole load of unread articles. Best to run via B<cron>"
+"(1)  everyday while away, after which you will be mailed a report of which "
+"articles were mailed/saved from which newsgroups and the total number of "
+"articles mailed/saved. Articles are saved in a private news structure under "
+"your E<lt>savedirE<gt> directory (default is I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"News>). Be careful of using this option if you read a lot of groups because "
+"you could overflow your file system."
+msgstr ""
+"B<tin> allows new/unread news articles to be mailed (''B<-M>'' and \\&''B<-"
+"N>'' option) or saved (''B<-S>'' option) in batch mode for later reading. "
+"Useful when going on holiday and you don't want to return and find that "
+"expire has removed a whole load of unread articles. Best to run via B<cron>"
+"(1)  everyday while away, after which you will be mailed a report of which "
+"articles were mailed/saved from which newsgroups and the total number of "
+"articles mailed/saved. Articles are saved in a private news structure under "
+"your E<lt>savedirE<gt> directory (default is I<${TIN_HOMEDIR:-\"$HOME\"}/"
+"News>). Be careful of using this option if you read a lot of groups because "
+"you could overflow your file system."
+
+# type: Plain text
+#: ../tin.1:2745
+msgid ""
+"When using ''B<-S>'' together with a given directory to save to (''B<-s>'' "
+"option), the same directory must be specified when reading the articles by "
+"''B<-R>''."
+msgstr ""
+"When using ''B<-S>'' together with a given directory to save to (''B<-s>'' "
+"option), the same directory must be specified when reading the articles by "
+"''B<-R>''."
+
+# type: Plain text
+#: ../tin.1:2752
+msgid ""
+"If you only want to save some of your groups use the B<batch_save> tinrc "
+"variable. Set to ON or OFF in tinrc to enable/disable saving of all groups "
+"and then use the B<batch_save> attribute to fine tune which groups you want "
+"to have saved. For example, if you want to save most of your groups, then "
+"set B<batch_save> to ON in tinrc and selectively turn off the ones you don't "
+"want using attributes."
+msgstr ""
+"If you only want to save some of your groups use the B<batch_save> tinrc "
+"variable. Set to ON or OFF in tinrc to enable/disable saving of all groups "
+"and then use the B<batch_save> attribute to fine tune which groups you want "
+"to have saved. For example, if you want to save most of your groups, then "
+"set B<batch_save> to ON in tinrc and selectively turn off the ones you don't "
+"want using attributes."
+
+# type: TP
+#: ../tin.1:2753
+#, no-wrap
+msgid "B<tin -M iain -c -f newsrc.mail>"
+msgstr "B<tin -M iain -c -f newsrc.mail>"
+
+# type: Plain text
+#: ../tin.1:2757
+msgid ""
+"(mail any unread articles in newsgroups specified in file newsrc.mail to the "
+"local user iain and mark them as read)"
+msgstr ""
+"(mail any unread articles in newsgroups specified in file newsrc.mail to the "
+"local user iain and mark them as read)"
+
+# type: TP
+#: ../tin.1:2758
+#, no-wrap
+msgid "B<tin -S -c -f newsrc.save>"
+msgstr "B<tin -S -c -f newsrc.save>"
+
+# type: Plain text
+#: ../tin.1:2762
+msgid ""
+"(save any unread articles in newsgroups specified in file newsrc.save and "
+"mark them as read)"
+msgstr ""
+"(save any unread articles in newsgroups specified in file newsrc.save and "
+"mark them as read)"
+
+# type: TP
+#: ../tin.1:2763
+#, no-wrap
+msgid "B<tin -R>"
+msgstr "B<tin -R>"
+
+# type: Plain text
+#: ../tin.1:2768
+msgid "(read any articles saved by B<tin -S>)"
+msgstr "(read any articles saved by B<tin -S>)"
+
+# type: SS
+#: ../tin.1:2768
+#, no-wrap
+msgid "RANGES"
+msgstr "RANGES"
+
+# type: Plain text
+#: ../tin.1:2779
+msgid ""
+"A range is simply a group of items marked using the B<SetRange> (B<'#'>) "
+"key. Certain B<tin> commands will operate on a range if one exists rather "
+"than just the current item. A range is an expression of the form "
+"E<lt>minE<gt>-E<lt>maxE<gt>, e.g. 10-15 will highlight items 10 through 15 "
+"on the current screen. Other than absolute numeric positions, '.' can be "
+"used in place of the current cursor position and '$' can be used to mean the "
+"highest number available. Currently the only commands that understand ranges "
+"are B<GroupMarkThdRead> ('B<K>'), B<MarkArtUnread> ('B<z>') and "
+"B<MarkThdUnread> ('B<Z>')."
+msgstr ""
+"A range is simply a group of items marked using the B<SetRange> (B<'#'>) "
+"key. Certain B<tin> commands will operate on a range if one exists rather "
+"than just the current item. A range is an expression of the form "
+"E<lt>minE<gt>-E<lt>maxE<gt>, e.g. 10-15 will highlight items 10 through 15 "
+"on the current screen. Other than absolute numeric positions, '.' can be "
+"used in place of the current cursor position and '$' can be used to mean the "
+"highest number available. Currently the only commands that understand ranges "
+"are B<GroupMarkThdRead> ('B<K>'), B<MarkArtUnread> ('B<z>') and "
+"B<MarkThdUnread> ('B<Z>')."
+
+# type: SS
+#: ../tin.1:2780
+#, no-wrap
+msgid "NEWSGROUP LISTS & WILDCARDS"
+msgstr "NEWSGROUP LISTS & WILDCARDS"
+
+# type: Plain text
+#: ../tin.1:2791
+msgid ""
+"Several places in B<tin> allow you to specify a list of newsgroups. These "
+"include command-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE "
+"mechanism. The scope= attributes file tag and the filter file group= tag "
+"also use the same syntax. B<tin> interprets this variable similarly to B<rn"
+"(1).> It contains a list of patterns, separated by commas and possibly "
+"prefixed with exclamation points. An exclamation point negates the meaning "
+"of a match on this pattern, and can be used to cancel certain matches. Some "
+"examples:"
+msgstr ""
+"Several places in B<tin> allow you to specify a list of newsgroups. These "
+"include command-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE "
+"mechanism. The scope= attributes file tag and the filter file group= tag "
+"also use the same syntax. B<tin> interprets this variable similarly to B<rn"
+"(1).> It contains a list of patterns, separated by commas and possibly "
+"prefixed with exclamation points. An exclamation point negates the meaning "
+"of a match on this pattern, and can be used to cancel certain matches. Some "
+"examples:"
+
+# type: Plain text
+#: ../tin.1:2793
+msgid "I<alt.config,news.*,!news.test>"
+msgstr "I<alt.config,news.*,!news.test>"
+
+# type: Plain text
+#: ../tin.1:2795
+msgid ""
+"Matches alt.config and everything in the 'news' hierarchy except news.test"
+msgstr ""
+"Matches alt.config and everything in the 'news' hierarchy except news.test"
+
+# type: Plain text
+#: ../tin.1:2800
+msgid ""
+"See the explanation for the $B<AUTOSUBSCRIBE> variables for further examples."
+msgstr ""
+"See the explanation for the $B<AUTOSUBSCRIBE> variables for further examples."
+
+# type: SS
+#: ../tin.1:2800
+#, no-wrap
+msgid "SIGNATURES"
+msgstr "SIGNATURES"
+
+# type: Plain text
+#: ../tin.1:2809
+msgid ""
+"B<tin> will recognize a signature in either I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"signature> or I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>.  If I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.signature> exists, then the signature will be pulled into the editor "
+"for mail commands only. A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"signature> will not be pulled into the editor for posting commands since "
+"B<inews>(1)  will append the signature itself."
+msgstr ""
+"B<tin> will recognise a signature in either I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"signature> or I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>.  If I<${TIN_HOMEDIR:-\"$HOME"
+"\"}/.signature> exists, then the signature will be pulled into the editor "
+"for mail commands only. A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"signature> will not be pulled into the editor for posting commands since "
+"B<inews>(1)  will append the signature itself."
+
+# type: Plain text
+#: ../tin.1:2812
+msgid ""
+"A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig> will be pulled into the "
+"editor for both posting and mailing commands."
+msgstr ""
+"A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig> will be pulled into the "
+"editor for both posting and mailing commands."
+
+# type: Plain text
+#: ../tin.1:2814
+msgid "The following is an example of a I<.Sig> file:"
+msgstr "The following is an example of a I<.Sig> file:"
+
+# type: Plain text
+#: ../tin.1:2819
+#, no-wrap
+msgid ""
+"CW<NAMES  Joe Bar E<lt>joe@example.orgE<gt>\n"
+"SNAIL  Musterweg 12, 99999 Notreal, Germany>\n"
+msgstr ""
+"CW<NAMES  Joe Bar E<lt>joe@example.orgE<gt>\n"
+"SNAIL  Musterweg 12, 99999 Notreal, Germany>\n"
+
+# type: Plain text
+#: ../tin.1:2834
+msgid ""
+"B<tin> also has the capability to generate random signatures on a per "
+"newsgroup basis if so desired. The way to accomplish this is to specify the "
+"default signature or the group attribute sigfile as a directory. If for "
+"example the sigfile path is I</usr/iain/.sigs> and I<.sigs> is a directory "
+"then B<tin> will select a random signature from any file that is in the "
+"directory I<.sigs> (note: one signature per numbered file). A random "
+"signature can also consist of a fixed part signature that can contain your "
+"name, address etc. followed by the random sig. The fixed part of the random "
+"sig is read from the file I<$HOME/.sigfixed>."
+msgstr ""
+"B<tin> also has the capability to generate random signatures on a per "
+"newsgroup basis if so desired. The way to accomplish this is to specify the "
+"default signature or the group attribute sigfile as a directory. If for "
+"example the sigfile path is I</usr/iain/.sigs> and I<.sigs> is a directory "
+"then B<tin> will select a random signature from any file that is in the "
+"directory I<.sigs> (note: one signature per numbered file). A random "
+"signature can also consist of a fixed part signature that can contain your "
+"name, address etc. followed by the random sig. The fixed part of the random "
+"sig is read from the file I<$HOME/.sigfixed>."
+
+# type: SS
+#: ../tin.1:2834
+#, no-wrap
+msgid "TIPS AND TRICKS"
+msgstr "TIPS AND TRICKS"
+
+# type: Plain text
+#: ../tin.1:2838
+msgid ""
+"B<tin> can be pretty much be navigated by using the four cursor keys.  The "
+"left arrow key goes up a level, the right arrow key goes down a level, the "
+"up arrow key goes up a line and the down arrow key goes down a line."
+msgstr ""
+"B<tin> can be pretty much be navigated by using the four cursor keys.  The "
+"left arrow key goes up a level, the right arrow key goes down a level, the "
+"up arrow key goes up a line and the down arrow key goes down a line."
+
+# type: Plain text
+#: ../tin.1:2840
+msgid ""
+"The following newsgroups provide useful information concerning news software:"
+msgstr ""
+"The following newsgroups provide useful information concerning news software:"
+
+# type: Plain text
+#: ../tin.1:2843
+msgid ""
+"\\(emnews.software.readers (info. about news user agents tin, rn, nn, slrn "
+"etc.)"
+msgstr ""
+"\\(emnews.software.readers (info. about news user agents tin, rn, nn, slrn "
+"etc.)"
+
+# type: Plain text
+#: ../tin.1:2845
+msgid "\\(emnews.software.nntp (info. about NNTP)"
+msgstr "\\(emnews.software.nntp (info. about NNTP)"
+
+# type: Plain text
+#: ../tin.1:2847
+msgid ""
+"\\(emnews.answers (Frequently Asked Questions (FAQ) about many different "
+"themes)"
+msgstr ""
+"\\(emnews.answers (Frequently Asked Questions (FAQ) about many different "
+"themes)"
+
+# type: Plain text
+#: ../tin.1:2851
+msgid ""
+"Many prompts within B<tin> offer a default choice that the cursor is "
+"positioned on. By pressing 'B<E<lt>CRE<gt>>' the default value is taken.  "
+"Most prompts can be aborted by pressing 'B<E<lt>ESCE<gt>>'."
+msgstr ""
+"Many prompts within B<tin> offer a default choice that the cursor is "
+"positioned on. By pressing 'B<E<lt>CRE<gt>>' the default value is taken.  "
+"Most prompts can be aborted by pressing 'B<E<lt>ESCE<gt>>'."
+
+# type: Plain text
+#: ../tin.1:2858
+msgid ""
+"When B<tin> is run in an B<xterm>(1x)  it will resize itself each time the "
+"B<xterm>(1x)  is resized."
+msgstr ""
+"When B<tin> is run in an B<xterm>(1x)  it will resize itself each time the "
+"B<xterm>(1x)  is resized."
+
+# type: Plain text
+#: ../tin.1:2862
+msgid ""
+"B<tin> will reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file at set intervals (B<reread_active_file_secs>) to show any "
+"newly arrived news."
+msgstr ""
+"B<tin> will reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-"
+"active}> file at set intervals (B<reread_active_file_secs>) to show any "
+"newly arrived news."
+
+# type: Plain text
+#: ../tin.1:2867
+msgid ""
+"If you find large number of new newsgroups cluttering up your screen, "
+"pressing B<SelectToggleReadDisplay> ('B<r>') will make them go away."
+msgstr ""
+"If you find large number of new newsgroups cluttering up your screen, "
+"pressing B<SelectToggleReadDisplay> ('B<r>') will make them go away."
+
+# type: SS
+#: ../tin.1:2867
+#, no-wrap
+msgid "XTERM BUTTONS"
+msgstr "XTERM BUTTONS"
+
+# type: Plain text
+#: ../tin.1:2873
+msgid ""
+"If the environment variable B<$TERM> is set to B<xterm>(1x), then button "
+"pressing can be used to select groups and articles. In this discussion, the "
+"buttons are assumed to be assigned conventionally (i.e., Button1 is the left "
+"button)."
+msgstr ""
+"If the environment variable B<$TERM> is set to B<xterm>(1x), then button "
+"pressing can be used to select groups and articles. In this discussion, the "
+"buttons are assumed to be assigned conventionally (i.e., Button1 is the left "
+"button)."
+
+# type: Plain text
+#: ../tin.1:2875
+msgid "In general (i.e., for the group, thread and article menus),"
+msgstr "In general (i.e., for the group, thread and article menus),"
+
+# type: TP
+#: ../tin.1:2875
+#, no-wrap
+msgid "Button1 (left)"
+msgstr "Button1 (left)"
+
+# type: Plain text
+#: ../tin.1:2878
+msgid ""
+"enters next (lower) level if you click on an article, otherwise pages down."
+msgstr ""
+"enters next (lower) level if you click on an article, otherwise pages down."
+
+# type: TP
+#: ../tin.1:2878
+#, no-wrap
+msgid "Button2 (center)"
+msgstr "Button2 (centre)"
+
+# type: Plain text
+#: ../tin.1:2882
+msgid ""
+"returns to the previous (upper) level if you click on an article, otherwise "
+"pages up."
+msgstr ""
+"returns to the previous (upper) level if you click on an article, otherwise "
+"pages up."
+
+# type: TP
+#: ../tin.1:2882
+#, no-wrap
+msgid "Button3 (right)"
+msgstr "Button3 (right)"
+
+# type: Plain text
+#: ../tin.1:2886
+msgid ""
+"positions on the article line under mouse cursor, or pages down if you've "
+"clicked outside the list of articles."
+msgstr ""
+"positions on the article line under mouse cursor, or pages down if you've "
+"clicked outside the list of articles."
+
+# type: Plain text
+#: ../tin.1:2888
+msgid "In the group selection menu, if the mouse is pointing at a group then:"
+msgstr "In the group selection menu, if the mouse is pointing at a group then:"
+
+# type: TP
+#: ../tin.1:2888 ../tin.1:2900 ../tin.1:2914
+#, no-wrap
+msgid "left button"
+msgstr "left button"
+
+# type: Plain text
+#: ../tin.1:2892
+msgid ""
+"moves to and selects the group pointed at, just like B<SelectReadGrp> "
+"('B<E<lt>CRE<gt>>')."
+msgstr ""
+"moves to and selects the group pointed at, just like B<SelectReadGrp> "
+"('B<E<lt>CRE<gt>>')."
+
+# type: TP
+#: ../tin.1:2892 ../tin.1:2904 ../tin.1:2917
+#, no-wrap
+msgid "center button"
+msgstr "centre button"
+
+# type: Plain text
+#: ../tin.1:2895
+msgid "quits the program, just like B<Quit> ('B<q>')."
+msgstr "quits the program, just like B<Quit> ('B<q>')."
+
+# type: TP
+#: ../tin.1:2895 ../tin.1:2909 ../tin.1:2922
+#, no-wrap
+msgid "right button"
+msgstr "right button"
+
+# type: Plain text
+#: ../tin.1:2898
+msgid "moves to the group pointed at."
+msgstr "moves to the group pointed at."
+
+# type: Plain text
+#: ../tin.1:2900
+msgid ""
+"In the article menu, if the mouse is pointing at an article (or thread) then:"
+msgstr ""
+"In the article menu, if the mouse is pointing at an article (or thread) then:"
+
+# type: Plain text
+#: ../tin.1:2904
+msgid ""
+"reads the article pointed at, just like B<GroupReadBasenote> "
+"('B<E<lt>CRE<gt>>'), or the thread, just like B<GroupListThd> ('B<l>')."
+msgstr ""
+"reads the article pointed at, just like B<GroupReadBasenote> "
+"('B<E<lt>CRE<gt>>'), or the thread, just like B<GroupListThd> ('B<l>')."
+
+# type: Plain text
+#: ../tin.1:2909
+msgid ""
+"exits the menu, catching up on the group if you have "
+"B<group_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+msgstr ""
+"exits the menu, catching up on the group if you have "
+"B<group_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+
+# type: Plain text
+#: ../tin.1:2912
+msgid "moves to the article (or thread) pointed at."
+msgstr "moves to the article (or thread) pointed at."
+
+# type: Plain text
+#: ../tin.1:2914
+msgid "In the thread menu, if the mouse is pointing at an article then:"
+msgstr "In the thread menu, if the mouse is pointing at an article then:"
+
+# type: Plain text
+#: ../tin.1:2917
+msgid ""
+"reads article pointed at, just like B<ThreadReadArt> ('B<E<lt>CRE<gt>>')."
+msgstr ""
+"reads article pointed at, just like B<ThreadReadArt> ('B<E<lt>CRE<gt>>')."
+
+# type: Plain text
+#: ../tin.1:2922
+msgid ""
+"exits the menu, catching up on the thread if you have "
+"B<thread_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+msgstr ""
+"exits the menu, catching up on the thread if you have "
+"B<thread_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+
+# type: Plain text
+#: ../tin.1:2925
+msgid "moves to the article pointed at."
+msgstr "moves to the article pointed at."
+
+# type: Plain text
+#: ../tin.1:2932
+msgid ""
+"In other menus and areas button pressing reverts back to usual cut and paste "
+"of B<xterm>(1x), but after one click of any button."
+msgstr ""
+"In other menus and areas button pressing reverts back to usual cut and paste "
+"of B<xterm>(1x), but after one click of any button."
+
+# type: SS
+#: ../tin.1:2932
+#, no-wrap
+msgid "INDEX FILES"
+msgstr "INDEX FILES"
+
+# type: Plain text
+#: ../tin.1:2937
+msgid ""
+"If your news server supports NOV index files (see B<newsoverview>(5), most "
+"modern installations will) and you have a fast connection to your news "
+"server then this section can be ignored."
+msgstr ""
+"If your news server supports NOV index files (see B<newsoverview>(5), most "
+"modern installations will) and you have a fast connection to your news "
+"server then this section can be ignored."
+
+# type: Plain text
+#: ../tin.1:2943
+msgid ""
+"If your news server doesn't support NOV index files or you have a very slow "
+"connection to your news server then B<tin> can cache the index for each "
+"newsgroup if B<cache_overview_files> is set to ON.  Note that this cache can "
+"use up large amounts of diskspace if you read a lot of groups and/or high "
+"traffic groups."
+msgstr ""
+"If your news server doesn't support NOV index files or you have a very slow "
+"connection to your news server then B<tin> can cache the index for each "
+"newsgroup if B<cache_overview_files> is set to ON.  Note that this cache can "
+"use up large amounts of diskspace if you read a lot of groups and/or high "
+"traffic groups."
+
+# type: Plain text
+#: ../tin.1:2952
+msgid ""
+"Each user creates/updates his/her own index files that are stored in I<"
+"${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news/>. If you are "
+"reading via NNTP then the news server name will be appended to keep the "
+"indexes for different servers separate. If you are reading off the local "
+"spool and local overview files already exist then turning on caching will "
+"have no effect. Likewise unless you see significant delays entering a group "
+"when reading via NNTP then turning on caching will have little or no effect."
+msgstr ""
+"Each user creates/updates his/her own index files that are stored in I<"
+"${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news/>. If you are "
+"reading via NNTP then the news server name will be appended to keep the "
+"indexes for different servers separate. If you are reading off the local "
+"spool and local overview files already exist then turning on caching will "
+"have no effect. Likewise unless you see significant delays entering a group "
+"when reading via NNTP then turning on caching will have little or no effect."
+
+# type: Plain text
+#: ../tin.1:2959
+msgid ""
+"Entering a group the first time tends to be slow because the index file must "
+"be built from scratch. To alleviate the slowness start B<tin> to create all "
+"index files for the groups you subscribe to with B<tin -u -v> and go for a "
+"coffee. Subsequent readings of a group will only need to do incremental "
+"updating of the index file and will be much faster as only new articles will "
+"need to be cached."
+msgstr ""
+"Entering a group the first time tends to be slow because the index file must "
+"be built from scratch. To alleviate the slowness start B<tin> to create all "
+"index files for the groups you subscribe to with B<tin -u -v> and go for a "
+"coffee. Subsequent readings of a group will only need to do incremental "
+"updating of the index file and will be much faster as only new articles will "
+"need to be cached."
+
+# type: Plain text
+#: ../tin.1:2964
+msgid ""
+"As indexing might take some time you may want to run B<tin> form the system "
+"batcher B<cron>(1)  with the ''B<-u>'' option:"
+msgstr ""
+"As indexing might take some time you may want to run B<tin> form the system "
+"batcher B<cron>(1)  with the ''B<-u>'' option:"
+
+# type: Plain text
+#: ../tin.1:2969
+#, no-wrap
+msgid "CW<30 6 * * * /usr/local/bin/tin -u>\n"
+msgstr "CW<30 6 * * * /usr/local/bin/tin -u>\n"
+
+# type: Plain text
+#: ../tin.1:2977
+msgid ""
+"If you are low on local disk space you should consider using B<getart_limit> "
+"to limit the size of cached indexes and also manually purge cached data for "
+"groups you are not reading anymore with something like:"
+msgstr ""
+"If you are low on local disk space you should consider using B<getart_limit> "
+"to limit the size of cached indexes and also manually purge cached data for "
+"groups you are not reading anymore with something like:"
+
+# type: Plain text
+#: ../tin.1:2983
+#, no-wrap
+msgid ""
+"CW<find ${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news* \\e\n"
+"-type f -name \"[0-9]*.[0-9]\" -atime +28 | xargs rm -f>\n"
+msgstr ""
+"CW<find ${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news* \\e\n"
+"-type f -name \"[0-9]*.[0-9]\" -atime +28 | xargs rm -f>\n"
+
+# type: SH
+#: ../tin.1:2988 ../tin.5:20
+#, no-wrap
+msgid "FILES"
+msgstr "FILES"
+
+# type: Plain text
+#.  TODO: mention dead.article, dead.articles
+#.                .article[.$$], .cancel[.$$], .letter[.$$]?
+#.        $PWD/trace[.out]   (--with-trace)
+#.        $TMPDIR/NNTP       (-D 1)
+#.        $TMPDIR/FILTER     (-D 2)
+#.        $TMPDIR/ARTS       (-D 2)
+#.        $TMPDIR/BITMAP     (-D 4)
+#.        $TMPDIR/REFS.dump  (-D 8)
+#.        $TMPDIR/REFS.info  (-D 8)
+#.        $TMPDIR/MALLOC     (-D 16)
+#.        $TMPDIR/ATTRIBUTES (-D 32)
+#.        $TMPDIR/SCOPES-R   (-D 32)
+#.        $TMPDIR/SCOPES-W   (-D 32)
+#.        $TMPDIR/ACTIVE     (-D 64)
+#: ../tin.1:3005
+msgid "For a detailed description see B<tin>(5)."
+msgstr "For a detailed description see B<tin>(5)."
+
+# type: Plain text
+#: ../tin.1:3007 ../tin.5:41
+msgid "I<$MAILCAPS>"
+msgstr "I<$MAILCAPS>"
+
+# type: Plain text
+#: ../tin.1:3009 ../tin.5:43
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.mailcap>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.mailcap>"
+
+# type: Plain text
+#: ../tin.1:3011 ../tin.5:45
+msgid "I</etc/mailcap>"
+msgstr "I</etc/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3013 ../tin.5:47
+msgid "I</usr/etc/mailcap>"
+msgstr "I</usr/etc/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3015 ../tin.5:49
+msgid "I</usr/local/etc/mailcap>"
+msgstr "I</usr/local/etc/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3017 ../tin.5:51
+msgid "I</etc/mail/mailcap>"
+msgstr "I</etc/mail/mailcap>"
+
+# type: Plain text
+#: ../tin.1:3020 ../tin.5:220
+msgid "I</etc/nntpserver>"
+msgstr "I</etc/nntpserver>"
+
+# type: Plain text
+#: ../tin.1:3023 ../tin.5:230
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.cancelsecret>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.cancelsecret>"
+
+# type: Plain text
+#: ../tin.1:3026 ../tin.5:237
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.mime.types>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.mime.types>"
+
+# type: Plain text
+#: ../tin.1:3028 ../tin.5:239
+msgid "I</etc/mime.types>"
+msgstr "I</etc/mime.types>"
+
+# type: Plain text
+#: ../tin.1:3030 ../tin.5:241
+msgid "I</etc/tin/mime.types>"
+msgstr "I</etc/tin/mime.types>"
+
+# type: Plain text
+#: ../tin.1:3033 ../tin.5:248
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsauth>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsauth>"
+
+# type: Plain text
+#: ../tin.1:3036 ../tin.5:281
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+
+# type: Plain text
+#: ../tin.1:3040 ../tin.5:310
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/.oldnewsrc>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/.oldnewsrc>\n"
+
+# type: Plain text
+#: ../tin.1:3044 ../tin.5:318
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.signature>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.signature>"
+
+# type: Plain text
+#: ../tin.1:3046 ../tin.5:320
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>"
+
+# type: Plain text
+#: ../tin.1:3049 ../tin.5:327
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.sigfixed>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.sigfixed>"
+
+# type: Plain text
+#: ../tin.1:3052 ../tin.5:334
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/.inputhistory>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/.inputhistory>"
+
+# type: Plain text
+#: ../tin.1:3055 ../tin.5:341
+msgid "I<${TIN_INDEX_MAILDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.mail/>"
+msgstr "I<${TIN_INDEX_MAILDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.mail/>"
+
+# type: Plain text
+#: ../tin.1:3059 ../tin.5:349
+#, no-wrap
+msgid "I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news${NNTPSERVER:+\"-$NNTPSERVER\"}/>\n"
+msgstr "I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news${NNTPSERVER:+\"-$NNTPSERVER\"}/>\n"
+
+# type: Plain text
+#: ../tin.1:3063 ../tin.5:357
+msgid "I<${TIN_INDEX_SAVEDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.save/>"
+msgstr "I<${TIN_INDEX_SAVEDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.save/>"
+
+# type: Plain text
+#: ../tin.1:3066 ../tin.5:364
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.mail>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.mail>"
+
+# type: Plain text
+#: ../tin.1:3069 ../tin.5:398
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.save>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.save>"
+
+# type: Plain text
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths (/news/etc/)
+#.  ${TIN_LIBDIR\-/news/etc"}/attributes
+#: ../tin.1:3073 ../tin.5:409
+msgid "I</etc/tin/attributes>"
+msgstr "I</etc/tin/attributes>"
+
+# type: Plain text
+#: ../tin.1:3075 ../tin.5:411
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>"
+
+# type: Plain text
+#.  TODO: add missing descriptions and explain things in detail.
+#: ../tin.1:3078 ../tin.5:736
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter>"
+
+# type: Plain text
+#: ../tin.1:3082 ../tin.5:818
+#, no-wrap
+msgid "I</etc/tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+msgstr "I</etc/tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+
+# type: Plain text
+#: ../tin.1:3084 ../tin.5:820
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+
+# type: Plain text
+#: ../tin.1:3088 ../tin.5:1053
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups>"
+
+# type: Plain text
+#: ../tin.1:3091 ../tin.5:1069
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>"
+
+# type: Plain text
+#: ../tin.1:3094 ../tin.5:1095
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/posted>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/posted>"
+
+# type: Plain text
+#: ../tin.1:3097 ../tin.5:1102
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/posted>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/posted>"
+
+# type: Plain text
+#: ../tin.1:3100 ../tin.5:1112
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/postponed.articles>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/postponed.articles>"
+
+# type: Plain text
+#: ../tin.1:3104
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+
+# type: Plain text
+#: ../tin.1:3109
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+
+# type: Plain text
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths (/news/etc/)
+#.  .IR ${TIN_LIBDIR\-"/news/etc"}/tinrc
+#: ../tin.1:3114 ../tin.5:1165
+msgid "I</etc/tin/tinrc>"
+msgstr "I</etc/tin/tinrc>"
+
+# type: Plain text
+#: ../tin.1:3116 ../tin.5:1167
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>"
+
+# type: Plain text
+#: ../tin.1:3119 ../tin.5:2269
+msgid "I</etc/tin/tin.defaults>"
+msgstr "I</etc/tin/tin.defaults>"
+
+# type: Plain text
+#: ../tin.1:3122
+msgid "I</usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo>"
+msgstr "I</usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo>"
+
+# type: Plain text
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths
+#.  (described shown below).
+#: ../tin.1:3125 ../tin.5:2376
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}>"
+
+# type: Plain text
+#: ../tin.1:3128 ../tin.5:2436
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/active.times>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/active.times>"
+
+# type: Plain text
+#: ../tin.1:3131 ../tin.5:2463
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups>"
+
+# type: Plain text
+#: ../tin.1:3134 ../tin.5:2486
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/organization>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/organization>"
+
+# type: Plain text
+#.  is the Path correct? or is it /news/etc/overview.fmt
+#: ../tin.1:3137 ../tin.5:2496
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt>"
+
+# type: Plain text
+#.  is the Path correct? or is it /news/etc/subscriptions
+#: ../tin.1:3140 ../tin.5:2514
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>"
+msgstr "I<${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>"
+
+# type: SH
+#: ../tin.1:3143
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "ENVIRONMENT"
+
+# type: TP
+#: ../tin.1:3157
+#, no-wrap
+msgid "B<TINRC>"
+msgstr "B<TINRC>"
+
+# type: Plain text
+#: ../tin.1:3165
+msgid ""
+"Define this variable if you want to specify command-line options that B<tin> "
+"should be started with to save typing them each time it is started. The "
+"contents of the environment variable are added to the front of the command-"
+"line options before it is parsed therefore allowing an option specified on "
+"the command-line to override the same option specified in the environment."
+msgstr ""
+"Define this variable if you want to specify command-line options that B<tin> "
+"should be started with to save typing them each time it is started. The "
+"contents of the environment variable are added to the front of the command-"
+"line options before it is parsed therefore allowing an option specified on "
+"the command-line to override the same option specified in the environment."
+
+# type: TP
+#: ../tin.1:3165
+#, no-wrap
+msgid "B<TIN_HOMEDIR>"
+msgstr "B<TIN_HOMEDIR>"
+
+# type: Plain text
+#: ../tin.1:3170
+msgid ""
+"Define this variable if you do not want the I<.tin> directory in I<$HOME/>. "
+"E.g., if you want all B<tin>'s private files in I</tmp/.tin> you would set "
+"$B<TIN_HOMEDIR> to I</tmp>."
+msgstr ""
+"Define this variable if you do not want the I<.tin> directory in I<$HOME/>. "
+"E.g., if you want all B<tin>'s private files in I</tmp/.tin> you would set "
+"$B<TIN_HOMEDIR> to I</tmp>."
+
+# type: TP
+#: ../tin.1:3170
+#, no-wrap
+msgid "B<TIN_INDEX_NEWSDIR>"
+msgstr "B<TIN_INDEX_NEWSDIR>"
+
+# type: Plain text
+#: ../tin.1:3176
+msgid ""
+"Define this variable if you do not want the I<.news> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s news index "
+"files in I</tmp/.news> you would set $B<TIN_INDEX_NEWSDIR> to I</tmp>."
+msgstr ""
+"Define this variable if you do not want the I<.news> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s news index "
+"files in I</tmp/.news> you would set $B<TIN_INDEX_NEWSDIR> to I</tmp>."
+
+# type: TP
+#: ../tin.1:3176
+#, no-wrap
+msgid "B<TIN_INDEX_MAILDIR>"
+msgstr "B<TIN_INDEX_MAILDIR>"
+
+# type: Plain text
+#: ../tin.1:3182
+msgid ""
+"Define this variable if you do not want the I<.mail> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s mail index "
+"files in I</tmp/.mail> you would set $B<TIN_INDEX_MAILDIR> to I</tmp>."
+msgstr ""
+"Define this variable if you do not want the I<.mail> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s mail index "
+"files in I</tmp/.mail> you would set $B<TIN_INDEX_MAILDIR> to I</tmp>."
+
+# type: TP
+#: ../tin.1:3182
+#, no-wrap
+msgid "B<TIN_INDEX_SAVEDIR>"
+msgstr "B<TIN_INDEX_SAVEDIR>"
+
+# type: Plain text
+#: ../tin.1:3188
+msgid ""
+"Define this variable if you do not want the I<.save> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s save index "
+"files in I</tmp/.save> you would set $B<TIN_INDEX_SAVEDIR> to I</tmp>."
+msgstr ""
+"Define this variable if you do not want the I<.save> directory in I<"
+"${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s save index "
+"files in I</tmp/.save> you would set $B<TIN_INDEX_SAVEDIR> to I</tmp>."
+
+# type: TP
+#: ../tin.1:3188
+#, no-wrap
+msgid "B<TIN_LIBDIR>"
+msgstr "B<TIN_LIBDIR>"
+
+# type: Plain text
+#: ../tin.1:3193
+msgid ""
+"Define this variable if you want to override the B<NEWSLIBDIR> path that was "
+"compiled into the B<tin> binary, default is I</usr/lib/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+msgstr ""
+"Define this variable if you want to override the B<NEWSLIBDIR> path that was "
+"compiled into the B<tin> binary, default is I</usr/lib/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+
+# type: TP
+#: ../tin.1:3193
+#, no-wrap
+msgid "B<TIN_SPOOLDIR>"
+msgstr "B<TIN_SPOOLDIR>"
+
+# type: Plain text
+#: ../tin.1:3198
+msgid ""
+"Define this variable if you want to override the B<SPOOLDIR> path that was "
+"compiled into the B<tin> binary, default is I</var/spool/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+msgstr ""
+"Define this variable if you want to override the B<SPOOLDIR> path that was "
+"compiled into the B<tin> binary, default is I</var/spool/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+
+# type: TP
+#: ../tin.1:3198
+#, no-wrap
+msgid "B<TIN_NOVROOTDIR>"
+msgstr "B<TIN_NOVROOTDIR>"
+
+# type: Plain text
+#: ../tin.1:3204
+msgid ""
+"Define this variable if you want to override the B<NOVROOTDIR> path that was "
+"compiled into the B<tin> binary, default is B<SPOOLDIR> (see above). If tin "
+"is running in NNTP mode setting this variable has no effect."
+msgstr ""
+"Define this variable if you want to override the B<NOVROOTDIR> path that was "
+"compiled into the B<tin> binary, default is B<SPOOLDIR> (see above). If tin "
+"is running in NNTP mode setting this variable has no effect."
+
+# type: TP
+#: ../tin.1:3204
+#, no-wrap
+msgid "B<TIN_ACTIVEFILE>"
+msgstr "B<TIN_ACTIVEFILE>"
+
+# type: Plain text
+#: ../tin.1:3210
+msgid ""
+"Define this variable if you want to override the B<NEWSLIBDIR/active> path "
+"that was compiled into the B<tin> binary. If tin is running in NNTP mode "
+"setting this variable has no effect. If $B<TIN_LIBDIR> is set it is "
+"prepended to $B<TIN_ACTIVEFILE>."
+msgstr ""
+"Define this variable if you want to override the B<NEWSLIBDIR/active> path "
+"that was compiled into the B<tin> binary. If tin is running in NNTP mode "
+"setting this variable has no effect. If $B<TIN_LIBDIR> is set it is "
+"prepended to $B<TIN_ACTIVEFILE>."
+
+# type: TP
+#: ../tin.1:3210
+#, no-wrap
+msgid "B<NNTPSERVER>"
+msgstr "B<NNTPSERVER>"
+
+# type: Plain text
+#: ../tin.1:3216
+msgid ""
+"The default NNTP server to remotely read news from. This variable only needs "
+"to be set if the ''B<-r>'' command-line option is specified and the file I</"
+"etc/nntpserver> does not exist. The ''B<-g>'' command line option overrides "
+"$B<NNTPSERVER>."
+msgstr ""
+"The default NNTP server to remotely read news from. This variable only needs "
+"to be set if the ''B<-r>'' command-line option is specified and the file I</"
+"etc/nntpserver> does not exist. The ''B<-g>'' command line option overrides "
+"$B<NNTPSERVER>."
+
+# type: TP
+#: ../tin.1:3216
+#, no-wrap
+msgid "B<NNTPPORT>"
+msgstr "B<NNTPPORT>"
+
+# type: Plain text
+#: ../tin.1:3221
+msgid ""
+"The NNTP TCP-port to read news from. This variable only needs to be set if "
+"the TCP-port is not 119 (the default).  The ''B<-p>'' command-line option "
+"overrides $B<NNTPPORT>."
+msgstr ""
+"The NNTP TCP-port to read news from. This variable only needs to be set if "
+"the TCP-port is not 119 (the default).  The ''B<-p>'' command-line option "
+"overrides $B<NNTPPORT>."
+
+# type: TP
+#: ../tin.1:3221
+#, no-wrap
+msgid "B<DISTRIBUTION>"
+msgstr "B<DISTRIBUTION>"
+
+# type: Plain text
+#: ../tin.1:3225
+msgid ""
+"Set the article header field ''Distribution:'' to the contents of the "
+"variable instead of the system default."
+msgstr ""
+"Set the article header field ''Distribution:'' to the contents of the "
+"variable instead of the system default."
+
+# type: TP
+#: ../tin.1:3225
+#, no-wrap
+msgid "B<ISO2ASC>"
+msgstr "B<ISO2ASC>"
+
+# type: Plain text
+#: ../tin.1:3229
+msgid ""
+"Set the ISO to ASCII charset decoding table character to use in decoding an "
+"article text. Values can range from 0 to 6."
+msgstr ""
+"Set the ISO to ASCII charset decoding table character to use in decoding an "
+"article text. Values can range from 0 to 6."
+
+# type: Plain text
+#: ../tin.1:3233
+msgid "universal table for many languages"
+msgstr "universal table for many languages"
+
+# type: Plain text
+#: ../tin.1:3236
+msgid "single-spacing universal table"
+msgstr "single-spacing universal table"
+
+# type: Plain text
+#: ../tin.1:3239
+msgid "table for Danish, Dutch, German, Norwegian and Swedish"
+msgstr "table for Danish, Dutch, German, Norwegian and Swedish"
+
+# type: TP
+#: ../tin.1:3239
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+# type: Plain text
+#: ../tin.1:3242
+msgid ""
+"table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO "
+"646 variant"
+msgstr ""
+"table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO "
+"646 variant"
+
+# type: Plain text
+#: ../tin.1:3245
+msgid "table with RFC 1345 codes in brackets"
+msgstr "table with RFC 1345 codes in brackets"
+
+# type: TP
+#: ../tin.1:3245
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+# type: Plain text
+#: ../tin.1:3248
+msgid "table for printers that allow overstriking with backspace"
+msgstr "table for printers that allow overstriking with backspace"
+
+# type: TP
+#: ../tin.1:3249
+#, no-wrap
+msgid "B<ORGANIZATION>"
+msgstr "B<ORGANIZATION>"
+
+# type: Plain text
+#: ../tin.1:3255
+msgid ""
+"Set the article header field ''Organization:'' to the contents of the "
+"variable instead of the system default. If reading news on an Apollo "
+"DomainOS machine the environment variable $B<NEWSORG> has to be used instead "
+"of $B<ORGANIZATION>."
+msgstr ""
+"Set the article header field ''Organization:'' to the contents of the "
+"variable instead of the system default. If reading news on an Apollo "
+"DomainOS machine the environment variable $B<NEWSORG> has to be used instead "
+"of $B<ORGANIZATION>."
+
+# type: TP
+#: ../tin.1:3255
+#, no-wrap
+msgid "B<NEWSORG (DomainOS)>"
+msgstr "B<NEWSORG (DomainOS)>"
+
+# type: Plain text
+#: ../tin.1:3258
+msgid "DomainOS specific, same as $B<ORGANIZATION> on other OSs (see above)."
+msgstr "DomainOS specific, same as $B<ORGANIZATION> on other OSs (see above)."
+
+# type: TP
+#: ../tin.1:3258
+#, no-wrap
+msgid "B<REPLYTO>"
+msgstr "B<REPLYTO>"
+
+# type: Plain text
+#: ../tin.1:3263
+msgid ""
+"Set the article header field ''Reply-To:'' to the return address specified "
+"by the variable. This is useful if you wish to receive replies at a "
+"different address."
+msgstr ""
+"Set the article header field ''Reply-To:'' to the return address specified "
+"by the variable. This is useful if you wish to receive replies at a "
+"different address."
+
+# type: TP
+#: ../tin.1:3263
+#, no-wrap
+msgid "B<NAME>"
+msgstr "B<NAME>"
+
+# type: Plain text
+#: ../tin.1:3267
+msgid ""
+"Overrides the full name given in the gecos-files in I</etc/passwd>, see also "
+"B<mail_address>."
+msgstr ""
+"Overrides the full name given in the gecos-files in I</etc/passwd>, see also "
+"B<mail_address>."
+
+# type: TP
+#: ../tin.1:3267
+#, no-wrap
+msgid "B<REALNAME>"
+msgstr "B<REALNAME>"
+
+# type: Plain text
+#: ../tin.1:3270
+msgid "Same as $B<NAME>."
+msgstr "Same as $B<NAME>."
+
+# type: TP
+#: ../tin.1:3270
+#, no-wrap
+msgid "B<HOME>"
+msgstr "B<HOME>"
+
+# type: Plain text
+#: ../tin.1:3275
+msgid ""
+"Pathname of the user's home directory. See B<environ>(5)  for more info."
+msgstr ""
+"Pathname of the user's home directory. See B<environ>(5)  for more info."
+
+# type: TP
+#: ../tin.1:3275
+#, no-wrap
+msgid "B<MAILER>"
+msgstr "B<MAILER>"
+
+# type: Plain text
+#: ../tin.1:3279
+msgid ""
+"This variable has precedence over the default mailer that is used in all "
+"mailing operations within B<tin>."
+msgstr ""
+"This variable has precedence over the default mailer that is used in all "
+"mailing operations within B<tin>."
+
+# type: TP
+#: ../tin.1:3279
+#, no-wrap
+msgid "B<MAIL>"
+msgstr "B<MAIL>"
+
+# type: Plain text
+#: ../tin.1:3282
+msgid "Full path to the user's mailbox."
+msgstr "Full path to the user's mailbox."
+
+# type: TP
+#: ../tin.1:3282
+#, no-wrap
+msgid "B<VISUAL>"
+msgstr "B<VISUAL>"
+
+# type: Plain text
+#: ../tin.1:3291
+msgid ""
+"This variable has precedence over the default editor (i.e., B<vi>(1))  that "
+"is used in all editing operations within B<tin> (e.g., posting, replying, "
+"follow-ups, ...). Evaluation order is I<${VISUAL:-\"${EDITOR:-vi}\"}>. See "
+"B<environ>(5)  for more info."
+msgstr ""
+"This variable has precedence over the default editor (i.e., B<vi>(1))  that "
+"is used in all editing operations within B<tin> (e.g., posting, replying, "
+"follow-ups, ...). Evaluation order is I<${VISUAL:-\"${EDITOR:-vi}\"}>. See "
+"B<environ>(5)  for more info."
+
+# type: TP
+#: ../tin.1:3291
+#, no-wrap
+msgid "B<EDITOR>"
+msgstr "B<EDITOR>"
+
+# type: Plain text
+#: ../tin.1:3300
+msgid ""
+"If $B<VISUAL> is unset, then this variable is looked up for a default "
+"editor. If $B<EDITOR> and $B<VISUAL> are both unset, B<tin> uses the systems "
+"default editor (i.e.  B<vi>(1))  on UNIX-systems). See B<environ>(5)  for "
+"more info."
+msgstr ""
+"If $B<VISUAL> is unset, then this variable is looked up for a default "
+"editor. If $B<EDITOR> and $B<VISUAL> are both unset, B<tin> uses the systems "
+"default editor (i.e.  B<vi>(1))  on UNIX-systems). See B<environ>(5)  for "
+"more info."
+
+# type: TP
+#: ../tin.1:3300
+#, no-wrap
+msgid "B<AUTOSUBSCRIBE>"
+msgstr "B<AUTOSUBSCRIBE>"
+
+# type: Plain text
+#: ../tin.1:3306
+msgid ""
+"A new group is checked against the list of patterns; if it matches, B<tin> "
+"subscribes the user to the group without further query.  See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for an explanation of the valid syntax. For "
+"example, setting"
+msgstr ""
+"A new group is checked against the list of patterns; if it matches, B<tin> "
+"subscribes the user to the group without further query.  See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for an explanation of the valid syntax. For "
+"example, setting"
+
+# type: Plain text
+#: ../tin.1:3308
+msgid "I<AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*>"
+msgstr "I<AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*>"
+
+# type: Plain text
+#: ../tin.1:3313
+msgid ""
+"will automatically subscribe the user to all new groups in the comp.os.unix "
+"hierarchy, and all talk groups other than talk.politics groups (which will "
+"be queried for as usual). Of course this does not work if B<tin> is started "
+"with the ''B<-X>'' command-line switch."
+msgstr ""
+"will automatically subscribe the user to all new groups in the comp.os.unix "
+"hierarchy, and all talk groups other than talk.politics groups (which will "
+"be queried for as usual). Of course this does not work if B<tin> is started "
+"with the ''B<-X>'' command-line switch."
+
+# type: TP
+#: ../tin.1:3313
+#, no-wrap
+msgid "B<AUTOUNSUBSCRIBE>"
+msgstr "B<AUTOUNSUBSCRIBE>"
+
+# type: Plain text
+#: ../tin.1:3317
+msgid ""
+"Is handled like the $B<AUTOSUBSCRIBE> variable, but groups matching the list "
+"are unsubscribed from without further query. For example, setting"
+msgstr ""
+"Is handled like the $B<AUTOSUBSCRIBE> variable, but groups matching the list "
+"are unsubscribed from without further query. For example, setting"
+
+# type: Plain text
+#: ../tin.1:3319
+msgid "I<AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*>"
+msgstr "I<AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*>"
+
+# type: Plain text
+#: ../tin.1:3323
+msgid ""
+"will automatically unsubscribe the user from all new alt.flame groups and "
+"all groups starting with u (university groups) other than UK groups (which "
+"will be queried for as usual)."
+msgstr ""
+"will automatically unsubscribe the user from all new alt.flame groups and "
+"all groups starting with u (university groups) other than UK groups (which "
+"will be queried for as usual)."
+
+# type: TP
+#: ../tin.1:3323
+#, no-wrap
+msgid "B<TMPDIR>"
+msgstr "B<TMPDIR>"
+
+# type: Plain text
+#: ../tin.1:3327
+msgid ""
+"A pathname of a directory made available for B<tin> to create temporary "
+"files."
+msgstr ""
+"A pathname of a directory made available for B<tin> to create temporary "
+"files."
+
+# type: TP
+#: ../tin.1:3327
+#, no-wrap
+msgid "B<MAILCAPS>"
+msgstr "B<MAILCAPS>"
+
+# type: Plain text
+#: ../tin.1:3332
+msgid ""
+"This variable can be used to override the default path search for mailcap "
+"files. See also B<tin>(5)."
+msgstr ""
+"This variable can be used to override the default path search for mailcap "
+"files. See also B<tin>(5)."
+
+# type: TP
+#: ../tin.1:3332
+#, no-wrap
+msgid "B<NOMETAMAIL>"
+msgstr "B<NOMETAMAIL>"
+
+# type: Plain text
+#: ../tin.1:3337
+msgid ""
+"Set this variable to disable the use of B<metamail>(1)  or a replacement (e."
+"g. metamutt)."
+msgstr ""
+"Set this variable to disable the use of B<metamail>(1)  or a replacement (e."
+"g. metamutt)."
+
+# type: TP
+#: ../tin.1:3337
+#, no-wrap
+msgid "B<MM_CHARSET>"
+msgstr "B<MM_CHARSET>"
+
+# type: TP
+#: ../tin.1:3339
+#, no-wrap
+msgid "B<ISPELL>"
+msgstr "B<ISPELL>"
+
+# type: Plain text
+#: ../tin.1:3344
+msgid ""
+"Set this variable to point to B<ispell>(1)  or a replacement and its cmd-"
+"line options."
+msgstr ""
+"Set this variable to point to B<ispell>(1)  or a replacement and its cmd-"
+"line options."
+
+# type: TP
+#: ../tin.1:3344
+#, no-wrap
+msgid "B<PGPOPTS>"
+msgstr "B<PGPOPTS>"
+
+# type: Plain text
+#: ../tin.1:3351
+msgid ""
+"Define any additional options that you wish to pass to your B<pgp>(1)  or "
+"B<gpg>(1)  program."
+msgstr ""
+"Define any additional options that you wish to pass to your B<pgp>(1)  or "
+"B<gpg>(1)  program."
+
+# type: TP
+#: ../tin.1:3351
+#, no-wrap
+msgid "B<PGPPATH>"
+msgstr "B<PGPPATH>"
+
+# type: Plain text
+#: ../tin.1:3356
+msgid ""
+"Override the name of the B<pgp>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+msgstr ""
+"Override the name of the B<pgp>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+
+# type: TP
+#: ../tin.1:3356
+#, no-wrap
+msgid "B<GNUPGHOME>"
+msgstr "B<GNUPGHOME>"
+
+# type: Plain text
+#: ../tin.1:3361
+msgid ""
+"Override the name of the B<gpg>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+msgstr ""
+"Override the name of the B<gpg>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+
+# type: TP
+#: ../tin.1:3361
+#, no-wrap
+msgid "B<LC_CTYPE>"
+msgstr "B<LC_CTYPE>"
+
+# type: Plain text
+#.  TODO: document LC_CTYPEs influence on
+#.        ~/.tin/keymap.*, 8bit char display, ...
+#: ../tin.1:3375
+msgid ""
+"This variable determines the B<locale>(5)  category for character handling "
+"functions. Usually it determines the character classes for pattern matching "
+"character classification and case conversion. Currently this is not true for "
+"B<tin> (which temporary unsets B<$LC_CTYPE> right before any match is done "
+"to avoid confusion).  It's value should be of the form I<language>"
+"[I<_territory>][I<.codeset>][I<@modifier>]. See B<environ>(5)  for more "
+"information."
+msgstr ""
+"This variable determines the B<locale>(5)  category for character handling "
+"functions. Usually it determines the character classes for pattern matching "
+"character classification and case conversion. Currently this is not true for "
+"B<tin> (which temporary unsets B<$LC_CTYPE> right before any match is done "
+"to avoid confusion).  It's value should be of the form I<language>"
+"[I<_territory>][I<.codeset>][I<@modifier>]. See B<environ>(5)  for more "
+"information."
+
+# type: TP
+#: ../tin.1:3375
+#, no-wrap
+msgid "B<LC_MESSAGES>"
+msgstr "B<LC_MESSAGES>"
+
+# type: Plain text
+#: ../tin.1:3384
+msgid ""
+"Formats of informative and diagnostic messages and interactive responses.  "
+"It's value should be of the form I<language>[I<_territory>][I<.codeset>]"
+"[I<@modifier>]. See B<locale>(5)  and B<environ>(5)  for more information."
+msgstr ""
+"Formats of informative and diagnostic messages and interactive responses.  "
+"It's value should be of the form I<language>[I<_territory>][I<.codeset>]"
+"[I<@modifier>]. See B<locale>(5)  and B<environ>(5)  for more information."
+
+# type: TP
+#: ../tin.1:3384
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+# type: Plain text
+#: ../tin.1:3392
+msgid ""
+"Date and time formats. It's value should be of the form I<language>"
+"[I<_territory>][I<.codeset>][I<@modifier>]. See B<locale>(5)  and B<environ>"
+"(5)  for more information."
+msgstr ""
+"Date and time formats. It's value should be of the form I<language>"
+"[I<_territory>][I<.codeset>][I<@modifier>]. See B<locale>(5)  and B<environ>"
+"(5)  for more information."
+
+# type: TP
+#: ../tin.1:3392
+#, no-wrap
+msgid "B<LC_ALL>"
+msgstr "B<LC_ALL>"
+
+# type: Plain text
+#: ../tin.1:3401
+msgid ""
+"This variable overrides the value of the B<$LANG> variable and any other B<"
+"$LC_> variable. It's value should be of the form I<language>[I<_territory>]"
+"[I<.codeset>]. See B<locale>(5)  and B<environ>(5)  for more information."
+msgstr ""
+"This variable overrides the value of the B<$LANG> variable and any other B<"
+"$LC_> variable. It's value should be of the form I<language>[I<_territory>]"
+"[I<.codeset>]. See B<locale>(5)  and B<environ>(5)  for more information."
+
+# type: TP
+#: ../tin.1:3401
+#, no-wrap
+msgid "B<LANG>"
+msgstr "B<LANG>"
+
+# type: Plain text
+#: ../tin.1:3410
+msgid ""
+"This variable determines the B<locale>(5)  category for any category not "
+"specifically selected with a variable starting with B<$LC_>. It's value "
+"should be of the form I<language>[I<_territory>][I<.codeset>]. See B<environ>"
+"(5)  for more information."
+msgstr ""
+"This variable determines the B<locale>(5)  category for any category not "
+"specifically selected with a variable starting with B<$LC_>. It's value "
+"should be of the form I<language>[I<_territory>][I<.codeset>]. See B<environ>"
+"(5)  for more information."
+
+# type: TP
+#: ../tin.1:3410
+#, no-wrap
+msgid "B<LANGUAGE>"
+msgstr "B<LANGUAGE>"
+
+# type: Plain text
+#: ../tin.1:3418
+msgid ""
+"This variable defines a priority list for translations. Whenever a "
+"translation is not available in the language selected via B<$LC_ALL> or B<"
+"$LANG> the next language from the list is tried. It's value should be of the "
+"form I<language:language[:language]>. See B<environ>(5)  for more "
+"information."
+msgstr ""
+"This variable defines a priority list for translations. Whenever a "
+"translation is not available in the language selected via B<$LC_ALL> or B<"
+"$LANG> the next language from the list is tried. It's value should be of the "
+"form I<language:language[:language]>. See B<environ>(5)  for more "
+"information."
+
+# type: TP
+#: ../tin.1:3418
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLUMNS>"
+
+# type: Plain text
+#: ../tin.1:3428
+msgid ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred width in "
+"column positions for the terminal screen or window. If this variable is "
+"unset or null, the implementation determines the number of columns, "
+"appropriate for the terminal or window. When B<$COLUMNS> is set, any "
+"terminal-width information implied by B<$TERM> will be overridden. Users and "
+"portable applications should not set B<$COLUMNS> unless they wish to "
+"override the system selection and produce output unrelated to the terminal "
+"characteristics."
+msgstr ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred width in "
+"column positions for the terminal screen or window. If this variable is "
+"unset or null, the implementation determines the number of columns, "
+"appropriate for the terminal or window. When B<$COLUMNS> is set, any "
+"terminal-width information implied by B<$TERM> will be overridden. Users and "
+"portable applications should not set B<$COLUMNS> unless they wish to "
+"override the system selection and produce output unrelated to the terminal "
+"characteristics."
+
+# type: TP
+#: ../tin.1:3428
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINES>"
+
+# type: Plain text
+#: ../tin.1:3438
+msgid ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred number of "
+"lines on a page or the vertical screen or window size in lines. A line in "
+"this case is a vertical measure large enough to hold the tallest character "
+"in the character set being displayed. If this variable is unset or null, the "
+"implementation determines the number of lines, appropriate for the terminal "
+"or window. When B<$LINES> is set, any terminal-height information implied by "
+"B<$TERM> will be overridden. Users and portable applications should not set "
+"B<$LINES> unless they wish to override the system selection."
+msgstr ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred number of "
+"lines on a page or the vertical screen or window size in lines. A line in "
+"this case is a vertical measure large enough to hold the tallest character "
+"in the character set being displayed. If this variable is unset or null, the "
+"implementation determines the number of lines, appropriate for the terminal "
+"or window. When B<$LINES> is set, any terminal-height information implied by "
+"B<$TERM> will be overridden. Users and portable applications should not set "
+"B<$LINES> unless they wish to override the system selection."
+
+# type: TP
+#: ../tin.1:3438
+#, no-wrap
+msgid "B<TERM>"
+msgstr "B<TERM>"
+
+#
+#
+# type: Plain text
+#.  TODO: add missing, sort useful, document in detail
+#: ../tin.1:3447
+msgid ""
+"The type of terminal in use. This is used when looking up termcap "
+"sequences.  See B<environ>(5)  for more information."
+msgstr ""
+"The type of terminal in use. This is used when looking up termcap "
+"sequences.  See B<environ>(5)  for more information."
+
+# type: SH
+#: ../tin.1:3447
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SIGNALS"
+
+# type: Plain text
+#: ../tin.1:3450
+msgid "B<tin> handles a couple of signals:"
+msgstr "B<tin> handles a couple of signals:"
+
+# type: TP
+#: ../tin.1:3450
+#, no-wrap
+msgid "B<SIGHUP>"
+msgstr "B<SIGHUP>"
+
+# type: Plain text
+#: ../tin.1:3453 ../tin.1:3456
+msgid "Terminate gracefully."
+msgstr "Terminate gracefully."
+
+# type: TP
+#: ../tin.1:3453
+#, no-wrap
+msgid "B<SIGTERM>"
+msgstr "B<SIGTERM>"
+
+# type: TP
+#: ../tin.1:3456
+#, no-wrap
+msgid "B<SIGUSR1>"
+msgstr "B<SIGUSR1>"
+
+# type: Plain text
+#: ../tin.1:3459
+msgid "Terminate gracefully but do not restore tty."
+msgstr "Terminate gracefully but do not restore tty."
+
+# type: TP
+#: ../tin.1:3459
+#, no-wrap
+msgid "B<SIGUSR2>"
+msgstr "B<SIGUSR2>"
+
+#
+#
+# type: Plain text
+#.  .SH DIAGNOSTICS
+#.  give an overview of the most common error messages and how to cope with
+#.  them.
+#: ../tin.1:3470
+msgid "Write out I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>-file."
+msgstr "Write out I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>-file."
+
+# type: SH
+#: ../tin.1:3470
+#, no-wrap
+msgid "SECURITY"
+msgstr "SECURITY"
+
+# type: Plain text
+#: ../tin.1:3478
+msgid ""
+"When B<tin> is started in debug mode (''B<-D n>'') it will create world "
+"readable files in B<$TMPDIR> which may contain the users NNTP password in "
+"cleartext. On multiuser-systems B<$TMPDIR> should be set to a safe location "
+"before starting tin in debug mode (e.g.  B<TMPDIR=$HOME tin -D 1>)."
+msgstr ""
+"When B<tin> is started in debug mode (''B<-D n>'') it will create world "
+"readable files in B<$TMPDIR> which may contain the users NNTP password in "
+"cleartext. On multiuser-systems B<$TMPDIR> should be set to a safe location "
+"before starting tin in debug mode (e.g.  B<TMPDIR=$HOME tin -D 1>)."
+
+# type: SH
+#: ../tin.1:3478
+#, no-wrap
+msgid "CONFORMING TO"
+msgstr "CONFORMING TO"
+
+# type: Plain text
+#.  - RFC2045, RFC2047, RFC2980, RFC3977, RFC4643, RFC5322
+#.    RFC5536, RFC5537, RFC6048 or whatever
+#: ../tin.1:3486
+msgid ""
+"B<tin> does conform to the Base Definitions volume of IEEE Std 1003.1-2001, "
+"Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax "
+"Guidelines)."
+msgstr ""
+"B<tin> does conform to the Base Definitions volume of IEEE Std 1003.1-2001, "
+"Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax "
+"Guidelines)."
+
+# type: SH
+#: ../tin.1:3486
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTES"
+
+# type: Plain text
+#: ../tin.1:3491
+msgid ""
+"Regular expression support is provided by the PCRE library package B<pcre>"
+"(3), which is open source software, written by Philip Hazel, and copyright "
+"by the University of Cambridge, England."
+msgstr ""
+"Regular expression support is provided by the PCRE library package B<pcre>"
+"(3), which is open source software, written by Philip Hazel, and copyright "
+"by the University of Cambridge, England."
+
+# type: Plain text
+#: ../tin.1:3495
+msgid "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"
+msgstr "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"
+
+# type: SH
+#: ../tin.1:3495
+#, no-wrap
+msgid "BUGS"
+msgstr "BUGS"
+
+# type: Plain text
+#: ../tin.1:3503
+msgid ""
+"B<CNews> NNTPd, B<noffle>(1)  (E<lt>= V1.0-pre5) and B<NewsCache> (E<lt>= "
+"V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with "
+"any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h "
+"and recompile."
+msgstr ""
+"B<CNews> NNTPd, B<noffle>(1)  (E<lt>= V1.0-pre5) and B<NewsCache> (E<lt>= "
+"V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with "
+"any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h "
+"and recompile."
+
+# type: Plain text
+#: ../tin.1:3512
+msgid ""
+"Before mailing a bug-report to E<lt>tin-bugs@tin.orgE<gt> please check if "
+"you are using the latest (stable) release, and if not, please upgrade first! "
+"Have a look at the doc/TODO file for known bugs. If you still think you've "
+"found a bug, please use the B<BugReport> ('B<R>')  function and write in "
+"English. Please do NOT enclose a core-file in your bugreport until we "
+"request it."
+msgstr ""
+"Before mailing a bug-report to E<lt>tin-bugs@tin.orgE<gt> please check if "
+"you are using the latest (stable) release, and if not, please upgrade first! "
+"Have a look at the doc/TODO file for known bugs. If you still think you've "
+"found a bug, please use the B<BugReport> ('B<R>')  function and write in "
+"English. Please do NOT enclose a core-file in your bugreport until we "
+"request it."
+
+# type: SH
+#: ../tin.1:3512
+#, no-wrap
+msgid "HISTORY"
+msgstr "HISTORY"
+
+# type: Plain text
+#: ../tin.1:3524
+msgid ""
+"B<tin> is based on the B<tass>(1)  newsreader that was developed by Rich "
+"Skrenta and posted to alt.sources in March 1991; its first version was "
+"released on August 23rd 1991.  B<tass>(1)  itself was heavily influenced by "
+"notesfiles a public domain UNIX version of PLATO Notes, developed at the "
+"University of Illinois by Ray Essick and Rob Kolstad in 1982. For a version "
+"overview see E<lt>http://www.tin.org/history.htmlE<gt>."
+msgstr ""
+"B<tin> is based on the B<tass>(1)  newsreader that was developed by Rich "
+"Skrenta and posted to alt.sources in March 1991; its first version was "
+"released on August 23rd 1991.  B<tass>(1)  itself was heavily influenced by "
+"notesfiles a public domain UNIX version of PLATO Notes, developed at the "
+"University of Illinois by Ray Essick and Rob Kolstad in 1982. For a version "
+"overview see E<lt>http://www.tin.org/history.htmlE<gt>."
+
+# type: SH
+#: ../tin.1:3524
+#, no-wrap
+msgid "CREDITS"
+msgstr "CREDITS"
+
+# type: IP
+#: ../tin.1:3526
+#, no-wrap
+msgid "Rich Skrenta"
+msgstr "Rich Skrenta"
+
+# type: Plain text
+#: ../tin.1:3530
+msgid "author of B<tass>(1)  v3.2 which this newsreader used as its base."
+msgstr "author of B<tass>(1)  v3.2 which this newsreader used as its base."
+
+# type: IP
+#: ../tin.1:3530
+#, no-wrap
+msgid "Bill Davidsen"
+msgstr "Bill Davidsen"
+
+# type: Plain text
+#: ../tin.1:3532
+msgid "author of envarg.c environment variable reading routine."
+msgstr "author of envarg.c environment variable reading routine."
+
+# type: IP
+#: ../tin.1:3532
+#, no-wrap
+msgid "Mike Gleason"
+msgstr "Mike Gleason"
+
+# type: Plain text
+#: ../tin.1:3534
+msgid "author of sigfile.c random signature generation routines."
+msgstr "author of sigfile.c random signature generation routines."
+
+# type: IP
+#: ../tin.1:3534
+#, no-wrap
+msgid "Markus Kuhn E<lt>Markus.Kuhn@cl.cam.ac.ukE<gt>"
+msgstr "Markus Kuhn E<lt>Markus.Kuhn@cl.cam.ac.ukE<gt>"
+
+# type: Plain text
+#: ../tin.1:3536
+msgid ""
+"author of langinfo.c, charset.c and iso2asc.txt ISO-8859-1 documentation."
+msgstr ""
+"author of langinfo.c, charset.c and iso2asc.txt ISO-8859-1 documentation."
+
+# type: IP
+#: ../tin.1:3536
+#, no-wrap
+msgid "Arnold Robbins"
+msgstr "Arnold Robbins"
+
+# type: Plain text
+#: ../tin.1:3538
+msgid "author of strftime.c date formatting routine."
+msgstr "author of strftime.c date formatting routine."
+
+# type: IP
+#: ../tin.1:3538
+#, no-wrap
+msgid "Rich Salz"
+msgstr "Rich Salz"
+
+# type: Plain text
+#: ../tin.1:3540
+msgid ""
+"author of wildmat.c pattern matching and parsdate.y date parsing routines."
+msgstr ""
+"author of wildmat.c pattern matching and parsdate.y date parsing routines."
+
+# type: IP
+#: ../tin.1:3540
+#, no-wrap
+msgid "Dave Taylor"
+msgstr "Dave Taylor"
+
+# type: Plain text
+#: ../tin.1:3544
+msgid "author of curses.c from the B<elm>(1)  mailreader."
+msgstr "author of curses.c from the B<elm>(1)  mailreader."
+
+# type: IP
+#: ../tin.1:3544
+#, no-wrap
+msgid "Chris Thewalt"
+msgstr "Chris Thewalt"
+
+# type: Plain text
+#: ../tin.1:3548
+msgid "author of getline.c B<emacs>(1)  style editing routine."
+msgstr "author of getline.c B<emacs>(1)  style editing routine."
+
+# type: IP
+#: ../tin.1:3548
+#, no-wrap
+msgid "Steven Madsen"
+msgstr "Steven Madsen"
+
+# type: Plain text
+#: ../tin.1:3552
+msgid "for adding B<pgp>(1)  (Pretty Good Privacy) support."
+msgstr "for adding B<pgp>(1)  (Pretty Good Privacy) support."
+
+# type: IP
+#: ../tin.1:3552
+#, no-wrap
+msgid "Philip Hazel E<lt>ph10@cam.ac.ukE<gt>"
+msgstr "Philip Hazel E<lt>ph10@cam.ac.ukE<gt>"
+
+# type: Plain text
+#: ../tin.1:3556
+msgid "for B<pcre>(3)  (Perl-compatible regular expression library)."
+msgstr "for B<pcre>(3)  (Perl-compatible regular expression library)."
+
+# type: IP
+#: ../tin.1:3556
+#, no-wrap
+msgid "Patrick Powell E<lt>papowell@astart.comE<gt>"
+msgstr "Patrick Powell E<lt>papowell@astart.comE<gt>"
+
+# type: Plain text
+#: ../tin.1:3564
+msgid "for B<snprintf>(3)  and B<vsnprintf>(3)  fallbacks."
+msgstr "for B<snprintf>(3)  and B<vsnprintf>(3)  fallbacks."
+
+# type: SH
+#: ../tin.1:3564
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTHOR"
+
+# type: TP
+#: ../tin.1:3565
+#, no-wrap
+msgid "Iain Lea E<lt>iain@bricbrac.deE<gt>"
+msgstr "Iain Lea E<lt>iain@bricbrac.deE<gt>"
+
+# type: SH
+#: ../tin.1:3569
+#, no-wrap
+msgid "MAINTAINER"
+msgstr "MAINTAINER"
+
+# type: TP
+#: ../tin.1:3570
+#, no-wrap
+msgid "Urs Janssen E<lt>urs@tin.orgE<gt>"
+msgstr "Urs Janssen E<lt>urs@tin.orgE<gt>"
+
+# type: SH
+#: ../tin.1:3574 ../tin.5:2527
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SEE ALSO"
+
+# type: Plain text
+#: ../tin.1:3623
+msgid ""
+"B<cron>(1), B<elm>(1), B<emacs>(1), B<gpg>(1), B<inews>(1), B<ispell>(1), "
+"B<lp>(1), B<lpr>(1), B<metamail>(1), B<noffle>(1), B<perl>(1), B<perlre>(1), "
+"B<pgp>(1), B<rn>(1), B<sendmail>(1), B<shar>(1), B<slrnface>(1), B<tass>(1), "
+"B<unshar>(1), B<uudecode>(1), B<vi>(1), B<xterm>(1x), B<iconv>(3), "
+"B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), B<pcrepattern>(3), "
+"B<snprintf>(3), B<strftime>(3), B<vsnprintf>(3), B<wildmat>(3), B<environ>"
+"(5), B<locale>(5), B<mbox>(5), B<mmdf>(5), B<newsoverview>(5), B<tin>(5), "
+"B<RFC1524>, B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, "
+"B<RFC3977>, B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+msgstr ""
+"B<cron>(1), B<elm>(1), B<emacs>(1), B<gpg>(1), B<inews>(1), B<ispell>(1), "
+"B<lp>(1), B<lpr>(1), B<metamail>(1), B<noffle>(1), B<perl>(1), B<perlre>(1), "
+"B<pgp>(1), B<rn>(1), B<sendmail>(1), B<shar>(1), B<slrnface>(1), B<tass>(1), "
+"B<unshar>(1), B<uudecode>(1), B<vi>(1), B<xterm>(1x), B<iconv>(3), "
+"B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), B<pcrepattern>(3), "
+"B<snprintf>(3), B<strftime>(3), B<vsnprintf>(3), B<wildmat>(3), B<environ>"
+"(5), B<locale>(5), B<mbox>(5), B<mmdf>(5), B<newsoverview>(5), B<tin>(5), "
+"B<RFC1524>, B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, "
+"B<RFC3977>, B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+
+# type: Plain text
+#: ../tin.5:13
+msgid "tin, rtin - related files"
+msgstr "tin, rtin - related files"
+
+# type: Plain text
+#: ../tin.5:19
+msgid ""
+"This manpage describes the various (config) files and their formats used by "
+"the B<tin>(1)  newsreader. All files are expected to have unix style ('\\en' "
+"aka LF) line endings."
+msgstr ""
+"This manpage describes the various (config) files and their formats used by "
+"the B<tin>(1)  newsreader. All files are expected to have unix style ('\\en' "
+"aka LF) line endings."
+
+# type: Plain text
+#: ../tin.5:60
+msgid ""
+"B<mailcap>(4)  files as defined in B<RFC1524>. The Mailcap files are read by "
+"B<tin>(1)  to determine how to display non-text messages at the local site. "
+"Any line that starts with \"#\" is a comment. Blank lines are ignored. "
+"Otherwise, each line defines a single mailcap entry for a single content "
+"type. Long lines may be continued by ending them with a backslash character, "
+"\"\\e\"."
+msgstr ""
+"B<mailcap>(4)  files as defined in B<RFC1524>. The Mailcap files are read by "
+"B<tin>(1)  to determine how to display non-text messages at the local site. "
+"Any line that starts with \"#\" is a comment. Blank lines are ignored. "
+"Otherwise, each line defines a single mailcap entry for a single content "
+"type. Long lines may be continued by ending them with a backslash character, "
+"\"\\e\"."
+
+# type: Plain text
+#: ../tin.5:63
+msgid ""
+"Each individual mailcap entry consists of a content-type specification, a "
+"command to execute, and (possibly) a set of optional \"flag\" values."
+msgstr ""
+"Each individual mailcap entry consists of a content-type specification, a "
+"command to execute, and (possibly) a set of optional \"flag\" values."
+
+# type: Plain text
+#: ../tin.5:68
+msgid ""
+"The \"type\" field is simply any legal content type name. It is the string "
+"that will be matched against the ''Content-Type:'' header to decide if this "
+"is the mailcap entry that matches the current message. Additionally, the "
+"type field may specify a subtype or a wildcard to match all subtypes."
+msgstr ""
+"The \"type\" field is simply any legal content type name. It is the string "
+"that will be matched against the ''Content-Type:'' header to decide if this "
+"is the mailcap entry that matches the current message. Additionally, the "
+"type field may specify a subtype or a wildcard to match all subtypes."
+
+# type: Plain text
+#: ../tin.5:74
+msgid ""
+"The \"command\" field is any UNIX command and is used to specify the "
+"interpreter for the given type of message. It will be passed to the shell "
+"via the B<system>(3)  facility."
+msgstr ""
+"The \"command\" field is any UNIX command and is used to specify the "
+"interpreter for the given type of message. It will be passed to the shell "
+"via the B<system>(3)  facility."
+
+#
+# type: Plain text
+#.  Two special codes can appear in the viewing command for objects of type
+#.  multipart (any subtype). These are "%n" and "%F". %n will be replaced by
+#.  the number of parts within the multipart object. %F will be replaced by a
+#.  series of arguments, two for each part, giving first the content-type and
+#.  then the name of the temporary file where the decoded part has been stored.
+#: ../tin.5:91
+msgid ""
+"Semicolons and backslashes within the command or any flag field must be "
+"quoted with backslashes. If the field contains \"%s\", those two characters "
+"will be replaced by the name of a file that contains the body of the "
+"message. If it contains \"%t\", those two characters will be replaced by the "
+"content-type field, including the subtype, if any. If it contains \"%{\" "
+"followed by a parameter name and a closing \"}\", then all those characters "
+"will be replaced by the value of the named parameter, if any, from the "
+"\\&''Content-Type:'' header. Finally, if the field contains \"\\e%\", those "
+"two characters will be replaced by a single \"%\" character."
+msgstr ""
+"Semicolons and backslashes within the command or any flag field must be "
+"quoted with backslashes. If the field contains \"%s\", those two characters "
+"will be replaced by the name of a file that contains the body of the "
+"message. If it contains \"%t\", those two characters will be replaced by the "
+"content-type field, including the subtype, if any. If it contains \"%{\" "
+"followed by a parameter name and a closing \"}\", then all those characters "
+"will be replaced by the value of the named parameter, if any, from the "
+"\\&''Content-Type:'' header. Finally, if the field contains \"\\e%\", those "
+"two characters will be replaced by a single \"%\" character."
+
+# type: Plain text
+#: ../tin.5:93
+msgid "Besides the type and command field the following \"flags\" are defined:"
+msgstr ""
+"Besides the type and command field the following \"flags\" are defined:"
+
+# type: TP
+#: ../tin.5:93
+#, no-wrap
+msgid "B<compose>"
+msgstr "B<compose>"
+
+# type: Plain text
+#: ../tin.5:103
+msgid ""
+"The \"compose\" field may be used to specify a program that can be used to "
+"compose a new body or body part in the given format. Its intended use is to "
+"support mail composing agents that support the composition of multiple types "
+"of mail using external composing agents. As with the view-command, the "
+"semantics of program execution are operating system dependent. The result of "
+"the composing program may be data that is not yet suitable for mail "
+"transport - that is, a Content-Transfer-Encoding may need to be applied to "
+"the data."
+msgstr ""
+"The \"compose\" field may be used to specify a program that can be used to "
+"compose a new body or body part in the given format. Its intended use is to "
+"support mail composing agents that support the composition of multiple types "
+"of mail using external composing agents. As with the view-command, the "
+"semantics of program execution are operating system dependent. The result of "
+"the composing program may be data that is not yet suitable for mail "
+"transport - that is, a Content-Transfer-Encoding may need to be applied to "
+"the data."
+
+# type: TP
+#: ../tin.5:103
+#, no-wrap
+msgid "B<composetyped>"
+msgstr "B<composetyped>"
+
+# type: Plain text
+#: ../tin.5:113
+msgid ""
+"The \"composetyped\" field is similar to the \"compose\" field, but is to be "
+"used when the composing program needs to specify the ''Content-Type:'' "
+"header field to be applied to the composed data. The \"compose\" field is "
+"simpler, and is preferred for use with existing (non-mail-oriented) programs "
+"for composing data in a given format. The \"composetyped\" field is "
+"necessary when the Content-Type information must include auxiliary "
+"parameters, and the composition program must then know enough about mail "
+"formats to produce output that includes the mail type information."
+msgstr ""
+"The \"composetyped\" field is similar to the \"compose\" field, but is to be "
+"used when the composing program needs to specify the ''Content-Type:'' "
+"header field to be applied to the composed data. The \"compose\" field is "
+"simpler, and is preferred for use with existing (non-mail-oriented) programs "
+"for composing data in a given format. The \"composetyped\" field is "
+"necessary when the Content-Type information must include auxiliary "
+"parameters, and the composition program must then know enough about mail "
+"formats to produce output that includes the mail type information."
+
+# type: TP
+#: ../tin.5:113
+#, no-wrap
+msgid "B<edit>"
+msgstr "B<edit>"
+
+# type: Plain text
+#: ../tin.5:119
+msgid ""
+"The \"edit\" field may be used to specify a program that can be used to edit "
+"a body or body part in the given format. In many cases, it may be identical "
+"in content to the \"compose\" field, and shares the operating-system "
+"dependent semantics for program execution."
+msgstr ""
+"The \"edit\" field may be used to specify a program that can be used to edit "
+"a body or body part in the given format. In many cases, it may be identical "
+"in content to the \"compose\" field, and shares the operating-system "
+"dependent semantics for program execution."
+
+# type: TP
+#: ../tin.5:119
+#, no-wrap
+msgid "B<print>"
+msgstr "B<print>"
+
+# type: Plain text
+#: ../tin.5:124
+msgid ""
+"The \"print\" field may be used to specify a program that can be used to "
+"print a message or body part in the given format. As with the view-command, "
+"the semantics of program execution are operating system dependent."
+msgstr ""
+"The \"print\" field may be used to specify a program that can be used to "
+"print a message or body part in the given format. As with the view-command, "
+"the semantics of program execution are operating system dependent."
+
+# type: TP
+#: ../tin.5:124
+#, no-wrap
+msgid "B<test>"
+msgstr "B<test>"
+
+# type: Plain text
+#: ../tin.5:133
+msgid ""
+"The \"test\" field may be used to test some external condition (e.g., the "
+"machine architecture, or the window system in use) to determine whether or "
+"not the mailcap line applies. It specifies a program to be run to test some "
+"condition. The semantics of execution and of the value returned by the test "
+"program are operating system dependent. If the test fails, a subsequent "
+"mailcap entry should be sought. Multiple test fields are not permitted - "
+"since a test can call a program, it can already be arbitrarily complex."
+msgstr ""
+"The \"test\" field may be used to test some external condition (e.g., the "
+"machine architecture, or the window system in use) to determine whether or "
+"not the mailcap line applies. It specifies a program to be run to test some "
+"condition. The semantics of execution and of the value returned by the test "
+"program are operating system dependent. If the test fails, a subsequent "
+"mailcap entry should be sought. Multiple test fields are not permitted - "
+"since a test can call a program, it can already be arbitrarily complex."
+
+# type: TP
+#: ../tin.5:133
+#, no-wrap
+msgid "B<needsterminal>"
+msgstr "B<needsterminal>"
+
+# type: Plain text
+#: ../tin.5:145
+msgid ""
+"The \"needsterminal\" field indicates that the view-command must be run on "
+"an interactive terminal. This is needed to inform window-oriented user "
+"agents that an interactive terminal is needed. (The decision is not left "
+"exclusively to the view-command because in some circumstances it may not be "
+"possible for such programs to tell whether or not they are on interactive "
+"terminals.) The needsterminal command should be assumed to apply to the "
+"compose and edit commands, too, if they exist. Note that this is NOT a test "
+"- it is a requirement for the environment in which the program will be "
+"executed, and should typically cause the creation of a terminal window when "
+"not executed on either a real terminal or a terminal window."
+msgstr ""
+"The \"needsterminal\" field indicates that the view-command must be run on "
+"an interactive terminal. This is needed to inform window-oriented user "
+"agents that an interactive terminal is needed. (The decision is not left "
+"exclusively to the view-command because in some circumstances it may not be "
+"possible for such programs to tell whether or not they are on interactive "
+"terminals.) The needsterminal command should be assumed to apply to the "
+"compose and edit commands, too, if they exist. Note that this is NOT a test "
+"- it is a requirement for the environment in which the program will be "
+"executed, and should typically cause the creation of a terminal window when "
+"not executed on either a real terminal or a terminal window."
+
+# type: TP
+#: ../tin.5:145
+#, no-wrap
+msgid "B<copiousoutput>"
+msgstr "B<copiousoutput>"
+
+# type: Plain text
+#: ../tin.5:152
+msgid ""
+"The \"copiousoutput\" field indicates that the output from the view-command "
+"will be an extended stream of output, and is to be interpreted as advice to "
+"the UA (User Agent mail-reading program) that the output should be either "
+"paged or made scroll-able. Note that it is probably a mistake if "
+"needsterminal and copiousoutput are both specified."
+msgstr ""
+"The \"copiousoutput\" field indicates that the output from the view-command "
+"will be an extended stream of output, and is to be interpreted as advice to "
+"the UA (User Agent mail-reading program) that the output should be either "
+"paged or made scroll-able. Note that it is probably a mistake if "
+"needsterminal and copiousoutput are both specified."
+
+# type: TP
+#: ../tin.5:152 ../tin.5:1062
+#, no-wrap
+msgid "B<description>"
+msgstr "B<description>"
+
+# type: Plain text
+#: ../tin.5:157
+msgid ""
+"The \"description\" field simply provides a textual description, optionally "
+"quoted, that describes the type of data, to be used optionally by mail "
+"readers that wish to describe the data before offering to display it."
+msgstr ""
+"The \"description\" field simply provides a textual description, optionally "
+"quoted, that describes the type of data, to be used optionally by mail "
+"readers that wish to describe the data before offering to display it."
+
+# type: TP
+#: ../tin.5:157
+#, no-wrap
+msgid "B<textualnewlines>"
+msgstr "B<textualnewlines>"
+
+# type: Plain text
+#: ../tin.5:165
+msgid ""
+"The \"textualnewlines\" field, if set to any non-zero value, indicates that "
+"this type of data is line-oriented and that, if encoded in base64, all "
+"newlines should be converted to canonical form (CRLF) before encoding, and "
+"will be in that form after decoding. In general, this field is needed only "
+"if there is line-oriented data of some type other than text/* or non-line- "
+"oriented data that is a subtype of text."
+msgstr ""
+"The \"textualnewlines\" field, if set to any non-zero value, indicates that "
+"this type of data is line-oriented and that, if encoded in base64, all "
+"newlines should be converted to canonical form (CRLF) before encoding, and "
+"will be in that form after decoding. In general, this field is needed only "
+"if there is line-oriented data of some type other than text/* or non-line- "
+"oriented data that is a subtype of text."
+
+# type: TP
+#: ../tin.5:165
+#, no-wrap
+msgid "B<x11-bitmap>"
+msgstr "B<x11-bitmap>"
+
+# type: Plain text
+#: ../tin.5:170
+msgid ""
+"The \"x11-bitmap\" field names a file, in X11 bitmap (xbm) format, which "
+"points to an appropriate icon to be used to visually denote the presence of "
+"this kind of data."
+msgstr ""
+"The \"x11-bitmap\" field names a file, in X11 bitmap (xbm) format, which "
+"points to an appropriate icon to be used to visually denote the presence of "
+"this kind of data."
+
+# type: TP
+#: ../tin.5:170
+#, no-wrap
+msgid "B<nametemplate>"
+msgstr "B<nametemplate>"
+
+# type: Plain text
+#: ../tin.5:178
+msgid ""
+"The \"nametemplate\" field gives a file name format, in which %s will be "
+"replaced by a short unique string to give the name of the temporary file to "
+"be passed to the viewing command. This is only expected to be relevant in "
+"environments where filename extensions are meaningful, e.g., one could "
+"specify that a GIF file being passed to a gif viewer should have a name "
+"ending in \".gif\" by using \"nametemplate=%s.gif\""
+msgstr ""
+"The \"nametemplate\" field gives a file name format, in which %s will be "
+"replaced by a short unique string to give the name of the temporary file to "
+"be passed to the viewing command. This is only expected to be relevant in "
+"environments where filename extensions are meaningful, e.g., one could "
+"specify that a GIF file being passed to a gif viewer should have a name "
+"ending in \".gif\" by using \"nametemplate=%s.gif\""
+
+# type: Plain text
+#: ../tin.5:183
+msgid ""
+"B<tin>(1)  currently only respects the \"test\", \"description\", "
+"\"nametemplate\" and partly the \"needsterminal\" flags, all other flags are "
+"internally ignored. It also can't handle the \"%F\" and \"%n\" expansions "
+"yet."
+msgstr ""
+"B<tin>(1)  currently only respects the \"test\", \"description\", "
+"\"nametemplate\" and partly the \"needsterminal\" flags, all other flags are "
+"internally ignored. It also can't handle the \"%F\" and \"%n\" expansions "
+"yet."
+
+# type: TP
+#: ../tin.5:183 ../tin.5:266 ../tin.5:294 ../tin.5:384 ../tin.5:693
+#: ../tin.5:800 ../tin.5:1082
+#, no-wrap
+msgid "Example:"
+msgstr "Example:"
+
+# type: Plain text
+#: ../tin.5:188
+#, no-wrap
+msgid "# mailcap file example\n"
+msgstr "# mailcap file example\n"
+
+# type: Plain text
+#: ../tin.5:190
+#, no-wrap
+msgid "image/*;\\e\n"
+msgstr "image/*;\\e\n"
+
+# type: Plain text
+#: ../tin.5:193
+#, no-wrap
+msgid "xv -8 -geometry +0 '%s';\\e\n"
+msgstr "xv -8 -geometry +0 '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:195
+#, no-wrap
+msgid "description=%{name} %t-Image;\\e\n"
+msgstr "description=%{name} %t-Image;\\e\n"
+
+# type: Plain text
+#: ../tin.5:197
+#, no-wrap
+msgid "test=test \"$DISPLAY\" != \"\";\\e\n"
+msgstr "test=test \"$DISPLAY\" != \"\";\\e\n"
+
+# type: Plain text
+#: ../tin.5:199
+#, no-wrap
+msgid "nametemplate=%s.IMAGE\n"
+msgstr "nametemplate=%s.IMAGE\n"
+
+# type: Plain text
+#: ../tin.5:202
+#, no-wrap
+msgid "message/rfc822;\\e\n"
+msgstr "message/rfc822;\\e\n"
+
+# type: Plain text
+#: ../tin.5:205
+#, no-wrap
+msgid "${PAGER:-\"more\"} '%s';\\e\n"
+msgstr "${PAGER:-\"more\"} '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:207
+#, no-wrap
+msgid "edit=${EDITOR:-\"vi\"} '%s';\\e\n"
+msgstr "edit=${EDITOR:-\"vi\"} '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:209
+#, no-wrap
+msgid "compose=${EDITOR:-\"vi\"} '%s';\\e\n"
+msgstr "compose=${EDITOR:-\"vi\"} '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:211
+#, no-wrap
+msgid "print=a2ps '%s';\\e\n"
+msgstr "print=a2ps '%s';\\e\n"
+
+# type: Plain text
+#: ../tin.5:213
+#, no-wrap
+msgid "needsterminal\n"
+msgstr "needsterminal\n"
+
+# type: Plain text
+#: ../tin.5:226
+msgid ""
+"default NNTP-server to read news from if not reading from the local spool.  "
+"\\&'B<-g> I<server>', $B<NNTPSERVER> have higher priority (in that order), "
+"the default server given at compile time has lower priority."
+msgstr ""
+"default NNTP-server to read news from if not reading from the local spool.  "
+"\\&'B<-g> I<server>', $B<NNTPSERVER> have higher priority (in that order), "
+"the default server given at compile time has lower priority."
+
+# type: Plain text
+#: ../tin.5:233
+msgid "secret to be used for canlocks"
+msgstr "secret to be used for canlocks"
+
+# type: Plain text
+#: ../tin.5:244
+msgid "mime type / filename extension pairs"
+msgstr "mime type / filename extension pairs"
+
+# type: Plain text
+#: ../tin.5:256
+msgid ""
+"\"I<nntpserver> I<password> [I<user>]\" pairs for NNTP servers that require "
+"authorization. If the password contains a space or a tab it must be enclosed "
+"in doublequotes (\"). Usernames must not be enclosed in doublequotes and "
+"thus can't contain spaces or tabs. Any line that starts with \"#\" is a "
+"comment. Blank lines are ignored. This file should be readable only for the "
+"user as it contains the user's uncrypted password for reading news!"
+msgstr ""
+"\"I<nntpserver> I<password> [I<user>]\" pairs for NNTP servers that require "
+"authorisation. If the password contains a space or a tab it must be enclosed "
+"in doublequotes (\"). Usernames must not be enclosed in doublequotes and "
+"thus can't contain spaces or tabs. Any line that starts with \"#\" is a "
+"comment. Blank lines are ignored. This file should be readable only for the "
+"user as it contains the user's uncrypted password for reading news!"
+
+# type: TP
+#: ../tin.5:256 ../tin.5:1073
+#, no-wrap
+msgid "B<nntpserver>"
+msgstr "B<nntpserver>"
+
+# type: Plain text
+#: ../tin.5:259 ../tin.5:1076
+msgid "full qualified domain name of the newsserver."
+msgstr "full qualified domain name of the newsserver."
+
+# type: TP
+#: ../tin.5:259
+#, no-wrap
+msgid "B<password>"
+msgstr "B<password>"
+
+# type: Plain text
+#: ../tin.5:262
+msgid "user's uncrypted password for reading news."
+msgstr "user's uncrypted password for reading news."
+
+# type: TP
+#: ../tin.5:262
+#, no-wrap
+msgid "B<user>"
+msgstr "B<user>"
+
+# type: Plain text
+#: ../tin.5:266
+msgid ""
+"username on the newsserver if it differs from the local login. This field is "
+"optional."
+msgstr ""
+"username on the newsserver if it differs from the local login. This field is "
+"optional."
+
+# type: Plain text
+#: ../tin.5:270
+msgid "# sample .newsauth file"
+msgstr "# sample .newsauth file"
+
+# type: Plain text
+#: ../tin.5:272
+msgid "news.example.org secret"
+msgstr "news.example.org secret"
+
+# type: Plain text
+#: ../tin.5:274
+msgid "news.example.net arcane guest"
+msgstr "news.example.net arcane guest"
+
+# type: Plain text
+#: ../tin.5:276
+msgid "news.example.com \"top secret\" james.bond@example.com"
+msgstr "news.example.com \"top secret\" james.bond@example.com"
+
+# type: Plain text
+#: ../tin.5:284
+msgid ""
+"\"I<newsgroup>I<flag> [I<article>[,I<article> | -I<article>]...]\" lines."
+msgstr ""
+"\"I<newsgroup>I<flag> [I<article>[,I<article> | -I<article>]...]\" lines."
+
+# type: TP
+#: ../tin.5:284
+#, no-wrap
+msgid "B<newsgroup>"
+msgstr "B<newsgroup>"
+
+# type: Plain text
+#: ../tin.5:287
+msgid "the name of the newsgroup."
+msgstr "the name of the newsgroup."
+
+# type: TP
+#: ../tin.5:287
+#, no-wrap
+msgid "B<flag>"
+msgstr "B<flag>"
+
+# type: Plain text
+#: ../tin.5:290
+msgid "a flag indicating if the group is subscribed ':' or not '!'."
+msgstr "a flag indicating if the group is subscribed ':' or not '!'."
+
+# type: TP
+#: ../tin.5:290
+#, no-wrap
+msgid "B<article>"
+msgstr "B<article>"
+
+# type: Plain text
+#: ../tin.5:294
+msgid ""
+"range of already read articles from that group; numbers separated by commas "
+"with sequential numbers collapsed with hyphens."
+msgstr ""
+"range of already read articles from that group; numbers separated by commas "
+"with sequential numbers collapsed with hyphens."
+
+# type: Plain text
+#: ../tin.5:298
+msgid "# sample .newsrc file"
+msgstr "# sample .newsrc file"
+
+# type: Plain text
+#: ../tin.5:300
+msgid "news.software.b! 1-666,669"
+msgstr "news.software.b! 1-666,669"
+
+# type: Plain text
+#: ../tin.5:302
+msgid "news.software.nntp: 1-13245,13247,13249"
+msgstr "news.software.nntp: 1-13245,13247,13249"
+
+# type: Plain text
+#: ../tin.5:304
+msgid "news.software.readers: 1-19567,19571-19597"
+msgstr "news.software.readers: 1-19567,19571-19597"
+
+# type: Plain text
+#: ../tin.5:314
+msgid "backup of I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+msgstr "backup of I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+
+# type: Plain text
+#: ../tin.5:323
+msgid "signature"
+msgstr "signature"
+
+# type: Plain text
+#: ../tin.5:330
+msgid "fixed part of a randomly generated signature"
+msgstr "fixed part of a randomly generated signature"
+
+# type: Plain text
+#: ../tin.5:337
+msgid "history of last used strings"
+msgstr "history of last used strings"
+
+# type: Plain text
+#: ../tin.5:344
+msgid "mailgroups index files"
+msgstr "mailgroups index files"
+
+# type: Plain text
+#: ../tin.5:353
+msgid "newsgroups index files"
+msgstr "newsgroups index files"
+
+# type: Plain text
+#: ../tin.5:360
+msgid "saved newsgroups index files"
+msgstr "saved newsgroups index files"
+
+# type: Plain text
+#: ../tin.5:370
+msgid ""
+"active file (\"I<mail_group_name> I<maxnum> I<minnum> I<mailspool>\" "
+"quadruples) of user's mailgroups (requires B<tin>(1)  to be build with mh-"
+"mail-handling support)."
+msgstr ""
+"active file (\"I<mail_group_name> I<maxnum> I<minnum> I<mailspool>\" "
+"quadruples) of user's mailgroups (requires B<tin>(1)  to be build with mh-"
+"mail-handling support)."
+
+# type: TP
+#: ../tin.5:370
+#, no-wrap
+msgid "B<mail_group_name>"
+msgstr "B<mail_group_name>"
+
+# type: Plain text
+#: ../tin.5:373
+msgid ""
+"must be the pathname of the mailbox relative to field #4 with / changed to ."
+msgstr ""
+"must be the pathname of the mailbox relative to field #4 with / changed to ."
+
+# type: TP
+#: ../tin.5:373
+#, no-wrap
+msgid "B<maxnum>"
+msgstr "B<maxnum>"
+
+# type: Plain text
+#: ../tin.5:377
+msgid ""
+"just put a large number here, something higher than the highest message in "
+"the mailbox"
+msgstr ""
+"just put a large number here, something higher than the highest message in "
+"the mailbox"
+
+# type: TP
+#: ../tin.5:377
+#, no-wrap
+msgid "B<minnum>"
+msgstr "B<minnum>"
+
+# type: Plain text
+#: ../tin.5:380
+msgid "put 0 here"
+msgstr "put 0 here"
+
+# type: TP
+#: ../tin.5:380
+#, no-wrap
+msgid "B<mailspool>"
+msgstr "B<mailspool>"
+
+# type: Plain text
+#: ../tin.5:384
+msgid ""
+"path of mail spool directory. This must be the full pathname to the root of "
+"the mail folder area."
+msgstr ""
+"path of mail spool directory. This must be the full pathname to the root of "
+"the mail folder area."
+
+# type: Plain text
+#: ../tin.5:388
+msgid "Mail.inbox 12345 00000 /home/foo"
+msgstr "Mail.inbox 12345 00000 /home/foo"
+
+# type: Plain text
+#: ../tin.5:390
+msgid "Mail.outbox 23456 00000 /home/foo"
+msgstr "Mail.outbox 23456 00000 /home/foo"
+
+# type: Plain text
+#: ../tin.5:394
+msgid ""
+"This allows access to the 'inbox' and 'outbox' folders of user foo.  They "
+"are accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox"
+msgstr ""
+"This allows access to the 'inbox' and 'outbox' folders of user foo.  They "
+"are accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox"
+
+# type: Plain text
+#: ../tin.5:401
+msgid "active file of user's saved newsgroups, used by B<tin -R>."
+msgstr "active file of user's saved newsgroups, used by B<tin -R>."
+
+# type: Plain text
+#: ../tin.5:423
+msgid ""
+"The group attributes files may be used to override some global settings from "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> on a per group basis. Order is "
+"important as last match counts; this allows one to refine attributes for "
+"narrowed scopes. Note that the I<scope=E<lt>grouplistE<gt>> line has to be "
+"specified before the attributes are specified for that list and each "
+"attribute can only be set once per scope section. All attributes are set to "
+"a reasonable default so you only have to specify the attribute that you want "
+"to change. All toggle attributes are set by specifying ON/OFF. Otherwise, "
+"they function exactly as their global equivalents. The following group "
+"attributes are available:"
+msgstr ""
+"The group attributes files may be used to override some global settings from "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> on a per group basis. Order is "
+"important as last match counts; this allows one to refine attributes for "
+"narrowed scopes. Note that the I<scope=E<lt>grouplistE<gt>> line has to be "
+"specified before the attributes are specified for that list and each "
+"attribute can only be set once per scope section. All attributes are set to "
+"a reasonable default so you only have to specify the attribute that you want "
+"to change. All toggle attributes are set by specifying ON/OFF. Otherwise, "
+"they function exactly as their global equivalents. The following group "
+"attributes are available:"
+
+# type: TP
+#: ../tin.5:423
+#, no-wrap
+msgid "B<scope>"
+msgstr "B<scope>"
+
+# type: Plain text
+#: ../tin.5:429
+msgid ""
+"This changes the list of groups to which the attributes that follow will be "
+"applied. See the section NEWSGROUP LISTS & WILDCARDS in B<tin>(1)  for the "
+"types of pattern that can be used here."
+msgstr ""
+"This changes the list of groups to which the attributes that follow will be "
+"applied. See the section NEWSGROUP LISTS & WILDCARDS in B<tin>(1)  for the "
+"types of pattern that can be used here."
+
+# type: TP
+#: ../tin.5:429 ../tin.5:1185
+#, no-wrap
+msgid "B<add_posted_to_filter>"
+msgstr "B<add_posted_to_filter>"
+
+# type: Plain text
+#: ../tin.5:432 ../tin.5:435 ../tin.5:438 ../tin.5:441 ../tin.5:444
+#: ../tin.5:447 ../tin.5:450 ../tin.5:463 ../tin.5:473 ../tin.5:486
+#: ../tin.5:489 ../tin.5:492 ../tin.5:495 ../tin.5:502 ../tin.5:505
+#: ../tin.5:532 ../tin.5:535 ../tin.5:538 ../tin.5:548 ../tin.5:551
+#: ../tin.5:554 ../tin.5:557 ../tin.5:560 ../tin.5:563 ../tin.5:566
+#: ../tin.5:569 ../tin.5:572 ../tin.5:575 ../tin.5:581 ../tin.5:584
+#: ../tin.5:587 ../tin.5:590 ../tin.5:593 ../tin.5:596 ../tin.5:599
+#: ../tin.5:605 ../tin.5:608 ../tin.5:611 ../tin.5:614 ../tin.5:617
+#: ../tin.5:620 ../tin.5:623 ../tin.5:626 ../tin.5:629 ../tin.5:683
+msgid "Identical to the tinrc variable of the same name"
+msgstr "Identical to the tinrc variable of the same name"
+
+# type: TP
+#: ../tin.5:432 ../tin.5:1189
+#, no-wrap
+msgid "B<advertising>"
+msgstr "B<advertising>"
+
+# type: TP
+#: ../tin.5:435 ../tin.5:1192
+#, no-wrap
+msgid "B<alternative_handling>"
+msgstr "B<alternative_handling>"
+
+# type: TP
+#: ../tin.5:438
+#, no-wrap
+msgid "B<ask_for_metamail>"
+msgstr "B<ask_for_metamail>"
+
+# type: TP
+#: ../tin.5:441 ../tin.5:1235
+#, no-wrap
+msgid "B<auto_cc_bcc>"
+msgstr "B<auto_cc_bcc>"
+
+# type: TP
+#: ../tin.5:444 ../tin.5:1239
+#, no-wrap
+msgid "B<auto_list_thread>"
+msgstr "B<auto_list_thread>"
+
+# type: TP
+#: ../tin.5:447 ../tin.5:1246
+#, no-wrap
+msgid "B<auto_save>"
+msgstr "B<auto_save>"
+
+# type: TP
+#: ../tin.5:450
+#, no-wrap
+msgid "B<auto_select>"
+msgstr "B<auto_select>"
+
+# type: Plain text
+#: ../tin.5:454
+msgid ""
+"Automatically perform the B<GroupMarkUnselArtRead> ('B<X>') command after "
+"entering the group."
+msgstr ""
+"Automatically perform the B<GroupMarkUnselArtRead> ('B<X>') command after "
+"entering the group."
+
+# type: TP
+#: ../tin.5:454 ../tin.5:1252
+#, no-wrap
+msgid "B<batch_save>"
+msgstr "B<batch_save>"
+
+# type: Plain text
+#: ../tin.5:460
+msgid ""
+"Can be used to override the global setting in tinrc on a per group basis. "
+"For more information read section AUTOMATIC MAILING AND SAVING NEW NEWS in "
+"B<tin>(1)."
+msgstr ""
+"Can be used to override the global setting in tinrc on a per group basis. "
+"For more information read section AUTOMATIC MAILING AND SAVING NEW NEWS in "
+"B<tin>(1)."
+
+# type: TP
+#: ../tin.5:460 ../tin.5:1366
+#, no-wrap
+msgid "B<date_format>"
+msgstr "B<date_format>"
+
+# type: TP
+#: ../tin.5:463
+#, no-wrap
+msgid "B<delete_tmp_files>"
+msgstr "B<delete_tmp_files>"
+
+# type: Plain text
+#: ../tin.5:470
+msgid ""
+"If this is set to ON, then saved article files that have been post-processed "
+"will be automatically deleted, otherwise the user will be asked whether to "
+"delete the post-processed files. Automatic processing of marked articles "
+"using B<GroupAutoSave> ('B<S>') will suppress prompting."
+msgstr ""
+"If this is set to ON, then saved article files that have been post-processed "
+"will be automatically deleted, otherwise the user will be asked whether to "
+"delete the post-processed files. Automatic processing of marked articles "
+"using B<GroupAutoSave> ('B<S>') will suppress prompting."
+
+# type: TP
+#: ../tin.5:470 ../tin.5:1481
+#, no-wrap
+msgid "B<editor_format>"
+msgstr "B<editor_format>"
+
+# type: TP
+#: ../tin.5:473
+#, no-wrap
+msgid "B<fcc>"
+msgstr "B<fcc>"
+
+# type: Plain text
+#: ../tin.5:477
+msgid ""
+"Mailbox to save sent mails. The format of the mailbox is controlled via the "
+"tinrc B<mailbox_format> variable."
+msgstr ""
+"Mailbox to save sent mails. The format of the mailbox is controlled via the "
+"tinrc B<mailbox_format> variable."
+
+# type: TP
+#: ../tin.5:477
+#, no-wrap
+msgid "B<followup_to>"
+msgstr "B<followup_to>"
+
+# type: Plain text
+#: ../tin.5:480
+msgid "Set ''Followup-To:'' header to the specified group(s)."
+msgstr "Set ''Followup-To:'' header to the specified group(s)."
+
+# type: TP
+#: ../tin.5:480 ../tin.5:763
+#, no-wrap
+msgid "B<from>"
+msgstr "B<from>"
+
+# type: Plain text
+#: ../tin.5:483
+msgid "Identical to the tinrc variable B<mail_address>"
+msgstr "Identical to the tinrc variable B<mail_address>"
+
+# type: TP
+#: ../tin.5:483 ../tin.5:1505
+#, no-wrap
+msgid "B<group_catchup_on_exit>"
+msgstr "B<group_catchup_on_exit>"
+
+# type: TP
+#: ../tin.5:486 ../tin.5:1572
+#, no-wrap
+msgid "B<mail_8bit_header>"
+msgstr "B<mail_8bit_header>"
+
+# type: TP
+#: ../tin.5:489 ../tin.5:1584 ../tin.5:2306
+#, no-wrap
+msgid "B<mail_mime_encoding>"
+msgstr "B<mail_mime_encoding>"
+
+# type: TP
+#: ../tin.5:492 ../tin.5:1601
+#, no-wrap
+msgid "B<maildir>"
+msgstr "B<maildir>"
+
+# type: TP
+#: ../tin.5:495
+#, no-wrap
+msgid "B<mailing_list>"
+msgstr "B<mailing_list>"
+
+# type: Plain text
+#: ../tin.5:499
+msgid ""
+"Used when a group is a mailing list. All responses to the group will be "
+"directed to this email address instead"
+msgstr ""
+"Used when a group is a mailing list. All responses to the group will be "
+"directed to this email address instead"
+
+# type: TP
+#: ../tin.5:499 ../tin.5:1639
+#, no-wrap
+msgid "B<mark_ignore_tags>"
+msgstr "B<mark_ignore_tags>"
+
+# type: TP
+#: ../tin.5:502 ../tin.5:1636
+#, no-wrap
+msgid "B<mark_saved_read>"
+msgstr "B<mark_saved_read>"
+
+# type: TP
+#: ../tin.5:505
+#, no-wrap
+msgid "B<mime_forward>"
+msgstr "B<mime_forward>"
+
+# type: Plain text
+#: ../tin.5:522
+msgid ""
+"Determines whether usenet articles are forwarded as attachment or inline. "
+"When set to OFF, the forwarded article will be included in the body of the "
+"mail, while setting this variable to ON will cause the article to be "
+"attached as a separate MIME part. Enabling B<mime_forward> is particularly "
+"useful for articles consisting of multiple MIME parts such as PGP/MIME "
+"signed messages or being encoded in a different character set than your "
+"local one. It is also useful if the receiver should be able to operate on "
+"the entire forwarded article (i.e., view or save it without your comments). "
+"On the other hand, if you want to forward only some parts of the article or "
+"to insert 'inline' annotations, you might want to disable this option.  "
+"Currently mime_forward is forced if the article to be attached is a "
+"multipart MIME article, this may change in a future version.  Please note "
+"that for this option to have effect, the tinrc variable "
+"B<interactive_mailer> has to be set to 0 (which is the default)."
+msgstr ""
+"Determines whether usenet articles are forwarded as attachment or inline. "
+"When set to OFF, the forwarded article will be included in the body of the "
+"mail, while setting this variable to ON will cause the article to be "
+"attached as a separate MIME part. Enabling B<mime_forward> is particularly "
+"useful for articles consisting of multiple MIME parts such as PGP/MIME "
+"signed messages or being encoded in a different character set than your "
+"local one. It is also useful if the receiver should be able to operate on "
+"the entire forwarded article (i.e., view or save it without your comments). "
+"On the other hand, if you want to forward only some parts of the article or "
+"to insert 'inline' annotations, you might want to disable this option.  "
+"Currently mime_forward is forced if the article to be attached is a "
+"multipart MIME article, this may change in a future version.  Please note "
+"that for this option to have effect, the tinrc variable "
+"B<interactive_mailer> has to be set to 0 (which is the default)."
+
+# type: TP
+#: ../tin.5:522
+#, no-wrap
+msgid "B<mime_types_to_save>"
+msgstr "B<mime_types_to_save>"
+
+# type: Plain text
+#: ../tin.5:529
+msgid ""
+"A comma separated list of MIME major/minor Content-Types that will be saved "
+"when using the view/save and save/autosave features.  A single * can be used "
+"to wildcard the major and/or minor type and a ! as the first character in an "
+"entry will negate it, eg: image/*,!image/bmp,!text/html. Default is */*"
+msgstr ""
+"A comma separated list of MIME major/minor Content-Types that will be saved "
+"when using the view/save and save/autosave features.  A single * can be used "
+"to wildcard the major and/or minor type and a ! as the first character in an "
+"entry will negate it, eg: image/*,!image/bmp,!text/html. Default is */*"
+
+# type: TP
+#: ../tin.5:529 ../tin.5:1718
+#, no-wrap
+msgid "B<news_headers_to_display>"
+msgstr "B<news_headers_to_display>"
+
+# type: TP
+#: ../tin.5:532 ../tin.5:1725
+#, no-wrap
+msgid "B<news_headers_to_not_display>"
+msgstr "B<news_headers_to_not_display>"
+
+# type: TP
+#: ../tin.5:535 ../tin.5:1734
+#, no-wrap
+msgid "B<news_quote_format>"
+msgstr "B<news_quote_format>"
+
+# type: TP
+#: ../tin.5:538 ../tin.5:2279
+#, no-wrap
+msgid "B<organization>"
+msgstr "B<organization>"
+
+# type: Plain text
+#: ../tin.5:545
+msgid ""
+"This can be used to set the article header field ''Organization:''. It "
+"overrides the setting (if any) of organization in I</etc/tin/tin.defaults> "
+"and $B<ORGANIZATION> (or $B<NEWSORG> on Apollo DomainOS). Note that some "
+"newsserver might still overwrite the \\&''Organization:'' header."
+msgstr ""
+"This can be used to set the article header field ''Organization:''. It "
+"overrides the setting (if any) of organization in I</etc/tin/tin.defaults> "
+"and $B<ORGANIZATION> (or $B<NEWSORG> on Apollo DomainOS). Note that some "
+"newsserver might still overwrite the \\&''Organization:'' header."
+
+# type: TP
+#: ../tin.5:545 ../tin.5:1759
+#, no-wrap
+msgid "B<pos_first_unread>"
+msgstr "B<pos_first_unread>"
+
+# type: TP
+#: ../tin.5:548 ../tin.5:1763
+#, no-wrap
+msgid "B<post_8bit_header>"
+msgstr "B<post_8bit_header>"
+
+# type: TP
+#: ../tin.5:551 ../tin.5:1774 ../tin.5:2303
+#, no-wrap
+msgid "B<post_mime_encoding>"
+msgstr "B<post_mime_encoding>"
+
+# type: TP
+#: ../tin.5:554 ../tin.5:1786
+#, no-wrap
+msgid "B<post_process_type>"
+msgstr "B<post_process_type>"
+
+# type: TP
+#: ../tin.5:557 ../tin.5:1779
+#, no-wrap
+msgid "B<post_process_view>"
+msgstr "B<post_process_view>"
+
+# type: TP
+#: ../tin.5:560 ../tin.5:1809
+#, no-wrap
+msgid "B<print_header>"
+msgstr "B<print_header>"
+
+# type: TP
+#: ../tin.5:563 ../tin.5:1823
+#, no-wrap
+msgid "B<process_only_unread>"
+msgstr "B<process_only_unread>"
+
+# type: TP
+#: ../tin.5:566 ../tin.5:1827
+#, no-wrap
+msgid "B<prompt_followupto>"
+msgstr "B<prompt_followupto>"
+
+# type: TP
+#: ../tin.5:569 ../tin.5:1831
+#, no-wrap
+msgid "B<quote_chars>"
+msgstr "B<quote_chars>"
+
+# type: TP
+#: ../tin.5:572 ../tin.5:1891
+#, no-wrap
+msgid "B<savedir>"
+msgstr "B<savedir>"
+
+# type: TP
+#.  TODO: document option
+#: ../tin.5:575
+#, no-wrap
+msgid "B<savefile>"
+msgstr "B<savefile>"
+
+# type: TP
+#: ../tin.5:578 ../tin.5:1919
+#, no-wrap
+msgid "B<show_author>"
+msgstr "B<show_author>"
+
+# type: TP
+#: ../tin.5:581 ../tin.5:1945
+#, no-wrap
+msgid "B<show_info>"
+msgstr "B<show_info>"
+
+# type: TP
+#: ../tin.5:584 ../tin.5:1963
+#, no-wrap
+msgid "B<show_only_unread_arts>"
+msgstr "B<show_only_unread_arts>"
+
+# type: TP
+#: ../tin.5:587 ../tin.5:1971
+#, no-wrap
+msgid "B<show_signatures>"
+msgstr "B<show_signatures>"
+
+# type: TP
+#: ../tin.5:590 ../tin.5:1974
+#, no-wrap
+msgid "B<sigdashes>"
+msgstr "B<sigdashes>"
+
+# type: TP
+#: ../tin.5:593 ../tin.5:1977
+#, no-wrap
+msgid "B<sigfile>"
+msgstr "B<sigfile>"
+
+# type: TP
+#: ../tin.5:596 ../tin.5:1988
+#, no-wrap
+msgid "B<signature_repost>"
+msgstr "B<signature_repost>"
+
+# type: TP
+#: ../tin.5:599 ../tin.5:1998
+#, no-wrap
+msgid "B<sort_article_type>"
+msgstr "B<sort_article_type>"
+
+# type: Plain text
+#: ../tin.5:602
+msgid "Identical to the tinrc variable B<sort_article_type>"
+msgstr "Identical to the tinrc variable B<sort_article_type>"
+
+# type: TP
+#: ../tin.5:602 ../tin.5:2027
+#, no-wrap
+msgid "B<sort_threads_type>"
+msgstr "B<sort_threads_type>"
+
+# type: TP
+#: ../tin.5:605 ../tin.5:2056
+#, no-wrap
+msgid "B<start_editor_offset>"
+msgstr "B<start_editor_offset>"
+
+# type: TP
+#: ../tin.5:608 ../tin.5:2084
+#, no-wrap
+msgid "B<tex2iso_conv>"
+msgstr "B<tex2iso_conv>"
+
+# type: TP
+#: ../tin.5:611 ../tin.5:2089
+#, no-wrap
+msgid "B<thread_articles>"
+msgstr "B<thread_articles>"
+
+# type: TP
+#: ../tin.5:614 ../tin.5:2104
+#, no-wrap
+msgid "B<thread_catchup_on_exit>"
+msgstr "B<thread_catchup_on_exit>"
+
+# type: TP
+#: ../tin.5:617 ../tin.5:2099
+#, no-wrap
+msgid "B<thread_perc>"
+msgstr "B<thread_perc>"
+
+# type: TP
+#: ../tin.5:620 ../tin.5:2128
+#, no-wrap
+msgid "B<trim_article_body>"
+msgstr "B<trim_article_body>"
+
+# type: TP
+#: ../tin.5:623 ../tin.5:2208
+#, no-wrap
+msgid "B<verbatim_handling>"
+msgstr "B<verbatim_handling>"
+
+# type: TP
+#: ../tin.5:626 ../tin.5:2255
+#, no-wrap
+msgid "B<wrap_on_next_unread>"
+msgstr "B<wrap_on_next_unread>"
+
+# type: TP
+#: ../tin.5:629
+#, no-wrap
+msgid "B<x_body>"
+msgstr "B<x_body>"
+
+# type: Plain text
+#: ../tin.5:634
+msgid ""
+"A piece of text that will be added at the start of a message body. If this "
+"string starts with a / or ~ then it is assumed to be the name of a file "
+"containing the text to insert."
+msgstr ""
+"A piece of text that will be added at the start of a message body. If this "
+"string starts with a / or ~ then it is assumed to be the name of a file "
+"containing the text to insert."
+
+# type: TP
+#: ../tin.5:634
+#, no-wrap
+msgid "B<x_comment_to>"
+msgstr "B<x_comment_to>"
+
+# type: Plain text
+#: ../tin.5:637
+msgid "Insert ''X-Comment-To:'' header, this is only useful in FIDO groups."
+msgstr "Insert ''X-Comment-To:'' header, this is only useful in FIDO groups."
+
+# type: TP
+#: ../tin.5:637
+#, no-wrap
+msgid "B<x_headers>"
+msgstr "B<x_headers>"
+
+# type: Plain text
+#: ../tin.5:645
+msgid ""
+"A string including header-name and the contents of the header that will be "
+"automatically added when posting. If the string starts with a / or ~ then it "
+"is assumed to be the name of a file containing the header and its content to "
+"be inserted. If the string starts with a ! then what follows is assumed to "
+"be the path to a program to be executed to generate the header and its "
+"content."
+msgstr ""
+"A string including header-name and the contents of the header that will be "
+"automatically added when posting. If the string starts with a / or ~ then it "
+"is assumed to be the name of a file containing the header and its content to "
+"be inserted. If the string starts with a ! then what follows is assumed to "
+"be the path to a program to be executed to generate the header and its "
+"content."
+
+# type: TP
+#: ../tin.5:645
+#, no-wrap
+msgid "B<quick_kill_scope>"
+msgstr "B<quick_kill_scope>"
+
+# type: Plain text
+#: ../tin.5:651
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterKill> will be applied.  If unset the "
+"default from the tinrc variable B<default_filter_kill_global> will be used."
+msgstr ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterKill> will be applied.  If unset the "
+"default from the tinrc variable B<default_filter_kill_global> will be used."
+
+# type: TP
+#: ../tin.5:651
+#, no-wrap
+msgid "B<quick_kill_expire>"
+msgstr "B<quick_kill_expire>"
+
+# type: Plain text
+#: ../tin.5:654
+msgid "Identical to the tinrc variable B<default_filter_kill_expire>"
+msgstr "Identical to the tinrc variable B<default_filter_kill_expire>"
+
+# type: TP
+#: ../tin.5:654
+#, no-wrap
+msgid "B<quick_kill_case>"
+msgstr "B<quick_kill_case>"
+
+# type: Plain text
+#: ../tin.5:657
+msgid "Identical to the tinrc variable B<default_filter_kill_case>"
+msgstr "Identical to the tinrc variable B<default_filter_kill_case>"
+
+# type: TP
+#: ../tin.5:657
+#, no-wrap
+msgid "B<quick_kill_header>"
+msgstr "B<quick_kill_header>"
+
+# type: Plain text
+#: ../tin.5:660
+msgid "Identical to the tinrc variable B<default_filter_kill_header>"
+msgstr "Identical to the tinrc variable B<default_filter_kill_header>"
+
+# type: TP
+#: ../tin.5:660
+#, no-wrap
+msgid "B<quick_select_scope>"
+msgstr "B<quick_select_scope>"
+
+# type: Plain text
+#: ../tin.5:666
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterSelect> will be applied. If unset the "
+"default from the tinrc variable B<default_filter_select_global> will be used."
+msgstr ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterSelect> will be applied. If unset the "
+"default from the tinrc variable B<default_filter_select_global> will be used."
+
+# type: TP
+#: ../tin.5:666
+#, no-wrap
+msgid "B<quick_select_expire>"
+msgstr "B<quick_select_expire>"
+
+# type: Plain text
+#: ../tin.5:669
+msgid "Identical to the tinrc variable B<default_filter_select_expire>"
+msgstr "Identical to the tinrc variable B<default_filter_select_expire>"
+
+# type: TP
+#: ../tin.5:669
+#, no-wrap
+msgid "B<quick_select_case>"
+msgstr "B<quick_select_case>"
+
+# type: Plain text
+#: ../tin.5:672
+msgid "Identical to the tinrc variable B<default_filter_select_case>"
+msgstr "Identical to the tinrc variable B<default_filter_select_case>"
+
+# type: TP
+#: ../tin.5:672
+#, no-wrap
+msgid "B<quick_select_header>"
+msgstr "B<quick_select_header>"
+
+# type: Plain text
+#: ../tin.5:675
+msgid "Identical to the tinrc variable B<default_filter_select_header>"
+msgstr "Identical to the tinrc variable B<default_filter_select_header>"
+
+# type: TP
+#: ../tin.5:675
+#, no-wrap
+msgid "B<ispell>"
+msgstr "B<ispell>"
+
+# type: Plain text
+#: ../tin.5:680
+msgid ""
+"Path and options for B<ispell>(1)-like spell-checker, e.g. \"aspell --"
+"mode=email --dont-backup check\""
+msgstr ""
+"Path and options for B<ispell>(1)-like spell-checker, e.g. \"aspell --"
+"mode=email --dont-backup check\""
+
+# type: TP
+#: ../tin.5:680 ../tin.5:1672
+#, no-wrap
+msgid "B<mm_network_charset>"
+msgstr "B<mm_network_charset>"
+
+# type: TP
+#: ../tin.5:683
+#, no-wrap
+msgid "B<undeclared_charset>"
+msgstr "B<undeclared_charset>"
+
+# type: Plain text
+#: ../tin.5:692
+msgid ""
+"Assume (broken) articles without MIME charset declaration have this charset "
+"- default is US-ASCII. This attribute works only on systems with working "
+"B<iconv>(3), others might have to compile B<tin>(1)  with --disable-mime-"
+"strict-charset."
+msgstr ""
+"Assume (broken) articles without MIME charset declaration have this charset "
+"- default is US-ASCII. This attribute works only on systems with working "
+"B<iconv>(3), others might have to compile B<tin>(1)  with --disable-mime-"
+"strict-charset."
+
+# type: Plain text
+#: ../tin.5:702
+#, no-wrap
+msgid ""
+"# include extra headers\n"
+"# assume ISO-8859-1 as charset if no charset is declared\n"
+"scope=*\n"
+"x_headers=~/.tin/headers\n"
+"undeclared_charset=ISO-8859-1\n"
+msgstr ""
+"# include extra headers\n"
+"# assume ISO-8859-1 as charset if no charset is declared\n"
+"scope=*\n"
+"x_headers=~/.tin/headers\n"
+"undeclared_charset=ISO-8859-1\n"
+
+# type: Plain text
+#: ../tin.5:706
+#, no-wrap
+msgid ""
+"# in *sources* set post process type to shar only\n"
+"scope=*sources*\n"
+"post_process_type=1\n"
+msgstr ""
+"# in *sources* set post process type to shar only\n"
+"scope=*sources*\n"
+"post_process_type=1\n"
+
+# type: Plain text
+#: ../tin.5:713
+#, no-wrap
+msgid ""
+"# in *binaries* turn on full post processing,\n"
+"# remove tmp files and set Followup-To: poster\n"
+"scope=*binaries*\n"
+"post_process_type=2\n"
+"delete_tmp_files=ON\n"
+"followup_to=poster\n"
+msgstr ""
+"# in *binaries* turn on full post processing,\n"
+"# remove tmp files and set Followup-To: poster\n"
+"scope=*binaries*\n"
+"post_process_type=2\n"
+"delete_tmp_files=ON\n"
+"followup_to=poster\n"
+
+# type: Plain text
+#: ../tin.5:719
+#, no-wrap
+msgid ""
+"# in fido.* newsgroups change quote_chars\n"
+"# and add X-Comment-To: line\n"
+"scope=fido.*\n"
+"quote_chars=%sE<gt>_\n"
+"x_comment_to=ON\n"
+msgstr ""
+"# in fido.* newsgroups change quote_chars\n"
+"# and add X-Comment-To: line\n"
+"scope=fido.*\n"
+"quote_chars=%sE<gt>_\n"
+"x_comment_to=ON\n"
+
+# type: Plain text
+#: ../tin.5:725
+#, no-wrap
+msgid ""
+"# in *.test newsgroups, don't append signature\n"
+"# and preset Subject\n"
+"scope=*.test\n"
+"sigfile=--none\n"
+"x_headers=Subject: test - ignore - no reply\n"
+msgstr ""
+"# in *.test newsgroups, don't append signature\n"
+"# and preset Subject\n"
+"scope=*.test\n"
+"sigfile=--none\n"
+"x_headers=Subject: test - ignore - no reply\n"
+
+# type: Plain text
+#: ../tin.5:729
+#, no-wrap
+msgid ""
+"# assume ISO-2022-JP-2 as charset\n"
+"scope=fj.*,japan.*\n"
+"undeclared_charset=ISO-2022-JP-2\n"
+msgstr ""
+"# assume ISO-2022-JP-2 as charset\n"
+"scope=fj.*,japan.*\n"
+"undeclared_charset=ISO-2022-JP-2\n"
+
+# type: Plain text
+#: ../tin.5:741
+msgid ""
+"The filter file is used to assign scores to certain articles. Based on the "
+"score an article can be filtered out (hidden) or marked hot. Empty lines or "
+"lines beginning with a '#' are ignored."
+msgstr ""
+"The filter file is used to assign scores to certain articles. Based on the "
+"score an article can be filtered out (hidden) or marked hot. Empty lines or "
+"lines beginning with a '#' are ignored."
+
+# type: TP
+#: ../tin.5:741
+#, no-wrap
+msgid "B<comment>"
+msgstr "B<comment>"
+
+# type: Plain text
+#: ../tin.5:750
+msgid ""
+"Every entry (rule) in the filter file might get a comment. Multiple lines "
+"are allowed (but only for comments yet). Every line must start with the "
+"\"comment=\" keyword. Comments must appear first in the rule.  Comment lines "
+"placed within a rule will be moved to the begin of the next rule. This might "
+"be changed in the future. Don't use '#' to mark comments as those lines are "
+"ignored and your comments will get lost on the next write of the file."
+msgstr ""
+"Every entry (rule) in the filter file might get a comment. Multiple lines "
+"are allowed (but only for comments yet). Every line must start with the "
+"\"comment=\" keyword. Comments must appear first in the rule.  Comment lines "
+"placed within a rule will be moved to the begin of the next rule. This might "
+"be changed in the future. Don't use '#' to mark comments as those lines are "
+"ignored and your comments will get lost on the next write of the file."
+
+# type: TP
+#: ../tin.5:750
+#, no-wrap
+msgid "B<group>"
+msgstr "B<group>"
+
+# type: Plain text
+#: ../tin.5:754
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule will be applied. This line is mandatory!"
+msgstr ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule will be applied. This line is mandatory!"
+
+# type: TP
+#: ../tin.5:754
+#, no-wrap
+msgid "B<case>"
+msgstr "B<case>"
+
+# type: Plain text
+#: ../tin.5:757
+msgid "0=case-sensitive, 1=case-insensitive"
+msgstr "0=case-sensitive, 1=case-insensitive"
+
+# type: TP
+#: ../tin.5:757
+#, no-wrap
+msgid "B<score>"
+msgstr "B<score>"
+
+# type: Plain text
+#: ../tin.5:760
+msgid ""
+"Score value of the rule; can also be one of the magic words \"kill\" or \"hot"
+"\"."
+msgstr ""
+"Score value of the rule; can also be one of the magic words \"kill\" or \"hot"
+"\"."
+
+# type: TP
+#: ../tin.5:760
+#, no-wrap
+msgid "B<subj>"
+msgstr "B<subj>"
+
+# type: Plain text
+#: ../tin.5:763
+msgid "Match against ''Subject:''"
+msgstr "Match against ''Subject:''"
+
+# type: Plain text
+#: ../tin.5:771
+msgid ""
+"Match against ''From:''.  B<tin>(1)  converts the contents of the ''From:'' "
+"header to an old style e-mail address, e.g. ''some@body.example (John Doe)'' "
+"instead of ''John Doe E<lt>some@body.exampleE<gt>'', before trying to match "
+"the patterns in the filter rule."
+msgstr ""
+"Match against ''From:''.  B<tin>(1)  converts the contents of the ''From:'' "
+"header to an old style e-mail address, e.g. ''some@body.example (John Doe)'' "
+"instead of ''John Doe E<lt>some@body.exampleE<gt>'', before trying to match "
+"the patterns in the filter rule."
+
+# type: TP
+#: ../tin.5:771
+#, no-wrap
+msgid "B<msgid>"
+msgstr "B<msgid>"
+
+# type: Plain text
+#: ../tin.5:774
+msgid "Match against ''Message-ID:'' and full ''References:''"
+msgstr "Match against ''Message-ID:'' and full ''References:''"
+
+# type: TP
+#: ../tin.5:774
+#, no-wrap
+msgid "B<msgid_last>"
+msgstr "B<msgid_last>"
+
+# type: Plain text
+#: ../tin.5:777
+msgid "Match against ''Message-ID:'' and last ''References:'' entry only"
+msgstr "Match against ''Message-ID:'' and last ''References:'' entry only"
+
+# type: TP
+#: ../tin.5:777
+#, no-wrap
+msgid "B<msgid_only>"
+msgstr "B<msgid_only>"
+
+# type: Plain text
+#: ../tin.5:780
+msgid "Match against ''Message-ID:''"
+msgstr "Match against ''Message-ID:''"
+
+# type: TP
+#: ../tin.5:780
+#, no-wrap
+msgid "B<refs_only>"
+msgstr "B<refs_only>"
+
+# type: Plain text
+#: ../tin.5:783
+msgid "Match against ''References:''"
+msgstr "Match against ''References:''"
+
+# type: TP
+#: ../tin.5:783
+#, no-wrap
+msgid "B<lines>"
+msgstr "B<lines>"
+
+# type: Plain text
+#: ../tin.5:786
+msgid ""
+"Match against ''Lines:'', E<lt>num matches less than, E<gt>num matches more "
+"than."
+msgstr ""
+"Match against ''Lines:'', E<lt>num matches less than, E<gt>num matches more "
+"than."
+
+# type: TP
+#.  TODO: document option in detail
+#: ../tin.5:786
+#, no-wrap
+msgid "B<gnksa>"
+msgstr "B<gnksa>"
+
+# type: Plain text
+#: ../tin.5:790
+msgid "Match against ''From:'' address parser return codes."
+msgstr "Match against ''From:'' address parser return codes."
+
+# type: TP
+#: ../tin.5:790
+#, no-wrap
+msgid "B<xref>"
+msgstr "B<xref>"
+
+# type: Plain text
+#: ../tin.5:796
+msgid ""
+"Match against ''Xref:'' line. Before any matching is done the line is turned "
+"into the same format ''Newsgroups:'' has that is it is turned into a comma "
+"separated newsgroup list with all other information (i.e.  the article "
+"counter) removed."
+msgstr ""
+"Match against ''Xref:'' line. Before any matching is done the line is turned "
+"into the same format ''Newsgroups:'' has that is it is turned into a comma "
+"separated newsgroup list with all other information (i.e.  the article "
+"counter) removed."
+
+# type: TP
+#: ../tin.5:796 ../tin.5:2446
+#, no-wrap
+msgid "B<time>"
+msgstr "B<time>"
+
+# type: Plain text
+#: ../tin.5:799
+msgid "time_t value when rule expires"
+msgstr "time_t value when rule expires"
+
+# type: Plain text
+#: ../tin.5:810
+#, no-wrap
+msgid ""
+"comment=mark all articles about tin, rtin,\n"
+"comment=tind, ktin or cdtin as hot\n"
+"group=*\n"
+"case=1\n"
+"score=hot\n"
+"subj=\\eb(cd|[rk]?)?tin(d|pre)?[-.0-9]*\\eb\n"
+msgstr ""
+"comment=mark all articles about tin, rtin,\n"
+"comment=tind, ktin or cdtin as hot\n"
+"group=*\n"
+"case=1\n"
+"score=hot\n"
+"subj=\\eb(cd|[rk]?)?tin(d|pre)?[-.0-9]*\\eb\n"
+
+# type: Plain text
+#: ../tin.5:826
+msgid ""
+"Keymap-file, containing \"I<keyname> I<value> I<[value]>\" pairs separated "
+"by spaces or tabs. Below is a list of all rebindable keynames and their "
+"defaults. If a keyname is bound to NULL it is unassigned."
+msgstr ""
+"Keymap-file, containing \"I<keyname> I<value> I<[value]>\" pairs separated "
+"by spaces or tabs. Below is a list of all rebindable keynames and their "
+"defaults. If a keyname is bound to NULL it is unassigned."
+
+# type: ta
+#: ../tin.5:828
+#, no-wrap
+msgid "\\w'GroupSelThdIfUnreadSelected    'u +\\w'SPACE'u +\\w'SPACE'u"
+msgstr "\\w'GroupSelThdIfUnreadSelected    'u +\\w'SPACE'u +\\w'SPACE'u"
+
+# type: Plain text
+#: ../tin.5:875
+#, no-wrap
+msgid ""
+"B<ShellEscape>\t!\n"
+"B<SetRange>\t#\n"
+"B<LastPage>\t$\n"
+"B<ToggleColor>\t&\n"
+"B<LastViewed>\t-\n"
+"B<SearchRepeat>\t\\e\n"
+"B<SearchSubjF>\t/\n"
+"B<SearchSubjB>\t?\n"
+"B<SearchAuthB>\tA\n"
+"B<SearchBody>\tB\n"
+"B<CatchupNextUnread>\tC\n"
+"B<EditFilter>\tE\n"
+"B<ToggleHelpDisplay>\tH\n"
+"B<ToggleInverseVideo>\tI\n"
+"B<LookupMessage>\tL\n"
+"B<OptionMenu>\tM\n"
+"B<Postponed>\tO\t^O\n"
+"B<QuitTin>\tQ\n"
+"B<BugReport>\tR\n"
+"B<DisplayPostHist>\tW\n"
+"B<MarkThrUnread>\tZ\n"
+"B<FirstPage>\t^\n"
+"B<SearchAuthF>\ta\n"
+"B<Catchup>\tc\n"
+"B<Help>\th\n"
+"B<ToggleInfoLastLine>\ti\n"
+"B<Down>\tj\t^N\n"
+"B<Up>\tk\t^P\n"
+"B<Print>\to\n"
+"B<Quit>\tq\n"
+"B<Version>\tv\n"
+"B<Post>\tw\n"
+"B<MarkArtUnread>\tz\n"
+"B<QuickFilterSelect>\t[\n"
+"B<QuickFilterKill>\t]\n"
+"B<Pipe>\t|\n"
+"B<ScrollUp>\tE<lt>\n"
+"B<ScrollDown>\tE<gt>\n"
+"B<PageUp>\tb\t^B\t^U\n"
+"B<PageDown>\t^D\t^F\tSPACE\n"
+"B<RedrawScr>\t^L\n"
+"B<Postponed>\t^O\n"
+"B<MenuFilterSelect>\t^A\n"
+"B<MenuFilterKill>\t^K\n"
+"B<MarkFeedRead>\t^X\n"
+"B<MarkFeedUnread>\t^W\n"
+msgstr ""
+"B<ShellEscape>\t!\n"
+"B<SetRange>\t#\n"
+"B<LastPage>\t$\n"
+"B<ToggleColor>\t&\n"
+"B<LastViewed>\t-\n"
+"B<SearchRepeat>\t\\e\n"
+"B<SearchSubjF>\t/\n"
+"B<SearchSubjB>\t?\n"
+"B<SearchAuthB>\tA\n"
+"B<SearchBody>\tB\n"
+"B<CatchupNextUnread>\tC\n"
+"B<EditFilter>\tE\n"
+"B<ToggleHelpDisplay>\tH\n"
+"B<ToggleInverseVideo>\tI\n"
+"B<LookupMessage>\tL\n"
+"B<OptionMenu>\tM\n"
+"B<Postponed>\tO\t^O\n"
+"B<QuitTin>\tQ\n"
+"B<BugReport>\tR\n"
+"B<DisplayPostHist>\tW\n"
+"B<MarkThrUnread>\tZ\n"
+"B<FirstPage>\t^\n"
+"B<SearchAuthF>\ta\n"
+"B<Catchup>\tc\n"
+"B<Help>\th\n"
+"B<ToggleInfoLastLine>\ti\n"
+"B<Down>\tj\t^N\n"
+"B<Up>\tk\t^P\n"
+"B<Print>\to\n"
+"B<Quit>\tq\n"
+"B<Version>\tv\n"
+"B<Post>\tw\n"
+"B<MarkArtUnread>\tz\n"
+"B<QuickFilterSelect>\t[\n"
+"B<QuickFilterKill>\t]\n"
+"B<Pipe>\t|\n"
+"B<ScrollUp>\tE<lt>\n"
+"B<ScrollDown>\tE<gt>\n"
+"B<PageUp>\tb\t^B\t^U\n"
+"B<PageDown>\t^D\t^F\tSPACE\n"
+"B<RedrawScr>\t^L\n"
+"B<Postponed>\t^O\n"
+"B<MenuFilterSelect>\t^A\n"
+"B<MenuFilterKill>\t^K\n"
+"B<MarkFeedRead>\t^X\n"
+"B<MarkFeedUnread>\t^W\n"
+
+# type: Plain text
+#: ../tin.5:883
+#, no-wrap
+msgid ""
+"B<AttachSelect>\t^J\t^M\n"
+"B<AttachPipe>\tp\n"
+"B<AttachSave>\ts\n"
+"B<AttachTag>\tt\n"
+"B<AttachUntag>\tU\n"
+"B<AttachTagPattern>\t=\n"
+"B<AttachToggleTagged>\t@\n"
+msgstr ""
+"B<AttachSelect>\t^J\t^M\n"
+"B<AttachPipe>\tp\n"
+"B<AttachSave>\ts\n"
+"B<AttachTag>\t\tt\n"
+"B<AttachUntag>\tU\n"
+"B<AttachTagPattern>\t=\n"
+"B<AttachToggleTagged>\t@\n"
+
+# type: Plain text
+#: ../tin.5:891
+#, no-wrap
+msgid ""
+"B<ConfigToggleAttrib>\tTAB\n"
+"B<ConfigSelect>\t^J\t^M\n"
+"B<ConfigLastPage>\tG\n"
+"B<ConfigNoSave>\tQ\n"
+"B<ConfigScopeMenu>\tS\n"
+"B<ConfigFirstPage>\tg\n"
+"B<ConfigResetAttrib>\tr\n"
+msgstr ""
+"B<ConfigToggleAttrib>\tTAB\n"
+"B<ConfigSelect>\t^J\t^M\n"
+"B<ConfigLastPage>\tG\n"
+"B<ConfigNoSave>\tQ\n"
+"B<ConfigScopeMenu>\tS\n"
+"B<ConfigFirstPage>\tg\n"
+"B<ConfigResetAttrib>\tr\n"
+
+# type: Plain text
+#: ../tin.5:899
+#, no-wrap
+msgid ""
+"B<FeedTag>\tT\n"
+"B<FeedArt>\ta\n"
+"B<FeedHot>\th\n"
+"B<FeedPat>\tp\n"
+"B<FeedRepost>\tr\n"
+"B<FeedSupersede>\ts\n"
+"B<FeedThd>\tt\n"
+msgstr ""
+"B<FeedTag>\tT\n"
+"B<FeedArt>\ta\n"
+"B<FeedHot>\th\n"
+"B<FeedPat>\tp\n"
+"B<FeedRepost>\tr\n"
+"B<FeedSupersede>\ts\n"
+"B<FeedThd>\tt\n"
+
+# type: Plain text
+#: ../tin.5:902
+#, no-wrap
+msgid ""
+"B<FilterEdit>\te\n"
+"B<FilterSave>\ts\n"
+msgstr ""
+"B<FilterEdit>\te\n"
+"B<FilterSave>\ts\n"
+
+# type: Plain text
+#: ../tin.5:932
+#, no-wrap
+msgid ""
+"B<GroupNextUnreadArtOrGrp>\tTAB\n"
+"B<GroupReadBasenote>\t^J\t^M\n"
+"B<GroupSelThd>\t*\n"
+"B<GroupDoAutoSel>\t+\n"
+"B<GroupToggleThdSel>\t.\n"
+"B<GroupSelThdIfUnreadSelected>\t;\n"
+"B<GroupSelPattern>\t=\n"
+"B<GroupReverseSel>\t@\n"
+"B<GroupCancel>\tD\n"
+"B<GroupToggleGetartLimit>\tG\n"
+"B<GroupMarkThdRead>\tK\n"
+"B<GroupNextUnreadArt>\tN\n"
+"B<GroupPrevUnreadArt>\tP\n"
+"B<GroupAutoSave>\tS\n"
+"B<GroupTagParts>\tT\n"
+"B<GroupUntag>\tU\n"
+"B<GroupMarkUnselArtRead>\tX\n"
+"B<GroupToggleSubjDisplay>\td\n"
+"B<GroupGoto>\tg\n"
+"B<GroupListThd>\tl\n"
+"B<GroupMail>\tm\n"
+"B<GroupNextGroup>\tn\n"
+"B<GroupPrevGroup>\tp\n"
+"B<GroupToggleReadUnread>\tr\n"
+"B<GroupSave>\ts\n"
+"B<GroupTag>\tt\n"
+"B<GroupToggleThreading>\tu\n"
+"B<GroupRepost>\tx\n"
+"B<GroupUndoSel>\t~\n"
+msgstr ""
+"B<GroupNextUnreadArtOrGrp>\tTAB\n"
+"B<GroupReadBasenote>\t^J\t^M\n"
+"B<GroupSelThd>\t*\n"
+"B<GroupDoAutoSel>\t+\n"
+"B<GroupToggleThdSel>\t.\n"
+"B<GroupSelThdIfUnreadSelected>\t;\n"
+"B<GroupSelPattern>\t=\n"
+"B<GroupReverseSel>\t@\n"
+"B<GroupCancel>\tD\n"
+"B<GroupToggleGetartLimit>\tG\n"
+"B<GroupMarkThdRead>\tK\n"
+"B<GroupNextUnreadArt>\tN\n"
+"B<GroupPrevUnreadArt>\tP\n"
+"B<GroupAutoSave>\tS\n"
+"B<GroupTagParts>\tT\n"
+"B<GroupUntag>\tU\n"
+"B<GroupMarkUnselArtRead>\tX\n"
+"B<GroupToggleSubjDisplay>\td\n"
+"B<GroupGoto>\tg\n"
+"B<GroupListThd>\tl\n"
+"B<GroupMail>\tm\n"
+"B<GroupNextGroup>\tn\n"
+"B<GroupPrevGroup>\tp\n"
+"B<GroupToggleReadUnread>\tr\n"
+"B<GroupSave>\ts\n"
+"B<GroupTag>\tt\n"
+"B<GroupToggleThreading>\tu\n"
+"B<GroupRepost>\tx\n"
+"B<GroupUndoSel>\t~\n"
+
+# type: Plain text
+#: ../tin.5:935
+#, no-wrap
+msgid ""
+"B<HelpLastPage>\tG\n"
+"B<HelpFirstPage>\tg\n"
+msgstr ""
+"B<HelpLastPage>\tG\n"
+"B<HelpFirstPage>\tg\n"
+
+# type: Plain text
+#: ../tin.5:975
+#, no-wrap
+msgid ""
+"B<PageReplyQuoteHeaders>\t^E\n"
+"B<PagePGPCheckArticle>\t^G\n"
+"B<PageToggleRaw>\t^H\n"
+"B<PageNextUnread>\tTAB\n"
+"B<PageNextThd>\t^J\t^M\n"
+"B<PageToggleTabs>\t^T\n"
+"B<PageFollowupQuoteHeaders>\t^W\n"
+"B<PageToggleTex2iso>\t\"\n"
+"B<PageToggleAllHeaders>\t*\n"
+"B<PageToggleRot>\t%\n"
+"B<PageToggleUue>\t(\n"
+"B<PageReveal>\t)\n"
+"B<PageSkipIncludedText>\t:\n"
+"B<PageTopThd>\tE<lt>\n"
+"B<PageBotThd>\tE<gt>\n"
+"B<PageCancel>\tD\n"
+"B<PageFollowup>\tF\n"
+"B<PageLastPage>\tG\n"
+"B<PageKillThd>\tK\n"
+"B<PageNextUnreadArt>\tN\n"
+"B<PagePrevUnreadArt>\tP\n"
+"B<PageReply>\tR\n"
+"B<PageAutoSave>\tS\n"
+"B<PageGroupSel>\tT\n"
+"B<PageViewUrl>\tU\n"
+"B<PageViewAttach>\tV\n"
+"B<PageToggleHighlight>\t_\n"
+"B<PageEditArticle>\te\n"
+"B<PageFollowupQuote>\tf\n"
+"B<PageFirstPage>\tg\n"
+"B<PageListThd>\tl\n"
+"B<PageMail>\tm\n"
+"B<PageNextArt>\tn\n"
+"B<PagePrevArt>\tp\n"
+"B<PageReplyQuote>\tr\n"
+"B<PageSave>\ts\n"
+"B<PageTag>\tt\n"
+"B<PageGotoParent>\tu\n"
+"B<PageRepost>\tx\n"
+msgstr ""
+"B<PageReplyQuoteHeaders>\t^E\n"
+"B<PagePGPCheckArticle>\t^G\n"
+"B<PageToggleRaw>\t^H\n"
+"B<PageNextUnread>\tTAB\n"
+"B<PageNextThd>\t^J\t^M\n"
+"B<PageToggleTabs>\t^T\n"
+"B<PageFollowupQuoteHeaders>\t^W\n"
+"B<PageToggleTex2iso>\t\"\n"
+"B<PageToggleAllHeaders>\t*\n"
+"B<PageToggleRot>\t%\n"
+"B<PageToggleUue>\t(\n"
+"B<PageReveal>\t)\n"
+"B<PageSkipIncludedText>\t:\n"
+"B<PageTopThd>\tE<lt>\n"
+"B<PageBotThd>\tE<gt>\n"
+"B<PageCancel>\tD\n"
+"B<PageFollowup>\tF\n"
+"B<PageLastPage>\tG\n"
+"B<PageKillThd>\tK\n"
+"B<PageNextUnreadArt>\tN\n"
+"B<PagePrevUnreadArt>\tP\n"
+"B<PageReply>\tR\n"
+"B<PageAutoSave>\tS\n"
+"B<PageGroupSel>\tT\n"
+"B<PageViewUrl>\tU\n"
+"B<PageViewAttach>\tV\n"
+"B<PageToggleHighlight>\t_\n"
+"B<PageEditArticle>\te\n"
+"B<PageFollowupQuote>\tf\n"
+"B<PageFirstPage>\tg\n"
+"B<PageListThd>\tl\n"
+"B<PageMail>\tm\n"
+"B<PageNextArt>\tn\n"
+"B<PagePrevArt>\tp\n"
+"B<PageReplyQuote>\tr\n"
+"B<PageSave>\ts\n"
+"B<PageTag>\tt\n"
+"B<PageGotoParent>\tu\n"
+"B<PageRepost>\tx\n"
+
+# type: Plain text
+#: ../tin.5:980
+#, no-wrap
+msgid ""
+"B<PgpEncSign>\tb\n"
+"B<PgpEncrypt>\te\n"
+"B<PgpIncludekey>\ti\n"
+"B<PgpSign>\ts\n"
+msgstr ""
+"B<PgpEncSign>\tb\n"
+"B<PgpEncrypt>\te\n"
+"B<PgpIncludekey>\ti\n"
+"B<PgpSign>\ts\n"
+
+# type: Plain text
+#: ../tin.5:993
+#, no-wrap
+msgid ""
+"B<PostAbort>\ta\n"
+"B<PostContinue>\tc\n"
+"B<PostCancel>\td\n"
+"B<PostEdit>\te\n"
+"B<PostPGP>\tg\n"
+"B<PostIspell>\ti\n"
+"B<PostIgnore>\ti\n"
+"B<PostMail>\tm\n"
+"B<PostPostpone>\to\n"
+"B<PostPost>\tp\ty\n"
+"B<PostSupersede>\ts\n"
+"B<PostSend>\ts\ty\n"
+msgstr ""
+"B<PostAbort>\ta\n"
+"B<PostContinue>\tc\n"
+"B<PostCancel>\td\n"
+"B<PostEdit>\te\n"
+"B<PostPGP>\tg\n"
+"B<PostIspell>\ti\n"
+"B<PostIgnore>\ti\n"
+"B<PostMail>\tm\n"
+"B<PostPostpone>\to\n"
+"B<PostPost>\tp\ty\n"
+"B<PostSupersede>\ts\n"
+"B<PostSend>\ts\ty\n"
+
+# type: Plain text
+#: ../tin.5:996
+#, no-wrap
+msgid ""
+"B<PostponeOverride>\tY\n"
+"B<PostponeAll>\tA\n"
+msgstr ""
+"B<PostponeOverride>\tY\n"
+"B<PostponeAll>\tA\n"
+
+# type: Plain text
+#: ../tin.5:999
+#, no-wrap
+msgid ""
+"B<PromptYes>\ty\tY\n"
+"B<PromptNo>\tn\tN\n"
+msgstr ""
+"B<PromptYes>\ty\tY\n"
+"B<PromptNo>\tn\tN\n"
+
+# type: Plain text
+#: ../tin.5:1002
+#, no-wrap
+msgid ""
+"B<SaveAppendFile>\ta\n"
+"B<SaveOverwriteFile>\to\n"
+msgstr ""
+"B<SaveAppendFile>\ta\n"
+"B<SaveOverwriteFile>\to\n"
+
+# type: Plain text
+#: ../tin.5:1006
+#, no-wrap
+msgid ""
+"B<PProcNone>\tn\n"
+"B<PProcShar>\ts\n"
+"B<PProcYes>\ty\n"
+msgstr ""
+"B<PProcNone>\tn\n"
+"B<PProcShar>\ts\n"
+"B<PProcYes>\ty\n"
+
+# type: Plain text
+#: ../tin.5:1024
+#, no-wrap
+msgid ""
+"B<SelectEnterNextUnreadGrp>\tTAB\tn\n"
+"B<SelectReadGrp>\t^J\t^M\n"
+"B<SelectResetNewsrc>\t^R\n"
+"B<SelectSortActive>\t.\n"
+"B<SelectNextUnreadGrp>\tN\n"
+"B<SelectSubscribePat>\tS\n"
+"B<SelectUnsubscribePat>\tU\n"
+"B<SelectQuitNoWrite>\tX\n"
+"B<SelectSyncWithActive>\tY\n"
+"B<SelectToggleDescriptions>\td\n"
+"B<SelectGoto>\tg\n"
+"B<SelectMoveGrp>\tm\n"
+"B<SelectToggleReadDisplay>\tr\n"
+"B<SelectSubscribe>\ts\n"
+"B<SelectUnsubscribe>\tu\n"
+"B<SelectYankActive>\ty\n"
+"B<SelectMarkGrpUnread>\tz\tZ\n"
+msgstr ""
+"B<SelectEnterNextUnreadGrp>\tTAB\tn\n"
+"B<SelectReadGrp>\t^J\t^M\n"
+"B<SelectResetNewsrc>\t^R\n"
+"B<SelectSortActive>\t.\n"
+"B<SelectNextUnreadGrp>\tN\n"
+"B<SelectSubscribePat>\tS\n"
+"B<SelectUnsubscribePat>\tU\n"
+"B<SelectQuitNoWrite>\tX\n"
+"B<SelectSyncWithActive>\tY\n"
+"B<SelectToggleDescriptions>\td\n"
+"B<SelectGoto>\tg\n"
+"B<SelectMoveGrp>\tm\n"
+"B<SelectToggleReadDisplay>\tr\n"
+"B<SelectSubscribe>\ts\n"
+"B<SelectUnsubscribe>\tu\n"
+"B<SelectYankActive>\ty\n"
+"B<SelectMarkGrpUnread>\tz\tZ\n"
+
+# type: Plain text
+#: ../tin.5:1031
+#, no-wrap
+msgid ""
+"B<ScopeSelect>\t^J\t^M\n"
+"B<ScopeEditAttributesFile>\tE\n"
+"B<ScopeAdd>\ta\n"
+"B<ScopeDelete>\td\n"
+"B<ScopeMove>\tm\n"
+"B<ScopeRename>\tr\n"
+msgstr ""
+"B<ScopeSelect>\t^J\t^M\n"
+"B<ScopeEditAttributesFile>\tE\n"
+"B<ScopeAdd>\ta\n"
+"B<ScopeDelete>\td\n"
+"B<ScopeMove>\tm\n"
+"B<ScopeRename>\tr\n"
+
+# type: Plain text
+#: ../tin.5:1046
+#, no-wrap
+msgid ""
+"B<ThreadReadNextArtOrThread>\tTAB\n"
+"B<ThreadReadArt>\t^J\t^M\n"
+"B<ThreadSelArt>\t*\n"
+"B<ThreadToggleArtSel>\t.\n"
+"B<ThreadReverseSel>\t@\n"
+"B<ThreadCancel>\tD\n"
+"B<ThreadMarkArtRead>\tK\n"
+"B<ThreadAutoSave>\tS\n"
+"B<ThreadUntag>\tU\n"
+"B<ThreadToggleSubjDisplay>\td\n"
+"B<ThreadMail>\tm\n"
+"B<ThreadSave>\ts\n"
+"B<ThreadTag>\tt\n"
+"B<ThreadUndoSel>\t~\n"
+msgstr ""
+"B<ThreadReadNextArtOrThread>\tTAB\n"
+"B<ThreadReadArt>\t^J\t^M\n"
+"B<ThreadSelArt>\t*\n"
+"B<ThreadToggleArtSel>\t.\n"
+"B<ThreadReverseSel>\t@\n"
+"B<ThreadCancel>\tD\n"
+"B<ThreadMarkArtRead>\tK\n"
+"B<ThreadAutoSave>\tS\n"
+"B<ThreadUntag>\tU\n"
+"B<ThreadToggleSubjDisplay>\td\n"
+"B<ThreadMail>\tm\n"
+"B<ThreadSave>\ts\n"
+"B<ThreadTag>\tt\n"
+"B<ThreadUndoSel>\t~\n"
+
+# type: Plain text
+#: ../tin.5:1048
+#, no-wrap
+msgid "B<UrlSelect>\t^J\t^M\n"
+msgstr "B<UrlSelect>\t^J\t^M\n"
+
+# type: Plain text
+#: ../tin.5:1059
+msgid ""
+"This file provides short descriptions of each mailgroup. (requires B<tin>"
+"(1)  to be build with mh-mail-handling support). Each line consist of two "
+"tab-separated fields \"I<mailgroupname> I<one-line description>\"."
+msgstr ""
+"This file provides short descriptions of each mailgroup. (requires B<tin>"
+"(1)  to be build with mh-mail-handling support). Each line consist of two "
+"tab-separated fields \"I<mailgroupname> I<one-line description>\"."
+
+# type: TP
+#: ../tin.5:1059
+#, no-wrap
+msgid "B<mailgroupname>"
+msgstr "B<mailgroupname>"
+
+# type: Plain text
+#: ../tin.5:1062 ../tin.5:1133 ../tin.5:2393 ../tin.5:2446 ../tin.5:2473
+msgid "is the name of the newsgroup"
+msgstr "is the name of the newsgroup"
+
+# type: Plain text
+#: ../tin.5:1065 ../tin.5:1136 ../tin.5:2476
+msgid "is a short single-line description of the group"
+msgstr "is a short single-line description of the group"
+
+# type: Plain text
+#: ../tin.5:1073
+msgid ""
+"\"I<nntpserver> I<newsrc> [I<shortname> [I<...>]]\" pairs to use with the "
+"''B<-g>'' command-line switch."
+msgstr ""
+"\"I<nntpserver> I<newsrc> [I<shortname> [I<...>]]\" pairs to use with the "
+"''B<-g>'' command-line switch."
+
+# type: TP
+#: ../tin.5:1076
+#, no-wrap
+msgid "B<newsrc>"
+msgstr "B<newsrc>"
+
+# type: Plain text
+#: ../tin.5:1079
+msgid "related newsrc."
+msgstr "related newsrc."
+
+# type: TP
+#: ../tin.5:1079
+#, no-wrap
+msgid "B<shortname>"
+msgstr "B<shortname>"
+
+# type: Plain text
+#: ../tin.5:1082
+msgid "nickname(s) for the nntpserver."
+msgstr "nickname(s) for the nntpserver."
+
+# type: Plain text
+#: ../tin.5:1086
+msgid "# sample newsrctable file"
+msgstr "# sample newsrctable file"
+
+# type: Plain text
+#: ../tin.5:1088
+msgid "news.tin.org .newsrc-tin.org tinorg"
+msgstr "news.tin.org .newsrc-tin.org tinorg"
+
+# type: Plain text
+#: ../tin.5:1090
+msgid "news.example.org /tmp/nrc-ex example ex"
+msgstr "news.example.org /tmp/nrc-ex example ex"
+
+# type: Plain text
+#: ../tin.5:1098
+msgid "posting history"
+msgstr "posting history"
+
+# type: Plain text
+#: ../tin.5:1108
+msgid ""
+"Copy of all posted articles in B<mbox>(5)  format. The filename can be "
+"changed by setting B<posted_articles_file>."
+msgstr ""
+"Copy of all posted articles in B<mbox>(5)  format. The filename can be "
+"changed by setting B<posted_articles_file>."
+
+# type: Plain text
+#: ../tin.5:1117
+msgid "Pool of postponed articles. This file is in B<mbox>(5)  format."
+msgstr "Pool of postponed articles. This file is in B<mbox>(5)  format."
+
+# type: Plain text
+#: ../tin.5:1122
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+
+# type: Plain text
+#: ../tin.5:1130
+msgid ""
+"This file a copy of the servers newsgroups file which provides short "
+"descriptions of each newsgroup. It is automatically updated on startup "
+"except when using the ''B<-X>''or ''B<-q>'' command-line option and an old "
+"copy exists. Each line consist of two tab-separated fields \"I<group.name>"
+"\tI<one-line description>\"."
+msgstr ""
+"This file a copy of the servers newsgroups file which provides short "
+"descriptions of each newsgroup. It is automatically updated on startup "
+"except when using the ''B<-X>''or ''B<-q>'' command-line option and an old "
+"copy exists. Each line consist of two tab-separated fields \"I<group.name>"
+"\tI<one-line description>\"."
+
+# type: TP
+#: ../tin.5:1130 ../tin.5:2470
+#, no-wrap
+msgid "B<group.name>"
+msgstr "B<group.name>"
+
+# type: TP
+#: ../tin.5:1133 ../tin.5:2473
+#, no-wrap
+msgid "B<one-line description>"
+msgstr "B<one-line description>"
+
+# type: Plain text
+#: ../tin.5:1142
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+msgstr "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+
+# type: Plain text
+#: ../tin.5:1149
+msgid ""
+"File to store $B<NNTPSERVER> and $B<NNTPPORT> related data via a list of "
+"\"I<variable>=I<value>\" pairs. Currently there are only two variables, both "
+"are not meant to be changed by the user."
+msgstr ""
+"File to store $B<NNTPSERVER> and $B<NNTPPORT> related data via a list of "
+"\"I<variable>=I<value>\" pairs. Currently there are only two variables, both "
+"are not meant to be changed by the user."
+
+# type: TP
+#: ../tin.5:1149
+#, no-wrap
+msgid "B<version>"
+msgstr "B<version>"
+
+# type: Plain text
+#: ../tin.5:1152
+msgid "Internal version number."
+msgstr "Internal version number."
+
+# type: TP
+#: ../tin.5:1152
+#, no-wrap
+msgid "B<last_newnews>"
+msgstr "B<last_newnews>"
+
+# type: Plain text
+#: ../tin.5:1157
+msgid ""
+"Internal timestamp used by B<tin>(1)  to keep track of new newsgroups on the "
+"server."
+msgstr ""
+"Internal timestamp used by B<tin>(1)  to keep track of new newsgroups on the "
+"server."
+
+# type: Plain text
+#: ../tin.5:1179
+msgid ""
+"At startup, B<tin>(1)  reads in the configuration file. This contains a list "
+"of \"I<variable>=I<value>\" pairs that can be used to configure the way "
+"B<tin>(1)  works. If it exists, the global configuration file, I<"
+"${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> is read first. After that, the user's own "
+"configuration file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> is read.  The "
+"global file is useful for distributing system-wide defaults to new users who "
+"have no private tinrc yet (see also B</etc/tin/tin.defaults>)."
+msgstr ""
+"At startup, B<tin>(1)  reads in the configuration file. This contains a list "
+"of \"I<variable>=I<value>\" pairs that can be used to configure the way "
+"B<tin>(1)  works. If it exists, the global configuration file, I<"
+"${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> is read first. After that, the user's own "
+"configuration file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> is read.  The "
+"global file is useful for distributing system-wide defaults to new users who "
+"have no private tinrc yet (see also B</etc/tin/tin.defaults>)."
+
+# type: TP
+#: ../tin.5:1179
+#, no-wrap
+msgid "B<abbreviate_groupname>"
+msgstr "B<abbreviate_groupname>"
+
+# type: TP
+#: ../tin.5:1195
+#, no-wrap
+msgid "B<art_marked_deleted>"
+msgstr "B<art_marked_deleted>"
+
+# type: TP
+#: ../tin.5:1198
+#, no-wrap
+msgid "B<art_marked_inrange>"
+msgstr "B<art_marked_inrange>"
+
+# type: TP
+#: ../tin.5:1201
+#, no-wrap
+msgid "B<art_marked_return>"
+msgstr "B<art_marked_return>"
+
+# type: TP
+#: ../tin.5:1205
+#, no-wrap
+msgid "B<art_marked_selected>"
+msgstr "B<art_marked_selected>"
+
+# type: TP
+#: ../tin.5:1209
+#, no-wrap
+msgid "B<art_marked_recent>"
+msgstr "B<art_marked_recent>"
+
+# type: TP
+#: ../tin.5:1213
+#, no-wrap
+msgid "B<art_marked_unread>"
+msgstr "B<art_marked_unread>"
+
+# type: Plain text
+#: ../tin.5:1217
+msgid ""
+"The character used to show that an article has not been read.  Default is "
+"'+'."
+msgstr ""
+"The character used to show that an article has not been read.  Default is "
+"'+'."
+
+# type: TP
+#: ../tin.5:1217
+#, no-wrap
+msgid "B<art_marked_read>"
+msgstr "B<art_marked_read>"
+
+# type: TP
+#: ../tin.5:1220
+#, no-wrap
+msgid "B<art_marked_killed>"
+msgstr "B<art_marked_killed>"
+
+# type: TP
+#: ../tin.5:1224
+#, no-wrap
+msgid "B<art_marked_read_selected>"
+msgstr "B<art_marked_read_selected>"
+
+# type: Plain text
+#: ../tin.5:1235
+msgid ""
+"If ON B<tin>(1)  will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+msgstr ""
+"If ON B<tin>(1)  will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+
+# type: TP
+#: ../tin.5:1243
+#, no-wrap
+msgid "B<auto_reconnect>"
+msgstr "B<auto_reconnect>"
+
+# type: Plain text
+#: ../tin.5:1246
+msgid "Reconnect to server automatically. Default is OFF."
+msgstr "Reconnect to server automatically. Default is OFF."
+
+# type: TP
+#: ../tin.5:1257
+#, no-wrap
+msgid "B<beginner_level>"
+msgstr "B<beginner_level>"
+
+# type: TP
+#: ../tin.5:1262
+#, no-wrap
+msgid "B<cache_overview_files>"
+msgstr "B<cache_overview_files>"
+
+# type: Plain text
+#: ../tin.5:1267
+msgid ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"Default is OFF."
+msgstr ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"Default is OFF."
+
+# type: TP
+#: ../tin.5:1267
+#, no-wrap
+msgid "B<catchup_read_groups>"
+msgstr "B<catchup_read_groups>"
+
+# type: TP
+#: ../tin.5:1271
+#, no-wrap
+msgid "B<col_back>"
+msgstr "B<col_back>"
+
+# type: TP
+#: ../tin.5:1274
+#, no-wrap
+msgid "B<col_from>"
+msgstr "B<col_from>"
+
+# type: TP
+#: ../tin.5:1277
+#, no-wrap
+msgid "B<col_head>"
+msgstr "B<col_head>"
+
+# type: TP
+#: ../tin.5:1280
+#, no-wrap
+msgid "B<col_help>"
+msgstr "B<col_help>"
+
+# type: TP
+#: ../tin.5:1283
+#, no-wrap
+msgid "B<col_invers_bg>"
+msgstr "B<col_invers_bg>"
+
+# type: TP
+#: ../tin.5:1286
+#, no-wrap
+msgid "B<col_invers_fg>"
+msgstr "B<col_invers_fg>"
+
+# type: TP
+#: ../tin.5:1289
+#, no-wrap
+msgid "B<col_markdash>"
+msgstr "B<col_markdash>"
+
+# type: TP
+#: ../tin.5:1293
+#, no-wrap
+msgid "B<col_markslash>"
+msgstr "B<col_markslash>"
+
+# type: TP
+#: ../tin.5:1297
+#, no-wrap
+msgid "B<col_markstar>"
+msgstr "B<col_markstar>"
+
+# type: TP
+#: ../tin.5:1301
+#, no-wrap
+msgid "B<col_markstroke>"
+msgstr "B<col_markstroke>"
+
+# type: TP
+#: ../tin.5:1305
+#, no-wrap
+msgid "B<col_minihelp>"
+msgstr "B<col_minihelp>"
+
+# type: TP
+#: ../tin.5:1308
+#, no-wrap
+msgid "B<col_newsheaders>"
+msgstr "B<col_newsheaders>"
+
+# type: TP
+#: ../tin.5:1311
+#, no-wrap
+msgid "B<col_normal>"
+msgstr "B<col_normal>"
+
+# type: TP
+#: ../tin.5:1314
+#, no-wrap
+msgid "B<col_quote>"
+msgstr "B<col_quote>"
+
+# type: TP
+#: ../tin.5:1317
+#, no-wrap
+msgid "B<col_quote2>"
+msgstr "B<col_quote2>"
+
+# type: TP
+#: ../tin.5:1320
+#, no-wrap
+msgid "B<col_quote3>"
+msgstr "B<col_quote3>"
+
+# type: TP
+#: ../tin.5:1323
+#, no-wrap
+msgid "B<col_response>"
+msgstr "B<col_response>"
+
+# type: Plain text
+#: ../tin.5:1327
+msgid ""
+"Color of response counter. This is the text that says 'Response x of y' in "
+"the article viewer."
+msgstr ""
+"Colour of response counter. This is the text that says 'Response x of y' in "
+"the article viewer."
+
+# type: TP
+#: ../tin.5:1327
+#, no-wrap
+msgid "B<col_signature>"
+msgstr "B<col_signature>"
+
+# type: TP
+#: ../tin.5:1330
+#, no-wrap
+msgid "B<col_urls>"
+msgstr "B<col_urls>"
+
+# type: TP
+#: ../tin.5:1333
+#, no-wrap
+msgid "B<col_verbatim>"
+msgstr "B<col_verbatim>"
+
+# type: TP
+#: ../tin.5:1336
+#, no-wrap
+msgid "B<col_subject>"
+msgstr "B<col_subject>"
+
+# type: TP
+#: ../tin.5:1339
+#, no-wrap
+msgid "B<col_text>"
+msgstr "B<col_text>"
+
+# type: TP
+#: ../tin.5:1342
+#, no-wrap
+msgid "B<col_title>"
+msgstr "B<col_title>"
+
+# type: TP
+#: ../tin.5:1345
+#, no-wrap
+msgid "B<confirm_choice>"
+msgstr "B<confirm_choice>"
+
+# type: Plain text
+#: ../tin.5:1349
+msgid ""
+"B<tin>(1)  can ask for manual confirmation to protect the user. Available "
+"choices:"
+msgstr ""
+"B<tin>(1)  can ask for manual confirmation to protect the user. Available "
+"choices:"
+
+# type: Plain text
+#.  TODO: check if all affected commands are marked [after confirmation]
+#: ../tin.5:1355
+msgid ""
+"B<commands:> Ask for confirmation before executing certain dangerous "
+"commands (e.g., B<Catchup> ('B<c>')). Commands that this affects are marked "
+"in this manual with '[after confirmation]'."
+msgstr ""
+"B<commands:> Ask for confirmation before executing certain dangerous "
+"commands (e.g., B<Catchup> ('B<c>')). Commands that this affects are marked "
+"in this manual with '[after confirmation]'."
+
+# type: Plain text
+#: ../tin.5:1360
+msgid ""
+"B<quit:> You'll be asked to confirm that you wish to exit B<tin>(1)  when "
+"you use the B<Quit> ('B<q>') command."
+msgstr ""
+"B<quit:> You'll be asked to confirm that you wish to exit B<tin>(1)  when "
+"you use the B<Quit> ('B<q>') command."
+
+# type: Plain text
+#: ../tin.5:1364
+msgid ""
+"B<select:> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+msgstr ""
+"B<select:> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+
+# type: Plain text
+#: ../tin.5:1366
+msgid "Default is commands & quit."
+msgstr "Default is commands & quit."
+
+# type: Plain text
+#: ../tin.5:1377
+msgid ""
+"Format string used for date representation. A description of the different "
+"format options can be found at B<strftime>(3).  B<tin>(1)  uses B<strftime>"
+"(3)  when available and supports most format options in his fallback code.  "
+"Default is \"%a, %d %b %Y %H:%M:%S\"."
+msgstr ""
+"Format string used for date representation. A description of the different "
+"format options can be found at B<strftime>(3).  B<tin>(1)  uses B<strftime>"
+"(3)  when available and supports most format options in his fallback code.  "
+"Default is \"%a, %d %b %Y %H:%M:%S\"."
+
+# type: TP
+#: ../tin.5:1377
+#, no-wrap
+msgid "B<default_art_search>"
+msgstr "B<default_art_search>"
+
+# type: TP
+#: ../tin.5:1379
+#, no-wrap
+msgid "B<default_author_search>"
+msgstr "B<default_author_search>"
+
+# type: TP
+#: ../tin.5:1381
+#, no-wrap
+msgid "B<default_config_search>"
+msgstr "B<default_config_search>"
+
+# type: TP
+#: ../tin.5:1384
+#, no-wrap
+msgid "B<default_filter_days>"
+msgstr "B<default_filter_days>"
+
+# type: TP
+#: ../tin.5:1387
+#, no-wrap
+msgid "B<default_filter_kill_case>"
+msgstr "B<default_filter_kill_case>"
+
+# type: Plain text
+#: ../tin.5:1391
+msgid ""
+"Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+msgstr ""
+"Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+
+# type: TP
+#: ../tin.5:1391
+#, no-wrap
+msgid "B<default_filter_kill_expire>"
+msgstr "B<default_filter_kill_expire>"
+
+# type: Plain text
+#: ../tin.5:1395
+msgid ""
+"Default for quick (1 key) kill filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+msgstr ""
+"Default for quick (1 key) kill filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+
+# type: TP
+#: ../tin.5:1395
+#, no-wrap
+msgid "B<default_filter_kill_global>"
+msgstr "B<default_filter_kill_global>"
+
+# type: Plain text
+#: ../tin.5:1399
+msgid ""
+"Default for quick (1 key) kill filter global. ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+msgstr ""
+"Default for quick (1 key) kill filter global. ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+
+# type: TP
+#: ../tin.5:1399
+#, no-wrap
+msgid "B<default_filter_kill_header>"
+msgstr "B<default_filter_kill_header>"
+
+# type: ta
+#: ../tin.5:1404 ../tin.5:1432
+#, no-wrap
+msgid "\\w'0,1   'u +\\w'\\'\\'Message-ID:\\'\\' & last \\'\\'References:\\'\\' entry only'u"
+msgstr "\\w'0,1   'u +\\w'\\'\\'Message-ID:\\'\\' & last \\'\\'References:\\'\\' entry only'u"
+
+# type: Plain text
+#: ../tin.5:1413 ../tin.5:1441
+#, no-wrap
+msgid ""
+"0\t''Subject:'' (case sensitive)\n"
+"1\t''Subject:'' (ignore case)\n"
+"2\t''From:'' (case sensitive)\n"
+"3\t''From:'' (ignore case)\n"
+"4\t''Message-ID:'' & full ''References:'' line\n"
+"5\t''Message-ID:'' & last ''References:'' entry only\n"
+"6\t''Message-ID:'' entry only\n"
+"7\t''Lines:''\n"
+msgstr ""
+"0\t''Subject:'' (case sensitive)\n"
+"1\t''Subject:'' (ignore case)\n"
+"2\t''From:'' (case sensitive)\n"
+"3\t''From:'' (ignore case)\n"
+"4\t''Message-ID:'' & full ''References:'' line\n"
+"5\t''Message-ID:'' & last ''References:'' entry only\n"
+"6\t''Message-ID:'' entry only\n"
+"7\t''Lines:''\n"
+
+# type: TP
+#: ../tin.5:1415
+#, no-wrap
+msgid "B<default_filter_select_case>"
+msgstr "B<default_filter_select_case>"
+
+# type: TP
+#: ../tin.5:1419
+#, no-wrap
+msgid "B<default_filter_select_expire>"
+msgstr "B<default_filter_select_expire>"
+
+# type: Plain text
+#: ../tin.5:1423
+msgid ""
+"Default for quick (1 key) auto-selection filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+msgstr ""
+"Default for quick (1 key) auto-selection filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+
+# type: TP
+#: ../tin.5:1423
+#, no-wrap
+msgid "B<default_filter_select_global>"
+msgstr "B<default_filter_select_global>"
+
+# type: Plain text
+#: ../tin.5:1427
+msgid ""
+"Default for quick (1 key) auto-selection filter global. ON=apply to all "
+"groups, OFF=apply to current group. Default is ON."
+msgstr ""
+"Default for quick (1 key) auto-selection filter global. ON=apply to all "
+"groups, OFF=apply to current group. Default is ON."
+
+# type: TP
+#: ../tin.5:1427
+#, no-wrap
+msgid "B<default_filter_select_header>"
+msgstr "B<default_filter_select_header>"
+
+# type: TP
+#: ../tin.5:1443
+#, no-wrap
+msgid "B<default_goto_group>"
+msgstr "B<default_goto_group>"
+
+# type: TP
+#: ../tin.5:1445
+#, no-wrap
+msgid "B<default_group_search>"
+msgstr "B<default_group_search>"
+
+# type: TP
+#: ../tin.5:1447
+#, no-wrap
+msgid "B<default_mail_address>"
+msgstr "B<default_mail_address>"
+
+# type: TP
+#: ../tin.5:1449
+#, no-wrap
+msgid "B<default_move_group>"
+msgstr "B<default_move_group>"
+
+# type: TP
+#: ../tin.5:1451
+#, no-wrap
+msgid "B<default_pattern>"
+msgstr "B<default_pattern>"
+
+# type: TP
+#: ../tin.5:1453
+#, no-wrap
+msgid "B<default_pipe_command>"
+msgstr "B<default_pipe_command>"
+
+# type: TP
+#: ../tin.5:1455
+#, no-wrap
+msgid "B<default_post_newsgroups>"
+msgstr "B<default_post_newsgroups>"
+
+# type: TP
+#: ../tin.5:1457
+#, no-wrap
+msgid "B<default_post_subject>"
+msgstr "B<default_post_subject>"
+
+# type: TP
+#: ../tin.5:1459
+#, no-wrap
+msgid "B<default_range_group>"
+msgstr "B<default_range_group>"
+
+# type: TP
+#: ../tin.5:1461
+#, no-wrap
+msgid "B<default_range_select>"
+msgstr "B<default_range_select>"
+
+# type: TP
+#: ../tin.5:1463
+#, no-wrap
+msgid "B<default_range_thread>"
+msgstr "B<default_range_thread>"
+
+# type: TP
+#: ../tin.5:1465
+#, no-wrap
+msgid "B<default_repost_group>"
+msgstr "B<default_repost_group>"
+
+# type: TP
+#: ../tin.5:1467
+#, no-wrap
+msgid "B<default_save_file>"
+msgstr "B<default_save_file>"
+
+# type: TP
+#: ../tin.5:1469
+#, no-wrap
+msgid "B<default_save_mode>"
+msgstr "B<default_save_mode>"
+
+# type: TP
+#: ../tin.5:1471
+#, no-wrap
+msgid "B<default_select_pattern>"
+msgstr "B<default_select_pattern>"
+
+# type: TP
+#: ../tin.5:1473
+#, no-wrap
+msgid "B<default_shell_command>"
+msgstr "B<default_shell_command>"
+
+# type: TP
+#: ../tin.5:1475
+#, no-wrap
+msgid "B<default_subject_search>"
+msgstr "B<default_subject_search>"
+
+# type: TP
+#: ../tin.5:1477
+#, no-wrap
+msgid "B<draw_arrow>"
+msgstr "B<draw_arrow>"
+
+# type: Plain text
+#: ../tin.5:1481
+msgid ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF."
+msgstr ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF."
+
+# type: Plain text
+#: ../tin.5:1486
+msgid ""
+"The format string used to create the editor start command with parameters.  "
+"Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename (e.g., /"
+"bin/vi +7 .article)."
+msgstr ""
+"The format string used to create the editor start command with parameters.  "
+"Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename (e.g., /"
+"bin/vi +7 .article)."
+
+# type: TP
+#: ../tin.5:1486
+#, no-wrap
+msgid "B<force_screen_redraw>"
+msgstr "B<force_screen_redraw>"
+
+# type: TP
+#: ../tin.5:1490
+#, no-wrap
+msgid "B<getart_limit>"
+msgstr "B<getart_limit>"
+
+# type: Plain text
+#: ../tin.5:1497
+msgid ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin>(1)  will "
+"start fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+msgstr ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin>(1)  will "
+"start fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+
+# type: TP
+#: ../tin.5:1497
+#, no-wrap
+msgid "B<goto_next_unread>"
+msgstr "B<goto_next_unread>"
+
+# type: TP
+#: ../tin.5:1508
+#, no-wrap
+msgid "B<groupname_max_length>"
+msgstr "B<groupname_max_length>"
+
+# type: TP
+#: ../tin.5:1512
+#, no-wrap
+msgid "B<hide_uue>"
+msgstr "B<hide_uue>"
+
+# type: Plain text
+#: ../tin.5:1522
+msgid ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment).  If set to 'Hide "
+"all' then any line that looks like uuencoded data will be folded into a tag "
+"line. This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer.  Default is 'No'."
+msgstr ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment).  If set to 'Hide "
+"all' then any line that looks like uuencoded data will be folded into a tag "
+"line. This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer.  Default is 'No'."
+
+# type: TP
+#: ../tin.5:1522
+#, no-wrap
+msgid "B<inews_prog>"
+msgstr "B<inews_prog>"
+
+# type: Plain text
+#: ../tin.5:1529
+msgid ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is \"--internal\" (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+msgstr ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is \"--internal\" (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+
+# type: TP
+#: ../tin.5:1529
+#, no-wrap
+msgid "B<info_in_last_line>"
+msgstr "B<info_in_last_line>"
+
+# type: Plain text
+#: ../tin.5:1535
+msgid ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>' toggles "
+"setting). This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+msgstr ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>' toggles "
+"setting). This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+
+# type: TP
+#: ../tin.5:1535
+#, no-wrap
+msgid "B<interactive_mailer>"
+msgstr "B<interactive_mailer>"
+
+# type: Plain text
+#: ../tin.5:1541
+msgid ""
+"If greater than 0 your mailreader will be invoked earlier for reply so you "
+"can use more of its features (e.g. MIME, pgp, ...). 1 means include headers, "
+"2 means don't include headers (old use_mailreader_i=ON option). 0 turns off "
+"usage. This option has to suit B<mailer_format>. Default is 0."
+msgstr ""
+"If greater than 0 your mailreader will be invoked earlier for reply so you "
+"can use more of its features (e.g. MIME, pgp, ...). 1 means include headers, "
+"2 means don't include headers (old use_mailreader_i=ON option). 0 turns off "
+"usage. This option has to suit B<mailer_format>. Default is 0."
+
+# type: TP
+#: ../tin.5:1541
+#, no-wrap
+msgid "B<inverse_okay>"
+msgstr "B<inverse_okay>"
+
+# type: TP
+#: ../tin.5:1545
+#, no-wrap
+msgid "B<keep_dead_articles>"
+msgstr "B<keep_dead_articles>"
+
+# type: TP
+#: ../tin.5:1550
+#, no-wrap
+msgid "B<kill_level>"
+msgstr "B<kill_level>"
+
+# type: Plain text
+#: ../tin.5:1554
+msgid ""
+"This option controls the processing and display of articles that are killed. "
+"There are 3 options, default is 0 (B<Kill only unread arts>)."
+msgstr ""
+"This option controls the processing and display of articles that are killed. "
+"There are 3 options, default is 0 (B<Kill only unread arts>)."
+
+# type: Plain text
+#: ../tin.5:1562
+msgid ""
+"B<Kill only unread arts> is the 'traditional' behavior of B<tin>(1).  Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+msgstr ""
+"B<Kill only unread arts> is the 'traditional' behaviour of B<tin>(1).  Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+
+# type: TP
+#: ../tin.5:1578
+#, no-wrap
+msgid "B<mail_address>"
+msgstr "B<mail_address>"
+
+# type: TP
+#: ../tin.5:1588
+#, no-wrap
+msgid "B<mail_quote_format>"
+msgstr "B<mail_quote_format>"
+
+# type: TP
+#: ../tin.5:1593
+#, no-wrap
+msgid "B<mailbox_format>"
+msgstr "B<mailbox_format>"
+
+# type: Plain text
+#: ../tin.5:1601
+msgid ""
+"Select one of the following mailbox-formats: MBOXO (default, except on SCO), "
+"MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on MBOXO "
+"and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+msgstr ""
+"Select one of the following mailbox-formats: MBOXO (default, except on SCO), "
+"MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on MBOXO "
+"and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+
+# type: Plain text
+#: ../tin.5:1610
+msgid ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  format. "
+"This feature is mainly for use with the B<elm>(1)  mail program. It allows "
+"the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  format. "
+"This feature is mainly for use with the B<elm>(1)  mail program. It allows "
+"the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+
+# type: TP
+#: ../tin.5:1610
+#, no-wrap
+msgid "B<mailer_format>"
+msgstr "B<mailer_format>"
+
+# type: Plain text
+#: ../tin.5:1616
+msgid ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %"
+"F' (e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows "
+"other mailers with different command line parameters to be used such as"
+msgstr ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %"
+"F' (e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows "
+"other mailers with different command line parameters to be used such as"
+
+# type: Plain text
+#: ../tin.5:1621
+#, no-wrap
+msgid ""
+"sendmail -oem -t E<lt> %F\n"
+"elm -s \"%S\" \"%T\" E<lt> \"%F\"\n"
+"claws-mail --compose \"mailto:%T?subject=%S&insert=%F\"\n"
+msgstr ""
+"sendmail -oem -t E<lt> %F\n"
+"elm -s \"%S\" \"%T\" E<lt> \"%F\"\n"
+"claws-mail --compose \"mailto:%T?subject=%S&insert=%F\"\n"
+
+# type: Plain text
+#: ../tin.5:1625
+msgid ""
+"B<interactive_mailer> must be set adequate. The following substitutions are "
+"supported:"
+msgstr ""
+"B<interactive_mailer> must be set adequate. The following substitutions are "
+"supported:"
+
+# type: ta
+#: ../tin.5:1627
+#, no-wrap
+msgid "\\w'%S'u +\\w'subject-field'u"
+msgstr "\\w'%S'u +\\w'subject-field'u"
+
+# type: Plain text
+#: ../tin.5:1634
+#, no-wrap
+msgid ""
+"%F\tfilename\n"
+"%M\tdefault_mailer\n"
+"%S\tsubject-field\n"
+"%T\tto-filed\n"
+"%U\tusername\n"
+"%%\t%\n"
+msgstr ""
+"%F\tfilename\n"
+"%M\tdefault_mailer\n"
+"%S\tsubject-field\n"
+"%T\tto-filed\n"
+"%U\tusername\n"
+"%%\t%\n"
+
+# type: TP
+#: ../tin.5:1647
+#, no-wrap
+msgid "B<metamail_prog>"
+msgstr "B<metamail_prog>"
+
+# type: Plain text
+#: ../tin.5:1659
+msgid ""
+"Path, name and options of external B<metamail>(1)  program used to view non-"
+"textual parts of articles.  To use the built-in viewer, set to --internal. "
+"This is the default value when B<metamail>(1)  is not installed. Leave it "
+"blank if you don't want any automatic viewing of non-textual attachments. "
+"The 'V' command can always be used to manually view any attachments. See "
+"also B<ask_for_metamail>."
+msgstr ""
+"Path, name and options of external B<metamail>(1)  program used to view non-"
+"textual parts of articles.  To use the built-in viewer, set to --internal. "
+"This is the default value when B<metamail>(1)  is not installed. Leave it "
+"blank if you don't want any automatic viewing of non-textual attachments. "
+"The 'V' command can always be used to manually view any attachments. See "
+"also B<ask_for_metamail>."
+
+# type: TP
+#: ../tin.5:1659 ../tin.5:2299
+#, no-wrap
+msgid "B<mm_charset>"
+msgstr "B<mm_charset>"
+
+# type: Plain text
+#: ../tin.5:1672
+msgid ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at the compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+msgstr ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at the compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+
+# type: Plain text
+#: ../tin.5:1683
+msgid ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead.  B<mm_network_charset> is limited to one of the "
+"following charsets:"
+msgstr ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead.  B<mm_network_charset> is limited to one of the "
+"following charsets:"
+
+# type: TP
+#: ../tin.5:1692
+#, no-wrap
+msgid "B<mono_markdash>"
+msgstr "B<mono_markdash>"
+
+# type: Plain text
+#: ../tin.5:1697
+msgid ""
+"Character attribute of words emphasized like _this_. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like _this_. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.5:1697
+#, no-wrap
+msgid "B<mono_markslash>"
+msgstr "B<mono_markslash>"
+
+# type: Plain text
+#: ../tin.5:1702
+msgid ""
+"Character attribute of words emphasized like /this/. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like /this/. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.5:1702
+#, no-wrap
+msgid "B<mono_markstar>"
+msgstr "B<mono_markstar>"
+
+# type: Plain text
+#: ../tin.5:1707
+msgid ""
+"Character attribute of words emphasized like *this*. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like *this*. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.5:1707
+#, no-wrap
+msgid "B<mono_markstroke>"
+msgstr "B<mono_markstroke>"
+
+# type: Plain text
+#: ../tin.5:1712
+msgid ""
+"Character attribute of words emphasized like -this-. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+"Character attribute of words emphasized like -this-. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+
+# type: TP
+#: ../tin.5:1712
+#, no-wrap
+msgid "B<newnews>"
+msgstr "B<newnews>"
+
+# type: Plain text
+#: ../tin.5:1718
+msgid ""
+"These are internal timers used by B<tin>(1)  to keep track of new "
+"newsgroups. Do not change them unless you understand what they are for."
+msgstr ""
+"These are internal timers used by B<tin>(1)  to keep track of new "
+"newsgroups. Do not change them unless you understand what they are for."
+
+# type: Plain text
+#: ../tin.5:1725
+msgid ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used. If "
+"you enter 'X-' as the value, you will see all headers beginning with "
+"'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+msgstr ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used. If "
+"you enter 'X-' as the value, you will see all headers beginning with "
+"'X-' (like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+
+# type: Plain text
+#: ../tin.5:1734
+msgid ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought 'X-' headers were A "
+"Good Thing(tm), but thought Alan and Pape were miscreants... well then you "
+"would do something like this: B<news_headers_to_display=X-> "
+"B<news_headers_to_not_display=X-Alan X-Pape> Not defining anything turns off "
+"this option."
+msgstr ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought 'X-' headers were A "
+"Good Thing(tm), but thought Alan and Pape were miscreants... well then you "
+"would do something like this: B<news_headers_to_display=X-> "
+"B<news_headers_to_not_display=X-Alan X-Pape> Not defining anything turns off "
+"this option."
+
+# type: TP
+#: ../tin.5:1739
+#, no-wrap
+msgid "B<normalization_form>"
+msgstr "B<normalization_form>"
+
+# type: Plain text
+#: ../tin.5:1743
+msgid ""
+"The normalization form which should be used to normalize unicode input.  The "
+"possible values are:"
+msgstr ""
+"The normalisation form which should be used to normalise unicode input.  The "
+"possible values are:"
+
+# type: Plain text
+#: ../tin.5:1759
+msgid ""
+"Some normalization modes are only available if they are supported by the "
+"library B<tin>(1)  uses to do the normalization. Default is NFKC."
+msgstr ""
+"Some normalisation modes are only available if they are supported by the "
+"library B<tin>(1)  uses to do the normalisation. Default is NFKC."
+
+# type: Plain text
+#: ../tin.5:1763
+msgid ""
+"If ON put cursor at first unread article in group otherwise at last "
+"article.  Default is ON."
+msgstr ""
+"If ON put cursor at first unread article in group otherwise at last "
+"article.  Default is ON."
+
+# type: Plain text
+#: ../tin.5:1779
+msgid ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding.  "
+"base64 and quoted-printable are usually undesired on usenet."
+msgstr ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding.  "
+"base64 and quoted-printable are usually undesired on usenet."
+
+# type: Plain text
+#: ../tin.5:1786
+msgid ""
+"If ON, then B<tin>(1)  will start an appropriate viewer program to display "
+"any files that were post processed and uudecoded. The program is determined "
+"using the mailcap file.  Default is ON."
+msgstr ""
+"If ON, then B<tin>(1)  will start an appropriate viewer program to display "
+"any files that were post processed and uudecoded. The program is determined "
+"using the mailcap file.  Default is ON."
+
+# type: Plain text
+#: ../tin.5:1792
+msgid ""
+"This specifies whether to perform post processing on saved articles.  "
+"Because the shell archive may contain commands you may not want to be "
+"executed, be careful when extracting shell archives.  The following values "
+"are allowed:"
+msgstr ""
+"This specifies whether to perform post processing on saved articles.  "
+"Because the shell archive may contain commands you may not want to be "
+"executed, be careful when extracting shell archives.  The following values "
+"are allowed:"
+
+# type: Plain text
+#: ../tin.5:1800
+msgid ""
+"B<Shell archives>, unpacking of multi-part B<shar>(1)  files only. Because "
+"the shell archive may contain commands you may not want to be executed, be "
+"careful with this option."
+msgstr ""
+"B<Shell archives>, unpacking of multi-part B<shar>(1)  files only. Because "
+"the shell archive may contain commands you may not want to be executed, be "
+"careful with this option."
+
+# type: TP
+#: ../tin.5:1803
+#, no-wrap
+msgid "B<posted_articles_file>"
+msgstr "B<posted_articles_file>"
+
+# type: TP
+#: ../tin.5:1813
+#, no-wrap
+msgid "B<printer>"
+msgstr "B<printer>"
+
+# type: Plain text
+#: ../tin.5:1823
+msgid ""
+"The printer program with options that is to be used to print articles. The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV machines. "
+"Printing from B<tin>(1)  may have been disabled by the System Administrator."
+msgstr ""
+"The printer program with options that is to be used to print articles. The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV machines. "
+"Printing from B<tin>(1)  may have been disabled by the System Administrator."
+
+# type: Plain text
+#: ../tin.5:1831
+msgid ""
+"If ON show empty ''Followup-To:'' header when editing an article.  Default "
+"is OFF."
+msgstr ""
+"If ON show empty ''Followup-To:'' header when editing an article.  Default "
+"is OFF."
+
+# type: TP
+#: ../tin.5:1837
+#, no-wrap
+msgid "B<quote_style>"
+msgstr "B<quote_style>"
+
+# type: Plain text
+#: ../tin.5:1843
+msgid ""
+"This bit coded integer value controls how articles are to be quoted when "
+"following up or replying to them. Any of the following options can be "
+"combined by adding all relevant values. Default is 5, which means that quote "
+"characters are compressed and empty lines are quoted."
+msgstr ""
+"This bit coded integer value controls how articles are to be quoted when "
+"following up or replying to them. Any of the following options can be "
+"combined by adding all relevant values. Default is 5, which means that quote "
+"characters are compressed and empty lines are quoted."
+
+# type: Plain text
+#: ../tin.5:1848
+msgid ""
+"B<Compress quotes> Compress quote characters together when quoting multiple "
+"times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). This option is on by default."
+msgstr ""
+"B<Compress quotes> Compress quote characters together when quoting multiple "
+"times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). This option is on by default."
+
+# type: Plain text
+#: ../tin.5:1854
+msgid ""
+"B<Quote Signatures> This option is off by default. Signatures are always "
+"quoted regardless of this option when you are viewing an article in raw mode "
+"B<PageToggleRaw> ('B<^H>') and followup or reply to it. Signatures are never "
+"quoted regardless of this option when B<show_signatures> is off."
+msgstr ""
+"B<Quote Signatures> This option is off by default. Signatures are always "
+"quoted regardless of this option when you are viewing an article in raw mode "
+"B<PageToggleRaw> ('B<^H>') and followup or reply to it. Signatures are never "
+"quoted regardless of this option when B<show_signatures> is off."
+
+# type: Plain text
+#: ../tin.5:1856
+msgid "B<Quote empty lines> This option is on by default."
+msgstr "B<Quote empty lines> This option is on by default."
+
+# type: TP
+#: ../tin.5:1857
+#, no-wrap
+msgid "B<quote_regex>"
+msgstr "B<quote_regex>"
+
+# type: Plain text
+#: ../tin.5:1864
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin>(1)  uses a built-in default."
+
+# type: TP
+#: ../tin.5:1864
+#, no-wrap
+msgid "B<quote_regex2>"
+msgstr "B<quote_regex2>"
+
+# type: Plain text
+#: ../tin.5:1871
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin>(1)  uses a built-in default."
+
+# type: TP
+#: ../tin.5:1871
+#, no-wrap
+msgid "B<quote_regex3>"
+msgstr "B<quote_regex3>"
+
+# type: Plain text
+#: ../tin.5:1878
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin>(1)  uses a built-in default."
+
+# type: TP
+#: ../tin.5:1878
+#, no-wrap
+msgid "B<recent_time>"
+msgstr "B<recent_time>"
+
+# type: TP
+#: ../tin.5:1882
+#, no-wrap
+msgid "B<render_bidi>"
+msgstr "B<render_bidi>"
+
+# type: TP
+#: ../tin.5:1886
+#, no-wrap
+msgid "B<reread_active_file_secs>"
+msgstr "B<reread_active_file_secs>"
+
+# type: TP
+#: ../tin.5:1895
+#, no-wrap
+msgid "B<score_limit_kill>"
+msgstr "B<score_limit_kill>"
+
+# type: TP
+#: ../tin.5:1899
+#, no-wrap
+msgid "B<score_limit_select>"
+msgstr "B<score_limit_select>"
+
+# type: TP
+#: ../tin.5:1903
+#, no-wrap
+msgid "B<score_kill>"
+msgstr "B<score_kill>"
+
+# type: TP
+#: ../tin.5:1907
+#, no-wrap
+msgid "B<score_select>"
+msgstr "B<score_select>"
+
+# type: TP
+#: ../tin.5:1911
+#, no-wrap
+msgid "B<scroll_lines>"
+msgstr "B<scroll_lines>"
+
+# type: Plain text
+#: ../tin.5:1919
+msgid ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional page-by-page scrolling. Set to -1 to get page-by-page scrolling "
+"where the top/bottom line is carried over onto the next page.  This setting "
+"supersedes show_last_line_prev_page=ON. Set to -2 to get half-page "
+"scrolling. This setting supersedes full_page_scroll=OFF."
+msgstr ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional page-by-page scrolling. Set to -1 to get page-by-page scrolling "
+"where the top/bottom line is carried over onto the next page.  This setting "
+"supersedes show_last_line_prev_page=ON. Set to -2 to get half-page "
+"scrolling. This setting supersedes full_page_scroll=OFF."
+
+# type: TP
+#: ../tin.5:1936
+#, no-wrap
+msgid "B<show_description>"
+msgstr "B<show_description>"
+
+# type: Plain text
+#: ../tin.5:1945
+msgid ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/newsgroups> file and if supported (requires B<tin>(1)  to be "
+"build with mh-mail-handling support) from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"mailgroups> for mailgroups. Default is ON."
+msgstr ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the I<${TIN_LIBDIR:-"
+"NEWSLIBDIR}/newsgroups> file and if supported (requires B<tin>(1)  to be "
+"build with mh-mail-handling support) from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"mailgroups> for mailgroups. Default is ON."
+
+# type: Plain text
+#: ../tin.5:1956
+msgid ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread)  article will be "
+"displayed."
+msgstr ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread)  article will be "
+"displayed."
+
+# type: Plain text
+#: ../tin.5:1967
+msgid ""
+"If ON show only new/unread articles otherwise show all articles. Default is "
+"ON."
+msgstr ""
+"If ON show only new/unread articles otherwise show all articles. Default is "
+"ON."
+
+# type: TP
+#: ../tin.5:1967
+#, no-wrap
+msgid "B<show_only_unread_groups>"
+msgstr "B<show_only_unread_groups>"
+
+# type: Plain text
+#: ../tin.5:1974
+msgid "If OFF don't show signatures when displaying articles. Default is ON."
+msgstr "If OFF don't show signatures when displaying articles. Default is ON."
+
+# type: Plain text
+#: ../tin.5:1988
+msgid ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified directory. "
+"If the path starts with a ! the program the path points to will be executed "
+"to generate a signature.  B<tin>(1)  will pass the name of the current "
+"newsgroup as argument to the program. --none will suppress any signature.  "
+"Default is I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+msgstr ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified directory. "
+"If the path starts with a ! the program the path points to will be executed "
+"to generate a signature.  B<tin>(1)  will pass the name of the current "
+"newsgroup as argument to the program. --none will suppress any signature.  "
+"Default is I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+
+# type: TP
+#: ../tin.5:1991
+#, no-wrap
+msgid "B<slashes_regex>"
+msgstr "B<slashes_regex>"
+
+# type: Plain text
+#: ../tin.5:1998
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin>(1)  uses a built-in default."
+
+# type: TP
+#: ../tin.5:2044
+#, no-wrap
+msgid "B<spamtrap_warning_addresses>"
+msgstr "B<spamtrap_warning_addresses>"
+
+# type: Plain text
+#: ../tin.5:2049
+msgid ""
+"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 "
+"these strings. The matching is case-insensitive."
+msgstr ""
+"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 "
+"these strings. The matching is case-insensitive."
+
+# type: TP
+#: ../tin.5:2049
+#, no-wrap
+msgid "B<stars_regex>"
+msgstr "B<stars_regex>"
+
+# type: Plain text
+#: ../tin.5:2056
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin>(1)  uses a built-in default."
+
+# type: TP
+#: ../tin.5:2061
+#, no-wrap
+msgid "B<strip_blanks>"
+msgstr "B<strip_blanks>"
+
+# type: TP
+#: ../tin.5:2065
+#, no-wrap
+msgid "B<strip_bogus>"
+msgstr "B<strip_bogus>"
+
+# type: TP
+#: ../tin.5:2073
+#, no-wrap
+msgid "B<strip_newsrc>"
+msgstr "B<strip_newsrc>"
+
+# type: TP
+#: ../tin.5:2077
+#, no-wrap
+msgid "B<strokes_regex>"
+msgstr "B<strokes_regex>"
+
+# type: Plain text
+#: ../tin.5:2084
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin>(1)  uses a built-in default."
+
+# type: Plain text
+#: ../tin.5:2089
+msgid ""
+"Decode German style TeX umlaut codes to ISO If ON, show \"a as Umlaut-a, "
+"etc. Default is OFF. This behavior can also be toggled in the article viewer "
+"via B<PageToggleTex2iso> ('B<\">')."
+msgstr ""
+"Decode German style TeX umlaut codes to ISO If ON, show \"a as Umlaut-a, "
+"etc. Default is OFF. This behaviour can also be toggled in the article "
+"viewer via B<PageToggleTex2iso> ('B<\">')."
+
+# type: Plain text
+#: ../tin.5:2099
+msgid ""
+"Defines which threading method to use. The choices are: 0) Don't thread, 1) "
+"Thread on Subject only 2) Thread on References only, 3) Thread on References "
+"then Subject (default)  4) Thread multipart articles on Subject.  5) Thread "
+"on Percentage Match of the Subjects It's also possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_articles> to 0 - 5 in the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"attributes>."
+msgstr ""
+"Defines which threading method to use. The choices are: 0) Don't thread, 1) "
+"Thread on Subject only 2) Thread on References only, 3) Thread on References "
+"then Subject (default)  4) Thread multipart articles on Subject.  5) Thread "
+"on Percentage Match of the Subjects It's also possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_articles> to 0 - 5 in the file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/"
+"attributes>."
+
+# type: Plain text
+#: ../tin.5:2104
+msgid ""
+"Defines how close the subjects must match while threading by Percentage "
+"Match for threads to be considered part of a single thread. This value is in "
+"the range 0 to 100. The default is 75."
+msgstr ""
+"Defines how close the subjects must match while threading by Percentage "
+"Match for threads to be considered part of a single thread. This value is in "
+"the range 0 to 100. The default is 75."
+
+# type: TP
+#: ../tin.5:2108
+#, no-wrap
+msgid "B<thread_score>"
+msgstr "B<thread_score>"
+
+# type: TP
+#: ../tin.5:2120
+#, no-wrap
+msgid "B<translit>"
+msgstr "B<translit>"
+
+# type: TP
+#: ../tin.5:2151
+#, no-wrap
+msgid "B<underscores_regex>"
+msgstr "B<underscores_regex>"
+
+# type: Plain text
+#: ../tin.5:2158
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<undescores_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<undescores_regex> is blank, then B<tin>(1)  uses a built-in default."
+
+# type: TP
+#: ../tin.5:2158
+#, no-wrap
+msgid "B<unlink_article>"
+msgstr "B<unlink_article>"
+
+# type: Plain text
+#: ../tin.5:2162
+msgid ""
+"If ON remove I<${TIN_HOMEDIR:-\"$HOME\"}/.article> after posting. Default is "
+"ON."
+msgstr ""
+"If ON remove I<${TIN_HOMEDIR:-\"$HOME\"}/.article> after posting. Default is "
+"ON."
+
+# type: TP
+#: ../tin.5:2162
+#, no-wrap
+msgid "B<url_handler>"
+msgstr "B<url_handler>"
+
+# type: Plain text
+#: ../tin.5:2167
+msgid ""
+"The program that will be run when launching URLs in the article viewer using "
+"B<PageViewUrl> ('B<U>'). The actual URL will be appended to this. Default is "
+"B<url_handler.pl %s>."
+msgstr ""
+"The program that will be run when launching URLs in the article viewer using "
+"B<PageViewUrl> ('B<U>'). The actual URL will be appended to this. Default is "
+"B<url_handler.pl %s>."
+
+# type: TP
+#: ../tin.5:2167
+#, no-wrap
+msgid "B<url_highlight>"
+msgstr "B<url_highlight>"
+
+# type: TP
+#: ../tin.5:2170
+#, no-wrap
+msgid "B<use_color>"
+msgstr "B<use_color>"
+
+# type: Plain text
+#: ../tin.5:2175
+msgid "If enabled B<tin>(1)  uses ANSI-colors. Default is OFF."
+msgstr "If enabled B<tin>(1)  uses ANSI-colours. Default is OFF."
+
+# type: TP
+#: ../tin.5:2175
+#, no-wrap
+msgid "B<use_keypad>"
+msgstr "B<use_keypad>"
+
+# type: Plain text
+#: ../tin.5:2178
+msgid "Use scroll keys on keypad. Default is OFF."
+msgstr "Use scroll keys on keypad. Default is OFF."
+
+# type: TP
+#: ../tin.5:2178
+#, no-wrap
+msgid "B<use_mouse>"
+msgstr "B<use_mouse>"
+
+# type: TP
+#: ../tin.5:2184
+#, no-wrap
+msgid "B<use_slrnface>"
+msgstr "B<use_slrnface>"
+
+# type: Plain text
+#: ../tin.5:2196
+msgid ""
+"If enabled B<slrnface>(1)  will be used to interpret the ''X-Face:'' header. "
+"For this option to have any effect, B<tin>(1)  must be running in an B<xterm>"
+"(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+msgstr ""
+"If enabled B<slrnface>(1)  will be used to interpret the ''X-Face:'' header. "
+"For this option to have any effect, B<tin>(1)  must be running in an B<xterm>"
+"(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+
+# type: TP
+#: ../tin.5:2196
+#, no-wrap
+msgid "B<utf8_graphics>"
+msgstr "B<utf8_graphics>"
+
+# type: TP
+#: ../tin.5:2200
+#, no-wrap
+msgid "B<verbatim_begin_regex>"
+msgstr "B<verbatim_begin_regex>"
+
+# type: Plain text
+#: ../tin.5:2204
+msgid ""
+"A regular expression that tin will use to find the begin of a verbatim "
+"block.  Default is #v+"
+msgstr ""
+"A regular expression that tin will use to find the begin of a verbatim "
+"block.  Default is #v+"
+
+# type: TP
+#: ../tin.5:2204
+#, no-wrap
+msgid "B<verbatim_end_regex>"
+msgstr "B<verbatim_end_regex>"
+
+# type: Plain text
+#: ../tin.5:2208
+msgid ""
+"A regular expression that tin will use to find the end of a verbatim block.  "
+"Default is #v-"
+msgstr ""
+"A regular expression that tin will use to find the end of a verbatim block.  "
+"Default is #v-"
+
+# type: Plain text
+#: ../tin.5:2212
+msgid "If ON verbatim blocks will be detected.  Default is ON"
+msgstr "If ON verbatim blocks will be detected.  Default is ON"
+
+# type: TP
+#: ../tin.5:2212
+#, no-wrap
+msgid "B<wildcard>"
+msgstr "B<wildcard>"
+
+# type: Plain text
+#: ../tin.5:2224
+msgid ""
+"Allows you to select how B<tin>(1)  matches strings. The default is 0 and "
+"uses the wildmat notation, which is how this has traditionally been handled. "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3).  You will probably want to update your filter file "
+"if you use this regularly. NB: Newsgroup names will always be matched using "
+"the wildmat notation."
+msgstr ""
+"Allows you to select how B<tin>(1)  matches strings. The default is 0 and "
+"uses the wildmat notation, which is how this has traditionally been handled. "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3).  You will probably want to update your filter file "
+"if you use this regularly. NB: Newsgroup names will always be matched using "
+"the wildmat notation."
+
+# type: TP
+#: ../tin.5:2224
+#, no-wrap
+msgid "B<word_h_display_marks>"
+msgstr "B<word_h_display_marks>"
+
+# type: TP
+#: ../tin.5:2236
+#, no-wrap
+msgid "B<word_highlight>"
+msgstr "B<word_highlight>"
+
+# type: Plain text
+#: ../tin.5:2244
+msgid ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colors specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used."
+msgstr ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colours specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used."
+
+# type: TP
+#: ../tin.5:2244
+#, no-wrap
+msgid "B<wrap_column>"
+msgstr "B<wrap_column>"
+
+# type: TP
+#: ../tin.5:2260
+#, no-wrap
+msgid "B<xpost_quote_format>"
+msgstr "B<xpost_quote_format>"
+
+# type: Plain text
+#: ../tin.5:2276
+msgid ""
+"Yet another global configuration file with \"I<variable>=I<value>\" pairs. "
+"This one is for the more general options which usually can't be controlled "
+"via I<${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> and/or I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/tinrc> like resetting (to override the built-in default) the "
+"I<newslibdir>."
+msgstr ""
+"Yet another global configuration file with \"I<variable>=I<value>\" pairs. "
+"This one is for the more general options which usually can't be controlled "
+"via I<${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> and/or I<${TIN_HOMEDIR:-\"$HOME\"}/."
+"tin/tinrc> like resetting (to override the built-in default) the "
+"I<newslibdir>."
+
+# type: TP
+#: ../tin.5:2276
+#, no-wrap
+msgid "B<domainname>"
+msgstr "B<domainname>"
+
+# type: Plain text
+#: ../tin.5:2279
+msgid "Sets a global domain name used in From lines"
+msgstr "Sets a global domain name used in From lines"
+
+# type: Plain text
+#: ../tin.5:2283
+msgid ""
+"Defines the name of your organization. $B<ORGANIZATION> overrides any "
+"specified value."
+msgstr ""
+"Defines the name of your organization. $B<ORGANIZATION> overrides any "
+"specified value."
+
+# type: TP
+#: ../tin.5:2283
+#, no-wrap
+msgid "B<newslibdir>"
+msgstr "B<newslibdir>"
+
+# type: Plain text
+#: ../tin.5:2288
+msgid ""
+"Defines the default place for some configuration files, common values are I</"
+"usr/lib/news>, I</var/lib/news>, I</usr/local/lib/news> or I</news/db>. "
+"$B<TIN_LIBDIR> overrides any specified value."
+msgstr ""
+"Defines the default place for some configuration files, common values are I</"
+"usr/lib/news>, I</var/lib/news>, I</usr/local/lib/news> or I</news/db>. "
+"$B<TIN_LIBDIR> overrides any specified value."
+
+# type: TP
+#: ../tin.5:2288
+#, no-wrap
+msgid "B<bugaddress>"
+msgstr "B<bugaddress>"
+
+# type: Plain text
+#: ../tin.5:2294
+msgid ""
+"Defines the email address to which users can send bug reports using a built-"
+"in function. The default points to a developers mailing list located at tin."
+"org. You might want to change this address to one of your local "
+"administration if you want to deal with your lusers problems on your own."
+msgstr ""
+"Defines the email address to which users can send bug reports using a built-"
+"in function. The default points to a developers mailing list located at tin."
+"org. You might want to change this address to one of your local "
+"administration if you want to deal with your lusers problems on your own."
+
+# type: TP
+#: ../tin.5:2294
+#, no-wrap
+msgid "B<inewsdir>"
+msgstr "B<inewsdir>"
+
+# type: Plain text
+#: ../tin.5:2299
+msgid "Defines the directory containing of the B<inews>(1)  executable"
+msgstr "Defines the directory containing of the B<inews>(1)  executable"
+
+# type: Plain text
+#: ../tin.5:2303
+msgid ""
+"Default charset to be used in MIME's ''Content-Type:'' header. "
+"$B<MM_CHARSET> overrides any specified value."
+msgstr ""
+"Default charset to be used in MIME's ''Content-Type:'' header. "
+"$B<MM_CHARSET> overrides any specified value."
+
+# type: Plain text
+#: ../tin.5:2306
+msgid ""
+"Default encoding scheme use in MIME articles. 8bit might be the best value."
+msgstr ""
+"Default encoding scheme use in MIME articles. 8bit might be the best value."
+
+# type: Plain text
+#: ../tin.5:2310
+msgid ""
+"Default encoding scheme use in MIME letters. quoted-printable is a good "
+"choice here."
+msgstr ""
+"Default encoding scheme use in MIME letters. quoted-printable is a good "
+"choice here."
+
+# type: TP
+#: ../tin.5:2310
+#, no-wrap
+msgid "B<disable_gnksa_domain_check>"
+msgstr "B<disable_gnksa_domain_check>"
+
+# type: Plain text
+#: ../tin.5:2313
+msgid "Allow unregistered top level domains"
+msgstr "Allow unregistered top level domains"
+
+# type: TP
+#: ../tin.5:2313
+#, no-wrap
+msgid "B<disable_sender>"
+msgstr "B<disable_sender>"
+
+# type: Plain text
+#: ../tin.5:2317
+msgid ""
+"Don't generate a ''Sender:'' header. This has an effect only if "
+"B<inews_prog> is set to --internal."
+msgstr ""
+"Don't generate a ''Sender:'' header. This has an effect only if "
+"B<inews_prog> is set to --internal."
+
+# type: TP
+#: ../tin.5:2317
+#, no-wrap
+msgid "B<spooldir>"
+msgstr "B<spooldir>"
+
+# type: Plain text
+#: ../tin.5:2322
+msgid ""
+"Base of your newsspool (Bnews, Cnews and INN traditional spool style), "
+"common values are I</var/spool/news>, I</usr/spool/news>, I</news/spool>.  "
+"$B<TIN_SPOOLDIR> overrides any specified value."
+msgstr ""
+"Base of your newsspool (Bnews, Cnews and INN traditional spool style), "
+"common values are I</var/spool/news>, I</usr/spool/news>, I</news/spool>.  "
+"$B<TIN_SPOOLDIR> overrides any specified value."
+
+# type: TP
+#: ../tin.5:2322
+#, no-wrap
+msgid "B<overviewdir>"
+msgstr "B<overviewdir>"
+
+# type: Plain text
+#: ../tin.5:2330
+msgid ""
+"Base of your NOV database B<newsoverview>(5)  (tradspool style; might be the "
+"same dir as I<spooldir>), common values are I</var/spool/overview>, I</usr/"
+"spool/overview>, I</news/overview>. $B<TIN_NOVROOTDIR> overrides any "
+"specified value."
+msgstr ""
+"Base of your NOV database B<newsoverview>(5)  (tradspool style; might be the "
+"same dir as I<spooldir>), common values are I</var/spool/overview>, I</usr/"
+"spool/overview>, I</news/overview>. $B<TIN_NOVROOTDIR> overrides any "
+"specified value."
+
+# type: TP
+#: ../tin.5:2330
+#, no-wrap
+msgid "B<overviewfile>"
+msgstr "B<overviewfile>"
+
+# type: Plain text
+#: ../tin.5:2334
+msgid ""
+"Name of a single overview file, common values are I<.overview>, I<over.view>."
+msgstr ""
+"Name of a single overview file, common values are I<.overview>, I<over.view>."
+
+# type: TP
+#: ../tin.5:2334
+#, no-wrap
+msgid "B<overviewfmtfile>"
+msgstr "B<overviewfmtfile>"
+
+# type: Plain text
+#: ../tin.5:2339
+msgid ""
+"Full pathname of your newssystem's overview.fmt file; usually the overview."
+"fmt file is in I<newslibdir>, so you only have to change this setting if "
+"your configuration differs."
+msgstr ""
+"Full pathname of your newssystem's overview.fmt file; usually the overview."
+"fmt file is in I<newslibdir>, so you only have to change this setting if "
+"your configuration differs."
+
+# type: TP
+#: ../tin.5:2339
+#, no-wrap
+msgid "B<activefile>"
+msgstr "B<activefile>"
+
+# type: Plain text
+#: ../tin.5:2345
+msgid ""
+"Full pathname of your newssystem's active file; usually the active file "
+"resides in I<newslibdir> and is named I<active>, so you only have to change "
+"this setting if your configuration differs. $B<TIN_ACTIVEFILE> overrides any "
+"specified value."
+msgstr ""
+"Full pathname of your newssystem's active file; usually the active file "
+"resides in I<newslibdir> and is named I<active>, so you only have to change "
+"this setting if your configuration differs. $B<TIN_ACTIVEFILE> overrides any "
+"specified value."
+
+# type: TP
+#: ../tin.5:2345
+#, no-wrap
+msgid "B<activetimesfile>"
+msgstr "B<activetimesfile>"
+
+# type: Plain text
+#: ../tin.5:2350
+msgid ""
+"Full pathname of your newssystem's active.times file; usually the active."
+"times file is I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+msgstr ""
+"Full pathname of your newssystem's active.times file; usually the active."
+"times file is I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+
+# type: TP
+#: ../tin.5:2350
+#, no-wrap
+msgid "B<newsgroupsfile>"
+msgstr "B<newsgroupsfile>"
+
+# type: Plain text
+#: ../tin.5:2355
+msgid ""
+"Full pathname of your newssystem's newsgroups file; usually the newsgroups "
+"file is in I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+msgstr ""
+"Full pathname of your newssystem's newsgroups file; usually the newsgroups "
+"file is in I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+
+# type: TP
+#: ../tin.5:2355
+#, no-wrap
+msgid "B<subscriptionsfile>"
+msgstr "B<subscriptionsfile>"
+
+# type: Plain text
+#: ../tin.5:2360
+msgid ""
+"Full pathname of your newssystem's subscriptions file; usually the "
+"subscriptions file is in I<newslibdir>, so you only have to change this "
+"setting if your configuration differs."
+msgstr ""
+"Full pathname of your newssystem's subscriptions file; usually the "
+"subscriptions file is in I<newslibdir>, so you only have to change this "
+"setting if your configuration differs."
+
+# type: Plain text
+#: ../tin.5:2364
+msgid "I</usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo>"
+msgstr "I</usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo>"
+
+# type: Plain text
+#: ../tin.5:2368
+msgid ""
+"translation into language specified in $B<LC_ALL>, $B<LC_MESSAGES> or "
+"$B<LANG>"
+msgstr ""
+"translation into language specified in $B<LC_ALL>, $B<LC_MESSAGES> or "
+"$B<LANG>"
+
+# type: Plain text
+#: ../tin.5:2382
+msgid ""
+"This file lists the newsgroups that the local site receives. Each newsgroup "
+"should be listed only once. Each line specifies one group; within each "
+"newsgroup, articles are assigned unique names, which are monotonically "
+"increasing numbers."
+msgstr ""
+"This file lists the newsgroups that the local site receives. Each newsgroup "
+"should be listed only once. Each line specifies one group; within each "
+"newsgroup, articles are assigned unique names, which are monotonically "
+"increasing numbers."
+
+# type: Plain text
+#.  TODO: IIRC tin issues just a warning in that case?
+#: ../tin.5:2387
+msgid ""
+"If an article is posted to newsgroups not mentioned in this file, those "
+"newsgroups are ignored.  If no valid newsgroups are specified, the article "
+"is rejected."
+msgstr ""
+"If an article is posted to newsgroups not mentioned in this file, those "
+"newsgroups are ignored.  If no valid newsgroups are specified, the article "
+"is rejected."
+
+# type: Plain text
+#: ../tin.5:2390
+msgid ""
+"Each line consists of four space-separated fields \"I<name> I<highmark> "
+"I<lowmark> I<flags>\"."
+msgstr ""
+"Each line consists of four space-separated fields \"I<name> I<highmark> "
+"I<lowmark> I<flags>\"."
+
+# type: TP
+#: ../tin.5:2390 ../tin.5:2443
+#, no-wrap
+msgid "B<name>"
+msgstr "B<name>"
+
+# type: TP
+#: ../tin.5:2393
+#, no-wrap
+msgid "B<highmark>"
+msgstr "B<highmark>"
+
+# type: Plain text
+#: ../tin.5:2396
+msgid "is the highest article number that has been used in that newsgroup"
+msgstr "is the highest article number that has been used in that newsgroup"
+
+# type: TP
+#: ../tin.5:2396
+#, no-wrap
+msgid "B<lowmark>"
+msgstr "B<lowmark>"
+
+# type: Plain text
+#: ../tin.5:2403
+msgid ""
+"is the lowest article number in the group; this number is not guaranteed to "
+"be accurate, and should only be taken to be a hint. Note that because of "
+"article cancellations, there may be gaps in the numbering sequence. If the "
+"lowest article number is greater then the highest article number, then there "
+"are no articles in the newsgroup."
+msgstr ""
+"is the lowest article number in the group; this number is not guaranteed to "
+"be accurate, and should only be taken to be a hint. Note that because of "
+"article cancellations, there may be gaps in the numbering sequence. If the "
+"lowest article number is greater then the highest article number, then there "
+"are no articles in the newsgroup."
+
+# type: TP
+#: ../tin.5:2403
+#, no-wrap
+msgid "B<flags>"
+msgstr "B<flags>"
+
+# type: Plain text
+#: ../tin.5:2406
+msgid "can be one of those"
+msgstr "can be one of those"
+
+# type: TP
+#: ../tin.5:2407
+#, no-wrap
+msgid "B<y>"
+msgstr "B<y>"
+
+# type: Plain text
+#: ../tin.5:2410
+msgid "local postings are allowed"
+msgstr "local postings are allowed"
+
+# type: TP
+#: ../tin.5:2410
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+# type: Plain text
+#: ../tin.5:2413
+msgid "no local postings are allowed, only remote ones"
+msgstr "no local postings are allowed, only remote ones"
+
+# type: TP
+#: ../tin.5:2413
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+# type: Plain text
+#: ../tin.5:2416
+msgid "the group is moderated and all postings must be approved"
+msgstr "the group is moderated and all postings must be approved"
+
+# type: TP
+#: ../tin.5:2416
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+# type: Plain text
+#: ../tin.5:2419
+msgid "articles in this group are not kept, but only passed on"
+msgstr "articles in this group are not kept, but only passed on"
+
+# type: TP
+#: ../tin.5:2419
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+# type: Plain text
+#: ../tin.5:2422
+msgid "articles cannot be posted to this newsgroup"
+msgstr "articles cannot be posted to this newsgroup"
+
+# type: TP
+#: ../tin.5:2422
+#, no-wrap
+msgid "B<=foo.bar>"
+msgstr "B<=foo.bar>"
+
+# type: Plain text
+#: ../tin.5:2425
+msgid "articles are locally filed into the ''foo.bar'' group"
+msgstr "articles are locally filed into the ''foo.bar'' group"
+
+# type: TP
+#: ../tin.5:2426 ../tin.5:2453 ../tin.5:2476
+#, no-wrap
+msgid "B<tin>(1)"
+msgstr "B<tin>(1)"
+
+# type: Plain text
+#: ../tin.5:2432
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST (B<RFC3977>) command "
+"instead."
+msgstr ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST (B<RFC3977>) command "
+"instead."
+
+# type: Plain text
+#: ../tin.5:2443
+msgid ""
+"This file provides a chronological record of when newsgroups are created. It "
+"is normally updated by the local newsserver (e.g.  B<innd>(8))  whenever a "
+"new group is created. Each line consist of three space-separated fields "
+"\"I<name> I<time> I<creator>\"."
+msgstr ""
+"This file provides a chronological record of when newsgroups are created. It "
+"is normally updated by the local newsserver (e.g.  B<innd>(8))  whenever a "
+"new group is created. Each line consist of three space-separated fields "
+"\"I<name> I<time> I<creator>\"."
+
+# type: Plain text
+#: ../tin.5:2450
+msgid ""
+"is the time when the group was created, expressed as the number of seconds "
+"since the epoch."
+msgstr ""
+"is the time when the group was created, expressed as the number of seconds "
+"since the epoch."
+
+# type: TP
+#: ../tin.5:2450
+#, no-wrap
+msgid "B<creator>"
+msgstr "B<creator>"
+
+# type: Plain text
+#: ../tin.5:2453
+msgid "is the electronic mail address of the person who created the group."
+msgstr "is the electronic mail address of the person who created the group."
+
+# type: Plain text
+#: ../tin.5:2459
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the NEWGROUPS (B<RFC3977>) command "
+"instead."
+msgstr ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the NEWGROUPS (B<RFC3977>) command "
+"instead."
+
+# type: Plain text
+#: ../tin.5:2470
+msgid ""
+"This file provides short descriptions of each newsgroup. It is normally "
+"updated by the local newsserver (e.g.  B<innd>(8))  whenever a new group is "
+"created. Each line consist of two tab-separated fields \"I<group.name>"
+"\tI<one-line description>\"."
+msgstr ""
+"This file provides short descriptions of each newsgroup. It is normally "
+"updated by the local newsserver (e.g.  B<innd>(8))  whenever a new group is "
+"created. Each line consist of two tab-separated fields \"I<group.name>"
+"\tI<one-line description>\"."
+
+# type: Plain text
+#: ../tin.5:2482
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST NEWSGROUPS (B<RFC3977>) "
+"command instead."
+msgstr ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST NEWSGROUPS (B<RFC3977>) "
+"command instead."
+
+# type: Plain text
+#: ../tin.5:2491
+msgid ""
+"This file specifies might hold a default organization to be used in the "
+"''Organization:'' header. $B<ORGANIZATION> has a higher priority if set."
+msgstr ""
+"This file specifies might hold a default organization to be used in the "
+"''Organization:'' header. $B<ORGANIZATION> has a higher priority if set."
+
+# type: Plain text
+#: ../tin.5:2509
+msgid ""
+"This file specifies the organization of the news overview database (see also "
+"B<newsoverview>(5)).  The order of lines in this file is important; it "
+"determines the order in which the fields will appear in the database. See "
+"also B<overview.fmt>(5).  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST OVERVIEW.FMT (B<RFC3977>) command instead."
+msgstr ""
+"This file specifies the organization of the news overview database (see also "
+"B<newsoverview>(5)).  The order of lines in this file is important; it "
+"determines the order in which the fields will appear in the database. See "
+"also B<overview.fmt>(5).  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST OVERVIEW.FMT (B<RFC3977>) command instead."
+
+# type: Plain text
+#: ../tin.5:2524
+msgid ""
+"This file contains a list of newsgroups - one per line - which the client "
+"should subscribe to when the user has no ${TIN_HOMEDIR:-\"$HOME\"}/.newsrc "
+"for the newsserver.  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST SUBSCRIPTIONS (B<RFC6048>) command instead."
+msgstr ""
+"This file contains a list of newsgroups - one per line - which the client "
+"should subscribe to when the user has no ${TIN_HOMEDIR:-\"$HOME\"}/.newsrc "
+"for the newsserver.  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST SUBSCRIPTIONS (B<RFC6048>) command instead."
+
+# type: Plain text
+#: ../tin.5:2565
+msgid ""
+"B<elm>(1), B<inews>(1), B<ispell>(1), B<lp>(1), B<lpr>(1), B<metamail>(1)  "
+"B<perl>(1), B<pgp>(1), B<rn>(1), B<shar>(1), B<slrnface>(1), B<tin>(1), "
+"B<xterm>(1x), B<iconv>(3), B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), "
+"B<strftime>(3), B<system>(3), B<mailcap>(4), B<active>(5), B<mbox>(5), "
+"B<mmdf>(5), B<newsoverview>(5), B<overview.fmt>(5), B<innd>(8), B<RFC1524>, "
+"B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, B<RFC3977>, "
+"B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+msgstr ""
+"B<elm>(1), B<inews>(1), B<ispell>(1), B<lp>(1), B<lpr>(1), B<metamail>(1)  "
+"B<perl>(1), B<pgp>(1), B<rn>(1), B<shar>(1), B<slrnface>(1), B<tin>(1), "
+"B<xterm>(1x), B<iconv>(3), B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), "
+"B<strftime>(3), B<system>(3), B<mailcap>(4), B<active>(5), B<mbox>(5), "
+"B<mmdf>(5), B<newsoverview>(5), B<overview.fmt>(5), B<innd>(8), B<RFC1524>, "
+"B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, B<RFC3977>, "
+"B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/po4a.conf tin-2.0.0/doc/l10n/po4a.conf
--- tin-1.8.3/doc/l10n/po4a.conf	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/po4a.conf	2011-04-17 16:04:28.534781180 +0200
@@ -0,0 +1,17 @@
+[po4a_langs] de en_GB
+[po4a_paths] tin-man.pot \
+	$lang:$lang.po
+
+[options] \
+        opt:"--rm-backups -k 0 -M US-ASCII" \
+        opt_de:"-L ISO-8859-1 -A ISO-8859-1" \
+        opt_en_GB:"-L ISO-8859-1 -A ISO-8859-1"
+
+[type: man] ../tin.1 \
+	$lang:$lang/tin.1 \
+	add_de:de.add \
+	opt:"-v"
+
+[type: man] ../tin.5 \
+	$lang:$lang/tin.5 \
+	opt:"-v"
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/l10n/tin-man.pot tin-2.0.0/doc/l10n/tin-man.pot
--- tin-1.8.3/doc/l10n/tin-man.pot	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/l10n/tin-man.pot	2011-08-22 00:19:21.000000000 +0200
@@ -0,0 +1,12042 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+# 
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2011-08-22 00:19+0200\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"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Transfer-Encoding: ENCODING"
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "tin"
+msgstr ""
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "August 23rd, 2011"
+msgstr ""
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "2.0.0"
+msgstr ""
+
+# type: TH
+#: ../tin.1:12 ../tin.5:9
+#, no-wrap
+msgid "A Usenet newsreader"
+msgstr ""
+
+# type: SH
+#: ../tin.1:15 ../tin.5:11
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:19
+msgid "tin, rtin - A Usenet newsreader"
+msgstr ""
+
+# type: SH
+#: ../tin.1:19
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:49
+msgid ""
+"B<tin> [\\|[\\|B<-h>\\||\\|B<-H>\\||\\|B<-V>\\|]\\ \\|| "
+"[\\|[\\|[\\|B<-a>\\|] [\\|B<-dlnq>\\||\\|B<-Q>\\|] [\\|B<-ArzxX>\\|]\\|] "
+"[\\|[\\|B<-R>\\||\\|B<-S>\\|] \\|\\|B<-s> I<News_dir>\\|] [\\|B<-cuvZ>\\|] "
+"[\\|B<-4>\\||\\|B<-6>\\|] [\\|B<-N>\\||\\|B<-M> I<address>\\|] "
+"[\\|B<-o>\\||\\|B<-w>\\|]\\|] [\\|B<-D> I<debug_level>\\|] [\\|B<-G> "
+"I<article_limit>\\|] [\\|B<-f> I<newsrc_file>\\|] [\\|B<-g> I<server>\\|] "
+"[\\|B<-m> I<Mail_dir>\\|] [\\|B<-p> I<port>\\|] [\\|B<-I> I<index_dir>\\|]\\ "
+"\\|[I<newsgroup>\\|[\\|,.\\|.\\|.\\|]\\|]\\|]"
+msgstr ""
+
+# type: SH
+#: ../tin.1:49 ../tin.5:14
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:58
+msgid ""
+"B<tin> is a full-screen easy to use Usenet newsreader. It can read news "
+"locally (e.g., I</var/spool/news>) or remotely (B<rtin> or B<tin -r> option) "
+"via a NNTP (Network News Transport Protocol) server. It will automatically "
+"utilize NOV B<newsoverview>(5)  style index files if available locally or "
+"via the NNTP [X]OVER command (B<RFC2980>, B<RFC3977>)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:64
+msgid ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level. Use the B<Help> ('B<h>')  command to view a "
+"list of the commands available at a particular level."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:72
+msgid ""
+"On startup B<tin> will show a list of the newsgroups found in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>. An arrow '-E<gt>' or highlighted bar "
+"will point to the first newsgroup. Move to a group by using the terminal "
+"arrow keys (terminal dependent) or B<Down> ('B<j>')  and B<Up> ('B<k>'). Use "
+"PgUp/PgDn (terminal dependent) or B<PageUp> ('B<^U>') (CTRL-U) and "
+"B<PageDown> ('B<^D>')  (CTRL-D) to page up/down. Enter a newsgroup by "
+"pressing 'B<E<lt>CRE<gt>>'."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:77
+msgid ""
+"The B<GroupNextUnreadArtOrGrp> ('B<E<lt>TABE<gt>>') key enters the next "
+"newsgroup with unread articles."
+msgstr ""
+
+# type: SH
+#: ../tin.1:77
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:79
+msgid "Interactive mode:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:80 ../tin.1:90 ../tin.1:1066 ../tin.1:3230
+#, no-wrap
+msgid "B<0>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:83
+msgid "Successful program execution."
+msgstr ""
+
+# type: TP
+#: ../tin.1:83 ../tin.1:93 ../tin.1:3233
+#, no-wrap
+msgid "B<1>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:86 ../tin.1:96
+msgid "Usage, syntax, configuration file or network error."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:89
+msgid "Batch mode (''B<-Z>''):"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:93
+msgid "No unread news"
+msgstr ""
+
+# type: TP
+#: ../tin.1:96 ../tin.1:3236
+#, no-wrap
+msgid "B<2>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:99
+msgid "Unread news"
+msgstr ""
+
+# type: SH
+#: ../tin.1:102
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+# type: TP
+#: ../tin.1:103
+#, no-wrap
+msgid "B<-4>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:106
+msgid "Force connecting via IPv4 to the remote NNTP server."
+msgstr ""
+
+# type: TP
+#: ../tin.1:106
+#, no-wrap
+msgid "B<-6>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:109
+msgid "Force connecting via IPv6 to the remote NNTP server."
+msgstr ""
+
+# type: TP
+#: ../tin.1:109
+#, no-wrap
+msgid "B<-a>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:112
+msgid "Toggle ANSI color (default is off)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:112
+#, no-wrap
+msgid "B<-A>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:115
+msgid "Force authentication on initial connect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:115
+#, no-wrap
+msgid "B<-c>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:120
+msgid ""
+"Create/update index files for every group in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> or file specified by the ''B<-f>'' "
+"option and mark all articles as read."
+msgstr ""
+
+# type: TP
+#: ../tin.1:120
+#, no-wrap
+msgid "B<-d>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:123
+msgid "Don't load newsgroup descriptions (interactive mode)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:123
+#, no-wrap
+msgid "B<-D>I< debug-level>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:127
+msgid ""
+"Enter debug-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 = "
+"memory, 32 = attributes, 64 = misc)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:127
+#, no-wrap
+msgid "B<-f>I< file>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:131
+msgid ""
+"Use the specified file of subscribed to newsgroups in place of "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:131
+#, no-wrap
+msgid "B<-g>I< server>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:135
+msgid ""
+"Use the server and newsrc specified in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:135
+#, no-wrap
+msgid "B<-G>I< article-limit>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:138
+msgid "Limit the number of articles/group to retrieve from the server."
+msgstr ""
+
+# type: TP
+#: ../tin.1:138
+#, no-wrap
+msgid "B<-h>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:141
+msgid "Help listing all command-line options."
+msgstr ""
+
+# type: TP
+#: ../tin.1:141
+#, no-wrap
+msgid "B<-H>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:145
+msgid ""
+"Brief introduction to B<tin> that is also shown the first time it is "
+"started."
+msgstr ""
+
+# type: TP
+#: ../tin.1:145
+#, no-wrap
+msgid "B<-I>I< dir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:151
+msgid ""
+"Directory in which to store newsgroup index files. Default is "
+"I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news>.  This "
+"option has no effect if B<tin> retrieves its index files via NNTP and "
+"B<cache_overview_files> is turned off."
+msgstr ""
+
+# type: TP
+#: ../tin.1:151
+#, no-wrap
+msgid "B<-l>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:161
+msgid ""
+"Get number of articles per group from the "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file. If reading "
+"via NNTP this is done with the LIST command (B<RFC3977>). This might result "
+"in incorrect article counts but is usually faster than the default which is "
+"to read the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file "
+"(either directly or via LIST) and then check the article count via NNTP "
+"GROUP command (B<RFC3977>) ''B<-ln>''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:161
+#, no-wrap
+msgid "B<-m>I< dir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:164
+msgid "Mailbox directory to use. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:164
+#, no-wrap
+msgid "B<-M>I< user>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:168
+msgid ""
+"Mail unread articles to specified user for later reading. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:168
+#, no-wrap
+msgid "B<-n>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:175
+msgid ""
+"Only load groups from the "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file that are "
+"subscribed to in the user's I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>. This "
+"allows a noticeable speedup when connecting via a slow line, but B<tin> can "
+"not tell which groups are moderated. See also ''B<-l>''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:175
+#, no-wrap
+msgid "B<-N>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:179
+msgid ""
+"Mail unread articles to yourself for later reading. For more information "
+"read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:179
+#, no-wrap
+msgid "B<-o>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:183
+msgid ""
+"Quick post all postponed articles and exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+msgstr ""
+
+# type: TP
+#: ../tin.1:183
+#, no-wrap
+msgid "B<-p>I< port>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:187
+msgid ""
+"Port to use if reading via NNTP (default is 119). This also overrides the "
+"environment variable $B<NNTPPORT> if set."
+msgstr ""
+
+# type: TP
+#: ../tin.1:187
+#, no-wrap
+msgid "B<-q>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:190
+msgid "Don't check for new newsgroups."
+msgstr ""
+
+# type: TP
+#: ../tin.1:190
+#, no-wrap
+msgid "B<-Q>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:194
+msgid ""
+"Quick start. Start B<tin> as quickly as possible. Currently this is "
+"equivalent to ''B<-nqd>''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:194
+#, no-wrap
+msgid "B<-r>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:199
+msgid ""
+"Read news remotely from the default NNTP server specified in the environment "
+"variable $B<NNTPSERVER> or contained in the file I</etc/nntpserver>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:199
+#, no-wrap
+msgid "B<-R>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:202
+msgid "Read news saved by the ''B<-S>'' option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:202
+#, no-wrap
+msgid "B<-s>I< dir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:206
+msgid ""
+"Save/read articles to/in directory. Default is "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/News>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:206
+#, no-wrap
+msgid "B<-S>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:210
+msgid ""
+"Save unread articles for later reading by the ''B<-R>'' option. For more "
+"information read section \"AUTOMATIC MAILING AND SAVING NEW NEWS\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:210
+#, no-wrap
+msgid "B<-u>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:216
+msgid ""
+"Create/update index files for every group in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> or file specified by the ''B<-f>'' "
+"option. This option is disabled if B<tin> retrieves its index files via a "
+"NNTP server and B<cache_overview_files> is turned off."
+msgstr ""
+
+# type: TP
+#: ../tin.1:216
+#, no-wrap
+msgid "B<-v>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:220
+msgid ""
+"Verbose mode for ''B<-c>'', ''B<-M>'', ''B<-N>'', ''B<-S>'', \\&''B<-u>'' "
+"and ''B<-Z>'' options."
+msgstr ""
+
+# type: TP
+#: ../tin.1:220
+#, no-wrap
+msgid "B<-V>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:223
+msgid "Print version and date information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:223
+#, no-wrap
+msgid "B<-w>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:227
+msgid ""
+"Quick mode to post an article and then exit. In order for this to be really "
+"quick, it should be used with ''B<-n>'' if possible."
+msgstr ""
+
+# type: TP
+#: ../tin.1:227
+#, no-wrap
+msgid "B<-x>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:230
+msgid "No posting mode. You cannot post articles if you use this option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:230
+#, no-wrap
+msgid "B<-X>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:235
+msgid ""
+"No overwrite mode. I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> and files in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin> will not be overwritten but may be created "
+"if they don't exist."
+msgstr ""
+
+# type: TP
+#: ../tin.1:235
+#, no-wrap
+msgid "B<-z>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:240
+msgid ""
+"Only start B<tin> if there is any new/unread news. If there is news B<tin> "
+"will position cursor at first group with unread news. Useful for putting in "
+"login file."
+msgstr ""
+
+# type: TP
+#: ../tin.1:240
+#, no-wrap
+msgid "B<-Z>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:246
+msgid ""
+"Check if there is any new/unread news and exit with appropriate status. If "
+"\\&''B<-v>'' option is specified the number of unread articles in each group "
+"is printed. An exit code 0 indicates no news, 1 that an error occurred and 2 "
+"that new/unread news exists. Useful for writing scripts."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:252
+msgid ""
+"B<tin> can also dynamically change its options by the B<OptionMenu> ('B<M>') "
+"command. Any changes are written to "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. For more information see section "
+"\"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" and B<tin>(5)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:257
+msgid ""
+"A list of groups can be specified after the other command-line options. This "
+"can be useful if you wish to yank in or subscribe to a hand-picked subset of "
+"the active newsgroups. See the section \"NEWSGROUP LISTS & WILDCARDS\" for "
+"the types of pattern that B<tin> understands."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:262
+msgid ""
+"If you specify a single group-name, or a wildcard that matches a single "
+"group, then you will automatically enter that group. Otherwise the normal "
+"group selection screen will appear, but with all the matching groups present "
+"too, as though you had yanked just those groups in."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:266
+msgid ""
+"With the ''B<-w>'' flag a given group-name is used as default group to post "
+"to. If more than one group or a wildcard is specified only the first group "
+"respectively the first group that matches is used."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:273
+msgid ""
+"Once you use B<SelectYankActive> ('B<y>') to yank in all active groups, or "
+"B<SelectToggleReadDisplay> ('B<r>') to toggle the read/unread status, then "
+"the command-line groups will be gone. You can use B<SelectSyncWithActive> "
+"('B<Y>') to reread the "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file and get them "
+"back."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:278
+msgid ""
+"NB: With the ''B<-n>'' flag, only unsubscribed groups in the "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file (or the newsrc-file given by the "
+"\\&''B<-f>'' command-line switch or via "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>) can be matched."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:283
+msgid ""
+"Command-line options have higher priority than attributes and tinrc "
+"options.  Thus, command-line option takes precedence over configured values."
+msgstr ""
+
+# type: SH
+#: ../tin.1:283
+#, no-wrap
+msgid "USAGE"
+msgstr ""
+
+# type: SS
+#: ../tin.1:286
+#, no-wrap
+msgid "NEWS ADMINISTRATION"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:290
+msgid ""
+"Maintaining Netnews on large networks of machines can be a pretty time "
+"consuming job as I discovered when I was given the job of maintaining our "
+"news system and news users."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:300
+msgid ""
+"A user starting B<tin> for the first time can be automatically subscribed to "
+"a list of newsgroups that are deemed appropriate by the news "
+"administrator. The subscriptions file should be created in your news lib "
+"directory (i.e., I<${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>) and should have "
+"file permissions set to 0644. If you read news via NNTP, then your news "
+"server must support the LIST SUBSCRIPTIONS command. It is part of the NNTP "
+"List Extensions (B<RFC6048>) and all modern servers should understand it."
+msgstr ""
+
+# type: SS
+#: ../tin.1:300
+#, no-wrap
+msgid "SCREEN FORMAT"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:303
+msgid ""
+"B<tin> has four separate levels of operation: Selection level, Group level, "
+"Thread level and Article level."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:308
+msgid ""
+"At the Selection level the title displays (the name of the newsserver and) "
+"the number of subscribed groups (containing new unread articles). The "
+"newsgroups are displayed in the middle of the screen with the number of "
+"unread articles displayed on the same line in front."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:316
+#, no-wrap
+msgid ""
+"-E<gt>M    1     2  comp.security.announce  Announcements from the CERT "
+"abou\n"
+"  M    2     1  news.admin.announce     Announcements for news adminstra\n"
+"       3    22  news.software.misc      News-related software other than\n"
+"       4  1475  news.software.nntp      The Network News Transfer Protoc\n"
+"  X    5   124  news.software.readers   Discussion of software used to r\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:319
+msgid "There may also be a character prefixing the line. An explanation follows:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:319
+#, no-wrap
+msgid "B<u>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:324
+msgid ""
+"This group is unsubscribed. To see only your subscribed groups use the "
+"B<SelectToggleReadDisplay> ('B<r>') or B<SelectYankActive> ('B<y>') toggle "
+"keys."
+msgstr ""
+
+# type: TP
+#: ../tin.1:324
+#, no-wrap
+msgid "B<M>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:329
+msgid ""
+"This is a moderated group. Any posts you make will have to be approved by "
+"the group administrator before it will be made public. B<tin> will ask for "
+"confirmation before you post to a moderated group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:329
+#, no-wrap
+msgid "B<N>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:338
+msgid ""
+"This is a new newsgroup which has been created since you last used "
+"B<tin>. New newsgroups are not subscribed to by default (However, see the "
+"$B<AUTOSUBSCRIBE> / $B<AUTOUNSUBSCRIBE> environment variables).  Subscribe "
+"to it in the normal way if you wish the group to continue to appear in your "
+"Selection Menu. Simply ignore new newsgroups and they will be gone the next "
+"time you start B<tin>. You will have to yank in all the groups to find them "
+"in a later session."
+msgstr ""
+
+# type: TP
+#: ../tin.1:338
+#, no-wrap
+msgid "B<D>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:343
+msgid ""
+"This group no longer exists. If you no longer wish to see this group then "
+"unsubscribe from it in the normal way. This flag will only appear if you "
+"have set B<strip_bogus> to \"ask\" in the Options Menu."
+msgstr ""
+
+# type: TP
+#: ../tin.1:343
+#, no-wrap
+msgid "B<X>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:347
+msgid ""
+"You may no longer make posts to this group. Often a group will be superseded "
+"by a more appropriately named one."
+msgstr ""
+
+# type: TP
+#: ../tin.1:347
+#, no-wrap
+msgid "B<=>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:352
+msgid ""
+"This group has been renamed and you may no longer post to it. If you do, "
+"then you will receive an error from your newsserver telling you the correct "
+"group to post to."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:357
+msgid ""
+"At the Group level the title contains the name of the group, the number of "
+"conversation threads, the threading method, the limit of articles to get, "
+"the total number of articles, the number of hot articles, the number of "
+"recent articles and the number of killed articles. I.e.:"
+msgstr ""
+
+#.  FIXME - make this autocenter
+# type: Plain text
+#: ../tin.1:361
+#, no-wrap
+msgid "            alt.sources (5B -50/23+ 0* 3o 0K)\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:369
+msgid ""
+"The characters after the numbers are depending to the configuration and if "
+"your are in B<show_only_unread_arts> mode or not. Some numbers could be "
+"missing if the specific option is not enabled. It might also contain an 'M', "
+"\\&'X' or '=' (see above; doesn't work with the ''B<-n>'' command-line "
+"switch!) if the group is moderated, set to no posting or postings to it get "
+"redirected."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:380
+msgid ""
+"If a thread has unread articles in it it's marked with a "
+"B<art_marked_unread> in front of the total number of articles in the "
+"thread. If there are recent articles within the thread it might be marked "
+"with B<art_marked_recent> in front of the total number of articles in the "
+"thread - this is controlled by the B<recent_time> option. If a thread has "
+"hot articles in it (see also section \"FILTERING ARTICLES\") it's marked "
+"with B<art_marked_selected> in front of the total number of articles in the "
+"thread. The number of lines of the first (unread) article in the thread "
+"might also be shown right before the subject - this is controlled by the "
+"B<show_info> option."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:384
+#, no-wrap
+msgid "                de.admin.net-abuse.announce (11B 13+ 1* 1o 0K) M\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:389
+#, no-wrap
+msgid ""
+"-E<gt>   1   +   3  108 bincancels in de.talk.sex        Christopher Lueg "
+"E<lt>l\n"
+"     2   +       69 EMP/ECP gecancelt. xynx. BI= 10  Henning Weede "
+"E<lt>hwee\n"
+"     3   o       93 EMP gecancelt. SouthBeach/Palms  Henning Weede "
+"E<lt>hwee\n"
+"     4   *      368 E<lt>1997-11-12E<gt> Fremdcancel-FAQ     Thomas Roessler "
+"E<lt>ro\n"
+msgstr ""
+
+#.  FIXME - add description of fields
+# type: Plain text
+#: ../tin.1:394
+msgid ""
+"At the Thread level the screen usually (depends on the threading method "
+"used) looks like this:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:401
+#, no-wrap
+msgid ""
+"-E<gt>   1      [   7]  What is this funny tree in the thr  Robert "
+"F. Simmig\n"
+"     2      [  12]  +-E<gt>                                 Sephan Wagner "
+"E<lt>s\n"
+"     3      [ 230]  | `-E<gt>Tin thread-level (was: What is Bob Johnson "
+"E<lt>bob\n"
+"     4      [  22]  `-E<gt>tin threading menu               Brian "
+"Richardson\n"
+msgstr ""
+
+#.  FIXME - add description of fields
+# type: Plain text
+#: ../tin.1:406
+msgid "At the Article level the page header has the following format:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:412
+#, no-wrap
+msgid ""
+"Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86\n"
+"Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59\n"
+"Urs Janssen E<lt>urs@akk.orgE<gt>        at Arbeitskreis Kultur und "
+"Kommunikati\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:414
+#, no-wrap
+msgid "article-body\n"
+msgstr ""
+
+# type: SS
+#: ../tin.1:417
+#, no-wrap
+msgid "COMMON MOVING KEYS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:420
+msgid ""
+"This table shows the common keys used for moving around all levels within "
+"B<tin>."
+msgstr ""
+
+# type: ta
+#: ../tin.1:422
+#, no-wrap
+msgid "\\w'Beg. of list/article  'u +\\w'ANSI/vt100   'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:430
+#, no-wrap
+msgid ""
+"\tANSI/vt100\tOther Terminals\n"
+"Beg. of list/article\tB<Home>\tB<FirstPage> (B<^>)\n"
+"End of list/article\tB<End>\tB<LastPage> (B<$>)\n"
+"Page Up\tB<PgUp>\tB<PageUp> (B<u>, B<^U> or B<^B>)\n"
+"Page Down\tB<PgDn>\tB<PageDown> (B<^D> or B<^F> or B<E<lt>SPACEE<gt>>)\n"
+"Line Up\tB<Up arrow>\tB<Up> (B<k> or B<^P>)\n"
+"Line Down\tB<Down arrow>\tB<Down> (B<j> or B<^N>)\n"
+msgstr ""
+
+# type: SS
+#: ../tin.1:434
+#, no-wrap
+msgid "COMMON EDITING COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:439
+msgid ""
+"An emacs style editing package allows the easy editing of input strings.  An "
+"history list allows the easy reuse of previously entered strings.  In "
+"addition to the cursor keys, the following commands are available when "
+"editing a string:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:440
+#, no-wrap
+msgid "B<^A, ^E>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:443
+msgid "move to beginning or end of line, respectively."
+msgstr ""
+
+# type: TP
+#: ../tin.1:443
+#, no-wrap
+msgid "B<^F, ^B>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:446
+msgid "non-destructive move forward or back one location, respectively."
+msgstr ""
+
+# type: TP
+#: ../tin.1:446
+#, no-wrap
+msgid "B<^D>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:450
+msgid ""
+"delete the character currently under the cursor, or send EOF if no "
+"characters in the buffer."
+msgstr ""
+
+# type: TP
+#: ../tin.1:450
+#, no-wrap
+msgid "B<^H, E<lt>DELE<gt>>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:453
+msgid "delete character left of the cursor."
+msgstr ""
+
+# type: TP
+#: ../tin.1:453
+#, no-wrap
+msgid "B<^K>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:456
+msgid "delete from cursor to end of line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:456
+#, no-wrap
+msgid "B<^P, ^N>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:459
+msgid "move through history, previous and next, respectively."
+msgstr ""
+
+# type: TP
+#: ../tin.1:459
+#, no-wrap
+msgid "B<^L, ^R>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:462
+msgid "redraw the current line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:462
+#, no-wrap
+msgid "B<E<lt>CRE<gt>>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:466
+msgid ""
+"places line on history list if non-blank, appends newline and returns to the "
+"caller."
+msgstr ""
+
+# type: TP
+#: ../tin.1:466
+#, no-wrap
+msgid "B<E<lt>ESCE<gt>>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:471
+msgid "aborts the present editing operation."
+msgstr ""
+
+# type: SS
+#: ../tin.1:471
+#, no-wrap
+msgid "GLOBAL COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:474
+msgid ""
+"The following commands are available at all 4 menu levels and always have "
+"the same effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:475 ../tin.1:1338 ../tin.1:1391
+#, no-wrap
+msgid "B<ShellEscape '!'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:480
+msgid ""
+"Shell escape. B<ShellEscape> by itself will launch a shell, B<ShellEscape> "
+"E<lt>commandE<gt> will run an external E<lt>commandE<gt>. This facility may "
+"have been disabled by the System Administrator."
+msgstr ""
+
+# type: TP
+#: ../tin.1:480
+#, no-wrap
+msgid "B<ToggleColor '&'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:483
+msgid "Toggle use of ANSI color."
+msgstr ""
+
+# type: TP
+#: ../tin.1:483
+#, no-wrap
+msgid "B<RedrawScr '^L'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:486
+msgid "Redraw the current screen."
+msgstr ""
+
+# type: TP
+#: ../tin.1:486
+#, no-wrap
+msgid "B<ScrollUp 'E<lt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:489
+msgid "Scroll screen up by one line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:489
+#, no-wrap
+msgid "B<ScrollDown 'E<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:492
+msgid "Scroll screen down by one line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:492
+#, no-wrap
+msgid "B<Postponed 'O' '^O'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:506
+msgid ""
+"Reload postponed article. If your system blocks the B<Postponed> key you "
+"must quote it by pressing 'B<^V>' (CTRL-V) first. The postpone-menu offers "
+"the following actions: B<PromptYes> ('B<y>') = reload and spawn editor; "
+"B<PostponeOverride> ('B<Y>') = post article (without spawning editor); "
+"B<PostponeAll> ('B<A>') = post all postponed articles (without spawning "
+"editor); B<PromptNo> ('B<n>') = skip this article; B<Quit> ('B<q>') = quit "
+"postponed menu. Currently there is no 'simple' way to delete a postponed "
+"article from the postponed-file, you have to use the following command "
+"sequence instead: reload it with B<Postponed>, enter editor with "
+"B<PromptYes>, quit editor, discard posting with B<Quit> "
+"('B<^O>''B<y>''B<q>'). See also ''B<-o>'' command-line switch."
+msgstr ""
+
+# type: TP
+#: ../tin.1:506 ../tin.1:1344 ../tin.1:1398
+#, no-wrap
+msgid "B<Help 'h'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:512
+msgid ""
+"Help screen of commands available on the current menu. You can use "
+"B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> "
+"('B<\\e>') to search on this screen. B<Quit> ('B<q>') returns to the menu."
+msgstr ""
+
+# type: TP
+#: ../tin.1:512 ../tin.1:1347 ../tin.1:1401
+#, no-wrap
+msgid "B<ToggleHelpDisplay 'H'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:515 ../tin.1:1350 ../tin.1:1404
+msgid "Toggle the display of help mini menu at the bottom of the screen."
+msgstr ""
+
+# type: TP
+#: ../tin.1:515
+#, no-wrap
+msgid "B<DisplayPostHist 'W'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:521
+msgid ""
+"List articles posted by user. The date posted, the newsgroup and the subject "
+"are listed. You can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and "
+"B<SearchRepeat> ('B<\\e>') to search on this screen. B<Quit> ('B<q>') "
+"returns to the menu."
+msgstr ""
+
+# type: TP
+#: ../tin.1:521
+#, no-wrap
+msgid "B<Version 'v'>"
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: Plain text
+#: ../tin.1:526
+msgid "Print B<tin> version information."
+msgstr ""
+
+# type: SS
+#: ../tin.1:526
+#, no-wrap
+msgid "NEWSGROUP SELECTION COMMANDS"
+msgstr ""
+
+# type: TP
+#: ../tin.1:527 ../tin.1:655 ../tin.1:905 ../tin.1:1069 ../tin.1:3242
+#, no-wrap
+msgid "B<4>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:530
+msgid "Select group 4."
+msgstr ""
+
+# type: TP
+#: ../tin.1:530
+#, no-wrap
+msgid "B<SelectResetNewsrc '^R'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:534
+msgid ""
+"Reset I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. This will destroy all "
+"records of which articles have been read, so use this carefully."
+msgstr ""
+
+# type: TP
+#: ../tin.1:534 ../tin.1:676 ../tin.1:926
+#, no-wrap
+msgid "B<SetRange '#'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:538 ../tin.1:680 ../tin.1:930
+msgid ""
+"Choose a range of articles to be affected by the next command. See the "
+"section \"RANGES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:538
+#, no-wrap
+msgid "B<SelectSortActive '.'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:541
+msgid "Sort the list of newsgroups."
+msgstr ""
+
+# type: TP
+#: ../tin.1:541 ../tin.1:683 ../tin.1:933 ../tin.1:1123 ../tin.1:1335 ../tin.1:1385
+#, no-wrap
+msgid "B<SearchRepeat '\\e'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:544 ../tin.1:936 ../tin.1:1126 ../tin.1:1338 ../tin.1:1388
+msgid "Repeat the previous search."
+msgstr ""
+
+# type: TP
+#: ../tin.1:544 ../tin.1:686 ../tin.1:936 ../tin.1:1126 ../tin.1:1329 ../tin.1:1379
+#, no-wrap
+msgid "B<SearchSubjF '/'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:547
+msgid "Search for a group by name and description (if displayed)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:547 ../tin.1:689 ../tin.1:939 ../tin.1:1129 ../tin.1:1332 ../tin.1:1382
+#, no-wrap
+msgid "B<SearchSubjB '?'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:550
+msgid "Backward search through the group names and descriptions."
+msgstr ""
+
+# type: TP
+#: ../tin.1:550
+#, no-wrap
+msgid "B<SelectReadGrp '^J' 'E<lt>CRE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:553
+msgid "Read current group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:553
+#, no-wrap
+msgid "B<SelectEnterNextUnreadGrp 'E<lt>TABE<gt>' 'n'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:557
+msgid ""
+"Enter next group with unread news. Will wrap around to the beginning of the "
+"group selection list looking for unread groups."
+msgstr ""
+
+# type: TP
+#: ../tin.1:557 ../tin.1:764 ../tin.1:977 ../tin.1:1187
+#, no-wrap
+msgid "B<Catchup 'c'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:561
+msgid ""
+"Make current group as all read [after confirmation] and move to the next "
+"group in the group selection list."
+msgstr ""
+
+# type: TP
+#: ../tin.1:561 ../tin.1:768 ../tin.1:981 ../tin.1:1191
+#, no-wrap
+msgid "B<CatchupNextUnread 'C'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:565
+msgid ""
+"Mark current group as all read [after confirmation] and enter the next "
+"unread group in the group selection list."
+msgstr ""
+
+# type: TP
+#: ../tin.1:565
+#, no-wrap
+msgid "B<SelectToggleDescriptions 'd'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:569
+msgid ""
+"Toggle display to show just the group name or the group name and the group "
+"descriptions."
+msgstr ""
+
+# type: TP
+#: ../tin.1:569 ../tin.1:781 ../tin.1:994 ../tin.1:1203
+#, no-wrap
+msgid "B<EditFilter 'E'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:572 ../tin.1:784 ../tin.1:997 ../tin.1:1206
+msgid "Edit the filter file and reload it afterwards."
+msgstr ""
+
+# type: TP
+#: ../tin.1:572
+#, no-wrap
+msgid "B<SelectGoto 'g'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:576 ../tin.1:788
+msgid ""
+"Choose a new group by name. This command can be used to access any group, "
+"even those not currently yanked in."
+msgstr ""
+
+# type: TP
+#: ../tin.1:576 ../tin.1:791 ../tin.1:997 ../tin.1:1219 ../tin.1:1341 ../tin.1:1394
+#, no-wrap
+msgid "B<ToggleInfoLastLine 'i'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:581
+msgid ""
+"Toggle the display of the description of the current newsgroup in the last "
+"line. This will not be available if B<tin> was started with the \\&''B<-d>'' "
+"option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:581 ../tin.1:795 ../tin.1:1000 ../tin.1:1222
+#, no-wrap
+msgid "B<ToggleInverseVideo 'I'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:584 ../tin.1:798 ../tin.1:1003 ../tin.1:1225
+msgid "Toggle inverse video."
+msgstr ""
+
+# type: TP
+#: ../tin.1:584
+#, no-wrap
+msgid "B<SelectMoveGrp 'm'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:590
+msgid ""
+"Move the current group within the group selection list. By entering '1' the "
+"group will become the first displayed group in the list, by entering '8' the "
+"eighth group in the list etc. By entering '$' the group will be the last "
+"group displayed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:590 ../tin.1:815 ../tin.1:1239
+#, no-wrap
+msgid "B<OptionMenu 'M'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:594 ../tin.1:819 ../tin.1:1243
+msgid ""
+"User configurable options menu (for more information see section \"GLOBAL "
+"OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\")."
+msgstr ""
+
+# type: TP
+#: ../tin.1:594
+#, no-wrap
+msgid "B<SelectNextUnreadGrp 'N'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:597
+msgid "Positions the cursor on the next group with unread articles in it."
+msgstr ""
+
+# type: TP
+#: ../tin.1:597 ../tin.1:836 ../tin.1:1022 ../tin.1:1260
+#, no-wrap
+msgid "B<Quit 'q'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:601
+msgid ""
+"Quit B<tin> - ask the user to confirm if B<confirm_choice> is set "
+"accordingly."
+msgstr ""
+
+# type: TP
+#: ../tin.1:601 ../tin.1:839 ../tin.1:1025 ../tin.1:1263
+#, no-wrap
+msgid "B<QuitTin 'Q'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:604 ../tin.1:842 ../tin.1:1028 ../tin.1:1266
+msgid "Quit B<tin> - don't ask the user to confirm."
+msgstr ""
+
+# type: TP
+#: ../tin.1:604
+#, no-wrap
+msgid "B<SelectToggleReadDisplay 'r'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:609
+msgid ""
+"Toggle display of all subscribed to groups and just those groups containing "
+"unread articles. Command has no effect if groups were specified on the "
+"command-line when B<tin> was started."
+msgstr ""
+
+# type: TP
+#: ../tin.1:609 ../tin.1:845 ../tin.1:1028
+#, no-wrap
+msgid "B<BugReport 'R'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:613 ../tin.1:849 ../tin.1:1032
+msgid ""
+"Mail a bug report or comment to E<lt>tin-bugs@tin.orgE<gt>. This is the best "
+"way of getting bugs fixed and features added/changed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:613
+#, no-wrap
+msgid "B<SelectSubscribe 's'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:616
+msgid "Subscribe to current group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:616
+#, no-wrap
+msgid "B<SelectSubscribePat 'S'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:621
+msgid ""
+"Subscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+msgstr ""
+
+# type: TP
+#: ../tin.1:621
+#, no-wrap
+msgid "B<SelectUnsubscribe 'u'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:626
+msgid ""
+"Unsubscribe to current group. This can be used to remove bogus groups.  See "
+"B<strip_bogus> in the \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE "
+"VARIABLES\" section."
+msgstr ""
+
+# type: TP
+#: ../tin.1:626
+#, no-wrap
+msgid "B<SelectUnsubscribePat 'U'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:631
+msgid ""
+"Unsubscribe to groups matching user specified pattern. See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for the types of pattern that B<tin> "
+"understands."
+msgstr ""
+
+# type: TP
+#: ../tin.1:631 ../tin.1:873 ../tin.1:1047 ../tin.1:1300
+#, no-wrap
+msgid "B<Post 'w'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:637
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to B<PostEdit> ('B<e>') the article again, B<PostPostpone> "
+"('B<o>') it for later processing (see also ''B<-o>'' command-line switch) or "
+"discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:637
+#, no-wrap
+msgid "B<SelectQuitNoWrite 'X'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:640
+msgid "Quit B<tin> without saving any changes to the configuration."
+msgstr ""
+
+# type: TP
+#: ../tin.1:640
+#, no-wrap
+msgid "B<SelectYankActive 'y'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:645
+msgid ""
+"Yanks in all groups. Toggles the displayed groups between all the groups in "
+"the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file and just "
+"those that are subscribed to in I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:645
+#, no-wrap
+msgid "B<SelectSyncWithActive 'Y'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:649
+msgid ""
+"Reread the I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file "
+"to see if any new news has arrived since starting B<tin>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:649
+#, no-wrap
+msgid "B<SelectMarkGrpUnread 'z' 'Z'>"
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: Plain text
+#: ../tin.1:654
+msgid "Mark all articles in the current group as unread."
+msgstr ""
+
+# type: SS
+#: ../tin.1:654
+#, no-wrap
+msgid "GROUP INDEX COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:658
+msgid "Select article 4."
+msgstr ""
+
+# type: TP
+#: ../tin.1:658 ../tin.1:908 ../tin.1:1072
+#, no-wrap
+msgid "B<MenuFilterSelect '^A'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:662 ../tin.1:912 ../tin.1:1076
+msgid ""
+"Auto select article(s) using a menu. Read the section \"FILTERING ARTICLES\" "
+"for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:662 ../tin.1:912 ../tin.1:1088
+#, no-wrap
+msgid "B<MenuFilterKill '^K'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:666 ../tin.1:916 ../tin.1:1092
+msgid ""
+"Kill article(s) using a menu. Read the section \"FILTERING ARTICLES\" for "
+"more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:666 ../tin.1:916
+#, no-wrap
+msgid "B<MarkFeedRead '^X'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:671 ../tin.1:921
+msgid ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as read. A prompt asks which type should "
+"be marked."
+msgstr ""
+
+# type: TP
+#: ../tin.1:671 ../tin.1:921
+#, no-wrap
+msgid "B<MarkFeedUnread '^W'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:676 ../tin.1:926
+msgid ""
+"Mark current article, thread, range, auto-selected (hot) articles, articles "
+"matching pattern or tagged articles as unread. A prompt asks which type "
+"should be marked."
+msgstr ""
+
+# type: TP
+#: ../tin.1:680 ../tin.1:930 ../tin.1:1120
+#, no-wrap
+msgid "B<LastViewed '-'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:683 ../tin.1:933 ../tin.1:1123
+msgid "Re-enter the last message that was viewed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:686
+msgid "Repeat the previous search"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:689
+msgid "Search forward for specified subject."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:692
+msgid "Search backward for specified subject."
+msgstr ""
+
+# type: TP
+#: ../tin.1:692
+#, no-wrap
+msgid "B<GroupSelThd '*'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:695
+msgid "Select current thread for later processing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:695
+#, no-wrap
+msgid "B<GroupDoAutoSel '+'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:699
+msgid ""
+"Selects all threads in current group. It is a shortcut for calling "
+"B<GroupSelPattern> with a pattern of ''*''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:699
+#, no-wrap
+msgid "B<GroupToggleThdSel '.'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:704
+msgid ""
+"Toggle selection of current thread. If at least one unread article, (but not "
+"every unread article) in the current thread is selected, then all unread "
+"articles become selected."
+msgstr ""
+
+# type: TP
+#: ../tin.1:704
+#, no-wrap
+msgid "B<GroupSelThdIfUnreadSelected ';'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:709
+msgid ""
+"For each thread in current group, if it at least one unread article is "
+"selected, all unread articles become selected. This is useful for "
+"auto-selection on author where reader wants to see entire thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:709
+#, no-wrap
+msgid "B<GroupSelPattern '='>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:715
+msgid ""
+"Prompts for a pattern with which to match on. All threads whose subjects "
+"match the pattern will be marked selected. A pattern of ''*'' will match all "
+"subjects. Entering just 'B<E<lt>CRE<gt>>' will re-use the last pattern that "
+"was entered."
+msgstr ""
+
+# type: TP
+#: ../tin.1:715
+#, no-wrap
+msgid "B<GroupReverseSel '@'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:718
+msgid "Reverse all selections on all articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:718
+#, no-wrap
+msgid "B<GroupUndoSel '~'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:724
+msgid ""
+"Undo all selections on all articles. It clears the toggle effect of "
+"B<GroupMarkUnselArtRead> ('B<X>') command. Thus after first doing a "
+"B<GroupMarkUnselArtRead>, one can then do B<GroupUndoSel> to reset "
+"articles. Thus, one can iteratively whittle down uninteresting threads."
+msgstr ""
+
+# type: TP
+#: ../tin.1:724 ../tin.1:954 ../tin.1:1146
+#, no-wrap
+msgid "B<Pipe '|'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:729 ../tin.1:959 ../tin.1:1151
+msgid ""
+"Pipe current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles into command. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:729 ../tin.1:1151
+#, no-wrap
+msgid "B<QuickFilterSelect '['>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:738
+msgid ""
+"Auto select article(s) with a single key [after confirmation]. The defaults "
+"used for selection are based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header>.  Read "
+"the section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a "
+"full explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+
+# type: TP
+#: ../tin.1:738 ../tin.1:1160
+#, no-wrap
+msgid "B<QuickFilterKill ']'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:747
+msgid ""
+"Kill article(s) with a single key [after confirmation]. The defaults used "
+"for killing are based upon the following four tinrc config variables: "
+"B<default_filter_kill_case>, B<default_filter_kill_expire>, "
+"B<default_filter_kill_global> and B<default_filter_kill_header>.  Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+
+# type: TP
+#: ../tin.1:747
+#, no-wrap
+msgid "B<GroupReadBasenote '^J' 'E<lt>CRE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:750
+msgid "Read current article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:750
+#, no-wrap
+msgid "B<GroupNextUnreadArtOrGrp 'E<lt>TABE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:753
+msgid "View next unread article or group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:753 ../tin.1:965 ../tin.1:1177
+#, no-wrap
+msgid "B<SearchAuthF 'a'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:757
+msgid ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:757 ../tin.1:970 ../tin.1:1180
+#, no-wrap
+msgid "B<SearchAuthB 'A'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:760 ../tin.1:973
+msgid "Author backward search. Otherwise, see B<SearchAuthF> ('B<a>') above."
+msgstr ""
+
+# type: TP
+#: ../tin.1:760 ../tin.1:973 ../tin.1:1183
+#, no-wrap
+msgid "B<SearchBody 'B'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:764 ../tin.1:977 ../tin.1:1187
+msgid ""
+"Search the body of all articles in group (can be slow). You can abort the "
+"search using B<Quit> ('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:768
+msgid ""
+"Mark all articles as read [after confirmation] then return to the group "
+"selection list. Move cursor to next group."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:772
+msgid ""
+"Mark all articles as read [after confirmation] and enter the next group with "
+"unread news."
+msgstr ""
+
+# type: TP
+#: ../tin.1:772
+#, no-wrap
+msgid "B<GroupToggleSubjDisplay 'd'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:776 ../tin.1:989
+msgid ""
+"Cycle the display of the author through all the possible options for the "
+"tinrc variable B<show_author>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:776
+#, no-wrap
+msgid "B<GroupCancel 'D'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:781 ../tin.1:994 ../tin.1:1200
+msgid ""
+"Cancel (delete) or supersede (overwrite) the current article. It must have "
+"been posted by the same user. The cancel message can be seen in the "
+"newsgroup 'control' or 'control.cancel'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:784
+#, no-wrap
+msgid "B<GroupGoto 'g'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:788
+#, no-wrap
+msgid "B<GroupToggleGetartLimit 'G'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:791
+msgid "Toggle article/group limit."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:795
+msgid ""
+"Display the subject of the first article in the current thread in the last "
+"line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:798
+#, no-wrap
+msgid "B<GroupMarkThdRead 'K'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:804
+msgid ""
+"Mark article/thread as read and move onto the next unread article/thread. If "
+"a range of articles/threads is set, the range will be marked as read instead "
+"of the current article/thread. When tagged articles/threads are present, a "
+"prompt asks how to proceed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:804
+#, no-wrap
+msgid "B<GroupListThd 'l'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:807
+msgid "Open the thread under the current cursor position."
+msgstr ""
+
+# type: TP
+#: ../tin.1:807 ../tin.1:1009 ../tin.1:1231
+#, no-wrap
+msgid "B<LookupMessage 'L'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:810 ../tin.1:1012 ../tin.1:1234
+msgid "Look up article by ''Message-ID:''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:810
+#, no-wrap
+msgid "B<GroupMail 'm'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:815 ../tin.1:1017 ../tin.1:1239
+msgid ""
+"Mail current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to someone. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:819
+#, no-wrap
+msgid "B<GroupNextGroup 'n'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:822
+msgid "Go to next group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:822
+#, no-wrap
+msgid "B<GroupNextUnreadArt 'N'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:825
+msgid "Go to next unread article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:825 ../tin.1:1017 ../tin.1:1249
+#, no-wrap
+msgid "B<Print 'o'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:830 ../tin.1:1022 ../tin.1:1254
+msgid ""
+"Send current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles to printer. See the section \"MAILING "
+"PIPING PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:830
+#, no-wrap
+msgid "B<GroupPrevGroup 'p'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:833
+msgid "Go to previous group."
+msgstr ""
+
+# type: TP
+#: ../tin.1:833
+#, no-wrap
+msgid "B<GroupPrevUnreadArt 'P'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:836
+msgid "Go to previous unread article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:839 ../tin.1:1025
+msgid "Return to previous level."
+msgstr ""
+
+# type: TP
+#: ../tin.1:842
+#, no-wrap
+msgid "B<GroupToggleReadUnread 'r'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:845
+msgid "Toggle the display between all articles and unread articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:849
+#, no-wrap
+msgid "B<GroupSave 's'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:854 ../tin.1:1037 ../tin.1:1279
+msgid ""
+"Save current article / thread / auto-selected (hot) articles / articles "
+"matching pattern / tagged articles. See the section \"MAILING PIPING "
+"PRINTING REPOSTING AND SAVING ARTICLES\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:854
+#, no-wrap
+msgid "B<GroupAutoSave 'S'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:857 ../tin.1:1040 ../tin.1:1282
+msgid "Save marked articles automatically without further prompting."
+msgstr ""
+
+# type: TP
+#: ../tin.1:857
+#, no-wrap
+msgid "B<GroupTag 't'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:862
+msgid ""
+"Toggle tag-status of current article / thread for B<GroupMail> ('B<m>')  / "
+"B<Pipe> ('B<|>') / B<Print> ('B<o>') / B<GroupSave> ('B<s>') / "
+"B<GroupRepost> ('B<x>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:862
+#, no-wrap
+msgid "B<GroupTagParts 'T'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:865
+msgid "Automatically tag in order all the parts of the current multi-part message."
+msgstr ""
+
+# type: TP
+#: ../tin.1:865
+#, no-wrap
+msgid "B<GroupToggleThreading 'u'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:870
+msgid ""
+"Cycle the threading mode through no threading, threading by subject, "
+"threading by references, threading on both subject and references, group "
+"multipart articles into a thread (''Subject:'' based)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:870
+#, no-wrap
+msgid "B<GroupUntag 'U'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:873
+msgid "Untag all articles that were tagged."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:879
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it via B<PostPostpone> ('B<o>') for later processing (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:879
+#, no-wrap
+msgid "B<GroupRepost 'x'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:885
+msgid ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to cross-post "
+"your own articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:885
+#, no-wrap
+msgid "B<GroupMarkUnselArtRead 'X'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:893
+msgid ""
+"Mark all unread articles that have not been selected as read, redraw screen "
+"to reflect changes and put index at the first thread to begin reading.  "
+"Pressing B<GroupMarkUnselArtRead> ('B<X>') again will toggle back to the way "
+"it was before. See B<GroupUndoSel> ('B<~>') command for clearing the toggle "
+"effect, leaving the group will also clear the toggle effect and make the "
+"changes permanent."
+msgstr ""
+
+# type: TP
+#: ../tin.1:893 ../tin.1:1054 ../tin.1:1313
+#, no-wrap
+msgid "B<MarkArtUnread 'z'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:896
+msgid "Mark current article as unread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:896 ../tin.1:1059 ../tin.1:1316
+#, no-wrap
+msgid "B<MarkThdUnread 'Z'>"
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: Plain text
+#: ../tin.1:903
+msgid ""
+"Mark current thread as unread. If a range of threads is set, the range will "
+"be marked as unread instead of the current thread. When tagged threads are "
+"present, a prompt asks how to proceed."
+msgstr ""
+
+# type: SS
+#: ../tin.1:903
+#, no-wrap
+msgid "THREAD LISTING COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:908
+msgid "Select article 4 within thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:939
+msgid "Search forward for a specified subject."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:942
+msgid "Search backwards for a specified subject."
+msgstr ""
+
+# type: TP
+#: ../tin.1:942
+#, no-wrap
+msgid "B<ThreadSelArt '*'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:945
+msgid "Select the current thread for later processing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:945
+#, no-wrap
+msgid "B<ThreadToggleArtSel '.'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:948
+msgid "Toggle selection of current article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:948
+#, no-wrap
+msgid "B<ThreadReverseSel '@'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:951
+msgid "Reverse article selections."
+msgstr ""
+
+# type: TP
+#: ../tin.1:951
+#, no-wrap
+msgid "B<ThreadUndoSel '~'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:954
+msgid "Undo all selections on current thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:959
+#, no-wrap
+msgid "B<ThreadReadArt '^J' 'E<lt>CRE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:962
+msgid "Read current article within thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:962
+#, no-wrap
+msgid "B<ThreadReadNextArtOrThread 'E<lt>TABE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:965
+msgid "View next unread article within thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:970
+msgid ""
+"Author forward search. This searches for articles with a specific ''From:'' "
+"line. The search will wrap over into the next thread if nothing is found in "
+"the current one."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:981
+msgid ""
+"Mark thread as read [after confirmation] and return to the group index "
+"page.  Move cursor to next thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:985
+msgid ""
+"Mark thread as read [after confirmation] and enter the next thread "
+"containing unread news."
+msgstr ""
+
+# type: TP
+#: ../tin.1:985
+#, no-wrap
+msgid "B<ThreadToggleSubjDisplay 'd'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:989
+#, no-wrap
+msgid "B<ThreadCancel 'D'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1000 ../tin.1:1222
+msgid "Display the subject of the current article in the last line."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1003
+#, no-wrap
+msgid "B<ThreadMarkArtRead 'K'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1009
+msgid ""
+"Mark article as read and move onto the next unread article. If a range of "
+"articles is set, the range will be marked as read instead of the current "
+"article. When tagged articles are present, a prompt asks how to proceed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1012
+#, no-wrap
+msgid "B<ThreadMail 'm'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1032
+#, no-wrap
+msgid "B<ThreadSave 's'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1037
+#, no-wrap
+msgid "B<ThreadAutoSave 'S'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1040
+#, no-wrap
+msgid "B<ThreadTag 't'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1044 ../tin.1:1286
+msgid ""
+"Toggle tag status of current article for mailing, piping, printing, saving "
+"or reposting."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1044
+#, no-wrap
+msgid "B<ThreadUntag 'U'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1047
+msgid "Untag all tagged threads."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1054
+msgid ""
+"Post an article to current group. If posting fails for some reason, you'll "
+"get the chance to edit the article again via B<PostEdit> ('B<e>'), postpone "
+"it for later processing via B<PostPostpone> ('B<o>') (see also ''B<-o>'' "
+"command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1059
+msgid ""
+"Mark current article in thread as unread. If a range of articles is set, the "
+"range will be marked as unread instead of the current article. When tagged "
+"articles are present, a prompt asks how to proceed."
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: Plain text
+#: ../tin.1:1064
+msgid "Mark all articles in thread as unread."
+msgstr ""
+
+# type: SS
+#: ../tin.1:1064
+#, no-wrap
+msgid "ARTICLE VIEWER COMMANDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1069
+msgid "Read the first (base) article in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1072
+msgid "Read response 4 in this thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1076
+#, no-wrap
+msgid "B<PageReplyQuoteHeaders '^E'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1080
+msgid ""
+"Reply through mail to the author of the current article with a copy of the "
+"article with all headers included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1080
+#, no-wrap
+msgid "B<PagePGPCheckArticle '^G'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1085
+msgid "Perform B<pgp>(1)  operations on article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1085
+#, no-wrap
+msgid "B<PageToggleRaw '^H'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1088
+msgid "Toggles the display mode (raw including all headers vs. cooked)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1092
+#, no-wrap
+msgid "B<PageToggleTabs '^T'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1095
+msgid "Toggle the TAB width between 4 and 8 characters."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1095
+#, no-wrap
+msgid "B<PageFollowupQuoteHeaders '^W'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1099
+msgid ""
+"Post a followup to the current article with a copy of the article with all "
+"headers included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1099
+#, no-wrap
+msgid "B<PageToggleTex2iso '\"'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1103
+msgid ""
+"Toggle TeX to ISO decoding for current article. The default behavior is "
+"taken from the B<tex2iso_conv> variable in the tinrc file."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1103
+#, no-wrap
+msgid "B<PageToggleAllHeaders '*'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1106
+msgid ""
+"Toggles the display of all headers vs. headers in "
+"B<news_headers_to_display>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1106
+#, no-wrap
+msgid "B<PageToggleRot '%'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1109
+msgid "Toggle ROT-13 decoding for this article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1109
+#, no-wrap
+msgid "B<PageToggleUue '('>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1113
+msgid ""
+"Toggle the display of uuencoded sections. The default behavior is taken from "
+"the B<hide_uue> variable in the tinrc file."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1113
+#, no-wrap
+msgid "B<PageReveal ')'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1120
+msgid ""
+"The formfeed character (^L) is often used to hide 'spoilers' that the reader "
+"may not initially wish to see when viewing an article. Any text after a "
+"formfeed is not displayed. This key-press acts like a reveal key and turns "
+"the hidden text back on. Scrolling down will also reveal the text, scrolling "
+"up will hide it again."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1129
+msgid "Forward search the text of this article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1132
+msgid "Backward search the text of this article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1132
+#, no-wrap
+msgid "B<PageSkipIncludedText ':'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1137
+msgid ""
+"Skip to the end of the next quoted text-block in this article. Quoted text "
+"is everything which matches B<quote_regex>, B<quote_regex2> or "
+"B<quote_regex3>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1137
+#, no-wrap
+msgid "B<PageTopThd 'E<lt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1140
+msgid "Go to the first article in the current thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1140
+#, no-wrap
+msgid "B<PageBotThd 'E<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1143
+msgid "Go to the last article in the current thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1143
+#, no-wrap
+msgid "B<PageToggleHighlight '_'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1146
+msgid "Toggle word highlighting on/off."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1160
+msgid ""
+"Auto select article(s) with a single key. The defaults used for selection "
+"are set based upon the following four tinrc config variables: "
+"B<default_filter_select_case>, B<default_filter_select_expire>, "
+"B<default_filter_select_global> and B<default_filter_select_header> Read the "
+"section \"GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES\" for a full "
+"explanation of these variables and \"FILTERING ARTICLES\" for more "
+"information on filtering."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1169
+msgid ""
+"Kill article(s) with a single key. The defaults used for killing are based "
+"upon the following four tinrc config variables: B<default_filter_kill_case>, "
+"B<default_filter_kill_expire>, B<default_filter_kill_global> and "
+"B<default_filter_kill_header>.  Read the section \"GLOBAL OPTIONS MENU AND "
+"TINRC CONFIGURABLE VARIABLES\" for a full explanation of these variables and "
+"\"FILTERING ARTICLES\" for more information on filtering."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1169
+#, no-wrap
+msgid "B<PageNextThd '^J' 'E<lt>CRE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1172
+msgid "Go to next base article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1172
+#, no-wrap
+msgid "B<PageNextUnread 'E<lt>TABE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1177
+msgid ""
+"Go to next unread article. If the tinrc variable B<goto_next_unread> doesn't "
+"contain PageNextUnread, then this key will first page through the current "
+"article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1180
+msgid "Author forward search."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1183
+msgid "Author backward search."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1191
+msgid ""
+"Mark the current thread as read [after confirmation] and return to the "
+"previous menu. Move cursor to next item."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1195
+msgid ""
+"Mark the rest of the current thread as read [after confirmation] and enter "
+"the next thread with unread articles."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1195
+#, no-wrap
+msgid "B<PageCancel 'D'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1200
+#, no-wrap
+msgid "B<PageEditArticle 'e'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1203
+msgid "Edit the current article. This is restricted to mailgroups and saved news."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1206
+#, no-wrap
+msgid "B<PageFollowupQuote 'f'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1209
+msgid "Post a followup to the current article with a copy of the article included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1209
+#, no-wrap
+msgid "B<PageFollowup 'F'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1213
+msgid ""
+"Post a followup to the current article without including a copy of the "
+"article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1213
+#, no-wrap
+msgid "B<PageFirstPage 'g'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1216
+msgid "Go to the start of the article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1216
+#, no-wrap
+msgid "B<PageLastPage 'G'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1219
+msgid "Go to the end of the article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1225
+#, no-wrap
+msgid "B<PageKillThd 'K'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1228
+msgid "Mark rest of thread as read and move onto the next unread thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1228
+#, no-wrap
+msgid "B<PageListThd 'l'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1231
+msgid "Show the thread menu that the current article is a part of."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1234
+#, no-wrap
+msgid "B<PageMail 'm'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1243
+#, no-wrap
+msgid "B<PageNextArt 'n'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1246
+msgid "Go to the next article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1246
+#, no-wrap
+msgid "B<PageNextUnreadArt 'N'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1249
+msgid "Go to the next unread article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1254
+#, no-wrap
+msgid "B<PagePrevArt 'p'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1257
+msgid "Go to the previous article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1257
+#, no-wrap
+msgid "B<PagePrevUnreadArt 'P'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1260
+msgid "Go to the previous unread article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1263
+msgid "Return to the previous level."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1266
+#, no-wrap
+msgid "B<PageReplyQuote 'r'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1270
+msgid ""
+"Reply through mail to the author of the current article with a copy of the "
+"article included."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1270
+#, no-wrap
+msgid "B<PageReply 'R'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1274
+msgid ""
+"Reply through mail to the author of the current article without including "
+"the original article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1274
+#, no-wrap
+msgid "B<PageSave 's'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1279
+#, no-wrap
+msgid "B<PageAutoSave 'S'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1282
+#, no-wrap
+msgid "B<PageTag 't'>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1286
+#, no-wrap
+msgid "B<PageGroupSel 'T'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1289
+msgid "Return to group selection level."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1289
+#, no-wrap
+msgid "B<PageGotoParent 'u'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1292
+msgid "Go to parent article."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1292
+#, no-wrap
+msgid "B<PageViewUrl 'U'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1296
+msgid ""
+"Display a list of URLs in the current article. See the section \"URL "
+"LISTING\" for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1296
+#, no-wrap
+msgid "B<PageViewAttach 'V'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1300
+msgid ""
+"Display a list of attachments of the current article. See the section "
+"\"ATTACHMENT LISTING\" for more information."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1307
+msgid ""
+"Post an article to the current group. If posting fails for some reason, "
+"you'll get the chance to edit the article again via B<PostEdit> ('B<e>'), "
+"postpone it for later processing via B<PostPostpone> ('B<o>') (see also "
+"''B<-o>'' command-line switch) or discard it via B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1307
+#, no-wrap
+msgid "B<PageRepost 'x'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1313
+msgid ""
+"Repost an already posted article / thread / auto-selected (hot) articles / "
+"articles matching pattern / tagged articles to another newsgroup(s). Useful "
+"for reposting from global to local newsgroups. Do not use this to crosspost "
+"your own articles."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1316
+msgid "Mark article as unread."
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: Plain text
+#: ../tin.1:1321
+msgid "Mark the current thread as unread."
+msgstr ""
+
+# type: SS
+#: ../tin.1:1321
+#, no-wrap
+msgid "URL LISTING"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1324
+msgid ""
+"B<PageViewUrl> ('B<U>') displays a list of URLs in the current "
+"article. Besides the common moving keys, the following commands are "
+"available:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1325
+#, no-wrap
+msgid "B<UrlSelect '^J' 'E<lt>CRE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1329
+msgid ""
+"The current URL will be prompted and opened using the "
+"B<url_handler>. 'B<E<lt>ESCE<gt>>' or no input will skip the URL."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1332
+msgid "URL forward search."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1335
+msgid "URL backward search."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1341 ../tin.1:1394
+msgid "Shell escape."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1344
+msgid "Toggle the display of the current URL in the last line."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1347 ../tin.1:1401
+msgid "Help screen of commands available."
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: SS
+#: ../tin.1:1353
+#, no-wrap
+msgid "ATTACHMENT LISTING"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1356
+msgid ""
+"B<PageViewAttach> ('B<V>') displays a list of attachments of the current "
+"article. Besides the common moving keys, the following commands are "
+"available:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1357
+#, no-wrap
+msgid "B<AttachPipe 'p'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1360
+msgid "Pipe attachment into command."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1360
+#, no-wrap
+msgid "B<AttachSave 's'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1363
+msgid "Save current attachment / tagged attachments to disk."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1363
+#, no-wrap
+msgid "B<AttachSelect '^J' 'E<lt>CRE<gt>'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1366
+msgid "View attachment."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1366
+#, no-wrap
+msgid "B<AttachTag 't'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1369
+msgid "Tag one or more attachments for saving."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1369
+#, no-wrap
+msgid "B<AttachTagPattern '='>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1373
+msgid ""
+"Prompts for a pattern to match. All attachments whose name/description or "
+"content type/transfer encoding match the pattern will be tagged."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1373
+#, no-wrap
+msgid "B<AttachToggleTagged '@'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1376
+msgid "Reverse tagging of all attachments."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1376
+#, no-wrap
+msgid "B<AttachUntag 'U'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1379
+msgid "Untag all tagged attachments."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1382
+msgid "Attachment forward search."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1385
+msgid "Attachment backward search."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1388
+#, no-wrap
+msgid "B<GlobalPipe '|'>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1391
+msgid "Pipe attachment into command. Uses the raw attachment, no decoding is done."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1398
+msgid ""
+"Toggle the display of the name/description of the current attachment in the "
+"last line."
+msgstr ""
+
+#. --------------------------------------------------------------------
+# type: SS
+#: ../tin.1:1407
+#, no-wrap
+msgid "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
+msgstr ""
+
+#.  FIXME - add missing descriptions
+# type: Plain text
+#: ../tin.1:1417
+msgid ""
+"At startup, B<tin> reads in the configuration files (see also B<tin>(5)).  "
+"They contain a list of variables that can be used to configure the way "
+"B<tin> works. If it exists, the global configuration file, "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> is read. After that, the user's own "
+"configuration file is read from I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>. The "
+"global file is useful for distributing system-wide defaults to new users who "
+"have no private tinrc yet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1425
+msgid ""
+"The variables are user configurable by editing "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> directly. Most of them can also be "
+"set in the GLOBAL OPTIONS MENU which is accessed by pressing B<OptionMenu> "
+"('B<M>') at all levels. It allows the user to customize the behavior of "
+"B<tin>. The options are saved to the file "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> when you exit B<tin> so don't edit "
+"the file directly whilst B<tin> is running."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1431
+msgid ""
+"In the options menu use the cursor keys in the usual way to move around. Use "
+"B<ConfigSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') to 'open' the option you wish "
+"to change. You will need to enter a new value or use 'B<E<lt>SPACEE<gt>>' to "
+"toggle the available options. B<ConfigSelect> will save the new value, "
+"\\&'B<E<lt>ESCE<gt>>' will abort without saving changes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1438
+msgid ""
+"As with the other menus, B<RedrawScr> ('B<^L>') will redraw the screen. You "
+"can use B<SearchSubjF> ('B</>'), B<SearchSubjB> ('B<?>') and B<SearchRepeat> "
+"('B<\\e>') to search for a specific option. Use B<Quit> ('B<q>') to exit the "
+"option menu and keep your changes. Use B<QuitTin> ('B<Q>') to exit without "
+"keeping your changes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1443
+msgid ""
+"The options menu provides access to the attributes menu for the current "
+"group by the B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') command. Pressing "
+"B<ConfigToggleAttrib> again toggles back to the options menu. For more "
+"information see section \"ATTRIBUTES MENU AND GROUP ATTRIBUTES\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1446
+msgid ""
+"The B<ConfigScopeMenu> ('B<S>') command brings up the scopes menu. For more "
+"information see section \"SCOPES MENU\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1450
+msgid ""
+"Here is a full list of all the available variables. The name in braces is "
+"the name of the corresponding setting in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1450
+#, no-wrap
+msgid "B<Abbreviate long newsgroup names (abbreviate_groupname)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1456 ../tin.5:1185
+msgid ""
+"If ON abbreviate long newsgroup names at group selection level and article "
+"level (if necessary) like this: news.software.readers -E<gt> "
+"n.software.readers -E<gt> n.s.readers -E<gt> n.s.r.  Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1456
+#, no-wrap
+msgid "B<Add posted articles to filter (add_posted_to_filter)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1460 ../tin.5:1189
+msgid ""
+"If ON add posted articles which start a new thread to filter for "
+"highlighting follow-ups. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1460
+#, no-wrap
+msgid "B<Insert 'User-Agent:'-header (advertising)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1463 ../tin.5:1192
+msgid "Turn ON advertising in header (''User-Agent:''). Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1463
+#, no-wrap
+msgid "B<Skip multipart/alternative parts (alternative_handling)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1466 ../tin.5:1195
+msgid "If ON strip multipart/alternative messages automatically. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1466
+#, no-wrap
+msgid "B<Character to show deleted articles (art_marked_deleted)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1469 ../tin.5:1198
+msgid "The character used to show that an article was deleted. Default is 'D'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1469
+#, no-wrap
+msgid "B<Character to show inrange articles (art_marked_inrange)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1472 ../tin.5:1201
+msgid "The character used to show that an article is in a range. Default is '#'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1472
+#, no-wrap
+msgid "B<Character to show returning arts (art_marked_return)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1476 ../tin.5:1205
+msgid ""
+"The character used to show that an article will return as an unread article "
+"when the group is next entered. Default is '-'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1476
+#, no-wrap
+msgid "B<Character to show selected articles (art_marked_selected)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1480 ../tin.5:1209
+msgid ""
+"The character used to show that an article/thread is auto-selected (hot).  "
+"Default is '*'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1480
+#, no-wrap
+msgid "B<Character to show recent articles (art_marked_recent)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1484 ../tin.5:1213
+msgid ""
+"The character used to show that an article/thread is recent (not older than "
+"X days). See also B<recent_time>. Default is 'o'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1484
+#, no-wrap
+msgid "B<Character to show unread articles (art_marked_unread)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1488
+msgid ""
+"The character used to show that an article has not been read. Default is "
+"\\&'+'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1488
+#, no-wrap
+msgid "B<Character to show read articles (art_marked_read)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1491 ../tin.5:1220
+msgid "The character used to show that an article was read. Default is ' '."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1491
+#, no-wrap
+msgid "B<Character to show killed articles (art_marked_killed)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1495 ../tin.5:1224
+msgid ""
+"The character used to show that an article was killed. Default is 'K'.  "
+"B<kill_level> must be set accordingly."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1495
+#, no-wrap
+msgid "B<Character to show read selected arts (art_marked_read_selected)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1499 ../tin.5:1228
+msgid ""
+"The character used to show that an article was hot before it was read.  "
+"Default is ':'. B<kill_level> must be set accordingly."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1499 ../tin.5:1228
+#, no-wrap
+msgid "B<Ask before using MIME viewer (ask_for_metamail)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1504
+msgid ""
+"If ON B<tin> will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1504
+#, no-wrap
+msgid "B<Send you a cc and/or bcc automatically (auto_cc_bcc)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1508 ../tin.5:1239
+msgid ""
+"Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when "
+"mailing an article. Default is No."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1508
+#, no-wrap
+msgid "B<List thread using right arrow key (auto_list_thread)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1512 ../tin.5:1243
+msgid ""
+"If ON automatically list thread when entering it using right arrow key.  "
+"Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1512
+#, no-wrap
+msgid "B<Reconnect to server automatically (auto_reconnect)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1515 ../tin.1:2430
+msgid "Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1515
+#, no-wrap
+msgid "B<Use Archive-name: header for save (auto_save)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1521 ../tin.5:1252
+msgid ""
+"If ON articles/threads with ''Archive-name:'' in header will be "
+"automatically saved with the Archive-name & part/patch no and post processed "
+"if B<post_process_type> is set to something other than 'No'.  Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1521
+#, no-wrap
+msgid "B<Save articles in batch mode (batch_save)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1526 ../tin.5:1257
+msgid ""
+"If set ON articles/threads will be saved in batch mode when save "
+"\\&''B<-S>'' or mail ''B<-M>, B<-N>'' is specified on the command "
+"line. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1526
+#, no-wrap
+msgid "B<Show mini menu & posting etiquette (beginner_level)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1531 ../tin.5:1262
+msgid ""
+"If set ON a mini menu of the most useful commands will be displayed at the "
+"bottom of the screen for each level. Also a short posting etiquette will be "
+"displayed after composing an article. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1531
+#, no-wrap
+msgid "B<Cache NNTP overview files locally (cache_overview_files)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1536
+msgid ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"See also \"INDEX FILES\". Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1536
+#, no-wrap
+msgid "B<Catchup read groups when quitting (catchup_read_groups)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1542 ../tin.5:1271
+msgid ""
+"If set ON the user is asked when quitting if all groups read during the "
+"current session should be marked read. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1542
+#, no-wrap
+msgid "B<Standard background color (col_back)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1545 ../tin.5:1274
+msgid "Standard background color"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1545
+#, no-wrap
+msgid "B<Color of sender (From:) (col_from)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1548 ../tin.5:1277
+msgid "Color of sender (From:)"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1548
+#, no-wrap
+msgid "B<Color of article header lines (col_head)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1551 ../tin.5:1280
+msgid "Color of header-lines"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1551
+#, no-wrap
+msgid "B<Color of help text (col_help)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1554 ../tin.5:1283
+msgid "Color of help pages"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1554
+#, no-wrap
+msgid "B<Color for inverse text (background) (col_invers_bg)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1557 ../tin.5:1286
+msgid "Color of background for inverse text"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1557
+#, no-wrap
+msgid "B<Color for inverse text (foreground) (col_invers_fg)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1560 ../tin.5:1289
+msgid "Color of foreground for inverse text"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1560
+#, no-wrap
+msgid "B<Color of highlighting with _dash_ (col_markdash)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1564 ../tin.5:1293
+msgid ""
+"Color of words emphasized like _this_. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1564
+#, no-wrap
+msgid "B<Color of highlighting with /slash/ (col_markslash)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1568 ../tin.5:1297
+msgid ""
+"Color of words emphasized like /this/. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1568
+#, no-wrap
+msgid "B<Color of highlighting with *stars* (col_markstar)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1572 ../tin.5:1301
+msgid ""
+"Color of words emphasized like *this*. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1572
+#, no-wrap
+msgid "B<Color of highlighting with -stroke- (col_markstroke)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1576 ../tin.5:1305
+msgid ""
+"Color of words emphasized like -this-. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1576
+#, no-wrap
+msgid "B<Color of mini help menu (col_minihelp)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1579 ../tin.5:1308
+msgid "Color of mini help menu"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1579
+#, no-wrap
+msgid "B<Color of actual news header fields (col_newsheaders)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1582 ../tin.5:1311
+msgid "Color of actual news header fields"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1582
+#, no-wrap
+msgid "B<Standard foreground color (col_normal)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1585 ../tin.5:1314
+msgid "Standard foreground color"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1585
+#, no-wrap
+msgid "B<Color of quoted lines (col_quote)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1588 ../tin.5:1317
+msgid "Color of quoted lines"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1588
+#, no-wrap
+msgid "B<Color of twice quoted line (col_quote2)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1591 ../tin.5:1320
+msgid "Color of twice quoted lines"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1591
+#, no-wrap
+msgid "B<Color of =E<gt>3 times quoted line (col_quote3)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1594 ../tin.5:1323
+msgid "Color of E<gt>=3 times quoted lines"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1594
+#, no-wrap
+msgid "B<Color of response counter (col_response)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1598
+msgid ""
+"Color of response counter. This is the text that says \"Response x of y\" in "
+"the article viewer."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1598
+#, no-wrap
+msgid "B<Color of signatures (col_signature)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1601 ../tin.5:1330
+msgid "Color of signatures"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1601
+#, no-wrap
+msgid "B<Color of urls highlight (col_urls)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1604 ../tin.5:1333
+msgid "Color of urls highlight"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1604
+#, no-wrap
+msgid "B<Color of verbatim blocks (col_verbatim)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1607 ../tin.5:1336
+msgid "Color of verbatim blocks"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1607
+#, no-wrap
+msgid "B<Color of article subject lines (col_subject)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1610 ../tin.5:1339
+msgid "Color of article subject"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1610
+#, no-wrap
+msgid "B<Color of text lines (col_text)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1613 ../tin.5:1342
+msgid "Color of text-lines"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1613
+#, no-wrap
+msgid "B<Color of help/mail sign (col_title)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1616 ../tin.5:1345
+msgid "Color of help/mail sign"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1616
+#, no-wrap
+msgid "B<Which actions require confirmation (confirm_choice)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1619
+msgid "Ask for manual confirmation to protect the user."
+msgstr ""
+
+# type: IP
+#: ../tin.1:1620 ../tin.1:1626 ../tin.1:1630
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#.  TODO: check if all affected commands are marked [after confirmation]
+# type: Plain text
+#: ../tin.1:1626
+msgid ""
+"B<commands> Ask for confirmation before executing certain dangerous commands "
+"(e.g., B<Catchup> ('B<c>')). Commands that this affects are marked in this "
+"manual with '[after confirmation]'. Default is commands & quit."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1630
+msgid ""
+"B<quit> You'll be asked to confirm that you wish to exit B<tin> when you use "
+"the B<Quit> ('B<q>') command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1634
+msgid ""
+"B<select> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1635
+#, no-wrap
+msgid "B<Format string for display of dates (date_format)>"
+msgstr ""
+
+#
+#.  most of these default_* settings are not available from the menu
+#.  as they are intended for internal use only.
+# type: Plain text
+#: ../tin.1:1647
+msgid ""
+"Format string B<tin> uses for date representation. A description of the "
+"different format options can be found at B<strftime>(3).  B<tin> uses "
+"B<strftime>(3)  when available and supports most format options in his "
+"fallback code.  Default is \"%a, %d %b %Y %H:%M:%S\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1647
+#, no-wrap
+msgid "B<(default_art_search)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1649
+#, no-wrap
+msgid "B<(default_author_search)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1651
+#, no-wrap
+msgid "B<(default_config_search)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1654 ../tin.5:1384
+msgid "The last article/author/config option that was searched for."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1654
+#, no-wrap
+msgid "B<(default_filter_days)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1657 ../tin.5:1387
+msgid "Default is 28."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1657
+#, no-wrap
+msgid "B<(default_filter_kill_case)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1661
+msgid ""
+"Default for quick (1 key) kill filter case.  ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1661
+#, no-wrap
+msgid "B<(default_filter_kill_expire)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1666
+msgid ""
+"Default for quick (1 key) kill filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1666
+#, no-wrap
+msgid "B<(default_filter_kill_global)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1670
+msgid ""
+"Default for quick (1 key) kill filter global.  ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1670
+#, no-wrap
+msgid "B<(default_filter_kill_header)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1673 ../tin.5:1402
+msgid "Default for quick (1 key) kill filter header."
+msgstr ""
+
+# type: IP
+#: ../tin.1:1674 ../tin.1:1708 ../tin.1:1839 ../tin.1:2009 ../tin.1:2052 ../tin.1:2164 ../tin.1:2190 ../tin.1:2241 ../tin.1:2271 ../tin.1:2342 ../tin.1:2370 ../tin.1:2390 ../tin.1:2478 ../tin.5:1555 ../tin.5:1744 ../tin.5:1793 ../tin.5:1924 ../tin.5:1950 ../tin.5:2003 ../tin.5:2032 ../tin.5:2113 ../tin.5:2133 ../tin.5:2229
+#, no-wrap
+msgid "0"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1676 ../tin.1:1710
+#, no-wrap
+msgid " ''Subject:'' (case sensitive)\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1676 ../tin.1:1710 ../tin.1:1845 ../tin.1:2011 ../tin.1:2054 ../tin.1:2166 ../tin.1:2192 ../tin.1:2243 ../tin.1:2273 ../tin.1:2344 ../tin.1:2372 ../tin.1:2392 ../tin.1:2480 ../tin.5:1562 ../tin.5:1746 ../tin.5:1795 ../tin.5:1844 ../tin.5:1926 ../tin.5:1952 ../tin.5:2005 ../tin.5:2034 ../tin.5:2115 ../tin.5:2135 ../tin.5:2231
+#, no-wrap
+msgid "1"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1678 ../tin.1:1712
+#, no-wrap
+msgid " ''Subject:'' (ignore case)\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1678 ../tin.1:1712 ../tin.1:1850 ../tin.1:2013 ../tin.1:2058 ../tin.1:2169 ../tin.1:2196 ../tin.1:2245 ../tin.1:2276 ../tin.1:2346 ../tin.1:2374 ../tin.1:2394 ../tin.1:2482 ../tin.5:1567 ../tin.5:1748 ../tin.5:1800 ../tin.5:1848 ../tin.5:1929 ../tin.5:1956 ../tin.5:2007 ../tin.5:2037 ../tin.5:2117 ../tin.5:2137 ../tin.5:2233
+#, no-wrap
+msgid "2"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1680 ../tin.1:1714
+#, no-wrap
+msgid " ''From:'' (case sensitive)\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1680 ../tin.1:1714 ../tin.1:2015 ../tin.1:2172 ../tin.1:2200 ../tin.1:2247 ../tin.1:2278 ../tin.1:2348 ../tin.1:2396 ../tin.5:1750 ../tin.5:1932 ../tin.5:1960 ../tin.5:2009 ../tin.5:2039 ../tin.5:2139
+#, no-wrap
+msgid "3"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1682 ../tin.1:1716
+#, no-wrap
+msgid " ''From:'' (ignore case)\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1682 ../tin.1:1716 ../tin.1:2017 ../tin.1:2249 ../tin.1:2280 ../tin.1:2351 ../tin.1:2398 ../tin.5:1752 ../tin.5:1854 ../tin.5:2011 ../tin.5:2041 ../tin.5:2141
+#, no-wrap
+msgid "4"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1684 ../tin.1:1718
+#, no-wrap
+msgid " ''Message-ID:'' & full ''References:'' line\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1684 ../tin.1:1718 ../tin.1:2251 ../tin.1:2353 ../tin.1:2401 ../tin.5:2013 ../tin.5:2144
+#, no-wrap
+msgid "5"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1686 ../tin.1:1720
+#, no-wrap
+msgid " ''Message-ID:'' & last ''References:'' entry only\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1686 ../tin.1:1720 ../tin.1:2253 ../tin.1:2403 ../tin.5:2015 ../tin.5:2146
+#, no-wrap
+msgid "6"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1688 ../tin.1:1722
+#, no-wrap
+msgid " ''Message-ID:'' entry only\n"
+msgstr ""
+
+# type: IP
+#: ../tin.1:1688 ../tin.1:1722 ../tin.1:2256 ../tin.1:2405 ../tin.5:2018 ../tin.5:2148
+#, no-wrap
+msgid "7"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1690 ../tin.1:1724
+#, no-wrap
+msgid " ''Lines:''\n"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1691
+#, no-wrap
+msgid "B<(default_filter_select_case)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1695 ../tin.5:1419
+msgid ""
+"Default for quick (1 key) auto-selection filter case. ON=filter case "
+"sensitive, OFF=ignore case. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1695
+#, no-wrap
+msgid "B<(default_filter_select_expire)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1700
+msgid ""
+"Default for quick (1 key) auto-selection filter expire.  ON = limit to "
+"B<default_filter_days>, OFF = don't ever expire.  Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1700
+#, no-wrap
+msgid "B<(default_filter_select_global)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1704
+msgid ""
+"Default for quick (1 key) auto-selection filter global.  ON=apply to all "
+"groups OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1704
+#, no-wrap
+msgid "B<(default_filter_select_header)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1707 ../tin.5:1430
+msgid "Default for quick (1 key) auto-selection filter header."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1725
+#, no-wrap
+msgid "B<(default_goto_group)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1727
+#, no-wrap
+msgid "B<(default_group_search)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1729
+#, no-wrap
+msgid "B<(default_mail_address)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1731
+#, no-wrap
+msgid "B<(default_move_group)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1733
+#, no-wrap
+msgid "B<(default_pattern)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1735
+#, no-wrap
+msgid "B<(default_pipe_command)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1737
+#, no-wrap
+msgid "B<(default_post_newsgroups)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1739
+#, no-wrap
+msgid "B<(default_post_subject)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1741
+#, no-wrap
+msgid "B<(default_range_group)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1743
+#, no-wrap
+msgid "B<(default_range_select)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1745
+#, no-wrap
+msgid "B<(default_range_thread)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1747
+#, no-wrap
+msgid "B<(default_repost_group)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1749
+#, no-wrap
+msgid "B<(default_save_file)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1751
+#, no-wrap
+msgid "B<(default_save_mode)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1753
+#, no-wrap
+msgid "B<(default_select_pattern)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1755
+#, no-wrap
+msgid "B<(default_shell_command)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1757
+#, no-wrap
+msgid "B<(default_subject_search)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:1759
+#, no-wrap
+msgid "B<Draw -E<gt> instead of highlighted bar (draw_arrow)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1763
+msgid ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1763
+#, no-wrap
+msgid "B<Invocation of your editor (editor_format)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1767
+msgid ""
+"The format string used to create the editor start command with parameters.  "
+"Default is \"%E +%N %F\" (i.e., /bin/vi +7 .article)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1767
+#, no-wrap
+msgid "B<Force redraw after certain commands (force_screen_redraw)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1771 ../tin.5:1490
+msgid ""
+"Specifies whether a screen redraw should always be done after certain "
+"external commands. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1771
+#, no-wrap
+msgid "B<Number of articles to get (getart_limit)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1777
+msgid ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin> will start "
+"fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1777
+#, no-wrap
+msgid "B<Catchup group using left key (group_catchup_on_exit)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1780 ../tin.5:1508
+msgid "If ON catchup group when leaving with the left arrow key. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1780
+#, no-wrap
+msgid "B<Go to the next unread article with (goto_next_unread)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1788 ../tin.5:1505
+msgid ""
+"Which keys B<tin> should accept to jump to the next unread article.  "
+"Possible is any combination of B<PageDown> and B<PageNextUnread>.  When "
+"B<PageDown> is set B<tin> jumps to the next article at the end of the "
+"current one. When B<PageNextUnread> is set B<tin> jumps immediately to the "
+"next article when B<PageNextUnread> ('B<E<lt>TABE<gt>>')  is "
+"pressed. Default is PageNextUnread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1788
+#, no-wrap
+msgid "B<Max. length of group names shown (groupname_max_length)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1792 ../tin.5:1512
+msgid ""
+"Maximum length of the names of newsgroups to be displayed so that more of "
+"the newsgroup description can be displayed. Default is 32."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1792
+#, no-wrap
+msgid "B<Display uue data as an attachment (hide_uue)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1801
+msgid ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment). If set to 'Hide all' "
+"then any line that looks like uuencoded data will be folded into a tag "
+"line.  This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer. Default is 'No'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1801
+#, no-wrap
+msgid "B<External inews (inews_prog)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1808
+msgid ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is --internal (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1808
+#, no-wrap
+msgid "B<(info_in_last_line)>"
+msgstr ""
+
+#.  this is missing from the Menu
+# type: Plain text
+#: ../tin.1:1815
+msgid ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>')  toggles "
+"setting. This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1815
+#, no-wrap
+msgid "B<Use interactive mail reader (interactive_mailer)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1822
+msgid ""
+"Interactive mailreader: if greater than 0 your mailreader will be invoked "
+"earlier for reply so you can use more of its features (e.g. MIME, pgp, "
+"...). 1 means include headers, 2 means don't include headers (old "
+"use_mailreader_i=ON option). 0 turns off usage. This option has to suit "
+"B<mailer_format>. Default is 0."
+msgstr ""
+
+#.  TODO: fix menu description
+#.        mono_mark* currently do allow "Reverse video" even if
+#.        inverse_okay=FALSE
+# type: TP
+#: ../tin.1:1822
+#, no-wrap
+msgid "B<Use inverse video for page headers (inverse_okay)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1829 ../tin.5:1545
+msgid ""
+"If ON use inverse video for page headers and URL highlighting.  Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1829
+#, no-wrap
+msgid "B<Keep failed arts in ~/dead.articles (keep_dead_articles)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1834 ../tin.5:1550
+msgid ""
+"If ON keep all failed postings in I<${TIN_HOMEDIR:-\"$HOME\"}/dead.articles> "
+"besides keeping the last failed posting in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/dead.article>. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1834
+#, no-wrap
+msgid "B<Filter which articles (kill_level)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1838
+msgid ""
+"This option controls the processing and display of articles that are "
+"killed.  There are 3 options:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1845
+msgid ""
+"B<Kill only unread arts> is the 'traditional' behavior of B<tin>. Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1850 ../tin.5:1567
+msgid ""
+"B<Kill all arts & show with K> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles are threaded as normal but they will be marked with "
+"B<art_marked_killed>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1854 ../tin.5:1571
+msgid ""
+"B<Kill all arts and never show> will process all articles in the group and "
+"therefore there is a processing overhead when using this option. Killed "
+"articles simply does not get displayed at all."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1856
+msgid "Default is 0 (B<Kill only unread arts>)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1856
+#, no-wrap
+msgid "B<Use 8bit characters in mail headers (mail_8bit_header)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1862 ../tin.5:1578
+msgid ""
+"Allows 8bit characters unencoded in the header of mail message. Default is "
+"OFF. Turning it ON is effective only if B<mail_mime_encoding> is also set to "
+"8bit. Leaving it OFF is safe for most users and compliant to Internet Mail "
+"Standard (B<RFC5322> and B<RFC2047>). Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1862
+#, no-wrap
+msgid "B<Mail address (mail_address)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1868 ../tin.5:1584
+msgid ""
+"User's mail address (and full name), if not username@host. This is used when "
+"creating articles, sending mail and when B<pgp>(1)  signing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1868
+#, no-wrap
+msgid "B<MIME encoding in mail messages (mail_mime_encoding)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1872 ../tin.5:1588
+msgid ""
+"MIME encoding of the body in mail message, if necessary (8bit, base64, "
+"quoted-printable, 7bit). Default is quoted-printable."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1872
+#, no-wrap
+msgid "B<Quote line when mailing (mail_quote_format)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1877 ../tin.5:1593
+msgid ""
+"Format of quote line when replying (via mail) to an article (%A=Address, "
+"%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, "
+"%C=Firstname, %I=Initials). Default is \"In article %M you wrote:\""
+msgstr ""
+
+# type: TP
+#: ../tin.1:1877
+#, no-wrap
+msgid "B<Format of the mailbox (mailbox_format)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1885
+msgid ""
+"Select one of the following mailbox-formats: MBOXO (default, except for "
+"SCO), MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on "
+"MBOXO and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1885
+#, no-wrap
+msgid "B<Mail directory (maildir)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1894
+msgid ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  "
+"format. This feature is mainly for use with the B<elm>(1)  mail program. It "
+"allows the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to.  Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1894
+#, no-wrap
+msgid "B<Invocation of your mail command (mailer_format)>"
+msgstr ""
+
+#.  TODO: document %S, %T, %M, %F, %U ...
+# type: Plain text
+#: ../tin.1:1903
+msgid ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %F' "
+"(e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows other "
+"mailers with different command-line parameters to be used such as 'elm -s "
+"\"%S\" \"%T\" E<lt> \"%F\"' (e.g., elm -s \"subject\" \"iain\" E<lt> "
+".article) or 'sendmail -oi -oem -t E<lt> %F' (e.g. sendmail -oi -oem -t "
+"E<lt> .article)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1903
+#, no-wrap
+msgid "B<'Mark as (un)read' ignores tags (mark_ignore_tags)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1911 ../tin.5:1647
+msgid ""
+"When this is ON, the B<GroupMarkThdRead> ('B<K>'), B<ThreadMarkArtRead> "
+"('B<K>'), B<MarkThdUnread> ('B<Z>') at Group level and B<MarkArtUnread> "
+"('B<z>') at Thread level functions mark just the current article or thread, "
+"ignoring other tagged, (un)read articles. When OFF, the same function "
+"presents a menu with choices of the current thread or article, all tagged, "
+"unread articles, or nothing."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1911
+#, no-wrap
+msgid "B<Mark saved articles/threads as read (mark_saved_read)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1914 ../tin.5:1639
+msgid "If ON mark articles that are saved as read. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1914
+#, no-wrap
+msgid "B<Viewer program for MIME articles (metamail_prog)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1926
+msgid ""
+"Path, name and options of external B<metamail>(1)  program used to view "
+"non-textual parts of articles.  To use the built-in viewer, set to "
+"--internal. This is the default value when B<metamail>(1)  is not "
+"installed. Leave it blank if you don't want any automatic viewing of "
+"non-textual attachments. The 'V' command can always be used to manually view "
+"any attachments.  See also B<ask_for_metamail>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1926
+#, no-wrap
+msgid "B<MM_CHARSET (mm_charset)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1939
+msgid ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1939
+#, no-wrap
+msgid "B<MM_NETWORK_CHARSET (mm_network_charset)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1950
+msgid ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead. B<mm_network_charset> is limited to one of the "
+"following charsets:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1953 ../tin.5:1686
+msgid ""
+"US-ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-{R,U,RU} "
+"EUC-{CN,JP,KR,TW}, ISO-2022-{CN,CN-EXT,JP,JP-1,JP-2}, Big5, UTF-8"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1959 ../tin.5:1692
+msgid ""
+"Not all values might work on your system, see B<iconv_open>(3)  for more "
+"details. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1959
+#, no-wrap
+msgid "B<Attribute of highlighting with _dash_ (mono_markdash)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1964
+msgid ""
+"Character attribute of words emphasized like _this_. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1964
+#, no-wrap
+msgid "B<Attribute of highlighting with /slash/ (mono_markslash)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1969
+msgid ""
+"Character attribute of words emphasized like /this/. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1969
+#, no-wrap
+msgid "B<Attribute of highlighting with *stars* (mono_markstar)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1974
+msgid ""
+"Character attribute of words emphasized like *this*. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1974
+#, no-wrap
+msgid "B<Attribute of highlighting with -stroke- (mono_markstroke)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1979
+msgid ""
+"Character attribute of words emphasized like -this-. It depends on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1979
+#, no-wrap
+msgid "B<(newnews)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1983
+msgid ""
+"These are internal timers used by B<tin> to keep track of new newsgroups.  "
+"Do not change them unless you understand what they are for."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1983
+#, no-wrap
+msgid "B<Display these header fields (or *) (news_headers_to_display)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1990
+msgid ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used.  If "
+"you enter 'X-' as the value, you will see all headers beginning with 'X-' "
+"(like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1990
+#, no-wrap
+msgid "B<Do not display these header fields (news_headers_to_not_display)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:1999
+msgid ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought X- headers were A Good "
+"Thing(tm), but thought Alan and Pape were miscreants... well then you would "
+"do something like this: I<news_headers_to_display=X-> "
+"I<news_headers_to_not_display=X-Alan X-Pape>.  Not defining anything turns "
+"off this option."
+msgstr ""
+
+# type: TP
+#: ../tin.1:1999
+#, no-wrap
+msgid "B<Quote line when following up (news_quote_format)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2004 ../tin.5:1739
+msgid ""
+"Format of quote line when posting/following up an article (%A=Address, "
+"%D=Date, %F=Fullname+Address, %G=Groupname, %M=Message-ID, %N=Fullname, "
+"%C=Firstname, %I=Initials). Default is \"%F wrote:\"."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2004
+#, no-wrap
+msgid "B<Unicode normalization form (normalization_form)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2008
+msgid ""
+"The normalization form B<tin> should use to normalize unicode input.  The "
+"possible values are:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2011 ../tin.5:1746
+msgid "B<None>: no normalization"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2013 ../tin.5:1748
+msgid "B<NFKC>: Compatibility Decomposition, followed by Canonical Composition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2015 ../tin.5:1750
+msgid "B<NFKD>: Compatibility Decomposition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2017 ../tin.5:1752
+msgid "B<NFC>: Canonical Decomposition, followed by Canonical Composition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2019 ../tin.5:1754
+msgid "B<NFD>: Canonical Decomposition"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2022
+msgid ""
+"Some normalization modes are only available if they are supported by the "
+"library B<tin> uses to do the normalization. Default is NFKC."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2022
+#, no-wrap
+msgid "B<Go to first unread article in group (pos_first_unread)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2026
+msgid ""
+"If ON put cursor at first unread article in group otherwise at last "
+"article. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2026
+#, no-wrap
+msgid "B<Use 8bit characters in news headers (post_8bit_header)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2037 ../tin.5:1774
+msgid ""
+"Allows 8bit characters unencoded in the header of a news article, if set "
+"this also disables the generation of MIME-headers when they are usually "
+"required. Default is OFF. Only enacted if B<post_mime_encoding> is also set "
+"to 8bit. In a number of local hierarchies where 8bit characters are used, "
+"using unencoded (raw)  8bit characters in header is acceptable and sometimes "
+"even recommended so that you need to check the convention adopted in the "
+"local hierarchy of your interest to determine what to do with this and "
+"B<post_mime_encoding>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2037
+#, no-wrap
+msgid "B<MIME encoding in news messages (post_mime_encoding)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2042
+msgid ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding. base64 "
+"and quoted-printable are usually undesired on usenet."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2042
+#, no-wrap
+msgid "B<View post-processed files (post_process_view)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2047
+msgid ""
+"If ON, then B<tin> will start an appropriate viewer program to display any "
+"files that were post processed and uudecoded. The program is determined "
+"using the mailcap file. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2047
+#, no-wrap
+msgid "B<Post process saved articles (post_process_type)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2051
+msgid ""
+"This specifies whether to perform post processing on saved articles.  The "
+"following values are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2054 ../tin.5:1795
+msgid "B<No> (default), no post processing is done."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2058
+msgid "B<Shell archives>, unpacking of multi-part B<shar>(1)  files only."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2060 ../tin.5:1802
+msgid "B<Yes>, binary attachments and data will be decoded and saved."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2061
+#, no-wrap
+msgid "B<Filename to be used for storing posted articles (posted_articles_file)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2067 ../tin.5:1809
+msgid ""
+"Keep posted articles in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/>B<posted_articles_file>.  If no filename "
+"is set then postings will not be saved.  Default is 'posted'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2067
+#, no-wrap
+msgid "B<Print all headers when printing (print_header)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2071 ../tin.5:1813
+msgid ""
+"If ON, then the full article header is sent to the printer. Otherwise only "
+"the ''Subject:'' and ''From:'' fields are output. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2071
+#, no-wrap
+msgid "B<Printer program with options (printer)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2080
+msgid ""
+"The printer program with options that is to be used to print articles.  The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV "
+"machines. Printing from B<tin> may have been disabled by the System "
+"Administrator."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2080
+#, no-wrap
+msgid "B<Process only unread articles (process_only_unread)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2084 ../tin.5:1827
+msgid ""
+"If ON only save/print/pipe/mail unread articles (tagged articles excepted).  "
+"Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2084
+#, no-wrap
+msgid "B<Show empty Followup-To in editor (prompt_followupto)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2087
+msgid ""
+"If ON show empty ''Followup-To:'' header when editing an article. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2087
+#, no-wrap
+msgid "B<Characters used as quote-marks (quote_chars)>"
+msgstr ""
+
+#.  TODO: document %s
+# type: Plain text
+#: ../tin.1:2092 ../tin.5:1837
+msgid ""
+"The character used in quoting included text to article followups and mail "
+"replies. The '_' character represents a blank character and is replaced with "
+"' ' when read. Default is 'E<gt>_'."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2092
+#, no-wrap
+msgid "B<Quoting behavior (quote_style)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2099
+msgid ""
+"How articles should be quoted when following up or replying to them. There "
+"are a number of things that can be done: empty lines can be quoted, "
+"signatures can be quoted and quote_chars can be compressed when quoting "
+"multiple times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). The default is to compress quotes, and to quote empty "
+"lines."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2103
+msgid ""
+"When you are viewing an article in raw mode ('B<^H>'), and follow up or "
+"reply to it, the signature will be quoted even if it would otherwise not "
+"be.  If B<show_signatures> is off, then the signature will never be quoted."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2103
+#, no-wrap
+msgid "B<Regex used to show quoted lines (quote_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2108
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2108
+#, no-wrap
+msgid "B<Regex used to show twice quoted l. (quote_regex2)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2113
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2113
+#, no-wrap
+msgid "B<Regex used to show E<gt>= 3 times q.l. (quote_regex3)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2118
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2118
+#, no-wrap
+msgid "B<Article recentness time limit (recent_time)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2122 ../tin.5:1882
+msgid ""
+"If set to 0, this feature is deactivated, otherwise it means the number of "
+"days. Default is 2."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2122
+#, no-wrap
+msgid "B<Render BiDi (render_bidi)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2126 ../tin.5:1886
+msgid ""
+"If ON B<tin> does the rendering of bi-directional text. If OFF B<tin> leaves "
+"the rendering of bi-directional text to the terminal. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2126
+#, no-wrap
+msgid "B<Interval in seconds to reread active (reread_active_file_secs)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2131 ../tin.5:1891
+msgid ""
+"The news I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file is "
+"reread at regular intervals to show if any new news has arrived. Default is "
+"1200. Setting this to 0 will disable this feature."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2131
+#, no-wrap
+msgid "B<Directory to save arts/threads in (savedir)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2135 ../tin.5:1895
+msgid ""
+"Directory where articles/threads are saved. Default is "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/News>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2135
+#, no-wrap
+msgid "B<Score limit (kill) (score_limit_kill)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2139 ../tin.5:1899
+msgid ""
+"If the score of an article is below or equal this value the article gets "
+"marked as killed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2139
+#, no-wrap
+msgid "B<Score limit (select) (score_limit_select)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2143 ../tin.5:1903
+msgid ""
+"If the score of an article is above or equal this value the article gets "
+"marked as hot."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2143
+#, no-wrap
+msgid "B<Default score to kill articles (score_kill)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2147 ../tin.5:1907
+msgid ""
+"Score of an article which should be killed, this must be E<lt>= "
+"B<score_limit_kill>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2147
+#, no-wrap
+msgid "B<Default score to select articles (score_select)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2151 ../tin.5:1911
+msgid ""
+"Score of an article which should be marked hot, this must be E<gt>= "
+"B<score_limit_select>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2151
+#, no-wrap
+msgid "B<Number of lines to scroll in pager (scroll_lines)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2159
+msgid ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional tin page-by-page scrolling. Set to -1 to get page-by-page "
+"scrolling where the top/bottom line is carried over onto the next page.  "
+"This setting supersedes show_last_line_prev_page=ON. Set to -2 to get "
+"half-page scrolling. This setting supersedes full_page_scroll=OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2159
+#, no-wrap
+msgid "B<In group menu, show author by (show_author)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2163 ../tin.5:1923
+msgid ""
+"Which information about the author should be shown. Default is 2, authors "
+"full name."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2166 ../tin.5:1926
+msgid "B<None>, only the ''Subject:'' line will be displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2169 ../tin.5:1929
+msgid ""
+"B<Address>, ''Subject:'' line & the address part of the ''From:'' line are "
+"displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2172 ../tin.5:1932
+msgid ""
+"B<Full Name>, ''Subject:'' line & the authors full name part of the "
+"\\&''From:'' line are displayed (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2175 ../tin.5:1935
+msgid ""
+"B<Address and Name>, ''Subject:'' line & all of the ''From:'' line are "
+"displayed."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2176
+#, no-wrap
+msgid "B<Show description of each newsgroup (show_description)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2185
+msgid ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups> file and if supported (requires "
+"B<tin> to be build with mh-mail-handling support) from "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups> for mailgroups. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2185
+#, no-wrap
+msgid "B<Show lines/score in listings (show_info)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2189 ../tin.5:1949
+msgid ""
+"Which information about the thread or article should be shown. Default is 1, "
+"show only the line count."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2192 ../tin.5:1952
+msgid "B<None>, no information will be displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2196
+msgid ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread) article will be "
+"displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2200 ../tin.5:1960
+msgid ""
+"B<Score>, in article listing the score of an article will be displayed and "
+"in thread listing the score of the thread will be displayed - see also "
+"B<thread_score>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2202 ../tin.5:1962
+msgid "B<Lines & Score>, display line count and score."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2203
+#, no-wrap
+msgid "B<Show only unread articles (show_only_unread_arts)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2207
+msgid ""
+"If ON show only new/unread articles otherwise show all articles.  Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2207
+#, no-wrap
+msgid "B<Show only groups with unread arts (show_only_unread_groups)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2211 ../tin.5:1971
+msgid ""
+"If ON show only subscribed groups that contain unread articles. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2211
+#, no-wrap
+msgid "B<Display signatures (show_signatures)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2215
+msgid "If OFF don't show signatures when displaying articles.  Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2215
+#, no-wrap
+msgid "B<Prepend signature with '\\en-- \\en' (sigdashes)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2218 ../tin.5:1977
+msgid "If ON prepend the signature with sigdashes. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2218
+#, no-wrap
+msgid "B<Create signature from path/command (sigfile)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2228
+msgid ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified "
+"directory. If the path starts with a ! the program the path points to will "
+"be executed to generate a signature. B<tin> will pass the name of the "
+"current newsgroup as argument to the program. --none will suppress any "
+"signature.  Default is I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2228
+#, no-wrap
+msgid "B<Add signature when reposting (signature_repost)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2231 ../tin.5:1991
+msgid "If ON add signature to reposted articles. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2231
+#, no-wrap
+msgid "B<Regex used to highlight /slashes/ (slashes_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2236
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2236
+#, no-wrap
+msgid "B<Sort articles by (sort_article_type)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2240 ../tin.5:2002
+msgid ""
+"This specifies how articles should be sorted. Sort by ascending Date (6) is "
+"the default. The following sort types are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2243 ../tin.5:2005
+msgid "B<Nothing>, don't sort articles."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2245 ../tin.5:2007
+msgid "B<Subject: (descending)>, sort articles by ''Subject:'' field descending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2247 ../tin.5:2009
+msgid "B<Subject: (ascending)>, sort articles by ''Subject:'' field ascending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2249 ../tin.5:2011
+msgid "B<From: (descending)>, sort articles by ''From:'' field descending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2251 ../tin.5:2013
+msgid "B<From: (ascending)>, sort articles by ''From:'' field ascending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2253 ../tin.5:2015
+msgid "B<Date: (descending)>, sort articles by ''Date:'' field descending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2256 ../tin.5:2018
+msgid "B<Date: (ascending)>, sort articles by ''Date:'' field ascending (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2258 ../tin.5:2020
+msgid "B<Score (descending)>, sort articles by filtering score descending."
+msgstr ""
+
+# type: IP
+#: ../tin.1:2258 ../tin.5:2020
+#, no-wrap
+msgid "8"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2260 ../tin.5:2022
+msgid "B<Score (ascending)>, sort articles by filtering score ascending."
+msgstr ""
+
+# type: IP
+#: ../tin.1:2260 ../tin.5:2022
+#, no-wrap
+msgid "9"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2262 ../tin.5:2024
+msgid "B<Lines: (descending)>, sort articles by ''Lines:'' field descending."
+msgstr ""
+
+# type: IP
+#: ../tin.1:2262 ../tin.5:2024
+#, no-wrap
+msgid "10"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2264 ../tin.5:2026
+msgid "B<Lines: (ascending)>, sort articles by ''Lines:'' field ascending."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2265
+#, no-wrap
+msgid "B<Sort threads by (sort_threads_type)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2270 ../tin.5:2031
+msgid ""
+"This specifies how threads will be sorted. Sort by descending Score (1) is "
+"the default. The following sort types are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2273 ../tin.5:2034
+msgid "B<Nothing>, don't sort threads."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2276 ../tin.5:2037
+msgid "B<Score (descending)>, sort threads by filtering score descending (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2278 ../tin.5:2039
+msgid "B<Score (ascending)>, sort threads by filtering score ascending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2280 ../tin.5:2041
+msgid ""
+"B<Last posting date (descending)>, sort threads by date of last posting "
+"descending."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2282 ../tin.5:2043
+msgid ""
+"B<Last posting date (ascending)>, sort threads by date of last posting "
+"ascending."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2283
+#, no-wrap
+msgid "B<Spamtrap warning address parts (spamtrap_warning_addresses)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2288
+msgid ""
+"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 "
+"these strings. The matching is case-insensitive. Example:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2290
+msgid "I<spam,delete,remove>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2290
+#, no-wrap
+msgid "B<Regex used to highlight *stars* (stars_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2295
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2295
+#, no-wrap
+msgid "B<Start editor with line offset (start_editor_offset)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2300 ../tin.5:2061
+msgid ""
+"Set ON if the editor used for posting, follow-ups and bug reports has the "
+"capability of starting and positioning the cursor at a specified line within "
+"a file. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2300
+#, no-wrap
+msgid "B<Strip blanks of end of lines (strip_blanks)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2306 ../tin.5:2065
+msgid ""
+"Strips the blanks from the end of each line therefore speeding up the "
+"display when reading on a slow terminal or via modem. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2306
+#, no-wrap
+msgid "B<Remove bogus groups from newsrc (strip_bogus)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2315 ../tin.5:2073
+msgid ""
+"Bogus groups are groups that are present in your "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file that no longer exist on the news "
+"server. There are 3 options. 0 means do nothing & always keep bogus groups.  "
+"1 means bogus groups will be permanently removed. 2 means that bogus groups "
+"will appear on the Group Selection Menu, prefixed with a 'D'. This allows "
+"you to unsubscribe from them as and when you wish. Default is 0 (Always "
+"Keep)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2315
+#, no-wrap
+msgid "B<No unsubscribed groups in newsrc (strip_newsrc)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2319 ../tin.5:2077
+msgid ""
+"If ON, then unsubscribed groups will be permanently removed from your "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc> file. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2319
+#, no-wrap
+msgid "B<Regex used to highlight -strokes- (strokes_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2324
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2324
+#, no-wrap
+msgid "B<Wrap around threads on next unread (wrap_on_next_unread)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2329 ../tin.5:2260
+msgid ""
+"If enabled a search for the next unread article will wrap around all "
+"articles to find also previous unread articles. If disabled the search stops "
+"at the end of the thread list. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2329
+#, no-wrap
+msgid "B<Display \"a as Umlaut-a (tex2iso_conv)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2333
+msgid ""
+"If ON, show \"a as Umlaut-a, etc. Default is OFF. This behavior can also be "
+"toggled in the article viewer via B<PageToggleTex2iso> ('B<\">')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2333
+#, no-wrap
+msgid "B<Thread articles by (thread_articles)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2341
+msgid ""
+"Defines which threading method to use. It's possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_arts> to 0 - 4 in the file "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>. (See also \"GROUP "
+"ATTRIBUTES\".)  The default is Both Subject and References.  The choices "
+"are:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2344
+msgid "B<None>, don't thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2346
+msgid "B<Subject>, thread on ''Subject:'' only."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2348
+msgid "B<References>, thread on ''References:'' only."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2351
+msgid ""
+"B<Both Subject and References>, thread on ''References:'' then "
+"\\&''Subject:'' (default)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2353
+msgid "B<Multipart Subject>, thread multipart articles on ''Subject:''."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2356
+msgid ""
+"B<Percentage Match>, thread base upon a partial character match on "
+"\\&''Subject:''."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2357
+#, no-wrap
+msgid "B<Catchup thread by using left key (thread_catchup_on_exit)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2361 ../tin.5:2108
+msgid ""
+"If ON catchup group/thread when leaving with the left arrow key. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2361
+#, no-wrap
+msgid "B<Matchingness of a thread (thread_perc)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2365
+msgid ""
+"How closely the subjects must match for two threads to be considered part of "
+"the same thread. This is a percentage and the default if 75%."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2365
+#, no-wrap
+msgid "B<Score of a thread (thread_score)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2369 ../tin.5:2112
+msgid ""
+"How the total score of a thread is computed. Default is 0, the maximum score "
+"in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2372 ../tin.5:2115
+msgid "B<Max>, the maximum score in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2374 ../tin.5:2117
+msgid "B<Sum>, the sum of all scores in this thread."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2376 ../tin.5:2119
+msgid "B<Average>, the average score in this thread."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2377
+#, no-wrap
+msgid "B<Transliteration (translit)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2385 ../tin.5:2128
+msgid ""
+"If ON append //TRANSLIT to the first argument of B<iconv_open>(3)  to enable "
+"transliteration. This means that when a character cannot be represented in "
+"the target character set, it can be approximated through one or several "
+"similarly looking characters. On systems where this extension doesn't exist, "
+"this option is disabled. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2385
+#, no-wrap
+msgid "B<How to treat blank lines (trim_article_body)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2389 ../tin.5:2132
+msgid ""
+"Allows you to select how B<tin> treats blank lines in article bodies.  "
+"Default is 0. This option does not affect lines within verbatim blocks."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2392 ../tin.5:2135
+msgid "B<Don't trim article body>, do nothing."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2394 ../tin.5:2137
+msgid "B<Skip leading blank lines>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2396 ../tin.5:2139
+msgid "B<Skip trailing blank lines>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2398 ../tin.5:2141
+msgid ""
+"B<Skip leading and trailing blank l.>, skip leading and trailing blank "
+"lines."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2401 ../tin.5:2144
+msgid ""
+"B<Compact multiple between text>, replace multiple blank lines between "
+"textblocks with one blank line."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2403 ../tin.5:2146
+msgid "B<Compact multiple and skip leading>, 4 + 1"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2405 ../tin.5:2148
+msgid "B<Compact multiple and skip trailing>, 4 + 2"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2407 ../tin.5:2150
+msgid "B<Compact mltpl., skip lead. & trai.>, 4 + 3"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2408
+#, no-wrap
+msgid "B<Regex used to highlight _underline_ (underscores_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2413
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<underscores_regex> is blank, then B<tin> uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2413
+#, no-wrap
+msgid "B<Remove ~/.article after posting (unlink_article)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2416
+msgid "If ON remove I<~/.article> after posting. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2416
+#, no-wrap
+msgid "B<Program that opens URL's (url_handler)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2421
+msgid ""
+"The program that will be run when launching URL's in the article viewer "
+"using B<PageViewUrl> ('B<U>'). The actual URL will be appended to this.  "
+"Default is B<url_handler.pl %s>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2421
+#, no-wrap
+msgid "B<URL highlighting in message body (url_highlight)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2424 ../tin.5:2170
+msgid "Enable highlighting URLs in message body. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2424
+#, no-wrap
+msgid "B<Use ANSI color (use_color)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2427
+msgid "If enabled B<tin> uses ANSI-colors. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2427
+#, no-wrap
+msgid "B<Use scroll keys on keypad (use_keypad)>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2430
+#, no-wrap
+msgid "B<Use mouse in xterm (use_mouse)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2436 ../tin.5:2184
+msgid ""
+"Allows the mouse button support in a B<xterm>(1x)  to be enabled/disabled.  "
+"Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2436
+#, no-wrap
+msgid "B<Use slrnface to show ''X-Face:''s (use_slrnface)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2446
+msgid ""
+"If enabled B<tin> uses B<slrnface>(1)  to interpret the ''X-Face:'' "
+"header. For this option to have any effect, B<tin> must be running in an "
+"B<xterm>(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2446
+#, no-wrap
+msgid "B<Use UTF-8 graphics (utf8_graphics)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2450 ../tin.5:2200
+msgid ""
+"If ON use UTF-8 characters for indicator ('-E<gt>'), thread/attachment tree "
+"and ellipsis ('...'). Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2450
+#, no-wrap
+msgid "B<Regex for begin of a verbatim block (verbatim_begin_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2453
+msgid ""
+"A regular expression that tin will use to find the begin of a verbatim "
+"block."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2453
+#, no-wrap
+msgid "B<Regex for end of a verbatim block (verbatim_end_regex)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2456
+msgid "A regular expression that tin will use to find the end of a verbatim block."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2456
+#, no-wrap
+msgid "B<Detection of verbatim blocks (verbatim_handling)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2459
+msgid "If ON verbatim blocks will be detected. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2459
+#, no-wrap
+msgid "B<Wildcard matching (wildcard)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2473
+msgid ""
+"Allows you to select how B<tin> matches strings. The default is 0 and uses "
+"the wildmat notation, which is how this has traditionally been handled.  "
+"Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3)  (see also B<perlre>(1)  and B<pcrepattern>(3)).  You "
+"will probably want to update your filter file if you use this regularly.  "
+"NB: Newsgroup names will always be matched using the wildmat notation."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2473
+#, no-wrap
+msgid "B<What to display instead of mark (word_h_display_marks)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2477 ../tin.5:2228
+msgid ""
+"Should the leading and ending stars, slashes, strokes and dashes also be "
+"displayed, even when they are highlighting marks?"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2480 ../tin.5:2231
+msgid "B<no>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2482 ../tin.5:2233
+msgid "yes, B<display mark>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2484 ../tin.5:2235
+msgid "print a B<space> instead"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2485
+#, no-wrap
+msgid "B<Word highlighting in message body (word_highlight)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2493
+msgid ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colors specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2493
+#, no-wrap
+msgid "B<Page line wrap column (wrap_column)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2504 ../tin.5:2255
+msgid ""
+"Sets the column at which a displayed article body should be wrapped.  If "
+"this value is equal to 0, it defaults to the current screen width.  If this "
+"value is greater than your current screen width the part off-screen is not "
+"displayed. Thus setting this option to a large value can be used to disable "
+"wrapping. If this value is negative the wrap margin is the current screen "
+"width plus the given value (as long as the result is still positive, "
+"otherwise it will fall back to the current screen width). Default is 0, "
+"wrapping at the current screen width."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2504
+#, no-wrap
+msgid "B<Quote line when cross-posting (xpost_quote_format)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2511 ../tin.5:2265
+msgid ""
+"Format is the same as for B<news_quote_format>, this is used when answering "
+"to a crossposting to several groups with no ''Followup-To:'' set."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2511
+#, no-wrap
+msgid "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2518
+msgid ""
+"B<tin> allows certain attributes to be set on a per group basis. If it "
+"exists, the global attributes file, I<${TIN_LIBDIR:-NEWSLIBDIR}/attributes> "
+"is read. After that, the user's own attributes file "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes> is read.  The global attributes "
+"file is useful for distributing system-wide defaults to new users who have "
+"no private attributes file yet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2526
+msgid ""
+"Note that the I<scope=E<lt>grouplistE<gt>> line has to be specified before "
+"the attributes are specified for that list. All attributes are set to a "
+"reasonable default so you only have to specify the attribute that you want "
+"to change (e.g., savedir). All toggle attributes are set by specifying "
+"ON/OFF. Otherwise, these function exactly the same as their global "
+"equivalents. For more details see B<tin>(5)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2533
+msgid ""
+"Attributes can also be changed from the attributes menu which can be "
+"accessed by B<ConfigToggleAttrib> ('B<E<lt>TABE<gt>>') from the options menu "
+"or B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') from the scopes menu.  The "
+"attributes menu looks and behaves very similar to the options menu. The "
+"title shows the current scope. Attributes set in the current scope are "
+"marked with '\\+' to the left of the attributes number."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2540
+msgid ""
+"Besides the keys for moving around and changing values known from the "
+"options menu the attributes menu provides the following command: "
+"B<ConfigResetAttrib> ('B<r>') which resets an attribute to a default value."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2540
+#, no-wrap
+msgid "SCOPES MENU"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2545
+msgid ""
+"The scopes menu (accessible from the options menu with B<ConfigScopeMenu> "
+"('B<S>')) shows all scopes read from the global and local attributes file.  "
+"Scopes from the global attributes file are marked with '!' to the left of "
+"the scope number. Delete/rename/move are not possible with those scopes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2556
+msgid ""
+"In addition to the common moving keys the following commands are available: "
+"B<ScopeSelect> ('B<^J>' or 'B<E<lt>CRE<gt>>') enter the attributes menu for "
+"the current scope, B<ScopeEditAttributesFile> ('B<E>') edit the local "
+"attributes file, B<ScopeAdd> ('B<a>') add a new scope, B<ScopeDelete> "
+"('B<d>') delete the current scope, B<ScopeMove> ('B<m>') move the current "
+"scope to a new position, B<ScopeRename> ('B<r>') rename the current "
+"scope. B<ToggleHelpDisplay> ('B<H>') toggles the help mini menu at the "
+"bottom of the screen."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2556
+#, no-wrap
+msgid "FILTERING ARTICLES"
+msgstr ""
+
+#.  FIXME - add scoring description
+# type: Plain text
+#: ../tin.1:2563
+msgid ""
+"When there is a subject or an author which you are either very interested "
+"in, or find completely uninteresting, you can easily instruct B<tin> to "
+"I<auto-select> or I<auto-kill> articles that match I<rules> that you "
+"specify. This can be anything from the name of the author to the number of "
+"lines in an article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2569
+msgid ""
+"When B<tin> starts up the user's kill-file "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter> (see also B<tin>(5))  is read. Each "
+"time a newsgroup is entered the rules are applied and articles killed or "
+"selected when they meet certain criteria."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2574
+msgid ""
+"The degree to which rules are applied depend on the B<kill_level> tinrc "
+"setting. By default killed articles will only be marked read. Adjust "
+"B<kill_level> for more aggressive processing. Articles that match an "
+"auto-selection rule are marked with a ''*''."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2579
+msgid ""
+"Filtering rules can be manually entered into "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter> (but don't do this whilst running "
+"B<tin> else you will lose your changes) or by using an on-screen menu within "
+"B<tin>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2585
+msgid ""
+"The filtering capabilities of B<tin> have been significantly enhanced over "
+"previous versions to include scoring and better pattern matching. It is "
+"recommended that you read the file I<filtering> in the B<tin> documentation "
+"directory. This file can also be read online at "
+"E<lt>http://www.tin.org/filtering.txtE<gt>."
+msgstr ""
+
+#.  FIXME - Next paragraph is out of date
+# type: Plain text
+#: ../tin.1:2597
+msgid ""
+"The on-screen filtering menu is accessed by pressing 'B<^K>' at the Group "
+"and Article levels. It allows the user to kill or select an article that "
+"matches the current ''Subject:'' line, ''From:'' line or a string entered by "
+"the user. The user entered string can be applied to the ''Subject:'' or "
+"\\&''From:'' lines of an article. The kill description can be limited to the "
+"current newsgroup or it can apply to all newsgroups. Once entered the user "
+"can abort the command and not save the kill description, edit the kill file "
+"or save the kill description."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2597
+#, no-wrap
+msgid "POSTING ARTICLES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2600
+msgid ""
+"B<tin> allows posting of articles, follow-up to already posted articles and "
+"replying direct through mail to the author of an article."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2610
+msgid ""
+"Use the B<Post> ('B<w>') command to post an article to a newsgroup.  After "
+"entering the post subject the default editor (i.e., B<vi>(1))  or the editor "
+"specified by the $B<VISUAL> or $B<EDITOR> environment variable will be "
+"started and the article can be entered. To crosspost articles simply add a "
+"comma and the name of the newsgroup(s) to the end of the ''Newsgroups:'' "
+"line at the beginning of the article. After saving and exiting the editor "
+"you are asked if you wish to a)bort posting the article, e)dit the article "
+"again or p)ost the article to the specified newsgroup(s)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2615
+msgid ""
+"Use the B<DisplayPostHist> ('B<W>') command to display a history of the "
+"articles you have posted. The date the article was posted, which newsgroups "
+"the article was posted to and the articles subject line are displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2623
+msgid ""
+"Use the B<PageFollowupQuote> ('B<f>'), B<PageFollowup> ('B<F>')  or "
+"B<PageFollowupQuoteHeaders> ('B<^W>') command to post a follow-up article to "
+"an already posted article. The B<PageFollowupQuote> command will copy the "
+"text of the original article into the editor. The "
+"B<PageFollowupQuoteHeaders> command will copy the text and all headers of "
+"the original article into the editor. The editing procedure is the same as "
+"when posting an article with the B<Post> ('B<w>') command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2637
+msgid ""
+"Use the B<PageReplyQuote> ('B<r>'), B<PageReply> ('B<R>') or "
+"B<PageReplyQuoteHeaders> ('B<^E>') command to reply direct through mail to "
+"the author of an already posted article. The B<PageReplyQuote> command will "
+"copy the text of the original article into the editor. The "
+"B<PageReplyQuoteHeaders> command will copy the text and all headers of the "
+"original article into the editor. The editing procedure is the same as when "
+"posting an article with the B<Post> ('B<w>') command. After saving and "
+"exiting the editor you are asked if you wish to abort sending the article "
+"via B<PostAbort> ('B<a>'), edit the article again via B<PostEdit> ('B<e>') "
+"or send the article to the author via B<PostSend> ('B<s>')."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2637
+#, no-wrap
+msgid "CUSTOMIZING THE ARTICLE QUOTE STRING"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2645
+msgid ""
+"When posting a followup to an article or replying direct to the author of an "
+"article via email the text of the article can be quoted. The beginning of "
+"the quoted text can contain information about the quoted article (e.g., Name "
+"and the Message-ID of the article). To allow for different situations "
+"certain information from the article can be used in the quoted string. The "
+"following variables are expanded if found in the tinrc variables "
+"B<mail_quote_format>, B<news_quote_format> or B<xpost_quote_format>:"
+msgstr ""
+
+# type: ta
+#: ../tin.1:2647
+#, no-wrap
+msgid "\\w'%A  'u +\\w'Address'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2656
+#, no-wrap
+msgid ""
+"B<%A>\tAddress (Email)\n"
+"B<%D>\tDate (uses B<date_format>)\n"
+"B<%F>\tFull address (%N E<lt>%AE<gt>)\n"
+"B<%G>\tGroupname\n"
+"B<%M>\tMessage-ID\n"
+"B<%N>\tFullname of author\n"
+"B<%C>\tFirstname of author\n"
+"B<%I>\tInitials of author\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2659
+msgid "e.g.,"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2664
+#, no-wrap
+msgid ""
+"CW<mail_quote_format=On %D in %G you wrote:\n"
+"news_quote_format=In %M, %F wrote:>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2668
+msgid "would expand to:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2673
+#, no-wrap
+msgid ""
+"CW<On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote:\n"
+"In E<lt>abcINN123@example.orgE<gt>, Joe Bar E<lt>joe@example.orgE<gt> "
+"wrote:>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2683
+msgid ""
+"The quoted text section of an article is marked by a preceding quote string "
+"at the beginning of each quoted line. The default quote string is set to "
+"\\&'E<gt>_'. The default can be changed by setting the tinrc variable "
+"B<quote_chars> to ones own preference. (Note that '_' underline is used to "
+"represent a space)."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2683
+#, no-wrap
+msgid "MAILING PIPING PRINTING REPOSTING AND SAVING ARTICLES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2690
+msgid ""
+"The command interface to B<GroupMail>, B<PageMail>, B<PostMail> or "
+"B<ThreadMail> ('B<m>'), B<Pipe> ('B<|>'), B<Print> ('B<o>'), B<PageRepost> "
+"or B<GroupRepost> ('B<x>') and B<GroupSave>, B<PageSave> or B<ThreadSave> "
+"('B<s>' and B<GroupAutoSave>, B<PageAutoSave> or B<ThreadAutoSave> 'B<S>') "
+"articles is the same for ease of use."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2695
+msgid ""
+"Auto-saving with B<*AutoSave> ('B<S>') is a special case and operates only "
+"on marked articles. They will processed without any further prompting "
+"according to the default save parameters defined in tinrc or by any "
+"attributes set for the current group."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2699
+msgid ""
+"Otherwise, the initial prompt will ask you to select which article, thread, "
+"hot (auto-selected), regex pattern, tagged articles you wish to mail, pipe "
+"etc."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2703
+msgid ""
+"Tagged articles must have already been tagged with a B<*Tag> ('B<t>')  "
+"command. All tagged articles can be untagged by a B<*Untag> ('B<U>')  untag "
+"command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2709
+msgid ""
+"If a regex pattern is selected you are asked to enter a pattern (e.g., to "
+"match all articles subject lines containing 'net News' you enter \"net "
+"News\"). Any articles that match the entered expression will be mailed, "
+"piped etc. See also the B<wildcard> tinrc variable for advanced pattern "
+"matching options."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2714
+msgid ""
+"Various expansion characters are recognized when entering the directory and "
+"file to save to. Environment variables (prefixed with '$') and user home "
+"directories (prefixed by '~' or '~username') can be specified.  Environment "
+"variables can themselves contain other special characters."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2719
+msgid ""
+"To save articles to a mailbox enter '=E<lt>mailbox nameE<gt>' when asked for "
+"the save filename. If you enter just '=' then articles will be saved to a "
+"mailbox with the name of the current newsgroup (eg, alt.sources).  See "
+"B<maildir>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2723
+msgid ""
+"To save in savedir/E<lt>news.group.nameE<gt>/E<lt>filenameE<gt> format enter "
+"'+E<lt>filenameE<gt>'.  Environment variables are allowed within a filename "
+"(e.g., I<$SOURCES/dir/filename>). See B<savedir>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2729
+msgid ""
+"When saving articles you can specify whether the saved files should be post "
+"processed. A default process type can be set via B<post_process_type>."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2729
+#, no-wrap
+msgid "AUTOMATIC MAILING AND SAVING NEW NEWS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2741
+msgid ""
+"B<tin> allows new/unread news articles to be mailed (''B<-M>'' and "
+"\\&''B<-N>'' option) or saved (''B<-S>'' option) in batch mode for later "
+"reading. Useful when going on holiday and you don't want to return and find "
+"that expire has removed a whole load of unread articles. Best to run via "
+"B<cron>(1)  everyday while away, after which you will be mailed a report of "
+"which articles were mailed/saved from which newsgroups and the total number "
+"of articles mailed/saved. Articles are saved in a private news structure "
+"under your E<lt>savedirE<gt> directory (default is "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/News>). Be careful of using this option if you "
+"read a lot of groups because you could overflow your file system."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2745
+msgid ""
+"When using ''B<-S>'' together with a given directory to save to (''B<-s>'' "
+"option), the same directory must be specified when reading the articles by "
+"''B<-R>''."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2752
+msgid ""
+"If you only want to save some of your groups use the B<batch_save> tinrc "
+"variable. Set to ON or OFF in tinrc to enable/disable saving of all groups "
+"and then use the B<batch_save> attribute to fine tune which groups you want "
+"to have saved. For example, if you want to save most of your groups, then "
+"set B<batch_save> to ON in tinrc and selectively turn off the ones you don't "
+"want using attributes."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2753
+#, no-wrap
+msgid "B<tin -M iain -c -f newsrc.mail>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2757
+msgid ""
+"(mail any unread articles in newsgroups specified in file newsrc.mail to the "
+"local user iain and mark them as read)"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2758
+#, no-wrap
+msgid "B<tin -S -c -f newsrc.save>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2762
+msgid ""
+"(save any unread articles in newsgroups specified in file newsrc.save and "
+"mark them as read)"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2763
+#, no-wrap
+msgid "B<tin -R>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2768
+msgid "(read any articles saved by B<tin -S>)"
+msgstr ""
+
+# type: SS
+#: ../tin.1:2768
+#, no-wrap
+msgid "RANGES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2779
+msgid ""
+"A range is simply a group of items marked using the B<SetRange> (B<'#'>) "
+"key. Certain B<tin> commands will operate on a range if one exists rather "
+"than just the current item. A range is an expression of the form "
+"E<lt>minE<gt>-E<lt>maxE<gt>, e.g. 10-15 will highlight items 10 through 15 "
+"on the current screen. Other than absolute numeric positions, '.' can be "
+"used in place of the current cursor position and '$' can be used to mean the "
+"highest number available. Currently the only commands that understand ranges "
+"are B<GroupMarkThdRead> ('B<K>'), B<MarkArtUnread> ('B<z>') and "
+"B<MarkThdUnread> ('B<Z>')."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2780
+#, no-wrap
+msgid "NEWSGROUP LISTS & WILDCARDS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2791
+msgid ""
+"Several places in B<tin> allow you to specify a list of newsgroups. These "
+"include command-line groups, (un)subscribe groups, the AUTO[UN]SUBSCRIBE "
+"mechanism. The scope= attributes file tag and the filter file group= tag "
+"also use the same syntax. B<tin> interprets this variable similarly to "
+"B<rn(1).> It contains a list of patterns, separated by commas and possibly "
+"prefixed with exclamation points. An exclamation point negates the meaning "
+"of a match on this pattern, and can be used to cancel certain matches. Some "
+"examples:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2793
+msgid "I<alt.config,news.*,!news.test>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2795
+msgid "Matches alt.config and everything in the 'news' hierarchy except news.test"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2800
+msgid ""
+"See the explanation for the $B<AUTOSUBSCRIBE> variables for further "
+"examples."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2800
+#, no-wrap
+msgid "SIGNATURES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2809
+msgid ""
+"B<tin> will recognize a signature in either "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.signature> or "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>.  If "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.signature> exists, then the signature will be "
+"pulled into the editor for mail commands only. A signature in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.signature> will not be pulled into the editor "
+"for posting commands since B<inews>(1)  will append the signature itself."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2812
+msgid ""
+"A signature in I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig> will be pulled into the "
+"editor for both posting and mailing commands."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2814
+msgid "The following is an example of a I<.Sig> file:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2819
+#, no-wrap
+msgid ""
+"CW<NAMES  Joe Bar E<lt>joe@example.orgE<gt>\n"
+"SNAIL  Musterweg 12, 99999 Notreal, Germany>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2834
+msgid ""
+"B<tin> also has the capability to generate random signatures on a per "
+"newsgroup basis if so desired. The way to accomplish this is to specify the "
+"default signature or the group attribute sigfile as a directory. If for "
+"example the sigfile path is I</usr/iain/.sigs> and I<.sigs> is a directory "
+"then B<tin> will select a random signature from any file that is in the "
+"directory I<.sigs> (note: one signature per numbered file). A random "
+"signature can also consist of a fixed part signature that can contain your "
+"name, address etc. followed by the random sig. The fixed part of the random "
+"sig is read from the file I<$HOME/.sigfixed>."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2834
+#, no-wrap
+msgid "TIPS AND TRICKS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2838
+msgid ""
+"B<tin> can be pretty much be navigated by using the four cursor keys.  The "
+"left arrow key goes up a level, the right arrow key goes down a level, the "
+"up arrow key goes up a line and the down arrow key goes down a line."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2840
+msgid ""
+"The following newsgroups provide useful information concerning news "
+"software:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2843
+msgid ""
+"\\(emnews.software.readers (info. about news user agents tin, rn, nn, slrn "
+"etc.)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2845
+msgid "\\(emnews.software.nntp (info. about NNTP)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2847
+msgid ""
+"\\(emnews.answers (Frequently Asked Questions (FAQ) about many different "
+"themes)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2851
+msgid ""
+"Many prompts within B<tin> offer a default choice that the cursor is "
+"positioned on. By pressing 'B<E<lt>CRE<gt>>' the default value is taken.  "
+"Most prompts can be aborted by pressing 'B<E<lt>ESCE<gt>>'."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2858
+msgid ""
+"When B<tin> is run in an B<xterm>(1x)  it will resize itself each time the "
+"B<xterm>(1x)  is resized."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2862
+msgid ""
+"B<tin> will reread the "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}> file at set "
+"intervals (B<reread_active_file_secs>) to show any newly arrived news."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2867
+msgid ""
+"If you find large number of new newsgroups cluttering up your screen, "
+"pressing B<SelectToggleReadDisplay> ('B<r>') will make them go away."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2867
+#, no-wrap
+msgid "XTERM BUTTONS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2873
+msgid ""
+"If the environment variable B<$TERM> is set to B<xterm>(1x), then button "
+"pressing can be used to select groups and articles. In this discussion, the "
+"buttons are assumed to be assigned conventionally (i.e., Button1 is the left "
+"button)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2875
+msgid "In general (i.e., for the group, thread and article menus),"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2875
+#, no-wrap
+msgid "Button1 (left)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2878
+msgid "enters next (lower) level if you click on an article, otherwise pages down."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2878
+#, no-wrap
+msgid "Button2 (center)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2882
+msgid ""
+"returns to the previous (upper) level if you click on an article, otherwise "
+"pages up."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2882
+#, no-wrap
+msgid "Button3 (right)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2886
+msgid ""
+"positions on the article line under mouse cursor, or pages down if you've "
+"clicked outside the list of articles."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2888
+msgid "In the group selection menu, if the mouse is pointing at a group then:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:2888 ../tin.1:2900 ../tin.1:2914
+#, no-wrap
+msgid "left button"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2892
+msgid ""
+"moves to and selects the group pointed at, just like B<SelectReadGrp> "
+"('B<E<lt>CRE<gt>>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2892 ../tin.1:2904 ../tin.1:2917
+#, no-wrap
+msgid "center button"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2895
+msgid "quits the program, just like B<Quit> ('B<q>')."
+msgstr ""
+
+# type: TP
+#: ../tin.1:2895 ../tin.1:2909 ../tin.1:2922
+#, no-wrap
+msgid "right button"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2898
+msgid "moves to the group pointed at."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2900
+msgid ""
+"In the article menu, if the mouse is pointing at an article (or thread) "
+"then:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2904
+msgid ""
+"reads the article pointed at, just like B<GroupReadBasenote> "
+"('B<E<lt>CRE<gt>>'), or the thread, just like B<GroupListThd> ('B<l>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2909
+msgid ""
+"exits the menu, catching up on the group if you have "
+"B<group_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2912
+msgid "moves to the article (or thread) pointed at."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2914
+msgid "In the thread menu, if the mouse is pointing at an article then:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2917
+msgid "reads article pointed at, just like B<ThreadReadArt> ('B<E<lt>CRE<gt>>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2922
+msgid ""
+"exits the menu, catching up on the thread if you have "
+"B<thread_catchup_on_exit> set in your configuration, just like B<Quit> "
+"('B<q>')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2925
+msgid "moves to the article pointed at."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2932
+msgid ""
+"In other menus and areas button pressing reverts back to usual cut and paste "
+"of B<xterm>(1x), but after one click of any button."
+msgstr ""
+
+# type: SS
+#: ../tin.1:2932
+#, no-wrap
+msgid "INDEX FILES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2937
+msgid ""
+"If your news server supports NOV index files (see B<newsoverview>(5), most "
+"modern installations will) and you have a fast connection to your news "
+"server then this section can be ignored."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2943
+msgid ""
+"If your news server doesn't support NOV index files or you have a very slow "
+"connection to your news server then B<tin> can cache the index for each "
+"newsgroup if B<cache_overview_files> is set to ON.  Note that this cache can "
+"use up large amounts of diskspace if you read a lot of groups and/or high "
+"traffic groups."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2952
+msgid ""
+"Each user creates/updates his/her own index files that are stored in "
+"I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news/>. If you "
+"are reading via NNTP then the news server name will be appended to keep the "
+"indexes for different servers separate. If you are reading off the local "
+"spool and local overview files already exist then turning on caching will "
+"have no effect. Likewise unless you see significant delays entering a group "
+"when reading via NNTP then turning on caching will have little or no effect."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2959
+msgid ""
+"Entering a group the first time tends to be slow because the index file must "
+"be built from scratch. To alleviate the slowness start B<tin> to create all "
+"index files for the groups you subscribe to with B<tin -u -v> and go for a "
+"coffee. Subsequent readings of a group will only need to do incremental "
+"updating of the index file and will be much faster as only new articles will "
+"need to be cached."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2964
+msgid ""
+"As indexing might take some time you may want to run B<tin> form the system "
+"batcher B<cron>(1)  with the ''B<-u>'' option:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2969
+#, no-wrap
+msgid "CW<30 6 * * * /usr/local/bin/tin -u>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2977
+msgid ""
+"If you are low on local disk space you should consider using B<getart_limit> "
+"to limit the size of cached indexes and also manually purge cached data for "
+"groups you are not reading anymore with something like:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:2983
+#, no-wrap
+msgid ""
+"CW<find ${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news* "
+"\\e\n"
+"-type f -name \"[0-9]*.[0-9]\" -atime +28 | xargs rm -f>\n"
+msgstr ""
+
+# type: SH
+#: ../tin.1:2988 ../tin.5:20
+#, no-wrap
+msgid "FILES"
+msgstr ""
+
+#.  TODO: mention dead.article, dead.articles
+#.                .article[.$$], .cancel[.$$], .letter[.$$]?
+#.        $PWD/trace[.out]   (--with-trace)
+#.        $TMPDIR/NNTP       (-D 1)
+#.        $TMPDIR/FILTER     (-D 2)
+#.        $TMPDIR/ARTS       (-D 2)
+#.        $TMPDIR/BITMAP     (-D 4)
+#.        $TMPDIR/REFS.dump  (-D 8)
+#.        $TMPDIR/REFS.info  (-D 8)
+#.        $TMPDIR/MALLOC     (-D 16)
+#.        $TMPDIR/ATTRIBUTES (-D 32)
+#.        $TMPDIR/SCOPES-R   (-D 32)
+#.        $TMPDIR/SCOPES-W   (-D 32)
+#.        $TMPDIR/ACTIVE     (-D 64)
+# type: Plain text
+#: ../tin.1:3005
+msgid "For a detailed description see B<tin>(5)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3007 ../tin.5:41
+msgid "I<$MAILCAPS>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3009 ../tin.5:43
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.mailcap>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3011 ../tin.5:45
+msgid "I</etc/mailcap>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3013 ../tin.5:47
+msgid "I</usr/etc/mailcap>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3015 ../tin.5:49
+msgid "I</usr/local/etc/mailcap>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3017 ../tin.5:51
+msgid "I</etc/mail/mailcap>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3020 ../tin.5:220
+msgid "I</etc/nntpserver>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3023 ../tin.5:230
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.cancelsecret>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3026 ../tin.5:237
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.mime.types>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3028 ../tin.5:239
+msgid "I</etc/mime.types>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3030 ../tin.5:241
+msgid "I</etc/tin/mime.types>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3033 ../tin.5:248
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsauth>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3036 ../tin.5:281
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3040 ../tin.5:310
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/.oldnewsrc>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3044 ../tin.5:318
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.signature>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3046 ../tin.5:320
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3049 ../tin.5:327
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.sigfixed>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3052 ../tin.5:334
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/.inputhistory>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3055 ../tin.5:341
+msgid "I<${TIN_INDEX_MAILDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.mail/>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3059 ../tin.5:349
+#, no-wrap
+msgid "I<${TIN_INDEX_NEWSDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.news${NNTPSERVER:+\"-$NNTPSERVER\"}/>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3063 ../tin.5:357
+msgid "I<${TIN_INDEX_SAVEDIR:-\"${TIN_HOMEDIR:-\"$HOME\"}/.tin\"}/.save/>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3066 ../tin.5:364
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.mail>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3069 ../tin.5:398
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/active.save>"
+msgstr ""
+
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths (/news/etc/)
+#.  ${TIN_LIBDIR\-/news/etc"}/attributes
+# type: Plain text
+#: ../tin.1:3073 ../tin.5:409
+msgid "I</etc/tin/attributes>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3075 ../tin.5:411
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>"
+msgstr ""
+
+#.  TODO: add missing descriptions and explain things in detail.
+# type: Plain text
+#: ../tin.1:3078 ../tin.5:736
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/filter>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3082 ../tin.5:818
+#, no-wrap
+msgid "I</etc/tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3084 ../tin.5:820
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/keymap${${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}:+\".${LC_ALL:-\"${LC_CTYPE:-\"${LC_MESSAGES:-\"$LANG\"}\"}\"}\"}>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3088 ../tin.5:1053
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3091 ../tin.5:1069
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/newsrctable>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3094 ../tin.5:1095
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/posted>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3097 ../tin.5:1102
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/Mail/posted>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3100 ../tin.5:1112
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/postponed.articles>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3104
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3109
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER:${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+msgstr ""
+
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths (/news/etc/)
+#.  .IR ${TIN_LIBDIR\-"/news/etc"}/tinrc
+# type: Plain text
+#: ../tin.1:3114 ../tin.5:1165
+msgid "I</etc/tin/tinrc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3116 ../tin.5:1167
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3119 ../tin.5:2269
+msgid "I</etc/tin/tin.defaults>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3122
+msgid "I</usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo>"
+msgstr ""
+
+#.  tin uses inns old (pre 2.x) Path convention.
+#.  as with inn >= 2.2.x getting more and more popular
+#.  we should think about checking for the new Paths
+#.  (described shown below).
+# type: Plain text
+#: ../tin.1:3125 ../tin.5:2376
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}\"/\"${TIN_ACTIVEFILE:-active}>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3128 ../tin.5:2436
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/active.times>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3131 ../tin.5:2463
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3134 ../tin.5:2486
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/organization>"
+msgstr ""
+
+#.  is the Path correct? or is it /news/etc/overview.fmt
+# type: Plain text
+#: ../tin.1:3137 ../tin.5:2496
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/overview.fmt>"
+msgstr ""
+
+#.  is the Path correct? or is it /news/etc/subscriptions
+# type: Plain text
+#: ../tin.1:3140 ../tin.5:2514
+msgid "I<${TIN_LIBDIR:-NEWSLIBDIR}/subscriptions>"
+msgstr ""
+
+# type: SH
+#: ../tin.1:3143
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3157
+#, no-wrap
+msgid "B<TINRC>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3165
+msgid ""
+"Define this variable if you want to specify command-line options that B<tin> "
+"should be started with to save typing them each time it is started. The "
+"contents of the environment variable are added to the front of the "
+"command-line options before it is parsed therefore allowing an option "
+"specified on the command-line to override the same option specified in the "
+"environment."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3165
+#, no-wrap
+msgid "B<TIN_HOMEDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3170
+msgid ""
+"Define this variable if you do not want the I<.tin> directory in "
+"I<$HOME/>. E.g., if you want all B<tin>'s private files in I</tmp/.tin> you "
+"would set $B<TIN_HOMEDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3170
+#, no-wrap
+msgid "B<TIN_INDEX_NEWSDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3176
+msgid ""
+"Define this variable if you do not want the I<.news> directory in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s news "
+"index files in I</tmp/.news> you would set $B<TIN_INDEX_NEWSDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3176
+#, no-wrap
+msgid "B<TIN_INDEX_MAILDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3182
+msgid ""
+"Define this variable if you do not want the I<.mail> directory in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s mail "
+"index files in I</tmp/.mail> you would set $B<TIN_INDEX_MAILDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3182
+#, no-wrap
+msgid "B<TIN_INDEX_SAVEDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3188
+msgid ""
+"Define this variable if you do not want the I<.save> directory in "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/>. E.g., if you want all B<tin>'s save "
+"index files in I</tmp/.save> you would set $B<TIN_INDEX_SAVEDIR> to I</tmp>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3188
+#, no-wrap
+msgid "B<TIN_LIBDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3193
+msgid ""
+"Define this variable if you want to override the B<NEWSLIBDIR> path that was "
+"compiled into the B<tin> binary, default is I</usr/lib/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3193
+#, no-wrap
+msgid "B<TIN_SPOOLDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3198
+msgid ""
+"Define this variable if you want to override the B<SPOOLDIR> path that was "
+"compiled into the B<tin> binary, default is I</var/spool/news>.  If tin is "
+"running in NNTP mode setting this variable has no effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3198
+#, no-wrap
+msgid "B<TIN_NOVROOTDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3204
+msgid ""
+"Define this variable if you want to override the B<NOVROOTDIR> path that was "
+"compiled into the B<tin> binary, default is B<SPOOLDIR> (see above). If tin "
+"is running in NNTP mode setting this variable has no effect."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3204
+#, no-wrap
+msgid "B<TIN_ACTIVEFILE>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3210
+msgid ""
+"Define this variable if you want to override the B<NEWSLIBDIR/active> path "
+"that was compiled into the B<tin> binary. If tin is running in NNTP mode "
+"setting this variable has no effect. If $B<TIN_LIBDIR> is set it is "
+"prepended to $B<TIN_ACTIVEFILE>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3210
+#, no-wrap
+msgid "B<NNTPSERVER>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3216
+msgid ""
+"The default NNTP server to remotely read news from. This variable only needs "
+"to be set if the ''B<-r>'' command-line option is specified and the file "
+"I</etc/nntpserver> does not exist. The ''B<-g>'' command line option "
+"overrides $B<NNTPSERVER>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3216
+#, no-wrap
+msgid "B<NNTPPORT>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3221
+msgid ""
+"The NNTP TCP-port to read news from. This variable only needs to be set if "
+"the TCP-port is not 119 (the default).  The ''B<-p>'' command-line option "
+"overrides $B<NNTPPORT>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3221
+#, no-wrap
+msgid "B<DISTRIBUTION>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3225
+msgid ""
+"Set the article header field ''Distribution:'' to the contents of the "
+"variable instead of the system default."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3225
+#, no-wrap
+msgid "B<ISO2ASC>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3229
+msgid ""
+"Set the ISO to ASCII charset decoding table character to use in decoding an "
+"article text. Values can range from 0 to 6."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3233
+msgid "universal table for many languages"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3236
+msgid "single-spacing universal table"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3239
+msgid "table for Danish, Dutch, German, Norwegian and Swedish"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3239
+#, no-wrap
+msgid "B<3>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3242
+msgid ""
+"table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO "
+"646 variant"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3245
+msgid "table with RFC 1345 codes in brackets"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3245
+#, no-wrap
+msgid "B<5>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3248
+msgid "table for printers that allow overstriking with backspace"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3249
+#, no-wrap
+msgid "B<ORGANIZATION>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3255
+msgid ""
+"Set the article header field ''Organization:'' to the contents of the "
+"variable instead of the system default. If reading news on an Apollo "
+"DomainOS machine the environment variable $B<NEWSORG> has to be used instead "
+"of $B<ORGANIZATION>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3255
+#, no-wrap
+msgid "B<NEWSORG (DomainOS)>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3258
+msgid "DomainOS specific, same as $B<ORGANIZATION> on other OSs (see above)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3258
+#, no-wrap
+msgid "B<REPLYTO>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3263
+msgid ""
+"Set the article header field ''Reply-To:'' to the return address specified "
+"by the variable. This is useful if you wish to receive replies at a "
+"different address."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3263
+#, no-wrap
+msgid "B<NAME>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3267
+msgid ""
+"Overrides the full name given in the gecos-files in I</etc/passwd>, see also "
+"B<mail_address>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3267
+#, no-wrap
+msgid "B<REALNAME>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3270
+msgid "Same as $B<NAME>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3270
+#, no-wrap
+msgid "B<HOME>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3275
+msgid "Pathname of the user's home directory. See B<environ>(5)  for more info."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3275
+#, no-wrap
+msgid "B<MAILER>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3279
+msgid ""
+"This variable has precedence over the default mailer that is used in all "
+"mailing operations within B<tin>."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3279
+#, no-wrap
+msgid "B<MAIL>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3282
+msgid "Full path to the user's mailbox."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3282
+#, no-wrap
+msgid "B<VISUAL>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3291
+msgid ""
+"This variable has precedence over the default editor (i.e., B<vi>(1))  that "
+"is used in all editing operations within B<tin> (e.g., posting, replying, "
+"follow-ups, ...). Evaluation order is I<${VISUAL:-\"${EDITOR:-vi}\"}>. See "
+"B<environ>(5)  for more info."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3291
+#, no-wrap
+msgid "B<EDITOR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3300
+msgid ""
+"If $B<VISUAL> is unset, then this variable is looked up for a default "
+"editor. If $B<EDITOR> and $B<VISUAL> are both unset, B<tin> uses the systems "
+"default editor (i.e.  B<vi>(1))  on UNIX-systems). See B<environ>(5)  for "
+"more info."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3300
+#, no-wrap
+msgid "B<AUTOSUBSCRIBE>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3306
+msgid ""
+"A new group is checked against the list of patterns; if it matches, B<tin> "
+"subscribes the user to the group without further query.  See the section "
+"\"NEWSGROUP LISTS & WILDCARDS\" for an explanation of the valid syntax. For "
+"example, setting"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3308
+msgid "I<AUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3313
+msgid ""
+"will automatically subscribe the user to all new groups in the comp.os.unix "
+"hierarchy, and all talk groups other than talk.politics groups (which will "
+"be queried for as usual). Of course this does not work if B<tin> is started "
+"with the ''B<-X>'' command-line switch."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3313
+#, no-wrap
+msgid "B<AUTOUNSUBSCRIBE>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3317
+msgid ""
+"Is handled like the $B<AUTOSUBSCRIBE> variable, but groups matching the list "
+"are unsubscribed from without further query. For example, setting"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3319
+msgid "I<AUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3323
+msgid ""
+"will automatically unsubscribe the user from all new alt.flame groups and "
+"all groups starting with u (university groups) other than UK groups (which "
+"will be queried for as usual)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3323
+#, no-wrap
+msgid "B<TMPDIR>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3327
+msgid ""
+"A pathname of a directory made available for B<tin> to create temporary "
+"files."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3327
+#, no-wrap
+msgid "B<MAILCAPS>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3332
+msgid ""
+"This variable can be used to override the default path search for mailcap "
+"files. See also B<tin>(5)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3332
+#, no-wrap
+msgid "B<NOMETAMAIL>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3337
+msgid ""
+"Set this variable to disable the use of B<metamail>(1)  or a replacement "
+"(e.g. metamutt)."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3337
+#, no-wrap
+msgid "B<MM_CHARSET>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3339
+#, no-wrap
+msgid "B<ISPELL>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3344
+msgid ""
+"Set this variable to point to B<ispell>(1)  or a replacement and its "
+"cmd-line options."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3344
+#, no-wrap
+msgid "B<PGPOPTS>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3351
+msgid ""
+"Define any additional options that you wish to pass to your B<pgp>(1)  or "
+"B<gpg>(1)  program."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3351
+#, no-wrap
+msgid "B<PGPPATH>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3356
+msgid ""
+"Override the name of the B<pgp>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3356
+#, no-wrap
+msgid "B<GNUPGHOME>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3361
+msgid ""
+"Override the name of the B<gpg>(1)  directory in B<$HOME> that holds your "
+"keys etc.."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3361
+#, no-wrap
+msgid "B<LC_CTYPE>"
+msgstr ""
+
+#.  TODO: document LC_CTYPEs influence on
+#.        ~/.tin/keymap.*, 8bit char display, ...
+# type: Plain text
+#: ../tin.1:3375
+msgid ""
+"This variable determines the B<locale>(5)  category for character handling "
+"functions. Usually it determines the character classes for pattern matching "
+"character classification and case conversion. Currently this is not true for "
+"B<tin> (which temporary unsets B<$LC_CTYPE> right before any match is done "
+"to avoid confusion).  It's value should be of the form "
+"I<language>[I<_territory>][I<.codeset>][I<@modifier>]. See B<environ>(5)  "
+"for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3375
+#, no-wrap
+msgid "B<LC_MESSAGES>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3384
+msgid ""
+"Formats of informative and diagnostic messages and interactive responses.  "
+"It's value should be of the form "
+"I<language>[I<_territory>][I<.codeset>][I<@modifier>]. See B<locale>(5)  and "
+"B<environ>(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3384
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3392
+msgid ""
+"Date and time formats. It's value should be of the form "
+"I<language>[I<_territory>][I<.codeset>][I<@modifier>]. See B<locale>(5)  and "
+"B<environ>(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3392
+#, no-wrap
+msgid "B<LC_ALL>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3401
+msgid ""
+"This variable overrides the value of the B<$LANG> variable and any other "
+"B<$LC_> variable. It's value should be of the form "
+"I<language>[I<_territory>][I<.codeset>]. See B<locale>(5)  and B<environ>(5)  "
+"for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3401
+#, no-wrap
+msgid "B<LANG>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3410
+msgid ""
+"This variable determines the B<locale>(5)  category for any category not "
+"specifically selected with a variable starting with B<$LC_>. It's value "
+"should be of the form I<language>[I<_territory>][I<.codeset>]. See "
+"B<environ>(5)  for more information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3410
+#, no-wrap
+msgid "B<LANGUAGE>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3418
+msgid ""
+"This variable defines a priority list for translations. Whenever a "
+"translation is not available in the language selected via B<$LC_ALL> or "
+"B<$LANG> the next language from the list is tried. It's value should be of "
+"the form I<language:language[:language]>. See B<environ>(5)  for more "
+"information."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3418
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3428
+msgid ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred width in "
+"column positions for the terminal screen or window. If this variable is "
+"unset or null, the implementation determines the number of columns, "
+"appropriate for the terminal or window. When B<$COLUMNS> is set, any "
+"terminal-width information implied by B<$TERM> will be overridden. Users and "
+"portable applications should not set B<$COLUMNS> unless they wish to "
+"override the system selection and produce output unrelated to the terminal "
+"characteristics."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3428
+#, no-wrap
+msgid "B<LINES>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3438
+msgid ""
+"A decimal integer E<gt> 0 used to indicate the user's preferred number of "
+"lines on a page or the vertical screen or window size in lines. A line in "
+"this case is a vertical measure large enough to hold the tallest character "
+"in the character set being displayed. If this variable is unset or null, the "
+"implementation determines the number of lines, appropriate for the terminal "
+"or window. When B<$LINES> is set, any terminal-height information implied by "
+"B<$TERM> will be overridden. Users and portable applications should not set "
+"B<$LINES> unless they wish to override the system selection."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3438
+#, no-wrap
+msgid "B<TERM>"
+msgstr ""
+
+#
+#
+#.  TODO: add missing, sort useful, document in detail
+# type: Plain text
+#: ../tin.1:3447
+msgid ""
+"The type of terminal in use. This is used when looking up termcap "
+"sequences.  See B<environ>(5)  for more information."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3447
+#, no-wrap
+msgid "SIGNALS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3450
+msgid "B<tin> handles a couple of signals:"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3450
+#, no-wrap
+msgid "B<SIGHUP>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3453 ../tin.1:3456
+msgid "Terminate gracefully."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3453
+#, no-wrap
+msgid "B<SIGTERM>"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3456
+#, no-wrap
+msgid "B<SIGUSR1>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3459
+msgid "Terminate gracefully but do not restore tty."
+msgstr ""
+
+# type: TP
+#: ../tin.1:3459
+#, no-wrap
+msgid "B<SIGUSR2>"
+msgstr ""
+
+#
+#
+#.  .SH DIAGNOSTICS
+#.  give an overview of the most common error messages and how to cope with
+#.  them.
+# type: Plain text
+#: ../tin.1:3470
+msgid "Write out I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>-file."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3470
+#, no-wrap
+msgid "SECURITY"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3478
+msgid ""
+"When B<tin> is started in debug mode (''B<-D n>'') it will create world "
+"readable files in B<$TMPDIR> which may contain the users NNTP password in "
+"cleartext. On multiuser-systems B<$TMPDIR> should be set to a safe location "
+"before starting tin in debug mode (e.g.  B<TMPDIR=$HOME tin -D 1>)."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3478
+#, no-wrap
+msgid "CONFORMING TO"
+msgstr ""
+
+#.  - RFC2045, RFC2047, RFC2980, RFC3977, RFC4643, RFC5322
+#.    RFC5536, RFC5537, RFC6048 or whatever
+# type: Plain text
+#: ../tin.1:3486
+msgid ""
+"B<tin> does conform to the Base Definitions volume of IEEE Std 1003.1-2001, "
+"Section 12, Utility Conventions (Utility Argument Syntax, Utility Syntax "
+"Guidelines)."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3486
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3491
+msgid ""
+"Regular expression support is provided by the PCRE library package "
+"B<pcre>(3), which is open source software, written by Philip Hazel, and "
+"copyright by the University of Cambridge, England."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3495
+msgid "ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/"
+msgstr ""
+
+# type: SH
+#: ../tin.1:3495
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3503
+msgid ""
+"B<CNews> NNTPd, B<noffle>(1)  (E<lt>= V1.0-pre5) and B<NewsCache> (E<lt>= "
+"V1.1.91) can't handle pipelined GROUP commands. If you run into trouble with "
+"any of the mentioned servers define DISABLE_PIPELINING in include/autoconf.h "
+"and recompile."
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3512
+msgid ""
+"Before mailing a bug-report to E<lt>tin-bugs@tin.orgE<gt> please check if "
+"you are using the latest (stable) release, and if not, please upgrade first! "
+"Have a look at the doc/TODO file for known bugs. If you still think you've "
+"found a bug, please use the B<BugReport> ('B<R>')  function and write in "
+"English. Please do NOT enclose a core-file in your bugreport until we "
+"request it."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3512
+#, no-wrap
+msgid "HISTORY"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3524
+msgid ""
+"B<tin> is based on the B<tass>(1)  newsreader that was developed by Rich "
+"Skrenta and posted to alt.sources in March 1991; its first version was "
+"released on August 23rd 1991.  B<tass>(1)  itself was heavily influenced by "
+"notesfiles a public domain UNIX version of PLATO Notes, developed at the "
+"University of Illinois by Ray Essick and Rob Kolstad in 1982. For a version "
+"overview see E<lt>http://www.tin.org/history.htmlE<gt>."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3524
+#, no-wrap
+msgid "CREDITS"
+msgstr ""
+
+# type: IP
+#: ../tin.1:3526
+#, no-wrap
+msgid "Rich Skrenta"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3530
+msgid "author of B<tass>(1)  v3.2 which this newsreader used as its base."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3530
+#, no-wrap
+msgid "Bill Davidsen"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3532
+msgid "author of envarg.c environment variable reading routine."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3532
+#, no-wrap
+msgid "Mike Gleason"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3534
+msgid "author of sigfile.c random signature generation routines."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3534
+#, no-wrap
+msgid "Markus Kuhn E<lt>Markus.Kuhn@cl.cam.ac.ukE<gt>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3536
+msgid "author of langinfo.c, charset.c and iso2asc.txt ISO-8859-1 documentation."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3536
+#, no-wrap
+msgid "Arnold Robbins"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3538
+msgid "author of strftime.c date formatting routine."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3538
+#, no-wrap
+msgid "Rich Salz"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3540
+msgid "author of wildmat.c pattern matching and parsdate.y date parsing routines."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3540
+#, no-wrap
+msgid "Dave Taylor"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3544
+msgid "author of curses.c from the B<elm>(1)  mailreader."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3544
+#, no-wrap
+msgid "Chris Thewalt"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3548
+msgid "author of getline.c B<emacs>(1)  style editing routine."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3548
+#, no-wrap
+msgid "Steven Madsen"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3552
+msgid "for adding B<pgp>(1)  (Pretty Good Privacy) support."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3552
+#, no-wrap
+msgid "Philip Hazel E<lt>ph10@cam.ac.ukE<gt>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3556
+msgid "for B<pcre>(3)  (Perl-compatible regular expression library)."
+msgstr ""
+
+# type: IP
+#: ../tin.1:3556
+#, no-wrap
+msgid "Patrick Powell E<lt>papowell@astart.comE<gt>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3564
+msgid "for B<snprintf>(3)  and B<vsnprintf>(3)  fallbacks."
+msgstr ""
+
+# type: SH
+#: ../tin.1:3564
+#, no-wrap
+msgid "AUTHOR"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3565
+#, no-wrap
+msgid "Iain Lea E<lt>iain@bricbrac.deE<gt>"
+msgstr ""
+
+# type: SH
+#: ../tin.1:3569
+#, no-wrap
+msgid "MAINTAINER"
+msgstr ""
+
+# type: TP
+#: ../tin.1:3570
+#, no-wrap
+msgid "Urs Janssen E<lt>urs@tin.orgE<gt>"
+msgstr ""
+
+# type: SH
+#: ../tin.1:3574 ../tin.5:2527
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+# type: Plain text
+#: ../tin.1:3623
+msgid ""
+"B<cron>(1), B<elm>(1), B<emacs>(1), B<gpg>(1), B<inews>(1), B<ispell>(1), "
+"B<lp>(1), B<lpr>(1), B<metamail>(1), B<noffle>(1), B<perl>(1), B<perlre>(1), "
+"B<pgp>(1), B<rn>(1), B<sendmail>(1), B<shar>(1), B<slrnface>(1), B<tass>(1), "
+"B<unshar>(1), B<uudecode>(1), B<vi>(1), B<xterm>(1x), B<iconv>(3), "
+"B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), B<pcrepattern>(3), "
+"B<snprintf>(3), B<strftime>(3), B<vsnprintf>(3), B<wildmat>(3), "
+"B<environ>(5), B<locale>(5), B<mbox>(5), B<mmdf>(5), B<newsoverview>(5), "
+"B<tin>(5), B<RFC1524>, B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, "
+"B<RFC2980>, B<RFC3977>, B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, "
+"B<RFC6048>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:13
+msgid "tin, rtin - related files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:19
+msgid ""
+"This manpage describes the various (config) files and their formats used by "
+"the B<tin>(1)  newsreader. All files are expected to have unix style ('\\en' "
+"aka LF) line endings."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:60
+msgid ""
+"B<mailcap>(4)  files as defined in B<RFC1524>. The Mailcap files are read by "
+"B<tin>(1)  to determine how to display non-text messages at the local "
+"site. Any line that starts with \"#\" is a comment. Blank lines are "
+"ignored. Otherwise, each line defines a single mailcap entry for a single "
+"content type. Long lines may be continued by ending them with a backslash "
+"character, \"\\e\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:63
+msgid ""
+"Each individual mailcap entry consists of a content-type specification, a "
+"command to execute, and (possibly) a set of optional \"flag\" values."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:68
+msgid ""
+"The \"type\" field is simply any legal content type name. It is the string "
+"that will be matched against the ''Content-Type:'' header to decide if this "
+"is the mailcap entry that matches the current message. Additionally, the "
+"type field may specify a subtype or a wildcard to match all subtypes."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:74
+msgid ""
+"The \"command\" field is any UNIX command and is used to specify the "
+"interpreter for the given type of message. It will be passed to the shell "
+"via the B<system>(3)  facility."
+msgstr ""
+
+#
+#.  Two special codes can appear in the viewing command for objects of type
+#.  multipart (any subtype). These are "%n" and "%F". %n will be replaced by
+#.  the number of parts within the multipart object. %F will be replaced by a
+#.  series of arguments, two for each part, giving first the content-type and
+#.  then the name of the temporary file where the decoded part has been stored.
+# type: Plain text
+#: ../tin.5:91
+msgid ""
+"Semicolons and backslashes within the command or any flag field must be "
+"quoted with backslashes. If the field contains \"%s\", those two characters "
+"will be replaced by the name of a file that contains the body of the "
+"message. If it contains \"%t\", those two characters will be replaced by the "
+"content-type field, including the subtype, if any. If it contains \"%{\" "
+"followed by a parameter name and a closing \"}\", then all those characters "
+"will be replaced by the value of the named parameter, if any, from the "
+"\\&''Content-Type:'' header. Finally, if the field contains \"\\e%\", those "
+"two characters will be replaced by a single \"%\" character."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:93
+msgid "Besides the type and command field the following \"flags\" are defined:"
+msgstr ""
+
+# type: TP
+#: ../tin.5:93
+#, no-wrap
+msgid "B<compose>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:103
+msgid ""
+"The \"compose\" field may be used to specify a program that can be used to "
+"compose a new body or body part in the given format. Its intended use is to "
+"support mail composing agents that support the composition of multiple types "
+"of mail using external composing agents. As with the view-command, the "
+"semantics of program execution are operating system dependent. The result of "
+"the composing program may be data that is not yet suitable for mail "
+"transport - that is, a Content-Transfer-Encoding may need to be applied to "
+"the data."
+msgstr ""
+
+# type: TP
+#: ../tin.5:103
+#, no-wrap
+msgid "B<composetyped>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:113
+msgid ""
+"The \"composetyped\" field is similar to the \"compose\" field, but is to be "
+"used when the composing program needs to specify the ''Content-Type:'' "
+"header field to be applied to the composed data. The \"compose\" field is "
+"simpler, and is preferred for use with existing (non-mail-oriented) programs "
+"for composing data in a given format. The \"composetyped\" field is "
+"necessary when the Content-Type information must include auxiliary "
+"parameters, and the composition program must then know enough about mail "
+"formats to produce output that includes the mail type information."
+msgstr ""
+
+# type: TP
+#: ../tin.5:113
+#, no-wrap
+msgid "B<edit>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:119
+msgid ""
+"The \"edit\" field may be used to specify a program that can be used to edit "
+"a body or body part in the given format. In many cases, it may be identical "
+"in content to the \"compose\" field, and shares the operating-system "
+"dependent semantics for program execution."
+msgstr ""
+
+# type: TP
+#: ../tin.5:119
+#, no-wrap
+msgid "B<print>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:124
+msgid ""
+"The \"print\" field may be used to specify a program that can be used to "
+"print a message or body part in the given format. As with the view-command, "
+"the semantics of program execution are operating system dependent."
+msgstr ""
+
+# type: TP
+#: ../tin.5:124
+#, no-wrap
+msgid "B<test>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:133
+msgid ""
+"The \"test\" field may be used to test some external condition (e.g., the "
+"machine architecture, or the window system in use) to determine whether or "
+"not the mailcap line applies. It specifies a program to be run to test some "
+"condition. The semantics of execution and of the value returned by the test "
+"program are operating system dependent. If the test fails, a subsequent "
+"mailcap entry should be sought. Multiple test fields are not permitted - "
+"since a test can call a program, it can already be arbitrarily complex."
+msgstr ""
+
+# type: TP
+#: ../tin.5:133
+#, no-wrap
+msgid "B<needsterminal>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:145
+msgid ""
+"The \"needsterminal\" field indicates that the view-command must be run on "
+"an interactive terminal. This is needed to inform window-oriented user "
+"agents that an interactive terminal is needed. (The decision is not left "
+"exclusively to the view-command because in some circumstances it may not be "
+"possible for such programs to tell whether or not they are on interactive "
+"terminals.) The needsterminal command should be assumed to apply to the "
+"compose and edit commands, too, if they exist. Note that this is NOT a test "
+"- it is a requirement for the environment in which the program will be "
+"executed, and should typically cause the creation of a terminal window when "
+"not executed on either a real terminal or a terminal window."
+msgstr ""
+
+# type: TP
+#: ../tin.5:145
+#, no-wrap
+msgid "B<copiousoutput>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:152
+msgid ""
+"The \"copiousoutput\" field indicates that the output from the view-command "
+"will be an extended stream of output, and is to be interpreted as advice to "
+"the UA (User Agent mail-reading program) that the output should be either "
+"paged or made scroll-able. Note that it is probably a mistake if "
+"needsterminal and copiousoutput are both specified."
+msgstr ""
+
+# type: TP
+#: ../tin.5:152 ../tin.5:1062
+#, no-wrap
+msgid "B<description>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:157
+msgid ""
+"The \"description\" field simply provides a textual description, optionally "
+"quoted, that describes the type of data, to be used optionally by mail "
+"readers that wish to describe the data before offering to display it."
+msgstr ""
+
+# type: TP
+#: ../tin.5:157
+#, no-wrap
+msgid "B<textualnewlines>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:165
+msgid ""
+"The \"textualnewlines\" field, if set to any non-zero value, indicates that "
+"this type of data is line-oriented and that, if encoded in base64, all "
+"newlines should be converted to canonical form (CRLF) before encoding, and "
+"will be in that form after decoding. In general, this field is needed only "
+"if there is line-oriented data of some type other than text/* or non-line- "
+"oriented data that is a subtype of text."
+msgstr ""
+
+# type: TP
+#: ../tin.5:165
+#, no-wrap
+msgid "B<x11-bitmap>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:170
+msgid ""
+"The \"x11-bitmap\" field names a file, in X11 bitmap (xbm) format, which "
+"points to an appropriate icon to be used to visually denote the presence of "
+"this kind of data."
+msgstr ""
+
+# type: TP
+#: ../tin.5:170
+#, no-wrap
+msgid "B<nametemplate>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:178
+msgid ""
+"The \"nametemplate\" field gives a file name format, in which %s will be "
+"replaced by a short unique string to give the name of the temporary file to "
+"be passed to the viewing command. This is only expected to be relevant in "
+"environments where filename extensions are meaningful, e.g., one could "
+"specify that a GIF file being passed to a gif viewer should have a name "
+"ending in \".gif\" by using \"nametemplate=%s.gif\""
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:183
+msgid ""
+"B<tin>(1)  currently only respects the \"test\", \"description\", "
+"\"nametemplate\" and partly the \"needsterminal\" flags, all other flags are "
+"internally ignored. It also can't handle the \"%F\" and \"%n\" expansions "
+"yet."
+msgstr ""
+
+# type: TP
+#: ../tin.5:183 ../tin.5:266 ../tin.5:294 ../tin.5:384 ../tin.5:693 ../tin.5:800 ../tin.5:1082
+#, no-wrap
+msgid "Example:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:188
+#, no-wrap
+msgid "# mailcap file example\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:190
+#, no-wrap
+msgid "image/*;\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:193
+#, no-wrap
+msgid "xv -8 -geometry +0 '%s';\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:195
+#, no-wrap
+msgid "description=%{name} %t-Image;\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:197
+#, no-wrap
+msgid "test=test \"$DISPLAY\" != \"\";\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:199
+#, no-wrap
+msgid "nametemplate=%s.IMAGE\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:202
+#, no-wrap
+msgid "message/rfc822;\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:205
+#, no-wrap
+msgid "${PAGER:-\"more\"} '%s';\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:207
+#, no-wrap
+msgid "edit=${EDITOR:-\"vi\"} '%s';\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:209
+#, no-wrap
+msgid "compose=${EDITOR:-\"vi\"} '%s';\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:211
+#, no-wrap
+msgid "print=a2ps '%s';\\e\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:213
+#, no-wrap
+msgid "needsterminal\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:226
+msgid ""
+"default NNTP-server to read news from if not reading from the local spool.  "
+"\\&'B<-g> I<server>', $B<NNTPSERVER> have higher priority (in that order), "
+"the default server given at compile time has lower priority."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:233
+msgid "secret to be used for canlocks"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:244
+msgid "mime type / filename extension pairs"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:256
+msgid ""
+"\"I<nntpserver> I<password> [I<user>]\" pairs for NNTP servers that require "
+"authorization. If the password contains a space or a tab it must be enclosed "
+"in doublequotes (\"). Usernames must not be enclosed in doublequotes and "
+"thus can't contain spaces or tabs. Any line that starts with \"#\" is a "
+"comment. Blank lines are ignored. This file should be readable only for the "
+"user as it contains the user's uncrypted password for reading news!"
+msgstr ""
+
+# type: TP
+#: ../tin.5:256 ../tin.5:1073
+#, no-wrap
+msgid "B<nntpserver>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:259 ../tin.5:1076
+msgid "full qualified domain name of the newsserver."
+msgstr ""
+
+# type: TP
+#: ../tin.5:259
+#, no-wrap
+msgid "B<password>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:262
+msgid "user's uncrypted password for reading news."
+msgstr ""
+
+# type: TP
+#: ../tin.5:262
+#, no-wrap
+msgid "B<user>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:266
+msgid ""
+"username on the newsserver if it differs from the local login. This field is "
+"optional."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:270
+msgid "# sample .newsauth file"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:272
+msgid "news.example.org secret"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:274
+msgid "news.example.net arcane guest"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:276
+msgid "news.example.com \"top secret\" james.bond@example.com"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:284
+msgid "\"I<newsgroup>I<flag> [I<article>[,I<article> | -I<article>]...]\" lines."
+msgstr ""
+
+# type: TP
+#: ../tin.5:284
+#, no-wrap
+msgid "B<newsgroup>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:287
+msgid "the name of the newsgroup."
+msgstr ""
+
+# type: TP
+#: ../tin.5:287
+#, no-wrap
+msgid "B<flag>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:290
+msgid "a flag indicating if the group is subscribed ':' or not '!'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:290
+#, no-wrap
+msgid "B<article>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:294
+msgid ""
+"range of already read articles from that group; numbers separated by commas "
+"with sequential numbers collapsed with hyphens."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:298
+msgid "# sample .newsrc file"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:300
+msgid "news.software.b! 1-666,669"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:302
+msgid "news.software.nntp: 1-13245,13247,13249"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:304
+msgid "news.software.readers: 1-19567,19571-19597"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:314
+msgid "backup of I<${TIN_HOMEDIR:-\"$HOME\"}/.newsrc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:323
+msgid "signature"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:330
+msgid "fixed part of a randomly generated signature"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:337
+msgid "history of last used strings"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:344
+msgid "mailgroups index files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:353
+msgid "newsgroups index files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:360
+msgid "saved newsgroups index files"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:370
+msgid ""
+"active file (\"I<mail_group_name> I<maxnum> I<minnum> I<mailspool>\" "
+"quadruples) of user's mailgroups (requires B<tin>(1)  to be build with "
+"mh-mail-handling support)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:370
+#, no-wrap
+msgid "B<mail_group_name>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:373
+msgid "must be the pathname of the mailbox relative to field #4 with / changed to ."
+msgstr ""
+
+# type: TP
+#: ../tin.5:373
+#, no-wrap
+msgid "B<maxnum>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:377
+msgid ""
+"just put a large number here, something higher than the highest message in "
+"the mailbox"
+msgstr ""
+
+# type: TP
+#: ../tin.5:377
+#, no-wrap
+msgid "B<minnum>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:380
+msgid "put 0 here"
+msgstr ""
+
+# type: TP
+#: ../tin.5:380
+#, no-wrap
+msgid "B<mailspool>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:384
+msgid ""
+"path of mail spool directory. This must be the full pathname to the root of "
+"the mail folder area."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:388
+msgid "Mail.inbox 12345 00000 /home/foo"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:390
+msgid "Mail.outbox 23456 00000 /home/foo"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:394
+msgid ""
+"This allows access to the 'inbox' and 'outbox' folders of user foo.  They "
+"are accessed via /home/foo/Mail/inbox and /home/foo/Mail/outbox"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:401
+msgid "active file of user's saved newsgroups, used by B<tin -R>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:423
+msgid ""
+"The group attributes files may be used to override some global settings from "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> on a per group basis. Order is "
+"important as last match counts; this allows one to refine attributes for "
+"narrowed scopes. Note that the I<scope=E<lt>grouplistE<gt>> line has to be "
+"specified before the attributes are specified for that list and each "
+"attribute can only be set once per scope section. All attributes are set to "
+"a reasonable default so you only have to specify the attribute that you want "
+"to change. All toggle attributes are set by specifying ON/OFF. Otherwise, "
+"they function exactly as their global equivalents. The following group "
+"attributes are available:"
+msgstr ""
+
+# type: TP
+#: ../tin.5:423
+#, no-wrap
+msgid "B<scope>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:429
+msgid ""
+"This changes the list of groups to which the attributes that follow will be "
+"applied. See the section NEWSGROUP LISTS & WILDCARDS in B<tin>(1)  for the "
+"types of pattern that can be used here."
+msgstr ""
+
+# type: TP
+#: ../tin.5:429 ../tin.5:1185
+#, no-wrap
+msgid "B<add_posted_to_filter>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:432 ../tin.5:435 ../tin.5:438 ../tin.5:441 ../tin.5:444 ../tin.5:447 ../tin.5:450 ../tin.5:463 ../tin.5:473 ../tin.5:486 ../tin.5:489 ../tin.5:492 ../tin.5:495 ../tin.5:502 ../tin.5:505 ../tin.5:532 ../tin.5:535 ../tin.5:538 ../tin.5:548 ../tin.5:551 ../tin.5:554 ../tin.5:557 ../tin.5:560 ../tin.5:563 ../tin.5:566 ../tin.5:569 ../tin.5:572 ../tin.5:575 ../tin.5:581 ../tin.5:584 ../tin.5:587 ../tin.5:590 ../tin.5:593 ../tin.5:596 ../tin.5:599 ../tin.5:605 ../tin.5:608 ../tin.5:611 ../tin.5:614 ../tin.5:617 ../tin.5:620 ../tin.5:623 ../tin.5:626 ../tin.5:629 ../tin.5:683
+msgid "Identical to the tinrc variable of the same name"
+msgstr ""
+
+# type: TP
+#: ../tin.5:432 ../tin.5:1189
+#, no-wrap
+msgid "B<advertising>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:435 ../tin.5:1192
+#, no-wrap
+msgid "B<alternative_handling>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:438
+#, no-wrap
+msgid "B<ask_for_metamail>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:441 ../tin.5:1235
+#, no-wrap
+msgid "B<auto_cc_bcc>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:444 ../tin.5:1239
+#, no-wrap
+msgid "B<auto_list_thread>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:447 ../tin.5:1246
+#, no-wrap
+msgid "B<auto_save>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:450
+#, no-wrap
+msgid "B<auto_select>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:454
+msgid ""
+"Automatically perform the B<GroupMarkUnselArtRead> ('B<X>') command after "
+"entering the group."
+msgstr ""
+
+# type: TP
+#: ../tin.5:454 ../tin.5:1252
+#, no-wrap
+msgid "B<batch_save>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:460
+msgid ""
+"Can be used to override the global setting in tinrc on a per group "
+"basis. For more information read section AUTOMATIC MAILING AND SAVING NEW "
+"NEWS in B<tin>(1)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:460 ../tin.5:1366
+#, no-wrap
+msgid "B<date_format>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:463
+#, no-wrap
+msgid "B<delete_tmp_files>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:470
+msgid ""
+"If this is set to ON, then saved article files that have been post-processed "
+"will be automatically deleted, otherwise the user will be asked whether to "
+"delete the post-processed files. Automatic processing of marked articles "
+"using B<GroupAutoSave> ('B<S>') will suppress prompting."
+msgstr ""
+
+# type: TP
+#: ../tin.5:470 ../tin.5:1481
+#, no-wrap
+msgid "B<editor_format>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:473
+#, no-wrap
+msgid "B<fcc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:477
+msgid ""
+"Mailbox to save sent mails. The format of the mailbox is controlled via the "
+"tinrc B<mailbox_format> variable."
+msgstr ""
+
+# type: TP
+#: ../tin.5:477
+#, no-wrap
+msgid "B<followup_to>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:480
+msgid "Set ''Followup-To:'' header to the specified group(s)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:480 ../tin.5:763
+#, no-wrap
+msgid "B<from>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:483
+msgid "Identical to the tinrc variable B<mail_address>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:483 ../tin.5:1505
+#, no-wrap
+msgid "B<group_catchup_on_exit>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:486 ../tin.5:1572
+#, no-wrap
+msgid "B<mail_8bit_header>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:489 ../tin.5:1584 ../tin.5:2306
+#, no-wrap
+msgid "B<mail_mime_encoding>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:492 ../tin.5:1601
+#, no-wrap
+msgid "B<maildir>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:495
+#, no-wrap
+msgid "B<mailing_list>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:499
+msgid ""
+"Used when a group is a mailing list. All responses to the group will be "
+"directed to this email address instead"
+msgstr ""
+
+# type: TP
+#: ../tin.5:499 ../tin.5:1639
+#, no-wrap
+msgid "B<mark_ignore_tags>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:502 ../tin.5:1636
+#, no-wrap
+msgid "B<mark_saved_read>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:505
+#, no-wrap
+msgid "B<mime_forward>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:522
+msgid ""
+"Determines whether usenet articles are forwarded as attachment or "
+"inline. When set to OFF, the forwarded article will be included in the body "
+"of the mail, while setting this variable to ON will cause the article to be "
+"attached as a separate MIME part. Enabling B<mime_forward> is particularly "
+"useful for articles consisting of multiple MIME parts such as PGP/MIME "
+"signed messages or being encoded in a different character set than your "
+"local one. It is also useful if the receiver should be able to operate on "
+"the entire forwarded article (i.e., view or save it without your "
+"comments). On the other hand, if you want to forward only some parts of the "
+"article or to insert 'inline' annotations, you might want to disable this "
+"option.  Currently mime_forward is forced if the article to be attached is a "
+"multipart MIME article, this may change in a future version.  Please note "
+"that for this option to have effect, the tinrc variable "
+"B<interactive_mailer> has to be set to 0 (which is the default)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:522
+#, no-wrap
+msgid "B<mime_types_to_save>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:529
+msgid ""
+"A comma separated list of MIME major/minor Content-Types that will be saved "
+"when using the view/save and save/autosave features.  A single * can be used "
+"to wildcard the major and/or minor type and a ! as the first character in an "
+"entry will negate it, eg: image/*,!image/bmp,!text/html. Default is */*"
+msgstr ""
+
+# type: TP
+#: ../tin.5:529 ../tin.5:1718
+#, no-wrap
+msgid "B<news_headers_to_display>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:532 ../tin.5:1725
+#, no-wrap
+msgid "B<news_headers_to_not_display>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:535 ../tin.5:1734
+#, no-wrap
+msgid "B<news_quote_format>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:538 ../tin.5:2279
+#, no-wrap
+msgid "B<organization>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:545
+msgid ""
+"This can be used to set the article header field ''Organization:''. It "
+"overrides the setting (if any) of organization in I</etc/tin/tin.defaults> "
+"and $B<ORGANIZATION> (or $B<NEWSORG> on Apollo DomainOS). Note that some "
+"newsserver might still overwrite the \\&''Organization:'' header."
+msgstr ""
+
+# type: TP
+#: ../tin.5:545 ../tin.5:1759
+#, no-wrap
+msgid "B<pos_first_unread>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:548 ../tin.5:1763
+#, no-wrap
+msgid "B<post_8bit_header>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:551 ../tin.5:1774 ../tin.5:2303
+#, no-wrap
+msgid "B<post_mime_encoding>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:554 ../tin.5:1786
+#, no-wrap
+msgid "B<post_process_type>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:557 ../tin.5:1779
+#, no-wrap
+msgid "B<post_process_view>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:560 ../tin.5:1809
+#, no-wrap
+msgid "B<print_header>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:563 ../tin.5:1823
+#, no-wrap
+msgid "B<process_only_unread>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:566 ../tin.5:1827
+#, no-wrap
+msgid "B<prompt_followupto>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:569 ../tin.5:1831
+#, no-wrap
+msgid "B<quote_chars>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:572 ../tin.5:1891
+#, no-wrap
+msgid "B<savedir>"
+msgstr ""
+
+#.  TODO: document option
+# type: TP
+#: ../tin.5:575
+#, no-wrap
+msgid "B<savefile>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:578 ../tin.5:1919
+#, no-wrap
+msgid "B<show_author>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:581 ../tin.5:1945
+#, no-wrap
+msgid "B<show_info>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:584 ../tin.5:1963
+#, no-wrap
+msgid "B<show_only_unread_arts>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:587 ../tin.5:1971
+#, no-wrap
+msgid "B<show_signatures>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:590 ../tin.5:1974
+#, no-wrap
+msgid "B<sigdashes>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:593 ../tin.5:1977
+#, no-wrap
+msgid "B<sigfile>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:596 ../tin.5:1988
+#, no-wrap
+msgid "B<signature_repost>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:599 ../tin.5:1998
+#, no-wrap
+msgid "B<sort_article_type>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:602
+msgid "Identical to the tinrc variable B<sort_article_type>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:602 ../tin.5:2027
+#, no-wrap
+msgid "B<sort_threads_type>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:605 ../tin.5:2056
+#, no-wrap
+msgid "B<start_editor_offset>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:608 ../tin.5:2084
+#, no-wrap
+msgid "B<tex2iso_conv>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:611 ../tin.5:2089
+#, no-wrap
+msgid "B<thread_articles>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:614 ../tin.5:2104
+#, no-wrap
+msgid "B<thread_catchup_on_exit>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:617 ../tin.5:2099
+#, no-wrap
+msgid "B<thread_perc>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:620 ../tin.5:2128
+#, no-wrap
+msgid "B<trim_article_body>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:623 ../tin.5:2208
+#, no-wrap
+msgid "B<verbatim_handling>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:626 ../tin.5:2255
+#, no-wrap
+msgid "B<wrap_on_next_unread>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:629
+#, no-wrap
+msgid "B<x_body>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:634
+msgid ""
+"A piece of text that will be added at the start of a message body. If this "
+"string starts with a / or ~ then it is assumed to be the name of a file "
+"containing the text to insert."
+msgstr ""
+
+# type: TP
+#: ../tin.5:634
+#, no-wrap
+msgid "B<x_comment_to>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:637
+msgid "Insert ''X-Comment-To:'' header, this is only useful in FIDO groups."
+msgstr ""
+
+# type: TP
+#: ../tin.5:637
+#, no-wrap
+msgid "B<x_headers>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:645
+msgid ""
+"A string including header-name and the contents of the header that will be "
+"automatically added when posting. If the string starts with a / or ~ then it "
+"is assumed to be the name of a file containing the header and its content to "
+"be inserted. If the string starts with a ! then what follows is assumed to "
+"be the path to a program to be executed to generate the header and its "
+"content."
+msgstr ""
+
+# type: TP
+#: ../tin.5:645
+#, no-wrap
+msgid "B<quick_kill_scope>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:651
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterKill> will be applied.  If unset the "
+"default from the tinrc variable B<default_filter_kill_global> will be used."
+msgstr ""
+
+# type: TP
+#: ../tin.5:651
+#, no-wrap
+msgid "B<quick_kill_expire>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:654
+msgid "Identical to the tinrc variable B<default_filter_kill_expire>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:654
+#, no-wrap
+msgid "B<quick_kill_case>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:657
+msgid "Identical to the tinrc variable B<default_filter_kill_case>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:657
+#, no-wrap
+msgid "B<quick_kill_header>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:660
+msgid "Identical to the tinrc variable B<default_filter_kill_header>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:660
+#, no-wrap
+msgid "B<quick_select_scope>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:666
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule added by B<QuickFilterSelect> will be applied. If unset the "
+"default from the tinrc variable B<default_filter_select_global> will be "
+"used."
+msgstr ""
+
+# type: TP
+#: ../tin.5:666
+#, no-wrap
+msgid "B<quick_select_expire>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:669
+msgid "Identical to the tinrc variable B<default_filter_select_expire>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:669
+#, no-wrap
+msgid "B<quick_select_case>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:672
+msgid "Identical to the tinrc variable B<default_filter_select_case>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:672
+#, no-wrap
+msgid "B<quick_select_header>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:675
+msgid "Identical to the tinrc variable B<default_filter_select_header>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:675
+#, no-wrap
+msgid "B<ispell>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:680
+msgid ""
+"Path and options for B<ispell>(1)-like spell-checker, e.g. \"aspell "
+"--mode=email --dont-backup check\""
+msgstr ""
+
+# type: TP
+#: ../tin.5:680 ../tin.5:1672
+#, no-wrap
+msgid "B<mm_network_charset>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:683
+#, no-wrap
+msgid "B<undeclared_charset>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:692
+msgid ""
+"Assume (broken) articles without MIME charset declaration have this charset "
+"- default is US-ASCII. This attribute works only on systems with working "
+"B<iconv>(3), others might have to compile B<tin>(1)  with "
+"--disable-mime-strict-charset."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:702
+#, no-wrap
+msgid ""
+"# include extra headers\n"
+"# assume ISO-8859-1 as charset if no charset is declared\n"
+"scope=*\n"
+"x_headers=~/.tin/headers\n"
+"undeclared_charset=ISO-8859-1\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:706
+#, no-wrap
+msgid ""
+"# in *sources* set post process type to shar only\n"
+"scope=*sources*\n"
+"post_process_type=1\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:713
+#, no-wrap
+msgid ""
+"# in *binaries* turn on full post processing,\n"
+"# remove tmp files and set Followup-To: poster\n"
+"scope=*binaries*\n"
+"post_process_type=2\n"
+"delete_tmp_files=ON\n"
+"followup_to=poster\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:719
+#, no-wrap
+msgid ""
+"# in fido.* newsgroups change quote_chars\n"
+"# and add X-Comment-To: line\n"
+"scope=fido.*\n"
+"quote_chars=%sE<gt>_\n"
+"x_comment_to=ON\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:725
+#, no-wrap
+msgid ""
+"# in *.test newsgroups, don't append signature\n"
+"# and preset Subject\n"
+"scope=*.test\n"
+"sigfile=--none\n"
+"x_headers=Subject: test - ignore - no reply\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:729
+#, no-wrap
+msgid ""
+"# assume ISO-2022-JP-2 as charset\n"
+"scope=fj.*,japan.*\n"
+"undeclared_charset=ISO-2022-JP-2\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:741
+msgid ""
+"The filter file is used to assign scores to certain articles. Based on the "
+"score an article can be filtered out (hidden) or marked hot. Empty lines or "
+"lines beginning with a '#' are ignored."
+msgstr ""
+
+# type: TP
+#: ../tin.5:741
+#, no-wrap
+msgid "B<comment>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:750
+msgid ""
+"Every entry (rule) in the filter file might get a comment. Multiple lines "
+"are allowed (but only for comments yet). Every line must start with the "
+"\"comment=\" keyword. Comments must appear first in the rule.  Comment lines "
+"placed within a rule will be moved to the begin of the next rule. This might "
+"be changed in the future. Don't use '#' to mark comments as those lines are "
+"ignored and your comments will get lost on the next write of the file."
+msgstr ""
+
+# type: TP
+#: ../tin.5:750
+#, no-wrap
+msgid "B<group>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:754
+msgid ""
+"A comma-separated list of newsgroup patterns (wildmat-style) to which groups "
+"the filter rule will be applied. This line is mandatory!"
+msgstr ""
+
+# type: TP
+#: ../tin.5:754
+#, no-wrap
+msgid "B<case>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:757
+msgid "0=case-sensitive, 1=case-insensitive"
+msgstr ""
+
+# type: TP
+#: ../tin.5:757
+#, no-wrap
+msgid "B<score>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:760
+msgid ""
+"Score value of the rule; can also be one of the magic words \"kill\" or "
+"\"hot\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:760
+#, no-wrap
+msgid "B<subj>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:763
+msgid "Match against ''Subject:''"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:771
+msgid ""
+"Match against ''From:''.  B<tin>(1)  converts the contents of the ''From:'' "
+"header to an old style e-mail address, e.g. ''some@body.example (John Doe)'' "
+"instead of ''John Doe E<lt>some@body.exampleE<gt>'', before trying to match "
+"the patterns in the filter rule."
+msgstr ""
+
+# type: TP
+#: ../tin.5:771
+#, no-wrap
+msgid "B<msgid>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:774
+msgid "Match against ''Message-ID:'' and full ''References:''"
+msgstr ""
+
+# type: TP
+#: ../tin.5:774
+#, no-wrap
+msgid "B<msgid_last>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:777
+msgid "Match against ''Message-ID:'' and last ''References:'' entry only"
+msgstr ""
+
+# type: TP
+#: ../tin.5:777
+#, no-wrap
+msgid "B<msgid_only>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:780
+msgid "Match against ''Message-ID:''"
+msgstr ""
+
+# type: TP
+#: ../tin.5:780
+#, no-wrap
+msgid "B<refs_only>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:783
+msgid "Match against ''References:''"
+msgstr ""
+
+# type: TP
+#: ../tin.5:783
+#, no-wrap
+msgid "B<lines>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:786
+msgid ""
+"Match against ''Lines:'', E<lt>num matches less than, E<gt>num matches more "
+"than."
+msgstr ""
+
+#.  TODO: document option in detail
+# type: TP
+#: ../tin.5:786
+#, no-wrap
+msgid "B<gnksa>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:790
+msgid "Match against ''From:'' address parser return codes."
+msgstr ""
+
+# type: TP
+#: ../tin.5:790
+#, no-wrap
+msgid "B<xref>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:796
+msgid ""
+"Match against ''Xref:'' line. Before any matching is done the line is turned "
+"into the same format ''Newsgroups:'' has that is it is turned into a comma "
+"separated newsgroup list with all other information (i.e.  the article "
+"counter) removed."
+msgstr ""
+
+# type: TP
+#: ../tin.5:796 ../tin.5:2446
+#, no-wrap
+msgid "B<time>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:799
+msgid "time_t value when rule expires"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:810
+#, no-wrap
+msgid ""
+"comment=mark all articles about tin, rtin,\n"
+"comment=tind, ktin or cdtin as hot\n"
+"group=*\n"
+"case=1\n"
+"score=hot\n"
+"subj=\\eb(cd|[rk]?)?tin(d|pre)?[-.0-9]*\\eb\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:826
+msgid ""
+"Keymap-file, containing \"I<keyname> I<value> I<[value]>\" pairs separated "
+"by spaces or tabs. Below is a list of all rebindable keynames and their "
+"defaults. If a keyname is bound to NULL it is unassigned."
+msgstr ""
+
+# type: ta
+#: ../tin.5:828
+#, no-wrap
+msgid "\\w'GroupSelThdIfUnreadSelected    'u +\\w'SPACE'u +\\w'SPACE'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:875
+#, no-wrap
+msgid ""
+"B<ShellEscape>\t!\n"
+"B<SetRange>\t#\n"
+"B<LastPage>\t$\n"
+"B<ToggleColor>\t&\n"
+"B<LastViewed>\t-\n"
+"B<SearchRepeat>\t\\e\n"
+"B<SearchSubjF>\t/\n"
+"B<SearchSubjB>\t?\n"
+"B<SearchAuthB>\tA\n"
+"B<SearchBody>\tB\n"
+"B<CatchupNextUnread>\tC\n"
+"B<EditFilter>\tE\n"
+"B<ToggleHelpDisplay>\tH\n"
+"B<ToggleInverseVideo>\tI\n"
+"B<LookupMessage>\tL\n"
+"B<OptionMenu>\tM\n"
+"B<Postponed>\tO\t^O\n"
+"B<QuitTin>\tQ\n"
+"B<BugReport>\tR\n"
+"B<DisplayPostHist>\tW\n"
+"B<MarkThrUnread>\tZ\n"
+"B<FirstPage>\t^\n"
+"B<SearchAuthF>\ta\n"
+"B<Catchup>\tc\n"
+"B<Help>\th\n"
+"B<ToggleInfoLastLine>\ti\n"
+"B<Down>\tj\t^N\n"
+"B<Up>\tk\t^P\n"
+"B<Print>\to\n"
+"B<Quit>\tq\n"
+"B<Version>\tv\n"
+"B<Post>\tw\n"
+"B<MarkArtUnread>\tz\n"
+"B<QuickFilterSelect>\t[\n"
+"B<QuickFilterKill>\t]\n"
+"B<Pipe>\t|\n"
+"B<ScrollUp>\tE<lt>\n"
+"B<ScrollDown>\tE<gt>\n"
+"B<PageUp>\tb\t^B\t^U\n"
+"B<PageDown>\t^D\t^F\tSPACE\n"
+"B<RedrawScr>\t^L\n"
+"B<Postponed>\t^O\n"
+"B<MenuFilterSelect>\t^A\n"
+"B<MenuFilterKill>\t^K\n"
+"B<MarkFeedRead>\t^X\n"
+"B<MarkFeedUnread>\t^W\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:883
+#, no-wrap
+msgid ""
+"B<AttachSelect>\t^J\t^M\n"
+"B<AttachPipe>\tp\n"
+"B<AttachSave>\ts\n"
+"B<AttachTag>\tt\n"
+"B<AttachUntag>\tU\n"
+"B<AttachTagPattern>\t=\n"
+"B<AttachToggleTagged>\t@\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:891
+#, no-wrap
+msgid ""
+"B<ConfigToggleAttrib>\tTAB\n"
+"B<ConfigSelect>\t^J\t^M\n"
+"B<ConfigLastPage>\tG\n"
+"B<ConfigNoSave>\tQ\n"
+"B<ConfigScopeMenu>\tS\n"
+"B<ConfigFirstPage>\tg\n"
+"B<ConfigResetAttrib>\tr\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:899
+#, no-wrap
+msgid ""
+"B<FeedTag>\tT\n"
+"B<FeedArt>\ta\n"
+"B<FeedHot>\th\n"
+"B<FeedPat>\tp\n"
+"B<FeedRepost>\tr\n"
+"B<FeedSupersede>\ts\n"
+"B<FeedThd>\tt\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:902
+#, no-wrap
+msgid ""
+"B<FilterEdit>\te\n"
+"B<FilterSave>\ts\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:932
+#, no-wrap
+msgid ""
+"B<GroupNextUnreadArtOrGrp>\tTAB\n"
+"B<GroupReadBasenote>\t^J\t^M\n"
+"B<GroupSelThd>\t*\n"
+"B<GroupDoAutoSel>\t+\n"
+"B<GroupToggleThdSel>\t.\n"
+"B<GroupSelThdIfUnreadSelected>\t;\n"
+"B<GroupSelPattern>\t=\n"
+"B<GroupReverseSel>\t@\n"
+"B<GroupCancel>\tD\n"
+"B<GroupToggleGetartLimit>\tG\n"
+"B<GroupMarkThdRead>\tK\n"
+"B<GroupNextUnreadArt>\tN\n"
+"B<GroupPrevUnreadArt>\tP\n"
+"B<GroupAutoSave>\tS\n"
+"B<GroupTagParts>\tT\n"
+"B<GroupUntag>\tU\n"
+"B<GroupMarkUnselArtRead>\tX\n"
+"B<GroupToggleSubjDisplay>\td\n"
+"B<GroupGoto>\tg\n"
+"B<GroupListThd>\tl\n"
+"B<GroupMail>\tm\n"
+"B<GroupNextGroup>\tn\n"
+"B<GroupPrevGroup>\tp\n"
+"B<GroupToggleReadUnread>\tr\n"
+"B<GroupSave>\ts\n"
+"B<GroupTag>\tt\n"
+"B<GroupToggleThreading>\tu\n"
+"B<GroupRepost>\tx\n"
+"B<GroupUndoSel>\t~\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:935
+#, no-wrap
+msgid ""
+"B<HelpLastPage>\tG\n"
+"B<HelpFirstPage>\tg\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:975
+#, no-wrap
+msgid ""
+"B<PageReplyQuoteHeaders>\t^E\n"
+"B<PagePGPCheckArticle>\t^G\n"
+"B<PageToggleRaw>\t^H\n"
+"B<PageNextUnread>\tTAB\n"
+"B<PageNextThd>\t^J\t^M\n"
+"B<PageToggleTabs>\t^T\n"
+"B<PageFollowupQuoteHeaders>\t^W\n"
+"B<PageToggleTex2iso>\t\"\n"
+"B<PageToggleAllHeaders>\t*\n"
+"B<PageToggleRot>\t%\n"
+"B<PageToggleUue>\t(\n"
+"B<PageReveal>\t)\n"
+"B<PageSkipIncludedText>\t:\n"
+"B<PageTopThd>\tE<lt>\n"
+"B<PageBotThd>\tE<gt>\n"
+"B<PageCancel>\tD\n"
+"B<PageFollowup>\tF\n"
+"B<PageLastPage>\tG\n"
+"B<PageKillThd>\tK\n"
+"B<PageNextUnreadArt>\tN\n"
+"B<PagePrevUnreadArt>\tP\n"
+"B<PageReply>\tR\n"
+"B<PageAutoSave>\tS\n"
+"B<PageGroupSel>\tT\n"
+"B<PageViewUrl>\tU\n"
+"B<PageViewAttach>\tV\n"
+"B<PageToggleHighlight>\t_\n"
+"B<PageEditArticle>\te\n"
+"B<PageFollowupQuote>\tf\n"
+"B<PageFirstPage>\tg\n"
+"B<PageListThd>\tl\n"
+"B<PageMail>\tm\n"
+"B<PageNextArt>\tn\n"
+"B<PagePrevArt>\tp\n"
+"B<PageReplyQuote>\tr\n"
+"B<PageSave>\ts\n"
+"B<PageTag>\tt\n"
+"B<PageGotoParent>\tu\n"
+"B<PageRepost>\tx\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:980
+#, no-wrap
+msgid ""
+"B<PgpEncSign>\tb\n"
+"B<PgpEncrypt>\te\n"
+"B<PgpIncludekey>\ti\n"
+"B<PgpSign>\ts\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:993
+#, no-wrap
+msgid ""
+"B<PostAbort>\ta\n"
+"B<PostContinue>\tc\n"
+"B<PostCancel>\td\n"
+"B<PostEdit>\te\n"
+"B<PostPGP>\tg\n"
+"B<PostIspell>\ti\n"
+"B<PostIgnore>\ti\n"
+"B<PostMail>\tm\n"
+"B<PostPostpone>\to\n"
+"B<PostPost>\tp\ty\n"
+"B<PostSupersede>\ts\n"
+"B<PostSend>\ts\ty\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:996
+#, no-wrap
+msgid ""
+"B<PostponeOverride>\tY\n"
+"B<PostponeAll>\tA\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:999
+#, no-wrap
+msgid ""
+"B<PromptYes>\ty\tY\n"
+"B<PromptNo>\tn\tN\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1002
+#, no-wrap
+msgid ""
+"B<SaveAppendFile>\ta\n"
+"B<SaveOverwriteFile>\to\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1006
+#, no-wrap
+msgid ""
+"B<PProcNone>\tn\n"
+"B<PProcShar>\ts\n"
+"B<PProcYes>\ty\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1024
+#, no-wrap
+msgid ""
+"B<SelectEnterNextUnreadGrp>\tTAB\tn\n"
+"B<SelectReadGrp>\t^J\t^M\n"
+"B<SelectResetNewsrc>\t^R\n"
+"B<SelectSortActive>\t.\n"
+"B<SelectNextUnreadGrp>\tN\n"
+"B<SelectSubscribePat>\tS\n"
+"B<SelectUnsubscribePat>\tU\n"
+"B<SelectQuitNoWrite>\tX\n"
+"B<SelectSyncWithActive>\tY\n"
+"B<SelectToggleDescriptions>\td\n"
+"B<SelectGoto>\tg\n"
+"B<SelectMoveGrp>\tm\n"
+"B<SelectToggleReadDisplay>\tr\n"
+"B<SelectSubscribe>\ts\n"
+"B<SelectUnsubscribe>\tu\n"
+"B<SelectYankActive>\ty\n"
+"B<SelectMarkGrpUnread>\tz\tZ\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1031
+#, no-wrap
+msgid ""
+"B<ScopeSelect>\t^J\t^M\n"
+"B<ScopeEditAttributesFile>\tE\n"
+"B<ScopeAdd>\ta\n"
+"B<ScopeDelete>\td\n"
+"B<ScopeMove>\tm\n"
+"B<ScopeRename>\tr\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1046
+#, no-wrap
+msgid ""
+"B<ThreadReadNextArtOrThread>\tTAB\n"
+"B<ThreadReadArt>\t^J\t^M\n"
+"B<ThreadSelArt>\t*\n"
+"B<ThreadToggleArtSel>\t.\n"
+"B<ThreadReverseSel>\t@\n"
+"B<ThreadCancel>\tD\n"
+"B<ThreadMarkArtRead>\tK\n"
+"B<ThreadAutoSave>\tS\n"
+"B<ThreadUntag>\tU\n"
+"B<ThreadToggleSubjDisplay>\td\n"
+"B<ThreadMail>\tm\n"
+"B<ThreadSave>\ts\n"
+"B<ThreadTag>\tt\n"
+"B<ThreadUndoSel>\t~\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1048
+#, no-wrap
+msgid "B<UrlSelect>\t^J\t^M\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1059
+msgid ""
+"This file provides short descriptions of each mailgroup. (requires B<tin>(1)  "
+"to be build with mh-mail-handling support). Each line consist of two "
+"tab-separated fields \"I<mailgroupname> I<one-line description>\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1059
+#, no-wrap
+msgid "B<mailgroupname>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1062 ../tin.5:1133 ../tin.5:2393 ../tin.5:2446 ../tin.5:2473
+msgid "is the name of the newsgroup"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1065 ../tin.5:1136 ../tin.5:2476
+msgid "is a short single-line description of the group"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1073
+msgid ""
+"\"I<nntpserver> I<newsrc> [I<shortname> [I<...>]]\" pairs to use with the "
+"''B<-g>'' command-line switch."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1076
+#, no-wrap
+msgid "B<newsrc>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1079
+msgid "related newsrc."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1079
+#, no-wrap
+msgid "B<shortname>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1082
+msgid "nickname(s) for the nntpserver."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1086
+msgid "# sample newsrctable file"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1088
+msgid "news.tin.org .newsrc-tin.org tinorg"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1090
+msgid "news.example.org /tmp/nrc-ex example ex"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1098
+msgid "posting history"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1108
+msgid ""
+"Copy of all posted articles in B<mbox>(5)  format. The filename can be "
+"changed by setting B<posted_articles_file>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1117
+msgid "Pool of postponed articles. This file is in B<mbox>(5)  format."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1122
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/newsgroups>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1130
+msgid ""
+"This file a copy of the servers newsgroups file which provides short "
+"descriptions of each newsgroup. It is automatically updated on startup "
+"except when using the ''B<-X>''or ''B<-q>'' command-line option and an old "
+"copy exists. Each line consist of two tab-separated fields "
+"\"I<group.name>\tI<one-line description>\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1130 ../tin.5:2470
+#, no-wrap
+msgid "B<group.name>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1133 ../tin.5:2473
+#, no-wrap
+msgid "B<one-line description>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1142
+#, no-wrap
+msgid "I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/$NNTPSERVER${NNTPPORT:+\":$NNTPPORT\"}/serverrc>\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1149
+msgid ""
+"File to store $B<NNTPSERVER> and $B<NNTPPORT> related data via a list of "
+"\"I<variable>=I<value>\" pairs. Currently there are only two variables, both "
+"are not meant to be changed by the user."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1149
+#, no-wrap
+msgid "B<version>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1152
+msgid "Internal version number."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1152
+#, no-wrap
+msgid "B<last_newnews>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1157
+msgid ""
+"Internal timestamp used by B<tin>(1)  to keep track of new newsgroups on the "
+"server."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1179
+msgid ""
+"At startup, B<tin>(1)  reads in the configuration file. This contains a list "
+"of \"I<variable>=I<value>\" pairs that can be used to configure the way "
+"B<tin>(1)  works. If it exists, the global configuration file, "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> is read first. After that, the user's own "
+"configuration file I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> is read.  The "
+"global file is useful for distributing system-wide defaults to new users who "
+"have no private tinrc yet (see also B</etc/tin/tin.defaults>)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1179
+#, no-wrap
+msgid "B<abbreviate_groupname>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1195
+#, no-wrap
+msgid "B<art_marked_deleted>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1198
+#, no-wrap
+msgid "B<art_marked_inrange>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1201
+#, no-wrap
+msgid "B<art_marked_return>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1205
+#, no-wrap
+msgid "B<art_marked_selected>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1209
+#, no-wrap
+msgid "B<art_marked_recent>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1213
+#, no-wrap
+msgid "B<art_marked_unread>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1217
+msgid ""
+"The character used to show that an article has not been read.  Default is "
+"'+'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1217
+#, no-wrap
+msgid "B<art_marked_read>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1220
+#, no-wrap
+msgid "B<art_marked_killed>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1224
+#, no-wrap
+msgid "B<art_marked_read_selected>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1235
+msgid ""
+"If ON B<tin>(1)  will ask before using a MIME viewer (B<metamail_prog>) to "
+"display MIME messages. This only occurs if a MIME viewer is set. Default is "
+"OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1243
+#, no-wrap
+msgid "B<auto_reconnect>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1246
+msgid "Reconnect to server automatically. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1257
+#, no-wrap
+msgid "B<beginner_level>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1262
+#, no-wrap
+msgid "B<cache_overview_files>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1267
+msgid ""
+"If ON, create local copies of NNTP overview files. This can be used to "
+"considerably speed up accessing large groups when using a slow connection.  "
+"Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1267
+#, no-wrap
+msgid "B<catchup_read_groups>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1271
+#, no-wrap
+msgid "B<col_back>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1274
+#, no-wrap
+msgid "B<col_from>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1277
+#, no-wrap
+msgid "B<col_head>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1280
+#, no-wrap
+msgid "B<col_help>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1283
+#, no-wrap
+msgid "B<col_invers_bg>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1286
+#, no-wrap
+msgid "B<col_invers_fg>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1289
+#, no-wrap
+msgid "B<col_markdash>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1293
+#, no-wrap
+msgid "B<col_markslash>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1297
+#, no-wrap
+msgid "B<col_markstar>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1301
+#, no-wrap
+msgid "B<col_markstroke>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1305
+#, no-wrap
+msgid "B<col_minihelp>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1308
+#, no-wrap
+msgid "B<col_newsheaders>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1311
+#, no-wrap
+msgid "B<col_normal>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1314
+#, no-wrap
+msgid "B<col_quote>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1317
+#, no-wrap
+msgid "B<col_quote2>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1320
+#, no-wrap
+msgid "B<col_quote3>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1323
+#, no-wrap
+msgid "B<col_response>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1327
+msgid ""
+"Color of response counter. This is the text that says 'Response x of y' in "
+"the article viewer."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1327
+#, no-wrap
+msgid "B<col_signature>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1330
+#, no-wrap
+msgid "B<col_urls>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1333
+#, no-wrap
+msgid "B<col_verbatim>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1336
+#, no-wrap
+msgid "B<col_subject>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1339
+#, no-wrap
+msgid "B<col_text>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1342
+#, no-wrap
+msgid "B<col_title>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1345
+#, no-wrap
+msgid "B<confirm_choice>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1349
+msgid ""
+"B<tin>(1)  can ask for manual confirmation to protect the user. Available "
+"choices:"
+msgstr ""
+
+#.  TODO: check if all affected commands are marked [after confirmation]
+# type: Plain text
+#: ../tin.5:1355
+msgid ""
+"B<commands:> Ask for confirmation before executing certain dangerous "
+"commands (e.g., B<Catchup> ('B<c>')). Commands that this affects are marked "
+"in this manual with '[after confirmation]'."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1360
+msgid ""
+"B<quit:> You'll be asked to confirm that you wish to exit B<tin>(1)  when "
+"you use the B<Quit> ('B<q>') command."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1364
+msgid ""
+"B<select:> Ask for confirmation before marking all not selected (with "
+"B<GroupMarkUnselArtRead> ('B<X>') command) articles as read."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1366
+msgid "Default is commands & quit."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1377
+msgid ""
+"Format string used for date representation. A description of the different "
+"format options can be found at B<strftime>(3).  B<tin>(1)  uses "
+"B<strftime>(3)  when available and supports most format options in his "
+"fallback code.  Default is \"%a, %d %b %Y %H:%M:%S\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1377
+#, no-wrap
+msgid "B<default_art_search>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1379
+#, no-wrap
+msgid "B<default_author_search>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1381
+#, no-wrap
+msgid "B<default_config_search>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1384
+#, no-wrap
+msgid "B<default_filter_days>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1387
+#, no-wrap
+msgid "B<default_filter_kill_case>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1391
+msgid ""
+"Default for quick (1 key) kill filter case. ON = filter case sensitive, OFF "
+"= ignore case. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1391
+#, no-wrap
+msgid "B<default_filter_kill_expire>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1395
+msgid ""
+"Default for quick (1 key) kill filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1395
+#, no-wrap
+msgid "B<default_filter_kill_global>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1399
+msgid ""
+"Default for quick (1 key) kill filter global. ON=apply to all groups, "
+"OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1399
+#, no-wrap
+msgid "B<default_filter_kill_header>"
+msgstr ""
+
+# type: ta
+#: ../tin.5:1404 ../tin.5:1432
+#, no-wrap
+msgid ""
+"\\w'0,1   'u +\\w'\\'\\'Message-ID:\\'\\' & last \\'\\'References:\\'\\' "
+"entry only'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1413 ../tin.5:1441
+#, no-wrap
+msgid ""
+"0\t''Subject:'' (case sensitive)\n"
+"1\t''Subject:'' (ignore case)\n"
+"2\t''From:'' (case sensitive)\n"
+"3\t''From:'' (ignore case)\n"
+"4\t''Message-ID:'' & full ''References:'' line\n"
+"5\t''Message-ID:'' & last ''References:'' entry only\n"
+"6\t''Message-ID:'' entry only\n"
+"7\t''Lines:''\n"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1415
+#, no-wrap
+msgid "B<default_filter_select_case>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1419
+#, no-wrap
+msgid "B<default_filter_select_expire>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1423
+msgid ""
+"Default for quick (1 key) auto-selection filter expire. ON = limit to "
+"'B<default_filter_days>', OFF = don't ever expire. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1423
+#, no-wrap
+msgid "B<default_filter_select_global>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1427
+msgid ""
+"Default for quick (1 key) auto-selection filter global. ON=apply to all "
+"groups, OFF=apply to current group. Default is ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1427
+#, no-wrap
+msgid "B<default_filter_select_header>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1443
+#, no-wrap
+msgid "B<default_goto_group>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1445
+#, no-wrap
+msgid "B<default_group_search>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1447
+#, no-wrap
+msgid "B<default_mail_address>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1449
+#, no-wrap
+msgid "B<default_move_group>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1451
+#, no-wrap
+msgid "B<default_pattern>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1453
+#, no-wrap
+msgid "B<default_pipe_command>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1455
+#, no-wrap
+msgid "B<default_post_newsgroups>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1457
+#, no-wrap
+msgid "B<default_post_subject>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1459
+#, no-wrap
+msgid "B<default_range_group>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1461
+#, no-wrap
+msgid "B<default_range_select>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1463
+#, no-wrap
+msgid "B<default_range_thread>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1465
+#, no-wrap
+msgid "B<default_repost_group>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1467
+#, no-wrap
+msgid "B<default_save_file>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1469
+#, no-wrap
+msgid "B<default_save_mode>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1471
+#, no-wrap
+msgid "B<default_select_pattern>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1473
+#, no-wrap
+msgid "B<default_shell_command>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1475
+#, no-wrap
+msgid "B<default_subject_search>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1477
+#, no-wrap
+msgid "B<draw_arrow>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1481
+msgid ""
+"Allows groups/articles to be selected by an arrow '-E<gt>' if set ON or by "
+"an highlighted bar if set OFF."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1486
+msgid ""
+"The format string used to create the editor start command with parameters.  "
+"Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename (e.g., "
+"/bin/vi +7 .article)."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1486
+#, no-wrap
+msgid "B<force_screen_redraw>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1490
+#, no-wrap
+msgid "B<getart_limit>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1497
+msgid ""
+"If B<getart_limit> is E<gt> 0 not more than B<getart_limit> articles/group "
+"are fetched from the server. If B<getart_limit> is E<lt> 0 B<tin>(1)  will "
+"start fetching articles from your first unread minus absolute value of "
+"B<getart_limit>. Default is 0, which means no limit."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1497
+#, no-wrap
+msgid "B<goto_next_unread>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1508
+#, no-wrap
+msgid "B<groupname_max_length>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1512
+#, no-wrap
+msgid "B<hide_uue>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1522
+msgid ""
+"If set to 'No' then raw uuencoded data is displayed. If set to 'Yes' then "
+"sections of uuencoded data will be shown with a single tag line showing the "
+"size and filename (much the same as a MIME attachment).  If set to 'Hide "
+"all' then any line that looks like uuencoded data will be folded into a tag "
+"line. This is useful when uuencoded data is split across more than one "
+"article but can also lead to false positives. This setting can also be "
+"toggled in the article viewer.  Default is 'No'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1522
+#, no-wrap
+msgid "B<inews_prog>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1529
+msgid ""
+"Path, name and options of external B<inews>(1).  If you are reading via NNTP "
+"the default value is \"--internal\" (use built-in NNTP inews), else it is "
+"\"inews -h\". The article is passed to B<inews_prog> on STDIN via 'E<lt> "
+"article'."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1529
+#, no-wrap
+msgid "B<info_in_last_line>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1535
+msgid ""
+"If ON, show current group description or article subject in the last line "
+"(not in the pager and global menu) - B<ToggleInfoLastLine> ('B<i>' toggles "
+"setting). This facility is useful as the full width of the screen is "
+"available to display long subjects. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1535
+#, no-wrap
+msgid "B<interactive_mailer>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1541
+msgid ""
+"If greater than 0 your mailreader will be invoked earlier for reply so you "
+"can use more of its features (e.g. MIME, pgp, ...). 1 means include headers, "
+"2 means don't include headers (old use_mailreader_i=ON option). 0 turns off "
+"usage. This option has to suit B<mailer_format>. Default is 0."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1541
+#, no-wrap
+msgid "B<inverse_okay>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1545
+#, no-wrap
+msgid "B<keep_dead_articles>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1550
+#, no-wrap
+msgid "B<kill_level>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1554
+msgid ""
+"This option controls the processing and display of articles that are "
+"killed. There are 3 options, default is 0 (B<Kill only unread arts>)."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1562
+msgid ""
+"B<Kill only unread arts> is the 'traditional' behavior of B<tin>(1).  Only "
+"unread articles are killed once only by marking them read. As filtering only "
+"happens on unread articles with B<kill_level> set to 0, B<art_marked_killed> "
+"and B<art_marked_read_selected> are only shown once. When you reenter the "
+"group the mark will be gone."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1578
+#, no-wrap
+msgid "B<mail_address>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1588
+#, no-wrap
+msgid "B<mail_quote_format>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1593
+#, no-wrap
+msgid "B<mailbox_format>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1601
+msgid ""
+"Select one of the following mailbox-formats: MBOXO (default, except on SCO), "
+"MBOXRD or MMDF (default on SCO). See B<mbox>(5)  for more details on MBOXO "
+"and MBOXRD and B<mmdf>(5)  for more details about MMDF."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1610
+msgid ""
+"The directory where articles/threads are to be saved in B<mbox>(5)  "
+"format. This feature is mainly for use with the B<elm>(1)  mail program. It "
+"allows the user to save articles/threads/groups simply by giving '=' as the "
+"filename to save to. Default is I<${TIN_HOMEDIR:-\"$HOME\"}/Mail>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1610
+#, no-wrap
+msgid "B<mailer_format>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1616
+msgid ""
+"The format string used to create the mailer command with parameters that is "
+"used for mailing articles to other people. Default is '%M \"%T\" E<lt> %F' "
+"(e.g., /bin/mail \"iain\" E<lt> .article). The flexible format allows other "
+"mailers with different command line parameters to be used such as"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1621
+#, no-wrap
+msgid ""
+"sendmail -oem -t E<lt> %F\n"
+"elm -s \"%S\" \"%T\" E<lt> \"%F\"\n"
+"claws-mail --compose \"mailto:%T?subject=%S&insert=%F\"\n"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1625
+msgid ""
+"B<interactive_mailer> must be set adequate. The following substitutions are "
+"supported:"
+msgstr ""
+
+# type: ta
+#: ../tin.5:1627
+#, no-wrap
+msgid "\\w'%S'u +\\w'subject-field'u"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1634
+#, no-wrap
+msgid ""
+"%F\tfilename\n"
+"%M\tdefault_mailer\n"
+"%S\tsubject-field\n"
+"%T\tto-filed\n"
+"%U\tusername\n"
+"%%\t%\n"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1647
+#, no-wrap
+msgid "B<metamail_prog>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1659
+msgid ""
+"Path, name and options of external B<metamail>(1)  program used to view "
+"non-textual parts of articles.  To use the built-in viewer, set to "
+"--internal. This is the default value when B<metamail>(1)  is not "
+"installed. Leave it blank if you don't want any automatic viewing of "
+"non-textual attachments. The 'V' command can always be used to manually view "
+"any attachments. See also B<ask_for_metamail>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1659 ../tin.5:2299
+#, no-wrap
+msgid "B<mm_charset>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1672
+msgid ""
+"Charset supported locally, which is also used for MIME header (charset "
+"parameter and charset name in header encoding) in mail and news postings. If "
+"B<MIME_STRICT_CHARSET> is defined at the compile time, text in charset other "
+"than the value of this parameter is considered not displayable and "
+"represented as '?'. Otherwise, all character sets are regarded as compatible "
+"with the display. If it's not set, the value of the environment variable "
+"$B<MM_CHARSET> is used. US-ASCII or compile-time default is used in case "
+"neither of them is defined. If your system supports B<iconv>(3), this option "
+"is disabled and you should use B<mm_network_charset> instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1683
+msgid ""
+"Charset used for posting and MIME headers; replaces B<mm_charset>.  "
+"Conversion between B<mm_network_charset> and local charset (determined via "
+"B<nl_langinfo>(3))  is done via B<iconv>(3), if this function is not "
+"available on your system this option is disabled and you have to use "
+"B<mm_charset> instead.  B<mm_network_charset> is limited to one of the "
+"following charsets:"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1692
+#, no-wrap
+msgid "B<mono_markdash>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1697
+msgid ""
+"Character attribute of words emphasized like _this_. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1697
+#, no-wrap
+msgid "B<mono_markslash>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1702
+msgid ""
+"Character attribute of words emphasized like /this/. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1702
+#, no-wrap
+msgid "B<mono_markstar>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1707
+msgid ""
+"Character attribute of words emphasized like *this*. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1707
+#, no-wrap
+msgid "B<mono_markstroke>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1712
+msgid ""
+"Character attribute of words emphasized like -this-. It is depending on your "
+"terminal which attributes are usable. See also B<word_h_display_marks> and "
+"B<word_highlight>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1712
+#, no-wrap
+msgid "B<newnews>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1718
+msgid ""
+"These are internal timers used by B<tin>(1)  to keep track of new "
+"newsgroups. Do not change them unless you understand what they are for."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1725
+msgid ""
+"Which news headers you wish to see. If you want to see _all_ the headers, "
+"place an '*' as this value. This is the only way a wildcard can be used. If "
+"you enter 'X-' as the value, you will see all headers beginning with 'X-' "
+"(like X-Alan or X-Pape). You can list more than one by delimiting with "
+"spaces. Not defining anything turns off this option."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1734
+msgid ""
+"Same as B<news_headers_to_display> except it denotes the opposite. An "
+"example of using both options might be if you thought 'X-' headers were A "
+"Good Thing(tm), but thought Alan and Pape were miscreants... well then you "
+"would do something like this: B<news_headers_to_display=X-> "
+"B<news_headers_to_not_display=X-Alan X-Pape> Not defining anything turns off "
+"this option."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1739
+#, no-wrap
+msgid "B<normalization_form>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1743
+msgid ""
+"The normalization form which should be used to normalize unicode input.  The "
+"possible values are:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1759
+msgid ""
+"Some normalization modes are only available if they are supported by the "
+"library B<tin>(1)  uses to do the normalization. Default is NFKC."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1763
+msgid ""
+"If ON put cursor at first unread article in group otherwise at last "
+"article.  Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1779
+msgid ""
+"MIME encoding of the body in news message, if necessary. (8bit, base64, "
+"quoted-printable, 7bit). Default is 8bit, which leads to no encoding.  "
+"base64 and quoted-printable are usually undesired on usenet."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1786
+msgid ""
+"If ON, then B<tin>(1)  will start an appropriate viewer program to display "
+"any files that were post processed and uudecoded. The program is determined "
+"using the mailcap file.  Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1792
+msgid ""
+"This specifies whether to perform post processing on saved articles.  "
+"Because the shell archive may contain commands you may not want to be "
+"executed, be careful when extracting shell archives.  The following values "
+"are allowed:"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1800
+msgid ""
+"B<Shell archives>, unpacking of multi-part B<shar>(1)  files only. Because "
+"the shell archive may contain commands you may not want to be executed, be "
+"careful with this option."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1803
+#, no-wrap
+msgid "B<posted_articles_file>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1813
+#, no-wrap
+msgid "B<printer>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1823
+msgid ""
+"The printer program with options that is to be used to print articles. The "
+"default is B<lpr>(1)  for BSD machines and B<lp>(1)  for SysV "
+"machines. Printing from B<tin>(1)  may have been disabled by the System "
+"Administrator."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1831
+msgid ""
+"If ON show empty ''Followup-To:'' header when editing an article.  Default "
+"is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1837
+#, no-wrap
+msgid "B<quote_style>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1843
+msgid ""
+"This bit coded integer value controls how articles are to be quoted when "
+"following up or replying to them. Any of the following options can be "
+"combined by adding all relevant values. Default is 5, which means that quote "
+"characters are compressed and empty lines are quoted."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1848
+msgid ""
+"B<Compress quotes> Compress quote characters together when quoting multiple "
+"times (for example, 'E<gt> E<gt> E<gt>' will be turned into "
+"'E<gt>E<gt>E<gt>'). This option is on by default."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1854
+msgid ""
+"B<Quote Signatures> This option is off by default. Signatures are always "
+"quoted regardless of this option when you are viewing an article in raw mode "
+"B<PageToggleRaw> ('B<^H>') and followup or reply to it. Signatures are never "
+"quoted regardless of this option when B<show_signatures> is off."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1856
+msgid "B<Quote empty lines> This option is on by default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1857
+#, no-wrap
+msgid "B<quote_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1864
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote>. If B<quote_regex> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1864
+#, no-wrap
+msgid "B<quote_regex2>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1871
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote2>. If B<quote_regex2> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1871
+#, no-wrap
+msgid "B<quote_regex3>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1878
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching lines are shown in B<col_quote3>. If B<quote_regex3> is blank, then "
+"B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1878
+#, no-wrap
+msgid "B<recent_time>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1882
+#, no-wrap
+msgid "B<render_bidi>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1886
+#, no-wrap
+msgid "B<reread_active_file_secs>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1895
+#, no-wrap
+msgid "B<score_limit_kill>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1899
+#, no-wrap
+msgid "B<score_limit_select>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1903
+#, no-wrap
+msgid "B<score_kill>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1907
+#, no-wrap
+msgid "B<score_select>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:1911
+#, no-wrap
+msgid "B<scroll_lines>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1919
+msgid ""
+"The number of lines that will be scrolled up/down in the article pager when "
+"using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get "
+"traditional page-by-page scrolling. Set to -1 to get page-by-page scrolling "
+"where the top/bottom line is carried over onto the next page.  This setting "
+"supersedes show_last_line_prev_page=ON. Set to -2 to get half-page "
+"scrolling. This setting supersedes full_page_scroll=OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1936
+#, no-wrap
+msgid "B<show_description>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1945
+msgid ""
+"If ON show a short group description text after newsgroup name at the group "
+"selection level. The ''B<-d>'' command-line flag will override the setting "
+"and turn descriptions off. The text used is taken from the "
+"I<${TIN_LIBDIR:-NEWSLIBDIR}/newsgroups> file and if supported (requires "
+"B<tin>(1)  to be build with mh-mail-handling support) from "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/mailgroups> for mailgroups. Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1956
+msgid ""
+"B<Lines>, in article listing the line count of an article will be displayed "
+"and in thread listing the line count of first (unread)  article will be "
+"displayed."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1967
+msgid ""
+"If ON show only new/unread articles otherwise show all articles. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1967
+#, no-wrap
+msgid "B<show_only_unread_groups>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1974
+msgid "If OFF don't show signatures when displaying articles. Default is ON."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1988
+msgid ""
+"The path that specifies the signature file to use when posting, following up "
+"to or replying to an article. If the path is a directory then the signature "
+"will be randomly generated from files that are in the specified "
+"directory. If the path starts with a ! the program the path points to will "
+"be executed to generate a signature.  B<tin>(1)  will pass the name of the "
+"current newsgroup as argument to the program. --none will suppress any "
+"signature.  Default is I<${TIN_HOMEDIR:-\"$HOME\"}/.Sig>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:1991
+#, no-wrap
+msgid "B<slashes_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:1998
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markslash> or B<mono_markslash>. If "
+"B<slashes_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2044
+#, no-wrap
+msgid "B<spamtrap_warning_addresses>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2049
+msgid ""
+"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 "
+"these strings. The matching is case-insensitive."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2049
+#, no-wrap
+msgid "B<stars_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2056
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstar> or B<mono_markstar>. If "
+"B<stars_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2061
+#, no-wrap
+msgid "B<strip_blanks>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2065
+#, no-wrap
+msgid "B<strip_bogus>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2073
+#, no-wrap
+msgid "B<strip_newsrc>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2077
+#, no-wrap
+msgid "B<strokes_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2084
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markstroke> or B<mono_markstroke>.  If "
+"B<strokes_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2089
+msgid ""
+"Decode German style TeX umlaut codes to ISO If ON, show \"a as Umlaut-a, "
+"etc. Default is OFF. This behavior can also be toggled in the article viewer "
+"via B<PageToggleTex2iso> ('B<\">')."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2099
+msgid ""
+"Defines which threading method to use. The choices are: 0) Don't thread, 1) "
+"Thread on Subject only 2) Thread on References only, 3) Thread on References "
+"then Subject (default)  4) Thread multipart articles on Subject.  5) Thread "
+"on Percentage Match of the Subjects It's also possible to set the threading "
+"type on a per group basis by setting the group attribute variable "
+"B<thread_articles> to 0 - 5 in the file "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/attributes>."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2104
+msgid ""
+"Defines how close the subjects must match while threading by Percentage "
+"Match for threads to be considered part of a single thread. This value is in "
+"the range 0 to 100. The default is 75."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2108
+#, no-wrap
+msgid "B<thread_score>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2120
+#, no-wrap
+msgid "B<translit>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2151
+#, no-wrap
+msgid "B<underscores_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2158
+msgid ""
+"A regular expression that will be applied when reading articles. All "
+"matching words are shown in B<col_markdash> or B<mono_markdash>. If "
+"B<undescores_regex> is blank, then B<tin>(1)  uses a built-in default."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2158
+#, no-wrap
+msgid "B<unlink_article>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2162
+msgid ""
+"If ON remove I<${TIN_HOMEDIR:-\"$HOME\"}/.article> after posting. Default is "
+"ON."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2162
+#, no-wrap
+msgid "B<url_handler>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2167
+msgid ""
+"The program that will be run when launching URLs in the article viewer using "
+"B<PageViewUrl> ('B<U>'). The actual URL will be appended to this. Default is "
+"B<url_handler.pl %s>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2167
+#, no-wrap
+msgid "B<url_highlight>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2170
+#, no-wrap
+msgid "B<use_color>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2175
+msgid "If enabled B<tin>(1)  uses ANSI-colors. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2175
+#, no-wrap
+msgid "B<use_keypad>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2178
+msgid "Use scroll keys on keypad. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2178
+#, no-wrap
+msgid "B<use_mouse>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2184
+#, no-wrap
+msgid "B<use_slrnface>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2196
+msgid ""
+"If enabled B<slrnface>(1)  will be used to interpret the ''X-Face:'' "
+"header. For this option to have any effect, B<tin>(1)  must be running in an "
+"B<xterm>(1x)  and B<slrnface>(1)  must be in your $B<PATH>. Default is OFF."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2196
+#, no-wrap
+msgid "B<utf8_graphics>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2200
+#, no-wrap
+msgid "B<verbatim_begin_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2204
+msgid ""
+"A regular expression that tin will use to find the begin of a verbatim "
+"block.  Default is #v+"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2204
+#, no-wrap
+msgid "B<verbatim_end_regex>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2208
+msgid ""
+"A regular expression that tin will use to find the end of a verbatim block.  "
+"Default is #v-"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2212
+msgid "If ON verbatim blocks will be detected.  Default is ON"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2212
+#, no-wrap
+msgid "B<wildcard>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2224
+msgid ""
+"Allows you to select how B<tin>(1)  matches strings. The default is 0 and "
+"uses the wildmat notation, which is how this has traditionally been "
+"handled. Setting this to 1 allows you to use B<perl>(1)  compatible regular "
+"expressions B<pcre>(3).  You will probably want to update your filter file "
+"if you use this regularly. NB: Newsgroup names will always be matched using "
+"the wildmat notation."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2224
+#, no-wrap
+msgid "B<word_h_display_marks>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2236
+#, no-wrap
+msgid "B<word_highlight>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2244
+msgid ""
+"Enable word highlighting. See B<word_h_display_marks> for the options "
+"available. If B<use_color> is enabled the colors specified in "
+"B<col_markdash>, B<col_markslash>, B<col_markstar> and B<col_markstroke> are "
+"used for word highlighting else the character attributes specified in "
+"B<mono_markdash>, B<mono_markslash>, B<mono_markstar> and B<mono_markstroke> "
+"are used."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2244
+#, no-wrap
+msgid "B<wrap_column>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2260
+#, no-wrap
+msgid "B<xpost_quote_format>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2276
+msgid ""
+"Yet another global configuration file with \"I<variable>=I<value>\" "
+"pairs. This one is for the more general options which usually can't be "
+"controlled via I<${TIN_LIBDIR:-NEWSLIBDIR}/tinrc> and/or "
+"I<${TIN_HOMEDIR:-\"$HOME\"}/.tin/tinrc> like resetting (to override the "
+"built-in default) the I<newslibdir>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2276
+#, no-wrap
+msgid "B<domainname>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2279
+msgid "Sets a global domain name used in From lines"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2283
+msgid ""
+"Defines the name of your organization. $B<ORGANIZATION> overrides any "
+"specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2283
+#, no-wrap
+msgid "B<newslibdir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2288
+msgid ""
+"Defines the default place for some configuration files, common values are "
+"I</usr/lib/news>, I</var/lib/news>, I</usr/local/lib/news> or "
+"I</news/db>. $B<TIN_LIBDIR> overrides any specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2288
+#, no-wrap
+msgid "B<bugaddress>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2294
+msgid ""
+"Defines the email address to which users can send bug reports using a "
+"built-in function. The default points to a developers mailing list located "
+"at tin.org. You might want to change this address to one of your local "
+"administration if you want to deal with your lusers problems on your own."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2294
+#, no-wrap
+msgid "B<inewsdir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2299
+msgid "Defines the directory containing of the B<inews>(1)  executable"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2303
+msgid ""
+"Default charset to be used in MIME's ''Content-Type:'' "
+"header. $B<MM_CHARSET> overrides any specified value."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2306
+msgid "Default encoding scheme use in MIME articles. 8bit might be the best value."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2310
+msgid ""
+"Default encoding scheme use in MIME letters. quoted-printable is a good "
+"choice here."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2310
+#, no-wrap
+msgid "B<disable_gnksa_domain_check>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2313
+msgid "Allow unregistered top level domains"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2313
+#, no-wrap
+msgid "B<disable_sender>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2317
+msgid ""
+"Don't generate a ''Sender:'' header. This has an effect only if "
+"B<inews_prog> is set to --internal."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2317
+#, no-wrap
+msgid "B<spooldir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2322
+msgid ""
+"Base of your newsspool (Bnews, Cnews and INN traditional spool style), "
+"common values are I</var/spool/news>, I</usr/spool/news>, I</news/spool>.  "
+"$B<TIN_SPOOLDIR> overrides any specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2322
+#, no-wrap
+msgid "B<overviewdir>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2330
+msgid ""
+"Base of your NOV database B<newsoverview>(5)  (tradspool style; might be the "
+"same dir as I<spooldir>), common values are I</var/spool/overview>, "
+"I</usr/spool/overview>, I</news/overview>. $B<TIN_NOVROOTDIR> overrides any "
+"specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2330
+#, no-wrap
+msgid "B<overviewfile>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2334
+msgid ""
+"Name of a single overview file, common values are I<.overview>, "
+"I<over.view>."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2334
+#, no-wrap
+msgid "B<overviewfmtfile>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2339
+msgid ""
+"Full pathname of your newssystem's overview.fmt file; usually the "
+"overview.fmt file is in I<newslibdir>, so you only have to change this "
+"setting if your configuration differs."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2339
+#, no-wrap
+msgid "B<activefile>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2345
+msgid ""
+"Full pathname of your newssystem's active file; usually the active file "
+"resides in I<newslibdir> and is named I<active>, so you only have to change "
+"this setting if your configuration differs. $B<TIN_ACTIVEFILE> overrides any "
+"specified value."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2345
+#, no-wrap
+msgid "B<activetimesfile>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2350
+msgid ""
+"Full pathname of your newssystem's active.times file; usually the "
+"active.times file is I<newslibdir>, so you only have to change this setting "
+"if your configuration differs."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2350
+#, no-wrap
+msgid "B<newsgroupsfile>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2355
+msgid ""
+"Full pathname of your newssystem's newsgroups file; usually the newsgroups "
+"file is in I<newslibdir>, so you only have to change this setting if your "
+"configuration differs."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2355
+#, no-wrap
+msgid "B<subscriptionsfile>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2360
+msgid ""
+"Full pathname of your newssystem's subscriptions file; usually the "
+"subscriptions file is in I<newslibdir>, so you only have to change this "
+"setting if your configuration differs."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2364
+msgid "I</usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2368
+msgid ""
+"translation into language specified in $B<LC_ALL>, $B<LC_MESSAGES> or "
+"$B<LANG>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2382
+msgid ""
+"This file lists the newsgroups that the local site receives. Each newsgroup "
+"should be listed only once. Each line specifies one group; within each "
+"newsgroup, articles are assigned unique names, which are monotonically "
+"increasing numbers."
+msgstr ""
+
+#.  TODO: IIRC tin issues just a warning in that case?
+# type: Plain text
+#: ../tin.5:2387
+msgid ""
+"If an article is posted to newsgroups not mentioned in this file, those "
+"newsgroups are ignored.  If no valid newsgroups are specified, the article "
+"is rejected."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2390
+msgid ""
+"Each line consists of four space-separated fields \"I<name> I<highmark> "
+"I<lowmark> I<flags>\"."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2390 ../tin.5:2443
+#, no-wrap
+msgid "B<name>"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2393
+#, no-wrap
+msgid "B<highmark>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2396
+msgid "is the highest article number that has been used in that newsgroup"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2396
+#, no-wrap
+msgid "B<lowmark>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2403
+msgid ""
+"is the lowest article number in the group; this number is not guaranteed to "
+"be accurate, and should only be taken to be a hint. Note that because of "
+"article cancellations, there may be gaps in the numbering sequence. If the "
+"lowest article number is greater then the highest article number, then there "
+"are no articles in the newsgroup."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2403
+#, no-wrap
+msgid "B<flags>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2406
+msgid "can be one of those"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2407
+#, no-wrap
+msgid "B<y>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2410
+msgid "local postings are allowed"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2410
+#, no-wrap
+msgid "B<n>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2413
+msgid "no local postings are allowed, only remote ones"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2413
+#, no-wrap
+msgid "B<m>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2416
+msgid "the group is moderated and all postings must be approved"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2416
+#, no-wrap
+msgid "B<j>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2419
+msgid "articles in this group are not kept, but only passed on"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2419
+#, no-wrap
+msgid "B<x>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2422
+msgid "articles cannot be posted to this newsgroup"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2422
+#, no-wrap
+msgid "B<=foo.bar>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2425
+msgid "articles are locally filed into the ''foo.bar'' group"
+msgstr ""
+
+# type: TP
+#: ../tin.5:2426 ../tin.5:2453 ../tin.5:2476
+#, no-wrap
+msgid "B<tin>(1)"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2432
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST (B<RFC3977>) command "
+"instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2443
+msgid ""
+"This file provides a chronological record of when newsgroups are created. It "
+"is normally updated by the local newsserver (e.g.  B<innd>(8))  whenever a "
+"new group is created. Each line consist of three space-separated fields "
+"\"I<name> I<time> I<creator>\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2450
+msgid ""
+"is the time when the group was created, expressed as the number of seconds "
+"since the epoch."
+msgstr ""
+
+# type: TP
+#: ../tin.5:2450
+#, no-wrap
+msgid "B<creator>"
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2453
+msgid "is the electronic mail address of the person who created the group."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2459
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the NEWGROUPS (B<RFC3977>) command "
+"instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2470
+msgid ""
+"This file provides short descriptions of each newsgroup. It is normally "
+"updated by the local newsserver (e.g.  B<innd>(8))  whenever a new group is "
+"created. Each line consist of two tab-separated fields "
+"\"I<group.name>\tI<one-line description>\"."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2482
+msgid ""
+"only tries to read the file if you read directly from the local spool, if "
+"you read news via NNTP, B<tin>(1)  uses the LIST NEWSGROUPS (B<RFC3977>) "
+"command instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2491
+msgid ""
+"This file specifies might hold a default organization to be used in the "
+"''Organization:'' header. $B<ORGANIZATION> has a higher priority if set."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2509
+msgid ""
+"This file specifies the organization of the news overview database (see also "
+"B<newsoverview>(5)).  The order of lines in this file is important; it "
+"determines the order in which the fields will appear in the database. See "
+"also B<overview.fmt>(5).  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST OVERVIEW.FMT (B<RFC3977>) command instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2524
+msgid ""
+"This file contains a list of newsgroups - one per line - which the client "
+"should subscribe to when the user has no ${TIN_HOMEDIR:-\"$HOME\"}/.newsrc "
+"for the newsserver.  B<tin>(1)  only tries to read the file if you read "
+"directly from the local spool, if you read news via NNTP, B<tin>(1)  uses "
+"the LIST SUBSCRIPTIONS (B<RFC6048>) command instead."
+msgstr ""
+
+# type: Plain text
+#: ../tin.5:2565
+msgid ""
+"B<elm>(1), B<inews>(1), B<ispell>(1), B<lp>(1), B<lpr>(1), B<metamail>(1)  "
+"B<perl>(1), B<pgp>(1), B<rn>(1), B<shar>(1), B<slrnface>(1), B<tin>(1), "
+"B<xterm>(1x), B<iconv>(3), B<iconv_open>(3), B<nl_langinfo>(3), B<pcre>(3), "
+"B<strftime>(3), B<system>(3), B<mailcap>(4), B<active>(5), B<mbox>(5), "
+"B<mmdf>(5), B<newsoverview>(5), B<overview.fmt>(5), B<innd>(8), B<RFC1524>, "
+"B<RFC2045>, B<RFC2046>, B<RFC2047>, B<RFC2048>, B<RFC2980>, B<RFC3977>, "
+"B<RFC4643>, B<RFC5322>, B<RFC5536>, B<RFC5537>, B<RFC6048>"
+msgstr ""
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/mailcap.sample tin-2.0.0/doc/mailcap.sample
--- tin-1.8.3/doc/mailcap.sample	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/mailcap.sample	2011-04-17 16:04:27.118565661 +0200
@@ -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;\
+	formail > '%s.mbox' < '%s' \&\& mutt -m mbox -f '%s.mbox' \&\& rm -f '%s.mbox';\
 	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 --exclude='.bzr*' tin-1.8.3/doc/pgp.txt tin-2.0.0/doc/pgp.txt
--- tin-1.8.3/doc/pgp.txt	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/pgp.txt	2011-05-03 15:10:10.254826866 +0200
@@ -47,7 +47,7 @@ There are 3 places where pgp is invoked:
 
    PGP2:  pgp -f $PGPOPTS <article >/dev/null
    PGP5:  pgpv -f $PGPOPTS <article >/dev/null
-   GPG:   gpg $PGPOPTS --nobatch --decrypt <article >/dev/null
+   GPG:   gpg $PGPOPTS <article >/dev/null
 
    If the article has (-----BEGIN PGP PUBLIC KEY BLOCK-----)
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/plp_snprintf.3 tin-2.0.0/doc/plp_snprintf.3
--- tin-1.8.3/doc/plp_snprintf.3	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/plp_snprintf.3	2011-04-17 16:04:27.430613150 +0200
@@ -149,7 +149,7 @@ as modified by the visible_control varia
 The ``char *'' argument is expected to be a pointer to an array
 of character type (pointer to a string).
 Characters from the array are written up to (but not including) a terminating NUL character; if a precision is specified, no more than the number specified are written.
-Characters are writen to the string as modified by the visible_control variable value.
+Characters are written to the string as modified by the visible_control variable value.
 .IP %
 A `%' is written. No argument is converted. The complete conversion specification is `%%'.
 .LP
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/rcvars.txt tin-2.0.0/doc/rcvars.txt
--- tin-1.8.3/doc/rcvars.txt	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/rcvars.txt	2011-04-17 16:04:27.498623497 +0200
@@ -47,12 +47,14 @@ Adding a new attribute:
 . Add it to the list of enumerated types at the beginning of attrib.c
 . In read_attributes_file() add a MATCH_<TYPE> entry to parse it in
   under the appropriate first letter section.
-. In do_set_attrib(), add a corresponding SET_<TYPE> entry
+. In set_attrib() and assign_attributes_to_groups(), add a corresponding
+  SET_<TYPE> entry
 . In write_attributes_file(), add a minimal entry in the header to
-  describe the usage of the attribute
-  Add code to write out the attribute in the for_each_group() loop
-  [ Currently unused, but wise to keep it up to date ]
-. Add code to write out the attribute in dump_attributes()
+  describe the usage of the attribute and add code to write out the
+  attribute
+. Add code to write out the attribute in dump_attributes() and dump_scopes()
+. In options_menu.c:change_config_file() add UPDATE_(INT_|STRING_)ATTRIBUTES
+  under the appropriate case OPT_* section
 . Free up the attribute in memory.c:free_attributes_array() if needed
 
 Where possible try to keep the ordering of the attributes in the various
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/tin.1 tin-2.0.0/doc/tin.1
--- tin-1.8.3/doc/tin.1	2007-02-01 14:08:24.000000000 +0100
+++ tin-2.0.0/doc/tin.1	2011-08-22 00:18:21.777014255 +0200
@@ -3,23 +3,13 @@
 .\" Module    : tin.1
 .\" Author    : I. Lea, U. Janssen
 .\" Created   : 1991-08-23
-.\" Updated   : 2007-02-01
+.\" Updated   : 2011-08-23
 .\" Notes     : use american english; still needs some work, e.g.:
 .\"             - document authorization (.newsauth)
 .\"             - document random organization feature
 .\"
-.\" Macros
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
 .\"
-.TH tin 1 "February 1st, 2007" "1.8.3" "A Usenet newsreader"
+.TH tin 1 "August 23rd, 2011" "2.0.0" "A Usenet newsreader"
 .\"
 .\"
 .SH NAME
@@ -34,8 +24,9 @@ tin, rtin \- A Usenet newsreader
 .RB [\| \-ArzxX \|]\|]
 .RB [\|[\| \-R \||\| \-S \|]
 .RB \|\| \-s
-.IR News-dir \|]
+.IR News_dir \|]
 .RB [\| \-cuvZ \|]
+.RB [\| \-4 \||\| \-6 \|]
 .RB [\| \-N \||\| \-M
 .IR address \|]
 .RB [\| \-o \||\| \-w \|]\|]
@@ -63,7 +54,7 @@ option) via a NNTP (Network News Transpo
 automatically utilize NOV
 .BR newsoverview (5)
 style index files if available locally or via the NNTP [X]OVER command
-(\fBRFC2980\fP).
+(\fBRFC2980\fP, \fBRFC3977\fP).
 .PP
 .B tin
 has four separate levels of operation: Selection level, Group level,
@@ -72,7 +63,7 @@ command to view a list of the commands a
 level.
 .PP
 On startup \fBtin\fP will show a list of the newsgroups found in
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR. An arrow '\->' or highlighted
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR. An arrow '\->' or highlighted
 bar will point to the first newsgroup. Move to a group by using the
 terminal arrow keys (terminal dependent) or \fBDown\fP ('\fBj\fP')
 and \fBUp\fP ('\fBk\fP'). Use PgUp/PgDn (terminal dependent) or
@@ -110,6 +101,12 @@ Unread news
 .\"
 .SH OPTIONS
 .TP 12
+.B \-4
+Force connecting via IPv4 to the remote NNTP server.
+.TP
+.B \-6
+Force connecting via IPv6 to the remote NNTP server.
+.TP
 .B \-a
 Toggle ANSI color (default is off).
 .TP
@@ -118,22 +115,23 @@ Force authentication on initial connect.
 .TP
 .B \-c
 Create/update index files for every group in
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR or file specified by the ''\fB\-f\fP''
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR or file specified by the ''\fB\-f\fP''
 option and mark all articles as read.
 .TP
 .B \-d
 Don't load newsgroup descriptions (interactive mode).
 .TP
 .BI \-D " debug-level"
-Enter debug-level (1 = NNTP, 2 = all, 3 = newsrc, 4 = memory allocation).
+Enter debug-level (1 = NNTP, 2 = filter, 4 = newsrc, 8 = threading, 16 =
+memory, 32 = attributes, 64 = misc).
 .TP
 .BI \-f " file"
 Use the specified file of subscribed to newsgroups in place of
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR.
 .TP
 .BI \-g " server"
 Use the server and newsrc specified in
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/newsrctable\fR.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fR.
 .TP
 .BI \-G " article-limit"
 Limit the number of articles/group to retrieve from the server.
@@ -147,22 +145,22 @@ started.
 .TP
 .BI \-I " dir"
 Directory in which to store newsgroup index files. Default is
-\fI${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news\fR.
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news\fR.
 This option has no effect if \fBtin\fP retrieves its index files via
 NNTP and \fBcache_overview_files\fP is turned off.
 .TP
 .BI \-l
 Get number of articles per group from the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file. If
-reading via NNTP this is done with the LIST command (\fBRFC977\fP). This
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file. If
+reading via NNTP this is done with the LIST command (\fBRFC3977\fP). This
 might result in incorrect article counts but is usually faster than the
 default which is to read the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file
 (either directly or via LIST) and then check the article count via
-NNTP GROUP command (\fBRFC977\fP) ''\fB\-ln\fP''.
+NNTP GROUP command (\fBRFC3977\fP) ''\fB\-ln\fP''.
 .TP
 .BI \-m " dir"
-Mailbox directory to use. Default is \fI${TIN_HOMEDIR\-"$HOME"}/Mail\fR.
+Mailbox directory to use. Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fR.
 .TP
 .BI \-M " user"
 Mail unread articles to specified user for later reading. For more
@@ -170,8 +168,8 @@ information read section "AUTOMATIC MAIL
 .TP
 .B \-n
 Only load groups from the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file that are
-subscribed to in the user's \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR. This
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file that are
+subscribed to in the user's \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR. This
 allows a noticeable speedup when connecting via a slow line, but \fBtin\fP
 can not tell which groups are moderated. See also ''\fB\-l\fP''.
 .TP
@@ -204,7 +202,7 @@ Read news saved by the ''\fB\-S\fP'' opt
 .TP
 .BI \-s " dir"
 Save/read articles to/in directory. Default is
-\fI${TIN_HOMEDIR\-"$HOME"}/News\fR.
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fR.
 .TP
 .B \-S
 Save unread articles for later reading by the ''\fB\-R\fP'' option. For more
@@ -212,7 +210,7 @@ information read section "AUTOMATIC MAIL
 .TP
 .B \-u
 Create/update index files for every group in
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR or file specified by the ''\fB\-f\fP''
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR or file specified by the ''\fB\-f\fP''
 option. This option is disabled if \fBtin\fP retrieves its index files via a
 NNTP server and \fBcache_overview_files\fP is turned off.
 .TP
@@ -231,8 +229,8 @@ quick, it should be used with ''\fB\-n\f
 No posting mode. You cannot post articles if you use this option.
 .TP
 .B \-X
-No overwrite mode. \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR and files in
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin\fR
+No overwrite mode. \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR and files in
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin\fR
 will not be overwritten but may be created if they don't exist.
 .TP
 .B \-z
@@ -248,7 +246,7 @@ and 2 that new/unread news exists. Usefu
 .PP
 \fBtin\fP can also dynamically change its options by the \fBOptionMenu\fP
 ('\fBM\fP') command. Any changes are written to
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR. For more information see section
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR. For more information see section
 "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES" and
 .BR tin (5).
 .PP
@@ -262,17 +260,24 @@ group, then you will automatically enter
 group selection screen will appear, but with all the matching groups present
 too, as though you had yanked just those groups in.
 .PP
+With the ''\fB-w\fP'' flag a given group-name is used as default group to post
+to. If more than one group or a wildcard is specified only the first group
+respectively the first group that matches is used.
+.PP
 Once you use \fBSelectYankActive\fP ('\fBy\fP') to yank in all active groups,
 or \fBSelectToggleReadDisplay\fP ('\fBr\fP') to toggle the read/unread
 status, then the command-line groups will be gone. You can use
 \fBSelectSyncWithActive\fP ('\fBY\fP') to reread the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file and get
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file and get
 them back.
 .PP
 NB: With the ''\fB\-n\fP'' flag, only unsubscribed groups in the
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR file (or the newsrc-file given by the
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR file (or the newsrc-file given by the
 \&''\fB\-f\fP'' command-line switch or via
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/newsrctable\fR) can be matched.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable\fR) can be matched.
+.PP
+Command-line options have higher priority than attributes and tinrc options.
+Thus, command-line option takes precedence over configured values.
 .\"
 .\"
 .SH USAGE
@@ -286,10 +291,10 @@ news system and news users.
 A user starting \fBtin\fP for the first time can be automatically subscribed
 to a list of newsgroups that are deemed appropriate by the news
 administrator. The subscriptions file should be created in your news lib
-directory (i.e., \fI${TIN_LIBDIR\-NEWSLIBDIR}/subscriptions\fR) and should
+directory (i.e., \fI${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions\fR) and should
 have file permissions set to 0644. If you read news via NNTP, then your news
-server must support the LIST SUBSCRIPTIONS command. It is part of the Common
-NNTP Extensions (\fBRFC2980\fP) and all modern servers should understand it.
+server must support the LIST SUBSCRIPTIONS command. It is part of the NNTP
+List Extensions (\fBRFC6048\fP) and all modern servers should understand it.
 .\"
 .\"
 .SS "SCREEN FORMAT"
@@ -352,7 +357,7 @@ recent articles and the number of killed
 .PP
 .nf
 .\" FIXME - make this autocenter
-            alt.sources (5B -50/23+ 0* 3o 0K).
+            alt.sources (5B \-50/23+ 0* 3o 0K)
 .fi
 .PP
 The characters after the numbers are depending to the configuration and if
@@ -402,7 +407,7 @@ At the Article level the page header has
 .\" FIXME - make this autoscale
 .nf
 Sun, 28 Dec 1997 21:21:01   de.admin.news.groups      Thread   20 of 86
-Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   RespNo  47 of 59
+Lines 50   Re: EINSPRUCH zu RESULT:de.comm.mobil.ALL   Article  47 of 59
 Urs Janssen <urs@akk.org>        at Arbeitskreis Kultur und Kommunikati
 
 article-body
@@ -419,8 +424,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
@@ -525,7 +529,7 @@ Print \fBtin\fP version information.
 Select group 4.
 .TP
 .B SelectResetNewsrc '^R'
-Reset \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR file. This will destroy all
+Reset \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR file. This will destroy all
 records of which articles have been read, so use this carefully.
 .TP
 .B SetRange '#'
@@ -636,11 +640,11 @@ Quit \fBtin\fP without saving any change
 .TP
 .B SelectYankActive 'y'
 Yanks in all groups. Toggles the displayed groups between all the groups in
-the \fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file and just
-those that are subscribed to in \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR.
+the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file and just
+those that are subscribed to in \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR.
 .TP
 .B SelectSyncWithActive 'Y'
-Reread the \fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file
+Reread the \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file
 to see if any new news has arrived since starting \fBtin\fP.
 .TP
 .B SelectMarkGrpUnread 'z' 'Z'
@@ -660,6 +664,16 @@ for more information.
 Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for
 more information.
 .TP
+.B MarkFeedRead '^X'
+Mark current article, thread, range, auto-selected (hot) articles, articles
+matching pattern or tagged articles as read. A prompt asks which type should
+be marked.
+.TP
+.B MarkFeedUnread '^W'
+Mark current article, thread, range, auto-selected (hot) articles, articles
+matching pattern or tagged articles as unread. A prompt asks which type should
+be marked.
+.TP
 .B SetRange '#'
 Choose a range of articles to be affected by the next command. See the
 section "RANGES" for more information.
@@ -760,6 +774,11 @@ with unread news.
 Cycle the display of the author through all the possible options
 for the tinrc variable \fBshow_author\fP.
 .TP
+.B GroupCancel 'D'
+Cancel (delete) or supersede (overwrite) the current article. It must
+have been posted by the same user. The cancel message can be seen in
+the newsgroup 'control' or 'control.cancel'.
+.TP
 .B EditFilter 'E'
 Edit the filter file and reload it afterwards.
 .TP
@@ -778,7 +797,10 @@ line.
 Toggle inverse video.
 .TP
 .B GroupMarkThdRead 'K'
-Mark article/thread as read and move onto the next unread article/thread.
+Mark article/thread as read and move onto the next unread article/thread. If
+a range of articles/threads is set, the range will be marked as read instead
+of the current article/thread. When tagged articles/threads are present, a
+prompt asks how to proceed.
 .TP
 .B GroupListThd 'l'
 Open the thread under the current cursor position.
@@ -873,7 +895,9 @@ effect and make the changes permanent.
 Mark current article as unread.
 .TP
 .B MarkThdUnread 'Z'
-Mark current thread as unread.
+Mark current thread as unread. If a range of threads is set, the range will
+be marked as unread instead of the current thread. When tagged threads are
+present, a prompt asks how to proceed.
 .\"--------------------------------------------------------------------
 .\"
 .SS "THREAD LISTING COMMANDS"
@@ -890,6 +914,16 @@ ARTICLES" for more information.
 Kill article(s) using a menu. Read the section "FILTERING ARTICLES"
 for more information.
 .TP
+.B MarkFeedRead '^X'
+Mark current article, thread, range, auto-selected (hot) articles, articles
+matching pattern or tagged articles as read. A prompt asks which type should
+be marked.
+.TP
+.B MarkFeedUnread '^W'
+Mark current article, thread, range, auto-selected (hot) articles, articles
+matching pattern or tagged articles as unread. A prompt asks which type should
+be marked.
+.TP
 .B SetRange '#'
 Choose a range of articles to be affected by the next command. See the
 section "RANGES" for more information.
@@ -953,6 +987,11 @@ containing unread news.
 Cycle the display of the author through all the possible options for the
 tinrc variable \fBshow_author\fP.
 .TP
+.B ThreadCancel 'D'
+Cancel (delete) or supersede (overwrite) the current article. It must
+have been posted by the same user. The cancel message can be seen in
+the newsgroup 'control' or 'control.cancel'.
+.TP
 .B EditFilter 'E'
 Edit the filter file and reload it afterwards.
 .TP
@@ -963,7 +1002,10 @@ Display the subject of the current artic
 Toggle inverse video.
 .TP
 .B ThreadMarkArtRead 'K'
-Mark article as read and move onto the next unread article.
+Mark article as read and move onto the next unread article. If a range
+of articles is set, the range will be marked as read instead of the
+current article. When tagged articles are present, a prompt asks how
+to proceed.
 .TP
 .B LookupMessage 'L'
 Look up article by ''Message\-ID:''.
@@ -1011,7 +1053,9 @@ get the chance to edit the article again
 \fBQuit\fP ('\fBq\fP').
 .TP
 .B MarkArtUnread 'z'
-Mark current article in thread as unread.
+Mark current article in thread as unread. If a range of articles is set,
+the range will be marked as unread instead of the current article. When
+tagged articles are present, a prompt asks how to proceed.
 .TP
 .B MarkThdUnread 'Z'
 Mark all articles in thread as unread.
@@ -1039,8 +1083,8 @@ Perform
 .BR pgp (1)
 operations on article.
 .TP
-.B PageToggleHeaders '^H'
-Toggles the display mode (raw including all headers vs. cooked)
+.B PageToggleRaw '^H'
+Toggles the display mode (raw including all headers vs. cooked).
 .TP
 .B MenuFilterKill '^K'
 Kill article(s) using a menu. Read the section "FILTERING ARTICLES" for more
@@ -1057,6 +1101,9 @@ headers included.
 Toggle TeX to ISO decoding for current article. The default behavior is
 taken from the \fBtex2iso_conv\fP variable in the tinrc file.
 .TP
+.B PageToggleAllHeaders '*'
+Toggles the display of all headers vs. headers in \fBnews_headers_to_display\fP.
+.TP
 .B PageToggleRot '%'
 Toggle ROT-13 decoding for this article.
 .TP
@@ -1084,15 +1131,15 @@ Forward search the text of this article.
 Backward search the text of this article.
 .TP
 .B PageSkipIncludedText ':'
-Skip to the end of the quoted text-block in this article. Quoted text
+Skip to the end of the next quoted text\-block in this article. Quoted text
 is everything which matches \fBquote_regex\fP, \fBquote_regex2\fP or
 \fBquote_regex3\fP.
 .TP
 .B PageTopThd '<'
-Goto the first article in the current thread.
+Go to the first article in the current thread.
 .TP
 .B PageBotThd '>'
-Goto the last article in the current thread.
+Go to the last article in the current thread.
 .TP
 .B PageToggleHighlight '_'
 Toggle word highlighting on/off.
@@ -1121,11 +1168,12 @@ a full explanation of these variables an
 information on filtering.
 .TP
 .B PageNextThd '^J' '<CR>'
-Goto next base article.
+Go to 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.
+Go to 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.
@@ -1164,10 +1212,10 @@ Post a followup to the current article w
 article.
 .TP
 .B PageFirstPage 'g'
-Goto the start of the article.
+Go to the start of the article.
 .TP
 .B PageLastPage 'G'
-Goto the end of the article.
+Go to the end of the article.
 .TP
 .B ToggleInfoLastLine 'i'
 Display the subject of the current article in the last line.
@@ -1240,15 +1288,15 @@ or reposting.
 Return to group selection level.
 .TP
 .B PageGotoParent 'u'
-Goto parent article.
+Go to parent article.
 .TP
 .B PageViewUrl 'U'
-Browse URLs in article. All URLs will be prompted in turn and opened
-using the \fBurl_handler\fP. '\fB<ESC>\fP' or no input will skip the
-URL.
+Display a list of URLs in the current article. See the section "URL LISTING"
+for more information.
 .TP
 .B PageViewAttach 'V'
-View or save multimedia attachments.
+Display a list of attachments of the current article. See the section
+"ATTACHMENT LISTING" for more information.
 .TP
 .B Post 'w'
 Post an article to the current group. If posting fails for some reason,
@@ -1270,23 +1318,109 @@ Mark article as unread.
 Mark the current thread as unread.
 .\"--------------------------------------------------------------------
 .\"
+.SS "URL LISTING"
+\fBPageViewUrl\fP ('\fBU\fP') displays a list of URLs in the current
+article. Besides the common moving keys, the following commands are available:
+.RS 4
+.TP 10
+.B UrlSelect '^J' '<CR>'
+The current URL will be prompted and opened using the
+\fBurl_handler\fP. '\fB<ESC>\fP' or no input will skip the URL.
+.TP
+.B SearchSubjF '/'
+URL forward search.
+.TP
+.B SearchSubjB '?'
+URL backward search.
+.TP
+.B SearchRepeat '\\\\'
+Repeat the previous search.
+.TP
+.B ShellEscape '!'
+Shell escape.
+.TP
+.B ToggleInfoLastLine 'i'
+Toggle the display of the current URL in the last line.
+.TP
+.B Help 'h'
+Help screen of commands available.
+.TP
+.B ToggleHelpDisplay 'H'
+Toggle the display of help mini menu at the bottom of the screen.
+.RE
+.\"--------------------------------------------------------------------
+.\"
+.SS "ATTACHMENT LISTING"
+\fBPageViewAttach\fP ('\fBV\fP') displays a list of attachments of the current
+article. Besides the common moving keys, the following commands are available:
+.RS 4
+.TP 10
+.B AttachPipe 'p'
+Pipe attachment into command.
+.TP
+.B AttachSave 's'
+Save current attachment / tagged attachments to disk.
+.TP
+.B AttachSelect '^J' '<CR>'
+View attachment.
+.TP
+.B AttachTag 't'
+Tag one or more attachments for saving.
+.TP
+.B AttachTagPattern '='
+Prompts for a pattern to match. All attachments whose name/description or
+content type/transfer encoding match the pattern will be tagged.
+.TP
+.B AttachToggleTagged '@'
+Reverse tagging of all attachments.
+.TP
+.B AttachUntag 'U'
+Untag all tagged attachments.
+.TP
+.B SearchSubjF '/'
+Attachment forward search.
+.TP
+.B SearchSubjB '?'
+Attachment backward search.
+.TP
+.B SearchRepeat '\\\\'
+Repeat the previous search.
+.TP
+.B GlobalPipe '|'
+Pipe attachment into command. Uses the raw attachment, no decoding is done.
+.TP
+.B ShellEscape '!'
+Shell escape.
+.TP
+.B ToggleInfoLastLine 'i'
+Toggle the display of the name/description of the current attachment in the
+last line.
+.TP
+.B Help 'h'
+Help screen of commands available.
+.TP
+.B ToggleHelpDisplay 'H'
+Toggle the display of help mini menu at the bottom of the screen.
+.RE
+.\"--------------------------------------------------------------------
+.\"
 .SS "GLOBAL OPTIONS MENU AND TINRC CONFIGURABLE VARIABLES"
 .\" FIXME - add missing descriptions
 At startup, \fBtin\fP reads in the configuration files (see also
 .BR tin (5)).
 They contain a list of variables that can be used to configure the way
 \fBtin\fP works. If it exists, the global configuration file,
-\fI${TIN_LIBDIR\-NEWSLIBDIR}/tinrc\fR is read. After that, the user's own
-configuration file is read from \fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR. The
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fR is read. After that, the user's own
+configuration file is read from \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR. The
 global file is useful for distributing system-wide defaults to new users who
 have no private tinrc yet.
 .PP
 The variables are user configurable by editing
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR directly. Most of them can also be
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR directly. Most of them can also be
 set in the GLOBAL OPTIONS MENU which is accessed by pressing
 \fBOptionMenu\fP ('\fBM\fP') at all levels. It allows the user to customize
 the behavior of \fBtin\fP. The options are saved to the file
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR when you exit \fBtin\fP so don't
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR when you exit \fBtin\fP so don't
 edit the file directly whilst \fBtin\fP is running.
 .PP
 In the options menu use the cursor keys in the usual way to move around. Use
@@ -1302,10 +1436,24 @@ option. Use \fBQuit\fP ('\fBq\fP') to ex
 your changes. Use \fBQuitTin\fP ('\fBQ\fP') to exit without keeping
 your changes.
 .PP
+The options menu provides access to the attributes menu for the current group
+by the \fBConfigToggleAttrib\fP ('\fB<TAB>\fP') command. Pressing \fBConfigToggleAttrib\fP again
+toggles back to the options menu. For more information see section "ATTRIBUTES
+MENU AND GROUP ATTRIBUTES".
+.PP
+The \fBConfigScopeMenu\fP ('\fBS\fP') command brings up the scopes menu. For
+more information see section "SCOPES MENU".
+.PP
 Here is a full list of all the available variables. The name in braces is
 the name of the corresponding setting in
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR.
 .TP 4
+.B Abbreviate long newsgroup names (abbreviate_groupname)
+If ON abbreviate long newsgroup names at group selection level and article
+level (if necessary) like this:
+news.software.readers \-> n.software.readers \-> n.s.readers \-> n.s.r.
+Default is OFF.
+.TP
 .B Add posted articles to filter (add_posted_to_filter)
 If ON add posted articles which start a new thread to filter for
 highlighting follow-ups. Default is ON.
@@ -1341,7 +1489,7 @@ The character used to show that an artic
 .B Character to show read articles (art_marked_read)
 The character used to show that an article was read. Default is ' '.
 .TP
-.B Character to show read articles (art_marked_killed)
+.B Character to show killed articles (art_marked_killed)
 The character used to show that an article was killed. Default is 'K'.
 \fBkill_level\fP must be set accordingly.
 .TP
@@ -1354,13 +1502,9 @@ If ON \fBtin\fP will ask before using a 
 (\fBmetamail_prog\fP) to display MIME messages. This only occurs if a
 MIME viewer is set. Default is OFF.
 .TP
-.B Send you a blind cc automatically (auto_bcc)
-If ON automatically put your name in the ''Bcc:'' field when mailing an
-article. Default is OFF.
-.TP
-.B Send you a cc automatically (auto_cc)
-If ON automatically put your name in the ''Cc:'' field when mailing an
-article. Default is OFF.
+.B Send you a cc and/or bcc automatically (auto_cc_bcc)
+Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when
+mailing an article. Default is No.
 .TP
 .B List thread using right arrow key (auto_list_thread)
 If ON automatically list thread when entering it using right arrow key.
@@ -1458,6 +1602,9 @@ Color of signatures
 .B Color of urls highlight (col_urls)
 Color of urls highlight
 .TP
+.B Color of verbatim blocks (col_verbatim)
+Color of verbatim blocks
+.TP
 .B Color of article subject lines (col_subject)
 Color of article subject
 .TP
@@ -1505,10 +1652,6 @@ Default is "%a, %d %b %Y %H:%M:%S".
 .B (default_config_search)
 The last article/author/config option that was searched for.
 .TP
-.B Invocation of your editor (default_editor_format)
-The format string used to create the editor start command with parameters.
-Default is "%E +%N %F" (i.e., /bin/vi +7 .article).
-.TP
 .B (default_filter_days)
 Default is 28.
 .TP
@@ -1528,10 +1671,14 @@ ON=apply to all groups, OFF=apply to cur
 .B (default_filter_kill_header)
 Default for quick (1 key) kill filter header.
 .RS +.5i
-.IP 0,1 4
- ''Subject:''
-.IP 2,3
- ''From:''
+.IP 0 4
+ ''Subject:'' (case sensitive)
+.IP 1
+ ''Subject:'' (ignore case)
+.IP 2
+ ''From:'' (case sensitive)
+.IP 3
+ ''From:'' (ignore case)
 .IP 4
  ''Message\-ID:'' & full ''References:'' line
 .IP 5
@@ -1558,10 +1705,14 @@ ON=apply to all groups OFF=apply to curr
 .B (default_filter_select_header)
 Default for quick (1 key) auto-selection filter header.
 .RS +.5i
-.IP 0,1 4
- ''Subject:''
-.IP 2,3
- ''From:''
+.IP 0 4
+ ''Subject:'' (case sensitive)
+.IP 1
+ ''Subject:'' (ignore case)
+.IP 2
+ ''From:'' (case sensitive)
+.IP 3
+ ''From:'' (ignore case)
 .IP 4
  ''Message\-ID:'' & full ''References:'' line
 .IP 5
@@ -1578,23 +1729,6 @@ Default for quick (1 key) auto-selection
 .TP
 .B (default_mail_address)
 .TP
-.B Mail directory (default_maildir)
-The directory where articles/threads are to be saved in
-.BR mbox (5)
-format. This feature is mainly for use with the
-.BR elm (1)
-mail program. It allows the user to save articles/threads/groups simply by
-giving '=' as the filename to save to.
-Default is \fI${TIN_HOMEDIR\-"$HOME"}/Mail\fR.
-.TP
-.B Invocation of your mail command (default_mailer_format)
-The format string used to create the mailer command with parameters that is
-used for mailing articles to other people. Default is '%M "%T" < %F' (e.g.,
-/bin/mail "iain" < .article). The flexible format allows other mailers with
-different command-line parameters to be used such as 'elm \-s "%S" "%T" <
-"%F"' (e.g., elm \-s "subject" "iain" < .article) or 'sendmail \-oi \-oem \-t <
-%F' (e.g. sendmail \-oi \-oem \-t < .article).
-.TP
 .B (default_move_group)
 .TP
 .B (default_pattern)
@@ -1605,15 +1739,6 @@ different command-line parameters to be 
 .TP
 .B (default_post_subject)
 .TP
-.B Printer program with options (default_printer)
-The printer program with options that is to be used to print articles.
-The default is
-.BR lpr (1)
-for BSD machines and
-.BR lp (1)
-for SysV machines. Printing from \fBtin\fP may have been disabled by the
-System Administrator.
-.TP
 .B (default_range_group)
 .TP
 .B (default_range_select)
@@ -1626,30 +1751,20 @@ System Administrator.
 .TP
 .B (default_save_mode)
 .TP
-.B Directory to save arts/threads in (default_savedir)
-Directory where articles/threads are saved. Default is
-\fI${TIN_HOMEDIR\-"$HOME"}/News\fR.
-.TP
 .B (default_select_pattern)
 .TP
 .B (default_shell_command)
 .TP
-.B Create signature from path/command (default_sigfile)
-The path that specifies the signature file to use when posting, following
-up to or replying to an article. If the path is a directory then the
-signature will be randomly generated from files that are in the specified
-directory. If the path starts with a ! the program the path points to will
-be executed to generate a signature. \fBtin\fP will pass the name of the
-current newsgroup as argument to the program. \-\-none will suppress any
-signature.
-Default is \fI${TIN_HOMEDIR\-"$HOME"}/.Sig\fR.
-.TP
 .B (default_subject_search)
 .TP
 .B Draw \-> instead of highlighted bar (draw_arrow)
 Allows groups/articles to be selected by an arrow '\->' if set ON or
 by an highlighted bar if set OFF. Default is OFF.
 .TP
+.B Invocation of your editor (editor_format)
+The format string used to create the editor start command with parameters.
+Default is "%E +%N %F" (i.e., /bin/vi +7 .article).
+.TP
 .B Force redraw after certain commands (force_screen_redraw)
 Specifies whether a screen redraw should always be done after certain
 external commands. Default is OFF.
@@ -1663,6 +1778,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.
@@ -1695,7 +1818,7 @@ Interactive mailreader: if greater than 
 earlier for reply so you can use more of its features (e.g. MIME,
 pgp, ...). 1 means include headers, 2 means don't include headers
 (old use_mailreader_i=ON option). 0 turns off usage. This option has to
-suit \fBdefault_mailer_format\fP. Default is 0.
+suit \fBmailer_format\fP. Default is 0.
 .TP
 .\" TODO: fix menu description
 .\"       mono_mark* currently do allow "Reverse video" even if
@@ -1705,9 +1828,9 @@ If ON use inverse video for page headers
 Default is ON.
 .TP
 .B Keep failed arts in ~/dead.articles (keep_dead_articles)
-If ON keep all failed postings in \fI${TIN_HOMEDIR\-"$HOME"}/dead.articles\fR
+If ON keep all failed postings in \fI${TIN_HOMEDIR:\-"$HOME"}/dead.articles\fR
 besides keeping the last failed posting in
-\fI${TIN_HOMEDIR\-"$HOME"}/dead.article\fR. Default is ON.
+\fI${TIN_HOMEDIR:\-"$HOME"}/dead.article\fR. Default is ON.
 .TP
 .B Filter which articles (kill_level)
 This option controls the processing and display of articles that are killed.
@@ -1735,7 +1858,7 @@ Default is 0 (\fBKill only unread arts\f
 Allows 8bit characters unencoded in the header of mail message. Default is
 OFF. Turning it ON is effective only if \fBmail_mime_encoding\fP is also set
 to 8bit. Leaving it OFF is safe for most users and compliant to Internet
-Mail Standard (\fBRFC2822\fP and \fBRFC2047\fP). Default is OFF.
+Mail Standard (\fBRFC5322\fP and \fBRFC2047\fP). Default is OFF.
 .TP
 .B Mail address (mail_address)
 User's mail address (and full name), if not username@host. This is used when
@@ -1745,8 +1868,7 @@ signing.
 .TP
 .B MIME encoding in mail messages (mail_mime_encoding)
 MIME encoding of the body in mail message, if necessary (8bit, base64,
-quoted-printable, 7bit) Default is 8bit and no encoding (or charset
-conversion) is performed (i.e., local charset is used as it is).
+quoted\-printable, 7bit). Default is quoted\-printable.
 .TP
 .B Quote line when mailing (mail_quote_format)
 Format of quote line when replying (via mail) to an article (%A=Address,
@@ -1761,12 +1883,31 @@ for more details on MBOXO and MBOXRD and
 .BR mmdf (5)
 for more details about MMDF.
 .TP
-.B 'Mark article read' ignores tags (mark_ignore_tags)
-When this is ON, the \fBGroupMarkThdRead\fP, \fBThreadMarkArtRead\fP
-functions ('\fBK\fP') mark just the current article or thread, ignoring
-other tagged, unread articles. When OFF, the same function presents a menu
-with choices of the current thread or article, all tagged, unread articles,
-or nothing.
+.B Mail directory (maildir)
+The directory where articles/threads are to be saved in
+.BR mbox (5)
+format. This feature is mainly for use with the
+.BR elm (1)
+mail program. It allows the user to save articles/threads/groups simply by
+giving '=' as the filename to save to.
+Default is \fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fR.
+.TP
+.B Invocation of your mail command (mailer_format)
+.\" TODO: document %S, %T, %M, %F, %U ...
+The format string used to create the mailer command with parameters that is
+used for mailing articles to other people. Default is '%M "%T" < %F' (e.g.,
+/bin/mail "iain" < .article). The flexible format allows other mailers with
+different command-line parameters to be used such as 'elm \-s "%S" "%T" <
+"%F"' (e.g., elm \-s "subject" "iain" < .article) or 'sendmail \-oi \-oem \-t <
+%F' (e.g. sendmail \-oi \-oem \-t < .article).
+.TP
+.B 'Mark as (un)read' ignores tags (mark_ignore_tags)
+When this is ON, the \fBGroupMarkThdRead\fP ('\fBK\fP'),
+\fBThreadMarkArtRead\fP ('\fBK\fP'), \fBMarkThdUnread\fP ('\fBZ\fP') at
+Group level and \fBMarkArtUnread\fP ('\fBz\fP') at Thread level functions
+mark just the current article or thread, ignoring other tagged, (un)read
+articles. When OFF, the same function presents a menu with choices of the
+current thread or article, all tagged, unread articles, or nothing.
 .TP
 .B Mark saved articles/threads as read (mark_saved_read)
 If ON mark articles that are saved as read. Default is ON.
@@ -1879,18 +2020,14 @@ 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)
+.B Go to 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.
 .TP
 .B Use 8bit characters in news headers (post_8bit_header)
 Allows 8bit characters unencoded in the header of a news article, if
 set this also disables the generation of MIME-headers when they are
-usualy required. Default is OFF. Only enacted if
+usually required. Default is OFF. Only enacted if
 \fBpost_mime_encoding\fP is also set to 8bit. In a number of local
 hierarchies where 8bit characters are used, using unencoded (raw)
 8bit characters in header is acceptable and sometimes even
@@ -1900,8 +2037,8 @@ and \fBpost_mime_encoding\fP.
 .TP
 .B MIME encoding in news messages (post_mime_encoding)
 MIME encoding of the body in news message, if necessary. (8bit,
-base64, quoted-printable, 7bit) Default is 8bit, which leads to no
-encoding. base64 and quoted-printable are usually undesired on usenet.
+base64, quoted\-printable, 7bit). Default is 8bit, which leads to no
+encoding. base64 and quoted\-printable are usually undesired on usenet.
 .TP
 .B View post-processed files (post_process_view)
 If ON, then \fBtin\fP will start an appropriate viewer program to display
@@ -1924,7 +2061,7 @@ files only.
 .TP
 .B Filename to be used for storing posted articles (posted_articles_file)
 Keep posted articles in
-\fI${TIN_HOMEDIR\-"$HOME"}/Mail/\fBposted_articles_file\fP\fR.
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/\fBposted_articles_file\fP\fR.
 If no filename is set then postings will not be saved.
 Default is 'posted'.
 .TP
@@ -1932,6 +2069,15 @@ Default is 'posted'.
 If ON, then the full article header is sent to the printer. Otherwise only
 the ''Subject:'' and ''From:'' fields are output. Default is OFF.
 .TP
+.B Printer program with options (printer)
+The printer program with options that is to be used to print articles.
+The default is
+.BR lpr (1)
+for BSD machines and
+.BR lp (1)
+for SysV machines. Printing from \fBtin\fP may have been disabled by the
+System Administrator.
+.TP
 .B Process only unread articles (process_only_unread)
 If ON only save/print/pipe/mail unread articles (tagged articles excepted).
 Default is OFF.
@@ -1953,6 +2099,7 @@ is to compress quotes, and to quote empt
 .br
 When you are viewing an article in raw mode ('\fB^H\fP'), and follow up or
 reply to it, the signature will be quoted even if it would otherwise not be.
+If \fBshow_signatures\fP is off, then the signature will never be quoted.
 .TP
 .B Regex used to show quoted lines (quote_regex)
 A regular expression that will be applied when reading articles. All
@@ -1978,10 +2125,14 @@ If ON \fBtin\fP does the rendering of bi
 leaves the rendering of bi-directional text to the terminal. Default is OFF.
 .TP
 .B Interval in seconds to reread active (reread_active_file_secs)
-The news \fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file is
+The news \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file is
 reread at regular intervals to show if any new news has arrived. Default is
 1200. Setting this to 0 will disable this feature.
 .TP
+.B Directory to save arts/threads in (savedir)
+Directory where articles/threads are saved. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fR.
+.TP
 .B Score limit (kill) (score_limit_kill)
 If the score of an article is below or equal this value the article gets
 marked as killed.
@@ -2001,9 +2152,9 @@ Score of an article which should be mark
 .B Number of lines to scroll in pager (scroll_lines)
 The number of lines that will be scrolled up/down in the article pager when
 using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get
-traditional tin page-by-page scrolling. Set to -1 to get page-by-page
+traditional tin page-by-page scrolling. Set to \-1 to get page-by-page
 scrolling where the top/bottom line is carried over onto the next page.
-This setting supersedes show_last_line_prev_page=ON. Set to -2 to get
+This setting supersedes show_last_line_prev_page=ON. Set to \-2 to get
 half-page scrolling. This setting supersedes full_page_scroll=OFF.
 .TP
 .B In group menu, show author by (show_author)
@@ -2027,10 +2178,10 @@ displayed.
 If ON show a short group description text after newsgroup name at the group
 selection level. The ''\fB\-d\fP'' command-line flag will override the
 setting and turn descriptions off. The text used is taken from the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}/newsgroups\fR file and if supported (requires
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fR file and if supported (requires
 .B tin
 to be build with mh-mail-handling support) from
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/mailgroups\fR for mailgroups. Default is ON.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fR for mailgroups. Default is ON.
 .TP
 .B Show lines/score in listings (show_info)
 Which information about the thread or article should be shown. Default is 1,
@@ -2065,6 +2216,16 @@ Default is ON.
 .B Prepend signature with '\en\-\- \en' (sigdashes)
 If ON prepend the signature with sigdashes. Default is ON.
 .TP
+.B Create signature from path/command (sigfile)
+The path that specifies the signature file to use when posting, following
+up to or replying to an article. If the path is a directory then the
+signature will be randomly generated from files that are in the specified
+directory. If the path starts with a ! the program the path points to will
+be executed to generate a signature. \fBtin\fP will pass the name of the
+current newsgroup as argument to the program. \-\-none will suppress any
+signature.
+Default is \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fR.
+.TP
 .B Add signature when reposting (signature_repost)
 If ON add signature to reposted articles. Default is ON.
 .TP
@@ -2114,6 +2275,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 +2288,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
@@ -2147,7 +2306,7 @@ display when reading on a slow terminal 
 .TP
 .B Remove bogus groups from newsrc (strip_bogus)
 Bogus groups are groups that are present in your
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR file that no longer exist on the news
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR file that no longer exist on the news
 server. There are 3 options. 0 means do nothing & always keep bogus groups.
 1 means bogus groups will be permanently removed. 2 means that bogus groups
 will appear on the Group Selection Menu, prefixed with a 'D'. This allows
@@ -2156,18 +2315,13 @@ Keep).
 .TP
 .B No unsubscribed groups in newsrc (strip_newsrc)
 If ON, then unsubscribed groups will be permanently removed from your
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR file. Default is OFF.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR file. Default is OFF.
 .TP
 .B Regex used to highlight \-strokes\- (strokes_regex)
 A regular expression that will be applied when reading articles. All
 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
@@ -2181,7 +2335,7 @@ toggled in the article viewer via \fBPag
 Defines which threading method to use. It's possible to set the threading
 type on a per group basis by setting the group attribute variable
 \fBthread_arts\fP to 0 - 4 in the file
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/attributes\fR. (See also "GROUP ATTRIBUTES".)
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fR. (See also "GROUP ATTRIBUTES".)
 The default is Both Subject and References.
 The choices are:
 .RS +.5i
@@ -2229,6 +2383,29 @@ represented in the target character set,
 or several similarly looking characters. On systems where this extension
 doesn't exist, this option is disabled. Default is OFF.
 .TP
+.B How to treat blank lines (trim_article_body)
+Allows you to select how \fBtin\fP treats blank lines in article bodies.
+Default is 0. This option does not affect lines within verbatim blocks.
+.RS +.5i
+.IP 0 3
+\fBDon't trim article body\fP, do nothing.
+.IP 1
+\fBSkip leading blank lines\fP.
+.IP 2
+\fBSkip trailing blank lines\fP.
+.IP 3
+\fBSkip leading and trailing blank l.\fP, skip leading and trailing blank lines.
+.IP 4
+\fBCompact multiple between text\fP, replace multiple blank lines between
+textblocks with one blank line.
+.IP 5
+\fBCompact multiple and skip leading\fP, 4 + 1
+.IP 6
+\fBCompact multiple and skip trailing\fP, 4 + 2
+.IP 7
+\fBCompact mltpl., skip lead. & trai.\fP, 4 + 3
+.RE
+.TP
 .B Regex used to highlight _underline_ (underscores_regex)
 A regular expression that will be applied when reading articles. All
 matching words are shown in \fBcol_markdash\fP or \fBmono_markdash\fP. If
@@ -2240,7 +2417,7 @@ If ON remove \fI~/.article\fR after post
 .B Program that opens URL's (url_handler)
 The program that will be run when launching URL's in the article viewer
 using \fBPageViewUrl\fP ('\fBU\fP'). The actual URL will be appended to this.
-Default is \fBurl_handler.sh %s\fP.
+Default is \fBurl_handler.pl %s\fP.
 .TP
 .B URL highlighting in message body (url_highlight)
 Enable highlighting URLs in message body. Default is ON.
@@ -2252,7 +2429,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 +2444,19 @@ and
 .BR slrnface (1)
 must be in your $\fBPATH\fP. Default is OFF.
 .TP
+.B Use UTF-8 graphics (utf8_graphics)
+If ON use UTF-8 characters for indicator ('\->'), thread/attachment tree and
+ellipsis ('...'). 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 Detection of verbatim blocks (verbatim_handling)
+If ON verbatim blocks will be detected. Default is ON.
+.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.
@@ -2318,15 +2508,13 @@ answering to a crossposting to several g
 set.
 .\"
 .\"
-.SS "GROUP ATTRIBUTES"
+.SS "ATTRIBUTES MENU AND GROUP ATTRIBUTES"
 \fBtin\fP allows certain attributes to be set on a per group basis. If it
 exists, the global attributes file,
-\fI${TIN_LIBDIR\-NEWSLIBDIR}/attributes\fR is read. After that, the user's
-own attributes file \fI${TIN_HOMEDIR\-"$HOME"}/.tin/attributes\fR is read.
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/attributes\fR is read. After that, the user's
+own attributes file \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fR is read.
 The global attributes file is useful for distributing system-wide defaults
-to new users who have no private attributes file yet. A later version will
-provide a menu interface to set all the attributes. At present you will have
-to edit the file with your editor.
+to new users who have no private attributes file yet.
 .PP
 Note that the \fIscope=<grouplist>\fR line has to be specified before the
 attributes are specified for that list. All attributes are set to a
@@ -2335,6 +2523,34 @@ to change (e.g., savedir). All toggle at
 ON/OFF. Otherwise, these function exactly the same as their global
 equivalents. For more details see
 .BR tin (5).
+.PP
+Attributes can also be changed from the attributes menu which can be
+accessed by \fBConfigToggleAttrib\fP ('\fB<TAB>\fP') from the options
+menu or \fBScopeSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') from the scopes menu.
+The attributes menu looks and behaves very similar to the options menu. The
+title shows the current scope. Attributes set in the current scope are marked
+with '\+' to the left of the attributes number.
+.PP
+Besides the keys for moving around and changing values known from the options
+menu the attributes menu provides the following command:
+\fBConfigResetAttrib\fP ('\fBr\fP') which resets an attribute to a default
+value.
+.\"
+.\"
+.SS "SCOPES MENU"
+The scopes menu (accessible from the options menu with \fBConfigScopeMenu\fP
+('\fBS\fP')) shows all scopes read from the global and local attributes file.
+Scopes from the global attributes file are marked with '!' to the left of the
+scope number. Delete/rename/move are not possible with those scopes.
+.PP
+In addition to the common moving keys the following commands are available:
+\fBScopeSelect\fP ('\fB^J\fP' or '\fB<CR>\fP') enter the attributes menu for
+the current scope, \fBScopeEditAttributesFile\fP ('\fBE\fP') edit the local
+attributes file, \fBScopeAdd\fP ('\fBa\fP') add a new scope, \fBScopeDelete\fP
+('\fBd\fP') delete the current scope, \fBScopeMove\fP ('\fBm\fP') move the
+current scope to a new position, \fBScopeRename\fP ('\fBr\fP') rename the
+current scope. \fBToggleHelpDisplay\fP ('\fBH\fP') toggles the help mini
+menu at the bottom of the screen.
 .\"
 .\"
 .SS "FILTERING ARTICLES"
@@ -2346,7 +2562,7 @@ you specify. This can be anything from t
 of lines in an article.
 .PP
 When \fBtin\fP starts up the user's kill-file
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/filter\fR (see also
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fR (see also
 .BR tin (5))
 is read. Each time a newsgroup is entered the rules are applied and articles
 killed or selected when they meet certain criteria.
@@ -2357,16 +2573,15 @@ setting. By default killed articles will
 auto-selection rule are marked with a ''*''.
 .PP
 Filtering rules can be manually entered into
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/filter\fR (but don't do this whilst running
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/filter\fR (but don't do this whilst running
 \fBtin\fP else you will lose your changes) or by using an on-screen menu
 within \fBtin\fP.
 .PP
 The filtering capabilities of \fBtin\fP have been significantly enhanced
 over previous versions to include scoring and better pattern matching. It is
 recommended that you read the file \fIfiltering\fR in the \fBtin\fP
-documentation directory.
-.\" FIXME - insert URL
-.\" This file can also be read online at http://www.tin.org/FIXME
+documentation directory. This file can also be read online at
+<http://www.tin.org/filtering.txt>.
 .PP
 .\" FIXME - Next paragraph is out of date
 The on-screen filtering menu is accessed by pressing '\fB^K\fP' at the Group
@@ -2431,7 +2646,7 @@ following variables are expanded if foun
 .nf
 .ta \w'%A  'u +\w'Address'u
 \fB%A\fP	Address (Email)
-\fB%D\fP	Date
+\fB%D\fP	Date (uses \fBdate_format\fP)
 \fB%F\fP	Full address (%N <%A>)
 \fB%G\fP	Groupname
 \fB%M\fP	Message\-ID
@@ -2442,17 +2657,21 @@ following variables are expanded if foun
 .RE
 e.g.,
 .RS
-.Vb
+.ft CW
+.nf
 mail_quote_format=On %D in %G you wrote:
 news_quote_format=In %M, %F wrote:
-.Ve
+.ft R
+.fi
 .RE
 would expand to:
 .RS
-.Vb
-On 21 Sep 1993 09:45:51 -0400 in alt.sources you wrote:
+.ft CW
+.nf
+On 21 Sep 1993 09:45:51 \-0400 in alt.sources you wrote:
 In <abcINN123@example.org>, Joe Bar <joe@example.org> wrote:
-.Ve
+.ft R
+.fi
 .RE
 The quoted text section of an article is marked by a preceding quote string
 at the beginning of each quoted line. The default quote string is set to
@@ -2496,11 +2715,11 @@ Environment variables can themselves con
 To save articles to a mailbox enter '=<mailbox name>' when asked for the
 save filename. If you enter just '=' then articles will be saved to a
 mailbox with the name of the current newsgroup (eg, alt.sources).
-See \fBdefault_maildir\fP.
+See \fBmaildir\fP.
 .PP
 To save in savedir/<news.group.name>/<filename> format enter '+<filename>'.
 Environment variables are allowed within a filename (e.g.,
-\fI$SOURCES/dir/filename\fR). See \fBdefault_savedir\fP.
+\fI$SOURCES/dir/filename\fR). See \fBsavedir\fP.
 .PP
 When saving articles you can specify whether the saved files should be
 post processed. A default process type can be set
@@ -2516,10 +2735,14 @@ that expire has removed a whole load of 
 everyday while away, after which you will be mailed a report of which
 articles were mailed/saved from which newsgroups and the total number of
 articles mailed/saved. Articles are saved in a private news structure under
-your <savedir> directory (default is \fI${TIN_HOMEDIR\-"$HOME"}/News\fR). Be
+your <savedir> directory (default is \fI${TIN_HOMEDIR:\-"$HOME"}/News\fR). Be
 careful of using this option if you read a lot of groups because you could
 overflow your file system.
 .PP
+When using ''\fB\-S\fP'' together with a given directory to save to
+(''\fB\-s\fP'' option), the same directory must be specified when reading
+the articles by ''\fB\-R\fP''.
+.PP
 If you only want to save some of your groups use the \fBbatch_save\fP tinrc
 variable. Set to ON or OFF in tinrc to enable/disable saving of all groups
 and then use the \fBbatch_save\fP attribute to fine tune which groups you
@@ -2566,7 +2789,7 @@ prefixed with exclamation points. An exc
 meaning of a match on this pattern, and can be used to cancel certain
 matches. Some examples:
 .sp
-\fIalt.config news.*,!news.test\fR
+\fIalt.config,news.*,!news.test\fR
 .sp
 Matches alt.config and everything in the 'news' hierarchy except news.test
 .PP
@@ -2576,23 +2799,25 @@ examples.
 .\"
 .SS SIGNATURES
 \fBtin\fP will recognize a signature in either
-\fI${TIN_HOMEDIR\-"$HOME"}/.signature\fR or \fI${TIN_HOMEDIR\-"$HOME"}/.Sig\fR.
-If \fI${TIN_HOMEDIR\-"$HOME"}/.signature\fR exists, then the signature
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fR or \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fR.
+If \fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fR exists, then the signature
 will be pulled into the editor for mail commands only. A signature in
-\fI${TIN_HOMEDIR\-"$HOME"}/.signature\fR will not be pulled into the
+\fI${TIN_HOMEDIR:\-"$HOME"}/.signature\fR will not be pulled into the
 editor for posting commands since
 .BR inews (1)
 will append the signature itself.
 .PP
-A signature in \fI${TIN_HOMEDIR\-"$HOME"}/.Sig\fR will be pulled into the
+A signature in \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fR will be pulled into the
 editor for both posting and mailing commands.
 .PP
 The following is an example of a \fI.Sig\fR file:
 .RS
-.Vb
+.ft CW
+.nf
 NAMES  Joe Bar <joe@example.org>
 SNAIL  Musterweg 12, 99999 Notreal, Germany
-.Ve
+.ft R
+.fi
 .RE
 .PP
 \fBtin\fP also has the capability to generate random signatures on a per
@@ -2632,7 +2857,7 @@ the
 is resized.
 .PP
 \fBtin\fP will reread the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file at set
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file at set
 intervals (\fBreread_active_file_secs\fP) to show any newly arrived news.
 .PP
 If you find large number of new newsgroups cluttering up your screen,
@@ -2717,7 +2942,7 @@ Note that this cache can use up large am
 read a lot of groups and/or high traffic groups.
 .PP
 Each user creates/updates his/her own index files that are stored in
-\fI${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news/\fR. If
+\fI${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news/\fR. If
 you are reading via NNTP then the news server name will be appended
 to keep the indexes for different servers separate. If you are
 reading off the local spool and local overview files already exist
@@ -2738,9 +2963,11 @@ the system batcher
 with the ''\fB\-u\fP'' option:
 .PP
 .RS
-.Vb
+.ft CW
+.nf
 30 6 * * * /usr/local/bin/tin \-u
-.Ve
+.ft R
+.fi
 .RE
 .PP
 If you are low on local disk space you should consider using
@@ -2749,22 +2976,36 @@ manually purge cached data for groups yo
 with something like:
 .PP
 .RS
-.Vb
-find ${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news* \\
+.ft CW
+.nf
+find ${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news* \\
 \-type f \-name "[0\-9]*.[0\-9]" \-atime +28 | xargs rm \-f
-.Ve
+.ft R
+.fi
 .RE
 .\"
 .\"
 .SH FILES
 .\" TODO: mention dead.article, dead.articles
 .\"               .article[.$$], .cancel[.$$], .letter[.$$]?
+.\"       $PWD/trace[.out]   (--with-trace)
+.\"       $TMPDIR/NNTP       (-D 1)
+.\"       $TMPDIR/FILTER     (-D 2)
+.\"       $TMPDIR/ARTS       (-D 2)
+.\"       $TMPDIR/BITMAP     (-D 4)
+.\"       $TMPDIR/REFS.dump  (-D 8)
+.\"       $TMPDIR/REFS.info  (-D 8)
+.\"       $TMPDIR/MALLOC     (-D 16)
+.\"       $TMPDIR/ATTRIBUTES (-D 32)
+.\"       $TMPDIR/SCOPES-R   (-D 32)
+.\"       $TMPDIR/SCOPES-W   (-D 32)
+.\"       $TMPDIR/ACTIVE     (-D 64)
 For a detailed description see
 .BR tin (5).
 .PP
 .IR $MAILCAPS
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.mailcap
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.mailcap
 .br
 .IR /etc/mailcap
 .br
@@ -2778,100 +3019,100 @@ For a detailed description see
 .IR /etc/nntpserver
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.cancelsecret
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.cancelsecret
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.mime.types
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.mime.types
 .br
 .IR /etc/mime.types
 .br
 .IR /etc/tin/mime.types
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.newsauth
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.newsauth
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.newsrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.newsrc
 .PP
 
 .nf
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/.oldnewsrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc
 .fi
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.signature
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.signature
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.Sig
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.Sig
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.sigfixed
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.sigfixed
 .PP
 
-.IR ${TIN_HOMEDIR-"$HOME"}/.tin/.inputhistory
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/.inputhistory
 .PP
 
-.IR ${TIN_INDEX_MAILDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.mail/
+.IR ${TIN_INDEX_MAILDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.mail/
 .PP
 
 .nf
-.IR ${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news${NNTPSERVER+"\-$NNTPSERVER"}/
+.IR ${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news${NNTPSERVER:+"\-$NNTPSERVER"}/
 .fi
 .PP
 
-.IR ${TIN_INDEX_SAVEDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.save/
+.IR ${TIN_INDEX_SAVEDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.save/
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/active.mail
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/active.mail
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/active.save
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/active.save
 .PP
 
-.\" .IR ${TIN_LIBDIR\-NEWSLIBDIR}/attributes
+.\" .IR ${TIN_LIBDIR:\-NEWSLIBDIR}/attributes
 .IR /etc/tin/attributes
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/attributes
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/filter
+.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"}"}"}"}
+.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"}"}"}"}
+.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
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/newsrctable
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/posted
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/posted
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/Mail/posted
+.IR ${TIN_HOMEDIR:\-"$HOME"}/Mail/posted
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/postponed.articles
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/postponed.articles
 .PP
 
 .nf
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT+":$NNTPPORT"}/newsgroups
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/newsgroups
 .fi
 .PP
 
 .nf
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT+":$NNTPPORT"}/serverrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER:${NNTPPORT:+":$NNTPPORT"}/serverrc
 .fi
 .PP
 
-.\" .IR ${TIN_LIBDIR\-NEWSLIBDIR}/tinrc
+.\" .IR ${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc
 .IR /etc/tin/tinrc
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc
 .PP
 
 .IR /etc/tin/tin.defaults
@@ -2880,22 +3121,22 @@ For a detailed description see
 .IR /usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/active.times
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/active.times
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/newsgroups
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/organization
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/organization
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/overview.fmt
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/overview.fmt
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/subscriptions
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions
 .PP
 .\"
 .\"
@@ -2903,14 +3144,15 @@ For a detailed description see
 .\" TODO: sort in a useful order, add undocumented env-vars like:
 .\"
 .\" .TP
-.\" .B TIN_POST (VMS)
+.\" .B SHELL (Unix)
+.\" The pathname of the user's login shell.
 .\"
+.\" used in xface support
 .\" .TP
-.\" .B TIN_RNG_MIN, TIN_RNG_MAX, TIN_MIN, TIN_MAX, TIN_COUNT, TIN_SEQ
-.\" (all used in vNewsrcTestHarness() (-DDEBUG_NEWSRC))
-.\"
+.\" .B DISPLAY
 .\" .TP
-.\" .B SHELL (Unix)
+.\" .B WINDOWID
+.\"
 .\"
 .TP
 .B TINRC
@@ -2928,19 +3170,19 @@ Define this variable if you do not want 
 .TP
 .B TIN_INDEX_NEWSDIR
 Define this variable if you do not want the \fI.news\fR directory in
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/\fR. E.g., if you want all \fBtin\fP's
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fR. E.g., if you want all \fBtin\fP's
 news index files in \fI/tmp/.news\fR you would set $\fBTIN_INDEX_NEWSDIR\fP
 to \fI/tmp\fR.
 .TP
 .B TIN_INDEX_MAILDIR
 Define this variable if you do not want the \fI.mail\fR directory in
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/\fR. E.g., if you want all \fBtin\fP's
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fR. E.g., if you want all \fBtin\fP's
 mail index files in \fI/tmp/.mail\fR you would set $\fBTIN_INDEX_MAILDIR\fP
 to \fI/tmp\fR.
 .TP
 .B TIN_INDEX_SAVEDIR
 Define this variable if you do not want the \fI.save\fR directory in
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/\fR. E.g., if you want all \fBtin\fP's
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/\fR. E.g., if you want all \fBtin\fP's
 save index files in \fI/tmp/.save\fR you would set $\fBTIN_INDEX_SAVEDIR\fP
 to \fI/tmp\fR.
 .TP
@@ -2984,6 +3226,26 @@ variable instead of the system default.
 .B ISO2ASC
 Set the ISO to ASCII charset decoding table character to use in decoding
 an article text. Values can range from 0 to 6.
+.RS +.5i
+.TP
+.B 0
+universal table for many languages
+.TP
+.B 1
+single-spacing universal table
+.TP
+.B 2
+table for Danish, Dutch, German, Norwegian and Swedish
+.TP
+.B 3
+table for Danish, Finnish, Norwegian and Swedish using the appropriate ISO 646 variant
+.TP
+.B 4
+table with RFC 1345 codes in brackets
+.TP
+.B 5
+table for printers that allow overstriking with backspace
+.RE
 .TP
 .B ORGANIZATION
 Set the article header field ''Organization:'' to the contents of the
@@ -3009,49 +3271,45 @@ Same as $\fBNAME\fP.
 .B HOME
 Pathname of the user's home directory. See
 .BR environ (5)
-for more infos.
+for more info.
 .TP
 .B MAILER
 This variable has precedence over the default mailer that is used in all
-mailing operations within \fBtin\fP. If reading news on VMS use
-$\fBTIN_MAILER\fP instead.
-.TP
-.B TIN_MAILER (VMS)
-VMS specific, same as $\fBMAILER\fP on other OSs (see above).
+mailing operations within \fBtin\fP.
 .TP
 .B MAIL
-Full path to the users mailbox.
+Full path to the user's mailbox.
 .TP
 .B VISUAL
 This variable has precedence over the default editor (i.e.,
 .BR vi (1))
 that is used in all editing operations within \fBtin\fP (e.g., posting,
 replying, follow-ups, ...). Evaluation order is
-\fI${VISUAL\-"${EDITOR\-vi}"}\fR. See
+\fI${VISUAL:\-"${EDITOR:\-vi}"}\fR. See
 .BR environ (5)
-for more infos.
+for more info.
 .TP
 .B EDITOR
 If $\fBVISUAL\fP is unset, then this variable is looked up for a default
-editor. If $\fBEDITOR\fP and $\fBVISUAL\fP are both unset, \fBtin\fP will
-uses the systems default editor (i.e.
+editor. If $\fBEDITOR\fP and $\fBVISUAL\fP are both unset, \fBtin\fP uses
+the systems default editor (i.e.
 .BR vi (1))
 on UNIX-systems). See
 .BR environ (5)
-for more infos.
+for more info.
 .TP
 .B AUTOSUBSCRIBE
 A new group is checked against the list of patterns; if it matches,
 \fBtin\fP subscribes the user to the group without further query.
-See the section "NEWSGROUP LISTS & WILDCARDS" for an explanation of the valid
-syntax. For example, setting
+See the section "NEWSGROUP LISTS & WILDCARDS" for an explanation of the
+valid syntax. For example, setting
 .sp
 \fIAUTOSUBSCRIBE=comp.os.unix.*,talk.*,!talk.politics.*\fR
 .sp
 will automatically subscribe the user to all new groups in the comp.os.unix
 hierarchy, and all talk groups other than talk.politics groups (which will
-be queried for as usual). Of course this does not work if \fBtin\fP
-is started with the ''\fB\-X\fP'' command-line switch.
+be queried for as usual). Of course this does not work if \fBtin\fP is
+started with the ''\fB\-X\fP'' command-line switch.
 .TP
 .B AUTOUNSUBSCRIBE
 Is handled like the $\fBAUTOSUBSCRIBE\fP variable, but groups matching the
@@ -3059,8 +3317,8 @@ list are unsubscribed from without furth
 .sp
 \fIAUTOUNSUBSCRIBE=alt.flame.*,u*,!uk.*\fR
 .sp
-will automatically unsubscribe the user from all new alt.flame groups
-and all groups starting with u (university groups) other than UK groups (which
+will automatically unsubscribe the user from all new alt.flame groups and
+all groups starting with u (university groups) other than UK groups (which
 will be queried for as usual).
 .TP
 .B TMPDIR
@@ -3150,6 +3408,14 @@ starting with \fB$LC_\fP. It's value sho
 .BR environ (5)
 for more information.
 .TP
+.B LANGUAGE
+This variable defines a priority list for translations. Whenever a
+translation is not available in the language selected via \fB$LC_ALL\fP
+or \fB$LANG\fP the next language from the list is tried. It's value should
+be of the form \fIlanguage:language[:language]\fR. See
+.BR environ (5)
+for more information.
+.TP
 .B COLUMNS
 A decimal integer > 0 used to indicate the user's preferred width in column
 positions for the terminal screen or window. If this variable is unset or
@@ -3177,21 +3443,44 @@ See
 for more information.
 .\"
 .\"
+.\" TODO: add missing, sort useful, document in detail
+.SH SIGNALS
+.B tin
+handles a couple of signals:
+.TP
+.B SIGHUP
+Terminate gracefully.
+.TP
+.B SIGTERM
+Terminate gracefully.
+.TP
+.B SIGUSR1
+Terminate gracefully but do not restore tty.
+.TP
+.B SIGUSR2
+Write out \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR-file.
+.\"
+.\"
 .\" .SH DIAGNOSTICS
 .\" give an overview of the most common error messages and how to cope with
 .\" them.
 .\"
 .\"
-.\" .SH SECURITY
-.\" add a note about clear text passwords used by NNTP and in ~/.newsauth
+.\"
+.SH SECURITY
+When \fBtin\fP is started in debug mode (''\fB\-D n\fP'') it will create
+world readable files in \fB$TMPDIR\fP which may contain the users NNTP
+password in cleartext. On multiuser-systems \fB$TMPDIR\fP should be set
+to a safe location before starting tin in debug mode (e.g.
+\fBTMPDIR=$HOME tin \-D 1\fP).
 .\"
 .\"
 .SH "CONFORMING TO"
 .B tin
 does conform to the Base Definitions volume of IEEE Std 1003.1-2001, Section
 12, Utility Conventions (Utility Argument Syntax, Utility Syntax Guidelines).
-.\" - RFC1036, RFC2045, RFC2047, RFC2822, RFC2980, RFC3977
-.\"   or whatever
+.\" - RFC2045, RFC2047, RFC2980, RFC3977, RFC4643, RFC5322
+.\"   RFC5536, RFC5537, RFC6048 or whatever
 .\"
 .\"
 .SH NOTES
@@ -3208,14 +3497,13 @@ ftp://ftp.csx.cam.ac.uk/pub/software/pro
 .BR noffle (1)
 (<= V1.0-pre5) and
 .BR NewsCache
-(<= V1.1.91) can't handle simultaneous GROUP commands. If you run into
+(<= V1.1.91) can't handle pipelined GROUP commands. If you run into
 trouble with any of the mentioned servers define
-NUM_SIMULTANEOUS_GROUP_COMMAND to 1 in active.c and recompile. See also
-the TODO-file which comes with the source.
+DISABLE_PIPELINING in include/autoconf.h and recompile.
 .br
 Before mailing a bug-report to <tin\-bugs@tin.org> please check if you
 are using the latest (stable) release, and if not, please upgrade
-first! Have a look a the doc/TODO file for known bugs. If you still
+first! Have a look at the doc/TODO file for known bugs. If you still
 think you've found a bug, please use the \fBBugReport\fP ('\fBR\fP')
 function and write in English. Please do NOT enclose a core-file in
 your bugreport until we request it.
@@ -3230,7 +3518,7 @@ March 1991; its first version was releas
 itself was heavily influenced by notesfiles a public domain UNIX version of
 PLATO Notes, developed at the University of Illinois by Ray Essick and Rob
 Kolstad in 1982. For a version overview see
-<http://www.tin.org/history.html>
+<http://www.tin.org/history.html>.
 .\"
 .\"
 .SH CREDITS
@@ -3271,8 +3559,6 @@ for
 and
 .BR vsnprintf (3)
 fallbacks.
-.IP "Andrew Greer"
-for originally porting \fBtin\fP to the VAX/VMS operating system.
 .\"
 .\"
 .SH AUTHOR
@@ -3286,7 +3572,7 @@ Urs Janssen <urs@tin.org>
 .\"
 .\"
 .SH "SEE ALSO"
-.BR cron (1)
+.BR cron (1),
 .BR elm (1),
 .BR emacs (1),
 .BR gpg (1),
@@ -3323,13 +3609,15 @@ Urs Janssen <urs@tin.org>
 .BR mmdf (5),
 .BR newsoverview (5),
 .BR tin (5),
-.BR RFC977 ,
-.BR RFC1036 ,
 .BR RFC1524 ,
 .BR RFC2045 ,
 .BR RFC2046 ,
 .BR RFC2047 ,
 .BR RFC2048 ,
-.BR RFC2822 ,
-.BR RFC2980
-.\" .BR RFC3977
+.BR RFC2980 ,
+.BR RFC3977 ,
+.BR RFC4643 ,
+.BR RFC5322 ,
+.BR RFC5536 ,
+.BR RFC5537 ,
+.BR RFC6048
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/tin.5 tin-2.0.0/doc/tin.5
--- tin-1.8.3/doc/tin.5	2007-02-01 14:08:50.000000000 +0100
+++ tin-2.0.0/doc/tin.5	2011-08-22 00:19:04.559647094 +0200
@@ -2,21 +2,11 @@
 .\" Module    : tin.5
 .\" Author    : U. Janssen
 .\" Created   : 2000-07-10
-.\" Updated   : 2007-02-01
+.\" Updated   : 2011-08-23
 .\" Notes     : needs a some work
 .\"
-.\" Macros
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
 .\"
-.TH tin 5 "February 1st, 2007" "1.8.3" "A Usenet newsreader"
+.TH tin 5 "August 23rd, 2011" "2.0.0" "A Usenet newsreader"
 
 .SH NAME
 tin, rtin \- related files
@@ -25,19 +15,31 @@ tin, rtin \- related files
 This manpage describes the various (config) files and their formats used by
 the
 .BR tin (1)
-newsreader.
+newsreader. All files are expected to have unix style ('\\n' aka LF) line endings.
 
 .SH FILES
 .\" TODO: mention
-.\" ${TIN_HOMEDIR\-"$HOME"}/dead.article
-.\" ${TIN_HOMEDIR\-"$HOME"}/dead.articles
-.\" ${TIN_HOMEDIR\-"$HOME"}/.article[.$$]
-.\" ${TIN_HOMEDIR\-"$HOME"}/.cancel[.$$]
-.\" ${TIN_HOMEDIR\-"$HOME"}/.letter[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/dead.article
+.\" ${TIN_HOMEDIR:\-"$HOME"}/dead.articles
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.article[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.cancel[.$$]
+.\" ${TIN_HOMEDIR:\-"$HOME"}/.letter[.$$]
+.\" $PWD/trace[.out]   (--with-trace)
+.\" $TMPDIR/NNTP       (-D 1)
+.\" $TMPDIR/FILTER     (-D 2)
+.\" $TMPDIR/ARTS       (-D 2)
+.\" $TMPDIR/BITMAP     (-D 4)
+.\" $TMPDIR/REFS.dump  (-D 8)
+.\" $TMPDIR/REFS.info  (-D 8)
+.\" $TMPDIR/MALLOC     (-D 16)
+.\" $TMPDIR/ATTRIBUTES (-D 32)
+.\" $TMPDIR/SCOPES-R   (-D 32)
+.\" $TMPDIR/SCOPES-W   (-D 32)
+.\" $TMPDIR/ACTIVE     (-D 64)
 .PP
 .IR $MAILCAPS
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.mailcap
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.mailcap
 .br
 .IR /etc/mailcap
 .br
@@ -60,7 +62,7 @@ Each individual mailcap entry consists o
 command to execute, and (possibly) a set of optional "flag" values.
 .sp
 The "type" field is simply any legal content type name. It is the string
-that will be matched against the "Content\-Type" header to decide if this is
+that will be matched against the ''Content\-Type:'' header to decide if this is
 the mailcap entry that matches the current message. Additionally, the type
 field may specify a subtype or a wildcard to match all subtypes.
 .sp
@@ -77,7 +79,7 @@ message. If it contains "%t", those two 
 content-type field, including the subtype, if any. If it contains "%{"
 followed by a parameter name and a closing "}", then all those characters
 will be replaced by the value of the named parameter, if any, from the
-Content\-Type header. Finally, if the field contains "\\%", those two
+\&''Content\-Type:'' header. Finally, if the field contains "\\%", those two
 characters will be replaced by a single "%" character.
 .\"
 .\" Two special codes can appear in the viewing command for objects of type
@@ -101,12 +103,12 @@ the data.
 .TP
 .B composetyped
 The "composetyped" field is similar to the "compose" field, but is to be
-used when the composing program needs to specify the Content\-Type header
-field to be applied to the composed data. The "compose" field is simpler,
-and is preferred for use with existing (non-mail-oriented) programs for
-composing data in a given format. The "composetyped" field is necessary when
-the Content\-Type information must include auxiliary parameters, and the
-composition program must then know enough about mail formats to produce
+used when the composing program needs to specify the ''Content\-Type:''
+header field to be applied to the composed data. The "compose" field is
+simpler, and is preferred for use with existing (non-mail-oriented) programs
+for composing data in a given format. The "composetyped" field is necessary
+when the Content\-Type information must include auxiliary parameters, and
+the composition program must then know enough about mail formats to produce
 output that includes the mail type information.
 .TP
 .B edit
@@ -191,7 +193,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,11 +201,11 @@ nametemplate=%s.IMAGE
 message/rfc822;\\
 .br
 .in +.3i
-${PAGER\-"more"} '%s';\\
+${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';\\
 .br
@@ -224,14 +226,14 @@ priority.
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.cancelsecret
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.cancelsecret
 .sp
 .RS
 secret to be used for canlocks
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.mime.types
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.mime.types
 .br
 .IR /etc/mime.types
 .br
@@ -242,36 +244,40 @@ mime type / filename extension pairs
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.newsauth
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.newsauth
 .sp
 .RS
-"\fInntpserver\fR \fIpassword\fR [\fIuser\fR]" pairs for NNTP servers
-that require authorization. Any line that starts with "#" is a comment.
-Blank lines are ignored. This file should be readable only for the user as
-it contains the users uncrypted password for reading news!
+"\fInntpserver\fR \fIpassword\fR [\fIuser\fR]" pairs for NNTP servers that
+require authorization. If the password contains a space or a tab it must be
+enclosed in doublequotes ("). Usernames must not be enclosed in doublequotes
+and thus can't contain spaces or tabs. Any line that starts with "#" is a
+comment. Blank lines are ignored. This file should be readable only for the
+user as it contains the user's uncrypted password for reading news!
 .TP
 .B nntpserver
 full qualified domain name of the newsserver.
 .TP
 .B password
-users uncrypted password for reading news.
+user's uncrypted password for reading news.
 .TP
 .B user
-username on the newsserver if it differs from the local login. this field is
+username on the newsserver if it differs from the local login. This field is
 optional.
 .TP
 Example:
 .RS
 # sample .newsauth file
 .br
-news.example.org  example
+news.example.org  secret
 .br
-news.example.net  news      guest
+news.example.net  arcane  guest
+.br
+news.example.com  "top secret"  james.bond@example.com
 .RE
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.newsrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.newsrc
 .sp
 .RS
 "\fInewsgroup\fR\fIflag\fR [\fIarticle\fR[,\fIarticle\fR | \-\fIarticle\fR]...]" lines.
@@ -300,38 +306,38 @@ news.software.readers: 1\-19567,19571\-1
 .PP
 
 .nf
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/.oldnewsrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/.oldnewsrc
 .fi
 .sp
 .RS
-backup of \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR
+backup of \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.signature
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.signature
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.Sig
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.Sig
 .sp
 .RS
 signature
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.sigfixed
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.sigfixed
 .sp
 .RS
 fixed part of a randomly generated signature
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/.inputhistory
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/.inputhistory
 .sp
 .RS
 history of last used strings
 .RE
 .PP
 
-.IR ${TIN_INDEX_MAILDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.mail/
+.IR ${TIN_INDEX_MAILDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.mail/
 .sp
 .RS
 mailgroups index files
@@ -339,7 +345,7 @@ mailgroups index files
 .PP
 
 .nf
-.IR ${TIN_INDEX_NEWSDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.news${NNTPSERVER+"\-$NNTPSERVER"}/
+.IR ${TIN_INDEX_NEWSDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.news${NNTPSERVER:+"\-$NNTPSERVER"}/
 .fi
 .sp
 .RS
@@ -347,18 +353,18 @@ newsgroups index files
 .RE
 .PP
 
-.IR ${TIN_INDEX_SAVEDIR\-"${TIN_HOMEDIR\-"$HOME"}/.tin"}/.save/
+.IR ${TIN_INDEX_SAVEDIR:\-"${TIN_HOMEDIR:\-"$HOME"}/.tin"}/.save/
 .sp
 .RS
 saved newsgroups index files
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/active.mail
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/active.mail
 .sp
 .RS
 active file ("\fImail_group_name\fR \fImaxnum\fR \fIminnum\fR
-\fImailspool\fR"-pairs) of user's mailgroups (requires
+\fImailspool\fR" quadruples) of user's mailgroups (requires
 .BR tin (1)
 to be build with mh-mail-handling support).
 .TP
@@ -388,7 +394,7 @@ They are accessed via /home/foo/Mail/inb
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/active.save
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/active.save
 .sp
 .RS
 active file of user's saved newsgroups, used by \fBtin \-R\fP.
@@ -401,18 +407,19 @@ active file of user's saved newsgroups, 
 .\" ${TIN_LIBDIR\-/news/etc"}/attributes
 .IR /etc/tin/attributes
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/attributes
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes
 .sp
 .RS
 The group attributes files may be used to override some global settings from
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR on a per group basis. Order is
-important as last match counts; this allows to refine attributes for
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR on a per group basis. Order is
+important as last match counts; this allows one to refine attributes for
 narrowed scopes. Note that the \fIscope=<grouplist>\fR line has to be
-specified before the attributes are specified for that list. All attributes
-are set to a reasonable default so you only have to specify the attribute
-that you want to change. All toggle attributes are set by specifying ON/OFF.
-Otherwise, they function exactly as their global equivalents. The following
-group attributes are available:
+specified before the attributes are specified for that list and each
+attribute can only be set once per scope section. All attributes are set to
+a reasonable default so you only have to specify the attribute that you want
+to change. All toggle attributes are set by specifying ON/OFF. Otherwise,
+they function exactly as their global equivalents. The following group
+attributes are available:
 .TP
 .B scope
 This changes the list of groups to which the attributes that follow will be
@@ -420,6 +427,24 @@ applied. See the section NEWSGROUP LISTS
 .BR tin (1)
 for the types of pattern that can be used here.
 .TP
+.B add_posted_to_filter
+Identical to the tinrc variable of the same name
+.TP
+.B advertising
+Identical to the tinrc variable of the same name
+.TP
+.B alternative_handling
+Identical to the tinrc variable of the same name
+.TP
+.B ask_for_metamail
+Identical to the tinrc variable of the same name
+.TP
+.B auto_cc_bcc
+Identical to the tinrc variable of the same name
+.TP
+.B auto_list_thread
+Identical to the tinrc variable of the same name
+.TP
 .B auto_save
 Identical to the tinrc variable of the same name
 .TP
@@ -433,6 +458,9 @@ per group basis. For more information re
 SAVING NEW NEWS in
 .BR tin (1).
 .TP
+.B date_format
+Identical to the tinrc variable of the same name
+.TP
 .B delete_tmp_files
 If this is set to ON, then saved article files that have been
 post-processed will be automatically deleted, otherwise the user will
@@ -440,23 +468,41 @@ be asked whether to delete the post-proc
 processing of marked articles using \fBGroupAutoSave\fP
 ('\fBS\fP') will suppress prompting.
 .TP
+.B editor_format
+Identical to the tinrc variable of the same name
+.TP
 .B fcc
 Mailbox to save sent mails. The format of the mailbox is controlled
 via the tinrc \fBmailbox_format\fP variable.
 .TP
 .B followup_to
-Set ''Followup\-To:''-header to the specified group(s).
+Set ''Followup\-To:'' header to the specified group(s).
 .TP
 .B from
 Identical to the tinrc variable \fBmail_address\fP
 .TP
+.B group_catchup_on_exit
+Identical to the tinrc variable of the same name
+.TP
+.B mail_8bit_header
+Identical to the tinrc variable of the same name
+.TP
+.B mail_mime_encoding
+Identical to the tinrc variable of the same name
+.TP
 .B maildir
-Identical to the tinrc variable \fBdefault_maildir\fP
+Identical to the tinrc variable of the same name
 .TP
 .B mailing_list
 Used when a group is a mailing list. All responses to the group will be
 directed to this email address instead
 .TP
+.B mark_ignore_tags
+Identical to the tinrc variable of the same name
+.TP
+.B mark_saved_read
+Identical to the tinrc variable of the same name
+.TP
 .B mime_forward
 Determines whether usenet articles are forwarded as attachment or
 inline. When set to OFF, the forwarded article will be included in
@@ -469,16 +515,24 @@ if the receiver should be able to operat
 article (i.e., view or save it without your comments). On the other
 hand, if you want to forward only some parts of the article or to
 insert 'inline' annotations, you might want to disable this option.
+Currently mime_forward is forced if the article to be attached is a
+multipart MIME article, this may change in a future version.
 Please note that for this option to have effect, the tinrc variable
 \fBinteractive_mailer\fP has to be set to 0 (which is the default).
 .TP
 .B mime_types_to_save
-A comma separated list of MIME major/minor Content-Types that will be
+A comma separated list of MIME major/minor Content\-Types that will be
 saved when using the view/save and save/autosave features.
 A single * can be used to wildcard the major and/or minor type and
 a ! as the first character in an entry will negate it, eg:
 image/*,!image/bmp,!text/html. Default is */*
 .TP
+.B news_headers_to_display
+Identical to the tinrc variable of the same name
+.TP
+.B news_headers_to_not_display
+Identical to the tinrc variable of the same name
+.TP
 .B news_quote_format
 Identical to the tinrc variable of the same name
 .TP
@@ -487,16 +541,37 @@ This can be used to set the article head
 overrides the setting (if any) of organization in
 \fI/etc/tin/tin.defaults\fR and $\fBORGANIZATION\fP (or $\fBNEWSORG\fP on
 Apollo DomainOS). Note that some newsserver might still overwrite the
-\&''Organization:''-header.
+\&''Organization:'' header.
+.TP
+.B pos_first_unread
+Identical to the tinrc variable of the same name
 .TP
-.B post_proc_type
-Identical to the tinrc variable \fBpost_process_type\fP
+.B post_8bit_header
+Identical to the tinrc variable of the same name
+.TP
+.B post_mime_encoding
+Identical to the tinrc variable of the same name
+.TP
+.B post_process_type
+Identical to the tinrc variable of the same name
+.TP
+.B post_process_view
+Identical to the tinrc variable of the same name
+.TP
+.B print_header
+Identical to the tinrc variable of the same name
+.TP
+.B process_only_unread
+Identical to the tinrc variable of the same name
+.TP
+.B prompt_followupto
+Identical to the tinrc variable of the same name
 .TP
 .B quote_chars
 Identical to the tinrc variable of the same name
 .TP
 .B savedir
-Identical to the tinrc variable \fBdefault_savedir\fP
+Identical to the tinrc variable of the same name
 .TP
 .\" TODO: document option
 .B savefile
@@ -507,26 +582,50 @@ Identical to the tinrc variable of the s
 .B show_info
 Identical to the tinrc variable of the same name
 .TP
-.B show_only_unread
+.B show_only_unread_arts
+Identical to the tinrc variable of the same name
+.TP
+.B show_signatures
+Identical to the tinrc variable of the same name
+.TP
+.B sigdashes
 Identical to the tinrc variable of the same name
 .TP
 .B sigfile
-Identical to the tinrc variable \fBdefault_sigfile\fP
+Identical to the tinrc variable of the same name
+.TP
+.B signature_repost
+Identical to the tinrc variable of the same name
 .TP
-.B sort_art_type
+.B sort_article_type
 Identical to the tinrc variable \fBsort_article_type\fP
 .TP
 .B sort_threads_type
 Identical to the tinrc variable of the same name
 .TP
+.B start_editor_offset
+Identical to the tinrc variable of the same name
+.TP
 .B tex2iso_conv
 Identical to the tinrc variable of the same name
 .TP
-.B thread_arts
-Identical to the tinrc variable \fBthread_articles\fP
+.B thread_articles
+Identical to the tinrc variable of the same name
+.TP
+.B thread_catchup_on_exit
+Identical to the tinrc variable of the same name
 .TP
 .B thread_perc
-Identical to the tinrc variable \fBthread_perc\fP
+Identical to the tinrc variable of the same name
+.TP
+.B trim_article_body
+Identical to the tinrc variable of the same name
+.TP
+.B verbatim_handling
+Identical to the tinrc variable of the same name
+.TP
+.B wrap_on_next_unread
+Identical to the tinrc variable of the same name
 .TP
 .B x_body
 A piece of text that will be added at the start of a message body. If this
@@ -534,7 +633,7 @@ string starts with a / or ~ then it is a
 containing the text to insert.
 .TP
 .B x_comment_to
-Insert ''X\-Comment\-To:''-header, this is only useful in FIDO groups.
+Insert ''X\-Comment\-To:'' header, this is only useful in FIDO groups.
 .TP
 .B x_headers
 A string including header-name and the contents of the header that will
@@ -603,12 +702,12 @@ undeclared_charset=ISO\-8859\-1
 
 # in *sources* set post process type to shar only
 scope=*sources*
-post_proc_type=1
+post_process_type=1
 
 # in *binaries* turn on full post processing,
 # remove tmp files and set Followup\-To: poster
 scope=*binaries*
-post_proc_type=2
+post_process_type=2
 delete_tmp_files=ON
 followup_to=poster
 
@@ -633,7 +732,7 @@ undeclared_charset=ISO\-2022\-JP\-2
 .PP
 
 .\" TODO: add missing descriptions and explain things in detail.
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/filter
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/filter
 .sp
 .RS
 The filter file is used to assign scores to certain articles. Based on the
@@ -643,7 +742,7 @@ lines beginning with a '#' are ignored.
 .B comment
 Every entry (rule) in the filter file might get a comment. Multiple
 lines are allowed (but only for comments yet). Every line must start
-with the "comment="-keyword. Comments must appear first in the rule.
+with the "comment=" keyword. Comments must appear first in the rule.
 Comment lines placed within a rule will be moved to the begin of the
 next rule. This might be changed in the future. Don't use '#' to mark
 comments as those lines are ignored and your comments will get lost
@@ -665,7 +764,7 @@ Match against ''Subject:''
 .B from
 Match against ''From:''.
 .BR tin (1)
-converts the contents of the ''From:''-header to an old style e-mail address,
+converts the contents of the ''From:'' header to an old style e-mail address,
 e.g. ''some@body.example (John Doe)'' instead
 of ''John Doe <some@body.example>'', before trying to match the patterns in
 the filter rule.
@@ -687,12 +786,12 @@ Match against ''Lines:'', <num matches l
 .TP
 .\" TODO: document option in detail
 .B gnksa
-Match against ''From:''-address parser return codes.
+Match against ''From:'' address parser return codes.
 .TP
 .B xref
-Match against ''Xref:''-line. Before any matching is done the line is
+Match against ''Xref:'' line. Before any matching is done the line is
 turned into the same format ''Newsgroups:'' has that is it is turned
-into a comma separated newsgoup list with all other informations (i.e.
+into a comma separated newsgroup list with all other information (i.e.
 the article counter) removed.
 .TP
 .B time
@@ -705,7 +804,6 @@ Example:
 comment=mark all articles about tin, rtin,
 comment=tind, ktin or cdtin as hot
 group=*
-type=1
 case=1
 score=hot
 subj=\\b(cd|[rk]?)?tin(d|pre)?[\-.0\-9]*\\b
@@ -714,23 +812,20 @@ subj=\\b(cd|[rk]?)?tin(d|pre)?[\-.0\-9]*
 .RE
 .PP
 
-.\"
-.\" TODO: mention THREAD_EDIT_FILTER and SELECT_EDIT_FILTER
+.\" TODO: LC_CTYPE has a higher priority as LC_MESSAGES, does this make sense?
 .nf
-.IR /etc/tin/keymap${${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}:+".${LC_ALL\-"${LC_CTYPE\-"${LC_MESSAGES\-"$LANG"}"}"}"}
+.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"}"}"}"}
+.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
 Keymap-file, containing "\fIkeyname\fR \fIvalue\fR \fI[value]\fR" pairs
-seperated by spaces or tabs.  Below is a list of all rebindable keynames and
-their defaults. If a keynames is bound to NULL it is unassigned.
+separated by spaces or tabs. Below is a list of all rebindable keynames and
+their defaults. If a keyname is bound to NULL it is unassigned.
 .sp
 .nf
 .ta \w'GroupSelThdIfUnreadSelected    'u +\w'SPACE'u +\w'SPACE'u
-\fBPageDown3\fP	SPACE
 \fBShellEscape\fP	!
 \fBSetRange\fP	#
 \fBLastPage\fP	$
@@ -742,16 +837,16 @@ their defaults. If a keynames is bound t
 \fBSearchAuthB\fP	A
 \fBSearchBody\fP	B
 \fBCatchupNextUnread\fP	C
-\fBEditFilter\fP   E
+\fBEditFilter\fP	E
 \fBToggleHelpDisplay\fP	H
 \fBToggleInverseVideo\fP	I
 \fBLookupMessage\fP	L
 \fBOptionMenu\fP	M
 \fBPostponed\fP	O	^O
 \fBQuitTin\fP	Q
-\fBBugReport\fP   R
+\fBBugReport\fP	R
 \fBDisplayPostHist\fP	W
-\fBMarkThrUnread\fP   Z
+\fBMarkThrUnread\fP	Z
 \fBFirstPage\fP	^
 \fBSearchAuthF\fP	a
 \fBCatchup\fP	c
@@ -763,23 +858,36 @@ their defaults. If a keynames is bound t
 \fBQuit\fP	q
 \fBVersion\fP	v
 \fBPost\fP	w
-\fBMarkArtUnread\fP      z
+\fBMarkArtUnread\fP	z
 \fBQuickFilterSelect\fP	[
 \fBQuickFilterKill\fP	]
 \fBPipe\fP	|
 \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
 \fBMenuFilterKill\fP	^K
+\fBMarkFeedRead\fP	^X
+\fBMarkFeedUnread\fP	^W
+.sp
+\fBAttachSelect\fP	^J	^M
+\fBAttachPipe\fP	p
+\fBAttachSave\fP	s
+\fBAttachTag\fP	t
+\fBAttachUntag\fP	U
+\fBAttachTagPattern\fP	=
+\fBAttachToggleTagged\fP	@
 .sp
+\fBConfigToggleAttrib\fP	TAB
 \fBConfigSelect\fP	^J	^M
 \fBConfigLastPage\fP	G
 \fBConfigNoSave\fP	Q
+\fBConfigScopeMenu\fP	S
 \fBConfigFirstPage\fP	g
+\fBConfigResetAttrib\fP	r
 .sp
 \fBFeedTag\fP	T
 \fBFeedArt\fP	a
@@ -800,6 +908,7 @@ their defaults. If a keynames is bound t
 \fBGroupSelThdIfUnreadSelected\fP	;
 \fBGroupSelPattern\fP	=
 \fBGroupReverseSel\fP	@
+\fBGroupCancel\fP	D
 \fBGroupToggleGetartLimit\fP	G
 \fBGroupMarkThdRead\fP	K
 \fBGroupNextUnreadArt\fP	N
@@ -826,12 +935,13 @@ their defaults. If a keynames is bound t
 .sp
 \fBPageReplyQuoteHeaders\fP	^E
 \fBPagePGPCheckArticle\fP	^G
-\fBPageToggleHeaders\fP	^H
+\fBPageToggleRaw\fP	^H
 \fBPageNextUnread\fP	TAB
 \fBPageNextThd\fP	^J	^M
 \fBPageToggleTabs\fP	^T
 \fBPageFollowupQuoteHeaders\fP	^W
 \fBPageToggleTex2iso\fP	"
+\fBPageToggleAllHeaders\fP	*
 \fBPageToggleRot\fP	%
 \fBPageToggleUue\fP	(
 \fBPageReveal\fP	)
@@ -912,11 +1022,19 @@ their defaults. If a keynames is bound t
 \fBSelectYankActive\fP	y
 \fBSelectMarkGrpUnread\fP	z	Z
 .sp
+\fBScopeSelect\fP	^J	^M
+\fBScopeEditAttributesFile\fP	E
+\fBScopeAdd\fP	a
+\fBScopeDelete\fP	d
+\fBScopeMove\fP	m
+\fBScopeRename\fP	r
+.sp
 \fBThreadReadNextArtOrThread\fP	TAB
 \fBThreadReadArt\fP	^J	^M
 \fBThreadSelArt\fP	*
 \fBThreadToggleArtSel\fP	.
 \fBThreadReverseSel\fP	@
+\fBThreadCancel\fP	D
 \fBThreadMarkArtRead\fP	K
 \fBThreadAutoSave\fP	S
 \fBThreadUntag\fP	U
@@ -925,11 +1043,13 @@ their defaults. If a keynames is bound t
 \fBThreadSave\fP	s
 \fBThreadTag\fP	t
 \fBThreadUndoSel\fP	~
+.sp
+\fBUrlSelect\fP	^J	^M
 .fi
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/mailgroups
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups
 .sp
 .RS
 This file provides short descriptions of each mailgroup. (requires
@@ -945,7 +1065,7 @@ is a short single-line description of th
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/newsrctable
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/newsrctable
 .sp
 .RS
 "\fInntpserver\fR \fInewsrc\fR [\fIshortname\fR [\fI...\fR]]"
@@ -966,19 +1086,19 @@ Example:
 .br
 news.tin.org .newsrc\-tin.org tinorg
 .br
-news.ka.nu /tmp/nrc\-nu kanu nu
+news.example.org /tmp/nrc\-ex example ex
 .RE
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/posted
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/posted
 .sp
 .RS
 posting history
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/Mail/posted
+.IR ${TIN_HOMEDIR:\-"$HOME"}/Mail/posted
 .sp
 .RS
 Copy of all posted articles in
@@ -988,7 +1108,7 @@ format. The filename can be changed by s
 .RE
 .PP
 
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/postponed.articles
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/postponed.articles
 .sp
 .RS
 Pool of postponed articles. This file is in
@@ -998,7 +1118,7 @@ format.
 .PP
 
 .nf
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/newsgroups
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/newsgroups
 .fi
 .sp
 .RS
@@ -1018,7 +1138,7 @@ is a short single-line description of th
 
 
 .nf
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT+":$NNTPPORT"}/serverrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/$NNTPSERVER${NNTPPORT:+":$NNTPPORT"}/serverrc
 .fi
 .sp
 .RS
@@ -1043,7 +1163,7 @@ to keep track of new newsgroups on the s
 .\" .IR ${TIN_LIBDIR\-"/news/etc"}/tinrc
 .IR /etc/tin/tinrc
 .br
-.IR ${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc
+.IR ${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc
 .sp
 .RS
 At startup,
@@ -1052,11 +1172,17 @@ reads in the configuration file. This co
 "\fIvariable\fR=\fIvalue\fR" pairs that can be used to configure the way
 .BR tin (1)
 works. If it exists, the global configuration file,
-\fI${TIN_LIBDIR}\-NEWSLIBDIR}/tinrc\fR is read first. After that, the
-users own configuration file \fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR is read.
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fR is read first. After that, the
+user's own configuration file \fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR is read.
 The global file is useful for distributing system-wide defaults to new
 users who have no private tinrc yet (see also \fB/etc/tin/tin.defaults\fP).
 .TP
+.B abbreviate_groupname
+If ON abbreviate long newsgroup names at group selection level and article
+level (if necessary) like this:
+news.software.readers \-> n.software.readers \-> n.s.readers \-> n.s.r.
+Default is OFF.
+.TP
 .B add_posted_to_filter
 If ON add posted articles which start a new thread to filter for
 highlighting follow-ups. Default is ON.
@@ -1104,16 +1230,12 @@ Default is ':'. \fBkill_level\fP must be
 If ON
 .BR tin (1)
 will ask before using a MIME viewer (\fBmetamail_prog\fP) to display
-MIME messages. This only occurs if a MIME viewer is set.  Default is
+MIME messages. This only occurs if a MIME viewer is set. Default is
 OFF.
 .TP
-.B auto_bcc
-If ON automatically put your name in the ''Bcc:'' field when mailing an
-article. Default is OFF.
-.TP
-.B auto_cc
-If ON automatically put your name in the ''Cc:'' field when mailing an
-article. Default is OFF.
+.B auto_cc_bcc
+Automatically put your name in the ''Cc:'' and/or ''Bcc:'' field when
+mailing an article. Default is No.
 .TP
 .B auto_list_thread
 If ON automatically list thread when entering it using right arrow key.
@@ -1209,6 +1331,9 @@ Color of signatures
 .B col_urls
 Color of urls highlight
 .TP
+.B col_verbatim
+Color of verbatim blocks
+.TP
 .B col_subject
 Color of article subject
 .TP
@@ -1216,7 +1341,7 @@ Color of article subject
 Color of text-lines
 .TP
 .B col_title
-Color of help/main sign
+Color of help/mail sign
 .TP
 .B confirm_choice
 .BR tin (1)
@@ -1244,7 +1369,7 @@ Format string
 used for date representation. A description of the different format options
 can be found at
 .BR strftime (3).
-.BR tin (1).
+.BR tin (1)
 uses
 .BR strftime (3)
 when available and supports most format options in his fallback code.
@@ -1257,11 +1382,6 @@ Default is "%a, %d %b %Y %H:%M:%S".
 .B default_config_search
 The last article/author/config option that was searched for.
 .TP
-.B default_editor_format
-The format string used to create the editor start command with parameters.
-Default is '%E +%N %F' (e.g., /bin/vi +7 .article).
-.\" TODO: document %E, %F, %N
-.TP
 .B default_filter_days
 Default is 28.
 .TP
@@ -1279,20 +1399,19 @@ OFF=apply to current group. Default is O
 .TP
 .B default_filter_kill_header
 Default for quick (1 key) kill filter header.
-.RS +.5i
-.IP 0,1 4
- ''Subject:''
-.IP 2,3
- ''From:''
-.IP 4
- ''Message\-ID:'' & full ''References:'' line
-.IP 5
- ''Message\-ID:'' & last ''References:'' entry only
-.IP 6
- ''Message\-ID:'' entry only
-.IP 7
- ''Lines:''
-.RE
+.in +.3i
+.nf
+.ta \w'0,1   'u +\w'\'\'Message\-ID:\'\' & last \'\'References:\'\' entry only'u
+0	''Subject:'' (case sensitive)
+1	''Subject:'' (ignore case)
+2	''From:'' (case sensitive)
+3	''From:'' (ignore case)
+4	''Message\-ID:'' & full ''References:'' line
+5	''Message\-ID:'' & last ''References:'' entry only
+6	''Message\-ID:'' entry only
+7	''Lines:''
+.fi
+.in -.3i
 .TP
 .B default_filter_select_case
 Default for quick (1 key) auto-selection filter case. ON=filter case
@@ -1308,20 +1427,19 @@ groups, OFF=apply to current group. Defa
 .TP
 .B default_filter_select_header
 Default for quick (1 key) auto-selection filter header.
-.RS +.5i
-.IP 0,1 4
- ''Subject:''
-.IP 2,3
- ''From:''
-.IP 4
- ''Message\-ID:'' & full ''References:'' line
-.IP 5
- ''Message\-ID:'' & last ''References:'' entry only
-.IP 6
- ''Message\-ID:'' entry only
-.IP 7
- ''Lines:''
-.RE
+.in +.3i
+.nf
+.ta \w'0,1   'u +\w'\'\'Message\-ID:\'\' & last \'\'References:\'\' entry only'u
+0	''Subject:'' (case sensitive)
+1	''Subject:'' (ignore case)
+2	''From:'' (case sensitive)
+3	''From:'' (ignore case)
+4	''Message\-ID:'' & full ''References:'' line
+5	''Message\-ID:'' & last ''References:'' entry only
+6	''Message\-ID:'' entry only
+7	''Lines:''
+.fi
+.in -.3i
 .TP
 .B default_goto_group
 .TP
@@ -1329,24 +1447,6 @@ Default for quick (1 key) auto-selection
 .TP
 .B default_mail_address
 .TP
-.B default_maildir
-The directory where articles/threads are to be saved in
-.BR mbox (5)
-format. This feature is mainly for use with the
-.BR elm (1)
-mail program. It allows the user to save articles/threads/groups simply
-by giving '=' as the filename to save to. Default is
-\fI${TIN_HOMEDIR\-"$HOME"}/Mail\fR.
-.TP
-.B default_mailer_format
-The format string used to create the mailer command with parameters that is
-used for mailing articles to other people. Default is '%M "%T" < %F' (e.g.,
-/bin/mail "iain" < .article). The flexible format allows other mailers with
-different command line parameters to be used such as 'elm \-s "%S" "%T" <
-"%F"' (e.g., elm \-s "subject" "iain" < .article) or 'sendmail \-oem \-t < %F'
-(e.g. sendmail \-oem \-t < .article).
-.\" TODO: document %S, %T, %M, %F, %U ...
-.TP
 .B default_move_group
 .TP
 .B default_pattern
@@ -1357,16 +1457,6 @@ different command line parameters to be 
 .TP
 .B default_post_subject
 .TP
-.B default_printer
-The printer program with options that is to be used to print articles. The
-default is
-.BR lpr (1)
-for BSD machines and
-.BR lp (1)
-for SysV machines. Printing from
-.BR tin (1)
-may have been disabled by the System Administrator.
-.TP
 .B default_range_group
 .TP
 .B default_range_select
@@ -1379,31 +1469,21 @@ may have been disabled by the System Adm
 .TP
 .B default_save_mode
 .TP
-.B default_savedir
-Directory where articles/threads are saved. Default is
-\fI${TIN_HOMEDIR\-"$HOME"}/News\fR.
-.TP
 .B default_select_pattern
 .TP
 .B default_shell_command
 .TP
-.B default_sigfile
-The path that specifies the signature file to use when posting, following
-up to or replying to an article. If the path is a directory then the
-signature will be randomly generated from files that are in the specified
-directory. If the path starts with a ! the program the path points to will
-be executed to generate a signature.
-.BR tin (1)
-will pass the name of the current newsgroup as argument to the
-program. \-\-none will suppress any signature.
-Default is \fI${TIN_HOMEDIR\-"$HOME"}/.Sig\fR.
-.TP
 .B default_subject_search
 .TP
 .B draw_arrow
 Allows groups/articles to be selected by an arrow '\->' if set ON or by an
 highlighted bar if set OFF.
 .TP
+.B editor_format
+The format string used to create the editor start command with parameters.
+Default is '%E +%N %F' with %E=Editor, %N=Linenumber and %F=Filename
+(e.g., /bin/vi +7 .article).
+.TP
 .B force_screen_redraw
 Specifies whether a screen redraw should always be done after certain
 external commands. Default is OFF.
@@ -1415,6 +1495,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
@@ -1449,21 +1537,21 @@ available to display long subjects. Defa
 If greater than 0 your mailreader will be invoked earlier for reply so you can
 use more of its features (e.g. MIME, pgp, ...). 1 means include headers, 2
 means don't include headers (old use_mailreader_i=ON option). 0 turns off
-usage. This option has to suit \fBdefault_mailer_format\fP. Default is 0.
+usage. This option has to suit \fBmailer_format\fP. Default is 0.
 .TP
 .B inverse_okay
 If ON use inverse video for page headers and URL highlighting.
 Default is ON.
 .TP
 .B keep_dead_articles
-If ON keep all failed postings in \fI${TIN_HOMEDIR\-"$HOME"}/dead.articles\fR
+If ON keep all failed postings in \fI${TIN_HOMEDIR:\-"$HOME"}/dead.articles\fR
 besides keeping the last failed posting in
-\fI${TIN_HOMEDIR\-"$HOME"}/dead.article\fR. Default is ON.
+\fI${TIN_HOMEDIR:\-"$HOME"}/dead.article\fR. Default is ON.
 .TP
 .B kill_level
 This option controls the processing and display of articles that are
-killed. There are 3 options:
-.RS +.5i
+killed. There are 3 options, default is 0 (\fBKill only unread arts\fP).
+.RS +1i
 .IP 0 3
 \fBKill only unread arts\fP is the 'traditional' behavior of
 .BR tin (1).
@@ -1481,13 +1569,12 @@ marked with \fBart_marked_killed\fP.
 group and therefore there is a processing overhead when using this
 option. Killed articles simply does not get displayed at all.
 .RE
-Default is 0 (\fBKill only unread arts\fP).
 .TP
 .B mail_8bit_header
 Allows 8bit characters unencoded in the header of mail message. Default is
 OFF. Turning it ON is effective only if \fBmail_mime_encoding\fP is also set
 to 8bit. Leaving it OFF is safe for most users and compliant to Internet
-Mail Standard (\fBRFC2822\fP and \fBRFC2047\fP). Default is OFF.
+Mail Standard (\fBRFC5322\fP and \fBRFC2047\fP). Default is OFF.
 .TP
 .B mail_address
 User's mail address (and full name), if not username@host. This is used when
@@ -1497,8 +1584,7 @@ signing.
 .TP
 .B mail_mime_encoding
 MIME encoding of the body in mail message, if necessary (8bit, base64,
-quoted-printable, 7bit). Default is 8bit and no encoding (or charset
-conversion) is performed (i.e., local charset is used as it is).
+quoted\-printable, 7bit). Default is quoted\-printable.
 .TP
 .B mail_quote_format
 Format of quote line when replying (via mail) to an article (%A=Address,
@@ -1513,15 +1599,51 @@ for more details on MBOXO and MBOXRD and
 .BR mmdf (5)
 for more details about MMDF.
 .TP
+.B maildir
+The directory where articles/threads are to be saved in
+.BR mbox (5)
+format. This feature is mainly for use with the
+.BR elm (1)
+mail program. It allows the user to save articles/threads/groups simply
+by giving '=' as the filename to save to. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail\fR.
+.TP
+.B mailer_format
+The format string used to create the mailer command with parameters that is
+used for mailing articles to other people. Default is '%M "%T" < %F' (e.g.,
+/bin/mail "iain" < .article). The flexible format allows other mailers with
+different command line parameters to be used such as
+.in +.3i
+.nf
+sendmail \-oem \-t < %F
+elm \-s "%S" "%T" < "%F"
+claws-mail \-\-compose "mailto:%T?subject=%S&insert=%F"
+.fi
+.in -.3i
+\fBinteractive_mailer\fP must be set adequate. The following substitutions
+are supported:
+.in +.3i
+.nf
+.ta \w'%S'u +\w'subject-field'u
+%F	filename
+%M	default_mailer
+%S	subject-field
+%T	to-filed
+%U	username
+%%	%
+.fi
+.in -.3i
+.TP
 .B mark_saved_read
 If ON mark articles that are saved as read. Default is ON.
 .TP
 .B mark_ignore_tags
-When this is ON, the \fBGroupMarkThdRead\fP, \fBThreadMarkArtRead\fP
-functions ('\fBK\fP') mark just the current article or thread, ignoring
-other tagged, unread articles.  When OFF, the same function presents a menu
-with choices of the current thread or article, all tagged, unread articles,
-or nothing.
+When this is ON, the \fBGroupMarkThdRead\fP ('\fBK\fP'),
+\fBThreadMarkArtRead\fP ('\fBK\fP'), \fBMarkThdUnread\fP ('\fBZ\fP') at
+Group level and \fBMarkArtUnread\fP ('\fBz\fP') at Thread level functions
+mark just the current article or thread, ignoring other tagged, (un)read
+articles. When OFF, the same function presents a menu with choices of the
+current thread or article, all tagged, unread articles, or nothing.
 .TP
 .B metamail_prog
 Path, name and options of external
@@ -1596,16 +1718,16 @@ what they are for.
 .TP
 .B news_headers_to_display
 Which news headers you wish to see. If you want to see _all_ the headers,
-place an '*' as this value. This is the only way a wildcard can be used.
-If you enter 'X\-' as the value, you will see all headers beginning
-with 'X\-' (like X\-Alan or X\-Pape). You can list more than one by delimiting
-with spaces. Not defining anything turns off this option.
+place an '*' as this value. This is the only way a wildcard can be used. If
+you enter 'X\-' as the value, you will see all headers beginning with 'X\-'
+(like X\-Alan or X\-Pape). You can list more than one by delimiting with
+spaces. Not defining anything turns off this option.
 .TP
 .B news_headers_to_not_display
 Same as \fBnews_headers_to_display\fP except it denotes the opposite. An
-example of using both options might be if you thought X\- headers were A Good
-Thing(tm), but thought Alan and Pape were miscreants... well then you would
-do something like this:
+example of using both options might be if you thought 'X\-' headers were A
+Good Thing(tm), but thought Alan and Pape were miscreants... well then you
+would do something like this:
 \fBnews_headers_to_display=X\-\fP
 \fBnews_headers_to_not_display=X\-Alan X\-Pape\fP
 Not defining anything turns off this option.
@@ -1618,7 +1740,7 @@ Format of quote line when posting/follow
 .B normalization_form
 The normalization form which should be used to normalize unicode input.
 The possible values are:
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBNone\fP: no normalization
 .IP 1
@@ -1635,10 +1757,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.
@@ -1646,7 +1764,7 @@ Default is ON.
 .B post_8bit_header
 Allows 8bit characters unencoded in the header of a news article, if
 set this also disables the generation of MIME-headers when they are
-usualy required. Default is OFF. Only enacted if
+usually required. Default is OFF. Only enacted if
 \fBpost_mime_encoding\fP is also set to 8bit. In a number of local
 hierarchies where 8bit characters are used, using unencoded (raw)
 8bit characters in header is acceptable and sometimes even
@@ -1656,8 +1774,8 @@ and \fBpost_mime_encoding\fP.
 .TP
 .B post_mime_encoding
 MIME encoding of the body in news message, if necessary. (8bit, base64,
-quoted-printable, 7bit) Default is 8bit, which leads to no encoding.
-base64 and quoted-printable are usually undesired on usenet.
+quoted\-printable, 7bit). Default is 8bit, which leads to no encoding.
+base64 and quoted\-printable are usually undesired on usenet.
 .TP
 .B post_process_view
 If ON, then
@@ -1671,7 +1789,7 @@ This specifies whether to perform post p
 Because the shell archive may contain commands you may not want to
 be executed, be careful when extracting shell archives.
 The following values are allowed:
-.RS +.8i
+.RS +1i
 .IP 0 3
 \fBNo\fP (default), no post processing is done.
 .IP 1
@@ -1685,7 +1803,7 @@ not want to be executed, be careful with
 .TP
 .B posted_articles_file
 Keep posted articles in
-\fI${TIN_HOMEDIR\-"$HOME"}/Mail/\fBposted_articles_file\fP\fR.
+\fI${TIN_HOMEDIR:\-"$HOME"}/Mail/\fBposted_articles_file\fP\fR.
 If no filename is set then postings will not be saved.
 Default is 'posted'.
 .TP
@@ -1693,6 +1811,16 @@ Default is 'posted'.
 If ON, then the full article header is sent to the printer. Otherwise only
 the ''Subject:'' and ''From:'' fields are output. Default is OFF.
 .TP
+.B printer
+The printer program with options that is to be used to print articles. The
+default is
+.BR lpr (1)
+for BSD machines and
+.BR lp (1)
+for SysV machines. Printing from
+.BR tin (1)
+may have been disabled by the System Administrator.
+.TP
 .B process_only_unread
 If ON only save/print/pipe/mail unread articles (tagged articles excepted).
 Default is OFF.
@@ -1712,7 +1840,7 @@ This bit coded integer value controls ho
 following up or replying to them. Any of the following options can be
 combined by adding all relevant values. Default is 5, which means that quote
 characters are compressed and empty lines are quoted.
-.RS +.5i
+.RS +1i
 .IP 1 3
 \fBCompress quotes\fP Compress quote characters together when quoting
 multiple times (for example, '> > >' will be turned into '>>>'). This
@@ -1720,8 +1848,9 @@ option is on by default.
 .IP 2
 \fBQuote Signatures\fP This option is off by default. Signatures are
 always quoted regardless of this option when you are viewing an article
-in raw mode \fBPageToggleHeaders\fP ('\fB^H\fP') and followup or reply
-to it.
+in raw mode \fBPageToggleRaw\fP ('\fB^H\fP') and followup or reply
+to it. Signatures are never quoted regardless of this option when
+\fBshow_signatures\fP is off.
 .IP 4
 \fBQuote empty lines\fP This option is on by default.
 .RE
@@ -1756,10 +1885,14 @@ If ON \fBtin\fP does the rendering of bi
 leaves the rendering of bi-directional text to the terminal. Default is OFF.
 .TP
 .B reread_active_file_secs
-The news \fI${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}\fR file
+The news \fI${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}\fR file
 is reread at regular intervals to show if any new news has arrived. Default
 is 1200. Setting this to 0 will disable this feature.
 .TP
+.B savedir
+Directory where articles/threads are saved. Default is
+\fI${TIN_HOMEDIR:\-"$HOME"}/News\fR.
+.TP
 .B score_limit_kill
 If the score of an article is below or equal this value the article gets
 marked as killed.
@@ -1779,15 +1912,15 @@ Score of an article which should be mark
 .B scroll_lines
 The number of lines that will be scrolled up/down in the article pager when
 using cursor-up/down. The default is 1 (line-by-line). Set to 0 to get
-traditional page-by-page scrolling. Set to -1 to get page-by-page
+traditional page-by-page scrolling. Set to \-1 to get page-by-page
 scrolling where the top/bottom line is carried over onto the next page.
-This setting supersedes show_last_line_prev_page=ON. Set to -2 to get
+This setting supersedes show_last_line_prev_page=ON. Set to \-2 to get
 half-page scrolling. This setting supersedes full_page_scroll=OFF.
 .TP
 .B show_author
 Which information about the author should be shown. Default is 2, authors
 full name.
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBNone\fP, only the ''Subject:'' line will be displayed.
 .IP 1
@@ -1805,15 +1938,15 @@ displayed.
 If ON show a short group description text after newsgroup name at the group
 selection level. The ''\fB\-d\fP'' command-line flag will override the setting
 and turn descriptions off. The text used is taken from the
-\fI${TIN_LIBDIR\-NEWSLIBDIR}/newsgroups\fR file and if supported (requires
+\fI${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups\fR file and if supported (requires
 .BR tin (1)
 to be build with mh-mail-handling support) from
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/mailgroups\fR for mailgroups. Default is ON.
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/mailgroups\fR for mailgroups. Default is ON.
 .TP
 .B show_info
 Which information about the thread or article should be shown. Default is 1,
 show only the line count.
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBNone\fP, no information will be displayed.
 .IP 1
@@ -1842,6 +1975,17 @@ If OFF don't show signatures when displa
 .B sigdashes
 If ON prepend the signature with sigdashes. Default is ON.
 .TP
+.B sigfile
+The path that specifies the signature file to use when posting, following
+up to or replying to an article. If the path is a directory then the
+signature will be randomly generated from files that are in the specified
+directory. If the path starts with a ! the program the path points to will
+be executed to generate a signature.
+.BR tin (1)
+will pass the name of the current newsgroup as argument to the
+program. \-\-none will suppress any signature.
+Default is \fI${TIN_HOMEDIR:\-"$HOME"}/.Sig\fR.
+.TP
 .B signature_repost
 If ON add signature to reposted articles. Default is ON.
 .TP
@@ -1853,9 +1997,9 @@ matching words are shown in \fBcol_marks
 uses a built-in default.
 .TP
 .B sort_article_type
-This specifies how articles should be sorted.Sort by ascending Date (6) is
+This specifies how articles should be sorted. Sort by ascending Date (6) is
 the default. The following sort types are allowed:
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBNothing\fP, don't sort articles.
 .IP 1
@@ -1884,7 +2028,7 @@ the default. The following sort types ar
 .B sort_threads_type
 This specifies how threads will be sorted. Sort by descending Score (1) is
 the default. The following sort types are allowed:
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBNothing\fP, don't sort threads.
 .IP 1
@@ -1892,14 +2036,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
@@ -1923,7 +2065,7 @@ display when reading on a slow terminal 
 .TP
 .B strip_bogus
 Bogus groups are groups that are present in your
-\fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR file that no longer exist on the news
+\fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR file that no longer exist on the news
 server. There are 3 options. 0 means do nothing & always keep bogus groups.
 1 means bogus groups will be permanently removed. 2 means that bogus groups
 will appear on the Group Selection Menu, prefixed with a 'D'. This allows
@@ -1931,7 +2073,7 @@ you to unsubscribe from them as and when
 .TP
 .B strip_newsrc
 If ON, then unsubscribed groups will be permanently removed from
-your \fI${TIN_HOMEDIR\-"$HOME"}/.newsrc\fR file. Default is OFF.
+your \fI${TIN_HOMEDIR:\-"$HOME"}/.newsrc\fR file. Default is OFF.
 .TP
 .B strokes_regex
 A regular expression that will be applied when reading articles. All
@@ -1940,11 +2082,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
@@ -1957,8 +2094,8 @@ Defines which threading method to use. T
 4) Thread multipart articles on Subject.
 5) Thread on Percentage Match of the Subjects
 It's also possible to set the threading type on a per group basis by setting
-the group attribute variable \fBthread_arts\fP to 0 - 5 in the file
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/attributes\fR.
+the group attribute variable \fBthread_articles\fP to 0 - 5 in the file
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/attributes\fR.
 .TP
 .B thread_perc
 Defines how close the subjects must match while threading by Percentage
@@ -1972,7 +2109,7 @@ ON.
 .B thread_score
 How the total score of a thread is computed. Default is 0, the maximum
 score in this thread.
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBMax\fP, the maximum score in this thread.
 .IP 1
@@ -1989,6 +2126,29 @@ represented in the target character set,
 or several similarly looking characters. On systems where this extension
 doesn't exist, this option is disabled. Default is OFF.
 .TP
+.B trim_article_body
+Allows you to select how \fBtin\fP treats blank lines in article bodies.
+Default is 0. This option does not affect lines within verbatim blocks.
+.RS +1i
+.IP 0 3
+\fBDon't trim article body\fP, do nothing.
+.IP 1
+\fBSkip leading blank lines\fP.
+.IP 2
+\fBSkip trailing blank lines\fP.
+.IP 3
+\fBSkip leading and trailing blank l.\fP, skip leading and trailing blank lines.
+.IP 4
+\fBCompact multiple between text\fP, replace multiple blank lines between
+textblocks with one blank line.
+.IP 5
+\fBCompact multiple and skip leading\fP, 4 + 1
+.IP 6
+\fBCompact multiple and skip trailing\fP, 4 + 2
+.IP 7
+\fBCompact mltpl., skip lead. & trai.\fP, 4 + 3
+.RE
+.TP
 .B underscores_regex
 A regular expression that will be applied when reading articles. All
 matching words are shown in \fBcol_markdash\fP or \fBmono_markdash\fP. If
@@ -1997,13 +2157,13 @@ matching words are shown in \fBcol_markd
 uses a built-in default.
 .TP
 .B unlink_article
-If ON remove \fI${TIN_HOMEDIR\-"$HOME"}/.article\fR after posting. Default is
+If ON remove \fI${TIN_HOMEDIR:\-"$HOME"}/.article\fR after posting. Default is
 ON.
 .TP
 .B url_handler
 The program that will be run when launching URLs in the article viewer
 using \fBPageViewUrl\fP ('\fBU\fP'). The actual URL will be appended to
-this. Default is \fBurl_handler.sh %s\fP.
+this. Default is \fBurl_handler.pl %s\fP.
 .TP
 .B url_highlight
 Enable highlighting URLs in message body. Default is ON.
@@ -2017,7 +2177,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.
@@ -2034,6 +2194,22 @@ and
 .BR slrnface (1)
 must be in your $\fBPATH\fP. Default is OFF.
 .TP
+.B utf8_graphics
+If ON use UTF-8 characters for indicator ('\->'), thread/attachment tree and
+ellipsis ('...'). 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 verbatim_handling
+If ON verbatim blocks will be detected.
+Default is ON
+.TP
 .B wildcard
 Allows you to select how
 .BR tin (1)
@@ -2049,7 +2225,7 @@ using the wildmat notation.
 .B word_h_display_marks
 Should the leading and ending stars, slashes, strokes and dashes also be
 displayed, even when they are highlighting marks?
-.RS +.5i
+.RS +1i
 .IP 0 3
 \fBno\fP
 .IP 1
@@ -2094,8 +2270,8 @@ set.
 .RS
 Yet another global configuration file with "\fIvariable\fR=\fIvalue\fR"
 pairs. This one is for the more general options which usually can't be
-controlled via \fI${TIN_LIBDIR\-NEWSLIBDIR}/tinrc\fR and/or
-\fI${TIN_HOMEDIR\-"$HOME"}/.tin/tinrc\fR like resetting (to override the
+controlled via \fI${TIN_LIBDIR:\-NEWSLIBDIR}/tinrc\fR and/or
+\fI${TIN_HOMEDIR:\-"$HOME"}/.tin/tinrc\fR like resetting (to override the
 built-in default) the \fInewslibdir\fR.
 .TP
 .B domainname
@@ -2122,22 +2298,22 @@ Defines the directory containing of the
 executable
 .TP
 .B mm_charset
-Default charset to be used in MIME's Content-Type header. $\fBMM_CHARSET\fP
+Default charset to be used in MIME's ''Content\-Type:'' header. $\fBMM_CHARSET\fP
 overrides any specified value.
 .TP
 .B post_mime_encoding
 Default encoding scheme use in MIME articles. 8bit might be the best value.
 .TP
 .B mail_mime_encoding
-Default encoding scheme use in MIME letters. quoted-printable is a good
+Default encoding scheme use in MIME letters. quoted\-printable is a good
 choice here.
 .TP
 .B disable_gnksa_domain_check
 Allow unregistered top level domains
 .TP
 .B disable_sender
-Don't generate a ''Sender:''-header. This has no effect if
-\fBinews_prog\fP is not set to \-\-internal.
+Don't generate a ''Sender:'' header. This has an effect only if
+\fBinews_prog\fP is set to \-\-internal.
 .TP
 .B spooldir
 Base of your newsspool (Bnews, Cnews and INN traditional spool style), common
@@ -2156,6 +2332,11 @@ overrides any specified value.
 Name of a single overview file, common values are \fI.overview\fR,
 \fIover.view\fR.
 .TP
+.B overviewfmtfile
+Full pathname of your newssystem's overview.fmt file; usually the
+overview.fmt file is in \fInewslibdir\fR, so you only have to change this
+setting if your configuration differs.
+.TP
 .B activefile
 Full pathname of your newssystem's active file; usually the active file
 resides in \fInewslibdir\fR and is named \fIactive\fR, so you only have
@@ -2179,7 +2360,7 @@ setting if your configuration differs.
 .RE
 .PP
 
-.IR /usr/local/share/locale/${LC_MESSAGES}/LC_MESSAGES/tin.mo
+.IR /usr/local/share/locale/$LC_MESSAGES/LC_MESSAGES/tin.mo
 .sp
 .RS
 translation into language specified in $\fBLC_ALL\fP, $\fBLC_MESSAGES\fP or
@@ -2191,7 +2372,7 @@ $\fBLANG\fP
 .\" as with inn >= 2.2.x getting more and more popular
 .\" we should think about checking for the new Paths
 .\" (described shown below).
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE\-active}
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}"/"${TIN_ACTIVEFILE:\-active}
 .sp
 .RS
 This file lists the newsgroups that the local site receives. Each newsgroup
@@ -2247,11 +2428,11 @@ articles are locally filed into the ''fo
 only tries to read the file if you read directly from the local spool,
 if you read news via NNTP,
 .BR tin (1)
-uses the LIST (\fBRFC977\fP) command instead.
+uses the LIST (\fBRFC3977\fP) command instead.
 .RE
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/active.times
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/active.times
 .sp
 .RS
 This file provides a chronological record of when newsgroups are created. It
@@ -2274,11 +2455,11 @@ is the electronic mail address of the pe
 only tries to read the file if you read directly from the local spool,
 if you read news via NNTP,
 .BR tin (1)
-uses the NEWGROUPS (\fBRFC977\fP) command instead.
+uses the NEWGROUPS (\fBRFC3977\fP) command instead.
 .RE
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/newsgroups
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/newsgroups
 .sp
 .RS
 This file provides short descriptions of each newsgroup. It is normally
@@ -2297,11 +2478,11 @@ is a short single-line description of th
 only tries to read the file if you read directly from the local spool,
 if you read news via NNTP,
 .BR tin (1)
-uses the LIST NEWSGROUPS (\fBRFC2980\fP) command instead.
+uses the LIST NEWSGROUPS (\fBRFC3977\fP) command instead.
 .RE
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/organization
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/organization
 .sp
 .RS
 This file specifies might hold a default organization to be used
@@ -2310,7 +2491,7 @@ if set.
 .RE
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/overview.fmt
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/overview.fmt
 .\" is the Path correct? or is it /news/etc/overview.fmt
 .sp
 .RS
@@ -2318,30 +2499,28 @@ This file specifies the organization of 
 also
 .BR newsoverview (5)).
 The order of lines in this file is important; it determines the order in
-which the fields will appear in the database.
-.BR tin (1)
-currently only understands the order specified in \fBRFC2980\fP. See also
+which the fields will appear in the database. See also
 .BR overview.fmt (5).
 .BR tin (1)
 only tries to read the file if you read directly from the local spool,
 if you read news via NNTP,
 .BR tin (1)
-uses the LIST OVERVIEW.FMT (\fBRFC2980\fP) command instead.
+uses the LIST OVERVIEW.FMT (\fBRFC3977\fP) command instead.
 .RE
 .PP
 
-.IR ${TIN_LIBDIR\-NEWSLIBDIR}/subscriptions
+.IR ${TIN_LIBDIR:\-NEWSLIBDIR}/subscriptions
 .\" is the Path correct? or is it /news/etc/subscriptions
 .sp
 .RS
 This file contains a list of newsgroups - one per line - which the client
-should subscribe to when the user has no ${TIN_HOMEDIR\-"$HOME"}/.newsrc for
+should subscribe to when the user has no ${TIN_HOMEDIR:\-"$HOME"}/.newsrc for
 the newsserver.
 .BR tin (1)
 only tries to read the file if you read directly from the local spool,
 if you read news via NNTP,
 .BR tin (1)
-uses the LIST SUBSCRIPTIONS (\fBRFC2980\fP) command instead.
+uses the LIST SUBSCRIPTIONS (\fBRFC6048\fP) command instead.
 .RE
 .PP
 
@@ -2372,12 +2551,15 @@ uses the LIST SUBSCRIPTIONS (\fBRFC2980\
 .BR newsoverview (5),
 .BR overview.fmt (5),
 .BR innd (8),
-.BR RFC977 ,
-.BR RFC1036 ,
 .BR RFC1524 ,
 .BR RFC2045 ,
 .BR RFC2046 ,
 .BR RFC2047 ,
 .BR RFC2048 ,
-.BR RFC2822 ,
-.BR RFC2980
+.BR RFC2980 ,
+.BR RFC3977 ,
+.BR RFC4643 ,
+.BR RFC5322 ,
+.BR RFC5536 ,
+.BR RFC5537 ,
+.BR RFC6048
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/tin.defaults tin-2.0.0/doc/tin.defaults
--- tin-1.8.3/doc/tin.defaults	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/tin.defaults	2011-05-29 17:32:33.654744288 +0200
@@ -1,5 +1,5 @@
 #
-# TIN 1.5 - a threaded newsreader
+# TIN 1.9.4 - a threaded newsreader
 #
 # tin.defaults - set some machine specified options
 #                and override compile time defaults
@@ -116,6 +116,14 @@
 #
 #overviewfile=.overview
 
+# overviewfmtfile - the full pathname of your newssystem's
+#                   overview.fmt file
+#
+# usually the overview.fmt file is in newslibdir, so you only have
+# to change this setting if your configuration differs
+#
+#overviewfmtfile=/usr/lib/news/overview.fmt
+
 # activefile - the full pathname of your newssystem's active file
 #
 # usually the active file is in newslibdir, so you only have
@@ -140,7 +148,7 @@
 # subscriptionsfile - the full pathname of your newssystem's
 #                     subscriptions file
 #
-# usually the newsgroups file is in newslibdir, so you only have
+# usually the subscriptionsfile file is in newslibdir, so you only have
 # to change this setting if your configuration differs
 #
 #subscriptionsfile=/usr/lib/news/subscriptions
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/tinews.1 tin-2.0.0/doc/tinews.1
--- tin-1.8.3/doc/tinews.1	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/tinews.1	2011-08-10 09:46:29.727581270 +0200
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.13
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
 .\"
 .\" Standard preamble:
 .\" ========================================================================
@@ -128,8 +128,8 @@
 .rm #[ #] #H #V #F C
 .\" ========================================================================
 .\"
-.IX Title "TINEWS 1"
-.TH TINEWS 1 "January 30th, 2004" "1.1.6" "Post and sign an article via NNTP"
+.IX Title "tinews.pl 1"
+.TH tinews.pl 1 "September 23rd, 2007" "1.1.20" "Post and sign an article via NNTP"
 .SH "NAME"
 tinews.pl \- Post and sign an article via NNTP
 .SH "SYNOPSIS"
@@ -143,6 +143,9 @@ tinews.pl \- Post and sign an article vi
 If the article contains To:, Cc: or Bcc: headers and mail-actions are
 configured it will automatically add a \*(L"Posted\-And\-Mailed: yes\*(R" header
 to the article and send out the mail\-copies.
+.PP
+If a Cancel-Lock secret file is defined it will automatically add a
+Cancel\-Lock: (and Cancel\-Key: if required) header.
 .SH "OPTIONS"
 .IX Header "OPTIONS"
 .ie n .IP "\-\fBa\fR ""Approved""\fR | \-\-\fBapproved\fR \f(CW""Approved""" 4
@@ -181,6 +184,9 @@ use \f(CW\*(C`port\*(C'\fR as NNTP-port
 .el .IP "\-\fBr\fR \f(CWReply\-To\fR | \-\-\fBreplyto\fR \f(CWReply\-To\fR" 4
 .IX Item "-r Reply-To | --replyto Reply-To"
 Set the article header field Reply\-To: to the given value.
+.IP "\-\fBs\fR \fIdirectory\fR | \-\-\fBsavedir\fR \fIdirectory\fR" 4
+.IX Item "-s directory | --savedir directory"
+Save signed article to directory \fIdirectory\fR instead of posting.
 .ie n .IP "\-\fBt\fR ""Subject""\fR | \-\-\fBsubject\fR \f(CW""Subject""" 4
 .el .IP "\-\fBt\fR \f(CWSubject\fR | \-\-\fBsubject\fR \f(CWSubject\fR" 4
 .IX Item "-t Subject | --subject Subject"
@@ -196,15 +202,21 @@ Set the article header field Path: to th
 .IP "\-\fBH\fR | \-\-\fBhelp\fR" 4
 .IX Item "-H | --help"
 Show help\-page.
+.IP "\-\fBL\fR | \-\-\fBno-canlock\fR" 4
+.IX Item "-L | --no-canlock"
+Do not add Cancel\-Lock: / Cancel\-Key: headers.
 .IP "\-\fBR\fR | \-\-\fBno-control\fR" 4
 .IX Item "-R | --no-control"
 Restricted mode, disallow control\-messages.
 .IP "\-\fBS\fR | \-\-\fBno-signature\fR" 4
 .IX Item "-S | --no-signature"
-Do not append \fI$HOME/.signature\fR
+Do not append \fI$HOME/.signature\fR.
 .IP "\-\fBX\fR | \-\-\fBno-sign\fR" 4
 .IX Item "-X | --no-sign"
 Do not sign the article.
+.IP "\-\fBY\fR | \-\-\fBforce-auth\fR" 4
+.IX Item "-Y | --force-auth"
+Force authentication on connect even if not required by the server.
 .IP "\-\fBA\fR \-\fBV\fR \-\fBW\fR" 4
 .IX Item "-A -V -W"
 These options are accepted for compatibility reasons but ignored.
@@ -220,15 +232,12 @@ These options are accepted but do not ha
 .SH "EXIT STATUS"
 .IX Header "EXIT STATUS"
 The following exit values are returned:
-.RS 4
 .IP "\ 0" 4
 .IX Item "0"
 Successful completion.
 .IP "!=0" 4
 .IX Item "!=0"
 An error occurred.
-.RE
-.RS 4
 .SH "ENVIRONMENT"
 .IX Header "ENVIRONMENT"
 .IP "\fB$NNTPSERVER\fR" 4
@@ -266,24 +275,35 @@ command-line option overrides \fB$ORGANI
 Set the article header field Distribution: to the contents of the variable
 if there isn't already a Distribution: header in the article. The '\-\fBd\fR'
 command-line option overrides \fB$DISTRIBUTION\fR.
-.RE
-.RS 4
 .SH "FILES"
 .IX Header "FILES"
 .IP "\fIpgptmp.txt\fR" 4
 .IX Item "pgptmp.txt"
-Temporary file used to store the reformatted article
+Temporary file used to store the reformatted article.
 .IP "\fIpgptmp.txt.asc\fR" 4
 .IX Item "pgptmp.txt.asc"
-Temporary file used to store the reformatted and signed article
+Temporary file used to store the reformatted and signed article.
 .IP "\fI$PGPPASSFILE\fR" 4
 .IX Item "$PGPPASSFILE"
 The passphrase file to be used for \fBpgp\fR(1) or \fBgpg\fR(1).
 .IP "\fI$HOME/.signature\fR" 4
 .IX Item "$HOME/.signature"
-Signature-file which will be automatically included.
-.RE
-.RS 4
+Signature file which will be automatically included.
+.IP "\fI$HOME/.cancelsecret\fR" 4
+.IX Item "$HOME/.cancelsecret"
+The passphrase file to be used for Cancel\-Locks. This feature is turned
+off by default.
+.IP "\fI$HOME/.newsauth\fR" 4
+.IX Item "$HOME/.newsauth"
+\&\*(L"nntpserver password [user]\*(R" pairs for \s-1NNTP\s0 servers that require
+authorization. Any line that starts with \*(L"#\*(R" is a comment. Blank lines are
+ignored. This file should be readable only for the user as it contains the
+user's uncrypted password for reading news.
+.IP "\fI$HOME/.tinewsrc\fR" 4
+.IX Item "$HOME/.tinewsrc"
+\&\*(L"option=value\*(R" configuration pairs. Lines that start with \*(L"#\*(R" are ignored.
+If the file contains uncrypted passwords (e.g. NNTPPass or PGPPass), it
+should be only readable for the user.
 .SH "SECURITY"
 .IX Header "SECURITY"
 If you've configured or entered a password, even if the variable that
@@ -294,15 +314,20 @@ security is an issue, don't use this scr
 .IX Header "NOTES"
 \&\fBtinews.pl\fR is designed to be used with \fBpgp\fR(1)\-2.6.3,
 \&\fBpgp\fR(1)\-5 and \fBgpg\fR(1).
-.Sp
+.PP
 \&\fBtinews.pl\fR requires the following standard modules to be installed:
 \&\fBGetopt::Long\fR(3pm), \fBNet::NNTP\fR(3pm), \fBTime::Local\fR(3pm) and
 \&\fBTerm::Readline\fR(3pm).
+.PP
+If the Cacenl-Lock feature is enabled the following additional modules
+must be installed: \fBMIME::Base64\fR(3pm), \fBDigest::SHA1\fR(3pm) and
+\&\fBDigest::HMAC_SHA1\fR(3pm)
 .SH "AUTHOR"
 .IX Header "AUTHOR"
 Urs Janssen <urs@tin.org>,
 Marc Brockschmidt <marc@marcbrockschmidt.de>
 .SH "SEE ALSO"
 .IX Header "SEE ALSO"
-\&\fBpgp\fR(1), \fBgpg\fR(1), \fBpgps\fR(1), \fBGetopt::Long\fR(3pm), \fBNet::NNTP\fR(3pm),
-\&\fBTime::Local\fR(3pm), \fBTerm::Readline\fR(3pm)
+\&\fBpgp\fR(1), \fBgpg\fR(1), \fBpgps\fR(1), \fBDigest::HMAC_SHA1\fR(3pm),
+\&\fBDigest::SHA1\fR(3pm), \fBGetopt::Long\fR(3pm), \fBMIME::Base64\fR(3pm),
+\&\fBNet::NNTP\fR(3pm), \fBTime::Local\fR(3pm), \fBTerm::Readline\fR(3pm)
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/tools.txt tin-2.0.0/doc/tools.txt
--- tin-1.8.3/doc/tools.txt	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/doc/tools.txt	2011-04-17 16:04:27.754662463 +0200
@@ -41,9 +41,14 @@ metamutt
 	in version.
 
 url_handler.sh
-	is a shell script (need to be placed in /usr/local/bin/) which
-	passes the URL selected by the 'U' command to a related
-	viewer/application. this one is very basic.
+	is a shell script (need to be placed in $PATH) which passes the URL
+	selected by the 'U' command to a related viewer/application. this
+	one is very basic.
+
+url_handler.pl
+	is a perl script (need to be placed in $PATH) which passes the URL
+	selected by the 'U' command to a related viewer/application. the
+	perl version has full $BROWSER support.
 
 expand_aliases.tgz
 	is a small c-source which reads you elm-aliasfile, translates the
diff -Nurp --exclude='.bzr*' tin-1.8.3/doc/url_handler.1 tin-2.0.0/doc/url_handler.1
--- tin-1.8.3/doc/url_handler.1	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/doc/url_handler.1	2011-05-03 15:23:21.231249224 +0200
@@ -0,0 +1,205 @@
+.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sh \" Subsection heading
+.br
+.if t .Sp
+.ne 5
+.PP
+\fB\\$1\fR
+.PP
+..
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" Set up some character translations and predefined strings.  \*(-- will
+.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
+.\" double quote, and \*(R" will give a right double quote.  \*(C+ will
+.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and
+.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,
+.\" nothing in troff, for use with C<>.
+.tr \(*W-
+.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
+.ie n \{\
+.    ds -- \(*W-
+.    ds PI pi
+.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
+.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
+.    ds L" ""
+.    ds R" ""
+.    ds C` ""
+.    ds C' ""
+'br\}
+.el\{\
+.    ds -- \|\(em\|
+.    ds PI \(*p
+.    ds L" ``
+.    ds R" ''
+'br\}
+.\"
+.\" If the F register is turned on, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" entries marked with X<> in POD.  Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.if \nF \{\
+.    de IX
+.    tm Index:\\$1\t\\n%\t"\\$2"
+..
+.    nr % 0
+.    rr F
+.\}
+.\"
+.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.hy 0
+.if n .na
+.\"
+.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
+.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
+.    \" fudge factors for nroff and troff
+.if n \{\
+.    ds #H 0
+.    ds #V .8m
+.    ds #F .3m
+.    ds #[ \f1
+.    ds #] \fP
+.\}
+.if t \{\
+.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
+.    ds #V .6m
+.    ds #F 0
+.    ds #[ \&
+.    ds #] \&
+.\}
+.    \" simple accents for nroff and troff
+.if n \{\
+.    ds ' \&
+.    ds ` \&
+.    ds ^ \&
+.    ds , \&
+.    ds ~ ~
+.    ds /
+.\}
+.if t \{\
+.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
+.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
+.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
+.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
+.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
+.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
+.\}
+.    \" troff and (daisy-wheel) nroff accents
+.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
+.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
+.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
+.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
+.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
+.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
+.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
+.ds ae a\h'-(\w'a'u*4/10)'e
+.ds Ae A\h'-(\w'A'u*4/10)'E
+.    \" corrections for vroff
+.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
+.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
+.    \" for low resolution devices (crt and lpr)
+.if \n(.H>23 .if \n(.V>19 \
+\{\
+.    ds : e
+.    ds 8 ss
+.    ds o a
+.    ds d- d\h'-1'\(ga
+.    ds D- D\h'-1'\(hy
+.    ds th \o'bp'
+.    ds Th \o'LP'
+.    ds ae ae
+.    ds Ae AE
+.\}
+.rm #[ #] #H #V #F C
+.\" ========================================================================
+.\"
+.IX Title "url_handler.pl 1"
+.TH url_handler.pl 1 "May 3rd, 2011" "0.1.0" "Spawn appropriate viewer for a given URL"
+.SH "NAME"
+url_handler.pl \- Spawn appropriate viewer for a given URL
+.SH "SYNOPSIS"
+.IX Header "SYNOPSIS"
+\&\fBurl_handler.pl\fR \fI\s-1URL\s0\fR
+.SH "DESCRIPTION"
+.IX Header "DESCRIPTION"
+\&\fBurl_handler.pl\fR takes an \s-1URL\s0 as argument and spawns the first executable
+viewer found in either \fB$BROWSER_\f(BI\s-1SCHEME\s0\fB\fR or \fB$BROWSER\fR.
+.SH "ENVIRONMENT"
+.IX Header "ENVIRONMENT"
+.IP "\fB$BROWSER_\f(BI\s-1SCHEME\s0\fB\fR" 4
+.IX Item "$BROWSER_SCHEME"
+The user's preferred utility to browse URLs of tye \fI\s-1SCHEME\s0\fR. May actually
+consist of a sequence of colon-separated browser commands to be tried in
+order until one succeeds. If a command part contains \f(CW%s\fR, the \s-1URL\s0 is
+substituted there, otherwise the browser command is simply called with the
+\&\s-1URL\s0 as its last argument. %% is replaced by a single percent sign (%), and
+\&\f(CW%c\fR is replaced by a colon (:).
+Examples:
+.RS 4
+.ie n .IP "$BROWSER_FTP=""wget:ncftp""" 4
+.el .IP "$BROWSER_FTP=``wget:ncftp''" 4
+.IX Item "$BROWSER_FTP=wget:ncftp"
+.PD 0
+.ie n .IP "$BROWSER_GOPHER=""lynx:links""" 4
+.el .IP "$BROWSER_GOPHER=``lynx:links''" 4
+.IX Item "$BROWSER_GOPHER=lynx:links"
+.ie n .IP "$BROWSER_MAILTO=""mutt:pine \-url""" 4
+.el .IP "$BROWSER_MAILTO=``mutt:pine \-url''" 4
+.IX Item "$BROWSER_MAILTO=mutt:pine -url"
+.ie n .IP "$BROWSER_NEWS=""lynx""" 4
+.el .IP "$BROWSER_NEWS=``lynx''" 4
+.IX Item "$BROWSER_NEWS=lynx"
+.ie n .IP "$BROWSER_NNTP=""lynx""" 4
+.el .IP "$BROWSER_NNTP=``lynx''" 4
+.IX Item "$BROWSER_NNTP=lynx"
+.RE
+.RS 4
+.PD
+.Sp
+\&\&
+.RE
+.IP "\fB$BROWSER\fR" 4
+.IX Item "$BROWSER"
+The user's preferred utility to browse URLs for which there is no special
+viewer defined via \fB$BROWSER_\f(BI\s-1SCHEME\s0\fB\fR. Again it may actually consist of a
+sequence of colon-separated browser commands to be tried in order until one
+succeeds. If a command part contains \f(CW%s\fR, the \s-1URL\s0 is substituted there,
+otherwise the browser command is simply called with the \s-1URL\s0 as its last
+argument. %% is replaced by a single percent sign (%), and \f(CW%c\fR is replaced
+by a colon (:).
+Examples:
+.RS 4
+.ie n .IP "$BROWSER=""firefox \-a firefox \-remote openURL\e(%s\e):opera:konqueror:links2 \-g:lynx:w3m""" 2
+.el .IP "$BROWSER=``firefox \-a firefox \-remote openURL\e(%s\e):opera:konqueror:links2 \-g:lynx:w3m''" 2
+.IX Item "$BROWSER=firefox -a firefox -remote openURL):opera:konqueror:links2 -g:lynx:w3m"
+.RE
+.RS 4
+.SH "SECURITY"
+.IX Header "SECURITY"
+\&\fBurl_handler.pl\fR was designed to work together with \fBtin\fR(1) which only
+issues shell escaped absolute URLs thus \fBurl_handler.pl\fR does not try hard
+to shell escape its input nor does it convert relative URLs into absolute
+ones! If you use \fBurl_handler.pl\fR from other applications be sure to at
+least shell escaped its input!
+.SH "AUTHOR"
+.IX Header "AUTHOR"
+Urs Janssen <urs@tin.org>
+.SH "SEE ALSO"
+.IX Header "SEE ALSO"
+http://www.catb.org/~esr/BROWSER/
+http://www.dwheeler.com/browse/secure_browser.html
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/autoconf.hin tin-2.0.0/include/autoconf.hin
--- tin-1.8.3/include/autoconf.hin	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/autoconf.hin	2011-08-10 21:41:26.116895890 +0200
@@ -3,10 +3,10 @@
  *  Module    : autoconf.hin
  *  Author    : Thomas Dickey
  *  Created   : 1995-08-24
- *  Updated   : 2005-07-16
+ *  Updated   : 2011-08-07
  *  Notes     : #include files, #defines & struct's
  *
- * Copyright (c) 1995-2006 Thomas Dickey <dickey@invisible-island.net>
+ * Copyright (c) 1995-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -39,7 +39,7 @@
 #	define TIN_AUTOCONF_H
 
 /* Package and version */
-#	undef PACKAGE
+#	undef NLS_TEXTDOMAIN
 #	undef VERSION
 
 #	undef SYSTEM_NAME
@@ -95,7 +95,6 @@
 #	undef HAVE_FASCIST_NEWSADMIN
 #	undef INEWSDIR
 #	undef PATH_INEWS
-#	undef INN_NNTPLIB
 #	undef MIME_BREAK_LONG_LINES
 #	undef MIME_STRICT_CHARSET
 #	undef MM_CHARSET
@@ -109,7 +108,6 @@
 #	undef OVERVIEW_FILE
 #	undef SOCKS
 #	undef SPOOLDIR
-#	undef USE_INN_NNTPLIB
 #	undef USE_INVERSE_HACK
 #	undef USE_SOCKS4_PREFIX
 #	undef USE_SOCKS5
@@ -127,6 +125,10 @@
 #	undef HAVE_GPG
 #	undef HAVE_SUM
 
+/* slrnface */
+#	undef HAVE_SLRNFACE
+#	undef PATH_SLRNFACE
+
 /*
  * Compiler characteristics
  */
@@ -164,6 +166,7 @@
 #	undef HAVE_FCNTL_H
 #	undef HAVE_GETOPT_H
 #	undef HAVE_ICONV_H
+#	undef HAVE_INTTYPES_H
 #	undef HAVE_IOCTL_H
 #	undef HAVE_LANGINFO_H
 #	undef HAVE_LIBC_H
@@ -188,6 +191,7 @@
 #	undef HAVE_STDARG_H
 #	undef HAVE_STDBOOL_H
 #	undef HAVE_STDDEF_H
+#	undef HAVE_STDINT_H
 #	undef HAVE_STDLIB_H
 #	undef HAVE_STRINGS_H
 #	undef HAVE_STRING_H
@@ -228,6 +232,7 @@
  * The following are defined by the configure script if the corresponding
  * function is found in a library.
  */
+#	undef HAVE_ALARM
 #	undef HAVE_ATOI
 #	undef HAVE_ATOL
 #	undef HAVE_BCOPY
@@ -240,6 +245,7 @@
 #	undef HAVE_FORK
 #	undef HAVE_FTIME
 #	undef HAVE_FTRUNCATE
+#	undef HAVE_FSYNC
 #	undef HAVE_GAI_STRERROR
 #	undef HAVE_GETADDRINFO
 #	undef HAVE_GETCWD
@@ -284,6 +290,7 @@
 #	undef HAVE_STRFTIME
 #	undef HAVE_STRNCASECMP
 #	undef HAVE_STRPBRK
+#	undef HAVE_STRRCHR
 #	undef HAVE_STRRSTR
 #	undef HAVE_STRSEP
 #	undef HAVE_STRSTR
@@ -318,6 +325,7 @@
 #	undef DECL_STRCASESTR
 #	undef DECL_STRSEP
 #	undef DECL_SYS_ERRLIST
+#	undef DECL_TMPFILE
 #	undef DECL_TGETSTR
 #	undef DECL_TGOTO
 #	undef DECL_TIGETSTR
@@ -326,6 +334,7 @@
  * The following are functions that we'll optionally prototype (to stifle
  * warnings, etc., for development/testing).
  */
+#	undef DECL_ALARM
 #	undef DECL_ATOI
 #	undef DECL_ATOL
 #	undef DECL_BCOPY
@@ -348,7 +357,6 @@
 #	undef DECL_GETCWD
 #	undef DECL_GETHOSTNAME
 #	undef DECL_GETOPT
-#	undef DECL_GETPASS
 #	undef DECL_GETWD
 #	undef DECL_INET_ADDR
 #	undef DECL_INET_ATON
@@ -377,6 +385,7 @@
 #	undef DECL_STRCHR
 #	undef DECL_STRFTIME
 #	undef DECL_STRNCASECMP
+#	undef DECL_STRRCHR
 #	undef DECL_STRTOL
 #	undef DECL_SYSTEM
 #	undef DECL_TGETENT
@@ -450,7 +459,7 @@
 #	undef DECL_SIG_CONST
 
 
-/* FIXME: remove absolut-paths! */
+/* FIXME: remove absolute-paths! */
 /*
  * Program-paths (i.e., the invocation-path)
  */
@@ -579,7 +588,7 @@
 #	undef TIN_DEFAULTS_DIR
 
 /*
- * define if second and thrid argument of setvbuf() are swapped
+ * define if second and third argument of setvbuf() are swapped
  * (System V before Release 3)
  */
 #	undef SETVBUF_REVERSED
@@ -607,6 +616,16 @@
  */
 #	undef IGNORE_SYSTEM_STATUS
 
+/*
+ * generate Cancel-Locks
+ */
+#	undef USE_CANLOCK
+
+/*
+ * use libgsasl for AUTH
+ */
+#	undef USE_SASL
+
 #	undef HAVE_COFFEE
 
 /*
@@ -859,11 +878,22 @@ Added missing headers after gettext upda
 #	undef X_DISPLAY_MISSING
 
 /*
- * TODO: define if:
- *       !X_DISPLAY_MISSING && !DONT_HAVE_PIPING &&
- *       HAVE_MKFIFO && HAVE_FORK && HAVE_EXECLP && HAVE_WAITPID
- *       [&& HAVE_SLRNFACE if we add a check or a configure option for that ]
+ * define if you don't want to use file-locking (fcntl/flock/lockf/dotlock)
+ * TODO: add --disable-file-locking switch and rename
+ */
+#	undef NO_LOCKING
+
+/*
+ * define if you can't chmod go-r
+ * TODO: write configure check and find a better name
+ */
+#	undef FILE_MODE_BROKEN
+
+
+/*
+ * define if newsserver can't handle pipelined (streamed) commands
+ * TODO: write configure option
  */
-#	undef XFACE_ABLE
+#	undef DISABLE_PIPELINING
 
 #endif /* !TIN_AUTOCONF_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/bool.h tin-2.0.0/include/bool.h
--- tin-1.8.3/include/bool.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/bool.h	2011-04-17 16:04:29.338903550 +0200
@@ -3,10 +3,10 @@
  *  Module    : bool.h
  *  Author    : Urs Janssen <urs@tin.org>
  *  Created   :
- *  Updated   : 2003-05-16
+ *  Updated   : 2009-11-24
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1997-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -75,13 +75,8 @@
 
 #	endif /* 0 */
 
-	extern /*@unused@*/ t_bool bool_equal (t_bool, t_bool) /*@*/ ;
 #	define bool_equal(a,b) ((a) ? (b) : !(b))
-
-	extern /*@unused@*/ t_bool bool_not (t_bool) /*@*/ ;
 #	define bool_not(b) ((b) ? FALSE : TRUE)
-
-	extern /*@unused@*/ /*@observer@*/ char *bool_unparse (t_bool) /*@*/ ;
 #	define bool_unparse(b) ((b) ? "TRUE" : "FALSE")
 
 #endif /* !BOOL_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/bugrep.h tin-2.0.0/include/bugrep.h
--- tin-1.8.3/include/bugrep.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/bugrep.h	2011-04-17 16:04:29.382910248 +0200
@@ -3,10 +3,10 @@
  *  Module    : bugrep.h
  *  Author    : Urs Janssen <urs@tin.org>
  *  Created   : 1997-07-30
- *  Updated   : 2003-09-19
+ *  Updated   : 2006-02-15
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1997-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,10 +42,6 @@
 #		define BUG_REPORT_ADDRESS	"tin-bugs@tin.org"
 #	endif /* M_UNIX */
 
-#	ifdef VMS
-#		define BUG_REPORT_ADDRESS	"stenns@vw.tci.uni-hannover.de"
-#	endif /* VMS */
-
 /* fallback */
 #	ifndef BUG_REPORT_ADDRESS
 #		define BUG_REPORT_ADDRESS	"tin-bugs@tin.org"
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/debug.h tin-2.0.0/include/debug.h
--- tin-1.8.3/include/debug.h	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/include/debug.h	2011-04-17 16:04:29.422916335 +0200
@@ -0,0 +1,59 @@
+/*
+ *  Project   : tin - a Usenet reader
+ *  Module    : debug.h
+ *  Author    : Urs Janssen <urs@tin.org>
+ *  Created   :
+ *  Updated   : 2008-12-12
+ *  Notes     :
+ *
+ * Copyright (c) 2007-2011 Urs Janssen <urs@tin.org>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. The name of the author may not be used to endorse or promote
+ *    products derived from this software without specific prior written
+ *    permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
+ */
+
+
+#ifndef DEBUG_H
+#	define DEBUG_H 1
+
+#	ifdef NNTP_ABLE
+#		define DEBUG_NNTP	0x01	/* 1 */
+#	else
+#		define DEBUG_NNTP	0x00	/* disabled */
+#	endif /* NNTP_ABLE */
+#	define DEBUG_FILTER	0x02	/* 2 */
+#	define DEBUG_NEWSRC	0x04	/* 4 */
+#	define DEBUG_REFS	0x08	/* 8 */
+#	define DEBUG_MEM	0x10	/* 16 */
+#	define DEBUG_ATTRIB	0x20	/* 32 */
+#	define DEBUG_MISC	0x40	/* 64 */
+#	define DEBUG_ALL	0x7f	/* 127 */
+
+#	if 0 /* this is very noisy */
+#		define DEBUG_IO(x)	fprintf x
+#	else
+#		define DEBUG_IO(x)	/* nothing */
+#	endif /* 0 */
+#endif /* !DEBUG_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/extern.h tin-2.0.0/include/extern.h
--- tin-1.8.3/include/extern.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/extern.h	2011-08-07 01:31:24.484441710 +0200
@@ -3,10 +3,10 @@
  *  Module    : extern.h
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-08-07
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1997-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -57,6 +57,9 @@
 #ifdef DECL__FLSBUF
 	extern int _flsbuf(int, FILE *);
 #endif /* DECL__FLSBUF */
+#ifdef DECL_ALARM
+	extern unsigned alarm(unsigned);
+#endif /* DECL_ALARM */
 #ifdef DECL_ATOI
 	extern int atoi(const char *);
 #endif /* DECL_ATOI */
@@ -135,9 +138,6 @@
 #ifdef DECL_GETOPT
 	extern int getopt(int, char * const*, const char *);
 #endif /* DECL_GETOPT */
-#ifdef DECL_GETPASS
-	extern char *getpass(const char *);
-#endif /* DECL_GETPASS */
 #ifdef DECL_GETPWNAM
 	extern struct passwd *getpwnam(const char *);
 #endif /* DECL_GETPWNAM */
@@ -227,20 +227,28 @@
 #endif /* DECL_STRCASECMP */
 #ifdef DECL_STRCHR
 	extern char *strchr(const char *, int);
-	extern char *strrchr(const char *, int);
 #endif /* DECL_STRCHR */
+#ifdef DECL_STRRCHR
+	extern char *strrchr(const char *, int);
+#endif /* DECL_STRRCHR */
 #ifdef DECL_STRFTIME
 	extern int strftime(char *, int, char *, struct tm *);
 #endif /* DECL_STRFTIME */
 #ifdef DECL_STRNCASECMP
 	extern int strncasecmp(const char *, const char *, size_t);
 #endif /* DECL_STRNCASECMP */
+#ifdef DECL_STRSEP
+	extern char *strsep(char **, const char *);
+#endif /* DECL_STRSEP */
 #ifdef DECL_STRTOL
 	extern long strtol(const char *, char **, int);
 #endif /* DECL_STRTOL */
 #ifdef DECL_SYSTEM
 	extern int system(const char *);
 #endif /* DECL_SYSTEM */
+#ifdef DECL_TMPFILE
+	extern  FILE *tmpfile(void);
+#endif /* DECL_TMPFILE */
 #ifdef DECL_TGETENT
 	extern int tgetent(char *, char *);
 #endif /* DECL_TGETENT */
@@ -263,7 +271,7 @@
 	extern int tigetnum(char *);
 #endif /* DECL_TGETNUM */
 #ifdef DECL_TIGETSTR
-	extern char *tigetstr(char *, char **);
+	extern char *tigetstr(char *);
 #endif /* DECL_TIGETSTR */
 #ifdef DECL_TIME
 	extern time_t time(time_t *);
@@ -299,9 +307,13 @@
 #endif /* DECL_VSPRINTF */
 #endif /* 0 */
 
-
-extern int optind;
-extern char *optarg;
+#ifdef __CYGWIN__
+	extern int __declspec(dllimport) optind;
+	extern char __declspec(dllimport) *optarg;
+#else
+	extern int optind;
+	extern char *optarg;
+#endif /* __CYGWIN__ */
 
 /*
  * Local variables
@@ -327,8 +339,6 @@ extern char *optarg;
 #	define txt_help_thd_C	txt_help_thd_BIGC
 #endif /* CASE_PROBLEM */
 
-extern char **news_headers_to_display_array;
-extern char **news_headers_to_not_display_array;
 extern char *OPT_CHAR_list[];
 extern char *OPT_STRING_list[];
 extern char *nntp_server;
@@ -337,7 +347,6 @@ extern char article_name[PATH_LEN];
 extern char bug_addr[LEN];
 extern char bug_nntpserver1[PATH_LEN];
 extern char bug_nntpserver2[PATH_LEN];
-extern char cmdline_nntpserver[PATH_LEN];
 extern char cvers[LEN];
 extern char dead_article[PATH_LEN];
 extern char dead_articles[PATH_LEN];
@@ -350,7 +359,6 @@ extern char index_maildir[PATH_LEN];
 extern char index_newsdir[PATH_LEN];
 extern char index_savedir[PATH_LEN];
 extern char inewsdir[PATH_LEN];
-extern char libdir[PATH_LEN];
 extern char local_attributes_file[PATH_LEN];
 extern char local_config_file[PATH_LEN];
 extern char filter_file[PATH_LEN];
@@ -381,6 +389,7 @@ extern char rcdir[PATH_LEN];
 extern char save_active_file[PATH_LEN];
 extern char spooldir[PATH_LEN];
 extern char subscriptions_file[PATH_LEN];
+extern char overviewfmt_file[PATH_LEN];
 extern char txt_help_bug_report[LEN];
 extern char userid[PATH_LEN];
 
@@ -391,10 +400,12 @@ extern const char base64_alphabet[64];
 extern constext *content_encodings[];
 extern constext *content_types[];
 extern constext *txt_attrs[];
+extern constext *txt_auto_cc_bcc_options[];
 #ifdef HAVE_COLOR
 	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[];
@@ -409,7 +420,8 @@ extern constext *txt_mime_encodings[];
 	extern constext *txt_normalization_forms[];
 #endif /* HAVE_UNICODE_NORMALIZATION */
 extern constext *txt_onoff[];
-extern constext *txt_post_process_type[];
+extern constext *txt_post_process_types[];
+extern constext *txt_quick_ks_header_options[];
 extern constext *txt_quote_style_type[];
 extern constext *txt_show_from[];
 extern constext *txt_show_info_type[];
@@ -418,6 +430,7 @@ extern constext *txt_sort_t_type[];	/* t
 extern constext *txt_strip_bogus_type[];
 extern constext *txt_threading[];
 extern constext *txt_thread_score_type[];
+extern constext *txt_trim_article_body_options[];
 extern constext *txt_wildcard_type[];
 extern constext txt_1_resp[];
 extern constext txt_7bit[];
@@ -427,7 +440,6 @@ extern constext txt_all[];
 extern constext txt_all_groups[];
 extern constext txt_append_overwrite_quit[];
 extern constext txt_art_cancel[];
-extern constext txt_art_cannot_cancel[];
 extern constext txt_art_newsgroups[];
 extern constext txt_art_not_posted[];
 extern constext txt_art_not_saved[];
@@ -439,6 +451,7 @@ extern constext txt_art_posted[];
 extern constext txt_art_rejected[];
 extern constext txt_art_thread_regex_tag[];
 extern constext txt_art_unavailable[];
+extern constext txt_art_x_of_n[];
 extern constext txt_article_cancelled[];
 extern constext txt_article_plural[];
 extern constext txt_article_reposted[];
@@ -451,16 +464,31 @@ extern constext txt_articles_mailed[];
 extern constext txt_attach[];
 extern constext txt_attach_charset[];
 extern constext txt_attach_description[];
+extern constext txt_attachment_lines[];
+extern constext txt_attachment_menu[];
+extern constext txt_attachment_menu_com[];
+extern constext txt_attachment_no_name[];
+extern constext txt_attachment_saved[];
+extern constext txt_attachments_saved[];
+extern constext txt_attachment_select[];
+extern constext txt_attachment_tagged[];
+extern constext txt_attachments_tagged[];
+extern constext txt_attachment_untagged[];
+extern constext txt_attach_unsup_charset[];
+extern constext txt_attrib_menu_com[];
 extern constext txt_uue[];
 extern constext txt_at_s[];
-extern constext txt_auth_failed[];
-extern constext txt_auth_pass[];
-extern constext txt_auth_user[];
-extern constext txt_auth_needed[];
+#ifdef NNTP_ABLE
+	extern constext txt_auth_failed[];
+	extern constext txt_auth_failed_nopass[];
+	extern constext txt_auth_pass[];
+	extern constext txt_auth_user[];
+	extern constext txt_auth_needed[];
+	extern constext txt_authorization_fail[];
+	extern constext txt_authorization_ok[];
+#endif /* NNTP_ABLE */
 extern constext txt_author_search_backwards[];
 extern constext txt_author_search_forwards[];
-extern constext txt_authorization_fail[];
-extern constext txt_authorization_ok[];
 extern constext txt_autoselecting_articles[];
 extern constext txt_autosubscribed[];
 extern constext txt_autosubscribing_groups[];
@@ -473,14 +501,19 @@ extern constext txt_base_article[];
 extern constext txt_base_article_range[];
 extern constext txt_batch_update_unavail[];
 extern constext txt_begin_of_art[];
-extern constext txt_caching_off[];
-extern constext txt_caching_on[];
+extern constext txt_begin_of_page[];
+#ifdef NNTP_ABLE
+	extern constext txt_caching_off[];
+	extern constext txt_caching_on[];
+#endif /* NNTP_ABLE */
 extern constext txt_cancel_article[];
 extern constext txt_cancelling_art[];
 extern constext txt_cannot_create[];
 extern constext txt_cannot_create_uniq_name[];
 extern constext txt_cannot_find_base_art[];
-extern constext txt_cannot_get_nntp_server_name[];
+#ifdef NNTP_ABLE
+	extern constext txt_cannot_get_nntp_server_name[];
+#endif /* NNTP_ABLE */
 #if !defined(USE_CURSES) && defined(M_UNIX) && !defined(USE_TERMINFO)
 	extern constext txt_cannot_get_term_entry[];
 #endif /* !USE_CURSES && M_UNIX && !USE_TERMINFO */
@@ -488,7 +521,9 @@ extern constext txt_cannot_open[];
 extern constext txt_cannot_open_for_saving[];
 extern constext txt_cannot_post[];
 extern constext txt_cannot_post_group[];
-extern constext txt_cannot_retrieve[];
+#ifdef NNTP_ABLE
+	extern constext txt_cannot_retrieve[];
+#endif /* NNTP_ABLE */
 extern constext txt_cannot_write_to_directory[];
 extern constext txt_catchup[];
 extern constext txt_catchup_group[];
@@ -528,11 +563,16 @@ extern constext txt_deleting[];
 #endif /* NNTP_ABLE */
 extern constext txt_end_of_art[];
 extern constext txt_end_of_arts[];
+extern constext txt_end_of_attachments[];
 extern constext txt_end_of_groups[];
+extern constext txt_end_of_page[];
+extern constext txt_end_of_scopes[];
 extern constext txt_end_of_thread[];
+extern constext txt_end_of_urls[];
 extern constext txt_enter_getart_limit[];
 extern constext txt_enter_message_id[];
 extern constext txt_enter_next_thread[];
+extern constext txt_enter_next_unread_art[];
 extern constext txt_enter_next_unread_group[];
 extern constext txt_enter_option_num[];
 extern constext txt_enter_range[];
@@ -542,12 +582,15 @@ extern constext txt_error_bad_approved[]
 extern constext txt_error_bad_from[];
 extern constext txt_error_bad_replyto[];
 extern constext txt_error_bad_msgidfqdn[];
-extern constext txt_error_cant_unlock[];
+#ifndef NO_LOCKING
+	extern constext txt_error_cant_unlock[];
+	extern constext txt_error_couldnt_dotlock[];
+	extern constext txt_error_couldnt_lock[];
+#endif /* NO_LOCKING */
 extern constext txt_error_copy_fp[];
 extern constext txt_error_corrupted_file[];
-extern constext txt_error_couldnt_dotlock[];
-extern constext txt_error_couldnt_lock[];
 extern constext txt_error_fseek[];
+extern constext txt_error_followup_poster[];
 extern constext txt_error_gnksa_internal[];
 extern constext txt_error_gnksa_langle[];
 extern constext txt_error_gnksa_lparen[];
@@ -576,27 +619,35 @@ extern constext txt_error_gnksa_rn_paren
 extern constext txt_error_gnksa_rn_invalid[];
 extern constext txt_error_header_and_body_not_separate[];
 extern constext txt_error_header_duplicate[];
+extern constext txt_error_header_format[];
 extern constext txt_error_header_line_bad_charset[];
 extern constext txt_error_header_line_bad_encoding[];
 extern constext txt_error_header_line_blank[];
 extern constext txt_error_header_line_colon[];
 extern constext txt_error_header_line_empty[];
 extern constext txt_error_header_line_missing[];
+extern constext txt_error_header_line_not_7bit[];
 extern constext txt_error_header_line_space[];
 extern constext txt_error_insecure_permissions[];
-extern constext txt_error_invalid_response_to_group[];
-extern constext txt_error_locale[];
+#ifdef NNTP_ABLE
+	extern constext txt_error_invalid_response_to_group[];
+#endif /* NNTP_ABLE */
+#if defined(HAVE_SETLOCALE) && !defined(NO_LOCALE)
+	extern constext txt_error_locale[];
+#endif /* HAVE_SETLOCALE && !NO_LOCALE */
 extern constext txt_error_mime_end[];
 extern constext txt_error_mime_start[];
 extern constext txt_error_no_domain_name[];
 extern constext txt_error_no_enter_permission[];
-extern constext txt_error_no_from[];
+#ifdef NNTP_INEWS
+	extern constext txt_error_no_from[];
+#endif /* NNTP_INEWS */
 extern constext txt_error_no_read_permission[];
 extern constext txt_error_no_such_file[];
 extern constext txt_error_no_write_permission[];
+extern constext txt_error_newsgroups_poster[];
 extern constext txt_error_passwd_missing[];
 extern constext txt_error_plural[];
-extern constext txt_error_sender_in_header_not_allowed[];
 extern constext txt_error_server_has_no_listed_groups[];
 extern constext txt_error_singular[];
 #if defined(NNTP_ABLE) && defined(INET6)
@@ -607,9 +658,9 @@ extern constext txt_error_singular[];
 	extern constext txt_error_topen[];
 #endif /* NNTP_ABLE && TLI && !INET6 */
 extern constext txt_error_unknown_dlevel[];
-#if defined(NNTP_ABLE) && defined(HAVE_GETSERVBYNAME)
+#if defined(NNTP_ABLE) && defined(HAVE_GETSERVBYNAME) && !defined(INET6)
 	extern constext txt_error_unknown_service[];
-#endif /* NNTP_ABLE && HAVE_GETSERVBYNAME */
+#endif /* NNTP_ABLE && HAVE_GETSERVBYNAME && !INET6 */
 #ifdef NNTP_ABLE
 	extern constext txt_error_wrong_newsgroupname_in_group_response[];
 #endif /* NNTP_ABLE */
@@ -637,7 +688,9 @@ extern constext txt_forwarded_end[];
 extern constext txt_from_line_only[];
 extern constext txt_from_line_only_case[];
 extern constext txt_full[];
-extern constext txt_gethostbyname[];
+#ifdef NNTP_ABLE
+	extern constext txt_gethostbyname[];
+#endif /* NNTP_ABLE */
 #if defined(NNTP_ABLE) && !defined(INET6)
 	extern constext txt_giving_up[];
 #endif /* NNTP_ABLE && !INET6 */
@@ -655,13 +708,16 @@ extern constext txt_help_article_autokil
 extern constext txt_help_article_autoselect[];
 extern constext txt_help_article_browse_urls[];
 extern constext txt_help_article_by_num[];
-extern constext txt_help_article_cancel[];
+#ifndef NO_POSTING
+	extern constext txt_help_article_cancel[];
+	extern constext txt_help_article_followup[];
+	extern constext txt_help_article_followup_no_quote[];
+	extern constext txt_help_article_followup_with_header[];
+	extern constext txt_help_article_repost[];
+#endif /* !NO_POSTING */
 extern constext txt_help_article_edit[];
 extern constext txt_help_article_first_in_thread[];
 extern constext txt_help_article_first_page[];
-extern constext txt_help_article_followup[];
-extern constext txt_help_article_followup_no_quote[];
-extern constext txt_help_article_followup_with_header[];
 extern constext txt_help_article_last_in_thread[];
 extern constext txt_help_article_last_page[];
 extern constext txt_help_article_mark_thread_read[];
@@ -680,19 +736,51 @@ extern constext txt_help_article_quit_to
 extern constext txt_help_article_reply[];
 extern constext txt_help_article_reply_no_quote[];
 extern constext txt_help_article_reply_with_header[];
-extern constext txt_help_article_repost[];
 extern constext txt_help_article_search_backwards[];
 extern constext txt_help_article_search_forwards[];
 extern constext txt_help_article_show_raw[];
 extern constext txt_help_article_skip_quote[];
 extern constext txt_help_article_toggle_formfeed[];
+extern constext txt_help_article_toggle_headers[];
 extern constext txt_help_article_toggle_highlight[];
 extern constext txt_help_article_toggle_rot13[];
 extern constext txt_help_article_toggle_tabwidth[];
 extern constext txt_help_article_toggle_tex2iso[];
 extern constext txt_help_article_toggle_uue[];
 extern constext txt_help_article_view_attachments[];
+extern constext txt_help_attachment_first[];
+extern constext txt_help_attachment_goto[];
+extern constext txt_help_attachment_last[];
+#ifndef DONT_HAVE_PIPING
+	extern constext txt_help_attachment_pipe[];
+	extern constext txt_help_attachment_pipe_raw[];
+#endif /* !DONT_HAVE_PIPING */
+extern constext txt_help_attachment_save[];
+extern constext txt_help_attachment_search_forwards[];
+extern constext txt_help_attachment_search_backwards[];
+extern constext txt_help_attachment_select[];
+extern constext txt_help_attachment_tag[];
+extern constext txt_help_attachment_tag_pattern[];
+extern constext txt_help_attachment_toggle_tagged[];
+extern constext txt_help_attachment_untag[];
+extern constext txt_help_attachment_toggle_info_line[];
+extern constext txt_help_attrib_first_opt[];
+extern constext txt_help_attrib_goto_opt[];
+extern constext txt_help_attrib_last_opt[];
+extern constext txt_help_attrib_reset_attrib[];
+extern constext txt_help_attrib_search_opt_backwards[];
+extern constext txt_help_attrib_search_opt_forwards[];
+extern constext txt_help_attrib_select[];
+extern constext txt_help_attrib_toggle_attrib[];
 extern constext txt_help_bug[];
+extern constext txt_help_config_first_opt[];
+extern constext txt_help_config_goto_opt[];
+extern constext txt_help_config_last_opt[];
+extern constext txt_help_config_scope_menu[];
+extern constext txt_help_config_search_opt_backwards[];
+extern constext txt_help_config_search_opt_forwards[];
+extern constext txt_help_config_select[];
+extern constext txt_help_config_toggle_attrib[];
 extern constext txt_help_filter_comment[];
 extern constext txt_help_filter_from[];
 extern constext txt_help_filter_lines[];
@@ -716,8 +804,10 @@ extern constext txt_help_global_page_up[
 #ifndef DONT_HAVE_PIPING
 	extern constext txt_help_global_pipe[];
 #endif /* !DONT_HAVE_PIPING */
-extern constext txt_help_global_post[];
-extern constext txt_help_global_post_postponed[];
+#ifndef NO_POSTING
+	extern constext txt_help_global_post[];
+	extern constext txt_help_global_post_postponed[];
+#endif /* !NO_POSTING */
 extern constext txt_help_global_posting_history[];
 extern constext txt_help_global_previous_menu[];
 #ifndef DISABLE_PRINTING
@@ -756,6 +846,8 @@ extern constext txt_help_group_list_thre
 extern constext txt_help_group_mark_article_unread[];
 extern constext txt_help_group_mark_thread_read[];
 extern constext txt_help_group_mark_thread_unread[];
+extern constext txt_help_mark_feed_read[];
+extern constext txt_help_mark_feed_unread[];
 extern constext txt_help_group_mark_unsel_art_read[];
 extern constext txt_help_group_next[];
 extern constext txt_help_group_prev[];
@@ -773,6 +865,15 @@ extern constext txt_help_group_toggle_th
 extern constext txt_help_group_undo_thread_selection[];
 extern constext txt_help_group_untag_thread[];
 extern constext txt_help_kill_scope[];
+extern constext txt_help_scope_add[];
+extern constext txt_help_scope_del[];
+extern constext txt_help_scope_edit_attrib_file[];
+extern constext txt_help_scope_first_scope[];
+extern constext txt_help_scope_goto_scope[];
+extern constext txt_help_scope_last_scope[];
+extern constext txt_help_scope_move[];
+extern constext txt_help_scope_rename[];
+extern constext txt_help_scope_select[];
 extern constext txt_help_select_catchup[];
 extern constext txt_help_select_catchup_next_unread[];
 extern constext txt_help_select_first_group[];
@@ -806,11 +907,25 @@ extern constext txt_help_thread_catchup_
 extern constext txt_help_thread_first_article[];
 extern constext txt_help_thread_last_article[];
 extern constext txt_help_thread_mark_article_read[];
+extern constext txt_help_thread_mark_article_unread[];
+extern constext txt_help_thread_mark_thread_unread[];
 extern constext txt_help_thread_read_article[];
 extern constext txt_help_title_disp[];
 extern constext txt_help_title_misc[];
 extern constext txt_help_title_navi[];
 extern constext txt_help_title_ops[];
+extern constext txt_help_title_attachment_ops[];
+extern constext txt_help_title_attrib_ops[];
+extern constext txt_help_title_config_ops[];
+extern constext txt_help_title_scope_ops[];
+extern constext txt_help_title_url_ops[];
+extern constext txt_help_url_first_url[];
+extern constext txt_help_url_goto_url[];
+extern constext txt_help_url_last_url[];
+extern constext txt_help_url_search_forwards[];
+extern constext txt_help_url_search_backwards[];
+extern constext txt_help_url_select[];
+extern constext txt_help_url_toggle_info_line[];
 extern constext txt_incomplete[];
 extern constext txt_index_page_com[];
 extern constext txt_info_add_kill[];
@@ -827,7 +942,6 @@ extern constext txt_info_no_previous_exp
 extern constext txt_info_postponed[];
 extern constext txt_info_x_conversion_note[];
 extern constext txt_invalid_from[];
-extern constext txt_invalid_sender[];
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	extern constext txt_invalid_multibyte_sequence[];
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
@@ -859,14 +973,19 @@ extern constext txt_mail_bug_report_conf
 extern constext txt_mailed[];
 extern constext txt_mailing_to[];
 extern constext txt_mail_save_active_head[];
+extern constext txt_mark[];
 extern constext txt_mark_arts_read[];
-extern constext txt_mark_art_read_tagged_current[];
+extern constext txt_mark_art_read[];
 extern constext txt_mark_group_read[];
 extern constext txt_mark_thread_read[];
-extern constext txt_mark_thread_read_tagged_current[];
+extern constext txt_marked_as_read[];
 extern constext txt_marked_as_unread[];
-extern constext txt_marked_tagged_arts_as_read[];
+extern constext txt_marked_arts_as_read[];
+extern constext txt_marked_arts_as_unread[];
 extern constext txt_matching_cmd_line_groups[];
+extern constext txt_mini_attachment_1[];
+extern constext txt_mini_attachment_2[];
+extern constext txt_mini_attachment_3[];
 extern constext txt_mini_group_1[];
 extern constext txt_mini_group_2[];
 extern constext txt_mini_group_3[];
@@ -875,14 +994,20 @@ extern constext txt_mini_info_2[];
 extern constext txt_mini_page_1[];
 extern constext txt_mini_page_2[];
 extern constext txt_mini_page_3[];
+extern constext txt_mini_scope_1[];
+extern constext txt_mini_scope_2[];
 extern constext txt_mini_select_1[];
 extern constext txt_mini_select_2[];
 extern constext txt_mini_select_3[];
 extern constext txt_mini_thread_1[];
 extern constext txt_mini_thread_2[];
+extern constext txt_mini_url_1[];
+extern constext txt_mini_url_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_name[];
 extern constext txt_newsgroup[];
 extern constext txt_newsgroup_plural[];
@@ -892,10 +1017,10 @@ extern constext txt_newsrc_again[];
 extern constext txt_newsrc_nogroups[];
 extern constext txt_newsrc_saved[];
 extern constext txt_next_resp[];
-extern constext txt_nntp_authorization_failed[];
 extern constext txt_no[];
 extern constext txt_no_arts[];
 extern constext txt_no_arts_posted[];
+extern constext txt_no_attachments[];
 extern constext txt_no_description[];
 extern constext txt_no_filename[];
 extern constext txt_no_group[];
@@ -909,9 +1034,11 @@ extern constext txt_no_more_groups[];
 extern constext txt_no_newsgroups[];
 extern constext txt_no_next_unread_art[];
 extern constext txt_no_prev_group[];
+extern constext txt_no_prev_search[];
 extern constext txt_no_prev_unread_art[];
 extern constext txt_no_responses[];
 extern constext txt_no_resps_in_thread[];
+extern constext txt_no_scopes[];
 extern constext txt_no_search_string[];
 extern constext txt_no_subject[];
 #ifndef USE_CURSES
@@ -922,7 +1049,9 @@ extern constext txt_no_subject[];
 	extern constext txt_no_term_set[];
 #endif /* !USE_CURSES */
 extern constext txt_no_viewer_found[];
-extern constext txt_no_xover_support[];
+#ifdef NNTP_ABLE
+	extern constext txt_no_xover_support[];
+#endif /* NNTP_ABLE */
 extern constext txt_not_exist[];
 extern constext txt_not_in_active_file[];
 extern constext txt_nrctbl_create[];
@@ -931,6 +1060,7 @@ extern constext txt_nrctbl_info[];
 extern constext txt_only[];
 extern constext txt_option_not_enabled[];
 extern constext txt_options_menu[];
+extern constext txt_options_menu_com[];
 extern constext txt_out_of_memory[];
 extern constext txt_pcre_error_at[];
 extern constext txt_pcre_error_num[];
@@ -969,9 +1099,10 @@ extern constext txt_quit_edit_xpost[];
 extern constext txt_quit_no_write[];
 extern constext txt_quoted_printable[];
 extern constext txt_range_invalid[];
-extern constext txt_read_abort[];
-extern constext txt_read_exit[];
-extern constext txt_read_resp[];
+#ifdef NNTP_ABLE
+	extern constext txt_read_abort[];
+	extern constext txt_read_exit[];
+#endif /* NNTP_ABLE */
 extern constext txt_reading_article[];
 extern constext txt_reading_arts[];
 extern constext txt_reading_attributes_file[];
@@ -987,10 +1118,12 @@ 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 */
 extern constext txt_remove_bogus[];
+extern constext txt_removed_rule[];
 extern constext txt_rename_error[];
 extern constext txt_reply_to_author[];
 extern constext txt_repost[];
@@ -999,7 +1132,6 @@ extern constext txt_repost_group[];
 extern constext txt_reset_newsrc[];
 extern constext txt_resp_redirect[];
 extern constext txt_resp_to_poster[];
-extern constext txt_resp_x_of_n[];
 extern constext txt_return_key[];
 extern constext txt_save[];
 extern constext txt_save_attachment[];
@@ -1018,6 +1150,15 @@ extern constext txt_screen_init_failed[]
 	extern constext txt_screen_too_small[];
 #endif /* !USE_CURSES */
 extern constext txt_screen_too_small_exiting[];
+extern constext txt_scope_delete[];
+extern constext txt_scope_enter[];
+extern constext txt_scope_new_position[];
+extern constext txt_scope_new_position_is_global[];
+extern constext txt_scope_operation_not_allowed[];
+extern constext txt_scope_rename[];
+extern constext txt_scope_select[];
+extern constext txt_scopes_menu[];
+extern constext txt_scopes_menu_com[];
 extern constext txt_search_backwards[];
 extern constext txt_search_body[];
 extern constext txt_search_forwards[];
@@ -1067,7 +1208,6 @@ extern constext txt_thread_marked_as_sel
 #if 0 /* unused */
 	extern constext txt_thread_plural[];
 #endif /* 0 */
-extern constext txt_thread_range[];
 extern constext txt_thread_singular[];
 extern constext txt_thread_x_of_n[];
 extern constext txt_threading_arts[];
@@ -1081,11 +1221,13 @@ extern constext txt_toggled_high[];
 extern constext txt_toggled_rot13[];
 extern constext txt_toggled_tex2iso[];
 extern constext txt_toggled_tabwidth[];
-#if defined(NNTP_ABLE) && defined(HAVE_INET_NTOA)
+#if defined(NNTP_ABLE) && defined(HAVE_INET_NTOA) && !defined(INET6)
 	extern constext txt_trying[];
-#endif /* NNTP_ABLE && HAVE_INET_NTOA */
-extern constext txt_trying_dotlock[];
-extern constext txt_trying_lock[];
+#endif /* NNTP_ABLE && HAVE_INET_NTOA && ! INET6 */
+#ifndef NO_LOCKING
+	extern constext txt_trying_dotlock[];
+	extern constext txt_trying_lock[];
+#endif /* NO_LOCKING */
 extern constext txt_type_h_for_help[];
 extern constext txt_unlimited_time[];
 extern constext txt_unread[];
@@ -1096,7 +1238,10 @@ extern constext txt_unsubscribing[];
 extern constext txt_unthreading_arts[];
 extern constext txt_updated[];
 extern constext txt_updating[];
+extern constext txt_url_menu[];
+extern constext txt_url_menu_com[];
 extern constext txt_url_open[];
+extern constext txt_url_select[];
 extern constext txt_url_done[];
 extern constext txt_usage_catchup[];
 extern constext txt_usage_check_for_unread_news[];
@@ -1107,9 +1252,15 @@ extern constext txt_usage_dont_check_new
 extern constext txt_usage_dont_save_files_on_quit[];
 extern constext txt_usage_dont_show_descriptions[];
 #ifdef NNTP_ABLE
+	extern constext txt_unparseable_counts[];
 	extern constext txt_usage_force_authentication[];
+#ifdef INET6
+	extern constext txt_usage_force_ipv4[];
+	extern constext txt_usage_force_ipv6[];
+#endif /* INET6 */
 	extern constext txt_usage_newsserver[];
 	extern constext txt_usage_port[];
+	extern constext txt_usage_read_news_remotely[];
 #endif /* NNTP_ABLE */
 extern constext txt_usage_getart_limit[];
 extern constext txt_usage_help_information[];
@@ -1124,7 +1275,6 @@ extern constext txt_usage_newsrc_file[];
 extern constext txt_usage_no_posting[];
 extern constext txt_usage_post_article[];
 extern constext txt_usage_post_postponed_arts[];
-extern constext txt_usage_read_news_remotely[];
 extern constext txt_usage_read_saved_news[];
 extern constext txt_usage_savedir[];
 extern constext txt_usage_save_new_news[];
@@ -1140,6 +1290,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[];
@@ -1156,6 +1307,7 @@ extern constext txt_warn_encoding_and_ex
 	extern constext txt_warn_header_line_comma[];
 	extern constext txt_warn_header_line_groups_contd[];
 #endif /* FOLLOW_USEFOR_DRAFT */
+extern constext txt_warn_example_hierarchy[];
 extern constext txt_warn_multiple_sigs[];
 extern constext txt_warn_newsrc[];
 extern constext txt_warn_not_all_arts_saved[];
@@ -1187,6 +1339,7 @@ extern constext txt_you_have_mail[];
 
 #ifndef HAVE_FASCIST_NEWSADMIN
 	extern constext txt_warn_followup_to_several_groups[];
+	extern constext txt_warn_grp_renamed[];
 	extern constext txt_warn_missing_followup_to[];
 	extern constext txt_warn_not_in_newsrc[];
 	extern constext txt_warn_not_valid_newsgroup[];
@@ -1215,10 +1368,12 @@ extern constext txt_uu_success[];
 extern int *my_group;
 extern int NOTESLINES;
 extern int _hp_glitch;
+extern int attrib_file_offset;
 extern int cCOLS;
 extern int cLINES;
 extern int curr_line;
 extern int debug;
+extern int filter_file_offset;
 extern int input_context;
 extern int iso2asc_supported;
 extern int last_resp;
@@ -1226,13 +1381,13 @@ extern int max_active;
 extern int max_art;
 extern int max_newnews;
 extern int max_save;
-extern int num_headers_to_display;
-extern int num_headers_to_not_display;
+extern int max_scope;
 extern int need_resize;
 extern int num_active;
 extern int num_newnews;
 extern int num_of_tagged_arts;
 extern int num_save;
+extern int num_scope;
 extern int signal_context;
 extern int srch_lineno;
 extern int system_status;
@@ -1248,12 +1403,16 @@ extern long *base;
 
 extern signed long int read_newsrc_lines;
 
+extern size_t tabwidth;
+
 extern pid_t process_id;
 
 extern struct regex_cache strip_re_regex;
 extern struct regex_cache strip_was_regex;
 extern struct regex_cache uubegin_regex;
 extern struct regex_cache uubody_regex;
+extern struct regex_cache verbatim_begin_regex;
+extern struct regex_cache verbatim_end_regex;
 extern struct regex_cache url_regex;
 extern struct regex_cache mail_regex;
 extern struct regex_cache news_regex;
@@ -1269,7 +1428,8 @@ extern struct regex_cache strokes_regex;
 #endif /* HAVE_COLOR */
 
 extern struct t_article *arts;
-extern struct t_attribute glob_attributes;
+extern struct t_scope *scopes;
+extern struct t_cmdlineopts cmdline;
 extern struct t_config tinrc;
 extern struct t_filters glob_filter;
 extern struct t_group *active;
@@ -1285,28 +1445,35 @@ extern t_bool check_for_new_newsgroups;
 extern t_bool cmd_line;
 extern t_bool created_rcdir;
 extern t_bool dangerous_signal_exit; /* TRUE if SIGHUP, SIGTERM, SIGUSR1 */
+#ifdef NNTP_ABLE
+	extern t_bool did_reconnect;
+	extern t_bool reconnected_in_last_get_server;
+#endif /* NNTP_ABLE */
 extern t_bool disable_gnksa_domain_check;
 extern t_bool disable_sender;
 extern t_bool force_no_post;
 extern t_bool force_reread_active_file;
-extern t_bool got_sig_pipe;
+#if defined(NNTP_ABLE) && defined(INET6)
+	extern t_bool force_ipv4;
+	extern t_bool force_ipv6;
+#endif /* NNTP_ABLE && INET6 */
 extern t_bool have_linescroll;
-extern t_bool filtered_articles;
 extern t_bool list_active;
 extern t_bool newsrc_active;
 extern t_bool no_write;
 extern t_bool post_article_and_exit;
 extern t_bool post_postponed_and_exit;
+extern t_bool range_active;
 extern t_bool read_local_newsgroups_file;
 extern t_bool read_news_via_nntp;
 extern t_bool read_saved_news;
-extern t_bool reconnected_in_last_get_server;
 extern t_bool reread_active_for_posted_arts;
 extern t_bool show_description;
 extern t_bool show_subject;
 extern t_bool batch_mode;
 extern t_bool verbose;
 extern t_bool xref_supported;
+extern t_bool expensive_over_parse;
 
 extern t_function last_search;
 
@@ -1316,6 +1483,8 @@ extern t_menu *currmenu;
 
 extern t_openartinfo pgart;
 
+extern struct t_overview_fmt *ofmt;
+
 enum {
 	HIST_OTHER = 0,
 	HIST_ART_SEARCH,
@@ -1396,6 +1565,12 @@ extern char *input_history[HIST_MAXNUM +
 
 #ifdef FORGERY
 	extern constext txt_warn_cancel_forgery[];
+#else
+	extern constext txt_art_cannot_cancel[];
+	extern constext txt_error_sender_in_header_not_allowed[];
+#	ifdef NNTP_INEWS
+	extern constext txt_invalid_sender[];
+#	endif /* NNTP_INEWS */
 #endif /* FORGERY */
 
 extern t_bool word_highlight;
@@ -1411,6 +1586,7 @@ extern t_bool word_highlight;
 
 #ifdef HAVE_FASCIST_NEWSADMIN
 	extern constext txt_error_followup_to_several_groups[];
+	extern constext txt_error_grp_renamed[];
 	extern constext txt_error_missing_followup_to[];
 	extern constext txt_error_not_valid_newsgroup[];
 #endif /* HAVE_FASCIST_NEWSADMIN */
@@ -1458,6 +1634,7 @@ extern constext txt_processing_saved_art
 	extern t_bool force_auth_on_conn_open;
 #endif /* NNTP_ABLE */
 
+extern struct opttxt txt_abbreviate_groupname;
 extern struct opttxt txt_add_posted_to_filter;
 extern struct opttxt txt_advertising;
 extern struct opttxt txt_alternative_handling;
@@ -1471,11 +1648,12 @@ extern struct opttxt txt_art_marked_retu
 extern struct opttxt txt_art_marked_selected;
 extern struct opttxt txt_art_marked_unread;
 extern struct opttxt txt_ask_for_metamail;
-extern struct opttxt txt_auto_bcc;
-extern struct opttxt txt_auto_cc;
+extern struct opttxt txt_auto_cc_bcc;
 extern struct opttxt txt_auto_list_thread;
 extern struct opttxt txt_auto_reconnect;
 extern struct opttxt txt_auto_save;
+extern struct opttxt txt_auto_select;
+extern struct opttxt txt_delete_tmp_files;
 extern struct opttxt txt_batch_save;
 extern struct opttxt txt_beginner_level;
 extern struct opttxt txt_cache_overview_files;
@@ -1489,17 +1667,24 @@ extern struct opttxt txt_display_options
 extern struct opttxt txt_draw_arrow;
 extern struct opttxt txt_editor_format;
 extern struct opttxt txt_expert_options;
+extern struct opttxt txt_fcc;
 extern struct opttxt txt_filter_days;
 extern struct opttxt txt_filtering_options;
+extern struct opttxt txt_followup_to;
 extern struct opttxt txt_force_screen_redraw;
+extern struct opttxt txt_from;
 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;
 extern struct opttxt txt_inews_prog;
 extern struct opttxt txt_interactive_mailer;
 extern struct opttxt txt_inverse_okay;
+#ifdef HAVE_ISPELL
+	extern struct opttxt txt_ispell;
+#endif /* HAVE_ISPELL */
 extern struct opttxt txt_keep_dead_articles;
 extern struct opttxt txt_kill_level;
 extern struct opttxt txt_mail_8bit_header;
@@ -1508,25 +1693,32 @@ extern struct opttxt txt_mail_mime_encod
 extern struct opttxt txt_mail_quote_format;
 extern struct opttxt txt_mailbox_format;
 extern struct opttxt txt_maildir;
+extern struct opttxt txt_mailing_list;
 extern struct opttxt txt_mailer_format;
 extern struct opttxt txt_mark_ignore_tags;
 extern struct opttxt txt_mark_saved_read;
+extern struct opttxt txt_mime_forward;
+extern struct opttxt txt_mime_types_to_save;
 extern struct opttxt txt_mono_markstar;
 extern struct opttxt txt_mono_markdash;
 extern struct opttxt txt_mono_markslash;
 extern struct opttxt txt_mono_markstroke;
 #ifndef CHARSET_CONVERSION
 	extern struct opttxt txt_mm_charset;
+#else
+#	ifdef NO_LOCALE
+		extern struct opttxt txt_mm_local_charset;
+#	endif /* NO_LOCALE */
 #endif /* CHARSET_CONVERSION */
 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_organization;
 extern struct opttxt txt_pos_first_unread;
 extern struct opttxt txt_post_8bit_header;
 extern struct opttxt txt_post_mime_encoding;
-extern struct opttxt txt_post_process;
+extern struct opttxt txt_post_process_type;
 extern struct opttxt txt_post_process_view;
 extern struct opttxt txt_posted_articles_file;
 extern struct opttxt txt_posting_options;
@@ -1536,11 +1728,20 @@ extern struct opttxt txt_posting_options
 #endif /* !DISABLE_PRINTING */
 extern struct opttxt txt_process_only_unread;
 extern struct opttxt txt_prompt_followupto;
+extern struct opttxt txt_quick_select_scope;
+extern struct opttxt txt_quick_select_header;
+extern struct opttxt txt_quick_select_case;
+extern struct opttxt txt_quick_select_expire;
+extern struct opttxt txt_quick_kill_scope;
+extern struct opttxt txt_quick_kill_header;
+extern struct opttxt txt_quick_kill_case;
+extern struct opttxt txt_quick_kill_expire;
 extern struct opttxt txt_quote_chars;
 extern struct opttxt txt_quote_style;
 extern struct opttxt txt_recent_time;
 extern struct opttxt txt_reread_active_file_secs;
 extern struct opttxt txt_savedir;
+extern struct opttxt txt_savefile;
 extern struct opttxt txt_saving_options;
 extern struct opttxt txt_score_limit_kill;
 extern struct opttxt txt_score_limit_select;
@@ -1559,7 +1760,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;
@@ -1569,25 +1769,35 @@ 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;
 extern struct opttxt txt_thread_catchup_on_exit;
 extern struct opttxt txt_thread_score;
+extern struct opttxt txt_trim_article_body;
 extern struct opttxt txt_underscores_regex;
 extern struct opttxt txt_unlink_article;
 extern struct opttxt txt_url_handler;
 extern struct opttxt txt_url_highlight;
 extern struct opttxt txt_use_mouse;
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	extern struct opttxt txt_utf8_graphics;
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+extern struct opttxt txt_verbatim_begin_regex;
+extern struct opttxt txt_verbatim_end_regex;
+extern struct opttxt txt_verbatim_handling;
 extern struct opttxt txt_wildcard;
 extern struct opttxt txt_word_highlight;
 extern struct opttxt txt_word_h_display_marks;
 extern struct opttxt txt_wrap_column;
 extern struct opttxt txt_wrap_on_next_unread;
+extern struct opttxt txt_x_body;
+extern struct opttxt txt_x_comment_to;
+extern struct opttxt txt_x_headers;
 extern struct opttxt txt_xpost_quote_format;
 #ifdef CHARSET_CONVERSION
 	extern struct opttxt txt_mm_network_charset;
+	extern struct opttxt txt_undeclared_charset;
 #endif /* CHARSET_CONVERSION */
 #ifdef HAVE_COLOR
 	extern struct opttxt txt_quote_regex;
@@ -1613,6 +1823,7 @@ extern struct opttxt txt_xpost_quote_for
 	extern struct opttxt txt_col_title;
 	extern struct opttxt txt_col_signature;
 	extern struct opttxt txt_col_urls;
+	extern struct opttxt txt_col_verbatim;
 	extern struct opttxt txt_col_markstar;
 	extern struct opttxt txt_col_markdash;
 	extern struct opttxt txt_col_markslash;
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/keymap.h tin-2.0.0/include/keymap.h
--- tin-1.8.3/include/keymap.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/keymap.h	2011-04-17 16:04:29.470923639 +0200
@@ -3,10 +3,10 @@
  *  Module    : keymap.h
  *  Author    : J. Faultless, D. Nimmich
  *  Created   : 1999
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-01-25
  *  Notes     :
  *
- * Copyright (c) 1999-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1999-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -154,16 +154,27 @@ enum defined_functions {
 	DIGIT_7,
 	DIGIT_8,
 	DIGIT_9,
+	ATTACHMENT_PIPE,
+	ATTACHMENT_SAVE,
+	ATTACHMENT_SELECT,
+	ATTACHMENT_TAG,
+	ATTACHMENT_TAG_PATTERN,
+	ATTACHMENT_TOGGLE_TAGGED,
+	ATTACHMENT_UNTAG,
 	SPECIAL_CATCHUP_LEFT,
 	SPECIAL_MOUSE_TOGGLE,
 	CATCHUP,
 	CATCHUP_NEXT_UNREAD,
+	CONFIG_RESET_ATTRIB,
+	CONFIG_SCOPE_MENU,
 	CONFIG_SELECT,
 	CONFIG_NO_SAVE,
+	CONFIG_TOGGLE_ATTRIB,
 	FEED_ARTICLE,
 	FEED_THREAD,
 	FEED_HOT,
 	FEED_PATTERN,
+	FEED_RANGE,
 	FEED_TAGGED,
 	FEED_KEY_REPOST,
 	FEED_SUPERSEDE,
@@ -207,7 +218,7 @@ enum defined_functions {
 	GLOBAL_SET_RANGE,
 #ifndef NO_SHELL_ESCAPE
 	GLOBAL_SHELL_ESCAPE,
-#endif /* NO_SHELL_ESCAPE */
+#endif /* !NO_SHELL_ESCAPE */
 #ifdef HAVE_COLOR
 	GLOBAL_TOGGLE_COLOR,
 #endif /* HAVE_COLOR */
@@ -216,6 +227,7 @@ enum defined_functions {
 	GLOBAL_TOGGLE_INVERSE_VIDEO,
 	GLOBAL_VERSION,
 	GROUP_AUTOSAVE,
+	GROUP_CANCEL,
 	GROUP_DO_AUTOSELECT,
 	GROUP_GOTO,
 	GROUP_LIST_THREAD,
@@ -244,9 +256,9 @@ enum defined_functions {
 	GROUP_UNDO_SELECTIONS,
 	GROUP_UNTAG,
 	MARK_ARTICLE_UNREAD,
-	MARK_READ_CURRENT,
-	MARK_READ_TAGGED,
 	MARK_THREAD_UNREAD,
+	MARK_FEED_READ,
+	MARK_FEED_UNREAD,
 	PAGE_AUTOSAVE,
 	PAGE_BOTTOM_THREAD,
 	PAGE_CANCEL,
@@ -263,7 +275,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 */
@@ -279,6 +290,7 @@ enum defined_functions {
 	PAGE_TAG,
 	PAGE_TOGGLE_HEADERS,
 	PAGE_TOGGLE_HIGHLIGHTING,
+	PAGE_TOGGLE_RAW,
 	PAGE_TOGGLE_ROT13,
 	PAGE_TOGGLE_TABS,
 	PAGE_TOGGLE_TEX2ISO,
@@ -286,10 +298,12 @@ enum defined_functions {
 	PAGE_TOP_THREAD,
 	PAGE_VIEW_ATTACHMENTS,
 	PAGE_VIEW_URL,
+#ifdef HAVE_PGP_GPG
 	PGP_KEY_ENCRYPT,
 	PGP_KEY_ENCRYPT_SIGN,
 	PGP_INCLUDE_KEY,
 	PGP_KEY_SIGN,
+#endif /* HAVE_PGP_GPG */
 	POST_ABORT,
 	POST_CANCEL,
 	POST_CONTINUE,
@@ -314,6 +328,12 @@ enum defined_functions {
 	PROMPT_YES,
 	SAVE_APPEND_FILE,
 	SAVE_OVERWRITE_FILE,
+	SCOPE_ADD,
+	SCOPE_DELETE,
+	SCOPE_EDIT_ATTRIBUTES_FILE,
+	SCOPE_MOVE,
+	SCOPE_RENAME,
+	SCOPE_SELECT,
 	SELECT_ENTER_GROUP,
 	SELECT_ENTER_NEXT_UNREAD_GROUP,
 	SELECT_GOTO,
@@ -332,6 +352,7 @@ enum defined_functions {
 	SELECT_QUIT_NO_WRITE,
 	SELECT_YANK_ACTIVE,
 	THREAD_AUTOSAVE,
+	THREAD_CANCEL,
 	THREAD_MAIL,
 	THREAD_MARK_ARTICLE_READ,
 	THREAD_READ_NEXT_ARTICLE_OR_THREAD,
@@ -343,7 +364,8 @@ enum defined_functions {
 	THREAD_TOGGLE_ARTICLE_SELECTION,
 	THREAD_TOGGLE_SUBJECT_DISPLAY,
 	THREAD_UNDO_SELECTIONS,
-	THREAD_UNTAG
+	THREAD_UNTAG,
+	URL_SELECT
 };
 typedef enum defined_functions t_function;
 
@@ -365,13 +387,13 @@ struct keylist {
 };
 
 
+extern struct keylist attachment_keys;
 extern struct keylist feed_post_process_keys;
 extern struct keylist feed_supersede_article_keys;
 extern struct keylist feed_type_keys;
 extern struct keylist filter_keys;
 extern struct keylist group_keys;
 extern struct keylist info_keys;
-extern struct keylist mark_read_keys;
 extern struct keylist option_menu_keys;
 extern struct keylist page_keys;
 #ifdef HAVE_PGP_GPG
@@ -390,8 +412,10 @@ extern struct keylist post_postpone_keys
 extern struct keylist post_send_keys;
 extern struct keylist prompt_keys;
 extern struct keylist save_append_overwrite_keys;
+extern struct keylist scope_keys;
 extern struct keylist select_keys;
 extern struct keylist thread_keys;
+extern struct keylist url_keys;
 
 
 extern t_function global_mouse_action(t_function (*left_action) (void), t_function (*right_action) (void));
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/newsrc.h tin-2.0.0/include/newsrc.h
--- tin-1.8.3/include/newsrc.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/newsrc.h	2011-04-17 16:04:29.498927902 +0200
@@ -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-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -116,23 +116,23 @@
 
 #define NBITMASK(beg,end)	(unsigned char) ~(((1 << (((NMAXBIT - beg) - (NMAXBIT - end)) + 1)) - 1) << (NMAXBIT - end))
 
-#define NTEST(n,b)	(n[NOFFSET(b)] &   (1 << NBITIDX(b)))
+#define NTEST(n,b)	(n[NOFFSET(b)] & (1 << NBITIDX(b)))
 
-#define NSETBLK1(n,i)	(memset (n, NBITSON, (size_t) NOFFSET(i)+1))
-#define NSETBLK0(n,i)	(memset (n, 0, (size_t) NOFFSET(i)+1))
+#define NSETBLK1(n,i)	(memset(n, NBITSON, (size_t) NOFFSET(i) + 1))
+#define NSETBLK0(n,i)	(memset(n, 0, (size_t) NOFFSET(i) + 1))
 
 /* dbmalloc checks memset() parameters, so we'll use it to check the assignments */
 #ifdef USE_DBMALLOC
-#	define NSET1(n,b) memset(n + NOFFSET(b), n[NOFFSET(b)] | NTEST(n,b), 1)
-#	define NSET0(n,b) memset(n + NOFFSET(b), n[NOFFSET(b)] & ~NTEST(n,b), 1)
-#	define BIT_OR(n, b, mask)   memset(n + NOFFSET(b), n[NOFFSET(b)] | (mask), 1)
-#	define BIT_AND(n, b, mask)  memset(n + NOFFSET(b), n[NOFFSET(b)] & (mask), 1)
+#	define NSET1(n,b)	memset(n + NOFFSET(b), n[NOFFSET(b)] | NTEST(n,b), 1)
+#	define NSET0(n,b)	memset(n + NOFFSET(b), n[NOFFSET(b)] & ~NTEST(n,b), 1)
+#	define BIT_OR(n, b, mask)	memset(n + NOFFSET(b), n[NOFFSET(b)] | (mask), 1)
+#	define BIT_AND(n, b, mask)	memset(n + NOFFSET(b), n[NOFFSET(b)] & (mask), 1)
 #	include <dbmalloc.h> /* dbmalloc 1.4 */
 #else
-#	define NSET1(n,b)	(n[NOFFSET(b)] |=  (1 << NBITIDX(b)))
+#	define NSET1(n,b)	(n[NOFFSET(b)] |= (1 << NBITIDX(b)))
 #	define NSET0(n,b)	(n[NOFFSET(b)] &= ~(1 << NBITIDX(b)))
-#	define BIT_OR(n, b, mask)   n[NOFFSET(b)] |= mask
-#	define BIT_AND(n, b, mask)  n[NOFFSET(b)] &= mask
+#	define BIT_OR(n, b, mask)	n[NOFFSET(b)] |= mask
+#	define BIT_AND(n, b, mask)	n[NOFFSET(b)] &= mask
 #endif /* USE_DBMALLOC */
 
 #define BITS_TO_BYTES(n)	((size_t) ((n + NBITS - 1) / NBITS))
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/nntplib.h tin-2.0.0/include/nntplib.h
--- tin-1.8.3/include/nntplib.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/nntplib.h	2011-04-17 16:04:29.546935209 +0200
@@ -3,10 +3,10 @@
  *  Module    : nntplib.h
  *  Author    : I.Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-21
+ *  Updated   : 2010-04-29
  *  Notes     : nntp.h 1.5.11/1.6 with extensions for tin
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -45,13 +45,13 @@
 #define NNTP_TCP_NAME	"nntp"
 #define NNTP_TCP_PORT	"119"
 
-#if 0 /* unused */
 /*
  * # seconds after which a read from the NNTP will timeout
  * NB: This is different from the NNTP server timing us out due to inactivity
  */
-#	define NNTP_READ_TIMEOUT		30
-#endif /* 0 */
+#if defined(HAVE_ALARM) && defined(SIGALRM)
+#	define NNTP_READ_TIMEOUT	120
+#endif /* HAVE_ALARM && SIGALRM */
 
 /*
  * # times to try and reconnect to server after timeout
@@ -69,7 +69,7 @@
  *	4xx  Command was correct, but couldn't be performed
  *	     for some specified reason.
  *	5xx  Command unimplemented, incorrect, or a
- *	     program error has occured.
+ *	     program error has occurred.
  *
  * Second digit:
  *
@@ -87,79 +87,67 @@
 #	define	CHAR_FATAL		'5'
 #endif /* 0 */
 
-#define	INF_HELP		100	/* Help text on way */
-#define	INF_CAPABILITIES	101	/* Capability list follows */
-#define	INF_AUTH		180	/* Authorization capabilities */
-#define	INF_DEBUG		199	/* Debug output */
-
-#define	OK_CANPOST		200	/* Hello; you can post */
-#define	OK_NOPOST		201	/* Hello; you can't post */
-#define	OK_EXTENSIONS	202	/* extensions supported follow */
-#define	OK_NOIHAVE		202	/* Hello; you can't IHAVE; discussed on the IETF-mailinglist */
-#define	OK_SLAVE		202	/* Slave status noted */
-#define	OK_NOPOSTIHAVE	203	/* Hello; you can't POST or IHAVE; iscussed on the IETF-mailinglist */
-#define	OK_GOODBYE		205	/* Closing connection */
-#define	OK_GROUP		211	/* Group selected */
-#define	OK_GROUPS		215	/* Newsgroups follow */
-#define	OK_MOTD			215	/* News motd follows */
-
-/* obsolete */
-#define	OK_XINDEX		218	/* Tin style index follows */
-
-#define	OK_ARTICLE		220	/* Article (head & body) follows */
-#define	OK_HEAD			221	/* Head follows */
-#define	OK_BODY			222	/* Body follows */
-#define	OK_NOTEXT		223	/* No text sent -- stat, next, last */
-#define	OK_XOVER		224	/* .overview data follows */
-#define	OK_NEWNEWS		230	/* New articles by message-id follow */
-#define	OK_NEWGROUPS		231	/* New newsgroups follow */
-#define	OK_XFERED		235	/* Article transferred successfully */
-#define	OK_POSTED		240	/* Article posted successfully */
-#define	OK_AUTHSYS		280	/* Authorization system ok */
-#define	OK_AUTH			281	/* Authorization (user/pass) ok */
-#define	OK_BIN			282	/* binary data follows */
-#define	OK_LIST			282	/* list follows */
-#define	OK_SPLIST		283	/* spooldir list follows */
-#define	OK_SPSWITCH		284	/* Switching to a different spooldir */
-#define	OK_SPNOCHANGE		285	/* Still using same spooldir */
-#define	OK_SPLDIRCUR		286	/* Current spooldir */
-#define	OK_SPLDIRAVL		287	/* Available spooldir */
-#define	OK_SPLDIRERR		288	/* Unavailable spooldir or invalid entry */
-
-#define	CONT_XFER		335	/* Continue to send article */
-#define	CONT_POST		340	/* Continue to post article */
-#define	NEED_AUTHINFO		380	/* authorization is required */
-#define	NEED_AUTHDATA		381	/* <type> authorization data required */
-
-#define	ERR_GOODBYE		400	/* Have to hang up for some reason */
-#define	ERR_NOGROUP		411	/* No such newsgroup */
-#define	ERR_NCING		412	/* Not currently in newsgroup */
-
-#define	ERR_XINDEX		418	/* No tin index for this group */
-#define	ERR_XOVERVIEW		419	/* No .overview index for this group */
-
-#define	ERR_NOCRNT		420	/* No current article selected */
-#define	ERR_NONEXT		421	/* No next article in this group */
-#define	ERR_NOPREV		422	/* No previous article in this group */
-#define	ERR_NOARTIG		423	/* No such article in this group */
-#define	ERR_NOART		430	/* No such article at all */
-#define	ERR_GOTIT		435	/* Already got that article, don't send */
-#define	ERR_XFERFAIL		436	/* Transfer failed */
-#define	ERR_XFERRJCT		437	/* Article rejected, don't resend */
-#define	ERR_NOPOST		440	/* Posting not allowed */
-#define	ERR_POSTFAIL		441	/* Posting failed */
-#define	ERR_NOAUTH		480	/* authorization required for command */
-#define	ERR_AUTHSYS		481	/* Authorization system invalid */
-#define	ERR_AUTHREJ		482	/* Authorization data rejected */
-#define	ERR_INVALIAS		483	/* Invalid alias on spooldir cmd */
-#define	ERR_INVNOSPDIR		484	/* No spooldir file found */
-
-#define	ERR_COMMAND		500	/* Command not recognized */
-#define	ERR_CMDSYN		501	/* Command syntax error */
-#define	ERR_ACCESS		502	/* Access to server denied */
-#define	ERR_FAULT		503	/* Program fault, command not performed */
-#define	ERR_MOTD		503	/* No news motd file */
-#define	ERR_AUTHBAD		580	/* Authorization Failed */
+/* TODO: cleanup against RFC 2980, RFC 3977 */
+#define INF_HELP		100	/* Help text on way */
+#define INF_CAPABILITIES	101	/* Capability list follows */
+#define INF_DATE		111 /* yyyymmddhhmmss Server date and time */
+
+#define OK_CANPOST		200	/* Hello; you can post */
+#define OK_NOPOST		201	/* Hello; you can't post */
+#define OK_EXTENSIONS	202	/* extensions supported follow */
+#define OK_GOODBYE		205	/* Closing connection */
+#define OK_GROUP		211	/* Group selected */
+#define OK_GROUPS		215	/* Newsgroups follow */
+#define OK_MOTD			215	/* News motd follows */
+
+#define OK_ARTICLE		220	/* Article (head & body) follows */
+#define OK_HEAD			221	/* Head follows */
+#define OK_BODY			222	/* Body follows */
+#define OK_NOTEXT		223	/* No text sent -- stat, next, last */
+#define OK_XOVER		224	/* .overview data follows */
+#define OK_HDR			225 /* headers follow */
+#define OK_NEWNEWS		230	/* New articles by message-id follow */
+#define OK_NEWGROUPS	231	/* New newsgroups follow */
+#define OK_XFERED		235	/* Article transferred successfully */
+#define OK_POSTED		240	/* Article posted successfully */
+#define OK_AUTHSYS		280	/* Authorization system ok */
+#define OK_AUTH			281	/* Authorization (user/pass) ok */
+#define OK_BIN			282	/* binary data follows */
+#define OK_LIST			282	/* list follows */
+#define OK_AUTH_SASL	283 /* authentication accepted (with success data) */
+
+#define CONT_XFER		335	/* Continue to send article */
+#define CONT_POST		340	/* Continue to post article */
+#define NEED_AUTHINFO	380	/* authorization is required */
+#define NEED_AUTHDATA	381	/* <type> authorization data required */
+#define NEED_AUTHDATA_SASL	383 /* continue with SASL exchange */
+
+#define ERR_GOODBYE		400	/* Have to hang up for some reason */
+#define ERR_STATE		401 /* The client must change the state of the connection */
+#define ERR_NOGROUP		411	/* No such newsgroup */
+#define ERR_NCING		412	/* Not currently in newsgroup */
+
+#define ERR_NOCRNT		420	/* No current article selected */
+#define ERR_NONEXT		421	/* No next article in this group */
+#define ERR_NOPREV		422	/* No previous article in this group */
+#define ERR_NOARTIG		423	/* No such article in this group */
+#define ERR_NOART		430	/* No such article at all */
+#define ERR_GOTIT		435	/* Already got that article, don't send */
+#define ERR_XFERFAIL	436	/* Transfer failed */
+#define ERR_XFERRJCT	437	/* Article rejected, don't resend */
+#define ERR_NOPOST		440	/* Posting not allowed */
+#define ERR_POSTFAIL	441	/* Posting failed */
+#define ERR_NOAUTH		480	/* authorization required for command */
+#define ERR_AUTHFAIL	481 /* Authentication failed/rejected */
+#define ERR_AUTHSEQ		482 /* Authentication commands issued out of sequence or SASL protocol error */
+#define ERR_ENCRYPT		483	/* encrpytion required */
+
+#define ERR_COMMAND		500	/* Command not recognized */
+#define ERR_CMDSYN		501	/* Command syntax error */
+#define ERR_ACCESS		502	/* Access to server denied */
+#define ERR_FAULT		503	/* Program fault, command not performed */
+#define ERR_MOTD		503	/* No news motd file */
+#define ERR_AUTHBAD		580	/* Authorization Failed */
 
 /*
  * RFC 977 defines this; don't change it.
@@ -167,13 +155,25 @@
 #define NNTP_STRLEN		512
 
 /*
+ * OVERVIEW.FMT field types
+ */
+enum f_type { OVER_T_ERROR, OVER_T_INT, OVER_T_STRING, OVER_T_FSTRING };
+
+/*
  * CAPABILITIES
+ * remember to update init.c and nntplib.c:check_extensions() if you change
+ * t_capabilities
  */
+enum extension_type { NONE, CAPABILITIES, BROKEN };
+
+enum sasl_types { SASL_NONE = 0, SASL_PLAIN = 1, SASL_CRAM_MD5 = 2, SASL_DIGEST_MD5 = 4, SASL_GSSAPI = 8, SASL_EXTERNAL = 16, SASL_OTP = 32, SASL_NTLM = 64, SASL_LOGIN = 128 };
+enum c_algorithms { COMPRESS_NONE, COMPRESS_DEFLATE };
+
 struct t_capabilities {
-	unsigned int type:3;			/* none, LIST EXTENSIONS, CAPABILITIES */
+	enum extension_type type;		/* NONE, CAPABILITIES, BROKEN */
 	unsigned int version;			/* CAPABILITIES version */
 	t_bool mode_reader:1;			/* MODE-READER: "MODE READER" */
-	t_bool reader:1;				/* READER: "ARTCILE", "BODY", "LISTGROUP" */
+	t_bool reader:1;				/* READER: "ARTCILE", "BODY", "DATE", "GROUP", "LAST", "LISTGROUP", "NEWGROUPS", "NEXT" */
 	t_bool post:1;					/* POST */
 	t_bool list_active:1;			/* LIST ACTIVE */
 	t_bool list_active_times:1;		/* LIST ACTIVE.TIMES, optional */
@@ -185,6 +185,7 @@ struct t_capabilities {
 	t_bool list_subscriptions:1;	/* LIST SUBSCRIPTIONS, "private" extension, RFC 2980 */
 	t_bool list_distributions:1;	/* LIST DISTRIBUTIONS, "private" extension, RFC 2980 */
 	t_bool list_moderators:1;		/* LIST MODERATORS, "private" extension */
+	t_bool list_counts:1;			/* LIST COUNTS, "private" extension */
 	t_bool xpat:1;					/* XPAT, "private" extension, RFC 2980 */
 	t_bool hdr:1;					/* HDR: "HDR", "LIST HEADERS" */
 	const char *hdr_cmd;			/* [X]HDR */
@@ -196,15 +197,15 @@ struct t_capabilities {
 	t_bool starttls:1;				/* STARTTLS */
 	t_bool authinfo_user:1;			/* AUTHINFO USER/PASS */
 	t_bool authinfo_sasl:1;			/* AUTHINFO SASL */
+	t_bool authinfo_state:1;		/* AUTHINFO not supported in curent state */
+	enum sasl_types sasl;			/* SASL_NONE, SASL_PLAIN, SASL_CRAM_MD5, SASL_DIGEST_MD5, SASL_GSSAPI, SASL_EXTERNAL, SASL_OTP, SASL_NTLM, SASL_LOGIN */
+	t_bool compress:1;				/* COMPRESS */
+	enum c_algorithms compress_algorithm;	/* COMPRESS_NONE, COMPRESS_DEFLATE */
 #if 0
-	t_bool sasl_cram_md5:1;			/* SASL CRAM-MD5 */
-	t_bool sasl_digest_md5:1;		/* SASL DIGEST-MD5 */
-	t_bool sasl_plain:1;			/* SASL PLAIN */
-	t_bool sasl_gssapi:1;			/* SASL GSSAPI */
-	t_bool sasl_external:1;			/* SASL EXTERNAL */
 	t_bool streaming:1;				/* STREAMING: "MODE STREAM", "CHECK", "TAKETHIS" */
 	t_bool ihave:1;					/* IHAVE: "IHAVE" */
 #endif /* 0 */
+	t_bool broken_listgroup:1;		/* LISTGROUP doesn't select newsgroup */
 };
 
 #endif /* !NNTPLIB_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/oldconfig.h tin-2.0.0/include/oldconfig.h
--- tin-1.8.3/include/oldconfig.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/oldconfig.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,422 +0,0 @@
-/*
- *  Project   : tin - a Usenet reader
- *  Module    : config.h
- *  Author    : I.Lea
- *  Created   : 1992-09-03
- *  Updated   : 2001-07-22
- *  Notes     : #defines to determine different OS capabilites
- *
- * Copyright (c) 1995-2006 Iain Lea <iain@bricbrac.de>
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- *    notice, this list of conditions and the following disclaimer.
- * 2. 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.
- * 3. The name of the author may not be used to endorse or promote
- *    products derived from this software without specific prior written
- *    permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
- */
-
-
-/* functions that we'll assume we have unless there's a special reason */
-#define HAVE_GETCWD
-#define HAVE_MKDIR
-#define HAVE_TZSET
-#define HAVE_MEMCMP
-#define HAVE_MEMCPY
-#define HAVE_MEMSET
-#define HAVE_STRCHR
-#define HAVE_STRTOL
-#define HAVE_STRPBRK
-#define HAVE_STRSTR
-#define HAVE_STRERROR
-#define HAVE_STRFTIME
-#define HAVE_ATOL
-
-/*
- * Undef this only for specific platforms
- */
-#if !defined(__STDC__)
-#define const /*nothing*/
-#endif
-
-/* VAXC cant tell the difference between 'varA' and 'vara' */
-/*	and, what a surprise, suffers from a limit of 31 chars for vars */
-
-#if defined(VMS)
-#   if defined(VAXC) || defined(__DECC)
-#	define CASE_PROBLEM
-#	define VAR_LENGTH_PROBLEM
-#	undef  const
-#   endif
-#endif
-
-#if !defined(M_AMIGA) && !defined(M_OS2) && !defined(M_UNIX) && !defined(WIN32) && !defined(VMS)
-#	define M_UNIX
-#endif
-
-#ifndef VMS
-#	define HAVE_UNLINK
-#endif
-
-#ifdef VMS
-#   define  HAVE_IS_XTERM
-#endif
-
-#if defined(M_XENIX)
-#	define HAVE_PROTOTYPES_H
-#endif
-
-#if defined(AUX) || defined(EPIX) || defined (__hpux) || defined(PTX)
-#	define HAVE_TERMIO_H
-#endif
-
-#if defined(QNX42) || defined(UMAXV)
-#	define HAVE_TERMIOS_H
-#endif
-
-#if defined(_POSIX_SOURCE) || defined(__386BSD__) || defined(DGUX) || \
-    defined(SVR4) || defined(UMAXV) || defined(__NetBSD__)
-#	if !defined(M_OS2)
-#		define HAVE_POSIX_JC
-#	endif
-#endif
-
-#if defined(M_OS2) || defined(SVR4) || defined(M_AMIGA)
-#	define HAVE_LOCALE_H
-#endif
-
-#if defined(SVR4) || defined(M_AMIGA)
-#	define HAVE_SETLOCALE
-#	undef	sinix		/* SNI Sinix (nsc32000) */
-#endif
-
-#if defined(SIGCHLD) || defined(__hpux)
-#	define HAVE_SYS_WAIT_H
-#endif
-
-#if !defined(M_OS2) && !defined(WIN32)
-#	define HAVE_PWD_H
-#endif
-
-#if !defined(M_OS2) && !defined(WIN32) && !defined(VMS)
-#	define HAVE_SYS_PARAM_H
-#endif
-
-#if !defined(gould) && !defined(MACH) && \
-	!defined(mips) && !defined(__NeXT__) && !defined(M_OS2) && \
-	!defined(WIN32) && !defined(M_AMIGA)
-#	define HAVE_UNISTD_H
-#endif
-
-#if !defined(COHERENT) && !defined(MINIX) && \
-    !defined(M_OS2) && !defined(WIN32) && !defined(VMS)
-#	define HAVE_SYS_IOCTL_H
-#endif
-
-#if !defined(BSD) && \
-	!defined(M_OS2) && !defined(sinix) && \
-	!defined(WIN32) && !defined(VMS) && \
-	!defined(M_AMIGA)
-#	define HAVE_SYS_UTSNAME_H
-#endif
-
-#if !defined(EPIX) && !defined(pyr) && \
-    !defined(sequent) && !defined(UTS) && \
-    !defined(u3b2)
-#	define HAVE_STDLIB_H
-#endif
-
-/*
- * prefer <string.h> if we can get it, because it's ANSI
- */
-#if defined(BSD) && !defined(__STDC__)
-#	undef	HAVE_STRCHR
-#	define HAVE_STRINGS_H
-#else
-#	define HAVE_STRING_H
-#endif
-
-#if defined(BSD) || defined(EPIX) || \
-    defined(M_OS2) || defined(__osf__) || defined(UMAXV) || defined(WIN32)
-#	define HAVE_FCNTL_H
-#endif
-
-#if !defined(__hpux)
-#	define HAVE_SYS_STREAM_H
-#endif
-
-#if !defined(COHERENT) && !defined(__hpux) && \
-    !defined(M_OS2) && !defined(QNX42) && !defined(sinix) && \
-    !defined(UMAXV) && !defined(WIN32)
-#	define HAVE_SYS_PTEM_H
-#endif
-
-#if !defined(COHERENT) && !defined(M_OS2) && \
-    !defined(QNX42) && !defined(SCO_UNIX) && !defined(sinix) && \
-    !defined(SVR4) && !defined(WIN32)
-#	define HAVE_SYS_PTY_H
-#	define XWIN	/* stops ISC bitching */
-#endif
-
-#if defined(__386BSD__) || defined(BSD) || \
-    defined(__hpux) || defined(M_OS2) || \
-    defined(__osf__) || defined(sinix) || \
-    defined(UMAXV) || defined(M_AMIGA)
-#	define HAVE_NETDB_H
-#endif
-
-#if defined(M_OS2) || defined(WIN32)
-#	define HAVE_NETLIB_H
-#endif
-
-#if !defined(pyr)
-#	define HAVE_TIME_H
-#endif
-
-#if !defined(M_OS2) && !defined(SCO_UNIX) && !defined(u3b2) && \
-    !defined(WIN32) && !defined(VMS)
-#	define HAVE_SYS_TIME_H
-#endif
-
-#if defined(SCO_UNIX) || defined(u3b2)
-#	define HAVE_SYS_TIMES_H
-#endif
-
-#if !defined(VMS)
-#	define TIME_WITH_SYS_TIME
-#endif
-
-#if defined(PTX) || defined(QNX42) || defined(SCO_UNIX)
-#	define HAVE_SYS_SELECT_H
-#endif
-
-#if defined(COHERENT) || defined(M_OS2) || \
-	defined(QNX42) || defined(WIN32) || defined(VMS)
-#	define HAVE_ERRNO_H
-#endif
-
-#ifdef WIN32
-#define USE_CURSES 1
-#endif
-
-#ifndef VMS
-#define DECL_ERRNO
-#endif
-
-#if defined(__GNUC__) || defined(HAVE_POSIX_JC)
-#	define RETSIGTYPE void
-#else
-#	if defined(sony)
-#		define RETSIGTYPE int
-#	else
-#		if __STDC__ || defined(atthcx) || defined(__hpux) || \
-		   defined(__osf__) || defined(M_OS2) || defined(PTX) || \
-		   defined(sinix) || \
-		   defined(SVR4) || \
-		   defined(u3b2) || defined(ultrix)	|| defined(WIN32)
-#			define RETSIGTYPE void
-#		else
-#			define RETSIGTYPE int
-#		endif
-#	endif
-#endif
-
-#if defined(M_OS2) || defined(SVR4) || \
-	defined(WIN32)
-#	if !defined(HAVE_COMPTYPE_CHAR)
-#		define HAVE_COMPTYPE_VOID
-#	endif
-#else
-#	if !defined(HAVE_COMPTYPE_VOID)
-#		define HAVE_COMPTYPE_CHAR
-#	endif
-#endif
-
-#if !defined(__GNUC__)
-#	define DECL_TGETSTR
-#endif
-
-#undef	DONT_HAVE_TM_GMTOFF
-
-#if defined(AUX) || defined(BSD) || \
-    defined(PTX) || defined(QNX42) || \
-    defined(sinix) || defined(UMAXV) || \
-    defined(WIN32)
-#	define HAVE_LONG_FILE_NAMES
-#endif
-
-#if defined(M_OS2) || defined(sinix) || \
-    defined(UMAXV) || defined(VMS)
-#	define HAVE_GETHOSTBYNAME
-#endif
-
-/*
- * Used in tin.h
- */
-
-#if defined(M_UNIX)
-#	define HAVE_COREFILE
-#endif
-
-#if defined(M_UNIX)
-#	define HAVE_SET_GID_UID
-#endif
-
-#if defined(M_UNIX) && !defined(__386BSD__) && !defined(__NeXT__)
-#	define HAVE_UNAME
-#endif
-
-#if defined(MACH) || defined(__NeXT__) || \
-	defined(M_OS2) || defined(M_AMIGA)
-#	define DONT_HAVE_SIGWINCH
-#endif
-
-#if defined(BSD) || defined(EPIX) && !defined(__386BSD__) && \
-    !defined(sinix)
-#	undef	HAVE_GETCWD
-#endif
-
-#if defined(pyr) || defined(sequent)
-#	undef	HAVE_MEMCMP
-#endif
-
-#if defined(pyr)
-#	undef	HAVE_MEMCPY
-#endif
-
-#if defined(pyr)
-#	undef	HAVE_MEMSET
-#endif
-
-#if (defined(BSD) && defined(sequent))
-#	undef	HAVE_STRTOL
-#endif
-
-#if defined(__arm) || defined(COHERENT) || defined(pyr) || defined(sequent)
-#	undef	HAVE_TZSET
-#endif
-
-/*
- * Used in parsedate.y
- */
-
-#if defined(__arm) || defined(__convex__) || \
-    defined(DGUX) || defined(pyr) || defined(sequent) || !defined(BSD)
-#	define DONT_HAVE_TM_GMTOFF
-#endif
-
-/*
- * Use poll()/select()
- */
-
-#if defined(SVR4) || defined(__hp9000s700) || defined(__hp9000s900) || \
-	defined(HAVE_POLL)
-#	if !defined(__hpux)
-#		define HAVE_STROPTS_H
-#	endif
-#	define HAVE_POLL_H
-#	if !defined(HAVE_POLL)
-#		define HAVE_POLL
-#	endif
-#	undef HAVE_SELECT
-#endif
-
-#if !defined(COHERENT) && !defined(M_OS2) && !defined(supermax) && !defined(u3b2) && \
-    !defined(HAVE_POLL) && !defined(WIN32) && !defined(M_AMIGA)
-#	define HAVE_SELECT
-#endif
-
-#if defined(COHERENT)
-#	define HAVE_SETTZ
-#endif
-
-#if defined(M_UNIX)
-#	define HAVE_FORK
-#endif
-
-#if defined(M_OS2) || defined(SVR4)
-#	define HAVE_STRFTIME
-#endif
-
-#if !defined(M_OS2) && !defined(VMS)
-#	define HAVE_SYS_ERRLIST
-#endif
-
-#if defined(__hpux)
-#	define HAVE_KEYPAD
-#endif
-
-#if defined(sinix)
-#	undef	HAVE_SYS_STREAM_H
-#	undef	HAVE_MKDIR
-#endif
-
-#if defined(QNX42)
-#	define HAVE_TCGETATTR
-#	define HAVE_TCSETATTR
-#endif
-
-#if defined(QNX42) || defined(VMS) || defined(M_AMIGA)
-#	define HAVE_KEY_PREFIX
-#endif
-
-#if defined(M_UNIX) || defined (M_AMIGA)
-#	define HAVE_METAMAIL
-#endif
-
-#if defined(BSD) || defined(__osf__) || defined(_POSIX_SOURCE)
-#	define HAVE_REWINDDIR
-#endif
-
-/*
- * Various hacks used to try and get a compile on the strange ones...
- */
-
-#if defined(u3b2)
-#	define size_t	unsigned long int
-#endif
-
-/*
- * Lets try and be a wise ass and make a nntp able binary
- * for machines where the netlibs are in the libc library
- */
-
-#if defined(BSD)
-#	if !defined(NNTP_ABLE)
-#		define NNTP_ABLE
-#	endif
-#endif
-
-/*
- * UCX (aka TCP/IP services for OpenVMS doesn't implement getservbyname
- */
-
-#define HAVE_GETSERVBYNAME
-#if defined(VMS) && defined(UCX)
-#	undef HAVE_GETSERVBYNAME
-#endif
-
-/*
- * closedir() on Amiga is of return type void
- */
-#ifdef M_AMIGA
-#	define CLOSEDIR_VOID
-#endif /* M_AMIGA */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/plp_snprintf.h tin-2.0.0/include/plp_snprintf.h
--- tin-1.8.3/include/plp_snprintf.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/plp_snprintf.h	2011-04-17 16:04:29.574939469 +0200
@@ -1,6 +1,6 @@
 /*
  * includes/defines/declarations which are already done by tin.h
- * but might be needed if you use plp_snprintf() in other programms
+ * but might be needed if you use plp_snprintf() in other programs
  */
 
 #ifndef PLP_SNPRINTF_H
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/policy.h tin-2.0.0/include/policy.h
--- tin-1.8.3/include/policy.h	2006-08-16 16:28:43.000000000 +0200
+++ tin-2.0.0/include/policy.h	2011-08-10 21:43:06.296381505 +0200
@@ -3,10 +3,10 @@
  *  Module    : policy.h
  *  Author    : Ralf Doeblitz <doeblitz@gmx.de>
  *  Created   : 1999-01-12
- *  Updated   : 2006-08-16
+ *  Updated   : 2011-07-18
  *  Notes     : #defines and static data for policy configuration
  *
- * Copyright (c) 1999-2006 Ralf Doeblitz <doeblitz@gmx.de>
+ * Copyright (c) 1999-2011 Ralf Doeblitz <doeblitz@gmx.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -115,6 +115,7 @@
  * .ke  Kenya                          .kg  Kyrgystan
  * .kh  Cambodia                       .ki  Kiribati
  * .km  Comoros                        .kn  Saint Kitts and Nevis
+ * .kp  Korea, Democratic People's Republic
  * .kr  Korea, Republic of             .kw  Kuwait
  * .ky  Cayman Islands                 .kz  Kazakhstan
  *
@@ -126,16 +127,16 @@
  * .lv  Latvia                         .ly  Libyan Arab Jamahiriya
  *
  * .ma  Morocco                        .mc  Monaco
- * .md  Moldova, Republic of           .mg  Madagascar
- * .mh  Marshall Islands               .mk  Macedonia
- * .ml  Mali                           .mm  Myanmar
- * .mn  Mongolia                       .mo  Macau
- * .mp  Northern Mariana Islands       .mq  Martinique
- * .mr  Mauritania                     .ms  Montserrat
- * .mt  Malta                          .mu  Mauritius
- * .mv  Maldives                       .mw  Malawi
- * .mx  Mexico                         .my  Malaysia
- * .mz  Mozambique
+ * .md  Moldova, Republic of           .me  Montenegro
+ * .mg  Madagascar                     .mh  Marshall Islands
+ * .mk  Macedonia                      .ml  Mali
+ * .mm  Myanmar                        .mn  Mongolia
+ * .mo  Macau                          .mp  Northern Mariana Islands
+ * .mq  Martinique                     .mr  Mauritania
+ * .ms  Montserrat                     .mt  Malta
+ * .mu  Mauritius                      .mv  Maldives
+ * .mw  Malawi                         .mx  Mexico
+ * .my  Malaysia                       .mz  Mozambique
  *
  * .na  Namibia                        .nc  New Caledonia
  * .ne  Niger                          .nf  Norfolk Island
@@ -157,7 +158,8 @@
  * .qa  Qatar
  *
  * .re  Reunion                        .ro  Romania
- * .ru  Russian Federation             .rw  Rwanda
+ * .rs  Republic of Serbia             .ru  Russian Federation
+ * .rw  Rwanda
  *
  * .sa  Saudi Arabia                   .sb  Solomon Islands
  * .sc  Seychelles                     .sd  Sudan
@@ -182,7 +184,6 @@
  *
  * .ua  Ukraine                        .ug  Uganda
  * .uk  United Kingdom
- * .um  United States Minor Outlying Islands
  * .us  United States                  .uy  Uruguay
  * .uz  Uzbekistan
  *
@@ -194,7 +195,6 @@
  * .wf  Wallis and Futuna Islands      .ws  Western Samoa
  *
  * .ye  Yemen                          .yt  Mayotte
- * .yu  Yugoslavia
  *
  * .za  South Africa                   .zm  Zambia
  * .zw  Zimbabwe
@@ -205,7 +205,10 @@
  * .cs  former Czechoslovakia, now .cz and .sk
  * .dd  former German Democratic Republic, now .de
  * .fx  France, Metropolitan
+ * .oz  Australian MHSnet
+ * .um  United States Minor Outlying Islands
  * .yd  Democratic Yemen, now .ye
+ * .yu  Yugoslavia, now .rs and .me
  * .wg  West Bank and Gaza, now .ps
  * .zr  former Zaire, now .cd
  *
@@ -213,22 +216,20 @@
  * .aa, .qm, .qz, .xa, .xz, .zz
  *
  * unused TLDs:
- * .bv  Bouvet Island
+ * .bv  Bouvet Island (Norway)
  * .eh  Western Sahara
- * .kp  Korea, Democratic People's Republic
+ * .gb  United Kingdom, use .uk
  * .nt  Neutral Zone
- * .sj  Svalbard and Jan Mayen Islands
+ * .sj  Svalbard and Jan Mayen Islands (Norway)
  *
  * requested new TLDs:
- * .cs  Serbia and Montenegro
  * .ct  Catalonia
+ * .ss  South Sudan
  *
  * xccTLDs:
- * .gb  United Kingdom, use .uk
  * .hk  Hong Kong, now .cn
  * .su  former USSR, now .ru
  * .tp  former East Timor, now .tl
- * .yu  former Yugoslavia
  */
 
 static char gnksa_country_codes[26*26] = {
@@ -239,25 +240,25 @@ static char gnksa_country_codes[26*26] =
 /* 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,
 /* E */ 0,0,1,0,1, 0,1,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 1,0,0,0,0,0,
 /* F */ 0,0,0,0,0, 0,0,0,1,1, 1,0,1,0,1, 0,0,1,0,0, 0,0,0,0,0,0,
-/* G */ 1,1,0,1,1, 1,1,1,1,0, 0,1,1,1,0, 1,1,1,1,1, 1,0,1,0,1,0,
+/* G */ 1,0,0,1,1, 1,1,1,1,0, 0,1,1,1,0, 1,1,1,1,1, 1,0,1,0,1,0,
 /* H */ 0,0,0,0,0, 0,0,0,0,0, 1,0,1,1,0, 0,0,1,0,1, 1,0,0,0,0,0,
 /* I */ 0,0,0,1,1, 0,0,0,0,0, 0,1,1,1,1, 0,1,1,1,1, 0,0,0,0,0,0,
 /* J */ 0,0,0,0,1, 0,0,0,0,0, 0,0,1,0,1, 1,0,0,0,0, 0,0,0,0,0,0,
-/* K */ 0,0,0,0,1, 0,1,1,1,0, 0,0,1,1,0, 0,0,1,0,0, 0,0,1,0,1,1,
+/* K */ 0,0,0,0,1, 0,1,1,1,0, 0,0,1,1,0, 1,0,1,0,0, 0,0,1,0,1,1,
 /* L */ 1,1,1,0,0, 0,0,0,1,0, 1,0,0,0,0, 0,0,1,1,1, 1,1,0,0,1,0,
-/* M */ 1,0,1,1,0, 0,1,1,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,1,
+/* M */ 1,0,1,1,1, 0,1,1,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1,1,
 /* N */ 1,0,1,0,1, 1,1,0,1,0, 0,1,0,0,1, 1,0,1,0,0, 1,0,0,0,0,1,
 /* O */ 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0,0,
 /* P */ 1,0,0,0,1, 1,1,1,0,0, 1,1,1,1,0, 0,0,1,1,1, 0,0,1,0,1,0,
 /* Q */ 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,0,
-/* R */ 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 1,0,1,0,0,0,
+/* R */ 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,1,0, 1,0,1,0,0,0,
 /* S */ 1,1,1,1,1, 0,1,1,1,0, 1,1,1,1,1, 0,0,1,0,1, 1,1,0,0,1,1,
 /* T */ 0,0,1,1,0, 1,1,1,0,1, 1,1,1,1,1, 1,0,1,0,1, 0,1,1,0,0,1,
-/* U */ 1,0,0,0,0, 0,1,0,0,0, 1,0,1,0,0, 0,0,0,1,0, 0,0,0,0,1,1,
+/* U */ 1,0,0,0,0, 0,1,0,0,0, 1,0,0,0,0, 0,0,0,1,0, 0,0,0,0,1,1,
 /* V */ 1,0,1,0,1, 0,1,0,1,0, 0,0,0,1,0, 0,0,0,0,0, 1,0,0,0,0,0,
 /* W */ 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0,0,
 /* X */ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0,0,
-/* Y */ 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0,0,
+/* Y */ 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0,0,
 /* Z */ 1,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,1,0,0,0
 /*      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 */
 };
@@ -277,8 +278,11 @@ static const char *gnksa_domain_list[] =
 	"net",	/* Networks */
 	"org",	/* Organizations */
 	"pro",	/* Accountants, lawyers, and physicians */
+	"tel",	/* Internet communication */
+	"xxx",	/* For adult entertainment */
 	"aero",	/* Air-transport industry */
 	"arpa",	/* Address and Routing Parameter Area */
+	"asia",	/* Asia and the Pacific */
 	"coop",	/* Non-profit cooperatives */
 	"info",	/* Unrestricted use */
 	"jobs",	/* Human resource managers */
@@ -287,13 +291,14 @@ static const char *gnksa_domain_list[] =
 	"museum",	/* Museums */
 	"travel",	/* Travel industry */
 	/*
-	 * more gTLDs to come >=2006, proposed are:
-	 *  .asia   .mail    .kids  (.berlin)
-	 *  .post   .tel     .xxx   (.sco)
+	 * more gTLDs to come, proposed are:
+	 *  .kids     .mail     .post
+	 *  (.berlin) (.sco)    (.bzh)    (.cym)    (.gal)
 	 */
 #	if 0		/* $DEAD */
 	"nato",
 	"uucp",
+	"csnet",
 	"bitnet",
 #	endif /* 0 */
 	/* the next four are defined in RFC 2606 */
@@ -307,6 +312,57 @@ static const char *gnksa_domain_list[] =
 #	ifdef TINC_DNS
 	"bofh",	/* There Is No Cabal */
 #	endif /* TINC_DNS */
+	/* active IDN ccTLDs */
+	"xn--lgbbat1ad8j",	/* Algeria */
+	"xn--fiqs8s",		/* China, Simplified Chinese */
+	"xn--fiqz9s",		/* China, Traditional Chinese */
+	"xn--wgbh1c",		/* Egypt */
+	"xn--j6w193g",		/* Hong Kong, Han */
+	"xn--45brj9c",		/* India, Bengali */
+	"xn--gecrj9c",		/* India, Gujarati */
+	"xn--h2brj9c",		/* India, Hindi */
+	"xn--s9brj9c",		/* India, Punjabi */
+	"xn--xkc2dl3a5ee0h",	/* India, Tamil */
+	"xn--fpcrj9c3d",	/* India, Telugu */
+	"xn--mgbbh1a71e",	/* India, Urdu */
+	"xn--mgbayh7gpa",	/* Jordan */
+	"xn--3e0b707e",		/* Korea, Republic of */
+	"xn--mgbc0a9azcg",	/* Morocco */
+	"xn--ygbi2ammx",	/* Palestinian Territory */
+	"xn--wgbl6a",		/* Qatar */
+	"xn--p1ai",			/* Russian Federation */
+	"xn--mgberp4a5d4ar",	/* Saudi Arabia */
+	"xn--90a3ac",		/* Serbia */
+	"xn--yfro4i67o",	/* Singapore, Chinese */
+	"xn--clchc0ea0b2g2a9gcd",	/* Singapore, Tamil */
+	"xn--fzc2c9e2c",	/* Sri Lanka, Sinhala */
+	"xn--xkc2al3hye2a",	/* Sri Lanka, Tamil */
+	"xn--ogbpf8fl",		/* Syrian Arab Republic */
+	"xn--kpry57d",		/* Taiwan, Simplified Chinese */
+	"xn--kprw13d",		/* Taiwan, Traditional Chinese */
+	"xn--o3cw4h",		/* Thailand */
+	"xn--pgbs0dh",		/* Tunisia */
+	"xn--mgbaam7a8h",	/* United Arab Emirates */
+#	if 0
+	/* purposed IDN ccTLDs */
+	"xn--54b7fta0cc",	/* Bangladesh */
+	"xn--node",			/* Georgia */
+	"xn--mgba3a4f16a",	/* Iran */
+	"xn--mgb9awbf",		/* Oman */
+	"xn--mgbai9azgqp6j",	/* Pakistan */
+	"xn--j1amh",		/* Ukraine */
+	"xn--mgb2ddes",		/* Yemen */
+#	endif /* 0 */
+#	if 0
+	/* Desired Variant String(s) */
+	"xn--mgba3a4fra",	/* Iran */
+	"xn--mgbai9a5eva00b",	/* Pakistan */
+	"xn--mgberp4a5d4a87g",	/* Saudi Arabia */
+	"xn--mgbqly7c0a67fbc",	/* Saudi Arabia */
+	"xn--mgbqly7cvafr",	/* Saudi Arabia */
+	"xn--mgbtf8fl",		/* Syria */
+	"xn--nnx388a",		/* Taiwan */
+#	endif /* 0 */
 	/* sentinel */
 	""
 };
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/proto.h tin-2.0.0/include/proto.h
--- tin-1.8.3/include/proto.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/proto.h	2011-04-17 17:32:35.295777312 +0200
@@ -3,10 +3,10 @@
  *  Module    : proto.h
  *  Author    : Urs Janssen <urs@tin.org>
  *  Created   :
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-04-17
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1997-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -54,6 +54,7 @@
 /* active.c */
 extern char group_flag(char ch);
 extern int find_newnews_index(const char *cur_newnews_host);
+extern int read_news_active_file(void);
 extern t_bool match_group_list(const char *group, const char *group_list);
 extern t_bool parse_active_line(char *line, long *max, long *min, char *moderated);
 extern t_bool process_bogus(char *name);
@@ -61,9 +62,9 @@ extern t_bool need_reread_active_file(vo
 extern t_bool resync_active_file(void);
 extern void create_save_active_file(void);
 extern void load_newnews_info(char *info);
-extern void read_news_active_file(void);
 
 /* art.c */
+extern int find_artnum(long art);
 extern int global_get_multipart_info(int aindex, MultiPartInfo *setme);
 extern t_bool index_group(struct t_group *group);
 extern void do_update(t_bool catchup);
@@ -72,10 +73,12 @@ extern void make_threads(struct t_group 
 extern void set_article(struct t_article *art);
 extern void show_art_msg(const char *group);
 extern void sort_arts(unsigned /* int */ sort_art_type);
-extern void write_overview(struct t_group *group);
 
 /* attrib.c */
-extern void read_attributes_files(void);
+extern int add_scope(const char *scope);
+extern void assign_attributes_to_groups(void);
+extern void build_news_headers_array(struct t_attribute *scope, t_bool header_to_display);
+extern void read_attributes_file(t_bool global_file);
 extern void write_attributes_file(const char *file);
 
 /* auth.c */
@@ -84,13 +87,12 @@ extern void write_attributes_file(const 
 #endif /* NNTP_ABLE */
 
 /* charset.c */
-extern char *convert_to_printable(char *buf);
-extern char *convert_body2printable(char* buf);
+extern char *convert_to_printable(char *buf, t_bool keep_tab);
 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_iso2asc(char *iso, char **asc_buffer, size_t *max_line_len, int t);
 extern void convert_tex2iso(char *from, char *to);
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	extern wchar_t *wconvert_to_printable(wchar_t *wbuf);
+	extern wchar_t *wconvert_to_printable(wchar_t *wbuf, t_bool keep_tab);
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 /* color.c */
@@ -98,6 +100,9 @@ extern void draw_pager_line(const char *
 #ifdef HAVE_COLOR
 	extern void bcol(int color);
 	extern void fcol(int color);
+#	ifdef USE_CURSES
+		extern void free_color_pair_arrays(void);
+#	endif /* USE_CURSES */
 #endif /* HAVE_COLOR */
 
 /* config.c */
@@ -116,8 +121,8 @@ extern void write_config_file(char *file
 
 /* cook.c */
 extern const char *get_filename(t_param *ptr);
-extern t_bool cook_article(t_bool wrap_lines, t_openartinfo *artinfo, int tabs, int hide_uue);
-extern t_bool expand_ctrl_chars(char **line, int *length, size_t cook_width);
+extern t_bool cook_article(t_bool wrap_lines, t_openartinfo *artinfo, int hide_uue, t_bool show_all_headers);
+extern t_bool expand_ctrl_chars(char **line, size_t *length, size_t lcook_width);
 
 /* curses.c */
 extern OUTC_RETTYPE outchar(OUTC_ARGS);
@@ -125,7 +130,9 @@ extern int InitScreen(void);
 extern int RawState(void);
 extern int ReadCh(void);
 extern int get_arrow_key(int prech);
-extern int get_termcaps(void);
+#if defined(M_UNIX) && !defined(USE_CURSES)
+	extern int get_termcaps(void);
+#endif /* M_UNIX && !USE_CURSES */
 extern void EndInverse(void);
 extern void EndWin(void);
 extern void InitWin(void);
@@ -150,6 +157,9 @@ extern void word_highlight_string(int ro
 	extern void MoveCursor(int row, int col);
 	extern void ScrollScreen(int lines_to_scroll);
 	extern void SetScrollRegion(int topline, int bottomline);
+#	ifdef HAVE_COLOR
+		extern void reset_screen_attr(void);
+#	endif /* HAVE_COLOR */
 #endif /* USE_CURSES */
 #if 0
 	extern void ToggleInverse(void);
@@ -158,29 +168,21 @@ extern void word_highlight_string(int ro
 /* debug.c */
 #ifdef DEBUG
 	extern void debug_delete_files(void);
-	extern void debug_nntp(const char *func, const char *fmt, ...);
+	extern void debug_print_file(const char *fname, const char *fmt, ...);
 	extern void debug_print_active(void);
 	extern void debug_print_arts(void);
+	extern void debug_print_bitmap(struct t_group *group, struct t_article *art);
+	extern void debug_print_comment(const char *comment);
 	extern void debug_print_filters(void);
 	extern void debug_print_header(struct t_article *s);
 	extern void debug_print_malloc(int is_malloc, const char *xfile, int line, size_t size);
-#	ifdef NNTP_ABLE
-		extern void debug_print_nntp_extensions(void);
-#	endif /* NNTP_ABLE */
 #endif /* DEBUG */
-#ifdef DEBUG_NEWSRC
-	extern void debug_print_newsrc(struct t_newsrc *NewSrc, FILE *fp);
-#endif /* DEBUG_NEWSRC */
-#if defined(DEBUG) || defined(DEBUG_NEWSRC)
-	extern void debug_print_bitmap(struct t_group *group, struct t_article *art);
-	extern void debug_print_comment(const char *comment);
-#endif /* DEBUG || DEBUG_NEWSRC */
 
 /* envarg.c */
 extern void envargs(int *Pargc, char ***Pargv, const char *envstr);
 
 /* feed.c */
-extern void feed_articles(int function, int level, struct t_group *group, int respnum);
+extern int feed_articles(int function, int level, t_function type, struct t_group *group, int respnum);
 
 /* filter.c */
 extern t_bool filter_articles(struct t_group *group);
@@ -190,7 +192,7 @@ extern t_bool quick_filter_select_posted
 extern t_bool read_filter_file(const char *file);
 extern void free_filter_array(struct t_filters *ptr);
 extern void refresh_filter_menu(void);
-extern void unfilter_articles(void);
+extern void unfilter_articles(struct t_group *group);
 extern void write_filter_file(const char *filename);
 
 /* getline.c */
@@ -212,8 +214,8 @@ extern void scroll_up(void);
 extern void set_first_screen_item(void);
 
 /* group.c */
-extern int find_new_pos(int old_top, long old_artnum, int cur_pos);
 extern int group_page(struct t_group *group);
+extern t_bool group_mark_postprocess(int function, t_function feed_type, int respnum);
 extern void clear_note_area(void);
 extern void mark_screen(int screen_row, int screen_col, const char *value);
 extern void pos_first_unread_thread(void);
@@ -246,11 +248,14 @@ extern void get_user_info(char *user_nam
 extern void init_selfinfo(void);
 extern void postinit_regexp(void);
 #ifdef HAVE_COLOR
-	extern void postinit_colors(void);
+	extern void postinit_colors(int last_color);
 #endif /* HAVE_COLOR */
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	extern t_bool utf8_pcre(void);
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 /* joinpath.c */
-extern void joinpath(char *result, const char *dir, const char *file);
+extern void joinpath(char *result, size_t result_size, const char *dir, const char *file);
 
 /* keymap.c */
 extern t_bool read_keymap_file(void);
@@ -264,9 +269,9 @@ extern void setup_default_keys(void);
 
 /* list.c */
 extern char *random_organization(char *in_org);
-extern int find_group_index(const char *group);
+extern int find_group_index(const char *group, t_bool ignore_case);
 extern struct t_group *group_add(const char *group);
-extern struct t_group *group_find(const char *group_name);
+extern struct t_group *group_find(const char *group_name, t_bool ignore_case);
 extern unsigned long hash_groupname(const char *group);
 extern void group_rehash(t_bool yanked_out);
 extern void init_group_hash(void);
@@ -303,12 +308,12 @@ extern void expand_active(void);
 extern void expand_art(void);
 extern void expand_newnews(void);
 extern void expand_save(void);
+extern void expand_scope(void);
 extern void init_alloc(void);
 extern void free_all_arrays(void);
 extern void free_art_array(void);
-extern void free_attributes_array(void);
-extern void free_if_not_default(char **attrib, char *deflt);
 extern void free_save_array(void);
+extern void free_scope(int num);
 extern void *my_malloc1(const char *file, int line, size_t size);
 extern void *my_calloc1(const char *file, int line, size_t nmemb, size_t size);
 extern void *my_realloc1(const char *file, int line, void *p, size_t size);
@@ -336,11 +341,10 @@ extern int gnksa_split_from(const char *
 extern int get_initials(int respnum, char *s, int maxsize);
 extern int gnksa_do_check_from(const char *from, char *address, char *realname);
 extern int my_chdir(char *path);
-extern int my_isprint(int c);
 extern int my_mkdir(char *path, mode_t mode);
 extern int parse_from(const char *from, char *address, char *realname);
 extern int strfmailer(const char *mail_prog, char *subject, char *to, const char *filename, char *dest, size_t maxsize, const char *format);
-extern int strfpath(const char *format, char *str, size_t maxsize, struct t_group *group);
+extern int strfpath(const char *format, char *str, size_t maxsize, struct t_group *group, t_bool expand_all);
 extern int strfquote(const char *group, int respnum, char *s, size_t maxsize, char *format);
 extern int tin_version_info(FILE *fp);
 extern long file_mtime(const char *file);
@@ -348,11 +352,11 @@ extern long file_size(const char *file);
 extern t_bool backup_file(const char *filename, const char *backupname);
 extern t_bool copy_fp(FILE *fp_ip, FILE *fp_op);
 extern t_bool invoke_cmd(const char *nam);
-extern t_bool invoke_editor(const char *filename, int lineno);
+extern t_bool invoke_editor(const char *filename, int lineno, struct t_group *group);
 extern t_bool mail_check(void);
 extern void append_file(char *old_filename, char *new_filename);
 extern void asfail(const char *file, int line, const char *cond);
-extern void base_name(const char *fullpath, char *program);
+extern void base_name(const char *fullpath, char *file);
 extern void cleanup_tmp_files(void);
 extern void copy_body(FILE *fp_ip, FILE *fp_op, char *prefix, char *initl, t_bool raw_data);
 extern void create_index_lock_file(char *the_lock_file);
@@ -361,9 +365,9 @@ extern void draw_mark_selected(int i);
 extern void draw_percent_mark(long cur_num, long max_num);
 extern void get_author(t_bool thread, struct t_article *art, char *str, size_t len);
 extern void get_cwd(char *buf);
-extern void make_base_group_path(const char *base_dir, const char *group_name, char *group_path);
+extern void make_base_group_path(const char *base_dir, const char *group_name, char *group_path, size_t group_path_len);
 extern void make_group_path(const char *name, char *path);
-extern void process_charsets(char **line, int *max_line_len, const char *network_charset, const char *local_charset, t_bool conv_tex2iso);
+extern void process_charsets(char **line, size_t *max_line_len, const char *network_charset, const char *local_charset, t_bool conv_tex2iso);
 extern void read_input_history_file(void);
 extern void rename_file(const char *old_filename, const char *new_filename);
 extern void show_inverse_video_status(void);
@@ -373,6 +377,9 @@ extern void toggle_inverse_video(void);
 #if defined(CHARSET_CONVERSION) || (defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE))
 	extern char *utf8_valid(char *line);
 #endif /* CHARSET_CONVERSION || (MULTIBYTE_ABLE && !NO_LOCALE) */
+#if defined(NO_LOCALE) || !defined(MULTIBYTE_ABLE)
+	extern int my_isprint(int c);
+#endif /* NO_LOCALE || !MULTIBYTE_ABLE */
 #ifdef CHARSET_CONVERSION
 	extern t_bool buffer_to_network(char *line, int mmnwcharset);
 #endif /* CHARSET_CONVERSION */
@@ -403,40 +410,38 @@ extern void delete_group(char *group);
 extern void expand_bitmap(struct t_group *group, long min);
 extern void grp_mark_read(struct t_group *group, struct t_article *art);
 extern void grp_mark_unread(struct t_group *group);
-extern void parse_unread_arts(struct t_group *group);
+extern void parse_unread_arts(struct t_group *group, long min);
 extern void reset_newsrc(void);
 extern void subscribe(struct t_group *group, int sub_state, t_bool get_info);
 extern void thd_mark_read(struct t_group *group, long thread);
 extern void thd_mark_unread(struct t_group *group, long thread);
 extern void set_default_bitmap(struct t_group *group);
-#ifdef DEBUG_NEWSRC
-#	if 0
-	extern void newsrc_test_harness(void);
-#	endif /* 0 */
-#endif /* DEBUG_NEWSRC */
 
 /* nntplib.c */
 extern FILE *get_nntp_fp(FILE *fp);
-extern FILE *get_nntp_wr_fp(FILE *fp);
+/* extern FILE *get_nntp_wr_fp(FILE *fp); */
 extern char *getserverbyfile(const char *file);
-extern char *get_server(char *string, int size);
-extern int get_respcode(char *, size_t);
-extern int get_only_respcode(char *, size_t);
 extern int nntp_open(void);
 extern void nntp_close(void);
-extern void put_server(const char *string);
-extern void u_put_server(const char *string);
 #ifdef NNTP_ABLE
 	extern FILE *nntp_command(const char *, int, char *, size_t);
+	extern char *get_server(char *string, int size);
+	extern int get_respcode(char *, size_t);
+	extern int get_only_respcode(char *, size_t);
+	extern int new_nntp_command(const char *command, int success, char *message, size_t mlen);
+	extern void put_server(const char *string);
+	extern void u_put_server(const char *string);
 #endif /* NNTP_ABLE */
 
 /* nrctbl.c */
-extern int get_newsrcname(char *newsrc_name, const char *nntpserver_name);
-extern void get_nntpserver(char *nntpserver_name, char *nick_name);
+extern t_bool get_newsrcname(char *newsrc_name, size_t newsrc_name_len, const char *nntpserver_name);
+#ifdef NNTP_ABLE
+	extern void get_nntpserver(char *nntpserver_name, size_t nntpserver_name_len, char *nick_name);
+#endif /* NNTP_ABLE */
 
 /* 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 config_page(const char *grpname);
 extern int option_row(enum option_enum option);
 extern t_bool option_is_visible(enum option_enum option);
 extern void check_score_defaults(void);
@@ -444,7 +449,7 @@ extern void refresh_config_page(enum opt
 extern void show_menu_help(const char *help_message);
 
 /* page.c */
-extern int show_page(struct t_group *group, int respnum, int *threadnum);
+extern int show_page(struct t_group *group, int start_respnum, int *threadnum);
 extern void display_info_page(int part);
 extern void draw_page(const char *group, int part);
 extern void info_pager(FILE *info_fh, const char *title, t_bool wrap_at_ends);
@@ -471,7 +476,8 @@ extern time_t parsedate(char *p, TIMEINF
 #endif /* !HAVE_VSNPRINTF */
 
 /* post.c */
-extern char *checknadd_headers(const char *infile);
+extern char *backup_article_name(const char *the_article);
+extern char *checknadd_headers(const char *infile, struct t_group *group);
 extern int count_postponed_articles(void);
 extern int mail_to_author(const char *group, int respnum, t_bool copy_text, t_bool with_headers, t_bool raw_data);
 extern int mail_to_someone(const char *address, t_bool confirm_to_mail, t_openartinfo *artinfo, const struct t_group *group);
@@ -485,8 +491,9 @@ extern t_bool reread_active_after_postin
 extern t_bool user_posted_messages(void);
 extern void init_postinfo(void);
 extern void quick_post_article(t_bool postponed_only);
+extern void refresh_post_screen(int context);
 #ifdef USE_CANLOCK
-	extern const char *build_canlock(const char *messageid, const char *secret);
+	extern char *build_canlock(const char *messageid, const char *secret);
 	extern char *get_secret(void);
 #endif /* USE_CANLOCK */
 
@@ -506,6 +513,7 @@ extern t_bool prompt_option_string(enum 
 extern t_bool prompt_string(const char *prompt, char *buf, int which_hist);
 extern void prompt_continue(void);
 extern void prompt_slk_redraw(void);
+extern void prompt_yn_redraw(void);
 
 /* read.c */
 extern char *tin_fgets(FILE *fp, t_bool header);
@@ -532,14 +540,14 @@ extern t_mailcap *get_mailcap_entry(t_pa
 extern void free_mailcap(t_mailcap *tmailcap);
 
 /* rfc2045.c */
-extern int read_decoded_base64_line(FILE *file, char **line, int *max_line_len, const int max_lines_to_read, char **rest);
-extern int read_decoded_qp_line(FILE *file, char **line, int *max_line_len, const int max_lines_to_read);
+extern int read_decoded_base64_line(FILE *file, char **line, size_t *max_line_len, const int max_lines_to_read, char **rest);
+extern int read_decoded_qp_line(FILE *file, char **line, size_t *max_line_len, const int max_lines_to_read);
 extern void rfc1521_encode(char *line, FILE *f, int e);
 
 /* rfc2046.c */
 extern FILE *open_art_fp(struct t_group *group, long art);
 extern const char *get_param(t_param *list, const char *name);
-extern char *parse_header(char *buf, const char *pat, t_bool decode, t_bool structured);
+extern char *parse_header(char *buf, const char *pat, t_bool decode, t_bool structured, t_bool keep_tab);
 extern int art_open(t_bool wrap_lines, struct t_article *art, struct t_group *group, t_openartinfo *artinfo, t_bool show_progress_meter, char *pmesg);
 extern int content_type(char *type);
 extern int parse_rfc822_headers(struct t_header *hdr, FILE *from, FILE *to);
@@ -561,11 +569,13 @@ 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 post_process_files(t_function proc_type_func, 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 t_part *get_part(int n);
+extern t_url *find_url(int n);
+extern void attachment_page(t_openartinfo *art);
 extern void decode_save_mime(t_openartinfo *art, t_bool postproc);
-extern void print_art_seperator_line(FILE *fp, t_bool is_mailbox);
+extern void print_art_separator_line(FILE *fp, t_bool is_mailbox);
 
 /* screen.c */
 extern char *fmt_message(const char *fmt, va_list ap);
@@ -573,7 +583,7 @@ extern void center_line(int line, t_bool
 extern void clear_message(void);
 extern void draw_arrow_mark(int line);
 extern void erase_arrow(void);
-extern void error_message(const char *fmt, ...);
+extern void error_message(unsigned int sdelay, const char *fmt, ...);
 extern void info_message(const char *fmt, ...);
 extern void perror_message(const char *fmt, ...);
 extern void ring_bell(void);
@@ -590,10 +600,11 @@ extern int search(t_function func, int c
 extern int search_active(t_bool forward, t_bool repeat);
 extern int search_article(t_bool forward, t_bool repeat, int start_line, int lines, t_lineinfo *line, int reveal_ctrl_l_lines, FILE *fp);
 extern int search_body(struct t_group *group, int current_art, t_bool repeat);
+extern int generic_search(t_bool forward, t_bool repeat, int current, int last, int level);
 extern void reset_srch_offsets(void);
 
 /* select.c */
-extern int add_my_group(const char *group, t_bool add);
+extern int add_my_group(const char *group, t_bool add, t_bool ignore_case);
 extern int choose_new_group(void);
 extern int skip_newgroups(void);
 extern void selection_page(int start_groupnum, int num_cmd_line_groups);
@@ -601,7 +612,7 @@ extern void show_selection_page(void);
 extern void toggle_my_groups(const char *group);
 
 /* sigfile.c */
-extern void msg_write_signature(FILE *fp, t_bool flag, struct t_group *thisgroup);
+extern void msg_write_signature(FILE *fp, t_bool include_dot_signature, struct t_group *thisgroup);
 
 /* signal.c */
 extern RETSIGTYPE(*sigdisp (int signum, RETSIGTYPE (*func)(SIG_ARGS))) (SIG_ARGS);
@@ -624,6 +635,7 @@ extern char *strunc(const char *message,
 extern char *tin_ltoa(long value, int digits);
 extern char *tin_strtok(char *str, const char *delim);
 extern int sh_format(char *dst, size_t len, const char *fmt, ...);
+extern int strwidth(const char *str);
 extern size_t mystrcat(char **t, const char *s);
 extern void my_strncpy(char *p, const char *q, size_t n);
 extern void str_lwr(char *str);
@@ -663,11 +675,16 @@ extern void str_lwr(char *str);
 #	define strrstr(s,p)	my_strrstr(s,p)
 #endif /* !HAVE_STRRSTR */
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	extern char *spart(const char *str, int columns, t_bool pad);
 	extern char *wchar_t2char(const wchar_t *wstr);
+	extern wchar_t *abbr_wcsgroupname(const wchar_t *grpname, int len);
 	extern wchar_t *char2wchar_t(const char *str);
 	extern wchar_t *wcspart(const wchar_t *wstr, int columns, t_bool pad);
+	extern wchar_t *wexpand_tab(wchar_t *wstr, size_t tab_width);
 	extern wchar_t *wstrunc(const wchar_t *wmessage, int len);
-	extern wchar_t *my_wcsdup(const wchar_t *wstr);
+#else
+	extern char *abbr_groupname(const char *grpname, size_t len);
+	extern char *expand_tab(char *str, size_t tab_width);
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
 	extern char *render_bidi(const char *str, t_bool *is_rtl);
@@ -678,10 +695,8 @@ extern void str_lwr(char *str);
 
 /* tags.c */
 extern int line_is_tagged(int n);
-extern int mark_tagged_read(struct t_group *group);
 extern int tag_multipart(int base_index);
 extern t_bool arts_selected(void);
-extern t_bool got_tagged_unread_arts(void);
 extern t_bool set_range(int level, int min, int max, int curr);
 extern t_bool tag_article(int art);
 extern t_bool untag_all_articles(void);
@@ -712,11 +727,12 @@ extern int stat_thread(int n, struct t_a
 extern int which_response(int n);
 extern int which_thread(int n);
 extern int thread_page(struct t_group *group, int respnum, int thread_depth, t_pagerinfo *page);
+extern t_bool thread_mark_postprocess(int function, t_function feed_type, int respnum);
 extern void fixup_thread(int respnum, t_bool redraw);
 
 /* version.c */
-extern int check_upgrade(char *line, const char *skip, const char *version);
-extern void upgrade_prompt_quit(int reason, const char *file);
+extern enum rc_state check_upgrade(char *line, const char *skip, const char *version);
+extern void upgrade_prompt_quit(enum rc_state reason, const char *file);
 
 /* wildmat.c */
 extern t_bool wildmat(const char *text, char *p, t_bool icase);
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/rfc2046.h tin-2.0.0/include/rfc2046.h
--- tin-1.8.3/include/rfc2046.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/rfc2046.h	2011-04-17 16:04:29.626947384 +0200
@@ -3,10 +3,10 @@
  *  Module    : rfc2046.h
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 2000-02-18
- *  Updated   : 2003-05-06
+ *  Updated   : 2010-09-26
  *  Notes     : rfc2046 MIME article definitions
  *
- * Copyright (c) 2000-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 2000-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,13 +42,15 @@
 
 /* These must track the array definitions in lang.c */
 #	define NUM_CONTENT_TYPES	7
-#	define NUM_ENCODINGS		6
-
 #	define TYPE_TEXT			0
 #	define TYPE_MULTIPART		1
 #	define TYPE_APPLICATION		2
 #	define TYPE_MESSAGE			3
+#	define TYPE_IMAGE			4
+#	define TYPE_AUDIO			5
+#	define TYPE_VIDEO			6
 
+#	define NUM_ENCODINGS		6
 #	define ENCODING_7BIT		0
 #	define ENCODING_QP			1
 #	define ENCODING_BASE64		2
@@ -99,6 +101,18 @@ typedef struct part
 
 
 /*
+ * Used in save.c to build a list of attachments to be displayed
+ *
+ * TODO: move somewhere else?
+ */
+typedef struct partlist {
+	t_part *part;
+	struct partlist *next;
+	int tagged;
+} t_partl;
+
+
+/*
  * RFC822 compliant header with RFC2045 MIME extensions
  */
 struct t_header
@@ -127,21 +141,22 @@ struct t_header
 
 /* flags for lineinfo.flags */
 /* Primary colours */
-#	define C_HEADER		0x001
-#	define C_BODY		0x002
-#	define C_SIG		0x004
-#	define C_ATTACH		0x008
-#	define C_UUE		0x010
+#	define C_HEADER		0x0001
+#	define C_BODY		0x0002
+#	define C_SIG		0x0004
+#	define C_ATTACH		0x0008
+#	define C_UUE		0x0010
 
 /* Secondary flags */
-#	define C_QUOTE1	0x020
-#	define C_QUOTE2	0x040
-#	define C_QUOTE3	0x080
-
-#	define C_URL		0x100	/* Contains http|ftp|gopher: */
-#	define C_MAIL		0x200	/* Contains mailto: */
-#	define C_NEWS		0x400	/* Contains news|nntp: */
-#	define C_CTRLL		0x800	/* Contains ^L */
+#	define C_QUOTE1	0x0020
+#	define C_QUOTE2	0x0040
+#	define C_QUOTE3	0x0080
+
+#	define C_URL		0x0100	/* Contains http|ftp|gopher: */
+#	define C_MAIL		0x0200	/* Contains mailto: */
+#	define C_NEWS		0x0400	/* Contains news|nntp: */
+#	define C_CTRLL		0x0800	/* Contains ^L */
+#	define C_VERBATIM	0x1000	/* Verbatim block */
 
 
 typedef struct lineinfo
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/stpwatch.h tin-2.0.0/include/stpwatch.h
--- tin-1.8.3/include/stpwatch.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/stpwatch.h	2011-04-17 16:04:29.658952255 +0200
@@ -3,11 +3,11 @@
  *  Module    : stpwatch.h
  *  Author    : I. Lea
  *  Created   : 1993-08-03
- *  Updated   : 1997-04-05
+ *  Updated   : 2008-11-22
  *  Notes     : Simple stopwatch routines for timing code using timeb
  *	             or gettimeofday structs
  *
- * Copyright (c) 1993-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1993-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -60,7 +60,7 @@ struct timeb end_tb;
 				 end_tb.time, end_tb.millitm, \
 				 (((end_tb.time - LSECS) * 1000) + end_tb.millitm) - \
 				 (((beg_tb.time - LSECS) * 1000) + beg_tb.millitm)); \
-				 error_message (tmp_tb, "");}
+				 error_message(2, tmp_tb, "");}
 
 #		else	/* HAVE_SYS_TIMEB_H && HAVE_FTIME */
 
@@ -83,7 +83,7 @@ float d_time;
 				 d_time = (end_tb.tv_sec*1000.0 + ((float)end_tb.tv_usec)/1000.0);}
 
 #			define PrintStopWatch()	{sprintf (tmp_tb, "StopWatch(%s): %6.3f ms", msg_tb, d_time); \
-				 error_message (tmp_tb, "");}
+				 error_message(2, tmp_tb, "");}
 
 #		endif /* HAVE_SYS_TIME_H */
 #	endif /* HAVE_SYS_TIMEB_H && HAVE_FTIME */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/tcurses.h tin-2.0.0/include/tcurses.h
--- tin-1.8.3/include/tcurses.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/tcurses.h	2011-04-17 16:04:29.710960170 +0200
@@ -3,10 +3,10 @@
  *  Module    : tcurses.h
  *  Author    : Thomas Dickey
  *  Created   : 1997-03-02
- *  Updated   : 2004-07-19
+ *  Updated   : 2011-04-02
  *  Notes     : curses #include files, #defines & struct's
  *
- * Copyright (c) 1997-2006 Thomas Dickey <dickey@invisible-island.net>
+ * Copyright (c) 1997-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -95,6 +95,7 @@
 #		define HpGlitch(func)			/*nothing*/
 
 extern int cmdReadCh(void);
+extern int cmd_get_arrow_key(int prech);
 extern char *screen_contents(int row, int col, char *buffer);
 extern void MoveCursor(int row, int col);
 extern void my_erase(void);
@@ -110,15 +111,18 @@ extern void my_fputs(const char *str, FI
 extern void my_fprintf(FILE *stream, const char *fmt, ...)
 #		if defined(__GNUC__) && !defined(printf)
 	__attribute__((format(printf,2,3)))
-#		endif /* __GNUC__ */
+#		endif /* __GNUC__ && !printf */
 	;
 extern void my_printf(const char *fmt, ...)
 #		if defined(__GNUC__) && !defined(printf)
 	__attribute__((format(printf,1,2)))
-#		endif /* __GNUC__ */
+#		endif /* __GNUC__ && !printf */
 	;
 extern void my_retouch(void);
-extern void refresh_color(void);
+#		ifdef HAVE_COLOR
+	extern void refresh_color(void);
+	extern void reset_color(void);
+#		endif /* HAVE_COLOR */
 extern void write_line(int row, char *buffer);
 
 #	else	/* !USE_CURSES */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/tin.h tin-2.0.0/include/tin.h
--- tin-1.8.3/include/tin.h	2006-06-20 15:43:45.000000000 +0200
+++ tin-2.0.0/include/tin.h	2011-08-07 01:33:09.388668319 +0200
@@ -3,10 +3,10 @@
  *  Module    : tin.h
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2006-01-10
+ *  Updated   : 2011-08-07
  *  Notes     : #include files, #defines & struct's
  *
- * Copyright (c) 1997-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1997-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -47,9 +47,7 @@
 #		include	<autoconf.h>	/* FIXME: normally we use 'config.h' */
 #	endif /* !TIN_AUTOCONF_H */
 #else
-#	ifndef HAVE_CONFDEFS_H
-#		include	"oldconfig.h"
-#	endif /* !HAVE_CONFDEFS_H */
+#	error "configure run missing"
 #endif /* HAVE_CONFIG_H */
 
 
@@ -99,67 +97,11 @@
 
 #include	<signal.h>
 
-enum context { cMain, cArt, cConfig, cFilter, cGroup, cHelp, cInfopager, cPage, cSelect, cThread };
-enum icontext { cNone, cGetline, cPromptSLK };
+enum context { cMain, cArt, cAttachment, cAttrib, cConfig, cFilter, cGroup, cHelp, cInfopager, cPage, cPost, cPostCancel, cPostFup, cReconnect, cScope, cSelect, cThread, cURL };
+enum icontext { cNone, cGetline, cPromptCONT, cPromptSLK, cPromptYN };
 enum resizer { cNo, cYes, cRedraw };
 enum rc_state { RC_IGNORE, RC_CHECK, RC_UPGRADE, RC_DOWNGRADE, RC_ERROR };
 
-#ifdef VMS
-#	ifdef __DECC
-#		include <unixio.h>
-#	else
-#		ifndef __VMS_VER	/* assume old types.h */
-			typedef unsigned short mode_t;
-#			undef HAVE_STRFTIME
-#		endif /* !__VMS_VER */
-#		include <stdio.h>
-#	endif /* __DECC */
-#	ifdef SOCKETSHR_TCP
-#		include <socketshr.h>
-#		include <unistd.h>
-#		ifndef SOCKETSHR_HAVE_DUP
-#			define dup
-#		endif /* !SOCKETSHR_HAVE_DUP */
-#		ifndef SOCKETSHR_HAVE_FERROR
-#			define ferror(a) (0)
-#		endif /* !SOCKETSHR_HAVE_FERROR */
-#	endif /* SOCKETSHR_TCP */
-#	include <curses.h>
-#	include <stat.h>
-#	undef HAVE_SELECT
-#	define XHDR_XREF	/* enable crosspost support */
-#	define CASE_PROBLEM
-#	define HAVE_ERRNO_H
-#	define NNTP_ONLY
-#	define NNTP_INEWS
-#	define DONT_HAVE_PIPING
-#	define NO_SHELL_ESCAPE
-#	define USE_CLEARSCREEN
-#	ifndef MM_CHARSET
-#		define MM_CHARSET "ISO-8859-1"
-#	endif /* !MM_CHARSET */
-	/*
-	 * Apparently this means fileops=create if not already there - no idea
-	 * why this should be needed. Standard fopen() implies this in arg 2
-	 */
-	extern char *get_uaf_fullname();
-#	ifdef MULTINET
-#		include "MULTINET_ROOT:[MULTINET.INCLUDE.SYS]TYPES.H"
-#		include "MULTINET_ROOT:[MULTINET.INCLUDE.SYS]TIME.H"
-#	else
-#		include "select.h"
-#		ifdef VAXC
-#			include "vmstimval.h"
-#		endif /* VAXC */
-#		include <types.h>
-#	endif /* !MULTINET */
-#	define FOPEN_OPTS		, "fop=cif"
-#	define JOINPATH		joindir
-#else
-#	define FOPEN_OPTS
-#	define JOINPATH		joinpath
-#endif /* VMS */
-
 #include <stdio.h>
 #ifdef HAVE_ERRNO_H
 #	include	<errno.h>
@@ -346,32 +288,21 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 /*
  * Directory handling code
  */
-#ifdef HAVE_CONFIG_H
-#	ifdef HAVE_DIRENT_H
-#		include <dirent.h>
-#		define DIR_BUF	struct dirent
-#	else
-#		ifdef HAVE_SYS_DIR_H
-#			include <sys/dir.h>
-#		endif /* HAVE_SYS_DIR_H */
-#		ifdef HAVE_SYS_NDIR_H
-#			include <sys/ndir.h>
-#		endif /* HAVE_SYS_NDIR_H */
-#		define DIR_BUF	struct direct
-#	endif /* HAVE_DIRENT_H */
+#ifdef HAVE_DIRENT_H
+#	include <dirent.h>
 #else
-#	ifdef M_XENIX
+#	ifdef HAVE_SYS_NDIR_H
 #		include <sys/ndir.h>
-#		define DIR_BUF	struct direct
-#	endif /* M_XENIX */
-#	ifdef VMS
-#		include "ndir.h"
-#		define DIR_BUF	struct direct
-#	endif /* VMS */
-#endif /* !HAVE_CONFIG_H */
+#	endif /* HAVE_SYS_NDIR_H */
+#	ifdef HAVE_SYS_DIR_H
+#		include <sys/dir.h>
+#	endif /* HAVE_SYS_DIR_H */
+#	if HAVE_NDIR_H
+#		include <ndir.h>
+#	endif /* HAVE_NDIR_H */
+#endif /* HAVE_DIRENT_H */
 
 #ifndef DIR_BUF
-#	include <dirent.h>
 #	define DIR_BUF	struct dirent
 #endif /* !DIR_BUF */
 
@@ -406,7 +337,7 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 
 /*
  * any pgp/gpp support possible and wanted
- * sort out possible conflicts: gpg is prefered over pgp5 over pgp
+ * sort out possible conflicts: gpg is preferred over pgp5 over pgp
  */
 #if defined(HAVE_PGP) || defined(HAVE_PGPK) || defined(HAVE_GPG)
 #	define HAVE_PGP_GPG 1
@@ -421,6 +352,12 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #	endif /* HAVE_PGP && HAVE_GPG */
 #endif /* HAVE_PGP || HAVE_PGPK || HAVE_GPG */
 
+/*
+ * slrnface requires some things
+ */
+#if defined(HAVE_SLRNFACE) && defined(HAVE_MKFIFO) && defined(HAVE_FORK) && defined(HAVE_EXECLP) && defined(HAVE_WAITPID) && !defined(DONT_HAVE_PIPING) && !defined(X_DISPLAY_MISSING)
+#	define XFACE_ABLE
+#endif /* HAVE_SLRNFACE && HAVE_MKFIFO && HAVE_FORK && HAVE_EXECLP && HAVE_WAITPID && !DONT_HAVE_PIPING && !X_DISPLAY_MISSING */
 
 /*
  * Setup support for reading from NNTP
@@ -455,39 +392,6 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #define VT_ESCAPE_TIMEOUT	1
 
 /*
- * Specify News spool & control directories if not running NNTP_ONLY
- * (on machines who can run configure this is not needed)
- */
-#ifndef HAVE_CONFIG_H
-#	ifndef NNTP_ONLY
-#		ifndef SPOOLDIR
-#			ifdef VMS
-#				define SPOOLDIR	"NEWSSPOOL:[000000]"
-#			else
-#				define SPOOLDIR	"/var/spool/news"
-#			endif /* VMS */
-#		endif /* !SPOOLDIR */
-#		ifndef NEWSLIBDIR
-#			ifdef VMS
-#				define NEWSLIBDIR	"NEWSLIB:[000000]"
-#			else
-#				define NEWSLIBDIR	"/usr/lib/news"
-#			endif /* VMS */
-#		endif /* !NEWSLIBDIR */
-#		ifndef NOVROOTDIR
-#			define NOVROOTDIR	SPOOLDIR
-#		endif /* !NOVROOTDIR */
-#		ifndef INEWSDIR
-#			define INEWSDIR	NEWSLIBDIR
-#		endif /* INEWSDIR */
-#	else
-#		undef	SPOOLDIR
-#		undef	NEWSLIBDIR
-#		undef	NOVROOTDIR
-#	endif /* !NNTP_ONLY */
-#endif /* !HAVE_CONFIG_H */
-
-/*
  * Determine machine configuration for external programs & directories
  */
 #if defined(BSD)
@@ -515,8 +419,10 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #	endif /* !HAVE_MEMSET */
 #	ifndef HAVE_STRCHR
 #		define strchr(str, ch)	index(str, ch)
-#		define strrchr(str, ch)	rindex(str, ch)
 #	endif /* !HAVE_STRCHR */
+#	ifndef HAVE_STRRCHR
+#		define strrchr(str, ch)	rindex(str, ch)
+#	endif /* !HAVE_STRRCHR */
 #	if defined(__386BSD__) || defined(__bsdi__) || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__)
 #		define DEFAULT_PRINTER	"/usr/bin/lpr"
 #		define DEFAULT_SUM	"/usr/bin/cksum -o 1 <" /* use tailing <, otherwise get filename output too */
@@ -534,15 +440,6 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #	ifdef linux
 #		define DEFAULT_PRINTER	"/usr/bin/lpr"
 #	endif /* linux */
-#	ifdef VMS
-#		define DEFAULT_EDITOR	"EDIT/TPU"
-#		define DEFAULT_MAILBOX	"SYS$LOGIN:"
-#		define DEFAULT_MAILER	"MAIL"
-#		define MAILER_FORMAT	"MAIL /SUBJECT=\"%S\" %F MX%%\"%T\""
-#		define DEFAULT_POSTER	"inews %s."
-#		define DEFAULT_PRINTER	"PRINT/DELETE"
-#		define DEFAULT_UNSHAR	"unshar %s."
-#	endif /* VMS */
 #	ifdef QNX42
 #		ifndef DEFAULT_EDITOR
 #			define DEFAULT_EDITOR	"/bin/vedit"
@@ -642,18 +539,13 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #endif /* SMALL_MEMORY_MACHINE */
 #define DEFAULT_ACTIVE_NUM	1800
 #define DEFAULT_NEWNEWS_NUM	5
+#define DEFAULT_MAPKEYS_NUM 100	/* ~remappable keys per level (avoid massiv reallocs) */
+#define DEFAULT_SCOPE_NUM	8
 
-#ifdef VMS
-#	define RCDIR	"TIN"
-#	define INDEX_MAILDIR	"MAILIDX"
-#	define INDEX_NEWSDIR	"INDEX"
-#	define INDEX_SAVEDIR	"SAVE"
-#else
-#	define RCDIR	".tin"
-#	define INDEX_MAILDIR	".mail"
-#	define INDEX_NEWSDIR	".news"
-#	define INDEX_SAVEDIR	".save"
-#endif /* VMS */
+#define RCDIR	".tin"
+#define INDEX_MAILDIR	".mail"
+#define INDEX_NEWSDIR	".news"
+#define INDEX_SAVEDIR	".save"
 
 #define ACTIVE_FILE	"active"
 #define ACTIVE_MAIL_FILE	"active.mail"
@@ -664,12 +556,12 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #define SERVERCONFIG_FILE	"serverrc"
 #define DEFAULT_MAILDIR	"Mail"
 #define DEFAULT_SAVEDIR	"News"
-#define DEFAULT_URL_HANDLER "url_handler.sh"
+#define DEFAULT_URL_HANDLER "url_handler.pl"
 /* Prefixes saved attachments with no set filename */
 #define SAVEFILE_PREFIX		"unknown"
 
 
-/* MMDF-mailbox seperator */
+/* MMDF-mailbox separator */
 #ifndef MMDFHDRTXT
 #	define MMDFHDRTXT "\01\01\01\01\n"
 #endif /* MMDFHDRTXT */
@@ -699,13 +591,13 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #endif /* 0 */
 
 /* case sensitive && ^-anchored */
-#define DEFAULT_STRIP_RE_REGEX	"(?:R[eE](?:\\^\\d+|\\[\\d\\])?|A[wW]|Odp|Sv):\\s"
+#define DEFAULT_STRIP_RE_REGEX	"(?:R[eE](?:\\^\\d+|\\[\\d+\\])?|A[wW]|Odp|Sv):\\s"
 /* case sensitive */
-#define DEFAULT_STRIP_WAS_REGEX	".\\((?:[Ww]a[rs]|[Bb]y[l³]o):.*\\)\\s*$"
-#define DEFAULT_U8_STRIP_WAS_REGEX	".\\((?:[Ww]a[rs]|[Bb]y[l\\x{0142}]o):.*\\)\\s*$"
+#define DEFAULT_STRIP_WAS_REGEX	"(?:(?<=\\S)|\\s)\\((?:[Ww]a[rs]|[Bb]y[l\\xb3]o):.*\\)\\s*$"
+#define DEFAULT_U8_STRIP_WAS_REGEX	"(?:(?<=\\S)|\\s)\\((?:[Ww]a[rs]|[Bb]y[l\\x{0142}]o):.*\\)\\s*$"
 /*
  * overkill regexp for balanced '()':
- * #define DEFAULT_STRIP_WAS_REGEX	".\\((?:[Ww]a[rs]|[Bb]y[l³]o):(?:(?:[^)(])*(?:\\([^)(]*\\))*)+\\)\\s*$"
+ * #define DEFAULT_STRIP_WAS_REGEX	"(?:(?<=\\S)|\\s)\\((?:[Ww]a[rs]|[Bb]y[l\xb3]o):(?:(?:[^)(])*(?:\\([^)(]*\\))*)+\\)\\s*$"
  */
 
 /* case sensitive & ^-anchored */
@@ -716,6 +608,9 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 /* case sensitive & ^-anchored */
 #define SHAR_REGEX	"\\#(?:!\\s?(?:/usr)?/bin/sh|\\s?(?i)this\\sis\\sa\\sshell\\sarchive)"
 
+/* slrn verbatim marks, case sensitive & ^-anchored */
+#define DEFAULT_VERBATIM_BEGIN_REGEX	"#v\\+\\s$"
+#define DEFAULT_VERBATIM_END_REGEX	"#v-\\s$"
 
 /*
  * URL related regexs:
@@ -738,7 +633,7 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #	if 0 /* this one is ok for IPv4 */
 #		define URL_REGEX	"\\b(?:https?|ftp|gopher)://(?:[^:@/\\s]*(?::[^:@/\\s]*)?@)?(?:(?:(?:[^\\W_](?:(?:-(?!-)|[^\\W_]){0,61}[^\\W_])?|xn--[^\\W_](?:-(?!-)|[^\\W_]){1,57}[^\\W_])\\.)+[a-z]{2,6}\\.?|localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))(?::\\d+)?(?:/[^)\\]\\>\"\\s]*|$|(?=[)\\]\\>\"\\s]))"
 #	else	/* this one should be IPv6 safe - test me! */
-#		define URL_REGEX	"\\b(?:https?|ftp|gopher)://(?:[^:@/\\s]*(?::[^:@/\\s]*)?@)?(?:(?:(?:[^\\W_](?:(?:-(?!-)|[^\\W_]){0,61}[^\\W_])?|xn--[^\\W_](?:-(?!-)|[^\\W_]){1,57}[^\\W_])\\.)+[a-z]{2,6}\\.?|localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)|\\[(?:(?:[0-9A-F]{0,4}:){1,7}[0-9A-F]{1,4}|(?:[0-9A-F]{0,4}:){1,3}(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))\\])(?::\\d+)?(?:/[^)\\]\\>\"\\s]*|$|(?=[)\\]\\>\"\\s]))"
+#		define URL_REGEX	"\\b(?:https?|ftp|gopher)://(?:[^:@/\\s]*(?::[^:@/\\s]*)?@)?(?:(?:(?:[^\\W_](?:(?:-|[^\\W_]){0,61}(?<!---)[^\\W_])?|xn--[^\\W_](?:-(?!-)|[^\\W_]){1,57}[^\\W_])\\.)+[a-z]{2,6}\\.?|localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)|\\[(?:(?:[0-9A-F]{0,4}:){1,7}[0-9A-F]{1,4}|(?:[0-9A-F]{0,4}:){1,3}(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))\\])(?::\\d+)?(?:/[^)\\]\\>\"\\s]*|$|(?=[)\\]\\>\"\\s]))"
 #	endif /* 0 */
 #endif /* 0 */
 /*
@@ -749,9 +644,10 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #define MAIL_REGEX	"\\b(?:mailto:(?:[-\\w$.+!*'(),;/?:@&=]|%[\\da-f]{2})+)"
 /*
  * case insensitive
+ * TODO: check against RFC 5538
  */
 #if 1 /* complex */
-#	define NEWS_REGEX "\\b(?:s?news|nntp):(?:(?:(?://(?:(?:[^\\W_](?:(?:-(?!-)|[^\\W_]){0,61}[^\\W_])?|xn--[^\\W_](?:-(?!-)|[^\\W_]){1,57}[^\\W_])\\.)+[a-z]{2,6}\\.?|localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))(?::\\d+)?(?(?=[/])[^()\\^\\[\\]{}\\|\\x00-\\x1f\\x7f\\s\"<>'\\\\:,;]+|$))|[^\\^\\[\\]{}\\|\\x00-\\x1f\\x7f\\s<>\"():,;\\\\'/]+)\\b"
+#	define NEWS_REGEX "\\b(?:s?news|nntp):(?:(?:(?://(?:(?:[^\\W_](?:(?:-|[^\\W_]){0,61}(?<!---)[^\\W_])?|xn--[^\\W_](?:-(?!-)|[^\\W_]){1,57}[^\\W_])\\.)+[a-z]{2,6}\\.?|localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))(?::\\d+)?(?(?=[/])[^()\\^\\[\\]{}\\|\\x00-\\x1f\\x7f\\s\"<>'\\\\:,;]+|$))|[^\\^\\[\\]{}\\|\\x00-\\x1f\\x7f\\s<>\"():,;\\\\'/]+)\\b"
 #else
 #	if 1 /* less complex */
 #		define NEWS_REGEX	"\\b(?:s?news|nntp):[^\\s\\*@>]+(?(?=[@])[^\\s\\*@<>()\",/]+|[^\\s\\*<>()\":,/]+)\\b"
@@ -763,13 +659,11 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 /*
  * case insensitive
  */
-#	define TELNET_REGEX	"\\btelnet://(?:[^:@/]*(?::[^:@/]*)?@)?(?:(?:[^\\W_](?:(?:-(?!-)|[^\\W_]){0,61}[^\\W_])?\\.)+[a-z]{2,6}\\.?||localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))(?::\\d+)?/?"
+#	define TELNET_REGEX	"\\btelnet://(?:[^:@/]*(?::[^:@/]*)?@)?(?:(?:[^\\W_](?:(?:-|[^\\W_]){0,61}(?<!---)[^\\W_])?\\.)+[a-z]{2,6}\\.?||localhost|(?:(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(?:2[0-4]\\d|25[0-5]|[01]?\\d\\d?))(?::\\d+)?/?"
 #endif /* 0 */
 
 
 #define FILTER_FILE	"filter"
-/* editor offset for filter-file; TODO: doesn't match for german filter-file */
-#define FILTER_FILE_OFFSET	26
 #define INPUT_HISTORY_FILE	".inputhistory"
 #ifdef HAVE_MH_MAIL_HANDLING
 #	define MAILGROUPS_FILE	"mailgroups"
@@ -789,14 +683,6 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #define NEWSGROUPS_FILE	"newsgroups"
 #define KEYMAP_FILE	"keymap"
 
-
-#ifdef USE_INN_NNTPLIB
-#	include <libinn.h> /* TODO: add configure chek for it */
-#	define _CONF_FROMHOST	"fromhost"
-#	define _CONF_ORGANIZATION	"organization"
-#	define _CONF_SERVER	"server"
-#endif /* USE_INN_NNTPLIB */
-
 #define SIGDASHES "-- \n"
 
 #ifndef BOOL_H
@@ -841,6 +727,12 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #ifdef HAVE_LIBUTF8_H
 #	include <libutf8.h>
 #else
+/*
+ * order is important here:
+ * - Solaris 2.5.1 requires wchar.h before wctype.h
+ * - Tru64 with Desktop Toolkit C requires stdio.h before wchar.h
+ * - BSD/OS 4.0.1 requires stddef.h, stdio.h and time.h before wchar.h
+ */
 #	ifdef HAVE_WCHAR_H
 #		include <wchar.h>
 #	endif /* HAVE_WCHAR_H */
@@ -875,11 +767,6 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
  * HEADER_LEN  = max. size of a news/mail header-line
  * NEWSRC_LINE =
  */
-#if defined(VMS)
-#	define PATH_LEN	256
-#	define NAME_LEN	14
-#	define LEN	512
-#endif /* VMS */
 
 #ifdef M_UNIX
 #	ifdef PATH_MAX
@@ -957,6 +844,39 @@ enum rc_state { RC_IGNORE, RC_CHECK, RC_
 #	define MARK_INRANGE	'#'	/* group/art within a range (# command) */
 #endif /* !MARK_INRANGE */
 
+
+/*
+ * Unicode chars for thread and attachment tree and cursor (instead of "|+`->")
+ * only available when IS_LOCAL_CHARSET("UTF-8")
+ */
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	/*
+	 * For CURSOR_ARROW and CURSOR_HORIZ tinrc.utf8_graphics ? :
+	 * is handled inside screen.c:draw_arrow_mark().
+	 */
+#	define CURSOR_ARROW		(wchar_t) 0x25B6
+#	define CURSOR_HORIZ		(wchar_t) 0x2500
+#	define TREE_ARROW		(wchar_t) (tinrc.utf8_graphics ? 0x25B6 : '>')
+#	define TREE_ARROW_WRAP	(wchar_t) (tinrc.utf8_graphics ? 0x25B7 : '>')
+#	define TREE_BLANK		(wchar_t) ' '
+#	define TREE_HORIZ		(wchar_t) (tinrc.utf8_graphics ? 0x2500 : '-')
+#	define TREE_UP_RIGHT	(wchar_t) (tinrc.utf8_graphics ? 0x2514 : '`')
+#	define TREE_VERT		(wchar_t) (tinrc.utf8_graphics ? 0x2502 : '|')
+#	define TREE_VERT_RIGHT	(wchar_t) (tinrc.utf8_graphics ? 0x251C : '+')
+#else
+	/*
+	 * No need for CURSOR_ARROW and CURSOR_HORIZ here. This is handled inside
+	 * screen.c:draw_arrow_mark().
+	 */
+#	define TREE_ARROW		'>'
+#	define TREE_ARROW_WRAP	'>'
+#	define TREE_BLANK		' '
+#	define TREE_HORIZ		'-'
+#	define TREE_UP_RIGHT	'`'
+#	define TREE_VERT		'|'
+#	define TREE_VERT_RIGHT	'+'
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+
 /*
  * position of the unread/will_return/hot-mark
  * (used in group.c/thread.c)
@@ -983,6 +903,28 @@ 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.auto_cc_bcc
+ */
+#define AUTO_CC					1
+#define AUTO_BCC				2
+#define AUTO_CC_BCC				3
+
+/*
+ * defines for tinrc.goto_next_unread
+ */
+#define NUM_GOTO_NEXT_UNREAD	4
+#define GOTO_NEXT_UNREAD_PGDN	1
+#define GOTO_NEXT_UNREAD_TAB	2
+
+/*
+ * defines for tinrc.trim_article_body
+ */
+#define NUM_TRIM_ARTICLE_BODY	8
+#define SKIP_LEADING			1
+#define SKIP_TRAILING			2
+#define COMPACT_MULTIPLE		4
+
+/*
  * MIME Encodings
  */
 enum {
@@ -1038,7 +980,7 @@ enum {
 #define IGNORE_ART_THREAD(i)	(arts[i].thread != ART_UNTHREADED || (tinrc.kill_level == KILL_NOTHREAD && arts[i].killed))
 
 /*
- * Is this part text/plain ?
+ * Is this part text/plain?
  */
 #define IS_PLAINTEXT(x) \
 			(x->type == TYPE_TEXT && strcasecmp("plain", x->subtype) == 0)
@@ -1104,6 +1046,16 @@ enum {
 
 
 /*
+ * indicate given cmd-line options
+ */
+#define CMDLINE_GETART_LIMIT	1
+#define CMDLINE_MAILDIR			2
+#define CMDLINE_NNTPSERVER		4
+#define CMDLINE_SAVEDIR			8
+#define CMDLINE_USE_COLOR		16
+
+
+/*
  * used by feed_articles() & show_mini_help() & quick_filter & add_filter_rule
  */
 #define SELECT_LEVEL	1
@@ -1111,6 +1063,11 @@ enum {
 #define THREAD_LEVEL	3
 #define PAGE_LEVEL	4
 #define INFO_PAGER	5
+#define SCOPE_LEVEL	6
+#define CONFIG_LEVEL	7
+#define ATTRIB_LEVEL	8
+#define ATTACHMENT_LEVEL	9
+#define URL_LEVEL	10
 
 #define MINI_HELP_LINES		5
 
@@ -1120,12 +1077,8 @@ enum {
 #define FEED_SAVE		4
 #define FEED_AUTOSAVE	5
 #define FEED_REPOST		6
-
-#if 0
-#	define DEBUG_IO(x)	fprintf x
-#else
-#	define DEBUG_IO(x)	/* nothing */
-#endif /* 0 */
+#define FEED_MARK_READ		7
+#define FEED_MARK_UNREAD	8
 
 
 /*
@@ -1205,6 +1158,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
@@ -1291,7 +1246,8 @@ enum {
 #	define EXIT_FAILURE	1	/* Failing exit status */
 #endif /* !EXIT_FAILURE */
 
-#define NNTP_ERROR_EXIT	2
+#define NEWS_AVAIL_EXIT 2
+#define NNTP_ERROR_EXIT	3
 
 /*
  * Assertion verifier
@@ -1307,15 +1263,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
  */
@@ -1323,7 +1275,7 @@ enum {
 #define ART_EXPIRED		-2
 
 /*
- * Where does this belong ?? It is overloaded
+ * Where does this belong?? It is overloaded
  */
 #define ART_NORMAL		-1
 
@@ -1418,7 +1370,6 @@ enum {
 /*
  * used in checking article header before posting
  */
-#define NGLIMIT		20	/* Max. num. of crossposted groups before warning */
 #define MAX_COL		78	/* Max. line length before issuing a warning */
 #define MAX_SIG_LINES	4	/* Max. num. of signature lines before warning */
 
@@ -1436,6 +1387,17 @@ typedef unsigned char	t_bitmap;
 #define MSGID_HASH_SIZE		2609
 
 /*
+ * cmd-line options
+ */
+struct t_cmdlineopts {
+	int getart_limit;			/* getart_limit */
+	char maildir[PATH_LEN];     /* maildir */
+	char nntpserver[PATH_LEN];  /* nntpserver */
+	char savedir[PATH_LEN];     /* savedir */
+	unsigned int args:5;		/* given options */
+};
+
+/*
  * Archive-Name: header
  */
 struct t_archive {
@@ -1445,7 +1407,7 @@ struct t_archive {
 };
 
 /*
- *	struct t_msgid - message id
+ * struct t_msgid - message id
  */
 struct t_msgid {
 	struct t_msgid *next;		/* Next in hash chain */
@@ -1491,11 +1453,20 @@ struct t_article {
 	int score;			/* score article has reached after filtering */
 	unsigned int status:2;	/* 0 = read, 1 = unread, 2 = will return */
 	unsigned int killed:2;	/* 0 = not killed, 1 = killed, 2 = killed unread */
-	unsigned int zombie:1;	/* 1 = was alive (unread) before 'X' command */
-	unsigned int delete_it:1;	/* 1 = delete art when leaving group [mail group] */
+	t_bool zombie:1;	/* 1 = was alive (unread) before 'X' command */
+	t_bool delete_it:1;	/* 1 = delete art when leaving group [mail group] */
 	t_bool selected:1;	/* FALSE = not selected, TRUE = selected */
 	t_bool inrange:1;	/* TRUE = article selected via # range command */
 	t_bool matched:1;	/* TRUE = article matched regex in feed.c */
+	t_bool keep_in_base:1;	/* TRUE = keep (read) article in base[] (show_only_unread_arts) */
+};
+
+/*
+ * struct t_newsheader - holds an array of which news headers to [not] display
+ */
+struct t_newsheader {
+	char **header;	/* array of which headers to [not] display */
+	int num;		/* number of headers in array header */
 };
 
 /*
@@ -1504,62 +1475,196 @@ struct t_article {
 struct t_attribute {
 	char *maildir;				/* mail dir if other than ~/Mail */
 	char *savedir;				/* save dir if other than ~/News */
-	char *savefile;			/* save articles to specified file */
+	char *savefile;				/* save articles to specified file */
 	char *sigfile;				/* sig file if other than ~/.Sig */
+	char *date_format;			/* format string for the date display */
+	char *editor_format;		/* editor + parameters  %E +%N %F */
 	char *organization;			/* organization name */
+	char *fcc;					/* Fcc folder for mail */
 	char *followup_to;			/* where posts should be redirected */
-	char *quick_kill_scope;			/* quick filter kill scope */
-	char *quick_select_scope;		/* quick filter select scope */
+	char *quick_kill_scope;		/* quick filter kill scope */
+	char *quick_select_scope;	/* quick filter select scope */
 	char *mailing_list;			/* mail list email address */
+	char *news_headers_to_display;	/* which headers to display */
+	char *news_headers_to_not_display;	/* which headers to not display */
 	char *x_headers;			/* extra headers for message header */
-	char *x_body;				/* bolierplate text for message body */
-	char *from;				/* from line */
-	char *news_quote_format;		/* another way to begin a posting format */
+	char *x_body;				/* boilerplate text for message body */
+	char *from;					/* from line */
+	char *news_quote_format;	/* another way to begin a posting format */
 	char *quote_chars;			/* string to precede quoted text on each line */
 	char *mime_types_to_save;	/* MIME content major/minors we want to save */
 #ifdef HAVE_ISPELL
-	char *ispell;			/* path to ispell and options */
+	char *ispell;				/* path to ispell and options */
 #endif /* HAVE_ISPELL */
+#ifdef CHARSET_CONVERSION
+	char *undeclared_charset;		/* charset of articles without MIME charset declaration */
+	int mm_network_charset;			/* network charset */
+#endif /* CHARSET_CONVERSION */
+	struct t_newsheader *headers_to_display;	/* array of which headers to display */
+	struct t_newsheader *headers_to_not_display;	/* array of which headers to not display */
 	unsigned global:1;			/* global/group specific */
-	unsigned quick_kill_header:3;		/* quick filter kill header */
-	unsigned quick_kill_expire:1;		/* quick filter kill limited/unlimited time */
+	unsigned quick_kill_header:3;	/* quick filter kill header */
+	unsigned quick_kill_expire:1;	/* quick filter kill limited/unlimited time */
 	unsigned quick_kill_case:1;		/* quick filter kill case sensitive? */
-	unsigned quick_select_header:3;		/* quick filter select header */
-	unsigned quick_select_expire:1;		/* quick filter select limited/unlimited time */
-	unsigned quick_select_case:1;		/* quick filter select case sensitive? */
+	unsigned quick_select_header:3;	/* quick filter select header */
+	unsigned quick_select_expire:1;	/* quick filter select limited/unlimited time */
+	unsigned quick_select_case:1;	/* quick filter select case sensitive? */
+	unsigned add_posted_to_filter:1;	/* add posted articles to filter */
+	unsigned advertising:1;			/* add User-Agent: -header */
+	unsigned alternative_handling:1;	/* skip multipart/alternative parts */
+	unsigned ask_for_metamail:1;	/* ask before using MIME viewer */
+	unsigned auto_cc_bcc:2;			/* add your name to cc/bcc automatically */
+	unsigned auto_list_thread:1;	/* list thread when entering it using right arrow */
 	unsigned auto_select:1;			/* 0=show all unread, 1='X' just hot arts */
 	unsigned auto_save:1;			/* 0=none, 1=save */
 	unsigned batch_save:1;			/* 0=none, 1=save -S/mail -M */
-	unsigned delete_tmp_files:1;		/* 0=leave, 1=delete */
-	unsigned show_only_unread:1;		/* 0=all, 1=only unread */
-	unsigned thread_arts:3;			/* 0=unthread, 1=subject, 2=refs, 3=both, 4=multipart, 5=percentage */
-	unsigned thread_perc:7;			/* percentage thrreading threshold */
+	unsigned delete_tmp_files:1;	/* 0=leave, 1=delete */
+	unsigned group_catchup_on_exit:1;	/* ask if read groups are to be marked read */
+	unsigned mail_8bit_header:1;	/* allow 8bit chars. in header of mail message */
+	unsigned mail_mime_encoding:2;
+	unsigned mark_ignore_tags:1;	/* Ignore tags for GROUP_MARK_THREAD_READ/THREAD_MARK_ARTICLE_READ */
+	unsigned mark_saved_read:1;		/* mark saved article/thread as read */
+	unsigned pos_first_unread:1;	/* position cursor at first/last unread article */
+	unsigned post_8bit_header:1;	/* allow 8bit chars. in header when posting to newsgroup */
+	unsigned post_mime_encoding:2;
+	unsigned post_process_view:1;	/* set TRUE to invoke mailcap viewer app */
+#ifndef DISABLE_PRINTING
+	unsigned print_header:1;		/* print all of mail header or just Subject: & From lines */
+#endif /* !DISABLE_PRINTING */
+	unsigned process_only_unread:1;	/* save/print//mail/pipe unread/all articles */
+	unsigned prompt_followupto:1;	/* display empty Followup-To header in editor */
+	unsigned show_only_unread_arts:1;	/* 0=all, 1=only unread */
+	unsigned sigdashes:1;			/* set TRUE to prepend every signature with dashes */
+	unsigned signature_repost:1;	/* set TRUE to add signature when reposting articles */
+	unsigned start_editor_offset:1;	/* start editor with line offset */
+	unsigned thread_articles:3;			/* 0=unthread, 1=subject, 2=refs, 3=both, 4=multipart, 5=percentage */
+	unsigned thread_catchup_on_exit:1;	/* catchup thread with left arrow key or not */
+	unsigned thread_perc:7;			/* percentage threading threshold */
 	unsigned show_author:2;			/* 0=none, 1=name, 2=addr, 3=both */
 	unsigned show_info:2;			/* 0=none, 1=lines, 2=score, 3=both */
-	unsigned sort_art_type:4;		/* 0=none, 1=subj descend, 2=subj ascend,
+	unsigned show_signatures:1;		/* 0=none, 1=show signatures */
+	unsigned trim_article_body:3;	/* 0=Don't trim article body, 1=Skip leading blank lines,
+						2=Skip trailing blank lines, 3=Skip leading and trailing blank lines,
+						4=Compact multiple blank lines between textblocks,
+						5=Compact multiple blank lines between textblocks and skip leading blank lines,
+						6=Compact multiple blank lines between textblocks and skip trailing blank lines,
+						7=Compact multiple blank lines between textblocks and skip leading and trailing
+						  blank lines */
+	unsigned verbatim_handling:1;	/* 0=none, 1=detect verbatim blocks */
+	unsigned wrap_on_next_unread:1;	/* Wrap around threads when searching next unread article */
+	unsigned sort_article_type:4;		/* 0=none, 1=subj descend, 2=subj ascend,
 						   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 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 */
-	unsigned int mime_forward:1;		/* forward articles as attachment or inline */
-	char *fcc;							/* Fcc folder for mail */
+	unsigned sort_threads_type:3;	/* 0=none, 1=score descend, 2=score ascend,
+						   3=last posting date descend, 4=last posting date ascend */
+	unsigned post_process_type:2;	/* 0=none, 1=shar, 2=uudecode */
+	unsigned x_comment_to:1;	/* insert X-Comment-To: in Followup */
+	unsigned tex2iso_conv:1;	/* Convert TeX2ISO */
+	unsigned mime_forward:1;	/* forward articles as attachment or inline */
+};
+
+/*
+ * struct t_attribute_state - holds additional information
+ * about numeric attributes within a scope
+ */
+struct t_attribute_state {
+	unsigned add_posted_to_filter:1;
+	unsigned advertising:1;
+	unsigned alternative_handling:1;
+	unsigned ask_for_metamail:1;
+	unsigned auto_cc_bcc:1;
+	unsigned auto_list_thread:1;
+	unsigned auto_save:1;
+	unsigned auto_select:1;
+	unsigned batch_save:1;
+	unsigned date_format:1;
+	unsigned delete_tmp_files:1;
+	unsigned editor_format:1;
+	unsigned fcc:1;
+	unsigned followup_to:1;
+	unsigned from:1;
+	unsigned group_catchup_on_exit:1;
+#ifdef HAVE_ISPELL
+	unsigned ispell:1;
+#endif /* HAVE_ISPELL */
+	unsigned mail_8bit_header:1;
+	unsigned mail_mime_encoding:1;
+	unsigned maildir:1;
+	unsigned mailing_list:1;
+	unsigned mark_ignore_tags:1;
+	unsigned mark_saved_read:1;
+	unsigned mime_forward:1;
+	unsigned mime_types_to_save:1;
+	unsigned news_headers_to_display:1;
+	unsigned news_headers_to_not_display:1;
+	unsigned news_quote_format:1;
+	unsigned organization:1;
+	unsigned pos_first_unread:1;
+	unsigned post_8bit_header:1;
+	unsigned post_mime_encoding:1;
+	unsigned post_process_view:1;
+	unsigned post_process_type:1;
+#ifndef DISABLE_PRINTING
+	unsigned print_header:1;
+#endif /* !DISABLE_PRINTING */
+	unsigned process_only_unread:1;
+	unsigned prompt_followupto:1;
+	unsigned quick_kill_case:1;
+	unsigned quick_kill_expire:1;
+	unsigned quick_kill_header:1;
+	unsigned quick_kill_scope:1;
+	unsigned quick_select_case:1;
+	unsigned quick_select_expire:1;
+	unsigned quick_select_header:1;
+	unsigned quick_select_scope:1;
+	unsigned quote_chars:1;
+	unsigned savedir:1;
+	unsigned savefile:1;
+	unsigned show_author:1;
+	unsigned show_info:1;
+	unsigned show_only_unread_arts:1;
+	unsigned show_signatures:1;
+	unsigned sigdashes:1;
+	unsigned sigfile:1;
+	unsigned signature_repost:1;
+	unsigned sort_article_type:1;
+	unsigned sort_threads_type:1;
+	unsigned start_editor_offset:1;
+	unsigned tex2iso_conv:1;
+	unsigned thread_articles:1;
+	unsigned thread_catchup_on_exit:1;
+	unsigned thread_perc:1;
+	unsigned trim_article_body:1;
 #ifdef CHARSET_CONVERSION
-	int mm_network_charset;				/* network charset */
-	char *undeclared_charset;			/* charset of articles without MIME charset declaration */
+	unsigned undeclared_charset:1;
+	unsigned mm_network_charset:1;
 #endif /* CHARSET_CONVERSION */
+	unsigned verbatim_handling:1;
+	unsigned wrap_on_next_unread:1;
+	unsigned x_body:1;
+	unsigned x_comment_to:1;
+	unsigned x_headers:1;
 };
 
 /*
- * TODO: turn longs to unsigned long long or at least unsigned long
+ * struct t_scope
+ */
+struct t_scope {
+	char *scope;				/* scope for these group attributes */
+	struct t_attribute *attribute;	/* the attributes itself */
+	struct t_attribute_state *state;	/* additional information about numeric attributes */
+	unsigned global:1;			/* TRUE for scopes from global_attributes_file */
+};
+
+/*
+ * TODO: turn longs to int_least64_t
  */
 /*
  * struct t_newsrc - newsrc related info.
  */
 struct t_newsrc {
-	t_bool present:1;		/* update newsrc ? */
+	t_bool present:1;		/* update newsrc? */
 	long num_unread;		/* unread articles in group */
 	long xmax;			/* newsrc max */
 	long xmin;			/* newsrc min */
@@ -1568,13 +1673,13 @@ struct t_newsrc {
 };
 
 /*
- * TODO: turn longs to unsigned long long or at least unsigned long
+ * TODO: turn longs to int_least64_t
  */
 /*
  * struct t_group - newsgroup info from active file
  */
 struct t_group {
-	char *name;			/* newsgroup / mailbox name */
+	char *name;			/* newsgroup/mailbox name */
 	char *aliasedto;		/* =new.group in active file, NULL if not */
 	char *description;	/* text from NEWSLIBDIR/newsgroups file */
 	char *spooldir;		/* groups spool directory */
@@ -1582,7 +1687,7 @@ struct t_group {
 	long count;			/* article number count */
 	long xmax;			/* max. article number */
 	long xmin;			/* min. article number */
-	unsigned int type:4;		/* grouptype - newsgroup / mailbox / savebox */
+	unsigned int type:4;		/* grouptype - newsgroup/mailbox/savebox */
 	t_bool inrange:1;		/* TRUE if group selected via # range command */
 	t_bool read_during_session:1;	/* TRUE if group entered during session */
 	t_bool art_was_posted:1;	/* TRUE if art was posted to group */
@@ -1620,7 +1725,7 @@ struct t_hashnode {
  * future directions in adding other retrieval methods to present kill &
  * auto selection.
  *
- * Also seperate kill/select screen to allow ^K=kill ^A=auto-select
+ * Also separate kill/select screen to allow ^K=kill ^A=auto-select
  */
 struct t_filters {
 	int max;
@@ -1653,7 +1758,7 @@ struct t_filter {
 	char *xref;			/* groups in xref line */
 	time_t time;			/* expire time in seconds */
 	struct t_filter *next;		/* next rule valid in group */
-	unsigned int inscope:4;		/* if group matches scope ie. 'comp.os.*' */
+	unsigned int inscope:4;		/* if group matches scope e.g. 'comp.os.*' */
 	unsigned int icase:2;		/* Case sensitive filtering */
 	unsigned int fullref:4;		/* use full references or last entry only */
 };
@@ -1754,7 +1859,7 @@ struct t_option {
 	int *variable;		/* ptr to variable to change */
 	constext **opt_list;	/* ptr to list entries if OPT_LIST */
 	int opt_count;		/* no. of list entries if OPT_LIST */
-	struct opttxt *txt;	/* ptr to information / help on option */
+	struct opttxt *txt;	/* ptr to information/help on option */
 };
 
 /*
@@ -1804,7 +1909,7 @@ typedef struct _TIMEINFO {
 /*
  * mailcap fields
  * the x-token field is missing, we would need something like
- * struct t_xtoken { char *xtoken; t_xtoken *next; } for that...
+ * struct t_xtoken { char *xtoken; t_xtoken *next; } for that ...
  */
 typedef struct {
 	char *type;		/* content-type, mandatory */
@@ -1823,6 +1928,12 @@ typedef struct {
 } t_mailcap;
 
 
+typedef struct urllist {
+	char *url;
+	struct urllist *next;
+} t_url;
+
+
 /*
  * Determine signal return type
  */
@@ -1851,11 +1962,7 @@ typedef int (*t_compfunc)(t_comptype, t_
 #define _CDECL
 
 /* Seperator between dir part of path & the filename */
-#ifdef VMS
-#	define DIRSEP	']'
-#else
-#	define DIRSEP	'/'
-#endif /* VMS */
+#define DIRSEP	'/'
 
 /*
  * mouse buttons for use in xterm
@@ -1866,20 +1973,6 @@ typedef int (*t_compfunc)(t_comptype, t_
 
 #define TIN_EDITOR_FMT_OFF		"%E %F"
 
-#ifdef VMS
-#	define REDIRECT_OUTPUT	""
-#	define REDIRECT_PGP_OUTPUT	""
-#	define ENV_VAR_MAILER		"TIN_MAILER"
-/*#	define ENV_VAR_SHELL		"SHELL"*/
-#	define ENV_VAR_POSTER		"TIN_POST"
-#	define TIN_EDITOR_FMT_ON	"%E %F"
-#	define TMPDIR "SYS$SCRATCH:"
-#	ifdef HAVE_KEY_PREFIX
-#		define KEY_PREFIX	0x9b
-#	endif /* HAVE_KEY_PREFIX */
-extern void joindir (char *result, const char *dir, const char *file);
-#endif /* VMS */
-
 #ifdef M_UNIX
 #	define REDIRECT_OUTPUT		"> /dev/null 2>&1"
 #	define REDIRECT_PGP_OUTPUT		"> /dev/null"
@@ -1918,9 +2011,9 @@ extern void joindir (char *result, const
 #endif /* !TMPDIR */
 
 #if !defined(S_ISDIR)
-#	if defined(M_UNIX) || defined(VMS)
+#	if defined(M_UNIX)
 #		define S_ISDIR(m)	(((m) & S_IFMT) == S_IFDIR)
-#	endif /* M_UNIX || VMS */
+#	endif /* M_UNIX */
 #endif /* !S_ISDIR */
 
 #if !defined(S_ISREG)
@@ -1964,11 +2057,7 @@ extern void joindir (char *result, const
 #endif /* !S_ISVTX */
 
 #ifdef DONT_HAVE_PIPING
-#	ifdef VMS
-#		define TIN_PRINTFILE "Sys$Scratch:TIN_PRINT%d.TMP"
-#	else
-#		define TIN_PRINTFILE "tinprint%d.tmp"
-#	endif /* VMS */
+#	define TIN_PRINTFILE "tinprint%d.tmp"
 #endif /* DONT_HAVE_PIPING */
 
 /*
@@ -1988,7 +2077,7 @@ extern void joindir (char *result, const
 #endif /* !F_OK */
 
 /* Various function redefinitions */
-#ifdef USE_DBMALLOC
+#if defined(USE_DBMALLOC) || defined(USE_DMALLOC)
 #	define my_malloc(size)	malloc(size)
 #	define my_calloc(nmemb, size)	calloc((nmemb), (size))
 #	define my_realloc(ptr, size)	realloc((ptr), (size))
@@ -1996,7 +2085,7 @@ extern void joindir (char *result, const
 #	define my_malloc(size)	my_malloc1(__FILE__, __LINE__, (size))
 #	define my_calloc(nmemb, size)	my_calloc1(__FILE__, __LINE__, (nmemb), (size))
 #	define my_realloc(ptr, size)	my_realloc1(__FILE__, __LINE__, (ptr), (size))
-#endif /* USE_DBMALLOC */
+#endif /* USE_DBMALLOC || USE_DMALLOC */
 
 #define ARRAY_SIZE(array)	((int) (sizeof(array) / sizeof(array[0])))
 
@@ -2005,8 +2094,8 @@ extern void joindir (char *result, const
 
 #define BlankIfNull(p)	((p) ? (p) : "")
 
-#define my_group_find(x)	add_my_group(x, FALSE)
-#define my_group_add(x)		add_my_group(x, TRUE)
+#define my_group_find(x)	add_my_group(x, FALSE, FALSE)
+#define my_group_add(x, y)		add_my_group(x, TRUE, y)
 #define for_each_group(x)	for (x = 0; x < num_active; x++)
 #define for_each_art(x)		for (x = 0; x < top_art; x++)
 #define for_each_art_in_thread(x, y)	for (x = (int) base[y]; x >= 0; x = arts[x].thread)
@@ -2092,6 +2181,9 @@ typedef void (*BodyPtr) (char *, FILE *,
 #ifdef USE_DMALLOC
 #	include <dmalloc.h>
 #	define DMALLOC_FUNC_CHECK
+#	ifdef HAVE_STRDUP
+#		define my_strdup(s) strdup((s))
+#	endif /* HAVE_STRDUP */
 #endif /* USE_DMALLOC */
 
 #ifdef DOALLOC
@@ -2114,21 +2206,16 @@ typedef void (*BodyPtr) (char *, FILE *,
 	extern void	no_leaks(void);
 #endif /* DOALLOC */
 
-#ifdef __DECC		/* VMS */
-#	ifndef ferror
-#		define ferror(x)		(0)
-#		define EndWin		EndWind
-#	endif /* !ferror */
-#endif /* __DECC */
-
+#if 0 /* unused */
 #ifndef my_tmpfile_only
 /*
- * shortcut if we arn't interrested in the tmpfiles filename/location
+ * shortcut if we aren't interested in the tmpfiles filename/location
  * argument can't be a pointer and if argument is changed on return
- * we must unlik the tmp-file ourself
+ * we must unlink the tmp-file ourself
  */
 #	define my_tmpfile_only(a)	my_tmpfile(a, sizeof(a) - 1, FALSE, (char *) 0)
 #endif /* !my_tmpfile_only */
+#endif /* 0 */
 
 
 /* define some standard places to look for a tin.defaults file */
@@ -2166,7 +2253,7 @@ extern struct tm *localtime(time_t *);
 #ifdef CLOSEDIR_VOID
 #	define CLOSEDIR(DIR)	closedir(DIR)
 #else
-#	define CLOSEDIR(DIR)	if (closedir(DIR)) error_message("closedir() failed: %s %s", __FILE__, __LINE__)
+#	define CLOSEDIR(DIR)	if (closedir(DIR)) error_message(2, "closedir() failed: %s %s", __FILE__, __LINE__)
 #endif /* CLOSEDIR_VOID */
 
 #ifdef HAVE_GETTIMEOFDAY
@@ -2191,9 +2278,14 @@ extern struct tm *localtime(time_t *);
 
 /* libcanlock */
 #ifdef USE_CANLOCK
-#	include "../libcanlock/canlock.h"
+#	include "../libcanlock/include/canlock.h"
 #endif /* USE_CANLOCK */
 
+/* gsasl */
+#ifdef USE_SASL
+#	include <gsasl.h>
+#endif /* USE_SASL */
+
 /* snprintf(), vsnprintf() */
 #ifndef HAVE_SNPRINTF
 #	define snprintf	plp_snprintf
@@ -2228,14 +2320,25 @@ extern struct tm *localtime(time_t *);
 #endif /* !EOF */
 
 /* various filenames used by tin */
-#ifndef VMS	/* TODO: is the VMS case needed? */
-#	define TIN_ARTICLE_NAME	".article"
-#	define TIN_CANCEL_NAME	".cancel"
-#	define TIN_LETTER_NAME	".letter"
-#else
-#	define TIN_ARTICLE_NAME	"article."
-#	define TIN_CANCEL_NAME	"cancel."
-#	define TIN_LETTER_NAME	"letter."
-#endif /* !VMS */
+#define TIN_ARTICLE_NAME	".article"
+#define TIN_CANCEL_NAME	".cancel"
+#define TIN_LETTER_NAME	".letter"
+#define TIN_BUGREPORT_NAME	".bugreport"
+
+/* read_news_active_file() / open_newsgroups_fp() */
+#ifndef DISABLE_PIPELINING
+#	define PIPELINE_LIMIT 45
+#else
+#	define PIPELINE_LIMIT 1
+#endif /* DISABLE_PIPELINING */
+
+#ifndef DEBUG_H
+#	include "debug.h"
+#endif /* !DEBUG_H */
+
+struct t_overview_fmt {
+	char *name;
+	enum f_type type;
+};
 
 #endif /* !TIN_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/tinrc.h tin-2.0.0/include/tinrc.h
--- tin-1.8.3/include/tinrc.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/tinrc.h	2011-04-17 16:04:29.946996089 +0200
@@ -3,10 +3,10 @@
  *  Module    : tinrc.h
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 1999-04-13
- *  Updated   : 2004-06-20
+ *  Updated   : 2011-01-29
  *  Notes     :
  *
- * Copyright (c) 1999-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1999-2011 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,12 +130,13 @@ 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 */
 	int mail_mime_encoding;
 	int post_mime_encoding;
-	int post_process;					/* type of post processing to be performed */
+	int post_process_type;				/* type of post processing to be performed */
 	int reread_active_file_secs;		/* reread active file interval in seconds */
 	int scroll_lines;					/* # lines to scroll by in pager */
 	int show_author;					/* show_author value from 'M' menu in tinrc */
@@ -148,6 +151,7 @@ struct t_config {
 	int score_limit_select;					/* score limit to select articles */
 	int score_kill;						/* default score for "kill" filter rules */
 	int score_select;					/* default score for "hot" filter rules */
+	int trim_article_body;				/* remove unnecessary blank lines */
 #	ifdef HAVE_COLOR
 		int col_back;						/* standard background color */
 		int col_from;						/* color of sender (From:) */
@@ -169,6 +173,7 @@ struct t_config {
 		int col_response;					/* color of respone counter */
 		int col_signature;					/* color of signature */
 		int col_urls;						/* color of urls highlight */
+		int col_verbatim;					/* color of verbatim blocks */
 		int col_subject;					/* color of article subject */
 		int col_text;						/* color of textlines*/
 		int col_title;						/* color of Help/Mail-Sign */
@@ -184,11 +189,11 @@ struct t_config {
 #	ifdef HAVE_COLOR
 		t_bool use_color;					/* like use_color but stored in tinrc */
 #	endif /* HAVE_COLOR */
+	t_bool abbreviate_groupname;		/* abbreviate groupnames like n.s.readers */
 	t_bool add_posted_to_filter;
 	t_bool advertising;
 	t_bool alternative_handling;
-	t_bool auto_bcc;					/* add your name to bcc automatically */
-	t_bool auto_cc;						/* add your name to cc automatically */
+	int auto_cc_bcc;					/* add your name to cc/bcc automatically */
 	t_bool auto_list_thread;			/* list thread when entering it using right arrow */
 	t_bool auto_reconnect;				/* automatically reconnect to news server */
 	t_bool auto_save;					/* save thread with name from Archive-name: field */
@@ -207,7 +212,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,14 +228,16 @@ 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;
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+		t_bool utf8_graphics;				/* use utf-8 characters for line drawing */
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	t_bool verbatim_handling;			/* Detection of verbatim blocks */
 	char inews_prog[PATH_LEN];
 	int interactive_mailer;			/* invoke user's mailreader */
 	t_bool use_mouse;					/* enables/disables mouse support under xterm */
@@ -256,6 +262,82 @@ struct t_config {
 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
 	t_bool render_bidi;
 #endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && HAVE_UNICODE_UBIDI_H && !NO_LOCALE */
+#	ifdef CHARSET_CONVERSION
+		int attrib_mm_network_charset;
+		char attrib_undeclared_charset[LEN];
+#	endif /* !CHARSET_CONVERSION */
+	char attrib_editor_format[PATH_LEN];
+	char attrib_fcc[PATH_LEN];
+	char attrib_maildir[PATH_LEN];
+	char attrib_from[HEADER_LEN];
+	char attrib_mailing_list[HEADER_LEN];
+	char attrib_organization[LEN];
+	char attrib_followup_to[LEN];
+	char attrib_mime_types_to_save[LEN];
+	char attrib_news_headers_to_display[LEN];
+	char attrib_news_headers_to_not_display[LEN];
+	char attrib_news_quote_format[LEN];
+	char attrib_quote_chars[LEN];
+	char attrib_sigfile[PATH_LEN];
+	char attrib_savedir[PATH_LEN];
+	char attrib_savefile[PATH_LEN];
+	char attrib_x_body[LEN];
+	char attrib_x_headers[HEADER_LEN];
+#	ifdef HAVE_ISPELL
+		char attrib_ispell[PATH_LEN];
+#	endif /* HAVE_ISPELL */
+	char attrib_quick_kill_scope[LEN];
+	char attrib_quick_select_scope[LEN];
+	char attrib_date_format[LEN];
+	int attrib_trim_article_body;
+	int attrib_auto_cc_bcc;
+	int attrib_show_info;
+	int attrib_quick_kill_header;
+	int attrib_quick_select_header;
+	int attrib_mail_mime_encoding;
+	int attrib_post_mime_encoding;
+	int attrib_post_process_type;
+	int attrib_show_author;
+	int attrib_sort_article_type;
+	int attrib_sort_threads_type;
+	int attrib_thread_articles;
+	int attrib_thread_perc;
+	t_bool attrib_add_posted_to_filter;
+	t_bool attrib_advertising;
+	t_bool attrib_alternative_handling;
+	t_bool attrib_auto_list_thread;
+	t_bool attrib_auto_select;
+	t_bool attrib_auto_save;
+	t_bool attrib_batch_save;
+	t_bool attrib_delete_tmp_files;
+	t_bool attrib_group_catchup_on_exit;
+	t_bool attrib_mail_8bit_header;
+	t_bool attrib_mime_forward;
+	t_bool attrib_mark_ignore_tags;
+	t_bool attrib_mark_saved_read;
+	t_bool attrib_pos_first_unread;
+	t_bool attrib_post_8bit_header;
+	t_bool attrib_post_process_view;
+#	ifndef DISABLE_PRINTING
+		t_bool attrib_print_header;
+#	endif /* !DISABLE_PRINTING */
+	t_bool attrib_process_only_unread;
+	t_bool attrib_prompt_followupto;
+	t_bool attrib_show_only_unread_arts;
+	t_bool attrib_show_signatures;
+	t_bool attrib_sigdashes;
+	t_bool attrib_signature_repost;
+	t_bool attrib_start_editor_offset;
+	t_bool attrib_tex2iso_conv;
+	t_bool attrib_thread_catchup_on_exit;
+	t_bool attrib_verbatim_handling;
+	t_bool attrib_x_comment_to;
+	t_bool attrib_wrap_on_next_unread;
+	t_bool attrib_ask_for_metamail;
+	t_bool attrib_quick_kill_case;
+	t_bool attrib_quick_kill_expire;
+	t_bool attrib_quick_select_case;
+	t_bool attrib_quick_select_expire;
 };
 
 #endif /* !TINRC_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/tnntp.h tin-2.0.0/include/tnntp.h
--- tin-1.8.3/include/tnntp.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/tnntp.h	2011-04-17 16:04:29.754966866 +0200
@@ -3,10 +3,10 @@
  *  Module    : tnntp.h
  *  Author    : Thomas Dickey <dickey@invisible-island.net>
  *  Created   : 1997-03-05
- *  Updated   : 2003-09-19
+ *  Updated   : 2006-02-15
  *  Notes     : #include files, #defines & struct's
  *
- * Copyright (c) 1997-2006 Thomas Dickey <dickey@invisible-island.net>
+ * Copyright (c) 1997-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,49 +38,27 @@
 #ifndef TNNTP_H
 #define TNNTP_H 1
 
-#if defined(VMS) && defined(SOCKETSHR_TCP)
-#	ifdef __GNUC__
-#		define __SOCKET_TYPEDEFS
-#	endif /* __GNUC__ */
-#	include <netdb.h>
-#	include <in.h>
-#	include <inet.h>
-#	include <socket.h>
-#	define s_printf	si_fprintf
-#	define s_fdopen	si_fdopen
-#	define s_flush	si_fflush
-#	define s_fclose	si_fclose
-#	define s_gets	si_fgets
-#	define s_close	si_close
-#	define s_puts	si_fputs
-#	define s_dup
-#	define s_init()	(1)
-#	define s_end()
-#else
-#	define s_printf	fprintf
-#	define s_fdopen	fdopen
-#	define s_flush	fflush
-#	define s_fclose	fclose
-#	define s_gets	fgets
-#	if 0 /* __BEOS__ port in progress */
-#		ifdef HAVE_CLOSESOCKET
-#			define s_close closesocket
-#		else
-#			define s_close	close
-#		endif /* HAVE_CLOSESOCKET */
-#		ifdef __BEOS__
-#			define s_puts(s,fd)	write(fileno(fd),s,strlen(s))
-#		else
-#			define s_puts(s,fd)	fputs(s,fd)
-#		endif /* __BEOS__ */
+#define s_fdopen	fdopen
+#define s_flush	fflush
+#define s_fclose	fclose
+#define s_gets	fgets
+#if 0 /* __BEOS__ port in progress */
+#	ifdef HAVE_CLOSESOCKET
+#		define s_close	closesocket
+#	else
+#		define s_close	close
+#	endif /* HAVE_CLOSESOCKET */
+#	ifdef __BEOS__
+#		define s_puts(s,fd)	write(fileno(fd),s,strlen(s))
 #	else
-#		define s_close close
 #		define s_puts	fputs
-#	endif /* 0 */
-#	define s_dup		dup
-#	define s_init()	(1)
-#	define s_end()
-#endif /* VMS && SOCKETSHR_TCP */
+#	endif /* __BEOS__ */
+#else
+#	define s_close	close
+#	define s_puts	fputs
+#endif /* 0 */
+#define s_dup	dup
+#define s_end()
 
 #if defined(NNTP_ABLE) || defined(HAVE_GETHOSTBYNAME)
 #	ifdef HAVE_NETDB_H
@@ -110,47 +88,22 @@
 #			include	<netinet/in.h>
 #		endif /* HAVE_NETINET_IN_H */
 #	else
-#		ifdef VMS
-#			ifdef MULTINET
-#				include "MULTINET_ROOT:[multinet.include]errno.h"
-#				include "MULTINET_ROOT:[multinet.include]netdb.h"
-#				include "MULTINET_ROOT:[multinet.include.vms]inetiodef.h"
-#				include "MULTINET_ROOT:[multinet.include.sys]socket.h"
-#				include "MULTINET_ROOT:[multinet.include.netinet]in.h"
-#				define netopen	socket_open
-#				define netread	socket_read
-#				define netwrite socket_write
-#				define netclose socket_close
-#			else
-#				ifdef UCX
-#					include <errno.h>
-#					include <iodef.h>
-#					include <in.h>
-#					include <socket.h>
-#					define netopen	open
-#					define netread	read
-#					define netwrite	write
-#					define netclose	close
-#				endif /* UCX */
-#			endif /* MULTINET */
+#		ifdef HAVE_SYS_SOCKET_H
+#			include <sys/socket.h>
 #		else
-#			ifdef HAVE_SYS_SOCKET_H
-#				include <sys/socket.h>
-#			else
-#				ifdef HAVE_SOCKET_H
-#					include <socket.h>
-#				endif /* HAVE_SOCKET_H */
-#			endif /* HAVE_SYS_SOCKET_H */
-#			ifdef HAVE_NETINET_IN_H
-#				include <netinet/in.h>
-#			endif /* HAVE_NETINET_IN_H */
-#			ifdef HAVE_NETLIB_H
-#				include <netlib.h>
-#			endif /* HAVE_NETLIB_H */
-#			ifdef HAVE_ARPA_INET_H
-#				include <arpa/inet.h>
-#			endif /* HAVE_ARPA_INET_H */
-#		endif /* VMS */
+#			ifdef HAVE_SOCKET_H
+#				include <socket.h>
+#			endif /* HAVE_SOCKET_H */
+#		endif /* HAVE_SYS_SOCKET_H */
+#		ifdef HAVE_NETINET_IN_H
+#			include <netinet/in.h>
+#		endif /* HAVE_NETINET_IN_H */
+#		ifdef HAVE_NETLIB_H
+#			include <netlib.h>
+#		endif /* HAVE_NETLIB_H */
+#		ifdef HAVE_ARPA_INET_H
+#			include <arpa/inet.h>
+#		endif /* HAVE_ARPA_INET_H */
 #	endif /* TLI */
 
 #	ifdef EXCELAN
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/trace.h tin-2.0.0/include/trace.h
--- tin-1.8.3/include/trace.h	2005-12-02 12:08:13.000000000 +0100
+++ tin-2.0.0/include/trace.h	2011-04-17 16:04:29.802974172 +0200
@@ -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-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff -Nurp --exclude='.bzr*' tin-1.8.3/include/version.h tin-2.0.0/include/version.h
--- tin-1.8.3/include/version.h	2007-02-01 14:11:14.000000000 +0100
+++ tin-2.0.0/include/version.h	2011-08-23 00:03:55.109313632 +0200
@@ -3,10 +3,10 @@
  *  Module    : version.h
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2004-10-19
+ *  Updated   : 2008-11-08
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -40,30 +40,21 @@
 
 #	define PRODUCT		"tin"
 #	ifndef TIN_AUTOCONF_H
-#		define VERSION		"1.8.3"
+#		define VERSION		"2.0.0"
 #	endif /* !TIN_AUTOCONF_H */
-#	define RELEASEDATE	"20070201"
-#	define RELEASENAME	"Scotasay"
+#	define RELEASEDATE	"20110823"
+#	define RELEASENAME	"Ardenistiel"
 /* config-file versions - must by dotted triples */
-#	define TINRC_VERSION	"1.3.7"
-#	define ATTRIBUTES_VERSION	"1.0.4"
+#	define TINRC_VERSION	"1.3.11"
+#	define ATTRIBUTES_VERSION	"1.0.7"
 #	define FILTER_VERSION	"1.0.0"
-#	define KEYMAP_VERSION	"1.0.6"
+#	define KEYMAP_VERSION	"1.0.9"
 #	define SERVERCONFIG_VERSION	"1.0.0"
 
-#	ifdef VMS
-#		define OSNAME	"VMS"
-#	endif /* VMS */
-
 #	ifdef M_UNIX
 #		ifdef __BEOS__
 #			define OSNAME	"BeOS"
 #		endif /* __BEOS__ */
-#		ifdef __CYGWIN__
-#			ifdef __WINNT__ /* also defined on Win95 *sigh* */
-#				define OSNAME	"Windows/NT"
-#			endif /*__WINNT__ */
-#		endif /* __CYGWIN__ */
 #		ifndef OSNAME
 #			define OSNAME	"UNIX"
 #		endif /* !OSNAME */
diff -Nurp --exclude='.bzr*' tin-1.8.3/install-sh tin-2.0.0/install-sh
--- tin-1.8.3/install-sh	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/install-sh	2011-04-17 16:06:16.819260031 +0200
@@ -0,0 +1,294 @@
+#! /bin/sh
+#
+# install - install a program, script, or datafile
+#
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.  It can only install one file at a time, a restriction
+# shared with many OS's install programs.
+
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit="${DOITPROG-}"
+
+
+# put in absolute paths if you don't have them in your path; or use env. vars.
+
+mvprog="${MVPROG-mv}"
+cpprog="${CPPROG-cp}"
+chmodprog="${CHMODPROG-chmod}"
+chownprog="${CHOWNPROG-chown}"
+chgrpprog="${CHGRPPROG-chgrp}"
+stripprog="${STRIPPROG-strip}"
+rmprog="${RMPROG-rm}"
+mkdirprog="${MKDIRPROG-mkdir}"
+
+transformbasename=""
+transform_arg=""
+instcmd="$mvprog"
+chmodcmd="$chmodprog 0755"
+chowncmd=""
+chgrpcmd=""
+stripcmd=""
+rmcmd="$rmprog -f"
+mvcmd="$mvprog"
+src=""
+dst=""
+dir_arg=""
+
+while [ x"$1" != x ]; do
+    case $1 in
+	-c) instcmd=$cpprog
+	    shift
+	    continue;;
+
+	-d) dir_arg=true
+	    shift
+	    continue;;
+
+	-m) chmodcmd="$chmodprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-o) chowncmd="$chownprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-g) chgrpcmd="$chgrpprog $2"
+	    shift
+	    shift
+	    continue;;
+
+	-s) stripcmd=$stripprog
+	    shift
+	    continue;;
+
+	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
+	    shift
+	    continue;;
+
+	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
+	    shift
+	    continue;;
+
+	*)  if [ x"$src" = x ]
+	    then
+		src=$1
+	    else
+		# this colon is to work around a 386BSD /bin/sh bug
+		:
+		dst=$1
+	    fi
+	    shift
+	    continue;;
+    esac
+done
+
+if [ x"$src" = x ]
+then
+	echo "$0: no input file specified" >&2
+	exit 1
+else
+	:
+fi
+
+if [ x"$dir_arg" != x ]; then
+	dst=$src
+	src=""
+
+	if [ -d "$dst" ]; then
+		instcmd=:
+		chmodcmd=""
+	else
+		instcmd=$mkdirprog
+	fi
+else
+
+# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
+# might cause directories to be created, which would be especially bad
+# if $src (and thus $dsttmp) contains '*'.
+
+	if [ -f "$src" ] || [ -d "$src" ]
+	then
+		:
+	else
+		echo "$0: $src does not exist" >&2
+		exit 1
+	fi
+
+	if [ x"$dst" = x ]
+	then
+		echo "$0: no destination specified" >&2
+		exit 1
+	else
+		:
+	fi
+
+# If destination is a directory, append the input filename; if your system
+# does not like double slashes in filenames, you may need to add some logic
+
+	if [ -d "$dst" ]
+	then
+		dst=$dst/`basename "$src"`
+	else
+		:
+	fi
+fi
+
+## this sed command emulates the dirname command
+dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
+
+# Make sure that the destination directory exists.
+#  this part is taken from Noah Friedman's mkinstalldirs script
+
+# Skip lots of stat calls in the usual case.
+if [ ! -d "$dstdir" ]; then
+defaultIFS='
+	'
+IFS="${IFS-$defaultIFS}"
+
+oIFS=$IFS
+# Some sh's can't handle IFS=/ for some reason.
+IFS='%'
+set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
+IFS=$oIFS
+
+pathcomp=''
+
+while [ $# -ne 0 ] ; do
+	pathcomp=$pathcomp$1
+	shift
+
+	if [ ! -d "$pathcomp" ] ;
+        then
+		$mkdirprog "$pathcomp"
+	else
+		:
+	fi
+
+	pathcomp=$pathcomp/
+done
+fi
+
+if [ x"$dir_arg" != x ]
+then
+	$doit $instcmd "$dst" &&
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
+else
+
+# If we're going to rename the final executable, determine the name now.
+
+	if [ x"$transformarg" = x ]
+	then
+		dstfile=`basename "$dst"`
+	else
+		dstfile=`basename "$dst" $transformbasename |
+			sed $transformarg`$transformbasename
+	fi
+
+# don't allow the sed command to completely eliminate the filename
+
+	if [ x"$dstfile" = x ]
+	then
+		dstfile=`basename "$dst"`
+	else
+		:
+	fi
+
+# Make a couple of temp file names in the proper directory.
+
+	dsttmp=$dstdir/#inst.$$#
+	rmtmp=$dstdir/#rm.$$#
+
+# Trap to clean up temp files at exit.
+
+	trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
+	trap '(exit $?); exit' 1 2 13 15
+
+# Move or copy the file name to the temp name
+
+	$doit $instcmd "$src" "$dsttmp" &&
+
+# and set any options; do chmod last to preserve setuid bits
+
+# If any of these fail, we abort the whole thing.  If we want to
+# ignore errors from any of these, just make sure not to ignore
+# errors from the above "$doit $instcmd $src $dsttmp" command.
+
+	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
+	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
+	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
+	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
+
+# Now remove or move aside any old file at destination location.  We try this
+# two ways since rm can't unlink itself on some systems and the destination
+# file might be busy for other reasons.  In this case, the final cleanup
+# might fail but the new file should still install successfully.
+
+{
+	if [ -f "$dstdir/$dstfile" ]
+	then
+		$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
+		$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
+		{
+		  echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
+		  (exit 1); exit
+		}
+	else
+		:
+	fi
+} &&
+
+# Now rename the file to the real destination.
+
+	$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
+
+fi &&
+
+# The final little trick to "correctly" pass the exit status to the exit trap.
+
+{
+	(exit 0); exit
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/install.sh tin-2.0.0/install.sh
--- tin-1.8.3/install.sh	2005-06-28 10:31:19.000000000 +0200
+++ tin-2.0.0/install.sh	1970-01-01 01:00:00.000000000 +0100
@@ -1,294 +0,0 @@
-#! /bin/sh
-#
-# install - install a program, script, or datafile
-#
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd=$cpprog
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd=$stripprog
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "$0: no input file specified" >&2
-	exit 1
-else
-	:
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-
-	if [ -d "$dst" ]; then
-		instcmd=:
-		chmodcmd=""
-	else
-		instcmd=$mkdirprog
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f "$src" ] || [ -d "$src" ]
-	then
-		:
-	else
-		echo "$0: $src does not exist" >&2
-		exit 1
-	fi
-
-	if [ x"$dst" = x ]
-	then
-		echo "$0: no destination specified" >&2
-		exit 1
-	else
-		:
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d "$dst" ]
-	then
-		dst=$dst/`basename "$src"`
-	else
-		:
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo "$dst" | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-	'
-IFS="${IFS-$defaultIFS}"
-
-oIFS=$IFS
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS=$oIFS
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp=$pathcomp$1
-	shift
-
-	if [ ! -d "$pathcomp" ] ;
-        then
-		$mkdirprog "$pathcomp"
-	else
-		:
-	fi
-
-	pathcomp=$pathcomp/
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd "$dst" &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dst"; else : ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dst"; else : ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dst"; else : ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dst"; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ]
-	then
-		dstfile=`basename "$dst"`
-	else
-		dstfile=`basename "$dst" $transformbasename |
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ]
-	then
-		dstfile=`basename "$dst"`
-	else
-		:
-	fi
-
-# Make a couple of temp file names in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
-	rmtmp=$dstdir/#rm.$$#
-
-# Trap to clean up temp files at exit.
-
-	trap 'status=$?; rm -f "$dsttmp" "$rmtmp" && exit $status' 0
-	trap '(exit $?); exit' 1 2 13 15
-
-# Move or copy the file name to the temp name
-
-	$doit $instcmd "$src" "$dsttmp" &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd "$dsttmp"; else :;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd "$dsttmp"; else :;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd "$dsttmp"; else :;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd "$dsttmp"; else :;fi &&
-
-# Now remove or move aside any old file at destination location.  We try this
-# two ways since rm can't unlink itself on some systems and the destination
-# file might be busy for other reasons.  In this case, the final cleanup
-# might fail but the new file should still install successfully.
-
-{
-	if [ -f "$dstdir/$dstfile" ]
-	then
-		$doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null ||
-		$doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null ||
-		{
-		  echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		  (exit 1); exit
-		}
-	else
-		:
-	fi
-} &&
-
-# Now rename the file to the real destination.
-
-	$doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-
-fi &&
-
-# The final little trick to "correctly" pass the exit status to the exit trap.
-
-{
-	(exit 0); exit
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/intl/Makefile.in tin-2.0.0/intl/Makefile.in
--- tin-1.8.3/intl/Makefile.in	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/intl/Makefile.in	2011-06-08 01:01:09.942630235 +0200
@@ -39,17 +39,16 @@ subdir = intl
 
 INSTALL = @INSTALL@
 INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-mkinstalldirs = $(SHELL) `case "$(MKINSTALLDIRS)" in /*) echo "$(MKINSTALLDIRS)" ;; *) echo "$(top_builddir)/$(MKINSTALLDIRS)" ;; esac`
+mkinstalldirs = mkdir -p
 
 l = @INTL_LIBTOOL_SUFFIX_PREFIX@
 
-ARCHIVE = @AR@ @AR_OPTS@
+ARCHIVE = @AR@ @ARFLAGS@
 CC = @CC@
 LIBTOOL = @LIBTOOL@
 RANLIB = @RANLIB@
 YACC = @INTLBISON@ -y -d
-YFLAGS = --name-prefix=__gettext
+YFLAGS = -p __gettext
 
 x = @EXEEXT@
 o = .@OBJEXT@
@@ -98,7 +97,7 @@ LTV_AGE=0
 	$(LIBTOOL) --mode=compile $(COMPILE) $<
 
 .y.c:
-	$(YACC) $(YFLAGS) --output $@ $<
+	$(YACC) $(YFLAGS) -o $@ $<
 	rm -f $*.h
 
 .sin.sed:
diff -Nurp --exclude='.bzr*' tin-1.8.3/intl/plural.y tin-2.0.0/intl/plural.y
--- tin-1.8.3/intl/plural.y	2005-06-28 10:31:29.000000000 +0200
+++ tin-2.0.0/intl/plural.y	2011-06-08 01:01:52.985266543 +0200
@@ -48,7 +48,7 @@
 #define YYPARSE_PARAM	arg
 %}
 %pure_parser
-%expect 10
+%expect 7
 
 %union {
   unsigned long int num;
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/Build tin-2.0.0/libcanlock/Build
--- tin-1.8.3/libcanlock/Build	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/Build	1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
-#!/bin/sh
-
-if [ me$1ow = mecleanow ] ; then
-	rm *.o *.a endian endian.h canlocktest hmactest
-else
-#	CC="cc"
-	CC="${CC-cc}"
-	echo 'Determining endianness...'
-	${CC} -o endian endian.c
-	./endian > endian.h
-	
-	echo -n "Building: SHA-1 "
-	${CC} -c -o sha1.o sha1.c
-	echo -n "MD5 "
-	${CC} -c -o md5.o md5.c
-	echo -n "HMAC-SHA1 "
-	${CC} -c -o hmac_sha1.o hmac_sha1.c
-	echo -n "HMAC-MD5 "
-	${CC} -c -o hmac_md5.o hmac_md5.c
-	echo -n "Base64 "
-	${CC} -c -o base64.o base64.c
-	echo "canlock"
-	${CC} -c -o canlock_misc.o canlock_misc.c
-	${CC} -c -o canlock_sha1.o canlock_sha1.c
-	${CC} -c -o canlock_md5.o canlock_md5.c
-
-	echo "Archiving..."
-	ar -r libcanlock.a\
-		sha1.o hmac_sha1.o\
-		md5.o hmac_md5.o\
-		base64.o\
-		canlock_misc.o canlock_sha1.o canlock_md5.o
-
-	echo "Indexing..."
-	ranlib libcanlock.a
-
-	echo "Building test programs..."
-	${CC} -o hmactest  hmactest.c -L. -lcanlock
-	${CC} -o canlocktest canlocktest.c  -L. -lcanlock
-	
-	echo "Done."
-
-fi
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/CHANGES tin-2.0.0/libcanlock/CHANGES
--- tin-1.8.3/libcanlock/CHANGES	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/CHANGES	2011-04-17 16:04:41.372734844 +0200
@@ -1,24 +1,49 @@
+VERSION 2a:
+
+11 Aug 2003
+        - Only very minor changes.  The makefile was tweaked slightly
+          for increased portability, and a typo in lock_strip was fixed.
+
+VERSION 2:
+
+10 Aug 2003
+        - Replaced the SHA-1 library with the source code from RFC 1374.
+          The old code had problems on PowerPC that I was too lazy to hunt
+          down and fix.
+        - Replaced the ISC version of Base64 with an implementation
+          produced by Sweden's Royal Institute of Technology (KTH). The
+          old functions carried a weird patent disclaimer from IBM, while
+          the new ones use a nice simple non-scary BSD license.
+        - The md5_key(), md5_lock() and md5_verify() functions have been
+          removed.  As far as I can tell they weren't being used.
+        - Added a Makefile instead of the Build thingy.
+        - Did a bunch of cleanup to get rid of various warnings.
+
+VERSION 1:
+
 24 Sep 1998
-	- Now trying to be compatible with an updated cancel lock draft.
-	- We now generate the lock by hashing the Base64 encoding of the
-	  cancel key, instead of the underlying binary digest.
-	- the xxx_key() and xxx_lock() functions now add the md5: or sha1:
-	  tag to the lock.
-	- lock_strip_alpha() now discards pesky clue strings and normalizes
-	  the case of type codes.
-	- the old lock_strip() that returned numeric codes will be going
-	  away.
+        - Now trying to be compatible with an updated cancel lock draft.
+        - We now generate the lock by hashing the Base64 encoding of the
+          cancel key, instead of the underlying binary digest.
+        - the xxx_key() and xxx_lock() functions now add the md5: or sha1:
+          tag to the lock.
+        - lock_strip_alpha() now discards pesky clue strings and normalizes
+          the case of type codes.
+        - the old lock_strip() that returned numeric codes will be going
+          away.
+
+VERSION 0:
 
 21 Sep 1998
-	- Endianness is now automatically figured out by build.
+        - Endianness is now automatically figured out by build.
 
 19 Sep 1998
-	- Added MD5 hashes.
-	- We now accommodate the possibility that strings will be identified
-	  by name instead of number, those darned drafts will get you every
-	  time.
-	- Make changes to the hmac stuff to account for GCC weirdness; some
-	  check values were not coming out correctly, but they are now.
+        - Added MD5 hashes.
+        - We now accommodate the possibility that strings will be identified
+          by name instead of number, those darned drafts will get you every
+          time.
+        - Make changes to the hmac stuff to account for GCC weirdness; some
+          check values were not coming out correctly, but they are now.
 
 15 Sep 1998
-	- Initial, just SHA-1.
+        - Initial, just SHA-1.
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/HOWTO tin-2.0.0/libcanlock/HOWTO
--- tin-1.8.3/libcanlock/HOWTO	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/HOWTO	2011-04-17 16:04:41.440745194 +0200
@@ -0,0 +1,63 @@
+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, or some other unique per-article header if IDs aren't allowed
+by your server.  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: sha1:%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: sha1:%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 Base64 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 sha1 (the only kind this library handles).
+  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 --exclude='.bzr*' tin-1.8.3/libcanlock/MANIFEST tin-2.0.0/libcanlock/MANIFEST
--- tin-1.8.3/libcanlock/MANIFEST	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/MANIFEST	1970-01-01 01:00:00.000000000 +0100
@@ -1,25 +0,0 @@
-MANIFEST	You're lookin' at me.
-README		Read this.  These are your installation instructions.
-base64.c	Borrowed from ISC BIND, creates and decodes Base64 strings.
-base64.h
-build*		This is my lame excuse for a makefile.
-canlock.c	The cancel lock functions live in here.
-canlock.h
-canlocktest.c	A program to check that the library compiled correctly.
-hmac_sha1.c	This implements HMAC using SHA-1 hashes.
-hmac_sha1.h
-hmactest.c	Test the HMAC functions.
-sha1.c		A public domain SHA-1 implementation.
-sha1.h
-
-doc/
-HOWTO		A short walk through the library to explain how it is
-		used.
-
-draft-ietf-usefor-cancel-lock-00.txt
-		The draft that explains the cancel lock system.
-
-rfc2104.txt	A description of HMAC.
-
-rfc2202.txt	Sample results so you can verify that HMAC/SHA-1 is
-		operating correctly.
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/Makefile.in tin-2.0.0/libcanlock/Makefile.in
--- tin-1.8.3/libcanlock/Makefile.in	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/Makefile.in	2011-04-17 16:04:41.508755543 +0200
@@ -0,0 +1,50 @@
+CFLAGS	= @CFLAGS@
+CPPFLAGS = @DEFS@ -Iinclude -I../include @CPPFLAGS@
+LDFLAGS	= @LDFLAGS@ -L. -lcanlock
+CC	= @CC@
+PRELIB	= @LIB_PREFIX@
+o	= .@OBJEXT@
+ARCHIVE = @AR@ @ARFLAGS@
+RANLIB  = @RANLIB@
+
+LIBOBJS = src/sha1.o src/hmac_sha1.o src/base64.o src/canlock.o
+LOCKLIB = $(PRELIB)canlock.a
+
+.c$o :
+	@SHOW_CC@
+	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@
+
+all : hmactest canlocktest
+
+hmactest : t/hmactest.c $(LOCKLIB)
+	@SHOW_CC@
+	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) t/$@.c -o $@ $(LDFLAGS)
+
+canlocktest : t/canlocktest.c $(LOCKLIB)
+	@SHOW_CC@
+	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) t/$@.c -o $@ $(LDFLAGS)
+
+src/base64.o : src/base64.c include/base64.h
+src/canlock.o : src/canlock.c include/canlock.h
+src/hmac_sha1.o : src/hmac_sha1.c include/hmac_sha1.h
+src/sha1.o : src/sha1.c include/sha1.h
+
+lib : $(LOCKLIB)
+$(LOCKLIB) : $(LIBOBJS)
+	@-$(RM) -f $(LOCKLIB)
+	$(ARCHIVE) $(LOCKLIB) $(LIBOBJS)
+	$(RANLIB) $(LOCKLIB)
+
+clean :
+	@-rm -f src/*.o t/*.o t/*.out *.gmon gmon.*
+
+distclean : clean
+	@-rm -f *.a canlocktest hmactest *.exe *.h
+
+test : all
+	@echo "hmactest: "
+	@./hmactest > t/hmactest.out || echo hmm
+	@diff t/hmactest.shouldbe t/hmactest.out && echo " Pass." || echo " **FAIL**"
+	@echo "canlocktest: "
+	@./canlocktest > t/canlocktest.out
+	@diff t/canlocktest.shouldbe t/canlocktest.out && echo " Pass." || echo " **FAIL**"
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/README tin-2.0.0/libcanlock/README
--- tin-1.8.3/libcanlock/README	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/README	2011-04-17 16:04:41.484751890 +0200
@@ -1,44 +1,45 @@
 libcanlock - a library for creating and verifying cancel locks.
 
+
 Copyright stuff:
 
-	sha1.c was written by Steve Reid and placed in the public
-	domain.
+    sha1.c is basically the sample code from RFC 3174 from Donald
+    Eastlake and Paul Jones, and carries a BSD-ish license from the
+    Internet Society.
 
-	md5.c was written by Colin Plumb and placed in the public
-	domain.
+    base64.c carries a BSD license from KTH.
 
-	base64.c is copyrighted by the Internet Software Consortium. 
-	The copyright notice allows for unlimited distribution if
-	credit is given.  Read the file itself for details.
-
-	hmac*.c, canlock*.c, hmactest.c and canlocktest.c were written
-	by Fluffy, Ruler of All Usenet, and placed in the public
-	domain.
+    hmac_sha1.c, canlock.c, hmactest.c and canlocktest.c were written by
+    Greg Andruk, and carry an MIT style license.
 
 
 How to compile it:
 
-	If you are lucky, it will be enough to run the build script. 
-	But you may not be that lucky.
-     
-	As shipped, this library assumes a little-endian 32-bit system
-	(i386 family, that is).  You may have to twiddle with
-	LITTLE_ENDIAN in sha1.h to make everything work right.  If
-	you're not running on a 32-bit system, I don't know what if
-	anything you may have to do to get all the little bits in
-	order.
-	
-	Once you've run the build script, check your work by running
-	hmactest.  If the expected and actual digests are different,
-	your endian-ness or something else is wrong.
-	
-
-	After hmactest is giving you the right results, run
-	canlocktest.
-
-
-The canlocktest source code should give you a pretty good idea of how
-the functions work.  See the doc directory for relevant RFCs and stuff.
+    If you are lucky, it will be enough to unpack the archive, change to
+    it top directory and run make.
+        
+    You can also:
+
+        make test
+            to insure the library works as Fluffy intended
+        
+        make clean
+                to get rid of stray build gunk
+            
+        make nuke
+                to return the directory to its lovely pristine condition
+           
+    The libcanlock.a that will be produced is what you want to link into
+    your newsreader or whatever.
+
+
+Random blabbage:
+
+    This version compiled and ran correctly on x86, PowerPC, Itanium,
+    PA-RISC and Alpha, so hopefully it's now reasonably portable.
+
+    The canlocktest source code should give you a pretty good idea of
+    how the functions work.  See the doc directory for relevant RFCs and
+    stuff.
 
 Meow.
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/base64.c tin-2.0.0/libcanlock/base64.c
--- tin-1.8.3/libcanlock/base64.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/base64.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,324 +0,0 @@
-/* 
- * Copyright (c) 1996, 1998 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
- * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-/* 
- * Portions Copyright (c) 1995 by International Business Machines, Inc.
- *
- * International Business Machines, Inc. (hereinafter called IBM) grants
- * permission under its copyrights to use, copy, modify, and distribute this
- * Software with or without fee, provided that the above copyright notice and
- * all paragraphs of this notice appear in all copies, and that the name of IBM
- * not be used in connection with the marketing of any product incorporating
- * the Software or modifications thereof, without specific, written prior
- * permission.
- *
- * To the extent it has a right to do so, IBM grants an immunity from suit
- * under its patents, if any, for the use, sale or manufacture of products to
- * the extent that such products are used for performing Domain Name System
- * dynamic updates in TCP/IP networks by means of the Software.  No immunity is
- * granted for any product per se or for any other function of any product.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
- * PARTICULAR PURPOSE.  IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
- * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
- * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
- */
-
-#if !defined(LINT) && !defined(CODECENTER)
-static char     rcsid[] = "$Id: base64.c,v 8.5 1998/03/27 00:17:46 halley Exp $";
-#endif				/* not lint */
-
-/* #include "port_before.h" */
-
-#include <sys/types.h>
-/* #include <sys/param.h> */
-/* #include <sys/socket.h> */
-
-/* #include <netinet/in.h> */
-/* #include <arpa/inet.h> */
-/* #include <arpa/nameser.h> */
-
-/* #include <ctype.h> */
-/* #include <resolv.h> */
-#include <stdio.h>
-/* #include <stdlib.h> */
-#include <string.h>
-
-/* #include "port_after.h" */
-
-#define Assert(Cond) if (!(Cond)) abort()
-
-static const char Base64[] =
-"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-static const char Pad64 = '=';
-
-/*
- * (From RFC1521 and draft-ietf-dnssec-secext-03.txt) The following
- * encoding technique is taken from RFC 1521 by Borenstein and Freed.  It
- * is reproduced here in a slightly edited form for convenience.
- * 
- * A 65-character subset of US-ASCII is used, enabling 6 bits to be
- * represented per printable character. (The extra 65th character, "=", is 
- * used to signify a special processing function.)
- * 
- * The encoding process represents 24-bit groups of input bits as output
- * strings of 4 encoded characters. Proceeding from left to right, a
- * 24-bit input group is formed by concatenating 3 8-bit input groups.
- * These 24 bits are then treated as 4 concatenated 6-bit groups, each of
- * which is translated into a single digit in the base64 alphabet.
- * 
- * Each 6-bit group is used as an index into an array of 64 printable
- * characters. The character referenced by the index is placed in the
- * output string.
- * 
- * Table 1: The Base64 Alphabet
- * 
- *
- *                        Table 1: The Base64 Alphabet
- *
- *     Value Encoding  Value Encoding  Value Encoding  Value Encoding
- *         0 A            17 R            34 i            51 z
- *         1 B            18 S            35 j            52 0
- *         2 C            19 T            36 k            53 1
- *         3 D            20 U            37 l            54 2
- *         4 E            21 V            38 m            55 3
- *         5 F            22 W            39 n            56 4
- *         6 G            23 X            40 o            57 5
- *         7 H            24 Y            41 p            58 6
- *         8 I            25 Z            42 q            59 7
- *         9 J            26 a            43 r            60 8
- *        10 K            27 b            44 s            61 9
- *        11 L            28 c            45 t            62 +
- *        12 M            29 d            46 u            63 /
- *        13 N            30 e            47 v
- *        14 O            31 f            48 w         (pad) =
- *        15 P            32 g            49 x
- *        16 Q            33 h            50 y
- *
- * 
- * Special processing is performed if fewer than 24 bits are available at
- * the end of the data being encoded.  A full encoding quantum is always
- * completed at the end of a quantity.  When fewer than 24 input bits are
- * available in an input group, zero bits are added (on the right) to form 
- * an integral number of 6-bit groups.  Padding at the end of the data is
- * performed using the '=' character.
- * 
- * Since all base64 input is an integral number of octets, only the
- * -------------------------------------------------
- *  following cases can arise:  (1) the final quantum of encoding input is 
- * an integral multiple of 24 bits; here, the final unit of encoded output 
- * will be an integral multiple of 4 characters with no "=" padding, (2)
- * the final quantum of encoding input is exactly 8 bits; here, the final
- * unit of encoded output will be two characters followed by two "="
- * padding characters, or (3) the final quantum of encoding input is
- * exactly 16 bits; here, the final unit of encoded output will be three
- * characters followed by one "=" padding character.
- */
-
-int
-b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize)
-{
-    size_t          datalength = 0;
-    u_char          input[3];
-    u_char          output[4];
-    size_t          i;
-
-    while (2 < srclength) {
-	input[0] = *src++;
-	input[1] = *src++;
-	input[2] = *src++;
-	srclength -= 3;
-
-	output[0] = input[0] >> 2;
-	output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-	output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-	output[3] = input[2] & 0x3f;
-	Assert(output[0] < 64);
-	Assert(output[1] < 64);
-	Assert(output[2] < 64);
-	Assert(output[3] < 64);
-
-	if (datalength + 4 > targsize)
-	    return (-1);
-	target[datalength++] = Base64[output[0]];
-	target[datalength++] = Base64[output[1]];
-	target[datalength++] = Base64[output[2]];
-	target[datalength++] = Base64[output[3]];
-    }
-
-    /* Now we worry about padding. */
-    if (0 != srclength) {
-	/* Get what's left. */
-	input[0] = input[1] = input[2] = '\0';
-	for (i = 0; i < srclength; i++)
-	    input[i] = *src++;
-
-	output[0] = input[0] >> 2;
-	output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-	output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-	Assert(output[0] < 64);
-	Assert(output[1] < 64);
-	Assert(output[2] < 64);
-
-	if (datalength + 4 > targsize)
-	    return (-1);
-	target[datalength++] = Base64[output[0]];
-	target[datalength++] = Base64[output[1]];
-	if (srclength == 1)
-	    target[datalength++] = Pad64;
-	else
-	    target[datalength++] = Base64[output[2]];
-	target[datalength++] = Pad64;
-    }
-    if (datalength >= targsize)
-	return (-1);
-    target[datalength] = '\0';	/* Returned value doesn't count \0. */
-    return (datalength);
-}
-
-/*
- * skips all whitespace anywhere. converts characters, four at a time,
- * starting at (or after) src from base - 64 numbers into three 8 bit
- * bytes in the target area. it returns the number of data bytes stored at 
- * the target, or -1 on error.
- */
-
-int
-b64_pton(src, target, targsize)
-    char const     *src;
-    u_char         *target;
-    size_t          targsize;
-{
-    int             tarindex,
-                    state,
-                    ch;
-    char           *pos;
-
-    state = 0;
-    tarindex = 0;
-
-    while ((ch = *src++) != '\0') {
-	if (isspace(ch))	/* Skip whitespace anywhere. */
-	    continue;
-
-	if (ch == Pad64)
-	    break;
-
-	pos = strchr(Base64, ch);
-	if (pos == 0)		/* A non-base64 character. */
-	    return (-1);
-
-	switch (state) {
-	case 0:
-	    if (target) {
-		if ((size_t) tarindex >= targsize)
-		    return (-1);
-		target[tarindex] = (pos - Base64) << 2;
-	    }
-	    state = 1;
-	    break;
-	case 1:
-	    if (target) {
-		if ((size_t) tarindex + 1 >= targsize)
-		    return (-1);
-		target[tarindex] |= (pos - Base64) >> 4;
-		target[tarindex + 1] = ((pos - Base64) & 0x0f)
-		    << 4;
-	    }
-	    tarindex++;
-	    state = 2;
-	    break;
-	case 2:
-	    if (target) {
-		if ((size_t) tarindex + 1 >= targsize)
-		    return (-1);
-		target[tarindex] |= (pos - Base64) >> 2;
-		target[tarindex + 1] = ((pos - Base64) & 0x03)
-		    << 6;
-	    }
-	    tarindex++;
-	    state = 3;
-	    break;
-	case 3:
-	    if (target) {
-		if ((size_t) tarindex >= targsize)
-		    return (-1);
-		target[tarindex] |= (pos - Base64);
-	    }
-	    tarindex++;
-	    state = 0;
-	    break;
-	default:
-	    abort();
-	}
-    }
-
-    /* 
-     * We are done decoding Base-64 chars.  Let's see if we ended
-     * on a byte boundary, and/or with erroneous trailing characters.
-     */
-
-    if (ch == Pad64) {		/* We got a pad char. */
-	ch = *src++;		/* Skip it, get next. */
-	switch (state) {
-	case 0:		/* Invalid = in first position */
-	case 1:		/* Invalid = in second position */
-	    return (-1);
-
-	case 2:		/* Valid, means one byte of info */
-	    /* Skip any number of spaces. */
-	    for ((void) NULL; ch != '\0'; ch = *src++)
-		if (!isspace(ch))
-		    break;
-	    /* Make sure there is another trailing = sign. */
-	    if (ch != Pad64)
-		return (-1);
-	    ch = *src++;	/* Skip the = */
-	    /* Fall through to "single trailing =" case. */
-	    /* FALLTHROUGH */
-
-	case 3:		/* Valid, means two bytes of info */
-	    /* 
-	     * We know this char is an =.  Is there anything but
-	     * whitespace after it?
-	     */
-	    for ((void) NULL; ch != '\0'; ch = *src++)
-		if (!isspace(ch))
-		    return (-1);
-
-	    /* 
-	     * Now make sure for cases 2 and 3 that the "extra"
-	     * bits that slopped past the last full byte were
-	     * zeros.  If we don't check them, they become a
-	     * subliminal channel.
-	     */
-	    if (target && target[tarindex] != 0)
-		return (-1);
-	}
-    } else {
-	/* 
-	 * We ended by seeing the end of the string.  Make sure we
-	 * have no partial bytes lying around.
-	 */
-	if (state != 0)
-	    return (-1);
-    }
-
-    return (tarindex);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/base64.h tin-2.0.0/libcanlock/base64.h
--- tin-1.8.3/libcanlock/base64.h	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/base64.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,2 +0,0 @@
-int             b64_pton(char *src, u_char * target, size_t targsize);
-int             b64_ntop(u_char * src, size_t srclength, char *target, size_t targsize);
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/canlock.h tin-2.0.0/libcanlock/canlock.h
--- tin-1.8.3/libcanlock/canlock.h	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/canlock.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-unsigned char *sha_key(char *secret, int seclen, char *message, int msglen);
-unsigned char *sha_lock(char *secret, int seclen, char *message, int msglen);
-int sha_verify(unsigned char *key, unsigned char *lock);
-
-unsigned char *md5_key(char *secret, int seclen, char *message, int msglen);
-unsigned char *md5_lock(char *secret, int seclen, char *message, int msglen);
-int md5_verify(unsigned char *key, unsigned char *lock);
-
-unsigned char *lock_strip(unsigned char *key, char *type);
-unsigned char *lock_strip_alpha(unsigned char *key, char *type);
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/canlock_md5.c tin-2.0.0/libcanlock/canlock_md5.c
--- tin-1.8.3/libcanlock/canlock_md5.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/canlock_md5.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,81 +0,0 @@
-/* 
- * Functions to implement type MD5 cancel locks.  Written by Fluffy, Ruler
- * of All Usenet, and placed into the public domain.  Meow.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "base64.h"
-#include "md5.h"
-#include "hmac_md5.h"
-#include "canlock.h"
-
-#define BUFFSIZE 40
-
-/* 
- * Generate an MD5 cancel key.
- */
-unsigned char *
- md5_key(char *secret, int seclen, char *message, int msglen)
-{
-    unsigned char *cankey;
-    unsigned char *canlock;
-    unsigned char *hmacbuff;
-    MD5_CTX hash_ctx;
-
-    cankey = (char *) malloc(BUFFSIZE);
-
-    hmacbuff = hmac_md5(secret, seclen, message, msglen);
-    strcpy(cankey, "md5:");
-    (void) b64_ntop(hmacbuff, MD5_LENGTH, cankey + 4, BUFFSIZE);
-
-    return (cankey);
-}
-
-/* 
- * Generate an MD5 cancel lock.
- */
-unsigned char *
- md5_lock(char *secret, int seclen, char *message, int msglen)
-{
-    unsigned char *cankey, *canlock;
-    unsigned char hmacbuff[MD5_LENGTH];
-    unsigned char junk[MD5_LENGTH];
-    MD5_CTX hash_ctx;
-
-    cankey = lock_strip_alpha(md5_key(secret, seclen, message, msglen), junk);
-
-    canlock = (char *) malloc(BUFFSIZE);
-    MD5Init(&hash_ctx);
-    MD5Update(&hash_ctx, cankey, strlen(cankey));
-    MD5Final(hmacbuff, &hash_ctx);
-    strcpy(canlock, "md5:");
-    (void) b64_ntop(hmacbuff, MD5_LENGTH, canlock + 4, BUFFSIZE);
-
-    return (canlock);
-}
-
-/* 
- * Verify an SHA cancel key against a cancel lock.
- * Returns 0 on success, nonzero on failure.
- */
-int md5_verify(unsigned char *key, unsigned char *lock)
-{
-    unsigned char binkey[MD5_LENGTH + 4];
-    unsigned char templock[BUFFSIZE];
-    unsigned char hmacbuff[MD5_LENGTH];
-    MD5_CTX hash_ctx;
-    int verified;
-
-    /* Convert the key back into binary */
-    (void) b64_pton(key, binkey, (MD5_LENGTH + 4));
-
-    MD5Init(&hash_ctx);
-    MD5Update(&hash_ctx, key, strlen(key));
-    MD5Final(hmacbuff, &hash_ctx);
-    (void) b64_ntop(hmacbuff, MD5_LENGTH, templock, BUFFSIZE);
-
-    verified = strcmp(templock, lock);
-
-    return (verified);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/canlock_misc.c tin-2.0.0/libcanlock/canlock_misc.c
--- tin-1.8.3/libcanlock/canlock_misc.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/canlock_misc.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,55 +0,0 @@
-/* 
- * Functions to implement cancel locks.  Written by Fluffy, Ruler of All
- * Usenet, and placed into the public domain.  Meow.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "base64.h"
-
-/* 
- * Return a stripped cancel lock, that is, with the xx: prefix
- * removed, else NULL on failure.
- * type is set to the lock type, else zero on failure.
- */
-unsigned char *
- lock_strip_alpha(unsigned char *key, unsigned char *type)
-{
-    unsigned char *c;
-    unsigned char typetext[256], keyout[256];
-    int i;
-
-    strcpy(typetext, "");
-    strcpy(keyout, "");
-
-    while ((*key != ':') && (*key != '\0')) {
-	strncat(typetext, key++, 1);
-    }
-    if (*key == '\0') {
-	type = NULL;
-    } else {
-	key++;
-	for (c = key; *c != '\0'; c++) {
-	    if (*c == ':')
-		*c = '\0';
-	}
-
-	strcpy(type, typetext);
-	for (c = type; *c != '\0'; ++c) {
-	    *c = tolower(*c);
-	}
-    }
-    return (key);
-}
-
-
-/* 
- * Return a stripped cancel lock, that is, with the xx: prefix
- * removed, else NULL on failure.
- * type is set to the lock type, else zero on failure.
- */
-unsigned char *
- lock_strip(unsigned char *key, char *type)
-{
-    return (lock_strip_alpha(key, type));
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/canlock_sha1.c tin-2.0.0/libcanlock/canlock_sha1.c
--- tin-1.8.3/libcanlock/canlock_sha1.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/canlock_sha1.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,81 +0,0 @@
-/* 
- * Functions to implement type SHA1 cancel locks.  Written by Fluffy, Ruler
- * of All Usenet, and placed into the public domain.  Meow.
- */
-
-#include <stdio.h>
-#include <sys/types.h>
-#include "base64.h"
-#include "sha1.h"
-#include "hmac_sha1.h"
-#include "canlock.h"
-
-#define BUFFSIZE 40
-
-/* 
- * Generate an SHA1 cancel key.
- */
-unsigned char *
- sha_key(char *secret, int seclen, char *message, int msglen)
-{
-    unsigned char *cankey;
-    unsigned char *canlock;
-    unsigned char *hmacbuff;
-    SHA1_CTX hash_ctx;
-
-    cankey = (char *) malloc(BUFFSIZE);
-
-    hmacbuff = hmac_sha1(secret, seclen, message, msglen);
-    strcpy(cankey, "sha1:");
-    (void) b64_ntop(hmacbuff, SHA1_LENGTH, cankey + 5, BUFFSIZE);
-
-    return (cankey);
-}
-
-/* 
- * Generate an SHA1 cancel lock.
- */
-unsigned char *
- sha_lock(char *secret, int seclen, char *message, int msglen)
-{
-    unsigned char *cankey, *canlock;
-    unsigned char hmacbuff[SHA1_LENGTH];
-    unsigned char junk[SHA1_LENGTH];
-    SHA1_CTX hash_ctx;
-
-    cankey = lock_strip_alpha(sha_key(secret, seclen, message, msglen), junk);
-
-    canlock = (char *) malloc(BUFFSIZE);
-    SHA1Init(&hash_ctx);
-    SHA1Update(&hash_ctx, cankey, strlen(cankey));
-    SHA1Final(hmacbuff, &hash_ctx);
-    strcpy(canlock, "sha1:");
-    (void) b64_ntop(hmacbuff, SHA1_LENGTH, canlock + 5, BUFFSIZE);
-
-    return (canlock);
-}
-
-/* 
- * Verify an SHA cancel key against a cancel lock.
- * Returns 0 on success, nonzero on failure.
- */
-int sha_verify(unsigned char *key, unsigned char *lock)
-{
-    unsigned char binkey[SHA1_LENGTH + 4];
-    unsigned char templock[BUFFSIZE];
-    unsigned char hmacbuff[SHA1_LENGTH];
-    SHA1_CTX hash_ctx;
-    int verified;
-
-    /* Convert the key back into binary */
-    (void) b64_pton(key, binkey, (SHA1_LENGTH + 4));
-
-    SHA1Init(&hash_ctx);
-    SHA1Update(&hash_ctx, key, strlen(key));
-    SHA1Final(hmacbuff, &hash_ctx);
-    (void) b64_ntop(hmacbuff, SHA1_LENGTH, templock, BUFFSIZE);
-
-    verified = strcmp(templock, lock);
-
-    return (verified);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/canlocktest.c tin-2.0.0/libcanlock/canlocktest.c
--- tin-1.8.3/libcanlock/canlocktest.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/canlocktest.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,106 +0,0 @@
-/* 
- * canlocktest.c - just checking.
- * 
- * This program doesn't really do anything but lightly exercise all the
- * library functions, so you can make sure it all compiled correctly. 
- * Everything's kept simple so that you can also see how they would be
- * called in a real application.
- */
-#include <stdio.h>
-#include <sys/types.h>
-#if 0
-// #include "sha1.h"
-// #include "md5.h"
-#endif /* 0 */
-#include "canlock.h"
-
-#define BUFFSIZE 512
-
-void checker(char *key, char *lock)
-{
-    int r;
-    char *rawkey, *rawlock;
-    char keytype[BUFFSIZE], locktype[BUFFSIZE];
-
-    printf("L %s K %s ", lock, key);
-
-    rawkey = lock_strip_alpha(key, keytype);
-    rawlock = lock_strip_alpha(lock, locktype);
-
-    if (!strcmp(keytype, locktype)) {
-	if (!strcmp(keytype, "md5")) {
-	    if (!md5_verify(rawkey, rawlock))
-		printf("md5 OK\n");
-	    else
-		printf("md5 no\n");
-	} else if (!strcmp(keytype, "sha1")) {
-	    if (!sha_verify(rawkey, rawlock))
-		printf("sha1 OK\n");
-	    else
-		printf("sha1 no\n");
-	} else
-	    printf("unknown\n");
-    } else {
-	printf("Mismatch %s %s\n", keytype, locktype);
-    }
-}
-
-
-int main()
-{
-    unsigned char cankey[256];
-    unsigned char canlock[256];
-    unsigned char *lkey, *llock;
-    unsigned char secret[] = "fluffy";
-    unsigned char message[] = "<lkr905851929.22670@meow.invalid>";
-    unsigned char junk[32], junk2[32];
-
-    printf("Secret %s\n", secret);
-    printf("Message %s\n", message);
-
-    llock = sha_lock(secret, strlen(secret), message, strlen(message));
-    lkey = sha_key(secret, strlen(secret), message, strlen(message));
-
-    printf("%s%s %s\n", "SHA Expect Lock/Key:\n",
-	   "L sha1:ScU1gyAi9bd/aFEOyzg4m99lwXs=",
-	   "K sha1:C1Me/4n0l/V778Ih3J2UnhAoHrA=");
-
-    checker(lkey, llock);
-    printf("---\n");
-
-    llock = md5_lock(secret, strlen(secret), message, strlen(message));
-    lkey = md5_key(secret, strlen(secret), message, strlen(message));
-
-    printf("%s%s %s\n", "MD5 Expect Lock/Key:\n",
-	   "L md5:equ7DQVveXcZpqwCiMflmQ==",
-	   "K md5:ByhbX+72NZC1xZdiPBNTOQ==");
-
-    checker(lkey, llock);
-    printf("---\n");
-
-    printf("Testing against usefor cancel lock draft 01 samples...\n");
-
-	sprintf(canlock, "%s", "sha1:bNXHc6ohSmeHaRHHW56BIWZJt+4=");
-    sprintf(cankey, "%s", "sha1:aaaBBBcccDDDeeeFFF");
-    checker(cankey, canlock);
-    printf("---above should have been ok---\n");
-
-    sprintf(canlock, "%s", "SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s=");
-    sprintf(cankey, "%s", "sha1:chW8hNeDx3iNUsGBU6/ezDk88P4=");
-    checker(cankey, canlock);
-
-    sprintf(canlock, "%s", "SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s=");
-    sprintf(cankey, "%s", "sha1:4srkWaRIzvK51ArAP:Hc");
-    checker(cankey, canlock);
-    printf("---above should have been okay, no---\n");
-
-    sprintf(canlock, "%s", "sha1:JyEBL4w9/abCBuzCxMIE/E73GM4=");
-    sprintf(cankey, "%s", "sha1:K4rkWRjRcXmIzvK51ArAP:Jy");
-    checker(cankey, canlock);
-
-    sprintf(canlock, "%s", "sha1:2Bmg+zWaY1noRiCdy8k3IapwSDU=");
-    sprintf(cankey, "%s", "sha1:K4rkWRjRcXmIzvK51ArAP:Jy");
-    checker(cankey, canlock);
-    printf("---above should have been okay, no---\n");
-    exit(0);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/doc/HOWTO tin-2.0.0/libcanlock/doc/HOWTO
--- tin-1.8.3/libcanlock/doc/HOWTO	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/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 --exclude='.bzr*' tin-1.8.3/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt tin-2.0.0/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt
--- tin-1.8.3/libcanlock/doc/draft-ietf-usefor-cancel-lock-01.txt	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/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 --exclude='.bzr*' tin-1.8.3/libcanlock/doc/rfc2104.txt tin-2.0.0/libcanlock/doc/rfc2104.txt
--- tin-1.8.3/libcanlock/doc/rfc2104.txt	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/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 --exclude='.bzr*' tin-1.8.3/libcanlock/doc/rfc2202.txt tin-2.0.0/libcanlock/doc/rfc2202.txt
--- tin-1.8.3/libcanlock/doc/rfc2202.txt	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/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 --exclude='.bzr*' tin-1.8.3/libcanlock/doc/rfc2286.txt tin-2.0.0/libcanlock/doc/rfc2286.txt
--- tin-1.8.3/libcanlock/doc/rfc2286.txt	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/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 --exclude='.bzr*' tin-1.8.3/libcanlock/endian.c tin-2.0.0/libcanlock/endian.c
--- tin-1.8.3/libcanlock/endian.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/endian.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,115 +0,0 @@
-/* @(#)endian.c	12.1 17 Nov 1995 04:22:20 */
-/*
- * endian - Determine the byte order of a long on your machine.
- *
- * Big Endian:	    Amdahl, 68k, Pyramid, Mips, Sparc, ...
- * Little Endian:   Vax, 32k, Spim (Dec Mips), i386, i486, ...
- *
- * This makefile was written by:
- *
- *	 Landon Curt Noll  (chongo@toad.com)	chongo <was here> /\../\
- *
- * This code has been placed in the public domain.  Please do not 
- * copyright this code.
- *
- * LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH  REGARD  TO
- * THIS  SOFTWARE,  INCLUDING  ALL IMPLIED WARRANTIES OF MER-
- * CHANTABILITY AND FITNESS.  IN NO EVENT SHALL  LANDON  CURT
- * NOLL  BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
- * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM  LOSS  OF
- * USE,  DATA  OR  PROFITS, WHETHER IN AN ACTION OF CONTRACT,
- * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR  IN
- * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- *
- * See shsdrvr.c and md5drvr.c for version and modification history.
- *
- * Modified by Clayton O'Neill <coneill@oneill.net> to determine
- * endianness and if longs must be aligned.  
- */
-
-#include <stdio.h>
-#include <signal.h>
-#include <sys/types.h>
-/*#include <configdata.h>*/
-/*#include <clibrary.h>*/
-
-/*
- * buserr - catch an alignment error
- */
-void buserr(int dummy)
-{
-    /* alignment is required */
-    printf("#define MUST_ALIGN\n");
-    exit(0);
-}
-
-/*
- * some compiler recognize the code unwantedly
- * to avoid this the code is separated and call store() and load_and_store()
- */
-void
-store(unsigned long *p, unsigned long val)
-{
-    *p = val;
-}
-void
-load_and_store(unsigned long *p, unsigned long val)
-{
-    *p += val;
-}
-
-
-/* byte order array */
-char byte[8] = { (char)0x12, (char)0x36, (char)0x48, (char)0x59,
-		 (char)0x01, (char)0x23, (char)0x45, (char)0x67 };
-
-int main()
-{
-    /* pointers into the byte order array */
-    int *intp = (int *)byte;
-    char byte[2*sizeof(unsigned long)];	/* mis-alignment buffer */
-    unsigned long *p;	/* mis-alignment pointer */
-    int i;
-
-    /* Print the standard <machine/endian.h> defines */
-    /* printf("#define BIG_ENDIAN\t4321\n"); */
-    /* printf("#define LITTLE_ENDIAN\t1234\n"); */
-	printf("#undef LITTLE_ENDIAN\n");
-	printf("#undef BIG_ENDIAN\n");
-
-    /* Determine byte order */
-    if (intp[0] == 0x12364859) {
-	/* Most Significant Byte first */
-	/* printf("#define BYTE_ORDER\tBIG_ENDIAN\n"); */
-	printf("#define BIG_ENDIAN\n");
-    } else if (intp[0] == 0x59483612) {
-	/* Least Significant Byte first */
-	/* printf("#define BYTE_ORDER\tLITTLE_ENDIAN\n"); */
-	printf("#define LITTLE_ENDIAN\n");
-    } else {
-	fprintf(stderr, "Unknown int Byte Order, set BYTE_ORDER in Makefile\n");
-	exit(1);
-    }
-
-#if !defined(MUST_ALIGN) && !defined(__alpha__) && !defined(__alpha)
-    /* setup to catch alignment bus errors */
-    signal(SIGBUS, buserr);
-    signal(SIGSEGV, buserr);	/* some systems will generate SEGV instead! */
-
-    /* mis-align our long fetches */
-    for (i=0; i < sizeof(long); ++i) {
-	p = (unsigned long *)(byte+i);
-	store(p, i);
-	load_and_store(p, 1);
-    }
-
-    /* if we got here, then we can mis-align longs */
-    printf("#undef MUST_ALIGN\n");
-
-#else
-    /* force alignment */
-    printf("#define MUST_ALIGN\n");
-#endif
-
-    exit(0);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/hmac_md5.c tin-2.0.0/libcanlock/hmac_md5.c
--- tin-1.8.3/libcanlock/hmac_md5.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/hmac_md5.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,75 +0,0 @@
-/* 
- * Functions to implement RFC-2104 (HMAC with MD5 hashes).
- * Written by Fluffy, Ruler of All Usenet,
- * and placed into the public domain.
- * Meow.
- */
-
-#include <stdio.h>
-#include "md5.h"
-
-#define ipad 0x36;
-#define opad 0x5c;
-
-/* 
- * Encode a string using HMAC - see RFC-2104 for details.
- */
-unsigned char *
- hmac_md5(K, Klen, T, Tlen)
-unsigned char *K;		/* key */
-int Klen;			/* and it size */
-unsigned char *T;		/* text to encode */
-int Tlen;			/* and its size */
-{
-    MD5_CTX hash_ctx;
-    unsigned char keyin[MD5_LENGTH];
-    unsigned char *step2;
-    unsigned char step4[MD5_LENGTH];
-    unsigned char step5[MD5_BLOCK + MD5_LENGTH];
-    unsigned char *hmac_out;
-    unsigned char *c;
-    int i;
-    int j;
-    int k;
-
-    MD5Init(&hash_ctx);
-
-    /* If the key is bigger than MD5_BLOCK we need to hash it. */
-    if (Klen > MD5_BLOCK) {
-	MD5Update(&hash_ctx, K, Klen);
-	MD5Final(keyin, &hash_ctx);
-	Klen = MD5_LENGTH;
-    } else {
-	memcpy(keyin, K, Klen);
-    }
-
-    step2 = (char *) malloc(Tlen + MD5_BLOCK);
-
-    c = keyin;
-    for (i = 0; i < Klen; i++) {
-	step2[i] = *c ^ ipad;
-	step5[i] = *c ^ opad;
-	c++;
-    }
-
-    for (j = i; j < MD5_BLOCK; j++) {
-	step2[j] = ipad;
-	step5[j] = opad;
-    }
-
-    memcpy(&step2[MD5_BLOCK], T, Tlen);
-
-    MD5Init(&hash_ctx);
-    MD5Update(&hash_ctx, step2, MD5_BLOCK + Tlen);
-    MD5Final(step4, &hash_ctx);
-
-    memcpy(&step5[MD5_BLOCK], step4, MD5_LENGTH);
-
-    hmac_out = (char *) malloc(MD5_LENGTH);
-
-    MD5Init(&hash_ctx);
-    MD5Update(&hash_ctx, step5, MD5_LENGTH + MD5_BLOCK);
-    MD5Final(hmac_out, &hash_ctx);
-
-    return hmac_out;
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/hmac_md5.h tin-2.0.0/libcanlock/hmac_md5.h
--- tin-1.8.3/libcanlock/hmac_md5.h	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/hmac_md5.h	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-unsigned char *hmac_md5(unsigned char *K, int Klen, unsigned char *T, int Tlen);
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/hmac_sha1.c tin-2.0.0/libcanlock/hmac_sha1.c
--- tin-1.8.3/libcanlock/hmac_sha1.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/hmac_sha1.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,74 +0,0 @@
-/* 
- * Functions to implement RFC-2104 (HMAC with SHA-1 hashes).
- * Written by Fluffy, Ruler of All Usenet,
- * and placed into the public domain.
- * Meow.
- */
-
-#include <stdio.h>
-#include "sha1.h"
-
-#define ipad 0x36
-#define opad 0x5c
-
-/* 
- * Encode a string using HMAC - see RFC-2104 for details.
- */
-unsigned char *
- hmac_sha1(K, Klen, T, Tlen)
-unsigned char *K;		/* key */
-int Klen;			/* and it size */
-unsigned char *T;		/* text to encode */
-int Tlen;			/* and its size */
-{
-    SHA1_CTX hash_ctx, hash_ctx2;
-    unsigned char keyin[SHA1_LENGTH];
-    unsigned char *step2;
-    unsigned char step4[SHA1_LENGTH];
-    unsigned char step5[SHA1_BLOCK + SHA1_LENGTH];
-    unsigned char *hmac_out;
-    unsigned char *c;
-    int i;
-    int j;
-    int k;
-
-    SHA1Init(&hash_ctx);
-
-    /* If the key is bigger than SHA1_BLOCK we need to hash it. */
-    if (Klen > SHA1_BLOCK) {
-	SHA1Update(&hash_ctx, K, Klen);
-	SHA1Final(keyin, &hash_ctx);
-	Klen = SHA1_LENGTH;
-    } else {
-	memcpy(keyin, K, Klen);
-    }
-
-    step2 = (char *) malloc(Tlen + SHA1_BLOCK);
-
-    c = keyin;
-    for (i = 0; i < Klen; i++) {
-	step2[i] = *c ^ ipad;
-	step5[i] = *c ^ opad;
-	c++;
-    }
-    for (j = i; j < SHA1_BLOCK; j++) {
-	step2[j] = 0x36;
-	step5[j] = opad;
-    }
-
-    memcpy(&step2[SHA1_BLOCK], T, Tlen);
-
-    SHA1Init(&hash_ctx);
-    SHA1Update(&hash_ctx, step2, SHA1_BLOCK + Tlen);
-    SHA1Final(step4, &hash_ctx);
-
-    memcpy(&step5[SHA1_BLOCK], step4, SHA1_LENGTH);
-
-    hmac_out = (unsigned char *) malloc(SHA1_LENGTH);
-
-    SHA1Init(&hash_ctx);
-    SHA1Update(&hash_ctx, step5, SHA1_BLOCK + SHA1_LENGTH);
-    SHA1Final(hmac_out, &hash_ctx);
-
-    return hmac_out;
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/hmac_sha1.h tin-2.0.0/libcanlock/hmac_sha1.h
--- tin-1.8.3/libcanlock/hmac_sha1.h	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/hmac_sha1.h	1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-unsigned char *hmac_sha1(unsigned char *K, int Klen, unsigned char *T, int Tlen);
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/hmactest.c tin-2.0.0/libcanlock/hmactest.c
--- tin-1.8.3/libcanlock/hmactest.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/hmactest.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,154 +0,0 @@
-/*
- * hmac test program
- */
-
-#include <stdio.h>
-#include "sha1.h"
-#include "hmac_sha1.h"
-#include "md5.h"
-#include "hmac_md5.h"
-
-main()
-{
-    unsigned char *hmachash, *md5hash;
-    unsigned char key1[] = "Jefe";
-    unsigned char message1[] = "what do ya want for nothing?";
-    unsigned char key2[20];
-    unsigned char message2[] = "Hi There";
-    unsigned char key3[80];
-    unsigned char message3[] =
-    "Test Using Larger Than Block-Size Key - Hash Key First";
-    unsigned char key4[80];
-    unsigned char message4[] =
-    "Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data";
-    int i;
-    unsigned char key5[] =
-    {
-	0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
-	0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
-	0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x00
-    };
-    unsigned char message5[50];
-
-    unsigned char j;
-
-
-    for (i = 0; i < 20; i++)
-	key2[i] = 0x0b;
-
-    for (i = 0; i < 80; i++)
-	key3[i] = 0xaa;
-
-    for (i = 0; i < 80; i++)
-	key4[i] = 0xaa;
-
-    for (i = 0; i < 50; i++)
-	message5[i] = (unsigned char) 0xcd;
-
-    printf("Key: %s\n", key1);
-    printf("Msg: %s\n", message1);
-    hmachash = hmac_sha1(key1, strlen(key1), message1, strlen(message1));
-    printf("Expected SHA Digest: %s\n",
-	   "0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79");
-    printf("  Actual SHA Digest: 0x");
-    for (i = 0; i < SHA1_LENGTH; i++)
-	printf("%02x", hmachash[i]);
-    putchar('\n');
-
-
-    md5hash = hmac_md5(key1, strlen(key1), message1, strlen(message1));
-    printf("Expected MD5 Digest: %s\n",
-	   "0x750c783e6ab0b503eaa86e310a5db738");
-    printf("  Actual MD5 Digest: 0x");
-    for (i = 0; i < MD5_LENGTH; i++)
-	printf("%02x", md5hash[i]);
-    putchar('\n');
-
-
-/********/
-    printf("\nKey: 0x0b, len 20 for SHA, 16 for MD5\n");
-    printf("Msg: %s\n", message2);
-
-
-    hmachash = hmac_sha1(key2, 20, message2, strlen(message2));
-    printf("Expected SHA Digest: %s\n",
-	   "0xb617318655057264e28bc0b6fb378c8ef146be00");
-    printf("  Actual SHA Digest: 0x");
-    for (i = 0; i < SHA1_LENGTH; i++)
-	printf("%02x", hmachash[i]);
-    putchar('\n');
-
-
-    md5hash = hmac_md5(key2, 16, message2, strlen(message2));
-    printf("Expected MD5 Digest: %s\n",
-	   "0x9294727a3638bb1c13f48ef8158bfc9d");
-    printf("  Actual MD5 Digest: 0x");
-    for (i = 0; i < MD5_LENGTH; i++)
-	printf("%02x", md5hash[i]);
-    putchar('\n');
-
-/********/
-    printf("\nKey: 0xaa repeated 80 times\n");
-    printf("Msg: %s\n", message3);
-
-    hmachash = hmac_sha1(key3, 80, message3, strlen(message3));
-    printf("Expected SHA Digest: %s\n",
-	   "0xaa4ae5e15272d00e95705637ce8a3b55ed402112");
-    printf("  Actual SHA Digest: 0x");
-    for (i = 0; i < SHA1_LENGTH; i++)
-	printf("%02x", hmachash[i]);
-    putchar('\n');
-
-    md5hash = hmac_md5(key3, 80, message3, strlen(message3));
-    printf("Expected MD5 Digest: %s\n",
-	   "0x6b1ab7fe4bd7bf8f0b62e6ce61b9d0cd");
-    printf("  Actual MD5 Digest: 0x");
-    for (i = 0; i < MD5_LENGTH; i++)
-	printf("%02x", md5hash[i]);
-    putchar('\n');
-
-/********/
-    printf("\nKey: 0xaa repeated 80 times\n");
-    printf("Msg: %s\n", message4);
-
-    hmachash = hmac_sha1(key4, 80, message4, strlen(message4));
-    printf("Expected SHA Digest: %s\n",
-	   "0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91");
-    printf("  Actual SHA Digest: 0x");
-    for (i = 0; i < SHA1_LENGTH; i++)
-	printf("%02x", hmachash[i]);
-    putchar('\n');
-
-    md5hash = hmac_md5(key4, 80, message4, strlen(message4));
-    printf("Expected MD5 Digest: %s\n",
-	   "0x6f630fad67cda0ee1fb1f562db3aa53e");
-    printf("  Actual MD5 Digest: 0x");
-    for (i = 0; i < MD5_LENGTH; i++)
-	printf("%02x", md5hash[i]);
-    putchar('\n');
-
-/********/
-    printf("\nKey: 0x");
-    for (i = 0; i < 25; i++)
-	printf("%02x", key5[i]);
-
-    printf("\nMsg: 0xcd repeated 50 times\n");
-
-    hmachash = hmac_sha1(key5, 25, message5, 50);
-    printf("Expected SHA Digest: %s\n",
-	   "0x4c9007f4026250c6bc8414f9bf50c86c2d7235da");
-    printf("  Actual SHA Digest: 0x");
-    for (i = 0; i < SHA1_LENGTH; i++)
-	printf("%02x", hmachash[i]);
-    putchar('\n');
-
-    md5hash = hmac_md5(key5, 25, message5, 50);
-    printf("Expected MD5 Digest: %s\n",
-	   "0x697eaf0aca3a3aea3a75164746ffaa79");
-    printf("  Actual MD5 Digest: 0x");
-    for (i = 0; i < MD5_LENGTH; i++)
-	printf("%02x", md5hash[i]);
-    putchar('\n');
-
-exit(0);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/include/base64.h tin-2.0.0/libcanlock/include/base64.h
--- tin-1.8.3/libcanlock/include/base64.h	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/include/base64.h	2011-04-17 16:04:42.108846865 +0200
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Hšgskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 
+ * 2. 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.
+ * 
+ * 3. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
+ */
+
+/* $Id: base64.h,v 1.2 1999/12/02 16:58:45 joda Exp $ */
+
+#ifndef _BASE64_H_
+#define _BASE64_H_
+
+size_t base64_encode(const void *data, int size, char **str);
+size_t base64_decode(const char *str, void *data);
+
+#endif
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/include/canlock.h tin-2.0.0/libcanlock/include/canlock.h
--- tin-1.8.3/libcanlock/include/canlock.h	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/include/canlock.h	2011-04-17 16:04:42.144852345 +0200
@@ -0,0 +1,8 @@
+char *sha_key(const unsigned char *secret, size_t seclen,
+              const unsigned char *message, size_t msglen);
+char *sha_lock(const unsigned char *secret, size_t seclen,
+               const unsigned char *message, size_t msglen);
+int sha_verify(const char *key, const char *lock);
+
+char *lock_strip_alpha(char *key, char *type);
+char *lock_strip(char *key, char *type);
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/include/hmac_sha1.h tin-2.0.0/libcanlock/include/hmac_sha1.h
--- tin-1.8.3/libcanlock/include/hmac_sha1.h	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/include/hmac_sha1.h	2011-04-17 16:04:42.200860868 +0200
@@ -0,0 +1,2 @@
+unsigned char *hmac_sha1(const unsigned char *K, int Klen,
+                         const unsigned char *T, int Tlen);
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/include/sha1.h tin-2.0.0/libcanlock/include/sha1.h
--- tin-1.8.3/libcanlock/include/sha1.h	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/include/sha1.h	2011-04-17 16:04:42.260869999 +0200
@@ -0,0 +1,60 @@
+#ifndef _SHA1_H_
+#define _SHA1_H_
+
+#ifdef HAVE_CONFIG_H
+#	include "autoconf.h"
+#endif /* HAVE_CONFIG_H */
+
+/* The SHA block size and message digest sizes, in bytes */
+
+#define SHA_DATASIZE    64
+#define SHA_DATALEN     16
+#define SHA_DIGESTSIZE  20
+#define SHA_DIGESTLEN    5
+/* The structure for storing SHA info */
+
+#ifdef HAVE_STDINT_H
+#	include <stdint.h>
+#else
+#	ifdef HAVE_INTTYPES_H
+#		include <inttypes.h>
+#	endif /* HAVE_INTTYPES_H */
+#endif /* HAVE_STDINT_H */
+
+typedef struct sha_ctx {
+  uint32_t digest[SHA_DIGESTLEN];  /* Message digest */
+  uint32_t count_l, count_h;       /* 64-bit block count */
+  uint8_t block[SHA_DATASIZE];     /* SHA data buffer */
+  int index;                             /* index into buffer */
+  int finalized;
+} SHA_CTX;
+
+int sha_init(struct sha_ctx *ctx);
+int sha_update(struct sha_ctx *ctx, const uint8_t *buffer, uint32_t len);
+void sha_final(struct sha_ctx *ctx);
+int sha_digest(struct sha_ctx *ctx, uint8_t *s);
+void sha_copy(struct sha_ctx *dest, struct sha_ctx *src);
+
+#if 1
+
+#ifndef EXTRACT_UCHAR
+#define EXTRACT_UCHAR(p)  (*(unsigned char *)(p))
+#endif
+
+#define STRING2INT(s) ((((((EXTRACT_UCHAR(s) << 8)    \
+			 | EXTRACT_UCHAR(s+1)) << 8)  \
+			 | EXTRACT_UCHAR(s+2)) << 8)  \
+			 | EXTRACT_UCHAR(s+3))
+#else
+uint32_t STRING2INT(uint8_t *s)
+{
+  uint32_t r;
+  int i;
+  
+  for (i = 0, r = 0; i < 4; i++, s++)
+    r = (r << 8) | *s;
+  return r;
+}
+#endif
+
+#endif
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/main.c tin-2.0.0/libcanlock/main.c
--- tin-1.8.3/libcanlock/main.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/main.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,424 +0,0 @@
-/* 
-   rmd.c
-   RIPEMD-160 generate and check utility
-   by Po Shan Cheah, Copyright (c) 1997
-   You may distribute this program freely provided this notice
-   is retained. 
-
-   January 5, 1997:
-   Initial release.
-
-*/
-
-#include "rmd160.h"
-#include <ctype.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define BUFLEN 4096
-#define RMDBITS 160
-
-int binary_mode = 0;
-int verbose_mode = 0;
-char *progname = "";
-
-int prog_rc = 0;
-
-void setrc(int newrc) {
-  
-  /* raises but never lowers the program return code to newrc */
-
-  if (newrc > prog_rc)
-    prog_rc = newrc;
-}
-
-int cvthex(char c) {
-  /* convert a hex digit to an integer */
-
-  c = toupper(c);
-
-  if (c >= 'A' && c <= 'F')
-    return c - 'A' + 10;
-
-  return c - '0';
-}
-
-int hexdigit(char c) {
-  /* returns true if character is a hexadecimal digit */
-
-  return 
-    (c >= '0' && c <= '9') ||
-      (toupper(c) >= 'A' && toupper(c) <= 'F');
-}
-
-#define ESCAPE '%'
-
-char *encodestr(char *instr) {
-  /* replace unprintable characters and % itself with %HH */
-
-  static char buf[BUFLEN];
-  char *outstr = buf;
-
-  for ( ; *instr; ++instr) {
-    if (isprint(*instr) && !isspace(*instr) && *instr != ESCAPE)
-      *outstr++ = *instr;
-    else {
-      sprintf(outstr, "%%%02x", *instr);
-      outstr += 3;
-    }
-  } 
-  *outstr = '\0';
-  return buf;
-}
-
-char *decodestr(char *instr) {
-  /* undo what encodestr did */
-
-  static char buf[BUFLEN];
-  char *outstr = buf;
-
-  while (*instr) {
-    if (*instr == ESCAPE &&
-	hexdigit(instr[1]) &&
-	hexdigit(instr[2])) {
-      *outstr++ = cvthex(instr[1]) << 4 | cvthex(instr[2]);
-      instr += 3;
-    }
-    else 
-      *outstr++ = *instr ++;
-  }
-  *outstr = '\0';
-  return buf;
-}
-
-void pack_chunk(word *chunk, byte *buf) {
-  /* pack 64 bytes into 16 little-endian 32-bit words */
-
-  int j;
-
-  for (j = 0; j < 16; ++j, buf += 4)
-    *chunk++ = (word) buf[0] | (word) buf[1] << 8 | 
-      (word) buf[2] << 16 | (word) buf[3] << 24 ;
-}
-
-byte *rmdfp(char *fname, FILE *fp) {
-  /* calculate the message digest of a file
-     and return it in string form */
-
-  int bytesread;
-  int i;
-  word tmp;
-  word chunk[16];
-  char buf[BUFLEN];
-  word length[2];
-  word mdbuf[RMDBITS / 32];
-  static byte code[RMDBITS / 8];
-
-  length[0] = length[1] = 0;
-  MDinit(mdbuf);
-
-  /* do all full BUFLEN portions */
-
-  while ((bytesread = fread(buf, 1, BUFLEN, fp)) == BUFLEN) {
-
-    for (i = 0; i < BUFLEN; i += 64) {
-      pack_chunk(chunk, buf + i);
-      MDcompress(mdbuf, chunk);
-    }
-
-    if ((tmp = length[0] + bytesread) < length[0])
-      ++ length[1];	/* overflow */
-    length[0] = tmp;
-  }
-
-  if (ferror(fp)) {
-    fprintf(stderr, "%s: %s\n", fname, strerror(errno));
-    setrc(2);
-    return NULL;
-  }
-
-  /* do all the remaining 64-byte blocks */
-
-  for (i = 0; i < bytesread - 63; i += 64) {
-    pack_chunk(chunk, buf + i);
-    MDcompress(mdbuf, chunk);
-  }
-
-  if ((tmp = length[0] + bytesread) < length[0])
-    ++ length[1];	/* overflow */
-  length[0] = tmp;
-
-  /* do the last partial or zero length block */
-
-  MDfinish(mdbuf, buf + i, length[0] << 3,
-	   length[0] >> 29 | length[1] << 3);
-
-  /* convert to 64-byte string using little-endian conversion */
-
-  for (i = 0; i < RMDBITS / 8; i += 4) {
-
-    word wd = mdbuf[i >> 2];
-
-    code[i] = (byte) (wd);
-    code[i + 1] = (byte) (wd >> 8);
-    code[i + 2] = (byte) (wd >> 16);
-    code[i + 3] = (byte) (wd >> 24);
-  }
-
-  return code;
-}
-
-void printcode(byte *code) {
-  /* print a RIPEMD-160 code */
-  
-  int i;
-
-  for (i = 0; i < RMDBITS / 8; ++i)
-    printf("%02x", code[i]);
-}
-
-byte *rmdfile(char *fname) {
-  /* calculate the message digest of a single file
-     and output the digest followed by the file name */
-
-  FILE *fp;
-
-  fp = fopen(fname, binary_mode ? "rb" : "r");
-  if (fp == NULL) {
-    fprintf(stderr, "%s: %s\n", fname, strerror(errno));
-    setrc(2);
-    return NULL;
-  }
-
-  else {
-    byte *code = rmdfp(fname, fp);
-    fclose(fp);
-    return code;
-  }
-}
-
-int checkdigest(char *digest) {
-  /* returns true if string is a valid message digest string */
-
-  if (strlen(digest) != RMDBITS / 8 * 2)
-    return 0;
-
-  for ( ; *digest; ++digest) {
-    if ( ! hexdigit(*digest))
-      return 0;
-  }
-
-  return 1;
-}
-
-void stringtocode(byte *code, char *str) {
-  /* convert message digest string into 20 byte code */
-
-  int i;
-
-  for (i = 0; i < RMDBITS / 8; ++i, str += 2)
-    *code++ = cvthex(str[0]) << 4 | cvthex(str[1]);
-}
-
-void checkfp(char *fname, FILE *fp) {
-  /* check message digests. message digest data comes from 
-     the given open file handle. */
-
-  int lineno = 0;
-  int nfail = 0;
-  int nfile = 0;
-  char *filename;
-  byte *code;
-  byte inputcode[RMDBITS / 8];
-  char line[BUFLEN];
-  char digest[BUFLEN];
-  char infilename[BUFLEN];
-
-  while (fgets(line, BUFLEN, fp)) {
-
-    ++lineno;
-
-    /* error checking */
-
-    if (sscanf(line, "%s%s", digest, infilename) < 2) {
-      fprintf(stderr, "%s: invalid input on line %d\n",
-	      progname, lineno);
-      setrc(2);
-      continue;
-    }
-
-    if (!checkdigest(digest)) {
-      fprintf(stderr, "%s: invalid message digest on line %d\n", 
-	      progname, lineno);
-      setrc(2);
-      continue;
-    }
-
-    stringtocode(inputcode, digest);
-
-    /* calculate message digest for file */
-
-    filename = decodestr(infilename);
-
-    code = rmdfile(filename);
-    if (code) {
-
-      ++nfile;
-
-      /* compare digests */
-
-      if (memcmp(inputcode, code, RMDBITS / 8) != 0) {
-	++nfail;
-	setrc(1);
-
-	if (verbose_mode)
-	  printf("FAILED   %s\n", filename);
-	else
-	  printf("%s: RIPEMD-160 check failed for `%s'\n",
-		 progname, filename);
-      }
-
-      else {
-	if (verbose_mode)
-	  printf("GOOD     %s\n", filename);
-      }
-    }
-  }
-
-  if (verbose_mode && nfail)
-    printf("%s: %d of %d file(s) failed RIPEMD-160 check\n", 
-	   progname, nfail, nfile);
-
-  if (ferror(fp)) {
-    fprintf(stderr, "%s: %s\n", fname, strerror(errno));
-    setrc(2);
-  }
-} 
-
-void checkfile(char *fname) {
-  /* check message digests. message digest data comes from 
-     the named file. */
-
-  FILE *fp;
-
-  fp = fopen(fname, "r");
-  if (fp == NULL) {
-    fprintf(stderr, "%s: %s\n", fname, strerror(errno));
-    setrc(2);
-  }
-
-  else {
-    checkfp(fname, fp);
-    fclose(fp);
-  }
-}
-
-int main(int argc, char *argv[]) {
-
-  int c;
-  int check_mode = 0;
-
-  progname = argv[0];
-
-  /* parse command line arguments */
-
-  while ((c = getopt(argc, argv, "bcvh")) >= 0) {
-
-    switch (c) {
-
-    case 'b':
-      binary_mode = 1;
-      break;
-
-    case 'c':
-      check_mode = 1;
-      break;
-
-    case 'v':
-      verbose_mode = 1;
-      break;
-
-    case 'h':
-    case ':':
-    case '?':
-      printf("Usage: %s [-b] [-c] [-v] [<file>...]\n"
-	     "Generates or checks RIPEMD-160 message digests\n"
-	     "    -b  read files in binary mode\n"
-	     "    -c  check message digests\n"
-	     "    -v  verbose, print file names while checking\n\n"
-	     "If -c is not specified, then one message digest is "
-	     "generated per file\n"
-	     "and sent to standard output. If no files are specified "
-	     "then input is\n"
-	     "taken from standard input and only one message digest "
-	     "will be\n"
-	     "generated.\n\n"
-	     "If -c is specified then message digests for a list of "
-	     "files are\n"
-	     "checked. The input should be a table in the same format "
-	     "as the output\n"
-	     "of this program when message digests are generated. If a "
-	     "file is\n"
-	     "specified then the message digest table is read from that "
-	     "file. If no\n"
-	     "file is specified, then the message digest table is read "
-	     "from standard\n"
-	     "input.\n", progname);
-      exit(0);
-    }
-  }
-
-  if (check_mode) {
-
-    if (optind < argc) {
-
-      /* check using data from file named on command line */
-
-      checkfile(argv[optind]);
-
-    }
-
-    else {
-
-      /* check using data from standard input */
-
-      checkfp("(stdin)", stdin);
-
-    }
-  }
-
-  else {
-
-    if (optind < argc) {
-
-      /* process file arguments */
-
-      for ( ; optind < argc; ++optind) {
-
-	byte *code = rmdfile(argv[optind]);
-
-	if (code) {
-	  printcode(code);      
-	  printf("  %s\n", encodestr(argv[optind]));
-	}
-      }
-    }
-
-    else {
-
-      /* no file arguments so take input from stdin */
-
-      byte *code = rmdfp("(stdin)", stdin);
-
-      if (code) {
-	printcode(code); 
-	printf("\n");
-      }
-    }
-  }
-
-  return prog_rc;
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/md5.c tin-2.0.0/libcanlock/md5.c
--- tin-1.8.3/libcanlock/md5.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/md5.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,253 +0,0 @@
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest.  This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
-#include <string.h>		/* for memcpy() */
-#include "endian.h"
-#include "md5.h"
-
-#ifdef LITTLE_ENDIAN
-#define byteReverse(buf, len)	/* Nothing */
-#else
-void byteReverse(unsigned char *buf, unsigned longs);
-
-#ifndef ASM_MD5
-/*
- * Note: this code is harmless on little-endian machines.
- */
-void byteReverse(unsigned char *buf, unsigned longs)
-{
-    uint32 t;
-    do {
-	t = (uint32) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
-	    ((unsigned) buf[1] << 8 | buf[0]);
-	*(uint32 *) buf = t;
-	buf += 4;
-    } while (--longs);
-}
-#endif
-#endif
-
-/*
- * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
- * initialization constants.
- */
-void MD5Init(struct MD5Context *ctx)
-{
-    ctx->buf[0] = 0x67452301;
-    ctx->buf[1] = 0xefcdab89;
-    ctx->buf[2] = 0x98badcfe;
-    ctx->buf[3] = 0x10325476;
-
-    ctx->bits[0] = 0;
-    ctx->bits[1] = 0;
-}
-
-/*
- * Update context to reflect the concatenation of another buffer full
- * of bytes.
- */
-void MD5Update(struct MD5Context *ctx, unsigned char const *buf, unsigned len)
-{
-    uint32 t;
-
-    /* Update bitcount */
-
-    t = ctx->bits[0];
-    if ((ctx->bits[0] = t + ((uint32) len << 3)) < t)
-	ctx->bits[1]++;		/* Carry from low to high */
-    ctx->bits[1] += len >> 29;
-
-    t = (t >> 3) & 0x3f;	/* Bytes already in shsInfo->data */
-
-    /* Handle any leading odd-sized chunks */
-
-    if (t) {
-	unsigned char *p = (unsigned char *) ctx->in + t;
-
-	t = 64 - t;
-	if (len < t) {
-	    memcpy(p, buf, len);
-	    return;
-	}
-	memcpy(p, buf, t);
-	byteReverse(ctx->in, 16);
-	MD5Transform(ctx->buf, (uint32 *) ctx->in);
-	buf += t;
-	len -= t;
-    }
-    /* Process data in 64-byte chunks */
-
-    while (len >= 64) {
-	memcpy(ctx->in, buf, 64);
-	byteReverse(ctx->in, 16);
-	MD5Transform(ctx->buf, (uint32 *) ctx->in);
-	buf += 64;
-	len -= 64;
-    }
-
-    /* Handle any remaining bytes of data. */
-
-    memcpy(ctx->in, buf, len);
-}
-
-/*
- * Final wrapup - pad to 64-byte boundary with the bit pattern 
- * 1 0* (64-bit count of bits processed, MSB-first)
- */
-void MD5Final(unsigned char digest[16], struct MD5Context *ctx)
-{
-    unsigned count;
-    unsigned char *p;
-
-    /* Compute number of bytes mod 64 */
-    count = (ctx->bits[0] >> 3) & 0x3F;
-
-    /* Set the first char of padding to 0x80.  This is safe since there is
-       always at least one byte free */
-    p = ctx->in + count;
-    *p++ = 0x80;
-
-    /* Bytes of padding needed to make 64 bytes */
-    count = 64 - 1 - count;
-
-    /* Pad out to 56 mod 64 */
-    if (count < 8) {
-	/* Two lots of padding:  Pad the first block to 64 bytes */
-	memset(p, 0, count);
-	byteReverse(ctx->in, 16);
-	MD5Transform(ctx->buf, (uint32 *) ctx->in);
-
-	/* Now fill the next block with 56 bytes */
-	memset(ctx->in, 0, 56);
-    } else {
-	/* Pad block to 56 bytes */
-	memset(p, 0, count - 8);
-    }
-    byteReverse(ctx->in, 14);
-
-    /* Append length in bits and transform */
-    ((uint32 *) ctx->in)[14] = ctx->bits[0];
-    ((uint32 *) ctx->in)[15] = ctx->bits[1];
-
-    MD5Transform(ctx->buf, (uint32 *) ctx->in);
-    byteReverse((unsigned char *) ctx->buf, 4);
-    memcpy(digest, ctx->buf, 16);
-    memset(ctx, 0, sizeof(ctx));	/* In case it's sensitive */
-}
-
-#ifndef ASM_MD5
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-#define MD5STEP(f, w, x, y, z, data, s) \
-	( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )
-
-/*
- * The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data.  MD5Update blocks
- * the data and converts bytes into longwords for this routine.
- */
-void MD5Transform(uint32 buf[4], uint32 const in[16])
-{
-    register uint32 a, b, c, d;
-
-    a = buf[0];
-    b = buf[1];
-    c = buf[2];
-    d = buf[3];
-
-    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
-    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
-    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
-    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
-    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
-    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
-    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
-    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
-    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
-    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
-    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
-    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
-    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
-    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
-    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
-    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
-    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
-    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
-    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
-    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
-    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
-    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
-    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
-    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
-    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
-    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
-    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
-    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
-    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
-    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
-    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
-    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
-    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
-    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
-    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
-    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
-    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
-    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
-    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
-    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
-    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
-    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
-    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
-    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
-    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
-    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
-    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
-    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
-    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
-    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
-    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
-    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
-    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
-    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
-    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
-    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
-    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
-    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
-    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
-    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
-    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
-    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
-    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
-    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
-    buf[0] += a;
-    buf[1] += b;
-    buf[2] += c;
-    buf[3] += d;
-}
-
-#endif
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/md5.h tin-2.0.0/libcanlock/md5.h
--- tin-1.8.3/libcanlock/md5.h	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/md5.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-#ifndef MD5_H
-#define MD5_H
-
-#ifdef __alpha
-typedef unsigned int uint32;
-#else
-typedef unsigned long uint32;
-#endif
-
-struct MD5Context {
-    uint32 buf[4];
-    uint32 bits[2];
-    unsigned char in[64];
-};
-
-#define MD5_BLOCK	64
-#define MD5_LENGTH	16
-
-void MD5Init(struct MD5Context *context);
-void MD5Update(struct MD5Context *context, unsigned char const *buf,
-	       unsigned len);
-void MD5Final(unsigned char digest[16], struct MD5Context *context);
-void MD5Transform(uint32 buf[4], uint32 const in[16]);
-
-/*
- * This is needed to make RSAREF happy on some MS-DOS compilers.
- */
-typedef struct MD5Context MD5_CTX;
-
-#endif				/* !MD5_H */
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/sha1.c tin-2.0.0/libcanlock/sha1.c
--- tin-1.8.3/libcanlock/sha1.c	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/sha1.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,265 +0,0 @@
-/* 
- * SHA-1 in C By Steve Reid <steve@edmweb.com> 100% Public Domain
- * 
- * Test Vectors (from FIPS PUB 180-1)
- * "abc"
- *      A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
- * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
- *      84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
- * A million repetitions of "a"
- *      34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
- */
-
-#include "sha1.h"
-#include <stdio.h>
-#include <string.h>
-
-#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/* blk0() and blk() perform the initial expand. */
-/* I got the idea of expanding during the round function from SSLeay */
-#ifdef LITTLE_ENDIAN
-#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
-    |(rol(block->l[i],8)&0x00FF00FF))
-#else
-#define blk0(i) block->l[i]
-#endif
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-    ^block->l[(i+2)&15]^block->l[i&15],1))
-
-/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
-#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-
-
-/* Hash a single 512-bit block. This is the core of the algorithm. */
-
-void SHA1Transform(unsigned long state[5], unsigned char buffer[64])
-{
-    unsigned long a, b, c, d, e;
-    typedef union {
-	unsigned char c[64];
-	unsigned long l[16];
-    } CHAR64LONG16;
-    CHAR64LONG16 *block;
-#ifdef SHA1HANDSOFF
-    static unsigned char workspace[64];
-    block = (CHAR64LONG16 *) workspace;
-    memcpy(block, buffer, 64);
-#else
-    block = (CHAR64LONG16 *) buffer;
-#endif
-    /* Copy context->state[] to working vars */
-    a = state[0];
-    b = state[1];
-    c = state[2];
-    d = state[3];
-    e = state[4];
-    /* 4 rounds of 20 operations each. Loop unrolled. */
-    R0(a, b, c, d, e, 0);
-    R0(e, a, b, c, d, 1);
-    R0(d, e, a, b, c, 2);
-    R0(c, d, e, a, b, 3);
-    R0(b, c, d, e, a, 4);
-    R0(a, b, c, d, e, 5);
-    R0(e, a, b, c, d, 6);
-    R0(d, e, a, b, c, 7);
-    R0(c, d, e, a, b, 8);
-    R0(b, c, d, e, a, 9);
-    R0(a, b, c, d, e, 10);
-    R0(e, a, b, c, d, 11);
-    R0(d, e, a, b, c, 12);
-    R0(c, d, e, a, b, 13);
-    R0(b, c, d, e, a, 14);
-    R0(a, b, c, d, e, 15);
-    R1(e, a, b, c, d, 16);
-    R1(d, e, a, b, c, 17);
-    R1(c, d, e, a, b, 18);
-    R1(b, c, d, e, a, 19);
-    R2(a, b, c, d, e, 20);
-    R2(e, a, b, c, d, 21);
-    R2(d, e, a, b, c, 22);
-    R2(c, d, e, a, b, 23);
-    R2(b, c, d, e, a, 24);
-    R2(a, b, c, d, e, 25);
-    R2(e, a, b, c, d, 26);
-    R2(d, e, a, b, c, 27);
-    R2(c, d, e, a, b, 28);
-    R2(b, c, d, e, a, 29);
-    R2(a, b, c, d, e, 30);
-    R2(e, a, b, c, d, 31);
-    R2(d, e, a, b, c, 32);
-    R2(c, d, e, a, b, 33);
-    R2(b, c, d, e, a, 34);
-    R2(a, b, c, d, e, 35);
-    R2(e, a, b, c, d, 36);
-    R2(d, e, a, b, c, 37);
-    R2(c, d, e, a, b, 38);
-    R2(b, c, d, e, a, 39);
-    R3(a, b, c, d, e, 40);
-    R3(e, a, b, c, d, 41);
-    R3(d, e, a, b, c, 42);
-    R3(c, d, e, a, b, 43);
-    R3(b, c, d, e, a, 44);
-    R3(a, b, c, d, e, 45);
-    R3(e, a, b, c, d, 46);
-    R3(d, e, a, b, c, 47);
-    R3(c, d, e, a, b, 48);
-    R3(b, c, d, e, a, 49);
-    R3(a, b, c, d, e, 50);
-    R3(e, a, b, c, d, 51);
-    R3(d, e, a, b, c, 52);
-    R3(c, d, e, a, b, 53);
-    R3(b, c, d, e, a, 54);
-    R3(a, b, c, d, e, 55);
-    R3(e, a, b, c, d, 56);
-    R3(d, e, a, b, c, 57);
-    R3(c, d, e, a, b, 58);
-    R3(b, c, d, e, a, 59);
-    R4(a, b, c, d, e, 60);
-    R4(e, a, b, c, d, 61);
-    R4(d, e, a, b, c, 62);
-    R4(c, d, e, a, b, 63);
-    R4(b, c, d, e, a, 64);
-    R4(a, b, c, d, e, 65);
-    R4(e, a, b, c, d, 66);
-    R4(d, e, a, b, c, 67);
-    R4(c, d, e, a, b, 68);
-    R4(b, c, d, e, a, 69);
-    R4(a, b, c, d, e, 70);
-    R4(e, a, b, c, d, 71);
-    R4(d, e, a, b, c, 72);
-    R4(c, d, e, a, b, 73);
-    R4(b, c, d, e, a, 74);
-    R4(a, b, c, d, e, 75);
-    R4(e, a, b, c, d, 76);
-    R4(d, e, a, b, c, 77);
-    R4(c, d, e, a, b, 78);
-    R4(b, c, d, e, a, 79);
-    /* Add the working vars back into context.state[] */
-    state[0] += a;
-    state[1] += b;
-    state[2] += c;
-    state[3] += d;
-    state[4] += e;
-    /* Wipe variables */
-    a = b = c = d = e = 0;
-}
-
-
-/* SHA1Init - Initialize new context */
-
-void SHA1Init(SHA1_CTX * context)
-{
-    /* SHA1 initialization constants */
-    context->state[0] = 0x67452301;
-    context->state[1] = 0xEFCDAB89;
-    context->state[2] = 0x98BADCFE;
-    context->state[3] = 0x10325476;
-    context->state[4] = 0xC3D2E1F0;
-    context->count[0] = context->count[1] = 0;
-}
-
-
-/* Run your data through this. */
-
-void SHA1Update(SHA1_CTX * context, unsigned char *data, unsigned int len)
-{
-    unsigned int i, j;
-
-    j = (context->count[0] >> 3) & 63;
-    if ((context->count[0] += len << 3) < (len << 3))
-	context->count[1]++;
-    context->count[1] += (len >> 29);
-    if ((j + len) > 63) {
-	memcpy(&context->buffer[j], data, (i = 64 - j));
-	SHA1Transform(context->state, context->buffer);
-	for (; i + 63 < len; i += 64) {
-	    SHA1Transform(context->state, &data[i]);
-	}
-	j = 0;
-    } else
-	i = 0;
-    memcpy(&context->buffer[j], &data[i], len - i);
-}
-
-
-/* Add padding and return the message digest. */
-
-void SHA1Final(unsigned char digest[20], SHA1_CTX * context)
-{
-    unsigned long i, j;
-    unsigned char finalcount[8];
-
-    for (i = 0; i < 8; i++) {
-	finalcount[i] = (unsigned char) ((context->count[(i >= 4 ? 0 : 1)]
-					  >> ((3 - (i & 3)) * 8)) & 255);	/* Endian 
-										 * independent 
-										 */
-    }
-    SHA1Update(context, (unsigned char *) "\200", 1);
-    while ((context->count[0] & 504) != 448) {
-	SHA1Update(context, (unsigned char *) "\0", 1);
-    }
-    SHA1Update(context, finalcount, 8);		/* Should cause a
-						 * SHA1Transform() */
-    for (i = 0; i < 20; i++) {
-	digest[i] = (unsigned char)
-	    ((context->state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
-    }
-    /* Wipe variables */
-    i = j = 0;
-    memset(context->buffer, 0, 64);
-    memset(context->state, 0, 20);
-    memset(context->count, 0, 8);
-    memset(&finalcount, 0, 8);
-#ifdef SHA1HANDSOFF		/* make SHA1Transform overwrite it's own
-				   * static vars */
-    SHA1Transform(context->state, context->buffer);
-#endif
-}
-
-
-#if 0
-/*************************************************************/
-
-int main(int argc, char **argv)
-{
-    int i, j;
-    SHA1_CTX context;
-    unsigned char digest[20], buffer[16384];
-    FILE *file;
-
-    if (argc > 2) {
-	puts("Public domain SHA-1 implementation - by Steve Reid <steve@edmweb.com>");
-	puts("Produces the SHA-1 hash of a file, or stdin if no file is specified.");
-	exit(0);
-    }
-    if (argc < 2) {
-	file = stdin;
-    } else {
-	if (!(file = fopen(argv[1], "rb"))) {
-	    fputs("Unable to open file.", stderr);
-	    exit(-1);
-	}
-    }
-    SHA1Init(&context);
-    while (!feof(file)) {	/* note: what if ferror(file) */
-	i = fread(buffer, 1, 16384, file);
-	SHA1Update(&context, buffer, i);
-    }
-    SHA1Final(digest, &context);
-    fclose(file);
-    for (i = 0; i < 5; i++) {
-	for (j = 0; j < 4; j++) {
-	    printf("%02X", digest[i * 4 + j]);
-	}
-	putchar(' ');
-    }
-    putchar('\n');
-    exit(0);
-}
-#endif
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/sha1.h tin-2.0.0/libcanlock/sha1.h
--- tin-1.8.3/libcanlock/sha1.h	2005-06-28 10:31:28.000000000 +0200
+++ tin-2.0.0/libcanlock/sha1.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-/* 
- * SHA-1 in C
- * By Steve Reid <steve@edmweb.com>
- * 100% Public Domain
- */
-#ifndef __SHA1_H__
-#define __SHA1_H__
-
-#include "endian.h"
-
-#if 0
-#define SHA1HANDSOFF		/* Copies data before messing with it. */
-#endif /* 0 */
-
-#define SHA1_BLOCK	64
-#define SHA1_LENGTH	20
-
-typedef struct _SHA1_CTX {
-    unsigned long state[5];
-    unsigned long count[2];
-    unsigned char buffer[SHA1_BLOCK];
-} SHA1_CTX;
-
-void SHA1Transform(unsigned long state[5], unsigned char buffer[64]);
-void SHA1Init(SHA1_CTX * context);
-void SHA1Update(SHA1_CTX * context, unsigned char *data, unsigned int len);
-void SHA1Final(unsigned char digest[20], SHA1_CTX * context);
-
-#endif				/* __SHA1_H__ */
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/src/base64.c tin-2.0.0/libcanlock/src/base64.c
--- tin-1.8.3/libcanlock/src/base64.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/src/base64.c	2011-04-17 16:04:41.568764676 +0200
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 1995-2001 Kungliga Tekniska Hšgskolan
+ * (Royal Institute of Technology, Stockholm, Sweden).
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ *
+ * 2. 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.
+ *
+ * 3. Neither the name of the Institute 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 INSTITUTE 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 INSTITUTE 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+/* #include <config.h> */
+/* RCSID("$Id: base64.c,v 1.5 2001/05/28 17:33:41 joda Exp $") */
+#endif
+#include <stdlib.h>
+#include <string.h>
+#include "base64.h"
+
+static char base64_chars[] = 
+    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
+
+static int 
+pos(char c)
+{
+    char *p;
+    for (p = base64_chars; *p; p++) {
+		if (*p == c)
+		    return p - base64_chars;
+	}
+    return -1;
+}
+
+size_t
+base64_encode(const void *data, int size, char **str)
+{
+    char *s, *p;
+    int i;
+    int c;
+    const unsigned char *q;
+
+    p = s = (char *) malloc(size * 4 / 3 + 4);
+    if (p == NULL)
+		return -1;
+    q = (const unsigned char *) data;
+    for (i = 0; i < size;) {
+		c = q[i++];
+		c *= 256;
+		if (i < size)
+		    c += q[i];
+		i++;
+		c *= 256;
+		if (i < size)
+		    c += q[i];
+		i++;
+		p[0] = base64_chars[(c & 0x00fc0000) >> 18];
+		p[1] = base64_chars[(c & 0x0003f000) >> 12];
+		p[2] = base64_chars[(c & 0x00000fc0) >> 6];
+		p[3] = base64_chars[(c & 0x0000003f) >> 0];
+		if (i > size)
+		    p[3] = '=';
+		if (i > size + 1)
+		    p[2] = '=';
+		p += 4;
+    }
+    *p = 0;
+    *str = s;
+    return strlen(s);
+}
+
+#define DECODE_ERROR 0xffffffff
+
+static unsigned int
+token_decode(const char *token)
+{
+    int i;
+    unsigned int val = 0;
+    int marker = 0;
+    if (strlen(token) < 4)
+		return DECODE_ERROR;
+    for (i = 0; i < 4; i++) {
+		val *= 64;
+		if (token[i] == '=')
+		    marker++;
+		else if (marker > 0)
+		    return DECODE_ERROR;
+		else
+		    val += pos(token[i]);
+    }
+    if (marker > 2)
+		return DECODE_ERROR;
+    return (marker << 24) | val;
+}
+
+size_t
+base64_decode(const char *str, void *data)
+{
+    const char *p;
+    unsigned char *q;
+
+    q = data;
+    for (p = str; *p && (*p == '=' || strchr(base64_chars, *p)); p += 4) {
+		unsigned int val = token_decode(p);
+		unsigned int marker = (val >> 24) & 0xff;
+		if (val == DECODE_ERROR)
+		    return -1;
+		*q++ = (val >> 16) & 0xff;
+		if (marker < 2)
+		    *q++ = (val >> 8) & 0xff;
+		if (marker < 1)
+		    *q++ = val & 0xff;
+	}
+    return q - (unsigned char *) data;
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/src/canlock.c tin-2.0.0/libcanlock/src/canlock.c
--- tin-1.8.3/libcanlock/src/canlock.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/src/canlock.c	2011-04-17 16:04:41.624773199 +0200
@@ -0,0 +1,193 @@
+/*
+ * COPYRIGHT AND PERMISSION NOTICE
+ * 
+ * Copyright (c) 2003 G.J. Andruk
+ * 
+ * All rights reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+ * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <sys/types.h>
+#include "base64.h"
+#include "sha1.h"
+#include "hmac_sha1.h"
+#include "canlock.h"
+
+/* 
+ * Return a stripped cancel lock, that is, with the xx: prefix
+ * removed, else NULL on failure.
+ * type is set to the lock type, else zero on failure.
+ */
+char *
+lock_strip_alpha(char *key, char *type)
+{
+    char *ret;
+    int offset;
+    do {
+      *type = tolower(*key);
+      type++;
+      key++;
+    } while (*key && *key != ':');
+    
+    *type = '\0';
+    key++;
+    ret = strdup (key);
+    /* Strip the "Clue-string", no longer part of the lastest
+     * draft but could still be present */
+    offset = 0;
+    while (ret[offset] && ret[offset] != ':')
+		offset++;
+    ret[offset] = '\0';
+    return ret;
+}
+
+
+char *
+lock_strip(char *key, char *type)
+{
+    return lock_strip_alpha(key, type);
+}
+
+/* 
+ * Generate an SHA1 cancel key.
+ * Returns a malloc()'d buffer that the caller will need to free().
+ */
+char *
+sha_key(const unsigned char *secret, size_t seclen,
+        const unsigned char *message, size_t msglen)
+{
+    char
+        *cankey[1];
+    unsigned char
+        *hmacbuff;
+    size_t
+        keysize;
+
+    hmacbuff = hmac_sha1(secret, seclen, message, msglen);
+    if (!hmacbuff)
+        return NULL;
+    keysize = base64_encode(hmacbuff, SHA_DIGESTSIZE, cankey);
+    free ((void *) hmacbuff);
+    if (!keysize)
+        return NULL;
+    *cankey = (char *) realloc((void *) *cankey, keysize + 6);
+    if (!*cankey)
+        return NULL;
+    memmove((void *) (*cankey + 5), (void *) *cankey, keysize + 1);
+    strncpy(*cankey, "sha1:", 5);
+    return (*cankey);
+}
+
+/* 
+ * Generate an SHA1 cancel lock.
+ * Returns a malloc()'d buffer that the caller will need to free().
+ */
+char *
+sha_lock(const unsigned char *secret, size_t seclen,
+         const unsigned char *message, size_t msglen)
+{
+	char
+		*canlock[1],
+		*tmp,
+		junk[SHA_DIGESTSIZE];
+    unsigned char
+        *cankey,
+        hmacbuff[SHA_DIGESTSIZE];
+    size_t
+        locksize;
+    SHA_CTX
+        hash_ctx;
+
+	tmp = sha_key(secret, seclen, message, msglen);
+	cankey = (unsigned char *) lock_strip_alpha(tmp, junk);
+	free(tmp);
+    if (!cankey)
+        return NULL;
+    if (sha_init(&hash_ctx)) {
+    	free(cankey);
+        return NULL;
+	}
+    if (sha_update(&hash_ctx, cankey, strlen((char *) cankey))) {
+    	free(cankey);
+        return NULL;
+	}
+	free(cankey);
+    if (sha_digest(&hash_ctx, hmacbuff))
+        return NULL;
+    locksize = base64_encode(hmacbuff, SHA_DIGESTSIZE, canlock);
+    if (!locksize)
+        return NULL;
+    *canlock = (char *) realloc((void *) *canlock, locksize + 6);
+    if (!*canlock)
+        return NULL;
+    memmove((void *) (*canlock + 5), (void *) *canlock, locksize + 1);
+    strncpy(*canlock, "sha1:", 5);
+    return (*canlock);
+}
+
+
+/* 
+ * Verify an SHA cancel key against a cancel lock.
+ * Returns 0 on success, nonzero on failure.
+ */
+int
+sha_verify(const char *key, const char *lock)
+{
+    unsigned char
+        binkey[SHA_DIGESTSIZE + 4],
+        hmacbuff[SHA_DIGESTSIZE];
+    char
+        *templock[1];
+    size_t
+        keysize,
+        locksize;
+    SHA_CTX
+        hash_ctx;
+
+
+    /* Convert the key back into binary */
+    keysize = base64_decode(key, (void *) &binkey);
+    if (!keysize)
+        return -1;
+
+    if (sha_init(&hash_ctx))
+        return -1;
+    if (sha_update(&hash_ctx, (unsigned char *)key, strlen(key)))
+        return -1;
+    if (sha_digest(&hash_ctx, hmacbuff))
+        return -1;
+
+    locksize = base64_encode(hmacbuff, SHA_DIGESTSIZE, templock);
+    if (!locksize)
+        return -1;
+
+    return strcmp(*templock, lock);
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/src/hmac_sha1.c tin-2.0.0/libcanlock/src/hmac_sha1.c
--- tin-1.8.3/libcanlock/src/hmac_sha1.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/src/hmac_sha1.c	2011-04-17 16:04:41.652777460 +0200
@@ -0,0 +1,130 @@
+/*
+ * COPYRIGHT AND PERMISSION NOTICE
+ * 
+ * Copyright (c) 2003 G.J. Andruk
+ * 
+ * All rights reserved.
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining
+ * a copy of this software and associated documentation files (the
+ * "Software"), to deal in the Software without restriction, including
+ * without limitation the rights to use, copy, modify, merge, publish,
+ * distribute, and/or sell copies of the Software, and to permit persons
+ * to whom the Software is furnished to do so, provided that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the Software and that both the above copyright notice(s) and this
+ * permission notice appear in supporting documentation.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY
+ * SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ * 
+ * Except as contained in this notice, the name of a copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "sha1.h"
+#include "hmac_sha1.h"
+
+#define ipad 0x36
+#define opad 0x5c
+
+/* 
+ * Encode a string using HMAC - see RFC-2104 for details.
+ * Returns the MAC, or NULL on error.
+ * Caller needs to free() non-NULL return values..
+ */
+unsigned char *
+hmac_sha1(
+            const unsigned char *K,   /* key */
+            int Klen,           /* and it size */
+            const unsigned char *T,   /* text to encode */
+            int Tlen            /* and its size */
+        )
+{
+    SHA_CTX
+        hash_ctx;
+    unsigned char
+        keyin[SHA_DATASIZE],
+        *step2,
+        step4[SHA_DIGESTSIZE],
+        step5[SHA_DATASIZE + SHA_DIGESTSIZE],
+        *hmac_out,
+        *c;
+    int
+        i,
+        j;
+
+    if (sha_init(&hash_ctx))
+        return NULL;
+
+    /* If the key is bigger than SHA_DATASIZE we need to hash it. */
+    if (Klen > SHA_DATASIZE) {
+        if (sha_update(&hash_ctx, K, Klen))
+            return NULL;
+        if (sha_digest(&hash_ctx, keyin))
+            return NULL;
+        Klen = SHA_DIGESTSIZE;
+    }
+    else
+        memcpy(keyin, K, Klen);
+
+    step2 = (unsigned char *) malloc(Tlen + SHA_DATASIZE);
+
+    c = keyin;
+    for (i = 0; i < Klen; i++) {
+        step2[i] = *c ^ ipad;
+        step5[i] = *c ^ opad;
+        c++;
+    }
+    for (j = i; j < SHA_DATASIZE; j++) {
+        step2[j] = ipad;
+        step5[j] = opad;
+    }
+    
+    memcpy(&step2[SHA_DATASIZE], T, Tlen);
+
+    if (sha_init(&hash_ctx)) {
+    	free(step2);
+        return NULL;
+	}
+    if (sha_update(&hash_ctx, step2, SHA_DATASIZE + Tlen)) {
+    	free(step2);
+        return NULL;
+	}
+	free(step2);
+    if (sha_digest(&hash_ctx, step4))
+        return NULL;
+
+    memcpy(&step5[SHA_DATASIZE], step4, SHA_DIGESTSIZE);
+
+    hmac_out = (unsigned char *) malloc(SHA_DIGESTSIZE);
+    if (!hmac_out)
+        return NULL;
+
+    if (sha_init(&hash_ctx)) {
+    	free(hmac_out);
+        return NULL;
+	}
+    if (sha_update(&hash_ctx, step5, SHA_DATASIZE + SHA_DIGESTSIZE)) {
+    	free(hmac_out);
+        return NULL;
+	}
+    if (sha_digest(&hash_ctx, hmac_out)) {
+    	free(hmac_out);
+        return NULL;
+	}
+
+    return hmac_out;
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/src/sha1.c tin-2.0.0/libcanlock/src/sha1.c
--- tin-1.8.3/libcanlock/src/sha1.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/src/sha1.c	2011-04-17 16:04:41.700784766 +0200
@@ -0,0 +1,353 @@
+/* sha.c - Implementation of the Secure Hash Algorithm
+ *
+ * Copyright (C) 1995, A.M. Kuchling
+ *
+ * Distribute and use freely; there are no restrictions on further 
+ * dissemination and usage except those imposed by the laws of your 
+ * country of residence.
+ *
+ * Adapted to pike and some cleanup by Niels Möller.
+ */
+
+/* $Id: sha1.c,v 1.5 2002/05/26 17:46:16 nmav Exp $ */
+
+/* SHA: NIST's Secure Hash Algorithm */
+
+/* Based on SHA code originally posted to sci.crypt by Peter Gutmann
+   in message <30ajo5$oe8@ccu2.auckland.ac.nz>.
+   Modified to test for endianness on creation of SHA objects by AMK.
+   Also, the original specification of SHA was found to have a weakness
+   by NSA/NIST.  This code implements the fixed version of SHA.
+*/
+
+/* Here's the first paragraph of Peter Gutmann's posting:
+   
+The following is my SHA (FIPS 180) code updated to allow use of the "fixed"
+SHA, thanks to Jim Gillogly and an anonymous contributor for the information on
+what's changed in the new version.  The fix is a simple change which involves
+adding a single rotate in the initial expansion function.  It is unknown
+whether this is an optimal solution to the problem which was discovered in the
+SHA or whether it's simply a bandaid which fixes the problem with a minimum of
+effort (for example the reengineering of a great many Capstone chips).
+*/
+
+#include "sha1.h"
+#include <stdlib.h>
+#include <string.h>
+
+void sha_copy(struct sha_ctx *dest, struct sha_ctx *src)
+{
+  int i;
+
+  dest->count_l=src->count_l;
+  dest->count_h=src->count_h;
+  for(i=0; i<SHA_DIGESTLEN; i++)
+    dest->digest[i]=src->digest[i];
+  for(i=0; i < src->index; i++)
+    dest->block[i] = src->block[i];
+  dest->index = src->index;
+}
+
+
+/* The SHA f()-functions.  The f1 and f3 functions can be optimized to
+   save one boolean operation each - thanks to Rich Schroeppel,
+   rcs@cs.arizona.edu for discovering this */
+
+/*#define f1(x,y,z) ( ( x & y ) | ( ~x & z ) )          // Rounds  0-19 */
+#define f1(x,y,z)   ( z ^ ( x & ( y ^ z ) ) )           /* Rounds  0-19 */
+#define f2(x,y,z)   ( x ^ y ^ z )                       /* Rounds 20-39 */
+/*#define f3(x,y,z) ( ( x & y ) | ( x & z ) | ( y & z ) )   // Rounds 40-59 */
+#define f3(x,y,z)   ( ( x & y ) | ( z & ( x | y ) ) )   /* Rounds 40-59 */
+#define f4(x,y,z)   ( x ^ y ^ z )                       /* Rounds 60-79 */
+
+/* The SHA Mysterious Constants */
+
+#define K1  0x5A827999L                                 /* Rounds  0-19 */
+#define K2  0x6ED9EBA1L                                 /* Rounds 20-39 */
+#define K3  0x8F1BBCDCL                                 /* Rounds 40-59 */
+#define K4  0xCA62C1D6L                                 /* Rounds 60-79 */
+
+/* SHA initial values */
+
+#define h0init  0x67452301L
+#define h1init  0xEFCDAB89L
+#define h2init  0x98BADCFEL
+#define h3init  0x10325476L
+#define h4init  0xC3D2E1F0L
+
+/* 32-bit rotate left - kludged with shifts */
+
+#define ROTL(n,X)  ( ( (X) << (n) ) | ( (X) >> ( 32 - (n) ) ) )
+
+/* The initial expanding function.  The hash function is defined over an
+   80-word expanded input array W, where the first 16 are copies of the input
+   data, and the remaining 64 are defined by
+
+        W[ i ] = W[ i - 16 ] ^ W[ i - 14 ] ^ W[ i - 8 ] ^ W[ i - 3 ]
+
+   This implementation generates these values on the fly in a circular
+   buffer - thanks to Colin Plumb, colin@nyx10.cs.du.edu for this
+   optimization.
+
+   The updated SHA changes the expanding function by adding a rotate of 1
+   bit.  Thanks to Jim Gillogly, jim@rand.org, and an anonymous contributor
+   for this information */
+
+#define expand(W,i) ( W[ i & 15 ] = \
+		      ROTL( 1, ( W[ i & 15 ] ^ W[ (i - 14) & 15 ] ^ \
+				 W[ (i - 8) & 15 ] ^ W[ (i - 3) & 15 ] ) ) )
+
+/* The prototype SHA sub-round.  The fundamental sub-round is:
+
+        a' = e + ROTL( 5, a ) + f( b, c, d ) + k + data;
+        b' = a;
+        c' = ROTL( 30, b );
+        d' = c;
+        e' = d;
+
+   but this is implemented by unrolling the loop 5 times and renaming the
+   variables ( e, a, b, c, d ) = ( a', b', c', d', e' ) each iteration.
+   This code is then replicated 20 times for each of the 4 functions, using
+   the next 20 values from the W[] array each time */
+
+#define subRound(a, b, c, d, e, f, k, data) \
+    ( e += ROTL( 5, a ) + f( b, c, d ) + k + data, b = ROTL( 30, b ) )
+
+/* Initialize the SHA values */
+
+int sha_init(struct sha_ctx *ctx)
+{
+  /* Set the h-vars to their initial values */
+  ctx->digest[ 0 ] = h0init;
+  ctx->digest[ 1 ] = h1init;
+  ctx->digest[ 2 ] = h2init;
+  ctx->digest[ 3 ] = h3init;
+  ctx->digest[ 4 ] = h4init;
+
+  /* Initialize bit count */
+  ctx->count_l = ctx->count_h = 0;
+  
+  /* Initialize buffer */
+  ctx->index = 0;
+  ctx->finalized = 0;
+  return 0;
+}
+
+/* Perform the SHA transformation.  Note that this code, like MD5, seems to
+   break some optimizing compilers due to the complexity of the expressions
+   and the size of the basic block.  It may be necessary to split it into
+   sections, e.g. based on the four subrounds
+
+   Note that this function destroys the data area */
+
+static void sha_transform(struct sha_ctx *ctx, uint32_t *data )
+{
+  register uint32_t A, B, C, D, E;     /* Local vars */
+
+  /* Set up first buffer and local data buffer */
+  A = ctx->digest[0];
+  B = ctx->digest[1];
+  C = ctx->digest[2];
+  D = ctx->digest[3];
+  E = ctx->digest[4];
+
+  /* Heavy mangling, in 4 sub-rounds of 20 interations each. */
+  subRound( A, B, C, D, E, f1, K1, data[ 0] );
+  subRound( E, A, B, C, D, f1, K1, data[ 1] );
+  subRound( D, E, A, B, C, f1, K1, data[ 2] );
+  subRound( C, D, E, A, B, f1, K1, data[ 3] );
+  subRound( B, C, D, E, A, f1, K1, data[ 4] );
+  subRound( A, B, C, D, E, f1, K1, data[ 5] );
+  subRound( E, A, B, C, D, f1, K1, data[ 6] );
+  subRound( D, E, A, B, C, f1, K1, data[ 7] );
+  subRound( C, D, E, A, B, f1, K1, data[ 8] );
+  subRound( B, C, D, E, A, f1, K1, data[ 9] );
+  subRound( A, B, C, D, E, f1, K1, data[10] );
+  subRound( E, A, B, C, D, f1, K1, data[11] );
+  subRound( D, E, A, B, C, f1, K1, data[12] );
+  subRound( C, D, E, A, B, f1, K1, data[13] );
+  subRound( B, C, D, E, A, f1, K1, data[14] );
+  subRound( A, B, C, D, E, f1, K1, data[15] );
+  subRound( E, A, B, C, D, f1, K1, expand( data, 16 ) );
+  subRound( D, E, A, B, C, f1, K1, expand( data, 17 ) );
+  subRound( C, D, E, A, B, f1, K1, expand( data, 18 ) );
+  subRound( B, C, D, E, A, f1, K1, expand( data, 19 ) );
+
+  subRound( A, B, C, D, E, f2, K2, expand( data, 20 ) );
+  subRound( E, A, B, C, D, f2, K2, expand( data, 21 ) );
+  subRound( D, E, A, B, C, f2, K2, expand( data, 22 ) );
+  subRound( C, D, E, A, B, f2, K2, expand( data, 23 ) );
+  subRound( B, C, D, E, A, f2, K2, expand( data, 24 ) );
+  subRound( A, B, C, D, E, f2, K2, expand( data, 25 ) );
+  subRound( E, A, B, C, D, f2, K2, expand( data, 26 ) );
+  subRound( D, E, A, B, C, f2, K2, expand( data, 27 ) );
+  subRound( C, D, E, A, B, f2, K2, expand( data, 28 ) );
+  subRound( B, C, D, E, A, f2, K2, expand( data, 29 ) );
+  subRound( A, B, C, D, E, f2, K2, expand( data, 30 ) );
+  subRound( E, A, B, C, D, f2, K2, expand( data, 31 ) );
+  subRound( D, E, A, B, C, f2, K2, expand( data, 32 ) );
+  subRound( C, D, E, A, B, f2, K2, expand( data, 33 ) );
+  subRound( B, C, D, E, A, f2, K2, expand( data, 34 ) );
+  subRound( A, B, C, D, E, f2, K2, expand( data, 35 ) );
+  subRound( E, A, B, C, D, f2, K2, expand( data, 36 ) );
+  subRound( D, E, A, B, C, f2, K2, expand( data, 37 ) );
+  subRound( C, D, E, A, B, f2, K2, expand( data, 38 ) );
+  subRound( B, C, D, E, A, f2, K2, expand( data, 39 ) );
+
+  subRound( A, B, C, D, E, f3, K3, expand( data, 40 ) );
+  subRound( E, A, B, C, D, f3, K3, expand( data, 41 ) );
+  subRound( D, E, A, B, C, f3, K3, expand( data, 42 ) );
+  subRound( C, D, E, A, B, f3, K3, expand( data, 43 ) );
+  subRound( B, C, D, E, A, f3, K3, expand( data, 44 ) );
+  subRound( A, B, C, D, E, f3, K3, expand( data, 45 ) );
+  subRound( E, A, B, C, D, f3, K3, expand( data, 46 ) );
+  subRound( D, E, A, B, C, f3, K3, expand( data, 47 ) );
+  subRound( C, D, E, A, B, f3, K3, expand( data, 48 ) );
+  subRound( B, C, D, E, A, f3, K3, expand( data, 49 ) );
+  subRound( A, B, C, D, E, f3, K3, expand( data, 50 ) );
+  subRound( E, A, B, C, D, f3, K3, expand( data, 51 ) );
+  subRound( D, E, A, B, C, f3, K3, expand( data, 52 ) );
+  subRound( C, D, E, A, B, f3, K3, expand( data, 53 ) );
+  subRound( B, C, D, E, A, f3, K3, expand( data, 54 ) );
+  subRound( A, B, C, D, E, f3, K3, expand( data, 55 ) );
+  subRound( E, A, B, C, D, f3, K3, expand( data, 56 ) );
+  subRound( D, E, A, B, C, f3, K3, expand( data, 57 ) );
+  subRound( C, D, E, A, B, f3, K3, expand( data, 58 ) );
+  subRound( B, C, D, E, A, f3, K3, expand( data, 59 ) );
+
+  subRound( A, B, C, D, E, f4, K4, expand( data, 60 ) );
+  subRound( E, A, B, C, D, f4, K4, expand( data, 61 ) );
+  subRound( D, E, A, B, C, f4, K4, expand( data, 62 ) );
+  subRound( C, D, E, A, B, f4, K4, expand( data, 63 ) );
+  subRound( B, C, D, E, A, f4, K4, expand( data, 64 ) );
+  subRound( A, B, C, D, E, f4, K4, expand( data, 65 ) );
+  subRound( E, A, B, C, D, f4, K4, expand( data, 66 ) );
+  subRound( D, E, A, B, C, f4, K4, expand( data, 67 ) );
+  subRound( C, D, E, A, B, f4, K4, expand( data, 68 ) );
+  subRound( B, C, D, E, A, f4, K4, expand( data, 69 ) );
+  subRound( A, B, C, D, E, f4, K4, expand( data, 70 ) );
+  subRound( E, A, B, C, D, f4, K4, expand( data, 71 ) );
+  subRound( D, E, A, B, C, f4, K4, expand( data, 72 ) );
+  subRound( C, D, E, A, B, f4, K4, expand( data, 73 ) );
+  subRound( B, C, D, E, A, f4, K4, expand( data, 74 ) );
+  subRound( A, B, C, D, E, f4, K4, expand( data, 75 ) );
+  subRound( E, A, B, C, D, f4, K4, expand( data, 76 ) );
+  subRound( D, E, A, B, C, f4, K4, expand( data, 77 ) );
+  subRound( C, D, E, A, B, f4, K4, expand( data, 78 ) );
+  subRound( B, C, D, E, A, f4, K4, expand( data, 79 ) );
+
+  /* Build message digest */
+  ctx->digest[0] += A;
+  ctx->digest[1] += B;
+  ctx->digest[2] += C;
+  ctx->digest[3] += D;
+  ctx->digest[4] += E;
+}
+
+
+static void sha_block(struct sha_ctx *ctx, const uint8_t *block)
+{
+  uint32_t data[SHA_DATALEN];
+  int i;
+  
+  /* Update block count */
+  if (!++ctx->count_l)
+    ++ctx->count_h;
+
+  /* Endian independent conversion */
+  for (i = 0; i<SHA_DATALEN; i++, block += 4)
+    data[i] = STRING2INT(block);
+
+  sha_transform(ctx, data);
+}
+
+int sha_update(struct sha_ctx *ctx, const uint8_t *buffer, uint32_t len)
+{
+  if (ctx->index)
+    { /* Try to fill partial block */
+      unsigned left = SHA_DATASIZE - ctx->index;
+      if (len < left)
+	{
+	  memcpy(ctx->block + ctx->index, buffer, len);
+	  ctx->index += len;
+	  return 0; /* Finished */
+	}
+      else
+	{
+	  memcpy(ctx->block + ctx->index, buffer, left);
+	  sha_block(ctx, ctx->block);
+	  buffer += left;
+	  len -= left;
+	}
+    }
+  while (len >= SHA_DATASIZE)
+    {
+      sha_block(ctx, buffer);
+      buffer += SHA_DATASIZE;
+      len -= SHA_DATASIZE;
+    }
+  if ((ctx->index = len))     /* This assignment is intended */
+    /* Buffer leftovers */
+    memcpy(ctx->block, buffer, len);
+  return 0;
+}
+	  
+/* Final wrapup - pad to SHA_DATASIZE-byte boundary with the bit pattern
+   1 0* (64-bit count of bits processed, MSB-first) */
+
+void sha_final(struct sha_ctx *ctx)
+{
+  uint32_t data[SHA_DATALEN];
+  int i;
+  int words;
+  
+  i = ctx->index;
+  /* Set the first char of padding to 0x80.  This is safe since there is
+     always at least one byte free */
+  ctx->block[i++] = 0x80;
+
+  /* Fill rest of word */
+  for( ; i & 3; i++)
+    ctx->block[i] = 0;
+
+  /* i is now a multiple of the word size 4 */
+  words = i >> 2;
+  for (i = 0; i < words; i++)
+    data[i] = STRING2INT(ctx->block + 4*i);
+  
+  if (words > (SHA_DATALEN-2))
+    { /* No room for length in this block. Process it and
+       * pad with another one */
+      for (i = words ; i < SHA_DATALEN; i++)
+	data[i] = 0;
+      sha_transform(ctx, data);
+      for (i = 0; i < (SHA_DATALEN-2); i++)
+	data[i] = 0;
+    }
+  else
+    for (i = words ; i < SHA_DATALEN - 2; i++)
+      data[i] = 0;
+  /* Theres 512 = 2^9 bits in one block */
+  data[SHA_DATALEN-2] = (ctx->count_h << 9) | (ctx->count_l >> 23);
+  data[SHA_DATALEN-1] = (ctx->count_l << 9) | (ctx->index << 3);
+  sha_transform(ctx, data);
+  ctx->finalized = 1;
+}
+
+int sha_digest(struct sha_ctx *ctx, uint8_t *s)
+{
+  int i;
+  if (ctx->finalized == 0)
+    sha_final (ctx);
+
+  if (s!=NULL)
+	  for (i = 0; i < SHA_DIGESTLEN; i++)
+	    {
+	      *s++ =         ctx->digest[i] >> 24;
+	      *s++ = 0xff & (ctx->digest[i] >> 16);
+	      *s++ = 0xff & (ctx->digest[i] >> 8);
+	      *s++ = 0xff &  ctx->digest[i];
+	    }
+  return 0;
+}
+
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/t/canlocktest.c tin-2.0.0/libcanlock/t/canlocktest.c
--- tin-1.8.3/libcanlock/t/canlocktest.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/t/canlocktest.c	2011-04-17 16:04:42.304876697 +0200
@@ -0,0 +1,110 @@
+/* 
+ * canlocktest.c - just checking.
+ * 
+ * This program doesn't really do anything but lightly exercise all the
+ * library functions, so you can make sure it all compiled correctly. 
+ * Everything's kept simple so that you can also see how they would be
+ * called in a real application.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include "canlock.h"
+
+#define BUFFSIZE 512
+
+void checker(char *key, char *lock);
+
+void
+checker(char *key, char *lock)
+{
+    char
+        *rawkey,
+        *rawlock;
+    char
+        keytype[BUFFSIZE],
+        locktype[BUFFSIZE];
+
+    printf("L %s K %s ", lock, key);
+
+    rawkey = lock_strip_alpha(key, keytype);
+    rawlock = lock_strip_alpha(lock, locktype);
+
+    if (!strcmp(keytype, locktype)) {
+        if (!strcmp(keytype, "sha1")) {
+            if (!sha_verify(rawkey, rawlock))
+                printf("sha1 OK\n");
+            else
+                printf("sha1 no\n");
+        }
+        else
+            printf("unknown\n");
+    }
+    else
+        printf("Mismatch %s %s\n", keytype, locktype);
+}
+
+
+int
+main(void)
+{
+    char
+        cankey[256],
+        canlock[256],
+        *lkey,
+        *llock;
+    unsigned char
+        secret[] = "fluffy",
+        message[] = "<lkr905851929.22670@meow.invalid>";
+
+    printf("Secret %s\n", secret);
+    printf("Message %s\n", message);
+
+    llock = sha_lock(secret, strlen((char *) secret),
+                     message, strlen((char *) message));
+    lkey = sha_key(secret, strlen((char *) secret),
+                   message, strlen((char *)message));
+
+    printf("%s%s %s\n", "SHA Expect Lock/Key:\n",
+           "L sha1:ScU1gyAi9bd/aFEOyzg4m99lwXs=",
+           "K sha1:C1Me/4n0l/V778Ih3J2UnhAoHrA=");
+
+    checker(lkey, llock);
+    free((void *) llock);
+    free((void *) lkey);
+    printf("---\n");
+
+/*********/
+
+    printf("Testing against usefor cancel lock draft 01 samples...\n");
+
+    sprintf(canlock, "%s", "sha1:bNXHc6ohSmeHaRHHW56BIWZJt+4=");
+    sprintf(cankey, "%s", "sha1:aaaBBBcccDDDeeeFFF");
+    checker(cankey, canlock);
+    printf("---above should have been OK---\n");
+
+/*********/
+
+    sprintf(canlock, "%s", "SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s=");
+    sprintf(cankey, "%s", "sha1:chW8hNeDx3iNUsGBU6/ezDk88P4=");
+    checker(cankey, canlock);
+
+    sprintf(canlock, "%s", "SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s=");
+    sprintf(cankey, "%s", "sha1:4srkWaRIzvK51ArAP:Hc");
+    checker(cankey, canlock);
+    printf("---above should have been OK, no---\n");
+
+/*********/
+
+    sprintf(canlock, "%s", "sha1:JyEBL4w9/abCBuzCxMIE/E73GM4=");
+    sprintf(cankey, "%s", "sha1:K4rkWRjRcXmIzvK51ArAP:Jy");
+    checker(cankey, canlock);
+
+    sprintf(canlock, "%s", "sha1:2Bmg+zWaY1noRiCdy8k3IapwSDU=");
+    sprintf(cankey, "%s", "sha1:K4rkWRjRcXmIzvK51ArAP:Jy");
+    checker(cankey, canlock);
+    printf("---above should have been OK, no---\n");
+    
+    return 0;
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/t/canlocktest.shouldbe tin-2.0.0/libcanlock/t/canlocktest.shouldbe
--- tin-1.8.3/libcanlock/t/canlocktest.shouldbe	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/t/canlocktest.shouldbe	2011-04-17 16:04:42.380888264 +0200
@@ -0,0 +1,15 @@
+Secret fluffy
+Message <lkr905851929.22670@meow.invalid>
+SHA Expect Lock/Key:
+L sha1:ScU1gyAi9bd/aFEOyzg4m99lwXs= K sha1:C1Me/4n0l/V778Ih3J2UnhAoHrA=
+L sha1:ScU1gyAi9bd/aFEOyzg4m99lwXs= K sha1:C1Me/4n0l/V778Ih3J2UnhAoHrA= sha1 OK
+---
+Testing against usefor cancel lock draft 01 samples...
+L sha1:bNXHc6ohSmeHaRHHW56BIWZJt+4= K sha1:aaaBBBcccDDDeeeFFF sha1 OK
+---above should have been OK---
+L SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s= K sha1:chW8hNeDx3iNUsGBU6/ezDk88P4= sha1 OK
+L SHA1:H7/zsCUemvbvSDyARDaMs6AQu5s= K sha1:4srkWaRIzvK51ArAP:Hc sha1 no
+---above should have been OK, no---
+L sha1:JyEBL4w9/abCBuzCxMIE/E73GM4= K sha1:K4rkWRjRcXmIzvK51ArAP:Jy sha1 OK
+L sha1:2Bmg+zWaY1noRiCdy8k3IapwSDU= K sha1:K4rkWRjRcXmIzvK51ArAP:Jy sha1 no
+---above should have been OK, no---
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/t/hmactest.c tin-2.0.0/libcanlock/t/hmactest.c
--- tin-1.8.3/libcanlock/t/hmactest.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/t/hmactest.c	2011-04-17 16:04:42.352884002 +0200
@@ -0,0 +1,115 @@
+/*
+ * hmac test program
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "sha1.h"
+#include "hmac_sha1.h"
+
+int
+main(void)
+{
+    unsigned char
+        *hmachash,
+        key1[] = "Jefe",
+        message1[] = "what do ya want for nothing?",
+        key2[20],
+        message2[] = "Hi There",
+        key3[80],
+        message3[] = "Test Using Larger Than Block-Size Key - Hash Key First",
+        key4[80],
+        message4[] = "Test Using Larger Than Block-Size Key and Larger "
+                     "Than One Block-Size Data",
+        key5[] = {  0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+                    0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+                    0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
+                    0x19, 0x00
+                 },
+        message5[50];
+    int
+        i;
+
+
+    for (i = 0; i < 20; i++)
+        key2[i] = 0x0b;
+
+    for (i = 0; i < 80; i++)
+        key3[i] = 0xaa;
+
+    for (i = 0; i < 80; i++)
+        key4[i] = 0xaa;
+
+    for (i = 0; i < 50; i++)
+        message5[i] = 0xcd;
+
+    printf("Key: %s\n", key1);
+    printf("Msg: %s\n", message1);
+    hmachash = hmac_sha1(key1, strlen((char *) key1),
+                         message1, strlen((char *)message1));
+    printf("Expected SHA Digest: %s\n",
+           "0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79");
+    printf("  Actual SHA Digest: 0x");
+    for (i = 0; i < SHA_DIGESTSIZE; i++)
+        printf("%02x", hmachash[i]);
+    putchar('\n');
+
+
+/********/
+
+    printf("\nKey: 0x0b, len 20 for SHA, 16 for MD5\n");
+    printf("Msg: %s\n", message2);
+
+
+    hmachash = hmac_sha1(key2, 20, message2, strlen((char *) message2));
+    printf("Expected SHA Digest: %s\n",
+           "0xb617318655057264e28bc0b6fb378c8ef146be00");
+    printf("  Actual SHA Digest: 0x");
+    for (i = 0; i < SHA_DIGESTSIZE; i++)
+        printf("%02x", hmachash[i]);
+    putchar('\n');
+
+/********/
+
+    printf("\nKey: 0xaa repeated 80 times\n");
+    printf("Msg: %s\n", message3);
+
+    hmachash = hmac_sha1(key3, 80, message3, strlen((char *) message3));
+    printf("Expected SHA Digest: %s\n",
+           "0xaa4ae5e15272d00e95705637ce8a3b55ed402112");
+    printf("  Actual SHA Digest: 0x");
+    for (i = 0; i < SHA_DIGESTSIZE; i++)
+        printf("%02x", hmachash[i]);
+    putchar('\n');
+
+/********/
+
+    printf("\nKey: 0xaa repeated 80 times\n");
+    printf("Msg: %s\n", message4);
+
+    hmachash = hmac_sha1(key4, 80, message4, strlen((char *) message4));
+    printf("Expected SHA Digest: %s\n",
+           "0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91");
+    printf("  Actual SHA Digest: 0x");
+    for (i = 0; i < SHA_DIGESTSIZE; i++)
+        printf("%02x", hmachash[i]);
+    putchar('\n');
+
+/********/
+
+    printf("\nKey: 0x");
+    for (i = 0; i < 25; i++)
+        printf("%02x", key5[i]);
+
+    printf("\nMsg: 0xcd repeated 50 times\n");
+
+    hmachash = hmac_sha1(key5, 25, message5, 50);
+    printf("Expected SHA Digest: %s\n",
+           "0x4c9007f4026250c6bc8414f9bf50c86c2d7235da");
+    printf("  Actual SHA Digest: 0x");
+    for (i = 0; i < SHA_DIGESTSIZE; i++)
+        printf("%02x", hmachash[i]);
+    putchar('\n');
+
+    return 0;
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/libcanlock/t/hmactest.shouldbe tin-2.0.0/libcanlock/t/hmactest.shouldbe
--- tin-1.8.3/libcanlock/t/hmactest.shouldbe	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/libcanlock/t/hmactest.shouldbe	2011-04-17 16:04:42.424894960 +0200
@@ -0,0 +1,24 @@
+Key: Jefe
+Msg: what do ya want for nothing?
+Expected SHA Digest: 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79
+  Actual SHA Digest: 0xeffcdf6ae5eb2fa2d27416d5f184df9c259a7c79
+
+Key: 0x0b, len 20 for SHA, 16 for MD5
+Msg: Hi There
+Expected SHA Digest: 0xb617318655057264e28bc0b6fb378c8ef146be00
+  Actual SHA Digest: 0xb617318655057264e28bc0b6fb378c8ef146be00
+
+Key: 0xaa repeated 80 times
+Msg: Test Using Larger Than Block-Size Key - Hash Key First
+Expected SHA Digest: 0xaa4ae5e15272d00e95705637ce8a3b55ed402112
+  Actual SHA Digest: 0xaa4ae5e15272d00e95705637ce8a3b55ed402112
+
+Key: 0xaa repeated 80 times
+Msg: Test Using Larger Than Block-Size Key and Larger Than One Block-Size Data
+Expected SHA Digest: 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91
+  Actual SHA Digest: 0xe8e99d0f45237d786d6bbaa7965c7808bbff1a91
+
+Key: 0x0102030405060708090a0b0c0d0e0f10111213141516171819
+Msg: 0xcd repeated 50 times
+Expected SHA Digest: 0x4c9007f4026250c6bc8414f9bf50c86c2d7235da
+  Actual SHA Digest: 0x4c9007f4026250c6bc8414f9bf50c86c2d7235da
diff -Nurp --exclude='.bzr*' tin-1.8.3/mkdirs.sh tin-2.0.0/mkdirs.sh
--- tin-1.8.3/mkdirs.sh	2005-06-28 10:31:30.000000000 +0200
+++ tin-2.0.0/mkdirs.sh	1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Last modified: 1994-03-25
-# Public domain
-#
-
-errstatus=0
-umask 022
-
-for file in ${1+"$@"} ; do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d in ${1+"$@"} ; do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp" 1>&2
-        case "$pathcomp" in
-          [abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]: )
-                ;;               # DOSISH systems
-          * )          mkdir "$pathcomp" || errstatus=$? ;;
-        esac
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# mkinstalldirs ends here
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/AUTHORS tin-2.0.0/pcre/AUTHORS
--- tin-1.8.3/pcre/AUTHORS	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/pcre/AUTHORS	2011-04-17 16:04:36.648015842 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/COPYING tin-2.0.0/pcre/COPYING
--- tin-1.8.3/pcre/COPYING	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/pcre/COPYING	2011-04-17 16:04:36.692022538 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/ChangeLog tin-2.0.0/pcre/ChangeLog
--- tin-1.8.3/pcre/ChangeLog	2005-09-12 16:31:22.000000000 +0200
+++ tin-2.0.0/pcre/ChangeLog	2011-04-17 16:04:36.760032888 +0200
@@ -1,6 +1,677 @@
 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
+---------------------
+
+ 1. Change 16(a) for 6.5 broke things, because PCRE_DATA_SCOPE was not defined
+    in pcreposix.h. I have copied the definition from pcre.h.
+
+ 2. Change 25 for 6.5 broke compilation in a build directory out-of-tree
+    because pcre.h is no longer a built file.
+
+ 3. Added Jeff Friedl's additional debugging patches to pcregrep. These are
+    not normally included in the compiled code.
+
+
+Version 6.5 01-Feb-06
+---------------------
+
+ 1. When using the partial match feature with pcre_dfa_exec(), it was not
+    anchoring the second and subsequent partial matches at the new starting
+    point. This could lead to incorrect results. For example, with the pattern
+    /1234/, partially matching against "123" and then "a4" gave a match.
+
+ 2. Changes to pcregrep:
+
+    (a) All non-match returns from pcre_exec() were being treated as failures
+        to match the line. Now, unless the error is PCRE_ERROR_NOMATCH, an
+        error message is output. Some extra information is given for the
+        PCRE_ERROR_MATCHLIMIT and PCRE_ERROR_RECURSIONLIMIT errors, which are
+        probably the only errors that are likely to be caused by users (by
+        specifying a regex that has nested indefinite repeats, for instance).
+        If there are more than 20 of these errors, pcregrep is abandoned.
+
+    (b) A binary zero was treated as data while matching, but terminated the
+        output line if it was written out. This has been fixed: binary zeroes
+        are now no different to any other data bytes.
+
+    (c) Whichever of the LC_ALL or LC_CTYPE environment variables is set is
+        used to set a locale for matching. The --locale=xxxx long option has
+        been added (no short equivalent) to specify a locale explicitly on the
+        pcregrep command, overriding the environment variables.
+
+    (d) When -B was used with -n, some line numbers in the output were one less
+        than they should have been.
+
+    (e) Added the -o (--only-matching) option.
+
+    (f) If -A or -C was used with -c (count only), some lines of context were
+        accidentally printed for the final match.
+
+    (g) Added the -H (--with-filename) option.
+
+    (h) The combination of options -rh failed to suppress file names for files
+        that were found from directory arguments.
+
+    (i) Added the -D (--devices) and -d (--directories) options.
+
+    (j) Added the -F (--fixed-strings) option.
+
+    (k) Allow "-" to be used as a file name for -f as well as for a data file.
+
+    (l) Added the --colo(u)r option.
+
+    (m) Added Jeffrey Friedl's -S testing option, but within #ifdefs so that it
+        is not present by default.
+
+ 3. A nasty bug was discovered in the handling of recursive patterns, that is,
+    items such as (?R) or (?1), when the recursion could match a number of
+    alternatives. If it matched one of the alternatives, but subsequently,
+    outside the recursion, there was a failure, the code tried to back up into
+    the recursion. However, because of the way PCRE is implemented, this is not
+    possible, and the result was an incorrect result from the match.
+
+    In order to prevent this happening, the specification of recursion has
+    been changed so that all such subpatterns are automatically treated as
+    atomic groups. Thus, for example, (?R) is treated as if it were (?>(?R)).
+
+ 4. I had overlooked the fact that, in some locales, there are characters for
+    which isalpha() is true but neither isupper() nor islower() are true. In
+    the fr_FR locale, for instance, the \xAA and \xBA characters (ordmasculine
+    and ordfeminine) are like this. This affected the treatment of \w and \W
+    when they appeared in character classes, but not when they appeared outside
+    a character class. The bit map for "word" characters is now created
+    separately from the results of isalnum() instead of just taking it from the
+    upper, lower, and digit maps. (Plus the underscore character, of course.)
+
+ 5. The above bug also affected the handling of POSIX character classes such as
+    [[:alpha:]] and [[:alnum:]]. These do not have their own bit maps in PCRE's
+    permanent tables. Instead, the bit maps for such a class were previously
+    created as the appropriate unions of the upper, lower, and digit bitmaps.
+    Now they are created by subtraction from the [[:word:]] class, which has
+    its own bitmap.
+
+ 6. The [[:blank:]] character class matches horizontal, but not vertical space.
+    It is created by subtracting the vertical space characters (\x09, \x0a,
+    \x0b, \x0c) from the [[:space:]] bitmap. Previously, however, the
+    subtraction was done in the overall bitmap for a character class, meaning
+    that a class such as [\x0c[:blank:]] was incorrect because \x0c would not
+    be recognized. This bug has been fixed.
+
+ 7. Patches from the folks at Google:
+
+      (a) pcrecpp.cc: "to handle a corner case that may or may not happen in
+      real life, but is still worth protecting against".
+
+      (b) pcrecpp.cc: "corrects a bug when negative radixes are used with
+      regular expressions".
+
+      (c) pcre_scanner.cc: avoid use of std::count() because not all systems
+      have it.
+
+      (d) Split off pcrecpparg.h from pcrecpp.h and had the former built by
+      "configure" and the latter not, in order to fix a problem somebody had
+      with compiling the Arg class on HP-UX.
+
+      (e) Improve the error-handling of the C++ wrapper a little bit.
+
+      (f) New tests for checking recursion limiting.
+
+ 8. The pcre_memmove() function, which is used only if the environment does not
+    have a standard memmove() function (and is therefore rarely compiled),
+    contained two bugs: (a) use of int instead of size_t, and (b) it was not
+    returning a result (though PCRE never actually uses the result).
+
+ 9. In the POSIX regexec() interface, if nmatch is specified as a ridiculously
+    large number - greater than INT_MAX/(3*sizeof(int)) - REG_ESPACE is
+    returned instead of calling malloc() with an overflowing number that would
+    most likely cause subsequent chaos.
+
+10. The debugging option of pcretest was not showing the NO_AUTO_CAPTURE flag.
+
+11. The POSIX flag REG_NOSUB is now supported. When a pattern that was compiled
+    with this option is matched, the nmatch and pmatch options of regexec() are
+    ignored.
+
+12. Added REG_UTF8 to the POSIX interface. This is not defined by POSIX, but is
+    provided in case anyone wants to the the POSIX interface with UTF-8
+    strings.
+
+13. Added CXXLDFLAGS to the Makefile parameters to provide settings only on the
+    C++ linking (needed for some HP-UX environments).
+
+14. Avoid compiler warnings in get_ucpname() when compiled without UCP support
+    (unused parameter) and in the pcre_printint() function (omitted "default"
+    switch label when the default is to do nothing).
+
+15. Added some code to make it possible, when PCRE is compiled as a C++
+    library, to replace subject pointers for pcre_exec() with a smart pointer
+    class, thus making it possible to process discontinuous strings.
+
+16. The two macros PCRE_EXPORT and PCRE_DATA_SCOPE are confusing, and perform
+    much the same function. They were added by different people who were trying
+    to make PCRE easy to compile on non-Unix systems. It has been suggested
+    that PCRE_EXPORT be abolished now that there is more automatic apparatus
+    for compiling on Windows systems. I have therefore replaced it with
+    PCRE_DATA_SCOPE. This is set automatically for Windows; if not set it
+    defaults to "extern" for C or "extern C" for C++, which works fine on
+    Unix-like systems. It is now possible to override the value of PCRE_DATA_
+    SCOPE with something explicit in config.h. In addition:
+
+    (a) pcreposix.h still had just "extern" instead of either of these macros;
+        I have replaced it with PCRE_DATA_SCOPE.
+
+    (b) Functions such as _pcre_xclass(), which are internal to the library,
+        but external in the C sense, all had PCRE_EXPORT in their definitions.
+        This is apparently wrong for the Windows case, so I have removed it.
+        (It makes no difference on Unix-like systems.)
+
+17. Added a new limit, MATCH_LIMIT_RECURSION, which limits the depth of nesting
+    of recursive calls to match(). This is different to MATCH_LIMIT because
+    that limits the total number of calls to match(), not all of which increase
+    the depth of recursion. Limiting the recursion depth limits the amount of
+    stack (or heap if NO_RECURSE is set) that is used. The default can be set
+    when PCRE is compiled, and changed at run time. A patch from Google adds
+    this functionality to the C++ interface.
+
+18. Changes to the handling of Unicode character properties:
+
+    (a) Updated the table to Unicode 4.1.0.
+
+    (b) Recognize characters that are not in the table as "Cn" (undefined).
+
+    (c) I revised the way the table is implemented to a much improved format
+        which includes recognition of ranges. It now supports the ranges that
+        are defined in UnicodeData.txt, and it also amalgamates other
+        characters into ranges. This has reduced the number of entries in the
+        table from around 16,000 to around 3,000, thus reducing its size
+        considerably. I realized I did not need to use a tree structure after
+        all - a binary chop search is just as efficient. Having reduced the
+        number of entries, I extended their size from 6 bytes to 8 bytes to
+        allow for more data.
+
+    (d) Added support for Unicode script names via properties such as \p{Han}.
+
+19. In UTF-8 mode, a backslash followed by a non-Ascii character was not
+    matching that character.
+
+20. When matching a repeated Unicode property with a minimum greater than zero,
+    (for example \pL{2,}), PCRE could look past the end of the subject if it
+    reached it while seeking the minimum number of characters. This could
+    happen only if some of the characters were more than one byte long, because
+    there is a check for at least the minimum number of bytes.
+
+21. Refactored the implementation of \p and \P so as to be more general, to
+    allow for more different types of property in future. This has changed the
+    compiled form incompatibly. Anybody with saved compiled patterns that use
+    \p or \P will have to recompile them.
+
+22. Added "Any" and "L&" to the supported property types.
+
+23. Recognize \x{...} as a code point specifier, even when not in UTF-8 mode,
+    but give a compile time error if the value is greater than 0xff.
+
+24. The man pages for pcrepartial, pcreprecompile, and pcre_compile2 were
+    accidentally not being installed or uninstalled.
+
+25. The pcre.h file was built from pcre.h.in, but the only changes that were
+    made were to insert the current release number. This seemed silly, because
+    it made things harder for people building PCRE on systems that don't run
+    "configure". I have turned pcre.h into a distributed file, no longer built
+    by "configure", with the version identification directly included. There is
+    no longer a pcre.h.in file.
+
+    However, this change necessitated a change to the pcre-config script as
+    well. It is built from pcre-config.in, and one of the substitutions was the
+    release number. I have updated configure.ac so that ./configure now finds
+    the release number by grepping pcre.h.
+
+26. Added the ability to run the tests under valgrind.
+
+
 Version 6.4 05-Sep-05
 ---------------------
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/LICENCE tin-2.0.0/pcre/LICENCE
--- tin-1.8.3/pcre/LICENCE	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/pcre/LICENCE	2011-04-17 16:04:36.880051151 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/Makefile.in tin-2.0.0/pcre/Makefile.in
--- tin-1.8.3/pcre/Makefile.in	2005-09-12 16:51:05.000000000 +0200
+++ tin-2.0.0/pcre/Makefile.in	2011-04-17 16:04:36.908055413 +0200
@@ -26,17 +26,18 @@ X		= $(BUILD_EXEEXT)
 
 # The -D options correspond to pcre 4.1's default values.
 CPPOPTS = \
-	-DLINK_SIZE=2 \
+	@LINK_SIZE@ \
 	-DMATCH_LIMIT=10000000 \
+	-DMATCH_LIMIT_RECURSION=10000000 \
 	-DNEWLINE=10 \
 	-DPOSIX_MALLOC_THRESHOLD=10 \
-	@DEFS@ -I. -I../include
+	@DEFS@ -I. -I../include -I$(srcdir)
 
 RANLIB	= @RANLIB@
 RM	= rm
 
 PRELIB	= @LIB_PREFIX@
-ARCHIVE	= @AR@ @AR_OPTS@
+ARCHIVE	= @AR@ @ARFLAGS@
 
 ##########################################################################
 
@@ -51,12 +52,13 @@ OBJ = \
 	pcre_globals$o \
 	pcre_info$o \
 	pcre_maketables$o \
+	pcre_newline$o \
 	pcre_ord2utf8$o \
 	pcre_refcount$o \
 	pcre_study$o \
 	pcre_tables$o \
 	pcre_try_flipped$o \
-	pcre_ucp_findchar$o \
+	pcre_ucp_searchfuncs$o \
 	pcre_valid_utf8$o \
 	pcre_version$o \
 	pcre_xclass$o
@@ -70,11 +72,15 @@ all :	$(PRELIB)pcre.a $(PRELIB)pcreposix
 .SUFFIXES : .i
 
 .c$o :
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(CC) $(CPPOPTS) $(CFLAGS) -c $(srcdir)/$*.c
 
+pcre_chartables$o : pcre_chartables.c
+	@SHOW_CC@
+	@ECHO_CC@$(CC) $(CPPOPTS) $(CFLAGS) -c pcre_chartables.c
+
 .c.i :
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(CPP) -C $(CPPOPTS) $*.c >$@
 
 pcregrep$x :	$(PRELIB)pcre.a pcregrep$o
@@ -98,7 +104,7 @@ pcre$o :	chartables.c pcre.c $(PCR_DEP)
 pcreposix$o :	pcreposix.c pcreposix.h $(PCR_DEP)
 
 maketables$o :	pcre_maketables.c $(PCR_DEP)
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(CC) $(CPPOPTS) $(CFLAGS) -c $(srcdir)/pcre_maketables.c
 
 pcretest$o :	pcretest.c pcre.h
@@ -111,8 +117,8 @@ pcre_chartables.c :	dftables$X
 		./dftables$X $@
 
 dftables$X :	dftables.c pcre_maketables.c $(PCR_DEP)
-@SHOW_CC@
-		@ECHO_CC@$(BUILD_CC) -o $@ $(BUILD_CFLAGS) $(CPPOPTS) $(srcdir)/dftables.c
+	@SHOW_CC@
+	@ECHO_CC@$(BUILD_CC) -o $@ $(BUILD_CFLAGS) $(CPPOPTS) $(srcdir)/dftables.c
 
 # We deliberately omit dftables and chartables.c from 'make clean'; once made
 # chartables.c shouldn't change, and if people have edited the tables by hand,
@@ -120,7 +126,7 @@ dftables$X :	dftables.c pcre_maketables.
 
 clean :;		$(RM) -f *$o *.a pcretest$x pcregrep$x
 
-distclean :	clean ; $(RM) -f pcre.h dftables$X pcre_chartables.c RunTest
+distclean :	clean ; $(RM) -f dftables$X pcre_chartables.c RunTest testsavedregex testtry
 
 runtest :	all
 		./RunTest
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/Makefile.in-old tin-2.0.0/pcre/Makefile.in-old
--- tin-1.8.3/pcre/Makefile.in-old	2005-09-12 16:32:19.000000000 +0200
+++ tin-2.0.0/pcre/Makefile.in-old	2011-04-17 16:04:36.944060893 +0200
@@ -78,6 +78,7 @@ CXX = @CXX@
 CFLAGS = @CFLAGS@
 CXXFLAGS = @CXXFLAGS@
 LDFLAGS = @LDFLAGS@
+CXXLDFLAGS = @CXXLDFLAGS@
 
 CC_FOR_BUILD = @CC_FOR_BUILD@
 CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@
@@ -90,7 +91,7 @@ UTF8 = @UTF8@
 NEWLINE = @NEWLINE@
 POSIX_MALLOC_THRESHOLD = @POSIX_MALLOC_THRESHOLD@
 LINK_SIZE = @LINK_SIZE@
-MATCH_LIMIT = @MATCH_LIMIT@
+MATCH_LIMIT = @MATCH_LIMIT@ @MATCH_LIMIT_RECURSION@
 NO_RECURSE = @NO_RECURSE@
 EBCDIC = @EBCDIC@
 
@@ -108,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) -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
@@ -130,12 +131,13 @@ 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@ \
   pcre_tables.@OBJEXT@ \
   pcre_try_flipped.@OBJEXT@ \
-  pcre_ucp_findchar.@OBJEXT@ \
+  pcre_ucp_searchfuncs.@OBJEXT@ \
   pcre_valid_utf8.@OBJEXT@ \
   pcre_version.@OBJEXT@ \
   pcre_xclass.@OBJEXT@ \
@@ -151,12 +153,13 @@ 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 \
   pcre_tables.lo \
   pcre_try_flipped.lo \
-  pcre_ucp_findchar.lo \
+  pcre_ucp_searchfuncs.lo \
   pcre_valid_utf8.lo \
   pcre_version.lo \
   pcre_xclass.lo \
@@ -175,25 +178,36 @@ CPP_TARGETS = libpcrecpp.la \
   pcre_scanner_unittest@EXEEXT@ \
   pcre_stringpiece_unittest@EXEEXT@
 
-all:            libpcre.la @POSIX_LIB@ pcretest@EXEEXT@ pcregrep@EXEEXT@ @MAYBE_CPP_TARGETS@ @ON_WINDOWS@ winshared
+all:            libpcre.la @POSIX_LIB@ pcretest@EXEEXT@ pcregrep@EXEEXT@ \
+		@MAYBE_CPP_TARGETS@ @ON_WINDOWS@ winshared
 
 pcregrep@EXEEXT@: libpcre.la pcregrep.@OBJEXT@ @ON_WINDOWS@ winshared
 		$(LINK) -o pcregrep@EXEEXT@ pcregrep.@OBJEXT@ libpcre.la
 
-pcretest@EXEEXT@: libpcre.la @POSIX_LIB@ pcretest.@OBJEXT@ @ON_WINDOWS@ winshared
-		$(LINK) $(PURIFY) $(EFENCE) -o pcretest@EXEEXT@  pcretest.@OBJEXT@ \
+pcretest@EXEEXT@: libpcre.la @POSIX_LIB@ pcretest.@OBJEXT@ \
+		@ON_WINDOWS@ winshared
+		$(LINK) $(PURIFY) $(EFENCE) -o pcretest@EXEEXT@  \
+		pcretest.@OBJEXT@ \
 		libpcre.la @POSIX_LIB@
 
-pcrecpp_unittest@EXEEXT@: libpcrecpp.la pcrecpp_unittest.@OBJEXT@ @ON_WINDOWS@ winshared
-		$(CXXLINK) $(PURIFY) $(EFENCE) -o pcrecpp_unittest@EXEEXT@  pcrecpp_unittest.@OBJEXT@ \
+pcrecpp_unittest@EXEEXT@: libpcrecpp.la pcrecpp_unittest.@OBJEXT@ \
+		@ON_WINDOWS@ winshared
+		$(CXXLINK) $(PURIFY) $(EFENCE) -o pcrecpp_unittest@EXEEXT@ \
+		pcrecpp_unittest.@OBJEXT@ \
 		libpcrecpp.la @POSIX_LIB@
 
-pcre_scanner_unittest@EXEEXT@: libpcrecpp.la pcre_scanner_unittest.@OBJEXT@ @ON_WINDOWS@ winshared
-		$(CXXLINK) $(PURIFY) $(EFENCE) -o pcre_scanner_unittest@EXEEXT@  pcre_scanner_unittest.@OBJEXT@ \
+pcre_scanner_unittest@EXEEXT@: libpcrecpp.la pcre_scanner_unittest.@OBJEXT@ \
+		@ON_WINDOWS@ winshared
+		$(CXXLINK) $(PURIFY) $(EFENCE) \
+		-o pcre_scanner_unittest@EXEEXT@ \
+		pcre_scanner_unittest.@OBJEXT@ \
 		libpcrecpp.la @POSIX_LIB@
 
-pcre_stringpiece_unittest@EXEEXT@: libpcrecpp.la pcre_stringpiece_unittest.@OBJEXT@ @ON_WINDOWS@ winshared
-		$(CXXLINK) $(PURIFY) $(EFENCE) -o pcre_stringpiece_unittest@EXEEXT@	pcre_stringpiece_unittest.@OBJEXT@ \
+pcre_stringpiece_unittest@EXEEXT@: libpcrecpp.la \
+		pcre_stringpiece_unittest.@OBJEXT@ @ON_WINDOWS@ winshared
+		$(CXXLINK) $(PURIFY) $(EFENCE) \
+		-o pcre_stringpiece_unittest@EXEEXT@ \
+		pcre_stringpiece_unittest.@OBJEXT@ \
 		libpcrecpp.la @POSIX_LIB@
 
 libpcre.la:     $(OBJ)
@@ -217,134 +231,154 @@ libpcrecpp.la: libpcre.la $(CPPOBJ)
 pcre_chartables.@OBJEXT@: pcre_chartables.c
 		@$(LTCOMPILE) pcre_chartables.c
 
-pcre_compile.@OBJEXT@: Makefile config.h pcre.h \
-		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_compile.c
+pcre_compile.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
+		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_compile.c \
+		$(top_srcdir)/pcre_printint.src
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_compile.c
 
-pcre_config.@OBJEXT@:  Makefile config.h pcre.h \
+pcre_config.@OBJEXT@:  Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_config.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_config.c
 
-pcre_dfa_exec.@OBJEXT@: Makefile config.h pcre.h \
+pcre_dfa_exec.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_dfa_exec.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_dfa_exec.c
 
-pcre_exec.@OBJEXT@:    Makefile config.h pcre.h \
+pcre_exec.@OBJEXT@:    Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_exec.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_exec.c
 
-pcre_fullinfo.@OBJEXT@: Makefile config.h pcre.h \
+pcre_fullinfo.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_fullinfo.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_fullinfo.c
 
-pcre_get.@OBJEXT@:     Makefile config.h pcre.h \
+pcre_get.@OBJEXT@:     Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_get.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_get.c
 
-pcre_globals.@OBJEXT@: Makefile config.h pcre.h \
+pcre_globals.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_globals.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_globals.c
 
-pcre_info.@OBJEXT@:    Makefile config.h pcre.h \
+pcre_info.@OBJEXT@:    Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_info.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_info.c
 
-pcre_maketables.@OBJEXT@: Makefile config.h pcre.h \
+pcre_maketables.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_maketables.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_maketables.c
 
-pcre_ord2utf8.@OBJEXT@: Makefile config.h pcre.h \
+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) \
 		$(top_srcdir)/pcre_ord2utf8.c
 
-pcre_refcount.@OBJEXT@:   Makefile config.h pcre.h \
+pcre_refcount.@OBJEXT@:   Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_refcount.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_refcount.c
 
-pcre_study.@OBJEXT@:   Makefile config.h pcre.h \
+pcre_study.@OBJEXT@:   Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_study.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_study.c
 
-pcre_tables.@OBJEXT@:  Makefile config.h pcre.h \
+pcre_tables.@OBJEXT@:  Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_tables.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_tables.c
 
-pcre_try_flipped.@OBJEXT@: Makefile config.h pcre.h \
+pcre_try_flipped.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_try_flipped.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_try_flipped.c
 
-pcre_ucp_findchar.@OBJEXT@: Makefile config.h pcre.h \
-		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_ucp_findchar.c
+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_findchar.c
+		$(top_srcdir)/pcre_ucp_searchfuncs.c
 
-pcre_valid_utf8.@OBJEXT@: Makefile config.h pcre.h \
+pcre_valid_utf8.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_valid_utf8.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_valid_utf8.c
 
-pcre_version.@OBJEXT@: Makefile config.h pcre.h \
+pcre_version.@OBJEXT@: Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_version.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_version.c
 
-pcre_xclass.@OBJEXT@:  Makefile config.h pcre.h \
+pcre_xclass.@OBJEXT@:  Makefile config.h $(top_srcdir)/pcre.h \
 		$(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre_xclass.c
 		@$(LTCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_xclass.c
 
 pcreposix.@OBJEXT@:    $(top_srcdir)/pcreposix.c $(top_srcdir)/pcreposix.h \
-		  $(top_srcdir)/pcre_internal.h pcre.h config.h Makefile
-		@$(LTCOMPILE) $(POSIX_MALLOC_THRESHOLD) $(top_srcdir)/pcreposix.c
+		  $(top_srcdir)/pcre_internal.h $(top_srcdir)/pcre.h config.h Makefile
+		@$(LTCOMPILE) $(POSIX_MALLOC_THRESHOLD) \
+		$(top_srcdir)/pcreposix.c
 
-pcrecpp.@OBJEXT@:      $(top_srcdir)/pcrecpp.cc pcrecpp.h \
-		pcre_stringpiece.h pcre.h config.h Makefile
+pcrecpp.@OBJEXT@:      $(top_srcdir)/pcrecpp.cc $(top_srcdir)/pcrecpp.h \
+		pcrecpparg.h pcre_stringpiece.h $(top_srcdir)/pcre.h config.h Makefile
 		@$(LTCXXCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcrecpp.cc
 
-pcre_scanner.@OBJEXT@: $(top_srcdir)/pcre_scanner.cc $(top_srcdir)/pcre_scanner.h \
-		pcrecpp.h pcre_stringpiece.h pcre.h config.h Makefile
+pcre_scanner.@OBJEXT@: $(top_srcdir)/pcre_scanner.cc \
+		$(top_srcdir)/pcre_scanner.h \
+		$(top_srcdir)/pcrecpp.h pcrecpparg.h pcre_stringpiece.h \
+		$(top_srcdir)/pcre.h config.h Makefile
 		@$(LTCXXCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_scanner.cc
 
-pcre_stringpiece.@OBJEXT@:  $(top_srcdir)/pcre_stringpiece.cc pcre_stringpiece.h \
+pcre_stringpiece.@OBJEXT@:  $(top_srcdir)/pcre_stringpiece.cc \
+		pcre_stringpiece.h \
 		config.h Makefile
 		@$(LTCXXCOMPILE) $(UTF8) $(UCP) $(POSIX_MALLOC_THRESHOLD) \
 		$(top_srcdir)/pcre_stringpiece.cc
 
 pcretest.@OBJEXT@:     $(top_srcdir)/pcretest.c $(top_srcdir)/pcre_internal.h \
-		pcre.h config.h Makefile
-		$(CC) -c $(CFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) $(LINK_SIZE) $(top_srcdir)/pcretest.c
-
-pcrecpp_unittest.@OBJEXT@:  $(top_srcdir)/pcrecpp_unittest.cc pcrecpp.h \
-		pcre_stringpiece.h pcre.h config.h Makefile
-		$(CXX) -c $(CXXFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) $(LINK_SIZE) $(top_srcdir)/pcrecpp_unittest.cc
-
-pcre_stringpiece_unittest.@OBJEXT@:  $(top_srcdir)/pcre_stringpiece_unittest.cc \
-		pcre_stringpiece.h config.h Makefile
-		$(CXX) -c $(CXXFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) $(LINK_SIZE) $(top_srcdir)/pcre_stringpiece_unittest.cc
+		$(top_srcdir)/pcre_printint.src $(top_srcdir)/pcre.h config.h Makefile
+		$(CC) -c $(CFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) \
+		$(LINK_SIZE) $(top_srcdir)/pcretest.c
+
+pcrecpp_unittest.@OBJEXT@:  $(top_srcdir)/pcrecpp_unittest.cc \
+		$(top_srcdir)/pcrecpp.h \
+		pcrecpparg.h pcre_stringpiece.h $(top_srcdir)/pcre.h config.h Makefile
+		$(CXX) -c $(CXXFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) \
+		$(LINK_SIZE) $(top_srcdir)/pcrecpp_unittest.cc
+
+pcre_stringpiece_unittest.@OBJEXT@: $(top_srcdir)/pcre_stringpiece_unittest.cc \
+		pcre_stringpiece.h pcrecpparg.h config.h Makefile
+		$(CXX) -c $(CXXFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) \
+		$(LINK_SIZE) $(top_srcdir)/pcre_stringpiece_unittest.cc
 
 pcre_scanner_unittest.@OBJEXT@:  $(top_srcdir)/pcre_scanner_unittest.cc \
-		$(top_srcdir)/pcre_scanner.h pcrecpp.h pcre_stringpiece.h \
-		pcre.h config.h Makefile
-		$(CXX) -c $(CXXFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) $(LINK_SIZE) $(top_srcdir)/pcre_scanner_unittest.cc
-
-pcregrep.@OBJEXT@:     $(top_srcdir)/pcregrep.c pcre.h Makefile config.h
-		$(CC) -c $(CFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) $(PCREGREP_OSTYPE) $(top_srcdir)/pcregrep.c
+		$(top_srcdir)/pcre_scanner.h \
+		$(top_srcdir)/pcrecpp.h pcre_stringpiece.h \
+		$(top_srcdir)/pcre.h pcrecpparg.h config.h Makefile
+		$(CXX) -c $(CXXFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) \
+		$(LINK_SIZE) $(top_srcdir)/pcre_scanner_unittest.cc
+
+pcregrep.@OBJEXT@:     $(top_srcdir)/pcregrep.c $(top_srcdir)/pcre.h Makefile config.h
+		$(CC) -c $(CFLAGS) -I. -I$(top_srcdir) $(UTF8) $(UCP) \
+		$(PCREGREP_OSTYPE) $(top_srcdir)/pcregrep.c
 
 # Some Windows-specific targets for MinGW. Do not use for Cygwin.
 
@@ -424,7 +458,7 @@ pcre_chartables.c:   dftables@BUILD_EXEE
 
 dftables.@BUILD_OBJEXT@:     $(top_srcdir)/dftables.c \
 		$(top_srcdir)/pcre_maketables.c $(top_srcdir)/pcre_internal.h \
-		pcre.h config.h Makefile
+		$(top_srcdir)/pcre.h config.h Makefile
 		$(CC_FOR_BUILD) -c $(CFLAGS_FOR_BUILD) -I. $(top_srcdir)/dftables.c
 
 dftables@BUILD_EXEEXT@:      dftables.@BUILD_OBJEXT@
@@ -440,9 +474,10 @@ install:        all @ON_WINDOWS@ wininst
 @NOT_ON_WINDOWS@@HAVE_CPP@		$(LIBTOOL) --mode=install $(INSTALL) libpcrecpp.la $(DESTDIR)$(LIBDIR)/libpcrecpp.la
 @NOT_ON_WINDOWS@	       $(LIBTOOL) --finish $(DESTDIR)$(LIBDIR)
 		$(mkinstalldirs) $(DESTDIR)$(INCDIR)
-		$(INSTALL_DATA) pcre.h $(DESTDIR)$(INCDIR)/pcre.h
+		$(INSTALL_DATA) $(top_srcdir)/pcre.h $(DESTDIR)$(INCDIR)/pcre.h
 		$(INSTALL_DATA) $(top_srcdir)/pcreposix.h $(DESTDIR)$(INCDIR)/pcreposix.h
-@HAVE_CPP@		 $(INSTALL_DATA) pcrecpp.h $(DESTDIR)$(INCDIR)/pcrecpp.h
+@HAVE_CPP@		 $(INSTALL_DATA) $(top_srcdir)/pcrecpp.h $(DESTDIR)$(INCDIR)/pcrecpp.h
+@HAVE_CPP@		 $(INSTALL_DATA) pcrecpparg.h $(DESTDIR)$(INCDIR)/pcrecpparg.h
 @HAVE_CPP@		 $(INSTALL_DATA) pcre_stringpiece.h $(DESTDIR)$(INCDIR)/pcre_stringpiece.h
 @HAVE_CPP@		 $(INSTALL_DATA) $(top_srcdir)/pcre_scanner.h $(DESTDIR)$(INCDIR)/pcre_scanner.h
 		$(mkinstalldirs) $(DESTDIR)$(MANDIR)/man3
@@ -453,11 +488,15 @@ install:        all @ON_WINDOWS@ wininst
 		$(INSTALL_DATA) $(top_srcdir)/doc/pcrecompat.3 $(DESTDIR)$(MANDIR)/man3/pcrecompat.3
 @HAVE_CPP@		 $(INSTALL_DATA) $(top_srcdir)/doc/pcrecpp.3 $(DESTDIR)$(MANDIR)/man3/pcrecpp.3
 		$(INSTALL_DATA) $(top_srcdir)/doc/pcrematching.3 $(DESTDIR)$(MANDIR)/man3/pcrematching.3
+		$(INSTALL_DATA) $(top_srcdir)/doc/pcrepartial.3 $(DESTDIR)$(MANDIR)/man3/pcrepartial.3
 		$(INSTALL_DATA) $(top_srcdir)/doc/pcrepattern.3 $(DESTDIR)$(MANDIR)/man3/pcrepattern.3
 		$(INSTALL_DATA) $(top_srcdir)/doc/pcreperform.3 $(DESTDIR)$(MANDIR)/man3/pcreperform.3
 		$(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
 		$(INSTALL_DATA) $(top_srcdir)/doc/pcre_copy_named_substring.3 $(DESTDIR)$(MANDIR)/man3/pcre_copy_named_substring.3
 		$(INSTALL_DATA) $(top_srcdir)/doc/pcre_copy_substring.3 $(DESTDIR)$(MANDIR)/man3/pcre_copy_substring.3
@@ -468,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
@@ -484,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.
 
@@ -494,6 +535,7 @@ uninstall:;     -rm -rf \
 		$(DESTDIR)$(INCDIR)/pcre.h \
 		$(DESTDIR)$(INCDIR)/pcreposix.h \
 		$(DESTDIR)$(INCDIR)/pcrecpp.h \
+		$(DESTDIR)$(INCDIR)/pcrecpparg.h \
 		$(DESTDIR)$(INCDIR)/pcre_scanner.h \
 		$(DESTDIR)$(INCDIR)/pcre_stringpiece.h \
 		$(DESTDIR)$(MANDIR)/man3/pcre.3 \
@@ -503,11 +545,15 @@ uninstall:;     -rm -rf \
 		$(DESTDIR)$(MANDIR)/man3/pcrecompat.3 \
 		$(DESTDIR)$(MANDIR)/man3/pcrecpp.3 \
 		$(DESTDIR)$(MANDIR)/man3/pcrematching.3 \
+		$(DESTDIR)$(MANDIR)/man3/pcrepartial.3 \
 		$(DESTDIR)$(MANDIR)/man3/pcrepattern.3 \
 		$(DESTDIR)$(MANDIR)/man3/pcreperform.3 \
 		$(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 \
 		$(DESTDIR)$(MANDIR)/man3/pcre_copy_named_substring.3 \
 		$(DESTDIR)$(MANDIR)/man3/pcre_copy_substring.3 \
@@ -518,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 \
@@ -530,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
@@ -542,7 +590,7 @@ clean:;         -rm -rf *.@OBJEXT@ *.lo 
 
 distclean:      clean
 		-rm -f pcre_chartables.c libtool pcre-config libpcre.pc \
-		pcre.h pcre_stringpiece.h pcrecpp.h \
+		libpcrecpp.pc pcre_stringpiece.h pcrecpparg.h \
 		dftables@EXEEXT@ RunGrepTest RunTest \
 		Makefile config.h config.status config.log config.cache
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/NEWS tin-2.0.0/pcre/NEWS
--- tin-1.8.3/pcre/NEWS	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/pcre/NEWS	2011-04-17 16:04:37.020072460 +0200
@@ -1,6 +1,69 @@
 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
+---------------------
+
+Important changes in this release:
+
+1. A number of new features have been added to pcregrep.
+
+2. The Unicode property tables have been updated to Unicode 4.1.0, and the
+   supported properties have been extended with script names such as "Arabic",
+   and the derived properties "Any" and "L&". This has necessitated a change to
+   the interal format of compiled patterns. Any saved compiled patterns that
+   use \p or \P must be recompiled.
+
+3. The specification of recursion in patterns has been changed so that all
+   recursive subpatterns are automatically treated as atomic groups. Thus, for
+   example, (?R) is treated as if it were (?>(?R)). This is necessary because
+   otherwise there are situations where recursion does not work.
+
+See the ChangeLog for a complete list of changes, which include a number of bug
+fixes and tidies.
+
+
 Release 6.0 07-Jun-05
 ---------------------
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/NON-UNIX-USE tin-2.0.0/pcre/NON-UNIX-USE
--- tin-1.8.3/pcre/NON-UNIX-USE	2005-09-12 16:32:30.000000000 +0200
+++ tin-2.0.0/pcre/NON-UNIX-USE	2011-04-17 16:04:37.076080983 +0200
@@ -11,8 +11,9 @@ the Contrib directory on the ftp site th
 
 If you want to compile PCRE for a non-Unix system (or perhaps, more strictly,
 for a system that does not support "configure" and "make" files), note that
-PCRE consists entirely of code written in Standard C, and so should compile
-successfully on any system that has a Standard C compiler and library.
+the basic PCRE library consists entirely of code written in Standard C, and so
+should compile successfully on any system that has a Standard C compiler and
+library. The C++ wrapper functions are a separate issue (see below).
 
 
 GENERIC INSTRUCTIONS FOR THE C LIBRARY
@@ -21,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
@@ -30,31 +31,20 @@ 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
 
-(2) Copy or rename the file pcre.in as pcre.h, and change the macro definitions
-for PCRE_MAJOR, PCRE_MINOR, and PCRE_DATE near its start to the values set in
-configure.in.
-
-  rem Mark Tetrode's commands
-  copy pcre.in pcre.h
-  rem Read values from configure.in
-  write configure.in
-  rem Change values
-  write pcre.h
-
-(3) Compile dftables.c as a stand-alone program, and then run it with
+(2) Compile dftables.c as a stand-alone program, and then run it with
 the single argument "pcre_chartables.c". This generates a set of standard
 character tables and writes them to that file.
 
   rem Mark Tetrode's commands
   rem Compile & run
   cl -DSUPPORT_UTF8 -DSUPPORT_UCP dftables.c
-  dftables.exe chartables.c
+  dftables.exe pcre_chartables.c
 
-(4) Compile the following source files:
+(3) Compile the following source files:
 
   pcre_chartables.c
   pcre_compile.c
@@ -66,13 +56,13 @@ character tables and writes them to that
   pcre_globals.c
   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
@@ -88,7 +78,7 @@ shared libraries, you may have to do thi
   cl -DSUPPORT_UTF8 -DSUPPORT_UCP -DPOSIX_MALLOC_THRESHOLD=10 /c maketables.c get.c study.c pcre.c
   lib /OUT:pcre.lib maketables.obj get.obj study.obj pcre.obj
 
-(5) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix
+(4) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix
 library.
 
   rem Mark Tetrode's commands, for a static library
@@ -96,18 +86,18 @@ library.
   cl -DSUPPORT_UTF8 -DSUPPORT_UCP -DPOSIX_MALLOC_THRESHOLD=10 /c pcreposix.c
   lib /OUT:pcreposix.lib pcreposix.obj
 
-(6) Compile the test program pcretest.c. This needs the functions in the
+(5) Compile the test program pcretest.c. This needs the functions in the
 pcre and pcreposix libraries when linking.
 
   rem Mark Tetrode's commands
   rem compile & link
   cl /F0x400000 pcretest.c pcre.lib pcreposix.lib
 
-(7) 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.
+(6) Run pcretest on the testinput files in the testdata directory, and check
+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
@@ -126,6 +116,9 @@ to change this if your system uses a dif
 Note that there are now three more tests (7, 8, 9) that did not exist when Mark
 wrote those comments. The test the new pcre_dfa_exec() function.
 
+(7) If you want to use the pcregrep command, compile and link pcregrep.c; it
+uses only the basic PCRE library.
+
 
 THE C++ WRAPPER FUNCTIONS
 
@@ -143,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 --exclude='.bzr*' tin-1.8.3/pcre/README tin-2.0.0/pcre/README
--- tin-1.8.3/pcre/README	2005-08-19 11:34:07.000000000 +0200
+++ tin-2.0.0/pcre/README	2011-04-17 16:04:37.140090725 +0200
@@ -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.
@@ -68,6 +68,9 @@ others are pointers to URLs containing r
 Building PCRE on a Unix-like system
 -----------------------------------
 
+If you are using HP's ANSI C++ compiler (aCC), please see the special note
+in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
+
 To build PCRE on a Unix-like system, first run the "configure" command from the
 PCRE distribution directory, with your current directory set to the directory
 where you want the files to be created. This command is a standard GNU
@@ -91,6 +94,10 @@ into /source/pcre/pcre-xxx, but you want
 cd /build/pcre/pcre-xxx
 /source/pcre/pcre-xxx/configure
 
+PCRE is written in C and is normally compiled as a C library. However, it is
+possible to build it as a C++ library, though the provided building apparatus
+does not have any features to support this.
+
 There are some optional features that can be included or omitted from the PCRE
 library. You can read more about them in the pcrebuild man page.
 
@@ -107,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 recognized CR or NL as the newline character, instead
-  of whatever your compiler uses for "\n", by adding --newline-is-cr or
-  --newline-is-nl 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 NL.
+. 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
@@ -135,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
@@ -158,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
@@ -262,6 +280,22 @@ when calling the "configure" command. If
 to the values of CC and CFLAGS.
 
 
+Using HP's ANSI C++ compiler (aCC)
+----------------------------------
+
+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.
+
+Also, note that the aCC compiler on PA-RISC platforms may have a defect whereby
+needed libraries fail to get included when specifying the "-AA" compiler
+option. If you experience unresolved symbols when linking the C++ programs,
+use the workaround of specifying the following environment variable prior to
+running the "configure" script:
+
+  CXXLDFLAGS="-lstd_v2 -lCsup_v2"
+
+
 Building on non-Unix systems
 ----------------------------
 
@@ -271,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
@@ -291,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
@@ -408,29 +442,30 @@ 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.in          "source" for the header file for the C++ wrapper
+  pcrecpp.h             the header file for the C++ wrapper
+  pcrecpparg.h.in       "source" for another C++ header file
   pcrecpp.cc            )
   pcre_scanner.cc       ) source for the C++ wrapper library
 
@@ -453,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
@@ -482,7 +518,6 @@ The distribution should contain the foll
 
   libpcre.def
   libpcreposix.def
-  pcre.def
 
 (D) Auxiliary file for VPASCAL
 
@@ -491,4 +526,4 @@ The distribution should contain the foll
 Philip Hazel
 Email local part: ph10
 Email domain: cam.ac.uk
-August 2005
+November 2006
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/RunTest.in tin-2.0.0/pcre/RunTest.in
--- tin-1.8.3/pcre/RunTest.in	2005-08-01 21:51:35.000000000 +0200
+++ tin-2.0.0/pcre/RunTest.in	2011-04-17 16:04:37.180096812 +0200
@@ -6,11 +6,13 @@
 # Run PCRE tests
 
 cf=diff
+valgrind=
 if [ ! -d testdata ] ; then
   ln -s @top_srcdir@/testdata testdata
 fi
 testdata=./testdata
 
+
 # Select which tests to run; if no selection, run all
 
 do1=no
@@ -34,6 +36,7 @@ while [ $# -gt 0 ] ; do
     7) do7=yes;;
     8) do8=yes;;
     9) do9=yes;;
+    valgrind) valgrind="valgrind -q";; 
     *) echo "Unknown test number $1"; exit 1;;
   esac
   shift
@@ -110,7 +113,7 @@ fi
 
 if [ $do1 = yes ] ; then
   echo "Test 1: main functionality (Perl compatible)"
-  ./pcretest $testdata/testinput1 testtry
+  $valgrind ./pcretest -q $testdata/testinput1 testtry
   if [ $? = 0 ] ; then
     $cf testtry $testdata/testoutput1
     if [ $? != 0 ] ; then exit 1; fi
@@ -125,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)"
-    ./pcretest -i $testdata/testinput2 testtry
+    $valgrind ./pcretest -q $testdata/testinput2 testtry
     if [ $? = 0 ] ; then
       $cf testtry $testdata/testoutput2
       if [ $? != 0 ] ; then exit 1; fi
@@ -145,7 +148,7 @@ if [ $do3 = yes ] ; then
   locale -a | grep '^fr_FR$' >/dev/null
   if [ $? -eq 0 ] ; then
     echo "Test 3: locale-specific features (using 'fr_FR' locale)"
-    ./pcretest $testdata/testinput3 testtry
+    $valgrind ./pcretest -q $testdata/testinput3 testtry
     if [ $? = 0 ] ; then
       $cf testtry $testdata/testoutput3
       if [ $? != 0 ] ; then
@@ -170,7 +173,7 @@ fi
 
 if [ $do4 = yes ] ; then
   echo "Test 4: UTF-8 support (Perl compatible)"
-  ./pcretest $testdata/testinput4 testtry
+  $valgrind ./pcretest -q $testdata/testinput4 testtry
   if [ $? = 0 ] ; then
     $cf testtry $testdata/testoutput4
     if [ $? != 0 ] ; then exit 1; fi
@@ -183,7 +186,7 @@ fi
 if [ $do5 = yes ] ; then
   if [ "@LINK_SIZE@" = "" -o "@LINK_SIZE@" = "-DLINK_SIZE=2" ] ; then
     echo "Test 5: API and internals for UTF-8 support (not Perl compatible)"
-    ./pcretest $testdata/testinput5 testtry
+    $valgrind ./pcretest -q $testdata/testinput5 testtry
     if [ $? = 0 ] ; then
       $cf testtry $testdata/testoutput5
       if [ $? != 0 ] ; then exit 1; fi
@@ -200,7 +203,7 @@ fi
 if [ $do6 = yes ] ; then
   if [ "@LINK_SIZE@" = "" -o "@LINK_SIZE@" = "-DLINK_SIZE=2" ] ; then
     echo "Test 6: Unicode property support"
-    ./pcretest $testdata/testinput6 testtry
+    $valgrind ./pcretest -q $testdata/testinput6 testtry
     if [ $? = 0 ] ; then
       $cf testtry $testdata/testoutput6
       if [ $? != 0 ] ; then exit 1; fi
@@ -218,7 +221,7 @@ fi
 
 if [ $do7 = yes ] ; then
   echo "Test 7: DFA matching"
-  ./pcretest -dfa $testdata/testinput7 testtry
+  $valgrind ./pcretest -q -dfa $testdata/testinput7 testtry
   if [ $? = 0 ] ; then
     $cf testtry $testdata/testoutput7
     if [ $? != 0 ] ; then exit 1; fi
@@ -230,7 +233,7 @@ fi
 
 if [ $do8 = yes ] ; then
   echo "Test 8: DFA matching with UTF-8"
-  ./pcretest -dfa $testdata/testinput8 testtry
+  $valgrind ./pcretest -q -dfa $testdata/testinput8 testtry
   if [ $? = 0 ] ; then
     $cf testtry $testdata/testoutput8
     if [ $? != 0 ] ; then exit 1; fi
@@ -242,7 +245,7 @@ fi
 
 if [ $do9 = yes ] ; then
   echo "Test 9: DFA matching with Unicode properties"
-  ./pcretest -dfa $testdata/testinput9 testtry
+  $valgrind ./pcretest -q -dfa $testdata/testinput9 testtry
   if [ $? = 0 ] ; then
     $cf testtry $testdata/testoutput9
     if [ $? != 0 ] ; then exit 1; fi
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/config.h tin-2.0.0/pcre/config.h
--- tin-1.8.3/pcre/config.h	2005-09-12 16:49:42.000000000 +0200
+++ tin-2.0.0/pcre/config.h	2011-04-17 16:04:37.212101683 +0200
@@ -3,3 +3,6 @@
 #define EBCDIC 0
 #define POSIX_MALLOC_THRESHOLD 10
 #define PCRE_EXPORT
+#define MAX_NAME_SIZE 32
+#define MAX_NAME_COUNT 10000
+#define MAX_DUPLENGTH 30000
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/dftables.c tin-2.0.0/pcre/dftables.c
--- tin-1.8.3/pcre/dftables.c	2005-08-01 21:52:36.000000000 +0200
+++ tin-2.0.0/pcre/dftables.c	2011-04-17 16:04:37.288113250 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/doc/pcre.3 tin-2.0.0/pcre/doc/pcre.3
--- tin-1.8.3/pcre/doc/pcre.3	2005-08-19 11:35:16.000000000 +0200
+++ tin-2.0.0/pcre/doc/pcre.3	2011-04-17 16:04:38.700328159 +0200
@@ -1,232 +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
-All values in repeating quantifiers must be less than 65536.
-The maximum number of capturing subpatterns is 65535.
+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
-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.
+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
-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.
+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
-.\" HTML <a name="utf8support"></a>
+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 "UTF-8 AND UNICODE PROPERTY SUPPORT"
+.SH "MATCHING A SINGLE BYTE"
 .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.
+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
-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
+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
+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 "POSIX CHARACTER CLASSES"
+.rs
+.sp
+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 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
+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
-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.
+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. 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.
+.
+.
+.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 quantifier {0} is permitted, causing the expression to behave as if the
+previous item and the quantifier were not present.
+.P
+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
+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
+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
+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
+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
 .\"
-documentation. The PCRE library is increased in size by about 90K when Unicode
-property support is included.
+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
-The following comments apply when PCRE is running in UTF-8 mode:
+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
-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.
+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
-2. In a pattern, the escape sequence \ex{...}, where the contents of the braces
-is a string of hexadecimal digits, is interpreted as a UTF-8 character whose
-code number is the given hexadecimal number, for example: \ex{1234}. If a
-non-hexadecimal digit appears between the braces, the item is not recognized.
-This escape sequence can be used either as a literal, or within a character
-class.
+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.
+.
+.
+.\" HTML <a name="bigassertions"></a>
+.SH ASSERTIONS
+.rs
+.sp
+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
-3. The original hexadecimal escape sequence, \exhh, matches a two-byte UTF-8
-character if the value is greater than 127.
+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
-4. Repeat quantifiers apply to complete UTF-8 characters, not to individual
-bytes, for example: \ex{100}{3}.
+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
-5. The dot metacharacter matches one UTF-8 character instead of a single byte.
+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
-6. 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.
+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
-7. 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}.
+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
-8. Similarly, characters that match the POSIX named character classes are all
-low-valued characters.
+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
-9. 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.
+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.
+.
 .
-.SH AUTHOR
+.\" HTML <a name="subpatternsassubroutines"></a>
+.SH "SUBPATTERNS AS SUBROUTINES"
 .rs
 .sp
-Philip Hazel
-.br
-University Computing Service,
-.br
-Cambridge CB2 3QG, England.
+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
-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.
+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: 07 March 2005
+Last updated: 06 December 2006
 .br
-Copyright (c) 1997-2005 University of Cambridge.
+Copyright (c) 1997-2006 University of Cambridge.
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre.h tin-2.0.0/pcre/pcre.h
--- tin-1.8.3/pcre/pcre.h	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/pcre/pcre.h	2011-04-17 16:04:37.360124209 +0200
@@ -0,0 +1,294 @@
+/*************************************************
+*       Perl-Compatible Regular Expressions      *
+*************************************************/
+
+/* This is the public header file for the PCRE library, to be #included by
+applications that call the PCRE functions.
+
+           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.
+-----------------------------------------------------------------------------
+*/
+
+#ifndef _PCRE_H
+#define _PCRE_H
+
+/* The current PCRE version information. */
+
+/* NOTES FOR FUTURE MAINTAINERS: Do not use numbers with leading zeros, because
+they may be treated as octal constants. The PCRE_PRERELEASE feature is for
+identifying release candidates. It might be defined as -RC2, for example. In
+real releases, it should be defined empty. Do not change the alignment of these
+statments. The code in ./configure greps out the version numbers by using "cut"
+to get values from column 29 onwards. These are substituted into pcre-config
+and libpcre.pc. The values are not put into configure.ac and substituted here
+(which would simplify this issue) because that makes life harder for those who
+cannot run ./configure. As it now stands, this file need not be edited in that
+circumstance. */
+
+#define PCRE_MAJOR          7
+#define PCRE_MINOR          0
+#define PCRE_PRERELEASE
+#define PCRE_DATE           18-Dec-2006
+
+/* Win32 uses DLL by default; it needs special stuff for exported functions
+when building PCRE. */
+
+#ifdef _WIN32
+#  ifdef PCRE_DEFINITION
+#    ifdef DLL_EXPORT
+#      define PCRE_DATA_SCOPE __declspec(dllexport)
+#    endif
+#  else
+#    ifndef PCRE_STATIC
+#      define PCRE_DATA_SCOPE extern __declspec(dllimport)
+#    endif
+#  endif
+#endif
+
+/* Otherwise, we use the standard "extern". */
+
+#ifndef PCRE_DATA_SCOPE
+#  ifdef __cplusplus
+#    define PCRE_DATA_SCOPE     extern "C"
+#  else
+#    define PCRE_DATA_SCOPE     extern
+#  endif
+#endif
+
+/* Have to include stdlib.h in order to ensure that size_t is defined;
+it is needed here for malloc. */
+
+#include <stdlib.h>
+
+/* Allow for C++ users */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Options */
+
+#define PCRE_CASELESS           0x00000001
+#define PCRE_MULTILINE          0x00000002
+#define PCRE_DOTALL             0x00000004
+#define PCRE_EXTENDED           0x00000008
+#define PCRE_ANCHORED           0x00000010
+#define PCRE_DOLLAR_ENDONLY     0x00000020
+#define PCRE_EXTRA              0x00000040
+#define PCRE_NOTBOL             0x00000080
+#define PCRE_NOTEOL             0x00000100
+#define PCRE_UNGREEDY           0x00000200
+#define PCRE_NOTEMPTY           0x00000400
+#define PCRE_UTF8               0x00000800
+#define PCRE_NO_AUTO_CAPTURE    0x00001000
+#define PCRE_NO_UTF8_CHECK      0x00002000
+#define PCRE_AUTO_CALLOUT       0x00004000
+#define PCRE_PARTIAL            0x00008000
+#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 */
+
+#define PCRE_ERROR_NOMATCH         (-1)
+#define PCRE_ERROR_NULL            (-2)
+#define PCRE_ERROR_BADOPTION       (-3)
+#define PCRE_ERROR_BADMAGIC        (-4)
+#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)
+#define PCRE_ERROR_CALLOUT         (-9)  /* Never used by PCRE itself */
+#define PCRE_ERROR_BADUTF8        (-10)
+#define PCRE_ERROR_BADUTF8_OFFSET (-11)
+#define PCRE_ERROR_PARTIAL        (-12)
+#define PCRE_ERROR_BADPARTIAL     (-13)
+#define PCRE_ERROR_INTERNAL       (-14)
+#define PCRE_ERROR_BADCOUNT       (-15)
+#define PCRE_ERROR_DFA_UITEM      (-16)
+#define PCRE_ERROR_DFA_UCOND      (-17)
+#define PCRE_ERROR_DFA_UMLIMIT    (-18)
+#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() */
+
+#define PCRE_INFO_OPTIONS            0
+#define PCRE_INFO_SIZE               1
+#define PCRE_INFO_CAPTURECOUNT       2
+#define PCRE_INFO_BACKREFMAX         3
+#define PCRE_INFO_FIRSTBYTE          4
+#define PCRE_INFO_FIRSTCHAR          4  /* For backwards compatibility */
+#define PCRE_INFO_FIRSTTABLE         5
+#define PCRE_INFO_LASTLITERAL        6
+#define PCRE_INFO_NAMEENTRYSIZE      7
+#define PCRE_INFO_NAMECOUNT          8
+#define PCRE_INFO_NAMETABLE          9
+#define PCRE_INFO_STUDYSIZE         10
+#define PCRE_INFO_DEFAULT_TABLES    11
+
+/* Request types for pcre_config(). Do not re-arrange, in order to remain
+compatible. */
+
+#define PCRE_CONFIG_UTF8                    0
+#define PCRE_CONFIG_NEWLINE                 1
+#define PCRE_CONFIG_LINK_SIZE               2
+#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD  3
+#define PCRE_CONFIG_MATCH_LIMIT             4
+#define PCRE_CONFIG_STACKRECURSE            5
+#define PCRE_CONFIG_UNICODE_PROPERTIES      6
+#define PCRE_CONFIG_MATCH_LIMIT_RECURSION   7
+
+/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine
+these bits, just add new ones on the end, in order to remain compatible. */
+
+#define PCRE_EXTRA_STUDY_DATA             0x0001
+#define PCRE_EXTRA_MATCH_LIMIT            0x0002
+#define PCRE_EXTRA_CALLOUT_DATA           0x0004
+#define PCRE_EXTRA_TABLES                 0x0008
+#define PCRE_EXTRA_MATCH_LIMIT_RECURSION  0x0010
+
+/* Types */
+
+struct real_pcre;                 /* declaration; the definition is private  */
+typedef struct real_pcre pcre;
+
+/* When PCRE is compiled as a C++ library, the subject pointer type can be
+replaced with a custom type. For conventional use, the public interface is a
+const char *. */
+
+#ifndef PCRE_SPTR
+#define PCRE_SPTR const char *
+#endif
+
+/* The structure for passing additional data to pcre_exec(). This is defined in
+such as way as to be extensible. Always add new fields at the end, in order to
+remain compatible. */
+
+typedef struct pcre_extra {
+  unsigned long int flags;        /* Bits for which fields are set */
+  void *study_data;               /* Opaque data from pcre_study() */
+  unsigned long int match_limit;  /* Maximum number of calls to match() */
+  void *callout_data;             /* Data passed back in callouts */
+  const unsigned char *tables;    /* Pointer to character tables */
+  unsigned long int match_limit_recursion; /* Max recursive calls to match() */
+} pcre_extra;
+
+/* The structure for passing out data via the pcre_callout_function. We use a
+structure so that new fields can be added on the end in future versions,
+without changing the API of the function, thereby allowing old clients to work
+without modification. */
+
+typedef struct pcre_callout_block {
+  int          version;           /* Identifies version of block */
+  /* ------------------------ Version 0 ------------------------------- */
+  int          callout_number;    /* Number compiled into pattern */
+  int         *offset_vector;     /* The offset vector */
+  PCRE_SPTR    subject;           /* The subject being matched */
+  int          subject_length;    /* The length of the subject */
+  int          start_match;       /* Offset to start of this match attempt */
+  int          current_position;  /* Where we currently are in the subject */
+  int          capture_top;       /* Max current capture */
+  int          capture_last;      /* Most recently closed capture */
+  void        *callout_data;      /* Data passed in with the call */
+  /* ------------------- Added for Version 1 -------------------------- */
+  int          pattern_position;  /* Offset to next item in the pattern */
+  int          next_item_length;  /* Length of next item in the pattern */
+  /* ------------------------------------------------------------------ */
+} pcre_callout_block;
+
+/* Indirection for store get and free functions. These can be set to
+alternative malloc/free functions if required. Special ones are used in the
+non-recursive case for "frames". There is also an optional callout function
+that is triggered by the (?) regex item. For Virtual Pascal, these definitions
+have to take another form. */
+
+#ifndef VPCOMPAT
+PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t);
+PCRE_DATA_SCOPE void  (*pcre_free)(void *);
+PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t);
+PCRE_DATA_SCOPE void  (*pcre_stack_free)(void *);
+PCRE_DATA_SCOPE int   (*pcre_callout)(pcre_callout_block *);
+#else   /* VPCOMPAT */
+PCRE_DATA_SCOPE void *pcre_malloc(size_t);
+PCRE_DATA_SCOPE void  pcre_free(void *);
+PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t);
+PCRE_DATA_SCOPE void  pcre_stack_free(void *);
+PCRE_DATA_SCOPE int   pcre_callout(pcre_callout_block *);
+#endif  /* VPCOMPAT */
+
+/* Exported PCRE functions */
+
+PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *,
+                  const unsigned char *);
+PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **,
+                  int *, const unsigned char *);
+PCRE_DATA_SCOPE int  pcre_config(int, void *);
+PCRE_DATA_SCOPE int  pcre_copy_named_substring(const pcre *, const char *,
+                  int *, int, const char *, char *, int);
+PCRE_DATA_SCOPE int  pcre_copy_substring(const char *, int *, int, int, char *,
+                  int);
+PCRE_DATA_SCOPE int  pcre_dfa_exec(const pcre *, const pcre_extra *,
+                  const char *, int, int, int, int *, int , int *, int);
+PCRE_DATA_SCOPE int  pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,
+                   int, int, int, int *, int);
+PCRE_DATA_SCOPE void pcre_free_substring(const char *);
+PCRE_DATA_SCOPE void pcre_free_substring_list(const char **);
+PCRE_DATA_SCOPE int  pcre_fullinfo(const pcre *, const pcre_extra *, int,
+                  void *);
+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,
+                  const char ***);
+PCRE_DATA_SCOPE int  pcre_info(const pcre *, int *, int *);
+PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void);
+PCRE_DATA_SCOPE int  pcre_refcount(pcre *, int);
+PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **);
+PCRE_DATA_SCOPE const char *pcre_version(void);
+
+#ifdef __cplusplus
+}  /* extern "C" */
+#endif
+
+#endif /* End of pcre.h */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre.h.in tin-2.0.0/pcre/pcre.h.in
--- tin-1.8.3/pcre/pcre.h.in	2005-09-12 16:35:10.000000000 +0200
+++ tin-2.0.0/pcre/pcre.h.in	1970-01-01 01:00:00.000000000 +0100
@@ -1,258 +0,0 @@
-/*************************************************
-*       Perl-Compatible Regular Expressions      *
-*************************************************/
-
-/* In its original form, this is the .in file that is transformed by
-"configure" into pcre.h.
-
-           Copyright (c) 1997-2005 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.
------------------------------------------------------------------------------
-*/
-
-#ifndef _PCRE_H
-#define _PCRE_H
-
-/* The file pcre.h is build by "configure". Do not edit it; instead
-make changes to pcre.in. */
-
-#define PCRE_MAJOR          @PCRE_MAJOR@
-#define PCRE_MINOR          @PCRE_MINOR@
-#define PCRE_DATE           @PCRE_DATE@
-
-/* Win32 uses DLL by default; it needs special stuff for exported functions. */
-
-#ifdef _WIN32
-#  ifdef PCRE_DEFINITION
-#    ifdef DLL_EXPORT
-#      define PCRE_DATA_SCOPE __declspec(dllexport)
-#    endif
-#  else
-#    ifndef PCRE_STATIC
-#      define PCRE_DATA_SCOPE extern __declspec(dllimport)
-#    endif
-#  endif
-#endif
-
-/* For other operating systems, we use the standard "extern". */
-
-#ifndef PCRE_DATA_SCOPE
-#  ifdef __cplusplus
-#    define PCRE_DATA_SCOPE     extern "C"
-#  else
-#    define PCRE_DATA_SCOPE     extern
-#  endif
-#endif
-
-/* Have to include stdlib.h in order to ensure that size_t is defined;
-it is needed here for malloc. */
-
-#include <stdlib.h>
-
-/* Allow for C++ users */
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Options */
-
-#define PCRE_CASELESS           0x00000001
-#define PCRE_MULTILINE          0x00000002
-#define PCRE_DOTALL             0x00000004
-#define PCRE_EXTENDED           0x00000008
-#define PCRE_ANCHORED           0x00000010
-#define PCRE_DOLLAR_ENDONLY     0x00000020
-#define PCRE_EXTRA              0x00000040
-#define PCRE_NOTBOL             0x00000080
-#define PCRE_NOTEOL             0x00000100
-#define PCRE_UNGREEDY           0x00000200
-#define PCRE_NOTEMPTY           0x00000400
-#define PCRE_UTF8               0x00000800
-#define PCRE_NO_AUTO_CAPTURE    0x00001000
-#define PCRE_NO_UTF8_CHECK      0x00002000
-#define PCRE_AUTO_CALLOUT       0x00004000
-#define PCRE_PARTIAL            0x00008000
-#define PCRE_DFA_SHORTEST       0x00010000
-#define PCRE_DFA_RESTART        0x00020000
-#define PCRE_FIRSTLINE          0x00040000
-
-/* Exec-time and get/set-time error codes */
-
-#define PCRE_ERROR_NOMATCH         (-1)
-#define PCRE_ERROR_NULL            (-2)
-#define PCRE_ERROR_BADOPTION       (-3)
-#define PCRE_ERROR_BADMAGIC        (-4)
-#define PCRE_ERROR_UNKNOWN_NODE    (-5)
-#define PCRE_ERROR_NOMEMORY        (-6)
-#define PCRE_ERROR_NOSUBSTRING     (-7)
-#define PCRE_ERROR_MATCHLIMIT      (-8)
-#define PCRE_ERROR_CALLOUT         (-9)  /* Never used by PCRE itself */
-#define PCRE_ERROR_BADUTF8        (-10)
-#define PCRE_ERROR_BADUTF8_OFFSET (-11)
-#define PCRE_ERROR_PARTIAL        (-12)
-#define PCRE_ERROR_BADPARTIAL     (-13)
-#define PCRE_ERROR_INTERNAL       (-14)
-#define PCRE_ERROR_BADCOUNT       (-15)
-#define PCRE_ERROR_DFA_UITEM      (-16)
-#define PCRE_ERROR_DFA_UCOND      (-17)
-#define PCRE_ERROR_DFA_UMLIMIT    (-18)
-#define PCRE_ERROR_DFA_WSSIZE     (-19)
-#define PCRE_ERROR_DFA_RECURSE    (-20)
-
-/* Request types for pcre_fullinfo() */
-
-#define PCRE_INFO_OPTIONS            0
-#define PCRE_INFO_SIZE               1
-#define PCRE_INFO_CAPTURECOUNT       2
-#define PCRE_INFO_BACKREFMAX         3
-#define PCRE_INFO_FIRSTBYTE          4
-#define PCRE_INFO_FIRSTCHAR          4  /* For backwards compatibility */
-#define PCRE_INFO_FIRSTTABLE         5
-#define PCRE_INFO_LASTLITERAL        6
-#define PCRE_INFO_NAMEENTRYSIZE      7
-#define PCRE_INFO_NAMECOUNT          8
-#define PCRE_INFO_NAMETABLE          9
-#define PCRE_INFO_STUDYSIZE         10
-#define PCRE_INFO_DEFAULT_TABLES    11
-
-/* Request types for pcre_config() */
-
-#define PCRE_CONFIG_UTF8                    0
-#define PCRE_CONFIG_NEWLINE                 1
-#define PCRE_CONFIG_LINK_SIZE               2
-#define PCRE_CONFIG_POSIX_MALLOC_THRESHOLD  3
-#define PCRE_CONFIG_MATCH_LIMIT             4
-#define PCRE_CONFIG_STACKRECURSE            5
-#define PCRE_CONFIG_UNICODE_PROPERTIES      6
-
-/* Bit flags for the pcre_extra structure */
-
-#define PCRE_EXTRA_STUDY_DATA          0x0001
-#define PCRE_EXTRA_MATCH_LIMIT         0x0002
-#define PCRE_EXTRA_CALLOUT_DATA        0x0004
-#define PCRE_EXTRA_TABLES              0x0008
-
-/* Types */
-
-struct real_pcre;                 /* declaration; the definition is private  */
-typedef struct real_pcre pcre;
-
-/* The structure for passing additional data to pcre_exec(). This is defined in
-such as way as to be extensible. Always add new fields at the end, in order to
-remain compatible. */
-
-typedef struct pcre_extra {
-  unsigned long int flags;        /* Bits for which fields are set */
-  void *study_data;               /* Opaque data from pcre_study() */
-  unsigned long int match_limit;  /* Maximum number of calls to match() */
-  void *callout_data;             /* Data passed back in callouts */
-  const unsigned char *tables;    /* Pointer to character tables */
-} pcre_extra;
-
-/* The structure for passing out data via the pcre_callout_function. We use a
-structure so that new fields can be added on the end in future versions,
-without changing the API of the function, thereby allowing old clients to work
-without modification. */
-
-typedef struct pcre_callout_block {
-  int          version;           /* Identifies version of block */
-  /* ------------------------ Version 0 ------------------------------- */
-  int          callout_number;    /* Number compiled into pattern */
-  int         *offset_vector;     /* The offset vector */
-  const char  *subject;           /* The subject being matched */
-  int          subject_length;    /* The length of the subject */
-  int          start_match;       /* Offset to start of this match attempt */
-  int          current_position;  /* Where we currently are in the subject */
-  int          capture_top;       /* Max current capture */
-  int          capture_last;      /* Most recently closed capture */
-  void        *callout_data;      /* Data passed in with the call */
-  /* ------------------- Added for Version 1 -------------------------- */
-  int          pattern_position;  /* Offset to next item in the pattern */
-  int          next_item_length;  /* Length of next item in the pattern */
-  /* ------------------------------------------------------------------ */
-} pcre_callout_block;
-
-/* Indirection for store get and free functions. These can be set to
-alternative malloc/free functions if required. Special ones are used in the
-non-recursive case for "frames". There is also an optional callout function
-that is triggered by the (?) regex item. For Virtual Pascal, these definitions
-have to take another form. */
-
-#ifndef VPCOMPAT
-PCRE_DATA_SCOPE void *(*pcre_malloc)(size_t);
-PCRE_DATA_SCOPE void  (*pcre_free)(void *);
-PCRE_DATA_SCOPE void *(*pcre_stack_malloc)(size_t);
-PCRE_DATA_SCOPE void  (*pcre_stack_free)(void *);
-PCRE_DATA_SCOPE int   (*pcre_callout)(pcre_callout_block *);
-#else   /* VPCOMPAT */
-PCRE_DATA_SCOPE void *pcre_malloc(size_t);
-PCRE_DATA_SCOPE void  pcre_free(void *);
-PCRE_DATA_SCOPE void *pcre_stack_malloc(size_t);
-PCRE_DATA_SCOPE void  pcre_stack_free(void *);
-PCRE_DATA_SCOPE int   pcre_callout(pcre_callout_block *);
-#endif  /* VPCOMPAT */
-
-/* Exported PCRE functions */
-
-PCRE_DATA_SCOPE pcre *pcre_compile(const char *, int, const char **, int *,
-                  const unsigned char *);
-PCRE_DATA_SCOPE pcre *pcre_compile2(const char *, int, int *, const char **,
-                  int *, const unsigned char *);
-PCRE_DATA_SCOPE int  pcre_config(int, void *);
-PCRE_DATA_SCOPE int  pcre_copy_named_substring(const pcre *, const char *,
-                  int *, int, const char *, char *, int);
-PCRE_DATA_SCOPE int  pcre_copy_substring(const char *, int *, int, int, char *,
-                  int);
-PCRE_DATA_SCOPE int  pcre_dfa_exec(const pcre *, const pcre_extra *,
-                  const char *, int, int, int, int *, int , int *, int);
-PCRE_DATA_SCOPE int  pcre_exec(const pcre *, const pcre_extra *, const char *,
-                   int, int, int, int *, int);
-PCRE_DATA_SCOPE void pcre_free_substring(const char *);
-PCRE_DATA_SCOPE void pcre_free_substring_list(const char **);
-PCRE_DATA_SCOPE int  pcre_fullinfo(const pcre *, const pcre_extra *, int,
-                  void *);
-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_substring(const char *, int *, int, int,
-                  const char **);
-PCRE_DATA_SCOPE int  pcre_get_substring_list(const char *, int *, int,
-                  const char ***);
-PCRE_DATA_SCOPE int  pcre_info(const pcre *, int *, int *);
-PCRE_DATA_SCOPE const unsigned char *pcre_maketables(void);
-PCRE_DATA_SCOPE int  pcre_refcount(pcre *, int);
-PCRE_DATA_SCOPE pcre_extra *pcre_study(const pcre *, int, const char **);
-PCRE_DATA_SCOPE const char *pcre_version(void);
-
-#ifdef __cplusplus
-}  /* extern "C" */
-#endif
-
-#endif /* End of pcre.h */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre.mms tin-2.0.0/pcre/pcre.mms
--- tin-1.8.3/pcre/pcre.mms	2005-06-28 10:31:27.000000000 +0200
+++ tin-2.0.0/pcre/pcre.mms	1970-01-01 01:00:00.000000000 +0100
@@ -1,196 +0,0 @@
-# Make file for PCRE (Perl-Compatible Regular Expression) library.
-#
-# Supported Compilers are GNU C, DEC C and DEC C++
-#
-# Start with MMS /DESCRIPTION=PCRE /MACRO=(Comp=1,ostyp=1)
-# where Comp is one of GNUC, DECC or DECCXX and ostyp is ALPHA or VAX
-#
-
-.IFDEF ALPHA
-OS_TYP = ALPHA
-.ENDIF
-
-.IFDEF VAX
-OS_TYP = VAX
-.ENDIF
-
-.IFDEF OS_TYP
-.ELSE
-.FIRST
-        @ WRITE SYS$OUTPUT "   Please start MMS (or MMK) at least with following switches:"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   on OpenVMS/Alpha:"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=PCRE /MACRO=(ALPHA=1,GNUC=1)"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=PCRE /MACRO=(ALPHA=1,DECC=1)"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=PCRE /MACRO=(ALPHA=1,DECCXX=1)"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   on OpenVMS/Vax:"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=PCRE /MACRO=(VAX=1,GNUC=1)"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=PCRE /MACRO=(VAX=1,DECC=1)"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=PCRE /MACRO=(VAX=1,DECCXX=1)"
-        @ WRITE SYS$OUTPUT ""
-        @ return 44  ! %SYSTEM-F-ABORT, abort
-
-.ENDIF
-
-#
-# DEC C Compiler
-#
-.IFDEF DECC
-COMPFLAG = /PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
-COMPILER = DEC C
-COMP     = DECC
-OPTFILE  =
-.ELSE
-#
-# GNU C Compiler
-#
-.IFDEF GNUC
-CC       = gcc
-COMPFLAG = 
-COMPILER = GNU C
-COMP     = GNUC
-OPTFILE  = PCRE.OPT
-LOPT     = ,$(OPTFILE)/OPT
-.ELSE
-#
-# DEC C++ Compiler
-#
-.IFDEF DECCXX
-CC = cxx
-COMPFLAG = /PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
-COMPILER = DEC C++
-COMP     = DECCXX
-OPTFILE  = 
-#
-# No Compiler specified
-#
-.ELSE
-COMPFLAG = /PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
-COMPILER = DEC C
-COMP     = DECC
-OPTFILE  =
-.ENDIF
-.ENDIF
-.ENDIF
-
-.IFDEF DEBUG
-PCRELIB    = LIBPCREDBG_$(COMP)_$(OS_TYP).OLB
-PCREPOSLIB = LIBPCREPOSIXDBG_$(COMP)_$(OS_TYP).OLB
-CFLAGS     = $(COMPFLAG)/NOOPTIMIZE/DEBUG
-LFLAGS     = /DEBUG
-.ELSE
-PCRELIB    = LIBPCRE_$(COMP)_$(OS_TYP).OLB
-PCREPOSLIB = LIBPCREPOSIX_$(COMP)_$(OS_TYP).OLB
-CFLAGS     = $(COMPFLAG)/OPTIMIZE
-.ENDIF
-
-##########################################################################
-
-MODPCRE     = maketables.obj get.obj study.obj pcre.obj
-MODPCREPOS  = pcreposix.obj
-
-all           : libpcre libpcreposix pcretest.exe pgrep.exe
-    @ WRITE SYS$OUTPUT "Built  pcretest and pgrep"
-
-libpcre       : $(PCRELIB)
-    @ WRITE SYS$OUTPUT "Built $(MMS$TARGET)"
-
-libpcreposix  : $(PCREPOSLIB)
-    @ WRITE SYS$OUTPUT "Built $(MMS$TARGET)"
-
-$(PCRELIB)    : checklibpcre $(PCRELIB)($(MODPCRE))
-    @- continue
-
-$(PCREPOSLIB) : checklibpcreposix $(PCREPOSLIB)($(MODPCREPOS))
-    @- continue
-
-checklibpcre      :
-    @ If F$Search("$(PCRELIB)") .EQS. "" Then Library/Create $(PCRELIB)
-
-checklibpcreposix :    
-    @ If F$Search("$(PCREPOSLIB)") .EQS. "" Then Library/Create $(PCREPOSLIB)
-
-pgrep.exe     :   pgrep.obj $(PCRELIB) $(OPTFILE)
-		LINK pgrep.obj, $(PCRELIB)/lib  $(LOPT)
-
-pcretest.exe  : pcretest.obj  $(PCRELIB) $(PCREPOSLIB) $(OPTFILE)
-		LINK pcretest.obj, $(PCRELIB)/lib, $(PCREPOSLIB)/lib $(LOPT)
-
-
-$(PCRELIB)(study)           :  study.c pcre.h internal.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        delete /nolog $(MMS$TARGET_NAME).OBJ;*
-
-$(PCRELIB)(pcre)            :  pcre.c pcre.h chartables.c internal.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        delete /nolog $(MMS$TARGET_NAME).OBJ;*
-
-$(PCRELIB)(chartables)      :  chartables.c
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        delete /nolog $(MMS$TARGET_NAME).OBJ;*
-
-$(PCREPOSLIB)(pcreposix)    :  pcreposix.c pcreposix.h internal.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        delete /nolog $(MMS$TARGET_NAME).OBJ;*
-
-##########################################################################
-
-PCRE.OPT      :
-.IFDEF GNUC
-    @ write sys$output "Linker Options File for $(COMPILER)"
-    @ open/write optfile PCRE.OPT
-.IFDEF VAX
-    @ write optfile "!Linker Options File for $(COMPILER) on OpenVMS/VAX"
-    @ write optfile "gnu_cc:[000000]gcclib/libr"
-    @ write optfile "sys$share:vaxcrtl/share"
-.ELSE
-    @ write optfile "!Linker Options File for $(COMPILER) on OpenVMS/Alpha"
-    @ write optfile "gnu_cc_library:libgcc/libr"
-    @ write optfile "sys$share:vaxcrtl/libr"
-    @ write optfile "gnu_cc_library:crt0.obj"
-.ENDIF
-    @ close optfile
-.ENDIF
-
-
-
-pcretest.obj   :  pcretest.c pcre.h
-pgrep.obj      :  pgrep.c pcre.h
-
-# An auxiliary program makes the character tables
-
-chartables.obj :  chartables.c
-maketables.obj :  maketables.c
-
-chartables.c :    dftables.exe
-        CURRENT_OUTPUT = f$trnlnm("SYS$OUTPUT")
-	DEFINE SYS$OUTPUT chartables.c
-	run dftables
-	DEASS SYS$OUTPUT
-	DEFINE SYS$OUTPUT 'CURRENT_OUTPUT'
-
-dftables.exe :     dftables.obj maketables.obj $(OPTFILE)
-        link dftables $(LOPT)
-
-# We deliberately omit dftables and chartables.c from 'make clean'; once made
-# chartables.c shouldn't change, and if people have edited the tables by hand,
-# you don't want to throw them away.
-
-clean :
-    @ WRITE SYS$OUTPUT "Cleaning $(LIB)"
-    @ if f$search("*.obj;*") .nes. "" then Delete/Log *.obj;*
-    @ if f$search("*.lis;*") .nes. "" then Delete/Log *.lis;*
-    @ if f$search("pcre.opt;*") .nes. "" then Delete/Log pcre.opt;*
-    @ if f$search("pcretest.exe;*") .nes. "" then Delete/Log pcretest.exe;*
-    @ if f$search("pgrep.exe;*") .nes. "" then Delete/Log pgrep.exe;*
-    @ if f$search("$(PCRELIB);*") .nes. "" then Delete/Log $(PCRELIB);*
-    @ if f$search("$(PCREPOSLIB);*") .nes. "" then Delete/Log $(PCREPOSLIB);*
-    @ ! 
-    @ if f$search("chartables.c;*") .nes. "" then Delete/Log chartables.c;*
-    @ if f$search("dftables.exe;*") .nes. "" then Delete/Log dftables.exe;*
-
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_compile.c tin-2.0.0/pcre/pcre_compile.c
--- tin-1.8.3/pcre/pcre_compile.c	2005-09-12 16:37:57.000000000 +0200
+++ tin-2.0.0/pcre/pcre_compile.c	2011-04-17 16:04:37.420133340 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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,
@@ -116,7 +126,7 @@ static const short int escapes[] = {
 
 
 /* Tables of names of POSIX character classes and their lengths. The list is
-terminated by a zero length entry. The first three must be alpha, upper, lower,
+terminated by a zero length entry. The first three must be alpha, lower, upper,
 as this is assumed for handling case independence. */
 
 static const char *const posix_names[] = {
@@ -127,30 +137,41 @@ static const char *const posix_names[] =
 static const uschar posix_name_lengths[] = {
   5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 0 };
 
-/* Table of class bit maps for each POSIX class; up to three may be combined
-to form the class. The table for [:blank:] is dynamically modified to remove
-the vertical space characters. */
+/* Table of class bit maps for each POSIX class. Each class is formed from a
+base map, with an optional addition or removal of another map. Then, for some
+classes, there is some additional tweaking: for [:blank:] the vertical space
+characters are removed, and for [:alpha:] and [:alnum:] the underscore
+character is removed. The triples in the table consist of the base map offset,
+second map offset or -1 if no second map, and a non-negative value for map
+addition or a negative value for map subtraction (if there are two maps). The
+absolute value of the third field has these meanings: 0 => no tweaking, 1 =>
+remove vertical space characters, 2 => remove underscore. */
 
 static const int posix_class_maps[] = {
-  cbit_lower, cbit_upper, -1,             /* alpha */
-  cbit_lower, -1,         -1,             /* lower */
-  cbit_upper, -1,         -1,             /* upper */
-  cbit_digit, cbit_lower, cbit_upper,     /* alnum */
-  cbit_print, cbit_cntrl, -1,             /* ascii */
-  cbit_space, -1,         -1,             /* blank - a GNU extension */
-  cbit_cntrl, -1,         -1,             /* cntrl */
-  cbit_digit, -1,         -1,             /* digit */
-  cbit_graph, -1,         -1,             /* graph */
-  cbit_print, -1,         -1,             /* print */
-  cbit_punct, -1,         -1,             /* punct */
-  cbit_space, -1,         -1,             /* space */
-  cbit_word,  -1,         -1,             /* word - a Perl extension */
-  cbit_xdigit,-1,         -1              /* xdigit */
+  cbit_word,  cbit_digit, -2,             /* alpha */
+  cbit_lower, -1,          0,             /* lower */
+  cbit_upper, -1,          0,             /* upper */
+  cbit_word,  -1,          2,             /* alnum - word without underscore */
+  cbit_print, cbit_cntrl,  0,             /* ascii */
+  cbit_space, -1,          1,             /* blank - a GNU extension */
+  cbit_cntrl, -1,          0,             /* cntrl */
+  cbit_digit, -1,          0,             /* digit */
+  cbit_graph, -1,          0,             /* graph */
+  cbit_print, -1,          0,             /* print */
+  cbit_punct, -1,          0,             /* punct */
+  cbit_space, -1,          0,             /* space */
+  cbit_word,  -1,          0,             /* word - a Perl extension */
+  cbit_xdigit,-1,          0              /* xdigit */
 };
 
 
+#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",
@@ -165,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",
@@ -175,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",
@@ -184,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 )",
@@ -192,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)",
@@ -203,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"
 };
 
 
@@ -340,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 *);
 
 
 
@@ -351,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
@@ -371,12 +406,15 @@ static int
 check_escape(const uschar **ptrptr, int *errorcodeptr, int bracount,
   int options, BOOL isclass)
 {
-const uschar *ptr = *ptrptr;
+BOOL utf8 = (options & PCRE_UTF8) != 0;
+const uschar *ptr = *ptrptr + 1;
 int c, i;
 
+GETCHARINCTEST(c, ptr);           /* Get character value, increment pointer */
+ptr--;                            /* Set pointer back to the last byte */
+
 /* If backslash is at the end of the pattern, it's an error. */
 
-c = *(++ptr);
 if (c == 0) *errorcodeptr = ERR1;
 
 /* Non-alphamerics are literals. For digits or letters, do an initial lookup in
@@ -397,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
@@ -410,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:
@@ -451,49 +533,56 @@ 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 when UTF-8 is enabled. \x{ddd} is a character number
-    which can be greater than 0xff, but only if the ddd are hex digits. */
+    /* \x is complicated. \x{ddd} is a character number which can be greater
+    than 0xff in utf8 mode, but only if the ddd are hex digits. If not, { is
+    treated as a data character. */
 
     case 'x':
-#ifdef SUPPORT_UTF8
-    if (ptr[1] == '{' && (options & PCRE_UTF8) != 0)
+    if (ptr[1] == '{')
       {
       const uschar *pt = ptr + 2;
-      register int count = 0;
+      int count = 0;
+
       c = 0;
       while ((digitab[*pt] & ctype_xdigit) != 0)
         {
-        int cc = *pt++;
+        register int cc = *pt++;
+        if (c == 0 && cc == '0') continue;     /* Leading zeroes */
         count++;
+
 #if !EBCDIC    /* ASCII coding */
         if (cc >= 'a') cc -= 32;               /* Convert to upper case */
-        c = c * 16 + cc - ((cc < 'A')? '0' : ('A' - 10));
+        c = (c << 4) + cc - ((cc < 'A')? '0' : ('A' - 10));
 #else          /* EBCDIC coding */
         if (cc >= 'a' && cc <= 'z') cc += 64;  /* Convert to upper case */
-        c = c * 16 + cc - ((cc >= '0')? '0' : ('A' - 10));
+        c = (c << 4) + cc - ((cc >= '0')? '0' : ('A' - 10));
 #endif
         }
+
       if (*pt == '}')
         {
-        if (c < 0 || count > 8) *errorcodeptr = ERR34;
+        if (c < 0 || count > (utf8? 8 : 2)) *errorcodeptr = ERR34;
         ptr = pt;
         break;
         }
+
       /* If the sequence of hex digits does not end with '}', then we don't
       recognize this construct; fall through to the normal \x handling. */
       }
-#endif
 
-    /* Read just a single hex char */
+    /* Read just a single-byte hex-defined char */
 
     c = 0;
     while (i++ < 2 && (digitab[ptr[1]] & ctype_xdigit) != 0)
@@ -510,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);
@@ -520,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;
@@ -569,25 +656,26 @@ escape sequence.
 Argument:
   ptrptr         points to the pattern position pointer
   negptr         points to a boolean that is set TRUE for negation else FALSE
+  dptr           points to an int that is set to the detailed property value
   errorcodeptr   points to the error code variable
 
-Returns:     value from ucp_type_table, or -1 for an invalid type
+Returns:         type value from ucp_type_table, or -1 for an invalid type
 */
 
 static int
-get_ucp(const uschar **ptrptr, BOOL *negptr, int *errorcodeptr)
+get_ucp(const uschar **ptrptr, BOOL *negptr, int *dptr, int *errorcodeptr)
 {
 int c, i, bot, top;
 const uschar *ptr = *ptrptr;
-char name[4];
+char name[32];
 
 c = *(++ptr);
 if (c == 0) goto ERROR_RETURN;
 
 *negptr = FALSE;
 
-/* \P or \p can be followed by a one- or two-character name in {}, optionally
-preceded by ^ for negation. */
+/* \P or \p can be followed by a name in {}, optionally preceded by ^ for
+negation. */
 
 if (c == '{')
   {
@@ -596,18 +684,14 @@ if (c == '{')
     *negptr = TRUE;
     ptr++;
     }
-  for (i = 0; i <= 2; i++)
+  for (i = 0; i < sizeof(name) - 1; i++)
     {
     c = *(++ptr);
     if (c == 0) goto ERROR_RETURN;
     if (c == '}') break;
     name[i] = c;
     }
-  if (c !='}')   /* Try to distinguish error cases */
-    {
-    while (*(++ptr) != 0 && *ptr != '}');
-    if (*ptr == '}') goto UNKNOWN_RETURN; else goto ERROR_RETURN;
-    }
+  if (c !='}') goto ERROR_RETURN;
   name[i] = 0;
   }
 
@@ -628,13 +712,16 @@ top = _pcre_utt_size;
 
 while (bot < top)
   {
-  i = (bot + top)/2;
+  i = (bot + top) >> 1;
   c = strcmp(name, _pcre_utt[i].name);
-  if (c == 0) return _pcre_utt[i].value;
+  if (c == 0)
+    {
+    *dptr = _pcre_utt[i].value;
+    return _pcre_utt[i].type;
+    }
   if (c > 0) bot = i + 1; else top = i;
   }
 
-UNKNOWN_RETURN:
 *errorcodeptr = ERR47;
 *ptrptr = ptr;
 return -1;
@@ -750,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            *
 *************************************************/
 
@@ -798,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;
 
@@ -843,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);
@@ -885,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:
@@ -904,6 +1104,7 @@ for (;;)
 
     case OP_CHAR:
     case OP_CHARNC:
+    case OP_NOT:
     branchlength++;
     cc += 2;
 #ifdef SUPPORT_UTF8
@@ -937,7 +1138,7 @@ for (;;)
 
     case OP_PROP:
     case OP_NOTPROP:
-    cc++;
+    cc += 2;
     /* Fall through */
 
     case OP_NOT_DIGIT:
@@ -1018,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:
@@ -1051,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
     }
   }
 }
@@ -1092,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:
@@ -1123,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
     }
   }
 }
@@ -1152,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
@@ -1169,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))
   {
@@ -1177,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 */
@@ -1193,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 */
 
@@ -1253,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;
 
@@ -1270,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
@@ -1397,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;
   }
 }
@@ -1495,15 +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, chartype, othercase, next;
+unsigned int c, othercase, next;
 
 for (c = *cptr; c <= d; c++)
-  {
-  if (_pcre_ucp_findchar(c, &chartype, &othercase) == ucp_L && othercase != 0)
-    break;
-  }
+  { if ((othercase = _pcre_ucp_othercase(c)) != NOTACHAR) break; }
 
 if (c > d) return FALSE;
 
@@ -1512,9 +1743,7 @@ next = othercase + 1;
 
 for (++c; c <= d; c++)
   {
-  if (_pcre_ucp_findchar(c, &chartype, &othercase) != ucp_L ||
-        othercase != next)
-    break;
+  if (_pcre_ucp_othercase(c) != next) break;
   next++;
   }
 
@@ -1526,116 +1755,414 @@ return TRUE;
 #endif  /* SUPPORT_UCP */
 
 
+
 /*************************************************
-*           Compile one branch                   *
+*     Check if auto-possessifying is possible    *
 *************************************************/
 
-/* Scan the pattern, compiling it into the code vector. If the options are
-changed during the branch, the pointer is used to change the external options
-bits.
+/* 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:
-  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
-  firstbyteptr   set to initial literal character, or < 0 (REQ_UNSET, REQ_NONE)
-  reqbyteptr     set to the last literal character required, else < 0
-  bcptr          points to current branch chain
-  cd             contains pointers to tables etc.
+  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 on success
-                 FALSE, with *errorcodeptr set non-zero on error
+Returns:        TRUE if possessifying is wanted
 */
 
 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)
+check_auto_possessive(int op_code, int item, BOOL utf8, uschar *utf8_char,
+  const uschar *ptr, int options, compile_data *cd)
 {
-int repeat_type, op_type;
-int repeat_min = 0, repeat_max = 0;      /* To please picky compilers */
-int bravalue = 0;
-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;
-register int c;
-register uschar *code = *codeptr;
-uschar *tempcode;
-BOOL inescq = FALSE;
-BOOL groupsetfirstbyte = FALSE;
-const uschar *ptr = *ptrptr;
-const uschar *tempptr;
-uschar *previous = NULL;
-uschar *previous_callout = NULL;
-uschar classbits[32];
+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
-BOOL class_utf8;
-BOOL utf8 = (options & PCRE_UTF8) != 0;
-uschar *class_utf8data;
-uschar utf8_char[6];
-#else
-BOOL utf8 = FALSE;
+  if (utf8) { GETCHARINC(next, ptr); } else
 #endif
+  next = *ptr++;
+  }
 
-/* Set up the default and non-default settings for greediness */
+else return FALSE;
 
-greedy_default = ((options & PCRE_UNGREEDY) != 0);
-greedy_non_default = greedy_default ^ 1;
+/* Skip whitespace and comments in extended mode */
 
-/* Initialize no first byte, no required byte. REQ_UNSET means "no char
-matching encountered yet". It gets changed to REQ_NONE if we hit something that
-matches a non-fixed char first char; reqbyte just remains unset if we never
-find one.
+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;
+    }
+  }
 
-When we hit a repeat whose minimum is zero, we may have to adjust these values
-to take the zero repeat into account. This is implemented by setting them to
-zerofirstbyte and zeroreqbyte when such a repeat is encountered. The individual
-item types that can be repeated set these backoff variables appropriately. */
+/* If the next thing is itself optional, we have to give up. */
 
-firstbyte = reqbyte = zerofirstbyte = zeroreqbyte = REQ_UNSET;
+if (*ptr == '*' || *ptr == '?' || strncmp((char *)ptr, "{0,", 3) == 0)
+  return FALSE;
 
-/* The variable req_caseopt contains either the REQ_CASELESS value or zero,
-according to the current setting of the caseless flag. REQ_CASELESS is a bit
-value > 255. It is added into the firstbyte or reqbyte variables to record the
-case status of the value. This is used only for ASCII characters. */
+/* 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. */
 
-req_caseopt = ((options & PCRE_CASELESS) != 0)? REQ_CASELESS : 0;
 
-/* Switch on next character until the end of the branch */
+/* Handle cases when the next item is a character. */
 
-for (;; ptr++)
+if (next >= 0) switch(op_code)
   {
-  BOOL negate_class;
-  BOOL possessive_quantifier;
-  BOOL is_quantifier;
-  int class_charcount;
-  int class_lastchar;
-  int newoptions;
-  int recno;
-  int skipbytes;
-  int subreqbyte;
-  int subfirstbyte;
-  int mclength;
-  uschar mcbuffer[8];
-
-  /* Next byte in the pattern */
-
-  c = *ptr;
+  case OP_CHAR:
+#ifdef SUPPORT_UTF8
+  if (utf8 && item > 127) { GETCHAR(item, utf8_char); }
+#endif
+  return item != next;
 
-  /* If in \Q...\E, check for the end; if not, we have a literal */
+  /* 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. */
 
-  if (inescq && c != 0)
+  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)
     {
-    if (c == '\\' && ptr[1] == 'E')
-      {
-      inescq = FALSE;
+    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 a vector. If the options are
+changed during the branch, the pointer is used to change the external options
+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
+  codeptr        points to the pointer to the current code point
+  ptrptr         points to the current pattern pointer
+  errorcodeptr   points to error code variable
+  firstbyteptr   set to initial literal character, or < 0 (REQ_UNSET, REQ_NONE)
+  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, 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 */
+int bravalue = 0;
+int greedy_default, greedy_non_default;
+int firstbyte, reqbyte;
+int zeroreqbyte, zerofirstbyte;
+int req_caseopt, reqvary, tempreqvary;
+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;
+const uschar *ptr = *ptrptr;
+const uschar *tempptr;
+uschar *previous = NULL;
+uschar *previous_callout = NULL;
+uschar *save_hwm = NULL;
+uschar classbits[32];
+
+#ifdef SUPPORT_UTF8
+BOOL class_utf8;
+BOOL utf8 = (options & PCRE_UTF8) != 0;
+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 */
+
+greedy_default = ((options & PCRE_UNGREEDY) != 0);
+greedy_non_default = greedy_default ^ 1;
+
+/* Initialize no first byte, no required byte. REQ_UNSET means "no char
+matching encountered yet". It gets changed to REQ_NONE if we hit something that
+matches a non-fixed char first char; reqbyte just remains unset if we never
+find one.
+
+When we hit a repeat whose minimum is zero, we may have to adjust these values
+to take the zero repeat into account. This is implemented by setting them to
+zerofirstbyte and zeroreqbyte when such a repeat is encountered. The individual
+item types that can be repeated set these backoff variables appropriately. */
+
+firstbyte = reqbyte = zerofirstbyte = zeroreqbyte = REQ_UNSET;
+
+/* The variable req_caseopt contains either the REQ_CASELESS value or zero,
+according to the current setting of the caseless flag. REQ_CASELESS is a bit
+value > 255. It is added into the firstbyte or reqbyte variables to record the
+case status of the value. This is used only for ASCII characters. */
+
+req_caseopt = ((options & PCRE_CASELESS) != 0)? REQ_CASELESS : 0;
+
+/* Switch on next character until the end of the branch */
+
+for (;; ptr++)
+  {
+  BOOL negate_class;
+  BOOL possessive_quantifier;
+  BOOL is_quantifier;
+  BOOL is_recurse;
+  int class_charcount;
+  int class_lastchar;
+  int newoptions;
+  int recno;
+  int skipbytes;
+  int subreqbyte;
+  int subfirstbyte;
+  int terminator;
+  int mclength;
+  uschar mcbuffer[8];
+
+  /* Get next byte in the pattern */
+
+  c = *ptr;
+
+  /* If we are in the pre-compile phase, accumulate the length used for the
+  previous cycle of this loop. */
+
+  if (lengthptr != NULL)
+    {
+#ifdef DEBUG
+    if (code > cd->hwm) cd->hwm = code;                 /* High water info */
+#endif
+    if (code > cd->start_workspace + COMPILE_WORK_SIZE) /* Check for overrun */
+      {
+      *errorcodeptr = ERR52;
+      goto FAILED;
+      }
+
+    /* 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;
       }
@@ -1643,7 +2170,8 @@ for (;; ptr++)
       {
       if (previous_callout != NULL)
         {
-        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;
         }
       if ((options & PCRE_AUTO_CALLOUT) != 0)
@@ -1664,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;
     }
 
@@ -1675,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;
       }
     }
 
@@ -1692,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. */
 
@@ -1731,11 +2270,13 @@ for (;; ptr++)
     *code++ = OP_ANY;
     break;
 
-    /* Character classes. If the included characters are all < 255 in value, 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 map as usual, then invert it at the end. However, we use a different
-    opcode so that data characters > 255 can be handled correctly.
+
+    /* ===================================================================*/
+    /* 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
+    map as usual, then invert it at the end. However, we use a different opcode
+    so that data characters > 255 can be handled correctly.
 
     If the class contains characters outside the 0-255 range, a different
     opcode is compiled. It may optionally have a bit map for characters < 256,
@@ -1769,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 */
@@ -1806,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
@@ -1826,8 +2367,9 @@ for (;; ptr++)
           check_posix_syntax(ptr, &tempptr, cd))
         {
         BOOL local_negate = FALSE;
-        int posix_class, i;
+        int posix_class, taboffset, tabopt;
         register const uschar *cbits = cd->cbits;
+        uschar pbits[32];
 
         if (ptr[1] != ':')
           {
@@ -1856,51 +2398,66 @@ for (;; ptr++)
         if ((options & PCRE_CASELESS) != 0 && posix_class <= 2)
           posix_class = 0;
 
-        /* Or into the map we are building up to 3 of the static class
-        tables, or their negations. The [:blank:] class sets up the same
-        chars as the [:space:] class (all white space). We remove the vertical
-        white space chars afterwards. */
+        /* We build the bit map for the POSIX class in a chunk of local store
+        because we may be adding and subtracting from it, and we don't want to
+        subtract bits that may be in the main map already. At the end we or the
+        result into the bit map that is being built. */
 
         posix_class *= 3;
-        for (i = 0; i < 3; i++)
+
+        /* Copy in the first table (always present) */
+
+        memcpy(pbits, cbits + posix_class_maps[posix_class],
+          32 * sizeof(uschar));
+
+        /* If there is a second table, add or remove it as required. */
+
+        taboffset = posix_class_maps[posix_class + 1];
+        tabopt = posix_class_maps[posix_class + 2];
+
+        if (taboffset >= 0)
           {
-          BOOL blankclass = strncmp((char *)ptr, "blank", 5) == 0;
-          int taboffset = posix_class_maps[posix_class + i];
-          if (taboffset < 0) break;
-          if (local_negate)
-            {
-            if (i == 0)
-              for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+taboffset];
-            else
-              for (c = 0; c < 32; c++) classbits[c] &= ~cbits[c+taboffset];
-            if (blankclass) classbits[1] |= 0x3c;
-            }
+          if (tabopt >= 0)
+            for (c = 0; c < 32; c++) pbits[c] |= cbits[c + taboffset];
           else
-            {
-            for (c = 0; c < 32; c++) classbits[c] |= cbits[c+taboffset];
-            if (blankclass) classbits[1] &= ~0x3c;
-            }
+            for (c = 0; c < 32; c++) pbits[c] &= ~cbits[c + taboffset];
           }
 
+        /* Not see if we need to remove any special characters. An option
+        value of 1 removes vertical space and 2 removes underscore. */
+
+        if (tabopt < 0) tabopt = -tabopt;
+        if (tabopt == 1) pbits[1] &= ~0x3c;
+          else if (tabopt == 2) pbits[11] &= 0x7f;
+
+        /* Add the POSIX table or its complement into the main table that is
+        being built and we are done. */
+
+        if (local_negate)
+          for (c = 0; c < 32; c++) classbits[c] |= ~pbits[c];
+        else
+          for (c = 0; c < 32; c++) classbits[c] |= pbits[c];
+
         ptr = tempptr + 1;
         class_charcount = 10;  /* Set > 1; assumes more than 1 per class */
         continue;    /* End of POSIX syntax handling */
         }
 
       /* 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')
@@ -1915,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];
@@ -1943,50 +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 property = get_ucp(&ptr, &negated, errorcodeptr);
-              if (property < 0) goto FAILED;
-              class_utf8 = TRUE;
-              *class_utf8data++ = ((-c == ESC_p) != negated)?
-                XCL_PROP : XCL_NOTPROP;
-              *class_utf8data++ = property;
-              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. */
+
+      CHECK_RANGE:
+      while (ptr[1] == '\\' && ptr[2] == 'E')
+        {
+        inescq = FALSE;
+        ptr += 2;
+        }
+
+      oldptr = ptr;
 
-      if (ptr[1] == '-' && ptr[2] != ']')
+      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)
@@ -2001,31 +2602,38 @@ 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 */
-
-        if (d == c) goto LONE_SINGLE_CHARACTER;  /* A few lines below */
+        /* Check that the two values are in the correct order. Optimize
+        one-character ranges */
 
-        /* In UTF-8 mode, if the upper limit is > 255, or > 127 for caseless
+        if (d < c)
+          {
+          *errorcodeptr = ERR8;
+          goto FAILED;
+          }
+
+        if (d == c) goto LONE_SINGLE_CHARACTER;  /* A few lines below */
+
+        /* In UTF-8 mode, if the upper limit is > 255, or > 127 for caseless
         matching, we have to use an XCLASS with extra data items. Caseless
         matching for characters > 127 is available only if UCP support is
         available. */
@@ -2042,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 */
@@ -2102,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)
@@ -2110,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 */
@@ -2135,10 +2746,8 @@ for (;; ptr++)
 #ifdef SUPPORT_UCP
         if ((options & PCRE_CASELESS) != 0)
           {
-          int chartype;
-          int othercase;
-          if (_pcre_ucp_findchar(c, &chartype, &othercase) >= 0 &&
-               othercase > 0)
+          unsigned int othercase;
+          if ((othercase = _pcre_ucp_othercase(c)) != NOTACHAR)
             {
             *class_utf8data++ = XCL_SINGLE;
             class_utf8data += _pcre_ord2utf8(othercase, class_utf8data);
@@ -2163,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)) != 0 && (c != ']' || inescq));
 
-    while ((c = *(++ptr)) != ']' || 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
@@ -2230,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)
@@ -2240,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 */
 
@@ -2274,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
       {
@@ -2284,6 +2892,8 @@ for (;; ptr++)
     code += 32;
     break;
 
+
+    /* ===================================================================*/
     /* Various kinds of repeat; '{' is not necessarily a quantifier, but this
     has been tested above. */
 
@@ -2351,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
@@ -2398,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;
       }
 
@@ -2423,13 +3041,25 @@ for (;; ptr++)
     else if (*previous < OP_EODN)
       {
       uschar *oldcode;
-      int prop_type;
+      int prop_type, prop_value;
       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:
-      prop_type = (*previous == OP_PROP || *previous == OP_NOTPROP)?
-        previous[1] : -1;
+      if (*previous == OP_PROP || *previous == OP_NOTPROP)
+        {
+        prop_type = previous[1];
+        prop_value = previous[2];
+        }
+      else prop_type = prop_value = -1;
 
       oldcode = code;
       code = previous;                  /* Usually overwrite previous item */
@@ -2463,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. */
 
@@ -2490,7 +3120,7 @@ for (;; ptr++)
 
         /* If the maximum is unlimited, insert an OP_STAR. Before doing so,
         we have to insert the character for the previous code. For a repeated
-        Unicode property match, there is an extra byte that defines the
+        Unicode property match, there are two extra bytes that define the
         required property. In UTF-8 mode, long characters have their length in
         c, with the 0x80 bit as a flag. */
 
@@ -2506,13 +3136,18 @@ for (;; ptr++)
 #endif
             {
             *code++ = c;
-            if (prop_type >= 0) *code++ = prop_type;
+            if (prop_type >= 0)
+              {
+              *code++ = prop_type;
+              *code++ = prop_value;
+              }
             }
           *code++ = OP_STAR + repeat_type;
           }
 
         /* 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)
           {
@@ -2525,10 +3160,22 @@ for (;; ptr++)
           else
 #endif
           *code++ = c;
-          if (prop_type >= 0) *code++ = prop_type;
+          if (prop_type >= 0)
+            {
+            *code++ = prop_type;
+            *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);
+            }
           }
         }
 
@@ -2544,11 +3191,15 @@ for (;; ptr++)
 #endif
       *code++ = c;
 
-      /* For a repeated Unicode property match, there is an extra byte that
-      defines the required property. */
+      /* For a repeated Unicode property match, there are two extra bytes that
+      define the required property. */
 
 #ifdef SUPPORT_UCP
-      if (prop_type >= 0) *code++ = prop_type;
+      if (prop_type >= 0)
+        {
+        *code++ = prop_type;
+        *code++ = prop_value;
+        }
 #endif
       }
 
@@ -2591,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
@@ -2633,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;
@@ -2657,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;
@@ -2677,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;
         }
 
@@ -2697,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
@@ -2718,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;
           }
 
@@ -2740,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.
+
+      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 code[-ketoffset] = OP_KETRMAX + repeat_type;
+      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 */
@@ -2753,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
@@ -2781,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;
 
-        if (ptr[1] == 'R')
+        /* 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 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;
@@ -2896,137 +3830,256 @@ for (;; ptr++)
         previous = NULL;
         continue;
 
-        case 'P':                 /* Named subpattern handling */
-        if (*(++ptr) == '<')      /* Definition */
+
+        /* ------------------------------------------------------------ */
+        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 */
           {
-          int i, namelen;
-          uschar *slot = cd->name_table;
-          const uschar *name;     /* Don't amalgamate; some compilers */
-          name = ++ptr;           /* grumble at autoincrement in declaration */
+          *errorcodeptr = ERR41;
+          goto FAILED;
+          }
+        /* Fall through to handle (?P< as (?< is handled */
 
-          while (*ptr++ != '>');
-          namelen = ptr - name - 1;
 
-          for (i = 0; i < cd->names_found; i++)
+        /* ------------------------------------------------------------ */
+        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)
+              {
+              *errorcodeptr = ERR49;
+              goto FAILED;
+              }
+            if (namelen + 3 > cd->name_entry_size)
               {
-              if (slot[2+namelen] == 0)
+              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);
+              }
 
-          /* Insert the recursion/subroutine item */
+            /* 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. */
 
-          *code = OP_RECURSE;
+            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. Set up a "previous group" length so that a
+          subsequent quantifier will work. */
+
+          *code = OP_ONCE;
+          PUT(code, 1, 2 + 2*LINK_SIZE);
+          code += 1 + LINK_SIZE;
+
+          *code = OP_RECURSE;
           PUT(code, 1, called - cd->start_code);
           code += 1 + LINK_SIZE;
+
+          *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;
 
@@ -3036,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;
             }
           }
 
@@ -3050,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 */
@@ -3088,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
@@ -3148,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++;
@@ -3161,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;
         }
+      }
 
-      /* 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. */
+    /* Error if hit end of pattern */
+
+    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
@@ -3224,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 */
@@ -3262,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. */
 
@@ -3273,32 +4392,60 @@ 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)
         {
         BOOL negated;
-        int value = get_ucp(&ptr, &negated, errorcodeptr);
+        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++ = value;
+        *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
         {
@@ -3322,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. */
@@ -3335,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);
@@ -3386,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. */
@@ -3402,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;
@@ -3439,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;
@@ -3446,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);
@@ -3461,6 +4630,7 @@ for (;;)
     {
     *code++ = OP_OPT;
     *code++ = options & PCRE_IMS;
+    length += 2;
     }
 
   /* Set up dummy OP_REVERSE if lookbehind assertion */
@@ -3470,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
@@ -3550,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 */
 
@@ -3572,6 +4749,7 @@ for (;;)
       {
       *code++ = OP_OPT;
       *code++ = oldims;
+      length += 2;
       }
 
     /* Set values to pass back */
@@ -3580,6 +4758,7 @@ for (;;)
     *ptrptr = ptr;
     *firstbyteptr = firstbyte;
     *reqbyteptr = reqbyte;
+    if (lengthptr != NULL) *lengthptr += length;
     return TRUE;
     }
 
@@ -3593,6 +4772,7 @@ for (;;)
   bc.current = last_branch = code;
   code += 1 + LINK_SIZE;
   ptr++;
+  length += 1 + LINK_SIZE;
   }
 /* Control never reaches here */
 }
@@ -3643,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;
      }
@@ -3668,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;
@@ -3713,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;
      }
@@ -3785,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:
@@ -3808,6 +4998,7 @@ do {
      case OP_CHARNC:
      case OP_PLUS:
      case OP_MINPLUS:
+     case OP_POSPLUS:
      if (!inassert) return -1;
      if (c < 0)
        {
@@ -3848,7 +5039,7 @@ Returns:        pointer to compiled data
                 with errorptr and erroroffset set
 */
 
-PCRE_EXPORT pcre *
+PCRE_DATA_SCOPE pcre *
 pcre_compile(const char *pattern, int options, const char **errorptr,
   int *erroroffset, const unsigned char *tables)
 {
@@ -3856,35 +5047,36 @@ return pcre_compile2(pattern, options, N
 }
 
 
-PCRE_EXPORT pcre *
+PCRE_DATA_SCOPE pcre *
 pcre_compile2(const char *pattern, int options, int *errorcodeptr,
   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
@@ -3917,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)
@@ -3936,1030 +5128,202 @@ 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. */
-
-  if ((options & PCRE_AUTO_CALLOUT) != 0 &&
-       c != '*' && c != '+' && c != '?' &&
-       (c != '{' || !is_counted_repeat(ptr + 1)))
-    length += 2 + 2*LINK_SIZE;
-
-  switch(c)
-    {
-    /* A backslashed item may be an escaped data character or it may be a
-    character type. */
-
-    case '\\':
-    c = check_escape(&ptr, &errorcode, bracount, options, FALSE);
-    if (errorcode != 0) goto PCRE_ERROR_RETURN;
-
-    lastitemlength = 1;     /* Default length of last item for repeats */
+/* 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 (c >= 0)             /* Data character */
-      {
-      length += 2;          /* For a one-byte character */
+cd->top_backref = 0;
+cd->backref_map = 0;
 
-#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
+/* Reflect pattern for debugging output */
 
-      continue;
-      }
+DPRINTF(("------------------------------------------------------------------\n"));
+DPRINTF(("%s\n", pattern));
 
-    /* If \Q, enter "literal" mode */
+/* 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 == ESC_Q)
-      {
-      inescq = TRUE;
-      continue;
-      }
+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;
 
-    /* \X is supported only if Unicode property support is compiled */
+DPRINTF(("end pre-compile: length=%d workspace=%d\n", length,
+  cd->hwm - cworkspace));
 
-#ifndef SUPPORT_UCP
-    if (-c == ESC_X)
-      {
-      errorcode = ERR45;
-      goto PCRE_ERROR_RETURN;
-      }
-#endif
+if (length > MAX_PATTERN_SIZE)
+  {
+  errorcode = ERR20;
+  goto PCRE_EARLY_ERROR_RETURN;
+  }
 
-    /* \P and \p are for Unicode properties, but only when the support has
-    been compiled. Each item needs 2 bytes. */
+/* 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. */
 
-    else if (-c == ESC_P || -c == ESC_p)
-      {
-#ifdef SUPPORT_UCP
-      BOOL negated;
-      length += 2;
-      lastitemlength = 2;
-      if (get_ucp(&ptr, &negated, &errorcode) < 0) goto PCRE_ERROR_RETURN;
-      continue;
-#else
-      errorcode = ERR45;
-      goto PCRE_ERROR_RETURN;
-#endif
-      }
+size = length + sizeof(real_pcre) + cd->names_found * (cd->name_entry_size + 3);
+re = (real_pcre *)(pcre_malloc)(size);
 
-    /* Other escapes need one byte */
+if (re == NULL)
+  {
+  errorcode = ERR21;
+  goto PCRE_EARLY_ERROR_RETURN;
+  }
 
-    length++;
+/* 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. */
 
-    /* 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. */
+re->magic_number = MAGIC_NUMBER;
+re->size = size;
+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 = 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;
 
-    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;
+/* The starting points of the name/number translation table and of the code are
+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.
+*/
 
-    case '^':     /* Single-byte metacharacters */
-    case '.':
-    case '$':
-    length++;
-    lastitemlength = 1;
-    continue;
+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;
 
-    case '*':            /* These repeats won't be after brackets; */
-    case '+':            /* those are handled separately */
-    case '?':
-    length++;
-    goto POSESSIVE;      /* A few lines below */
+/* 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
+of the function here. */
 
-    /* This covers the cases of braced repeats after a single char, metachar,
-    class, or back reference. */
+ptr = (const uschar *)pattern;
+code = (uschar *)codestart;
+*code = OP_BRA;
+(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;
 
-    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;
+if (cd->nopartial) re->options |= PCRE_NOPARTIAL;
 
-    /* These special cases just insert one extra opcode */
+/* If not reached end of pattern on success, there's an excess bracket. */
 
-    if ((min == 0 && (max == 1 || max == -1)) ||
-      (min == 1 && max == -1))
-        length++;
+if (errorcode == 0 && *ptr != 0) errorcode = ERR22;
 
-    /* These cases might insert additional copies of a preceding character. */
+/* Fill in the terminating state and check for disastrous overflow, but
+if debugging, leave the test till after things are printed out. */
 
-    else
-      {
-      if (min != 1)
-        {
-        length -= lastitemlength;   /* Uncount the original char or metachar */
-        if (min > 0) length += 3 + lastitemlength;
-        }
-      length += lastitemlength + ((max > 0)? 3 : 1);
-      }
+*code++ = OP_END;
 
-    if (ptr[1] == '?') ptr++;      /* Needs no extra length */
+#ifndef DEBUG
+if (code - codestart > length) errorcode = ERR23;
+#endif
 
-    POSESSIVE:                     /* Test for possessive quantifier */
-    if (ptr[1] == '+')
-      {
-      ptr++;
-      length += 2 + 2*LINK_SIZE;   /* Allow for atomic brackets */
-      }
-    continue;
+/* Fill in any forward references that are required. */
 
-    /* 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. */
+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);
+  }
 
-    case '|':
-    length += 1 + LINK_SIZE + branch_extra;
-    continue;
+/* Give an error if there's back reference to a non-existent capturing
+subpattern. */
 
-    /* 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.) */
+if (errorcode == 0 && re->top_backref > re->top_bracket) errorcode = ERR15;
 
-    case '[':
-    if (*(++ptr) == '^')
-      {
-      class_optcount = 10;  /* Greater than one */
-      ptr++;
-      }
-    else class_optcount = 0;
+/* Failed to compile, or error while post-processing */
 
+if (errorcode != 0)
+  {
+  (pcre_free)(re);
+  PCRE_EARLY_ERROR_RETURN:
+  *erroroffset = ptr - (const uschar *)pattern;
 #ifdef SUPPORT_UTF8
-    class_utf8 = FALSE;
+  PCRE_UTF8_ERROR_RETURN:
 #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 += 2;
-            }
-#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 += 1 + LINK_SIZE;
-
-        /* 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 == '>')
-          {
-          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. */
-
-re->magic_number = MAGIC_NUMBER;
-re->size = size;
-re->options = options;
-re->dummy1 = 0;
-re->name_table_offset = sizeof(real_pcre);
-re->name_entry_size = max_name_size + 3;
-re->name_count = name_count;
-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. */
-
-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;
-
-/* 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
-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;
-
-if (compile_block.nopartial) re->options |= PCRE_NOPARTIAL;
-
-/* If not reached end of pattern on success, there's an excess bracket. */
-
-if (errorcode == 0 && *ptr != 0) errorcode = ERR22;
-
-/* Fill in the terminating state and check for disastrous overflow, but
-if debugging, leave the test till after things are printed out. */
-
-*code++ = OP_END;
-
-#ifndef DEBUG
-if (code - codestart > length) errorcode = ERR23;
-#endif
-
-/* Give an error if there's back reference to a non-existent capturing
-subpattern. */
-
-if (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:
   *errorptr = error_texts[errorcode];
   if (errorcodeptr != NULL) *errorcodeptr = errorcode;
   return NULL;
@@ -4969,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
     {
@@ -4988,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;
     }
   }
@@ -5005,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;
   }
 
@@ -5019,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 " : "",
@@ -5035,7 +5398,8 @@ if (re->options != 0)
 if ((re->options & PCRE_FIRSTSET) != 0)
   {
   int ch = re->first_byte & 255;
-  const char *caseless = ((re->first_byte & REQ_CASELESS) == 0)? "" : " (caseless)";
+  const char *caseless = ((re->first_byte & REQ_CASELESS) == 0)?
+    "" : " (caseless)";
   if (isprint(ch)) printf("First char = %c%s\n", ch, caseless);
     else printf("First char = \\x%02x%s\n", ch, caseless);
   }
@@ -5043,7 +5407,8 @@ if ((re->options & PCRE_FIRSTSET) != 0)
 if ((re->options & PCRE_REQCHSET) != 0)
   {
   int ch = re->req_byte & 255;
-  const char *caseless = ((re->req_byte & REQ_CASELESS) == 0)? "" : " (caseless)";
+  const char *caseless = ((re->req_byte & REQ_CASELESS) == 0)?
+    "" : " (caseless)";
   if (isprint(ch)) printf("Req char = %c%s\n", ch, caseless);
     else printf("Req char = \\x%02x%s\n", ch, caseless);
   }
@@ -5061,7 +5426,7 @@ if (code - codestart > length)
   if (errorcodeptr != NULL) *errorcodeptr = ERR23;
   return NULL;
   }
-#endif
+#endif   /* DEBUG */
 
 return (pcre *)re;
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_config.c tin-2.0.0/pcre/pcre_config.c
--- tin-1.8.3/pcre/pcre_config.c	2005-09-12 16:38:09.000000000 +0200
+++ tin-2.0.0/pcre/pcre_config.c	2011-04-17 16:04:37.456138819 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -58,7 +58,7 @@ Arguments:
 Returns:           0 if data returned, negative on error
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 pcre_config(int what, void *where)
 {
 switch (what)
@@ -95,6 +95,10 @@ switch (what)
   *((unsigned int *)where) = MATCH_LIMIT;
   break;
 
+  case PCRE_CONFIG_MATCH_LIMIT_RECURSION:
+  *((unsigned int *)where) = MATCH_LIMIT_RECURSION;
+  break;
+
   case PCRE_CONFIG_STACKRECURSE:
 #ifdef NO_RECURSE
   *((int *)where) = 0;
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_dfa_exec.c tin-2.0.0/pcre/pcre_dfa_exec.c
--- tin-1.8.3/pcre/pcre_dfa_exec.c	2005-09-12 16:38:43.000000000 +0200
+++ tin-2.0.0/pcre/pcre_dfa_exec.c	2011-04-17 16:04:37.504146126 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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;
 
@@ -288,7 +297,11 @@ const uschar *start_subject = md->start_
 const uschar *end_subject = md->end_subject;
 const uschar *start_code = md->start_code;
 
+#ifdef SUPPORT_UTF8
 BOOL utf8 = (md->poptions & PCRE_UTF8) != 0;
+#else
+BOOL utf8 = FALSE;
+#endif
 
 rlevel++;
 offsetcount &= (-2);
@@ -311,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
@@ -320,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;
@@ -402,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);
     }
@@ -421,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. */
@@ -457,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 */
@@ -465,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
@@ -480,11 +500,11 @@ for (;;)
     const uschar *code;
     int state_offset = current_state->offset;
     int count, codevalue;
-    int chartype, othercase;
+    int chartype, script;
 
 #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
@@ -528,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
@@ -550,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. */
       }
 
 
@@ -620,6 +645,7 @@ for (;;)
 
       /*-----------------------------------------------------------------*/
       case OP_BRA:
+      case OP_SBRA:
       do
         {
         ADD_ACTIVE(code - start_code + 1 + LINK_SIZE, 0);
@@ -629,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);
@@ -638,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;
 
@@ -679,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;
 
@@ -693,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;
 
@@ -757,19 +794,38 @@ for (;;)
       case OP_NOTPROP:
       if (clen > 0)
         {
-        int rqdtype, category;
-        category = _pcre_ucp_findchar(c, &chartype, &othercase);
-        rqdtype = code[1];
-        if (rqdtype >= 128)
-          {
-          if ((rqdtype - 128 == category) == (codevalue == OP_PROP))
-            { ADD_NEW(state_offset + 2, 0); }
-          }
-        else
+        BOOL OK;
+        int category = _pcre_ucp_findprop(c, &chartype, &script);
+        switch(code[1])
           {
-          if ((rqdtype == chartype) == (codevalue == OP_PROP))
-            { ADD_NEW(state_offset + 2, 0); }
+          case PT_ANY:
+          OK = TRUE;
+          break;
+
+          case PT_LAMP:
+          OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+          break;
+
+          case PT_GC:
+          OK = category == code[2];
+          break;
+
+          case PT_PC:
+          OK = chartype == code[2];
+          break;
+
+          case PT_SC:
+          OK = script == code[2];
+          break;
+
+          /* Should never occur, but keep compilers from grumbling. */
+
+          default:
+          OK = codevalue != OP_PROP;
+          break;
           }
+
+        if (OK == (codevalue == OP_PROP)) { ADD_NEW(state_offset + 3, 0); }
         }
       break;
 #endif
@@ -784,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);
           }
@@ -802,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);
           }
         }
@@ -818,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);
           }
         }
@@ -833,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
@@ -855,39 +966,82 @@ 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 + 3, 0); }
+      if (count > 0) { ADD_ACTIVE(state_offset + 4, 0); }
       if (clen > 0)
         {
-        int category = _pcre_ucp_findchar(c, &chartype, &othercase);
-        int rqdtype = code[2];
-        if ((d == OP_PROP) ==
-            (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype)))
-          { count++; ADD_NEW(state_offset, count); }
+        BOOL OK;
+        int category = _pcre_ucp_findprop(c, &chartype, &script);
+        switch(code[2])
+          {
+          case PT_ANY:
+          OK = TRUE;
+          break;
+
+          case PT_LAMP:
+          OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+          break;
+
+          case PT_GC:
+          OK = category == code[3];
+          break;
+
+          case PT_PC:
+          OK = chartype == code[3];
+          break;
+
+          case PT_SC:
+          OK = script == code[3];
+          break;
+
+          /* Should never occur, but keep compilers from grumbling. */
+
+          default:
+          OK = codevalue != OP_PROP;
+          break;
+          }
+
+        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_findchar(c, &chartype, &othercase) != ucp_M)
+      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;
           int ndlen = 1;
           GETCHARLEN(nd, nptr, ndlen);
-          if (_pcre_ucp_findchar(nd, &chartype, &othercase) != ucp_M) break;
+          if (_pcre_ucp_findprop(nd, &chartype, &script) != ucp_M) break;
           ncount++;
           nptr += ndlen;
           }
@@ -897,51 +1051,131 @@ 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:
-      count = 3;
+      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:
 
-      ADD_ACTIVE(state_offset + 3, 0);
+      ADD_ACTIVE(state_offset + 4, 0);
       if (clen > 0)
         {
-        int category = _pcre_ucp_findchar(c, &chartype, &othercase);
-        int rqdtype = code[2];
-        if ((d == OP_PROP) ==
-            (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype)))
-          { ADD_NEW(state_offset + count, 0); }
+        BOOL OK;
+        int category = _pcre_ucp_findprop(c, &chartype, &script);
+        switch(code[2])
+          {
+          case PT_ANY:
+          OK = TRUE;
+          break;
+
+          case PT_LAMP:
+          OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+          break;
+
+          case PT_GC:
+          OK = category == code[3];
+          break;
+
+          case PT_PC:
+          OK = chartype == code[3];
+          break;
+
+          case PT_SC:
+          OK = script == code[3];
+          break;
+
+          /* Should never occur, but keep compilers from grumbling. */
+
+          default:
+          OK = codevalue != OP_PROP;
+          break;
+          }
+
+        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:
 
       ADD_ACTIVE(state_offset + 2, 0);
-      if (clen > 0 && _pcre_ucp_findchar(c, &chartype, &othercase) != ucp_M)
+      if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
         {
         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;
           int ndlen = 1;
           GETCHARLEN(nd, nptr, ndlen);
-          if (_pcre_ucp_findchar(nd, &chartype, &othercase) != ucp_M) break;
+          if (_pcre_ucp_findprop(nd, &chartype, &script) != ucp_M) break;
           ncount++;
           nptr += ndlen;
           }
@@ -950,21 +1184,97 @@ 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 + 5, 0); }
+        { ADD_ACTIVE(state_offset + 6, 0); }
       count = current_state->count;  /* Number already matched */
       if (clen > 0)
         {
-        int category = _pcre_ucp_findchar(c, &chartype, &othercase);
-        int rqdtype = code[4];
-        if ((d == OP_PROP) ==
-            (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype)))
+        BOOL OK;
+        int category = _pcre_ucp_findprop(c, &chartype, &script);
+        switch(code[4])
+          {
+          case PT_ANY:
+          OK = TRUE;
+          break;
+
+          case PT_LAMP:
+          OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+          break;
+
+          case PT_GC:
+          OK = category == code[5];
+          break;
+
+          case PT_PC:
+          OK = chartype == code[5];
+          break;
+
+          case PT_SC:
+          OK = script == code[5];
+          break;
+
+          /* Should never occur, but keep compilers from grumbling. */
+
+          default:
+          OK = codevalue != OP_PROP;
+          break;
+          }
+
+        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 + 5, 0); }
+            { ADD_NEW(state_offset + 6, 0); }
           else
             { ADD_NEW(state_offset, count); }
           }
@@ -975,19 +1285,25 @@ 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 */
-      if (clen > 0 && _pcre_ucp_findchar(c, &chartype, &othercase) != ucp_M)
+      if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
         {
         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;
           int ndlen = 1;
           GETCHARLEN(nd, nptr, ndlen);
-          if (_pcre_ucp_findchar(nd, &chartype, &othercase) != ucp_M) break;
+          if (_pcre_ucp_findprop(nd, &chartype, &script) != ucp_M) break;
           ncount++;
           nptr += ndlen;
           }
@@ -998,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
@@ -1018,17 +1372,17 @@ for (;;)
         {
         if (c == d) { ADD_NEW(state_offset + dlen + 1, 0); } else
           {
+          unsigned int othercase;
           if (c < 128) othercase = fcc[c]; else
 
           /* If we have Unicode property support, we can use it to test the
-          other case of the character, if there is one. The result of
-          _pcre_ucp_findchar() is < 0 if the char isn't found, and othercase is
-          returned as zero if there isn't another case. */
+          other case of the character. */
 
 #ifdef SUPPORT_UCP
-          if (_pcre_ucp_findchar(c, &chartype, &othercase) < 0)
+          othercase = _pcre_ucp_othercase(c);
+#else
+          othercase = NOTACHAR;
 #endif
-            othercase = -1;
 
           if (d == othercase) { ADD_NEW(state_offset + dlen + 1, 0); }
           }
@@ -1050,7 +1404,7 @@ for (;;)
       to wait for them to pass before continuing. */
 
       case OP_EXTUNI:
-      if (clen > 0 && _pcre_ucp_findchar(c, &chartype, &othercase) != ucp_M)
+      if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
         {
         const uschar *nptr = ptr + clen;
         int ncount = 0;
@@ -1058,7 +1412,7 @@ for (;;)
           {
           int nclen = 1;
           GETCHARLEN(c, nptr, nclen);
-          if (_pcre_ucp_findchar(c, &chartype, &othercase) != ucp_M) break;
+          if (_pcre_ucp_findprop(c, &chartype, &script) != ucp_M) break;
           ncount++;
           nptr += nclen;
           }
@@ -1068,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. */
@@ -1075,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;
@@ -1083,20 +1466,22 @@ 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
-          if (utf8 && c >= 128)
+          if (utf8 && d >= 128)
             {
 #ifdef SUPPORT_UCP
-            if (_pcre_ucp_findchar(d, &chartype, &otherd) < 0) otherd = -1;
+            otherd = _pcre_ucp_othercase(d);
 #endif  /* SUPPORT_UCP */
             }
           else
@@ -1104,26 +1489,37 @@ 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 && c >= 128)
+          if (utf8 && d >= 128)
             {
 #ifdef SUPPORT_UCP
-            if (_pcre_ucp_findchar(c, &chartype, &otherd) < 0) otherd = -1;
+            otherd = _pcre_ucp_othercase(d);
 #endif  /* SUPPORT_UCP */
             }
           else
@@ -1131,26 +1527,35 @@ 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 && c >= 128)
+          if (utf8 && d >= 128)
             {
 #ifdef SUPPORT_UCP
-            if (_pcre_ucp_findchar(c, &chartype, &otherd) < 0) otherd = -1;
+            otherd = _pcre_ucp_othercase(d);
 #endif  /* SUPPORT_UCP */
             }
           else
@@ -1158,30 +1563,66 @@ 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
-          if (utf8 && c >= 128)
+          if (utf8 && d >= 128)
             {
 #ifdef SUPPORT_UCP
-            if (_pcre_ucp_findchar(d, &chartype, &otherd) < 0) otherd = -1;
+            otherd = _pcre_ucp_othercase(d);
 #endif  /* SUPPORT_UCP */
             }
           else
@@ -1190,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
@@ -1267,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); }
@@ -1317,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) return PCRE_ERROR_DFA_UCOND;
 
-        if (condcode == OP_CREF)
+        /* 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); }
           }
@@ -1519,7 +1979,7 @@ for (;;)
         cb.version          = 1;   /* Version 1 of the callout block */
         cb.callout_number   = code[1];
         cb.offset_vector    = offsets;
-        cb.subject          = (char *)start_subject;
+        cb.subject          = (PCRE_SPTR)start_subject;
         cb.subject_length   = end_subject - start_subject;
         cb.start_match      = current_subject - start_subject;
         cb.current_position = ptr - start_subject;
@@ -1567,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. */
@@ -1575,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;
 }
 
 
@@ -1611,13 +2073,14 @@ Returns:          > 0 => number of match
                  < -1 => some kind of unexpected problem
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 pcre_dfa_exec(const pcre *argument_re, const pcre_extra *extra_data,
   const char *subject, int length, int start_offset, int options, int *offsets,
   int offsetcount, int *workspace, int wscount)
 {
 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;
 
@@ -1632,6 +2095,7 @@ BOOL req_byte_caseless = FALSE;
 int first_byte = -1;
 int req_byte = -1;
 int req_byte2 = -1;
+int newline;
 
 /* Plausibility checks */
 
@@ -1646,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)
   {
@@ -1655,10 +2119,12 @@ 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) return PCRE_ERROR_DFA_UMLIMIT;
+  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,
@@ -1679,17 +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;
-anchored = (options & PCRE_ANCHORED) != 0 || (re->options & PCRE_ANCHORED) != 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. */
@@ -1715,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;
 
@@ -1753,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
@@ -1771,14 +2278,14 @@ for (;;)
 
     /* 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.
-    */
+    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)
       {
       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;
       }
 
@@ -1793,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++;
         }
       }
@@ -1880,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. */
@@ -1900,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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_exec.c tin-2.0.0/pcre/pcre_exec.c
--- tin-1.8.3/pcre/pcre_exec.c	2005-09-12 16:38:16.000000000 +0200
+++ tin-2.0.0/pcre/pcre_exec.c	2011-04-17 16:04:37.556154040 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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;
-  const uschar *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);
@@ -128,10 +125,10 @@ Returns:      TRUE if matched
 */
 
 static BOOL
-match_ref(int offset, register const uschar *eptr, int length, match_data *md,
+match_ref(int offset, register USPTR eptr, int length, match_data *md,
   unsigned long int ims)
 {
-const uschar *p = md->start_subject + md->offset_vector[offset];
+USPTR p = md->start_subject + md->offset_vector[offset];
 
 #ifdef DEBUG
 if (eptr >= md->end_subject)
@@ -169,32 +166,50 @@ return TRUE;
 ****************************************************************************
                    RECURSION IN THE match() FUNCTION
 
-The match() function is highly recursive. Some regular expressions can cause
-it to recurse thousands of times. I was writing for Unix, so I just let it
-call itself recursively. This uses the stack for saving everything that has
-to be saved for a recursive call. On Unix, the stack can be large, and this
-works fine.
-
-It turns out that on non-Unix systems there are problems with programs that
-use a lot of stack. (This despite the fact that every last chip has oodles
-of memory these days, and techniques for extending the stack have been known
-for decades.) So....
+The match() function is highly recursive, though not every recursive call
+increases the recursive depth. Nevertheless, some regular expressions can cause
+it to recurse to a great depth. I was writing for Unix, so I just let it call
+itself recursively. This uses the stack for saving everything that has to be
+saved for a recursive call. On Unix, the stack can be large, and this works
+fine.
+
+It turns out that on some non-Unix-like systems there are problems with
+programs that use a lot of stack. (This despite the fact that every last chip
+has oodles of memory these days, and techniques for extending the stack have
+been known for decades.) So....
 
 There is a fudge, triggered by defining NO_RECURSE, which avoids recursive
 calls by keeping local variables that need to be preserved in blocks of memory
-obtained from malloc instead instead of on the stack. Macros are used to
+obtained from malloc() instead instead of on the stack. Macros are used to
 achieve this so that the actual code doesn't look very different to what it
 always used to.
 ****************************************************************************
 ***************************************************************************/
 
 
-/* These versions of the macros use the stack, as normal */
+/* These versions of the macros use the stack, as normal. There are debugging
+versions and production versions. */
 
 #ifndef NO_RECURSE
 #define REGISTER register
-#define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) rx = match(ra,rb,rc,rd,re,rf,rg)
+#ifdef DEBUG
+#define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) \
+  { \
+  printf("match() called in line %d\n", __LINE__); \
+  rx = match(ra,rb,rc,rd,re,rf,rg,rdepth+1); \
+  printf("to line %d\n", __LINE__); \
+  }
+#define RRETURN(ra) \
+  { \
+  printf("match() returned %d from line %d ", ra, __LINE__); \
+  return ra; \
+  }
+#else
+#define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) \
+  rx = match(ra,rb,rc,rd,re,rf,rg,rdepth+1)
 #define RRETURN(ra) return ra
+#endif
+
 #else
 
 
@@ -215,6 +230,7 @@ match(), which never changes. */
     newframe->Xims = re;\
     newframe->Xeptrb = rf;\
     newframe->Xflags = rg;\
+    newframe->Xrdepth = frame->Xrdepth + 1;\
     newframe->Xprevframe = frame;\
     frame = newframe;\
     DPRINTF(("restarting from line %d\n", __LINE__));\
@@ -256,6 +272,7 @@ typedef struct heapframe {
   long int Xims;
   eptrblock *Xeptrb;
   int Xflags;
+  unsigned int Xrdepth;
 
   /* Function local variables */
 
@@ -271,23 +288,21 @@ typedef struct heapframe {
 
   BOOL Xcur_is_word;
   BOOL Xcondition;
-  BOOL Xminimize;
   BOOL Xprev_is_word;
 
   unsigned long int Xoriginal_ims;
 
 #ifdef SUPPORT_UCP
   int Xprop_type;
+  int Xprop_value;
   int Xprop_fail_result;
   int Xprop_category;
   int Xprop_chartype;
-  int Xprop_othercase;
-  int Xprop_test_against;
-  int *Xprop_test_variable;
+  int Xprop_script;
 #endif
 
   int Xctype;
-  int Xfc;
+  unsigned int Xfc;
   int Xfi;
   int Xlength;
   int Xmax;
@@ -320,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.
 
@@ -333,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
@@ -342,27 +354,32 @@ 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
                MATCH_NOMATCH if failed to match  )
                a negative PCRE_ERROR_xxx value if aborted by an error condition
-                 (e.g. stopped by recursion limit)
+                 (e.g. stopped by repeated call or recursion limit)
 */
 
 static int
-match(REGISTER const uschar *eptr, REGISTER const uschar *ecode,
+match(REGISTER USPTR eptr, REGISTER const uschar *ecode,
   int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb,
-  int flags)
+  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
@@ -381,6 +398,7 @@ frame->Xoffset_top = offset_top;
 frame->Xims = ims;
 frame->Xeptrb = eptrb;
 frame->Xflags = flags;
+frame->Xrdepth = rdepth;
 
 /* This is where control jumps back to to effect "recursion" */
 
@@ -394,6 +412,7 @@ HEAP_RECURSE:
 #define ims                frame->Xims
 #define eptrb              frame->Xeptrb
 #define flags              frame->Xflags
+#define rdepth             frame->Xrdepth
 
 /* Ditto for the local variables */
 
@@ -411,19 +430,17 @@ 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
 
 #ifdef SUPPORT_UCP
 #define prop_type          frame->Xprop_type
+#define prop_value         frame->Xprop_value
 #define prop_fail_result   frame->Xprop_fail_result
 #define prop_category      frame->Xprop_category
 #define prop_chartype      frame->Xprop_chartype
-#define prop_othercase     frame->Xprop_othercase
-#define prop_test_against  frame->Xprop_test_against
-#define prop_test_variable frame->Xprop_test_variable
+#define prop_script        frame->Xprop_script
 #endif
 
 #define ctype              frame->Xctype
@@ -447,38 +464,36 @@ 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
 
 
-#ifdef SUPPORT_UTF8                /* Many of these variables are used ony */
-const uschar *charptr;             /* small blocks of the code. My normal  */
-#endif                             /* style of coding would have declared  */
-const uschar *callpat;             /* them within each of those blocks.    */
-const uschar *data;                /* However, in order to accommodate the */
-const uschar *next;                /* version of this code that uses an    */
-const uschar *pp;                  /* external "stack" implemented on the  */
-const uschar *prev;                /* heap, it is easier to declare them   */
-const uschar *saved_eptr;          /* all here, so the declarations can    */
-                                   /* be cut out in a block. The only      */
-recursion_info new_recursive;      /* declarations within blocks below are */
-                                   /* for variables that do not have to    */
-BOOL cur_is_word;                  /* be preserved over a recursive call   */
-BOOL condition;                    /* to RMATCH().                         */
-BOOL minimize;
+#ifdef SUPPORT_UTF8                /* Many of these variables are used only  */
+const uschar *charptr;             /* in small blocks of the code. My normal */
+#endif                             /* style of coding would have declared    */
+const uschar *callpat;             /* them within each of those blocks.      */
+const uschar *data;                /* However, in order to accommodate the   */
+const uschar *next;                /* version of this code that uses an      */
+USPTR         pp;                  /* external "stack" implemented on the    */
+const uschar *prev;                /* heap, it is easier to declare them all */
+USPTR         saved_eptr;          /* here, so the declarations can be cut   */
+                                   /* out in a block. The only declarations  */
+recursion_info new_recursive;      /* within blocks below are for variables  */
+                                   /* that do not have to be preserved over  */
+BOOL cur_is_word;                  /* a recursive call to RMATCH().          */
+BOOL condition;
 BOOL prev_is_word;
 
 unsigned long int original_ims;
 
 #ifdef SUPPORT_UCP
 int prop_type;
+int prop_value;
 int prop_fail_result;
 int prop_category;
 int prop_chartype;
-int prop_othercase;
-int prop_test_against;
-int *prop_test_variable;
+int prop_script;
 #endif
 
 int ctype;
@@ -493,47 +508,74 @@ 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. */
 
 #ifdef SUPPORT_UCP
+prop_value = 0;
 prop_fail_result = 0;
-prop_test_against = 0;
-prop_test_variable = NULL;
 #endif
 
-/* OK, now we can get on with the real code of the function. Recursion is
-specified by the macros RMATCH and RRETURN. When NO_RECURSE is *not* defined,
-these just turn into a recursive call to match() and a "return", respectively.
-However, RMATCH isn't like a function call because it's quite a complicated
-macro. It has to be used in one particular way. This shouldn't, however, impact
-performance when true recursion is being used. */
+
+/* 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()
+and a "return", respectively (possibly with some debugging if DEBUG is
+defined). However, RMATCH isn't like a function call because it's quite a
+complicated macro. It has to be used in one particular way. This shouldn't,
+however, impact performance when true recursion is being used. */
+
+/* First check that we haven't called match() too many times, or that we
+haven't exceeded the recursive call limit. */
 
 if (md->match_call_count++ >= md->match_limit) RRETURN(PCRE_ERROR_MATCHLIMIT);
+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. */
@@ -543,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
@@ -584,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);
@@ -603,85 +643,119 @@ 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)
       {
       recursion_info *rec = md->recursive;
-      DPRINTF(("Hit the end in a (?0) recursion\n"));
+      DPRINTF(("End of pattern in a (?0) recursion\n"));
       md->recursive = rec->prevrec;
       memmove(md->offset_vector, rec->offset_save,
         rec->saved_max * sizeof(int));
@@ -717,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);
@@ -744,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);
@@ -766,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);
@@ -780,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);
       }
 
@@ -800,7 +872,7 @@ for (;;)
       cb.version          = 1;   /* Version 1 of the callout block */
       cb.callout_number   = ecode[1];
       cb.offset_vector    = md->offset_vector;
-      cb.subject          = (const char *)md->start_subject;
+      cb.subject          = (PCRE_SPTR)md->start_subject;
       cb.subject_length   = md->end_subject - md->start_subject;
       cb.start_match      = md->start_match - md->start_subject;
       cb.current_position = eptr - md->start_subject;
@@ -837,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" */
 
@@ -876,18 +943,24 @@ 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"));
           md->recursive = new_recursive.prevrec;
           if (new_recursive.offset_save != stacksave)
             (pcre_free)(new_recursive.offset_save);
           RRETURN(MATCH_MATCH);
           }
-        else if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+        else if (rrc != MATCH_NOMATCH)
+          {
+          DPRINTF(("Recursion gave error %d\n", rrc));
+          RRETURN(rrc);
+          }
 
         md->recursive = &new_recursive;
         memcpy(md->offset_vector, new_recursive.offset_save,
@@ -912,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. */
@@ -994,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;
+        }
+
+      /* 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;
         }
+      }
 
-      /* Reset the value of the ims flags, in case they got changed during
-      the group. */
+    /* For both capturing and non-capturing groups, 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));
+    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. */
+    /* 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. */
+    /* 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. */
 
-      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);
-        }
-      }
+    flags = (*prev >= OP_SBRA)? match_cbegroup : 0;
 
-    RRETURN(MATCH_NOMATCH);
+    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 */
 
@@ -1135,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;
@@ -1163,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++;
@@ -1174,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) */
 
@@ -1193,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;
 
@@ -1247,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;
 
@@ -1343,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. */
@@ -1352,23 +1445,42 @@ for (;;)
     if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
     GETCHARINCTEST(c, eptr);
       {
-      int chartype, rqdtype;
-      int othercase;
-      int category = _pcre_ucp_findchar(c, &chartype, &othercase);
-
-      rqdtype = *(++ecode);
-      ecode++;
+      int chartype, script;
+      int category = _pcre_ucp_findprop(c, &chartype, &script);
 
-      if (rqdtype >= 128)
+      switch(ecode[1])
         {
-        if ((rqdtype - 128 != category) == (op == OP_PROP))
+        case PT_ANY:
+        if (op == OP_NOTPROP) RRETURN(MATCH_NOMATCH);
+        break;
+
+        case PT_LAMP:
+        if ((chartype == ucp_Lu ||
+             chartype == ucp_Ll ||
+             chartype == ucp_Lt) == (op == OP_NOTPROP))
           RRETURN(MATCH_NOMATCH);
-        }
-      else
-        {
-        if ((rqdtype != chartype) == (op == OP_PROP))
+         break;
+
+        case PT_GC:
+        if ((ecode[2] != category) == (op == OP_PROP))
+          RRETURN(MATCH_NOMATCH);
+        break;
+
+        case PT_PC:
+        if ((ecode[2] != chartype) == (op == OP_PROP))
           RRETURN(MATCH_NOMATCH);
+        break;
+
+        case PT_SC:
+        if ((ecode[2] != script) == (op == OP_PROP))
+          RRETURN(MATCH_NOMATCH);
+        break;
+
+        default:
+        RRETURN(PCRE_ERROR_INTERNAL);
         }
+
+      ecode += 3;
       }
     break;
 
@@ -1379,9 +1491,8 @@ for (;;)
     if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
     GETCHARINCTEST(c, eptr);
       {
-      int chartype;
-      int othercase;
-      int category = _pcre_ucp_findchar(c, &chartype, &othercase);
+      int chartype, script;
+      int category = _pcre_ucp_findprop(c, &chartype, &script);
       if (category == ucp_M) RRETURN(MATCH_NOMATCH);
       while (eptr < md->end_subject)
         {
@@ -1390,7 +1501,7 @@ for (;;)
           {
           GETCHARLEN(c, eptr, len);
           }
-        category = _pcre_ucp_findchar(c, &chartype, &othercase);
+        category = _pcre_ucp_findprop(c, &chartype, &script);
         if (category != ucp_M) break;
         eptr += len;
         }
@@ -1683,8 +1794,8 @@ for (;;)
           while (eptr >= pp)
             {
             RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
-            eptr--;
             if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+            eptr--;
             }
           }
 
@@ -1836,21 +1947,17 @@ for (;;)
 
       else
         {
-        int dc;
+        unsigned int dc;
         GETCHARINC(dc, eptr);
         ecode += length;
 
         /* If we have Unicode property support, we can use it to test the other
-        case of the character, if there is one. The result of _pcre_ucp_findchar() is
-        < 0 if the char isn't found, and othercase is returned as zero if there
-        isn't one. */
+        case of the character, if there is one. */
 
         if (fc != dc)
           {
 #ifdef SUPPORT_UCP
-          int chartype;
-          int othercase;
-          if (_pcre_ucp_findchar(fc, &chartype, &othercase) < 0 || dc != othercase)
+          if (dc != _pcre_ucp_othercase(fc))
 #endif
             RRETURN(MATCH_NOMATCH);
           }
@@ -1867,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;
@@ -1882,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:
@@ -1917,11 +2049,9 @@ for (;;)
         uschar occhars[8];
 
 #ifdef SUPPORT_UCP
-        int othercase;
-        int chartype;
+        unsigned int othercase;
         if ((ims & PCRE_CASELESS) != 0 &&
-             _pcre_ucp_findchar(fc, &chartype, &othercase) >= 0 &&
-             othercase > 0)
+            (othercase = _pcre_ucp_othercase(fc)) != NOTACHAR)
           oclength = _pcre_ord2utf8(othercase, occhars);
 #endif  /* SUPPORT_UCP */
 
@@ -1957,7 +2087,8 @@ for (;;)
             }
           /* Control never gets here */
           }
-        else
+
+        else  /* Maximize */
           {
           pp = eptr;
           for (i = min; i < max; i++)
@@ -1971,6 +2102,8 @@ for (;;)
               eptr += oclength;
               }
             }
+
+          if (possessive) continue;
           while (eptr >= pp)
            {
            RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
@@ -2025,7 +2158,7 @@ for (;;)
           }
         /* Control never gets here */
         }
-      else
+      else  /* Maximize */
         {
         pp = eptr;
         for (i = min; i < max; i++)
@@ -2033,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);
@@ -2061,7 +2195,7 @@ for (;;)
           }
         /* Control never gets here */
         }
-      else
+      else  /* Maximize */
         {
         pp = eptr;
         for (i = min; i < max; i++)
@@ -2069,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);
@@ -2121,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:
@@ -2160,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);
@@ -2185,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);
@@ -2221,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;
@@ -2231,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);
@@ -2248,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);
@@ -2269,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);
@@ -2292,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);
@@ -2327,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;
@@ -2336,6 +2501,7 @@ for (;;)
             if (fc == d) break;
             eptr += len;
             }
+          if (possessive) continue;
           for(;;)
             {
             RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
@@ -2353,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);
@@ -2384,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:
@@ -2408,16 +2603,7 @@ for (;;)
       {
       prop_fail_result = ctype == OP_NOTPROP;
       prop_type = *ecode++;
-      if (prop_type >= 128)
-        {
-        prop_test_against = prop_type - 128;
-        prop_test_variable = &prop_category;
-        }
-      else
-        {
-        prop_test_against = prop_type;
-        prop_test_variable = &prop_chartype;
-        }
+      prop_value = *ecode++;
       }
     else prop_type = -1;
 #endif
@@ -2434,14 +2620,67 @@ for (;;)
     if (min > 0)
       {
 #ifdef SUPPORT_UCP
-      if (prop_type > 0)
+      if (prop_type >= 0)
         {
-        for (i = 1; i <= min; i++)
+        switch(prop_type)
           {
-          GETCHARINC(c, eptr);
-          prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
-          if ((*prop_test_variable == prop_test_against) == prop_fail_result)
-            RRETURN(MATCH_NOMATCH);
+          case PT_ANY:
+          if (prop_fail_result) RRETURN(MATCH_NOMATCH);
+          for (i = 1; i <= min; i++)
+            {
+            if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+            GETCHARINC(c, eptr);
+            }
+          break;
+
+          case PT_LAMP:
+          for (i = 1; i <= min; i++)
+            {
+            if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_chartype == ucp_Lu ||
+                 prop_chartype == ucp_Ll ||
+                 prop_chartype == ucp_Lt) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          break;
+
+          case PT_GC:
+          for (i = 1; i <= min; i++)
+            {
+            if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_category == prop_value) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          break;
+
+          case PT_PC:
+          for (i = 1; i <= min; i++)
+            {
+            if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_chartype == prop_value) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          break;
+
+          case PT_SC:
+          for (i = 1; i <= min; i++)
+            {
+            if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_script == prop_value) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          break;
+
+          default:
+          RRETURN(PCRE_ERROR_INTERNAL);
           }
         }
 
@@ -2453,7 +2692,7 @@ for (;;)
         for (i = 1; i <= min; i++)
           {
           GETCHARINCTEST(c, eptr);
-          prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+          prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
           if (prop_category == ucp_M) RRETURN(MATCH_NOMATCH);
           while (eptr < md->end_subject)
             {
@@ -2462,7 +2701,7 @@ for (;;)
               {
               GETCHARLEN(c, eptr, len);
               }
-            prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
             if (prop_category != ucp_M) break;
             eptr += len;
             }
@@ -2481,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;
@@ -2491,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++)
           {
@@ -2559,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)
         {
@@ -2567,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;
@@ -2576,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);
@@ -2624,17 +2912,77 @@ for (;;)
     if (minimize)
       {
 #ifdef SUPPORT_UCP
-      if (prop_type > 0)
+      if (prop_type >= 0)
         {
-        for (fi = min;; fi++)
+        switch(prop_type)
           {
-          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);
-          GETCHARINC(c, eptr);
-          prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
-          if ((*prop_test_variable == prop_test_against) == prop_fail_result)
-            RRETURN(MATCH_NOMATCH);
+          case PT_ANY:
+          for (fi = min;; fi++)
+            {
+            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);
+            GETCHARINC(c, eptr);
+            if (prop_fail_result) RRETURN(MATCH_NOMATCH);
+            }
+          /* Control never gets here */
+
+          case PT_LAMP:
+          for (fi = min;; fi++)
+            {
+            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);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_chartype == ucp_Lu ||
+                 prop_chartype == ucp_Ll ||
+                 prop_chartype == ucp_Lt) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          /* Control never gets here */
+
+          case PT_GC:
+          for (fi = min;; fi++)
+            {
+            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);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_category == prop_value) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          /* Control never gets here */
+
+          case PT_PC:
+          for (fi = min;; fi++)
+            {
+            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);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_chartype == prop_value) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          /* Control never gets here */
+
+          case PT_SC:
+          for (fi = min;; fi++)
+            {
+            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);
+            GETCHARINC(c, eptr);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_script == prop_value) == prop_fail_result)
+              RRETURN(MATCH_NOMATCH);
+            }
+          /* Control never gets here */
+
+          default:
+          RRETURN(PCRE_ERROR_INTERNAL);
           }
         }
 
@@ -2649,7 +2997,7 @@ for (;;)
           if (rrc != MATCH_NOMATCH) RRETURN(rrc);
           if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
           GETCHARINCTEST(c, eptr);
-          prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+          prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
           if (prop_category == ucp_M) RRETURN(MATCH_NOMATCH);
           while (eptr < md->end_subject)
             {
@@ -2658,7 +3006,7 @@ for (;;)
               {
               GETCHARLEN(c, eptr, len);
               }
-            prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
             if (prop_category != ucp_M) break;
             eptr += len;
             }
@@ -2676,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);
@@ -2731,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;
@@ -2774,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. */
 
@@ -2783,21 +3167,79 @@ for (;;)
       pp = eptr;  /* Remember where we started */
 
 #ifdef SUPPORT_UCP
-      if (prop_type > 0)
+      if (prop_type >= 0)
         {
-        for (i = min; i < max; i++)
+        switch(prop_type)
           {
-          int len = 1;
-          if (eptr >= md->end_subject) break;
-          GETCHARLEN(c, eptr, len);
-          prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
-          if ((*prop_test_variable == prop_test_against) == prop_fail_result)
-            break;
-          eptr+= len;
+          case PT_ANY:
+          for (i = min; i < max; i++)
+            {
+            int len = 1;
+            if (eptr >= md->end_subject) break;
+            GETCHARLEN(c, eptr, len);
+            if (prop_fail_result) break;
+            eptr+= len;
+            }
+          break;
+
+          case PT_LAMP:
+          for (i = min; i < max; i++)
+            {
+            int len = 1;
+            if (eptr >= md->end_subject) break;
+            GETCHARLEN(c, eptr, len);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_chartype == ucp_Lu ||
+                 prop_chartype == ucp_Ll ||
+                 prop_chartype == ucp_Lt) == prop_fail_result)
+              break;
+            eptr+= len;
+            }
+          break;
+
+          case PT_GC:
+          for (i = min; i < max; i++)
+            {
+            int len = 1;
+            if (eptr >= md->end_subject) break;
+            GETCHARLEN(c, eptr, len);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_category == prop_value) == prop_fail_result)
+              break;
+            eptr+= len;
+            }
+          break;
+
+          case PT_PC:
+          for (i = min; i < max; i++)
+            {
+            int len = 1;
+            if (eptr >= md->end_subject) break;
+            GETCHARLEN(c, eptr, len);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_chartype == prop_value) == prop_fail_result)
+              break;
+            eptr+= len;
+            }
+          break;
+
+          case PT_SC:
+          for (i = min; i < max; i++)
+            {
+            int len = 1;
+            if (eptr >= md->end_subject) break;
+            GETCHARLEN(c, eptr, len);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+            if ((prop_script == prop_value) == prop_fail_result)
+              break;
+            eptr+= len;
+            }
+          break;
           }
 
         /* eptr is now past the end of the maximum run */
 
+        if (possessive) continue;
         for(;;)
           {
           RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
@@ -2816,7 +3258,7 @@ for (;;)
           {
           if (eptr >= md->end_subject) break;
           GETCHARINCTEST(c, eptr);
-          prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+          prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
           if (prop_category == ucp_M) break;
           while (eptr < md->end_subject)
             {
@@ -2825,7 +3267,7 @@ for (;;)
               {
               GETCHARLEN(c, eptr, len);
               }
-            prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
             if (prop_category != ucp_M) break;
             eptr += len;
             }
@@ -2833,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);
@@ -2846,7 +3289,7 @@ for (;;)
               {
               GETCHARLEN(c, eptr, len);
               }
-            prop_category = _pcre_ucp_findchar(c, &prop_chartype, &prop_othercase);
+            prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
             if (prop_category != ucp_M) break;
             eptr--;
             }
@@ -2865,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)
             {
@@ -2875,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++;
                 }
@@ -2884,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++;
                 }
@@ -2898,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;
@@ -2906,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;
               }
             }
@@ -2916,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++)
             {
@@ -2992,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);
@@ -3012,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;
@@ -3021,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++)
             {
@@ -3085,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);
@@ -3099,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
@@ -3144,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
@@ -3200,28 +3686,32 @@ Returns:          > 0 => success; value 
                  < -1 => some kind of unexpected problem
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 pcre_exec(const pcre *argument_re, const pcre_extra *extra_data,
-  const char *subject, int length, int start_offset, int options, int *offsets,
+  PCRE_SPTR subject, int length, int start_offset, int options, int *offsets,
   int offsetcount)
 {
 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;
-const uschar *start_match = (const uschar *)subject + start_offset;
-const uschar *end_subject;
-const uschar *req_byte_ptr = start_match - 1;
+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;
@@ -3241,8 +3731,9 @@ if (offsetcount < 0) return PCRE_ERROR_B
 the default values. */
 
 study = NULL;
-match_block.match_limit = MATCH_LIMIT;
-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. */
 
@@ -3254,9 +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)
+    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;
   }
 
@@ -3286,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 = (const uschar *)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;
+
+/* 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;
+  }
 
-match_block.lcc = tables + lcc_offset;
-match_block.ctypes = tables + ctypes_offset;
+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;
@@ -3350,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
@@ -3373,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;
   }
@@ -3392,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 &&
@@ -3410,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(;;)
   {
-  const uschar *save_end_subject = end_subject;
+  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)
     {
-    const uschar *t = start_match;
-    while (t < save_end_subject && *t != '\n') t++;
+    USPTR t = start_match;
+    while (t < md->end_subject && !IS_NEWLINE(t)) t++;
     end_subject = t;
     }
 
@@ -3445,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++;
       }
     }
@@ -3480,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
 
@@ -3494,17 +4026,17 @@ 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 const uschar *p = start_match + ((first_byte >= 0)? 1 : 0);
+    register USPTR p = start_match + ((first_byte >= 0)? 1 : 0);
 
     /* We don't need to repeat the search if we haven't yet reached the
     place we found it at last time. */
@@ -3527,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
@@ -3539,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);
-
-  /* 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;
 
-  /* We have a match! Copy the offset information from temporary store if
-  necessary */
+  /* 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;
+
+(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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_fullinfo.c tin-2.0.0/pcre/pcre_fullinfo.c
--- tin-1.8.3/pcre/pcre_fullinfo.c	2005-09-12 16:38:55.000000000 +0200
+++ tin-2.0.0/pcre/pcre_fullinfo.c	2011-04-17 16:04:37.656169259 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -61,7 +61,7 @@ Arguments:
 Returns:           0 if data returned, negative on error
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 pcre_fullinfo(const pcre *argument_re, const pcre_extra *extra_data, int what,
   void *where)
 {
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_get.c tin-2.0.0/pcre/pcre_get.c
--- tin-1.8.3/pcre/pcre_get.c	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/pcre_get.c	2011-04-17 16:04:37.692174739 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_globals.c tin-2.0.0/pcre/pcre_globals.c
--- tin-1.8.3/pcre/pcre_globals.c	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/pcre_globals.c	2011-04-17 16:04:37.716178393 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_info.c tin-2.0.0/pcre/pcre_info.c
--- tin-1.8.3/pcre/pcre_info.c	2005-09-12 16:39:03.000000000 +0200
+++ tin-2.0.0/pcre/pcre_info.c	2011-04-17 16:04:37.748183264 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -68,7 +68,7 @@ Returns:        number of capturing subp
                 or negative values on error
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 pcre_info(const pcre *argument_re, int *optptr, int *first_byte)
 {
 real_pcre internal_re;
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_internal.h tin-2.0.0/pcre/pcre_internal.h
--- tin-1.8.3/pcre/pcre_internal.h	2005-09-12 16:39:11.000000000 +0200
+++ tin-2.0.0/pcre/pcre_internal.h	2011-04-17 16:04:37.804191787 +0200
@@ -7,7 +7,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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,66 @@ 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
+class. It must always be possible to inspect all of the subject string in
+pcre_exec() because of the way it backtracks. Two macros are required in the
+normal case, for sign-unspecified and unsigned char pointers. The former is
+used for the external interface and appears in pcre.h, which is why its name
+must begin with PCRE_. */
+
+#ifdef CUSTOM_SUBJECT_PTR
+#define PCRE_SPTR CUSTOM_SUBJECT_PTR
+#define USPTR CUSTOM_SUBJECT_PTR
+#else
+#define PCRE_SPTR const char *
+#define USPTR const unsigned char *
+#endif
+
 /* Include the public PCRE header and the definitions of UCP character property
 values. */
 
@@ -143,13 +207,14 @@ 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)
 {
-int i;
+size_t i;
 dest += n;
 src += n;
 for (i = 0; i < n; ++i) *(--dest) =  *(--src);
+return dest;
 }
 #define memmove(a, b, c) pcre_memmove(a, b, c)
 #endif   /* not HAVE_BCOPY */
@@ -252,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 */ \
@@ -270,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 */ \
@@ -288,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; \
@@ -304,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; \
@@ -321,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 */ \
@@ -355,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(). */
 
@@ -373,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 */
 
@@ -416,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
@@ -429,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
@@ -443,20 +510,13 @@ ESC_n is defined as yet another macro, w
 #define ESC_tee '\t'
 #endif
 
-/* These are escaped items that aren't just an encoding of a particular data
-value such as \n. They must have non-zero values, as check_escape() returns
-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
-character, that code will have to change. */
+/* Codes for different types of Unicode property */
 
-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 };
+#define PT_ANY        0    /* Any property - matches all chars */
+#define PT_LAMP       1    /* L& - the union of Lu, Ll, Lt */
+#define PT_GC         2    /* General characteristic (e.g. L) */
+#define PT_PC         3    /* Particular characteristic (e.g. Lu) */
+#define PT_SC         4    /* Script (e.g. Han) */
 
 /* Flag bits and data types for the extended class (OP_XCLASS) for classes that
 contain UTF-8 characters with values greater than 255. */
@@ -467,15 +527,36 @@ contain UTF-8 characters with values gre
 #define XCL_END       0    /* Marks end of individual items */
 #define XCL_SINGLE    1    /* Single item (one multibyte char) follows */
 #define XCL_RANGE     2    /* A range (two multibyte chars) follows */
-#define XCL_PROP      3    /* Unicode property (one property code) follows */
+#define XCL_PROP      3    /* Unicode property (2-byte property code follows) */
 #define XCL_NOTPROP   4    /* Unicode inverted property (ditto) */
 
+/* These are escaped items that aren't just an encoding of a particular data
+value such as \n. They must have non-zero values, as check_escape() returns
+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 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_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 */
@@ -496,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
@@ -608,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
@@ -634,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                           */ \
-  2, 2, 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           */ \
@@ -642,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                    */ \
@@ -666,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. */
@@ -685,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
@@ -740,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
@@ -766,30 +880,44 @@ typedef struct recursion_info {
   struct recursion_info *prevrec; /* Previous recursion record (or NULL) */
   int group_num;                /* Number of group that was called */
   const uschar *after_call;     /* "Return value": points after the call in the expr */
-  const uschar *save_start;     /* Old value of md->start_match */
+  USPTR save_start;             /* Old value of md->start_match */
   int *offset_save;             /* Pointer to start of saved offsets */
   int saved_max;                /* Number of saved offsets */
 } 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. */
 
 typedef struct match_data {
-  unsigned long int match_call_count; /* As it says */
-  unsigned long int match_limit;/* As it says */
+  unsigned long int match_call_count;      /* As it says */
+  unsigned long int match_limit;           /* As it says */
+  unsigned long int match_limit_recursion; /* As it says */
   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 */
@@ -801,13 +929,15 @@ typedef struct match_data {
   BOOL   partial;               /* PARTIAL flag */
   BOOL   hitend;                /* Hit the end of the subject at some point */
   const uschar *start_code;     /* For use when recursing */
-  const uschar *start_subject;  /* Start of the subject string */
-  const uschar *end_subject;    /* End of the subject string */
-  const uschar *start_match;    /* Start of this match attempt */
-  const uschar *end_match_ptr;  /* Subject position at end match */
+  USPTR  start_subject;         /* Start of the subject string */
+  USPTR  end_subject;           /* End of the subject string */
+  USPTR  start_match;           /* Start of this match attempt */
+  USPTR  end_match_ptr;         /* Subject position at end match */
   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 */
@@ -823,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;
 
@@ -859,12 +992,13 @@ total length. */
 #define ctypes_offset (cbits_offset + cbit_length)
 #define tables_length (ctypes_offset + 256)
 
-/* Layout of the UCP type table that translates property names into codes for
-pcre_ucp_findchar(). */
+/* Layout of the UCP type table that translates property names into types and
+codes. */
 
 typedef struct {
   const char *name;
-  int value;
+  pcre_uint16 type;
+  pcre_uint16 value;
 } ucp_type_table;
 
 
@@ -892,12 +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_findchar(const int, int *, 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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_maketables.c tin-2.0.0/pcre/pcre_maketables.c
--- tin-1.8.3/pcre/pcre_maketables.c	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/pcre_maketables.c	2011-04-17 16:04:37.844197875 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -86,29 +86,22 @@ for (i = 0; i < 256; i++) *p++ = tolower
 
 for (i = 0; i < 256; i++) *p++ = islower(i)? toupper(i) : tolower(i);
 
-/* Then the character class tables. Don't try to be clever and save effort
-on exclusive ones - in some locales things may be different. Note that the
-table for "space" includes everything "isspace" gives, including VT in the
-default locale. This makes it work for the POSIX class [:space:]. */
+/* Then the character class tables. Don't try to be clever and save effort on
+exclusive ones - in some locales things may be different. Note that the table
+for "space" includes everything "isspace" gives, including VT in the default
+locale. This makes it work for the POSIX class [:space:]. Note also that it is
+possible for a character to be alnum or alpha without being lower or upper,
+such as "male and female ordinals" (\xAA and \xBA) in the fr_FR locale (at
+least under Debian Linux's locales as of 12/2005). So we must test for alnum
+specially. */
 
 memset(p, 0, cbit_length);
 for (i = 0; i < 256; i++)
   {
-  if (isdigit(i))
-    {
-    p[cbit_digit  + i/8] |= 1 << (i&7);
-    p[cbit_word   + i/8] |= 1 << (i&7);
-    }
-  if (isupper(i))
-    {
-    p[cbit_upper  + i/8] |= 1 << (i&7);
-    p[cbit_word   + i/8] |= 1 << (i&7);
-    }
-  if (islower(i))
-    {
-    p[cbit_lower  + i/8] |= 1 << (i&7);
-    p[cbit_word   + i/8] |= 1 << (i&7);
-    }
+  if (isdigit(i)) p[cbit_digit  + i/8] |= 1 << (i&7);
+  if (isupper(i)) p[cbit_upper  + i/8] |= 1 << (i&7);
+  if (islower(i)) p[cbit_lower  + i/8] |= 1 << (i&7);
+  if (isalnum(i)) p[cbit_word   + i/8] |= 1 << (i&7);
   if (i == '_')   p[cbit_word   + i/8] |= 1 << (i&7);
   if (isspace(i)) p[cbit_space  + i/8] |= 1 << (i&7);
   if (isxdigit(i))p[cbit_xdigit + i/8] |= 1 << (i&7);
@@ -137,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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_newline.c tin-2.0.0/pcre/pcre_newline.c
--- tin-1.8.3/pcre/pcre_newline.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/pcre/pcre_newline.c	2011-04-17 16:04:37.892205181 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_ord2utf8.c tin-2.0.0/pcre/pcre_ord2utf8.c
--- tin-1.8.3/pcre/pcre_ord2utf8.c	2005-09-12 16:39:20.000000000 +0200
+++ tin-2.0.0/pcre/pcre_ord2utf8.c	2011-04-17 16:04:37.924210050 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -59,7 +59,7 @@ Arguments:
 Returns:     number of characters placed in the buffer
 */
 
-PCRE_EXPORT int
+int
 _pcre_ord2utf8(int cvalue, uschar *buffer)
 {
 register int i, j;
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_printint.src tin-2.0.0/pcre/pcre_printint.src
--- tin-1.8.3/pcre/pcre_printint.src	2005-09-12 16:40:01.000000000 +0200
+++ tin-2.0.0/pcre/pcre_printint.src	2011-04-17 16:04:37.952214313 +0200
@@ -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
@@ -101,17 +111,19 @@ else
 *************************************************/
 
 static const char *
-get_ucpname(int property)
+get_ucpname(int ptype, int pvalue)
 {
 #ifdef SUPPORT_UCP
 int i;
 for (i = _pcre_utt_size; i >= 0; i--)
   {
-  if (property == _pcre_utt[i].value) break;
+  if (ptype == _pcre_utt[i].type && pvalue == _pcre_utt[i].value) break;
   }
 return (i >= 0)? _pcre_utt[i].name : "??";
 #else
-return "??";
+/* It gets harder and harder to shut off unwanted compiler warnings. */
+ptype = ptype * pvalue;
+return (ptype == pvalue)? "??" : "??";
 #endif
 }
 
@@ -158,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:
@@ -180,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:
@@ -217,41 +221,53 @@ 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)
       {
       fprintf(f, "%s", OP_names[code[1]]);
       if (code[1] == OP_PROP || code[1] == OP_NOTPROP)
         {
-        fprintf(f, " %s ", get_ucpname(code[2]));
-        extra = 1;
+        fprintf(f, " %s ", get_ucpname(code[2], code[3]));
+        extra = 2;
         }
       }
     else extra = print_char(f, code+1, utf8);
@@ -261,41 +277,50 @@ 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)
       {
-      fprintf(f, " %s ", get_ucpname(code[4]));
-      extra = 1;
+      fprintf(f, " %s ", get_ucpname(code[4], code[5]));
+      extra = 2;
       }
     fprintf(f, "{");
     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;
@@ -303,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:
@@ -326,7 +354,7 @@ for(;;)
 
     case OP_PROP:
     case OP_NOTPROP:
-    fprintf(f, "    %s %s", OP_names[*code], get_ucpname(code[1]));
+    fprintf(f, "    %s %s", OP_names[*code], get_ucpname(code[1], code[2]));
     break;
 
     /* OP_XCLASS can only occur in UTF-8 mode. However, there's no harm in
@@ -367,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;
             }
@@ -389,11 +419,15 @@ for(;;)
           {
           if (ch == XCL_PROP)
             {
-            fprintf(f, "\\p{%s}", get_ucpname(*ccode++));
+            int ptype = *ccode++;
+            int pvalue = *ccode++;
+            fprintf(f, "\\p{%s}", get_ucpname(ptype, pvalue));
             }
           else if (ch == XCL_NOTPROP)
             {
-            fprintf(f, "\\P{%s}", get_ucpname(*ccode++));
+            int ptype = *ccode++;
+            int pvalue = *ccode++;
+            fprintf(f, "\\P{%s}", get_ucpname(ptype, pvalue));
             }
           else
             {
@@ -435,6 +469,12 @@ for(;;)
         if (*ccode == OP_CRMINRANGE) fprintf(f, "?");
         extra += _pcre_OP_lengths[*ccode];
         break;
+
+        /* Do nothing if it's not a repeat; this code stops picky compilers
+        warning about the lack of a default code path. */
+
+        default:
+        break;
         }
       }
     break;
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_refcount.c tin-2.0.0/pcre/pcre_refcount.c
--- tin-1.8.3/pcre/pcre_refcount.c	2005-09-12 16:40:34.000000000 +0200
+++ tin-2.0.0/pcre/pcre_refcount.c	2011-04-17 16:04:37.976217965 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -63,7 +63,7 @@ Returns:        the (possibly updated) c
                 a negative error number
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 pcre_refcount(pcre *argument_re, int adjust)
 {
 real_pcre *re = (real_pcre *)argument_re;
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_study.c tin-2.0.0/pcre/pcre_study.c
--- tin-1.8.3/pcre/pcre_study.c	2005-09-12 16:40:40.000000000 +0200
+++ tin-2.0.0/pcre/pcre_study.c	2011-04-17 16:04:38.012223444 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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;
 }
 
 
@@ -401,17 +487,16 @@ Returns:    pointer to a pcre_extra bloc
             NULL on error or if no optimization possible
 */
 
-PCRE_EXPORT pcre_extra *
+PCRE_DATA_SCOPE pcre_extra *
 pcre_study(const pcre *external_re, int options, const char **errorptr)
 {
 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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_tables.c tin-2.0.0/pcre/pcre_tables.c
--- tin-1.8.3/pcre/pcre_tables.c	2005-09-12 16:40:50.000000000 +0200
+++ tin-2.0.0/pcre/pcre_tables.c	2011-04-17 16:04:38.060230750 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -48,7 +48,7 @@ clashes with the library. */
 
 
 /* Table of sizes for the fixed-length opcodes. It's defined in a macro so that
-the definition is next to the definition of the opcodes in internal.h. */
+the definition is next to the definition of the opcodes in pcre_internal.h. */
 
 const uschar _pcre_OP_lengths[] = { OP_LENGTHS };
 
@@ -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,
@@ -82,47 +81,115 @@ const uschar _pcre_utf8_table4[] = {
   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 };
 
-/* This table translates Unicode property names into code values for the
-ucp_findchar() function. */
+/* This table translates Unicode property names into type and code values. It
+is searched by binary chop, so must be in collating sequence of name. */
 
 const ucp_type_table _pcre_utt[] = {
-  { "C",  128 + ucp_C },
-  { "Cc", ucp_Cc },
-  { "Cf", ucp_Cf },
-  { "Cn", ucp_Cn },
-  { "Co", ucp_Co },
-  { "Cs", ucp_Cs },
-  { "L",  128 + ucp_L },
-  { "Ll", ucp_Ll },
-  { "Lm", ucp_Lm },
-  { "Lo", ucp_Lo },
-  { "Lt", ucp_Lt },
-  { "Lu", ucp_Lu },
-  { "M",  128 + ucp_M },
-  { "Mc", ucp_Mc },
-  { "Me", ucp_Me },
-  { "Mn", ucp_Mn },
-  { "N",  128 + ucp_N },
-  { "Nd", ucp_Nd },
-  { "Nl", ucp_Nl },
-  { "No", ucp_No },
-  { "P",  128 + ucp_P },
-  { "Pc", ucp_Pc },
-  { "Pd", ucp_Pd },
-  { "Pe", ucp_Pe },
-  { "Pf", ucp_Pf },
-  { "Pi", ucp_Pi },
-  { "Po", ucp_Po },
-  { "Ps", ucp_Ps },
-  { "S",  128 + ucp_S },
-  { "Sc", ucp_Sc },
-  { "Sk", ucp_Sk },
-  { "Sm", ucp_Sm },
-  { "So", ucp_So },
-  { "Z",  128 + ucp_Z },
-  { "Zl", ucp_Zl },
-  { "Zp", ucp_Zp },
-  { "Zs", ucp_Zs }
+  { "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 },
+  { "Buginese",            PT_SC,   ucp_Buginese },
+  { "Buhid",               PT_SC,   ucp_Buhid },
+  { "C",                   PT_GC,   ucp_C },
+  { "Canadian_Aboriginal", PT_SC,   ucp_Canadian_Aboriginal },
+  { "Cc",                  PT_PC,   ucp_Cc },
+  { "Cf",                  PT_PC,   ucp_Cf },
+  { "Cherokee",            PT_SC,   ucp_Cherokee },
+  { "Cn",                  PT_PC,   ucp_Cn },
+  { "Co",                  PT_PC,   ucp_Co },
+  { "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 },
+  { "Devanagari",          PT_SC,   ucp_Devanagari },
+  { "Ethiopic",            PT_SC,   ucp_Ethiopic },
+  { "Georgian",            PT_SC,   ucp_Georgian },
+  { "Glagolitic",          PT_SC,   ucp_Glagolitic },
+  { "Gothic",              PT_SC,   ucp_Gothic },
+  { "Greek",               PT_SC,   ucp_Greek },
+  { "Gujarati",            PT_SC,   ucp_Gujarati },
+  { "Gurmukhi",            PT_SC,   ucp_Gurmukhi },
+  { "Han",                 PT_SC,   ucp_Han },
+  { "Hangul",              PT_SC,   ucp_Hangul },
+  { "Hanunoo",             PT_SC,   ucp_Hanunoo },
+  { "Hebrew",              PT_SC,   ucp_Hebrew },
+  { "Hiragana",            PT_SC,   ucp_Hiragana },
+  { "Inherited",           PT_SC,   ucp_Inherited },
+  { "Kannada",             PT_SC,   ucp_Kannada },
+  { "Katakana",            PT_SC,   ucp_Katakana },
+  { "Kharoshthi",          PT_SC,   ucp_Kharoshthi },
+  { "Khmer",               PT_SC,   ucp_Khmer },
+  { "L",                   PT_GC,   ucp_L },
+  { "L&",                  PT_LAMP, 0 },
+  { "Lao",                 PT_SC,   ucp_Lao },
+  { "Latin",               PT_SC,   ucp_Latin },
+  { "Limbu",               PT_SC,   ucp_Limbu },
+  { "Linear_B",            PT_SC,   ucp_Linear_B },
+  { "Ll",                  PT_PC,   ucp_Ll },
+  { "Lm",                  PT_PC,   ucp_Lm },
+  { "Lo",                  PT_PC,   ucp_Lo },
+  { "Lt",                  PT_PC,   ucp_Lt },
+  { "Lu",                  PT_PC,   ucp_Lu },
+  { "M",                   PT_GC,   ucp_M },
+  { "Malayalam",           PT_SC,   ucp_Malayalam },
+  { "Mc",                  PT_PC,   ucp_Mc },
+  { "Me",                  PT_PC,   ucp_Me },
+  { "Mn",                  PT_PC,   ucp_Mn },
+  { "Mongolian",           PT_SC,   ucp_Mongolian },
+  { "Myanmar",             PT_SC,   ucp_Myanmar },
+  { "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 },
+  { "Old_Italic",          PT_SC,   ucp_Old_Italic },
+  { "Old_Persian",         PT_SC,   ucp_Old_Persian },
+  { "Oriya",               PT_SC,   ucp_Oriya },
+  { "Osmanya",             PT_SC,   ucp_Osmanya },
+  { "P",                   PT_GC,   ucp_P },
+  { "Pc",                  PT_PC,   ucp_Pc },
+  { "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 },
+  { "Runic",               PT_SC,   ucp_Runic },
+  { "S",                   PT_GC,   ucp_S },
+  { "Sc",                  PT_PC,   ucp_Sc },
+  { "Shavian",             PT_SC,   ucp_Shavian },
+  { "Sinhala",             PT_SC,   ucp_Sinhala },
+  { "Sk",                  PT_PC,   ucp_Sk },
+  { "Sm",                  PT_PC,   ucp_Sm },
+  { "So",                  PT_PC,   ucp_So },
+  { "Syloti_Nagri",        PT_SC,   ucp_Syloti_Nagri },
+  { "Syriac",              PT_SC,   ucp_Syriac },
+  { "Tagalog",             PT_SC,   ucp_Tagalog },
+  { "Tagbanwa",            PT_SC,   ucp_Tagbanwa },
+  { "Tai_Le",              PT_SC,   ucp_Tai_Le },
+  { "Tamil",               PT_SC,   ucp_Tamil },
+  { "Telugu",              PT_SC,   ucp_Telugu },
+  { "Thaana",              PT_SC,   ucp_Thaana },
+  { "Thai",                PT_SC,   ucp_Thai },
+  { "Tibetan",             PT_SC,   ucp_Tibetan },
+  { "Tifinagh",            PT_SC,   ucp_Tifinagh },
+  { "Ugaritic",            PT_SC,   ucp_Ugaritic },
+  { "Yi",                  PT_SC,   ucp_Yi },
+  { "Z",                   PT_GC,   ucp_Z },
+  { "Zl",                  PT_PC,   ucp_Zl },
+  { "Zp",                  PT_PC,   ucp_Zp },
+  { "Zs",                  PT_PC,   ucp_Zs }
 };
 
 const int _pcre_utt_size = sizeof(_pcre_utt)/sizeof(ucp_type_table);
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_try_flipped.c tin-2.0.0/pcre/pcre_try_flipped.c
--- tin-1.8.3/pcre/pcre_try_flipped.c	2005-09-12 16:41:00.000000000 +0200
+++ tin-2.0.0/pcre/pcre_try_flipped.c	2011-04-17 16:04:38.100236838 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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) |
@@ -94,7 +94,7 @@ Returns:           the new block if is i
                    NULL if it is not
 */
 
-PCRE_EXPORT real_pcre *
+real_pcre *
 _pcre_try_flipped(const real_pcre *re, real_pcre *internal_re,
   const pcre_study_data *study, pcre_study_data *internal_study)
 {
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_ucp_findchar.c tin-2.0.0/pcre/pcre_ucp_findchar.c
--- tin-1.8.3/pcre/pcre_ucp_findchar.c	2005-09-12 16:41:12.000000000 +0200
+++ tin-2.0.0/pcre/pcre_ucp_findchar.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,161 +0,0 @@
-/*************************************************
-*      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-2005 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 compiles code for supporting the use of Unicode character
-properties. We use the (embryonic at the time of writing) UCP library, by
-including some of its files, copies of which have been put in the PCRE
-distribution. The actual search function is reproduced here, with its name
-changed. */
-
-
-#include "pcre_internal.h"
-
-#include "ucp.h"               /* Category definitions */
-#include "ucpinternal.h"       /* Internal table details */
-#include "ucptable.c"          /* The table itself */
-
-
-
-/*************************************************
-*         Search table and return data           *
-*************************************************/
-
-/* Two values are returned: the category is ucp_C, ucp_L, etc. The detailed
-character type is ucp_Lu, ucp_Nd, etc.
-
-Arguments:
-  c           the character value
-  type_ptr    the detailed character type is returned here
-  case_ptr    for letters, the opposite case is returned here, if there
-                is one, else zero
-
-Returns:      the character type category or -1 if not found
-*/
-
-PCRE_EXPORT int
-_pcre_ucp_findchar(const int c, int *type_ptr, int *case_ptr)
-{
-cnode *node = ucp_table;
-register int cc = c;
-int case_offset;
-
-for (;;)
-  {
-  register int d = node->f1 | ((node->f0 & f0_chhmask) << 16);
-  if (cc == d) break;
-  if (cc < d)
-    {
-    if ((node->f0 & f0_leftexists) == 0) return -1;
-    node ++;
-    }
-  else
-    {
-    register int roffset = (node->f2 & f2_rightmask) >> f2_rightshift;
-    if (roffset == 0) return -1;
-    node += 1 << (roffset - 1);
-    }
-  }
-
-switch ((*type_ptr = ((node->f0 & f0_typemask) >> f0_typeshift)))
-  {
-  case ucp_Cc:
-  case ucp_Cf:
-  case ucp_Cn:
-  case ucp_Co:
-  case ucp_Cs:
-  return ucp_C;
-  break;
-
-  case ucp_Ll:
-  case ucp_Lu:
-  case_offset = node->f2 & f2_casemask;
-  if ((case_offset & 0x0100) != 0) case_offset |= 0xfffff000;
-  *case_ptr = (case_offset == 0)? 0 : cc + case_offset;
-  return ucp_L;
-
-  case ucp_Lm:
-  case ucp_Lo:
-  case ucp_Lt:
-  *case_ptr = 0;
-  return ucp_L;
-  break;
-
-  case ucp_Mc:
-  case ucp_Me:
-  case ucp_Mn:
-  return ucp_M;
-  break;
-
-  case ucp_Nd:
-  case ucp_Nl:
-  case ucp_No:
-  return ucp_N;
-  break;
-
-  case ucp_Pc:
-  case ucp_Pd:
-  case ucp_Pe:
-  case ucp_Pf:
-  case ucp_Pi:
-  case ucp_Ps:
-  case ucp_Po:
-  return ucp_P;
-  break;
-
-  case ucp_Sc:
-  case ucp_Sk:
-  case ucp_Sm:
-  case ucp_So:
-  return ucp_S;
-  break;
-
-  case ucp_Zl:
-  case ucp_Zp:
-  case ucp_Zs:
-  return ucp_Z;
-  break;
-
-  default:         /* "Should never happen" */
-  return -1;
-  break;
-  }
-}
-
-/* End of pcre_ucp_findchar.c */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_ucp_searchfuncs.c tin-2.0.0/pcre/pcre_ucp_searchfuncs.c
--- tin-1.8.3/pcre/pcre_ucp_searchfuncs.c	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/pcre/pcre_ucp_searchfuncs.c	2011-04-17 16:04:38.132241709 +0200
@@ -0,0 +1,175 @@
+/*************************************************
+*      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 code for searching the table of Unicode character
+properties. */
+
+#include "pcre_internal.h"
+
+#include "ucp.h"               /* Category definitions */
+#include "ucpinternal.h"       /* Internal table details */
+#include "ucptable.c"          /* The table itself */
+
+
+/* Table to translate from particular type value to the general value. */
+
+static int ucp_gentype[] = {
+  ucp_C, ucp_C, ucp_C, ucp_C, ucp_C,  /* Cc, Cf, Cn, Co, Cs */
+  ucp_L, ucp_L, ucp_L, ucp_L, ucp_L,  /* Ll, Lu, Lm, Lo, Lt */
+  ucp_M, ucp_M, ucp_M,                /* Mc, Me, Mn */
+  ucp_N, ucp_N, ucp_N,                /* Nd, Nl, No */
+  ucp_P, ucp_P, ucp_P, ucp_P, ucp_P,  /* Pc, Pd, Pe, Pf, Pi */
+  ucp_P, ucp_P,                       /* Ps, Po */
+  ucp_S, ucp_S, ucp_S, ucp_S,         /* Sc, Sk, Sm, So */
+  ucp_Z, ucp_Z, ucp_Z                 /* Zl, Zp, Zs */
+};
+
+
+
+/*************************************************
+*         Search table and return type           *
+*************************************************/
+
+/* Three values are returned: the category is ucp_C, ucp_L, etc. The detailed
+character type is ucp_Lu, ucp_Nd, etc. The script is ucp_Latin, etc.
+
+Arguments:
+  c           the character value
+  type_ptr    the detailed character type is returned here
+  script_ptr  the script is returned here
+
+Returns:      the character type category
+*/
+
+int
+_pcre_ucp_findprop(const unsigned int c, int *type_ptr, int *script_ptr)
+{
+int bot = 0;
+int top = sizeof(ucp_table)/sizeof(cnode);
+int mid;
+
+/* The table is searched using a binary chop. You might think that using
+intermediate variables to hold some of the common expressions would speed
+things up, but tests with gcc 3.4.4 on Linux showed that, on the contrary, it
+makes things a lot slower. */
+
+for (;;)
+  {
+  if (top <= bot)
+    {
+    *type_ptr = ucp_Cn;
+    *script_ptr = ucp_Common;
+    return ucp_C;
+    }
+  mid = (bot + top) >> 1;
+  if (c == (ucp_table[mid].f0 & f0_charmask)) break;
+  if (c < (ucp_table[mid].f0 & f0_charmask)) top = mid;
+  else
+    {
+    if ((ucp_table[mid].f0 & f0_rangeflag) != 0 &&
+        c <= (ucp_table[mid].f0 & f0_charmask) +
+             (ucp_table[mid].f1 & f1_rangemask)) break;
+    bot = mid + 1;
+    }
+  }
+
+/* Found an entry in the table. Set the script and detailed type values, and
+return the general type. */
+
+*script_ptr = (ucp_table[mid].f0 & f0_scriptmask) >> f0_scriptshift;
+*type_ptr = (ucp_table[mid].f1 & f1_typemask) >> f1_typeshift;
+
+return ucp_gentype[*type_ptr];
+}
+
+
+
+/*************************************************
+*       Search table and return other case       *
+*************************************************/
+
+/* If the given character is a letter, and there is another case for the
+letter, return the other case. Otherwise, return -1.
+
+Arguments:
+  c           the character value
+
+Returns:      the other case or NOTACHAR if none
+*/
+
+unsigned int
+_pcre_ucp_othercase(const unsigned int c)
+{
+int bot = 0;
+int top = sizeof(ucp_table)/sizeof(cnode);
+int mid, offset;
+
+/* The table is searched using a binary chop. You might think that using
+intermediate variables to hold some of the common expressions would speed
+things up, but tests with gcc 3.4.4 on Linux showed that, on the contrary, it
+makes things a lot slower. */
+
+for (;;)
+  {
+  if (top <= bot) return -1;
+  mid = (bot + top) >> 1;
+  if (c == (ucp_table[mid].f0 & f0_charmask)) break;
+  if (c < (ucp_table[mid].f0 & f0_charmask)) top = mid;
+  else
+    {
+    if ((ucp_table[mid].f0 & f0_rangeflag) != 0 &&
+        c <= (ucp_table[mid].f0 & f0_charmask) +
+             (ucp_table[mid].f1 & f1_rangemask)) break;
+    bot = mid + 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 NOTACHAR;
+
+offset = ucp_table[mid].f1 & f1_casemask;
+if ((offset & f1_caseneg) != 0) offset |= f1_caseneg;
+return (offset == 0)? NOTACHAR : c + offset;
+}
+
+
+/* End of pcre_ucp_searchfuncs.c */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcre_valid_utf8.c tin-2.0.0/pcre/pcre_valid_utf8.c
--- tin-1.8.3/pcre/pcre_valid_utf8.c	2005-09-12 16:41:21.000000000 +0200
+++ tin-2.0.0/pcre/pcre_valid_utf8.c	2011-04-17 16:04:38.164246580 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -63,7 +63,7 @@ Returns:       < 0    if the string is a
                >= 0   otherwise; the value is the offset of the bad byte
 */
 
-PCRE_EXPORT int
+int
 _pcre_valid_utf8(const uschar *string, int length)
 {
 register const uschar *p;
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_version.c tin-2.0.0/pcre/pcre_version.c
--- tin-1.8.3/pcre/pcre_version.c	2005-09-12 16:41:30.000000000 +0200
+++ tin-2.0.0/pcre/pcre_version.c	2011-04-17 16:04:38.196251449 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -49,13 +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)
 
-PCRE_EXPORT const char *
+/* 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_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 --exclude='.bzr*' tin-1.8.3/pcre/pcre_xclass.c tin-2.0.0/pcre/pcre_xclass.c
--- tin-1.8.3/pcre/pcre_xclass.c	2005-09-12 16:41:39.000000000 +0200
+++ tin-2.0.0/pcre/pcre_xclass.c	2011-04-17 16:04:38.228256320 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -60,7 +60,7 @@ Arguments:
 Returns:      TRUE if character matches, else FALSE
 */
 
-PCRE_EXPORT BOOL
+BOOL
 _pcre_xclass(int c, const uschar *data)
 {
 int t;
@@ -100,17 +100,40 @@ while ((t = *data++) != XCL_END)
 #ifdef SUPPORT_UCP
   else  /* XCL_PROP & XCL_NOTPROP */
     {
-    int chartype, othercase;
-    int rqdtype = *data++;
-    int category = _pcre_ucp_findchar(c, &chartype, &othercase);
-    if (rqdtype >= 128)
-      {
-      if ((rqdtype - 128 == category) == (t == XCL_PROP)) return !negated;
-      }
-    else
+    int chartype, script;
+    int category = _pcre_ucp_findprop(c, &chartype, &script);
+
+    switch(*data)
       {
-      if ((rqdtype == chartype) == (t == XCL_PROP)) return !negated;
+      case PT_ANY:
+      if (t == XCL_PROP) return !negated;
+      break;
+
+      case PT_LAMP:
+      if ((chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) ==
+          (t == XCL_PROP)) return !negated;
+      break;
+
+      case PT_GC:
+      if ((data[1] == category) == (t == XCL_PROP)) return !negated;
+      break;
+
+      case PT_PC:
+      if ((data[1] == chartype) == (t == XCL_PROP)) return !negated;
+      break;
+
+      case PT_SC:
+      if ((data[1] == script) == (t == XCL_PROP)) return !negated;
+      break;
+
+      /* This should never occur, but compilers may mutter if there is no
+      default. */
+
+      default:
+      return FALSE;
       }
+
+    data += 2;
     }
 #endif  /* SUPPORT_UCP */
   }
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcredemo.c tin-2.0.0/pcre/pcredemo.c
--- tin-1.8.3/pcre/pcredemo.c	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/pcredemo.c	2011-04-17 16:04:38.264261799 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/pcregrep.c tin-2.0.0/pcre/pcregrep.c
--- tin-1.8.3/pcre/pcregrep.c	2005-09-12 16:41:52.000000000 +0200
+++ tin-2.0.0/pcre/pcregrep.c	2011-04-17 16:04:38.300267278 +0200
@@ -6,7 +6,7 @@
 its pattern matching. On a Unix or Win32 system it can recurse into
 directories.
 
-           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
@@ -38,6 +38,7 @@ POSSIBILITY OF SUCH DAMAGE.
 */
 
 #include <ctype.h>
+#include <locale.h>
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
@@ -55,7 +56,7 @@ POSSIBILITY OF SUCH DAMAGE.
 
 typedef int BOOL;
 
-#define VERSION "4.1 05-Sep-2005"
+#define VERSION "4.4 29-Nov-2006"
 #define MAX_PATTERN_COUNT 100
 
 #if BUFSIZ > 8192
@@ -64,14 +65,57 @@ 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. */
+
+enum { FN_NONE, FN_DEFAULT, FN_ONLY, FN_NOMATCH_ONLY, FN_FORCE };
+
+/* Actions for the -d and -D options */
+
+enum { dee_READ, dee_SKIP, dee_RECURSE };
+enum { DEE_READ, DEE_SKIP };
+
+/* Actions for special processing options (flag bits) */
+
+#define PO_WORD_MATCH     0x0001
+#define PO_LINE_MATCH     0x0002
+#define PO_FIXED_STRINGS  0x0004
+
+/* Line ending types */
+
+enum { EL_LF, EL_CR, EL_CRLF, EL_ANY };
+
 
 
 /*************************************************
 *               Global variables                 *
 *************************************************/
 
+/* Jeffrey Friedl has some debugging requirements that are not part of the
+regular code. */
+
+#ifdef JFRIEDL_DEBUG
+static int S_arg = -1;
+static unsigned int jfriedl_XR = 0; /* repeat regex attempt this many times */
+static unsigned int jfriedl_XT = 0; /* replicate text this many times */
+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;
+
+static const unsigned char *pcretables = NULL;
+
 static int  pattern_count = 0;
 static pcre **pattern_list;
 static pcre_extra **hints_list;
@@ -85,24 +129,27 @@ static pcre *exclude_compiled = NULL;
 static int after_context = 0;
 static int before_context = 0;
 static int both_context = 0;
+static int dee_action = dee_READ;
+static int DEE_action = DEE_READ;
+static int error_count = 0;
+static int filenames = FN_DEFAULT;
+static int process_options = 0;
 
 static BOOL count_only = FALSE;
-static BOOL filenames = TRUE;
-static BOOL filenames_only = FALSE;
-static BOOL filenames_nomatch_only = FALSE;
+static BOOL do_colour = FALSE;
 static BOOL hyphenpending = FALSE;
 static BOOL invert = FALSE;
 static BOOL multiline = FALSE;
 static BOOL number = FALSE;
+static BOOL only_matching = FALSE;
 static BOOL quiet = FALSE;
-static BOOL recurse = FALSE;
 static BOOL silent = FALSE;
-static BOOL whole_lines = FALSE;
-static BOOL word_match = FALSE;
+static BOOL utf8 = FALSE;
 
 /* Structure for options and list of them */
 
-enum { OP_NODATA, OP_STRING, OP_NUMBER };
+enum { OP_NODATA, OP_STRING, OP_OP_STRING, OP_NUMBER, OP_OP_NUMBER,
+       OP_PATLIST };
 
 typedef struct option_item {
   int type;
@@ -112,42 +159,87 @@ typedef struct option_item {
   const char *help_text;
 } option_item;
 
+/* Options without a single-letter equivalent get a negative value. This can be
+used to identify them. */
+
+#define N_COLOUR    (-1)
+#define N_EXCLUDE   (-2)
+#define N_HELP      (-3)
+#define N_INCLUDE   (-4)
+#define N_LABEL     (-5)
+#define N_LOCALE    (-6)
+#define N_NULL      (-7)
+
 static option_item optionlist[] = {
-  { OP_NODATA, -1,  NULL,              "",              "  terminate options" },
-  { OP_NODATA, -1,  NULL,              "help",          "display this help and exit" },
-  { OP_NUMBER, 'A', &after_context,    "after-context=number", "set number of following context lines" },
-  { OP_NUMBER, 'B', &before_context,   "before-context=number", "set number of prior context lines" },
-  { OP_NUMBER, 'C', &both_context,     "context=number", "set number of context lines, before & after" },
-  { OP_NODATA, 'c', NULL,              "count",         "print only a count of matching lines per FILE" },
-  { OP_STRING, 'f', &pattern_filename, "file=path",     "read patterns from file" },
-  { OP_NODATA, 'h', NULL,              "no-filename",   "suppress the prefixing filename on output" },
-  { OP_NODATA, 'i', NULL,              "ignore-case",   "ignore case distinctions" },
-  { OP_NODATA, 'l', NULL,              "files-with-matches", "print only FILE names containing matches" },
-  { OP_NODATA, 'L', NULL,              "files-without-match","print only FILE names not containing matches" },
-  { OP_STRING, -1,  &stdin_name,       "label=name",    "set name for standard input" },
-  { OP_NODATA, 'M', NULL,              "multiline",     "run in multiline mode" },
-  { OP_NODATA, 'n', NULL,              "line-number",   "print line number with output lines" },
-  { OP_NODATA, 'q', NULL,              "quiet",         "suppress output, just set return code" },
-  { OP_NODATA, 'r', NULL,              "recursive",     "recursively scan sub-directories" },
-  { OP_STRING, -1,  &exclude_pattern,  "exclude=pattern","exclude matching files when recursing" },
-  { OP_STRING, -1,  &include_pattern,  "include=pattern","include matching files when recursing" },
-  { OP_NODATA, 's', NULL,              "no-messages",   "suppress error messages" },
-  { OP_NODATA, 'u', NULL,              "utf-8",         "use UTF-8 mode" },
-  { OP_NODATA, 'V', NULL,              "version",       "print version information and exit" },
-  { OP_NODATA, 'v', NULL,              "invert-match",  "select non-matching lines" },
-  { OP_NODATA, 'w', NULL,              "word-regex(p)", "force PATTERN to match only as a word"  },
-  { OP_NODATA, 'x', NULL,              "line-regex(p)", "force PATTERN to match only whole lines" },
-  { OP_NODATA, 0,   NULL,               NULL,            NULL }
+  { OP_NODATA,    N_NULL,   NULL,              "",              "  terminate options" },
+  { OP_NODATA,    N_HELP,   NULL,              "help",          "display this help and exit" },
+  { OP_NUMBER,    'A',      &after_context,    "after-context=number", "set number of following context lines" },
+  { OP_NUMBER,    'B',      &before_context,   "before-context=number", "set number of prior context lines" },
+  { OP_OP_STRING, N_COLOUR, &colour_option,    "color=option",  "matched text color option" },
+  { OP_NUMBER,    'C',      &both_context,     "context=number", "set number of context lines, before & after" },
+  { OP_NODATA,    'c',      NULL,              "count",         "print only a count of matching lines per FILE" },
+  { OP_OP_STRING, N_COLOUR, &colour_option,    "colour=option", "matched text colour option" },
+  { OP_STRING,    'D',      &DEE_option,       "devices=action","how to handle devices, FIFOs, and sockets" },
+  { OP_STRING,    'd',      &dee_option,       "directories=action", "how to handle directories" },
+  { OP_PATLIST,   'e',      NULL,              "regex(p)",      "specify pattern (may be used more than once)" },
+  { OP_NODATA,    'F',      NULL,              "fixed_strings", "patterns are sets of newline-separated strings" },
+  { OP_STRING,    'f',      &pattern_filename, "file=path",     "read patterns from file" },
+  { OP_NODATA,    'H',      NULL,              "with-filename", "force the prefixing filename on output" },
+  { OP_NODATA,    'h',      NULL,              "no-filename",   "suppress the prefixing filename on output" },
+  { OP_NODATA,    'i',      NULL,              "ignore-case",   "ignore case distinctions" },
+  { OP_NODATA,    'l',      NULL,              "files-with-matches", "print only FILE names containing matches" },
+  { OP_NODATA,    'L',      NULL,              "files-without-match","print only FILE names not containing matches" },
+  { 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" },
+  { OP_NODATA,    'r',      NULL,              "recursive",     "recursively scan sub-directories" },
+  { OP_STRING,    N_EXCLUDE,&exclude_pattern,  "exclude=pattern","exclude matching files when recursing" },
+  { OP_STRING,    N_INCLUDE,&include_pattern,  "include=pattern","include matching files when recursing" },
+#ifdef JFRIEDL_DEBUG
+  { OP_OP_NUMBER, 'S',      &S_arg,            "jeffS",         "replace matched (sub)string with X" },
+#endif
+  { OP_NODATA,    's',      NULL,              "no-messages",   "suppress error messages" },
+  { OP_NODATA,    'u',      NULL,              "utf-8",         "use UTF-8 mode" },
+  { OP_NODATA,    'V',      NULL,              "version",       "print version information and exit" },
+  { OP_NODATA,    'v',      NULL,              "invert-match",  "select non-matching lines" },
+  { OP_NODATA,    'w',      NULL,              "word-regex(p)", "force patterns to match only as words"  },
+  { OP_NODATA,    'x',      NULL,              "line-regex(p)", "force patterns to match only whole lines" },
+  { OP_NODATA,    0,        NULL,               NULL,            NULL }
 };
 
+/* Tables for prefixing and suffixing patterns, according to the -w, -x, and -F
+options. These set the 1, 2, and 4 bits in process_options, respectively. Note
+that the combination of -w and -x has the same effect as -x on its own, so we
+can treat them as the same. */
+
+static const char *prefix[] = {
+  "", "\\b", "^(?:", "^(?:", "\\Q", "\\b\\Q", "^(?:\\Q", "^(?:\\Q" };
+
+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 };
+
+
 
 /*************************************************
-*       Functions for directory scanning         *
+*            OS-specific functions               *
 *************************************************/
 
 /* These functions are defined so that they can be made system specific,
-although at present the only ones are for Unix, Win32, and for "no directory
-recursion support". */
+although at present the only ones are for Unix, Win32, and for "no support". */
 
 
 /************* Directory scanning in Unix ***********/
@@ -194,6 +286,27 @@ closedir(dir);
 }
 
 
+/************* Test for regular file in Unix **********/
+
+static int
+isregfile(char *filename)
+{
+struct stat statbuf;
+if (stat(filename, &statbuf) < 0)
+  return 1;        /* In the expectation that opening as a file will fail */
+return (statbuf.st_mode & S_IFMT) == S_IFREG;
+}
+
+
+/************* Test stdout for being a terminal in Unix **********/
+
+static BOOL
+is_stdout_tty(void)
+{
+return isatty(fileno(stdout));
+}
+
+
 /************* Directory scanning in Win32 ***********/
 
 /* I (Philip Hazel) have no means of testing this code. It was contributed by
@@ -292,6 +405,28 @@ free(dir);
 }
 
 
+/************* Test for regular file in Win32 **********/
+
+/* I don't know how to do this, or if it can be done; assume all paths are
+regular if they are not directories. */
+
+int isregfile(char *filename)
+{
+return !isdirectory(filename)
+}
+
+
+/************* Test stdout for being a terminal in Win32 **********/
+
+/* I don't know how to do this; assume never */
+
+static BOOL
+is_stdout_tty(void)
+{
+FALSE;
+}
+
+
 /************* Directory scanning when we can't do it ***********/
 
 /* The type is void, and apart from isdirectory(), the functions do nothing. */
@@ -300,11 +435,28 @@ free(dir);
 
 typedef void directory_type;
 
-int isdirectory(char *filename) { return FALSE; }
+int isdirectory(char *filename) { return 0; }
 directory_type * opendirectory(char *filename) {}
 char *readdirectory(directory_type *dir) {}
 void closedirectory(directory_type *dir) {}
 
+
+/************* Test for regular when we can't do it **********/
+
+/* Assume all files are regular. */
+
+int isregfile(char *filename) { return 1; }
+
+
+/************* Test stdout for being a terminal when we can't do it **********/
+
+static BOOL
+is_stdout_tty(void)
+{
+return FALSE;
+}
+
+
 #endif
 
 
@@ -332,11 +484,222 @@ 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         *
 *************************************************/
 
 /* This is called if we are about to lose said lines because of buffer filling,
-and at the end of the file.
+and at the end of the file. The data in the line is written using fwrite() so
+that a binary zero does not terminate it.
 
 Arguments:
   lastmatchnumber   the number of the last matching line, plus one
@@ -355,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++;
-    fprintf(stdout, "%.*s", pp - lastmatchrestart + 1, lastmatchrestart);
-    lastmatchrestart = pp + 1;
+    pp = end_of_line(pp, endptr, &ellength);
+    fwrite(lastmatchrestart, 1, pp - lastmatchrestart, stdout);
+    lastmatchrestart = pp;
     }
   hyphenpending = TRUE;
   }
@@ -417,7 +781,8 @@ 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;
   size_t length, linelength;
@@ -429,37 +794,133 @@ 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
+  if (jfriedl_XT || jfriedl_XR)
+  {
+      #include <sys/time.h>
+      #include <time.h>
+      struct timeval start_time, end_time;
+      struct timezone dummy;
+
+      if (jfriedl_XT)
+      {
+          unsigned long newlen = length * jfriedl_XT + strlen(jfriedl_prefix) + strlen(jfriedl_postfix);
+          const char *orig = ptr;
+          ptr = malloc(newlen + 1);
+          if (!ptr) {
+                  printf("out of memory");
+                  exit(2);
+          }
+          endptr = ptr;
+          strcpy(endptr, jfriedl_prefix); endptr += strlen(jfriedl_prefix);
+          for (i = 0; i < jfriedl_XT; i++) {
+                  strncpy(endptr, orig,  length);
+                  endptr += length;
+          }
+          strcpy(endptr, jfriedl_postfix); endptr += strlen(jfriedl_postfix);
+          length = newlen;
+      }
+
+      if (gettimeofday(&start_time, &dummy) != 0)
+              perror("bad gettimeofday");
+
+
+      for (i = 0; i < jfriedl_XR; i++)
+          match = (pcre_exec(pattern_list[0], hints_list[0], ptr, length, 0, 0, offsets, 99) >= 0);
+
+      if (gettimeofday(&end_time, &dummy) != 0)
+              perror("bad gettimeofday");
+
+      double delta = ((end_time.tv_sec + (end_time.tv_usec / 1000000.0))
+                      -
+                      (start_time.tv_sec + (start_time.tv_usec / 1000000.0)));
+
+      printf("%s TIMER[%.4f]\n", match ? "MATCH" : "FAIL", delta);
+      return 0;
+  }
+#endif
+
+
   /* Run through all the patterns until one matches. Note that we don't include
   the final newline in the subject string. */
 
-  for (i = 0; !match && i < pattern_count; i++)
+  for (i = 0; i < pattern_count; i++)
     {
-    match = pcre_exec(pattern_list[i], hints_list[i], ptr, length, 0, 0,
-      offsets, 99) >= 0;
+    mrc = pcre_exec(pattern_list[i], hints_list[i], ptr, length, 0, 0,
+      offsets, 99);
+    if (mrc >= 0) { match = TRUE; break; }
+    if (mrc != PCRE_ERROR_NOMATCH)
+      {
+      fprintf(stderr, "pcregrep: pcre_exec() error %d while matching ", mrc);
+      if (pattern_count > 1) fprintf(stderr, "pattern number %d to ", i+1);
+      fprintf(stderr, "this line:\n");
+      fwrite(ptr, 1, linelength, stderr);   /* In case binary zero included */
+      fprintf(stderr, "\n");
+      if (error_count == 0 &&
+          (mrc == PCRE_ERROR_MATCHLIMIT || mrc == PCRE_ERROR_RECURSIONLIMIT))
+        {
+        fprintf(stderr, "pcregrep: error %d means that a resource limit "
+          "was exceeded\n", mrc);
+        fprintf(stderr, "pcregrep: check your regex for nested unlimited loops\n");
+        }
+      if (error_count++ > 20)
+        {
+        fprintf(stderr, "pcregrep: too many errors - abandoned\n");
+        exit(2);
+        }
+      match = invert;    /* No more matching; don't show the line again */
+      break;
+      }
     }
 
-  /* If it's a match or a not-match (as required), print what's wanted. */
+  /* If it's a match or a not-match (as required), do what's wanted. */
 
   if (match != invert)
     {
     BOOL hyphenprinted = FALSE;
 
-    if (filenames_nomatch_only) return 1;
+    /* We've failed if we want a file that doesn't have any matches. */
+
+    if (filenames == FN_NOMATCH_ONLY) return 1;
+
+    /* Just count if just counting is wanted. */
 
     if (count_only) count++;
 
-    else if (filenames_only)
+    /* If all we want is a file name, there is no need to scan any more lines
+    in the file. */
+
+    else if (filenames == FN_ONLY)
       {
       fprintf(stdout, "%s\n", printname);
       return 0;
       }
 
+    /* Likewise, if all we want is a yes/no answer. */
+
     else if (quiet) return 0;
 
+    /* The --only-matching option prints just the substring that matched, and
+    does not pring any context. */
+
+    else if (only_matching)
+      {
+      if (printname != NULL) fprintf(stdout, "%s:", printname);
+      if (number) fprintf(stdout, "%d:", linenumber);
+      fwrite(ptr + offsets[0], 1, offsets[1] - offsets[0], stdout);
+      fprintf(stdout, "\n");
+      }
+
+    /* This is the default case when none of the above options is set. We print
+    the matching lines(s), possibly preceded and/or followed by other lines of
+    context. */
+
     else
       {
       /* See if there is a requirement to print some "after" lines from a
@@ -467,27 +928,28 @@ 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++;
           }
 
         /* It is important to advance lastmatchrestart during this printing so
-        that it interacts correctly with any "before" printing below. */
+        that it interacts correctly with any "before" printing below. Print
+        each line's data using fwrite() in case there are binary zeroes. */
 
         while (lastmatchrestart < p)
           {
           char *pp = lastmatchrestart;
           if (printname != NULL) fprintf(stdout, "%s-", printname);
           if (number) fprintf(stdout, "%d-", lastmatchnumber++);
-          while (*pp != '\n') pp++;
-          fprintf(stdout, "%.*s", pp - lastmatchrestart + 1, lastmatchrestart);
-          lastmatchrestart = pp + 1;
+          pp = end_of_line(pp, endptr, &ellength);
+          fwrite(lastmatchrestart, 1, pp - lastmatchrestart, stdout);
+          lastmatchrestart = pp;
           }
         if (lastmatchrestart != ptr) hyphenpending = TRUE;
         }
@@ -510,10 +972,10 @@ while (ptr < endptr)
         char *p = ptr;
 
         while (p > buffer && (lastmatchnumber == 0 || p > lastmatchrestart) &&
-               linecount++ < before_context)
+               linecount < before_context)
           {
-          p--;
-          while (p > buffer && p[-1] != '\n') p--;
+          linecount++;
+          p = previous_line(p, buffer);
           }
 
         if (lastmatchnumber > 0 && p > lastmatchrestart && !hyphenprinted)
@@ -521,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++;
-          fprintf(stdout, "%.*s", pp - p + 1, p);
-          p = pp + 1;
+          pp = end_of_line(pp, endptr, &ellength);
+          fwrite(p, 1, pp - p, stdout);
+          p = pp;
           }
         }
 
@@ -542,32 +1005,68 @@ 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
+      zeroes are treated as just another data character. */
+
+      /* This extra option, for Jeffrey Friedl's debugging requirements,
+      replaces the matched string, or a specific captured string if it exists,
+      with X. When this happens, colouring is ignored. */
+
+#ifdef JFRIEDL_DEBUG
+      if (S_arg >= 0 && S_arg < mrc)
+        {
+        int first = S_arg * 2;
+        int last  = first + 1;
+        fwrite(ptr, 1, offsets[first], stdout);
+        fprintf(stdout, "X");
+        fwrite(ptr + offsets[last], 1, linelength - offsets[last], stdout);
         }
+      else
+#endif
+
+      /* We have to split the line(s) up if colouring. */
 
-      fprintf(stdout, "%.*s\n", linelength, ptr);
+      if (do_colour)
+        {
+        fwrite(ptr, 1, offsets[0], stdout);
+        fprintf(stdout, "%c[%sm", 0x1b, colour_string);
+        fwrite(ptr + offsets[0], 1, offsets[1] - offsets[0], stdout);
+        fprintf(stdout, "%c[00m", 0x1b);
+        fwrite(ptr + offsets[1], 1, linelength - offsets[1], stdout);
+        }
+      else fwrite(ptr, 1, linelength + endlinelength, stdout);
       }
 
+    /* End of doing what has to be done for a match */
+
     rc = 0;    /* Had some success */
 
     /* 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
@@ -601,13 +1100,16 @@ while (ptr < endptr)
 /* End of file; print final "after" lines if wanted; do_after_lines sets
 hyphenpending if it prints something. */
 
-do_after_lines(lastmatchnumber, lastmatchrestart, endptr, printname);
-hyphenpending |= endhyphenpending;
+if (!only_matching && !count_only)
+  {
+  do_after_lines(lastmatchnumber, lastmatchrestart, endptr, printname);
+  hyphenpending |= endhyphenpending;
+  }
 
 /* Print the file name if we are looking for those without matches and there
 were none. If we found a match, we won't have got this far. */
 
-if (filenames_nomatch_only)
+if (filenames == FN_NOMATCH_ONLY)
   {
   fprintf(stdout, "%s\n", printname);
   return 0;
@@ -635,9 +1137,7 @@ recursing; if it's a file, grep it.
 
 Arguments:
   pathname          the path to investigate
-  dir_recurse       TRUE if recursing is wanted (-r)
-  show_filenames    TRUE if file names are wanted for multiple files, except
-                      for the only file at top level when not filenames_only
+  dir_recurse       TRUE if recursing is wanted (-r or -drecurse)
   only_one_at_top   TRUE if the path is the only one at toplevel
 
 Returns:   0 if there was at least one match
@@ -648,69 +1148,77 @@ However, file opening failures are suppr
 */
 
 static int
-grep_or_recurse(char *pathname, BOOL dir_recurse, BOOL show_filenames,
-  BOOL only_one_at_top)
+grep_or_recurse(char *pathname, BOOL dir_recurse, BOOL only_one_at_top)
 {
 int rc = 1;
 int sep;
 FILE *in;
-char *printname;
 
 /* If the file name is "-" we scan stdin */
 
 if (strcmp(pathname, "-") == 0)
   {
   return pcregrep(stdin,
-    (filenames_only || filenames_nomatch_only ||
-    (show_filenames && !only_one_at_top))?
+    (filenames > FN_DEFAULT || (filenames == FN_DEFAULT && !only_one_at_top))?
       stdin_name : NULL);
   }
 
-/* If the file is a directory and we are recursing, scan each file within it,
-subject to any include or exclude patterns that were set. The scanning code is
-localized so it can be made system-specific. */
-
-if ((sep = isdirectory(pathname)) != 0 && dir_recurse)
-  {
-  char buffer[1024];
-  char *nextfile;
-  directory_type *dir = opendirectory(pathname);
 
-  if (dir == NULL)
-    {
-    if (!silent)
-      fprintf(stderr, "pcregrep: Failed to open directory %s: %s\n", pathname,
-        strerror(errno));
-    return 2;
-    }
+/* If the file is a directory, skip if skipping or if we are recursing, scan
+each file within it, subject to any include or exclude patterns that were set.
+The scanning code is localized so it can be made system-specific. */
 
-  while ((nextfile = readdirectory(dir)) != NULL)
+if ((sep = isdirectory(pathname)) != 0)
+  {
+  if (dee_action == dee_SKIP) return 1;
+  if (dee_action == dee_RECURSE)
     {
-    int frc, blen;
-    sprintf(buffer, "%.512s%c%.128s", pathname, sep, nextfile);
-    blen = strlen(buffer);
+    char buffer[1024];
+    char *nextfile;
+    directory_type *dir = opendirectory(pathname);
 
-    if (exclude_compiled != NULL &&
-        pcre_exec(exclude_compiled, NULL, buffer, blen, 0, 0, NULL, 0) >= 0)
-      continue;
+    if (dir == NULL)
+      {
+      if (!silent)
+        fprintf(stderr, "pcregrep: Failed to open directory %s: %s\n", pathname,
+          strerror(errno));
+      return 2;
+      }
 
-    if (include_compiled != NULL &&
-        pcre_exec(include_compiled, NULL, buffer, blen, 0, 0, NULL, 0) < 0)
-      continue;
+    while ((nextfile = readdirectory(dir)) != NULL)
+      {
+      int frc, blen;
+      sprintf(buffer, "%.512s%c%.128s", pathname, sep, nextfile);
+      blen = strlen(buffer);
+
+      if (exclude_compiled != NULL &&
+          pcre_exec(exclude_compiled, NULL, buffer, blen, 0, 0, NULL, 0) >= 0)
+        continue;
+
+      if (include_compiled != NULL &&
+          pcre_exec(include_compiled, NULL, buffer, blen, 0, 0, NULL, 0) < 0)
+        continue;
+
+      frc = grep_or_recurse(buffer, dir_recurse, FALSE);
+      if (frc > 1) rc = frc;
+       else if (frc == 0 && rc == 1) rc = 0;
+      }
 
-    frc = grep_or_recurse(buffer, dir_recurse, TRUE, FALSE);
-    if (frc > 1) rc = frc;
-     else if (frc == 0 && rc == 1) rc = 0;
+    closedirectory(dir);
+    return rc;
     }
-
-  closedirectory(dir);
-  return rc;
   }
 
-/* If the file is not a directory, or we are not recursing, scan it. If this is
-the first and only argument at top level, we don't show the file name (unless
-we are only showing the file name). Otherwise, control is via the
-show_filenames variable. */
+/* If the file is not a directory and not a regular file, skip it if that's
+been requested. */
+
+else if (!isregfile(pathname) && DEE_action == DEE_SKIP) return 1;
+
+/* Control reaches here if we have a regular file, or if we have a directory
+and recursion or skipping was not requested, or if we have anything else and
+skipping was not requested. The scan proceeds. If this is the first and only
+argument at top level, we don't show the file name, unless we are only showing
+the file name, or the filename was forced (-H). */
 
 in = fopen(pathname, "r");
 if (in == NULL)
@@ -721,10 +1229,8 @@ if (in == NULL)
   return 2;
   }
 
-printname =  (filenames_only || filenames_nomatch_only ||
-  (show_filenames && !only_one_at_top))? pathname : NULL;
-
-rc = pcregrep(in, printname);
+rc = pcregrep(in, (filenames > FN_DEFAULT ||
+  (filenames == FN_DEFAULT && !only_one_at_top))? pathname : NULL);
 
 fclose(in);
 return rc;
@@ -740,7 +1246,13 @@ return rc;
 static int
 usage(int rc)
 {
-fprintf(stderr, "Usage: pcregrep [-LMVcfhilnqrsvwx] [long-options] [pattern] [file1 file2 ...]\n");
+option_item *op;
+fprintf(stderr, "Usage: pcregrep [-");
+for (op = optionlist; op->one_char != 0; op++)
+  {
+  if (op->one_char > 0) fprintf(stderr, "%c", op->one_char);
+  }
+fprintf(stderr, "] [long options] [pattern] [files]\n");
 fprintf(stderr, "Type `pcregrep --help' for more information.\n");
 return rc;
 }
@@ -759,8 +1271,8 @@ option_item *op;
 
 printf("Usage: pcregrep [OPTION]... [PATTERN] [FILE1 FILE2 ...]\n");
 printf("Search for PATTERN in each FILE or standard input.\n");
-printf("PATTERN must be present if -f is not used.\n");
-printf("\"-\" can be used as a file name to mean STDIN.\n");
+printf("PATTERN must be present if neither -e nor -f is used.\n");
+printf("\"-\" can be used as a file name to mean STDIN.\n\n");
 printf("Example: pcregrep -i 'hello.*world' menu.h main.c\n\n");
 
 printf("Options:\n");
@@ -796,21 +1308,24 @@ handle_option(int letter, int options)
 {
 switch(letter)
   {
-  case -1:  help(); exit(0);
+  case N_HELP: help(); exit(0);
   case 'c': count_only = TRUE; break;
-  case 'h': filenames = FALSE; break;
+  case 'F': process_options |= PO_FIXED_STRINGS; break;
+  case 'H': filenames = FN_FORCE; break;
+  case 'h': filenames = FN_NONE; break;
   case 'i': options |= PCRE_CASELESS; break;
-  case 'l': filenames_only = TRUE; break;
-  case 'L': filenames_nomatch_only = TRUE; break;
+  case 'l': filenames = FN_ONLY; break;
+  case 'L': filenames = FN_NOMATCH_ONLY; break;
   case 'M': multiline = TRUE; options |= PCRE_MULTILINE|PCRE_FIRSTLINE; break;
   case 'n': number = TRUE; break;
+  case 'o': only_matching = TRUE; break;
   case 'q': quiet = TRUE; break;
-  case 'r': recurse = 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': word_match = TRUE; break;
-  case 'x': whole_lines = TRUE; break;
+  case 'w': process_options |= PO_WORD_MATCH; break;
+  case 'x': process_options |= PO_LINE_MATCH; break;
 
   case 'V':
   fprintf(stderr, "pcregrep version %s using ", VERSION);
@@ -830,6 +1345,136 @@ return options;
 
 
 /*************************************************
+*          Construct printed ordinal             *
+*************************************************/
+
+/* This turns a number into "1st", "3rd", etc. */
+
+static char *
+ordin(int n)
+{
+static char buffer[8];
+char *p = buffer;
+sprintf(p, "%d", n);
+while (*p != 0) p++;
+switch (n%10)
+  {
+  case 1: strcpy(p, "st"); break;
+  case 2: strcpy(p, "nd"); break;
+  case 3: strcpy(p, "rd"); break;
+  default: strcpy(p, "th"); break;
+  }
+return buffer;
+}
+
+
+
+/*************************************************
+*          Compile a single pattern              *
+*************************************************/
+
+/* When the -F option has been used, this is called for each substring.
+Otherwise it's called for each supplied pattern.
+
+Arguments:
+  pattern        the pattern string
+  options        the PCRE options
+  filename       the file name, or NULL for a command-line pattern
+  count          0 if this is the only command line pattern, or
+                 number of the command line pattern, or
+                 linenumber for a pattern from a file
+
+Returns:         TRUE on success, FALSE after an error
+*/
+
+static BOOL
+compile_single_pattern(char *pattern, int options, char *filename, int count)
+{
+char buffer[MBUFTHIRD + 16];
+const char *error;
+int errptr;
+
+if (pattern_count >= MAX_PATTERN_COUNT)
+  {
+  fprintf(stderr, "pcregrep: Too many %spatterns (max %d)\n",
+    (filename == NULL)? "command-line " : "", MAX_PATTERN_COUNT);
+  return FALSE;
+  }
+
+sprintf(buffer, "%s%.*s%s", prefix[process_options], MBUFTHIRD, pattern,
+  suffix[process_options]);
+pattern_list[pattern_count] =
+  pcre_compile(buffer, options, &error, &errptr, pcretables);
+if (pattern_list[pattern_count++] != NULL) return TRUE;
+
+/* Handle compile errors */
+
+errptr -= (int)strlen(prefix[process_options]);
+if (errptr > (int)strlen(pattern)) errptr = (int)strlen(pattern);
+
+if (filename == NULL)
+  {
+  if (count == 0)
+    fprintf(stderr, "pcregrep: Error in command-line regex "
+      "at offset %d: %s\n", errptr, error);
+  else
+    fprintf(stderr, "pcregrep: Error in %s command-line regex "
+      "at offset %d: %s\n", ordin(count), errptr, error);
+  }
+else
+  {
+  fprintf(stderr, "pcregrep: Error in regex in line %d of %s "
+    "at offset %d: %s\n", count, filename, errptr, error);
+  }
+
+return FALSE;
+}
+
+
+
+/*************************************************
+*           Compile one supplied pattern         *
+*************************************************/
+
+/* When the -F option has been used, each string may be a list of strings,
+separated by line breaks. They will be matched literally.
+
+Arguments:
+  pattern        the pattern string
+  options        the PCRE options
+  filename       the file name, or NULL for a command-line pattern
+  count          0 if this is the only command line pattern, or
+                 number of the command line pattern, or
+                 linenumber for a pattern from a file
+
+Returns:         TRUE on success, FALSE after an error
+*/
+
+static BOOL
+compile_pattern(char *pattern, int options, char *filename, int count)
+{
+if ((process_options & PO_FIXED_STRINGS) != 0)
+  {
+  char *eop = pattern + strlen(pattern);
+  char buffer[MBUFTHIRD];
+  for(;;)
+    {
+    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 - ellength, pattern);
+    pattern = p;
+    if (!compile_single_pattern(buffer, options, filename, count))
+      return FALSE;
+    }
+  }
+else return compile_single_pattern(pattern, options, filename, count);
+}
+
+
+
+/*************************************************
 *                Main program                    *
 *************************************************/
 
@@ -840,10 +1485,26 @@ main(int argc, char **argv)
 {
 int i, j;
 int rc = 1;
-int options = 0;
+int pcre_options = 0;
+int cmd_pattern_count = 0;
 int errptr;
-const char *error;
 BOOL only_one_at_top;
+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 */
 
@@ -857,11 +1518,11 @@ for (i = 1; i < argc; i++)
   if (argv[i][0] != '-') break;
 
   /* If we hit an argument that is just "-", it may be a reference to STDIN,
-  but only if we have previously had -f to define the patterns. */
+  but only if we have previously had -e or -f to define the patterns. */
 
   if (argv[i][1] == 0)
     {
-    if (pattern_filename != NULL) break;
+    if (pattern_filename != NULL || pattern_count > 0) break;
       else exit(usage(2));
     }
 
@@ -883,9 +1544,9 @@ for (i = 1; i < argc; i++)
     /* Some long options have data that follows after =, for example file=name.
     Some options have variations in the long name spelling: specifically, we
     allow "regexp" because GNU grep allows it, though I personally go along
-    with Jeff Friedl in preferring "regex" without the "p". These options are
-    entered in the table as "regex(p)". No option is in both these categories,
-    fortunately. */
+    with Jeffrey Friedl and Larry Wall in preferring "regex" without the "p".
+    These options are entered in the table as "regex(p)". No option is in both
+    these categories, fortunately. */
 
     for (op = optionlist; op->one_char != 0; op++)
       {
@@ -933,6 +1594,30 @@ for (i = 1; i < argc; i++)
       }
     }
 
+
+  /* Jeffrey Friedl's debugging harness uses these additional options which
+  are not in the right form for putting in the option table because they use
+  only one hyphen, yet are more than one character long. By putting them
+  separately here, they will not get displayed as part of the help() output,
+  but I don't think Jeffrey will care about that. */
+
+#ifdef JFRIEDL_DEBUG
+  else if (strcmp(argv[i], "-pre") == 0) {
+          jfriedl_prefix = argv[++i];
+          continue;
+  } else if (strcmp(argv[i], "-post") == 0) {
+          jfriedl_postfix = argv[++i];
+          continue;
+  } else if (strcmp(argv[i], "-XT") == 0) {
+          sscanf(argv[++i], "%d", &jfriedl_XT);
+          continue;
+  } else if (strcmp(argv[i], "-XR") == 0) {
+          sscanf(argv[++i], "%d", &jfriedl_XR);
+          continue;
+  }
+#endif
+
+
   /* One-char options; many that have no data may be in a single argument; we
   continue till we hit the last one or one that needs data. */
 
@@ -955,42 +1640,94 @@ for (i = 1; i < argc; i++)
         option_data = s+1;
         break;
         }
-      options = handle_option(*s++, options);
+      pcre_options = handle_option(*s++, pcre_options);
       }
     }
 
-  /* At this point we should have op pointing to a matched option */
+  /* At this point we should have op pointing to a matched option. If the type
+  is NO_DATA, it means that there is no data, and the option might set
+  something in the PCRE options. */
 
   if (op->type == OP_NODATA)
-    options = handle_option(op->one_char, options);
-  else
     {
-    if (*option_data == 0)
+    pcre_options = handle_option(op->one_char, pcre_options);
+    continue;
+    }
+
+  /* If the option type is OP_OP_STRING or OP_OP_NUMBER, it's an option that
+  either has a value or defaults to something. It cannot have data in a
+  separate item. At the moment, the only such options are "colo(u)r" and
+  Jeffrey Friedl's special -S debugging option. */
+
+  if (*option_data == 0 &&
+      (op->type == OP_OP_STRING || op->type == OP_OP_NUMBER))
+    {
+    switch (op->one_char)
       {
-      if (i >= argc - 1 || longopwasequals)
-        {
-        fprintf(stderr, "pcregrep: Data missing after %s\n", argv[i]);
-        exit(usage(2));
-        }
-      option_data = argv[++i];
+      case N_COLOUR:
+      colour_option = (char *)"auto";
+      break;
+#ifdef JFRIEDL_DEBUG
+      case 'S':
+      S_arg = 0;
+      break;
+#endif
+      }
+    continue;
+    }
+
+  /* Otherwise, find the data string for the option. */
+
+  if (*option_data == 0)
+    {
+    if (i >= argc - 1 || longopwasequals)
+      {
+      fprintf(stderr, "pcregrep: Data missing after %s\n", argv[i]);
+      exit(usage(2));
+      }
+    option_data = argv[++i];
+    }
+
+  /* If the option type is OP_PATLIST, it's the -e option, which can be called
+  multiple times to create a list of patterns. */
+
+  if (op->type == OP_PATLIST)
+    {
+    if (cmd_pattern_count >= MAX_PATTERN_COUNT)
+      {
+      fprintf(stderr, "pcregrep: Too many command-line patterns (max %d)\n",
+        MAX_PATTERN_COUNT);
+      return 2;
       }
+    patterns[cmd_pattern_count++] = option_data;
+    }
 
-    if (op->type == OP_STRING) *((char **)op->dataptr) = option_data; else
+  /* Otherwise, deal with single string or numeric data values. */
+
+  else if (op->type != OP_NUMBER && op->type != OP_OP_NUMBER)
+    {
+    *((char **)op->dataptr) = option_data;
+    }
+  else
+    {
+    char *endptr;
+    int n = strtoul(option_data, &endptr, 10);
+    if (*endptr != 0)
       {
-      char *endptr;
-      int n = strtoul(option_data, &endptr, 10);
-      if (*endptr != 0)
+      if (longop)
         {
-        if (longop)
-          fprintf(stderr, "pcregrep: Malformed number \"%s\" after --%s\n",
-            option_data, op->long_name);
-        else
-          fprintf(stderr, "pcregrep: Malformed number \"%s\" after -%c\n",
-            option_data, op->one_char);
-        exit(usage(2));
+        char *equals = strchr(op->long_name, '=');
+        int nlen = (equals == NULL)? (int)strlen(op->long_name) :
+          equals - op->long_name;
+        fprintf(stderr, "pcregrep: Malformed number \"%s\" after --%.*s\n",
+          option_data, nlen, op->long_name);
         }
-      *((int *)op->dataptr) = n;
+      else
+        fprintf(stderr, "pcregrep: Malformed number \"%s\" after -%c\n",
+          option_data, op->one_char);
+      exit(usage(2));
       }
+    *((int *)op->dataptr) = n;
     }
   }
 
@@ -1003,102 +1740,191 @@ if (both_context > 0)
   if (before_context == 0) before_context = both_context;
   }
 
-pattern_list = (pcre **)malloc(MAX_PATTERN_COUNT * sizeof(pcre *));
-hints_list = (pcre_extra **)malloc(MAX_PATTERN_COUNT * sizeof(pcre_extra *));
+/* If a locale has not been provided as an option, see if the LC_CTYPE or
+LC_ALL environment variable is set, and if so, use it. */
 
-if (pattern_list == NULL || hints_list == NULL)
+if (locale == NULL)
   {
-  fprintf(stderr, "pcregrep: malloc failed\n");
-  return 2;
+  locale = getenv("LC_ALL");
+  locale_from = "LCC_ALL";
   }
 
-/* Compile the regular expression(s). */
-
-if (pattern_filename != NULL)
+if (locale == NULL)
   {
-  FILE *f = fopen(pattern_filename, "r");
-  char buffer[MBUFTHIRD + 16];
-  char *rdstart;
-  int adjust = 0;
+  locale = getenv("LC_CTYPE");
+  locale_from = "LC_CTYPE";
+  }
 
-  if (f == NULL)
+/* If a locale has been provided, set it, and generate the tables the PCRE
+needs. Otherwise, pcretables==NULL, which causes the use of default tables. */
+
+if (locale != NULL)
+  {
+  if (setlocale(LC_CTYPE, locale) == NULL)
     {
-    fprintf(stderr, "pcregrep: Failed to open %s: %s\n", pattern_filename,
-      strerror(errno));
+    fprintf(stderr, "pcregrep: Failed to set locale %s (obtained from %s)\n",
+      locale, locale_from);
     return 2;
     }
+  pcretables = pcre_maketables();
+  }
+
+/* Sort out colouring */
 
-  if (whole_lines)
+if (colour_option != NULL && strcmp(colour_option, "never") != 0)
+  {
+  if (strcmp(colour_option, "always") == 0) do_colour = TRUE;
+  else if (strcmp(colour_option, "auto") == 0) do_colour = is_stdout_tty();
+  else
     {
-    strcpy(buffer, "^(?:");
-    adjust = 4;
+    fprintf(stderr, "pcregrep: Unknown colour setting \"%s\"\n",
+      colour_option);
+    return 2;
     }
-  else if (word_match)
+  if (do_colour)
     {
-    strcpy(buffer, "\\b");
-    adjust = 2;
+    char *cs = getenv("PCREGREP_COLOUR");
+    if (cs == NULL) cs = getenv("PCREGREP_COLOR");
+    if (cs != NULL) colour_string = cs;
     }
+  }
+
+/* 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 */
 
-  rdstart = buffer + adjust;
-  while (fgets(rdstart, MBUFTHIRD, f) != NULL)
+if (dee_option != NULL)
+  {
+  if (strcmp(dee_option, "read") == 0) dee_action = dee_READ;
+  else if (strcmp(dee_option, "recurse") == 0) dee_action = dee_RECURSE;
+  else if (strcmp(dee_option, "skip") == 0) dee_action = dee_SKIP;
+  else
     {
-    char *s = rdstart + (int)strlen(rdstart);
-    if (pattern_count >= MAX_PATTERN_COUNT)
-      {
-      fprintf(stderr, "pcregrep: Too many patterns in file (max %d)\n",
-        MAX_PATTERN_COUNT);
-      return 2;
-      }
-    while (s > rdstart && isspace((unsigned char)(s[-1]))) s--;
-    if (s == rdstart) continue;
-    if (whole_lines) strcpy(s, ")$");
-      else if (word_match)strcpy(s, "\\b");
-        else *s = 0;
-    pattern_list[pattern_count] = pcre_compile(buffer, options, &error,
-      &errptr, NULL);
-    if (pattern_list[pattern_count++] == NULL)
-      {
-      fprintf(stderr, "pcregrep: Error in regex number %d at offset %d: %s\n",
-        pattern_count, errptr - adjust, error);
-      return 2;
-      }
+    fprintf(stderr, "pcregrep: Invalid value \"%s\" for -d\n", dee_option);
+    return 2;
     }
-  fclose(f);
   }
 
-/* If no file name, a single regex must be given inline. */
+if (DEE_option != NULL)
+  {
+  if (strcmp(DEE_option, "read") == 0) DEE_action = DEE_READ;
+  else if (strcmp(DEE_option, "skip") == 0) DEE_action = DEE_SKIP;
+  else
+    {
+    fprintf(stderr, "pcregrep: Invalid value \"%s\" for -D\n", DEE_option);
+    return 2;
+    }
+  }
 
-else
+/* Check the values for Jeffrey Friedl's debugging options. */
+
+#ifdef JFRIEDL_DEBUG
+if (S_arg > 9)
   {
-  char buffer[MBUFTHIRD + 16];
-  char *pat;
-  int adjust = 0;
+  fprintf(stderr, "pcregrep: bad value for -S option\n");
+  return 2;
+  }
+if (jfriedl_XT != 0 || jfriedl_XR != 0)
+  {
+  if (jfriedl_XT == 0) jfriedl_XT = 1;
+  if (jfriedl_XR == 0) jfriedl_XR = 1;
+  }
+#endif
+
+/* Get memory to store the pattern and hints lists. */
+
+pattern_list = (pcre **)malloc(MAX_PATTERN_COUNT * sizeof(pcre *));
+hints_list = (pcre_extra **)malloc(MAX_PATTERN_COUNT * sizeof(pcre_extra *));
 
+if (pattern_list == NULL || hints_list == NULL)
+  {
+  fprintf(stderr, "pcregrep: malloc failed\n");
+  return 2;
+  }
+
+/* If no patterns were provided by -e, and there is no file provided by -f,
+the first argument is the one and only pattern, and it must exist. */
+
+if (cmd_pattern_count == 0 && pattern_filename == NULL)
+  {
   if (i >= argc) return usage(2);
+  patterns[cmd_pattern_count++] = argv[i++];
+  }
+
+/* Compile the patterns that were provided on the command line, either by
+multiple uses of -e or as a single unkeyed pattern. */
+
+for (j = 0; j < cmd_pattern_count; j++)
+  {
+  if (!compile_pattern(patterns[j], pcre_options, NULL,
+       (j == 0 && cmd_pattern_count == 1)? 0 : j + 1))
+    return 2;
+  }
+
+/* Compile the regular expressions that are provided in a file. */
+
+if (pattern_filename != NULL)
+  {
+  int linenumber = 0;
+  FILE *f;
+  char *filename;
+  char buffer[MBUFTHIRD];
 
-  if (whole_lines)
+  if (strcmp(pattern_filename, "-") == 0)
     {
-    sprintf(buffer, "^(?:%.*s)$", MBUFTHIRD, argv[i++]);
-    pat = buffer;
-    adjust = 4;
+    f = stdin;
+    filename = stdin_name;
     }
-  else if (word_match)
+  else
     {
-    sprintf(buffer, "\\b%.*s\\b", MBUFTHIRD, argv[i++]);
-    pat = buffer;
-    adjust = 2;
+    f = fopen(pattern_filename, "r");
+    if (f == NULL)
+      {
+      fprintf(stderr, "pcregrep: Failed to open %s: %s\n", pattern_filename,
+        strerror(errno));
+      return 2;
+      }
+    filename = pattern_filename;
     }
-  else pat = argv[i++];
-
-  pattern_list[0] = pcre_compile(pat, options, &error, &errptr, NULL);
 
-  if (pattern_list[0] == NULL)
+  while (fgets(buffer, MBUFTHIRD, f) != NULL)
     {
-    fprintf(stderr, "pcregrep: Error in regex at offset %d: %s\n",
-      errptr - adjust, error);
-    return 2;
+    char *s = buffer + (int)strlen(buffer);
+    while (s > buffer && isspace((unsigned char)(s[-1]))) s--;
+    *s = 0;
+    linenumber++;
+    if (buffer[0] == 0) continue;   /* Skip blank lines */
+    if (!compile_pattern(buffer, pcre_options, filename, linenumber))
+      return 2;
     }
-  pattern_count++;
+
+  if (f != stdin) fclose(f);
   }
 
 /* Study the regular expressions, as we will be running them many times */
@@ -1119,7 +1945,8 @@ for (j = 0; j < pattern_count; j++)
 
 if (exclude_pattern != NULL)
   {
-  exclude_compiled = pcre_compile(exclude_pattern, 0, &error, &errptr, NULL);
+  exclude_compiled = pcre_compile(exclude_pattern, 0, &error, &errptr,
+    pcretables);
   if (exclude_compiled == NULL)
     {
     fprintf(stderr, "pcregrep: Error in 'exclude' regex at offset %d: %s\n",
@@ -1130,7 +1957,8 @@ if (exclude_pattern != NULL)
 
 if (include_pattern != NULL)
   {
-  include_compiled = pcre_compile(include_pattern, 0, &error, &errptr, NULL);
+  include_compiled = pcre_compile(include_pattern, 0, &error, &errptr,
+    pcretables);
   if (include_compiled == NULL)
     {
     fprintf(stderr, "pcregrep: Error in 'include' regex at offset %d: %s\n",
@@ -1139,21 +1967,22 @@ if (include_pattern != NULL)
     }
   }
 
-/* If there are no further arguments, do the business on stdin and exit */
+/* If there are no further arguments, do the business on stdin and exit. */
 
-if (i >= argc) return pcregrep(stdin,
-  (filenames_only || filenames_nomatch_only)? stdin_name : NULL);
+if (i >= argc)
+  return pcregrep(stdin, (filenames > FN_DEFAULT)? stdin_name : NULL);
 
 /* Otherwise, work through the remaining arguments as files or directories.
 Pass in the fact that there is only one argument at top level - this suppresses
-the file name if the argument is not a directory and filenames_only is not set.
-*/
+the file name if the argument is not a directory and filenames are not
+otherwise forced. */
 
-only_one_at_top = (i == argc - 1);
+only_one_at_top = i == argc - 1;   /* Catch initial value of i */
 
 for (; i < argc; i++)
   {
-  int frc = grep_or_recurse(argv[i], recurse, filenames, only_one_at_top);
+  int frc = grep_or_recurse(argv[i], dee_action == dee_RECURSE,
+    only_one_at_top);
   if (frc > 1) rc = frc;
     else if (frc == 0 && rc == 1) rc = 0;
   }
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcreposix.c tin-2.0.0/pcre/pcreposix.c
--- tin-1.8.3/pcre/pcreposix.c	2005-09-12 16:41:59.000000000 +0200
+++ tin-2.0.0/pcre/pcreposix.c	2011-04-17 16:04:38.352275193 +0200
@@ -6,7 +6,7 @@
 and semantics are as close as possible to those of the Perl 5 language.
 
                        Written by Philip Hazel
-           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
@@ -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 */
@@ -131,7 +141,7 @@ static const char *const pstring[] = {
 *          Translate error code to string        *
 *************************************************/
 
-PCRE_EXPORT size_t
+PCRE_DATA_SCOPE size_t
 regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
 {
 const char *message, *addmessage;
@@ -166,7 +176,7 @@ return length + addlength;
 *           Free store held by a regex           *
 *************************************************/
 
-PCRE_EXPORT void
+PCRE_DATA_SCOPE void
 regfree(regex_t *preg)
 {
 (pcre_free)(preg->re_pcre);
@@ -189,7 +199,7 @@ Returns:      0 on success
               various non-zero codes on failure
 */
 
-PCRE_EXPORT int
+PCRE_DATA_SCOPE int
 regcomp(regex_t *preg, const char *pattern, int cflags)
 {
 const char *errorptr;
@@ -197,9 +207,11 @@ int erroffset;
 int errorcode;
 int options = 0;
 
-if ((cflags & REG_ICASE) != 0) options |= PCRE_CASELESS;
+if ((cflags & REG_ICASE) != 0)   options |= PCRE_CASELESS;
 if ((cflags & REG_NEWLINE) != 0) options |= PCRE_MULTILINE;
-if ((cflags & REG_DOTALL) != 0) options |= PCRE_DOTALL;
+if ((cflags & REG_DOTALL) != 0)  options |= PCRE_DOTALL;
+if ((cflags & REG_NOSUB) != 0)   options |= PCRE_NO_AUTO_CAPTURE;
+if ((cflags & REG_UTF8) != 0)    options |= PCRE_UTF8;
 
 preg->re_pcre = pcre_compile2(pattern, options, &errorcode, &errorptr,
   &erroffset, NULL);
@@ -223,9 +235,13 @@ substring, so we have to get and release
 the POSIX structures as was done in earlier releases when PCRE needed only 2
 ints. However, if the number of possible capturing brackets is small, use a
 block of store on the stack, to reduce the use of malloc/free. The threshold is
-in a macro that can be changed at configure time. */
+in a macro that can be changed at configure time.
 
-PCRE_EXPORT int
+If REG_NOSUB was specified at compile time, the PCRE_NO_AUTO_CAPTURE flag will
+be set. When this is the case, the nmatch and pmatch arguments are ignored, and
+the only result is yes/no/error. */
+
+PCRE_DATA_SCOPE int
 regexec(const regex_t *preg, const char *string, size_t nmatch,
   regmatch_t pmatch[], int eflags)
 {
@@ -234,13 +250,20 @@ int options = 0;
 int *ovector = NULL;
 int small_ovector[POSIX_MALLOC_THRESHOLD * 3];
 BOOL allocated_ovector = FALSE;
+BOOL nosub =
+  (((const pcre *)preg->re_pcre)->options & PCRE_NO_AUTO_CAPTURE) != 0;
 
 if ((eflags & REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
 if ((eflags & REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
 
 ((regex_t *)preg)->re_erroffset = (size_t)(-1);  /* Only has meaning after compile */
 
-if (nmatch > 0)
+/* When no string data is being returned, ensure that nmatch is zero.
+Otherwise, ensure the vector for holding the return data is large enough. */
+
+if (nosub) nmatch = 0;
+
+else if (nmatch > 0)
   {
   if (nmatch <= POSIX_MALLOC_THRESHOLD)
     {
@@ -248,6 +271,7 @@ if (nmatch > 0)
     }
   else
     {
+    if (nmatch > INT_MAX/(sizeof(int) * 3)) return REG_ESPACE;
     ovector = (int *)malloc(sizeof(int) * nmatch * 3);
     if (ovector == NULL) return REG_ESPACE;
     allocated_ovector = TRUE;
@@ -262,13 +286,16 @@ if (rc == 0) rc = nmatch;    /* All capt
 if (rc >= 0)
   {
   size_t i;
-  for (i = 0; i < (size_t)rc; i++)
+  if (!nosub)
     {
-    pmatch[i].rm_so = ovector[i*2];
-    pmatch[i].rm_eo = ovector[i*2+1];
+    for (i = 0; i < (size_t)rc; i++)
+      {
+      pmatch[i].rm_so = ovector[i*2];
+      pmatch[i].rm_eo = ovector[i*2+1];
+      }
+    if (allocated_ovector) free(ovector);
+    for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
     }
-  if (allocated_ovector) free(ovector);
-  for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
   return 0;
   }
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcreposix.h tin-2.0.0/pcre/pcreposix.h
--- tin-1.8.3/pcre/pcreposix.h	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/pcreposix.h	2011-04-17 16:04:38.380279456 +0200
@@ -9,7 +9,7 @@
 Compatible Regular Expression library. It defines the things POSIX says should
 be there. I hope.
 
-            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
@@ -50,22 +50,20 @@ POSSIBILITY OF SUCH DAMAGE.
 extern "C" {
 #endif
 
-/* Options defined by POSIX. */
+/* Options, mostly defined by POSIX, but with a couple of extras. */
 
-#define REG_ICASE     0x01
-#define REG_NEWLINE   0x02
-#define REG_NOTBOL    0x04
-#define REG_NOTEOL    0x08
+#define REG_ICASE     0x0001
+#define REG_NEWLINE   0x0002
+#define REG_NOTBOL    0x0004
+#define REG_NOTEOL    0x0008
+#define REG_DOTALL    0x0010   /* NOT defined by POSIX. */
+#define REG_NOSUB     0x0020
+#define REG_UTF8      0x0040   /* NOT defined by POSIX. */
 
-/* Additional options, not defined by POSIX, but somebody wanted them. */
-
-#define REG_DOTALL    0x10
-
-/* These are not used by PCRE, but by defining them we make it easier
+/* This is not used by PCRE, but by defining it we make it easier
 to slot PCRE into existing programs that make POSIX calls. */
 
 #define REG_EXTENDED  0
-#define REG_NOSUB     0
 
 /* Error values. Not all these are relevant or used by the wrapper. */
 
@@ -107,12 +105,40 @@ typedef struct {
   regoff_t rm_eo;
 } regmatch_t;
 
+/* Win32 uses DLL by default; it needs special stuff for exported functions
+when building PCRE. */
+
+#ifndef PCRE_DATA_SCOPE
+#ifdef _WIN32
+#  ifdef PCRE_DEFINITION
+#    ifdef DLL_EXPORT
+#      define PCRE_DATA_SCOPE __declspec(dllexport)
+#    endif
+#  else
+#    ifndef PCRE_STATIC
+#      define PCRE_DATA_SCOPE extern __declspec(dllimport)
+#    endif
+#  endif
+#endif
+#endif
+
+/* Otherwise, we use the standard "extern". */
+
+#ifndef PCRE_DATA_SCOPE
+#  ifdef __cplusplus
+#    define PCRE_DATA_SCOPE     extern "C"
+#  else
+#    define PCRE_DATA_SCOPE     extern
+#  endif
+#endif
+
 /* The functions */
 
-extern int regcomp(regex_t *, const char *, int);
-extern int regexec(const regex_t *, const char *, size_t, regmatch_t *, int);
-extern size_t regerror(int, const regex_t *, char *, size_t);
-extern void regfree(regex_t *);
+PCRE_DATA_SCOPE int regcomp(regex_t *, const char *, int);
+PCRE_DATA_SCOPE int regexec(const regex_t *, const char *, size_t,
+                  regmatch_t *, int);
+PCRE_DATA_SCOPE size_t regerror(int, const regex_t *, char *, size_t);
+PCRE_DATA_SCOPE void regfree(regex_t *);
 
 #ifdef __cplusplus
 }   /* extern "C" */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/pcretest.c tin-2.0.0/pcre/pcretest.c
--- tin-1.8.3/pcre/pcretest.c	2005-09-12 16:42:07.000000000 +0200
+++ tin-2.0.0/pcre/pcretest.c	2011-04-17 16:04:38.444289195 +0200
@@ -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) |
@@ -475,6 +598,116 @@ return ((value & 0x000000ff) << 24) |
 
 
 /*************************************************
+*        Check match or recursion limit          *
+*************************************************/
+
+static int
+check_match_limit(pcre *re, pcre_extra *extra, uschar *bptr, int len,
+  int start_offset, int options, int *use_offsets, int use_size_offsets,
+  int flag, unsigned long int *limit, int errnumber, const char *msg)
+{
+int count;
+int min = 0;
+int mid = 64;
+int max = -1;
+
+extra->flags |= flag;
+
+for (;;)
+  {
+  *limit = mid;
+
+  count = pcre_exec(re, extra, (char *)bptr, len, start_offset, options,
+    use_offsets, use_size_offsets);
+
+  if (count == errnumber)
+    {
+    /* fprintf(outfile, "Testing %s limit = %d\n", msg, mid); */
+    min = mid;
+    mid = (mid == max - 1)? max : (max > 0)? (min + max)/2 : mid*2;
+    }
+
+  else if (count >= 0 || count == PCRE_ERROR_NOMATCH ||
+                         count == PCRE_ERROR_PARTIAL)
+    {
+    if (mid == min + 1)
+      {
+      fprintf(outfile, "Minimum %s limit = %d\n", msg, mid);
+      break;
+      }
+    /* fprintf(outfile, "Testing %s limit = %d\n", msg, mid); */
+    max = mid;
+    mid = (min + mid)/2;
+    }
+  else break;    /* Some other error */
+  }
+
+extra->flags &= ~flag;
+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                    *
 *************************************************/
 
@@ -489,8 +722,10 @@ 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;
 int size_offsets = 45;
 int size_offsets_max;
 int *offsets = NULL;
@@ -501,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. */
+
+uschar copynames[1024];
+uschar getnames[1024];
 
-unsigned char *buffer;
-unsigned char *dbuffer;
+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] == '-')
@@ -530,7 +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
@@ -543,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
@@ -556,34 +838,31 @@ 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);
     printf("  POSIX malloc threshold = %d\n", rc);
     (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT, &rc);
     printf("  Default match limit = %d\n", rc);
+    (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT_RECURSION, &rc);
+    printf("  Default recursion depth limit = %d\n", rc);
     (void)pcre_config(PCRE_CONFIG_STACKRECURSE, &rc);
     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;
     }
@@ -607,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]);
@@ -618,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]);
@@ -634,9 +913,9 @@ pcre_free = new_free;
 pcre_stack_malloc = stack_malloc;
 pcre_stack_free = stack_free;
 
-/* Heading line, then prompt for first regex if stdin */
+/* Heading line unless quiet, then prompt for first regex if stdin */
 
-fprintf(outfile, "PCRE version %s\n\n", pcre_version());
+if (!quiet) fprintf(outfile, "PCRE version %s\n\n", pcre_version());
 
 /* Main loop */
 
@@ -663,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);
 
@@ -680,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;
 
@@ -728,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 */
 
@@ -773,6 +1052,7 @@ while (!done)
     }
 
   pp = p;
+  poffset = p - buffer;
 
   for(;;)
     {
@@ -783,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;
@@ -801,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. */
@@ -832,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;
 
@@ -853,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;
@@ -872,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 ' ':
@@ -896,6 +1186,9 @@ while (!done)
     if ((options & PCRE_CASELESS) != 0) cflags |= REG_ICASE;
     if ((options & PCRE_MULTILINE) != 0) cflags |= REG_NEWLINE;
     if ((options & PCRE_DOTALL) != 0) cflags |= REG_DOTALL;
+    if ((options & PCRE_NO_AUTO_CAPTURE) != 0) cflags |= REG_NOSUB;
+    if ((options & PCRE_UTF8) != 0) cflags |= REG_UTF8;
+
     rc = regcomp(&preg, (char *)p, cflags);
 
     /* Compilation failed; go back for another re, skipping to blank line
@@ -903,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;
       }
@@ -915,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);
       }
 
@@ -944,7 +1237,7 @@ while (!done)
         {
         for (;;)
           {
-          if (fgets((char *)buffer, BUFFER_SIZE, infile) == NULL)
+          if (extend_inputline(infile, buffer) == NULL)
             {
             done = 1;
             goto CONTINUE;
@@ -979,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);
@@ -1032,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;
@@ -1042,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);
@@ -1105,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\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" : "",
@@ -1121,15 +1414,36 @@ while (!done)
           ((get_options & PCRE_DOLLAR_ENDONLY) != 0)? " dollar_endonly" : "",
           ((get_options & PCRE_EXTRA) != 0)? " extra" : "",
           ((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" : "");
 
-      if (((((real_pcre *)re)->options) & PCRE_ICHANGED) != 0)
-        fprintf(outfile, "Case state changes\n");
+      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;
+
+        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)
         {
@@ -1140,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);
@@ -1155,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);
@@ -1191,7 +1505,7 @@ while (!done)
                   fprintf(outfile, "\n  ");
                   c = 2;
                   }
-                if (isprint(i) && i != ' ')
+                if (PRINTHEX(i) && i != ' ')
                   {
                   fprintf(outfile, "%c ", i);
                   c += 2;
@@ -1250,6 +1564,7 @@ while (!done)
                 strerror(errno));
               }
             else fprintf(outfile, "Study data written to %s\n", to_file);
+
             }
           }
         fclose(f);
@@ -1266,8 +1581,8 @@ while (!done)
 
   for (;;)
     {
-    unsigned char *q;
-    unsigned char *bptr = dbuffer;
+    uschar *q;
+    uschar *bptr = dbuffer;
     int *use_offsets = offsets;
     int use_size_offsets = size_offsets;
     int callout_data = 0;
@@ -1284,6 +1599,12 @@ while (!done)
 
     options = 0;
 
+    *copynames = 0;
+    *getnames = 0;
+
+    copynamesptr = copynames;
+    getnamesptr = getnames;
+
     pcre_callout = callout;
     first_callout = 1;
     callout_extra = 0;
@@ -1292,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;
@@ -1330,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':
@@ -1391,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 == '+')
           {
@@ -1459,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;
 
@@ -1505,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;
@@ -1522,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;
       }
@@ -1552,9 +1924,14 @@ 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)
+              != 0)
+        {
+        fprintf(outfile, "Matched with REG_NOSUB\n");
+        }
       else
         {
         size_t i;
@@ -1586,7 +1963,7 @@ while (!done)
 
     for (;; gmatched++)    /* Loop for /g or /G */
       {
-      if (timeit)
+      if (timeitm > 0)
         {
         register int i;
         clock_t time_taken;
@@ -1596,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));
@@ -1604,59 +1981,37 @@ 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);
         }
 
       /* If find_match_limit is set, we want to do repeated matches with
-      varying limits in order to find the minimum value. */
+      varying limits in order to find the minimum value for the match limit and
+      for the recursion limit. */
 
       if (find_match_limit)
         {
-        int min = 0;
-        int mid = 64;
-        int max = -1;
-
         if (extra == NULL)
           {
           extra = (pcre_extra *)malloc(sizeof(pcre_extra));
           extra->flags = 0;
           }
-        extra->flags |= PCRE_EXTRA_MATCH_LIMIT;
-
-        for (;;)
-          {
-          extra->match_limit = mid;
-          count = pcre_exec(re, extra, (char *)bptr, len, start_offset,
-            options | g_notempty, use_offsets, use_size_offsets);
-          if (count == PCRE_ERROR_MATCHLIMIT)
-            {
-            /* fprintf(outfile, "Testing match limit = %d\n", mid); */
-            min = mid;
-            mid = (mid == max - 1)? max : (max > 0)? (min + max)/2 : mid*2;
-            }
-          else if (count >= 0 || count == PCRE_ERROR_NOMATCH ||
-                                 count == PCRE_ERROR_PARTIAL)
-            {
-            if (mid == min + 1)
-              {
-              fprintf(outfile, "Minimum match limit = %d\n", mid);
-              break;
-              }
-            /* fprintf(outfile, "Testing match limit = %d\n", mid); */
-            max = mid;
-            mid = (min + mid)/2;
-            }
-          else break;    /* Some other error */
-          }
 
-        extra->flags &= ~PCRE_EXTRA_MATCH_LIMIT;
+        (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()");
+
+        count = check_match_limit(re, extra, bptr, len, start_offset,
+          options|g_notempty, use_offsets, use_size_offsets,
+          PCRE_EXTRA_MATCH_LIMIT_RECURSION, &(extra->match_limit_recursion),
+          PCRE_ERROR_RECURSIONLIMIT, "match() recursion");
         }
 
       /* If callout_data is set, use the interface with additional data */
@@ -1708,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)
@@ -1736,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)
@@ -1746,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)
@@ -1758,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;
@@ -1863,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:
@@ -1877,6 +2283,7 @@ while (!done)
     {
     new_free((void *)tables);
     setlocale(LC_CTYPE, "C");
+    locale_set = 0;
     }
   }
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/perltest tin-2.0.0/pcre/perltest
--- tin-1.8.3/pcre/perltest	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/perltest	2011-04-17 16:04:38.472293458 +0200
@@ -2,11 +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).
+# 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.
@@ -16,7 +17,6 @@ my($t) = "";
 
 if ($utf8)
   {
-#  use utf8;                    <=============== For UTF-8 in Perl 5.6
   @p = unpack('U*', $_[0]);
   foreach $c (@p)
     {
@@ -38,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.
@@ -88,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: $@";
@@ -138,7 +127,6 @@ for (;;)
     s/^\s+//;
 
     last if ($_ eq "");
-
     $x = eval "\"$_\"";   # To get escapes processed
 
     # Empty array for holding results, then do the matching.
@@ -164,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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput1 tin-2.0.0/pcre/testdata/testinput1
--- tin-1.8.3/pcre/testdata/testinput1	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput1	2011-04-17 16:04:38.944365297 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput2 tin-2.0.0/pcre/testdata/testinput2
--- tin-1.8.3/pcre/testdata/testinput2	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput2	2011-04-17 16:04:39.016376256 +0200
@@ -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)
 
@@ -672,12 +674,18 @@
 
 /^[[:^alpha:]]/D
              
+/[_[:alpha:]]/IS
+
 /^[[:ascii:]]/D
 
 /^[[:^ascii:]]/D
 
 /^[[:blank:]]/D
 
+/^[[:^blank:]]/D
+
+/[\n\x0b\x0c\x0d[:blank:]]/IS
+
 /^[[:cntrl:]]/D
 
 /^[[:digit:]]/D
@@ -706,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
 
@@ -808,10 +816,10 @@
     *** Failers 
     AB  
     
-/   (?i)abc/xD
+/   (?i)abc/IxD
 
 /#this is a comment
-  (?i)abc/xD
+  (?i)abc/IxD
 
 /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D
 
@@ -846,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
@@ -876,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
@@ -896,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>
@@ -934,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
 
@@ -955,7 +963,7 @@
 
 /(?=a).*/I
 
-/(?=abc).xyz/iI
+/(?=abc).xyz/IiI
 
 /(?=abc)(?i).xyz/I
 
@@ -997,7 +1005,7 @@
 
 /a^b/I
 
-/^a/mI
+/^a/Im
   abcde
   xy\nabc 
   *** Failers 
@@ -1009,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
@@ -1096,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<
@@ -1116,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!
@@ -1124,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>
@@ -1148,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  
@@ -1173,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!
@@ -1181,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
@@ -1235,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]
     [] 
 
@@ -1260,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
@@ -1311,7 +1319,7 @@
 /(?!.bcd).*/I
   Xbcd12345 
 
-/abcde/
+/abcde/I
     ab\P
     abc\P
     abcd\P
@@ -1320,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 
@@ -1350,7 +1358,7 @@
 
 /[abc]+DE/I
 
-/[abc]?123/
+/[abc]?123/I
     123\P
     a\P
     b\P
@@ -1358,7 +1366,7 @@
     c12\P
     c123\P      
 
-/^(?:\d){3,5}X/
+/^(?:\d){3,5}X/I
     1\P
     123\P
     123X
@@ -1370,84 +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)\)[^()]*)*/I
+    (this(and)that
+    (this(and)that) 
+    (this(and)that)stuff
+
+/[^()]*(?:\((?>(?R))\)[^()]*)*/I
+    (this(and)that
+    (this(and)that) 
+    
+/[^()]*(?:\((?R)\))*[^()]*/I
+    (this(and)that
+    (this(and)that) 
+
+/(?:\((?R)\))*[^()]*/I
+    (this(and)that
+    (this(and)that) 
+    ((this)) 
+
+/(?:\((?R)\))|[^()]*/I
+    (this(and)that
+    (this(and)that) 
+    (this)
+    ((this)) 
+    
+/a(b)c/IPN
+    abc
+    
+/a(?P<name>b)c/IPN
+    abc  
+    
+/\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 
+
+/.+foo/s
+    afoo
+    \r\nfoo 
+    \nfoo 
+
 / End of testinput2 /
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput3 tin-2.0.0/pcre/testdata/testinput3
--- tin-1.8.3/pcre/testdata/testinput3	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput3	2011-04-17 16:04:39.064383562 +0200
@@ -62,4 +62,30 @@
     *** Failers 
     école
 
+/\W+/Lfr_FR
+    >>>\xaa<<<
+    >>>\xba<<< 
+
+/[\W]+/Lfr_FR
+    >>>\xaa<<<
+    >>>\xba<<< 
+
+/[^[:alpha:]]+/Lfr_FR
+    >>>\xaa<<<
+    >>>\xba<<< 
+
+/\w+/Lfr_FR
+    >>>\xaa<<<
+    >>>\xba<<< 
+
+/[\w]+/Lfr_FR
+    >>>\xaa<<<
+    >>>\xba<<< 
+
+/[[:alpha:]]+/Lfr_FR
+    >>>\xaa<<<
+    >>>\xba<<< 
+    
+/[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR 
+
 / End of testinput3 /
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput4 tin-2.0.0/pcre/testdata/testinput4
--- tin-1.8.3/pcre/testdata/testinput4	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput4	2011-04-17 16:04:39.088387214 +0200
@@ -510,4 +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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput5 tin-2.0.0/pcre/testdata/testinput5
--- tin-1.8.3/pcre/testdata/testinput5	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput5	2011-04-17 16:04:39.148396345 +0200
@@ -260,4 +260,99 @@
 /\w/8
     \x{100}X   
 
+/a\x{1234}b/P8
+    a\x{1234}b
+
+/^\áˆ´/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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput6 tin-2.0.0/pcre/testdata/testinput6
--- tin-1.8.3/pcre/testdata/testinput6	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput6	2011-04-17 16:04:39.192403044 +0200
@@ -51,6 +51,7 @@
     \x{09f} 
   
 /^\p{Cn}/8
+    \x{e0000}
     ** Failers
     \x{09f} 
   
@@ -77,9 +78,15 @@
   
 /^\p{Lo}/8
     \x{1bb}
+    \x{3400}
+    \x{3401}
+    \x{4d00}
+    \x{4db4}
+    \x{4db5}     
     ** Failers
     a 
     \x{2b0}
+    \x{4db6} 
   
 /^\p{Lt}/8
     \x{1c5}
@@ -514,4 +521,245 @@
     A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
     A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
     
+/^\p{Han}+/8
+    \x{2e81}\x{3007}\x{2f804}\x{31a0}
+    ** Failers
+    \x{2e7f}  
+
+/^\P{Katakana}+/8
+    \x{3105}
+    ** Failers
+    \x{30ff}  
+
+/^[\p{Arabic}]/8
+    \x{06e9}
+    \x{060b}
+    ** Failers
+    X\x{06e9}   
+
+/^[\P{Yi}]/8
+    \x{2f800}
+    ** Failers
+    \x{a014}
+    \x{a4c6}   
+    
+/^\p{Any}X/8
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    X  
+    
+/^\P{Any}X/8
+    ** Failers
+    AX
+    
+/^\p{Any}?X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    ABXYZ   
+
+/^\P{Any}?X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ 
+    ABXYZ   
+
+/^\p{Any}+X/8
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+    XYZ
+
+/^\P{Any}+X/8
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    XYZ
+
+/^\p{Any}*X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+
+/^\P{Any}*X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+
+/^[\p{Any}]X/8
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    X  
+    
+/^[\P{Any}]X/8
+    ** Failers
+    AX
+    
+/^[\p{Any}]?X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    ABXYZ   
+
+/^[\P{Any}]?X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ 
+    ABXYZ   
+
+/^[\p{Any}]+X/8
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+    XYZ
+
+/^[\P{Any}]+X/8
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    XYZ
+
+/^[\p{Any}]*X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+
+/^[\P{Any}]*X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+
+/^\p{Any}{3,5}?/8
+    abcdefgh
+    \x{1234}\n\r\x{3456}xyz 
+
+/^\p{Any}{3,5}/8
+    abcdefgh
+    \x{1234}\n\r\x{3456}xyz 
+
+/^\P{Any}{3,5}?/8
+    ** Failers
+    abcdefgh
+    \x{1234}\n\r\x{3456}xyz 
+
+/^\p{L&}X/8
+     AXY
+     aXY
+     \x{1c5}XY
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^[\p{L&}]X/8
+     AXY
+     aXY
+     \x{1c5}XY
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^\p{L&}+X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^[\p{L&}]+X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^\p{L&}+?X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^[\p{L&}]+?X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^\P{L&}X/8
+     !XY
+     \x{1bb}XY
+     \x{2b0}XY
+     ** Failers
+     \x{1c5}XY
+     AXY      
+
+/^[\P{L&}]X/8
+     !XY
+     \x{1bb}XY
+     \x{2b0}XY
+     ** Failers
+     \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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput7 tin-2.0.0/pcre/testdata/testinput7
--- tin-1.8.3/pcre/testdata/testinput7	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput7	2011-04-17 16:04:39.252412175 +0200
@@ -483,10 +483,10 @@
    
 /(?<=foo)bar/
    xyzfo\P 
-   foob\R\P\>2 
+   foob\P\>2 
    foobar...\R\P\>4 
    xyzfo\P
-   foobar\R\>2  
+   foobar\>2  
    *** Failers
    xyzfo\P
    obar\R   
@@ -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
@@ -4010,4 +4010,223 @@
     ** Failers 
     line one\nthis is a line\nbreak in the second line 
 
+/1234/
+    123\P
+    a4\P\R
+
+/1234/
+    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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput8 tin-2.0.0/pcre/testdata/testinput8
--- tin-1.8.3/pcre/testdata/testinput8	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput8	2011-04-17 16:04:39.284417046 +0200
@@ -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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testinput9 tin-2.0.0/pcre/testdata/testinput9
--- tin-1.8.3/pcre/testdata/testinput9	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testinput9	2011-04-17 16:04:39.336424961 +0200
@@ -596,4 +596,221 @@
     \x{100}   
     \x{101} 
     
+/^\p{Han}+/8
+    \x{2e81}\x{3007}\x{2f804}\x{31a0}
+    ** Failers
+    \x{2e7f}  
+
+/^\P{Katakana}+/8
+    \x{3105}
+    ** Failers
+    \x{30ff}  
+
+/^[\p{Arabic}]/8
+    \x{06e9}
+    \x{060b}
+    ** Failers
+    X\x{06e9}   
+
+/^[\P{Yi}]/8
+    \x{2f800}
+    ** Failers
+    \x{a014}
+    \x{a4c6}   
+
+/^\p{Any}X/8
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    X  
+    
+/^\P{Any}X/8
+    ** Failers
+    AX
+    
+/^\p{Any}?X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    ABXYZ   
+
+/^\P{Any}?X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ 
+    ABXYZ   
+
+/^\p{Any}+X/8
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+    XYZ
+
+/^\P{Any}+X/8
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    XYZ
+
+/^\p{Any}*X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+
+/^\P{Any}*X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+
+/^[\p{Any}]X/8
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    X  
+    
+/^[\P{Any}]X/8
+    ** Failers
+    AX
+    
+/^[\p{Any}]?X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ 
+    ** Failers
+    ABXYZ   
+
+/^[\P{Any}]?X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ 
+    ABXYZ   
+
+/^[\p{Any}]+X/8
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+    XYZ
+
+/^[\P{Any}]+X/8
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    XYZ
+
+/^[\p{Any}]*X/8
+    XYZ
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+    ** Failers
+
+/^[\P{Any}]*X/8
+    XYZ
+    ** Failers
+    AXYZ
+    \x{1234}XYZ
+    A\x{1234}XYZ
+
+/^\p{Any}{3,5}?/8
+    abcdefgh
+    \x{1234}\n\r\x{3456}xyz 
+
+/^\p{Any}{3,5}/8
+    abcdefgh
+    \x{1234}\n\r\x{3456}xyz 
+
+/^\P{Any}{3,5}?/8
+    ** Failers
+    abcdefgh
+    \x{1234}\n\r\x{3456}xyz 
+
+/^\p{L&}X/8
+     AXY
+     aXY
+     \x{1c5}XY
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^[\p{L&}]X/8
+     AXY
+     aXY
+     \x{1c5}XY
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^\p{L&}+X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^[\p{L&}]+X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^\p{L&}+?X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^[\p{L&}]+?X/8
+     AXY
+     aXY
+     AbcdeXyz 
+     \x{1c5}AbXY
+     abcDEXypqreXlmn 
+     ** Failers
+     \x{1bb}XY
+     \x{2b0}XY
+     !XY      
+
+/^\P{L&}X/8
+     !XY
+     \x{1bb}XY
+     \x{2b0}XY
+     ** Failers
+     \x{1c5}XY
+     AXY      
+
+/^[\P{L&}]X/8
+     !XY
+     \x{1bb}XY
+     \x{2b0}XY
+     ** Failers
+     \x{1c5}XY
+     AXY      
+
 / End / 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput1 tin-2.0.0/pcre/testdata/testoutput1
--- tin-1.8.3/pcre/testdata/testoutput1	2005-09-12 16:42:32.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput1	2011-04-17 16:04:39.412436528 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /the quick brown fox/
     the quick brown fox
  0: the quick brown fox
@@ -1819,7 +1817,7 @@ No match
 No match
 
 /^a	b
-      c/x
+      c/x
     abc
  0: abc
 
@@ -2095,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
@@ -2128,7 +2118,7 @@ No match
  0: abc\xd3
  1: abc
 
-/(abc)\500/
+/(abc)\100/
     abc\x40
  0: abc@
  1: abc
@@ -2136,7 +2126,7 @@ No match
  0: abc@
  1: abc
 
-/(abc)\5000/
+/(abc)\1000/
     abc\x400
  0: abc@0
  1: abc
@@ -2199,9 +2189,9 @@ No match
 10: j
 11: k
 
-/ab\gdef/
-    abgdef
- 0: abgdef
+/ab\hdef/
+    abhdef
+ 0: abhdef
 
 /a{0}bc/
     bc
@@ -5482,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
@@ -6283,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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput2 tin-2.0.0/pcre/testdata/testoutput2
--- tin-1.8.3/pcre/testdata/testoutput2	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput2	2011-04-17 16:04:39.488448095 +0200
@@ -1,12 +1,10 @@
-PCRE version 6.4 05-Sep-2005
-
-/(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'
@@ -24,7 +22,7 @@ No match
     ABC
 No match
 
-/^abc/
+/^abc/I
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -40,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
@@ -80,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}/
@@ -113,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
@@ -137,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
@@ -148,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
@@ -159,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
@@ -186,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
@@ -199,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
@@ -230,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
@@ -272,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'
@@ -289,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'
@@ -299,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
@@ -314,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
@@ -324,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
@@ -340,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
@@ -362,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 
@@ -370,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
 
@@ -401,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
@@ -410,7 +408,7 @@ No need char
     co-processors, and for 
  0: -pr
     
-/<.*>/
+/<.*>/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
@@ -419,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
@@ -428,7 +426,7 @@ Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>
 
-/<.*>/U
+/<.*>/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -437,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
@@ -446,7 +444,7 @@ Need char = '>'
     abc<def>ghi<klm>nop
  0: <def>
 
-/<.*?>/U
+/<.*?>/IU
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -455,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
@@ -464,7 +462,7 @@ Need char = '='
     abc========def
  0: ===
     
-/(?U)={3,}?/
+/(?U)={3,}?/I
 Capturing subpattern count = 0
 Partial matching not supported
 Options: ungreedy
@@ -473,7 +471,7 @@ Need char = '='
     abc========def
  0: ========
     
-/(?<!bar|cattle)foo/
+/(?<!bar|cattle)foo/I
 Capturing subpattern count = 0
 No options
 First char = 'f'
@@ -498,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)/
@@ -570,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
@@ -589,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'
@@ -641,7 +638,7 @@ No match
     \Za\n   
 No match
 
-/a$/m
+/a$/Im
 Capturing subpattern count = 0
 Options: multiline
 First char = 'a'
@@ -657,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
@@ -683,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
@@ -720,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
@@ -736,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
@@ -760,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 = '-'
@@ -781,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
@@ -802,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
@@ -831,7 +822,7 @@ No match
     bzz  
 No match
 
-/(?<!(foo)a)bar/
+/(?<!(foo)a)bar/I
 Capturing subpattern count = 1
 No options
 First char = 'b'
@@ -845,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
@@ -861,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
@@ -877,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'
@@ -919,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
 
 /:(?:/
@@ -968,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
@@ -991,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'
@@ -1011,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
@@ -1023,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
@@ -1044,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
@@ -1056,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
@@ -1099,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
@@ -1111,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*
@@ -1130,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*
@@ -1147,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
@@ -1185,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
@@ -1204,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
@@ -1223,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'
@@ -1235,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'
@@ -1251,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'
@@ -1260,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'
@@ -1275,7 +1266,7 @@ No match
     Mississippi\A
 No match
 
-/(?<=[Ms])iss/g+
+/(?<=[Ms])iss/Ig+
 Capturing subpattern count = 0
 No options
 First char = 'i'
@@ -1286,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'
@@ -1295,7 +1286,7 @@ Need char = 's'
  0: iss
  0+ issippi
 
-/^iss/g+
+/^iss/Ig+
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1304,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
@@ -1316,7 +1307,7 @@ Need char = 's'
  0: xyziss
  0+ pqr
 
-/.i./+g
+/.i./I+g
 Capturing subpattern count = 0
 No options
 No first char
@@ -1346,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
@@ -1355,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
@@ -1364,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
@@ -1375,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
@@ -1658,7 +1649,7 @@ No need char
     \N     
 No match
     
-/|-/
+/|-/I
 Capturing subpattern count = 0
 No options
 No first char
@@ -1674,7 +1665,7 @@ No need char
     \Nabc     
 No match
 
-/a*(b+)(z)(z)/P
+/a*(b+)(z)(z)/IP
     aaaabbbbzzzz
  0: aaaabbbbzz
  1: bbbb
@@ -1701,7 +1692,7 @@ No match
  2: z
  3: z
     
-/^.?abcd/S 
+/^.?abcd/IS 
 Capturing subpattern count = 0
 Options: anchored
 No first char
@@ -1715,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
@@ -1744,7 +1735,7 @@ No match
     (abcd  
 No match
 
-/\(  ( (?>[^()]+) | (?R) )* \) /xg
+/\(  ( (?>[^()]+) | (?R) )* \) /Ixg
 Capturing subpattern count = 1
 Partial matching not supported
 Options: extended
@@ -1759,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
@@ -1778,7 +1769,7 @@ No match
     ()   
 No match
 
-/\(  (?: (?>[^()]+) | (?R) )? \) /x
+/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
 Capturing subpattern count = 0
 Partial matching not supported
 Options: extended
@@ -1789,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
@@ -1799,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
@@ -1810,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
@@ -1827,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
@@ -1844,7 +1835,7 @@ Need char = ')'
  2: 123
  3: cd
 
-/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x
+/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
 Capturing subpattern count = 11
 Partial matching not supported
 Options: extended
@@ -1864,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
@@ -1876,7 +1867,7 @@ Need char = ')'
  2: 123
  3: <unset>
 
-/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x
+/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
 Capturing subpattern count = 3
 Partial matching not supported
 Options: extended
@@ -1945,6 +1936,14 @@ Options: anchored
 No first char
 No need char
              
+/[_[:alpha:]]/IS
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: 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 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 
+
 /^[[:ascii:]]/D
 ------------------------------------------------------------------
   0  37 Bra 0
@@ -1984,6 +1983,26 @@ Options: anchored
 No first char
 No need char
 
+/^[[:^blank:]]/D
+------------------------------------------------------------------
+  0  37 Bra 0
+  3     ^
+  4     [\x00-\x08\x0a-\x1f!-\xff]
+ 37  37 Ket
+ 40     End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
+/[\n\x0b\x0c\x0d[:blank:]]/IS
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20 
+
 /^[[:cntrl:]]/D
 ------------------------------------------------------------------
   0  37 Bra 0
@@ -2165,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
@@ -2184,7 +2203,7 @@ No need char
     a 
  0: a
     
-/[[:lower:]]/i
+/[[:lower:]]/Ii
 Capturing subpattern count = 0
 Options: caseless
 No first char
@@ -2194,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
@@ -2214,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
@@ -2507,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'
@@ -2526,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
@@ -2542,7 +2560,7 @@ No need char
  1: a
  2: b
    
-/^(aa(bb)?)+$/
+/^(aa(bb)?)+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -2552,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
@@ -2562,7 +2580,7 @@ No need char
  1: aa
  2: bb
     
-/^(aa(bb)??)+$/
+/^(aa(bb)??)+$/I
 Capturing subpattern count = 2
 Options: anchored
 No first char
@@ -2572,7 +2590,7 @@ No need char
  1: aa
  2: bb
     
-/^(?:aa(bb)?)+$/
+/^(?:aa(bb)?)+$/I
 Capturing subpattern count = 1
 Options: anchored
 No first char
@@ -2581,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
@@ -2592,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
@@ -2602,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
@@ -2611,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
@@ -2620,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
@@ -2629,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
@@ -2638,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
@@ -2647,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
@@ -2658,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
@@ -2669,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
@@ -2687,7 +2705,7 @@ Options: extended
 No first char
 No need char
 
-/a#/xMD
+/a#/IxMD
 Memory allocation (code space): 9
 ------------------------------------------------------------------
   0   5 Bra 0
@@ -2735,7 +2753,6 @@ No need char
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
-Case state changes
 First char = 'a'
 Need char = 'b' (caseless)
     ab
@@ -2749,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
@@ -2775,7 +2791,7 @@ No match
     AB  
 No match
     
-/   (?i)abc/xD
+/   (?i)abc/IxD
 ------------------------------------------------------------------
   0   9 Bra 0
   3  NC abc
@@ -2788,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
@@ -2907,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
@@ -2927,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
@@ -2941,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
@@ -2959,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
@@ -2972,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
@@ -3001,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
@@ -3016,7 +3026,7 @@ No match
     12345+ 
 No match
 
-/a++b/
+/a++b/I
 Capturing subpattern count = 0
 Partial matching not supported
 No options
@@ -3025,7 +3035,7 @@ Need char = 'b'
     aaab
  0: aaab
 
-/(a++b)/
+/(a++b)/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3035,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
@@ -3045,7 +3055,7 @@ Need char = 'b'
  0: aaab
  1: aaa
 
-/([^()]++|\([^()]*\))+/
+/([^()]++|\([^()]*\))+/I
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3055,7 +3065,7 @@ No need char
  0: abc(ade)ufh()()x
  1: x
     
-/\(([^()]++|\([^()]+\))+\)/ 
+/\(([^()]++|\([^()]+\))+\)/I 
 Capturing subpattern count = 1
 Partial matching not supported
 No options
@@ -3074,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
@@ -3131,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
@@ -3150,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
@@ -3180,7 +3186,7 @@ No need char
   0  10 Bra 0
   3     ^
   4     x
-  6     a+?
+  6     a++
   8     b
  10  10 Ket
  13     End
@@ -3193,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
@@ -3209,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
@@ -3255,7 +3261,7 @@ No options
 No first char
 No need char
 
-/[[:space:]]/DM
+/[[:space:]]/IDM
 Memory allocation (code space): 40
 ------------------------------------------------------------------
   0  36 Bra 0
@@ -3268,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
@@ -3281,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
@@ -3304,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
@@ -3318,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
@@ -3344,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
@@ -3367,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
@@ -3395,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)
@@ -3404,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)
 
@@ -3524,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
@@ -3554,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'
@@ -3581,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'
@@ -3592,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
@@ -3617,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'
@@ -3644,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'
@@ -3679,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
@@ -3712,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
@@ -3755,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'
@@ -3774,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'
@@ -3796,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'
@@ -3810,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'
@@ -3827,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'
@@ -3841,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
@@ -3867,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
@@ -3893,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'
@@ -3953,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
@@ -3978,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
@@ -3995,14 +3999,16 @@ Need char = '<'
 
 /(a(?1)b)/D
 ------------------------------------------------------------------
-  0  16 Bra 0
-  3  10 Bra 1
-  6     a
-  8   3 Recurse
- 11     b
- 13  10 Ket
- 16  16 Ket
- 19     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
@@ -4011,23 +4017,23 @@ Need char = 'b'
 
 /(a(?1)+b)/D
 ------------------------------------------------------------------
-  0  22 Bra 0
-  3  16 Bra 1
-  6     a
-  8   6 Bra 0
- 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
@@ -4061,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
@@ -4082,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
@@ -4102,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
@@ -4137,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
@@ -4152,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
@@ -4167,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
@@ -4187,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:
@@ -4219,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:
@@ -4246,19 +4252,21 @@ Need char = 'a'
 
 /(?P<a>a)...(?P=a)bbb(?P>a)d/D
 ------------------------------------------------------------------
-  0  28 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   3 Recurse
- 26     d
- 28  28 Ket
- 31     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
@@ -4268,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:
@@ -4307,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
@@ -4320,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
@@ -4335,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
@@ -4343,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
@@ -4358,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
@@ -4366,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
@@ -4374,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
@@ -4382,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
@@ -4397,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
@@ -4405,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
@@ -4418,68 +4426,70 @@ No need char
  24     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
-Options:
+Options: no_auto_capture
 First char = 'a'
 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:
   one   1
-Options:
+Options: no_auto_capture
 First char = 'a'
 Need char = 'c'
   abc
  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:
   named   1
-Options:
+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
 No first char
 Need char = 'z'
   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
-Minimum match limit = 8
+Minimum match() limit = 8
+Minimum match() recursion limit = 6
  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
   aaaaaaaaaaaaaz\M
-Minimum match limit = 32768
+Minimum match() limit = 32768
+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'
@@ -4506,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
@@ -4523,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:
@@ -4556,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:
@@ -4572,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
@@ -4584,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
@@ -4615,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
@@ -4633,18 +4644,20 @@ Need char = ']'
 
 /(a(b(?2)c))?/D
 ------------------------------------------------------------------
-  0  25 Bra 0
+  0  35 Bra 0
   3     Brazero
-  4  18 Bra 1
-  7     a
-  9  10 Bra 2
- 12     b
- 14   9 Recurse
- 17     c
- 19  10 Ket
- 22  18 Ket
- 25  25 Ket
- 28     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
@@ -4653,18 +4666,20 @@ No need char
 
 /(a(b(?2)c))*/D
 ------------------------------------------------------------------
-  0  25 Bra 0
+  0  35 Bra 0
   3     Brazero
-  4  18 Bra 1
-  7     a
-  9  10 Bra 2
- 12     b
- 14   9 Recurse
- 17     c
- 19  10 Ket
- 22  18 KetRmax
- 25  25 Ket
- 28     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
@@ -4673,29 +4688,33 @@ No need char
 
 /(a(b(?2)c)){0,2}/D
 ------------------------------------------------------------------
-  0  53 Bra 0
+  0  73 Bra 0
   3     Brazero
-  4  46 Bra 0
-  7  18 Bra 1
- 10     a
- 12  10 Bra 2
- 15     b
- 17  12 Recurse
- 20     c
- 22  10 Ket
- 25  18 Ket
- 28     Brazero
- 29  18 Bra 1
- 32     a
- 34  10 Bra 2
- 37     b
- 39  12 Recurse
- 42     c
- 44  10 Ket
- 47  18 Ket
- 50  46 Ket
- 53  53 Ket
- 56     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
@@ -4716,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
@@ -4726,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
@@ -4737,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*
@@ -4753,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
@@ -4789,7 +4808,7 @@ No options
 First char = 'a'
 Need char = 'f'
 
-/abcde/CD
+/abcde/ICD
 ------------------------------------------------------------------
   0  49 Bra 0
   3     Callout 255 0 1
@@ -4828,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
@@ -4860,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*
@@ -4883,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
@@ -4915,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:
@@ -5019,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
@@ -5083,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:
@@ -5258,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
@@ -5396,7 +5399,7 @@ No need char
   Xbcd12345 
  0: bcd12345
 
-/abcde/
+/abcde/I
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -5416,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
@@ -5499,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
@@ -5517,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
@@ -5543,7 +5546,7 @@ No match
     123456\P 
 No match
 
-/abc/>testsavedregex
+/abc/I>testsavedregex
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -5552,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
@@ -5563,7 +5562,7 @@ No match
     bca
 No match
     
-/abc/F>testsavedregex
+/abc/IF>testsavedregex
 Capturing subpattern count = 0
 No options
 First char = 'a'
@@ -5572,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
@@ -5583,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
@@ -5594,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
@@ -5608,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
@@ -5619,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
@@ -5633,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
@@ -5652,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'
@@ -5662,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'
@@ -5674,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'
@@ -5686,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 
@@ -5696,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 
@@ -5704,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'
@@ -5716,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:
@@ -5770,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
@@ -5791,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
@@ -5916,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'
@@ -5939,8 +5923,2207 @@ Matched, but too many substrings
 13: a
 14: a
 
-/ End of testinput2 /
+/[^()]*(?:\((?R)\)[^()]*)*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+    (this(and)that
+ 0: 
+    (this(and)that) 
+ 0: (this(and)that)
+    (this(and)that)stuff
+ 0: (this(and)that)stuff
+
+/[^()]*(?:\((?>(?R))\)[^()]*)*/I
 Capturing subpattern count = 0
+Partial matching not supported
 No options
-First char = ' '
-Need char = ' '
+No first char
+No need char
+    (this(and)that
+ 0: 
+    (this(and)that) 
+ 0: (this(and)that)
+    
+/[^()]*(?:\((?R)\))*[^()]*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+    (this(and)that
+ 0: 
+    (this(and)that) 
+ 0: (this(and)that)
+
+/(?:\((?R)\))*[^()]*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+    (this(and)that
+ 0: 
+    (this(and)that) 
+ 0: 
+    ((this)) 
+ 0: ((this))
+
+/(?:\((?R)\))|[^()]*/I
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+    (this(and)that
+ 0: 
+    (this(and)that) 
+ 0: 
+    (this)
+ 0: (this)
+    ((this)) 
+ 0: ((this))
+    
+/a(b)c/IPN
+    abc
+Matched with REG_NOSUB
+    
+/a(?P<name>b)c/IPN
+    abc  
+Matched with REG_NOSUB
+    
+/\x{100}/I 
+Failed: character value in \x{...} sequence is too large at offset 6
+
+/\x{0000ff}/I
+Capturing subpattern count = 0
+No options
+First char = 255
+No 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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput3 tin-2.0.0/pcre/testdata/testoutput3
--- tin-1.8.3/pcre/testdata/testoutput3	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput3	2011-04-17 16:04:39.540456009 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /^[\w]+/
     *** Failers
 No match
@@ -95,8 +93,8 @@ No first char
 No need char
 Starting byte set: 0 1 2 3 4 5 6 7 8 9 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 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 
-  µ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä 
-  å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ 
+  ª µ º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â 
+  ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ 
 
 /^[\xc8-\xc9]/iLfr_FR
     École
@@ -112,4 +110,54 @@ No match
     école
 No match
 
+/\W+/Lfr_FR
+    >>>\xaa<<<
+ 0: >>>
+    >>>\xba<<< 
+ 0: >>>
+
+/[\W]+/Lfr_FR
+    >>>\xaa<<<
+ 0: >>>
+    >>>\xba<<< 
+ 0: >>>
+
+/[^[:alpha:]]+/Lfr_FR
+    >>>\xaa<<<
+ 0: >>>
+    >>>\xba<<< 
+ 0: >>>
+
+/\w+/Lfr_FR
+    >>>\xaa<<<
+ 0: ª
+    >>>\xba<<< 
+ 0: º
+
+/[\w]+/Lfr_FR
+    >>>\xaa<<<
+ 0: ª
+    >>>\xba<<< 
+ 0: º
+
+/[[:alpha:]]+/Lfr_FR
+    >>>\xaa<<<
+ 0: ª
+    >>>\xba<<< 
+ 0: º
+    
+/[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR 
+------------------------------------------------------------------
+  0 102 Bra 0
+  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
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
 / End of testinput3 /
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput4 tin-2.0.0/pcre/testdata/testoutput4
--- tin-1.8.3/pcre/testdata/testoutput4	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput4	2011-04-17 16:04:39.588463316 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /-- Do not use the \x{} construct except with patterns that have the --/
 /-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/
 No match
@@ -900,4 +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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput5 tin-2.0.0/pcre/testdata/testoutput5
--- tin-1.8.3/pcre/testdata/testoutput5	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput5	2011-04-17 16:04:39.656473664 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /\x{100}/8DM
 Memory allocation (code space): 10
 ------------------------------------------------------------------
@@ -105,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}]
@@ -431,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
@@ -448,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
@@ -481,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
@@ -502,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
@@ -630,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
@@ -645,12 +643,14 @@ Need char = 'A'
 
 /\x{100}*\d(?R)/8D
 ------------------------------------------------------------------
-  0  10 Bra 0
-  3     \x{100}*
+  0  16 Bra 0
+  3     \x{100}*+
   6     \d
-  7   0 Recurse
- 10  10 Ket
- 13     End
+  7   6 Once
+ 10   0 Recurse
+ 13   6 Ket
+ 16  16 Ket
+ 19     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -660,10 +660,10 @@ No need char
 
 /[^\x{c4}]/D
 ------------------------------------------------------------------
-  0  36 Bra 0
-  3     [\x01-35-bd-z|~-\xff] (neg)
- 36  36 Ket
- 39     End
+  0   5 Bra 0
+  3     [^\xc4]
+  5   5 Ket
+  8     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -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,14 +912,16 @@ No match
 
 /\x{100}abc(xyz(?1))/8D
 ------------------------------------------------------------------
-  0  27 Bra 0
+  0  35 Bra 0
   3     \x{100}abc
- 12  12 Bra 1
- 15     xyz
- 21  12 Recurse
- 24  12 Ket
- 27  27 Ket
- 30     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
@@ -928,15 +930,17 @@ Need char = 'z'
 
 /[^\x{100}]abc(xyz(?1))/8D
 ------------------------------------------------------------------
-  0  32 Bra 0
+  0  40 Bra 0
   3     [^\x{100}]
  11     abc
- 17  12 Bra 1
- 20     xyz
- 26  17 Recurse
- 29  12 Ket
- 32  32 Ket
- 35     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
@@ -945,15 +949,17 @@ Need char = 'z'
 
 /[ab\x{100}]abc(xyz(?1))/8D
 ------------------------------------------------------------------
-  0  64 Bra 0
+  0  72 Bra 0
   3     [ab\x{100}]
  43     abc
- 49  12 Bra 1
- 52     xyz
- 58  49 Recurse
- 61  12 Ket
- 64  64 Ket
- 67     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
@@ -962,18 +968,20 @@ Need char = 'z'
 
 /(\x{100}(b(?2)c))?/D8
 ------------------------------------------------------------------
-  0  26 Bra 0
+  0  36 Bra 0
   3     Brazero
-  4  19 Bra 1
-  7     \x{100}
- 10  10 Bra 2
- 13     b
- 15  10 Recurse
- 18     c
- 20  10 Ket
- 23  19 Ket
- 26  26 Ket
- 29     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
@@ -982,29 +990,33 @@ No need char
 
 /(\x{100}(b(?2)c)){0,2}/D8
 ------------------------------------------------------------------
-  0  55 Bra 0
+  0  75 Bra 0
   3     Brazero
-  4  48 Bra 0
-  7  19 Bra 1
- 10     \x{100}
- 13  10 Bra 2
- 16     b
- 18  13 Recurse
- 21     c
- 23  10 Ket
- 26  19 Ket
- 29     Brazero
- 30  19 Bra 1
- 33     \x{100}
- 36  10 Bra 2
- 39     b
- 41  13 Recurse
- 44     c
- 46  10 Ket
- 49  19 Ket
- 52  48 Ket
- 55  55 Ket
- 58     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
@@ -1013,18 +1025,20 @@ No need char
 
 /(\x{100}(b(?1)c))?/D8
 ------------------------------------------------------------------
-  0  26 Bra 0
+  0  36 Bra 0
   3     Brazero
-  4  19 Bra 1
-  7     \x{100}
- 10  10 Bra 2
- 13     b
- 15   4 Recurse
- 18     c
- 20  10 Ket
- 23  19 Ket
- 26  26 Ket
- 29     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
@@ -1033,29 +1047,33 @@ No need char
 
 /(\x{100}(b(?1)c)){0,2}/D8
 ------------------------------------------------------------------
-  0  55 Bra 0
+  0  75 Bra 0
   3     Brazero
-  4  48 Bra 0
-  7  19 Bra 1
- 10     \x{100}
- 13  10 Bra 2
- 16     b
- 18   7 Recurse
- 21     c
- 23  10 Ket
- 26  19 Ket
- 29     Brazero
- 30  19 Bra 1
- 33     \x{100}
- 36  10 Bra 2
- 39     b
- 41   7 Recurse
- 44     c
- 46  10 Ket
- 49  19 Ket
- 52  48 Ket
- 55  55 Ket
- 58     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
@@ -1072,4 +1090,314 @@ No need char
     \x{100}X   
  0: X
 
+/a\x{1234}b/P8
+    a\x{1234}b
+ 0: a\x{1234}b
+
+/^\áˆ´/8D
+------------------------------------------------------------------
+  0   8 Bra 0
+  3     ^
+  4     \x{1234}
+  8   8 Ket
+ 11     End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput6 tin-2.0.0/pcre/testdata/testoutput6
--- tin-1.8.3/pcre/testdata/testoutput6	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput6	2011-04-17 16:04:39.724484014 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /^\pC\pL\pM\pN\pP\pS\pZ</8
     \x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
  0: \x{7f}\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
@@ -85,6 +83,8 @@ No match
 No match
   
 /^\p{Cn}/8
+    \x{e0000}
+ 0: \x{e0000}
     ** Failers
 No match
     \x{09f} 
@@ -127,12 +127,24 @@ No match
 /^\p{Lo}/8
     \x{1bb}
  0: \x{1bb}
+    \x{3400}
+ 0: \x{3400}
+    \x{3401}
+ 0: \x{3401}
+    \x{4d00}
+ 0: \x{4d00}
+    \x{4db4}
+ 0: \x{4db4}
+    \x{4db5}     
+ 0: \x{4db5}
     ** Failers
 No match
     a 
 No match
     \x{2b0}
 No match
+    \x{4db6} 
+No match
   
 /^\p{Lt}/8
     \x{1c5}
@@ -538,10 +550,10 @@ No match
 
 /[\p{L}]/D
 ------------------------------------------------------------------
-  0  10 Bra 0
+  0  11 Bra 0
   3     [\p{L}]
- 10  10 Ket
- 13     End
+ 11  11 Ket
+ 14     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -550,10 +562,10 @@ No need char
 
 /[\p{^L}]/D
 ------------------------------------------------------------------
-  0  10 Bra 0
+  0  11 Bra 0
   3     [\P{L}]
- 10  10 Ket
- 13     End
+ 11  11 Ket
+ 14     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -562,10 +574,10 @@ No need char
 
 /[\P{L}]/D
 ------------------------------------------------------------------
-  0  10 Bra 0
+  0  11 Bra 0
   3     [\P{L}]
- 10  10 Ket
- 13     End
+ 11  11 Ket
+ 14     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -574,10 +586,10 @@ No need char
 
 /[\P{^L}]/D
 ------------------------------------------------------------------
-  0  10 Bra 0
+  0  11 Bra 0
   3     [\p{L}]
- 10  10 Ket
- 13     End
+ 11  11 Ket
+ 14     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 No options
@@ -586,10 +598,10 @@ No need char
 
 /[abc\p{L}\x{0660}]/8D
 ------------------------------------------------------------------
-  0  45 Bra 0
+  0  46 Bra 0
   3     [a-c\p{L}\x{660}]
- 45  45 Ket
- 48     End
+ 46  46 Ket
+ 49     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: utf8
@@ -597,12 +609,12 @@ No first char
 No need char
 
 /[\p{Nd}]/8DM
-Memory allocation (code space): 46
+Memory allocation (code space): 15
 ------------------------------------------------------------------
-  0  10 Bra 0
+  0  11 Bra 0
   3     [\p{Nd}]
- 10  10 Ket
- 13     End
+ 11  11 Ket
+ 14     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Options: utf8
@@ -612,12 +624,12 @@ No need char
  0: 1
 
 /[\p{Nd}+-]+/8DM
-Memory allocation (code space): 47
+Memory allocation (code space): 48
 ------------------------------------------------------------------
-  0  43 Bra 0
+  0  44 Bra 0
   3     [+\-\p{Nd}]+
- 43  43 Ket
- 46     End
+ 44  44 Ket
+ 47     End
 ------------------------------------------------------------------
 Capturing subpattern count = 0
 Partial matching not supported
@@ -1010,4 +1022,414 @@ No match
  0: A\x{300}\x{301}B\x{300}C
  1: C
     
+/^\p{Han}+/8
+    \x{2e81}\x{3007}\x{2f804}\x{31a0}
+ 0: \x{2e81}\x{3007}\x{2f804}
+    ** Failers
+No match
+    \x{2e7f}  
+No match
+
+/^\P{Katakana}+/8
+    \x{3105}
+ 0: \x{3105}
+    ** Failers
+ 0: ** Failers
+    \x{30ff}  
+No match
+
+/^[\p{Arabic}]/8
+    \x{06e9}
+ 0: \x{6e9}
+    \x{060b}
+ 0: \x{60b}
+    ** Failers
+No match
+    X\x{06e9}   
+No match
+
+/^[\P{Yi}]/8
+    \x{2f800}
+ 0: \x{2f800}
+    ** Failers
+ 0: *
+    \x{a014}
+No match
+    \x{a4c6}   
+No match
+    
+/^\p{Any}X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    X  
+No match
+    
+/^\P{Any}X/8
+    ** Failers
+No match
+    AX
+No match
+    
+/^\p{Any}?X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    ABXYZ   
+No match
+
+/^\P{Any}?X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ 
+No match
+    ABXYZ   
+No match
+
+/^\p{Any}+X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+    XYZ
+No match
+
+/^\P{Any}+X/8
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+    XYZ
+No match
+
+/^\p{Any}*X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+
+/^\P{Any}*X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+
+/^[\p{Any}]X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    X  
+No match
+    
+/^[\P{Any}]X/8
+    ** Failers
+No match
+    AX
+No match
+    
+/^[\p{Any}]?X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    ABXYZ   
+No match
+
+/^[\P{Any}]?X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ 
+No match
+    ABXYZ   
+No match
+
+/^[\p{Any}]+X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+    XYZ
+No match
+
+/^[\P{Any}]+X/8
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+    XYZ
+No match
+
+/^[\p{Any}]*X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+
+/^[\P{Any}]*X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+
+/^\p{Any}{3,5}?/8
+    abcdefgh
+ 0: abc
+    \x{1234}\n\r\x{3456}xyz 
+ 0: \x{1234}\x{0a}\x{0d}
+
+/^\p{Any}{3,5}/8
+    abcdefgh
+ 0: abcde
+    \x{1234}\n\r\x{3456}xyz 
+ 0: \x{1234}\x{0a}\x{0d}\x{3456}x
+
+/^\P{Any}{3,5}?/8
+    ** Failers
+No match
+    abcdefgh
+No match
+    \x{1234}\n\r\x{3456}xyz 
+No match
+
+/^\p{L&}X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     \x{1c5}XY
+ 0: \x{1c5}X
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^[\p{L&}]X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     \x{1c5}XY
+ 0: \x{1c5}X
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^\p{L&}+X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEXypqreX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^[\p{L&}]+X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEXypqreX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^\p{L&}+?X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^[\p{L&}]+?X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^\P{L&}X/8
+     !XY
+ 0: !X
+     \x{1bb}XY
+ 0: \x{1bb}X
+     \x{2b0}XY
+ 0: \x{2b0}X
+     ** Failers
+No match
+     \x{1c5}XY
+No match
+     AXY      
+No match
+
+/^[\P{L&}]X/8
+     !XY
+ 0: !X
+     \x{1bb}XY
+ 0: \x{1bb}X
+     \x{2b0}XY
+ 0: \x{2b0}X
+     ** Failers
+No match
+     \x{1c5}XY
+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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput7 tin-2.0.0/pcre/testdata/testoutput7
--- tin-1.8.3/pcre/testdata/testoutput7	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput7	2011-04-17 16:04:39.816498016 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /abc/
     abc
  0: abc
@@ -675,7 +673,6 @@ No match
 /^(a*\w|ab)=(?1)/
     ab=ab
  0: ab=ab
- 1: ab=a
 
 /^([^()]|\((?1)*\))*$/
     abc
@@ -983,13 +980,13 @@ Partial match: abc
 /(?<=foo)bar/
    xyzfo\P 
 No match
-   foob\R\P\>2 
+   foob\P\>2 
 Partial match: b
    foobar...\R\P\>4 
  0: ar
    xyzfo\P
 No match
-   foobar\R\>2  
+   foobar\>2  
  0: bar
    *** Failers
 No match
@@ -2738,7 +2735,7 @@ No match
 No match
 
 /^a	b
-      c/x
+      c/x
     abc
  0: abc
 
@@ -2976,7 +2973,7 @@ No match
     {4,5a}bc
  0: {4,5a}bc
 
-/^a.b/
+/^a.b/<lf>
     a\rb
  0: a\x0db
     *** Failers
@@ -3006,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
@@ -3042,9 +3039,9 @@ No match
     abcdefghijk\12S
  0: abcdefghijk\x0aS
 
-/ab\gdef/
-    abgdef
- 0: abgdef
+/ab\hdef/
+    abhdef
+ 0: abhdef
 
 /a{0}bc/
     bc
@@ -6513,4 +6510,446 @@ No match
     line one\nthis is a line\nbreak in the second line 
 No match
 
+/1234/
+    123\P
+Partial match: 123
+    a4\P\R
+No match
+
+/1234/
+    123\P
+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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput8 tin-2.0.0/pcre/testdata/testoutput8
--- tin-1.8.3/pcre/testdata/testoutput8	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput8	2011-04-17 16:04:39.880507758 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /-- Do not use the \x{} construct except with patterns that have the --/
 /-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/
 No match
@@ -1030,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 --exclude='.bzr*' tin-1.8.3/pcre/testdata/testoutput9 tin-2.0.0/pcre/testdata/testoutput9
--- tin-1.8.3/pcre/testdata/testoutput9	2005-09-12 16:42:33.000000000 +0200
+++ tin-2.0.0/pcre/testdata/testoutput9	2011-04-17 16:04:39.932515673 +0200
@@ -1,5 +1,3 @@
-PCRE version 6.4 05-Sep-2005
-
 /\pL\P{Nd}/8
     AB
  0: AB
@@ -1231,4 +1229,399 @@ No match
     \x{101} 
  0: \x{101}
     
+/^\p{Han}+/8
+    \x{2e81}\x{3007}\x{2f804}\x{31a0}
+ 0: \x{2e81}\x{3007}\x{2f804}
+ 1: \x{2e81}\x{3007}
+ 2: \x{2e81}
+    ** Failers
+No match
+    \x{2e7f}  
+No match
+
+/^\P{Katakana}+/8
+    \x{3105}
+ 0: \x{3105}
+    ** Failers
+ 0: ** Failers
+ 1: ** Failer
+ 2: ** Faile
+ 3: ** Fail
+ 4: ** Fai
+ 5: ** Fa
+ 6: ** F
+ 7: ** 
+ 8: **
+ 9: *
+    \x{30ff}  
+No match
+
+/^[\p{Arabic}]/8
+    \x{06e9}
+ 0: \x{6e9}
+    \x{060b}
+ 0: \x{60b}
+    ** Failers
+No match
+    X\x{06e9}   
+No match
+
+/^[\P{Yi}]/8
+    \x{2f800}
+ 0: \x{2f800}
+    ** Failers
+ 0: *
+    \x{a014}
+No match
+    \x{a4c6}   
+No match
+
+/^\p{Any}X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    X  
+No match
+    
+/^\P{Any}X/8
+    ** Failers
+No match
+    AX
+No match
+    
+/^\p{Any}?X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    ABXYZ   
+No match
+
+/^\P{Any}?X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ 
+No match
+    ABXYZ   
+No match
+
+/^\p{Any}+X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+    XYZ
+No match
+
+/^\P{Any}+X/8
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+    XYZ
+No match
+
+/^\p{Any}*X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+
+/^\P{Any}*X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+
+/^[\p{Any}]X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    X  
+No match
+    
+/^[\P{Any}]X/8
+    ** Failers
+No match
+    AX
+No match
+    
+/^[\p{Any}]?X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ 
+ 0: \x{1234}X
+    ** Failers
+No match
+    ABXYZ   
+No match
+
+/^[\P{Any}]?X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ 
+No match
+    ABXYZ   
+No match
+
+/^[\p{Any}]+X/8
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+    XYZ
+No match
+
+/^[\P{Any}]+X/8
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+    XYZ
+No match
+
+/^[\p{Any}]*X/8
+    XYZ
+ 0: X
+    AXYZ
+ 0: AX
+    \x{1234}XYZ
+ 0: \x{1234}X
+    A\x{1234}XYZ
+ 0: A\x{1234}X
+    ** Failers
+No match
+
+/^[\P{Any}]*X/8
+    XYZ
+ 0: X
+    ** Failers
+No match
+    AXYZ
+No match
+    \x{1234}XYZ
+No match
+    A\x{1234}XYZ
+No match
+
+/^\p{Any}{3,5}?/8
+    abcdefgh
+ 0: abcde
+ 1: abcd
+ 2: abc
+    \x{1234}\n\r\x{3456}xyz 
+ 0: \x{1234}\x{0a}\x{0d}\x{3456}x
+ 1: \x{1234}\x{0a}\x{0d}\x{3456}
+ 2: \x{1234}\x{0a}\x{0d}
+
+/^\p{Any}{3,5}/8
+    abcdefgh
+ 0: abcde
+ 1: abcd
+ 2: abc
+    \x{1234}\n\r\x{3456}xyz 
+ 0: \x{1234}\x{0a}\x{0d}\x{3456}x
+ 1: \x{1234}\x{0a}\x{0d}\x{3456}
+ 2: \x{1234}\x{0a}\x{0d}
+
+/^\P{Any}{3,5}?/8
+    ** Failers
+No match
+    abcdefgh
+No match
+    \x{1234}\n\r\x{3456}xyz 
+No match
+
+/^\p{L&}X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     \x{1c5}XY
+ 0: \x{1c5}X
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^[\p{L&}]X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     \x{1c5}XY
+ 0: \x{1c5}X
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^\p{L&}+X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEXypqreX
+ 1: abcDEX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^[\p{L&}]+X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEXypqreX
+ 1: abcDEX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^\p{L&}+?X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEXypqreX
+ 1: abcDEX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^[\p{L&}]+?X/8
+     AXY
+ 0: AX
+     aXY
+ 0: aX
+     AbcdeXyz 
+ 0: AbcdeX
+     \x{1c5}AbXY
+ 0: \x{1c5}AbX
+     abcDEXypqreXlmn 
+ 0: abcDEXypqreX
+ 1: abcDEX
+     ** Failers
+No match
+     \x{1bb}XY
+No match
+     \x{2b0}XY
+No match
+     !XY      
+No match
+
+/^\P{L&}X/8
+     !XY
+ 0: !X
+     \x{1bb}XY
+ 0: \x{1bb}X
+     \x{2b0}XY
+ 0: \x{2b0}X
+     ** Failers
+No match
+     \x{1c5}XY
+No match
+     AXY      
+No match
+
+/^[\P{L&}]X/8
+     !XY
+ 0: !X
+     \x{1bb}XY
+ 0: \x{1bb}X
+     \x{2b0}XY
+ 0: \x{2b0}X
+     ** Failers
+No match
+     \x{1c5}XY
+No match
+     AXY      
+No match
+
 / End / 
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/ucp.h tin-2.0.0/pcre/ucp.h
--- tin-1.8.3/pcre/ucp.h	2005-09-12 16:42:51.000000000 +0200
+++ tin-2.0.0/pcre/ucp.h	2011-04-17 16:04:38.508298937 +0200
@@ -1,12 +1,16 @@
 /*************************************************
-*     libucp - Unicode Property Table handler    *
+*          Unicode Property Table handler        *
 *************************************************/
 
-
 #ifndef _UCP_H
 #define _UCP_H
 
-/* These are the character categories that are returned by ucp_findchar */
+/* This file contains definitions of the property values that are returned by
+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. */
 
 enum {
   ucp_C,     /* Other */
@@ -18,7 +22,7 @@ enum {
   ucp_Z      /* Separator */
 };
 
-/* These are the detailed character types that are returned by ucp_findchar */
+/* These are the particular character types. */
 
 enum {
   ucp_Cc,    /* Control */
@@ -53,6 +57,77 @@ enum {
   ucp_Zs     /* Space separator */
 };
 
+/* These are the script identifications. */
+
+enum {
+  ucp_Arabic,
+  ucp_Armenian,
+  ucp_Bengali,
+  ucp_Bopomofo,
+  ucp_Braille,
+  ucp_Buginese,
+  ucp_Buhid,
+  ucp_Canadian_Aboriginal,
+  ucp_Cherokee,
+  ucp_Common,
+  ucp_Coptic,
+  ucp_Cypriot,
+  ucp_Cyrillic,
+  ucp_Deseret,
+  ucp_Devanagari,
+  ucp_Ethiopic,
+  ucp_Georgian,
+  ucp_Glagolitic,
+  ucp_Gothic,
+  ucp_Greek,
+  ucp_Gujarati,
+  ucp_Gurmukhi,
+  ucp_Han,
+  ucp_Hangul,
+  ucp_Hanunoo,
+  ucp_Hebrew,
+  ucp_Hiragana,
+  ucp_Inherited,
+  ucp_Kannada,
+  ucp_Katakana,
+  ucp_Kharoshthi,
+  ucp_Khmer,
+  ucp_Lao,
+  ucp_Latin,
+  ucp_Limbu,
+  ucp_Linear_B,
+  ucp_Malayalam,
+  ucp_Mongolian,
+  ucp_Myanmar,
+  ucp_New_Tai_Lue,
+  ucp_Ogham,
+  ucp_Old_Italic,
+  ucp_Old_Persian,
+  ucp_Oriya,
+  ucp_Osmanya,
+  ucp_Runic,
+  ucp_Shavian,
+  ucp_Sinhala,
+  ucp_Syloti_Nagri,
+  ucp_Syriac,
+  ucp_Tagalog,
+  ucp_Tagbanwa,
+  ucp_Tai_Le,
+  ucp_Tamil,
+  ucp_Telugu,
+  ucp_Thaana,
+  ucp_Thai,
+  ucp_Tibetan,
+  ucp_Tifinagh,
+  ucp_Ugaritic,
+  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
 
 /* End of ucp.h */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/ucpinternal.h tin-2.0.0/pcre/ucpinternal.h
--- tin-1.8.3/pcre/ucpinternal.h	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/ucpinternal.h	2011-04-17 16:04:38.540303808 +0200
@@ -1,91 +1,92 @@
 /*************************************************
-*     libucp - Unicode Property Table handler    *
+*           Unicode Property Table handler       *
 *************************************************/
 
-/* Internal header file defining the layout of compact nodes in the tree. */
+#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. */
 
 typedef struct cnode {
-  unsigned short int f0;
-  unsigned short int f1;
-  unsigned short int f2;
+  pcre_uint32 f0;
+  pcre_uint32 f1;
 } cnode;
 
 /* Things for the f0 field */
 
-#define f0_leftexists   0x8000    /* Left child exists */
-#define f0_typemask     0x3f00    /* Type bits */
-#define f0_typeshift         8    /* Type shift */
-#define f0_chhmask      0x00ff    /* Character high bits */
-
-/* Things for the f2 field */
-
-#define f2_rightmask    0xf000    /* Mask for right offset bits */
-#define f2_rightshift       12    /* Shift for right offset */
-#define f2_casemask     0x0fff    /* Mask for case offset */
-
-/* The tree consists of a vector of structures of type cnode, with the root
-node as the first element. The three short ints (16-bits) are used as follows:
-
-(f0) (1) The 0x8000 bit of f0 is set if a left child exists. The child's node
-         is the next node in the vector.
-     (2) The 0x4000 bits of f0 is spare.
-     (3) The 0x3f00 bits of f0 contain the character type; this is a number
-         defined by the enumeration in ucp.h (e.g. ucp_Lu).
-     (4) The bottom 8 bits of f0 contain the most significant byte of the
-         character's 24-bit codepoint.
-
-(f1) (1) The f1 field contains the two least significant bytes of the
-         codepoint.
-
-(f2) (1) The 0xf000 bits of f2 contain zero if there is no right child of this
-         node. Otherwise, they contain one plus the exponent of the power of
-         two of the offset to the right node (e.g. a value of 3 means 8). The
-         units of the offset are node items.
-
-     (2) The 0x0fff bits of f2 contain the signed offset from this character to
-         its alternate cased value. They are zero if there is no such
-         character.
-
-
------------------------------------------------------------------------------
-||.|.| type (6) | ms char (8) ||  ls char (16)  ||....|  case offset (12)  ||
------------------------------------------------------------------------------
-  | |                                              |
-  | |-> spare                                      |
-  |                                        exponent of right
-  |-> left child exists                       child offset
-
+#define f0_scriptmask   0xff000000  /* Mask for script field */
+#define f0_scriptshift          24  /* Shift for script value */
+#define f0_rangeflag    0x00f00000  /* Flag for a range item */
+#define f0_charmask     0x001fffff  /* Mask for code point value */
+
+/* Things for the f1 field */
+
+#define f1_typemask     0xfc000000  /* Mask for char type field */
+#define f1_typeshift            26  /* Shift for the type field */
+#define f1_rangemask    0x0000ffff  /* Mask for a range offset */
+#define f1_casemask     0x0000ffff  /* Mask for a case offset */
+#define f1_caseneg      0xffff8000  /* Bits for negation */
+
+/* The data consists of a vector of structures of type cnode. The two unsigned
+32-bit integers are used as follows:
+
+(f0) (1) The most significant byte holds the script number. The numbers are
+         defined by the enum in ucp.h.
+
+     (2) The 0x00800000 bit is set if this entry defines a range of characters.
+         It is not set if this entry defines a single character
+
+     (3) The 0x00600000 bits are spare.
+
+     (4) The 0x001fffff bits contain the code point. No Unicode code point will
+         ever be greater than 0x0010ffff, so this should be OK for ever.
+
+(f1) (1) The 0xfc000000 bits contain the character type number. The numbers are
+         defined by an enum in ucp.h.
+
+     (2) The 0x03ff0000 bits are spare.
+
+     (3) The 0x0000ffff bits contain EITHER the unsigned offset to the top of
+         range if this entry defines a range, OR the *signed* offset to the
+         character's "other case" partner if this entry defines a single
+         character. There is no partner if the value is zero.
+
+-------------------------------------------------------------------------------
+| script (8) |.|.|.| codepoint (21) || type (6) |.|.| spare (8) | offset (16) |
+-------------------------------------------------------------------------------
+              | | |                              | |
+              | | |-> spare                      | |-> spare
+              | |                                |
+              | |-> spare                        |-> spare
+              |
+              |-> range flag
 
 The upper/lower casing information is set only for characters that come in
-pairs. There are (at present) four non-one-to-one mappings in the Unicode data.
-These are ignored. They are:
-
-  1FBE Greek Prosgegrammeni (lower, with upper -> capital iota)
-  2126 Ohm
-  212A Kelvin
-  212B Angstrom
+pairs. The non-one-to-one mappings in the Unicode data are ignored.
 
-Certainly for the last three, having an alternate case would seem to be a
-mistake. I don't know any Greek, so cannot comment on the first one.
+When searching the data, proceed as follows:
 
+(1) Set up for a binary chop search.
 
-When searching the tree, proceed as follows:
+(2) If the top is not greater than the bottom, the character is not in the
+    table. Its type must therefore be "Cn" ("Undefined").
 
-(1) Start at the first node.
+(3) Find the middle vector element.
 
-(2) Extract the character value from f1 and the bottom 8 bits of f0;
+(4) Extract the code point and compare. If equal, we are done.
 
-(3) Compare with the character being sought. If equal, we are done.
+(5) If the test character is smaller, set the top to the current point, and
+    goto (2).
 
-(4) If the test character is smaller, inspect the f0_leftexists flag. If it is
-    not set, the character is not in the tree. If it is set, move to the next
-    node, and go to (2).
+(6) If the current entry defines a range, compute the last character by adding
+    the offset, and see if the test character is within the range. If it is,
+    we are done.
 
-(5) If the test character is bigger, extract the f2_rightmask bits from f2, and
-    shift them right by f2_rightshift. If the result is zero, the character is
-    not in the tree. Otherwise, calculate the number of nodes to skip by
-    shifting the value 1 left by this number minus one. Go to (2).
+(7) Otherwise, set the bottom to one element past the current point and goto
+    (2).
 */
 
+#endif /* _UCPINTERNAL_H */
 
-/* End of internal.h */
+/* End of ucpinternal.h */
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/ucptable.c tin-2.0.0/pcre/ucptable.c
--- tin-1.8.3/pcre/ucptable.c	2005-06-28 10:31:26.000000000 +0200
+++ tin-2.0.0/pcre/ucptable.c	2011-04-17 16:04:38.608314156 +0200
@@ -1,15105 +1,3068 @@
 /* This source module is automatically generated from the Unicode
-property table. See internal.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[] = {
-  { 0x9a00, 0x2f1f, 0xe000 },
-  { 0x8700, 0x1558, 0xd000 },
-  { 0x8700, 0x0a99, 0xc000 },
-  { 0x8500, 0x0435, 0xbfe0 },
-  { 0x8500, 0x01ff, 0xafff },
-  { 0x8500, 0x00ff, 0x9079 },
-  { 0x8000, 0x007f, 0x8000 },
-  { 0x9500, 0x003f, 0x7000 },
-  { 0x8000, 0x001f, 0x6000 },
-  { 0x8000, 0x000f, 0x5000 },
-  { 0x8000, 0x0007, 0x4000 },
-  { 0x8000, 0x0003, 0x3000 },
-  { 0x8000, 0x0001, 0x2000 },
-  { 0x0000, 0x0000, 0x0000 },
-  { 0x0000, 0x0002, 0x0000 },
-  { 0x8000, 0x0005, 0x2000 },
-  { 0x0000, 0x0004, 0x0000 },
-  { 0x0000, 0x0006, 0x0000 },
-  { 0x8000, 0x000b, 0x3000 },
-  { 0x8000, 0x0009, 0x2000 },
-  { 0x0000, 0x0008, 0x0000 },
-  { 0x0000, 0x000a, 0x0000 },
-  { 0x8000, 0x000d, 0x2000 },
-  { 0x0000, 0x000c, 0x0000 },
-  { 0x0000, 0x000e, 0x0000 },
-  { 0x8000, 0x0017, 0x4000 },
-  { 0x8000, 0x0013, 0x3000 },
-  { 0x8000, 0x0011, 0x2000 },
-  { 0x0000, 0x0010, 0x0000 },
-  { 0x0000, 0x0012, 0x0000 },
-  { 0x8000, 0x0015, 0x2000 },
-  { 0x0000, 0x0014, 0x0000 },
-  { 0x0000, 0x0016, 0x0000 },
-  { 0x8000, 0x001b, 0x3000 },
-  { 0x8000, 0x0019, 0x2000 },
-  { 0x0000, 0x0018, 0x0000 },
-  { 0x0000, 0x001a, 0x0000 },
-  { 0x8000, 0x001d, 0x2000 },
-  { 0x0000, 0x001c, 0x0000 },
-  { 0x0000, 0x001e, 0x0000 },
-  { 0x9500, 0x002f, 0x5000 },
-  { 0x9500, 0x0027, 0x4000 },
-  { 0x9500, 0x0023, 0x3000 },
-  { 0x9500, 0x0021, 0x2000 },
-  { 0x1d00, 0x0020, 0x0000 },
-  { 0x1500, 0x0022, 0x0000 },
-  { 0x9500, 0x0025, 0x2000 },
-  { 0x1700, 0x0024, 0x0000 },
-  { 0x1500, 0x0026, 0x0000 },
-  { 0x9900, 0x002b, 0x3000 },
-  { 0x9200, 0x0029, 0x2000 },
-  { 0x1600, 0x0028, 0x0000 },
-  { 0x1500, 0x002a, 0x0000 },
-  { 0x9100, 0x002d, 0x2000 },
-  { 0x1500, 0x002c, 0x0000 },
-  { 0x1500, 0x002e, 0x0000 },
-  { 0x8d00, 0x0037, 0x4000 },
-  { 0x8d00, 0x0033, 0x3000 },
-  { 0x8d00, 0x0031, 0x2000 },
-  { 0x0d00, 0x0030, 0x0000 },
-  { 0x0d00, 0x0032, 0x0000 },
-  { 0x8d00, 0x0035, 0x2000 },
-  { 0x0d00, 0x0034, 0x0000 },
-  { 0x0d00, 0x0036, 0x0000 },
-  { 0x9500, 0x003b, 0x3000 },
-  { 0x8d00, 0x0039, 0x2000 },
-  { 0x0d00, 0x0038, 0x0000 },
-  { 0x1500, 0x003a, 0x0000 },
-  { 0x9900, 0x003d, 0x2000 },
-  { 0x1900, 0x003c, 0x0000 },
-  { 0x1900, 0x003e, 0x0000 },
-  { 0x9000, 0x005f, 0x6000 },
-  { 0x8900, 0x004f, 0x5020 },
-  { 0x8900, 0x0047, 0x4020 },
-  { 0x8900, 0x0043, 0x3020 },
-  { 0x8900, 0x0041, 0x2020 },
-  { 0x1500, 0x0040, 0x0000 },
-  { 0x0900, 0x0042, 0x0020 },
-  { 0x8900, 0x0045, 0x2020 },
-  { 0x0900, 0x0044, 0x0020 },
-  { 0x0900, 0x0046, 0x0020 },
-  { 0x8900, 0x004b, 0x3020 },
-  { 0x8900, 0x0049, 0x2020 },
-  { 0x0900, 0x0048, 0x0020 },
-  { 0x0900, 0x004a, 0x0020 },
-  { 0x8900, 0x004d, 0x2020 },
-  { 0x0900, 0x004c, 0x0020 },
-  { 0x0900, 0x004e, 0x0020 },
-  { 0x8900, 0x0057, 0x4020 },
-  { 0x8900, 0x0053, 0x3020 },
-  { 0x8900, 0x0051, 0x2020 },
-  { 0x0900, 0x0050, 0x0020 },
-  { 0x0900, 0x0052, 0x0020 },
-  { 0x8900, 0x0055, 0x2020 },
-  { 0x0900, 0x0054, 0x0020 },
-  { 0x0900, 0x0056, 0x0020 },
-  { 0x9600, 0x005b, 0x3000 },
-  { 0x8900, 0x0059, 0x2020 },
-  { 0x0900, 0x0058, 0x0020 },
-  { 0x0900, 0x005a, 0x0020 },
-  { 0x9200, 0x005d, 0x2000 },
-  { 0x1500, 0x005c, 0x0000 },
-  { 0x1800, 0x005e, 0x0000 },
-  { 0x8500, 0x006f, 0x5fe0 },
-  { 0x8500, 0x0067, 0x4fe0 },
-  { 0x8500, 0x0063, 0x3fe0 },
-  { 0x8500, 0x0061, 0x2fe0 },
-  { 0x1800, 0x0060, 0x0000 },
-  { 0x0500, 0x0062, 0x0fe0 },
-  { 0x8500, 0x0065, 0x2fe0 },
-  { 0x0500, 0x0064, 0x0fe0 },
-  { 0x0500, 0x0066, 0x0fe0 },
-  { 0x8500, 0x006b, 0x3fe0 },
-  { 0x8500, 0x0069, 0x2fe0 },
-  { 0x0500, 0x0068, 0x0fe0 },
-  { 0x0500, 0x006a, 0x0fe0 },
-  { 0x8500, 0x006d, 0x2fe0 },
-  { 0x0500, 0x006c, 0x0fe0 },
-  { 0x0500, 0x006e, 0x0fe0 },
-  { 0x8500, 0x0077, 0x4fe0 },
-  { 0x8500, 0x0073, 0x3fe0 },
-  { 0x8500, 0x0071, 0x2fe0 },
-  { 0x0500, 0x0070, 0x0fe0 },
-  { 0x0500, 0x0072, 0x0fe0 },
-  { 0x8500, 0x0075, 0x2fe0 },
-  { 0x0500, 0x0074, 0x0fe0 },
-  { 0x0500, 0x0076, 0x0fe0 },
-  { 0x9600, 0x007b, 0x3000 },
-  { 0x8500, 0x0079, 0x2fe0 },
-  { 0x0500, 0x0078, 0x0fe0 },
-  { 0x0500, 0x007a, 0x0fe0 },
-  { 0x9200, 0x007d, 0x2000 },
-  { 0x1900, 0x007c, 0x0000 },
-  { 0x1900, 0x007e, 0x0000 },
-  { 0x9500, 0x00bf, 0x7000 },
-  { 0x8000, 0x009f, 0x6000 },
-  { 0x8000, 0x008f, 0x5000 },
-  { 0x8000, 0x0087, 0x4000 },
-  { 0x8000, 0x0083, 0x3000 },
-  { 0x8000, 0x0081, 0x2000 },
-  { 0x0000, 0x0080, 0x0000 },
-  { 0x0000, 0x0082, 0x0000 },
-  { 0x8000, 0x0085, 0x2000 },
-  { 0x0000, 0x0084, 0x0000 },
-  { 0x0000, 0x0086, 0x0000 },
-  { 0x8000, 0x008b, 0x3000 },
-  { 0x8000, 0x0089, 0x2000 },
-  { 0x0000, 0x0088, 0x0000 },
-  { 0x0000, 0x008a, 0x0000 },
-  { 0x8000, 0x008d, 0x2000 },
-  { 0x0000, 0x008c, 0x0000 },
-  { 0x0000, 0x008e, 0x0000 },
-  { 0x8000, 0x0097, 0x4000 },
-  { 0x8000, 0x0093, 0x3000 },
-  { 0x8000, 0x0091, 0x2000 },
-  { 0x0000, 0x0090, 0x0000 },
-  { 0x0000, 0x0092, 0x0000 },
-  { 0x8000, 0x0095, 0x2000 },
-  { 0x0000, 0x0094, 0x0000 },
-  { 0x0000, 0x0096, 0x0000 },
-  { 0x8000, 0x009b, 0x3000 },
-  { 0x8000, 0x0099, 0x2000 },
-  { 0x0000, 0x0098, 0x0000 },
-  { 0x0000, 0x009a, 0x0000 },
-  { 0x8000, 0x009d, 0x2000 },
-  { 0x0000, 0x009c, 0x0000 },
-  { 0x0000, 0x009e, 0x0000 },
-  { 0x9800, 0x00af, 0x5000 },
-  { 0x9a00, 0x00a7, 0x4000 },
-  { 0x9700, 0x00a3, 0x3000 },
-  { 0x9500, 0x00a1, 0x2000 },
-  { 0x1d00, 0x00a0, 0x0000 },
-  { 0x1700, 0x00a2, 0x0000 },
-  { 0x9700, 0x00a5, 0x2000 },
-  { 0x1700, 0x00a4, 0x0000 },
-  { 0x1a00, 0x00a6, 0x0000 },
-  { 0x9400, 0x00ab, 0x3000 },
-  { 0x9a00, 0x00a9, 0x2000 },
-  { 0x1800, 0x00a8, 0x0000 },
-  { 0x0500, 0x00aa, 0x0000 },
-  { 0x8100, 0x00ad, 0x2000 },
-  { 0x1900, 0x00ac, 0x0000 },
-  { 0x1a00, 0x00ae, 0x0000 },
-  { 0x9500, 0x00b7, 0x4000 },
-  { 0x8f00, 0x00b3, 0x3000 },
-  { 0x9900, 0x00b1, 0x2000 },
-  { 0x1a00, 0x00b0, 0x0000 },
-  { 0x0f00, 0x00b2, 0x0000 },
-  { 0x8500, 0x00b5, 0x22e7 },
-  { 0x1800, 0x00b4, 0x0000 },
-  { 0x1a00, 0x00b6, 0x0000 },
-  { 0x9300, 0x00bb, 0x3000 },
-  { 0x8f00, 0x00b9, 0x2000 },
-  { 0x1800, 0x00b8, 0x0000 },
-  { 0x0500, 0x00ba, 0x0000 },
-  { 0x8f00, 0x00bd, 0x2000 },
-  { 0x0f00, 0x00bc, 0x0000 },
-  { 0x0f00, 0x00be, 0x0000 },
-  { 0x8500, 0x00df, 0x6000 },
-  { 0x8900, 0x00cf, 0x5020 },
-  { 0x8900, 0x00c7, 0x4020 },
-  { 0x8900, 0x00c3, 0x3020 },
-  { 0x8900, 0x00c1, 0x2020 },
-  { 0x0900, 0x00c0, 0x0020 },
-  { 0x0900, 0x00c2, 0x0020 },
-  { 0x8900, 0x00c5, 0x2020 },
-  { 0x0900, 0x00c4, 0x0020 },
-  { 0x0900, 0x00c6, 0x0020 },
-  { 0x8900, 0x00cb, 0x3020 },
-  { 0x8900, 0x00c9, 0x2020 },
-  { 0x0900, 0x00c8, 0x0020 },
-  { 0x0900, 0x00ca, 0x0020 },
-  { 0x8900, 0x00cd, 0x2020 },
-  { 0x0900, 0x00cc, 0x0020 },
-  { 0x0900, 0x00ce, 0x0020 },
-  { 0x9900, 0x00d7, 0x4000 },
-  { 0x8900, 0x00d3, 0x3020 },
-  { 0x8900, 0x00d1, 0x2020 },
-  { 0x0900, 0x00d0, 0x0020 },
-  { 0x0900, 0x00d2, 0x0020 },
-  { 0x8900, 0x00d5, 0x2020 },
-  { 0x0900, 0x00d4, 0x0020 },
-  { 0x0900, 0x00d6, 0x0020 },
-  { 0x8900, 0x00db, 0x3020 },
-  { 0x8900, 0x00d9, 0x2020 },
-  { 0x0900, 0x00d8, 0x0020 },
-  { 0x0900, 0x00da, 0x0020 },
-  { 0x8900, 0x00dd, 0x2020 },
-  { 0x0900, 0x00dc, 0x0020 },
-  { 0x0900, 0x00de, 0x0020 },
-  { 0x8500, 0x00ef, 0x5fe0 },
-  { 0x8500, 0x00e7, 0x4fe0 },
-  { 0x8500, 0x00e3, 0x3fe0 },
-  { 0x8500, 0x00e1, 0x2fe0 },
-  { 0x0500, 0x00e0, 0x0fe0 },
-  { 0x0500, 0x00e2, 0x0fe0 },
-  { 0x8500, 0x00e5, 0x2fe0 },
-  { 0x0500, 0x00e4, 0x0fe0 },
-  { 0x0500, 0x00e6, 0x0fe0 },
-  { 0x8500, 0x00eb, 0x3fe0 },
-  { 0x8500, 0x00e9, 0x2fe0 },
-  { 0x0500, 0x00e8, 0x0fe0 },
-  { 0x0500, 0x00ea, 0x0fe0 },
-  { 0x8500, 0x00ed, 0x2fe0 },
-  { 0x0500, 0x00ec, 0x0fe0 },
-  { 0x0500, 0x00ee, 0x0fe0 },
-  { 0x9900, 0x00f7, 0x4000 },
-  { 0x8500, 0x00f3, 0x3fe0 },
-  { 0x8500, 0x00f1, 0x2fe0 },
-  { 0x0500, 0x00f0, 0x0fe0 },
-  { 0x0500, 0x00f2, 0x0fe0 },
-  { 0x8500, 0x00f5, 0x2fe0 },
-  { 0x0500, 0x00f4, 0x0fe0 },
-  { 0x0500, 0x00f6, 0x0fe0 },
-  { 0x8500, 0x00fb, 0x3fe0 },
-  { 0x8500, 0x00f9, 0x2fe0 },
-  { 0x0500, 0x00f8, 0x0fe0 },
-  { 0x0500, 0x00fa, 0x0fe0 },
-  { 0x8500, 0x00fd, 0x2fe0 },
-  { 0x0500, 0x00fc, 0x0fe0 },
-  { 0x0500, 0x00fe, 0x0fe0 },
-  { 0x8500, 0x017f, 0x8ed4 },
-  { 0x8900, 0x013f, 0x7001 },
-  { 0x8500, 0x011f, 0x6fff },
-  { 0x8500, 0x010f, 0x5fff },
-  { 0x8500, 0x0107, 0x4fff },
-  { 0x8500, 0x0103, 0x3fff },
-  { 0x8500, 0x0101, 0x2fff },
-  { 0x0900, 0x0100, 0x0001 },
-  { 0x0900, 0x0102, 0x0001 },
-  { 0x8500, 0x0105, 0x2fff },
-  { 0x0900, 0x0104, 0x0001 },
-  { 0x0900, 0x0106, 0x0001 },
-  { 0x8500, 0x010b, 0x3fff },
-  { 0x8500, 0x0109, 0x2fff },
-  { 0x0900, 0x0108, 0x0001 },
-  { 0x0900, 0x010a, 0x0001 },
-  { 0x8500, 0x010d, 0x2fff },
-  { 0x0900, 0x010c, 0x0001 },
-  { 0x0900, 0x010e, 0x0001 },
-  { 0x8500, 0x0117, 0x4fff },
-  { 0x8500, 0x0113, 0x3fff },
-  { 0x8500, 0x0111, 0x2fff },
-  { 0x0900, 0x0110, 0x0001 },
-  { 0x0900, 0x0112, 0x0001 },
-  { 0x8500, 0x0115, 0x2fff },
-  { 0x0900, 0x0114, 0x0001 },
-  { 0x0900, 0x0116, 0x0001 },
-  { 0x8500, 0x011b, 0x3fff },
-  { 0x8500, 0x0119, 0x2fff },
-  { 0x0900, 0x0118, 0x0001 },
-  { 0x0900, 0x011a, 0x0001 },
-  { 0x8500, 0x011d, 0x2fff },
-  { 0x0900, 0x011c, 0x0001 },
-  { 0x0900, 0x011e, 0x0001 },
-  { 0x8500, 0x012f, 0x5fff },
-  { 0x8500, 0x0127, 0x4fff },
-  { 0x8500, 0x0123, 0x3fff },
-  { 0x8500, 0x0121, 0x2fff },
-  { 0x0900, 0x0120, 0x0001 },
-  { 0x0900, 0x0122, 0x0001 },
-  { 0x8500, 0x0125, 0x2fff },
-  { 0x0900, 0x0124, 0x0001 },
-  { 0x0900, 0x0126, 0x0001 },
-  { 0x8500, 0x012b, 0x3fff },
-  { 0x8500, 0x0129, 0x2fff },
-  { 0x0900, 0x0128, 0x0001 },
-  { 0x0900, 0x012a, 0x0001 },
-  { 0x8500, 0x012d, 0x2fff },
-  { 0x0900, 0x012c, 0x0001 },
-  { 0x0900, 0x012e, 0x0001 },
-  { 0x8500, 0x0137, 0x4fff },
-  { 0x8500, 0x0133, 0x3fff },
-  { 0x8500, 0x0131, 0x2f18 },
-  { 0x0900, 0x0130, 0x0f39 },
-  { 0x0900, 0x0132, 0x0001 },
-  { 0x8500, 0x0135, 0x2fff },
-  { 0x0900, 0x0134, 0x0001 },
-  { 0x0900, 0x0136, 0x0001 },
-  { 0x8900, 0x013b, 0x3001 },
-  { 0x8900, 0x0139, 0x2001 },
-  { 0x0500, 0x0138, 0x0000 },
-  { 0x0500, 0x013a, 0x0fff },
-  { 0x8900, 0x013d, 0x2001 },
-  { 0x0500, 0x013c, 0x0fff },
-  { 0x0500, 0x013e, 0x0fff },
-  { 0x8500, 0x015f, 0x6fff },
-  { 0x8500, 0x014f, 0x5fff },
-  { 0x8900, 0x0147, 0x4001 },
-  { 0x8900, 0x0143, 0x3001 },
-  { 0x8900, 0x0141, 0x2001 },
-  { 0x0500, 0x0140, 0x0fff },
-  { 0x0500, 0x0142, 0x0fff },
-  { 0x8900, 0x0145, 0x2001 },
-  { 0x0500, 0x0144, 0x0fff },
-  { 0x0500, 0x0146, 0x0fff },
-  { 0x8500, 0x014b, 0x3fff },
-  { 0x8500, 0x0149, 0x2000 },
-  { 0x0500, 0x0148, 0x0fff },
-  { 0x0900, 0x014a, 0x0001 },
-  { 0x8500, 0x014d, 0x2fff },
-  { 0x0900, 0x014c, 0x0001 },
-  { 0x0900, 0x014e, 0x0001 },
-  { 0x8500, 0x0157, 0x4fff },
-  { 0x8500, 0x0153, 0x3fff },
-  { 0x8500, 0x0151, 0x2fff },
-  { 0x0900, 0x0150, 0x0001 },
-  { 0x0900, 0x0152, 0x0001 },
-  { 0x8500, 0x0155, 0x2fff },
-  { 0x0900, 0x0154, 0x0001 },
-  { 0x0900, 0x0156, 0x0001 },
-  { 0x8500, 0x015b, 0x3fff },
-  { 0x8500, 0x0159, 0x2fff },
-  { 0x0900, 0x0158, 0x0001 },
-  { 0x0900, 0x015a, 0x0001 },
-  { 0x8500, 0x015d, 0x2fff },
-  { 0x0900, 0x015c, 0x0001 },
-  { 0x0900, 0x015e, 0x0001 },
-  { 0x8500, 0x016f, 0x5fff },
-  { 0x8500, 0x0167, 0x4fff },
-  { 0x8500, 0x0163, 0x3fff },
-  { 0x8500, 0x0161, 0x2fff },
-  { 0x0900, 0x0160, 0x0001 },
-  { 0x0900, 0x0162, 0x0001 },
-  { 0x8500, 0x0165, 0x2fff },
-  { 0x0900, 0x0164, 0x0001 },
-  { 0x0900, 0x0166, 0x0001 },
-  { 0x8500, 0x016b, 0x3fff },
-  { 0x8500, 0x0169, 0x2fff },
-  { 0x0900, 0x0168, 0x0001 },
-  { 0x0900, 0x016a, 0x0001 },
-  { 0x8500, 0x016d, 0x2fff },
-  { 0x0900, 0x016c, 0x0001 },
-  { 0x0900, 0x016e, 0x0001 },
-  { 0x8500, 0x0177, 0x4fff },
-  { 0x8500, 0x0173, 0x3fff },
-  { 0x8500, 0x0171, 0x2fff },
-  { 0x0900, 0x0170, 0x0001 },
-  { 0x0900, 0x0172, 0x0001 },
-  { 0x8500, 0x0175, 0x2fff },
-  { 0x0900, 0x0174, 0x0001 },
-  { 0x0900, 0x0176, 0x0001 },
-  { 0x8900, 0x017b, 0x3001 },
-  { 0x8900, 0x0179, 0x2001 },
-  { 0x0900, 0x0178, 0x0f87 },
-  { 0x0500, 0x017a, 0x0fff },
-  { 0x8900, 0x017d, 0x2001 },
-  { 0x0500, 0x017c, 0x0fff },
-  { 0x0500, 0x017e, 0x0fff },
-  { 0x8500, 0x01bf, 0x7038 },
-  { 0x8900, 0x019f, 0x60d6 },
-  { 0x8900, 0x018f, 0x50ca },
-  { 0x8900, 0x0187, 0x4001 },
-  { 0x8500, 0x0183, 0x3fff },
-  { 0x8900, 0x0181, 0x20d2 },
-  { 0x0500, 0x0180, 0x0000 },
-  { 0x0900, 0x0182, 0x0001 },
-  { 0x8500, 0x0185, 0x2fff },
-  { 0x0900, 0x0184, 0x0001 },
-  { 0x0900, 0x0186, 0x00ce },
-  { 0x8900, 0x018b, 0x3001 },
-  { 0x8900, 0x0189, 0x20cd },
-  { 0x0500, 0x0188, 0x0fff },
-  { 0x0900, 0x018a, 0x00cd },
-  { 0x8500, 0x018d, 0x2000 },
-  { 0x0500, 0x018c, 0x0fff },
-  { 0x0900, 0x018e, 0x004f },
-  { 0x8900, 0x0197, 0x40d1 },
-  { 0x8900, 0x0193, 0x30cd },
-  { 0x8900, 0x0191, 0x2001 },
-  { 0x0900, 0x0190, 0x00cb },
-  { 0x0500, 0x0192, 0x0fff },
-  { 0x8500, 0x0195, 0x2061 },
-  { 0x0900, 0x0194, 0x00cf },
-  { 0x0900, 0x0196, 0x00d3 },
-  { 0x8500, 0x019b, 0x3000 },
-  { 0x8500, 0x0199, 0x2fff },
-  { 0x0900, 0x0198, 0x0001 },
-  { 0x0500, 0x019a, 0x0000 },
-  { 0x8900, 0x019d, 0x20d5 },
-  { 0x0900, 0x019c, 0x00d3 },
-  { 0x0500, 0x019e, 0x0082 },
-  { 0x8900, 0x01af, 0x5001 },
-  { 0x8900, 0x01a7, 0x4001 },
-  { 0x8500, 0x01a3, 0x3fff },
-  { 0x8500, 0x01a1, 0x2fff },
-  { 0x0900, 0x01a0, 0x0001 },
-  { 0x0900, 0x01a2, 0x0001 },
-  { 0x8500, 0x01a5, 0x2fff },
-  { 0x0900, 0x01a4, 0x0001 },
-  { 0x0900, 0x01a6, 0x00da },
-  { 0x8500, 0x01ab, 0x3000 },
-  { 0x8900, 0x01a9, 0x20da },
-  { 0x0500, 0x01a8, 0x0fff },
-  { 0x0500, 0x01aa, 0x0000 },
-  { 0x8500, 0x01ad, 0x2fff },
-  { 0x0900, 0x01ac, 0x0001 },
-  { 0x0900, 0x01ae, 0x00da },
-  { 0x8900, 0x01b7, 0x40db },
-  { 0x8900, 0x01b3, 0x3001 },
-  { 0x8900, 0x01b1, 0x20d9 },
-  { 0x0500, 0x01b0, 0x0fff },
-  { 0x0900, 0x01b2, 0x00d9 },
-  { 0x8900, 0x01b5, 0x2001 },
-  { 0x0500, 0x01b4, 0x0fff },
-  { 0x0500, 0x01b6, 0x0fff },
-  { 0x8700, 0x01bb, 0x3000 },
-  { 0x8500, 0x01b9, 0x2fff },
-  { 0x0900, 0x01b8, 0x0001 },
-  { 0x0500, 0x01ba, 0x0000 },
-  { 0x8500, 0x01bd, 0x2fff },
-  { 0x0900, 0x01bc, 0x0001 },
-  { 0x0500, 0x01be, 0x0000 },
-  { 0x8500, 0x01df, 0x6fff },
-  { 0x8900, 0x01cf, 0x5001 },
-  { 0x8900, 0x01c7, 0x4002 },
-  { 0x8700, 0x01c3, 0x3000 },
-  { 0x8700, 0x01c1, 0x2000 },
-  { 0x0700, 0x01c0, 0x0000 },
-  { 0x0700, 0x01c2, 0x0000 },
-  { 0x8800, 0x01c5, 0x2000 },
-  { 0x0900, 0x01c4, 0x0002 },
-  { 0x0500, 0x01c6, 0x0ffe },
-  { 0x8800, 0x01cb, 0x3000 },
-  { 0x8500, 0x01c9, 0x2ffe },
-  { 0x0800, 0x01c8, 0x0000 },
-  { 0x0900, 0x01ca, 0x0002 },
-  { 0x8900, 0x01cd, 0x2001 },
-  { 0x0500, 0x01cc, 0x0ffe },
-  { 0x0500, 0x01ce, 0x0fff },
-  { 0x8900, 0x01d7, 0x4001 },
-  { 0x8900, 0x01d3, 0x3001 },
-  { 0x8900, 0x01d1, 0x2001 },
-  { 0x0500, 0x01d0, 0x0fff },
-  { 0x0500, 0x01d2, 0x0fff },
-  { 0x8900, 0x01d5, 0x2001 },
-  { 0x0500, 0x01d4, 0x0fff },
-  { 0x0500, 0x01d6, 0x0fff },
-  { 0x8900, 0x01db, 0x3001 },
-  { 0x8900, 0x01d9, 0x2001 },
-  { 0x0500, 0x01d8, 0x0fff },
-  { 0x0500, 0x01da, 0x0fff },
-  { 0x8500, 0x01dd, 0x2fb1 },
-  { 0x0500, 0x01dc, 0x0fff },
-  { 0x0900, 0x01de, 0x0001 },
-  { 0x8500, 0x01ef, 0x5fff },
-  { 0x8500, 0x01e7, 0x4fff },
-  { 0x8500, 0x01e3, 0x3fff },
-  { 0x8500, 0x01e1, 0x2fff },
-  { 0x0900, 0x01e0, 0x0001 },
-  { 0x0900, 0x01e2, 0x0001 },
-  { 0x8500, 0x01e5, 0x2fff },
-  { 0x0900, 0x01e4, 0x0001 },
-  { 0x0900, 0x01e6, 0x0001 },
-  { 0x8500, 0x01eb, 0x3fff },
-  { 0x8500, 0x01e9, 0x2fff },
-  { 0x0900, 0x01e8, 0x0001 },
-  { 0x0900, 0x01ea, 0x0001 },
-  { 0x8500, 0x01ed, 0x2fff },
-  { 0x0900, 0x01ec, 0x0001 },
-  { 0x0900, 0x01ee, 0x0001 },
-  { 0x8900, 0x01f7, 0x4fc8 },
-  { 0x8500, 0x01f3, 0x3ffe },
-  { 0x8900, 0x01f1, 0x2002 },
-  { 0x0500, 0x01f0, 0x0000 },
-  { 0x0800, 0x01f2, 0x0000 },
-  { 0x8500, 0x01f5, 0x2fff },
-  { 0x0900, 0x01f4, 0x0001 },
-  { 0x0900, 0x01f6, 0x0f9f },
-  { 0x8500, 0x01fb, 0x3fff },
-  { 0x8500, 0x01f9, 0x2fff },
-  { 0x0900, 0x01f8, 0x0001 },
-  { 0x0900, 0x01fa, 0x0001 },
-  { 0x8500, 0x01fd, 0x2fff },
-  { 0x0900, 0x01fc, 0x0001 },
-  { 0x0900, 0x01fe, 0x0001 },
-  { 0x8c00, 0x0318, 0x9000 },
-  { 0x8500, 0x0298, 0x8000 },
-  { 0x8500, 0x0258, 0x7000 },
-  { 0x8500, 0x021f, 0x6fff },
-  { 0x8500, 0x020f, 0x5fff },
-  { 0x8500, 0x0207, 0x4fff },
-  { 0x8500, 0x0203, 0x3fff },
-  { 0x8500, 0x0201, 0x2fff },
-  { 0x0900, 0x0200, 0x0001 },
-  { 0x0900, 0x0202, 0x0001 },
-  { 0x8500, 0x0205, 0x2fff },
-  { 0x0900, 0x0204, 0x0001 },
-  { 0x0900, 0x0206, 0x0001 },
-  { 0x8500, 0x020b, 0x3fff },
-  { 0x8500, 0x0209, 0x2fff },
-  { 0x0900, 0x0208, 0x0001 },
-  { 0x0900, 0x020a, 0x0001 },
-  { 0x8500, 0x020d, 0x2fff },
-  { 0x0900, 0x020c, 0x0001 },
-  { 0x0900, 0x020e, 0x0001 },
-  { 0x8500, 0x0217, 0x4fff },
-  { 0x8500, 0x0213, 0x3fff },
-  { 0x8500, 0x0211, 0x2fff },
-  { 0x0900, 0x0210, 0x0001 },
-  { 0x0900, 0x0212, 0x0001 },
-  { 0x8500, 0x0215, 0x2fff },
-  { 0x0900, 0x0214, 0x0001 },
-  { 0x0900, 0x0216, 0x0001 },
-  { 0x8500, 0x021b, 0x3fff },
-  { 0x8500, 0x0219, 0x2fff },
-  { 0x0900, 0x0218, 0x0001 },
-  { 0x0900, 0x021a, 0x0001 },
-  { 0x8500, 0x021d, 0x2fff },
-  { 0x0900, 0x021c, 0x0001 },
-  { 0x0900, 0x021e, 0x0001 },
-  { 0x8500, 0x022f, 0x5fff },
-  { 0x8500, 0x0227, 0x4fff },
-  { 0x8500, 0x0223, 0x3fff },
-  { 0x8500, 0x0221, 0x2000 },
-  { 0x0900, 0x0220, 0x0f7e },
-  { 0x0900, 0x0222, 0x0001 },
-  { 0x8500, 0x0225, 0x2fff },
-  { 0x0900, 0x0224, 0x0001 },
-  { 0x0900, 0x0226, 0x0001 },
-  { 0x8500, 0x022b, 0x3fff },
-  { 0x8500, 0x0229, 0x2fff },
-  { 0x0900, 0x0228, 0x0001 },
-  { 0x0900, 0x022a, 0x0001 },
-  { 0x8500, 0x022d, 0x2fff },
-  { 0x0900, 0x022c, 0x0001 },
-  { 0x0900, 0x022e, 0x0001 },
-  { 0x8500, 0x0250, 0x4000 },
-  { 0x8500, 0x0233, 0x3fff },
-  { 0x8500, 0x0231, 0x2fff },
-  { 0x0900, 0x0230, 0x0001 },
-  { 0x0900, 0x0232, 0x0001 },
-  { 0x8500, 0x0235, 0x2000 },
-  { 0x0500, 0x0234, 0x0000 },
-  { 0x0500, 0x0236, 0x0000 },
-  { 0x8500, 0x0254, 0x3f32 },
-  { 0x8500, 0x0252, 0x2000 },
-  { 0x0500, 0x0251, 0x0000 },
-  { 0x0500, 0x0253, 0x0f2e },
-  { 0x8500, 0x0256, 0x2f33 },
-  { 0x0500, 0x0255, 0x0000 },
-  { 0x0500, 0x0257, 0x0f33 },
-  { 0x8500, 0x0278, 0x6000 },
-  { 0x8500, 0x0268, 0x5f2f },
-  { 0x8500, 0x0260, 0x4f33 },
-  { 0x8500, 0x025c, 0x3000 },
-  { 0x8500, 0x025a, 0x2000 },
-  { 0x0500, 0x0259, 0x0f36 },
-  { 0x0500, 0x025b, 0x0f35 },
-  { 0x8500, 0x025e, 0x2000 },
-  { 0x0500, 0x025d, 0x0000 },
-  { 0x0500, 0x025f, 0x0000 },
-  { 0x8500, 0x0264, 0x3000 },
-  { 0x8500, 0x0262, 0x2000 },
-  { 0x0500, 0x0261, 0x0000 },
-  { 0x0500, 0x0263, 0x0f31 },
-  { 0x8500, 0x0266, 0x2000 },
-  { 0x0500, 0x0265, 0x0000 },
-  { 0x0500, 0x0267, 0x0000 },
-  { 0x8500, 0x0270, 0x4000 },
-  { 0x8500, 0x026c, 0x3000 },
-  { 0x8500, 0x026a, 0x2000 },
-  { 0x0500, 0x0269, 0x0f2d },
-  { 0x0500, 0x026b, 0x0000 },
-  { 0x8500, 0x026e, 0x2000 },
-  { 0x0500, 0x026d, 0x0000 },
-  { 0x0500, 0x026f, 0x0f2d },
-  { 0x8500, 0x0274, 0x3000 },
-  { 0x8500, 0x0272, 0x2f2b },
-  { 0x0500, 0x0271, 0x0000 },
-  { 0x0500, 0x0273, 0x0000 },
-  { 0x8500, 0x0276, 0x2000 },
-  { 0x0500, 0x0275, 0x0f2a },
-  { 0x0500, 0x0277, 0x0000 },
-  { 0x8500, 0x0288, 0x5f26 },
-  { 0x8500, 0x0280, 0x4f26 },
-  { 0x8500, 0x027c, 0x3000 },
-  { 0x8500, 0x027a, 0x2000 },
-  { 0x0500, 0x0279, 0x0000 },
-  { 0x0500, 0x027b, 0x0000 },
-  { 0x8500, 0x027e, 0x2000 },
-  { 0x0500, 0x027d, 0x0000 },
-  { 0x0500, 0x027f, 0x0000 },
-  { 0x8500, 0x0284, 0x3000 },
-  { 0x8500, 0x0282, 0x2000 },
-  { 0x0500, 0x0281, 0x0000 },
-  { 0x0500, 0x0283, 0x0f26 },
-  { 0x8500, 0x0286, 0x2000 },
-  { 0x0500, 0x0285, 0x0000 },
-  { 0x0500, 0x0287, 0x0000 },
-  { 0x8500, 0x0290, 0x4000 },
-  { 0x8500, 0x028c, 0x3000 },
-  { 0x8500, 0x028a, 0x2f27 },
-  { 0x0500, 0x0289, 0x0000 },
-  { 0x0500, 0x028b, 0x0f27 },
-  { 0x8500, 0x028e, 0x2000 },
-  { 0x0500, 0x028d, 0x0000 },
-  { 0x0500, 0x028f, 0x0000 },
-  { 0x8500, 0x0294, 0x3000 },
-  { 0x8500, 0x0292, 0x2f25 },
-  { 0x0500, 0x0291, 0x0000 },
-  { 0x0500, 0x0293, 0x0000 },
-  { 0x8500, 0x0296, 0x2000 },
-  { 0x0500, 0x0295, 0x0000 },
-  { 0x0500, 0x0297, 0x0000 },
-  { 0x9800, 0x02d8, 0x7000 },
-  { 0x8600, 0x02b8, 0x6000 },
-  { 0x8500, 0x02a8, 0x5000 },
-  { 0x8500, 0x02a0, 0x4000 },
-  { 0x8500, 0x029c, 0x3000 },
-  { 0x8500, 0x029a, 0x2000 },
-  { 0x0500, 0x0299, 0x0000 },
-  { 0x0500, 0x029b, 0x0000 },
-  { 0x8500, 0x029e, 0x2000 },
-  { 0x0500, 0x029d, 0x0000 },
-  { 0x0500, 0x029f, 0x0000 },
-  { 0x8500, 0x02a4, 0x3000 },
-  { 0x8500, 0x02a2, 0x2000 },
-  { 0x0500, 0x02a1, 0x0000 },
-  { 0x0500, 0x02a3, 0x0000 },
-  { 0x8500, 0x02a6, 0x2000 },
-  { 0x0500, 0x02a5, 0x0000 },
-  { 0x0500, 0x02a7, 0x0000 },
-  { 0x8600, 0x02b0, 0x4000 },
-  { 0x8500, 0x02ac, 0x3000 },
-  { 0x8500, 0x02aa, 0x2000 },
-  { 0x0500, 0x02a9, 0x0000 },
-  { 0x0500, 0x02ab, 0x0000 },
-  { 0x8500, 0x02ae, 0x2000 },
-  { 0x0500, 0x02ad, 0x0000 },
-  { 0x0500, 0x02af, 0x0000 },
-  { 0x8600, 0x02b4, 0x3000 },
-  { 0x8600, 0x02b2, 0x2000 },
-  { 0x0600, 0x02b1, 0x0000 },
-  { 0x0600, 0x02b3, 0x0000 },
-  { 0x8600, 0x02b6, 0x2000 },
-  { 0x0600, 0x02b5, 0x0000 },
-  { 0x0600, 0x02b7, 0x0000 },
-  { 0x8600, 0x02c8, 0x5000 },
-  { 0x8600, 0x02c0, 0x4000 },
-  { 0x8600, 0x02bc, 0x3000 },
-  { 0x8600, 0x02ba, 0x2000 },
-  { 0x0600, 0x02b9, 0x0000 },
-  { 0x0600, 0x02bb, 0x0000 },
-  { 0x8600, 0x02be, 0x2000 },
-  { 0x0600, 0x02bd, 0x0000 },
-  { 0x0600, 0x02bf, 0x0000 },
-  { 0x9800, 0x02c4, 0x3000 },
-  { 0x9800, 0x02c2, 0x2000 },
-  { 0x0600, 0x02c1, 0x0000 },
-  { 0x1800, 0x02c3, 0x0000 },
-  { 0x8600, 0x02c6, 0x2000 },
-  { 0x1800, 0x02c5, 0x0000 },
-  { 0x0600, 0x02c7, 0x0000 },
-  { 0x8600, 0x02d0, 0x4000 },
-  { 0x8600, 0x02cc, 0x3000 },
-  { 0x8600, 0x02ca, 0x2000 },
-  { 0x0600, 0x02c9, 0x0000 },
-  { 0x0600, 0x02cb, 0x0000 },
-  { 0x8600, 0x02ce, 0x2000 },
-  { 0x0600, 0x02cd, 0x0000 },
-  { 0x0600, 0x02cf, 0x0000 },
-  { 0x9800, 0x02d4, 0x3000 },
-  { 0x9800, 0x02d2, 0x2000 },
-  { 0x0600, 0x02d1, 0x0000 },
-  { 0x1800, 0x02d3, 0x0000 },
-  { 0x9800, 0x02d6, 0x2000 },
-  { 0x1800, 0x02d5, 0x0000 },
-  { 0x1800, 0x02d7, 0x0000 },
-  { 0x9800, 0x02f8, 0x6000 },
-  { 0x9800, 0x02e8, 0x5000 },
-  { 0x8600, 0x02e0, 0x4000 },
-  { 0x9800, 0x02dc, 0x3000 },
-  { 0x9800, 0x02da, 0x2000 },
-  { 0x1800, 0x02d9, 0x0000 },
-  { 0x1800, 0x02db, 0x0000 },
-  { 0x9800, 0x02de, 0x2000 },
-  { 0x1800, 0x02dd, 0x0000 },
-  { 0x1800, 0x02df, 0x0000 },
-  { 0x8600, 0x02e4, 0x3000 },
-  { 0x8600, 0x02e2, 0x2000 },
-  { 0x0600, 0x02e1, 0x0000 },
-  { 0x0600, 0x02e3, 0x0000 },
-  { 0x9800, 0x02e6, 0x2000 },
-  { 0x1800, 0x02e5, 0x0000 },
-  { 0x1800, 0x02e7, 0x0000 },
-  { 0x9800, 0x02f0, 0x4000 },
-  { 0x9800, 0x02ec, 0x3000 },
-  { 0x9800, 0x02ea, 0x2000 },
-  { 0x1800, 0x02e9, 0x0000 },
-  { 0x1800, 0x02eb, 0x0000 },
-  { 0x8600, 0x02ee, 0x2000 },
-  { 0x1800, 0x02ed, 0x0000 },
-  { 0x1800, 0x02ef, 0x0000 },
-  { 0x9800, 0x02f4, 0x3000 },
-  { 0x9800, 0x02f2, 0x2000 },
-  { 0x1800, 0x02f1, 0x0000 },
-  { 0x1800, 0x02f3, 0x0000 },
-  { 0x9800, 0x02f6, 0x2000 },
-  { 0x1800, 0x02f5, 0x0000 },
-  { 0x1800, 0x02f7, 0x0000 },
-  { 0x8c00, 0x0308, 0x5000 },
-  { 0x8c00, 0x0300, 0x4000 },
-  { 0x9800, 0x02fc, 0x3000 },
-  { 0x9800, 0x02fa, 0x2000 },
-  { 0x1800, 0x02f9, 0x0000 },
-  { 0x1800, 0x02fb, 0x0000 },
-  { 0x9800, 0x02fe, 0x2000 },
-  { 0x1800, 0x02fd, 0x0000 },
-  { 0x1800, 0x02ff, 0x0000 },
-  { 0x8c00, 0x0304, 0x3000 },
-  { 0x8c00, 0x0302, 0x2000 },
-  { 0x0c00, 0x0301, 0x0000 },
-  { 0x0c00, 0x0303, 0x0000 },
-  { 0x8c00, 0x0306, 0x2000 },
-  { 0x0c00, 0x0305, 0x0000 },
-  { 0x0c00, 0x0307, 0x0000 },
-  { 0x8c00, 0x0310, 0x4000 },
-  { 0x8c00, 0x030c, 0x3000 },
-  { 0x8c00, 0x030a, 0x2000 },
-  { 0x0c00, 0x0309, 0x0000 },
-  { 0x0c00, 0x030b, 0x0000 },
-  { 0x8c00, 0x030e, 0x2000 },
-  { 0x0c00, 0x030d, 0x0000 },
-  { 0x0c00, 0x030f, 0x0000 },
-  { 0x8c00, 0x0314, 0x3000 },
-  { 0x8c00, 0x0312, 0x2000 },
-  { 0x0c00, 0x0311, 0x0000 },
-  { 0x0c00, 0x0313, 0x0000 },
-  { 0x8c00, 0x0316, 0x2000 },
-  { 0x0c00, 0x0315, 0x0000 },
-  { 0x0c00, 0x0317, 0x0000 },
-  { 0x8500, 0x03b0, 0x8000 },
-  { 0x8c00, 0x035d, 0x7000 },
-  { 0x8c00, 0x0338, 0x6000 },
-  { 0x8c00, 0x0328, 0x5000 },
-  { 0x8c00, 0x0320, 0x4000 },
-  { 0x8c00, 0x031c, 0x3000 },
-  { 0x8c00, 0x031a, 0x2000 },
-  { 0x0c00, 0x0319, 0x0000 },
-  { 0x0c00, 0x031b, 0x0000 },
-  { 0x8c00, 0x031e, 0x2000 },
-  { 0x0c00, 0x031d, 0x0000 },
-  { 0x0c00, 0x031f, 0x0000 },
-  { 0x8c00, 0x0324, 0x3000 },
-  { 0x8c00, 0x0322, 0x2000 },
-  { 0x0c00, 0x0321, 0x0000 },
-  { 0x0c00, 0x0323, 0x0000 },
-  { 0x8c00, 0x0326, 0x2000 },
-  { 0x0c00, 0x0325, 0x0000 },
-  { 0x0c00, 0x0327, 0x0000 },
-  { 0x8c00, 0x0330, 0x4000 },
-  { 0x8c00, 0x032c, 0x3000 },
-  { 0x8c00, 0x032a, 0x2000 },
-  { 0x0c00, 0x0329, 0x0000 },
-  { 0x0c00, 0x032b, 0x0000 },
-  { 0x8c00, 0x032e, 0x2000 },
-  { 0x0c00, 0x032d, 0x0000 },
-  { 0x0c00, 0x032f, 0x0000 },
-  { 0x8c00, 0x0334, 0x3000 },
-  { 0x8c00, 0x0332, 0x2000 },
-  { 0x0c00, 0x0331, 0x0000 },
-  { 0x0c00, 0x0333, 0x0000 },
-  { 0x8c00, 0x0336, 0x2000 },
-  { 0x0c00, 0x0335, 0x0000 },
-  { 0x0c00, 0x0337, 0x0000 },
-  { 0x8c00, 0x0348, 0x5000 },
-  { 0x8c00, 0x0340, 0x4000 },
-  { 0x8c00, 0x033c, 0x3000 },
-  { 0x8c00, 0x033a, 0x2000 },
-  { 0x0c00, 0x0339, 0x0000 },
-  { 0x0c00, 0x033b, 0x0000 },
-  { 0x8c00, 0x033e, 0x2000 },
-  { 0x0c00, 0x033d, 0x0000 },
-  { 0x0c00, 0x033f, 0x0000 },
-  { 0x8c00, 0x0344, 0x3000 },
-  { 0x8c00, 0x0342, 0x2000 },
-  { 0x0c00, 0x0341, 0x0000 },
-  { 0x0c00, 0x0343, 0x0000 },
-  { 0x8c00, 0x0346, 0x2000 },
-  { 0x0c00, 0x0345, 0x0000 },
-  { 0x0c00, 0x0347, 0x0000 },
-  { 0x8c00, 0x0350, 0x4000 },
-  { 0x8c00, 0x034c, 0x3000 },
-  { 0x8c00, 0x034a, 0x2000 },
-  { 0x0c00, 0x0349, 0x0000 },
-  { 0x0c00, 0x034b, 0x0000 },
-  { 0x8c00, 0x034e, 0x2000 },
-  { 0x0c00, 0x034d, 0x0000 },
-  { 0x0c00, 0x034f, 0x0000 },
-  { 0x8c00, 0x0354, 0x3000 },
-  { 0x8c00, 0x0352, 0x2000 },
-  { 0x0c00, 0x0351, 0x0000 },
-  { 0x0c00, 0x0353, 0x0000 },
-  { 0x8c00, 0x0356, 0x2000 },
-  { 0x0c00, 0x0355, 0x0000 },
-  { 0x0c00, 0x0357, 0x0000 },
-  { 0x8900, 0x038f, 0x603f },
-  { 0x8c00, 0x036d, 0x5000 },
-  { 0x8c00, 0x0365, 0x4000 },
-  { 0x8c00, 0x0361, 0x3000 },
-  { 0x8c00, 0x035f, 0x2000 },
-  { 0x0c00, 0x035e, 0x0000 },
-  { 0x0c00, 0x0360, 0x0000 },
-  { 0x8c00, 0x0363, 0x2000 },
-  { 0x0c00, 0x0362, 0x0000 },
-  { 0x0c00, 0x0364, 0x0000 },
-  { 0x8c00, 0x0369, 0x3000 },
-  { 0x8c00, 0x0367, 0x2000 },
-  { 0x0c00, 0x0366, 0x0000 },
-  { 0x0c00, 0x0368, 0x0000 },
-  { 0x8c00, 0x036b, 0x2000 },
-  { 0x0c00, 0x036a, 0x0000 },
-  { 0x0c00, 0x036c, 0x0000 },
-  { 0x9800, 0x0385, 0x4000 },
-  { 0x9800, 0x0375, 0x3000 },
-  { 0x8c00, 0x036f, 0x2000 },
-  { 0x0c00, 0x036e, 0x0000 },
-  { 0x1800, 0x0374, 0x0000 },
-  { 0x9500, 0x037e, 0x2000 },
-  { 0x0600, 0x037a, 0x0000 },
-  { 0x1800, 0x0384, 0x0000 },
-  { 0x8900, 0x0389, 0x3025 },
-  { 0x9500, 0x0387, 0x2000 },
-  { 0x0900, 0x0386, 0x0026 },
-  { 0x0900, 0x0388, 0x0025 },
-  { 0x8900, 0x038c, 0x2040 },
-  { 0x0900, 0x038a, 0x0025 },
-  { 0x0900, 0x038e, 0x003f },
-  { 0x8900, 0x039f, 0x5020 },
-  { 0x8900, 0x0397, 0x4020 },
-  { 0x8900, 0x0393, 0x3020 },
-  { 0x8900, 0x0391, 0x2020 },
-  { 0x0500, 0x0390, 0x0000 },
-  { 0x0900, 0x0392, 0x0020 },
-  { 0x8900, 0x0395, 0x2020 },
-  { 0x0900, 0x0394, 0x0020 },
-  { 0x0900, 0x0396, 0x0020 },
-  { 0x8900, 0x039b, 0x3020 },
-  { 0x8900, 0x0399, 0x2020 },
-  { 0x0900, 0x0398, 0x0020 },
-  { 0x0900, 0x039a, 0x0020 },
-  { 0x8900, 0x039d, 0x2020 },
-  { 0x0900, 0x039c, 0x0020 },
-  { 0x0900, 0x039e, 0x0020 },
-  { 0x8900, 0x03a8, 0x4020 },
-  { 0x8900, 0x03a4, 0x3020 },
-  { 0x8900, 0x03a1, 0x2020 },
-  { 0x0900, 0x03a0, 0x0020 },
-  { 0x0900, 0x03a3, 0x0020 },
-  { 0x8900, 0x03a6, 0x2020 },
-  { 0x0900, 0x03a5, 0x0020 },
-  { 0x0900, 0x03a7, 0x0020 },
-  { 0x8500, 0x03ac, 0x3fda },
-  { 0x8900, 0x03aa, 0x2020 },
-  { 0x0900, 0x03a9, 0x0020 },
-  { 0x0900, 0x03ab, 0x0020 },
-  { 0x8500, 0x03ae, 0x2fdb },
-  { 0x0500, 0x03ad, 0x0fdb },
-  { 0x0500, 0x03af, 0x0fdb },
-  { 0x8500, 0x03f1, 0x7fb0 },
-  { 0x8500, 0x03d1, 0x6fc7 },
-  { 0x8500, 0x03c0, 0x5fe0 },
-  { 0x8500, 0x03b8, 0x4fe0 },
-  { 0x8500, 0x03b4, 0x3fe0 },
-  { 0x8500, 0x03b2, 0x2fe0 },
-  { 0x0500, 0x03b1, 0x0fe0 },
-  { 0x0500, 0x03b3, 0x0fe0 },
-  { 0x8500, 0x03b6, 0x2fe0 },
-  { 0x0500, 0x03b5, 0x0fe0 },
-  { 0x0500, 0x03b7, 0x0fe0 },
-  { 0x8500, 0x03bc, 0x3fe0 },
-  { 0x8500, 0x03ba, 0x2fe0 },
-  { 0x0500, 0x03b9, 0x0fe0 },
-  { 0x0500, 0x03bb, 0x0fe0 },
-  { 0x8500, 0x03be, 0x2fe0 },
-  { 0x0500, 0x03bd, 0x0fe0 },
-  { 0x0500, 0x03bf, 0x0fe0 },
-  { 0x8500, 0x03c8, 0x4fe0 },
-  { 0x8500, 0x03c4, 0x3fe0 },
-  { 0x8500, 0x03c2, 0x2fe1 },
-  { 0x0500, 0x03c1, 0x0fe0 },
-  { 0x0500, 0x03c3, 0x0fe0 },
-  { 0x8500, 0x03c6, 0x2fe0 },
-  { 0x0500, 0x03c5, 0x0fe0 },
-  { 0x0500, 0x03c7, 0x0fe0 },
-  { 0x8500, 0x03cc, 0x3fc0 },
-  { 0x8500, 0x03ca, 0x2fe0 },
-  { 0x0500, 0x03c9, 0x0fe0 },
-  { 0x0500, 0x03cb, 0x0fe0 },
-  { 0x8500, 0x03ce, 0x2fc1 },
-  { 0x0500, 0x03cd, 0x0fc1 },
-  { 0x0500, 0x03d0, 0x0fc2 },
-  { 0x8500, 0x03e1, 0x5fff },
-  { 0x8500, 0x03d9, 0x4fff },
-  { 0x8500, 0x03d5, 0x3fd1 },
-  { 0x8900, 0x03d3, 0x2000 },
-  { 0x0900, 0x03d2, 0x0000 },
-  { 0x0900, 0x03d4, 0x0000 },
-  { 0x8500, 0x03d7, 0x2000 },
-  { 0x0500, 0x03d6, 0x0fca },
-  { 0x0900, 0x03d8, 0x0001 },
-  { 0x8500, 0x03dd, 0x3fff },
-  { 0x8500, 0x03db, 0x2fff },
-  { 0x0900, 0x03da, 0x0001 },
-  { 0x0900, 0x03dc, 0x0001 },
-  { 0x8500, 0x03df, 0x2fff },
-  { 0x0900, 0x03de, 0x0001 },
-  { 0x0900, 0x03e0, 0x0001 },
-  { 0x8500, 0x03e9, 0x4fff },
-  { 0x8500, 0x03e5, 0x3fff },
-  { 0x8500, 0x03e3, 0x2fff },
-  { 0x0900, 0x03e2, 0x0001 },
-  { 0x0900, 0x03e4, 0x0001 },
-  { 0x8500, 0x03e7, 0x2fff },
-  { 0x0900, 0x03e6, 0x0001 },
-  { 0x0900, 0x03e8, 0x0001 },
-  { 0x8500, 0x03ed, 0x3fff },
-  { 0x8500, 0x03eb, 0x2fff },
-  { 0x0900, 0x03ea, 0x0001 },
-  { 0x0900, 0x03ec, 0x0001 },
-  { 0x8500, 0x03ef, 0x2fff },
-  { 0x0900, 0x03ee, 0x0001 },
-  { 0x0500, 0x03f0, 0x0faa },
-  { 0x8900, 0x0415, 0x6020 },
-  { 0x8900, 0x0405, 0x5050 },
-  { 0x8900, 0x03f9, 0x4ff9 },
-  { 0x8500, 0x03f5, 0x3fa0 },
-  { 0x8500, 0x03f3, 0x2000 },
-  { 0x0500, 0x03f2, 0x0007 },
-  { 0x0900, 0x03f4, 0x0fc4 },
-  { 0x8900, 0x03f7, 0x2001 },
-  { 0x1900, 0x03f6, 0x0000 },
-  { 0x0500, 0x03f8, 0x0fff },
-  { 0x8900, 0x0401, 0x3050 },
-  { 0x8500, 0x03fb, 0x2fff },
-  { 0x0900, 0x03fa, 0x0001 },
-  { 0x0900, 0x0400, 0x0050 },
-  { 0x8900, 0x0403, 0x2050 },
-  { 0x0900, 0x0402, 0x0050 },
-  { 0x0900, 0x0404, 0x0050 },
-  { 0x8900, 0x040d, 0x4050 },
-  { 0x8900, 0x0409, 0x3050 },
-  { 0x8900, 0x0407, 0x2050 },
-  { 0x0900, 0x0406, 0x0050 },
-  { 0x0900, 0x0408, 0x0050 },
-  { 0x8900, 0x040b, 0x2050 },
-  { 0x0900, 0x040a, 0x0050 },
-  { 0x0900, 0x040c, 0x0050 },
-  { 0x8900, 0x0411, 0x3020 },
-  { 0x8900, 0x040f, 0x2050 },
-  { 0x0900, 0x040e, 0x0050 },
-  { 0x0900, 0x0410, 0x0020 },
-  { 0x8900, 0x0413, 0x2020 },
-  { 0x0900, 0x0412, 0x0020 },
-  { 0x0900, 0x0414, 0x0020 },
-  { 0x8900, 0x0425, 0x5020 },
-  { 0x8900, 0x041d, 0x4020 },
-  { 0x8900, 0x0419, 0x3020 },
-  { 0x8900, 0x0417, 0x2020 },
-  { 0x0900, 0x0416, 0x0020 },
-  { 0x0900, 0x0418, 0x0020 },
-  { 0x8900, 0x041b, 0x2020 },
-  { 0x0900, 0x041a, 0x0020 },
-  { 0x0900, 0x041c, 0x0020 },
-  { 0x8900, 0x0421, 0x3020 },
-  { 0x8900, 0x041f, 0x2020 },
-  { 0x0900, 0x041e, 0x0020 },
-  { 0x0900, 0x0420, 0x0020 },
-  { 0x8900, 0x0423, 0x2020 },
-  { 0x0900, 0x0422, 0x0020 },
-  { 0x0900, 0x0424, 0x0020 },
-  { 0x8900, 0x042d, 0x4020 },
-  { 0x8900, 0x0429, 0x3020 },
-  { 0x8900, 0x0427, 0x2020 },
-  { 0x0900, 0x0426, 0x0020 },
-  { 0x0900, 0x0428, 0x0020 },
-  { 0x8900, 0x042b, 0x2020 },
-  { 0x0900, 0x042a, 0x0020 },
-  { 0x0900, 0x042c, 0x0020 },
-  { 0x8500, 0x0431, 0x3fe0 },
-  { 0x8900, 0x042f, 0x2020 },
-  { 0x0900, 0x042e, 0x0020 },
-  { 0x0500, 0x0430, 0x0fe0 },
-  { 0x8500, 0x0433, 0x2fe0 },
-  { 0x0500, 0x0432, 0x0fe0 },
-  { 0x0500, 0x0434, 0x0fe0 },
-  { 0x8700, 0x06a4, 0xa000 },
-  { 0x8500, 0x0563, 0x9fd0 },
-  { 0x8900, 0x04b6, 0x8001 },
-  { 0x8500, 0x0475, 0x7fff },
-  { 0x8500, 0x0455, 0x6fb0 },
-  { 0x8500, 0x0445, 0x5fe0 },
-  { 0x8500, 0x043d, 0x4fe0 },
-  { 0x8500, 0x0439, 0x3fe0 },
-  { 0x8500, 0x0437, 0x2fe0 },
-  { 0x0500, 0x0436, 0x0fe0 },
-  { 0x0500, 0x0438, 0x0fe0 },
-  { 0x8500, 0x043b, 0x2fe0 },
-  { 0x0500, 0x043a, 0x0fe0 },
-  { 0x0500, 0x043c, 0x0fe0 },
-  { 0x8500, 0x0441, 0x3fe0 },
-  { 0x8500, 0x043f, 0x2fe0 },
-  { 0x0500, 0x043e, 0x0fe0 },
-  { 0x0500, 0x0440, 0x0fe0 },
-  { 0x8500, 0x0443, 0x2fe0 },
-  { 0x0500, 0x0442, 0x0fe0 },
-  { 0x0500, 0x0444, 0x0fe0 },
-  { 0x8500, 0x044d, 0x4fe0 },
-  { 0x8500, 0x0449, 0x3fe0 },
-  { 0x8500, 0x0447, 0x2fe0 },
-  { 0x0500, 0x0446, 0x0fe0 },
-  { 0x0500, 0x0448, 0x0fe0 },
-  { 0x8500, 0x044b, 0x2fe0 },
-  { 0x0500, 0x044a, 0x0fe0 },
-  { 0x0500, 0x044c, 0x0fe0 },
-  { 0x8500, 0x0451, 0x3fb0 },
-  { 0x8500, 0x044f, 0x2fe0 },
-  { 0x0500, 0x044e, 0x0fe0 },
-  { 0x0500, 0x0450, 0x0fb0 },
-  { 0x8500, 0x0453, 0x2fb0 },
-  { 0x0500, 0x0452, 0x0fb0 },
-  { 0x0500, 0x0454, 0x0fb0 },
-  { 0x8500, 0x0465, 0x5fff },
-  { 0x8500, 0x045d, 0x4fb0 },
-  { 0x8500, 0x0459, 0x3fb0 },
-  { 0x8500, 0x0457, 0x2fb0 },
-  { 0x0500, 0x0456, 0x0fb0 },
-  { 0x0500, 0x0458, 0x0fb0 },
-  { 0x8500, 0x045b, 0x2fb0 },
-  { 0x0500, 0x045a, 0x0fb0 },
-  { 0x0500, 0x045c, 0x0fb0 },
-  { 0x8500, 0x0461, 0x3fff },
-  { 0x8500, 0x045f, 0x2fb0 },
-  { 0x0500, 0x045e, 0x0fb0 },
-  { 0x0900, 0x0460, 0x0001 },
-  { 0x8500, 0x0463, 0x2fff },
-  { 0x0900, 0x0462, 0x0001 },
-  { 0x0900, 0x0464, 0x0001 },
-  { 0x8500, 0x046d, 0x4fff },
-  { 0x8500, 0x0469, 0x3fff },
-  { 0x8500, 0x0467, 0x2fff },
-  { 0x0900, 0x0466, 0x0001 },
-  { 0x0900, 0x0468, 0x0001 },
-  { 0x8500, 0x046b, 0x2fff },
-  { 0x0900, 0x046a, 0x0001 },
-  { 0x0900, 0x046c, 0x0001 },
-  { 0x8500, 0x0471, 0x3fff },
-  { 0x8500, 0x046f, 0x2fff },
-  { 0x0900, 0x046e, 0x0001 },
-  { 0x0900, 0x0470, 0x0001 },
-  { 0x8500, 0x0473, 0x2fff },
-  { 0x0900, 0x0472, 0x0001 },
-  { 0x0900, 0x0474, 0x0001 },
-  { 0x8900, 0x0496, 0x6001 },
-  { 0x8c00, 0x0485, 0x5000 },
-  { 0x8500, 0x047d, 0x4fff },
-  { 0x8500, 0x0479, 0x3fff },
-  { 0x8500, 0x0477, 0x2fff },
-  { 0x0900, 0x0476, 0x0001 },
-  { 0x0900, 0x0478, 0x0001 },
-  { 0x8500, 0x047b, 0x2fff },
-  { 0x0900, 0x047a, 0x0001 },
-  { 0x0900, 0x047c, 0x0001 },
-  { 0x8500, 0x0481, 0x3fff },
-  { 0x8500, 0x047f, 0x2fff },
-  { 0x0900, 0x047e, 0x0001 },
-  { 0x0900, 0x0480, 0x0001 },
-  { 0x8c00, 0x0483, 0x2000 },
-  { 0x1a00, 0x0482, 0x0000 },
-  { 0x0c00, 0x0484, 0x0000 },
-  { 0x8900, 0x048e, 0x4001 },
-  { 0x8900, 0x048a, 0x3001 },
-  { 0x8b00, 0x0488, 0x2000 },
-  { 0x0c00, 0x0486, 0x0000 },
-  { 0x0b00, 0x0489, 0x0000 },
-  { 0x8900, 0x048c, 0x2001 },
-  { 0x0500, 0x048b, 0x0fff },
-  { 0x0500, 0x048d, 0x0fff },
-  { 0x8900, 0x0492, 0x3001 },
-  { 0x8900, 0x0490, 0x2001 },
-  { 0x0500, 0x048f, 0x0fff },
-  { 0x0500, 0x0491, 0x0fff },
-  { 0x8900, 0x0494, 0x2001 },
-  { 0x0500, 0x0493, 0x0fff },
-  { 0x0500, 0x0495, 0x0fff },
-  { 0x8900, 0x04a6, 0x5001 },
-  { 0x8900, 0x049e, 0x4001 },
-  { 0x8900, 0x049a, 0x3001 },
-  { 0x8900, 0x0498, 0x2001 },
-  { 0x0500, 0x0497, 0x0fff },
-  { 0x0500, 0x0499, 0x0fff },
-  { 0x8900, 0x049c, 0x2001 },
-  { 0x0500, 0x049b, 0x0fff },
-  { 0x0500, 0x049d, 0x0fff },
-  { 0x8900, 0x04a2, 0x3001 },
-  { 0x8900, 0x04a0, 0x2001 },
-  { 0x0500, 0x049f, 0x0fff },
-  { 0x0500, 0x04a1, 0x0fff },
-  { 0x8900, 0x04a4, 0x2001 },
-  { 0x0500, 0x04a3, 0x0fff },
-  { 0x0500, 0x04a5, 0x0fff },
-  { 0x8900, 0x04ae, 0x4001 },
-  { 0x8900, 0x04aa, 0x3001 },
-  { 0x8900, 0x04a8, 0x2001 },
-  { 0x0500, 0x04a7, 0x0fff },
-  { 0x0500, 0x04a9, 0x0fff },
-  { 0x8900, 0x04ac, 0x2001 },
-  { 0x0500, 0x04ab, 0x0fff },
-  { 0x0500, 0x04ad, 0x0fff },
-  { 0x8900, 0x04b2, 0x3001 },
-  { 0x8900, 0x04b0, 0x2001 },
-  { 0x0500, 0x04af, 0x0fff },
-  { 0x0500, 0x04b1, 0x0fff },
-  { 0x8900, 0x04b4, 0x2001 },
-  { 0x0500, 0x04b3, 0x0fff },
-  { 0x0500, 0x04b5, 0x0fff },
-  { 0x8500, 0x04f9, 0x7fff },
-  { 0x8500, 0x04d7, 0x6fff },
-  { 0x8500, 0x04c6, 0x5fff },
-  { 0x8900, 0x04be, 0x4001 },
-  { 0x8900, 0x04ba, 0x3001 },
-  { 0x8900, 0x04b8, 0x2001 },
-  { 0x0500, 0x04b7, 0x0fff },
-  { 0x0500, 0x04b9, 0x0fff },
-  { 0x8900, 0x04bc, 0x2001 },
-  { 0x0500, 0x04bb, 0x0fff },
-  { 0x0500, 0x04bd, 0x0fff },
-  { 0x8500, 0x04c2, 0x3fff },
-  { 0x8900, 0x04c0, 0x2000 },
-  { 0x0500, 0x04bf, 0x0fff },
-  { 0x0900, 0x04c1, 0x0001 },
-  { 0x8500, 0x04c4, 0x2fff },
-  { 0x0900, 0x04c3, 0x0001 },
-  { 0x0900, 0x04c5, 0x0001 },
-  { 0x8500, 0x04ce, 0x4fff },
-  { 0x8500, 0x04ca, 0x3fff },
-  { 0x8500, 0x04c8, 0x2fff },
-  { 0x0900, 0x04c7, 0x0001 },
-  { 0x0900, 0x04c9, 0x0001 },
-  { 0x8500, 0x04cc, 0x2fff },
-  { 0x0900, 0x04cb, 0x0001 },
-  { 0x0900, 0x04cd, 0x0001 },
-  { 0x8500, 0x04d3, 0x3fff },
-  { 0x8500, 0x04d1, 0x2fff },
-  { 0x0900, 0x04d0, 0x0001 },
-  { 0x0900, 0x04d2, 0x0001 },
-  { 0x8500, 0x04d5, 0x2fff },
-  { 0x0900, 0x04d4, 0x0001 },
-  { 0x0900, 0x04d6, 0x0001 },
-  { 0x8500, 0x04e7, 0x5fff },
-  { 0x8500, 0x04df, 0x4fff },
-  { 0x8500, 0x04db, 0x3fff },
-  { 0x8500, 0x04d9, 0x2fff },
-  { 0x0900, 0x04d8, 0x0001 },
-  { 0x0900, 0x04da, 0x0001 },
-  { 0x8500, 0x04dd, 0x2fff },
-  { 0x0900, 0x04dc, 0x0001 },
-  { 0x0900, 0x04de, 0x0001 },
-  { 0x8500, 0x04e3, 0x3fff },
-  { 0x8500, 0x04e1, 0x2fff },
-  { 0x0900, 0x04e0, 0x0001 },
-  { 0x0900, 0x04e2, 0x0001 },
-  { 0x8500, 0x04e5, 0x2fff },
-  { 0x0900, 0x04e4, 0x0001 },
-  { 0x0900, 0x04e6, 0x0001 },
-  { 0x8500, 0x04ef, 0x4fff },
-  { 0x8500, 0x04eb, 0x3fff },
-  { 0x8500, 0x04e9, 0x2fff },
-  { 0x0900, 0x04e8, 0x0001 },
-  { 0x0900, 0x04ea, 0x0001 },
-  { 0x8500, 0x04ed, 0x2fff },
-  { 0x0900, 0x04ec, 0x0001 },
-  { 0x0900, 0x04ee, 0x0001 },
-  { 0x8500, 0x04f3, 0x3fff },
-  { 0x8500, 0x04f1, 0x2fff },
-  { 0x0900, 0x04f0, 0x0001 },
-  { 0x0900, 0x04f2, 0x0001 },
-  { 0x8500, 0x04f5, 0x2fff },
-  { 0x0900, 0x04f4, 0x0001 },
-  { 0x0900, 0x04f8, 0x0001 },
-  { 0x8900, 0x0540, 0x6030 },
-  { 0x8500, 0x050f, 0x5fff },
-  { 0x8500, 0x0507, 0x4fff },
-  { 0x8500, 0x0503, 0x3fff },
-  { 0x8500, 0x0501, 0x2fff },
-  { 0x0900, 0x0500, 0x0001 },
-  { 0x0900, 0x0502, 0x0001 },
-  { 0x8500, 0x0505, 0x2fff },
-  { 0x0900, 0x0504, 0x0001 },
-  { 0x0900, 0x0506, 0x0001 },
-  { 0x8500, 0x050b, 0x3fff },
-  { 0x8500, 0x0509, 0x2fff },
-  { 0x0900, 0x0508, 0x0001 },
-  { 0x0900, 0x050a, 0x0001 },
-  { 0x8500, 0x050d, 0x2fff },
-  { 0x0900, 0x050c, 0x0001 },
-  { 0x0900, 0x050e, 0x0001 },
-  { 0x8900, 0x0538, 0x4030 },
-  { 0x8900, 0x0534, 0x3030 },
-  { 0x8900, 0x0532, 0x2030 },
-  { 0x0900, 0x0531, 0x0030 },
-  { 0x0900, 0x0533, 0x0030 },
-  { 0x8900, 0x0536, 0x2030 },
-  { 0x0900, 0x0535, 0x0030 },
-  { 0x0900, 0x0537, 0x0030 },
-  { 0x8900, 0x053c, 0x3030 },
-  { 0x8900, 0x053a, 0x2030 },
-  { 0x0900, 0x0539, 0x0030 },
-  { 0x0900, 0x053b, 0x0030 },
-  { 0x8900, 0x053e, 0x2030 },
-  { 0x0900, 0x053d, 0x0030 },
-  { 0x0900, 0x053f, 0x0030 },
-  { 0x8900, 0x0550, 0x5030 },
-  { 0x8900, 0x0548, 0x4030 },
-  { 0x8900, 0x0544, 0x3030 },
-  { 0x8900, 0x0542, 0x2030 },
-  { 0x0900, 0x0541, 0x0030 },
-  { 0x0900, 0x0543, 0x0030 },
-  { 0x8900, 0x0546, 0x2030 },
-  { 0x0900, 0x0545, 0x0030 },
-  { 0x0900, 0x0547, 0x0030 },
-  { 0x8900, 0x054c, 0x3030 },
-  { 0x8900, 0x054a, 0x2030 },
-  { 0x0900, 0x0549, 0x0030 },
-  { 0x0900, 0x054b, 0x0030 },
-  { 0x8900, 0x054e, 0x2030 },
-  { 0x0900, 0x054d, 0x0030 },
-  { 0x0900, 0x054f, 0x0030 },
-  { 0x9500, 0x055a, 0x4000 },
-  { 0x8900, 0x0554, 0x3030 },
-  { 0x8900, 0x0552, 0x2030 },
-  { 0x0900, 0x0551, 0x0030 },
-  { 0x0900, 0x0553, 0x0030 },
-  { 0x8900, 0x0556, 0x2030 },
-  { 0x0900, 0x0555, 0x0030 },
-  { 0x0600, 0x0559, 0x0000 },
-  { 0x9500, 0x055e, 0x3000 },
-  { 0x9500, 0x055c, 0x2000 },
-  { 0x1500, 0x055b, 0x0000 },
-  { 0x1500, 0x055d, 0x0000 },
-  { 0x8500, 0x0561, 0x2fd0 },
-  { 0x1500, 0x055f, 0x0000 },
-  { 0x0500, 0x0562, 0x0fd0 },
-  { 0x9a00, 0x060f, 0x8000 },
-  { 0x8c00, 0x05ab, 0x7000 },
-  { 0x8500, 0x0583, 0x6fd0 },
-  { 0x8500, 0x0573, 0x5fd0 },
-  { 0x8500, 0x056b, 0x4fd0 },
-  { 0x8500, 0x0567, 0x3fd0 },
-  { 0x8500, 0x0565, 0x2fd0 },
-  { 0x0500, 0x0564, 0x0fd0 },
-  { 0x0500, 0x0566, 0x0fd0 },
-  { 0x8500, 0x0569, 0x2fd0 },
-  { 0x0500, 0x0568, 0x0fd0 },
-  { 0x0500, 0x056a, 0x0fd0 },
-  { 0x8500, 0x056f, 0x3fd0 },
-  { 0x8500, 0x056d, 0x2fd0 },
-  { 0x0500, 0x056c, 0x0fd0 },
-  { 0x0500, 0x056e, 0x0fd0 },
-  { 0x8500, 0x0571, 0x2fd0 },
-  { 0x0500, 0x0570, 0x0fd0 },
-  { 0x0500, 0x0572, 0x0fd0 },
-  { 0x8500, 0x057b, 0x4fd0 },
-  { 0x8500, 0x0577, 0x3fd0 },
-  { 0x8500, 0x0575, 0x2fd0 },
-  { 0x0500, 0x0574, 0x0fd0 },
-  { 0x0500, 0x0576, 0x0fd0 },
-  { 0x8500, 0x0579, 0x2fd0 },
-  { 0x0500, 0x0578, 0x0fd0 },
-  { 0x0500, 0x057a, 0x0fd0 },
-  { 0x8500, 0x057f, 0x3fd0 },
-  { 0x8500, 0x057d, 0x2fd0 },
-  { 0x0500, 0x057c, 0x0fd0 },
-  { 0x0500, 0x057e, 0x0fd0 },
-  { 0x8500, 0x0581, 0x2fd0 },
-  { 0x0500, 0x0580, 0x0fd0 },
-  { 0x0500, 0x0582, 0x0fd0 },
-  { 0x8c00, 0x059a, 0x5000 },
-  { 0x8c00, 0x0592, 0x4000 },
-  { 0x8500, 0x0587, 0x3000 },
-  { 0x8500, 0x0585, 0x2fd0 },
-  { 0x0500, 0x0584, 0x0fd0 },
-  { 0x0500, 0x0586, 0x0fd0 },
-  { 0x9100, 0x058a, 0x2000 },
-  { 0x1500, 0x0589, 0x0000 },
-  { 0x0c00, 0x0591, 0x0000 },
-  { 0x8c00, 0x0596, 0x3000 },
-  { 0x8c00, 0x0594, 0x2000 },
-  { 0x0c00, 0x0593, 0x0000 },
-  { 0x0c00, 0x0595, 0x0000 },
-  { 0x8c00, 0x0598, 0x2000 },
-  { 0x0c00, 0x0597, 0x0000 },
-  { 0x0c00, 0x0599, 0x0000 },
-  { 0x8c00, 0x05a3, 0x4000 },
-  { 0x8c00, 0x059e, 0x3000 },
-  { 0x8c00, 0x059c, 0x2000 },
-  { 0x0c00, 0x059b, 0x0000 },
-  { 0x0c00, 0x059d, 0x0000 },
-  { 0x8c00, 0x05a0, 0x2000 },
-  { 0x0c00, 0x059f, 0x0000 },
-  { 0x0c00, 0x05a1, 0x0000 },
-  { 0x8c00, 0x05a7, 0x3000 },
-  { 0x8c00, 0x05a5, 0x2000 },
-  { 0x0c00, 0x05a4, 0x0000 },
-  { 0x0c00, 0x05a6, 0x0000 },
-  { 0x8c00, 0x05a9, 0x2000 },
-  { 0x0c00, 0x05a8, 0x0000 },
-  { 0x0c00, 0x05aa, 0x0000 },
-  { 0x8700, 0x05d7, 0x6000 },
-  { 0x8c00, 0x05bc, 0x5000 },
-  { 0x8c00, 0x05b3, 0x4000 },
-  { 0x8c00, 0x05af, 0x3000 },
-  { 0x8c00, 0x05ad, 0x2000 },
-  { 0x0c00, 0x05ac, 0x0000 },
-  { 0x0c00, 0x05ae, 0x0000 },
-  { 0x8c00, 0x05b1, 0x2000 },
-  { 0x0c00, 0x05b0, 0x0000 },
-  { 0x0c00, 0x05b2, 0x0000 },
-  { 0x8c00, 0x05b7, 0x3000 },
-  { 0x8c00, 0x05b5, 0x2000 },
-  { 0x0c00, 0x05b4, 0x0000 },
-  { 0x0c00, 0x05b6, 0x0000 },
-  { 0x8c00, 0x05b9, 0x2000 },
-  { 0x0c00, 0x05b8, 0x0000 },
-  { 0x0c00, 0x05bb, 0x0000 },
-  { 0x8c00, 0x05c4, 0x4000 },
-  { 0x9500, 0x05c0, 0x3000 },
-  { 0x9500, 0x05be, 0x2000 },
-  { 0x0c00, 0x05bd, 0x0000 },
-  { 0x0c00, 0x05bf, 0x0000 },
-  { 0x8c00, 0x05c2, 0x2000 },
-  { 0x0c00, 0x05c1, 0x0000 },
-  { 0x1500, 0x05c3, 0x0000 },
-  { 0x8700, 0x05d3, 0x3000 },
-  { 0x8700, 0x05d1, 0x2000 },
-  { 0x0700, 0x05d0, 0x0000 },
-  { 0x0700, 0x05d2, 0x0000 },
-  { 0x8700, 0x05d5, 0x2000 },
-  { 0x0700, 0x05d4, 0x0000 },
-  { 0x0700, 0x05d6, 0x0000 },
-  { 0x8700, 0x05e7, 0x5000 },
-  { 0x8700, 0x05df, 0x4000 },
-  { 0x8700, 0x05db, 0x3000 },
-  { 0x8700, 0x05d9, 0x2000 },
-  { 0x0700, 0x05d8, 0x0000 },
-  { 0x0700, 0x05da, 0x0000 },
-  { 0x8700, 0x05dd, 0x2000 },
-  { 0x0700, 0x05dc, 0x0000 },
-  { 0x0700, 0x05de, 0x0000 },
-  { 0x8700, 0x05e3, 0x3000 },
-  { 0x8700, 0x05e1, 0x2000 },
-  { 0x0700, 0x05e0, 0x0000 },
-  { 0x0700, 0x05e2, 0x0000 },
-  { 0x8700, 0x05e5, 0x2000 },
-  { 0x0700, 0x05e4, 0x0000 },
-  { 0x0700, 0x05e6, 0x0000 },
-  { 0x9500, 0x05f4, 0x4000 },
-  { 0x8700, 0x05f0, 0x3000 },
-  { 0x8700, 0x05e9, 0x2000 },
-  { 0x0700, 0x05e8, 0x0000 },
-  { 0x0700, 0x05ea, 0x0000 },
-  { 0x8700, 0x05f2, 0x2000 },
-  { 0x0700, 0x05f1, 0x0000 },
-  { 0x1500, 0x05f3, 0x0000 },
-  { 0x8100, 0x0603, 0x3000 },
-  { 0x8100, 0x0601, 0x2000 },
-  { 0x0100, 0x0600, 0x0000 },
-  { 0x0100, 0x0602, 0x0000 },
-  { 0x9500, 0x060d, 0x2000 },
-  { 0x1500, 0x060c, 0x0000 },
-  { 0x1a00, 0x060e, 0x0000 },
-  { 0x8d00, 0x0664, 0x7000 },
-  { 0x8700, 0x0638, 0x6000 },
-  { 0x8700, 0x0628, 0x5000 },
-  { 0x9500, 0x061f, 0x4000 },
-  { 0x8c00, 0x0613, 0x3000 },
-  { 0x8c00, 0x0611, 0x2000 },
-  { 0x0c00, 0x0610, 0x0000 },
-  { 0x0c00, 0x0612, 0x0000 },
-  { 0x8c00, 0x0615, 0x2000 },
-  { 0x0c00, 0x0614, 0x0000 },
-  { 0x1500, 0x061b, 0x0000 },
-  { 0x8700, 0x0624, 0x3000 },
-  { 0x8700, 0x0622, 0x2000 },
-  { 0x0700, 0x0621, 0x0000 },
-  { 0x0700, 0x0623, 0x0000 },
-  { 0x8700, 0x0626, 0x2000 },
-  { 0x0700, 0x0625, 0x0000 },
-  { 0x0700, 0x0627, 0x0000 },
-  { 0x8700, 0x0630, 0x4000 },
-  { 0x8700, 0x062c, 0x3000 },
-  { 0x8700, 0x062a, 0x2000 },
-  { 0x0700, 0x0629, 0x0000 },
-  { 0x0700, 0x062b, 0x0000 },
-  { 0x8700, 0x062e, 0x2000 },
-  { 0x0700, 0x062d, 0x0000 },
-  { 0x0700, 0x062f, 0x0000 },
-  { 0x8700, 0x0634, 0x3000 },
-  { 0x8700, 0x0632, 0x2000 },
-  { 0x0700, 0x0631, 0x0000 },
-  { 0x0700, 0x0633, 0x0000 },
-  { 0x8700, 0x0636, 0x2000 },
-  { 0x0700, 0x0635, 0x0000 },
-  { 0x0700, 0x0637, 0x0000 },
-  { 0x8c00, 0x064d, 0x5000 },
-  { 0x8700, 0x0645, 0x4000 },
-  { 0x8700, 0x0641, 0x3000 },
-  { 0x8700, 0x063a, 0x2000 },
-  { 0x0700, 0x0639, 0x0000 },
-  { 0x0600, 0x0640, 0x0000 },
-  { 0x8700, 0x0643, 0x2000 },
-  { 0x0700, 0x0642, 0x0000 },
-  { 0x0700, 0x0644, 0x0000 },
-  { 0x8700, 0x0649, 0x3000 },
-  { 0x8700, 0x0647, 0x2000 },
-  { 0x0700, 0x0646, 0x0000 },
-  { 0x0700, 0x0648, 0x0000 },
-  { 0x8c00, 0x064b, 0x2000 },
-  { 0x0700, 0x064a, 0x0000 },
-  { 0x0c00, 0x064c, 0x0000 },
-  { 0x8c00, 0x0655, 0x4000 },
-  { 0x8c00, 0x0651, 0x3000 },
-  { 0x8c00, 0x064f, 0x2000 },
-  { 0x0c00, 0x064e, 0x0000 },
-  { 0x0c00, 0x0650, 0x0000 },
-  { 0x8c00, 0x0653, 0x2000 },
-  { 0x0c00, 0x0652, 0x0000 },
-  { 0x0c00, 0x0654, 0x0000 },
-  { 0x8d00, 0x0660, 0x3000 },
-  { 0x8c00, 0x0657, 0x2000 },
-  { 0x0c00, 0x0656, 0x0000 },
-  { 0x0c00, 0x0658, 0x0000 },
-  { 0x8d00, 0x0662, 0x2000 },
-  { 0x0d00, 0x0661, 0x0000 },
-  { 0x0d00, 0x0663, 0x0000 },
-  { 0x8700, 0x0684, 0x6000 },
-  { 0x8700, 0x0674, 0x5000 },
-  { 0x9500, 0x066c, 0x4000 },
-  { 0x8d00, 0x0668, 0x3000 },
-  { 0x8d00, 0x0666, 0x2000 },
-  { 0x0d00, 0x0665, 0x0000 },
-  { 0x0d00, 0x0667, 0x0000 },
-  { 0x9500, 0x066a, 0x2000 },
-  { 0x0d00, 0x0669, 0x0000 },
-  { 0x1500, 0x066b, 0x0000 },
-  { 0x8c00, 0x0670, 0x3000 },
-  { 0x8700, 0x066e, 0x2000 },
-  { 0x1500, 0x066d, 0x0000 },
-  { 0x0700, 0x066f, 0x0000 },
-  { 0x8700, 0x0672, 0x2000 },
-  { 0x0700, 0x0671, 0x0000 },
-  { 0x0700, 0x0673, 0x0000 },
-  { 0x8700, 0x067c, 0x4000 },
-  { 0x8700, 0x0678, 0x3000 },
-  { 0x8700, 0x0676, 0x2000 },
-  { 0x0700, 0x0675, 0x0000 },
-  { 0x0700, 0x0677, 0x0000 },
-  { 0x8700, 0x067a, 0x2000 },
-  { 0x0700, 0x0679, 0x0000 },
-  { 0x0700, 0x067b, 0x0000 },
-  { 0x8700, 0x0680, 0x3000 },
-  { 0x8700, 0x067e, 0x2000 },
-  { 0x0700, 0x067d, 0x0000 },
-  { 0x0700, 0x067f, 0x0000 },
-  { 0x8700, 0x0682, 0x2000 },
-  { 0x0700, 0x0681, 0x0000 },
-  { 0x0700, 0x0683, 0x0000 },
-  { 0x8700, 0x0694, 0x5000 },
-  { 0x8700, 0x068c, 0x4000 },
-  { 0x8700, 0x0688, 0x3000 },
-  { 0x8700, 0x0686, 0x2000 },
-  { 0x0700, 0x0685, 0x0000 },
-  { 0x0700, 0x0687, 0x0000 },
-  { 0x8700, 0x068a, 0x2000 },
-  { 0x0700, 0x0689, 0x0000 },
-  { 0x0700, 0x068b, 0x0000 },
-  { 0x8700, 0x0690, 0x3000 },
-  { 0x8700, 0x068e, 0x2000 },
-  { 0x0700, 0x068d, 0x0000 },
-  { 0x0700, 0x068f, 0x0000 },
-  { 0x8700, 0x0692, 0x2000 },
-  { 0x0700, 0x0691, 0x0000 },
-  { 0x0700, 0x0693, 0x0000 },
-  { 0x8700, 0x069c, 0x4000 },
-  { 0x8700, 0x0698, 0x3000 },
-  { 0x8700, 0x0696, 0x2000 },
-  { 0x0700, 0x0695, 0x0000 },
-  { 0x0700, 0x0697, 0x0000 },
-  { 0x8700, 0x069a, 0x2000 },
-  { 0x0700, 0x0699, 0x0000 },
-  { 0x0700, 0x069b, 0x0000 },
-  { 0x8700, 0x06a0, 0x3000 },
-  { 0x8700, 0x069e, 0x2000 },
-  { 0x0700, 0x069d, 0x0000 },
-  { 0x0700, 0x069f, 0x0000 },
-  { 0x8700, 0x06a2, 0x2000 },
-  { 0x0700, 0x06a1, 0x0000 },
-  { 0x0700, 0x06a3, 0x0000 },
-  { 0x8700, 0x0926, 0x9000 },
-  { 0x8700, 0x0725, 0x8000 },
-  { 0x8c00, 0x06e4, 0x7000 },
-  { 0x8700, 0x06c4, 0x6000 },
-  { 0x8700, 0x06b4, 0x5000 },
-  { 0x8700, 0x06ac, 0x4000 },
-  { 0x8700, 0x06a8, 0x3000 },
-  { 0x8700, 0x06a6, 0x2000 },
-  { 0x0700, 0x06a5, 0x0000 },
-  { 0x0700, 0x06a7, 0x0000 },
-  { 0x8700, 0x06aa, 0x2000 },
-  { 0x0700, 0x06a9, 0x0000 },
-  { 0x0700, 0x06ab, 0x0000 },
-  { 0x8700, 0x06b0, 0x3000 },
-  { 0x8700, 0x06ae, 0x2000 },
-  { 0x0700, 0x06ad, 0x0000 },
-  { 0x0700, 0x06af, 0x0000 },
-  { 0x8700, 0x06b2, 0x2000 },
-  { 0x0700, 0x06b1, 0x0000 },
-  { 0x0700, 0x06b3, 0x0000 },
-  { 0x8700, 0x06bc, 0x4000 },
-  { 0x8700, 0x06b8, 0x3000 },
-  { 0x8700, 0x06b6, 0x2000 },
-  { 0x0700, 0x06b5, 0x0000 },
-  { 0x0700, 0x06b7, 0x0000 },
-  { 0x8700, 0x06ba, 0x2000 },
-  { 0x0700, 0x06b9, 0x0000 },
-  { 0x0700, 0x06bb, 0x0000 },
-  { 0x8700, 0x06c0, 0x3000 },
-  { 0x8700, 0x06be, 0x2000 },
-  { 0x0700, 0x06bd, 0x0000 },
-  { 0x0700, 0x06bf, 0x0000 },
-  { 0x8700, 0x06c2, 0x2000 },
-  { 0x0700, 0x06c1, 0x0000 },
-  { 0x0700, 0x06c3, 0x0000 },
-  { 0x9500, 0x06d4, 0x5000 },
-  { 0x8700, 0x06cc, 0x4000 },
-  { 0x8700, 0x06c8, 0x3000 },
-  { 0x8700, 0x06c6, 0x2000 },
-  { 0x0700, 0x06c5, 0x0000 },
-  { 0x0700, 0x06c7, 0x0000 },
-  { 0x8700, 0x06ca, 0x2000 },
-  { 0x0700, 0x06c9, 0x0000 },
-  { 0x0700, 0x06cb, 0x0000 },
-  { 0x8700, 0x06d0, 0x3000 },
-  { 0x8700, 0x06ce, 0x2000 },
-  { 0x0700, 0x06cd, 0x0000 },
-  { 0x0700, 0x06cf, 0x0000 },
-  { 0x8700, 0x06d2, 0x2000 },
-  { 0x0700, 0x06d1, 0x0000 },
-  { 0x0700, 0x06d3, 0x0000 },
-  { 0x8c00, 0x06dc, 0x4000 },
-  { 0x8c00, 0x06d8, 0x3000 },
-  { 0x8c00, 0x06d6, 0x2000 },
-  { 0x0700, 0x06d5, 0x0000 },
-  { 0x0c00, 0x06d7, 0x0000 },
-  { 0x8c00, 0x06da, 0x2000 },
-  { 0x0c00, 0x06d9, 0x0000 },
-  { 0x0c00, 0x06db, 0x0000 },
-  { 0x8c00, 0x06e0, 0x3000 },
-  { 0x8b00, 0x06de, 0x2000 },
-  { 0x0100, 0x06dd, 0x0000 },
-  { 0x0c00, 0x06df, 0x0000 },
-  { 0x8c00, 0x06e2, 0x2000 },
-  { 0x0c00, 0x06e1, 0x0000 },
-  { 0x0c00, 0x06e3, 0x0000 },
-  { 0x9500, 0x0704, 0x6000 },
-  { 0x8d00, 0x06f4, 0x5000 },
-  { 0x8c00, 0x06ec, 0x4000 },
-  { 0x8c00, 0x06e8, 0x3000 },
-  { 0x8600, 0x06e6, 0x2000 },
-  { 0x0600, 0x06e5, 0x0000 },
-  { 0x0c00, 0x06e7, 0x0000 },
-  { 0x8c00, 0x06ea, 0x2000 },
-  { 0x1a00, 0x06e9, 0x0000 },
-  { 0x0c00, 0x06eb, 0x0000 },
-  { 0x8d00, 0x06f0, 0x3000 },
-  { 0x8700, 0x06ee, 0x2000 },
-  { 0x0c00, 0x06ed, 0x0000 },
-  { 0x0700, 0x06ef, 0x0000 },
-  { 0x8d00, 0x06f2, 0x2000 },
-  { 0x0d00, 0x06f1, 0x0000 },
-  { 0x0d00, 0x06f3, 0x0000 },
-  { 0x8700, 0x06fc, 0x4000 },
-  { 0x8d00, 0x06f8, 0x3000 },
-  { 0x8d00, 0x06f6, 0x2000 },
-  { 0x0d00, 0x06f5, 0x0000 },
-  { 0x0d00, 0x06f7, 0x0000 },
-  { 0x8700, 0x06fa, 0x2000 },
-  { 0x0d00, 0x06f9, 0x0000 },
-  { 0x0700, 0x06fb, 0x0000 },
-  { 0x9500, 0x0700, 0x3000 },
-  { 0x9a00, 0x06fe, 0x2000 },
-  { 0x1a00, 0x06fd, 0x0000 },
-  { 0x0700, 0x06ff, 0x0000 },
-  { 0x9500, 0x0702, 0x2000 },
-  { 0x1500, 0x0701, 0x0000 },
-  { 0x1500, 0x0703, 0x0000 },
-  { 0x8700, 0x0715, 0x5000 },
-  { 0x9500, 0x070c, 0x4000 },
-  { 0x9500, 0x0708, 0x3000 },
-  { 0x9500, 0x0706, 0x2000 },
-  { 0x1500, 0x0705, 0x0000 },
-  { 0x1500, 0x0707, 0x0000 },
-  { 0x9500, 0x070a, 0x2000 },
-  { 0x1500, 0x0709, 0x0000 },
-  { 0x1500, 0x070b, 0x0000 },
-  { 0x8c00, 0x0711, 0x3000 },
-  { 0x8100, 0x070f, 0x2000 },
-  { 0x1500, 0x070d, 0x0000 },
-  { 0x0700, 0x0710, 0x0000 },
-  { 0x8700, 0x0713, 0x2000 },
-  { 0x0700, 0x0712, 0x0000 },
-  { 0x0700, 0x0714, 0x0000 },
-  { 0x8700, 0x071d, 0x4000 },
-  { 0x8700, 0x0719, 0x3000 },
-  { 0x8700, 0x0717, 0x2000 },
-  { 0x0700, 0x0716, 0x0000 },
-  { 0x0700, 0x0718, 0x0000 },
-  { 0x8700, 0x071b, 0x2000 },
-  { 0x0700, 0x071a, 0x0000 },
-  { 0x0700, 0x071c, 0x0000 },
-  { 0x8700, 0x0721, 0x3000 },
-  { 0x8700, 0x071f, 0x2000 },
-  { 0x0700, 0x071e, 0x0000 },
-  { 0x0700, 0x0720, 0x0000 },
-  { 0x8700, 0x0723, 0x2000 },
-  { 0x0700, 0x0722, 0x0000 },
-  { 0x0700, 0x0724, 0x0000 },
-  { 0x8700, 0x0797, 0x7000 },
-  { 0x8c00, 0x0745, 0x6000 },
-  { 0x8c00, 0x0735, 0x5000 },
-  { 0x8700, 0x072d, 0x4000 },
-  { 0x8700, 0x0729, 0x3000 },
-  { 0x8700, 0x0727, 0x2000 },
-  { 0x0700, 0x0726, 0x0000 },
-  { 0x0700, 0x0728, 0x0000 },
-  { 0x8700, 0x072b, 0x2000 },
-  { 0x0700, 0x072a, 0x0000 },
-  { 0x0700, 0x072c, 0x0000 },
-  { 0x8c00, 0x0731, 0x3000 },
-  { 0x8700, 0x072f, 0x2000 },
-  { 0x0700, 0x072e, 0x0000 },
-  { 0x0c00, 0x0730, 0x0000 },
-  { 0x8c00, 0x0733, 0x2000 },
-  { 0x0c00, 0x0732, 0x0000 },
-  { 0x0c00, 0x0734, 0x0000 },
-  { 0x8c00, 0x073d, 0x4000 },
-  { 0x8c00, 0x0739, 0x3000 },
-  { 0x8c00, 0x0737, 0x2000 },
-  { 0x0c00, 0x0736, 0x0000 },
-  { 0x0c00, 0x0738, 0x0000 },
-  { 0x8c00, 0x073b, 0x2000 },
-  { 0x0c00, 0x073a, 0x0000 },
-  { 0x0c00, 0x073c, 0x0000 },
-  { 0x8c00, 0x0741, 0x3000 },
-  { 0x8c00, 0x073f, 0x2000 },
-  { 0x0c00, 0x073e, 0x0000 },
-  { 0x0c00, 0x0740, 0x0000 },
-  { 0x8c00, 0x0743, 0x2000 },
-  { 0x0c00, 0x0742, 0x0000 },
-  { 0x0c00, 0x0744, 0x0000 },
-  { 0x8700, 0x0787, 0x5000 },
-  { 0x8700, 0x074f, 0x4000 },
-  { 0x8c00, 0x0749, 0x3000 },
-  { 0x8c00, 0x0747, 0x2000 },
-  { 0x0c00, 0x0746, 0x0000 },
-  { 0x0c00, 0x0748, 0x0000 },
-  { 0x8700, 0x074d, 0x2000 },
-  { 0x0c00, 0x074a, 0x0000 },
-  { 0x0700, 0x074e, 0x0000 },
-  { 0x8700, 0x0783, 0x3000 },
-  { 0x8700, 0x0781, 0x2000 },
-  { 0x0700, 0x0780, 0x0000 },
-  { 0x0700, 0x0782, 0x0000 },
-  { 0x8700, 0x0785, 0x2000 },
-  { 0x0700, 0x0784, 0x0000 },
-  { 0x0700, 0x0786, 0x0000 },
-  { 0x8700, 0x078f, 0x4000 },
-  { 0x8700, 0x078b, 0x3000 },
-  { 0x8700, 0x0789, 0x2000 },
-  { 0x0700, 0x0788, 0x0000 },
-  { 0x0700, 0x078a, 0x0000 },
-  { 0x8700, 0x078d, 0x2000 },
-  { 0x0700, 0x078c, 0x0000 },
-  { 0x0700, 0x078e, 0x0000 },
-  { 0x8700, 0x0793, 0x3000 },
-  { 0x8700, 0x0791, 0x2000 },
-  { 0x0700, 0x0790, 0x0000 },
-  { 0x0700, 0x0792, 0x0000 },
-  { 0x8700, 0x0795, 0x2000 },
-  { 0x0700, 0x0794, 0x0000 },
-  { 0x0700, 0x0796, 0x0000 },
-  { 0x8700, 0x0906, 0x6000 },
-  { 0x8c00, 0x07a7, 0x5000 },
-  { 0x8700, 0x079f, 0x4000 },
-  { 0x8700, 0x079b, 0x3000 },
-  { 0x8700, 0x0799, 0x2000 },
-  { 0x0700, 0x0798, 0x0000 },
-  { 0x0700, 0x079a, 0x0000 },
-  { 0x8700, 0x079d, 0x2000 },
-  { 0x0700, 0x079c, 0x0000 },
-  { 0x0700, 0x079e, 0x0000 },
-  { 0x8700, 0x07a3, 0x3000 },
-  { 0x8700, 0x07a1, 0x2000 },
-  { 0x0700, 0x07a0, 0x0000 },
-  { 0x0700, 0x07a2, 0x0000 },
-  { 0x8700, 0x07a5, 0x2000 },
-  { 0x0700, 0x07a4, 0x0000 },
-  { 0x0c00, 0x07a6, 0x0000 },
-  { 0x8c00, 0x07af, 0x4000 },
-  { 0x8c00, 0x07ab, 0x3000 },
-  { 0x8c00, 0x07a9, 0x2000 },
-  { 0x0c00, 0x07a8, 0x0000 },
-  { 0x0c00, 0x07aa, 0x0000 },
-  { 0x8c00, 0x07ad, 0x2000 },
-  { 0x0c00, 0x07ac, 0x0000 },
-  { 0x0c00, 0x07ae, 0x0000 },
-  { 0x8c00, 0x0902, 0x3000 },
-  { 0x8700, 0x07b1, 0x2000 },
-  { 0x0c00, 0x07b0, 0x0000 },
-  { 0x0c00, 0x0901, 0x0000 },
-  { 0x8700, 0x0904, 0x2000 },
-  { 0x0a00, 0x0903, 0x0000 },
-  { 0x0700, 0x0905, 0x0000 },
-  { 0x8700, 0x0916, 0x5000 },
-  { 0x8700, 0x090e, 0x4000 },
-  { 0x8700, 0x090a, 0x3000 },
-  { 0x8700, 0x0908, 0x2000 },
-  { 0x0700, 0x0907, 0x0000 },
-  { 0x0700, 0x0909, 0x0000 },
-  { 0x8700, 0x090c, 0x2000 },
-  { 0x0700, 0x090b, 0x0000 },
-  { 0x0700, 0x090d, 0x0000 },
-  { 0x8700, 0x0912, 0x3000 },
-  { 0x8700, 0x0910, 0x2000 },
-  { 0x0700, 0x090f, 0x0000 },
-  { 0x0700, 0x0911, 0x0000 },
-  { 0x8700, 0x0914, 0x2000 },
-  { 0x0700, 0x0913, 0x0000 },
-  { 0x0700, 0x0915, 0x0000 },
-  { 0x8700, 0x091e, 0x4000 },
-  { 0x8700, 0x091a, 0x3000 },
-  { 0x8700, 0x0918, 0x2000 },
-  { 0x0700, 0x0917, 0x0000 },
-  { 0x0700, 0x0919, 0x0000 },
-  { 0x8700, 0x091c, 0x2000 },
-  { 0x0700, 0x091b, 0x0000 },
-  { 0x0700, 0x091d, 0x0000 },
-  { 0x8700, 0x0922, 0x3000 },
-  { 0x8700, 0x0920, 0x2000 },
-  { 0x0700, 0x091f, 0x0000 },
-  { 0x0700, 0x0921, 0x0000 },
-  { 0x8700, 0x0924, 0x2000 },
-  { 0x0700, 0x0923, 0x0000 },
-  { 0x0700, 0x0925, 0x0000 },
-  { 0x8c00, 0x09cd, 0x8000 },
-  { 0x8d00, 0x096d, 0x7000 },
-  { 0x8c00, 0x0948, 0x6000 },
-  { 0x8700, 0x0936, 0x5000 },
-  { 0x8700, 0x092e, 0x4000 },
-  { 0x8700, 0x092a, 0x3000 },
-  { 0x8700, 0x0928, 0x2000 },
-  { 0x0700, 0x0927, 0x0000 },
-  { 0x0700, 0x0929, 0x0000 },
-  { 0x8700, 0x092c, 0x2000 },
-  { 0x0700, 0x092b, 0x0000 },
-  { 0x0700, 0x092d, 0x0000 },
-  { 0x8700, 0x0932, 0x3000 },
-  { 0x8700, 0x0930, 0x2000 },
-  { 0x0700, 0x092f, 0x0000 },
-  { 0x0700, 0x0931, 0x0000 },
-  { 0x8700, 0x0934, 0x2000 },
-  { 0x0700, 0x0933, 0x0000 },
-  { 0x0700, 0x0935, 0x0000 },
-  { 0x8a00, 0x0940, 0x4000 },
-  { 0x8c00, 0x093c, 0x3000 },
-  { 0x8700, 0x0938, 0x2000 },
-  { 0x0700, 0x0937, 0x0000 },
-  { 0x0700, 0x0939, 0x0000 },
-  { 0x8a00, 0x093e, 0x2000 },
-  { 0x0700, 0x093d, 0x0000 },
-  { 0x0a00, 0x093f, 0x0000 },
-  { 0x8c00, 0x0944, 0x3000 },
-  { 0x8c00, 0x0942, 0x2000 },
-  { 0x0c00, 0x0941, 0x0000 },
-  { 0x0c00, 0x0943, 0x0000 },
-  { 0x8c00, 0x0946, 0x2000 },
-  { 0x0c00, 0x0945, 0x0000 },
-  { 0x0c00, 0x0947, 0x0000 },
-  { 0x8700, 0x095d, 0x5000 },
-  { 0x8c00, 0x0952, 0x4000 },
-  { 0x8a00, 0x094c, 0x3000 },
-  { 0x8a00, 0x094a, 0x2000 },
-  { 0x0a00, 0x0949, 0x0000 },
-  { 0x0a00, 0x094b, 0x0000 },
-  { 0x8700, 0x0950, 0x2000 },
-  { 0x0c00, 0x094d, 0x0000 },
-  { 0x0c00, 0x0951, 0x0000 },
-  { 0x8700, 0x0959, 0x3000 },
-  { 0x8c00, 0x0954, 0x2000 },
-  { 0x0c00, 0x0953, 0x0000 },
-  { 0x0700, 0x0958, 0x0000 },
-  { 0x8700, 0x095b, 0x2000 },
-  { 0x0700, 0x095a, 0x0000 },
-  { 0x0700, 0x095c, 0x0000 },
-  { 0x9500, 0x0965, 0x4000 },
-  { 0x8700, 0x0961, 0x3000 },
-  { 0x8700, 0x095f, 0x2000 },
-  { 0x0700, 0x095e, 0x0000 },
-  { 0x0700, 0x0960, 0x0000 },
-  { 0x8c00, 0x0963, 0x2000 },
-  { 0x0c00, 0x0962, 0x0000 },
-  { 0x1500, 0x0964, 0x0000 },
-  { 0x8d00, 0x0969, 0x3000 },
-  { 0x8d00, 0x0967, 0x2000 },
-  { 0x0d00, 0x0966, 0x0000 },
-  { 0x0d00, 0x0968, 0x0000 },
-  { 0x8d00, 0x096b, 0x2000 },
-  { 0x0d00, 0x096a, 0x0000 },
-  { 0x0d00, 0x096c, 0x0000 },
-  { 0x8700, 0x09a2, 0x6000 },
-  { 0x8700, 0x0990, 0x5000 },
-  { 0x8700, 0x0986, 0x4000 },
-  { 0x8c00, 0x0981, 0x3000 },
-  { 0x8d00, 0x096f, 0x2000 },
-  { 0x0d00, 0x096e, 0x0000 },
-  { 0x1500, 0x0970, 0x0000 },
-  { 0x8a00, 0x0983, 0x2000 },
-  { 0x0a00, 0x0982, 0x0000 },
-  { 0x0700, 0x0985, 0x0000 },
-  { 0x8700, 0x098a, 0x3000 },
-  { 0x8700, 0x0988, 0x2000 },
-  { 0x0700, 0x0987, 0x0000 },
-  { 0x0700, 0x0989, 0x0000 },
-  { 0x8700, 0x098c, 0x2000 },
-  { 0x0700, 0x098b, 0x0000 },
-  { 0x0700, 0x098f, 0x0000 },
-  { 0x8700, 0x099a, 0x4000 },
-  { 0x8700, 0x0996, 0x3000 },
-  { 0x8700, 0x0994, 0x2000 },
-  { 0x0700, 0x0993, 0x0000 },
-  { 0x0700, 0x0995, 0x0000 },
-  { 0x8700, 0x0998, 0x2000 },
-  { 0x0700, 0x0997, 0x0000 },
-  { 0x0700, 0x0999, 0x0000 },
-  { 0x8700, 0x099e, 0x3000 },
-  { 0x8700, 0x099c, 0x2000 },
-  { 0x0700, 0x099b, 0x0000 },
-  { 0x0700, 0x099d, 0x0000 },
-  { 0x8700, 0x09a0, 0x2000 },
-  { 0x0700, 0x099f, 0x0000 },
-  { 0x0700, 0x09a1, 0x0000 },
-  { 0x8700, 0x09b7, 0x5000 },
-  { 0x8700, 0x09ab, 0x4000 },
-  { 0x8700, 0x09a6, 0x3000 },
-  { 0x8700, 0x09a4, 0x2000 },
-  { 0x0700, 0x09a3, 0x0000 },
-  { 0x0700, 0x09a5, 0x0000 },
-  { 0x8700, 0x09a8, 0x2000 },
-  { 0x0700, 0x09a7, 0x0000 },
-  { 0x0700, 0x09aa, 0x0000 },
-  { 0x8700, 0x09af, 0x3000 },
-  { 0x8700, 0x09ad, 0x2000 },
-  { 0x0700, 0x09ac, 0x0000 },
-  { 0x0700, 0x09ae, 0x0000 },
-  { 0x8700, 0x09b2, 0x2000 },
-  { 0x0700, 0x09b0, 0x0000 },
-  { 0x0700, 0x09b6, 0x0000 },
-  { 0x8c00, 0x09c1, 0x4000 },
-  { 0x8700, 0x09bd, 0x3000 },
-  { 0x8700, 0x09b9, 0x2000 },
-  { 0x0700, 0x09b8, 0x0000 },
-  { 0x0c00, 0x09bc, 0x0000 },
-  { 0x8a00, 0x09bf, 0x2000 },
-  { 0x0a00, 0x09be, 0x0000 },
-  { 0x0a00, 0x09c0, 0x0000 },
-  { 0x8a00, 0x09c7, 0x3000 },
-  { 0x8c00, 0x09c3, 0x2000 },
-  { 0x0c00, 0x09c2, 0x0000 },
-  { 0x0c00, 0x09c4, 0x0000 },
-  { 0x8a00, 0x09cb, 0x2000 },
-  { 0x0a00, 0x09c8, 0x0000 },
-  { 0x0a00, 0x09cc, 0x0000 },
-  { 0x8700, 0x0a2b, 0x7000 },
-  { 0x8a00, 0x0a03, 0x6000 },
-  { 0x8d00, 0x09ed, 0x5000 },
-  { 0x8c00, 0x09e3, 0x4000 },
-  { 0x8700, 0x09df, 0x3000 },
-  { 0x8700, 0x09dc, 0x2000 },
-  { 0x0a00, 0x09d7, 0x0000 },
-  { 0x0700, 0x09dd, 0x0000 },
-  { 0x8700, 0x09e1, 0x2000 },
-  { 0x0700, 0x09e0, 0x0000 },
-  { 0x0c00, 0x09e2, 0x0000 },
-  { 0x8d00, 0x09e9, 0x3000 },
-  { 0x8d00, 0x09e7, 0x2000 },
-  { 0x0d00, 0x09e6, 0x0000 },
-  { 0x0d00, 0x09e8, 0x0000 },
-  { 0x8d00, 0x09eb, 0x2000 },
-  { 0x0d00, 0x09ea, 0x0000 },
-  { 0x0d00, 0x09ec, 0x0000 },
-  { 0x8f00, 0x09f5, 0x4000 },
-  { 0x8700, 0x09f1, 0x3000 },
-  { 0x8d00, 0x09ef, 0x2000 },
-  { 0x0d00, 0x09ee, 0x0000 },
-  { 0x0700, 0x09f0, 0x0000 },
-  { 0x9700, 0x09f3, 0x2000 },
-  { 0x1700, 0x09f2, 0x0000 },
-  { 0x0f00, 0x09f4, 0x0000 },
-  { 0x8f00, 0x09f9, 0x3000 },
-  { 0x8f00, 0x09f7, 0x2000 },
-  { 0x0f00, 0x09f6, 0x0000 },
-  { 0x0f00, 0x09f8, 0x0000 },
-  { 0x8c00, 0x0a01, 0x2000 },
-  { 0x1a00, 0x09fa, 0x0000 },
-  { 0x0c00, 0x0a02, 0x0000 },
-  { 0x8700, 0x0a1a, 0x5000 },
-  { 0x8700, 0x0a10, 0x4000 },
-  { 0x8700, 0x0a08, 0x3000 },
-  { 0x8700, 0x0a06, 0x2000 },
-  { 0x0700, 0x0a05, 0x0000 },
-  { 0x0700, 0x0a07, 0x0000 },
-  { 0x8700, 0x0a0a, 0x2000 },
-  { 0x0700, 0x0a09, 0x0000 },
-  { 0x0700, 0x0a0f, 0x0000 },
-  { 0x8700, 0x0a16, 0x3000 },
-  { 0x8700, 0x0a14, 0x2000 },
-  { 0x0700, 0x0a13, 0x0000 },
-  { 0x0700, 0x0a15, 0x0000 },
-  { 0x8700, 0x0a18, 0x2000 },
-  { 0x0700, 0x0a17, 0x0000 },
-  { 0x0700, 0x0a19, 0x0000 },
-  { 0x8700, 0x0a22, 0x4000 },
-  { 0x8700, 0x0a1e, 0x3000 },
-  { 0x8700, 0x0a1c, 0x2000 },
-  { 0x0700, 0x0a1b, 0x0000 },
-  { 0x0700, 0x0a1d, 0x0000 },
-  { 0x8700, 0x0a20, 0x2000 },
-  { 0x0700, 0x0a1f, 0x0000 },
-  { 0x0700, 0x0a21, 0x0000 },
-  { 0x8700, 0x0a26, 0x3000 },
-  { 0x8700, 0x0a24, 0x2000 },
-  { 0x0700, 0x0a23, 0x0000 },
-  { 0x0700, 0x0a25, 0x0000 },
-  { 0x8700, 0x0a28, 0x2000 },
-  { 0x0700, 0x0a27, 0x0000 },
-  { 0x0700, 0x0a2a, 0x0000 },
-  { 0x8d00, 0x0a6a, 0x6000 },
-  { 0x8c00, 0x0a41, 0x5000 },
-  { 0x8700, 0x0a35, 0x4000 },
-  { 0x8700, 0x0a2f, 0x3000 },
-  { 0x8700, 0x0a2d, 0x2000 },
-  { 0x0700, 0x0a2c, 0x0000 },
-  { 0x0700, 0x0a2e, 0x0000 },
-  { 0x8700, 0x0a32, 0x2000 },
-  { 0x0700, 0x0a30, 0x0000 },
-  { 0x0700, 0x0a33, 0x0000 },
-  { 0x8c00, 0x0a3c, 0x3000 },
-  { 0x8700, 0x0a38, 0x2000 },
-  { 0x0700, 0x0a36, 0x0000 },
-  { 0x0700, 0x0a39, 0x0000 },
-  { 0x8a00, 0x0a3f, 0x2000 },
-  { 0x0a00, 0x0a3e, 0x0000 },
-  { 0x0a00, 0x0a40, 0x0000 },
-  { 0x8700, 0x0a5a, 0x4000 },
-  { 0x8c00, 0x0a4b, 0x3000 },
-  { 0x8c00, 0x0a47, 0x2000 },
-  { 0x0c00, 0x0a42, 0x0000 },
-  { 0x0c00, 0x0a48, 0x0000 },
-  { 0x8c00, 0x0a4d, 0x2000 },
-  { 0x0c00, 0x0a4c, 0x0000 },
-  { 0x0700, 0x0a59, 0x0000 },
-  { 0x8d00, 0x0a66, 0x3000 },
-  { 0x8700, 0x0a5c, 0x2000 },
-  { 0x0700, 0x0a5b, 0x0000 },
-  { 0x0700, 0x0a5e, 0x0000 },
-  { 0x8d00, 0x0a68, 0x2000 },
-  { 0x0d00, 0x0a67, 0x0000 },
-  { 0x0d00, 0x0a69, 0x0000 },
-  { 0x8700, 0x0a87, 0x5000 },
-  { 0x8700, 0x0a72, 0x4000 },
-  { 0x8d00, 0x0a6e, 0x3000 },
-  { 0x8d00, 0x0a6c, 0x2000 },
-  { 0x0d00, 0x0a6b, 0x0000 },
-  { 0x0d00, 0x0a6d, 0x0000 },
-  { 0x8c00, 0x0a70, 0x2000 },
-  { 0x0d00, 0x0a6f, 0x0000 },
-  { 0x0c00, 0x0a71, 0x0000 },
-  { 0x8c00, 0x0a82, 0x3000 },
-  { 0x8700, 0x0a74, 0x2000 },
-  { 0x0700, 0x0a73, 0x0000 },
-  { 0x0c00, 0x0a81, 0x0000 },
-  { 0x8700, 0x0a85, 0x2000 },
-  { 0x0a00, 0x0a83, 0x0000 },
-  { 0x0700, 0x0a86, 0x0000 },
-  { 0x8700, 0x0a90, 0x4000 },
-  { 0x8700, 0x0a8b, 0x3000 },
-  { 0x8700, 0x0a89, 0x2000 },
-  { 0x0700, 0x0a88, 0x0000 },
-  { 0x0700, 0x0a8a, 0x0000 },
-  { 0x8700, 0x0a8d, 0x2000 },
-  { 0x0700, 0x0a8c, 0x0000 },
-  { 0x0700, 0x0a8f, 0x0000 },
-  { 0x8700, 0x0a95, 0x3000 },
-  { 0x8700, 0x0a93, 0x2000 },
-  { 0x0700, 0x0a91, 0x0000 },
-  { 0x0700, 0x0a94, 0x0000 },
-  { 0x8700, 0x0a97, 0x2000 },
-  { 0x0700, 0x0a96, 0x0000 },
-  { 0x0700, 0x0a98, 0x0000 },
-  { 0x8700, 0x10ef, 0xb000 },
-  { 0x8700, 0x0dc6, 0xa000 },
-  { 0x8700, 0x0c31, 0x9000 },
-  { 0x8700, 0x0b5f, 0x8000 },
-  { 0x8a00, 0x0b03, 0x7000 },
-  { 0x8a00, 0x0abe, 0x6000 },
-  { 0x8700, 0x0aaa, 0x5000 },
-  { 0x8700, 0x0aa1, 0x4000 },
-  { 0x8700, 0x0a9d, 0x3000 },
-  { 0x8700, 0x0a9b, 0x2000 },
-  { 0x0700, 0x0a9a, 0x0000 },
-  { 0x0700, 0x0a9c, 0x0000 },
-  { 0x8700, 0x0a9f, 0x2000 },
-  { 0x0700, 0x0a9e, 0x0000 },
-  { 0x0700, 0x0aa0, 0x0000 },
-  { 0x8700, 0x0aa5, 0x3000 },
-  { 0x8700, 0x0aa3, 0x2000 },
-  { 0x0700, 0x0aa2, 0x0000 },
-  { 0x0700, 0x0aa4, 0x0000 },
-  { 0x8700, 0x0aa7, 0x2000 },
-  { 0x0700, 0x0aa6, 0x0000 },
-  { 0x0700, 0x0aa8, 0x0000 },
-  { 0x8700, 0x0ab3, 0x4000 },
-  { 0x8700, 0x0aae, 0x3000 },
-  { 0x8700, 0x0aac, 0x2000 },
-  { 0x0700, 0x0aab, 0x0000 },
-  { 0x0700, 0x0aad, 0x0000 },
-  { 0x8700, 0x0ab0, 0x2000 },
-  { 0x0700, 0x0aaf, 0x0000 },
-  { 0x0700, 0x0ab2, 0x0000 },
-  { 0x8700, 0x0ab8, 0x3000 },
-  { 0x8700, 0x0ab6, 0x2000 },
-  { 0x0700, 0x0ab5, 0x0000 },
-  { 0x0700, 0x0ab7, 0x0000 },
-  { 0x8c00, 0x0abc, 0x2000 },
-  { 0x0700, 0x0ab9, 0x0000 },
-  { 0x0700, 0x0abd, 0x0000 },
-  { 0x8700, 0x0ae1, 0x5000 },
-  { 0x8c00, 0x0ac7, 0x4000 },
-  { 0x8c00, 0x0ac2, 0x3000 },
-  { 0x8a00, 0x0ac0, 0x2000 },
-  { 0x0a00, 0x0abf, 0x0000 },
-  { 0x0c00, 0x0ac1, 0x0000 },
-  { 0x8c00, 0x0ac4, 0x2000 },
-  { 0x0c00, 0x0ac3, 0x0000 },
-  { 0x0c00, 0x0ac5, 0x0000 },
-  { 0x8a00, 0x0acc, 0x3000 },
-  { 0x8a00, 0x0ac9, 0x2000 },
-  { 0x0c00, 0x0ac8, 0x0000 },
-  { 0x0a00, 0x0acb, 0x0000 },
-  { 0x8700, 0x0ad0, 0x2000 },
-  { 0x0c00, 0x0acd, 0x0000 },
-  { 0x0700, 0x0ae0, 0x0000 },
-  { 0x8d00, 0x0aeb, 0x4000 },
-  { 0x8d00, 0x0ae7, 0x3000 },
-  { 0x8c00, 0x0ae3, 0x2000 },
-  { 0x0c00, 0x0ae2, 0x0000 },
-  { 0x0d00, 0x0ae6, 0x0000 },
-  { 0x8d00, 0x0ae9, 0x2000 },
-  { 0x0d00, 0x0ae8, 0x0000 },
-  { 0x0d00, 0x0aea, 0x0000 },
-  { 0x8d00, 0x0aef, 0x3000 },
-  { 0x8d00, 0x0aed, 0x2000 },
-  { 0x0d00, 0x0aec, 0x0000 },
-  { 0x0d00, 0x0aee, 0x0000 },
-  { 0x8c00, 0x0b01, 0x2000 },
-  { 0x1700, 0x0af1, 0x0000 },
-  { 0x0a00, 0x0b02, 0x0000 },
-  { 0x8700, 0x0b28, 0x6000 },
-  { 0x8700, 0x0b18, 0x5000 },
-  { 0x8700, 0x0b0c, 0x4000 },
-  { 0x8700, 0x0b08, 0x3000 },
-  { 0x8700, 0x0b06, 0x2000 },
-  { 0x0700, 0x0b05, 0x0000 },
-  { 0x0700, 0x0b07, 0x0000 },
-  { 0x8700, 0x0b0a, 0x2000 },
-  { 0x0700, 0x0b09, 0x0000 },
-  { 0x0700, 0x0b0b, 0x0000 },
-  { 0x8700, 0x0b14, 0x3000 },
-  { 0x8700, 0x0b10, 0x2000 },
-  { 0x0700, 0x0b0f, 0x0000 },
-  { 0x0700, 0x0b13, 0x0000 },
-  { 0x8700, 0x0b16, 0x2000 },
-  { 0x0700, 0x0b15, 0x0000 },
-  { 0x0700, 0x0b17, 0x0000 },
-  { 0x8700, 0x0b20, 0x4000 },
-  { 0x8700, 0x0b1c, 0x3000 },
-  { 0x8700, 0x0b1a, 0x2000 },
-  { 0x0700, 0x0b19, 0x0000 },
-  { 0x0700, 0x0b1b, 0x0000 },
-  { 0x8700, 0x0b1e, 0x2000 },
-  { 0x0700, 0x0b1d, 0x0000 },
-  { 0x0700, 0x0b1f, 0x0000 },
-  { 0x8700, 0x0b24, 0x3000 },
-  { 0x8700, 0x0b22, 0x2000 },
-  { 0x0700, 0x0b21, 0x0000 },
-  { 0x0700, 0x0b23, 0x0000 },
-  { 0x8700, 0x0b26, 0x2000 },
-  { 0x0700, 0x0b25, 0x0000 },
-  { 0x0700, 0x0b27, 0x0000 },
-  { 0x8700, 0x0b3d, 0x5000 },
-  { 0x8700, 0x0b32, 0x4000 },
-  { 0x8700, 0x0b2d, 0x3000 },
-  { 0x8700, 0x0b2b, 0x2000 },
-  { 0x0700, 0x0b2a, 0x0000 },
-  { 0x0700, 0x0b2c, 0x0000 },
-  { 0x8700, 0x0b2f, 0x2000 },
-  { 0x0700, 0x0b2e, 0x0000 },
-  { 0x0700, 0x0b30, 0x0000 },
-  { 0x8700, 0x0b37, 0x3000 },
-  { 0x8700, 0x0b35, 0x2000 },
-  { 0x0700, 0x0b33, 0x0000 },
-  { 0x0700, 0x0b36, 0x0000 },
-  { 0x8700, 0x0b39, 0x2000 },
-  { 0x0700, 0x0b38, 0x0000 },
-  { 0x0c00, 0x0b3c, 0x0000 },
-  { 0x8a00, 0x0b48, 0x4000 },
-  { 0x8c00, 0x0b41, 0x3000 },
-  { 0x8c00, 0x0b3f, 0x2000 },
-  { 0x0a00, 0x0b3e, 0x0000 },
-  { 0x0a00, 0x0b40, 0x0000 },
-  { 0x8c00, 0x0b43, 0x2000 },
-  { 0x0c00, 0x0b42, 0x0000 },
-  { 0x0a00, 0x0b47, 0x0000 },
-  { 0x8c00, 0x0b56, 0x3000 },
-  { 0x8a00, 0x0b4c, 0x2000 },
-  { 0x0a00, 0x0b4b, 0x0000 },
-  { 0x0c00, 0x0b4d, 0x0000 },
-  { 0x8700, 0x0b5c, 0x2000 },
-  { 0x0a00, 0x0b57, 0x0000 },
-  { 0x0700, 0x0b5d, 0x0000 },
-  { 0x8d00, 0x0be7, 0x7000 },
-  { 0x8700, 0x0b9c, 0x6000 },
-  { 0x8700, 0x0b83, 0x5000 },
-  { 0x8d00, 0x0b6b, 0x4000 },
-  { 0x8d00, 0x0b67, 0x3000 },
-  { 0x8700, 0x0b61, 0x2000 },
-  { 0x0700, 0x0b60, 0x0000 },
-  { 0x0d00, 0x0b66, 0x0000 },
-  { 0x8d00, 0x0b69, 0x2000 },
-  { 0x0d00, 0x0b68, 0x0000 },
-  { 0x0d00, 0x0b6a, 0x0000 },
-  { 0x8d00, 0x0b6f, 0x3000 },
-  { 0x8d00, 0x0b6d, 0x2000 },
-  { 0x0d00, 0x0b6c, 0x0000 },
-  { 0x0d00, 0x0b6e, 0x0000 },
-  { 0x8700, 0x0b71, 0x2000 },
-  { 0x1a00, 0x0b70, 0x0000 },
-  { 0x0c00, 0x0b82, 0x0000 },
-  { 0x8700, 0x0b8f, 0x4000 },
-  { 0x8700, 0x0b88, 0x3000 },
-  { 0x8700, 0x0b86, 0x2000 },
-  { 0x0700, 0x0b85, 0x0000 },
-  { 0x0700, 0x0b87, 0x0000 },
-  { 0x8700, 0x0b8a, 0x2000 },
-  { 0x0700, 0x0b89, 0x0000 },
-  { 0x0700, 0x0b8e, 0x0000 },
-  { 0x8700, 0x0b94, 0x3000 },
-  { 0x8700, 0x0b92, 0x2000 },
-  { 0x0700, 0x0b90, 0x0000 },
-  { 0x0700, 0x0b93, 0x0000 },
-  { 0x8700, 0x0b99, 0x2000 },
-  { 0x0700, 0x0b95, 0x0000 },
-  { 0x0700, 0x0b9a, 0x0000 },
-  { 0x8700, 0x0bb7, 0x5000 },
-  { 0x8700, 0x0bae, 0x4000 },
-  { 0x8700, 0x0ba4, 0x3000 },
-  { 0x8700, 0x0b9f, 0x2000 },
-  { 0x0700, 0x0b9e, 0x0000 },
-  { 0x0700, 0x0ba3, 0x0000 },
-  { 0x8700, 0x0ba9, 0x2000 },
-  { 0x0700, 0x0ba8, 0x0000 },
-  { 0x0700, 0x0baa, 0x0000 },
-  { 0x8700, 0x0bb2, 0x3000 },
-  { 0x8700, 0x0bb0, 0x2000 },
-  { 0x0700, 0x0baf, 0x0000 },
-  { 0x0700, 0x0bb1, 0x0000 },
-  { 0x8700, 0x0bb4, 0x2000 },
-  { 0x0700, 0x0bb3, 0x0000 },
-  { 0x0700, 0x0bb5, 0x0000 },
-  { 0x8a00, 0x0bc6, 0x4000 },
-  { 0x8a00, 0x0bbf, 0x3000 },
-  { 0x8700, 0x0bb9, 0x2000 },
-  { 0x0700, 0x0bb8, 0x0000 },
-  { 0x0a00, 0x0bbe, 0x0000 },
-  { 0x8a00, 0x0bc1, 0x2000 },
-  { 0x0c00, 0x0bc0, 0x0000 },
-  { 0x0a00, 0x0bc2, 0x0000 },
-  { 0x8a00, 0x0bcb, 0x3000 },
-  { 0x8a00, 0x0bc8, 0x2000 },
-  { 0x0a00, 0x0bc7, 0x0000 },
-  { 0x0a00, 0x0bca, 0x0000 },
-  { 0x8c00, 0x0bcd, 0x2000 },
-  { 0x0a00, 0x0bcc, 0x0000 },
-  { 0x0a00, 0x0bd7, 0x0000 },
-  { 0x8700, 0x0c0f, 0x6000 },
-  { 0x9a00, 0x0bf7, 0x5000 },
-  { 0x8d00, 0x0bef, 0x4000 },
-  { 0x8d00, 0x0beb, 0x3000 },
-  { 0x8d00, 0x0be9, 0x2000 },
-  { 0x0d00, 0x0be8, 0x0000 },
-  { 0x0d00, 0x0bea, 0x0000 },
-  { 0x8d00, 0x0bed, 0x2000 },
-  { 0x0d00, 0x0bec, 0x0000 },
-  { 0x0d00, 0x0bee, 0x0000 },
-  { 0x9a00, 0x0bf3, 0x3000 },
-  { 0x8f00, 0x0bf1, 0x2000 },
-  { 0x0f00, 0x0bf0, 0x0000 },
-  { 0x0f00, 0x0bf2, 0x0000 },
-  { 0x9a00, 0x0bf5, 0x2000 },
-  { 0x1a00, 0x0bf4, 0x0000 },
-  { 0x1a00, 0x0bf6, 0x0000 },
-  { 0x8700, 0x0c06, 0x4000 },
-  { 0x8a00, 0x0c01, 0x3000 },
-  { 0x9700, 0x0bf9, 0x2000 },
-  { 0x1a00, 0x0bf8, 0x0000 },
-  { 0x1a00, 0x0bfa, 0x0000 },
-  { 0x8a00, 0x0c03, 0x2000 },
-  { 0x0a00, 0x0c02, 0x0000 },
-  { 0x0700, 0x0c05, 0x0000 },
-  { 0x8700, 0x0c0a, 0x3000 },
-  { 0x8700, 0x0c08, 0x2000 },
-  { 0x0700, 0x0c07, 0x0000 },
-  { 0x0700, 0x0c09, 0x0000 },
-  { 0x8700, 0x0c0c, 0x2000 },
-  { 0x0700, 0x0c0b, 0x0000 },
-  { 0x0700, 0x0c0e, 0x0000 },
-  { 0x8700, 0x0c20, 0x5000 },
-  { 0x8700, 0x0c18, 0x4000 },
-  { 0x8700, 0x0c14, 0x3000 },
-  { 0x8700, 0x0c12, 0x2000 },
-  { 0x0700, 0x0c10, 0x0000 },
-  { 0x0700, 0x0c13, 0x0000 },
-  { 0x8700, 0x0c16, 0x2000 },
-  { 0x0700, 0x0c15, 0x0000 },
-  { 0x0700, 0x0c17, 0x0000 },
-  { 0x8700, 0x0c1c, 0x3000 },
-  { 0x8700, 0x0c1a, 0x2000 },
-  { 0x0700, 0x0c19, 0x0000 },
-  { 0x0700, 0x0c1b, 0x0000 },
-  { 0x8700, 0x0c1e, 0x2000 },
-  { 0x0700, 0x0c1d, 0x0000 },
-  { 0x0700, 0x0c1f, 0x0000 },
-  { 0x8700, 0x0c28, 0x4000 },
-  { 0x8700, 0x0c24, 0x3000 },
-  { 0x8700, 0x0c22, 0x2000 },
-  { 0x0700, 0x0c21, 0x0000 },
-  { 0x0700, 0x0c23, 0x0000 },
-  { 0x8700, 0x0c26, 0x2000 },
-  { 0x0700, 0x0c25, 0x0000 },
-  { 0x0700, 0x0c27, 0x0000 },
-  { 0x8700, 0x0c2d, 0x3000 },
-  { 0x8700, 0x0c2b, 0x2000 },
-  { 0x0700, 0x0c2a, 0x0000 },
-  { 0x0700, 0x0c2c, 0x0000 },
-  { 0x8700, 0x0c2f, 0x2000 },
-  { 0x0700, 0x0c2e, 0x0000 },
-  { 0x0700, 0x0c30, 0x0000 },
-  { 0x8700, 0x0d0e, 0x8000 },
-  { 0x8700, 0x0ca1, 0x7000 },
-  { 0x8d00, 0x0c6c, 0x6000 },
-  { 0x8c00, 0x0c47, 0x5000 },
-  { 0x8c00, 0x0c3e, 0x4000 },
-  { 0x8700, 0x0c36, 0x3000 },
-  { 0x8700, 0x0c33, 0x2000 },
-  { 0x0700, 0x0c32, 0x0000 },
-  { 0x0700, 0x0c35, 0x0000 },
-  { 0x8700, 0x0c38, 0x2000 },
-  { 0x0700, 0x0c37, 0x0000 },
-  { 0x0700, 0x0c39, 0x0000 },
-  { 0x8a00, 0x0c42, 0x3000 },
-  { 0x8c00, 0x0c40, 0x2000 },
-  { 0x0c00, 0x0c3f, 0x0000 },
-  { 0x0a00, 0x0c41, 0x0000 },
-  { 0x8a00, 0x0c44, 0x2000 },
-  { 0x0a00, 0x0c43, 0x0000 },
-  { 0x0c00, 0x0c46, 0x0000 },
-  { 0x8700, 0x0c60, 0x4000 },
-  { 0x8c00, 0x0c4c, 0x3000 },
-  { 0x8c00, 0x0c4a, 0x2000 },
-  { 0x0c00, 0x0c48, 0x0000 },
-  { 0x0c00, 0x0c4b, 0x0000 },
-  { 0x8c00, 0x0c55, 0x2000 },
-  { 0x0c00, 0x0c4d, 0x0000 },
-  { 0x0c00, 0x0c56, 0x0000 },
-  { 0x8d00, 0x0c68, 0x3000 },
-  { 0x8d00, 0x0c66, 0x2000 },
-  { 0x0700, 0x0c61, 0x0000 },
-  { 0x0d00, 0x0c67, 0x0000 },
-  { 0x8d00, 0x0c6a, 0x2000 },
-  { 0x0d00, 0x0c69, 0x0000 },
-  { 0x0d00, 0x0c6b, 0x0000 },
-  { 0x8700, 0x0c90, 0x5000 },
-  { 0x8700, 0x0c87, 0x4000 },
-  { 0x8a00, 0x0c82, 0x3000 },
-  { 0x8d00, 0x0c6e, 0x2000 },
-  { 0x0d00, 0x0c6d, 0x0000 },
-  { 0x0d00, 0x0c6f, 0x0000 },
-  { 0x8700, 0x0c85, 0x2000 },
-  { 0x0a00, 0x0c83, 0x0000 },
-  { 0x0700, 0x0c86, 0x0000 },
-  { 0x8700, 0x0c8b, 0x3000 },
-  { 0x8700, 0x0c89, 0x2000 },
-  { 0x0700, 0x0c88, 0x0000 },
-  { 0x0700, 0x0c8a, 0x0000 },
-  { 0x8700, 0x0c8e, 0x2000 },
-  { 0x0700, 0x0c8c, 0x0000 },
-  { 0x0700, 0x0c8f, 0x0000 },
-  { 0x8700, 0x0c99, 0x4000 },
-  { 0x8700, 0x0c95, 0x3000 },
-  { 0x8700, 0x0c93, 0x2000 },
-  { 0x0700, 0x0c92, 0x0000 },
-  { 0x0700, 0x0c94, 0x0000 },
-  { 0x8700, 0x0c97, 0x2000 },
-  { 0x0700, 0x0c96, 0x0000 },
-  { 0x0700, 0x0c98, 0x0000 },
-  { 0x8700, 0x0c9d, 0x3000 },
-  { 0x8700, 0x0c9b, 0x2000 },
-  { 0x0700, 0x0c9a, 0x0000 },
-  { 0x0700, 0x0c9c, 0x0000 },
-  { 0x8700, 0x0c9f, 0x2000 },
-  { 0x0700, 0x0c9e, 0x0000 },
-  { 0x0700, 0x0ca0, 0x0000 },
-  { 0x8c00, 0x0cc6, 0x6000 },
-  { 0x8700, 0x0cb2, 0x5000 },
-  { 0x8700, 0x0caa, 0x4000 },
-  { 0x8700, 0x0ca5, 0x3000 },
-  { 0x8700, 0x0ca3, 0x2000 },
-  { 0x0700, 0x0ca2, 0x0000 },
-  { 0x0700, 0x0ca4, 0x0000 },
-  { 0x8700, 0x0ca7, 0x2000 },
-  { 0x0700, 0x0ca6, 0x0000 },
-  { 0x0700, 0x0ca8, 0x0000 },
-  { 0x8700, 0x0cae, 0x3000 },
-  { 0x8700, 0x0cac, 0x2000 },
-  { 0x0700, 0x0cab, 0x0000 },
-  { 0x0700, 0x0cad, 0x0000 },
-  { 0x8700, 0x0cb0, 0x2000 },
-  { 0x0700, 0x0caf, 0x0000 },
-  { 0x0700, 0x0cb1, 0x0000 },
-  { 0x8700, 0x0cbd, 0x4000 },
-  { 0x8700, 0x0cb7, 0x3000 },
-  { 0x8700, 0x0cb5, 0x2000 },
-  { 0x0700, 0x0cb3, 0x0000 },
-  { 0x0700, 0x0cb6, 0x0000 },
-  { 0x8700, 0x0cb9, 0x2000 },
-  { 0x0700, 0x0cb8, 0x0000 },
-  { 0x0c00, 0x0cbc, 0x0000 },
-  { 0x8a00, 0x0cc1, 0x3000 },
-  { 0x8c00, 0x0cbf, 0x2000 },
-  { 0x0a00, 0x0cbe, 0x0000 },
-  { 0x0a00, 0x0cc0, 0x0000 },
-  { 0x8a00, 0x0cc3, 0x2000 },
-  { 0x0a00, 0x0cc2, 0x0000 },
-  { 0x0a00, 0x0cc4, 0x0000 },
-  { 0x8d00, 0x0cea, 0x5000 },
-  { 0x8a00, 0x0cd6, 0x4000 },
-  { 0x8a00, 0x0ccb, 0x3000 },
-  { 0x8a00, 0x0cc8, 0x2000 },
-  { 0x0a00, 0x0cc7, 0x0000 },
-  { 0x0a00, 0x0cca, 0x0000 },
-  { 0x8c00, 0x0ccd, 0x2000 },
-  { 0x0c00, 0x0ccc, 0x0000 },
-  { 0x0a00, 0x0cd5, 0x0000 },
-  { 0x8d00, 0x0ce6, 0x3000 },
-  { 0x8700, 0x0ce0, 0x2000 },
-  { 0x0700, 0x0cde, 0x0000 },
-  { 0x0700, 0x0ce1, 0x0000 },
-  { 0x8d00, 0x0ce8, 0x2000 },
-  { 0x0d00, 0x0ce7, 0x0000 },
-  { 0x0d00, 0x0ce9, 0x0000 },
-  { 0x8700, 0x0d05, 0x4000 },
-  { 0x8d00, 0x0cee, 0x3000 },
-  { 0x8d00, 0x0cec, 0x2000 },
-  { 0x0d00, 0x0ceb, 0x0000 },
-  { 0x0d00, 0x0ced, 0x0000 },
-  { 0x8a00, 0x0d02, 0x2000 },
-  { 0x0d00, 0x0cef, 0x0000 },
-  { 0x0a00, 0x0d03, 0x0000 },
-  { 0x8700, 0x0d09, 0x3000 },
-  { 0x8700, 0x0d07, 0x2000 },
-  { 0x0700, 0x0d06, 0x0000 },
-  { 0x0700, 0x0d08, 0x0000 },
-  { 0x8700, 0x0d0b, 0x2000 },
-  { 0x0700, 0x0d0a, 0x0000 },
-  { 0x0700, 0x0d0c, 0x0000 },
-  { 0x8d00, 0x0d6c, 0x7000 },
-  { 0x8700, 0x0d30, 0x6000 },
-  { 0x8700, 0x0d1f, 0x5000 },
-  { 0x8700, 0x0d17, 0x4000 },
-  { 0x8700, 0x0d13, 0x3000 },
-  { 0x8700, 0x0d10, 0x2000 },
-  { 0x0700, 0x0d0f, 0x0000 },
-  { 0x0700, 0x0d12, 0x0000 },
-  { 0x8700, 0x0d15, 0x2000 },
-  { 0x0700, 0x0d14, 0x0000 },
-  { 0x0700, 0x0d16, 0x0000 },
-  { 0x8700, 0x0d1b, 0x3000 },
-  { 0x8700, 0x0d19, 0x2000 },
-  { 0x0700, 0x0d18, 0x0000 },
-  { 0x0700, 0x0d1a, 0x0000 },
-  { 0x8700, 0x0d1d, 0x2000 },
-  { 0x0700, 0x0d1c, 0x0000 },
-  { 0x0700, 0x0d1e, 0x0000 },
-  { 0x8700, 0x0d27, 0x4000 },
-  { 0x8700, 0x0d23, 0x3000 },
-  { 0x8700, 0x0d21, 0x2000 },
-  { 0x0700, 0x0d20, 0x0000 },
-  { 0x0700, 0x0d22, 0x0000 },
-  { 0x8700, 0x0d25, 0x2000 },
-  { 0x0700, 0x0d24, 0x0000 },
-  { 0x0700, 0x0d26, 0x0000 },
-  { 0x8700, 0x0d2c, 0x3000 },
-  { 0x8700, 0x0d2a, 0x2000 },
-  { 0x0700, 0x0d28, 0x0000 },
-  { 0x0700, 0x0d2b, 0x0000 },
-  { 0x8700, 0x0d2e, 0x2000 },
-  { 0x0700, 0x0d2d, 0x0000 },
-  { 0x0700, 0x0d2f, 0x0000 },
-  { 0x8a00, 0x0d46, 0x5000 },
-  { 0x8700, 0x0d38, 0x4000 },
-  { 0x8700, 0x0d34, 0x3000 },
-  { 0x8700, 0x0d32, 0x2000 },
-  { 0x0700, 0x0d31, 0x0000 },
-  { 0x0700, 0x0d33, 0x0000 },
-  { 0x8700, 0x0d36, 0x2000 },
-  { 0x0700, 0x0d35, 0x0000 },
-  { 0x0700, 0x0d37, 0x0000 },
-  { 0x8a00, 0x0d40, 0x3000 },
-  { 0x8a00, 0x0d3e, 0x2000 },
-  { 0x0700, 0x0d39, 0x0000 },
-  { 0x0a00, 0x0d3f, 0x0000 },
-  { 0x8c00, 0x0d42, 0x2000 },
-  { 0x0c00, 0x0d41, 0x0000 },
-  { 0x0c00, 0x0d43, 0x0000 },
-  { 0x8700, 0x0d60, 0x4000 },
-  { 0x8a00, 0x0d4b, 0x3000 },
-  { 0x8a00, 0x0d48, 0x2000 },
-  { 0x0a00, 0x0d47, 0x0000 },
-  { 0x0a00, 0x0d4a, 0x0000 },
-  { 0x8c00, 0x0d4d, 0x2000 },
-  { 0x0a00, 0x0d4c, 0x0000 },
-  { 0x0a00, 0x0d57, 0x0000 },
-  { 0x8d00, 0x0d68, 0x3000 },
-  { 0x8d00, 0x0d66, 0x2000 },
-  { 0x0700, 0x0d61, 0x0000 },
-  { 0x0d00, 0x0d67, 0x0000 },
-  { 0x8d00, 0x0d6a, 0x2000 },
-  { 0x0d00, 0x0d69, 0x0000 },
-  { 0x0d00, 0x0d6b, 0x0000 },
-  { 0x8700, 0x0da2, 0x6000 },
-  { 0x8700, 0x0d8f, 0x5000 },
-  { 0x8700, 0x0d87, 0x4000 },
-  { 0x8a00, 0x0d82, 0x3000 },
-  { 0x8d00, 0x0d6e, 0x2000 },
-  { 0x0d00, 0x0d6d, 0x0000 },
-  { 0x0d00, 0x0d6f, 0x0000 },
-  { 0x8700, 0x0d85, 0x2000 },
-  { 0x0a00, 0x0d83, 0x0000 },
-  { 0x0700, 0x0d86, 0x0000 },
-  { 0x8700, 0x0d8b, 0x3000 },
-  { 0x8700, 0x0d89, 0x2000 },
-  { 0x0700, 0x0d88, 0x0000 },
-  { 0x0700, 0x0d8a, 0x0000 },
-  { 0x8700, 0x0d8d, 0x2000 },
-  { 0x0700, 0x0d8c, 0x0000 },
-  { 0x0700, 0x0d8e, 0x0000 },
-  { 0x8700, 0x0d9a, 0x4000 },
-  { 0x8700, 0x0d93, 0x3000 },
-  { 0x8700, 0x0d91, 0x2000 },
-  { 0x0700, 0x0d90, 0x0000 },
-  { 0x0700, 0x0d92, 0x0000 },
-  { 0x8700, 0x0d95, 0x2000 },
-  { 0x0700, 0x0d94, 0x0000 },
-  { 0x0700, 0x0d96, 0x0000 },
-  { 0x8700, 0x0d9e, 0x3000 },
-  { 0x8700, 0x0d9c, 0x2000 },
-  { 0x0700, 0x0d9b, 0x0000 },
-  { 0x0700, 0x0d9d, 0x0000 },
-  { 0x8700, 0x0da0, 0x2000 },
-  { 0x0700, 0x0d9f, 0x0000 },
-  { 0x0700, 0x0da1, 0x0000 },
-  { 0x8700, 0x0db3, 0x5000 },
-  { 0x8700, 0x0daa, 0x4000 },
-  { 0x8700, 0x0da6, 0x3000 },
-  { 0x8700, 0x0da4, 0x2000 },
-  { 0x0700, 0x0da3, 0x0000 },
-  { 0x0700, 0x0da5, 0x0000 },
-  { 0x8700, 0x0da8, 0x2000 },
-  { 0x0700, 0x0da7, 0x0000 },
-  { 0x0700, 0x0da9, 0x0000 },
-  { 0x8700, 0x0dae, 0x3000 },
-  { 0x8700, 0x0dac, 0x2000 },
-  { 0x0700, 0x0dab, 0x0000 },
-  { 0x0700, 0x0dad, 0x0000 },
-  { 0x8700, 0x0db0, 0x2000 },
-  { 0x0700, 0x0daf, 0x0000 },
-  { 0x0700, 0x0db1, 0x0000 },
-  { 0x8700, 0x0dbb, 0x4000 },
-  { 0x8700, 0x0db7, 0x3000 },
-  { 0x8700, 0x0db5, 0x2000 },
-  { 0x0700, 0x0db4, 0x0000 },
-  { 0x0700, 0x0db6, 0x0000 },
-  { 0x8700, 0x0db9, 0x2000 },
-  { 0x0700, 0x0db8, 0x0000 },
-  { 0x0700, 0x0dba, 0x0000 },
-  { 0x8700, 0x0dc2, 0x3000 },
-  { 0x8700, 0x0dc0, 0x2000 },
-  { 0x0700, 0x0dbd, 0x0000 },
-  { 0x0700, 0x0dc1, 0x0000 },
-  { 0x8700, 0x0dc4, 0x2000 },
-  { 0x0700, 0x0dc3, 0x0000 },
-  { 0x0700, 0x0dc5, 0x0000 },
-  { 0x8700, 0x0f55, 0x9000 },
-  { 0x8700, 0x0ea5, 0x8000 },
-  { 0x8700, 0x0e2d, 0x7000 },
-  { 0x8700, 0x0e0d, 0x6000 },
-  { 0x8a00, 0x0ddf, 0x5000 },
-  { 0x8c00, 0x0dd6, 0x4000 },
-  { 0x8a00, 0x0dd1, 0x3000 },
-  { 0x8a00, 0x0dcf, 0x2000 },
-  { 0x0c00, 0x0dca, 0x0000 },
-  { 0x0a00, 0x0dd0, 0x0000 },
-  { 0x8c00, 0x0dd3, 0x2000 },
-  { 0x0c00, 0x0dd2, 0x0000 },
-  { 0x0c00, 0x0dd4, 0x0000 },
-  { 0x8a00, 0x0ddb, 0x3000 },
-  { 0x8a00, 0x0dd9, 0x2000 },
-  { 0x0a00, 0x0dd8, 0x0000 },
-  { 0x0a00, 0x0dda, 0x0000 },
-  { 0x8a00, 0x0ddd, 0x2000 },
-  { 0x0a00, 0x0ddc, 0x0000 },
-  { 0x0a00, 0x0dde, 0x0000 },
-  { 0x8700, 0x0e05, 0x4000 },
-  { 0x8700, 0x0e01, 0x3000 },
-  { 0x8a00, 0x0df3, 0x2000 },
-  { 0x0a00, 0x0df2, 0x0000 },
-  { 0x1500, 0x0df4, 0x0000 },
-  { 0x8700, 0x0e03, 0x2000 },
-  { 0x0700, 0x0e02, 0x0000 },
-  { 0x0700, 0x0e04, 0x0000 },
-  { 0x8700, 0x0e09, 0x3000 },
-  { 0x8700, 0x0e07, 0x2000 },
-  { 0x0700, 0x0e06, 0x0000 },
-  { 0x0700, 0x0e08, 0x0000 },
-  { 0x8700, 0x0e0b, 0x2000 },
-  { 0x0700, 0x0e0a, 0x0000 },
-  { 0x0700, 0x0e0c, 0x0000 },
-  { 0x8700, 0x0e1d, 0x5000 },
-  { 0x8700, 0x0e15, 0x4000 },
-  { 0x8700, 0x0e11, 0x3000 },
-  { 0x8700, 0x0e0f, 0x2000 },
-  { 0x0700, 0x0e0e, 0x0000 },
-  { 0x0700, 0x0e10, 0x0000 },
-  { 0x8700, 0x0e13, 0x2000 },
-  { 0x0700, 0x0e12, 0x0000 },
-  { 0x0700, 0x0e14, 0x0000 },
-  { 0x8700, 0x0e19, 0x3000 },
-  { 0x8700, 0x0e17, 0x2000 },
-  { 0x0700, 0x0e16, 0x0000 },
-  { 0x0700, 0x0e18, 0x0000 },
-  { 0x8700, 0x0e1b, 0x2000 },
-  { 0x0700, 0x0e1a, 0x0000 },
-  { 0x0700, 0x0e1c, 0x0000 },
-  { 0x8700, 0x0e25, 0x4000 },
-  { 0x8700, 0x0e21, 0x3000 },
-  { 0x8700, 0x0e1f, 0x2000 },
-  { 0x0700, 0x0e1e, 0x0000 },
-  { 0x0700, 0x0e20, 0x0000 },
-  { 0x8700, 0x0e23, 0x2000 },
-  { 0x0700, 0x0e22, 0x0000 },
-  { 0x0700, 0x0e24, 0x0000 },
-  { 0x8700, 0x0e29, 0x3000 },
-  { 0x8700, 0x0e27, 0x2000 },
-  { 0x0700, 0x0e26, 0x0000 },
-  { 0x0700, 0x0e28, 0x0000 },
-  { 0x8700, 0x0e2b, 0x2000 },
-  { 0x0700, 0x0e2a, 0x0000 },
-  { 0x0700, 0x0e2c, 0x0000 },
-  { 0x8d00, 0x0e51, 0x6000 },
-  { 0x8700, 0x0e41, 0x5000 },
-  { 0x8c00, 0x0e35, 0x4000 },
-  { 0x8c00, 0x0e31, 0x3000 },
-  { 0x8700, 0x0e2f, 0x2000 },
-  { 0x0700, 0x0e2e, 0x0000 },
-  { 0x0700, 0x0e30, 0x0000 },
-  { 0x8700, 0x0e33, 0x2000 },
-  { 0x0700, 0x0e32, 0x0000 },
-  { 0x0c00, 0x0e34, 0x0000 },
-  { 0x8c00, 0x0e39, 0x3000 },
-  { 0x8c00, 0x0e37, 0x2000 },
-  { 0x0c00, 0x0e36, 0x0000 },
-  { 0x0c00, 0x0e38, 0x0000 },
-  { 0x9700, 0x0e3f, 0x2000 },
-  { 0x0c00, 0x0e3a, 0x0000 },
-  { 0x0700, 0x0e40, 0x0000 },
-  { 0x8c00, 0x0e49, 0x4000 },
-  { 0x8700, 0x0e45, 0x3000 },
-  { 0x8700, 0x0e43, 0x2000 },
-  { 0x0700, 0x0e42, 0x0000 },
-  { 0x0700, 0x0e44, 0x0000 },
-  { 0x8c00, 0x0e47, 0x2000 },
-  { 0x0600, 0x0e46, 0x0000 },
-  { 0x0c00, 0x0e48, 0x0000 },
-  { 0x8c00, 0x0e4d, 0x3000 },
-  { 0x8c00, 0x0e4b, 0x2000 },
-  { 0x0c00, 0x0e4a, 0x0000 },
-  { 0x0c00, 0x0e4c, 0x0000 },
-  { 0x9500, 0x0e4f, 0x2000 },
-  { 0x0c00, 0x0e4e, 0x0000 },
-  { 0x0d00, 0x0e50, 0x0000 },
-  { 0x8700, 0x0e8a, 0x5000 },
-  { 0x8d00, 0x0e59, 0x4000 },
-  { 0x8d00, 0x0e55, 0x3000 },
-  { 0x8d00, 0x0e53, 0x2000 },
-  { 0x0d00, 0x0e52, 0x0000 },
-  { 0x0d00, 0x0e54, 0x0000 },
-  { 0x8d00, 0x0e57, 0x2000 },
-  { 0x0d00, 0x0e56, 0x0000 },
-  { 0x0d00, 0x0e58, 0x0000 },
-  { 0x8700, 0x0e82, 0x3000 },
-  { 0x9500, 0x0e5b, 0x2000 },
-  { 0x1500, 0x0e5a, 0x0000 },
-  { 0x0700, 0x0e81, 0x0000 },
-  { 0x8700, 0x0e87, 0x2000 },
-  { 0x0700, 0x0e84, 0x0000 },
-  { 0x0700, 0x0e88, 0x0000 },
-  { 0x8700, 0x0e9b, 0x4000 },
-  { 0x8700, 0x0e96, 0x3000 },
-  { 0x8700, 0x0e94, 0x2000 },
-  { 0x0700, 0x0e8d, 0x0000 },
-  { 0x0700, 0x0e95, 0x0000 },
-  { 0x8700, 0x0e99, 0x2000 },
-  { 0x0700, 0x0e97, 0x0000 },
-  { 0x0700, 0x0e9a, 0x0000 },
-  { 0x8700, 0x0e9f, 0x3000 },
-  { 0x8700, 0x0e9d, 0x2000 },
-  { 0x0700, 0x0e9c, 0x0000 },
-  { 0x0700, 0x0e9e, 0x0000 },
-  { 0x8700, 0x0ea2, 0x2000 },
-  { 0x0700, 0x0ea1, 0x0000 },
-  { 0x0700, 0x0ea3, 0x0000 },
-  { 0x9a00, 0x0f14, 0x7000 },
-  { 0x8d00, 0x0ed0, 0x6000 },
-  { 0x8c00, 0x0eb9, 0x5000 },
-  { 0x8c00, 0x0eb1, 0x4000 },
-  { 0x8700, 0x0ead, 0x3000 },
-  { 0x8700, 0x0eaa, 0x2000 },
-  { 0x0700, 0x0ea7, 0x0000 },
-  { 0x0700, 0x0eab, 0x0000 },
-  { 0x8700, 0x0eaf, 0x2000 },
-  { 0x0700, 0x0eae, 0x0000 },
-  { 0x0700, 0x0eb0, 0x0000 },
-  { 0x8c00, 0x0eb5, 0x3000 },
-  { 0x8700, 0x0eb3, 0x2000 },
-  { 0x0700, 0x0eb2, 0x0000 },
-  { 0x0c00, 0x0eb4, 0x0000 },
-  { 0x8c00, 0x0eb7, 0x2000 },
-  { 0x0c00, 0x0eb6, 0x0000 },
-  { 0x0c00, 0x0eb8, 0x0000 },
-  { 0x8700, 0x0ec4, 0x4000 },
-  { 0x8700, 0x0ec0, 0x3000 },
-  { 0x8c00, 0x0ebc, 0x2000 },
-  { 0x0c00, 0x0ebb, 0x0000 },
-  { 0x0700, 0x0ebd, 0x0000 },
-  { 0x8700, 0x0ec2, 0x2000 },
-  { 0x0700, 0x0ec1, 0x0000 },
-  { 0x0700, 0x0ec3, 0x0000 },
-  { 0x8c00, 0x0eca, 0x3000 },
-  { 0x8c00, 0x0ec8, 0x2000 },
-  { 0x0600, 0x0ec6, 0x0000 },
-  { 0x0c00, 0x0ec9, 0x0000 },
-  { 0x8c00, 0x0ecc, 0x2000 },
-  { 0x0c00, 0x0ecb, 0x0000 },
-  { 0x0c00, 0x0ecd, 0x0000 },
-  { 0x9500, 0x0f04, 0x5000 },
-  { 0x8d00, 0x0ed8, 0x4000 },
-  { 0x8d00, 0x0ed4, 0x3000 },
-  { 0x8d00, 0x0ed2, 0x2000 },
-  { 0x0d00, 0x0ed1, 0x0000 },
-  { 0x0d00, 0x0ed3, 0x0000 },
-  { 0x8d00, 0x0ed6, 0x2000 },
-  { 0x0d00, 0x0ed5, 0x0000 },
-  { 0x0d00, 0x0ed7, 0x0000 },
-  { 0x8700, 0x0f00, 0x3000 },
-  { 0x8700, 0x0edc, 0x2000 },
-  { 0x0d00, 0x0ed9, 0x0000 },
-  { 0x0700, 0x0edd, 0x0000 },
-  { 0x9a00, 0x0f02, 0x2000 },
-  { 0x1a00, 0x0f01, 0x0000 },
-  { 0x1a00, 0x0f03, 0x0000 },
-  { 0x9500, 0x0f0c, 0x4000 },
-  { 0x9500, 0x0f08, 0x3000 },
-  { 0x9500, 0x0f06, 0x2000 },
-  { 0x1500, 0x0f05, 0x0000 },
-  { 0x1500, 0x0f07, 0x0000 },
-  { 0x9500, 0x0f0a, 0x2000 },
-  { 0x1500, 0x0f09, 0x0000 },
-  { 0x1500, 0x0f0b, 0x0000 },
-  { 0x9500, 0x0f10, 0x3000 },
-  { 0x9500, 0x0f0e, 0x2000 },
-  { 0x1500, 0x0f0d, 0x0000 },
-  { 0x1500, 0x0f0f, 0x0000 },
-  { 0x9500, 0x0f12, 0x2000 },
-  { 0x1500, 0x0f11, 0x0000 },
-  { 0x1a00, 0x0f13, 0x0000 },
-  { 0x9a00, 0x0f34, 0x6000 },
-  { 0x8d00, 0x0f24, 0x5000 },
-  { 0x9a00, 0x0f1c, 0x4000 },
-  { 0x8c00, 0x0f18, 0x3000 },
-  { 0x9a00, 0x0f16, 0x2000 },
-  { 0x1a00, 0x0f15, 0x0000 },
-  { 0x1a00, 0x0f17, 0x0000 },
-  { 0x9a00, 0x0f1a, 0x2000 },
-  { 0x0c00, 0x0f19, 0x0000 },
-  { 0x1a00, 0x0f1b, 0x0000 },
-  { 0x8d00, 0x0f20, 0x3000 },
-  { 0x9a00, 0x0f1e, 0x2000 },
-  { 0x1a00, 0x0f1d, 0x0000 },
-  { 0x1a00, 0x0f1f, 0x0000 },
-  { 0x8d00, 0x0f22, 0x2000 },
-  { 0x0d00, 0x0f21, 0x0000 },
-  { 0x0d00, 0x0f23, 0x0000 },
-  { 0x8f00, 0x0f2c, 0x4000 },
-  { 0x8d00, 0x0f28, 0x3000 },
-  { 0x8d00, 0x0f26, 0x2000 },
-  { 0x0d00, 0x0f25, 0x0000 },
-  { 0x0d00, 0x0f27, 0x0000 },
-  { 0x8f00, 0x0f2a, 0x2000 },
-  { 0x0d00, 0x0f29, 0x0000 },
-  { 0x0f00, 0x0f2b, 0x0000 },
-  { 0x8f00, 0x0f30, 0x3000 },
-  { 0x8f00, 0x0f2e, 0x2000 },
-  { 0x0f00, 0x0f2d, 0x0000 },
-  { 0x0f00, 0x0f2f, 0x0000 },
-  { 0x8f00, 0x0f32, 0x2000 },
-  { 0x0f00, 0x0f31, 0x0000 },
-  { 0x0f00, 0x0f33, 0x0000 },
-  { 0x8700, 0x0f44, 0x5000 },
-  { 0x9600, 0x0f3c, 0x4000 },
-  { 0x9a00, 0x0f38, 0x3000 },
-  { 0x9a00, 0x0f36, 0x2000 },
-  { 0x0c00, 0x0f35, 0x0000 },
-  { 0x0c00, 0x0f37, 0x0000 },
-  { 0x9600, 0x0f3a, 0x2000 },
-  { 0x0c00, 0x0f39, 0x0000 },
-  { 0x1200, 0x0f3b, 0x0000 },
-  { 0x8700, 0x0f40, 0x3000 },
-  { 0x8a00, 0x0f3e, 0x2000 },
-  { 0x1200, 0x0f3d, 0x0000 },
-  { 0x0a00, 0x0f3f, 0x0000 },
-  { 0x8700, 0x0f42, 0x2000 },
-  { 0x0700, 0x0f41, 0x0000 },
-  { 0x0700, 0x0f43, 0x0000 },
-  { 0x8700, 0x0f4d, 0x4000 },
-  { 0x8700, 0x0f49, 0x3000 },
-  { 0x8700, 0x0f46, 0x2000 },
-  { 0x0700, 0x0f45, 0x0000 },
-  { 0x0700, 0x0f47, 0x0000 },
-  { 0x8700, 0x0f4b, 0x2000 },
-  { 0x0700, 0x0f4a, 0x0000 },
-  { 0x0700, 0x0f4c, 0x0000 },
-  { 0x8700, 0x0f51, 0x3000 },
-  { 0x8700, 0x0f4f, 0x2000 },
-  { 0x0700, 0x0f4e, 0x0000 },
-  { 0x0700, 0x0f50, 0x0000 },
-  { 0x8700, 0x0f53, 0x2000 },
-  { 0x0700, 0x0f52, 0x0000 },
-  { 0x0700, 0x0f54, 0x0000 },
-  { 0x8700, 0x1013, 0x8000 },
-  { 0x8c00, 0x0fa0, 0x7000 },
-  { 0x8c00, 0x0f7b, 0x6000 },
-  { 0x8700, 0x0f65, 0x5000 },
-  { 0x8700, 0x0f5d, 0x4000 },
-  { 0x8700, 0x0f59, 0x3000 },
-  { 0x8700, 0x0f57, 0x2000 },
-  { 0x0700, 0x0f56, 0x0000 },
-  { 0x0700, 0x0f58, 0x0000 },
-  { 0x8700, 0x0f5b, 0x2000 },
-  { 0x0700, 0x0f5a, 0x0000 },
-  { 0x0700, 0x0f5c, 0x0000 },
-  { 0x8700, 0x0f61, 0x3000 },
-  { 0x8700, 0x0f5f, 0x2000 },
-  { 0x0700, 0x0f5e, 0x0000 },
-  { 0x0700, 0x0f60, 0x0000 },
-  { 0x8700, 0x0f63, 0x2000 },
-  { 0x0700, 0x0f62, 0x0000 },
-  { 0x0700, 0x0f64, 0x0000 },
-  { 0x8c00, 0x0f73, 0x4000 },
-  { 0x8700, 0x0f69, 0x3000 },
-  { 0x8700, 0x0f67, 0x2000 },
-  { 0x0700, 0x0f66, 0x0000 },
-  { 0x0700, 0x0f68, 0x0000 },
-  { 0x8c00, 0x0f71, 0x2000 },
-  { 0x0700, 0x0f6a, 0x0000 },
-  { 0x0c00, 0x0f72, 0x0000 },
-  { 0x8c00, 0x0f77, 0x3000 },
-  { 0x8c00, 0x0f75, 0x2000 },
-  { 0x0c00, 0x0f74, 0x0000 },
-  { 0x0c00, 0x0f76, 0x0000 },
-  { 0x8c00, 0x0f79, 0x2000 },
-  { 0x0c00, 0x0f78, 0x0000 },
-  { 0x0c00, 0x0f7a, 0x0000 },
-  { 0x8700, 0x0f8b, 0x5000 },
-  { 0x8c00, 0x0f83, 0x4000 },
-  { 0x8a00, 0x0f7f, 0x3000 },
-  { 0x8c00, 0x0f7d, 0x2000 },
-  { 0x0c00, 0x0f7c, 0x0000 },
-  { 0x0c00, 0x0f7e, 0x0000 },
-  { 0x8c00, 0x0f81, 0x2000 },
-  { 0x0c00, 0x0f80, 0x0000 },
-  { 0x0c00, 0x0f82, 0x0000 },
-  { 0x8c00, 0x0f87, 0x3000 },
-  { 0x9500, 0x0f85, 0x2000 },
-  { 0x0c00, 0x0f84, 0x0000 },
-  { 0x0c00, 0x0f86, 0x0000 },
-  { 0x8700, 0x0f89, 0x2000 },
-  { 0x0700, 0x0f88, 0x0000 },
-  { 0x0700, 0x0f8a, 0x0000 },
-  { 0x8c00, 0x0f97, 0x4000 },
-  { 0x8c00, 0x0f93, 0x3000 },
-  { 0x8c00, 0x0f91, 0x2000 },
-  { 0x0c00, 0x0f90, 0x0000 },
-  { 0x0c00, 0x0f92, 0x0000 },
-  { 0x8c00, 0x0f95, 0x2000 },
-  { 0x0c00, 0x0f94, 0x0000 },
-  { 0x0c00, 0x0f96, 0x0000 },
-  { 0x8c00, 0x0f9c, 0x3000 },
-  { 0x8c00, 0x0f9a, 0x2000 },
-  { 0x0c00, 0x0f99, 0x0000 },
-  { 0x0c00, 0x0f9b, 0x0000 },
-  { 0x8c00, 0x0f9e, 0x2000 },
-  { 0x0c00, 0x0f9d, 0x0000 },
-  { 0x0c00, 0x0f9f, 0x0000 },
-  { 0x9a00, 0x0fc1, 0x6000 },
-  { 0x8c00, 0x0fb0, 0x5000 },
-  { 0x8c00, 0x0fa8, 0x4000 },
-  { 0x8c00, 0x0fa4, 0x3000 },
-  { 0x8c00, 0x0fa2, 0x2000 },
-  { 0x0c00, 0x0fa1, 0x0000 },
-  { 0x0c00, 0x0fa3, 0x0000 },
-  { 0x8c00, 0x0fa6, 0x2000 },
-  { 0x0c00, 0x0fa5, 0x0000 },
-  { 0x0c00, 0x0fa7, 0x0000 },
-  { 0x8c00, 0x0fac, 0x3000 },
-  { 0x8c00, 0x0faa, 0x2000 },
-  { 0x0c00, 0x0fa9, 0x0000 },
-  { 0x0c00, 0x0fab, 0x0000 },
-  { 0x8c00, 0x0fae, 0x2000 },
-  { 0x0c00, 0x0fad, 0x0000 },
-  { 0x0c00, 0x0faf, 0x0000 },
-  { 0x8c00, 0x0fb8, 0x4000 },
-  { 0x8c00, 0x0fb4, 0x3000 },
-  { 0x8c00, 0x0fb2, 0x2000 },
-  { 0x0c00, 0x0fb1, 0x0000 },
-  { 0x0c00, 0x0fb3, 0x0000 },
-  { 0x8c00, 0x0fb6, 0x2000 },
-  { 0x0c00, 0x0fb5, 0x0000 },
-  { 0x0c00, 0x0fb7, 0x0000 },
-  { 0x8c00, 0x0fbc, 0x3000 },
-  { 0x8c00, 0x0fba, 0x2000 },
-  { 0x0c00, 0x0fb9, 0x0000 },
-  { 0x0c00, 0x0fbb, 0x0000 },
-  { 0x9a00, 0x0fbf, 0x2000 },
-  { 0x1a00, 0x0fbe, 0x0000 },
-  { 0x1a00, 0x0fc0, 0x0000 },
-  { 0x8700, 0x1003, 0x5000 },
-  { 0x9a00, 0x0fc9, 0x4000 },
-  { 0x9a00, 0x0fc5, 0x3000 },
-  { 0x9a00, 0x0fc3, 0x2000 },
-  { 0x1a00, 0x0fc2, 0x0000 },
-  { 0x1a00, 0x0fc4, 0x0000 },
-  { 0x9a00, 0x0fc7, 0x2000 },
-  { 0x0c00, 0x0fc6, 0x0000 },
-  { 0x1a00, 0x0fc8, 0x0000 },
-  { 0x9a00, 0x0fcf, 0x3000 },
-  { 0x9a00, 0x0fcb, 0x2000 },
-  { 0x1a00, 0x0fca, 0x0000 },
-  { 0x1a00, 0x0fcc, 0x0000 },
-  { 0x8700, 0x1001, 0x2000 },
-  { 0x0700, 0x1000, 0x0000 },
-  { 0x0700, 0x1002, 0x0000 },
-  { 0x8700, 0x100b, 0x4000 },
-  { 0x8700, 0x1007, 0x3000 },
-  { 0x8700, 0x1005, 0x2000 },
-  { 0x0700, 0x1004, 0x0000 },
-  { 0x0700, 0x1006, 0x0000 },
-  { 0x8700, 0x1009, 0x2000 },
-  { 0x0700, 0x1008, 0x0000 },
-  { 0x0700, 0x100a, 0x0000 },
-  { 0x8700, 0x100f, 0x3000 },
-  { 0x8700, 0x100d, 0x2000 },
-  { 0x0700, 0x100c, 0x0000 },
-  { 0x0700, 0x100e, 0x0000 },
-  { 0x8700, 0x1011, 0x2000 },
-  { 0x0700, 0x1010, 0x0000 },
-  { 0x0700, 0x1012, 0x0000 },
-  { 0x8900, 0x10a5, 0x7000 },
-  { 0x8c00, 0x1039, 0x6000 },
-  { 0x8700, 0x1024, 0x5000 },
-  { 0x8700, 0x101b, 0x4000 },
-  { 0x8700, 0x1017, 0x3000 },
-  { 0x8700, 0x1015, 0x2000 },
-  { 0x0700, 0x1014, 0x0000 },
-  { 0x0700, 0x1016, 0x0000 },
-  { 0x8700, 0x1019, 0x2000 },
-  { 0x0700, 0x1018, 0x0000 },
-  { 0x0700, 0x101a, 0x0000 },
-  { 0x8700, 0x101f, 0x3000 },
-  { 0x8700, 0x101d, 0x2000 },
-  { 0x0700, 0x101c, 0x0000 },
-  { 0x0700, 0x101e, 0x0000 },
-  { 0x8700, 0x1021, 0x2000 },
-  { 0x0700, 0x1020, 0x0000 },
-  { 0x0700, 0x1023, 0x0000 },
-  { 0x8c00, 0x102e, 0x4000 },
-  { 0x8700, 0x1029, 0x3000 },
-  { 0x8700, 0x1026, 0x2000 },
-  { 0x0700, 0x1025, 0x0000 },
-  { 0x0700, 0x1027, 0x0000 },
-  { 0x8a00, 0x102c, 0x2000 },
-  { 0x0700, 0x102a, 0x0000 },
-  { 0x0c00, 0x102d, 0x0000 },
-  { 0x8c00, 0x1032, 0x3000 },
-  { 0x8c00, 0x1030, 0x2000 },
-  { 0x0c00, 0x102f, 0x0000 },
-  { 0x0a00, 0x1031, 0x0000 },
-  { 0x8c00, 0x1037, 0x2000 },
-  { 0x0c00, 0x1036, 0x0000 },
-  { 0x0a00, 0x1038, 0x0000 },
-  { 0x9500, 0x104f, 0x5000 },
-  { 0x8d00, 0x1047, 0x4000 },
-  { 0x8d00, 0x1043, 0x3000 },
-  { 0x8d00, 0x1041, 0x2000 },
-  { 0x0d00, 0x1040, 0x0000 },
-  { 0x0d00, 0x1042, 0x0000 },
-  { 0x8d00, 0x1045, 0x2000 },
-  { 0x0d00, 0x1044, 0x0000 },
-  { 0x0d00, 0x1046, 0x0000 },
-  { 0x9500, 0x104b, 0x3000 },
-  { 0x8d00, 0x1049, 0x2000 },
-  { 0x0d00, 0x1048, 0x0000 },
-  { 0x1500, 0x104a, 0x0000 },
-  { 0x9500, 0x104d, 0x2000 },
-  { 0x1500, 0x104c, 0x0000 },
-  { 0x1500, 0x104e, 0x0000 },
-  { 0x8a00, 0x1057, 0x4000 },
-  { 0x8700, 0x1053, 0x3000 },
-  { 0x8700, 0x1051, 0x2000 },
-  { 0x0700, 0x1050, 0x0000 },
-  { 0x0700, 0x1052, 0x0000 },
-  { 0x8700, 0x1055, 0x2000 },
-  { 0x0700, 0x1054, 0x0000 },
-  { 0x0a00, 0x1056, 0x0000 },
-  { 0x8900, 0x10a1, 0x3000 },
-  { 0x8c00, 0x1059, 0x2000 },
-  { 0x0c00, 0x1058, 0x0000 },
-  { 0x0900, 0x10a0, 0x0000 },
-  { 0x8900, 0x10a3, 0x2000 },
-  { 0x0900, 0x10a2, 0x0000 },
-  { 0x0900, 0x10a4, 0x0000 },
-  { 0x8900, 0x10c5, 0x6000 },
-  { 0x8900, 0x10b5, 0x5000 },
-  { 0x8900, 0x10ad, 0x4000 },
-  { 0x8900, 0x10a9, 0x3000 },
-  { 0x8900, 0x10a7, 0x2000 },
-  { 0x0900, 0x10a6, 0x0000 },
-  { 0x0900, 0x10a8, 0x0000 },
-  { 0x8900, 0x10ab, 0x2000 },
-  { 0x0900, 0x10aa, 0x0000 },
-  { 0x0900, 0x10ac, 0x0000 },
-  { 0x8900, 0x10b1, 0x3000 },
-  { 0x8900, 0x10af, 0x2000 },
-  { 0x0900, 0x10ae, 0x0000 },
-  { 0x0900, 0x10b0, 0x0000 },
-  { 0x8900, 0x10b3, 0x2000 },
-  { 0x0900, 0x10b2, 0x0000 },
-  { 0x0900, 0x10b4, 0x0000 },
-  { 0x8900, 0x10bd, 0x4000 },
-  { 0x8900, 0x10b9, 0x3000 },
-  { 0x8900, 0x10b7, 0x2000 },
-  { 0x0900, 0x10b6, 0x0000 },
-  { 0x0900, 0x10b8, 0x0000 },
-  { 0x8900, 0x10bb, 0x2000 },
-  { 0x0900, 0x10ba, 0x0000 },
-  { 0x0900, 0x10bc, 0x0000 },
-  { 0x8900, 0x10c1, 0x3000 },
-  { 0x8900, 0x10bf, 0x2000 },
-  { 0x0900, 0x10be, 0x0000 },
-  { 0x0900, 0x10c0, 0x0000 },
-  { 0x8900, 0x10c3, 0x2000 },
-  { 0x0900, 0x10c2, 0x0000 },
-  { 0x0900, 0x10c4, 0x0000 },
-  { 0x8700, 0x10df, 0x5000 },
-  { 0x8700, 0x10d7, 0x4000 },
-  { 0x8700, 0x10d3, 0x3000 },
-  { 0x8700, 0x10d1, 0x2000 },
-  { 0x0700, 0x10d0, 0x0000 },
-  { 0x0700, 0x10d2, 0x0000 },
-  { 0x8700, 0x10d5, 0x2000 },
-  { 0x0700, 0x10d4, 0x0000 },
-  { 0x0700, 0x10d6, 0x0000 },
-  { 0x8700, 0x10db, 0x3000 },
-  { 0x8700, 0x10d9, 0x2000 },
-  { 0x0700, 0x10d8, 0x0000 },
-  { 0x0700, 0x10da, 0x0000 },
-  { 0x8700, 0x10dd, 0x2000 },
-  { 0x0700, 0x10dc, 0x0000 },
-  { 0x0700, 0x10de, 0x0000 },
-  { 0x8700, 0x10e7, 0x4000 },
-  { 0x8700, 0x10e3, 0x3000 },
-  { 0x8700, 0x10e1, 0x2000 },
-  { 0x0700, 0x10e0, 0x0000 },
-  { 0x0700, 0x10e2, 0x0000 },
-  { 0x8700, 0x10e5, 0x2000 },
-  { 0x0700, 0x10e4, 0x0000 },
-  { 0x0700, 0x10e6, 0x0000 },
-  { 0x8700, 0x10eb, 0x3000 },
-  { 0x8700, 0x10e9, 0x2000 },
-  { 0x0700, 0x10e8, 0x0000 },
-  { 0x0700, 0x10ea, 0x0000 },
-  { 0x8700, 0x10ed, 0x2000 },
-  { 0x0700, 0x10ec, 0x0000 },
-  { 0x0700, 0x10ee, 0x0000 },
-  { 0x8700, 0x1322, 0xa000 },
-  { 0x8700, 0x1205, 0x9000 },
-  { 0x8700, 0x117a, 0x8000 },
-  { 0x8700, 0x1135, 0x7000 },
-  { 0x8700, 0x1115, 0x6000 },
-  { 0x8700, 0x1105, 0x5000 },
-  { 0x8700, 0x10f7, 0x4000 },
-  { 0x8700, 0x10f3, 0x3000 },
-  { 0x8700, 0x10f1, 0x2000 },
-  { 0x0700, 0x10f0, 0x0000 },
-  { 0x0700, 0x10f2, 0x0000 },
-  { 0x8700, 0x10f5, 0x2000 },
-  { 0x0700, 0x10f4, 0x0000 },
-  { 0x0700, 0x10f6, 0x0000 },
-  { 0x8700, 0x1101, 0x3000 },
-  { 0x9500, 0x10fb, 0x2000 },
-  { 0x0700, 0x10f8, 0x0000 },
-  { 0x0700, 0x1100, 0x0000 },
-  { 0x8700, 0x1103, 0x2000 },
-  { 0x0700, 0x1102, 0x0000 },
-  { 0x0700, 0x1104, 0x0000 },
-  { 0x8700, 0x110d, 0x4000 },
-  { 0x8700, 0x1109, 0x3000 },
-  { 0x8700, 0x1107, 0x2000 },
-  { 0x0700, 0x1106, 0x0000 },
-  { 0x0700, 0x1108, 0x0000 },
-  { 0x8700, 0x110b, 0x2000 },
-  { 0x0700, 0x110a, 0x0000 },
-  { 0x0700, 0x110c, 0x0000 },
-  { 0x8700, 0x1111, 0x3000 },
-  { 0x8700, 0x110f, 0x2000 },
-  { 0x0700, 0x110e, 0x0000 },
-  { 0x0700, 0x1110, 0x0000 },
-  { 0x8700, 0x1113, 0x2000 },
-  { 0x0700, 0x1112, 0x0000 },
-  { 0x0700, 0x1114, 0x0000 },
-  { 0x8700, 0x1125, 0x5000 },
-  { 0x8700, 0x111d, 0x4000 },
-  { 0x8700, 0x1119, 0x3000 },
-  { 0x8700, 0x1117, 0x2000 },
-  { 0x0700, 0x1116, 0x0000 },
-  { 0x0700, 0x1118, 0x0000 },
-  { 0x8700, 0x111b, 0x2000 },
-  { 0x0700, 0x111a, 0x0000 },
-  { 0x0700, 0x111c, 0x0000 },
-  { 0x8700, 0x1121, 0x3000 },
-  { 0x8700, 0x111f, 0x2000 },
-  { 0x0700, 0x111e, 0x0000 },
-  { 0x0700, 0x1120, 0x0000 },
-  { 0x8700, 0x1123, 0x2000 },
-  { 0x0700, 0x1122, 0x0000 },
-  { 0x0700, 0x1124, 0x0000 },
-  { 0x8700, 0x112d, 0x4000 },
-  { 0x8700, 0x1129, 0x3000 },
-  { 0x8700, 0x1127, 0x2000 },
-  { 0x0700, 0x1126, 0x0000 },
-  { 0x0700, 0x1128, 0x0000 },
-  { 0x8700, 0x112b, 0x2000 },
-  { 0x0700, 0x112a, 0x0000 },
-  { 0x0700, 0x112c, 0x0000 },
-  { 0x8700, 0x1131, 0x3000 },
-  { 0x8700, 0x112f, 0x2000 },
-  { 0x0700, 0x112e, 0x0000 },
-  { 0x0700, 0x1130, 0x0000 },
-  { 0x8700, 0x1133, 0x2000 },
-  { 0x0700, 0x1132, 0x0000 },
-  { 0x0700, 0x1134, 0x0000 },
-  { 0x8700, 0x1155, 0x6000 },
-  { 0x8700, 0x1145, 0x5000 },
-  { 0x8700, 0x113d, 0x4000 },
-  { 0x8700, 0x1139, 0x3000 },
-  { 0x8700, 0x1137, 0x2000 },
-  { 0x0700, 0x1136, 0x0000 },
-  { 0x0700, 0x1138, 0x0000 },
-  { 0x8700, 0x113b, 0x2000 },
-  { 0x0700, 0x113a, 0x0000 },
-  { 0x0700, 0x113c, 0x0000 },
-  { 0x8700, 0x1141, 0x3000 },
-  { 0x8700, 0x113f, 0x2000 },
-  { 0x0700, 0x113e, 0x0000 },
-  { 0x0700, 0x1140, 0x0000 },
-  { 0x8700, 0x1143, 0x2000 },
-  { 0x0700, 0x1142, 0x0000 },
-  { 0x0700, 0x1144, 0x0000 },
-  { 0x8700, 0x114d, 0x4000 },
-  { 0x8700, 0x1149, 0x3000 },
-  { 0x8700, 0x1147, 0x2000 },
-  { 0x0700, 0x1146, 0x0000 },
-  { 0x0700, 0x1148, 0x0000 },
-  { 0x8700, 0x114b, 0x2000 },
-  { 0x0700, 0x114a, 0x0000 },
-  { 0x0700, 0x114c, 0x0000 },
-  { 0x8700, 0x1151, 0x3000 },
-  { 0x8700, 0x114f, 0x2000 },
-  { 0x0700, 0x114e, 0x0000 },
-  { 0x0700, 0x1150, 0x0000 },
-  { 0x8700, 0x1153, 0x2000 },
-  { 0x0700, 0x1152, 0x0000 },
-  { 0x0700, 0x1154, 0x0000 },
-  { 0x8700, 0x116a, 0x5000 },
-  { 0x8700, 0x1162, 0x4000 },
-  { 0x8700, 0x1159, 0x3000 },
-  { 0x8700, 0x1157, 0x2000 },
-  { 0x0700, 0x1156, 0x0000 },
-  { 0x0700, 0x1158, 0x0000 },
-  { 0x8700, 0x1160, 0x2000 },
-  { 0x0700, 0x115f, 0x0000 },
-  { 0x0700, 0x1161, 0x0000 },
-  { 0x8700, 0x1166, 0x3000 },
-  { 0x8700, 0x1164, 0x2000 },
-  { 0x0700, 0x1163, 0x0000 },
-  { 0x0700, 0x1165, 0x0000 },
-  { 0x8700, 0x1168, 0x2000 },
-  { 0x0700, 0x1167, 0x0000 },
-  { 0x0700, 0x1169, 0x0000 },
-  { 0x8700, 0x1172, 0x4000 },
-  { 0x8700, 0x116e, 0x3000 },
-  { 0x8700, 0x116c, 0x2000 },
-  { 0x0700, 0x116b, 0x0000 },
-  { 0x0700, 0x116d, 0x0000 },
-  { 0x8700, 0x1170, 0x2000 },
-  { 0x0700, 0x116f, 0x0000 },
-  { 0x0700, 0x1171, 0x0000 },
-  { 0x8700, 0x1176, 0x3000 },
-  { 0x8700, 0x1174, 0x2000 },
-  { 0x0700, 0x1173, 0x0000 },
-  { 0x0700, 0x1175, 0x0000 },
-  { 0x8700, 0x1178, 0x2000 },
-  { 0x0700, 0x1177, 0x0000 },
-  { 0x0700, 0x1179, 0x0000 },
-  { 0x8700, 0x11bf, 0x7000 },
-  { 0x8700, 0x119a, 0x6000 },
-  { 0x8700, 0x118a, 0x5000 },
-  { 0x8700, 0x1182, 0x4000 },
-  { 0x8700, 0x117e, 0x3000 },
-  { 0x8700, 0x117c, 0x2000 },
-  { 0x0700, 0x117b, 0x0000 },
-  { 0x0700, 0x117d, 0x0000 },
-  { 0x8700, 0x1180, 0x2000 },
-  { 0x0700, 0x117f, 0x0000 },
-  { 0x0700, 0x1181, 0x0000 },
-  { 0x8700, 0x1186, 0x3000 },
-  { 0x8700, 0x1184, 0x2000 },
-  { 0x0700, 0x1183, 0x0000 },
-  { 0x0700, 0x1185, 0x0000 },
-  { 0x8700, 0x1188, 0x2000 },
-  { 0x0700, 0x1187, 0x0000 },
-  { 0x0700, 0x1189, 0x0000 },
-  { 0x8700, 0x1192, 0x4000 },
-  { 0x8700, 0x118e, 0x3000 },
-  { 0x8700, 0x118c, 0x2000 },
-  { 0x0700, 0x118b, 0x0000 },
-  { 0x0700, 0x118d, 0x0000 },
-  { 0x8700, 0x1190, 0x2000 },
-  { 0x0700, 0x118f, 0x0000 },
-  { 0x0700, 0x1191, 0x0000 },
-  { 0x8700, 0x1196, 0x3000 },
-  { 0x8700, 0x1194, 0x2000 },
-  { 0x0700, 0x1193, 0x0000 },
-  { 0x0700, 0x1195, 0x0000 },
-  { 0x8700, 0x1198, 0x2000 },
-  { 0x0700, 0x1197, 0x0000 },
-  { 0x0700, 0x1199, 0x0000 },
-  { 0x8700, 0x11af, 0x5000 },
-  { 0x8700, 0x11a2, 0x4000 },
-  { 0x8700, 0x119e, 0x3000 },
-  { 0x8700, 0x119c, 0x2000 },
-  { 0x0700, 0x119b, 0x0000 },
-  { 0x0700, 0x119d, 0x0000 },
-  { 0x8700, 0x11a0, 0x2000 },
-  { 0x0700, 0x119f, 0x0000 },
-  { 0x0700, 0x11a1, 0x0000 },
-  { 0x8700, 0x11ab, 0x3000 },
-  { 0x8700, 0x11a9, 0x2000 },
-  { 0x0700, 0x11a8, 0x0000 },
-  { 0x0700, 0x11aa, 0x0000 },
-  { 0x8700, 0x11ad, 0x2000 },
-  { 0x0700, 0x11ac, 0x0000 },
-  { 0x0700, 0x11ae, 0x0000 },
-  { 0x8700, 0x11b7, 0x4000 },
-  { 0x8700, 0x11b3, 0x3000 },
-  { 0x8700, 0x11b1, 0x2000 },
-  { 0x0700, 0x11b0, 0x0000 },
-  { 0x0700, 0x11b2, 0x0000 },
-  { 0x8700, 0x11b5, 0x2000 },
-  { 0x0700, 0x11b4, 0x0000 },
-  { 0x0700, 0x11b6, 0x0000 },
-  { 0x8700, 0x11bb, 0x3000 },
-  { 0x8700, 0x11b9, 0x2000 },
-  { 0x0700, 0x11b8, 0x0000 },
-  { 0x0700, 0x11ba, 0x0000 },
-  { 0x8700, 0x11bd, 0x2000 },
-  { 0x0700, 0x11bc, 0x0000 },
-  { 0x0700, 0x11be, 0x0000 },
-  { 0x8700, 0x11df, 0x6000 },
-  { 0x8700, 0x11cf, 0x5000 },
-  { 0x8700, 0x11c7, 0x4000 },
-  { 0x8700, 0x11c3, 0x3000 },
-  { 0x8700, 0x11c1, 0x2000 },
-  { 0x0700, 0x11c0, 0x0000 },
-  { 0x0700, 0x11c2, 0x0000 },
-  { 0x8700, 0x11c5, 0x2000 },
-  { 0x0700, 0x11c4, 0x0000 },
-  { 0x0700, 0x11c6, 0x0000 },
-  { 0x8700, 0x11cb, 0x3000 },
-  { 0x8700, 0x11c9, 0x2000 },
-  { 0x0700, 0x11c8, 0x0000 },
-  { 0x0700, 0x11ca, 0x0000 },
-  { 0x8700, 0x11cd, 0x2000 },
-  { 0x0700, 0x11cc, 0x0000 },
-  { 0x0700, 0x11ce, 0x0000 },
-  { 0x8700, 0x11d7, 0x4000 },
-  { 0x8700, 0x11d3, 0x3000 },
-  { 0x8700, 0x11d1, 0x2000 },
-  { 0x0700, 0x11d0, 0x0000 },
-  { 0x0700, 0x11d2, 0x0000 },
-  { 0x8700, 0x11d5, 0x2000 },
-  { 0x0700, 0x11d4, 0x0000 },
-  { 0x0700, 0x11d6, 0x0000 },
-  { 0x8700, 0x11db, 0x3000 },
-  { 0x8700, 0x11d9, 0x2000 },
-  { 0x0700, 0x11d8, 0x0000 },
-  { 0x0700, 0x11da, 0x0000 },
-  { 0x8700, 0x11dd, 0x2000 },
-  { 0x0700, 0x11dc, 0x0000 },
-  { 0x0700, 0x11de, 0x0000 },
-  { 0x8700, 0x11ef, 0x5000 },
-  { 0x8700, 0x11e7, 0x4000 },
-  { 0x8700, 0x11e3, 0x3000 },
-  { 0x8700, 0x11e1, 0x2000 },
-  { 0x0700, 0x11e0, 0x0000 },
-  { 0x0700, 0x11e2, 0x0000 },
-  { 0x8700, 0x11e5, 0x2000 },
-  { 0x0700, 0x11e4, 0x0000 },
-  { 0x0700, 0x11e6, 0x0000 },
-  { 0x8700, 0x11eb, 0x3000 },
-  { 0x8700, 0x11e9, 0x2000 },
-  { 0x0700, 0x11e8, 0x0000 },
-  { 0x0700, 0x11ea, 0x0000 },
-  { 0x8700, 0x11ed, 0x2000 },
-  { 0x0700, 0x11ec, 0x0000 },
-  { 0x0700, 0x11ee, 0x0000 },
-  { 0x8700, 0x11f7, 0x4000 },
-  { 0x8700, 0x11f3, 0x3000 },
-  { 0x8700, 0x11f1, 0x2000 },
-  { 0x0700, 0x11f0, 0x0000 },
-  { 0x0700, 0x11f2, 0x0000 },
-  { 0x8700, 0x11f5, 0x2000 },
-  { 0x0700, 0x11f4, 0x0000 },
-  { 0x0700, 0x11f6, 0x0000 },
-  { 0x8700, 0x1201, 0x3000 },
-  { 0x8700, 0x11f9, 0x2000 },
-  { 0x0700, 0x11f8, 0x0000 },
-  { 0x0700, 0x1200, 0x0000 },
-  { 0x8700, 0x1203, 0x2000 },
-  { 0x0700, 0x1202, 0x0000 },
-  { 0x0700, 0x1204, 0x0000 },
-  { 0x8700, 0x1292, 0x8000 },
-  { 0x8700, 0x1246, 0x7000 },
-  { 0x8700, 0x1226, 0x6000 },
-  { 0x8700, 0x1216, 0x5000 },
-  { 0x8700, 0x120e, 0x4000 },
-  { 0x8700, 0x120a, 0x3000 },
-  { 0x8700, 0x1208, 0x2000 },
-  { 0x0700, 0x1206, 0x0000 },
-  { 0x0700, 0x1209, 0x0000 },
-  { 0x8700, 0x120c, 0x2000 },
-  { 0x0700, 0x120b, 0x0000 },
-  { 0x0700, 0x120d, 0x0000 },
-  { 0x8700, 0x1212, 0x3000 },
-  { 0x8700, 0x1210, 0x2000 },
-  { 0x0700, 0x120f, 0x0000 },
-  { 0x0700, 0x1211, 0x0000 },
-  { 0x8700, 0x1214, 0x2000 },
-  { 0x0700, 0x1213, 0x0000 },
-  { 0x0700, 0x1215, 0x0000 },
-  { 0x8700, 0x121e, 0x4000 },
-  { 0x8700, 0x121a, 0x3000 },
-  { 0x8700, 0x1218, 0x2000 },
-  { 0x0700, 0x1217, 0x0000 },
-  { 0x0700, 0x1219, 0x0000 },
-  { 0x8700, 0x121c, 0x2000 },
-  { 0x0700, 0x121b, 0x0000 },
-  { 0x0700, 0x121d, 0x0000 },
-  { 0x8700, 0x1222, 0x3000 },
-  { 0x8700, 0x1220, 0x2000 },
-  { 0x0700, 0x121f, 0x0000 },
-  { 0x0700, 0x1221, 0x0000 },
-  { 0x8700, 0x1224, 0x2000 },
-  { 0x0700, 0x1223, 0x0000 },
-  { 0x0700, 0x1225, 0x0000 },
-  { 0x8700, 0x1236, 0x5000 },
-  { 0x8700, 0x122e, 0x4000 },
-  { 0x8700, 0x122a, 0x3000 },
-  { 0x8700, 0x1228, 0x2000 },
-  { 0x0700, 0x1227, 0x0000 },
-  { 0x0700, 0x1229, 0x0000 },
-  { 0x8700, 0x122c, 0x2000 },
-  { 0x0700, 0x122b, 0x0000 },
-  { 0x0700, 0x122d, 0x0000 },
-  { 0x8700, 0x1232, 0x3000 },
-  { 0x8700, 0x1230, 0x2000 },
-  { 0x0700, 0x122f, 0x0000 },
-  { 0x0700, 0x1231, 0x0000 },
-  { 0x8700, 0x1234, 0x2000 },
-  { 0x0700, 0x1233, 0x0000 },
-  { 0x0700, 0x1235, 0x0000 },
-  { 0x8700, 0x123e, 0x4000 },
-  { 0x8700, 0x123a, 0x3000 },
-  { 0x8700, 0x1238, 0x2000 },
-  { 0x0700, 0x1237, 0x0000 },
-  { 0x0700, 0x1239, 0x0000 },
-  { 0x8700, 0x123c, 0x2000 },
-  { 0x0700, 0x123b, 0x0000 },
-  { 0x0700, 0x123d, 0x0000 },
-  { 0x8700, 0x1242, 0x3000 },
-  { 0x8700, 0x1240, 0x2000 },
-  { 0x0700, 0x123f, 0x0000 },
-  { 0x0700, 0x1241, 0x0000 },
-  { 0x8700, 0x1244, 0x2000 },
-  { 0x0700, 0x1243, 0x0000 },
-  { 0x0700, 0x1245, 0x0000 },
-  { 0x8700, 0x126e, 0x6000 },
-  { 0x8700, 0x125c, 0x5000 },
-  { 0x8700, 0x1252, 0x4000 },
-  { 0x8700, 0x124c, 0x3000 },
-  { 0x8700, 0x124a, 0x2000 },
-  { 0x0700, 0x1248, 0x0000 },
-  { 0x0700, 0x124b, 0x0000 },
-  { 0x8700, 0x1250, 0x2000 },
-  { 0x0700, 0x124d, 0x0000 },
-  { 0x0700, 0x1251, 0x0000 },
-  { 0x8700, 0x1256, 0x3000 },
-  { 0x8700, 0x1254, 0x2000 },
-  { 0x0700, 0x1253, 0x0000 },
-  { 0x0700, 0x1255, 0x0000 },
-  { 0x8700, 0x125a, 0x2000 },
-  { 0x0700, 0x1258, 0x0000 },
-  { 0x0700, 0x125b, 0x0000 },
-  { 0x8700, 0x1266, 0x4000 },
-  { 0x8700, 0x1262, 0x3000 },
-  { 0x8700, 0x1260, 0x2000 },
-  { 0x0700, 0x125d, 0x0000 },
-  { 0x0700, 0x1261, 0x0000 },
-  { 0x8700, 0x1264, 0x2000 },
-  { 0x0700, 0x1263, 0x0000 },
-  { 0x0700, 0x1265, 0x0000 },
-  { 0x8700, 0x126a, 0x3000 },
-  { 0x8700, 0x1268, 0x2000 },
-  { 0x0700, 0x1267, 0x0000 },
-  { 0x0700, 0x1269, 0x0000 },
-  { 0x8700, 0x126c, 0x2000 },
-  { 0x0700, 0x126b, 0x0000 },
-  { 0x0700, 0x126d, 0x0000 },
-  { 0x8700, 0x127e, 0x5000 },
-  { 0x8700, 0x1276, 0x4000 },
-  { 0x8700, 0x1272, 0x3000 },
-  { 0x8700, 0x1270, 0x2000 },
-  { 0x0700, 0x126f, 0x0000 },
-  { 0x0700, 0x1271, 0x0000 },
-  { 0x8700, 0x1274, 0x2000 },
-  { 0x0700, 0x1273, 0x0000 },
-  { 0x0700, 0x1275, 0x0000 },
-  { 0x8700, 0x127a, 0x3000 },
-  { 0x8700, 0x1278, 0x2000 },
-  { 0x0700, 0x1277, 0x0000 },
-  { 0x0700, 0x1279, 0x0000 },
-  { 0x8700, 0x127c, 0x2000 },
-  { 0x0700, 0x127b, 0x0000 },
-  { 0x0700, 0x127d, 0x0000 },
-  { 0x8700, 0x1286, 0x4000 },
-  { 0x8700, 0x1282, 0x3000 },
-  { 0x8700, 0x1280, 0x2000 },
-  { 0x0700, 0x127f, 0x0000 },
-  { 0x0700, 0x1281, 0x0000 },
-  { 0x8700, 0x1284, 0x2000 },
-  { 0x0700, 0x1283, 0x0000 },
-  { 0x0700, 0x1285, 0x0000 },
-  { 0x8700, 0x128c, 0x3000 },
-  { 0x8700, 0x128a, 0x2000 },
-  { 0x0700, 0x1288, 0x0000 },
-  { 0x0700, 0x128b, 0x0000 },
-  { 0x8700, 0x1290, 0x2000 },
-  { 0x0700, 0x128d, 0x0000 },
-  { 0x0700, 0x1291, 0x0000 },
-  { 0x8700, 0x12dc, 0x7000 },
-  { 0x8700, 0x12b4, 0x6000 },
-  { 0x8700, 0x12a2, 0x5000 },
-  { 0x8700, 0x129a, 0x4000 },
-  { 0x8700, 0x1296, 0x3000 },
-  { 0x8700, 0x1294, 0x2000 },
-  { 0x0700, 0x1293, 0x0000 },
-  { 0x0700, 0x1295, 0x0000 },
-  { 0x8700, 0x1298, 0x2000 },
-  { 0x0700, 0x1297, 0x0000 },
-  { 0x0700, 0x1299, 0x0000 },
-  { 0x8700, 0x129e, 0x3000 },
-  { 0x8700, 0x129c, 0x2000 },
-  { 0x0700, 0x129b, 0x0000 },
-  { 0x0700, 0x129d, 0x0000 },
-  { 0x8700, 0x12a0, 0x2000 },
-  { 0x0700, 0x129f, 0x0000 },
-  { 0x0700, 0x12a1, 0x0000 },
-  { 0x8700, 0x12aa, 0x4000 },
-  { 0x8700, 0x12a6, 0x3000 },
-  { 0x8700, 0x12a4, 0x2000 },
-  { 0x0700, 0x12a3, 0x0000 },
-  { 0x0700, 0x12a5, 0x0000 },
-  { 0x8700, 0x12a8, 0x2000 },
-  { 0x0700, 0x12a7, 0x0000 },
-  { 0x0700, 0x12a9, 0x0000 },
-  { 0x8700, 0x12ae, 0x3000 },
-  { 0x8700, 0x12ac, 0x2000 },
-  { 0x0700, 0x12ab, 0x0000 },
-  { 0x0700, 0x12ad, 0x0000 },
-  { 0x8700, 0x12b2, 0x2000 },
-  { 0x0700, 0x12b0, 0x0000 },
-  { 0x0700, 0x12b3, 0x0000 },
-  { 0x8700, 0x12ca, 0x5000 },
-  { 0x8700, 0x12be, 0x4000 },
-  { 0x8700, 0x12ba, 0x3000 },
-  { 0x8700, 0x12b8, 0x2000 },
-  { 0x0700, 0x12b5, 0x0000 },
-  { 0x0700, 0x12b9, 0x0000 },
-  { 0x8700, 0x12bc, 0x2000 },
-  { 0x0700, 0x12bb, 0x0000 },
-  { 0x0700, 0x12bd, 0x0000 },
-  { 0x8700, 0x12c4, 0x3000 },
-  { 0x8700, 0x12c2, 0x2000 },
-  { 0x0700, 0x12c0, 0x0000 },
-  { 0x0700, 0x12c3, 0x0000 },
-  { 0x8700, 0x12c8, 0x2000 },
-  { 0x0700, 0x12c5, 0x0000 },
-  { 0x0700, 0x12c9, 0x0000 },
-  { 0x8700, 0x12d3, 0x4000 },
-  { 0x8700, 0x12ce, 0x3000 },
-  { 0x8700, 0x12cc, 0x2000 },
-  { 0x0700, 0x12cb, 0x0000 },
-  { 0x0700, 0x12cd, 0x0000 },
-  { 0x8700, 0x12d1, 0x2000 },
-  { 0x0700, 0x12d0, 0x0000 },
-  { 0x0700, 0x12d2, 0x0000 },
-  { 0x8700, 0x12d8, 0x3000 },
-  { 0x8700, 0x12d5, 0x2000 },
-  { 0x0700, 0x12d4, 0x0000 },
-  { 0x0700, 0x12d6, 0x0000 },
-  { 0x8700, 0x12da, 0x2000 },
-  { 0x0700, 0x12d9, 0x0000 },
-  { 0x0700, 0x12db, 0x0000 },
-  { 0x8700, 0x12fd, 0x6000 },
-  { 0x8700, 0x12ec, 0x5000 },
-  { 0x8700, 0x12e4, 0x4000 },
-  { 0x8700, 0x12e0, 0x3000 },
-  { 0x8700, 0x12de, 0x2000 },
-  { 0x0700, 0x12dd, 0x0000 },
-  { 0x0700, 0x12df, 0x0000 },
-  { 0x8700, 0x12e2, 0x2000 },
-  { 0x0700, 0x12e1, 0x0000 },
-  { 0x0700, 0x12e3, 0x0000 },
-  { 0x8700, 0x12e8, 0x3000 },
-  { 0x8700, 0x12e6, 0x2000 },
-  { 0x0700, 0x12e5, 0x0000 },
-  { 0x0700, 0x12e7, 0x0000 },
-  { 0x8700, 0x12ea, 0x2000 },
-  { 0x0700, 0x12e9, 0x0000 },
-  { 0x0700, 0x12eb, 0x0000 },
-  { 0x8700, 0x12f5, 0x4000 },
-  { 0x8700, 0x12f1, 0x3000 },
-  { 0x8700, 0x12ee, 0x2000 },
-  { 0x0700, 0x12ed, 0x0000 },
-  { 0x0700, 0x12f0, 0x0000 },
-  { 0x8700, 0x12f3, 0x2000 },
-  { 0x0700, 0x12f2, 0x0000 },
-  { 0x0700, 0x12f4, 0x0000 },
-  { 0x8700, 0x12f9, 0x3000 },
-  { 0x8700, 0x12f7, 0x2000 },
-  { 0x0700, 0x12f6, 0x0000 },
-  { 0x0700, 0x12f8, 0x0000 },
-  { 0x8700, 0x12fb, 0x2000 },
-  { 0x0700, 0x12fa, 0x0000 },
-  { 0x0700, 0x12fc, 0x0000 },
-  { 0x8700, 0x130d, 0x5000 },
-  { 0x8700, 0x1305, 0x4000 },
-  { 0x8700, 0x1301, 0x3000 },
-  { 0x8700, 0x12ff, 0x2000 },
-  { 0x0700, 0x12fe, 0x0000 },
-  { 0x0700, 0x1300, 0x0000 },
-  { 0x8700, 0x1303, 0x2000 },
-  { 0x0700, 0x1302, 0x0000 },
-  { 0x0700, 0x1304, 0x0000 },
-  { 0x8700, 0x1309, 0x3000 },
-  { 0x8700, 0x1307, 0x2000 },
-  { 0x0700, 0x1306, 0x0000 },
-  { 0x0700, 0x1308, 0x0000 },
-  { 0x8700, 0x130b, 0x2000 },
-  { 0x0700, 0x130a, 0x0000 },
-  { 0x0700, 0x130c, 0x0000 },
-  { 0x8700, 0x1319, 0x4000 },
-  { 0x8700, 0x1313, 0x3000 },
-  { 0x8700, 0x1310, 0x2000 },
-  { 0x0700, 0x130e, 0x0000 },
-  { 0x0700, 0x1312, 0x0000 },
-  { 0x8700, 0x1315, 0x2000 },
-  { 0x0700, 0x1314, 0x0000 },
-  { 0x0700, 0x1318, 0x0000 },
-  { 0x8700, 0x131d, 0x3000 },
-  { 0x8700, 0x131b, 0x2000 },
-  { 0x0700, 0x131a, 0x0000 },
-  { 0x0700, 0x131c, 0x0000 },
-  { 0x8700, 0x1320, 0x2000 },
-  { 0x0700, 0x131e, 0x0000 },
-  { 0x0700, 0x1321, 0x0000 },
-  { 0x8700, 0x1458, 0x9000 },
-  { 0x8700, 0x13cc, 0x8000 },
-  { 0x8d00, 0x1369, 0x7000 },
-  { 0x8700, 0x1342, 0x6000 },
-  { 0x8700, 0x1332, 0x5000 },
-  { 0x8700, 0x132a, 0x4000 },
-  { 0x8700, 0x1326, 0x3000 },
-  { 0x8700, 0x1324, 0x2000 },
-  { 0x0700, 0x1323, 0x0000 },
-  { 0x0700, 0x1325, 0x0000 },
-  { 0x8700, 0x1328, 0x2000 },
-  { 0x0700, 0x1327, 0x0000 },
-  { 0x0700, 0x1329, 0x0000 },
-  { 0x8700, 0x132e, 0x3000 },
-  { 0x8700, 0x132c, 0x2000 },
-  { 0x0700, 0x132b, 0x0000 },
-  { 0x0700, 0x132d, 0x0000 },
-  { 0x8700, 0x1330, 0x2000 },
-  { 0x0700, 0x132f, 0x0000 },
-  { 0x0700, 0x1331, 0x0000 },
-  { 0x8700, 0x133a, 0x4000 },
-  { 0x8700, 0x1336, 0x3000 },
-  { 0x8700, 0x1334, 0x2000 },
-  { 0x0700, 0x1333, 0x0000 },
-  { 0x0700, 0x1335, 0x0000 },
-  { 0x8700, 0x1338, 0x2000 },
-  { 0x0700, 0x1337, 0x0000 },
-  { 0x0700, 0x1339, 0x0000 },
-  { 0x8700, 0x133e, 0x3000 },
-  { 0x8700, 0x133c, 0x2000 },
-  { 0x0700, 0x133b, 0x0000 },
-  { 0x0700, 0x133d, 0x0000 },
-  { 0x8700, 0x1340, 0x2000 },
-  { 0x0700, 0x133f, 0x0000 },
-  { 0x0700, 0x1341, 0x0000 },
-  { 0x8700, 0x1353, 0x5000 },
-  { 0x8700, 0x134b, 0x4000 },
-  { 0x8700, 0x1346, 0x3000 },
-  { 0x8700, 0x1344, 0x2000 },
-  { 0x0700, 0x1343, 0x0000 },
-  { 0x0700, 0x1345, 0x0000 },
-  { 0x8700, 0x1349, 0x2000 },
-  { 0x0700, 0x1348, 0x0000 },
-  { 0x0700, 0x134a, 0x0000 },
-  { 0x8700, 0x134f, 0x3000 },
-  { 0x8700, 0x134d, 0x2000 },
-  { 0x0700, 0x134c, 0x0000 },
-  { 0x0700, 0x134e, 0x0000 },
-  { 0x8700, 0x1351, 0x2000 },
-  { 0x0700, 0x1350, 0x0000 },
-  { 0x0700, 0x1352, 0x0000 },
-  { 0x9500, 0x1361, 0x4000 },
-  { 0x8700, 0x1357, 0x3000 },
-  { 0x8700, 0x1355, 0x2000 },
-  { 0x0700, 0x1354, 0x0000 },
-  { 0x0700, 0x1356, 0x0000 },
-  { 0x8700, 0x1359, 0x2000 },
-  { 0x0700, 0x1358, 0x0000 },
-  { 0x0700, 0x135a, 0x0000 },
-  { 0x9500, 0x1365, 0x3000 },
-  { 0x9500, 0x1363, 0x2000 },
-  { 0x1500, 0x1362, 0x0000 },
-  { 0x1500, 0x1364, 0x0000 },
-  { 0x9500, 0x1367, 0x2000 },
-  { 0x1500, 0x1366, 0x0000 },
-  { 0x1500, 0x1368, 0x0000 },
-  { 0x8700, 0x13ac, 0x6000 },
-  { 0x8f00, 0x1379, 0x5000 },
-  { 0x8d00, 0x1371, 0x4000 },
-  { 0x8d00, 0x136d, 0x3000 },
-  { 0x8d00, 0x136b, 0x2000 },
-  { 0x0d00, 0x136a, 0x0000 },
-  { 0x0d00, 0x136c, 0x0000 },
-  { 0x8d00, 0x136f, 0x2000 },
-  { 0x0d00, 0x136e, 0x0000 },
-  { 0x0d00, 0x1370, 0x0000 },
-  { 0x8f00, 0x1375, 0x3000 },
-  { 0x8f00, 0x1373, 0x2000 },
-  { 0x0f00, 0x1372, 0x0000 },
-  { 0x0f00, 0x1374, 0x0000 },
-  { 0x8f00, 0x1377, 0x2000 },
-  { 0x0f00, 0x1376, 0x0000 },
-  { 0x0f00, 0x1378, 0x0000 },
-  { 0x8700, 0x13a4, 0x4000 },
-  { 0x8700, 0x13a0, 0x3000 },
-  { 0x8f00, 0x137b, 0x2000 },
-  { 0x0f00, 0x137a, 0x0000 },
-  { 0x0f00, 0x137c, 0x0000 },
-  { 0x8700, 0x13a2, 0x2000 },
-  { 0x0700, 0x13a1, 0x0000 },
-  { 0x0700, 0x13a3, 0x0000 },
-  { 0x8700, 0x13a8, 0x3000 },
-  { 0x8700, 0x13a6, 0x2000 },
-  { 0x0700, 0x13a5, 0x0000 },
-  { 0x0700, 0x13a7, 0x0000 },
-  { 0x8700, 0x13aa, 0x2000 },
-  { 0x0700, 0x13a9, 0x0000 },
-  { 0x0700, 0x13ab, 0x0000 },
-  { 0x8700, 0x13bc, 0x5000 },
-  { 0x8700, 0x13b4, 0x4000 },
-  { 0x8700, 0x13b0, 0x3000 },
-  { 0x8700, 0x13ae, 0x2000 },
-  { 0x0700, 0x13ad, 0x0000 },
-  { 0x0700, 0x13af, 0x0000 },
-  { 0x8700, 0x13b2, 0x2000 },
-  { 0x0700, 0x13b1, 0x0000 },
-  { 0x0700, 0x13b3, 0x0000 },
-  { 0x8700, 0x13b8, 0x3000 },
-  { 0x8700, 0x13b6, 0x2000 },
-  { 0x0700, 0x13b5, 0x0000 },
-  { 0x0700, 0x13b7, 0x0000 },
-  { 0x8700, 0x13ba, 0x2000 },
-  { 0x0700, 0x13b9, 0x0000 },
-  { 0x0700, 0x13bb, 0x0000 },
-  { 0x8700, 0x13c4, 0x4000 },
-  { 0x8700, 0x13c0, 0x3000 },
-  { 0x8700, 0x13be, 0x2000 },
-  { 0x0700, 0x13bd, 0x0000 },
-  { 0x0700, 0x13bf, 0x0000 },
-  { 0x8700, 0x13c2, 0x2000 },
-  { 0x0700, 0x13c1, 0x0000 },
-  { 0x0700, 0x13c3, 0x0000 },
-  { 0x8700, 0x13c8, 0x3000 },
-  { 0x8700, 0x13c6, 0x2000 },
-  { 0x0700, 0x13c5, 0x0000 },
-  { 0x0700, 0x13c7, 0x0000 },
-  { 0x8700, 0x13ca, 0x2000 },
-  { 0x0700, 0x13c9, 0x0000 },
-  { 0x0700, 0x13cb, 0x0000 },
-  { 0x8700, 0x1418, 0x7000 },
-  { 0x8700, 0x13ec, 0x6000 },
-  { 0x8700, 0x13dc, 0x5000 },
-  { 0x8700, 0x13d4, 0x4000 },
-  { 0x8700, 0x13d0, 0x3000 },
-  { 0x8700, 0x13ce, 0x2000 },
-  { 0x0700, 0x13cd, 0x0000 },
-  { 0x0700, 0x13cf, 0x0000 },
-  { 0x8700, 0x13d2, 0x2000 },
-  { 0x0700, 0x13d1, 0x0000 },
-  { 0x0700, 0x13d3, 0x0000 },
-  { 0x8700, 0x13d8, 0x3000 },
-  { 0x8700, 0x13d6, 0x2000 },
-  { 0x0700, 0x13d5, 0x0000 },
-  { 0x0700, 0x13d7, 0x0000 },
-  { 0x8700, 0x13da, 0x2000 },
-  { 0x0700, 0x13d9, 0x0000 },
-  { 0x0700, 0x13db, 0x0000 },
-  { 0x8700, 0x13e4, 0x4000 },
-  { 0x8700, 0x13e0, 0x3000 },
-  { 0x8700, 0x13de, 0x2000 },
-  { 0x0700, 0x13dd, 0x0000 },
-  { 0x0700, 0x13df, 0x0000 },
-  { 0x8700, 0x13e2, 0x2000 },
-  { 0x0700, 0x13e1, 0x0000 },
-  { 0x0700, 0x13e3, 0x0000 },
-  { 0x8700, 0x13e8, 0x3000 },
-  { 0x8700, 0x13e6, 0x2000 },
-  { 0x0700, 0x13e5, 0x0000 },
-  { 0x0700, 0x13e7, 0x0000 },
-  { 0x8700, 0x13ea, 0x2000 },
-  { 0x0700, 0x13e9, 0x0000 },
-  { 0x0700, 0x13eb, 0x0000 },
-  { 0x8700, 0x1408, 0x5000 },
-  { 0x8700, 0x13f4, 0x4000 },
-  { 0x8700, 0x13f0, 0x3000 },
-  { 0x8700, 0x13ee, 0x2000 },
-  { 0x0700, 0x13ed, 0x0000 },
-  { 0x0700, 0x13ef, 0x0000 },
-  { 0x8700, 0x13f2, 0x2000 },
-  { 0x0700, 0x13f1, 0x0000 },
-  { 0x0700, 0x13f3, 0x0000 },
-  { 0x8700, 0x1404, 0x3000 },
-  { 0x8700, 0x1402, 0x2000 },
-  { 0x0700, 0x1401, 0x0000 },
-  { 0x0700, 0x1403, 0x0000 },
-  { 0x8700, 0x1406, 0x2000 },
-  { 0x0700, 0x1405, 0x0000 },
-  { 0x0700, 0x1407, 0x0000 },
-  { 0x8700, 0x1410, 0x4000 },
-  { 0x8700, 0x140c, 0x3000 },
-  { 0x8700, 0x140a, 0x2000 },
-  { 0x0700, 0x1409, 0x0000 },
-  { 0x0700, 0x140b, 0x0000 },
-  { 0x8700, 0x140e, 0x2000 },
-  { 0x0700, 0x140d, 0x0000 },
-  { 0x0700, 0x140f, 0x0000 },
-  { 0x8700, 0x1414, 0x3000 },
-  { 0x8700, 0x1412, 0x2000 },
-  { 0x0700, 0x1411, 0x0000 },
-  { 0x0700, 0x1413, 0x0000 },
-  { 0x8700, 0x1416, 0x2000 },
-  { 0x0700, 0x1415, 0x0000 },
-  { 0x0700, 0x1417, 0x0000 },
-  { 0x8700, 0x1438, 0x6000 },
-  { 0x8700, 0x1428, 0x5000 },
-  { 0x8700, 0x1420, 0x4000 },
-  { 0x8700, 0x141c, 0x3000 },
-  { 0x8700, 0x141a, 0x2000 },
-  { 0x0700, 0x1419, 0x0000 },
-  { 0x0700, 0x141b, 0x0000 },
-  { 0x8700, 0x141e, 0x2000 },
-  { 0x0700, 0x141d, 0x0000 },
-  { 0x0700, 0x141f, 0x0000 },
-  { 0x8700, 0x1424, 0x3000 },
-  { 0x8700, 0x1422, 0x2000 },
-  { 0x0700, 0x1421, 0x0000 },
-  { 0x0700, 0x1423, 0x0000 },
-  { 0x8700, 0x1426, 0x2000 },
-  { 0x0700, 0x1425, 0x0000 },
-  { 0x0700, 0x1427, 0x0000 },
-  { 0x8700, 0x1430, 0x4000 },
-  { 0x8700, 0x142c, 0x3000 },
-  { 0x8700, 0x142a, 0x2000 },
-  { 0x0700, 0x1429, 0x0000 },
-  { 0x0700, 0x142b, 0x0000 },
-  { 0x8700, 0x142e, 0x2000 },
-  { 0x0700, 0x142d, 0x0000 },
-  { 0x0700, 0x142f, 0x0000 },
-  { 0x8700, 0x1434, 0x3000 },
-  { 0x8700, 0x1432, 0x2000 },
-  { 0x0700, 0x1431, 0x0000 },
-  { 0x0700, 0x1433, 0x0000 },
-  { 0x8700, 0x1436, 0x2000 },
-  { 0x0700, 0x1435, 0x0000 },
-  { 0x0700, 0x1437, 0x0000 },
-  { 0x8700, 0x1448, 0x5000 },
-  { 0x8700, 0x1440, 0x4000 },
-  { 0x8700, 0x143c, 0x3000 },
-  { 0x8700, 0x143a, 0x2000 },
-  { 0x0700, 0x1439, 0x0000 },
-  { 0x0700, 0x143b, 0x0000 },
-  { 0x8700, 0x143e, 0x2000 },
-  { 0x0700, 0x143d, 0x0000 },
-  { 0x0700, 0x143f, 0x0000 },
-  { 0x8700, 0x1444, 0x3000 },
-  { 0x8700, 0x1442, 0x2000 },
-  { 0x0700, 0x1441, 0x0000 },
-  { 0x0700, 0x1443, 0x0000 },
-  { 0x8700, 0x1446, 0x2000 },
-  { 0x0700, 0x1445, 0x0000 },
-  { 0x0700, 0x1447, 0x0000 },
-  { 0x8700, 0x1450, 0x4000 },
-  { 0x8700, 0x144c, 0x3000 },
-  { 0x8700, 0x144a, 0x2000 },
-  { 0x0700, 0x1449, 0x0000 },
-  { 0x0700, 0x144b, 0x0000 },
-  { 0x8700, 0x144e, 0x2000 },
-  { 0x0700, 0x144d, 0x0000 },
-  { 0x0700, 0x144f, 0x0000 },
-  { 0x8700, 0x1454, 0x3000 },
-  { 0x8700, 0x1452, 0x2000 },
-  { 0x0700, 0x1451, 0x0000 },
-  { 0x0700, 0x1453, 0x0000 },
-  { 0x8700, 0x1456, 0x2000 },
-  { 0x0700, 0x1455, 0x0000 },
-  { 0x0700, 0x1457, 0x0000 },
-  { 0x8700, 0x14d8, 0x8000 },
-  { 0x8700, 0x1498, 0x7000 },
-  { 0x8700, 0x1478, 0x6000 },
-  { 0x8700, 0x1468, 0x5000 },
-  { 0x8700, 0x1460, 0x4000 },
-  { 0x8700, 0x145c, 0x3000 },
-  { 0x8700, 0x145a, 0x2000 },
-  { 0x0700, 0x1459, 0x0000 },
-  { 0x0700, 0x145b, 0x0000 },
-  { 0x8700, 0x145e, 0x2000 },
-  { 0x0700, 0x145d, 0x0000 },
-  { 0x0700, 0x145f, 0x0000 },
-  { 0x8700, 0x1464, 0x3000 },
-  { 0x8700, 0x1462, 0x2000 },
-  { 0x0700, 0x1461, 0x0000 },
-  { 0x0700, 0x1463, 0x0000 },
-  { 0x8700, 0x1466, 0x2000 },
-  { 0x0700, 0x1465, 0x0000 },
-  { 0x0700, 0x1467, 0x0000 },
-  { 0x8700, 0x1470, 0x4000 },
-  { 0x8700, 0x146c, 0x3000 },
-  { 0x8700, 0x146a, 0x2000 },
-  { 0x0700, 0x1469, 0x0000 },
-  { 0x0700, 0x146b, 0x0000 },
-  { 0x8700, 0x146e, 0x2000 },
-  { 0x0700, 0x146d, 0x0000 },
-  { 0x0700, 0x146f, 0x0000 },
-  { 0x8700, 0x1474, 0x3000 },
-  { 0x8700, 0x1472, 0x2000 },
-  { 0x0700, 0x1471, 0x0000 },
-  { 0x0700, 0x1473, 0x0000 },
-  { 0x8700, 0x1476, 0x2000 },
-  { 0x0700, 0x1475, 0x0000 },
-  { 0x0700, 0x1477, 0x0000 },
-  { 0x8700, 0x1488, 0x5000 },
-  { 0x8700, 0x1480, 0x4000 },
-  { 0x8700, 0x147c, 0x3000 },
-  { 0x8700, 0x147a, 0x2000 },
-  { 0x0700, 0x1479, 0x0000 },
-  { 0x0700, 0x147b, 0x0000 },
-  { 0x8700, 0x147e, 0x2000 },
-  { 0x0700, 0x147d, 0x0000 },
-  { 0x0700, 0x147f, 0x0000 },
-  { 0x8700, 0x1484, 0x3000 },
-  { 0x8700, 0x1482, 0x2000 },
-  { 0x0700, 0x1481, 0x0000 },
-  { 0x0700, 0x1483, 0x0000 },
-  { 0x8700, 0x1486, 0x2000 },
-  { 0x0700, 0x1485, 0x0000 },
-  { 0x0700, 0x1487, 0x0000 },
-  { 0x8700, 0x1490, 0x4000 },
-  { 0x8700, 0x148c, 0x3000 },
-  { 0x8700, 0x148a, 0x2000 },
-  { 0x0700, 0x1489, 0x0000 },
-  { 0x0700, 0x148b, 0x0000 },
-  { 0x8700, 0x148e, 0x2000 },
-  { 0x0700, 0x148d, 0x0000 },
-  { 0x0700, 0x148f, 0x0000 },
-  { 0x8700, 0x1494, 0x3000 },
-  { 0x8700, 0x1492, 0x2000 },
-  { 0x0700, 0x1491, 0x0000 },
-  { 0x0700, 0x1493, 0x0000 },
-  { 0x8700, 0x1496, 0x2000 },
-  { 0x0700, 0x1495, 0x0000 },
-  { 0x0700, 0x1497, 0x0000 },
-  { 0x8700, 0x14b8, 0x6000 },
-  { 0x8700, 0x14a8, 0x5000 },
-  { 0x8700, 0x14a0, 0x4000 },
-  { 0x8700, 0x149c, 0x3000 },
-  { 0x8700, 0x149a, 0x2000 },
-  { 0x0700, 0x1499, 0x0000 },
-  { 0x0700, 0x149b, 0x0000 },
-  { 0x8700, 0x149e, 0x2000 },
-  { 0x0700, 0x149d, 0x0000 },
-  { 0x0700, 0x149f, 0x0000 },
-  { 0x8700, 0x14a4, 0x3000 },
-  { 0x8700, 0x14a2, 0x2000 },
-  { 0x0700, 0x14a1, 0x0000 },
-  { 0x0700, 0x14a3, 0x0000 },
-  { 0x8700, 0x14a6, 0x2000 },
-  { 0x0700, 0x14a5, 0x0000 },
-  { 0x0700, 0x14a7, 0x0000 },
-  { 0x8700, 0x14b0, 0x4000 },
-  { 0x8700, 0x14ac, 0x3000 },
-  { 0x8700, 0x14aa, 0x2000 },
-  { 0x0700, 0x14a9, 0x0000 },
-  { 0x0700, 0x14ab, 0x0000 },
-  { 0x8700, 0x14ae, 0x2000 },
-  { 0x0700, 0x14ad, 0x0000 },
-  { 0x0700, 0x14af, 0x0000 },
-  { 0x8700, 0x14b4, 0x3000 },
-  { 0x8700, 0x14b2, 0x2000 },
-  { 0x0700, 0x14b1, 0x0000 },
-  { 0x0700, 0x14b3, 0x0000 },
-  { 0x8700, 0x14b6, 0x2000 },
-  { 0x0700, 0x14b5, 0x0000 },
-  { 0x0700, 0x14b7, 0x0000 },
-  { 0x8700, 0x14c8, 0x5000 },
-  { 0x8700, 0x14c0, 0x4000 },
-  { 0x8700, 0x14bc, 0x3000 },
-  { 0x8700, 0x14ba, 0x2000 },
-  { 0x0700, 0x14b9, 0x0000 },
-  { 0x0700, 0x14bb, 0x0000 },
-  { 0x8700, 0x14be, 0x2000 },
-  { 0x0700, 0x14bd, 0x0000 },
-  { 0x0700, 0x14bf, 0x0000 },
-  { 0x8700, 0x14c4, 0x3000 },
-  { 0x8700, 0x14c2, 0x2000 },
-  { 0x0700, 0x14c1, 0x0000 },
-  { 0x0700, 0x14c3, 0x0000 },
-  { 0x8700, 0x14c6, 0x2000 },
-  { 0x0700, 0x14c5, 0x0000 },
-  { 0x0700, 0x14c7, 0x0000 },
-  { 0x8700, 0x14d0, 0x4000 },
-  { 0x8700, 0x14cc, 0x3000 },
-  { 0x8700, 0x14ca, 0x2000 },
-  { 0x0700, 0x14c9, 0x0000 },
-  { 0x0700, 0x14cb, 0x0000 },
-  { 0x8700, 0x14ce, 0x2000 },
-  { 0x0700, 0x14cd, 0x0000 },
-  { 0x0700, 0x14cf, 0x0000 },
-  { 0x8700, 0x14d4, 0x3000 },
-  { 0x8700, 0x14d2, 0x2000 },
-  { 0x0700, 0x14d1, 0x0000 },
-  { 0x0700, 0x14d3, 0x0000 },
-  { 0x8700, 0x14d6, 0x2000 },
-  { 0x0700, 0x14d5, 0x0000 },
-  { 0x0700, 0x14d7, 0x0000 },
-  { 0x8700, 0x1518, 0x7000 },
-  { 0x8700, 0x14f8, 0x6000 },
-  { 0x8700, 0x14e8, 0x5000 },
-  { 0x8700, 0x14e0, 0x4000 },
-  { 0x8700, 0x14dc, 0x3000 },
-  { 0x8700, 0x14da, 0x2000 },
-  { 0x0700, 0x14d9, 0x0000 },
-  { 0x0700, 0x14db, 0x0000 },
-  { 0x8700, 0x14de, 0x2000 },
-  { 0x0700, 0x14dd, 0x0000 },
-  { 0x0700, 0x14df, 0x0000 },
-  { 0x8700, 0x14e4, 0x3000 },
-  { 0x8700, 0x14e2, 0x2000 },
-  { 0x0700, 0x14e1, 0x0000 },
-  { 0x0700, 0x14e3, 0x0000 },
-  { 0x8700, 0x14e6, 0x2000 },
-  { 0x0700, 0x14e5, 0x0000 },
-  { 0x0700, 0x14e7, 0x0000 },
-  { 0x8700, 0x14f0, 0x4000 },
-  { 0x8700, 0x14ec, 0x3000 },
-  { 0x8700, 0x14ea, 0x2000 },
-  { 0x0700, 0x14e9, 0x0000 },
-  { 0x0700, 0x14eb, 0x0000 },
-  { 0x8700, 0x14ee, 0x2000 },
-  { 0x0700, 0x14ed, 0x0000 },
-  { 0x0700, 0x14ef, 0x0000 },
-  { 0x8700, 0x14f4, 0x3000 },
-  { 0x8700, 0x14f2, 0x2000 },
-  { 0x0700, 0x14f1, 0x0000 },
-  { 0x0700, 0x14f3, 0x0000 },
-  { 0x8700, 0x14f6, 0x2000 },
-  { 0x0700, 0x14f5, 0x0000 },
-  { 0x0700, 0x14f7, 0x0000 },
-  { 0x8700, 0x1508, 0x5000 },
-  { 0x8700, 0x1500, 0x4000 },
-  { 0x8700, 0x14fc, 0x3000 },
-  { 0x8700, 0x14fa, 0x2000 },
-  { 0x0700, 0x14f9, 0x0000 },
-  { 0x0700, 0x14fb, 0x0000 },
-  { 0x8700, 0x14fe, 0x2000 },
-  { 0x0700, 0x14fd, 0x0000 },
-  { 0x0700, 0x14ff, 0x0000 },
-  { 0x8700, 0x1504, 0x3000 },
-  { 0x8700, 0x1502, 0x2000 },
-  { 0x0700, 0x1501, 0x0000 },
-  { 0x0700, 0x1503, 0x0000 },
-  { 0x8700, 0x1506, 0x2000 },
-  { 0x0700, 0x1505, 0x0000 },
-  { 0x0700, 0x1507, 0x0000 },
-  { 0x8700, 0x1510, 0x4000 },
-  { 0x8700, 0x150c, 0x3000 },
-  { 0x8700, 0x150a, 0x2000 },
-  { 0x0700, 0x1509, 0x0000 },
-  { 0x0700, 0x150b, 0x0000 },
-  { 0x8700, 0x150e, 0x2000 },
-  { 0x0700, 0x150d, 0x0000 },
-  { 0x0700, 0x150f, 0x0000 },
-  { 0x8700, 0x1514, 0x3000 },
-  { 0x8700, 0x1512, 0x2000 },
-  { 0x0700, 0x1511, 0x0000 },
-  { 0x0700, 0x1513, 0x0000 },
-  { 0x8700, 0x1516, 0x2000 },
-  { 0x0700, 0x1515, 0x0000 },
-  { 0x0700, 0x1517, 0x0000 },
-  { 0x8700, 0x1538, 0x6000 },
-  { 0x8700, 0x1528, 0x5000 },
-  { 0x8700, 0x1520, 0x4000 },
-  { 0x8700, 0x151c, 0x3000 },
-  { 0x8700, 0x151a, 0x2000 },
-  { 0x0700, 0x1519, 0x0000 },
-  { 0x0700, 0x151b, 0x0000 },
-  { 0x8700, 0x151e, 0x2000 },
-  { 0x0700, 0x151d, 0x0000 },
-  { 0x0700, 0x151f, 0x0000 },
-  { 0x8700, 0x1524, 0x3000 },
-  { 0x8700, 0x1522, 0x2000 },
-  { 0x0700, 0x1521, 0x0000 },
-  { 0x0700, 0x1523, 0x0000 },
-  { 0x8700, 0x1526, 0x2000 },
-  { 0x0700, 0x1525, 0x0000 },
-  { 0x0700, 0x1527, 0x0000 },
-  { 0x8700, 0x1530, 0x4000 },
-  { 0x8700, 0x152c, 0x3000 },
-  { 0x8700, 0x152a, 0x2000 },
-  { 0x0700, 0x1529, 0x0000 },
-  { 0x0700, 0x152b, 0x0000 },
-  { 0x8700, 0x152e, 0x2000 },
-  { 0x0700, 0x152d, 0x0000 },
-  { 0x0700, 0x152f, 0x0000 },
-  { 0x8700, 0x1534, 0x3000 },
-  { 0x8700, 0x1532, 0x2000 },
-  { 0x0700, 0x1531, 0x0000 },
-  { 0x0700, 0x1533, 0x0000 },
-  { 0x8700, 0x1536, 0x2000 },
-  { 0x0700, 0x1535, 0x0000 },
-  { 0x0700, 0x1537, 0x0000 },
-  { 0x8700, 0x1548, 0x5000 },
-  { 0x8700, 0x1540, 0x4000 },
-  { 0x8700, 0x153c, 0x3000 },
-  { 0x8700, 0x153a, 0x2000 },
-  { 0x0700, 0x1539, 0x0000 },
-  { 0x0700, 0x153b, 0x0000 },
-  { 0x8700, 0x153e, 0x2000 },
-  { 0x0700, 0x153d, 0x0000 },
-  { 0x0700, 0x153f, 0x0000 },
-  { 0x8700, 0x1544, 0x3000 },
-  { 0x8700, 0x1542, 0x2000 },
-  { 0x0700, 0x1541, 0x0000 },
-  { 0x0700, 0x1543, 0x0000 },
-  { 0x8700, 0x1546, 0x2000 },
-  { 0x0700, 0x1545, 0x0000 },
-  { 0x0700, 0x1547, 0x0000 },
-  { 0x8700, 0x1550, 0x4000 },
-  { 0x8700, 0x154c, 0x3000 },
-  { 0x8700, 0x154a, 0x2000 },
-  { 0x0700, 0x1549, 0x0000 },
-  { 0x0700, 0x154b, 0x0000 },
-  { 0x8700, 0x154e, 0x2000 },
-  { 0x0700, 0x154d, 0x0000 },
-  { 0x0700, 0x154f, 0x0000 },
-  { 0x8700, 0x1554, 0x3000 },
-  { 0x8700, 0x1552, 0x2000 },
-  { 0x0700, 0x1551, 0x0000 },
-  { 0x0700, 0x1553, 0x0000 },
-  { 0x8700, 0x1556, 0x2000 },
-  { 0x0700, 0x1555, 0x0000 },
-  { 0x0700, 0x1557, 0x0000 },
-  { 0x9900, 0x22ae, 0xc000 },
-  { 0x8900, 0x1e24, 0xb001 },
-  { 0x8700, 0x17a2, 0xa000 },
-  { 0x8700, 0x1658, 0x9000 },
-  { 0x8700, 0x15d8, 0x8000 },
-  { 0x8700, 0x1598, 0x7000 },
-  { 0x8700, 0x1578, 0x6000 },
-  { 0x8700, 0x1568, 0x5000 },
-  { 0x8700, 0x1560, 0x4000 },
-  { 0x8700, 0x155c, 0x3000 },
-  { 0x8700, 0x155a, 0x2000 },
-  { 0x0700, 0x1559, 0x0000 },
-  { 0x0700, 0x155b, 0x0000 },
-  { 0x8700, 0x155e, 0x2000 },
-  { 0x0700, 0x155d, 0x0000 },
-  { 0x0700, 0x155f, 0x0000 },
-  { 0x8700, 0x1564, 0x3000 },
-  { 0x8700, 0x1562, 0x2000 },
-  { 0x0700, 0x1561, 0x0000 },
-  { 0x0700, 0x1563, 0x0000 },
-  { 0x8700, 0x1566, 0x2000 },
-  { 0x0700, 0x1565, 0x0000 },
-  { 0x0700, 0x1567, 0x0000 },
-  { 0x8700, 0x1570, 0x4000 },
-  { 0x8700, 0x156c, 0x3000 },
-  { 0x8700, 0x156a, 0x2000 },
-  { 0x0700, 0x1569, 0x0000 },
-  { 0x0700, 0x156b, 0x0000 },
-  { 0x8700, 0x156e, 0x2000 },
-  { 0x0700, 0x156d, 0x0000 },
-  { 0x0700, 0x156f, 0x0000 },
-  { 0x8700, 0x1574, 0x3000 },
-  { 0x8700, 0x1572, 0x2000 },
-  { 0x0700, 0x1571, 0x0000 },
-  { 0x0700, 0x1573, 0x0000 },
-  { 0x8700, 0x1576, 0x2000 },
-  { 0x0700, 0x1575, 0x0000 },
-  { 0x0700, 0x1577, 0x0000 },
-  { 0x8700, 0x1588, 0x5000 },
-  { 0x8700, 0x1580, 0x4000 },
-  { 0x8700, 0x157c, 0x3000 },
-  { 0x8700, 0x157a, 0x2000 },
-  { 0x0700, 0x1579, 0x0000 },
-  { 0x0700, 0x157b, 0x0000 },
-  { 0x8700, 0x157e, 0x2000 },
-  { 0x0700, 0x157d, 0x0000 },
-  { 0x0700, 0x157f, 0x0000 },
-  { 0x8700, 0x1584, 0x3000 },
-  { 0x8700, 0x1582, 0x2000 },
-  { 0x0700, 0x1581, 0x0000 },
-  { 0x0700, 0x1583, 0x0000 },
-  { 0x8700, 0x1586, 0x2000 },
-  { 0x0700, 0x1585, 0x0000 },
-  { 0x0700, 0x1587, 0x0000 },
-  { 0x8700, 0x1590, 0x4000 },
-  { 0x8700, 0x158c, 0x3000 },
-  { 0x8700, 0x158a, 0x2000 },
-  { 0x0700, 0x1589, 0x0000 },
-  { 0x0700, 0x158b, 0x0000 },
-  { 0x8700, 0x158e, 0x2000 },
-  { 0x0700, 0x158d, 0x0000 },
-  { 0x0700, 0x158f, 0x0000 },
-  { 0x8700, 0x1594, 0x3000 },
-  { 0x8700, 0x1592, 0x2000 },
-  { 0x0700, 0x1591, 0x0000 },
-  { 0x0700, 0x1593, 0x0000 },
-  { 0x8700, 0x1596, 0x2000 },
-  { 0x0700, 0x1595, 0x0000 },
-  { 0x0700, 0x1597, 0x0000 },
-  { 0x8700, 0x15b8, 0x6000 },
-  { 0x8700, 0x15a8, 0x5000 },
-  { 0x8700, 0x15a0, 0x4000 },
-  { 0x8700, 0x159c, 0x3000 },
-  { 0x8700, 0x159a, 0x2000 },
-  { 0x0700, 0x1599, 0x0000 },
-  { 0x0700, 0x159b, 0x0000 },
-  { 0x8700, 0x159e, 0x2000 },
-  { 0x0700, 0x159d, 0x0000 },
-  { 0x0700, 0x159f, 0x0000 },
-  { 0x8700, 0x15a4, 0x3000 },
-  { 0x8700, 0x15a2, 0x2000 },
-  { 0x0700, 0x15a1, 0x0000 },
-  { 0x0700, 0x15a3, 0x0000 },
-  { 0x8700, 0x15a6, 0x2000 },
-  { 0x0700, 0x15a5, 0x0000 },
-  { 0x0700, 0x15a7, 0x0000 },
-  { 0x8700, 0x15b0, 0x4000 },
-  { 0x8700, 0x15ac, 0x3000 },
-  { 0x8700, 0x15aa, 0x2000 },
-  { 0x0700, 0x15a9, 0x0000 },
-  { 0x0700, 0x15ab, 0x0000 },
-  { 0x8700, 0x15ae, 0x2000 },
-  { 0x0700, 0x15ad, 0x0000 },
-  { 0x0700, 0x15af, 0x0000 },
-  { 0x8700, 0x15b4, 0x3000 },
-  { 0x8700, 0x15b2, 0x2000 },
-  { 0x0700, 0x15b1, 0x0000 },
-  { 0x0700, 0x15b3, 0x0000 },
-  { 0x8700, 0x15b6, 0x2000 },
-  { 0x0700, 0x15b5, 0x0000 },
-  { 0x0700, 0x15b7, 0x0000 },
-  { 0x8700, 0x15c8, 0x5000 },
-  { 0x8700, 0x15c0, 0x4000 },
-  { 0x8700, 0x15bc, 0x3000 },
-  { 0x8700, 0x15ba, 0x2000 },
-  { 0x0700, 0x15b9, 0x0000 },
-  { 0x0700, 0x15bb, 0x0000 },
-  { 0x8700, 0x15be, 0x2000 },
-  { 0x0700, 0x15bd, 0x0000 },
-  { 0x0700, 0x15bf, 0x0000 },
-  { 0x8700, 0x15c4, 0x3000 },
-  { 0x8700, 0x15c2, 0x2000 },
-  { 0x0700, 0x15c1, 0x0000 },
-  { 0x0700, 0x15c3, 0x0000 },
-  { 0x8700, 0x15c6, 0x2000 },
-  { 0x0700, 0x15c5, 0x0000 },
-  { 0x0700, 0x15c7, 0x0000 },
-  { 0x8700, 0x15d0, 0x4000 },
-  { 0x8700, 0x15cc, 0x3000 },
-  { 0x8700, 0x15ca, 0x2000 },
-  { 0x0700, 0x15c9, 0x0000 },
-  { 0x0700, 0x15cb, 0x0000 },
-  { 0x8700, 0x15ce, 0x2000 },
-  { 0x0700, 0x15cd, 0x0000 },
-  { 0x0700, 0x15cf, 0x0000 },
-  { 0x8700, 0x15d4, 0x3000 },
-  { 0x8700, 0x15d2, 0x2000 },
-  { 0x0700, 0x15d1, 0x0000 },
-  { 0x0700, 0x15d3, 0x0000 },
-  { 0x8700, 0x15d6, 0x2000 },
-  { 0x0700, 0x15d5, 0x0000 },
-  { 0x0700, 0x15d7, 0x0000 },
-  { 0x8700, 0x1618, 0x7000 },
-  { 0x8700, 0x15f8, 0x6000 },
-  { 0x8700, 0x15e8, 0x5000 },
-  { 0x8700, 0x15e0, 0x4000 },
-  { 0x8700, 0x15dc, 0x3000 },
-  { 0x8700, 0x15da, 0x2000 },
-  { 0x0700, 0x15d9, 0x0000 },
-  { 0x0700, 0x15db, 0x0000 },
-  { 0x8700, 0x15de, 0x2000 },
-  { 0x0700, 0x15dd, 0x0000 },
-  { 0x0700, 0x15df, 0x0000 },
-  { 0x8700, 0x15e4, 0x3000 },
-  { 0x8700, 0x15e2, 0x2000 },
-  { 0x0700, 0x15e1, 0x0000 },
-  { 0x0700, 0x15e3, 0x0000 },
-  { 0x8700, 0x15e6, 0x2000 },
-  { 0x0700, 0x15e5, 0x0000 },
-  { 0x0700, 0x15e7, 0x0000 },
-  { 0x8700, 0x15f0, 0x4000 },
-  { 0x8700, 0x15ec, 0x3000 },
-  { 0x8700, 0x15ea, 0x2000 },
-  { 0x0700, 0x15e9, 0x0000 },
-  { 0x0700, 0x15eb, 0x0000 },
-  { 0x8700, 0x15ee, 0x2000 },
-  { 0x0700, 0x15ed, 0x0000 },
-  { 0x0700, 0x15ef, 0x0000 },
-  { 0x8700, 0x15f4, 0x3000 },
-  { 0x8700, 0x15f2, 0x2000 },
-  { 0x0700, 0x15f1, 0x0000 },
-  { 0x0700, 0x15f3, 0x0000 },
-  { 0x8700, 0x15f6, 0x2000 },
-  { 0x0700, 0x15f5, 0x0000 },
-  { 0x0700, 0x15f7, 0x0000 },
-  { 0x8700, 0x1608, 0x5000 },
-  { 0x8700, 0x1600, 0x4000 },
-  { 0x8700, 0x15fc, 0x3000 },
-  { 0x8700, 0x15fa, 0x2000 },
-  { 0x0700, 0x15f9, 0x0000 },
-  { 0x0700, 0x15fb, 0x0000 },
-  { 0x8700, 0x15fe, 0x2000 },
-  { 0x0700, 0x15fd, 0x0000 },
-  { 0x0700, 0x15ff, 0x0000 },
-  { 0x8700, 0x1604, 0x3000 },
-  { 0x8700, 0x1602, 0x2000 },
-  { 0x0700, 0x1601, 0x0000 },
-  { 0x0700, 0x1603, 0x0000 },
-  { 0x8700, 0x1606, 0x2000 },
-  { 0x0700, 0x1605, 0x0000 },
-  { 0x0700, 0x1607, 0x0000 },
-  { 0x8700, 0x1610, 0x4000 },
-  { 0x8700, 0x160c, 0x3000 },
-  { 0x8700, 0x160a, 0x2000 },
-  { 0x0700, 0x1609, 0x0000 },
-  { 0x0700, 0x160b, 0x0000 },
-  { 0x8700, 0x160e, 0x2000 },
-  { 0x0700, 0x160d, 0x0000 },
-  { 0x0700, 0x160f, 0x0000 },
-  { 0x8700, 0x1614, 0x3000 },
-  { 0x8700, 0x1612, 0x2000 },
-  { 0x0700, 0x1611, 0x0000 },
-  { 0x0700, 0x1613, 0x0000 },
-  { 0x8700, 0x1616, 0x2000 },
-  { 0x0700, 0x1615, 0x0000 },
-  { 0x0700, 0x1617, 0x0000 },
-  { 0x8700, 0x1638, 0x6000 },
-  { 0x8700, 0x1628, 0x5000 },
-  { 0x8700, 0x1620, 0x4000 },
-  { 0x8700, 0x161c, 0x3000 },
-  { 0x8700, 0x161a, 0x2000 },
-  { 0x0700, 0x1619, 0x0000 },
-  { 0x0700, 0x161b, 0x0000 },
-  { 0x8700, 0x161e, 0x2000 },
-  { 0x0700, 0x161d, 0x0000 },
-  { 0x0700, 0x161f, 0x0000 },
-  { 0x8700, 0x1624, 0x3000 },
-  { 0x8700, 0x1622, 0x2000 },
-  { 0x0700, 0x1621, 0x0000 },
-  { 0x0700, 0x1623, 0x0000 },
-  { 0x8700, 0x1626, 0x2000 },
-  { 0x0700, 0x1625, 0x0000 },
-  { 0x0700, 0x1627, 0x0000 },
-  { 0x8700, 0x1630, 0x4000 },
-  { 0x8700, 0x162c, 0x3000 },
-  { 0x8700, 0x162a, 0x2000 },
-  { 0x0700, 0x1629, 0x0000 },
-  { 0x0700, 0x162b, 0x0000 },
-  { 0x8700, 0x162e, 0x2000 },
-  { 0x0700, 0x162d, 0x0000 },
-  { 0x0700, 0x162f, 0x0000 },
-  { 0x8700, 0x1634, 0x3000 },
-  { 0x8700, 0x1632, 0x2000 },
-  { 0x0700, 0x1631, 0x0000 },
-  { 0x0700, 0x1633, 0x0000 },
-  { 0x8700, 0x1636, 0x2000 },
-  { 0x0700, 0x1635, 0x0000 },
-  { 0x0700, 0x1637, 0x0000 },
-  { 0x8700, 0x1648, 0x5000 },
-  { 0x8700, 0x1640, 0x4000 },
-  { 0x8700, 0x163c, 0x3000 },
-  { 0x8700, 0x163a, 0x2000 },
-  { 0x0700, 0x1639, 0x0000 },
-  { 0x0700, 0x163b, 0x0000 },
-  { 0x8700, 0x163e, 0x2000 },
-  { 0x0700, 0x163d, 0x0000 },
-  { 0x0700, 0x163f, 0x0000 },
-  { 0x8700, 0x1644, 0x3000 },
-  { 0x8700, 0x1642, 0x2000 },
-  { 0x0700, 0x1641, 0x0000 },
-  { 0x0700, 0x1643, 0x0000 },
-  { 0x8700, 0x1646, 0x2000 },
-  { 0x0700, 0x1645, 0x0000 },
-  { 0x0700, 0x1647, 0x0000 },
-  { 0x8700, 0x1650, 0x4000 },
-  { 0x8700, 0x164c, 0x3000 },
-  { 0x8700, 0x164a, 0x2000 },
-  { 0x0700, 0x1649, 0x0000 },
-  { 0x0700, 0x164b, 0x0000 },
-  { 0x8700, 0x164e, 0x2000 },
-  { 0x0700, 0x164d, 0x0000 },
-  { 0x0700, 0x164f, 0x0000 },
-  { 0x8700, 0x1654, 0x3000 },
-  { 0x8700, 0x1652, 0x2000 },
-  { 0x0700, 0x1651, 0x0000 },
-  { 0x0700, 0x1653, 0x0000 },
-  { 0x8700, 0x1656, 0x2000 },
-  { 0x0700, 0x1655, 0x0000 },
-  { 0x0700, 0x1657, 0x0000 },
-  { 0x8700, 0x16e4, 0x8000 },
-  { 0x8700, 0x16a4, 0x7000 },
-  { 0x8700, 0x1681, 0x6000 },
-  { 0x8700, 0x1668, 0x5000 },
-  { 0x8700, 0x1660, 0x4000 },
-  { 0x8700, 0x165c, 0x3000 },
-  { 0x8700, 0x165a, 0x2000 },
-  { 0x0700, 0x1659, 0x0000 },
-  { 0x0700, 0x165b, 0x0000 },
-  { 0x8700, 0x165e, 0x2000 },
-  { 0x0700, 0x165d, 0x0000 },
-  { 0x0700, 0x165f, 0x0000 },
-  { 0x8700, 0x1664, 0x3000 },
-  { 0x8700, 0x1662, 0x2000 },
-  { 0x0700, 0x1661, 0x0000 },
-  { 0x0700, 0x1663, 0x0000 },
-  { 0x8700, 0x1666, 0x2000 },
-  { 0x0700, 0x1665, 0x0000 },
-  { 0x0700, 0x1667, 0x0000 },
-  { 0x8700, 0x1670, 0x4000 },
-  { 0x8700, 0x166c, 0x3000 },
-  { 0x8700, 0x166a, 0x2000 },
-  { 0x0700, 0x1669, 0x0000 },
-  { 0x0700, 0x166b, 0x0000 },
-  { 0x9500, 0x166e, 0x2000 },
-  { 0x1500, 0x166d, 0x0000 },
-  { 0x0700, 0x166f, 0x0000 },
-  { 0x8700, 0x1674, 0x3000 },
-  { 0x8700, 0x1672, 0x2000 },
-  { 0x0700, 0x1671, 0x0000 },
-  { 0x0700, 0x1673, 0x0000 },
-  { 0x8700, 0x1676, 0x2000 },
-  { 0x0700, 0x1675, 0x0000 },
-  { 0x1d00, 0x1680, 0x0000 },
-  { 0x8700, 0x1691, 0x5000 },
-  { 0x8700, 0x1689, 0x4000 },
-  { 0x8700, 0x1685, 0x3000 },
-  { 0x8700, 0x1683, 0x2000 },
-  { 0x0700, 0x1682, 0x0000 },
-  { 0x0700, 0x1684, 0x0000 },
-  { 0x8700, 0x1687, 0x2000 },
-  { 0x0700, 0x1686, 0x0000 },
-  { 0x0700, 0x1688, 0x0000 },
-  { 0x8700, 0x168d, 0x3000 },
-  { 0x8700, 0x168b, 0x2000 },
-  { 0x0700, 0x168a, 0x0000 },
-  { 0x0700, 0x168c, 0x0000 },
-  { 0x8700, 0x168f, 0x2000 },
-  { 0x0700, 0x168e, 0x0000 },
-  { 0x0700, 0x1690, 0x0000 },
-  { 0x8700, 0x1699, 0x4000 },
-  { 0x8700, 0x1695, 0x3000 },
-  { 0x8700, 0x1693, 0x2000 },
-  { 0x0700, 0x1692, 0x0000 },
-  { 0x0700, 0x1694, 0x0000 },
-  { 0x8700, 0x1697, 0x2000 },
-  { 0x0700, 0x1696, 0x0000 },
-  { 0x0700, 0x1698, 0x0000 },
-  { 0x8700, 0x16a0, 0x3000 },
-  { 0x9600, 0x169b, 0x2000 },
-  { 0x0700, 0x169a, 0x0000 },
-  { 0x1200, 0x169c, 0x0000 },
-  { 0x8700, 0x16a2, 0x2000 },
-  { 0x0700, 0x16a1, 0x0000 },
-  { 0x0700, 0x16a3, 0x0000 },
-  { 0x8700, 0x16c4, 0x6000 },
-  { 0x8700, 0x16b4, 0x5000 },
-  { 0x8700, 0x16ac, 0x4000 },
-  { 0x8700, 0x16a8, 0x3000 },
-  { 0x8700, 0x16a6, 0x2000 },
-  { 0x0700, 0x16a5, 0x0000 },
-  { 0x0700, 0x16a7, 0x0000 },
-  { 0x8700, 0x16aa, 0x2000 },
-  { 0x0700, 0x16a9, 0x0000 },
-  { 0x0700, 0x16ab, 0x0000 },
-  { 0x8700, 0x16b0, 0x3000 },
-  { 0x8700, 0x16ae, 0x2000 },
-  { 0x0700, 0x16ad, 0x0000 },
-  { 0x0700, 0x16af, 0x0000 },
-  { 0x8700, 0x16b2, 0x2000 },
-  { 0x0700, 0x16b1, 0x0000 },
-  { 0x0700, 0x16b3, 0x0000 },
-  { 0x8700, 0x16bc, 0x4000 },
-  { 0x8700, 0x16b8, 0x3000 },
-  { 0x8700, 0x16b6, 0x2000 },
-  { 0x0700, 0x16b5, 0x0000 },
-  { 0x0700, 0x16b7, 0x0000 },
-  { 0x8700, 0x16ba, 0x2000 },
-  { 0x0700, 0x16b9, 0x0000 },
-  { 0x0700, 0x16bb, 0x0000 },
-  { 0x8700, 0x16c0, 0x3000 },
-  { 0x8700, 0x16be, 0x2000 },
-  { 0x0700, 0x16bd, 0x0000 },
-  { 0x0700, 0x16bf, 0x0000 },
-  { 0x8700, 0x16c2, 0x2000 },
-  { 0x0700, 0x16c1, 0x0000 },
-  { 0x0700, 0x16c3, 0x0000 },
-  { 0x8700, 0x16d4, 0x5000 },
-  { 0x8700, 0x16cc, 0x4000 },
-  { 0x8700, 0x16c8, 0x3000 },
-  { 0x8700, 0x16c6, 0x2000 },
-  { 0x0700, 0x16c5, 0x0000 },
-  { 0x0700, 0x16c7, 0x0000 },
-  { 0x8700, 0x16ca, 0x2000 },
-  { 0x0700, 0x16c9, 0x0000 },
-  { 0x0700, 0x16cb, 0x0000 },
-  { 0x8700, 0x16d0, 0x3000 },
-  { 0x8700, 0x16ce, 0x2000 },
-  { 0x0700, 0x16cd, 0x0000 },
-  { 0x0700, 0x16cf, 0x0000 },
-  { 0x8700, 0x16d2, 0x2000 },
-  { 0x0700, 0x16d1, 0x0000 },
-  { 0x0700, 0x16d3, 0x0000 },
-  { 0x8700, 0x16dc, 0x4000 },
-  { 0x8700, 0x16d8, 0x3000 },
-  { 0x8700, 0x16d6, 0x2000 },
-  { 0x0700, 0x16d5, 0x0000 },
-  { 0x0700, 0x16d7, 0x0000 },
-  { 0x8700, 0x16da, 0x2000 },
-  { 0x0700, 0x16d9, 0x0000 },
-  { 0x0700, 0x16db, 0x0000 },
-  { 0x8700, 0x16e0, 0x3000 },
-  { 0x8700, 0x16de, 0x2000 },
-  { 0x0700, 0x16dd, 0x0000 },
-  { 0x0700, 0x16df, 0x0000 },
-  { 0x8700, 0x16e2, 0x2000 },
-  { 0x0700, 0x16e1, 0x0000 },
-  { 0x0700, 0x16e3, 0x0000 },
-  { 0x8700, 0x1748, 0x7000 },
-  { 0x8c00, 0x1714, 0x6000 },
-  { 0x8700, 0x1703, 0x5000 },
-  { 0x9500, 0x16ec, 0x4000 },
-  { 0x8700, 0x16e8, 0x3000 },
-  { 0x8700, 0x16e6, 0x2000 },
-  { 0x0700, 0x16e5, 0x0000 },
-  { 0x0700, 0x16e7, 0x0000 },
-  { 0x8700, 0x16ea, 0x2000 },
-  { 0x0700, 0x16e9, 0x0000 },
-  { 0x1500, 0x16eb, 0x0000 },
-  { 0x8e00, 0x16f0, 0x3000 },
-  { 0x8e00, 0x16ee, 0x2000 },
-  { 0x1500, 0x16ed, 0x0000 },
-  { 0x0e00, 0x16ef, 0x0000 },
-  { 0x8700, 0x1701, 0x2000 },
-  { 0x0700, 0x1700, 0x0000 },
-  { 0x0700, 0x1702, 0x0000 },
-  { 0x8700, 0x170b, 0x4000 },
-  { 0x8700, 0x1707, 0x3000 },
-  { 0x8700, 0x1705, 0x2000 },
-  { 0x0700, 0x1704, 0x0000 },
-  { 0x0700, 0x1706, 0x0000 },
-  { 0x8700, 0x1709, 0x2000 },
-  { 0x0700, 0x1708, 0x0000 },
-  { 0x0700, 0x170a, 0x0000 },
-  { 0x8700, 0x1710, 0x3000 },
-  { 0x8700, 0x170e, 0x2000 },
-  { 0x0700, 0x170c, 0x0000 },
-  { 0x0700, 0x170f, 0x0000 },
-  { 0x8c00, 0x1712, 0x2000 },
-  { 0x0700, 0x1711, 0x0000 },
-  { 0x0c00, 0x1713, 0x0000 },
-  { 0x8700, 0x172f, 0x5000 },
-  { 0x8700, 0x1727, 0x4000 },
-  { 0x8700, 0x1723, 0x3000 },
-  { 0x8700, 0x1721, 0x2000 },
-  { 0x0700, 0x1720, 0x0000 },
-  { 0x0700, 0x1722, 0x0000 },
-  { 0x8700, 0x1725, 0x2000 },
-  { 0x0700, 0x1724, 0x0000 },
-  { 0x0700, 0x1726, 0x0000 },
-  { 0x8700, 0x172b, 0x3000 },
-  { 0x8700, 0x1729, 0x2000 },
-  { 0x0700, 0x1728, 0x0000 },
-  { 0x0700, 0x172a, 0x0000 },
-  { 0x8700, 0x172d, 0x2000 },
-  { 0x0700, 0x172c, 0x0000 },
-  { 0x0700, 0x172e, 0x0000 },
-  { 0x8700, 0x1740, 0x4000 },
-  { 0x8c00, 0x1733, 0x3000 },
-  { 0x8700, 0x1731, 0x2000 },
-  { 0x0700, 0x1730, 0x0000 },
-  { 0x0c00, 0x1732, 0x0000 },
-  { 0x9500, 0x1735, 0x2000 },
-  { 0x0c00, 0x1734, 0x0000 },
-  { 0x1500, 0x1736, 0x0000 },
-  { 0x8700, 0x1744, 0x3000 },
-  { 0x8700, 0x1742, 0x2000 },
-  { 0x0700, 0x1741, 0x0000 },
-  { 0x0700, 0x1743, 0x0000 },
-  { 0x8700, 0x1746, 0x2000 },
-  { 0x0700, 0x1745, 0x0000 },
-  { 0x0700, 0x1747, 0x0000 },
-  { 0x8700, 0x1782, 0x6000 },
-  { 0x8700, 0x1764, 0x5000 },
-  { 0x8700, 0x1750, 0x4000 },
-  { 0x8700, 0x174c, 0x3000 },
-  { 0x8700, 0x174a, 0x2000 },
-  { 0x0700, 0x1749, 0x0000 },
-  { 0x0700, 0x174b, 0x0000 },
-  { 0x8700, 0x174e, 0x2000 },
-  { 0x0700, 0x174d, 0x0000 },
-  { 0x0700, 0x174f, 0x0000 },
-  { 0x8700, 0x1760, 0x3000 },
-  { 0x8c00, 0x1752, 0x2000 },
-  { 0x0700, 0x1751, 0x0000 },
-  { 0x0c00, 0x1753, 0x0000 },
-  { 0x8700, 0x1762, 0x2000 },
-  { 0x0700, 0x1761, 0x0000 },
-  { 0x0700, 0x1763, 0x0000 },
-  { 0x8700, 0x176c, 0x4000 },
-  { 0x8700, 0x1768, 0x3000 },
-  { 0x8700, 0x1766, 0x2000 },
-  { 0x0700, 0x1765, 0x0000 },
-  { 0x0700, 0x1767, 0x0000 },
-  { 0x8700, 0x176a, 0x2000 },
-  { 0x0700, 0x1769, 0x0000 },
-  { 0x0700, 0x176b, 0x0000 },
-  { 0x8c00, 0x1772, 0x3000 },
-  { 0x8700, 0x176f, 0x2000 },
-  { 0x0700, 0x176e, 0x0000 },
-  { 0x0700, 0x1770, 0x0000 },
-  { 0x8700, 0x1780, 0x2000 },
-  { 0x0c00, 0x1773, 0x0000 },
-  { 0x0700, 0x1781, 0x0000 },
-  { 0x8700, 0x1792, 0x5000 },
-  { 0x8700, 0x178a, 0x4000 },
-  { 0x8700, 0x1786, 0x3000 },
-  { 0x8700, 0x1784, 0x2000 },
-  { 0x0700, 0x1783, 0x0000 },
-  { 0x0700, 0x1785, 0x0000 },
-  { 0x8700, 0x1788, 0x2000 },
-  { 0x0700, 0x1787, 0x0000 },
-  { 0x0700, 0x1789, 0x0000 },
-  { 0x8700, 0x178e, 0x3000 },
-  { 0x8700, 0x178c, 0x2000 },
-  { 0x0700, 0x178b, 0x0000 },
-  { 0x0700, 0x178d, 0x0000 },
-  { 0x8700, 0x1790, 0x2000 },
-  { 0x0700, 0x178f, 0x0000 },
-  { 0x0700, 0x1791, 0x0000 },
-  { 0x8700, 0x179a, 0x4000 },
-  { 0x8700, 0x1796, 0x3000 },
-  { 0x8700, 0x1794, 0x2000 },
-  { 0x0700, 0x1793, 0x0000 },
-  { 0x0700, 0x1795, 0x0000 },
-  { 0x8700, 0x1798, 0x2000 },
-  { 0x0700, 0x1797, 0x0000 },
-  { 0x0700, 0x1799, 0x0000 },
-  { 0x8700, 0x179e, 0x3000 },
-  { 0x8700, 0x179c, 0x2000 },
-  { 0x0700, 0x179b, 0x0000 },
-  { 0x0700, 0x179d, 0x0000 },
-  { 0x8700, 0x17a0, 0x2000 },
-  { 0x0700, 0x179f, 0x0000 },
-  { 0x0700, 0x17a1, 0x0000 },
-  { 0x8700, 0x1915, 0x9000 },
-  { 0x8700, 0x1837, 0x8000 },
-  { 0x8d00, 0x17e4, 0x7000 },
-  { 0x8a00, 0x17c2, 0x6000 },
-  { 0x8700, 0x17b2, 0x5000 },
-  { 0x8700, 0x17aa, 0x4000 },
-  { 0x8700, 0x17a6, 0x3000 },
-  { 0x8700, 0x17a4, 0x2000 },
-  { 0x0700, 0x17a3, 0x0000 },
-  { 0x0700, 0x17a5, 0x0000 },
-  { 0x8700, 0x17a8, 0x2000 },
-  { 0x0700, 0x17a7, 0x0000 },
-  { 0x0700, 0x17a9, 0x0000 },
-  { 0x8700, 0x17ae, 0x3000 },
-  { 0x8700, 0x17ac, 0x2000 },
-  { 0x0700, 0x17ab, 0x0000 },
-  { 0x0700, 0x17ad, 0x0000 },
-  { 0x8700, 0x17b0, 0x2000 },
-  { 0x0700, 0x17af, 0x0000 },
-  { 0x0700, 0x17b1, 0x0000 },
-  { 0x8c00, 0x17ba, 0x4000 },
-  { 0x8a00, 0x17b6, 0x3000 },
-  { 0x8100, 0x17b4, 0x2000 },
-  { 0x0700, 0x17b3, 0x0000 },
-  { 0x0100, 0x17b5, 0x0000 },
-  { 0x8c00, 0x17b8, 0x2000 },
-  { 0x0c00, 0x17b7, 0x0000 },
-  { 0x0c00, 0x17b9, 0x0000 },
-  { 0x8a00, 0x17be, 0x3000 },
-  { 0x8c00, 0x17bc, 0x2000 },
-  { 0x0c00, 0x17bb, 0x0000 },
-  { 0x0c00, 0x17bd, 0x0000 },
-  { 0x8a00, 0x17c0, 0x2000 },
-  { 0x0a00, 0x17bf, 0x0000 },
-  { 0x0a00, 0x17c1, 0x0000 },
-  { 0x8c00, 0x17d2, 0x5000 },
-  { 0x8c00, 0x17ca, 0x4000 },
-  { 0x8c00, 0x17c6, 0x3000 },
-  { 0x8a00, 0x17c4, 0x2000 },
-  { 0x0a00, 0x17c3, 0x0000 },
-  { 0x0a00, 0x17c5, 0x0000 },
-  { 0x8a00, 0x17c8, 0x2000 },
-  { 0x0a00, 0x17c7, 0x0000 },
-  { 0x0c00, 0x17c9, 0x0000 },
-  { 0x8c00, 0x17ce, 0x3000 },
-  { 0x8c00, 0x17cc, 0x2000 },
-  { 0x0c00, 0x17cb, 0x0000 },
-  { 0x0c00, 0x17cd, 0x0000 },
-  { 0x8c00, 0x17d0, 0x2000 },
-  { 0x0c00, 0x17cf, 0x0000 },
-  { 0x0c00, 0x17d1, 0x0000 },
-  { 0x9500, 0x17da, 0x4000 },
-  { 0x9500, 0x17d6, 0x3000 },
-  { 0x9500, 0x17d4, 0x2000 },
-  { 0x0c00, 0x17d3, 0x0000 },
-  { 0x1500, 0x17d5, 0x0000 },
-  { 0x9500, 0x17d8, 0x2000 },
-  { 0x0600, 0x17d7, 0x0000 },
-  { 0x1500, 0x17d9, 0x0000 },
-  { 0x8d00, 0x17e0, 0x3000 },
-  { 0x8700, 0x17dc, 0x2000 },
-  { 0x1700, 0x17db, 0x0000 },
-  { 0x0c00, 0x17dd, 0x0000 },
-  { 0x8d00, 0x17e2, 0x2000 },
-  { 0x0d00, 0x17e1, 0x0000 },
-  { 0x0d00, 0x17e3, 0x0000 },
-  { 0x8d00, 0x1811, 0x6000 },
-  { 0x9500, 0x1800, 0x5000 },
-  { 0x8f00, 0x17f2, 0x4000 },
-  { 0x8d00, 0x17e8, 0x3000 },
-  { 0x8d00, 0x17e6, 0x2000 },
-  { 0x0d00, 0x17e5, 0x0000 },
-  { 0x0d00, 0x17e7, 0x0000 },
-  { 0x8f00, 0x17f0, 0x2000 },
-  { 0x0d00, 0x17e9, 0x0000 },
-  { 0x0f00, 0x17f1, 0x0000 },
-  { 0x8f00, 0x17f6, 0x3000 },
-  { 0x8f00, 0x17f4, 0x2000 },
-  { 0x0f00, 0x17f3, 0x0000 },
-  { 0x0f00, 0x17f5, 0x0000 },
-  { 0x8f00, 0x17f8, 0x2000 },
-  { 0x0f00, 0x17f7, 0x0000 },
-  { 0x0f00, 0x17f9, 0x0000 },
-  { 0x9500, 0x1808, 0x4000 },
-  { 0x9500, 0x1804, 0x3000 },
-  { 0x9500, 0x1802, 0x2000 },
-  { 0x1500, 0x1801, 0x0000 },
-  { 0x1500, 0x1803, 0x0000 },
-  { 0x9100, 0x1806, 0x2000 },
-  { 0x1500, 0x1805, 0x0000 },
-  { 0x1500, 0x1807, 0x0000 },
-  { 0x8c00, 0x180c, 0x3000 },
-  { 0x9500, 0x180a, 0x2000 },
-  { 0x1500, 0x1809, 0x0000 },
-  { 0x0c00, 0x180b, 0x0000 },
-  { 0x9d00, 0x180e, 0x2000 },
-  { 0x0c00, 0x180d, 0x0000 },
-  { 0x0d00, 0x1810, 0x0000 },
-  { 0x8700, 0x1827, 0x5000 },
-  { 0x8d00, 0x1819, 0x4000 },
-  { 0x8d00, 0x1815, 0x3000 },
-  { 0x8d00, 0x1813, 0x2000 },
-  { 0x0d00, 0x1812, 0x0000 },
-  { 0x0d00, 0x1814, 0x0000 },
-  { 0x8d00, 0x1817, 0x2000 },
-  { 0x0d00, 0x1816, 0x0000 },
-  { 0x0d00, 0x1818, 0x0000 },
-  { 0x8700, 0x1823, 0x3000 },
-  { 0x8700, 0x1821, 0x2000 },
-  { 0x0700, 0x1820, 0x0000 },
-  { 0x0700, 0x1822, 0x0000 },
-  { 0x8700, 0x1825, 0x2000 },
-  { 0x0700, 0x1824, 0x0000 },
-  { 0x0700, 0x1826, 0x0000 },
-  { 0x8700, 0x182f, 0x4000 },
-  { 0x8700, 0x182b, 0x3000 },
-  { 0x8700, 0x1829, 0x2000 },
-  { 0x0700, 0x1828, 0x0000 },
-  { 0x0700, 0x182a, 0x0000 },
-  { 0x8700, 0x182d, 0x2000 },
-  { 0x0700, 0x182c, 0x0000 },
-  { 0x0700, 0x182e, 0x0000 },
-  { 0x8700, 0x1833, 0x3000 },
-  { 0x8700, 0x1831, 0x2000 },
-  { 0x0700, 0x1830, 0x0000 },
-  { 0x0700, 0x1832, 0x0000 },
-  { 0x8700, 0x1835, 0x2000 },
-  { 0x0700, 0x1834, 0x0000 },
-  { 0x0700, 0x1836, 0x0000 },
-  { 0x8700, 0x1877, 0x7000 },
-  { 0x8700, 0x1857, 0x6000 },
-  { 0x8700, 0x1847, 0x5000 },
-  { 0x8700, 0x183f, 0x4000 },
-  { 0x8700, 0x183b, 0x3000 },
-  { 0x8700, 0x1839, 0x2000 },
-  { 0x0700, 0x1838, 0x0000 },
-  { 0x0700, 0x183a, 0x0000 },
-  { 0x8700, 0x183d, 0x2000 },
-  { 0x0700, 0x183c, 0x0000 },
-  { 0x0700, 0x183e, 0x0000 },
-  { 0x8600, 0x1843, 0x3000 },
-  { 0x8700, 0x1841, 0x2000 },
-  { 0x0700, 0x1840, 0x0000 },
-  { 0x0700, 0x1842, 0x0000 },
-  { 0x8700, 0x1845, 0x2000 },
-  { 0x0700, 0x1844, 0x0000 },
-  { 0x0700, 0x1846, 0x0000 },
-  { 0x8700, 0x184f, 0x4000 },
-  { 0x8700, 0x184b, 0x3000 },
-  { 0x8700, 0x1849, 0x2000 },
-  { 0x0700, 0x1848, 0x0000 },
-  { 0x0700, 0x184a, 0x0000 },
-  { 0x8700, 0x184d, 0x2000 },
-  { 0x0700, 0x184c, 0x0000 },
-  { 0x0700, 0x184e, 0x0000 },
-  { 0x8700, 0x1853, 0x3000 },
-  { 0x8700, 0x1851, 0x2000 },
-  { 0x0700, 0x1850, 0x0000 },
-  { 0x0700, 0x1852, 0x0000 },
-  { 0x8700, 0x1855, 0x2000 },
-  { 0x0700, 0x1854, 0x0000 },
-  { 0x0700, 0x1856, 0x0000 },
-  { 0x8700, 0x1867, 0x5000 },
-  { 0x8700, 0x185f, 0x4000 },
-  { 0x8700, 0x185b, 0x3000 },
-  { 0x8700, 0x1859, 0x2000 },
-  { 0x0700, 0x1858, 0x0000 },
-  { 0x0700, 0x185a, 0x0000 },
-  { 0x8700, 0x185d, 0x2000 },
-  { 0x0700, 0x185c, 0x0000 },
-  { 0x0700, 0x185e, 0x0000 },
-  { 0x8700, 0x1863, 0x3000 },
-  { 0x8700, 0x1861, 0x2000 },
-  { 0x0700, 0x1860, 0x0000 },
-  { 0x0700, 0x1862, 0x0000 },
-  { 0x8700, 0x1865, 0x2000 },
-  { 0x0700, 0x1864, 0x0000 },
-  { 0x0700, 0x1866, 0x0000 },
-  { 0x8700, 0x186f, 0x4000 },
-  { 0x8700, 0x186b, 0x3000 },
-  { 0x8700, 0x1869, 0x2000 },
-  { 0x0700, 0x1868, 0x0000 },
-  { 0x0700, 0x186a, 0x0000 },
-  { 0x8700, 0x186d, 0x2000 },
-  { 0x0700, 0x186c, 0x0000 },
-  { 0x0700, 0x186e, 0x0000 },
-  { 0x8700, 0x1873, 0x3000 },
-  { 0x8700, 0x1871, 0x2000 },
-  { 0x0700, 0x1870, 0x0000 },
-  { 0x0700, 0x1872, 0x0000 },
-  { 0x8700, 0x1875, 0x2000 },
-  { 0x0700, 0x1874, 0x0000 },
-  { 0x0700, 0x1876, 0x0000 },
-  { 0x8700, 0x189f, 0x6000 },
-  { 0x8700, 0x188f, 0x5000 },
-  { 0x8700, 0x1887, 0x4000 },
-  { 0x8700, 0x1883, 0x3000 },
-  { 0x8700, 0x1881, 0x2000 },
-  { 0x0700, 0x1880, 0x0000 },
-  { 0x0700, 0x1882, 0x0000 },
-  { 0x8700, 0x1885, 0x2000 },
-  { 0x0700, 0x1884, 0x0000 },
-  { 0x0700, 0x1886, 0x0000 },
-  { 0x8700, 0x188b, 0x3000 },
-  { 0x8700, 0x1889, 0x2000 },
-  { 0x0700, 0x1888, 0x0000 },
-  { 0x0700, 0x188a, 0x0000 },
-  { 0x8700, 0x188d, 0x2000 },
-  { 0x0700, 0x188c, 0x0000 },
-  { 0x0700, 0x188e, 0x0000 },
-  { 0x8700, 0x1897, 0x4000 },
-  { 0x8700, 0x1893, 0x3000 },
-  { 0x8700, 0x1891, 0x2000 },
-  { 0x0700, 0x1890, 0x0000 },
-  { 0x0700, 0x1892, 0x0000 },
-  { 0x8700, 0x1895, 0x2000 },
-  { 0x0700, 0x1894, 0x0000 },
-  { 0x0700, 0x1896, 0x0000 },
-  { 0x8700, 0x189b, 0x3000 },
-  { 0x8700, 0x1899, 0x2000 },
-  { 0x0700, 0x1898, 0x0000 },
-  { 0x0700, 0x189a, 0x0000 },
-  { 0x8700, 0x189d, 0x2000 },
-  { 0x0700, 0x189c, 0x0000 },
-  { 0x0700, 0x189e, 0x0000 },
-  { 0x8700, 0x1905, 0x5000 },
-  { 0x8700, 0x18a7, 0x4000 },
-  { 0x8700, 0x18a3, 0x3000 },
-  { 0x8700, 0x18a1, 0x2000 },
-  { 0x0700, 0x18a0, 0x0000 },
-  { 0x0700, 0x18a2, 0x0000 },
-  { 0x8700, 0x18a5, 0x2000 },
-  { 0x0700, 0x18a4, 0x0000 },
-  { 0x0700, 0x18a6, 0x0000 },
-  { 0x8700, 0x1901, 0x3000 },
-  { 0x8c00, 0x18a9, 0x2000 },
-  { 0x0700, 0x18a8, 0x0000 },
-  { 0x0700, 0x1900, 0x0000 },
-  { 0x8700, 0x1903, 0x2000 },
-  { 0x0700, 0x1902, 0x0000 },
-  { 0x0700, 0x1904, 0x0000 },
-  { 0x8700, 0x190d, 0x4000 },
-  { 0x8700, 0x1909, 0x3000 },
-  { 0x8700, 0x1907, 0x2000 },
-  { 0x0700, 0x1906, 0x0000 },
-  { 0x0700, 0x1908, 0x0000 },
-  { 0x8700, 0x190b, 0x2000 },
-  { 0x0700, 0x190a, 0x0000 },
-  { 0x0700, 0x190c, 0x0000 },
-  { 0x8700, 0x1911, 0x3000 },
-  { 0x8700, 0x190f, 0x2000 },
-  { 0x0700, 0x190e, 0x0000 },
-  { 0x0700, 0x1910, 0x0000 },
-  { 0x8700, 0x1913, 0x2000 },
-  { 0x0700, 0x1912, 0x0000 },
-  { 0x0700, 0x1914, 0x0000 },
-  { 0x8500, 0x1d10, 0x8000 },
-  { 0x8700, 0x1963, 0x7000 },
-  { 0x9a00, 0x1940, 0x6000 },
-  { 0x8c00, 0x1928, 0x5000 },
-  { 0x8c00, 0x1920, 0x4000 },
-  { 0x8700, 0x1919, 0x3000 },
-  { 0x8700, 0x1917, 0x2000 },
-  { 0x0700, 0x1916, 0x0000 },
-  { 0x0700, 0x1918, 0x0000 },
-  { 0x8700, 0x191b, 0x2000 },
-  { 0x0700, 0x191a, 0x0000 },
-  { 0x0700, 0x191c, 0x0000 },
-  { 0x8a00, 0x1924, 0x3000 },
-  { 0x8c00, 0x1922, 0x2000 },
-  { 0x0c00, 0x1921, 0x0000 },
-  { 0x0a00, 0x1923, 0x0000 },
-  { 0x8a00, 0x1926, 0x2000 },
-  { 0x0a00, 0x1925, 0x0000 },
-  { 0x0c00, 0x1927, 0x0000 },
-  { 0x8a00, 0x1934, 0x4000 },
-  { 0x8a00, 0x1930, 0x3000 },
-  { 0x8a00, 0x192a, 0x2000 },
-  { 0x0a00, 0x1929, 0x0000 },
-  { 0x0a00, 0x192b, 0x0000 },
-  { 0x8c00, 0x1932, 0x2000 },
-  { 0x0a00, 0x1931, 0x0000 },
-  { 0x0a00, 0x1933, 0x0000 },
-  { 0x8a00, 0x1938, 0x3000 },
-  { 0x8a00, 0x1936, 0x2000 },
-  { 0x0a00, 0x1935, 0x0000 },
-  { 0x0a00, 0x1937, 0x0000 },
-  { 0x8c00, 0x193a, 0x2000 },
-  { 0x0c00, 0x1939, 0x0000 },
-  { 0x0c00, 0x193b, 0x0000 },
-  { 0x8700, 0x1953, 0x5000 },
-  { 0x8d00, 0x194b, 0x4000 },
-  { 0x8d00, 0x1947, 0x3000 },
-  { 0x9500, 0x1945, 0x2000 },
-  { 0x1500, 0x1944, 0x0000 },
-  { 0x0d00, 0x1946, 0x0000 },
-  { 0x8d00, 0x1949, 0x2000 },
-  { 0x0d00, 0x1948, 0x0000 },
-  { 0x0d00, 0x194a, 0x0000 },
-  { 0x8d00, 0x194f, 0x3000 },
-  { 0x8d00, 0x194d, 0x2000 },
-  { 0x0d00, 0x194c, 0x0000 },
-  { 0x0d00, 0x194e, 0x0000 },
-  { 0x8700, 0x1951, 0x2000 },
-  { 0x0700, 0x1950, 0x0000 },
-  { 0x0700, 0x1952, 0x0000 },
-  { 0x8700, 0x195b, 0x4000 },
-  { 0x8700, 0x1957, 0x3000 },
-  { 0x8700, 0x1955, 0x2000 },
-  { 0x0700, 0x1954, 0x0000 },
-  { 0x0700, 0x1956, 0x0000 },
-  { 0x8700, 0x1959, 0x2000 },
-  { 0x0700, 0x1958, 0x0000 },
-  { 0x0700, 0x195a, 0x0000 },
-  { 0x8700, 0x195f, 0x3000 },
-  { 0x8700, 0x195d, 0x2000 },
-  { 0x0700, 0x195c, 0x0000 },
-  { 0x0700, 0x195e, 0x0000 },
-  { 0x8700, 0x1961, 0x2000 },
-  { 0x0700, 0x1960, 0x0000 },
-  { 0x0700, 0x1962, 0x0000 },
-  { 0x9a00, 0x19f0, 0x6000 },
-  { 0x9a00, 0x19e0, 0x5000 },
-  { 0x8700, 0x196b, 0x4000 },
-  { 0x8700, 0x1967, 0x3000 },
-  { 0x8700, 0x1965, 0x2000 },
-  { 0x0700, 0x1964, 0x0000 },
-  { 0x0700, 0x1966, 0x0000 },
-  { 0x8700, 0x1969, 0x2000 },
-  { 0x0700, 0x1968, 0x0000 },
-  { 0x0700, 0x196a, 0x0000 },
-  { 0x8700, 0x1971, 0x3000 },
-  { 0x8700, 0x196d, 0x2000 },
-  { 0x0700, 0x196c, 0x0000 },
-  { 0x0700, 0x1970, 0x0000 },
-  { 0x8700, 0x1973, 0x2000 },
-  { 0x0700, 0x1972, 0x0000 },
-  { 0x0700, 0x1974, 0x0000 },
-  { 0x9a00, 0x19e8, 0x4000 },
-  { 0x9a00, 0x19e4, 0x3000 },
-  { 0x9a00, 0x19e2, 0x2000 },
-  { 0x1a00, 0x19e1, 0x0000 },
-  { 0x1a00, 0x19e3, 0x0000 },
-  { 0x9a00, 0x19e6, 0x2000 },
-  { 0x1a00, 0x19e5, 0x0000 },
-  { 0x1a00, 0x19e7, 0x0000 },
-  { 0x9a00, 0x19ec, 0x3000 },
-  { 0x9a00, 0x19ea, 0x2000 },
-  { 0x1a00, 0x19e9, 0x0000 },
-  { 0x1a00, 0x19eb, 0x0000 },
-  { 0x9a00, 0x19ee, 0x2000 },
-  { 0x1a00, 0x19ed, 0x0000 },
-  { 0x1a00, 0x19ef, 0x0000 },
-  { 0x8500, 0x1d00, 0x5000 },
-  { 0x9a00, 0x19f8, 0x4000 },
-  { 0x9a00, 0x19f4, 0x3000 },
-  { 0x9a00, 0x19f2, 0x2000 },
-  { 0x1a00, 0x19f1, 0x0000 },
-  { 0x1a00, 0x19f3, 0x0000 },
-  { 0x9a00, 0x19f6, 0x2000 },
-  { 0x1a00, 0x19f5, 0x0000 },
-  { 0x1a00, 0x19f7, 0x0000 },
-  { 0x9a00, 0x19fc, 0x3000 },
-  { 0x9a00, 0x19fa, 0x2000 },
-  { 0x1a00, 0x19f9, 0x0000 },
-  { 0x1a00, 0x19fb, 0x0000 },
-  { 0x9a00, 0x19fe, 0x2000 },
-  { 0x1a00, 0x19fd, 0x0000 },
-  { 0x1a00, 0x19ff, 0x0000 },
-  { 0x8500, 0x1d08, 0x4000 },
-  { 0x8500, 0x1d04, 0x3000 },
-  { 0x8500, 0x1d02, 0x2000 },
-  { 0x0500, 0x1d01, 0x0000 },
-  { 0x0500, 0x1d03, 0x0000 },
-  { 0x8500, 0x1d06, 0x2000 },
-  { 0x0500, 0x1d05, 0x0000 },
-  { 0x0500, 0x1d07, 0x0000 },
-  { 0x8500, 0x1d0c, 0x3000 },
-  { 0x8500, 0x1d0a, 0x2000 },
-  { 0x0500, 0x1d09, 0x0000 },
-  { 0x0500, 0x1d0b, 0x0000 },
-  { 0x8500, 0x1d0e, 0x2000 },
-  { 0x0500, 0x1d0d, 0x0000 },
-  { 0x0500, 0x1d0f, 0x0000 },
-  { 0x8600, 0x1d50, 0x7000 },
-  { 0x8600, 0x1d30, 0x6000 },
-  { 0x8500, 0x1d20, 0x5000 },
-  { 0x8500, 0x1d18, 0x4000 },
-  { 0x8500, 0x1d14, 0x3000 },
-  { 0x8500, 0x1d12, 0x2000 },
-  { 0x0500, 0x1d11, 0x0000 },
-  { 0x0500, 0x1d13, 0x0000 },
-  { 0x8500, 0x1d16, 0x2000 },
-  { 0x0500, 0x1d15, 0x0000 },
-  { 0x0500, 0x1d17, 0x0000 },
-  { 0x8500, 0x1d1c, 0x3000 },
-  { 0x8500, 0x1d1a, 0x2000 },
-  { 0x0500, 0x1d19, 0x0000 },
-  { 0x0500, 0x1d1b, 0x0000 },
-  { 0x8500, 0x1d1e, 0x2000 },
-  { 0x0500, 0x1d1d, 0x0000 },
-  { 0x0500, 0x1d1f, 0x0000 },
-  { 0x8500, 0x1d28, 0x4000 },
-  { 0x8500, 0x1d24, 0x3000 },
-  { 0x8500, 0x1d22, 0x2000 },
-  { 0x0500, 0x1d21, 0x0000 },
-  { 0x0500, 0x1d23, 0x0000 },
-  { 0x8500, 0x1d26, 0x2000 },
-  { 0x0500, 0x1d25, 0x0000 },
-  { 0x0500, 0x1d27, 0x0000 },
-  { 0x8600, 0x1d2c, 0x3000 },
-  { 0x8500, 0x1d2a, 0x2000 },
-  { 0x0500, 0x1d29, 0x0000 },
-  { 0x0500, 0x1d2b, 0x0000 },
-  { 0x8600, 0x1d2e, 0x2000 },
-  { 0x0600, 0x1d2d, 0x0000 },
-  { 0x0600, 0x1d2f, 0x0000 },
-  { 0x8600, 0x1d40, 0x5000 },
-  { 0x8600, 0x1d38, 0x4000 },
-  { 0x8600, 0x1d34, 0x3000 },
-  { 0x8600, 0x1d32, 0x2000 },
-  { 0x0600, 0x1d31, 0x0000 },
-  { 0x0600, 0x1d33, 0x0000 },
-  { 0x8600, 0x1d36, 0x2000 },
-  { 0x0600, 0x1d35, 0x0000 },
-  { 0x0600, 0x1d37, 0x0000 },
-  { 0x8600, 0x1d3c, 0x3000 },
-  { 0x8600, 0x1d3a, 0x2000 },
-  { 0x0600, 0x1d39, 0x0000 },
-  { 0x0600, 0x1d3b, 0x0000 },
-  { 0x8600, 0x1d3e, 0x2000 },
-  { 0x0600, 0x1d3d, 0x0000 },
-  { 0x0600, 0x1d3f, 0x0000 },
-  { 0x8600, 0x1d48, 0x4000 },
-  { 0x8600, 0x1d44, 0x3000 },
-  { 0x8600, 0x1d42, 0x2000 },
-  { 0x0600, 0x1d41, 0x0000 },
-  { 0x0600, 0x1d43, 0x0000 },
-  { 0x8600, 0x1d46, 0x2000 },
-  { 0x0600, 0x1d45, 0x0000 },
-  { 0x0600, 0x1d47, 0x0000 },
-  { 0x8600, 0x1d4c, 0x3000 },
-  { 0x8600, 0x1d4a, 0x2000 },
-  { 0x0600, 0x1d49, 0x0000 },
-  { 0x0600, 0x1d4b, 0x0000 },
-  { 0x8600, 0x1d4e, 0x2000 },
-  { 0x0600, 0x1d4d, 0x0000 },
-  { 0x0600, 0x1d4f, 0x0000 },
-  { 0x8900, 0x1e04, 0x6001 },
-  { 0x8600, 0x1d60, 0x5000 },
-  { 0x8600, 0x1d58, 0x4000 },
-  { 0x8600, 0x1d54, 0x3000 },
-  { 0x8600, 0x1d52, 0x2000 },
-  { 0x0600, 0x1d51, 0x0000 },
-  { 0x0600, 0x1d53, 0x0000 },
-  { 0x8600, 0x1d56, 0x2000 },
-  { 0x0600, 0x1d55, 0x0000 },
-  { 0x0600, 0x1d57, 0x0000 },
-  { 0x8600, 0x1d5c, 0x3000 },
-  { 0x8600, 0x1d5a, 0x2000 },
-  { 0x0600, 0x1d59, 0x0000 },
-  { 0x0600, 0x1d5b, 0x0000 },
-  { 0x8600, 0x1d5e, 0x2000 },
-  { 0x0600, 0x1d5d, 0x0000 },
-  { 0x0600, 0x1d5f, 0x0000 },
-  { 0x8500, 0x1d68, 0x4000 },
-  { 0x8500, 0x1d64, 0x3000 },
-  { 0x8500, 0x1d62, 0x2000 },
-  { 0x0600, 0x1d61, 0x0000 },
-  { 0x0500, 0x1d63, 0x0000 },
-  { 0x8500, 0x1d66, 0x2000 },
-  { 0x0500, 0x1d65, 0x0000 },
-  { 0x0500, 0x1d67, 0x0000 },
-  { 0x8900, 0x1e00, 0x3001 },
-  { 0x8500, 0x1d6a, 0x2000 },
-  { 0x0500, 0x1d69, 0x0000 },
-  { 0x0500, 0x1d6b, 0x0000 },
-  { 0x8900, 0x1e02, 0x2001 },
-  { 0x0500, 0x1e01, 0x0fff },
-  { 0x0500, 0x1e03, 0x0fff },
-  { 0x8900, 0x1e14, 0x5001 },
-  { 0x8900, 0x1e0c, 0x4001 },
-  { 0x8900, 0x1e08, 0x3001 },
-  { 0x8900, 0x1e06, 0x2001 },
-  { 0x0500, 0x1e05, 0x0fff },
-  { 0x0500, 0x1e07, 0x0fff },
-  { 0x8900, 0x1e0a, 0x2001 },
-  { 0x0500, 0x1e09, 0x0fff },
-  { 0x0500, 0x1e0b, 0x0fff },
-  { 0x8900, 0x1e10, 0x3001 },
-  { 0x8900, 0x1e0e, 0x2001 },
-  { 0x0500, 0x1e0d, 0x0fff },
-  { 0x0500, 0x1e0f, 0x0fff },
-  { 0x8900, 0x1e12, 0x2001 },
-  { 0x0500, 0x1e11, 0x0fff },
-  { 0x0500, 0x1e13, 0x0fff },
-  { 0x8900, 0x1e1c, 0x4001 },
-  { 0x8900, 0x1e18, 0x3001 },
-  { 0x8900, 0x1e16, 0x2001 },
-  { 0x0500, 0x1e15, 0x0fff },
-  { 0x0500, 0x1e17, 0x0fff },
-  { 0x8900, 0x1e1a, 0x2001 },
-  { 0x0500, 0x1e19, 0x0fff },
-  { 0x0500, 0x1e1b, 0x0fff },
-  { 0x8900, 0x1e20, 0x3001 },
-  { 0x8900, 0x1e1e, 0x2001 },
-  { 0x0500, 0x1e1d, 0x0fff },
-  { 0x0500, 0x1e1f, 0x0fff },
-  { 0x8900, 0x1e22, 0x2001 },
-  { 0x0500, 0x1e21, 0x0fff },
-  { 0x0500, 0x1e23, 0x0fff },
-  { 0x9600, 0x2045, 0xa000 },
-  { 0x8500, 0x1f32, 0x9008 },
-  { 0x8900, 0x1ea8, 0x8001 },
-  { 0x8900, 0x1e64, 0x7001 },
-  { 0x8900, 0x1e44, 0x6001 },
-  { 0x8900, 0x1e34, 0x5001 },
-  { 0x8900, 0x1e2c, 0x4001 },
-  { 0x8900, 0x1e28, 0x3001 },
-  { 0x8900, 0x1e26, 0x2001 },
-  { 0x0500, 0x1e25, 0x0fff },
-  { 0x0500, 0x1e27, 0x0fff },
-  { 0x8900, 0x1e2a, 0x2001 },
-  { 0x0500, 0x1e29, 0x0fff },
-  { 0x0500, 0x1e2b, 0x0fff },
-  { 0x8900, 0x1e30, 0x3001 },
-  { 0x8900, 0x1e2e, 0x2001 },
-  { 0x0500, 0x1e2d, 0x0fff },
-  { 0x0500, 0x1e2f, 0x0fff },
-  { 0x8900, 0x1e32, 0x2001 },
-  { 0x0500, 0x1e31, 0x0fff },
-  { 0x0500, 0x1e33, 0x0fff },
-  { 0x8900, 0x1e3c, 0x4001 },
-  { 0x8900, 0x1e38, 0x3001 },
-  { 0x8900, 0x1e36, 0x2001 },
-  { 0x0500, 0x1e35, 0x0fff },
-  { 0x0500, 0x1e37, 0x0fff },
-  { 0x8900, 0x1e3a, 0x2001 },
-  { 0x0500, 0x1e39, 0x0fff },
-  { 0x0500, 0x1e3b, 0x0fff },
-  { 0x8900, 0x1e40, 0x3001 },
-  { 0x8900, 0x1e3e, 0x2001 },
-  { 0x0500, 0x1e3d, 0x0fff },
-  { 0x0500, 0x1e3f, 0x0fff },
-  { 0x8900, 0x1e42, 0x2001 },
-  { 0x0500, 0x1e41, 0x0fff },
-  { 0x0500, 0x1e43, 0x0fff },
-  { 0x8900, 0x1e54, 0x5001 },
-  { 0x8900, 0x1e4c, 0x4001 },
-  { 0x8900, 0x1e48, 0x3001 },
-  { 0x8900, 0x1e46, 0x2001 },
-  { 0x0500, 0x1e45, 0x0fff },
-  { 0x0500, 0x1e47, 0x0fff },
-  { 0x8900, 0x1e4a, 0x2001 },
-  { 0x0500, 0x1e49, 0x0fff },
-  { 0x0500, 0x1e4b, 0x0fff },
-  { 0x8900, 0x1e50, 0x3001 },
-  { 0x8900, 0x1e4e, 0x2001 },
-  { 0x0500, 0x1e4d, 0x0fff },
-  { 0x0500, 0x1e4f, 0x0fff },
-  { 0x8900, 0x1e52, 0x2001 },
-  { 0x0500, 0x1e51, 0x0fff },
-  { 0x0500, 0x1e53, 0x0fff },
-  { 0x8900, 0x1e5c, 0x4001 },
-  { 0x8900, 0x1e58, 0x3001 },
-  { 0x8900, 0x1e56, 0x2001 },
-  { 0x0500, 0x1e55, 0x0fff },
-  { 0x0500, 0x1e57, 0x0fff },
-  { 0x8900, 0x1e5a, 0x2001 },
-  { 0x0500, 0x1e59, 0x0fff },
-  { 0x0500, 0x1e5b, 0x0fff },
-  { 0x8900, 0x1e60, 0x3001 },
-  { 0x8900, 0x1e5e, 0x2001 },
-  { 0x0500, 0x1e5d, 0x0fff },
-  { 0x0500, 0x1e5f, 0x0fff },
-  { 0x8900, 0x1e62, 0x2001 },
-  { 0x0500, 0x1e61, 0x0fff },
-  { 0x0500, 0x1e63, 0x0fff },
-  { 0x8900, 0x1e84, 0x6001 },
-  { 0x8900, 0x1e74, 0x5001 },
-  { 0x8900, 0x1e6c, 0x4001 },
-  { 0x8900, 0x1e68, 0x3001 },
-  { 0x8900, 0x1e66, 0x2001 },
-  { 0x0500, 0x1e65, 0x0fff },
-  { 0x0500, 0x1e67, 0x0fff },
-  { 0x8900, 0x1e6a, 0x2001 },
-  { 0x0500, 0x1e69, 0x0fff },
-  { 0x0500, 0x1e6b, 0x0fff },
-  { 0x8900, 0x1e70, 0x3001 },
-  { 0x8900, 0x1e6e, 0x2001 },
-  { 0x0500, 0x1e6d, 0x0fff },
-  { 0x0500, 0x1e6f, 0x0fff },
-  { 0x8900, 0x1e72, 0x2001 },
-  { 0x0500, 0x1e71, 0x0fff },
-  { 0x0500, 0x1e73, 0x0fff },
-  { 0x8900, 0x1e7c, 0x4001 },
-  { 0x8900, 0x1e78, 0x3001 },
-  { 0x8900, 0x1e76, 0x2001 },
-  { 0x0500, 0x1e75, 0x0fff },
-  { 0x0500, 0x1e77, 0x0fff },
-  { 0x8900, 0x1e7a, 0x2001 },
-  { 0x0500, 0x1e79, 0x0fff },
-  { 0x0500, 0x1e7b, 0x0fff },
-  { 0x8900, 0x1e80, 0x3001 },
-  { 0x8900, 0x1e7e, 0x2001 },
-  { 0x0500, 0x1e7d, 0x0fff },
-  { 0x0500, 0x1e7f, 0x0fff },
-  { 0x8900, 0x1e82, 0x2001 },
-  { 0x0500, 0x1e81, 0x0fff },
-  { 0x0500, 0x1e83, 0x0fff },
-  { 0x8900, 0x1e94, 0x5001 },
-  { 0x8900, 0x1e8c, 0x4001 },
-  { 0x8900, 0x1e88, 0x3001 },
-  { 0x8900, 0x1e86, 0x2001 },
-  { 0x0500, 0x1e85, 0x0fff },
-  { 0x0500, 0x1e87, 0x0fff },
-  { 0x8900, 0x1e8a, 0x2001 },
-  { 0x0500, 0x1e89, 0x0fff },
-  { 0x0500, 0x1e8b, 0x0fff },
-  { 0x8900, 0x1e90, 0x3001 },
-  { 0x8900, 0x1e8e, 0x2001 },
-  { 0x0500, 0x1e8d, 0x0fff },
-  { 0x0500, 0x1e8f, 0x0fff },
-  { 0x8900, 0x1e92, 0x2001 },
-  { 0x0500, 0x1e91, 0x0fff },
-  { 0x0500, 0x1e93, 0x0fff },
-  { 0x8900, 0x1ea0, 0x4001 },
-  { 0x8500, 0x1e98, 0x3000 },
-  { 0x8500, 0x1e96, 0x2000 },
-  { 0x0500, 0x1e95, 0x0fff },
-  { 0x0500, 0x1e97, 0x0000 },
-  { 0x8500, 0x1e9a, 0x2000 },
-  { 0x0500, 0x1e99, 0x0000 },
-  { 0x0500, 0x1e9b, 0x0fc5 },
-  { 0x8900, 0x1ea4, 0x3001 },
-  { 0x8900, 0x1ea2, 0x2001 },
-  { 0x0500, 0x1ea1, 0x0fff },
-  { 0x0500, 0x1ea3, 0x0fff },
-  { 0x8900, 0x1ea6, 0x2001 },
-  { 0x0500, 0x1ea5, 0x0fff },
-  { 0x0500, 0x1ea7, 0x0fff },
-  { 0x8900, 0x1ee8, 0x7001 },
-  { 0x8900, 0x1ec8, 0x6001 },
-  { 0x8900, 0x1eb8, 0x5001 },
-  { 0x8900, 0x1eb0, 0x4001 },
-  { 0x8900, 0x1eac, 0x3001 },
-  { 0x8900, 0x1eaa, 0x2001 },
-  { 0x0500, 0x1ea9, 0x0fff },
-  { 0x0500, 0x1eab, 0x0fff },
-  { 0x8900, 0x1eae, 0x2001 },
-  { 0x0500, 0x1ead, 0x0fff },
-  { 0x0500, 0x1eaf, 0x0fff },
-  { 0x8900, 0x1eb4, 0x3001 },
-  { 0x8900, 0x1eb2, 0x2001 },
-  { 0x0500, 0x1eb1, 0x0fff },
-  { 0x0500, 0x1eb3, 0x0fff },
-  { 0x8900, 0x1eb6, 0x2001 },
-  { 0x0500, 0x1eb5, 0x0fff },
-  { 0x0500, 0x1eb7, 0x0fff },
-  { 0x8900, 0x1ec0, 0x4001 },
-  { 0x8900, 0x1ebc, 0x3001 },
-  { 0x8900, 0x1eba, 0x2001 },
-  { 0x0500, 0x1eb9, 0x0fff },
-  { 0x0500, 0x1ebb, 0x0fff },
-  { 0x8900, 0x1ebe, 0x2001 },
-  { 0x0500, 0x1ebd, 0x0fff },
-  { 0x0500, 0x1ebf, 0x0fff },
-  { 0x8900, 0x1ec4, 0x3001 },
-  { 0x8900, 0x1ec2, 0x2001 },
-  { 0x0500, 0x1ec1, 0x0fff },
-  { 0x0500, 0x1ec3, 0x0fff },
-  { 0x8900, 0x1ec6, 0x2001 },
-  { 0x0500, 0x1ec5, 0x0fff },
-  { 0x0500, 0x1ec7, 0x0fff },
-  { 0x8900, 0x1ed8, 0x5001 },
-  { 0x8900, 0x1ed0, 0x4001 },
-  { 0x8900, 0x1ecc, 0x3001 },
-  { 0x8900, 0x1eca, 0x2001 },
-  { 0x0500, 0x1ec9, 0x0fff },
-  { 0x0500, 0x1ecb, 0x0fff },
-  { 0x8900, 0x1ece, 0x2001 },
-  { 0x0500, 0x1ecd, 0x0fff },
-  { 0x0500, 0x1ecf, 0x0fff },
-  { 0x8900, 0x1ed4, 0x3001 },
-  { 0x8900, 0x1ed2, 0x2001 },
-  { 0x0500, 0x1ed1, 0x0fff },
-  { 0x0500, 0x1ed3, 0x0fff },
-  { 0x8900, 0x1ed6, 0x2001 },
-  { 0x0500, 0x1ed5, 0x0fff },
-  { 0x0500, 0x1ed7, 0x0fff },
-  { 0x8900, 0x1ee0, 0x4001 },
-  { 0x8900, 0x1edc, 0x3001 },
-  { 0x8900, 0x1eda, 0x2001 },
-  { 0x0500, 0x1ed9, 0x0fff },
-  { 0x0500, 0x1edb, 0x0fff },
-  { 0x8900, 0x1ede, 0x2001 },
-  { 0x0500, 0x1edd, 0x0fff },
-  { 0x0500, 0x1edf, 0x0fff },
-  { 0x8900, 0x1ee4, 0x3001 },
-  { 0x8900, 0x1ee2, 0x2001 },
-  { 0x0500, 0x1ee1, 0x0fff },
-  { 0x0500, 0x1ee3, 0x0fff },
-  { 0x8900, 0x1ee6, 0x2001 },
-  { 0x0500, 0x1ee5, 0x0fff },
-  { 0x0500, 0x1ee7, 0x0fff },
-  { 0x8900, 0x1f0e, 0x6ff8 },
-  { 0x8900, 0x1ef8, 0x5001 },
-  { 0x8900, 0x1ef0, 0x4001 },
-  { 0x8900, 0x1eec, 0x3001 },
-  { 0x8900, 0x1eea, 0x2001 },
-  { 0x0500, 0x1ee9, 0x0fff },
-  { 0x0500, 0x1eeb, 0x0fff },
-  { 0x8900, 0x1eee, 0x2001 },
-  { 0x0500, 0x1eed, 0x0fff },
-  { 0x0500, 0x1eef, 0x0fff },
-  { 0x8900, 0x1ef4, 0x3001 },
-  { 0x8900, 0x1ef2, 0x2001 },
-  { 0x0500, 0x1ef1, 0x0fff },
-  { 0x0500, 0x1ef3, 0x0fff },
-  { 0x8900, 0x1ef6, 0x2001 },
-  { 0x0500, 0x1ef5, 0x0fff },
-  { 0x0500, 0x1ef7, 0x0fff },
-  { 0x8500, 0x1f06, 0x4008 },
-  { 0x8500, 0x1f02, 0x3008 },
-  { 0x8500, 0x1f00, 0x2008 },
-  { 0x0500, 0x1ef9, 0x0fff },
-  { 0x0500, 0x1f01, 0x0008 },
-  { 0x8500, 0x1f04, 0x2008 },
-  { 0x0500, 0x1f03, 0x0008 },
-  { 0x0500, 0x1f05, 0x0008 },
-  { 0x8900, 0x1f0a, 0x3ff8 },
-  { 0x8900, 0x1f08, 0x2ff8 },
-  { 0x0500, 0x1f07, 0x0008 },
-  { 0x0900, 0x1f09, 0x0ff8 },
-  { 0x8900, 0x1f0c, 0x2ff8 },
-  { 0x0900, 0x1f0b, 0x0ff8 },
-  { 0x0900, 0x1f0d, 0x0ff8 },
-  { 0x8500, 0x1f22, 0x5008 },
-  { 0x8900, 0x1f18, 0x4ff8 },
-  { 0x8500, 0x1f12, 0x3008 },
-  { 0x8500, 0x1f10, 0x2008 },
-  { 0x0900, 0x1f0f, 0x0ff8 },
-  { 0x0500, 0x1f11, 0x0008 },
-  { 0x8500, 0x1f14, 0x2008 },
-  { 0x0500, 0x1f13, 0x0008 },
-  { 0x0500, 0x1f15, 0x0008 },
-  { 0x8900, 0x1f1c, 0x3ff8 },
-  { 0x8900, 0x1f1a, 0x2ff8 },
-  { 0x0900, 0x1f19, 0x0ff8 },
-  { 0x0900, 0x1f1b, 0x0ff8 },
-  { 0x8500, 0x1f20, 0x2008 },
-  { 0x0900, 0x1f1d, 0x0ff8 },
-  { 0x0500, 0x1f21, 0x0008 },
-  { 0x8900, 0x1f2a, 0x4ff8 },
-  { 0x8500, 0x1f26, 0x3008 },
-  { 0x8500, 0x1f24, 0x2008 },
-  { 0x0500, 0x1f23, 0x0008 },
-  { 0x0500, 0x1f25, 0x0008 },
-  { 0x8900, 0x1f28, 0x2ff8 },
-  { 0x0500, 0x1f27, 0x0008 },
-  { 0x0900, 0x1f29, 0x0ff8 },
-  { 0x8900, 0x1f2e, 0x3ff8 },
-  { 0x8900, 0x1f2c, 0x2ff8 },
-  { 0x0900, 0x1f2b, 0x0ff8 },
-  { 0x0900, 0x1f2d, 0x0ff8 },
-  { 0x8500, 0x1f30, 0x2008 },
-  { 0x0900, 0x1f2f, 0x0ff8 },
-  { 0x0500, 0x1f31, 0x0008 },
-  { 0x9800, 0x1fbd, 0x8000 },
-  { 0x8500, 0x1f7a, 0x7070 },
-  { 0x8500, 0x1f56, 0x6000 },
-  { 0x8500, 0x1f42, 0x5008 },
-  { 0x8900, 0x1f3a, 0x4ff8 },
-  { 0x8500, 0x1f36, 0x3008 },
-  { 0x8500, 0x1f34, 0x2008 },
-  { 0x0500, 0x1f33, 0x0008 },
-  { 0x0500, 0x1f35, 0x0008 },
-  { 0x8900, 0x1f38, 0x2ff8 },
-  { 0x0500, 0x1f37, 0x0008 },
-  { 0x0900, 0x1f39, 0x0ff8 },
-  { 0x8900, 0x1f3e, 0x3ff8 },
-  { 0x8900, 0x1f3c, 0x2ff8 },
-  { 0x0900, 0x1f3b, 0x0ff8 },
-  { 0x0900, 0x1f3d, 0x0ff8 },
-  { 0x8500, 0x1f40, 0x2008 },
-  { 0x0900, 0x1f3f, 0x0ff8 },
-  { 0x0500, 0x1f41, 0x0008 },
-  { 0x8900, 0x1f4c, 0x4ff8 },
-  { 0x8900, 0x1f48, 0x3ff8 },
-  { 0x8500, 0x1f44, 0x2008 },
-  { 0x0500, 0x1f43, 0x0008 },
-  { 0x0500, 0x1f45, 0x0008 },
-  { 0x8900, 0x1f4a, 0x2ff8 },
-  { 0x0900, 0x1f49, 0x0ff8 },
-  { 0x0900, 0x1f4b, 0x0ff8 },
-  { 0x8500, 0x1f52, 0x3000 },
-  { 0x8500, 0x1f50, 0x2000 },
-  { 0x0900, 0x1f4d, 0x0ff8 },
-  { 0x0500, 0x1f51, 0x0008 },
-  { 0x8500, 0x1f54, 0x2000 },
-  { 0x0500, 0x1f53, 0x0008 },
-  { 0x0500, 0x1f55, 0x0008 },
-  { 0x8900, 0x1f6a, 0x5ff8 },
-  { 0x8500, 0x1f62, 0x4008 },
-  { 0x8900, 0x1f5d, 0x3ff8 },
-  { 0x8900, 0x1f59, 0x2ff8 },
-  { 0x0500, 0x1f57, 0x0008 },
-  { 0x0900, 0x1f5b, 0x0ff8 },
-  { 0x8500, 0x1f60, 0x2008 },
-  { 0x0900, 0x1f5f, 0x0ff8 },
-  { 0x0500, 0x1f61, 0x0008 },
-  { 0x8500, 0x1f66, 0x3008 },
-  { 0x8500, 0x1f64, 0x2008 },
-  { 0x0500, 0x1f63, 0x0008 },
-  { 0x0500, 0x1f65, 0x0008 },
-  { 0x8900, 0x1f68, 0x2ff8 },
-  { 0x0500, 0x1f67, 0x0008 },
-  { 0x0900, 0x1f69, 0x0ff8 },
-  { 0x8500, 0x1f72, 0x4056 },
-  { 0x8900, 0x1f6e, 0x3ff8 },
-  { 0x8900, 0x1f6c, 0x2ff8 },
-  { 0x0900, 0x1f6b, 0x0ff8 },
-  { 0x0900, 0x1f6d, 0x0ff8 },
-  { 0x8500, 0x1f70, 0x204a },
-  { 0x0900, 0x1f6f, 0x0ff8 },
-  { 0x0500, 0x1f71, 0x004a },
-  { 0x8500, 0x1f76, 0x3064 },
-  { 0x8500, 0x1f74, 0x2056 },
-  { 0x0500, 0x1f73, 0x0056 },
-  { 0x0500, 0x1f75, 0x0056 },
-  { 0x8500, 0x1f78, 0x2080 },
-  { 0x0500, 0x1f77, 0x0064 },
-  { 0x0500, 0x1f79, 0x0080 },
-  { 0x8800, 0x1f9c, 0x6000 },
-  { 0x8800, 0x1f8c, 0x5000 },
-  { 0x8500, 0x1f84, 0x4008 },
-  { 0x8500, 0x1f80, 0x3008 },
-  { 0x8500, 0x1f7c, 0x207e },
-  { 0x0500, 0x1f7b, 0x0070 },
-  { 0x0500, 0x1f7d, 0x007e },
-  { 0x8500, 0x1f82, 0x2008 },
-  { 0x0500, 0x1f81, 0x0008 },
-  { 0x0500, 0x1f83, 0x0008 },
-  { 0x8800, 0x1f88, 0x3000 },
-  { 0x8500, 0x1f86, 0x2008 },
-  { 0x0500, 0x1f85, 0x0008 },
-  { 0x0500, 0x1f87, 0x0008 },
-  { 0x8800, 0x1f8a, 0x2000 },
-  { 0x0800, 0x1f89, 0x0000 },
-  { 0x0800, 0x1f8b, 0x0000 },
-  { 0x8500, 0x1f94, 0x4008 },
-  { 0x8500, 0x1f90, 0x3008 },
-  { 0x8800, 0x1f8e, 0x2000 },
-  { 0x0800, 0x1f8d, 0x0000 },
-  { 0x0800, 0x1f8f, 0x0000 },
-  { 0x8500, 0x1f92, 0x2008 },
-  { 0x0500, 0x1f91, 0x0008 },
-  { 0x0500, 0x1f93, 0x0008 },
-  { 0x8800, 0x1f98, 0x3000 },
-  { 0x8500, 0x1f96, 0x2008 },
-  { 0x0500, 0x1f95, 0x0008 },
-  { 0x0500, 0x1f97, 0x0008 },
-  { 0x8800, 0x1f9a, 0x2000 },
-  { 0x0800, 0x1f99, 0x0000 },
-  { 0x0800, 0x1f9b, 0x0000 },
-  { 0x8800, 0x1fac, 0x5000 },
-  { 0x8500, 0x1fa4, 0x4008 },
-  { 0x8500, 0x1fa0, 0x3008 },
-  { 0x8800, 0x1f9e, 0x2000 },
-  { 0x0800, 0x1f9d, 0x0000 },
-  { 0x0800, 0x1f9f, 0x0000 },
-  { 0x8500, 0x1fa2, 0x2008 },
-  { 0x0500, 0x1fa1, 0x0008 },
-  { 0x0500, 0x1fa3, 0x0008 },
-  { 0x8800, 0x1fa8, 0x3000 },
-  { 0x8500, 0x1fa6, 0x2008 },
-  { 0x0500, 0x1fa5, 0x0008 },
-  { 0x0500, 0x1fa7, 0x0008 },
-  { 0x8800, 0x1faa, 0x2000 },
-  { 0x0800, 0x1fa9, 0x0000 },
-  { 0x0800, 0x1fab, 0x0000 },
-  { 0x8500, 0x1fb4, 0x4000 },
-  { 0x8500, 0x1fb0, 0x3008 },
-  { 0x8800, 0x1fae, 0x2000 },
-  { 0x0800, 0x1fad, 0x0000 },
-  { 0x0800, 0x1faf, 0x0000 },
-  { 0x8500, 0x1fb2, 0x2000 },
-  { 0x0500, 0x1fb1, 0x0008 },
-  { 0x0500, 0x1fb3, 0x0009 },
-  { 0x8900, 0x1fb9, 0x3ff8 },
-  { 0x8500, 0x1fb7, 0x2000 },
-  { 0x0500, 0x1fb6, 0x0000 },
-  { 0x0900, 0x1fb8, 0x0ff8 },
-  { 0x8900, 0x1fbb, 0x2fb6 },
-  { 0x0900, 0x1fba, 0x0fb6 },
-  { 0x0800, 0x1fbc, 0x0000 },
-  { 0x9d00, 0x2005, 0x7000 },
-  { 0x8500, 0x1fe1, 0x6008 },
-  { 0x9800, 0x1fce, 0x5000 },
-  { 0x8500, 0x1fc6, 0x4000 },
-  { 0x9800, 0x1fc1, 0x3000 },
-  { 0x9800, 0x1fbf, 0x2000 },
-  { 0x0500, 0x1fbe, 0x0000 },
-  { 0x1800, 0x1fc0, 0x0000 },
-  { 0x8500, 0x1fc3, 0x2009 },
-  { 0x0500, 0x1fc2, 0x0000 },
-  { 0x0500, 0x1fc4, 0x0000 },
-  { 0x8900, 0x1fca, 0x3faa },
-  { 0x8900, 0x1fc8, 0x2faa },
-  { 0x0500, 0x1fc7, 0x0000 },
-  { 0x0900, 0x1fc9, 0x0faa },
-  { 0x8800, 0x1fcc, 0x2000 },
-  { 0x0900, 0x1fcb, 0x0faa },
-  { 0x1800, 0x1fcd, 0x0000 },
-  { 0x8900, 0x1fd8, 0x4ff8 },
-  { 0x8500, 0x1fd2, 0x3000 },
-  { 0x8500, 0x1fd0, 0x2008 },
-  { 0x1800, 0x1fcf, 0x0000 },
-  { 0x0500, 0x1fd1, 0x0008 },
-  { 0x8500, 0x1fd6, 0x2000 },
-  { 0x0500, 0x1fd3, 0x0000 },
-  { 0x0500, 0x1fd7, 0x0000 },
-  { 0x9800, 0x1fdd, 0x3000 },
-  { 0x8900, 0x1fda, 0x2f9c },
-  { 0x0900, 0x1fd9, 0x0ff8 },
-  { 0x0900, 0x1fdb, 0x0f9c },
-  { 0x9800, 0x1fdf, 0x2000 },
-  { 0x1800, 0x1fde, 0x0000 },
-  { 0x0500, 0x1fe0, 0x0008 },
-  { 0x8500, 0x1ff3, 0x5009 },
-  { 0x8900, 0x1fe9, 0x4ff8 },
-  { 0x8500, 0x1fe5, 0x3007 },
-  { 0x8500, 0x1fe3, 0x2000 },
-  { 0x0500, 0x1fe2, 0x0000 },
-  { 0x0500, 0x1fe4, 0x0000 },
-  { 0x8500, 0x1fe7, 0x2000 },
-  { 0x0500, 0x1fe6, 0x0000 },
-  { 0x0900, 0x1fe8, 0x0ff8 },
-  { 0x9800, 0x1fed, 0x3000 },
-  { 0x8900, 0x1feb, 0x2f90 },
-  { 0x0900, 0x1fea, 0x0f90 },
-  { 0x0900, 0x1fec, 0x0ff9 },
-  { 0x9800, 0x1fef, 0x2000 },
-  { 0x1800, 0x1fee, 0x0000 },
-  { 0x0500, 0x1ff2, 0x0000 },
-  { 0x8800, 0x1ffc, 0x4000 },
-  { 0x8900, 0x1ff8, 0x3f80 },
-  { 0x8500, 0x1ff6, 0x2000 },
-  { 0x0500, 0x1ff4, 0x0000 },
-  { 0x0500, 0x1ff7, 0x0000 },
-  { 0x8900, 0x1ffa, 0x2f82 },
-  { 0x0900, 0x1ff9, 0x0f80 },
-  { 0x0900, 0x1ffb, 0x0f82 },
-  { 0x9d00, 0x2001, 0x3000 },
-  { 0x9800, 0x1ffe, 0x2000 },
-  { 0x1800, 0x1ffd, 0x0000 },
-  { 0x1d00, 0x2000, 0x0000 },
-  { 0x9d00, 0x2003, 0x2000 },
-  { 0x1d00, 0x2002, 0x0000 },
-  { 0x1d00, 0x2004, 0x0000 },
-  { 0x9500, 0x2025, 0x6000 },
-  { 0x9100, 0x2015, 0x5000 },
-  { 0x8100, 0x200d, 0x4000 },
-  { 0x9d00, 0x2009, 0x3000 },
-  { 0x9d00, 0x2007, 0x2000 },
-  { 0x1d00, 0x2006, 0x0000 },
-  { 0x1d00, 0x2008, 0x0000 },
-  { 0x9d00, 0x200b, 0x2000 },
-  { 0x1d00, 0x200a, 0x0000 },
-  { 0x0100, 0x200c, 0x0000 },
-  { 0x9100, 0x2011, 0x3000 },
-  { 0x8100, 0x200f, 0x2000 },
-  { 0x0100, 0x200e, 0x0000 },
-  { 0x1100, 0x2010, 0x0000 },
-  { 0x9100, 0x2013, 0x2000 },
-  { 0x1100, 0x2012, 0x0000 },
-  { 0x1100, 0x2014, 0x0000 },
-  { 0x9300, 0x201d, 0x4000 },
-  { 0x9300, 0x2019, 0x3000 },
-  { 0x9500, 0x2017, 0x2000 },
-  { 0x1500, 0x2016, 0x0000 },
-  { 0x1400, 0x2018, 0x0000 },
-  { 0x9400, 0x201b, 0x2000 },
-  { 0x1600, 0x201a, 0x0000 },
-  { 0x1400, 0x201c, 0x0000 },
-  { 0x9500, 0x2021, 0x3000 },
-  { 0x9400, 0x201f, 0x2000 },
-  { 0x1600, 0x201e, 0x0000 },
-  { 0x1500, 0x2020, 0x0000 },
-  { 0x9500, 0x2023, 0x2000 },
-  { 0x1500, 0x2022, 0x0000 },
-  { 0x1500, 0x2024, 0x0000 },
-  { 0x9500, 0x2035, 0x5000 },
-  { 0x8100, 0x202d, 0x4000 },
-  { 0x9c00, 0x2029, 0x3000 },
-  { 0x9500, 0x2027, 0x2000 },
-  { 0x1500, 0x2026, 0x0000 },
-  { 0x1b00, 0x2028, 0x0000 },
-  { 0x8100, 0x202b, 0x2000 },
-  { 0x0100, 0x202a, 0x0000 },
-  { 0x0100, 0x202c, 0x0000 },
-  { 0x9500, 0x2031, 0x3000 },
-  { 0x9d00, 0x202f, 0x2000 },
-  { 0x0100, 0x202e, 0x0000 },
-  { 0x1500, 0x2030, 0x0000 },
-  { 0x9500, 0x2033, 0x2000 },
-  { 0x1500, 0x2032, 0x0000 },
-  { 0x1500, 0x2034, 0x0000 },
-  { 0x9500, 0x203d, 0x4000 },
-  { 0x9400, 0x2039, 0x3000 },
-  { 0x9500, 0x2037, 0x2000 },
-  { 0x1500, 0x2036, 0x0000 },
-  { 0x1500, 0x2038, 0x0000 },
-  { 0x9500, 0x203b, 0x2000 },
-  { 0x1300, 0x203a, 0x0000 },
-  { 0x1500, 0x203c, 0x0000 },
-  { 0x9500, 0x2041, 0x3000 },
-  { 0x9000, 0x203f, 0x2000 },
-  { 0x1500, 0x203e, 0x0000 },
-  { 0x1000, 0x2040, 0x0000 },
-  { 0x9500, 0x2043, 0x2000 },
-  { 0x1500, 0x2042, 0x0000 },
-  { 0x1900, 0x2044, 0x0000 },
-  { 0x9900, 0x21ae, 0x9000 },
-  { 0x8900, 0x211a, 0x8000 },
-  { 0x9700, 0x20a7, 0x7000 },
-  { 0x8f00, 0x2076, 0x6000 },
-  { 0x9500, 0x2057, 0x5000 },
-  { 0x9500, 0x204d, 0x4000 },
-  { 0x9500, 0x2049, 0x3000 },
-  { 0x9500, 0x2047, 0x2000 },
-  { 0x1200, 0x2046, 0x0000 },
-  { 0x1500, 0x2048, 0x0000 },
-  { 0x9500, 0x204b, 0x2000 },
-  { 0x1500, 0x204a, 0x0000 },
-  { 0x1500, 0x204c, 0x0000 },
-  { 0x9500, 0x2051, 0x3000 },
-  { 0x9500, 0x204f, 0x2000 },
-  { 0x1500, 0x204e, 0x0000 },
-  { 0x1500, 0x2050, 0x0000 },
-  { 0x9500, 0x2053, 0x2000 },
-  { 0x1900, 0x2052, 0x0000 },
-  { 0x1000, 0x2054, 0x0000 },
-  { 0x8100, 0x206c, 0x4000 },
-  { 0x8100, 0x2062, 0x3000 },
-  { 0x8100, 0x2060, 0x2000 },
-  { 0x1d00, 0x205f, 0x0000 },
-  { 0x0100, 0x2061, 0x0000 },
-  { 0x8100, 0x206a, 0x2000 },
-  { 0x0100, 0x2063, 0x0000 },
-  { 0x0100, 0x206b, 0x0000 },
-  { 0x8f00, 0x2070, 0x3000 },
-  { 0x8100, 0x206e, 0x2000 },
-  { 0x0100, 0x206d, 0x0000 },
-  { 0x0100, 0x206f, 0x0000 },
-  { 0x8f00, 0x2074, 0x2000 },
-  { 0x0500, 0x2071, 0x0000 },
-  { 0x0f00, 0x2075, 0x0000 },
-  { 0x8f00, 0x2086, 0x5000 },
-  { 0x9200, 0x207e, 0x4000 },
-  { 0x9900, 0x207a, 0x3000 },
-  { 0x8f00, 0x2078, 0x2000 },
-  { 0x0f00, 0x2077, 0x0000 },
-  { 0x0f00, 0x2079, 0x0000 },
-  { 0x9900, 0x207c, 0x2000 },
-  { 0x1900, 0x207b, 0x0000 },
-  { 0x1600, 0x207d, 0x0000 },
-  { 0x8f00, 0x2082, 0x3000 },
-  { 0x8f00, 0x2080, 0x2000 },
-  { 0x0500, 0x207f, 0x0000 },
-  { 0x0f00, 0x2081, 0x0000 },
-  { 0x8f00, 0x2084, 0x2000 },
-  { 0x0f00, 0x2083, 0x0000 },
-  { 0x0f00, 0x2085, 0x0000 },
-  { 0x9200, 0x208e, 0x4000 },
-  { 0x9900, 0x208a, 0x3000 },
-  { 0x8f00, 0x2088, 0x2000 },
-  { 0x0f00, 0x2087, 0x0000 },
-  { 0x0f00, 0x2089, 0x0000 },
-  { 0x9900, 0x208c, 0x2000 },
-  { 0x1900, 0x208b, 0x0000 },
-  { 0x1600, 0x208d, 0x0000 },
-  { 0x9700, 0x20a3, 0x3000 },
-  { 0x9700, 0x20a1, 0x2000 },
-  { 0x1700, 0x20a0, 0x0000 },
-  { 0x1700, 0x20a2, 0x0000 },
-  { 0x9700, 0x20a5, 0x2000 },
-  { 0x1700, 0x20a4, 0x0000 },
-  { 0x1700, 0x20a6, 0x0000 },
-  { 0x8c00, 0x20e5, 0x6000 },
-  { 0x8c00, 0x20d5, 0x5000 },
-  { 0x9700, 0x20af, 0x4000 },
-  { 0x9700, 0x20ab, 0x3000 },
-  { 0x9700, 0x20a9, 0x2000 },
-  { 0x1700, 0x20a8, 0x0000 },
-  { 0x1700, 0x20aa, 0x0000 },
-  { 0x9700, 0x20ad, 0x2000 },
-  { 0x1700, 0x20ac, 0x0000 },
-  { 0x1700, 0x20ae, 0x0000 },
-  { 0x8c00, 0x20d1, 0x3000 },
-  { 0x9700, 0x20b1, 0x2000 },
-  { 0x1700, 0x20b0, 0x0000 },
-  { 0x0c00, 0x20d0, 0x0000 },
-  { 0x8c00, 0x20d3, 0x2000 },
-  { 0x0c00, 0x20d2, 0x0000 },
-  { 0x0c00, 0x20d4, 0x0000 },
-  { 0x8b00, 0x20dd, 0x4000 },
-  { 0x8c00, 0x20d9, 0x3000 },
-  { 0x8c00, 0x20d7, 0x2000 },
-  { 0x0c00, 0x20d6, 0x0000 },
-  { 0x0c00, 0x20d8, 0x0000 },
-  { 0x8c00, 0x20db, 0x2000 },
-  { 0x0c00, 0x20da, 0x0000 },
-  { 0x0c00, 0x20dc, 0x0000 },
-  { 0x8c00, 0x20e1, 0x3000 },
-  { 0x8b00, 0x20df, 0x2000 },
-  { 0x0b00, 0x20de, 0x0000 },
-  { 0x0b00, 0x20e0, 0x0000 },
-  { 0x8b00, 0x20e3, 0x2000 },
-  { 0x0b00, 0x20e2, 0x0000 },
-  { 0x0b00, 0x20e4, 0x0000 },
-  { 0x8500, 0x210a, 0x5000 },
-  { 0x8900, 0x2102, 0x4000 },
-  { 0x8c00, 0x20e9, 0x3000 },
-  { 0x8c00, 0x20e7, 0x2000 },
-  { 0x0c00, 0x20e6, 0x0000 },
-  { 0x0c00, 0x20e8, 0x0000 },
-  { 0x9a00, 0x2100, 0x2000 },
-  { 0x0c00, 0x20ea, 0x0000 },
-  { 0x1a00, 0x2101, 0x0000 },
-  { 0x9a00, 0x2106, 0x3000 },
-  { 0x9a00, 0x2104, 0x2000 },
-  { 0x1a00, 0x2103, 0x0000 },
-  { 0x1a00, 0x2105, 0x0000 },
-  { 0x9a00, 0x2108, 0x2000 },
-  { 0x0900, 0x2107, 0x0000 },
-  { 0x1a00, 0x2109, 0x0000 },
-  { 0x8900, 0x2112, 0x4000 },
-  { 0x8500, 0x210e, 0x3000 },
-  { 0x8900, 0x210c, 0x2000 },
-  { 0x0900, 0x210b, 0x0000 },
-  { 0x0900, 0x210d, 0x0000 },
-  { 0x8900, 0x2110, 0x2000 },
-  { 0x0500, 0x210f, 0x0000 },
-  { 0x0900, 0x2111, 0x0000 },
-  { 0x9a00, 0x2116, 0x3000 },
-  { 0x9a00, 0x2114, 0x2000 },
-  { 0x0500, 0x2113, 0x0000 },
-  { 0x0900, 0x2115, 0x0000 },
-  { 0x9a00, 0x2118, 0x2000 },
-  { 0x1a00, 0x2117, 0x0000 },
-  { 0x0900, 0x2119, 0x0000 },
-  { 0x8e00, 0x2162, 0x7000 },
-  { 0x9a00, 0x213a, 0x6000 },
-  { 0x8900, 0x212a, 0x5000 },
-  { 0x9a00, 0x2122, 0x4000 },
-  { 0x9a00, 0x211e, 0x3000 },
-  { 0x8900, 0x211c, 0x2000 },
-  { 0x0900, 0x211b, 0x0000 },
-  { 0x0900, 0x211d, 0x0000 },
-  { 0x9a00, 0x2120, 0x2000 },
-  { 0x1a00, 0x211f, 0x0000 },
-  { 0x1a00, 0x2121, 0x0000 },
-  { 0x8900, 0x2126, 0x3000 },
-  { 0x8900, 0x2124, 0x2000 },
-  { 0x1a00, 0x2123, 0x0000 },
-  { 0x1a00, 0x2125, 0x0000 },
-  { 0x8900, 0x2128, 0x2000 },
-  { 0x1a00, 0x2127, 0x0000 },
-  { 0x1a00, 0x2129, 0x0000 },
-  { 0x9a00, 0x2132, 0x4000 },
-  { 0x9a00, 0x212e, 0x3000 },
-  { 0x8900, 0x212c, 0x2000 },
-  { 0x0900, 0x212b, 0x0000 },
-  { 0x0900, 0x212d, 0x0000 },
-  { 0x8900, 0x2130, 0x2000 },
-  { 0x0500, 0x212f, 0x0000 },
-  { 0x0900, 0x2131, 0x0000 },
-  { 0x8700, 0x2136, 0x3000 },
-  { 0x8500, 0x2134, 0x2000 },
-  { 0x0900, 0x2133, 0x0000 },
-  { 0x0700, 0x2135, 0x0000 },
-  { 0x8700, 0x2138, 0x2000 },
-  { 0x0700, 0x2137, 0x0000 },
-  { 0x0500, 0x2139, 0x0000 },
-  { 0x9900, 0x214b, 0x5000 },
-  { 0x9900, 0x2143, 0x4000 },
-  { 0x8900, 0x213f, 0x3000 },
-  { 0x8500, 0x213d, 0x2000 },
-  { 0x1a00, 0x213b, 0x0000 },
-  { 0x0900, 0x213e, 0x0000 },
-  { 0x9900, 0x2141, 0x2000 },
-  { 0x1900, 0x2140, 0x0000 },
-  { 0x1900, 0x2142, 0x0000 },
-  { 0x8500, 0x2147, 0x3000 },
-  { 0x8900, 0x2145, 0x2000 },
-  { 0x1900, 0x2144, 0x0000 },
-  { 0x0500, 0x2146, 0x0000 },
-  { 0x8500, 0x2149, 0x2000 },
-  { 0x0500, 0x2148, 0x0000 },
-  { 0x1a00, 0x214a, 0x0000 },
-  { 0x8f00, 0x215a, 0x4000 },
-  { 0x8f00, 0x2156, 0x3000 },
-  { 0x8f00, 0x2154, 0x2000 },
-  { 0x0f00, 0x2153, 0x0000 },
-  { 0x0f00, 0x2155, 0x0000 },
-  { 0x8f00, 0x2158, 0x2000 },
-  { 0x0f00, 0x2157, 0x0000 },
-  { 0x0f00, 0x2159, 0x0000 },
-  { 0x8f00, 0x215e, 0x3000 },
-  { 0x8f00, 0x215c, 0x2000 },
-  { 0x0f00, 0x215b, 0x0000 },
-  { 0x0f00, 0x215d, 0x0000 },
-  { 0x8e00, 0x2160, 0x2000 },
-  { 0x0f00, 0x215f, 0x0000 },
-  { 0x0e00, 0x2161, 0x0000 },
-  { 0x8e00, 0x2182, 0x6000 },
-  { 0x8e00, 0x2172, 0x5000 },
-  { 0x8e00, 0x216a, 0x4000 },
-  { 0x8e00, 0x2166, 0x3000 },
-  { 0x8e00, 0x2164, 0x2000 },
-  { 0x0e00, 0x2163, 0x0000 },
-  { 0x0e00, 0x2165, 0x0000 },
-  { 0x8e00, 0x2168, 0x2000 },
-  { 0x0e00, 0x2167, 0x0000 },
-  { 0x0e00, 0x2169, 0x0000 },
-  { 0x8e00, 0x216e, 0x3000 },
-  { 0x8e00, 0x216c, 0x2000 },
-  { 0x0e00, 0x216b, 0x0000 },
-  { 0x0e00, 0x216d, 0x0000 },
-  { 0x8e00, 0x2170, 0x2000 },
-  { 0x0e00, 0x216f, 0x0000 },
-  { 0x0e00, 0x2171, 0x0000 },
-  { 0x8e00, 0x217a, 0x4000 },
-  { 0x8e00, 0x2176, 0x3000 },
-  { 0x8e00, 0x2174, 0x2000 },
-  { 0x0e00, 0x2173, 0x0000 },
-  { 0x0e00, 0x2175, 0x0000 },
-  { 0x8e00, 0x2178, 0x2000 },
-  { 0x0e00, 0x2177, 0x0000 },
-  { 0x0e00, 0x2179, 0x0000 },
-  { 0x8e00, 0x217e, 0x3000 },
-  { 0x8e00, 0x217c, 0x2000 },
-  { 0x0e00, 0x217b, 0x0000 },
-  { 0x0e00, 0x217d, 0x0000 },
-  { 0x8e00, 0x2180, 0x2000 },
-  { 0x0e00, 0x217f, 0x0000 },
-  { 0x0e00, 0x2181, 0x0000 },
-  { 0x9a00, 0x219e, 0x5000 },
-  { 0x9a00, 0x2196, 0x4000 },
-  { 0x9900, 0x2192, 0x3000 },
-  { 0x9900, 0x2190, 0x2000 },
-  { 0x0e00, 0x2183, 0x0000 },
-  { 0x1900, 0x2191, 0x0000 },
-  { 0x9900, 0x2194, 0x2000 },
-  { 0x1900, 0x2193, 0x0000 },
-  { 0x1a00, 0x2195, 0x0000 },
-  { 0x9900, 0x219a, 0x3000 },
-  { 0x9a00, 0x2198, 0x2000 },
-  { 0x1a00, 0x2197, 0x0000 },
-  { 0x1a00, 0x2199, 0x0000 },
-  { 0x9a00, 0x219c, 0x2000 },
-  { 0x1900, 0x219b, 0x0000 },
-  { 0x1a00, 0x219d, 0x0000 },
-  { 0x9900, 0x21a6, 0x4000 },
-  { 0x9a00, 0x21a2, 0x3000 },
-  { 0x9900, 0x21a0, 0x2000 },
-  { 0x1a00, 0x219f, 0x0000 },
-  { 0x1a00, 0x21a1, 0x0000 },
-  { 0x9a00, 0x21a4, 0x2000 },
-  { 0x1900, 0x21a3, 0x0000 },
-  { 0x1a00, 0x21a5, 0x0000 },
-  { 0x9a00, 0x21aa, 0x3000 },
-  { 0x9a00, 0x21a8, 0x2000 },
-  { 0x1a00, 0x21a7, 0x0000 },
-  { 0x1a00, 0x21a9, 0x0000 },
-  { 0x9a00, 0x21ac, 0x2000 },
-  { 0x1a00, 0x21ab, 0x0000 },
-  { 0x1a00, 0x21ad, 0x0000 },
-  { 0x9900, 0x222e, 0x8000 },
-  { 0x9a00, 0x21ee, 0x7000 },
-  { 0x9900, 0x21ce, 0x6000 },
-  { 0x9a00, 0x21be, 0x5000 },
-  { 0x9a00, 0x21b6, 0x4000 },
-  { 0x9a00, 0x21b2, 0x3000 },
-  { 0x9a00, 0x21b0, 0x2000 },
-  { 0x1a00, 0x21af, 0x0000 },
-  { 0x1a00, 0x21b1, 0x0000 },
-  { 0x9a00, 0x21b4, 0x2000 },
-  { 0x1a00, 0x21b3, 0x0000 },
-  { 0x1a00, 0x21b5, 0x0000 },
-  { 0x9a00, 0x21ba, 0x3000 },
-  { 0x9a00, 0x21b8, 0x2000 },
-  { 0x1a00, 0x21b7, 0x0000 },
-  { 0x1a00, 0x21b9, 0x0000 },
-  { 0x9a00, 0x21bc, 0x2000 },
-  { 0x1a00, 0x21bb, 0x0000 },
-  { 0x1a00, 0x21bd, 0x0000 },
-  { 0x9a00, 0x21c6, 0x4000 },
-  { 0x9a00, 0x21c2, 0x3000 },
-  { 0x9a00, 0x21c0, 0x2000 },
-  { 0x1a00, 0x21bf, 0x0000 },
-  { 0x1a00, 0x21c1, 0x0000 },
-  { 0x9a00, 0x21c4, 0x2000 },
-  { 0x1a00, 0x21c3, 0x0000 },
-  { 0x1a00, 0x21c5, 0x0000 },
-  { 0x9a00, 0x21ca, 0x3000 },
-  { 0x9a00, 0x21c8, 0x2000 },
-  { 0x1a00, 0x21c7, 0x0000 },
-  { 0x1a00, 0x21c9, 0x0000 },
-  { 0x9a00, 0x21cc, 0x2000 },
-  { 0x1a00, 0x21cb, 0x0000 },
-  { 0x1a00, 0x21cd, 0x0000 },
-  { 0x9a00, 0x21de, 0x5000 },
-  { 0x9a00, 0x21d6, 0x4000 },
-  { 0x9900, 0x21d2, 0x3000 },
-  { 0x9a00, 0x21d0, 0x2000 },
-  { 0x1900, 0x21cf, 0x0000 },
-  { 0x1a00, 0x21d1, 0x0000 },
-  { 0x9900, 0x21d4, 0x2000 },
-  { 0x1a00, 0x21d3, 0x0000 },
-  { 0x1a00, 0x21d5, 0x0000 },
-  { 0x9a00, 0x21da, 0x3000 },
-  { 0x9a00, 0x21d8, 0x2000 },
-  { 0x1a00, 0x21d7, 0x0000 },
-  { 0x1a00, 0x21d9, 0x0000 },
-  { 0x9a00, 0x21dc, 0x2000 },
-  { 0x1a00, 0x21db, 0x0000 },
-  { 0x1a00, 0x21dd, 0x0000 },
-  { 0x9a00, 0x21e6, 0x4000 },
-  { 0x9a00, 0x21e2, 0x3000 },
-  { 0x9a00, 0x21e0, 0x2000 },
-  { 0x1a00, 0x21df, 0x0000 },
-  { 0x1a00, 0x21e1, 0x0000 },
-  { 0x9a00, 0x21e4, 0x2000 },
-  { 0x1a00, 0x21e3, 0x0000 },
-  { 0x1a00, 0x21e5, 0x0000 },
-  { 0x9a00, 0x21ea, 0x3000 },
-  { 0x9a00, 0x21e8, 0x2000 },
-  { 0x1a00, 0x21e7, 0x0000 },
-  { 0x1a00, 0x21e9, 0x0000 },
-  { 0x9a00, 0x21ec, 0x2000 },
-  { 0x1a00, 0x21eb, 0x0000 },
-  { 0x1a00, 0x21ed, 0x0000 },
-  { 0x9900, 0x220e, 0x6000 },
-  { 0x9900, 0x21fe, 0x5000 },
-  { 0x9900, 0x21f6, 0x4000 },
-  { 0x9a00, 0x21f2, 0x3000 },
-  { 0x9a00, 0x21f0, 0x2000 },
-  { 0x1a00, 0x21ef, 0x0000 },
-  { 0x1a00, 0x21f1, 0x0000 },
-  { 0x9900, 0x21f4, 0x2000 },
-  { 0x1a00, 0x21f3, 0x0000 },
-  { 0x1900, 0x21f5, 0x0000 },
-  { 0x9900, 0x21fa, 0x3000 },
-  { 0x9900, 0x21f8, 0x2000 },
-  { 0x1900, 0x21f7, 0x0000 },
-  { 0x1900, 0x21f9, 0x0000 },
-  { 0x9900, 0x21fc, 0x2000 },
-  { 0x1900, 0x21fb, 0x0000 },
-  { 0x1900, 0x21fd, 0x0000 },
-  { 0x9900, 0x2206, 0x4000 },
-  { 0x9900, 0x2202, 0x3000 },
-  { 0x9900, 0x2200, 0x2000 },
-  { 0x1900, 0x21ff, 0x0000 },
-  { 0x1900, 0x2201, 0x0000 },
-  { 0x9900, 0x2204, 0x2000 },
-  { 0x1900, 0x2203, 0x0000 },
-  { 0x1900, 0x2205, 0x0000 },
-  { 0x9900, 0x220a, 0x3000 },
-  { 0x9900, 0x2208, 0x2000 },
-  { 0x1900, 0x2207, 0x0000 },
-  { 0x1900, 0x2209, 0x0000 },
-  { 0x9900, 0x220c, 0x2000 },
-  { 0x1900, 0x220b, 0x0000 },
-  { 0x1900, 0x220d, 0x0000 },
-  { 0x9900, 0x221e, 0x5000 },
-  { 0x9900, 0x2216, 0x4000 },
-  { 0x9900, 0x2212, 0x3000 },
-  { 0x9900, 0x2210, 0x2000 },
-  { 0x1900, 0x220f, 0x0000 },
-  { 0x1900, 0x2211, 0x0000 },
-  { 0x9900, 0x2214, 0x2000 },
-  { 0x1900, 0x2213, 0x0000 },
-  { 0x1900, 0x2215, 0x0000 },
-  { 0x9900, 0x221a, 0x3000 },
-  { 0x9900, 0x2218, 0x2000 },
-  { 0x1900, 0x2217, 0x0000 },
-  { 0x1900, 0x2219, 0x0000 },
-  { 0x9900, 0x221c, 0x2000 },
-  { 0x1900, 0x221b, 0x0000 },
-  { 0x1900, 0x221d, 0x0000 },
-  { 0x9900, 0x2226, 0x4000 },
-  { 0x9900, 0x2222, 0x3000 },
-  { 0x9900, 0x2220, 0x2000 },
-  { 0x1900, 0x221f, 0x0000 },
-  { 0x1900, 0x2221, 0x0000 },
-  { 0x9900, 0x2224, 0x2000 },
-  { 0x1900, 0x2223, 0x0000 },
-  { 0x1900, 0x2225, 0x0000 },
-  { 0x9900, 0x222a, 0x3000 },
-  { 0x9900, 0x2228, 0x2000 },
-  { 0x1900, 0x2227, 0x0000 },
-  { 0x1900, 0x2229, 0x0000 },
-  { 0x9900, 0x222c, 0x2000 },
-  { 0x1900, 0x222b, 0x0000 },
-  { 0x1900, 0x222d, 0x0000 },
-  { 0x9900, 0x226e, 0x7000 },
-  { 0x9900, 0x224e, 0x6000 },
-  { 0x9900, 0x223e, 0x5000 },
-  { 0x9900, 0x2236, 0x4000 },
-  { 0x9900, 0x2232, 0x3000 },
-  { 0x9900, 0x2230, 0x2000 },
-  { 0x1900, 0x222f, 0x0000 },
-  { 0x1900, 0x2231, 0x0000 },
-  { 0x9900, 0x2234, 0x2000 },
-  { 0x1900, 0x2233, 0x0000 },
-  { 0x1900, 0x2235, 0x0000 },
-  { 0x9900, 0x223a, 0x3000 },
-  { 0x9900, 0x2238, 0x2000 },
-  { 0x1900, 0x2237, 0x0000 },
-  { 0x1900, 0x2239, 0x0000 },
-  { 0x9900, 0x223c, 0x2000 },
-  { 0x1900, 0x223b, 0x0000 },
-  { 0x1900, 0x223d, 0x0000 },
-  { 0x9900, 0x2246, 0x4000 },
-  { 0x9900, 0x2242, 0x3000 },
-  { 0x9900, 0x2240, 0x2000 },
-  { 0x1900, 0x223f, 0x0000 },
-  { 0x1900, 0x2241, 0x0000 },
-  { 0x9900, 0x2244, 0x2000 },
-  { 0x1900, 0x2243, 0x0000 },
-  { 0x1900, 0x2245, 0x0000 },
-  { 0x9900, 0x224a, 0x3000 },
-  { 0x9900, 0x2248, 0x2000 },
-  { 0x1900, 0x2247, 0x0000 },
-  { 0x1900, 0x2249, 0x0000 },
-  { 0x9900, 0x224c, 0x2000 },
-  { 0x1900, 0x224b, 0x0000 },
-  { 0x1900, 0x224d, 0x0000 },
-  { 0x9900, 0x225e, 0x5000 },
-  { 0x9900, 0x2256, 0x4000 },
-  { 0x9900, 0x2252, 0x3000 },
-  { 0x9900, 0x2250, 0x2000 },
-  { 0x1900, 0x224f, 0x0000 },
-  { 0x1900, 0x2251, 0x0000 },
-  { 0x9900, 0x2254, 0x2000 },
-  { 0x1900, 0x2253, 0x0000 },
-  { 0x1900, 0x2255, 0x0000 },
-  { 0x9900, 0x225a, 0x3000 },
-  { 0x9900, 0x2258, 0x2000 },
-  { 0x1900, 0x2257, 0x0000 },
-  { 0x1900, 0x2259, 0x0000 },
-  { 0x9900, 0x225c, 0x2000 },
-  { 0x1900, 0x225b, 0x0000 },
-  { 0x1900, 0x225d, 0x0000 },
-  { 0x9900, 0x2266, 0x4000 },
-  { 0x9900, 0x2262, 0x3000 },
-  { 0x9900, 0x2260, 0x2000 },
-  { 0x1900, 0x225f, 0x0000 },
-  { 0x1900, 0x2261, 0x0000 },
-  { 0x9900, 0x2264, 0x2000 },
-  { 0x1900, 0x2263, 0x0000 },
-  { 0x1900, 0x2265, 0x0000 },
-  { 0x9900, 0x226a, 0x3000 },
-  { 0x9900, 0x2268, 0x2000 },
-  { 0x1900, 0x2267, 0x0000 },
-  { 0x1900, 0x2269, 0x0000 },
-  { 0x9900, 0x226c, 0x2000 },
-  { 0x1900, 0x226b, 0x0000 },
-  { 0x1900, 0x226d, 0x0000 },
-  { 0x9900, 0x228e, 0x6000 },
-  { 0x9900, 0x227e, 0x5000 },
-  { 0x9900, 0x2276, 0x4000 },
-  { 0x9900, 0x2272, 0x3000 },
-  { 0x9900, 0x2270, 0x2000 },
-  { 0x1900, 0x226f, 0x0000 },
-  { 0x1900, 0x2271, 0x0000 },
-  { 0x9900, 0x2274, 0x2000 },
-  { 0x1900, 0x2273, 0x0000 },
-  { 0x1900, 0x2275, 0x0000 },
-  { 0x9900, 0x227a, 0x3000 },
-  { 0x9900, 0x2278, 0x2000 },
-  { 0x1900, 0x2277, 0x0000 },
-  { 0x1900, 0x2279, 0x0000 },
-  { 0x9900, 0x227c, 0x2000 },
-  { 0x1900, 0x227b, 0x0000 },
-  { 0x1900, 0x227d, 0x0000 },
-  { 0x9900, 0x2286, 0x4000 },
-  { 0x9900, 0x2282, 0x3000 },
-  { 0x9900, 0x2280, 0x2000 },
-  { 0x1900, 0x227f, 0x0000 },
-  { 0x1900, 0x2281, 0x0000 },
-  { 0x9900, 0x2284, 0x2000 },
-  { 0x1900, 0x2283, 0x0000 },
-  { 0x1900, 0x2285, 0x0000 },
-  { 0x9900, 0x228a, 0x3000 },
-  { 0x9900, 0x2288, 0x2000 },
-  { 0x1900, 0x2287, 0x0000 },
-  { 0x1900, 0x2289, 0x0000 },
-  { 0x9900, 0x228c, 0x2000 },
-  { 0x1900, 0x228b, 0x0000 },
-  { 0x1900, 0x228d, 0x0000 },
-  { 0x9900, 0x229e, 0x5000 },
-  { 0x9900, 0x2296, 0x4000 },
-  { 0x9900, 0x2292, 0x3000 },
-  { 0x9900, 0x2290, 0x2000 },
-  { 0x1900, 0x228f, 0x0000 },
-  { 0x1900, 0x2291, 0x0000 },
-  { 0x9900, 0x2294, 0x2000 },
-  { 0x1900, 0x2293, 0x0000 },
-  { 0x1900, 0x2295, 0x0000 },
-  { 0x9900, 0x229a, 0x3000 },
-  { 0x9900, 0x2298, 0x2000 },
-  { 0x1900, 0x2297, 0x0000 },
-  { 0x1900, 0x2299, 0x0000 },
-  { 0x9900, 0x229c, 0x2000 },
-  { 0x1900, 0x229b, 0x0000 },
-  { 0x1900, 0x229d, 0x0000 },
-  { 0x9900, 0x22a6, 0x4000 },
-  { 0x9900, 0x22a2, 0x3000 },
-  { 0x9900, 0x22a0, 0x2000 },
-  { 0x1900, 0x229f, 0x0000 },
-  { 0x1900, 0x22a1, 0x0000 },
-  { 0x9900, 0x22a4, 0x2000 },
-  { 0x1900, 0x22a3, 0x0000 },
-  { 0x1900, 0x22a5, 0x0000 },
-  { 0x9900, 0x22aa, 0x3000 },
-  { 0x9900, 0x22a8, 0x2000 },
-  { 0x1900, 0x22a7, 0x0000 },
-  { 0x1900, 0x22a9, 0x0000 },
-  { 0x9900, 0x22ac, 0x2000 },
-  { 0x1900, 0x22ab, 0x0000 },
-  { 0x1900, 0x22ad, 0x0000 },
-  { 0x8f00, 0x2787, 0xb000 },
-  { 0x9a00, 0x250b, 0xa000 },
-  { 0x9900, 0x23ae, 0x9000 },
-  { 0x9a00, 0x232e, 0x8000 },
-  { 0x9900, 0x22ee, 0x7000 },
-  { 0x9900, 0x22ce, 0x6000 },
-  { 0x9900, 0x22be, 0x5000 },
-  { 0x9900, 0x22b6, 0x4000 },
-  { 0x9900, 0x22b2, 0x3000 },
-  { 0x9900, 0x22b0, 0x2000 },
-  { 0x1900, 0x22af, 0x0000 },
-  { 0x1900, 0x22b1, 0x0000 },
-  { 0x9900, 0x22b4, 0x2000 },
-  { 0x1900, 0x22b3, 0x0000 },
-  { 0x1900, 0x22b5, 0x0000 },
-  { 0x9900, 0x22ba, 0x3000 },
-  { 0x9900, 0x22b8, 0x2000 },
-  { 0x1900, 0x22b7, 0x0000 },
-  { 0x1900, 0x22b9, 0x0000 },
-  { 0x9900, 0x22bc, 0x2000 },
-  { 0x1900, 0x22bb, 0x0000 },
-  { 0x1900, 0x22bd, 0x0000 },
-  { 0x9900, 0x22c6, 0x4000 },
-  { 0x9900, 0x22c2, 0x3000 },
-  { 0x9900, 0x22c0, 0x2000 },
-  { 0x1900, 0x22bf, 0x0000 },
-  { 0x1900, 0x22c1, 0x0000 },
-  { 0x9900, 0x22c4, 0x2000 },
-  { 0x1900, 0x22c3, 0x0000 },
-  { 0x1900, 0x22c5, 0x0000 },
-  { 0x9900, 0x22ca, 0x3000 },
-  { 0x9900, 0x22c8, 0x2000 },
-  { 0x1900, 0x22c7, 0x0000 },
-  { 0x1900, 0x22c9, 0x0000 },
-  { 0x9900, 0x22cc, 0x2000 },
-  { 0x1900, 0x22cb, 0x0000 },
-  { 0x1900, 0x22cd, 0x0000 },
-  { 0x9900, 0x22de, 0x5000 },
-  { 0x9900, 0x22d6, 0x4000 },
-  { 0x9900, 0x22d2, 0x3000 },
-  { 0x9900, 0x22d0, 0x2000 },
-  { 0x1900, 0x22cf, 0x0000 },
-  { 0x1900, 0x22d1, 0x0000 },
-  { 0x9900, 0x22d4, 0x2000 },
-  { 0x1900, 0x22d3, 0x0000 },
-  { 0x1900, 0x22d5, 0x0000 },
-  { 0x9900, 0x22da, 0x3000 },
-  { 0x9900, 0x22d8, 0x2000 },
-  { 0x1900, 0x22d7, 0x0000 },
-  { 0x1900, 0x22d9, 0x0000 },
-  { 0x9900, 0x22dc, 0x2000 },
-  { 0x1900, 0x22db, 0x0000 },
-  { 0x1900, 0x22dd, 0x0000 },
-  { 0x9900, 0x22e6, 0x4000 },
-  { 0x9900, 0x22e2, 0x3000 },
-  { 0x9900, 0x22e0, 0x2000 },
-  { 0x1900, 0x22df, 0x0000 },
-  { 0x1900, 0x22e1, 0x0000 },
-  { 0x9900, 0x22e4, 0x2000 },
-  { 0x1900, 0x22e3, 0x0000 },
-  { 0x1900, 0x22e5, 0x0000 },
-  { 0x9900, 0x22ea, 0x3000 },
-  { 0x9900, 0x22e8, 0x2000 },
-  { 0x1900, 0x22e7, 0x0000 },
-  { 0x1900, 0x22e9, 0x0000 },
-  { 0x9900, 0x22ec, 0x2000 },
-  { 0x1900, 0x22eb, 0x0000 },
-  { 0x1900, 0x22ed, 0x0000 },
-  { 0x9a00, 0x230e, 0x6000 },
-  { 0x9900, 0x22fe, 0x5000 },
-  { 0x9900, 0x22f6, 0x4000 },
-  { 0x9900, 0x22f2, 0x3000 },
-  { 0x9900, 0x22f0, 0x2000 },
-  { 0x1900, 0x22ef, 0x0000 },
-  { 0x1900, 0x22f1, 0x0000 },
-  { 0x9900, 0x22f4, 0x2000 },
-  { 0x1900, 0x22f3, 0x0000 },
-  { 0x1900, 0x22f5, 0x0000 },
-  { 0x9900, 0x22fa, 0x3000 },
-  { 0x9900, 0x22f8, 0x2000 },
-  { 0x1900, 0x22f7, 0x0000 },
-  { 0x1900, 0x22f9, 0x0000 },
-  { 0x9900, 0x22fc, 0x2000 },
-  { 0x1900, 0x22fb, 0x0000 },
-  { 0x1900, 0x22fd, 0x0000 },
-  { 0x9a00, 0x2306, 0x4000 },
-  { 0x9a00, 0x2302, 0x3000 },
-  { 0x9a00, 0x2300, 0x2000 },
-  { 0x1900, 0x22ff, 0x0000 },
-  { 0x1a00, 0x2301, 0x0000 },
-  { 0x9a00, 0x2304, 0x2000 },
-  { 0x1a00, 0x2303, 0x0000 },
-  { 0x1a00, 0x2305, 0x0000 },
-  { 0x9900, 0x230a, 0x3000 },
-  { 0x9900, 0x2308, 0x2000 },
-  { 0x1a00, 0x2307, 0x0000 },
-  { 0x1900, 0x2309, 0x0000 },
-  { 0x9a00, 0x230c, 0x2000 },
-  { 0x1900, 0x230b, 0x0000 },
-  { 0x1a00, 0x230d, 0x0000 },
-  { 0x9a00, 0x231e, 0x5000 },
-  { 0x9a00, 0x2316, 0x4000 },
-  { 0x9a00, 0x2312, 0x3000 },
-  { 0x9a00, 0x2310, 0x2000 },
-  { 0x1a00, 0x230f, 0x0000 },
-  { 0x1a00, 0x2311, 0x0000 },
-  { 0x9a00, 0x2314, 0x2000 },
-  { 0x1a00, 0x2313, 0x0000 },
-  { 0x1a00, 0x2315, 0x0000 },
-  { 0x9a00, 0x231a, 0x3000 },
-  { 0x9a00, 0x2318, 0x2000 },
-  { 0x1a00, 0x2317, 0x0000 },
-  { 0x1a00, 0x2319, 0x0000 },
-  { 0x9a00, 0x231c, 0x2000 },
-  { 0x1a00, 0x231b, 0x0000 },
-  { 0x1a00, 0x231d, 0x0000 },
-  { 0x9a00, 0x2326, 0x4000 },
-  { 0x9a00, 0x2322, 0x3000 },
-  { 0x9900, 0x2320, 0x2000 },
-  { 0x1a00, 0x231f, 0x0000 },
-  { 0x1900, 0x2321, 0x0000 },
-  { 0x9a00, 0x2324, 0x2000 },
-  { 0x1a00, 0x2323, 0x0000 },
-  { 0x1a00, 0x2325, 0x0000 },
-  { 0x9200, 0x232a, 0x3000 },
-  { 0x9a00, 0x2328, 0x2000 },
-  { 0x1a00, 0x2327, 0x0000 },
-  { 0x1600, 0x2329, 0x0000 },
-  { 0x9a00, 0x232c, 0x2000 },
-  { 0x1a00, 0x232b, 0x0000 },
-  { 0x1a00, 0x232d, 0x0000 },
-  { 0x9a00, 0x236e, 0x7000 },
-  { 0x9a00, 0x234e, 0x6000 },
-  { 0x9a00, 0x233e, 0x5000 },
-  { 0x9a00, 0x2336, 0x4000 },
-  { 0x9a00, 0x2332, 0x3000 },
-  { 0x9a00, 0x2330, 0x2000 },
-  { 0x1a00, 0x232f, 0x0000 },
-  { 0x1a00, 0x2331, 0x0000 },
-  { 0x9a00, 0x2334, 0x2000 },
-  { 0x1a00, 0x2333, 0x0000 },
-  { 0x1a00, 0x2335, 0x0000 },
-  { 0x9a00, 0x233a, 0x3000 },
-  { 0x9a00, 0x2338, 0x2000 },
-  { 0x1a00, 0x2337, 0x0000 },
-  { 0x1a00, 0x2339, 0x0000 },
-  { 0x9a00, 0x233c, 0x2000 },
-  { 0x1a00, 0x233b, 0x0000 },
-  { 0x1a00, 0x233d, 0x0000 },
-  { 0x9a00, 0x2346, 0x4000 },
-  { 0x9a00, 0x2342, 0x3000 },
-  { 0x9a00, 0x2340, 0x2000 },
-  { 0x1a00, 0x233f, 0x0000 },
-  { 0x1a00, 0x2341, 0x0000 },
-  { 0x9a00, 0x2344, 0x2000 },
-  { 0x1a00, 0x2343, 0x0000 },
-  { 0x1a00, 0x2345, 0x0000 },
-  { 0x9a00, 0x234a, 0x3000 },
-  { 0x9a00, 0x2348, 0x2000 },
-  { 0x1a00, 0x2347, 0x0000 },
-  { 0x1a00, 0x2349, 0x0000 },
-  { 0x9a00, 0x234c, 0x2000 },
-  { 0x1a00, 0x234b, 0x0000 },
-  { 0x1a00, 0x234d, 0x0000 },
-  { 0x9a00, 0x235e, 0x5000 },
-  { 0x9a00, 0x2356, 0x4000 },
-  { 0x9a00, 0x2352, 0x3000 },
-  { 0x9a00, 0x2350, 0x2000 },
-  { 0x1a00, 0x234f, 0x0000 },
-  { 0x1a00, 0x2351, 0x0000 },
-  { 0x9a00, 0x2354, 0x2000 },
-  { 0x1a00, 0x2353, 0x0000 },
-  { 0x1a00, 0x2355, 0x0000 },
-  { 0x9a00, 0x235a, 0x3000 },
-  { 0x9a00, 0x2358, 0x2000 },
-  { 0x1a00, 0x2357, 0x0000 },
-  { 0x1a00, 0x2359, 0x0000 },
-  { 0x9a00, 0x235c, 0x2000 },
-  { 0x1a00, 0x235b, 0x0000 },
-  { 0x1a00, 0x235d, 0x0000 },
-  { 0x9a00, 0x2366, 0x4000 },
-  { 0x9a00, 0x2362, 0x3000 },
-  { 0x9a00, 0x2360, 0x2000 },
-  { 0x1a00, 0x235f, 0x0000 },
-  { 0x1a00, 0x2361, 0x0000 },
-  { 0x9a00, 0x2364, 0x2000 },
-  { 0x1a00, 0x2363, 0x0000 },
-  { 0x1a00, 0x2365, 0x0000 },
-  { 0x9a00, 0x236a, 0x3000 },
-  { 0x9a00, 0x2368, 0x2000 },
-  { 0x1a00, 0x2367, 0x0000 },
-  { 0x1a00, 0x2369, 0x0000 },
-  { 0x9a00, 0x236c, 0x2000 },
-  { 0x1a00, 0x236b, 0x0000 },
-  { 0x1a00, 0x236d, 0x0000 },
-  { 0x9a00, 0x238e, 0x6000 },
-  { 0x9a00, 0x237e, 0x5000 },
-  { 0x9a00, 0x2376, 0x4000 },
-  { 0x9a00, 0x2372, 0x3000 },
-  { 0x9a00, 0x2370, 0x2000 },
-  { 0x1a00, 0x236f, 0x0000 },
-  { 0x1a00, 0x2371, 0x0000 },
-  { 0x9a00, 0x2374, 0x2000 },
-  { 0x1a00, 0x2373, 0x0000 },
-  { 0x1a00, 0x2375, 0x0000 },
-  { 0x9a00, 0x237a, 0x3000 },
-  { 0x9a00, 0x2378, 0x2000 },
-  { 0x1a00, 0x2377, 0x0000 },
-  { 0x1a00, 0x2379, 0x0000 },
-  { 0x9900, 0x237c, 0x2000 },
-  { 0x1a00, 0x237b, 0x0000 },
-  { 0x1a00, 0x237d, 0x0000 },
-  { 0x9a00, 0x2386, 0x4000 },
-  { 0x9a00, 0x2382, 0x3000 },
-  { 0x9a00, 0x2380, 0x2000 },
-  { 0x1a00, 0x237f, 0x0000 },
-  { 0x1a00, 0x2381, 0x0000 },
-  { 0x9a00, 0x2384, 0x2000 },
-  { 0x1a00, 0x2383, 0x0000 },
-  { 0x1a00, 0x2385, 0x0000 },
-  { 0x9a00, 0x238a, 0x3000 },
-  { 0x9a00, 0x2388, 0x2000 },
-  { 0x1a00, 0x2387, 0x0000 },
-  { 0x1a00, 0x2389, 0x0000 },
-  { 0x9a00, 0x238c, 0x2000 },
-  { 0x1a00, 0x238b, 0x0000 },
-  { 0x1a00, 0x238d, 0x0000 },
-  { 0x9900, 0x239e, 0x5000 },
-  { 0x9a00, 0x2396, 0x4000 },
-  { 0x9a00, 0x2392, 0x3000 },
-  { 0x9a00, 0x2390, 0x2000 },
-  { 0x1a00, 0x238f, 0x0000 },
-  { 0x1a00, 0x2391, 0x0000 },
-  { 0x9a00, 0x2394, 0x2000 },
-  { 0x1a00, 0x2393, 0x0000 },
-  { 0x1a00, 0x2395, 0x0000 },
-  { 0x9a00, 0x239a, 0x3000 },
-  { 0x9a00, 0x2398, 0x2000 },
-  { 0x1a00, 0x2397, 0x0000 },
-  { 0x1a00, 0x2399, 0x0000 },
-  { 0x9900, 0x239c, 0x2000 },
-  { 0x1900, 0x239b, 0x0000 },
-  { 0x1900, 0x239d, 0x0000 },
-  { 0x9900, 0x23a6, 0x4000 },
-  { 0x9900, 0x23a2, 0x3000 },
-  { 0x9900, 0x23a0, 0x2000 },
-  { 0x1900, 0x239f, 0x0000 },
-  { 0x1900, 0x23a1, 0x0000 },
-  { 0x9900, 0x23a4, 0x2000 },
-  { 0x1900, 0x23a3, 0x0000 },
-  { 0x1900, 0x23a5, 0x0000 },
-  { 0x9900, 0x23aa, 0x3000 },
-  { 0x9900, 0x23a8, 0x2000 },
-  { 0x1900, 0x23a7, 0x0000 },
-  { 0x1900, 0x23a9, 0x0000 },
-  { 0x9900, 0x23ac, 0x2000 },
-  { 0x1900, 0x23ab, 0x0000 },
-  { 0x1900, 0x23ad, 0x0000 },
-  { 0x8f00, 0x248b, 0x8000 },
-  { 0x9a00, 0x241d, 0x7000 },
-  { 0x9a00, 0x23ce, 0x6000 },
-  { 0x9a00, 0x23be, 0x5000 },
-  { 0x9500, 0x23b6, 0x4000 },
-  { 0x9900, 0x23b2, 0x3000 },
-  { 0x9900, 0x23b0, 0x2000 },
-  { 0x1900, 0x23af, 0x0000 },
-  { 0x1900, 0x23b1, 0x0000 },
-  { 0x9600, 0x23b4, 0x2000 },
-  { 0x1900, 0x23b3, 0x0000 },
-  { 0x1200, 0x23b5, 0x0000 },
-  { 0x9a00, 0x23ba, 0x3000 },
-  { 0x9a00, 0x23b8, 0x2000 },
-  { 0x1a00, 0x23b7, 0x0000 },
-  { 0x1a00, 0x23b9, 0x0000 },
-  { 0x9a00, 0x23bc, 0x2000 },
-  { 0x1a00, 0x23bb, 0x0000 },
-  { 0x1a00, 0x23bd, 0x0000 },
-  { 0x9a00, 0x23c6, 0x4000 },
-  { 0x9a00, 0x23c2, 0x3000 },
-  { 0x9a00, 0x23c0, 0x2000 },
-  { 0x1a00, 0x23bf, 0x0000 },
-  { 0x1a00, 0x23c1, 0x0000 },
-  { 0x9a00, 0x23c4, 0x2000 },
-  { 0x1a00, 0x23c3, 0x0000 },
-  { 0x1a00, 0x23c5, 0x0000 },
-  { 0x9a00, 0x23ca, 0x3000 },
-  { 0x9a00, 0x23c8, 0x2000 },
-  { 0x1a00, 0x23c7, 0x0000 },
-  { 0x1a00, 0x23c9, 0x0000 },
-  { 0x9a00, 0x23cc, 0x2000 },
-  { 0x1a00, 0x23cb, 0x0000 },
-  { 0x1a00, 0x23cd, 0x0000 },
-  { 0x9a00, 0x240d, 0x5000 },
-  { 0x9a00, 0x2405, 0x4000 },
-  { 0x9a00, 0x2401, 0x3000 },
-  { 0x9a00, 0x23d0, 0x2000 },
-  { 0x1a00, 0x23cf, 0x0000 },
-  { 0x1a00, 0x2400, 0x0000 },
-  { 0x9a00, 0x2403, 0x2000 },
-  { 0x1a00, 0x2402, 0x0000 },
-  { 0x1a00, 0x2404, 0x0000 },
-  { 0x9a00, 0x2409, 0x3000 },
-  { 0x9a00, 0x2407, 0x2000 },
-  { 0x1a00, 0x2406, 0x0000 },
-  { 0x1a00, 0x2408, 0x0000 },
-  { 0x9a00, 0x240b, 0x2000 },
-  { 0x1a00, 0x240a, 0x0000 },
-  { 0x1a00, 0x240c, 0x0000 },
-  { 0x9a00, 0x2415, 0x4000 },
-  { 0x9a00, 0x2411, 0x3000 },
-  { 0x9a00, 0x240f, 0x2000 },
-  { 0x1a00, 0x240e, 0x0000 },
-  { 0x1a00, 0x2410, 0x0000 },
-  { 0x9a00, 0x2413, 0x2000 },
-  { 0x1a00, 0x2412, 0x0000 },
-  { 0x1a00, 0x2414, 0x0000 },
-  { 0x9a00, 0x2419, 0x3000 },
-  { 0x9a00, 0x2417, 0x2000 },
-  { 0x1a00, 0x2416, 0x0000 },
-  { 0x1a00, 0x2418, 0x0000 },
-  { 0x9a00, 0x241b, 0x2000 },
-  { 0x1a00, 0x241a, 0x0000 },
-  { 0x1a00, 0x241c, 0x0000 },
-  { 0x8f00, 0x246b, 0x6000 },
-  { 0x9a00, 0x2446, 0x5000 },
-  { 0x9a00, 0x2425, 0x4000 },
-  { 0x9a00, 0x2421, 0x3000 },
-  { 0x9a00, 0x241f, 0x2000 },
-  { 0x1a00, 0x241e, 0x0000 },
-  { 0x1a00, 0x2420, 0x0000 },
-  { 0x9a00, 0x2423, 0x2000 },
-  { 0x1a00, 0x2422, 0x0000 },
-  { 0x1a00, 0x2424, 0x0000 },
-  { 0x9a00, 0x2442, 0x3000 },
-  { 0x9a00, 0x2440, 0x2000 },
-  { 0x1a00, 0x2426, 0x0000 },
-  { 0x1a00, 0x2441, 0x0000 },
-  { 0x9a00, 0x2444, 0x2000 },
-  { 0x1a00, 0x2443, 0x0000 },
-  { 0x1a00, 0x2445, 0x0000 },
-  { 0x8f00, 0x2463, 0x4000 },
-  { 0x9a00, 0x244a, 0x3000 },
-  { 0x9a00, 0x2448, 0x2000 },
-  { 0x1a00, 0x2447, 0x0000 },
-  { 0x1a00, 0x2449, 0x0000 },
-  { 0x8f00, 0x2461, 0x2000 },
-  { 0x0f00, 0x2460, 0x0000 },
-  { 0x0f00, 0x2462, 0x0000 },
-  { 0x8f00, 0x2467, 0x3000 },
-  { 0x8f00, 0x2465, 0x2000 },
-  { 0x0f00, 0x2464, 0x0000 },
-  { 0x0f00, 0x2466, 0x0000 },
-  { 0x8f00, 0x2469, 0x2000 },
-  { 0x0f00, 0x2468, 0x0000 },
-  { 0x0f00, 0x246a, 0x0000 },
-  { 0x8f00, 0x247b, 0x5000 },
-  { 0x8f00, 0x2473, 0x4000 },
-  { 0x8f00, 0x246f, 0x3000 },
-  { 0x8f00, 0x246d, 0x2000 },
-  { 0x0f00, 0x246c, 0x0000 },
-  { 0x0f00, 0x246e, 0x0000 },
-  { 0x8f00, 0x2471, 0x2000 },
-  { 0x0f00, 0x2470, 0x0000 },
-  { 0x0f00, 0x2472, 0x0000 },
-  { 0x8f00, 0x2477, 0x3000 },
-  { 0x8f00, 0x2475, 0x2000 },
-  { 0x0f00, 0x2474, 0x0000 },
-  { 0x0f00, 0x2476, 0x0000 },
-  { 0x8f00, 0x2479, 0x2000 },
-  { 0x0f00, 0x2478, 0x0000 },
-  { 0x0f00, 0x247a, 0x0000 },
-  { 0x8f00, 0x2483, 0x4000 },
-  { 0x8f00, 0x247f, 0x3000 },
-  { 0x8f00, 0x247d, 0x2000 },
-  { 0x0f00, 0x247c, 0x0000 },
-  { 0x0f00, 0x247e, 0x0000 },
-  { 0x8f00, 0x2481, 0x2000 },
-  { 0x0f00, 0x2480, 0x0000 },
-  { 0x0f00, 0x2482, 0x0000 },
-  { 0x8f00, 0x2487, 0x3000 },
-  { 0x8f00, 0x2485, 0x2000 },
-  { 0x0f00, 0x2484, 0x0000 },
-  { 0x0f00, 0x2486, 0x0000 },
-  { 0x8f00, 0x2489, 0x2000 },
-  { 0x0f00, 0x2488, 0x0000 },
-  { 0x0f00, 0x248a, 0x0000 },
-  { 0x9a00, 0x24cb, 0x7000 },
-  { 0x9a00, 0x24ab, 0x6000 },
-  { 0x8f00, 0x249b, 0x5000 },
-  { 0x8f00, 0x2493, 0x4000 },
-  { 0x8f00, 0x248f, 0x3000 },
-  { 0x8f00, 0x248d, 0x2000 },
-  { 0x0f00, 0x248c, 0x0000 },
-  { 0x0f00, 0x248e, 0x0000 },
-  { 0x8f00, 0x2491, 0x2000 },
-  { 0x0f00, 0x2490, 0x0000 },
-  { 0x0f00, 0x2492, 0x0000 },
-  { 0x8f00, 0x2497, 0x3000 },
-  { 0x8f00, 0x2495, 0x2000 },
-  { 0x0f00, 0x2494, 0x0000 },
-  { 0x0f00, 0x2496, 0x0000 },
-  { 0x8f00, 0x2499, 0x2000 },
-  { 0x0f00, 0x2498, 0x0000 },
-  { 0x0f00, 0x249a, 0x0000 },
-  { 0x9a00, 0x24a3, 0x4000 },
-  { 0x9a00, 0x249f, 0x3000 },
-  { 0x9a00, 0x249d, 0x2000 },
-  { 0x1a00, 0x249c, 0x0000 },
-  { 0x1a00, 0x249e, 0x0000 },
-  { 0x9a00, 0x24a1, 0x2000 },
-  { 0x1a00, 0x24a0, 0x0000 },
-  { 0x1a00, 0x24a2, 0x0000 },
-  { 0x9a00, 0x24a7, 0x3000 },
-  { 0x9a00, 0x24a5, 0x2000 },
-  { 0x1a00, 0x24a4, 0x0000 },
-  { 0x1a00, 0x24a6, 0x0000 },
-  { 0x9a00, 0x24a9, 0x2000 },
-  { 0x1a00, 0x24a8, 0x0000 },
-  { 0x1a00, 0x24aa, 0x0000 },
-  { 0x9a00, 0x24bb, 0x5000 },
-  { 0x9a00, 0x24b3, 0x4000 },
-  { 0x9a00, 0x24af, 0x3000 },
-  { 0x9a00, 0x24ad, 0x2000 },
-  { 0x1a00, 0x24ac, 0x0000 },
-  { 0x1a00, 0x24ae, 0x0000 },
-  { 0x9a00, 0x24b1, 0x2000 },
-  { 0x1a00, 0x24b0, 0x0000 },
-  { 0x1a00, 0x24b2, 0x0000 },
-  { 0x9a00, 0x24b7, 0x3000 },
-  { 0x9a00, 0x24b5, 0x2000 },
-  { 0x1a00, 0x24b4, 0x0000 },
-  { 0x1a00, 0x24b6, 0x0000 },
-  { 0x9a00, 0x24b9, 0x2000 },
-  { 0x1a00, 0x24b8, 0x0000 },
-  { 0x1a00, 0x24ba, 0x0000 },
-  { 0x9a00, 0x24c3, 0x4000 },
-  { 0x9a00, 0x24bf, 0x3000 },
-  { 0x9a00, 0x24bd, 0x2000 },
-  { 0x1a00, 0x24bc, 0x0000 },
-  { 0x1a00, 0x24be, 0x0000 },
-  { 0x9a00, 0x24c1, 0x2000 },
-  { 0x1a00, 0x24c0, 0x0000 },
-  { 0x1a00, 0x24c2, 0x0000 },
-  { 0x9a00, 0x24c7, 0x3000 },
-  { 0x9a00, 0x24c5, 0x2000 },
-  { 0x1a00, 0x24c4, 0x0000 },
-  { 0x1a00, 0x24c6, 0x0000 },
-  { 0x9a00, 0x24c9, 0x2000 },
-  { 0x1a00, 0x24c8, 0x0000 },
-  { 0x1a00, 0x24ca, 0x0000 },
-  { 0x8f00, 0x24eb, 0x6000 },
-  { 0x9a00, 0x24db, 0x5000 },
-  { 0x9a00, 0x24d3, 0x4000 },
-  { 0x9a00, 0x24cf, 0x3000 },
-  { 0x9a00, 0x24cd, 0x2000 },
-  { 0x1a00, 0x24cc, 0x0000 },
-  { 0x1a00, 0x24ce, 0x0000 },
-  { 0x9a00, 0x24d1, 0x2000 },
-  { 0x1a00, 0x24d0, 0x0000 },
-  { 0x1a00, 0x24d2, 0x0000 },
-  { 0x9a00, 0x24d7, 0x3000 },
-  { 0x9a00, 0x24d5, 0x2000 },
-  { 0x1a00, 0x24d4, 0x0000 },
-  { 0x1a00, 0x24d6, 0x0000 },
-  { 0x9a00, 0x24d9, 0x2000 },
-  { 0x1a00, 0x24d8, 0x0000 },
-  { 0x1a00, 0x24da, 0x0000 },
-  { 0x9a00, 0x24e3, 0x4000 },
-  { 0x9a00, 0x24df, 0x3000 },
-  { 0x9a00, 0x24dd, 0x2000 },
-  { 0x1a00, 0x24dc, 0x0000 },
-  { 0x1a00, 0x24de, 0x0000 },
-  { 0x9a00, 0x24e1, 0x2000 },
-  { 0x1a00, 0x24e0, 0x0000 },
-  { 0x1a00, 0x24e2, 0x0000 },
-  { 0x9a00, 0x24e7, 0x3000 },
-  { 0x9a00, 0x24e5, 0x2000 },
-  { 0x1a00, 0x24e4, 0x0000 },
-  { 0x1a00, 0x24e6, 0x0000 },
-  { 0x9a00, 0x24e9, 0x2000 },
-  { 0x1a00, 0x24e8, 0x0000 },
-  { 0x0f00, 0x24ea, 0x0000 },
-  { 0x8f00, 0x24fb, 0x5000 },
-  { 0x8f00, 0x24f3, 0x4000 },
-  { 0x8f00, 0x24ef, 0x3000 },
-  { 0x8f00, 0x24ed, 0x2000 },
-  { 0x0f00, 0x24ec, 0x0000 },
-  { 0x0f00, 0x24ee, 0x0000 },
-  { 0x8f00, 0x24f1, 0x2000 },
-  { 0x0f00, 0x24f0, 0x0000 },
-  { 0x0f00, 0x24f2, 0x0000 },
-  { 0x8f00, 0x24f7, 0x3000 },
-  { 0x8f00, 0x24f5, 0x2000 },
-  { 0x0f00, 0x24f4, 0x0000 },
-  { 0x0f00, 0x24f6, 0x0000 },
-  { 0x8f00, 0x24f9, 0x2000 },
-  { 0x0f00, 0x24f8, 0x0000 },
-  { 0x0f00, 0x24fa, 0x0000 },
-  { 0x9a00, 0x2503, 0x4000 },
-  { 0x8f00, 0x24ff, 0x3000 },
-  { 0x8f00, 0x24fd, 0x2000 },
-  { 0x0f00, 0x24fc, 0x0000 },
-  { 0x0f00, 0x24fe, 0x0000 },
-  { 0x9a00, 0x2501, 0x2000 },
-  { 0x1a00, 0x2500, 0x0000 },
-  { 0x1a00, 0x2502, 0x0000 },
-  { 0x9a00, 0x2507, 0x3000 },
-  { 0x9a00, 0x2505, 0x2000 },
-  { 0x1a00, 0x2504, 0x0000 },
-  { 0x1a00, 0x2506, 0x0000 },
-  { 0x9a00, 0x2509, 0x2000 },
-  { 0x1a00, 0x2508, 0x0000 },
-  { 0x1a00, 0x250a, 0x0000 },
-  { 0x9a00, 0x260b, 0x9000 },
-  { 0x9a00, 0x258b, 0x8000 },
-  { 0x9a00, 0x254b, 0x7000 },
-  { 0x9a00, 0x252b, 0x6000 },
-  { 0x9a00, 0x251b, 0x5000 },
-  { 0x9a00, 0x2513, 0x4000 },
-  { 0x9a00, 0x250f, 0x3000 },
-  { 0x9a00, 0x250d, 0x2000 },
-  { 0x1a00, 0x250c, 0x0000 },
-  { 0x1a00, 0x250e, 0x0000 },
-  { 0x9a00, 0x2511, 0x2000 },
-  { 0x1a00, 0x2510, 0x0000 },
-  { 0x1a00, 0x2512, 0x0000 },
-  { 0x9a00, 0x2517, 0x3000 },
-  { 0x9a00, 0x2515, 0x2000 },
-  { 0x1a00, 0x2514, 0x0000 },
-  { 0x1a00, 0x2516, 0x0000 },
-  { 0x9a00, 0x2519, 0x2000 },
-  { 0x1a00, 0x2518, 0x0000 },
-  { 0x1a00, 0x251a, 0x0000 },
-  { 0x9a00, 0x2523, 0x4000 },
-  { 0x9a00, 0x251f, 0x3000 },
-  { 0x9a00, 0x251d, 0x2000 },
-  { 0x1a00, 0x251c, 0x0000 },
-  { 0x1a00, 0x251e, 0x0000 },
-  { 0x9a00, 0x2521, 0x2000 },
-  { 0x1a00, 0x2520, 0x0000 },
-  { 0x1a00, 0x2522, 0x0000 },
-  { 0x9a00, 0x2527, 0x3000 },
-  { 0x9a00, 0x2525, 0x2000 },
-  { 0x1a00, 0x2524, 0x0000 },
-  { 0x1a00, 0x2526, 0x0000 },
-  { 0x9a00, 0x2529, 0x2000 },
-  { 0x1a00, 0x2528, 0x0000 },
-  { 0x1a00, 0x252a, 0x0000 },
-  { 0x9a00, 0x253b, 0x5000 },
-  { 0x9a00, 0x2533, 0x4000 },
-  { 0x9a00, 0x252f, 0x3000 },
-  { 0x9a00, 0x252d, 0x2000 },
-  { 0x1a00, 0x252c, 0x0000 },
-  { 0x1a00, 0x252e, 0x0000 },
-  { 0x9a00, 0x2531, 0x2000 },
-  { 0x1a00, 0x2530, 0x0000 },
-  { 0x1a00, 0x2532, 0x0000 },
-  { 0x9a00, 0x2537, 0x3000 },
-  { 0x9a00, 0x2535, 0x2000 },
-  { 0x1a00, 0x2534, 0x0000 },
-  { 0x1a00, 0x2536, 0x0000 },
-  { 0x9a00, 0x2539, 0x2000 },
-  { 0x1a00, 0x2538, 0x0000 },
-  { 0x1a00, 0x253a, 0x0000 },
-  { 0x9a00, 0x2543, 0x4000 },
-  { 0x9a00, 0x253f, 0x3000 },
-  { 0x9a00, 0x253d, 0x2000 },
-  { 0x1a00, 0x253c, 0x0000 },
-  { 0x1a00, 0x253e, 0x0000 },
-  { 0x9a00, 0x2541, 0x2000 },
-  { 0x1a00, 0x2540, 0x0000 },
-  { 0x1a00, 0x2542, 0x0000 },
-  { 0x9a00, 0x2547, 0x3000 },
-  { 0x9a00, 0x2545, 0x2000 },
-  { 0x1a00, 0x2544, 0x0000 },
-  { 0x1a00, 0x2546, 0x0000 },
-  { 0x9a00, 0x2549, 0x2000 },
-  { 0x1a00, 0x2548, 0x0000 },
-  { 0x1a00, 0x254a, 0x0000 },
-  { 0x9a00, 0x256b, 0x6000 },
-  { 0x9a00, 0x255b, 0x5000 },
-  { 0x9a00, 0x2553, 0x4000 },
-  { 0x9a00, 0x254f, 0x3000 },
-  { 0x9a00, 0x254d, 0x2000 },
-  { 0x1a00, 0x254c, 0x0000 },
-  { 0x1a00, 0x254e, 0x0000 },
-  { 0x9a00, 0x2551, 0x2000 },
-  { 0x1a00, 0x2550, 0x0000 },
-  { 0x1a00, 0x2552, 0x0000 },
-  { 0x9a00, 0x2557, 0x3000 },
-  { 0x9a00, 0x2555, 0x2000 },
-  { 0x1a00, 0x2554, 0x0000 },
-  { 0x1a00, 0x2556, 0x0000 },
-  { 0x9a00, 0x2559, 0x2000 },
-  { 0x1a00, 0x2558, 0x0000 },
-  { 0x1a00, 0x255a, 0x0000 },
-  { 0x9a00, 0x2563, 0x4000 },
-  { 0x9a00, 0x255f, 0x3000 },
-  { 0x9a00, 0x255d, 0x2000 },
-  { 0x1a00, 0x255c, 0x0000 },
-  { 0x1a00, 0x255e, 0x0000 },
-  { 0x9a00, 0x2561, 0x2000 },
-  { 0x1a00, 0x2560, 0x0000 },
-  { 0x1a00, 0x2562, 0x0000 },
-  { 0x9a00, 0x2567, 0x3000 },
-  { 0x9a00, 0x2565, 0x2000 },
-  { 0x1a00, 0x2564, 0x0000 },
-  { 0x1a00, 0x2566, 0x0000 },
-  { 0x9a00, 0x2569, 0x2000 },
-  { 0x1a00, 0x2568, 0x0000 },
-  { 0x1a00, 0x256a, 0x0000 },
-  { 0x9a00, 0x257b, 0x5000 },
-  { 0x9a00, 0x2573, 0x4000 },
-  { 0x9a00, 0x256f, 0x3000 },
-  { 0x9a00, 0x256d, 0x2000 },
-  { 0x1a00, 0x256c, 0x0000 },
-  { 0x1a00, 0x256e, 0x0000 },
-  { 0x9a00, 0x2571, 0x2000 },
-  { 0x1a00, 0x2570, 0x0000 },
-  { 0x1a00, 0x2572, 0x0000 },
-  { 0x9a00, 0x2577, 0x3000 },
-  { 0x9a00, 0x2575, 0x2000 },
-  { 0x1a00, 0x2574, 0x0000 },
-  { 0x1a00, 0x2576, 0x0000 },
-  { 0x9a00, 0x2579, 0x2000 },
-  { 0x1a00, 0x2578, 0x0000 },
-  { 0x1a00, 0x257a, 0x0000 },
-  { 0x9a00, 0x2583, 0x4000 },
-  { 0x9a00, 0x257f, 0x3000 },
-  { 0x9a00, 0x257d, 0x2000 },
-  { 0x1a00, 0x257c, 0x0000 },
-  { 0x1a00, 0x257e, 0x0000 },
-  { 0x9a00, 0x2581, 0x2000 },
-  { 0x1a00, 0x2580, 0x0000 },
-  { 0x1a00, 0x2582, 0x0000 },
-  { 0x9a00, 0x2587, 0x3000 },
-  { 0x9a00, 0x2585, 0x2000 },
-  { 0x1a00, 0x2584, 0x0000 },
-  { 0x1a00, 0x2586, 0x0000 },
-  { 0x9a00, 0x2589, 0x2000 },
-  { 0x1a00, 0x2588, 0x0000 },
-  { 0x1a00, 0x258a, 0x0000 },
-  { 0x9a00, 0x25cb, 0x7000 },
-  { 0x9a00, 0x25ab, 0x6000 },
-  { 0x9a00, 0x259b, 0x5000 },
-  { 0x9a00, 0x2593, 0x4000 },
-  { 0x9a00, 0x258f, 0x3000 },
-  { 0x9a00, 0x258d, 0x2000 },
-  { 0x1a00, 0x258c, 0x0000 },
-  { 0x1a00, 0x258e, 0x0000 },
-  { 0x9a00, 0x2591, 0x2000 },
-  { 0x1a00, 0x2590, 0x0000 },
-  { 0x1a00, 0x2592, 0x0000 },
-  { 0x9a00, 0x2597, 0x3000 },
-  { 0x9a00, 0x2595, 0x2000 },
-  { 0x1a00, 0x2594, 0x0000 },
-  { 0x1a00, 0x2596, 0x0000 },
-  { 0x9a00, 0x2599, 0x2000 },
-  { 0x1a00, 0x2598, 0x0000 },
-  { 0x1a00, 0x259a, 0x0000 },
-  { 0x9a00, 0x25a3, 0x4000 },
-  { 0x9a00, 0x259f, 0x3000 },
-  { 0x9a00, 0x259d, 0x2000 },
-  { 0x1a00, 0x259c, 0x0000 },
-  { 0x1a00, 0x259e, 0x0000 },
-  { 0x9a00, 0x25a1, 0x2000 },
-  { 0x1a00, 0x25a0, 0x0000 },
-  { 0x1a00, 0x25a2, 0x0000 },
-  { 0x9a00, 0x25a7, 0x3000 },
-  { 0x9a00, 0x25a5, 0x2000 },
-  { 0x1a00, 0x25a4, 0x0000 },
-  { 0x1a00, 0x25a6, 0x0000 },
-  { 0x9a00, 0x25a9, 0x2000 },
-  { 0x1a00, 0x25a8, 0x0000 },
-  { 0x1a00, 0x25aa, 0x0000 },
-  { 0x9a00, 0x25bb, 0x5000 },
-  { 0x9a00, 0x25b3, 0x4000 },
-  { 0x9a00, 0x25af, 0x3000 },
-  { 0x9a00, 0x25ad, 0x2000 },
-  { 0x1a00, 0x25ac, 0x0000 },
-  { 0x1a00, 0x25ae, 0x0000 },
-  { 0x9a00, 0x25b1, 0x2000 },
-  { 0x1a00, 0x25b0, 0x0000 },
-  { 0x1a00, 0x25b2, 0x0000 },
-  { 0x9900, 0x25b7, 0x3000 },
-  { 0x9a00, 0x25b5, 0x2000 },
-  { 0x1a00, 0x25b4, 0x0000 },
-  { 0x1a00, 0x25b6, 0x0000 },
-  { 0x9a00, 0x25b9, 0x2000 },
-  { 0x1a00, 0x25b8, 0x0000 },
-  { 0x1a00, 0x25ba, 0x0000 },
-  { 0x9a00, 0x25c3, 0x4000 },
-  { 0x9a00, 0x25bf, 0x3000 },
-  { 0x9a00, 0x25bd, 0x2000 },
-  { 0x1a00, 0x25bc, 0x0000 },
-  { 0x1a00, 0x25be, 0x0000 },
-  { 0x9900, 0x25c1, 0x2000 },
-  { 0x1a00, 0x25c0, 0x0000 },
-  { 0x1a00, 0x25c2, 0x0000 },
-  { 0x9a00, 0x25c7, 0x3000 },
-  { 0x9a00, 0x25c5, 0x2000 },
-  { 0x1a00, 0x25c4, 0x0000 },
-  { 0x1a00, 0x25c6, 0x0000 },
-  { 0x9a00, 0x25c9, 0x2000 },
-  { 0x1a00, 0x25c8, 0x0000 },
-  { 0x1a00, 0x25ca, 0x0000 },
-  { 0x9a00, 0x25eb, 0x6000 },
-  { 0x9a00, 0x25db, 0x5000 },
-  { 0x9a00, 0x25d3, 0x4000 },
-  { 0x9a00, 0x25cf, 0x3000 },
-  { 0x9a00, 0x25cd, 0x2000 },
-  { 0x1a00, 0x25cc, 0x0000 },
-  { 0x1a00, 0x25ce, 0x0000 },
-  { 0x9a00, 0x25d1, 0x2000 },
-  { 0x1a00, 0x25d0, 0x0000 },
-  { 0x1a00, 0x25d2, 0x0000 },
-  { 0x9a00, 0x25d7, 0x3000 },
-  { 0x9a00, 0x25d5, 0x2000 },
-  { 0x1a00, 0x25d4, 0x0000 },
-  { 0x1a00, 0x25d6, 0x0000 },
-  { 0x9a00, 0x25d9, 0x2000 },
-  { 0x1a00, 0x25d8, 0x0000 },
-  { 0x1a00, 0x25da, 0x0000 },
-  { 0x9a00, 0x25e3, 0x4000 },
-  { 0x9a00, 0x25df, 0x3000 },
-  { 0x9a00, 0x25dd, 0x2000 },
-  { 0x1a00, 0x25dc, 0x0000 },
-  { 0x1a00, 0x25de, 0x0000 },
-  { 0x9a00, 0x25e1, 0x2000 },
-  { 0x1a00, 0x25e0, 0x0000 },
-  { 0x1a00, 0x25e2, 0x0000 },
-  { 0x9a00, 0x25e7, 0x3000 },
-  { 0x9a00, 0x25e5, 0x2000 },
-  { 0x1a00, 0x25e4, 0x0000 },
-  { 0x1a00, 0x25e6, 0x0000 },
-  { 0x9a00, 0x25e9, 0x2000 },
-  { 0x1a00, 0x25e8, 0x0000 },
-  { 0x1a00, 0x25ea, 0x0000 },
-  { 0x9900, 0x25fb, 0x5000 },
-  { 0x9a00, 0x25f3, 0x4000 },
-  { 0x9a00, 0x25ef, 0x3000 },
-  { 0x9a00, 0x25ed, 0x2000 },
-  { 0x1a00, 0x25ec, 0x0000 },
-  { 0x1a00, 0x25ee, 0x0000 },
-  { 0x9a00, 0x25f1, 0x2000 },
-  { 0x1a00, 0x25f0, 0x0000 },
-  { 0x1a00, 0x25f2, 0x0000 },
-  { 0x9a00, 0x25f7, 0x3000 },
-  { 0x9a00, 0x25f5, 0x2000 },
-  { 0x1a00, 0x25f4, 0x0000 },
-  { 0x1a00, 0x25f6, 0x0000 },
-  { 0x9900, 0x25f9, 0x2000 },
-  { 0x1900, 0x25f8, 0x0000 },
-  { 0x1900, 0x25fa, 0x0000 },
-  { 0x9a00, 0x2603, 0x4000 },
-  { 0x9900, 0x25ff, 0x3000 },
-  { 0x9900, 0x25fd, 0x2000 },
-  { 0x1900, 0x25fc, 0x0000 },
-  { 0x1900, 0x25fe, 0x0000 },
-  { 0x9a00, 0x2601, 0x2000 },
-  { 0x1a00, 0x2600, 0x0000 },
-  { 0x1a00, 0x2602, 0x0000 },
-  { 0x9a00, 0x2607, 0x3000 },
-  { 0x9a00, 0x2605, 0x2000 },
-  { 0x1a00, 0x2604, 0x0000 },
-  { 0x1a00, 0x2606, 0x0000 },
-  { 0x9a00, 0x2609, 0x2000 },
-  { 0x1a00, 0x2608, 0x0000 },
-  { 0x1a00, 0x260a, 0x0000 },
-  { 0x9a00, 0x268e, 0x8000 },
-  { 0x9a00, 0x264c, 0x7000 },
-  { 0x9a00, 0x262c, 0x6000 },
-  { 0x9a00, 0x261c, 0x5000 },
-  { 0x9a00, 0x2613, 0x4000 },
-  { 0x9a00, 0x260f, 0x3000 },
-  { 0x9a00, 0x260d, 0x2000 },
-  { 0x1a00, 0x260c, 0x0000 },
-  { 0x1a00, 0x260e, 0x0000 },
-  { 0x9a00, 0x2611, 0x2000 },
-  { 0x1a00, 0x2610, 0x0000 },
-  { 0x1a00, 0x2612, 0x0000 },
-  { 0x9a00, 0x2617, 0x3000 },
-  { 0x9a00, 0x2615, 0x2000 },
-  { 0x1a00, 0x2614, 0x0000 },
-  { 0x1a00, 0x2616, 0x0000 },
-  { 0x9a00, 0x261a, 0x2000 },
-  { 0x1a00, 0x2619, 0x0000 },
-  { 0x1a00, 0x261b, 0x0000 },
-  { 0x9a00, 0x2624, 0x4000 },
-  { 0x9a00, 0x2620, 0x3000 },
-  { 0x9a00, 0x261e, 0x2000 },
-  { 0x1a00, 0x261d, 0x0000 },
-  { 0x1a00, 0x261f, 0x0000 },
-  { 0x9a00, 0x2622, 0x2000 },
-  { 0x1a00, 0x2621, 0x0000 },
-  { 0x1a00, 0x2623, 0x0000 },
-  { 0x9a00, 0x2628, 0x3000 },
-  { 0x9a00, 0x2626, 0x2000 },
-  { 0x1a00, 0x2625, 0x0000 },
-  { 0x1a00, 0x2627, 0x0000 },
-  { 0x9a00, 0x262a, 0x2000 },
-  { 0x1a00, 0x2629, 0x0000 },
-  { 0x1a00, 0x262b, 0x0000 },
-  { 0x9a00, 0x263c, 0x5000 },
-  { 0x9a00, 0x2634, 0x4000 },
-  { 0x9a00, 0x2630, 0x3000 },
-  { 0x9a00, 0x262e, 0x2000 },
-  { 0x1a00, 0x262d, 0x0000 },
-  { 0x1a00, 0x262f, 0x0000 },
-  { 0x9a00, 0x2632, 0x2000 },
-  { 0x1a00, 0x2631, 0x0000 },
-  { 0x1a00, 0x2633, 0x0000 },
-  { 0x9a00, 0x2638, 0x3000 },
-  { 0x9a00, 0x2636, 0x2000 },
-  { 0x1a00, 0x2635, 0x0000 },
-  { 0x1a00, 0x2637, 0x0000 },
-  { 0x9a00, 0x263a, 0x2000 },
-  { 0x1a00, 0x2639, 0x0000 },
-  { 0x1a00, 0x263b, 0x0000 },
-  { 0x9a00, 0x2644, 0x4000 },
-  { 0x9a00, 0x2640, 0x3000 },
-  { 0x9a00, 0x263e, 0x2000 },
-  { 0x1a00, 0x263d, 0x0000 },
-  { 0x1a00, 0x263f, 0x0000 },
-  { 0x9a00, 0x2642, 0x2000 },
-  { 0x1a00, 0x2641, 0x0000 },
-  { 0x1a00, 0x2643, 0x0000 },
-  { 0x9a00, 0x2648, 0x3000 },
-  { 0x9a00, 0x2646, 0x2000 },
-  { 0x1a00, 0x2645, 0x0000 },
-  { 0x1a00, 0x2647, 0x0000 },
-  { 0x9a00, 0x264a, 0x2000 },
-  { 0x1a00, 0x2649, 0x0000 },
-  { 0x1a00, 0x264b, 0x0000 },
-  { 0x9a00, 0x266c, 0x6000 },
-  { 0x9a00, 0x265c, 0x5000 },
-  { 0x9a00, 0x2654, 0x4000 },
-  { 0x9a00, 0x2650, 0x3000 },
-  { 0x9a00, 0x264e, 0x2000 },
-  { 0x1a00, 0x264d, 0x0000 },
-  { 0x1a00, 0x264f, 0x0000 },
-  { 0x9a00, 0x2652, 0x2000 },
-  { 0x1a00, 0x2651, 0x0000 },
-  { 0x1a00, 0x2653, 0x0000 },
-  { 0x9a00, 0x2658, 0x3000 },
-  { 0x9a00, 0x2656, 0x2000 },
-  { 0x1a00, 0x2655, 0x0000 },
-  { 0x1a00, 0x2657, 0x0000 },
-  { 0x9a00, 0x265a, 0x2000 },
-  { 0x1a00, 0x2659, 0x0000 },
-  { 0x1a00, 0x265b, 0x0000 },
-  { 0x9a00, 0x2664, 0x4000 },
-  { 0x9a00, 0x2660, 0x3000 },
-  { 0x9a00, 0x265e, 0x2000 },
-  { 0x1a00, 0x265d, 0x0000 },
-  { 0x1a00, 0x265f, 0x0000 },
-  { 0x9a00, 0x2662, 0x2000 },
-  { 0x1a00, 0x2661, 0x0000 },
-  { 0x1a00, 0x2663, 0x0000 },
-  { 0x9a00, 0x2668, 0x3000 },
-  { 0x9a00, 0x2666, 0x2000 },
-  { 0x1a00, 0x2665, 0x0000 },
-  { 0x1a00, 0x2667, 0x0000 },
-  { 0x9a00, 0x266a, 0x2000 },
-  { 0x1a00, 0x2669, 0x0000 },
-  { 0x1a00, 0x266b, 0x0000 },
-  { 0x9a00, 0x267c, 0x5000 },
-  { 0x9a00, 0x2674, 0x4000 },
-  { 0x9a00, 0x2670, 0x3000 },
-  { 0x9a00, 0x266e, 0x2000 },
-  { 0x1a00, 0x266d, 0x0000 },
-  { 0x1900, 0x266f, 0x0000 },
-  { 0x9a00, 0x2672, 0x2000 },
-  { 0x1a00, 0x2671, 0x0000 },
-  { 0x1a00, 0x2673, 0x0000 },
-  { 0x9a00, 0x2678, 0x3000 },
-  { 0x9a00, 0x2676, 0x2000 },
-  { 0x1a00, 0x2675, 0x0000 },
-  { 0x1a00, 0x2677, 0x0000 },
-  { 0x9a00, 0x267a, 0x2000 },
-  { 0x1a00, 0x2679, 0x0000 },
-  { 0x1a00, 0x267b, 0x0000 },
-  { 0x9a00, 0x2686, 0x4000 },
-  { 0x9a00, 0x2682, 0x3000 },
-  { 0x9a00, 0x2680, 0x2000 },
-  { 0x1a00, 0x267d, 0x0000 },
-  { 0x1a00, 0x2681, 0x0000 },
-  { 0x9a00, 0x2684, 0x2000 },
-  { 0x1a00, 0x2683, 0x0000 },
-  { 0x1a00, 0x2685, 0x0000 },
-  { 0x9a00, 0x268a, 0x3000 },
-  { 0x9a00, 0x2688, 0x2000 },
-  { 0x1a00, 0x2687, 0x0000 },
-  { 0x1a00, 0x2689, 0x0000 },
-  { 0x9a00, 0x268c, 0x2000 },
-  { 0x1a00, 0x268b, 0x0000 },
-  { 0x1a00, 0x268d, 0x0000 },
-  { 0x9a00, 0x273f, 0x7000 },
-  { 0x9a00, 0x271e, 0x6000 },
-  { 0x9a00, 0x270e, 0x5000 },
-  { 0x9a00, 0x2703, 0x4000 },
-  { 0x9a00, 0x26a0, 0x3000 },
-  { 0x9a00, 0x2690, 0x2000 },
-  { 0x1a00, 0x268f, 0x0000 },
-  { 0x1a00, 0x2691, 0x0000 },
-  { 0x9a00, 0x2701, 0x2000 },
-  { 0x1a00, 0x26a1, 0x0000 },
-  { 0x1a00, 0x2702, 0x0000 },
-  { 0x9a00, 0x2708, 0x3000 },
-  { 0x9a00, 0x2706, 0x2000 },
-  { 0x1a00, 0x2704, 0x0000 },
-  { 0x1a00, 0x2707, 0x0000 },
-  { 0x9a00, 0x270c, 0x2000 },
-  { 0x1a00, 0x2709, 0x0000 },
-  { 0x1a00, 0x270d, 0x0000 },
-  { 0x9a00, 0x2716, 0x4000 },
-  { 0x9a00, 0x2712, 0x3000 },
-  { 0x9a00, 0x2710, 0x2000 },
-  { 0x1a00, 0x270f, 0x0000 },
-  { 0x1a00, 0x2711, 0x0000 },
-  { 0x9a00, 0x2714, 0x2000 },
-  { 0x1a00, 0x2713, 0x0000 },
-  { 0x1a00, 0x2715, 0x0000 },
-  { 0x9a00, 0x271a, 0x3000 },
-  { 0x9a00, 0x2718, 0x2000 },
-  { 0x1a00, 0x2717, 0x0000 },
-  { 0x1a00, 0x2719, 0x0000 },
-  { 0x9a00, 0x271c, 0x2000 },
-  { 0x1a00, 0x271b, 0x0000 },
-  { 0x1a00, 0x271d, 0x0000 },
-  { 0x9a00, 0x272f, 0x5000 },
-  { 0x9a00, 0x2726, 0x4000 },
-  { 0x9a00, 0x2722, 0x3000 },
-  { 0x9a00, 0x2720, 0x2000 },
-  { 0x1a00, 0x271f, 0x0000 },
-  { 0x1a00, 0x2721, 0x0000 },
-  { 0x9a00, 0x2724, 0x2000 },
-  { 0x1a00, 0x2723, 0x0000 },
-  { 0x1a00, 0x2725, 0x0000 },
-  { 0x9a00, 0x272b, 0x3000 },
-  { 0x9a00, 0x2729, 0x2000 },
-  { 0x1a00, 0x2727, 0x0000 },
-  { 0x1a00, 0x272a, 0x0000 },
-  { 0x9a00, 0x272d, 0x2000 },
-  { 0x1a00, 0x272c, 0x0000 },
-  { 0x1a00, 0x272e, 0x0000 },
-  { 0x9a00, 0x2737, 0x4000 },
-  { 0x9a00, 0x2733, 0x3000 },
-  { 0x9a00, 0x2731, 0x2000 },
-  { 0x1a00, 0x2730, 0x0000 },
-  { 0x1a00, 0x2732, 0x0000 },
-  { 0x9a00, 0x2735, 0x2000 },
-  { 0x1a00, 0x2734, 0x0000 },
-  { 0x1a00, 0x2736, 0x0000 },
-  { 0x9a00, 0x273b, 0x3000 },
-  { 0x9a00, 0x2739, 0x2000 },
-  { 0x1a00, 0x2738, 0x0000 },
-  { 0x1a00, 0x273a, 0x0000 },
-  { 0x9a00, 0x273d, 0x2000 },
-  { 0x1a00, 0x273c, 0x0000 },
-  { 0x1a00, 0x273e, 0x0000 },
-  { 0x9a00, 0x2767, 0x6000 },
-  { 0x9a00, 0x2751, 0x5000 },
-  { 0x9a00, 0x2747, 0x4000 },
-  { 0x9a00, 0x2743, 0x3000 },
-  { 0x9a00, 0x2741, 0x2000 },
-  { 0x1a00, 0x2740, 0x0000 },
-  { 0x1a00, 0x2742, 0x0000 },
-  { 0x9a00, 0x2745, 0x2000 },
-  { 0x1a00, 0x2744, 0x0000 },
-  { 0x1a00, 0x2746, 0x0000 },
-  { 0x9a00, 0x274b, 0x3000 },
-  { 0x9a00, 0x2749, 0x2000 },
-  { 0x1a00, 0x2748, 0x0000 },
-  { 0x1a00, 0x274a, 0x0000 },
-  { 0x9a00, 0x274f, 0x2000 },
-  { 0x1a00, 0x274d, 0x0000 },
-  { 0x1a00, 0x2750, 0x0000 },
-  { 0x9a00, 0x275d, 0x4000 },
-  { 0x9a00, 0x2759, 0x3000 },
-  { 0x9a00, 0x2756, 0x2000 },
-  { 0x1a00, 0x2752, 0x0000 },
-  { 0x1a00, 0x2758, 0x0000 },
-  { 0x9a00, 0x275b, 0x2000 },
-  { 0x1a00, 0x275a, 0x0000 },
-  { 0x1a00, 0x275c, 0x0000 },
-  { 0x9a00, 0x2763, 0x3000 },
-  { 0x9a00, 0x2761, 0x2000 },
-  { 0x1a00, 0x275e, 0x0000 },
-  { 0x1a00, 0x2762, 0x0000 },
-  { 0x9a00, 0x2765, 0x2000 },
-  { 0x1a00, 0x2764, 0x0000 },
-  { 0x1a00, 0x2766, 0x0000 },
-  { 0x8f00, 0x2777, 0x5000 },
-  { 0x9200, 0x276f, 0x4000 },
-  { 0x9200, 0x276b, 0x3000 },
-  { 0x9200, 0x2769, 0x2000 },
-  { 0x1600, 0x2768, 0x0000 },
-  { 0x1600, 0x276a, 0x0000 },
-  { 0x9200, 0x276d, 0x2000 },
-  { 0x1600, 0x276c, 0x0000 },
-  { 0x1600, 0x276e, 0x0000 },
-  { 0x9200, 0x2773, 0x3000 },
-  { 0x9200, 0x2771, 0x2000 },
-  { 0x1600, 0x2770, 0x0000 },
-  { 0x1600, 0x2772, 0x0000 },
-  { 0x9200, 0x2775, 0x2000 },
-  { 0x1600, 0x2774, 0x0000 },
-  { 0x0f00, 0x2776, 0x0000 },
-  { 0x8f00, 0x277f, 0x4000 },
-  { 0x8f00, 0x277b, 0x3000 },
-  { 0x8f00, 0x2779, 0x2000 },
-  { 0x0f00, 0x2778, 0x0000 },
-  { 0x0f00, 0x277a, 0x0000 },
-  { 0x8f00, 0x277d, 0x2000 },
-  { 0x0f00, 0x277c, 0x0000 },
-  { 0x0f00, 0x277e, 0x0000 },
-  { 0x8f00, 0x2783, 0x3000 },
-  { 0x8f00, 0x2781, 0x2000 },
-  { 0x0f00, 0x2780, 0x0000 },
-  { 0x0f00, 0x2782, 0x0000 },
-  { 0x8f00, 0x2785, 0x2000 },
-  { 0x0f00, 0x2784, 0x0000 },
-  { 0x0f00, 0x2786, 0x0000 },
-  { 0x9900, 0x29a0, 0xa000 },
-  { 0x9a00, 0x28a0, 0x9000 },
-  { 0x9a00, 0x2820, 0x8000 },
-  { 0x9900, 0x27dc, 0x7000 },
-  { 0x9a00, 0x27aa, 0x6000 },
-  { 0x9a00, 0x279a, 0x5000 },
-  { 0x8f00, 0x278f, 0x4000 },
-  { 0x8f00, 0x278b, 0x3000 },
-  { 0x8f00, 0x2789, 0x2000 },
-  { 0x0f00, 0x2788, 0x0000 },
-  { 0x0f00, 0x278a, 0x0000 },
-  { 0x8f00, 0x278d, 0x2000 },
-  { 0x0f00, 0x278c, 0x0000 },
-  { 0x0f00, 0x278e, 0x0000 },
-  { 0x8f00, 0x2793, 0x3000 },
-  { 0x8f00, 0x2791, 0x2000 },
-  { 0x0f00, 0x2790, 0x0000 },
-  { 0x0f00, 0x2792, 0x0000 },
-  { 0x9a00, 0x2798, 0x2000 },
-  { 0x1a00, 0x2794, 0x0000 },
-  { 0x1a00, 0x2799, 0x0000 },
-  { 0x9a00, 0x27a2, 0x4000 },
-  { 0x9a00, 0x279e, 0x3000 },
-  { 0x9a00, 0x279c, 0x2000 },
-  { 0x1a00, 0x279b, 0x0000 },
-  { 0x1a00, 0x279d, 0x0000 },
-  { 0x9a00, 0x27a0, 0x2000 },
-  { 0x1a00, 0x279f, 0x0000 },
-  { 0x1a00, 0x27a1, 0x0000 },
-  { 0x9a00, 0x27a6, 0x3000 },
-  { 0x9a00, 0x27a4, 0x2000 },
-  { 0x1a00, 0x27a3, 0x0000 },
-  { 0x1a00, 0x27a5, 0x0000 },
-  { 0x9a00, 0x27a8, 0x2000 },
-  { 0x1a00, 0x27a7, 0x0000 },
-  { 0x1a00, 0x27a9, 0x0000 },
-  { 0x9a00, 0x27bb, 0x5000 },
-  { 0x9a00, 0x27b3, 0x4000 },
-  { 0x9a00, 0x27ae, 0x3000 },
-  { 0x9a00, 0x27ac, 0x2000 },
-  { 0x1a00, 0x27ab, 0x0000 },
-  { 0x1a00, 0x27ad, 0x0000 },
-  { 0x9a00, 0x27b1, 0x2000 },
-  { 0x1a00, 0x27af, 0x0000 },
-  { 0x1a00, 0x27b2, 0x0000 },
-  { 0x9a00, 0x27b7, 0x3000 },
-  { 0x9a00, 0x27b5, 0x2000 },
-  { 0x1a00, 0x27b4, 0x0000 },
-  { 0x1a00, 0x27b6, 0x0000 },
-  { 0x9a00, 0x27b9, 0x2000 },
-  { 0x1a00, 0x27b8, 0x0000 },
-  { 0x1a00, 0x27ba, 0x0000 },
-  { 0x9900, 0x27d4, 0x4000 },
-  { 0x9900, 0x27d0, 0x3000 },
-  { 0x9a00, 0x27bd, 0x2000 },
-  { 0x1a00, 0x27bc, 0x0000 },
-  { 0x1a00, 0x27be, 0x0000 },
-  { 0x9900, 0x27d2, 0x2000 },
-  { 0x1900, 0x27d1, 0x0000 },
-  { 0x1900, 0x27d3, 0x0000 },
-  { 0x9900, 0x27d8, 0x3000 },
-  { 0x9900, 0x27d6, 0x2000 },
-  { 0x1900, 0x27d5, 0x0000 },
-  { 0x1900, 0x27d7, 0x0000 },
-  { 0x9900, 0x27da, 0x2000 },
-  { 0x1900, 0x27d9, 0x0000 },
-  { 0x1900, 0x27db, 0x0000 },
-  { 0x9a00, 0x2800, 0x6000 },
-  { 0x9900, 0x27f0, 0x5000 },
-  { 0x9900, 0x27e4, 0x4000 },
-  { 0x9900, 0x27e0, 0x3000 },
-  { 0x9900, 0x27de, 0x2000 },
-  { 0x1900, 0x27dd, 0x0000 },
-  { 0x1900, 0x27df, 0x0000 },
-  { 0x9900, 0x27e2, 0x2000 },
-  { 0x1900, 0x27e1, 0x0000 },
-  { 0x1900, 0x27e3, 0x0000 },
-  { 0x9600, 0x27e8, 0x3000 },
-  { 0x9600, 0x27e6, 0x2000 },
-  { 0x1900, 0x27e5, 0x0000 },
-  { 0x1200, 0x27e7, 0x0000 },
-  { 0x9600, 0x27ea, 0x2000 },
-  { 0x1200, 0x27e9, 0x0000 },
-  { 0x1200, 0x27eb, 0x0000 },
-  { 0x9900, 0x27f8, 0x4000 },
-  { 0x9900, 0x27f4, 0x3000 },
-  { 0x9900, 0x27f2, 0x2000 },
-  { 0x1900, 0x27f1, 0x0000 },
-  { 0x1900, 0x27f3, 0x0000 },
-  { 0x9900, 0x27f6, 0x2000 },
-  { 0x1900, 0x27f5, 0x0000 },
-  { 0x1900, 0x27f7, 0x0000 },
-  { 0x9900, 0x27fc, 0x3000 },
-  { 0x9900, 0x27fa, 0x2000 },
-  { 0x1900, 0x27f9, 0x0000 },
-  { 0x1900, 0x27fb, 0x0000 },
-  { 0x9900, 0x27fe, 0x2000 },
-  { 0x1900, 0x27fd, 0x0000 },
-  { 0x1900, 0x27ff, 0x0000 },
-  { 0x9a00, 0x2810, 0x5000 },
-  { 0x9a00, 0x2808, 0x4000 },
-  { 0x9a00, 0x2804, 0x3000 },
-  { 0x9a00, 0x2802, 0x2000 },
-  { 0x1a00, 0x2801, 0x0000 },
-  { 0x1a00, 0x2803, 0x0000 },
-  { 0x9a00, 0x2806, 0x2000 },
-  { 0x1a00, 0x2805, 0x0000 },
-  { 0x1a00, 0x2807, 0x0000 },
-  { 0x9a00, 0x280c, 0x3000 },
-  { 0x9a00, 0x280a, 0x2000 },
-  { 0x1a00, 0x2809, 0x0000 },
-  { 0x1a00, 0x280b, 0x0000 },
-  { 0x9a00, 0x280e, 0x2000 },
-  { 0x1a00, 0x280d, 0x0000 },
-  { 0x1a00, 0x280f, 0x0000 },
-  { 0x9a00, 0x2818, 0x4000 },
-  { 0x9a00, 0x2814, 0x3000 },
-  { 0x9a00, 0x2812, 0x2000 },
-  { 0x1a00, 0x2811, 0x0000 },
-  { 0x1a00, 0x2813, 0x0000 },
-  { 0x9a00, 0x2816, 0x2000 },
-  { 0x1a00, 0x2815, 0x0000 },
-  { 0x1a00, 0x2817, 0x0000 },
-  { 0x9a00, 0x281c, 0x3000 },
-  { 0x9a00, 0x281a, 0x2000 },
-  { 0x1a00, 0x2819, 0x0000 },
-  { 0x1a00, 0x281b, 0x0000 },
-  { 0x9a00, 0x281e, 0x2000 },
-  { 0x1a00, 0x281d, 0x0000 },
-  { 0x1a00, 0x281f, 0x0000 },
-  { 0x9a00, 0x2860, 0x7000 },
-  { 0x9a00, 0x2840, 0x6000 },
-  { 0x9a00, 0x2830, 0x5000 },
-  { 0x9a00, 0x2828, 0x4000 },
-  { 0x9a00, 0x2824, 0x3000 },
-  { 0x9a00, 0x2822, 0x2000 },
-  { 0x1a00, 0x2821, 0x0000 },
-  { 0x1a00, 0x2823, 0x0000 },
-  { 0x9a00, 0x2826, 0x2000 },
-  { 0x1a00, 0x2825, 0x0000 },
-  { 0x1a00, 0x2827, 0x0000 },
-  { 0x9a00, 0x282c, 0x3000 },
-  { 0x9a00, 0x282a, 0x2000 },
-  { 0x1a00, 0x2829, 0x0000 },
-  { 0x1a00, 0x282b, 0x0000 },
-  { 0x9a00, 0x282e, 0x2000 },
-  { 0x1a00, 0x282d, 0x0000 },
-  { 0x1a00, 0x282f, 0x0000 },
-  { 0x9a00, 0x2838, 0x4000 },
-  { 0x9a00, 0x2834, 0x3000 },
-  { 0x9a00, 0x2832, 0x2000 },
-  { 0x1a00, 0x2831, 0x0000 },
-  { 0x1a00, 0x2833, 0x0000 },
-  { 0x9a00, 0x2836, 0x2000 },
-  { 0x1a00, 0x2835, 0x0000 },
-  { 0x1a00, 0x2837, 0x0000 },
-  { 0x9a00, 0x283c, 0x3000 },
-  { 0x9a00, 0x283a, 0x2000 },
-  { 0x1a00, 0x2839, 0x0000 },
-  { 0x1a00, 0x283b, 0x0000 },
-  { 0x9a00, 0x283e, 0x2000 },
-  { 0x1a00, 0x283d, 0x0000 },
-  { 0x1a00, 0x283f, 0x0000 },
-  { 0x9a00, 0x2850, 0x5000 },
-  { 0x9a00, 0x2848, 0x4000 },
-  { 0x9a00, 0x2844, 0x3000 },
-  { 0x9a00, 0x2842, 0x2000 },
-  { 0x1a00, 0x2841, 0x0000 },
-  { 0x1a00, 0x2843, 0x0000 },
-  { 0x9a00, 0x2846, 0x2000 },
-  { 0x1a00, 0x2845, 0x0000 },
-  { 0x1a00, 0x2847, 0x0000 },
-  { 0x9a00, 0x284c, 0x3000 },
-  { 0x9a00, 0x284a, 0x2000 },
-  { 0x1a00, 0x2849, 0x0000 },
-  { 0x1a00, 0x284b, 0x0000 },
-  { 0x9a00, 0x284e, 0x2000 },
-  { 0x1a00, 0x284d, 0x0000 },
-  { 0x1a00, 0x284f, 0x0000 },
-  { 0x9a00, 0x2858, 0x4000 },
-  { 0x9a00, 0x2854, 0x3000 },
-  { 0x9a00, 0x2852, 0x2000 },
-  { 0x1a00, 0x2851, 0x0000 },
-  { 0x1a00, 0x2853, 0x0000 },
-  { 0x9a00, 0x2856, 0x2000 },
-  { 0x1a00, 0x2855, 0x0000 },
-  { 0x1a00, 0x2857, 0x0000 },
-  { 0x9a00, 0x285c, 0x3000 },
-  { 0x9a00, 0x285a, 0x2000 },
-  { 0x1a00, 0x2859, 0x0000 },
-  { 0x1a00, 0x285b, 0x0000 },
-  { 0x9a00, 0x285e, 0x2000 },
-  { 0x1a00, 0x285d, 0x0000 },
-  { 0x1a00, 0x285f, 0x0000 },
-  { 0x9a00, 0x2880, 0x6000 },
-  { 0x9a00, 0x2870, 0x5000 },
-  { 0x9a00, 0x2868, 0x4000 },
-  { 0x9a00, 0x2864, 0x3000 },
-  { 0x9a00, 0x2862, 0x2000 },
-  { 0x1a00, 0x2861, 0x0000 },
-  { 0x1a00, 0x2863, 0x0000 },
-  { 0x9a00, 0x2866, 0x2000 },
-  { 0x1a00, 0x2865, 0x0000 },
-  { 0x1a00, 0x2867, 0x0000 },
-  { 0x9a00, 0x286c, 0x3000 },
-  { 0x9a00, 0x286a, 0x2000 },
-  { 0x1a00, 0x2869, 0x0000 },
-  { 0x1a00, 0x286b, 0x0000 },
-  { 0x9a00, 0x286e, 0x2000 },
-  { 0x1a00, 0x286d, 0x0000 },
-  { 0x1a00, 0x286f, 0x0000 },
-  { 0x9a00, 0x2878, 0x4000 },
-  { 0x9a00, 0x2874, 0x3000 },
-  { 0x9a00, 0x2872, 0x2000 },
-  { 0x1a00, 0x2871, 0x0000 },
-  { 0x1a00, 0x2873, 0x0000 },
-  { 0x9a00, 0x2876, 0x2000 },
-  { 0x1a00, 0x2875, 0x0000 },
-  { 0x1a00, 0x2877, 0x0000 },
-  { 0x9a00, 0x287c, 0x3000 },
-  { 0x9a00, 0x287a, 0x2000 },
-  { 0x1a00, 0x2879, 0x0000 },
-  { 0x1a00, 0x287b, 0x0000 },
-  { 0x9a00, 0x287e, 0x2000 },
-  { 0x1a00, 0x287d, 0x0000 },
-  { 0x1a00, 0x287f, 0x0000 },
-  { 0x9a00, 0x2890, 0x5000 },
-  { 0x9a00, 0x2888, 0x4000 },
-  { 0x9a00, 0x2884, 0x3000 },
-  { 0x9a00, 0x2882, 0x2000 },
-  { 0x1a00, 0x2881, 0x0000 },
-  { 0x1a00, 0x2883, 0x0000 },
-  { 0x9a00, 0x2886, 0x2000 },
-  { 0x1a00, 0x2885, 0x0000 },
-  { 0x1a00, 0x2887, 0x0000 },
-  { 0x9a00, 0x288c, 0x3000 },
-  { 0x9a00, 0x288a, 0x2000 },
-  { 0x1a00, 0x2889, 0x0000 },
-  { 0x1a00, 0x288b, 0x0000 },
-  { 0x9a00, 0x288e, 0x2000 },
-  { 0x1a00, 0x288d, 0x0000 },
-  { 0x1a00, 0x288f, 0x0000 },
-  { 0x9a00, 0x2898, 0x4000 },
-  { 0x9a00, 0x2894, 0x3000 },
-  { 0x9a00, 0x2892, 0x2000 },
-  { 0x1a00, 0x2891, 0x0000 },
-  { 0x1a00, 0x2893, 0x0000 },
-  { 0x9a00, 0x2896, 0x2000 },
-  { 0x1a00, 0x2895, 0x0000 },
-  { 0x1a00, 0x2897, 0x0000 },
-  { 0x9a00, 0x289c, 0x3000 },
-  { 0x9a00, 0x289a, 0x2000 },
-  { 0x1a00, 0x2899, 0x0000 },
-  { 0x1a00, 0x289b, 0x0000 },
-  { 0x9a00, 0x289e, 0x2000 },
-  { 0x1a00, 0x289d, 0x0000 },
-  { 0x1a00, 0x289f, 0x0000 },
-  { 0x9900, 0x2920, 0x8000 },
-  { 0x9a00, 0x28e0, 0x7000 },
-  { 0x9a00, 0x28c0, 0x6000 },
-  { 0x9a00, 0x28b0, 0x5000 },
-  { 0x9a00, 0x28a8, 0x4000 },
-  { 0x9a00, 0x28a4, 0x3000 },
-  { 0x9a00, 0x28a2, 0x2000 },
-  { 0x1a00, 0x28a1, 0x0000 },
-  { 0x1a00, 0x28a3, 0x0000 },
-  { 0x9a00, 0x28a6, 0x2000 },
-  { 0x1a00, 0x28a5, 0x0000 },
-  { 0x1a00, 0x28a7, 0x0000 },
-  { 0x9a00, 0x28ac, 0x3000 },
-  { 0x9a00, 0x28aa, 0x2000 },
-  { 0x1a00, 0x28a9, 0x0000 },
-  { 0x1a00, 0x28ab, 0x0000 },
-  { 0x9a00, 0x28ae, 0x2000 },
-  { 0x1a00, 0x28ad, 0x0000 },
-  { 0x1a00, 0x28af, 0x0000 },
-  { 0x9a00, 0x28b8, 0x4000 },
-  { 0x9a00, 0x28b4, 0x3000 },
-  { 0x9a00, 0x28b2, 0x2000 },
-  { 0x1a00, 0x28b1, 0x0000 },
-  { 0x1a00, 0x28b3, 0x0000 },
-  { 0x9a00, 0x28b6, 0x2000 },
-  { 0x1a00, 0x28b5, 0x0000 },
-  { 0x1a00, 0x28b7, 0x0000 },
-  { 0x9a00, 0x28bc, 0x3000 },
-  { 0x9a00, 0x28ba, 0x2000 },
-  { 0x1a00, 0x28b9, 0x0000 },
-  { 0x1a00, 0x28bb, 0x0000 },
-  { 0x9a00, 0x28be, 0x2000 },
-  { 0x1a00, 0x28bd, 0x0000 },
-  { 0x1a00, 0x28bf, 0x0000 },
-  { 0x9a00, 0x28d0, 0x5000 },
-  { 0x9a00, 0x28c8, 0x4000 },
-  { 0x9a00, 0x28c4, 0x3000 },
-  { 0x9a00, 0x28c2, 0x2000 },
-  { 0x1a00, 0x28c1, 0x0000 },
-  { 0x1a00, 0x28c3, 0x0000 },
-  { 0x9a00, 0x28c6, 0x2000 },
-  { 0x1a00, 0x28c5, 0x0000 },
-  { 0x1a00, 0x28c7, 0x0000 },
-  { 0x9a00, 0x28cc, 0x3000 },
-  { 0x9a00, 0x28ca, 0x2000 },
-  { 0x1a00, 0x28c9, 0x0000 },
-  { 0x1a00, 0x28cb, 0x0000 },
-  { 0x9a00, 0x28ce, 0x2000 },
-  { 0x1a00, 0x28cd, 0x0000 },
-  { 0x1a00, 0x28cf, 0x0000 },
-  { 0x9a00, 0x28d8, 0x4000 },
-  { 0x9a00, 0x28d4, 0x3000 },
-  { 0x9a00, 0x28d2, 0x2000 },
-  { 0x1a00, 0x28d1, 0x0000 },
-  { 0x1a00, 0x28d3, 0x0000 },
-  { 0x9a00, 0x28d6, 0x2000 },
-  { 0x1a00, 0x28d5, 0x0000 },
-  { 0x1a00, 0x28d7, 0x0000 },
-  { 0x9a00, 0x28dc, 0x3000 },
-  { 0x9a00, 0x28da, 0x2000 },
-  { 0x1a00, 0x28d9, 0x0000 },
-  { 0x1a00, 0x28db, 0x0000 },
-  { 0x9a00, 0x28de, 0x2000 },
-  { 0x1a00, 0x28dd, 0x0000 },
-  { 0x1a00, 0x28df, 0x0000 },
-  { 0x9900, 0x2900, 0x6000 },
-  { 0x9a00, 0x28f0, 0x5000 },
-  { 0x9a00, 0x28e8, 0x4000 },
-  { 0x9a00, 0x28e4, 0x3000 },
-  { 0x9a00, 0x28e2, 0x2000 },
-  { 0x1a00, 0x28e1, 0x0000 },
-  { 0x1a00, 0x28e3, 0x0000 },
-  { 0x9a00, 0x28e6, 0x2000 },
-  { 0x1a00, 0x28e5, 0x0000 },
-  { 0x1a00, 0x28e7, 0x0000 },
-  { 0x9a00, 0x28ec, 0x3000 },
-  { 0x9a00, 0x28ea, 0x2000 },
-  { 0x1a00, 0x28e9, 0x0000 },
-  { 0x1a00, 0x28eb, 0x0000 },
-  { 0x9a00, 0x28ee, 0x2000 },
-  { 0x1a00, 0x28ed, 0x0000 },
-  { 0x1a00, 0x28ef, 0x0000 },
-  { 0x9a00, 0x28f8, 0x4000 },
-  { 0x9a00, 0x28f4, 0x3000 },
-  { 0x9a00, 0x28f2, 0x2000 },
-  { 0x1a00, 0x28f1, 0x0000 },
-  { 0x1a00, 0x28f3, 0x0000 },
-  { 0x9a00, 0x28f6, 0x2000 },
-  { 0x1a00, 0x28f5, 0x0000 },
-  { 0x1a00, 0x28f7, 0x0000 },
-  { 0x9a00, 0x28fc, 0x3000 },
-  { 0x9a00, 0x28fa, 0x2000 },
-  { 0x1a00, 0x28f9, 0x0000 },
-  { 0x1a00, 0x28fb, 0x0000 },
-  { 0x9a00, 0x28fe, 0x2000 },
-  { 0x1a00, 0x28fd, 0x0000 },
-  { 0x1a00, 0x28ff, 0x0000 },
-  { 0x9900, 0x2910, 0x5000 },
-  { 0x9900, 0x2908, 0x4000 },
-  { 0x9900, 0x2904, 0x3000 },
-  { 0x9900, 0x2902, 0x2000 },
-  { 0x1900, 0x2901, 0x0000 },
-  { 0x1900, 0x2903, 0x0000 },
-  { 0x9900, 0x2906, 0x2000 },
-  { 0x1900, 0x2905, 0x0000 },
-  { 0x1900, 0x2907, 0x0000 },
-  { 0x9900, 0x290c, 0x3000 },
-  { 0x9900, 0x290a, 0x2000 },
-  { 0x1900, 0x2909, 0x0000 },
-  { 0x1900, 0x290b, 0x0000 },
-  { 0x9900, 0x290e, 0x2000 },
-  { 0x1900, 0x290d, 0x0000 },
-  { 0x1900, 0x290f, 0x0000 },
-  { 0x9900, 0x2918, 0x4000 },
-  { 0x9900, 0x2914, 0x3000 },
-  { 0x9900, 0x2912, 0x2000 },
-  { 0x1900, 0x2911, 0x0000 },
-  { 0x1900, 0x2913, 0x0000 },
-  { 0x9900, 0x2916, 0x2000 },
-  { 0x1900, 0x2915, 0x0000 },
-  { 0x1900, 0x2917, 0x0000 },
-  { 0x9900, 0x291c, 0x3000 },
-  { 0x9900, 0x291a, 0x2000 },
-  { 0x1900, 0x2919, 0x0000 },
-  { 0x1900, 0x291b, 0x0000 },
-  { 0x9900, 0x291e, 0x2000 },
-  { 0x1900, 0x291d, 0x0000 },
-  { 0x1900, 0x291f, 0x0000 },
-  { 0x9900, 0x2960, 0x7000 },
-  { 0x9900, 0x2940, 0x6000 },
-  { 0x9900, 0x2930, 0x5000 },
-  { 0x9900, 0x2928, 0x4000 },
-  { 0x9900, 0x2924, 0x3000 },
-  { 0x9900, 0x2922, 0x2000 },
-  { 0x1900, 0x2921, 0x0000 },
-  { 0x1900, 0x2923, 0x0000 },
-  { 0x9900, 0x2926, 0x2000 },
-  { 0x1900, 0x2925, 0x0000 },
-  { 0x1900, 0x2927, 0x0000 },
-  { 0x9900, 0x292c, 0x3000 },
-  { 0x9900, 0x292a, 0x2000 },
-  { 0x1900, 0x2929, 0x0000 },
-  { 0x1900, 0x292b, 0x0000 },
-  { 0x9900, 0x292e, 0x2000 },
-  { 0x1900, 0x292d, 0x0000 },
-  { 0x1900, 0x292f, 0x0000 },
-  { 0x9900, 0x2938, 0x4000 },
-  { 0x9900, 0x2934, 0x3000 },
-  { 0x9900, 0x2932, 0x2000 },
-  { 0x1900, 0x2931, 0x0000 },
-  { 0x1900, 0x2933, 0x0000 },
-  { 0x9900, 0x2936, 0x2000 },
-  { 0x1900, 0x2935, 0x0000 },
-  { 0x1900, 0x2937, 0x0000 },
-  { 0x9900, 0x293c, 0x3000 },
-  { 0x9900, 0x293a, 0x2000 },
-  { 0x1900, 0x2939, 0x0000 },
-  { 0x1900, 0x293b, 0x0000 },
-  { 0x9900, 0x293e, 0x2000 },
-  { 0x1900, 0x293d, 0x0000 },
-  { 0x1900, 0x293f, 0x0000 },
-  { 0x9900, 0x2950, 0x5000 },
-  { 0x9900, 0x2948, 0x4000 },
-  { 0x9900, 0x2944, 0x3000 },
-  { 0x9900, 0x2942, 0x2000 },
-  { 0x1900, 0x2941, 0x0000 },
-  { 0x1900, 0x2943, 0x0000 },
-  { 0x9900, 0x2946, 0x2000 },
-  { 0x1900, 0x2945, 0x0000 },
-  { 0x1900, 0x2947, 0x0000 },
-  { 0x9900, 0x294c, 0x3000 },
-  { 0x9900, 0x294a, 0x2000 },
-  { 0x1900, 0x2949, 0x0000 },
-  { 0x1900, 0x294b, 0x0000 },
-  { 0x9900, 0x294e, 0x2000 },
-  { 0x1900, 0x294d, 0x0000 },
-  { 0x1900, 0x294f, 0x0000 },
-  { 0x9900, 0x2958, 0x4000 },
-  { 0x9900, 0x2954, 0x3000 },
-  { 0x9900, 0x2952, 0x2000 },
-  { 0x1900, 0x2951, 0x0000 },
-  { 0x1900, 0x2953, 0x0000 },
-  { 0x9900, 0x2956, 0x2000 },
-  { 0x1900, 0x2955, 0x0000 },
-  { 0x1900, 0x2957, 0x0000 },
-  { 0x9900, 0x295c, 0x3000 },
-  { 0x9900, 0x295a, 0x2000 },
-  { 0x1900, 0x2959, 0x0000 },
-  { 0x1900, 0x295b, 0x0000 },
-  { 0x9900, 0x295e, 0x2000 },
-  { 0x1900, 0x295d, 0x0000 },
-  { 0x1900, 0x295f, 0x0000 },
-  { 0x9900, 0x2980, 0x6000 },
-  { 0x9900, 0x2970, 0x5000 },
-  { 0x9900, 0x2968, 0x4000 },
-  { 0x9900, 0x2964, 0x3000 },
-  { 0x9900, 0x2962, 0x2000 },
-  { 0x1900, 0x2961, 0x0000 },
-  { 0x1900, 0x2963, 0x0000 },
-  { 0x9900, 0x2966, 0x2000 },
-  { 0x1900, 0x2965, 0x0000 },
-  { 0x1900, 0x2967, 0x0000 },
-  { 0x9900, 0x296c, 0x3000 },
-  { 0x9900, 0x296a, 0x2000 },
-  { 0x1900, 0x2969, 0x0000 },
-  { 0x1900, 0x296b, 0x0000 },
-  { 0x9900, 0x296e, 0x2000 },
-  { 0x1900, 0x296d, 0x0000 },
-  { 0x1900, 0x296f, 0x0000 },
-  { 0x9900, 0x2978, 0x4000 },
-  { 0x9900, 0x2974, 0x3000 },
-  { 0x9900, 0x2972, 0x2000 },
-  { 0x1900, 0x2971, 0x0000 },
-  { 0x1900, 0x2973, 0x0000 },
-  { 0x9900, 0x2976, 0x2000 },
-  { 0x1900, 0x2975, 0x0000 },
-  { 0x1900, 0x2977, 0x0000 },
-  { 0x9900, 0x297c, 0x3000 },
-  { 0x9900, 0x297a, 0x2000 },
-  { 0x1900, 0x2979, 0x0000 },
-  { 0x1900, 0x297b, 0x0000 },
-  { 0x9900, 0x297e, 0x2000 },
-  { 0x1900, 0x297d, 0x0000 },
-  { 0x1900, 0x297f, 0x0000 },
-  { 0x9200, 0x2990, 0x5000 },
-  { 0x9200, 0x2988, 0x4000 },
-  { 0x9200, 0x2984, 0x3000 },
-  { 0x9900, 0x2982, 0x2000 },
-  { 0x1900, 0x2981, 0x0000 },
-  { 0x1600, 0x2983, 0x0000 },
-  { 0x9200, 0x2986, 0x2000 },
-  { 0x1600, 0x2985, 0x0000 },
-  { 0x1600, 0x2987, 0x0000 },
-  { 0x9200, 0x298c, 0x3000 },
-  { 0x9200, 0x298a, 0x2000 },
-  { 0x1600, 0x2989, 0x0000 },
-  { 0x1600, 0x298b, 0x0000 },
-  { 0x9200, 0x298e, 0x2000 },
-  { 0x1600, 0x298d, 0x0000 },
-  { 0x1600, 0x298f, 0x0000 },
-  { 0x9200, 0x2998, 0x4000 },
-  { 0x9200, 0x2994, 0x3000 },
-  { 0x9200, 0x2992, 0x2000 },
-  { 0x1600, 0x2991, 0x0000 },
-  { 0x1600, 0x2993, 0x0000 },
-  { 0x9200, 0x2996, 0x2000 },
-  { 0x1600, 0x2995, 0x0000 },
-  { 0x1600, 0x2997, 0x0000 },
-  { 0x9900, 0x299c, 0x3000 },
-  { 0x9900, 0x299a, 0x2000 },
-  { 0x1900, 0x2999, 0x0000 },
-  { 0x1900, 0x299b, 0x0000 },
-  { 0x9900, 0x299e, 0x2000 },
-  { 0x1900, 0x299d, 0x0000 },
-  { 0x1900, 0x299f, 0x0000 },
-  { 0x9900, 0x2aa0, 0x9000 },
-  { 0x9900, 0x2a20, 0x8000 },
-  { 0x9900, 0x29e0, 0x7000 },
-  { 0x9900, 0x29c0, 0x6000 },
-  { 0x9900, 0x29b0, 0x5000 },
-  { 0x9900, 0x29a8, 0x4000 },
-  { 0x9900, 0x29a4, 0x3000 },
-  { 0x9900, 0x29a2, 0x2000 },
-  { 0x1900, 0x29a1, 0x0000 },
-  { 0x1900, 0x29a3, 0x0000 },
-  { 0x9900, 0x29a6, 0x2000 },
-  { 0x1900, 0x29a5, 0x0000 },
-  { 0x1900, 0x29a7, 0x0000 },
-  { 0x9900, 0x29ac, 0x3000 },
-  { 0x9900, 0x29aa, 0x2000 },
-  { 0x1900, 0x29a9, 0x0000 },
-  { 0x1900, 0x29ab, 0x0000 },
-  { 0x9900, 0x29ae, 0x2000 },
-  { 0x1900, 0x29ad, 0x0000 },
-  { 0x1900, 0x29af, 0x0000 },
-  { 0x9900, 0x29b8, 0x4000 },
-  { 0x9900, 0x29b4, 0x3000 },
-  { 0x9900, 0x29b2, 0x2000 },
-  { 0x1900, 0x29b1, 0x0000 },
-  { 0x1900, 0x29b3, 0x0000 },
-  { 0x9900, 0x29b6, 0x2000 },
-  { 0x1900, 0x29b5, 0x0000 },
-  { 0x1900, 0x29b7, 0x0000 },
-  { 0x9900, 0x29bc, 0x3000 },
-  { 0x9900, 0x29ba, 0x2000 },
-  { 0x1900, 0x29b9, 0x0000 },
-  { 0x1900, 0x29bb, 0x0000 },
-  { 0x9900, 0x29be, 0x2000 },
-  { 0x1900, 0x29bd, 0x0000 },
-  { 0x1900, 0x29bf, 0x0000 },
-  { 0x9900, 0x29d0, 0x5000 },
-  { 0x9900, 0x29c8, 0x4000 },
-  { 0x9900, 0x29c4, 0x3000 },
-  { 0x9900, 0x29c2, 0x2000 },
-  { 0x1900, 0x29c1, 0x0000 },
-  { 0x1900, 0x29c3, 0x0000 },
-  { 0x9900, 0x29c6, 0x2000 },
-  { 0x1900, 0x29c5, 0x0000 },
-  { 0x1900, 0x29c7, 0x0000 },
-  { 0x9900, 0x29cc, 0x3000 },
-  { 0x9900, 0x29ca, 0x2000 },
-  { 0x1900, 0x29c9, 0x0000 },
-  { 0x1900, 0x29cb, 0x0000 },
-  { 0x9900, 0x29ce, 0x2000 },
-  { 0x1900, 0x29cd, 0x0000 },
-  { 0x1900, 0x29cf, 0x0000 },
-  { 0x9600, 0x29d8, 0x4000 },
-  { 0x9900, 0x29d4, 0x3000 },
-  { 0x9900, 0x29d2, 0x2000 },
-  { 0x1900, 0x29d1, 0x0000 },
-  { 0x1900, 0x29d3, 0x0000 },
-  { 0x9900, 0x29d6, 0x2000 },
-  { 0x1900, 0x29d5, 0x0000 },
-  { 0x1900, 0x29d7, 0x0000 },
-  { 0x9900, 0x29dc, 0x3000 },
-  { 0x9600, 0x29da, 0x2000 },
-  { 0x1200, 0x29d9, 0x0000 },
-  { 0x1200, 0x29db, 0x0000 },
-  { 0x9900, 0x29de, 0x2000 },
-  { 0x1900, 0x29dd, 0x0000 },
-  { 0x1900, 0x29df, 0x0000 },
-  { 0x9900, 0x2a00, 0x6000 },
-  { 0x9900, 0x29f0, 0x5000 },
-  { 0x9900, 0x29e8, 0x4000 },
-  { 0x9900, 0x29e4, 0x3000 },
-  { 0x9900, 0x29e2, 0x2000 },
-  { 0x1900, 0x29e1, 0x0000 },
-  { 0x1900, 0x29e3, 0x0000 },
-  { 0x9900, 0x29e6, 0x2000 },
-  { 0x1900, 0x29e5, 0x0000 },
-  { 0x1900, 0x29e7, 0x0000 },
-  { 0x9900, 0x29ec, 0x3000 },
-  { 0x9900, 0x29ea, 0x2000 },
-  { 0x1900, 0x29e9, 0x0000 },
-  { 0x1900, 0x29eb, 0x0000 },
-  { 0x9900, 0x29ee, 0x2000 },
-  { 0x1900, 0x29ed, 0x0000 },
-  { 0x1900, 0x29ef, 0x0000 },
-  { 0x9900, 0x29f8, 0x4000 },
-  { 0x9900, 0x29f4, 0x3000 },
-  { 0x9900, 0x29f2, 0x2000 },
-  { 0x1900, 0x29f1, 0x0000 },
-  { 0x1900, 0x29f3, 0x0000 },
-  { 0x9900, 0x29f6, 0x2000 },
-  { 0x1900, 0x29f5, 0x0000 },
-  { 0x1900, 0x29f7, 0x0000 },
-  { 0x9600, 0x29fc, 0x3000 },
-  { 0x9900, 0x29fa, 0x2000 },
-  { 0x1900, 0x29f9, 0x0000 },
-  { 0x1900, 0x29fb, 0x0000 },
-  { 0x9900, 0x29fe, 0x2000 },
-  { 0x1200, 0x29fd, 0x0000 },
-  { 0x1900, 0x29ff, 0x0000 },
-  { 0x9900, 0x2a10, 0x5000 },
-  { 0x9900, 0x2a08, 0x4000 },
-  { 0x9900, 0x2a04, 0x3000 },
-  { 0x9900, 0x2a02, 0x2000 },
-  { 0x1900, 0x2a01, 0x0000 },
-  { 0x1900, 0x2a03, 0x0000 },
-  { 0x9900, 0x2a06, 0x2000 },
-  { 0x1900, 0x2a05, 0x0000 },
-  { 0x1900, 0x2a07, 0x0000 },
-  { 0x9900, 0x2a0c, 0x3000 },
-  { 0x9900, 0x2a0a, 0x2000 },
-  { 0x1900, 0x2a09, 0x0000 },
-  { 0x1900, 0x2a0b, 0x0000 },
-  { 0x9900, 0x2a0e, 0x2000 },
-  { 0x1900, 0x2a0d, 0x0000 },
-  { 0x1900, 0x2a0f, 0x0000 },
-  { 0x9900, 0x2a18, 0x4000 },
-  { 0x9900, 0x2a14, 0x3000 },
-  { 0x9900, 0x2a12, 0x2000 },
-  { 0x1900, 0x2a11, 0x0000 },
-  { 0x1900, 0x2a13, 0x0000 },
-  { 0x9900, 0x2a16, 0x2000 },
-  { 0x1900, 0x2a15, 0x0000 },
-  { 0x1900, 0x2a17, 0x0000 },
-  { 0x9900, 0x2a1c, 0x3000 },
-  { 0x9900, 0x2a1a, 0x2000 },
-  { 0x1900, 0x2a19, 0x0000 },
-  { 0x1900, 0x2a1b, 0x0000 },
-  { 0x9900, 0x2a1e, 0x2000 },
-  { 0x1900, 0x2a1d, 0x0000 },
-  { 0x1900, 0x2a1f, 0x0000 },
-  { 0x9900, 0x2a60, 0x7000 },
-  { 0x9900, 0x2a40, 0x6000 },
-  { 0x9900, 0x2a30, 0x5000 },
-  { 0x9900, 0x2a28, 0x4000 },
-  { 0x9900, 0x2a24, 0x3000 },
-  { 0x9900, 0x2a22, 0x2000 },
-  { 0x1900, 0x2a21, 0x0000 },
-  { 0x1900, 0x2a23, 0x0000 },
-  { 0x9900, 0x2a26, 0x2000 },
-  { 0x1900, 0x2a25, 0x0000 },
-  { 0x1900, 0x2a27, 0x0000 },
-  { 0x9900, 0x2a2c, 0x3000 },
-  { 0x9900, 0x2a2a, 0x2000 },
-  { 0x1900, 0x2a29, 0x0000 },
-  { 0x1900, 0x2a2b, 0x0000 },
-  { 0x9900, 0x2a2e, 0x2000 },
-  { 0x1900, 0x2a2d, 0x0000 },
-  { 0x1900, 0x2a2f, 0x0000 },
-  { 0x9900, 0x2a38, 0x4000 },
-  { 0x9900, 0x2a34, 0x3000 },
-  { 0x9900, 0x2a32, 0x2000 },
-  { 0x1900, 0x2a31, 0x0000 },
-  { 0x1900, 0x2a33, 0x0000 },
-  { 0x9900, 0x2a36, 0x2000 },
-  { 0x1900, 0x2a35, 0x0000 },
-  { 0x1900, 0x2a37, 0x0000 },
-  { 0x9900, 0x2a3c, 0x3000 },
-  { 0x9900, 0x2a3a, 0x2000 },
-  { 0x1900, 0x2a39, 0x0000 },
-  { 0x1900, 0x2a3b, 0x0000 },
-  { 0x9900, 0x2a3e, 0x2000 },
-  { 0x1900, 0x2a3d, 0x0000 },
-  { 0x1900, 0x2a3f, 0x0000 },
-  { 0x9900, 0x2a50, 0x5000 },
-  { 0x9900, 0x2a48, 0x4000 },
-  { 0x9900, 0x2a44, 0x3000 },
-  { 0x9900, 0x2a42, 0x2000 },
-  { 0x1900, 0x2a41, 0x0000 },
-  { 0x1900, 0x2a43, 0x0000 },
-  { 0x9900, 0x2a46, 0x2000 },
-  { 0x1900, 0x2a45, 0x0000 },
-  { 0x1900, 0x2a47, 0x0000 },
-  { 0x9900, 0x2a4c, 0x3000 },
-  { 0x9900, 0x2a4a, 0x2000 },
-  { 0x1900, 0x2a49, 0x0000 },
-  { 0x1900, 0x2a4b, 0x0000 },
-  { 0x9900, 0x2a4e, 0x2000 },
-  { 0x1900, 0x2a4d, 0x0000 },
-  { 0x1900, 0x2a4f, 0x0000 },
-  { 0x9900, 0x2a58, 0x4000 },
-  { 0x9900, 0x2a54, 0x3000 },
-  { 0x9900, 0x2a52, 0x2000 },
-  { 0x1900, 0x2a51, 0x0000 },
-  { 0x1900, 0x2a53, 0x0000 },
-  { 0x9900, 0x2a56, 0x2000 },
-  { 0x1900, 0x2a55, 0x0000 },
-  { 0x1900, 0x2a57, 0x0000 },
-  { 0x9900, 0x2a5c, 0x3000 },
-  { 0x9900, 0x2a5a, 0x2000 },
-  { 0x1900, 0x2a59, 0x0000 },
-  { 0x1900, 0x2a5b, 0x0000 },
-  { 0x9900, 0x2a5e, 0x2000 },
-  { 0x1900, 0x2a5d, 0x0000 },
-  { 0x1900, 0x2a5f, 0x0000 },
-  { 0x9900, 0x2a80, 0x6000 },
-  { 0x9900, 0x2a70, 0x5000 },
-  { 0x9900, 0x2a68, 0x4000 },
-  { 0x9900, 0x2a64, 0x3000 },
-  { 0x9900, 0x2a62, 0x2000 },
-  { 0x1900, 0x2a61, 0x0000 },
-  { 0x1900, 0x2a63, 0x0000 },
-  { 0x9900, 0x2a66, 0x2000 },
-  { 0x1900, 0x2a65, 0x0000 },
-  { 0x1900, 0x2a67, 0x0000 },
-  { 0x9900, 0x2a6c, 0x3000 },
-  { 0x9900, 0x2a6a, 0x2000 },
-  { 0x1900, 0x2a69, 0x0000 },
-  { 0x1900, 0x2a6b, 0x0000 },
-  { 0x9900, 0x2a6e, 0x2000 },
-  { 0x1900, 0x2a6d, 0x0000 },
-  { 0x1900, 0x2a6f, 0x0000 },
-  { 0x9900, 0x2a78, 0x4000 },
-  { 0x9900, 0x2a74, 0x3000 },
-  { 0x9900, 0x2a72, 0x2000 },
-  { 0x1900, 0x2a71, 0x0000 },
-  { 0x1900, 0x2a73, 0x0000 },
-  { 0x9900, 0x2a76, 0x2000 },
-  { 0x1900, 0x2a75, 0x0000 },
-  { 0x1900, 0x2a77, 0x0000 },
-  { 0x9900, 0x2a7c, 0x3000 },
-  { 0x9900, 0x2a7a, 0x2000 },
-  { 0x1900, 0x2a79, 0x0000 },
-  { 0x1900, 0x2a7b, 0x0000 },
-  { 0x9900, 0x2a7e, 0x2000 },
-  { 0x1900, 0x2a7d, 0x0000 },
-  { 0x1900, 0x2a7f, 0x0000 },
-  { 0x9900, 0x2a90, 0x5000 },
-  { 0x9900, 0x2a88, 0x4000 },
-  { 0x9900, 0x2a84, 0x3000 },
-  { 0x9900, 0x2a82, 0x2000 },
-  { 0x1900, 0x2a81, 0x0000 },
-  { 0x1900, 0x2a83, 0x0000 },
-  { 0x9900, 0x2a86, 0x2000 },
-  { 0x1900, 0x2a85, 0x0000 },
-  { 0x1900, 0x2a87, 0x0000 },
-  { 0x9900, 0x2a8c, 0x3000 },
-  { 0x9900, 0x2a8a, 0x2000 },
-  { 0x1900, 0x2a89, 0x0000 },
-  { 0x1900, 0x2a8b, 0x0000 },
-  { 0x9900, 0x2a8e, 0x2000 },
-  { 0x1900, 0x2a8d, 0x0000 },
-  { 0x1900, 0x2a8f, 0x0000 },
-  { 0x9900, 0x2a98, 0x4000 },
-  { 0x9900, 0x2a94, 0x3000 },
-  { 0x9900, 0x2a92, 0x2000 },
-  { 0x1900, 0x2a91, 0x0000 },
-  { 0x1900, 0x2a93, 0x0000 },
-  { 0x9900, 0x2a96, 0x2000 },
-  { 0x1900, 0x2a95, 0x0000 },
-  { 0x1900, 0x2a97, 0x0000 },
-  { 0x9900, 0x2a9c, 0x3000 },
-  { 0x9900, 0x2a9a, 0x2000 },
-  { 0x1900, 0x2a99, 0x0000 },
-  { 0x1900, 0x2a9b, 0x0000 },
-  { 0x9900, 0x2a9e, 0x2000 },
-  { 0x1900, 0x2a9d, 0x0000 },
-  { 0x1900, 0x2a9f, 0x0000 },
-  { 0x9a00, 0x2e92, 0x8000 },
-  { 0x9900, 0x2ae0, 0x7000 },
-  { 0x9900, 0x2ac0, 0x6000 },
-  { 0x9900, 0x2ab0, 0x5000 },
-  { 0x9900, 0x2aa8, 0x4000 },
-  { 0x9900, 0x2aa4, 0x3000 },
-  { 0x9900, 0x2aa2, 0x2000 },
-  { 0x1900, 0x2aa1, 0x0000 },
-  { 0x1900, 0x2aa3, 0x0000 },
-  { 0x9900, 0x2aa6, 0x2000 },
-  { 0x1900, 0x2aa5, 0x0000 },
-  { 0x1900, 0x2aa7, 0x0000 },
-  { 0x9900, 0x2aac, 0x3000 },
-  { 0x9900, 0x2aaa, 0x2000 },
-  { 0x1900, 0x2aa9, 0x0000 },
-  { 0x1900, 0x2aab, 0x0000 },
-  { 0x9900, 0x2aae, 0x2000 },
-  { 0x1900, 0x2aad, 0x0000 },
-  { 0x1900, 0x2aaf, 0x0000 },
-  { 0x9900, 0x2ab8, 0x4000 },
-  { 0x9900, 0x2ab4, 0x3000 },
-  { 0x9900, 0x2ab2, 0x2000 },
-  { 0x1900, 0x2ab1, 0x0000 },
-  { 0x1900, 0x2ab3, 0x0000 },
-  { 0x9900, 0x2ab6, 0x2000 },
-  { 0x1900, 0x2ab5, 0x0000 },
-  { 0x1900, 0x2ab7, 0x0000 },
-  { 0x9900, 0x2abc, 0x3000 },
-  { 0x9900, 0x2aba, 0x2000 },
-  { 0x1900, 0x2ab9, 0x0000 },
-  { 0x1900, 0x2abb, 0x0000 },
-  { 0x9900, 0x2abe, 0x2000 },
-  { 0x1900, 0x2abd, 0x0000 },
-  { 0x1900, 0x2abf, 0x0000 },
-  { 0x9900, 0x2ad0, 0x5000 },
-  { 0x9900, 0x2ac8, 0x4000 },
-  { 0x9900, 0x2ac4, 0x3000 },
-  { 0x9900, 0x2ac2, 0x2000 },
-  { 0x1900, 0x2ac1, 0x0000 },
-  { 0x1900, 0x2ac3, 0x0000 },
-  { 0x9900, 0x2ac6, 0x2000 },
-  { 0x1900, 0x2ac5, 0x0000 },
-  { 0x1900, 0x2ac7, 0x0000 },
-  { 0x9900, 0x2acc, 0x3000 },
-  { 0x9900, 0x2aca, 0x2000 },
-  { 0x1900, 0x2ac9, 0x0000 },
-  { 0x1900, 0x2acb, 0x0000 },
-  { 0x9900, 0x2ace, 0x2000 },
-  { 0x1900, 0x2acd, 0x0000 },
-  { 0x1900, 0x2acf, 0x0000 },
-  { 0x9900, 0x2ad8, 0x4000 },
-  { 0x9900, 0x2ad4, 0x3000 },
-  { 0x9900, 0x2ad2, 0x2000 },
-  { 0x1900, 0x2ad1, 0x0000 },
-  { 0x1900, 0x2ad3, 0x0000 },
-  { 0x9900, 0x2ad6, 0x2000 },
-  { 0x1900, 0x2ad5, 0x0000 },
-  { 0x1900, 0x2ad7, 0x0000 },
-  { 0x9900, 0x2adc, 0x3000 },
-  { 0x9900, 0x2ada, 0x2000 },
-  { 0x1900, 0x2ad9, 0x0000 },
-  { 0x1900, 0x2adb, 0x0000 },
-  { 0x9900, 0x2ade, 0x2000 },
-  { 0x1900, 0x2add, 0x0000 },
-  { 0x1900, 0x2adf, 0x0000 },
-  { 0x9a00, 0x2b00, 0x6000 },
-  { 0x9900, 0x2af0, 0x5000 },
-  { 0x9900, 0x2ae8, 0x4000 },
-  { 0x9900, 0x2ae4, 0x3000 },
-  { 0x9900, 0x2ae2, 0x2000 },
-  { 0x1900, 0x2ae1, 0x0000 },
-  { 0x1900, 0x2ae3, 0x0000 },
-  { 0x9900, 0x2ae6, 0x2000 },
-  { 0x1900, 0x2ae5, 0x0000 },
-  { 0x1900, 0x2ae7, 0x0000 },
-  { 0x9900, 0x2aec, 0x3000 },
-  { 0x9900, 0x2aea, 0x2000 },
-  { 0x1900, 0x2ae9, 0x0000 },
-  { 0x1900, 0x2aeb, 0x0000 },
-  { 0x9900, 0x2aee, 0x2000 },
-  { 0x1900, 0x2aed, 0x0000 },
-  { 0x1900, 0x2aef, 0x0000 },
-  { 0x9900, 0x2af8, 0x4000 },
-  { 0x9900, 0x2af4, 0x3000 },
-  { 0x9900, 0x2af2, 0x2000 },
-  { 0x1900, 0x2af1, 0x0000 },
-  { 0x1900, 0x2af3, 0x0000 },
-  { 0x9900, 0x2af6, 0x2000 },
-  { 0x1900, 0x2af5, 0x0000 },
-  { 0x1900, 0x2af7, 0x0000 },
-  { 0x9900, 0x2afc, 0x3000 },
-  { 0x9900, 0x2afa, 0x2000 },
-  { 0x1900, 0x2af9, 0x0000 },
-  { 0x1900, 0x2afb, 0x0000 },
-  { 0x9900, 0x2afe, 0x2000 },
-  { 0x1900, 0x2afd, 0x0000 },
-  { 0x1900, 0x2aff, 0x0000 },
-  { 0x9a00, 0x2e82, 0x5000 },
-  { 0x9a00, 0x2b08, 0x4000 },
-  { 0x9a00, 0x2b04, 0x3000 },
-  { 0x9a00, 0x2b02, 0x2000 },
-  { 0x1a00, 0x2b01, 0x0000 },
-  { 0x1a00, 0x2b03, 0x0000 },
-  { 0x9a00, 0x2b06, 0x2000 },
-  { 0x1a00, 0x2b05, 0x0000 },
-  { 0x1a00, 0x2b07, 0x0000 },
-  { 0x9a00, 0x2b0c, 0x3000 },
-  { 0x9a00, 0x2b0a, 0x2000 },
-  { 0x1a00, 0x2b09, 0x0000 },
-  { 0x1a00, 0x2b0b, 0x0000 },
-  { 0x9a00, 0x2e80, 0x2000 },
-  { 0x1a00, 0x2b0d, 0x0000 },
-  { 0x1a00, 0x2e81, 0x0000 },
-  { 0x9a00, 0x2e8a, 0x4000 },
-  { 0x9a00, 0x2e86, 0x3000 },
-  { 0x9a00, 0x2e84, 0x2000 },
-  { 0x1a00, 0x2e83, 0x0000 },
-  { 0x1a00, 0x2e85, 0x0000 },
-  { 0x9a00, 0x2e88, 0x2000 },
-  { 0x1a00, 0x2e87, 0x0000 },
-  { 0x1a00, 0x2e89, 0x0000 },
-  { 0x9a00, 0x2e8e, 0x3000 },
-  { 0x9a00, 0x2e8c, 0x2000 },
-  { 0x1a00, 0x2e8b, 0x0000 },
-  { 0x1a00, 0x2e8d, 0x0000 },
-  { 0x9a00, 0x2e90, 0x2000 },
-  { 0x1a00, 0x2e8f, 0x0000 },
-  { 0x1a00, 0x2e91, 0x0000 },
-  { 0x9a00, 0x2ed3, 0x7000 },
-  { 0x9a00, 0x2eb3, 0x6000 },
-  { 0x9a00, 0x2ea3, 0x5000 },
-  { 0x9a00, 0x2e9b, 0x4000 },
-  { 0x9a00, 0x2e96, 0x3000 },
-  { 0x9a00, 0x2e94, 0x2000 },
-  { 0x1a00, 0x2e93, 0x0000 },
-  { 0x1a00, 0x2e95, 0x0000 },
-  { 0x9a00, 0x2e98, 0x2000 },
-  { 0x1a00, 0x2e97, 0x0000 },
-  { 0x1a00, 0x2e99, 0x0000 },
-  { 0x9a00, 0x2e9f, 0x3000 },
-  { 0x9a00, 0x2e9d, 0x2000 },
-  { 0x1a00, 0x2e9c, 0x0000 },
-  { 0x1a00, 0x2e9e, 0x0000 },
-  { 0x9a00, 0x2ea1, 0x2000 },
-  { 0x1a00, 0x2ea0, 0x0000 },
-  { 0x1a00, 0x2ea2, 0x0000 },
-  { 0x9a00, 0x2eab, 0x4000 },
-  { 0x9a00, 0x2ea7, 0x3000 },
-  { 0x9a00, 0x2ea5, 0x2000 },
-  { 0x1a00, 0x2ea4, 0x0000 },
-  { 0x1a00, 0x2ea6, 0x0000 },
-  { 0x9a00, 0x2ea9, 0x2000 },
-  { 0x1a00, 0x2ea8, 0x0000 },
-  { 0x1a00, 0x2eaa, 0x0000 },
-  { 0x9a00, 0x2eaf, 0x3000 },
-  { 0x9a00, 0x2ead, 0x2000 },
-  { 0x1a00, 0x2eac, 0x0000 },
-  { 0x1a00, 0x2eae, 0x0000 },
-  { 0x9a00, 0x2eb1, 0x2000 },
-  { 0x1a00, 0x2eb0, 0x0000 },
-  { 0x1a00, 0x2eb2, 0x0000 },
-  { 0x9a00, 0x2ec3, 0x5000 },
-  { 0x9a00, 0x2ebb, 0x4000 },
-  { 0x9a00, 0x2eb7, 0x3000 },
-  { 0x9a00, 0x2eb5, 0x2000 },
-  { 0x1a00, 0x2eb4, 0x0000 },
-  { 0x1a00, 0x2eb6, 0x0000 },
-  { 0x9a00, 0x2eb9, 0x2000 },
-  { 0x1a00, 0x2eb8, 0x0000 },
-  { 0x1a00, 0x2eba, 0x0000 },
-  { 0x9a00, 0x2ebf, 0x3000 },
-  { 0x9a00, 0x2ebd, 0x2000 },
-  { 0x1a00, 0x2ebc, 0x0000 },
-  { 0x1a00, 0x2ebe, 0x0000 },
-  { 0x9a00, 0x2ec1, 0x2000 },
-  { 0x1a00, 0x2ec0, 0x0000 },
-  { 0x1a00, 0x2ec2, 0x0000 },
-  { 0x9a00, 0x2ecb, 0x4000 },
-  { 0x9a00, 0x2ec7, 0x3000 },
-  { 0x9a00, 0x2ec5, 0x2000 },
-  { 0x1a00, 0x2ec4, 0x0000 },
-  { 0x1a00, 0x2ec6, 0x0000 },
-  { 0x9a00, 0x2ec9, 0x2000 },
-  { 0x1a00, 0x2ec8, 0x0000 },
-  { 0x1a00, 0x2eca, 0x0000 },
-  { 0x9a00, 0x2ecf, 0x3000 },
-  { 0x9a00, 0x2ecd, 0x2000 },
-  { 0x1a00, 0x2ecc, 0x0000 },
-  { 0x1a00, 0x2ece, 0x0000 },
-  { 0x9a00, 0x2ed1, 0x2000 },
-  { 0x1a00, 0x2ed0, 0x0000 },
-  { 0x1a00, 0x2ed2, 0x0000 },
-  { 0x9a00, 0x2ef3, 0x6000 },
-  { 0x9a00, 0x2ee3, 0x5000 },
-  { 0x9a00, 0x2edb, 0x4000 },
-  { 0x9a00, 0x2ed7, 0x3000 },
-  { 0x9a00, 0x2ed5, 0x2000 },
-  { 0x1a00, 0x2ed4, 0x0000 },
-  { 0x1a00, 0x2ed6, 0x0000 },
-  { 0x9a00, 0x2ed9, 0x2000 },
-  { 0x1a00, 0x2ed8, 0x0000 },
-  { 0x1a00, 0x2eda, 0x0000 },
-  { 0x9a00, 0x2edf, 0x3000 },
-  { 0x9a00, 0x2edd, 0x2000 },
-  { 0x1a00, 0x2edc, 0x0000 },
-  { 0x1a00, 0x2ede, 0x0000 },
-  { 0x9a00, 0x2ee1, 0x2000 },
-  { 0x1a00, 0x2ee0, 0x0000 },
-  { 0x1a00, 0x2ee2, 0x0000 },
-  { 0x9a00, 0x2eeb, 0x4000 },
-  { 0x9a00, 0x2ee7, 0x3000 },
-  { 0x9a00, 0x2ee5, 0x2000 },
-  { 0x1a00, 0x2ee4, 0x0000 },
-  { 0x1a00, 0x2ee6, 0x0000 },
-  { 0x9a00, 0x2ee9, 0x2000 },
-  { 0x1a00, 0x2ee8, 0x0000 },
-  { 0x1a00, 0x2eea, 0x0000 },
-  { 0x9a00, 0x2eef, 0x3000 },
-  { 0x9a00, 0x2eed, 0x2000 },
-  { 0x1a00, 0x2eec, 0x0000 },
-  { 0x1a00, 0x2eee, 0x0000 },
-  { 0x9a00, 0x2ef1, 0x2000 },
-  { 0x1a00, 0x2ef0, 0x0000 },
-  { 0x1a00, 0x2ef2, 0x0000 },
-  { 0x9a00, 0x2f0f, 0x5000 },
-  { 0x9a00, 0x2f07, 0x4000 },
-  { 0x9a00, 0x2f03, 0x3000 },
-  { 0x9a00, 0x2f01, 0x2000 },
-  { 0x1a00, 0x2f00, 0x0000 },
-  { 0x1a00, 0x2f02, 0x0000 },
-  { 0x9a00, 0x2f05, 0x2000 },
-  { 0x1a00, 0x2f04, 0x0000 },
-  { 0x1a00, 0x2f06, 0x0000 },
-  { 0x9a00, 0x2f0b, 0x3000 },
-  { 0x9a00, 0x2f09, 0x2000 },
-  { 0x1a00, 0x2f08, 0x0000 },
-  { 0x1a00, 0x2f0a, 0x0000 },
-  { 0x9a00, 0x2f0d, 0x2000 },
-  { 0x1a00, 0x2f0c, 0x0000 },
-  { 0x1a00, 0x2f0e, 0x0000 },
-  { 0x9a00, 0x2f17, 0x4000 },
-  { 0x9a00, 0x2f13, 0x3000 },
-  { 0x9a00, 0x2f11, 0x2000 },
-  { 0x1a00, 0x2f10, 0x0000 },
-  { 0x1a00, 0x2f12, 0x0000 },
-  { 0x9a00, 0x2f15, 0x2000 },
-  { 0x1a00, 0x2f14, 0x0000 },
-  { 0x1a00, 0x2f16, 0x0000 },
-  { 0x9a00, 0x2f1b, 0x3000 },
-  { 0x9a00, 0x2f19, 0x2000 },
-  { 0x1a00, 0x2f18, 0x0000 },
-  { 0x1a00, 0x2f1a, 0x0000 },
-  { 0x9a00, 0x2f1d, 0x2000 },
-  { 0x1a00, 0x2f1c, 0x0000 },
-  { 0x1a00, 0x2f1e, 0x0000 },
-  { 0x8701, 0x00f0, 0xd000 },
-  { 0x8700, 0xa34d, 0xc000 },
-  { 0x9a00, 0x3391, 0xb000 },
-  { 0x8700, 0x3149, 0xa000 },
-  { 0x9500, 0x303d, 0x9000 },
-  { 0x9a00, 0x2f9f, 0x8000 },
-  { 0x9a00, 0x2f5f, 0x7000 },
-  { 0x9a00, 0x2f3f, 0x6000 },
-  { 0x9a00, 0x2f2f, 0x5000 },
-  { 0x9a00, 0x2f27, 0x4000 },
-  { 0x9a00, 0x2f23, 0x3000 },
-  { 0x9a00, 0x2f21, 0x2000 },
-  { 0x1a00, 0x2f20, 0x0000 },
-  { 0x1a00, 0x2f22, 0x0000 },
-  { 0x9a00, 0x2f25, 0x2000 },
-  { 0x1a00, 0x2f24, 0x0000 },
-  { 0x1a00, 0x2f26, 0x0000 },
-  { 0x9a00, 0x2f2b, 0x3000 },
-  { 0x9a00, 0x2f29, 0x2000 },
-  { 0x1a00, 0x2f28, 0x0000 },
-  { 0x1a00, 0x2f2a, 0x0000 },
-  { 0x9a00, 0x2f2d, 0x2000 },
-  { 0x1a00, 0x2f2c, 0x0000 },
-  { 0x1a00, 0x2f2e, 0x0000 },
-  { 0x9a00, 0x2f37, 0x4000 },
-  { 0x9a00, 0x2f33, 0x3000 },
-  { 0x9a00, 0x2f31, 0x2000 },
-  { 0x1a00, 0x2f30, 0x0000 },
-  { 0x1a00, 0x2f32, 0x0000 },
-  { 0x9a00, 0x2f35, 0x2000 },
-  { 0x1a00, 0x2f34, 0x0000 },
-  { 0x1a00, 0x2f36, 0x0000 },
-  { 0x9a00, 0x2f3b, 0x3000 },
-  { 0x9a00, 0x2f39, 0x2000 },
-  { 0x1a00, 0x2f38, 0x0000 },
-  { 0x1a00, 0x2f3a, 0x0000 },
-  { 0x9a00, 0x2f3d, 0x2000 },
-  { 0x1a00, 0x2f3c, 0x0000 },
-  { 0x1a00, 0x2f3e, 0x0000 },
-  { 0x9a00, 0x2f4f, 0x5000 },
-  { 0x9a00, 0x2f47, 0x4000 },
-  { 0x9a00, 0x2f43, 0x3000 },
-  { 0x9a00, 0x2f41, 0x2000 },
-  { 0x1a00, 0x2f40, 0x0000 },
-  { 0x1a00, 0x2f42, 0x0000 },
-  { 0x9a00, 0x2f45, 0x2000 },
-  { 0x1a00, 0x2f44, 0x0000 },
-  { 0x1a00, 0x2f46, 0x0000 },
-  { 0x9a00, 0x2f4b, 0x3000 },
-  { 0x9a00, 0x2f49, 0x2000 },
-  { 0x1a00, 0x2f48, 0x0000 },
-  { 0x1a00, 0x2f4a, 0x0000 },
-  { 0x9a00, 0x2f4d, 0x2000 },
-  { 0x1a00, 0x2f4c, 0x0000 },
-  { 0x1a00, 0x2f4e, 0x0000 },
-  { 0x9a00, 0x2f57, 0x4000 },
-  { 0x9a00, 0x2f53, 0x3000 },
-  { 0x9a00, 0x2f51, 0x2000 },
-  { 0x1a00, 0x2f50, 0x0000 },
-  { 0x1a00, 0x2f52, 0x0000 },
-  { 0x9a00, 0x2f55, 0x2000 },
-  { 0x1a00, 0x2f54, 0x0000 },
-  { 0x1a00, 0x2f56, 0x0000 },
-  { 0x9a00, 0x2f5b, 0x3000 },
-  { 0x9a00, 0x2f59, 0x2000 },
-  { 0x1a00, 0x2f58, 0x0000 },
-  { 0x1a00, 0x2f5a, 0x0000 },
-  { 0x9a00, 0x2f5d, 0x2000 },
-  { 0x1a00, 0x2f5c, 0x0000 },
-  { 0x1a00, 0x2f5e, 0x0000 },
-  { 0x9a00, 0x2f7f, 0x6000 },
-  { 0x9a00, 0x2f6f, 0x5000 },
-  { 0x9a00, 0x2f67, 0x4000 },
-  { 0x9a00, 0x2f63, 0x3000 },
-  { 0x9a00, 0x2f61, 0x2000 },
-  { 0x1a00, 0x2f60, 0x0000 },
-  { 0x1a00, 0x2f62, 0x0000 },
-  { 0x9a00, 0x2f65, 0x2000 },
-  { 0x1a00, 0x2f64, 0x0000 },
-  { 0x1a00, 0x2f66, 0x0000 },
-  { 0x9a00, 0x2f6b, 0x3000 },
-  { 0x9a00, 0x2f69, 0x2000 },
-  { 0x1a00, 0x2f68, 0x0000 },
-  { 0x1a00, 0x2f6a, 0x0000 },
-  { 0x9a00, 0x2f6d, 0x2000 },
-  { 0x1a00, 0x2f6c, 0x0000 },
-  { 0x1a00, 0x2f6e, 0x0000 },
-  { 0x9a00, 0x2f77, 0x4000 },
-  { 0x9a00, 0x2f73, 0x3000 },
-  { 0x9a00, 0x2f71, 0x2000 },
-  { 0x1a00, 0x2f70, 0x0000 },
-  { 0x1a00, 0x2f72, 0x0000 },
-  { 0x9a00, 0x2f75, 0x2000 },
-  { 0x1a00, 0x2f74, 0x0000 },
-  { 0x1a00, 0x2f76, 0x0000 },
-  { 0x9a00, 0x2f7b, 0x3000 },
-  { 0x9a00, 0x2f79, 0x2000 },
-  { 0x1a00, 0x2f78, 0x0000 },
-  { 0x1a00, 0x2f7a, 0x0000 },
-  { 0x9a00, 0x2f7d, 0x2000 },
-  { 0x1a00, 0x2f7c, 0x0000 },
-  { 0x1a00, 0x2f7e, 0x0000 },
-  { 0x9a00, 0x2f8f, 0x5000 },
-  { 0x9a00, 0x2f87, 0x4000 },
-  { 0x9a00, 0x2f83, 0x3000 },
-  { 0x9a00, 0x2f81, 0x2000 },
-  { 0x1a00, 0x2f80, 0x0000 },
-  { 0x1a00, 0x2f82, 0x0000 },
-  { 0x9a00, 0x2f85, 0x2000 },
-  { 0x1a00, 0x2f84, 0x0000 },
-  { 0x1a00, 0x2f86, 0x0000 },
-  { 0x9a00, 0x2f8b, 0x3000 },
-  { 0x9a00, 0x2f89, 0x2000 },
-  { 0x1a00, 0x2f88, 0x0000 },
-  { 0x1a00, 0x2f8a, 0x0000 },
-  { 0x9a00, 0x2f8d, 0x2000 },
-  { 0x1a00, 0x2f8c, 0x0000 },
-  { 0x1a00, 0x2f8e, 0x0000 },
-  { 0x9a00, 0x2f97, 0x4000 },
-  { 0x9a00, 0x2f93, 0x3000 },
-  { 0x9a00, 0x2f91, 0x2000 },
-  { 0x1a00, 0x2f90, 0x0000 },
-  { 0x1a00, 0x2f92, 0x0000 },
-  { 0x9a00, 0x2f95, 0x2000 },
-  { 0x1a00, 0x2f94, 0x0000 },
-  { 0x1a00, 0x2f96, 0x0000 },
-  { 0x9a00, 0x2f9b, 0x3000 },
-  { 0x9a00, 0x2f99, 0x2000 },
-  { 0x1a00, 0x2f98, 0x0000 },
-  { 0x1a00, 0x2f9a, 0x0000 },
-  { 0x9a00, 0x2f9d, 0x2000 },
-  { 0x1a00, 0x2f9c, 0x0000 },
-  { 0x1a00, 0x2f9e, 0x0000 },
-  { 0x9a00, 0x2ff9, 0x7000 },
-  { 0x9a00, 0x2fbf, 0x6000 },
-  { 0x9a00, 0x2faf, 0x5000 },
-  { 0x9a00, 0x2fa7, 0x4000 },
-  { 0x9a00, 0x2fa3, 0x3000 },
-  { 0x9a00, 0x2fa1, 0x2000 },
-  { 0x1a00, 0x2fa0, 0x0000 },
-  { 0x1a00, 0x2fa2, 0x0000 },
-  { 0x9a00, 0x2fa5, 0x2000 },
-  { 0x1a00, 0x2fa4, 0x0000 },
-  { 0x1a00, 0x2fa6, 0x0000 },
-  { 0x9a00, 0x2fab, 0x3000 },
-  { 0x9a00, 0x2fa9, 0x2000 },
-  { 0x1a00, 0x2fa8, 0x0000 },
-  { 0x1a00, 0x2faa, 0x0000 },
-  { 0x9a00, 0x2fad, 0x2000 },
-  { 0x1a00, 0x2fac, 0x0000 },
-  { 0x1a00, 0x2fae, 0x0000 },
-  { 0x9a00, 0x2fb7, 0x4000 },
-  { 0x9a00, 0x2fb3, 0x3000 },
-  { 0x9a00, 0x2fb1, 0x2000 },
-  { 0x1a00, 0x2fb0, 0x0000 },
-  { 0x1a00, 0x2fb2, 0x0000 },
-  { 0x9a00, 0x2fb5, 0x2000 },
-  { 0x1a00, 0x2fb4, 0x0000 },
-  { 0x1a00, 0x2fb6, 0x0000 },
-  { 0x9a00, 0x2fbb, 0x3000 },
-  { 0x9a00, 0x2fb9, 0x2000 },
-  { 0x1a00, 0x2fb8, 0x0000 },
-  { 0x1a00, 0x2fba, 0x0000 },
-  { 0x9a00, 0x2fbd, 0x2000 },
-  { 0x1a00, 0x2fbc, 0x0000 },
-  { 0x1a00, 0x2fbe, 0x0000 },
-  { 0x9a00, 0x2fcf, 0x5000 },
-  { 0x9a00, 0x2fc7, 0x4000 },
-  { 0x9a00, 0x2fc3, 0x3000 },
-  { 0x9a00, 0x2fc1, 0x2000 },
-  { 0x1a00, 0x2fc0, 0x0000 },
-  { 0x1a00, 0x2fc2, 0x0000 },
-  { 0x9a00, 0x2fc5, 0x2000 },
-  { 0x1a00, 0x2fc4, 0x0000 },
-  { 0x1a00, 0x2fc6, 0x0000 },
-  { 0x9a00, 0x2fcb, 0x3000 },
-  { 0x9a00, 0x2fc9, 0x2000 },
-  { 0x1a00, 0x2fc8, 0x0000 },
-  { 0x1a00, 0x2fca, 0x0000 },
-  { 0x9a00, 0x2fcd, 0x2000 },
-  { 0x1a00, 0x2fcc, 0x0000 },
-  { 0x1a00, 0x2fce, 0x0000 },
-  { 0x9a00, 0x2ff1, 0x4000 },
-  { 0x9a00, 0x2fd3, 0x3000 },
-  { 0x9a00, 0x2fd1, 0x2000 },
-  { 0x1a00, 0x2fd0, 0x0000 },
-  { 0x1a00, 0x2fd2, 0x0000 },
-  { 0x9a00, 0x2fd5, 0x2000 },
-  { 0x1a00, 0x2fd4, 0x0000 },
-  { 0x1a00, 0x2ff0, 0x0000 },
-  { 0x9a00, 0x2ff5, 0x3000 },
-  { 0x9a00, 0x2ff3, 0x2000 },
-  { 0x1a00, 0x2ff2, 0x0000 },
-  { 0x1a00, 0x2ff4, 0x0000 },
-  { 0x9a00, 0x2ff7, 0x2000 },
-  { 0x1a00, 0x2ff6, 0x0000 },
-  { 0x1a00, 0x2ff8, 0x0000 },
-  { 0x9600, 0x301d, 0x6000 },
-  { 0x9200, 0x300d, 0x5000 },
-  { 0x8600, 0x3005, 0x4000 },
-  { 0x9500, 0x3001, 0x3000 },
-  { 0x9a00, 0x2ffb, 0x2000 },
-  { 0x1a00, 0x2ffa, 0x0000 },
-  { 0x1d00, 0x3000, 0x0000 },
-  { 0x9500, 0x3003, 0x2000 },
-  { 0x1500, 0x3002, 0x0000 },
-  { 0x1a00, 0x3004, 0x0000 },
-  { 0x9200, 0x3009, 0x3000 },
-  { 0x8e00, 0x3007, 0x2000 },
-  { 0x0700, 0x3006, 0x0000 },
-  { 0x1600, 0x3008, 0x0000 },
-  { 0x9200, 0x300b, 0x2000 },
-  { 0x1600, 0x300a, 0x0000 },
-  { 0x1600, 0x300c, 0x0000 },
-  { 0x9200, 0x3015, 0x4000 },
-  { 0x9200, 0x3011, 0x3000 },
-  { 0x9200, 0x300f, 0x2000 },
-  { 0x1600, 0x300e, 0x0000 },
-  { 0x1600, 0x3010, 0x0000 },
-  { 0x9a00, 0x3013, 0x2000 },
-  { 0x1a00, 0x3012, 0x0000 },
-  { 0x1600, 0x3014, 0x0000 },
-  { 0x9200, 0x3019, 0x3000 },
-  { 0x9200, 0x3017, 0x2000 },
-  { 0x1600, 0x3016, 0x0000 },
-  { 0x1600, 0x3018, 0x0000 },
-  { 0x9200, 0x301b, 0x2000 },
-  { 0x1600, 0x301a, 0x0000 },
-  { 0x1100, 0x301c, 0x0000 },
-  { 0x8c00, 0x302d, 0x5000 },
-  { 0x8e00, 0x3025, 0x4000 },
-  { 0x8e00, 0x3021, 0x3000 },
-  { 0x9200, 0x301f, 0x2000 },
-  { 0x1200, 0x301e, 0x0000 },
-  { 0x1a00, 0x3020, 0x0000 },
-  { 0x8e00, 0x3023, 0x2000 },
-  { 0x0e00, 0x3022, 0x0000 },
-  { 0x0e00, 0x3024, 0x0000 },
-  { 0x8e00, 0x3029, 0x3000 },
-  { 0x8e00, 0x3027, 0x2000 },
-  { 0x0e00, 0x3026, 0x0000 },
-  { 0x0e00, 0x3028, 0x0000 },
-  { 0x8c00, 0x302b, 0x2000 },
-  { 0x0c00, 0x302a, 0x0000 },
-  { 0x0c00, 0x302c, 0x0000 },
-  { 0x8600, 0x3035, 0x4000 },
-  { 0x8600, 0x3031, 0x3000 },
-  { 0x8c00, 0x302f, 0x2000 },
-  { 0x0c00, 0x302e, 0x0000 },
-  { 0x1100, 0x3030, 0x0000 },
-  { 0x8600, 0x3033, 0x2000 },
-  { 0x0600, 0x3032, 0x0000 },
-  { 0x0600, 0x3034, 0x0000 },
-  { 0x8e00, 0x3039, 0x3000 },
-  { 0x9a00, 0x3037, 0x2000 },
-  { 0x1a00, 0x3036, 0x0000 },
-  { 0x0e00, 0x3038, 0x0000 },
-  { 0x8600, 0x303b, 0x2000 },
-  { 0x0e00, 0x303a, 0x0000 },
-  { 0x0700, 0x303c, 0x0000 },
-  { 0x8700, 0x30c0, 0x8000 },
-  { 0x8700, 0x307e, 0x7000 },
-  { 0x8700, 0x305e, 0x6000 },
-  { 0x8700, 0x304e, 0x5000 },
-  { 0x8700, 0x3046, 0x4000 },
-  { 0x8700, 0x3042, 0x3000 },
-  { 0x9a00, 0x303f, 0x2000 },
-  { 0x1a00, 0x303e, 0x0000 },
-  { 0x0700, 0x3041, 0x0000 },
-  { 0x8700, 0x3044, 0x2000 },
-  { 0x0700, 0x3043, 0x0000 },
-  { 0x0700, 0x3045, 0x0000 },
-  { 0x8700, 0x304a, 0x3000 },
-  { 0x8700, 0x3048, 0x2000 },
-  { 0x0700, 0x3047, 0x0000 },
-  { 0x0700, 0x3049, 0x0000 },
-  { 0x8700, 0x304c, 0x2000 },
-  { 0x0700, 0x304b, 0x0000 },
-  { 0x0700, 0x304d, 0x0000 },
-  { 0x8700, 0x3056, 0x4000 },
-  { 0x8700, 0x3052, 0x3000 },
-  { 0x8700, 0x3050, 0x2000 },
-  { 0x0700, 0x304f, 0x0000 },
-  { 0x0700, 0x3051, 0x0000 },
-  { 0x8700, 0x3054, 0x2000 },
-  { 0x0700, 0x3053, 0x0000 },
-  { 0x0700, 0x3055, 0x0000 },
-  { 0x8700, 0x305a, 0x3000 },
-  { 0x8700, 0x3058, 0x2000 },
-  { 0x0700, 0x3057, 0x0000 },
-  { 0x0700, 0x3059, 0x0000 },
-  { 0x8700, 0x305c, 0x2000 },
-  { 0x0700, 0x305b, 0x0000 },
-  { 0x0700, 0x305d, 0x0000 },
-  { 0x8700, 0x306e, 0x5000 },
-  { 0x8700, 0x3066, 0x4000 },
-  { 0x8700, 0x3062, 0x3000 },
-  { 0x8700, 0x3060, 0x2000 },
-  { 0x0700, 0x305f, 0x0000 },
-  { 0x0700, 0x3061, 0x0000 },
-  { 0x8700, 0x3064, 0x2000 },
-  { 0x0700, 0x3063, 0x0000 },
-  { 0x0700, 0x3065, 0x0000 },
-  { 0x8700, 0x306a, 0x3000 },
-  { 0x8700, 0x3068, 0x2000 },
-  { 0x0700, 0x3067, 0x0000 },
-  { 0x0700, 0x3069, 0x0000 },
-  { 0x8700, 0x306c, 0x2000 },
-  { 0x0700, 0x306b, 0x0000 },
-  { 0x0700, 0x306d, 0x0000 },
-  { 0x8700, 0x3076, 0x4000 },
-  { 0x8700, 0x3072, 0x3000 },
-  { 0x8700, 0x3070, 0x2000 },
-  { 0x0700, 0x306f, 0x0000 },
-  { 0x0700, 0x3071, 0x0000 },
-  { 0x8700, 0x3074, 0x2000 },
-  { 0x0700, 0x3073, 0x0000 },
-  { 0x0700, 0x3075, 0x0000 },
-  { 0x8700, 0x307a, 0x3000 },
-  { 0x8700, 0x3078, 0x2000 },
-  { 0x0700, 0x3077, 0x0000 },
-  { 0x0700, 0x3079, 0x0000 },
-  { 0x8700, 0x307c, 0x2000 },
-  { 0x0700, 0x307b, 0x0000 },
-  { 0x0700, 0x307d, 0x0000 },
-  { 0x9100, 0x30a0, 0x6000 },
-  { 0x8700, 0x308e, 0x5000 },
-  { 0x8700, 0x3086, 0x4000 },
-  { 0x8700, 0x3082, 0x3000 },
-  { 0x8700, 0x3080, 0x2000 },
-  { 0x0700, 0x307f, 0x0000 },
-  { 0x0700, 0x3081, 0x0000 },
-  { 0x8700, 0x3084, 0x2000 },
-  { 0x0700, 0x3083, 0x0000 },
-  { 0x0700, 0x3085, 0x0000 },
-  { 0x8700, 0x308a, 0x3000 },
-  { 0x8700, 0x3088, 0x2000 },
-  { 0x0700, 0x3087, 0x0000 },
-  { 0x0700, 0x3089, 0x0000 },
-  { 0x8700, 0x308c, 0x2000 },
-  { 0x0700, 0x308b, 0x0000 },
-  { 0x0700, 0x308d, 0x0000 },
-  { 0x8700, 0x3096, 0x4000 },
-  { 0x8700, 0x3092, 0x3000 },
-  { 0x8700, 0x3090, 0x2000 },
-  { 0x0700, 0x308f, 0x0000 },
-  { 0x0700, 0x3091, 0x0000 },
-  { 0x8700, 0x3094, 0x2000 },
-  { 0x0700, 0x3093, 0x0000 },
-  { 0x0700, 0x3095, 0x0000 },
-  { 0x9800, 0x309c, 0x3000 },
-  { 0x8c00, 0x309a, 0x2000 },
-  { 0x0c00, 0x3099, 0x0000 },
-  { 0x1800, 0x309b, 0x0000 },
-  { 0x8600, 0x309e, 0x2000 },
-  { 0x0600, 0x309d, 0x0000 },
-  { 0x0700, 0x309f, 0x0000 },
-  { 0x8700, 0x30b0, 0x5000 },
-  { 0x8700, 0x30a8, 0x4000 },
-  { 0x8700, 0x30a4, 0x3000 },
-  { 0x8700, 0x30a2, 0x2000 },
-  { 0x0700, 0x30a1, 0x0000 },
-  { 0x0700, 0x30a3, 0x0000 },
-  { 0x8700, 0x30a6, 0x2000 },
-  { 0x0700, 0x30a5, 0x0000 },
-  { 0x0700, 0x30a7, 0x0000 },
-  { 0x8700, 0x30ac, 0x3000 },
-  { 0x8700, 0x30aa, 0x2000 },
-  { 0x0700, 0x30a9, 0x0000 },
-  { 0x0700, 0x30ab, 0x0000 },
-  { 0x8700, 0x30ae, 0x2000 },
-  { 0x0700, 0x30ad, 0x0000 },
-  { 0x0700, 0x30af, 0x0000 },
-  { 0x8700, 0x30b8, 0x4000 },
-  { 0x8700, 0x30b4, 0x3000 },
-  { 0x8700, 0x30b2, 0x2000 },
-  { 0x0700, 0x30b1, 0x0000 },
-  { 0x0700, 0x30b3, 0x0000 },
-  { 0x8700, 0x30b6, 0x2000 },
-  { 0x0700, 0x30b5, 0x0000 },
-  { 0x0700, 0x30b7, 0x0000 },
-  { 0x8700, 0x30bc, 0x3000 },
-  { 0x8700, 0x30ba, 0x2000 },
-  { 0x0700, 0x30b9, 0x0000 },
-  { 0x0700, 0x30bb, 0x0000 },
-  { 0x8700, 0x30be, 0x2000 },
-  { 0x0700, 0x30bd, 0x0000 },
-  { 0x0700, 0x30bf, 0x0000 },
-  { 0x8700, 0x3105, 0x7000 },
-  { 0x8700, 0x30e0, 0x6000 },
-  { 0x8700, 0x30d0, 0x5000 },
-  { 0x8700, 0x30c8, 0x4000 },
-  { 0x8700, 0x30c4, 0x3000 },
-  { 0x8700, 0x30c2, 0x2000 },
-  { 0x0700, 0x30c1, 0x0000 },
-  { 0x0700, 0x30c3, 0x0000 },
-  { 0x8700, 0x30c6, 0x2000 },
-  { 0x0700, 0x30c5, 0x0000 },
-  { 0x0700, 0x30c7, 0x0000 },
-  { 0x8700, 0x30cc, 0x3000 },
-  { 0x8700, 0x30ca, 0x2000 },
-  { 0x0700, 0x30c9, 0x0000 },
-  { 0x0700, 0x30cb, 0x0000 },
-  { 0x8700, 0x30ce, 0x2000 },
-  { 0x0700, 0x30cd, 0x0000 },
-  { 0x0700, 0x30cf, 0x0000 },
-  { 0x8700, 0x30d8, 0x4000 },
-  { 0x8700, 0x30d4, 0x3000 },
-  { 0x8700, 0x30d2, 0x2000 },
-  { 0x0700, 0x30d1, 0x0000 },
-  { 0x0700, 0x30d3, 0x0000 },
-  { 0x8700, 0x30d6, 0x2000 },
-  { 0x0700, 0x30d5, 0x0000 },
-  { 0x0700, 0x30d7, 0x0000 },
-  { 0x8700, 0x30dc, 0x3000 },
-  { 0x8700, 0x30da, 0x2000 },
-  { 0x0700, 0x30d9, 0x0000 },
-  { 0x0700, 0x30db, 0x0000 },
-  { 0x8700, 0x30de, 0x2000 },
-  { 0x0700, 0x30dd, 0x0000 },
-  { 0x0700, 0x30df, 0x0000 },
-  { 0x8700, 0x30f0, 0x5000 },
-  { 0x8700, 0x30e8, 0x4000 },
-  { 0x8700, 0x30e4, 0x3000 },
-  { 0x8700, 0x30e2, 0x2000 },
-  { 0x0700, 0x30e1, 0x0000 },
-  { 0x0700, 0x30e3, 0x0000 },
-  { 0x8700, 0x30e6, 0x2000 },
-  { 0x0700, 0x30e5, 0x0000 },
-  { 0x0700, 0x30e7, 0x0000 },
-  { 0x8700, 0x30ec, 0x3000 },
-  { 0x8700, 0x30ea, 0x2000 },
-  { 0x0700, 0x30e9, 0x0000 },
-  { 0x0700, 0x30eb, 0x0000 },
-  { 0x8700, 0x30ee, 0x2000 },
-  { 0x0700, 0x30ed, 0x0000 },
-  { 0x0700, 0x30ef, 0x0000 },
-  { 0x8700, 0x30f8, 0x4000 },
-  { 0x8700, 0x30f4, 0x3000 },
-  { 0x8700, 0x30f2, 0x2000 },
-  { 0x0700, 0x30f1, 0x0000 },
-  { 0x0700, 0x30f3, 0x0000 },
-  { 0x8700, 0x30f6, 0x2000 },
-  { 0x0700, 0x30f5, 0x0000 },
-  { 0x0700, 0x30f7, 0x0000 },
-  { 0x8600, 0x30fc, 0x3000 },
-  { 0x8700, 0x30fa, 0x2000 },
-  { 0x0700, 0x30f9, 0x0000 },
-  { 0x1000, 0x30fb, 0x0000 },
-  { 0x8600, 0x30fe, 0x2000 },
-  { 0x0600, 0x30fd, 0x0000 },
-  { 0x0700, 0x30ff, 0x0000 },
-  { 0x8700, 0x3125, 0x6000 },
-  { 0x8700, 0x3115, 0x5000 },
-  { 0x8700, 0x310d, 0x4000 },
-  { 0x8700, 0x3109, 0x3000 },
-  { 0x8700, 0x3107, 0x2000 },
-  { 0x0700, 0x3106, 0x0000 },
-  { 0x0700, 0x3108, 0x0000 },
-  { 0x8700, 0x310b, 0x2000 },
-  { 0x0700, 0x310a, 0x0000 },
-  { 0x0700, 0x310c, 0x0000 },
-  { 0x8700, 0x3111, 0x3000 },
-  { 0x8700, 0x310f, 0x2000 },
-  { 0x0700, 0x310e, 0x0000 },
-  { 0x0700, 0x3110, 0x0000 },
-  { 0x8700, 0x3113, 0x2000 },
-  { 0x0700, 0x3112, 0x0000 },
-  { 0x0700, 0x3114, 0x0000 },
-  { 0x8700, 0x311d, 0x4000 },
-  { 0x8700, 0x3119, 0x3000 },
-  { 0x8700, 0x3117, 0x2000 },
-  { 0x0700, 0x3116, 0x0000 },
-  { 0x0700, 0x3118, 0x0000 },
-  { 0x8700, 0x311b, 0x2000 },
-  { 0x0700, 0x311a, 0x0000 },
-  { 0x0700, 0x311c, 0x0000 },
-  { 0x8700, 0x3121, 0x3000 },
-  { 0x8700, 0x311f, 0x2000 },
-  { 0x0700, 0x311e, 0x0000 },
-  { 0x0700, 0x3120, 0x0000 },
-  { 0x8700, 0x3123, 0x2000 },
-  { 0x0700, 0x3122, 0x0000 },
-  { 0x0700, 0x3124, 0x0000 },
-  { 0x8700, 0x3139, 0x5000 },
-  { 0x8700, 0x3131, 0x4000 },
-  { 0x8700, 0x3129, 0x3000 },
-  { 0x8700, 0x3127, 0x2000 },
-  { 0x0700, 0x3126, 0x0000 },
-  { 0x0700, 0x3128, 0x0000 },
-  { 0x8700, 0x312b, 0x2000 },
-  { 0x0700, 0x312a, 0x0000 },
-  { 0x0700, 0x312c, 0x0000 },
-  { 0x8700, 0x3135, 0x3000 },
-  { 0x8700, 0x3133, 0x2000 },
-  { 0x0700, 0x3132, 0x0000 },
-  { 0x0700, 0x3134, 0x0000 },
-  { 0x8700, 0x3137, 0x2000 },
-  { 0x0700, 0x3136, 0x0000 },
-  { 0x0700, 0x3138, 0x0000 },
-  { 0x8700, 0x3141, 0x4000 },
-  { 0x8700, 0x313d, 0x3000 },
-  { 0x8700, 0x313b, 0x2000 },
-  { 0x0700, 0x313a, 0x0000 },
-  { 0x0700, 0x313c, 0x0000 },
-  { 0x8700, 0x313f, 0x2000 },
-  { 0x0700, 0x313e, 0x0000 },
-  { 0x0700, 0x3140, 0x0000 },
-  { 0x8700, 0x3145, 0x3000 },
-  { 0x8700, 0x3143, 0x2000 },
-  { 0x0700, 0x3142, 0x0000 },
-  { 0x0700, 0x3144, 0x0000 },
-  { 0x8700, 0x3147, 0x2000 },
-  { 0x0700, 0x3146, 0x0000 },
-  { 0x0700, 0x3148, 0x0000 },
-  { 0x9a00, 0x3290, 0x9000 },
-  { 0x9a00, 0x3202, 0x8000 },
-  { 0x8700, 0x3189, 0x7000 },
-  { 0x8700, 0x3169, 0x6000 },
-  { 0x8700, 0x3159, 0x5000 },
-  { 0x8700, 0x3151, 0x4000 },
-  { 0x8700, 0x314d, 0x3000 },
-  { 0x8700, 0x314b, 0x2000 },
-  { 0x0700, 0x314a, 0x0000 },
-  { 0x0700, 0x314c, 0x0000 },
-  { 0x8700, 0x314f, 0x2000 },
-  { 0x0700, 0x314e, 0x0000 },
-  { 0x0700, 0x3150, 0x0000 },
-  { 0x8700, 0x3155, 0x3000 },
-  { 0x8700, 0x3153, 0x2000 },
-  { 0x0700, 0x3152, 0x0000 },
-  { 0x0700, 0x3154, 0x0000 },
-  { 0x8700, 0x3157, 0x2000 },
-  { 0x0700, 0x3156, 0x0000 },
-  { 0x0700, 0x3158, 0x0000 },
-  { 0x8700, 0x3161, 0x4000 },
-  { 0x8700, 0x315d, 0x3000 },
-  { 0x8700, 0x315b, 0x2000 },
-  { 0x0700, 0x315a, 0x0000 },
-  { 0x0700, 0x315c, 0x0000 },
-  { 0x8700, 0x315f, 0x2000 },
-  { 0x0700, 0x315e, 0x0000 },
-  { 0x0700, 0x3160, 0x0000 },
-  { 0x8700, 0x3165, 0x3000 },
-  { 0x8700, 0x3163, 0x2000 },
-  { 0x0700, 0x3162, 0x0000 },
-  { 0x0700, 0x3164, 0x0000 },
-  { 0x8700, 0x3167, 0x2000 },
-  { 0x0700, 0x3166, 0x0000 },
-  { 0x0700, 0x3168, 0x0000 },
-  { 0x8700, 0x3179, 0x5000 },
-  { 0x8700, 0x3171, 0x4000 },
-  { 0x8700, 0x316d, 0x3000 },
-  { 0x8700, 0x316b, 0x2000 },
-  { 0x0700, 0x316a, 0x0000 },
-  { 0x0700, 0x316c, 0x0000 },
-  { 0x8700, 0x316f, 0x2000 },
-  { 0x0700, 0x316e, 0x0000 },
-  { 0x0700, 0x3170, 0x0000 },
-  { 0x8700, 0x3175, 0x3000 },
-  { 0x8700, 0x3173, 0x2000 },
-  { 0x0700, 0x3172, 0x0000 },
-  { 0x0700, 0x3174, 0x0000 },
-  { 0x8700, 0x3177, 0x2000 },
-  { 0x0700, 0x3176, 0x0000 },
-  { 0x0700, 0x3178, 0x0000 },
-  { 0x8700, 0x3181, 0x4000 },
-  { 0x8700, 0x317d, 0x3000 },
-  { 0x8700, 0x317b, 0x2000 },
-  { 0x0700, 0x317a, 0x0000 },
-  { 0x0700, 0x317c, 0x0000 },
-  { 0x8700, 0x317f, 0x2000 },
-  { 0x0700, 0x317e, 0x0000 },
-  { 0x0700, 0x3180, 0x0000 },
-  { 0x8700, 0x3185, 0x3000 },
-  { 0x8700, 0x3183, 0x2000 },
-  { 0x0700, 0x3182, 0x0000 },
-  { 0x0700, 0x3184, 0x0000 },
-  { 0x8700, 0x3187, 0x2000 },
-  { 0x0700, 0x3186, 0x0000 },
-  { 0x0700, 0x3188, 0x0000 },
-  { 0x8700, 0x31aa, 0x6000 },
-  { 0x9a00, 0x319a, 0x5000 },
-  { 0x8f00, 0x3192, 0x4000 },
-  { 0x8700, 0x318d, 0x3000 },
-  { 0x8700, 0x318b, 0x2000 },
-  { 0x0700, 0x318a, 0x0000 },
-  { 0x0700, 0x318c, 0x0000 },
-  { 0x9a00, 0x3190, 0x2000 },
-  { 0x0700, 0x318e, 0x0000 },
-  { 0x1a00, 0x3191, 0x0000 },
-  { 0x9a00, 0x3196, 0x3000 },
-  { 0x8f00, 0x3194, 0x2000 },
-  { 0x0f00, 0x3193, 0x0000 },
-  { 0x0f00, 0x3195, 0x0000 },
-  { 0x9a00, 0x3198, 0x2000 },
-  { 0x1a00, 0x3197, 0x0000 },
-  { 0x1a00, 0x3199, 0x0000 },
-  { 0x8700, 0x31a2, 0x4000 },
-  { 0x9a00, 0x319e, 0x3000 },
-  { 0x9a00, 0x319c, 0x2000 },
-  { 0x1a00, 0x319b, 0x0000 },
-  { 0x1a00, 0x319d, 0x0000 },
-  { 0x8700, 0x31a0, 0x2000 },
-  { 0x1a00, 0x319f, 0x0000 },
-  { 0x0700, 0x31a1, 0x0000 },
-  { 0x8700, 0x31a6, 0x3000 },
-  { 0x8700, 0x31a4, 0x2000 },
-  { 0x0700, 0x31a3, 0x0000 },
-  { 0x0700, 0x31a5, 0x0000 },
-  { 0x8700, 0x31a8, 0x2000 },
-  { 0x0700, 0x31a7, 0x0000 },
-  { 0x0700, 0x31a9, 0x0000 },
-  { 0x8700, 0x31f2, 0x5000 },
-  { 0x8700, 0x31b2, 0x4000 },
-  { 0x8700, 0x31ae, 0x3000 },
-  { 0x8700, 0x31ac, 0x2000 },
-  { 0x0700, 0x31ab, 0x0000 },
-  { 0x0700, 0x31ad, 0x0000 },
-  { 0x8700, 0x31b0, 0x2000 },
-  { 0x0700, 0x31af, 0x0000 },
-  { 0x0700, 0x31b1, 0x0000 },
-  { 0x8700, 0x31b6, 0x3000 },
-  { 0x8700, 0x31b4, 0x2000 },
-  { 0x0700, 0x31b3, 0x0000 },
-  { 0x0700, 0x31b5, 0x0000 },
-  { 0x8700, 0x31f0, 0x2000 },
-  { 0x0700, 0x31b7, 0x0000 },
-  { 0x0700, 0x31f1, 0x0000 },
-  { 0x8700, 0x31fa, 0x4000 },
-  { 0x8700, 0x31f6, 0x3000 },
-  { 0x8700, 0x31f4, 0x2000 },
-  { 0x0700, 0x31f3, 0x0000 },
-  { 0x0700, 0x31f5, 0x0000 },
-  { 0x8700, 0x31f8, 0x2000 },
-  { 0x0700, 0x31f7, 0x0000 },
-  { 0x0700, 0x31f9, 0x0000 },
-  { 0x8700, 0x31fe, 0x3000 },
-  { 0x8700, 0x31fc, 0x2000 },
-  { 0x0700, 0x31fb, 0x0000 },
-  { 0x0700, 0x31fd, 0x0000 },
-  { 0x9a00, 0x3200, 0x2000 },
-  { 0x0700, 0x31ff, 0x0000 },
-  { 0x1a00, 0x3201, 0x0000 },
-  { 0x9a00, 0x3243, 0x7000 },
-  { 0x8f00, 0x3223, 0x6000 },
-  { 0x9a00, 0x3212, 0x5000 },
-  { 0x9a00, 0x320a, 0x4000 },
-  { 0x9a00, 0x3206, 0x3000 },
-  { 0x9a00, 0x3204, 0x2000 },
-  { 0x1a00, 0x3203, 0x0000 },
-  { 0x1a00, 0x3205, 0x0000 },
-  { 0x9a00, 0x3208, 0x2000 },
-  { 0x1a00, 0x3207, 0x0000 },
-  { 0x1a00, 0x3209, 0x0000 },
-  { 0x9a00, 0x320e, 0x3000 },
-  { 0x9a00, 0x320c, 0x2000 },
-  { 0x1a00, 0x320b, 0x0000 },
-  { 0x1a00, 0x320d, 0x0000 },
-  { 0x9a00, 0x3210, 0x2000 },
-  { 0x1a00, 0x320f, 0x0000 },
-  { 0x1a00, 0x3211, 0x0000 },
-  { 0x9a00, 0x321a, 0x4000 },
-  { 0x9a00, 0x3216, 0x3000 },
-  { 0x9a00, 0x3214, 0x2000 },
-  { 0x1a00, 0x3213, 0x0000 },
-  { 0x1a00, 0x3215, 0x0000 },
-  { 0x9a00, 0x3218, 0x2000 },
-  { 0x1a00, 0x3217, 0x0000 },
-  { 0x1a00, 0x3219, 0x0000 },
-  { 0x9a00, 0x321e, 0x3000 },
-  { 0x9a00, 0x321c, 0x2000 },
-  { 0x1a00, 0x321b, 0x0000 },
-  { 0x1a00, 0x321d, 0x0000 },
-  { 0x8f00, 0x3221, 0x2000 },
-  { 0x0f00, 0x3220, 0x0000 },
-  { 0x0f00, 0x3222, 0x0000 },
-  { 0x9a00, 0x3233, 0x5000 },
-  { 0x9a00, 0x322b, 0x4000 },
-  { 0x8f00, 0x3227, 0x3000 },
-  { 0x8f00, 0x3225, 0x2000 },
-  { 0x0f00, 0x3224, 0x0000 },
-  { 0x0f00, 0x3226, 0x0000 },
-  { 0x8f00, 0x3229, 0x2000 },
-  { 0x0f00, 0x3228, 0x0000 },
-  { 0x1a00, 0x322a, 0x0000 },
-  { 0x9a00, 0x322f, 0x3000 },
-  { 0x9a00, 0x322d, 0x2000 },
-  { 0x1a00, 0x322c, 0x0000 },
-  { 0x1a00, 0x322e, 0x0000 },
-  { 0x9a00, 0x3231, 0x2000 },
-  { 0x1a00, 0x3230, 0x0000 },
-  { 0x1a00, 0x3232, 0x0000 },
-  { 0x9a00, 0x323b, 0x4000 },
-  { 0x9a00, 0x3237, 0x3000 },
-  { 0x9a00, 0x3235, 0x2000 },
-  { 0x1a00, 0x3234, 0x0000 },
-  { 0x1a00, 0x3236, 0x0000 },
-  { 0x9a00, 0x3239, 0x2000 },
-  { 0x1a00, 0x3238, 0x0000 },
-  { 0x1a00, 0x323a, 0x0000 },
-  { 0x9a00, 0x323f, 0x3000 },
-  { 0x9a00, 0x323d, 0x2000 },
-  { 0x1a00, 0x323c, 0x0000 },
-  { 0x1a00, 0x323e, 0x0000 },
-  { 0x9a00, 0x3241, 0x2000 },
-  { 0x1a00, 0x3240, 0x0000 },
-  { 0x1a00, 0x3242, 0x0000 },
-  { 0x9a00, 0x326f, 0x6000 },
-  { 0x8f00, 0x325f, 0x5000 },
-  { 0x8f00, 0x3257, 0x4000 },
-  { 0x8f00, 0x3253, 0x3000 },
-  { 0x8f00, 0x3251, 0x2000 },
-  { 0x1a00, 0x3250, 0x0000 },
-  { 0x0f00, 0x3252, 0x0000 },
-  { 0x8f00, 0x3255, 0x2000 },
-  { 0x0f00, 0x3254, 0x0000 },
-  { 0x0f00, 0x3256, 0x0000 },
-  { 0x8f00, 0x325b, 0x3000 },
-  { 0x8f00, 0x3259, 0x2000 },
-  { 0x0f00, 0x3258, 0x0000 },
-  { 0x0f00, 0x325a, 0x0000 },
-  { 0x8f00, 0x325d, 0x2000 },
-  { 0x0f00, 0x325c, 0x0000 },
-  { 0x0f00, 0x325e, 0x0000 },
-  { 0x9a00, 0x3267, 0x4000 },
-  { 0x9a00, 0x3263, 0x3000 },
-  { 0x9a00, 0x3261, 0x2000 },
-  { 0x1a00, 0x3260, 0x0000 },
-  { 0x1a00, 0x3262, 0x0000 },
-  { 0x9a00, 0x3265, 0x2000 },
-  { 0x1a00, 0x3264, 0x0000 },
-  { 0x1a00, 0x3266, 0x0000 },
-  { 0x9a00, 0x326b, 0x3000 },
-  { 0x9a00, 0x3269, 0x2000 },
-  { 0x1a00, 0x3268, 0x0000 },
-  { 0x1a00, 0x326a, 0x0000 },
-  { 0x9a00, 0x326d, 0x2000 },
-  { 0x1a00, 0x326c, 0x0000 },
-  { 0x1a00, 0x326e, 0x0000 },
-  { 0x8f00, 0x3280, 0x5000 },
-  { 0x9a00, 0x3277, 0x4000 },
-  { 0x9a00, 0x3273, 0x3000 },
-  { 0x9a00, 0x3271, 0x2000 },
-  { 0x1a00, 0x3270, 0x0000 },
-  { 0x1a00, 0x3272, 0x0000 },
-  { 0x9a00, 0x3275, 0x2000 },
-  { 0x1a00, 0x3274, 0x0000 },
-  { 0x1a00, 0x3276, 0x0000 },
-  { 0x9a00, 0x327b, 0x3000 },
-  { 0x9a00, 0x3279, 0x2000 },
-  { 0x1a00, 0x3278, 0x0000 },
-  { 0x1a00, 0x327a, 0x0000 },
-  { 0x9a00, 0x327d, 0x2000 },
-  { 0x1a00, 0x327c, 0x0000 },
-  { 0x1a00, 0x327f, 0x0000 },
-  { 0x8f00, 0x3288, 0x4000 },
-  { 0x8f00, 0x3284, 0x3000 },
-  { 0x8f00, 0x3282, 0x2000 },
-  { 0x0f00, 0x3281, 0x0000 },
-  { 0x0f00, 0x3283, 0x0000 },
-  { 0x8f00, 0x3286, 0x2000 },
-  { 0x0f00, 0x3285, 0x0000 },
-  { 0x0f00, 0x3287, 0x0000 },
-  { 0x9a00, 0x328c, 0x3000 },
-  { 0x9a00, 0x328a, 0x2000 },
-  { 0x0f00, 0x3289, 0x0000 },
-  { 0x1a00, 0x328b, 0x0000 },
-  { 0x9a00, 0x328e, 0x2000 },
-  { 0x1a00, 0x328d, 0x0000 },
-  { 0x1a00, 0x328f, 0x0000 },
-  { 0x9a00, 0x3311, 0x8000 },
-  { 0x9a00, 0x32d0, 0x7000 },
-  { 0x9a00, 0x32b0, 0x6000 },
-  { 0x9a00, 0x32a0, 0x5000 },
-  { 0x9a00, 0x3298, 0x4000 },
-  { 0x9a00, 0x3294, 0x3000 },
-  { 0x9a00, 0x3292, 0x2000 },
-  { 0x1a00, 0x3291, 0x0000 },
-  { 0x1a00, 0x3293, 0x0000 },
-  { 0x9a00, 0x3296, 0x2000 },
-  { 0x1a00, 0x3295, 0x0000 },
-  { 0x1a00, 0x3297, 0x0000 },
-  { 0x9a00, 0x329c, 0x3000 },
-  { 0x9a00, 0x329a, 0x2000 },
-  { 0x1a00, 0x3299, 0x0000 },
-  { 0x1a00, 0x329b, 0x0000 },
-  { 0x9a00, 0x329e, 0x2000 },
-  { 0x1a00, 0x329d, 0x0000 },
-  { 0x1a00, 0x329f, 0x0000 },
-  { 0x9a00, 0x32a8, 0x4000 },
-  { 0x9a00, 0x32a4, 0x3000 },
-  { 0x9a00, 0x32a2, 0x2000 },
-  { 0x1a00, 0x32a1, 0x0000 },
-  { 0x1a00, 0x32a3, 0x0000 },
-  { 0x9a00, 0x32a6, 0x2000 },
-  { 0x1a00, 0x32a5, 0x0000 },
-  { 0x1a00, 0x32a7, 0x0000 },
-  { 0x9a00, 0x32ac, 0x3000 },
-  { 0x9a00, 0x32aa, 0x2000 },
-  { 0x1a00, 0x32a9, 0x0000 },
-  { 0x1a00, 0x32ab, 0x0000 },
-  { 0x9a00, 0x32ae, 0x2000 },
-  { 0x1a00, 0x32ad, 0x0000 },
-  { 0x1a00, 0x32af, 0x0000 },
-  { 0x9a00, 0x32c0, 0x5000 },
-  { 0x8f00, 0x32b8, 0x4000 },
-  { 0x8f00, 0x32b4, 0x3000 },
-  { 0x8f00, 0x32b2, 0x2000 },
-  { 0x0f00, 0x32b1, 0x0000 },
-  { 0x0f00, 0x32b3, 0x0000 },
-  { 0x8f00, 0x32b6, 0x2000 },
-  { 0x0f00, 0x32b5, 0x0000 },
-  { 0x0f00, 0x32b7, 0x0000 },
-  { 0x8f00, 0x32bc, 0x3000 },
-  { 0x8f00, 0x32ba, 0x2000 },
-  { 0x0f00, 0x32b9, 0x0000 },
-  { 0x0f00, 0x32bb, 0x0000 },
-  { 0x8f00, 0x32be, 0x2000 },
-  { 0x0f00, 0x32bd, 0x0000 },
-  { 0x0f00, 0x32bf, 0x0000 },
-  { 0x9a00, 0x32c8, 0x4000 },
-  { 0x9a00, 0x32c4, 0x3000 },
-  { 0x9a00, 0x32c2, 0x2000 },
-  { 0x1a00, 0x32c1, 0x0000 },
-  { 0x1a00, 0x32c3, 0x0000 },
-  { 0x9a00, 0x32c6, 0x2000 },
-  { 0x1a00, 0x32c5, 0x0000 },
-  { 0x1a00, 0x32c7, 0x0000 },
-  { 0x9a00, 0x32cc, 0x3000 },
-  { 0x9a00, 0x32ca, 0x2000 },
-  { 0x1a00, 0x32c9, 0x0000 },
-  { 0x1a00, 0x32cb, 0x0000 },
-  { 0x9a00, 0x32ce, 0x2000 },
-  { 0x1a00, 0x32cd, 0x0000 },
-  { 0x1a00, 0x32cf, 0x0000 },
-  { 0x9a00, 0x32f0, 0x6000 },
-  { 0x9a00, 0x32e0, 0x5000 },
-  { 0x9a00, 0x32d8, 0x4000 },
-  { 0x9a00, 0x32d4, 0x3000 },
-  { 0x9a00, 0x32d2, 0x2000 },
-  { 0x1a00, 0x32d1, 0x0000 },
-  { 0x1a00, 0x32d3, 0x0000 },
-  { 0x9a00, 0x32d6, 0x2000 },
-  { 0x1a00, 0x32d5, 0x0000 },
-  { 0x1a00, 0x32d7, 0x0000 },
-  { 0x9a00, 0x32dc, 0x3000 },
-  { 0x9a00, 0x32da, 0x2000 },
-  { 0x1a00, 0x32d9, 0x0000 },
-  { 0x1a00, 0x32db, 0x0000 },
-  { 0x9a00, 0x32de, 0x2000 },
-  { 0x1a00, 0x32dd, 0x0000 },
-  { 0x1a00, 0x32df, 0x0000 },
-  { 0x9a00, 0x32e8, 0x4000 },
-  { 0x9a00, 0x32e4, 0x3000 },
-  { 0x9a00, 0x32e2, 0x2000 },
-  { 0x1a00, 0x32e1, 0x0000 },
-  { 0x1a00, 0x32e3, 0x0000 },
-  { 0x9a00, 0x32e6, 0x2000 },
-  { 0x1a00, 0x32e5, 0x0000 },
-  { 0x1a00, 0x32e7, 0x0000 },
-  { 0x9a00, 0x32ec, 0x3000 },
-  { 0x9a00, 0x32ea, 0x2000 },
-  { 0x1a00, 0x32e9, 0x0000 },
-  { 0x1a00, 0x32eb, 0x0000 },
-  { 0x9a00, 0x32ee, 0x2000 },
-  { 0x1a00, 0x32ed, 0x0000 },
-  { 0x1a00, 0x32ef, 0x0000 },
-  { 0x9a00, 0x3301, 0x5000 },
-  { 0x9a00, 0x32f8, 0x4000 },
-  { 0x9a00, 0x32f4, 0x3000 },
-  { 0x9a00, 0x32f2, 0x2000 },
-  { 0x1a00, 0x32f1, 0x0000 },
-  { 0x1a00, 0x32f3, 0x0000 },
-  { 0x9a00, 0x32f6, 0x2000 },
-  { 0x1a00, 0x32f5, 0x0000 },
-  { 0x1a00, 0x32f7, 0x0000 },
-  { 0x9a00, 0x32fc, 0x3000 },
-  { 0x9a00, 0x32fa, 0x2000 },
-  { 0x1a00, 0x32f9, 0x0000 },
-  { 0x1a00, 0x32fb, 0x0000 },
-  { 0x9a00, 0x32fe, 0x2000 },
-  { 0x1a00, 0x32fd, 0x0000 },
-  { 0x1a00, 0x3300, 0x0000 },
-  { 0x9a00, 0x3309, 0x4000 },
-  { 0x9a00, 0x3305, 0x3000 },
-  { 0x9a00, 0x3303, 0x2000 },
-  { 0x1a00, 0x3302, 0x0000 },
-  { 0x1a00, 0x3304, 0x0000 },
-  { 0x9a00, 0x3307, 0x2000 },
-  { 0x1a00, 0x3306, 0x0000 },
-  { 0x1a00, 0x3308, 0x0000 },
-  { 0x9a00, 0x330d, 0x3000 },
-  { 0x9a00, 0x330b, 0x2000 },
-  { 0x1a00, 0x330a, 0x0000 },
-  { 0x1a00, 0x330c, 0x0000 },
-  { 0x9a00, 0x330f, 0x2000 },
-  { 0x1a00, 0x330e, 0x0000 },
-  { 0x1a00, 0x3310, 0x0000 },
-  { 0x9a00, 0x3351, 0x7000 },
-  { 0x9a00, 0x3331, 0x6000 },
-  { 0x9a00, 0x3321, 0x5000 },
-  { 0x9a00, 0x3319, 0x4000 },
-  { 0x9a00, 0x3315, 0x3000 },
-  { 0x9a00, 0x3313, 0x2000 },
-  { 0x1a00, 0x3312, 0x0000 },
-  { 0x1a00, 0x3314, 0x0000 },
-  { 0x9a00, 0x3317, 0x2000 },
-  { 0x1a00, 0x3316, 0x0000 },
-  { 0x1a00, 0x3318, 0x0000 },
-  { 0x9a00, 0x331d, 0x3000 },
-  { 0x9a00, 0x331b, 0x2000 },
-  { 0x1a00, 0x331a, 0x0000 },
-  { 0x1a00, 0x331c, 0x0000 },
-  { 0x9a00, 0x331f, 0x2000 },
-  { 0x1a00, 0x331e, 0x0000 },
-  { 0x1a00, 0x3320, 0x0000 },
-  { 0x9a00, 0x3329, 0x4000 },
-  { 0x9a00, 0x3325, 0x3000 },
-  { 0x9a00, 0x3323, 0x2000 },
-  { 0x1a00, 0x3322, 0x0000 },
-  { 0x1a00, 0x3324, 0x0000 },
-  { 0x9a00, 0x3327, 0x2000 },
-  { 0x1a00, 0x3326, 0x0000 },
-  { 0x1a00, 0x3328, 0x0000 },
-  { 0x9a00, 0x332d, 0x3000 },
-  { 0x9a00, 0x332b, 0x2000 },
-  { 0x1a00, 0x332a, 0x0000 },
-  { 0x1a00, 0x332c, 0x0000 },
-  { 0x9a00, 0x332f, 0x2000 },
-  { 0x1a00, 0x332e, 0x0000 },
-  { 0x1a00, 0x3330, 0x0000 },
-  { 0x9a00, 0x3341, 0x5000 },
-  { 0x9a00, 0x3339, 0x4000 },
-  { 0x9a00, 0x3335, 0x3000 },
-  { 0x9a00, 0x3333, 0x2000 },
-  { 0x1a00, 0x3332, 0x0000 },
-  { 0x1a00, 0x3334, 0x0000 },
-  { 0x9a00, 0x3337, 0x2000 },
-  { 0x1a00, 0x3336, 0x0000 },
-  { 0x1a00, 0x3338, 0x0000 },
-  { 0x9a00, 0x333d, 0x3000 },
-  { 0x9a00, 0x333b, 0x2000 },
-  { 0x1a00, 0x333a, 0x0000 },
-  { 0x1a00, 0x333c, 0x0000 },
-  { 0x9a00, 0x333f, 0x2000 },
-  { 0x1a00, 0x333e, 0x0000 },
-  { 0x1a00, 0x3340, 0x0000 },
-  { 0x9a00, 0x3349, 0x4000 },
-  { 0x9a00, 0x3345, 0x3000 },
-  { 0x9a00, 0x3343, 0x2000 },
-  { 0x1a00, 0x3342, 0x0000 },
-  { 0x1a00, 0x3344, 0x0000 },
-  { 0x9a00, 0x3347, 0x2000 },
-  { 0x1a00, 0x3346, 0x0000 },
-  { 0x1a00, 0x3348, 0x0000 },
-  { 0x9a00, 0x334d, 0x3000 },
-  { 0x9a00, 0x334b, 0x2000 },
-  { 0x1a00, 0x334a, 0x0000 },
-  { 0x1a00, 0x334c, 0x0000 },
-  { 0x9a00, 0x334f, 0x2000 },
-  { 0x1a00, 0x334e, 0x0000 },
-  { 0x1a00, 0x3350, 0x0000 },
-  { 0x9a00, 0x3371, 0x6000 },
-  { 0x9a00, 0x3361, 0x5000 },
-  { 0x9a00, 0x3359, 0x4000 },
-  { 0x9a00, 0x3355, 0x3000 },
-  { 0x9a00, 0x3353, 0x2000 },
-  { 0x1a00, 0x3352, 0x0000 },
-  { 0x1a00, 0x3354, 0x0000 },
-  { 0x9a00, 0x3357, 0x2000 },
-  { 0x1a00, 0x3356, 0x0000 },
-  { 0x1a00, 0x3358, 0x0000 },
-  { 0x9a00, 0x335d, 0x3000 },
-  { 0x9a00, 0x335b, 0x2000 },
-  { 0x1a00, 0x335a, 0x0000 },
-  { 0x1a00, 0x335c, 0x0000 },
-  { 0x9a00, 0x335f, 0x2000 },
-  { 0x1a00, 0x335e, 0x0000 },
-  { 0x1a00, 0x3360, 0x0000 },
-  { 0x9a00, 0x3369, 0x4000 },
-  { 0x9a00, 0x3365, 0x3000 },
-  { 0x9a00, 0x3363, 0x2000 },
-  { 0x1a00, 0x3362, 0x0000 },
-  { 0x1a00, 0x3364, 0x0000 },
-  { 0x9a00, 0x3367, 0x2000 },
-  { 0x1a00, 0x3366, 0x0000 },
-  { 0x1a00, 0x3368, 0x0000 },
-  { 0x9a00, 0x336d, 0x3000 },
-  { 0x9a00, 0x336b, 0x2000 },
-  { 0x1a00, 0x336a, 0x0000 },
-  { 0x1a00, 0x336c, 0x0000 },
-  { 0x9a00, 0x336f, 0x2000 },
-  { 0x1a00, 0x336e, 0x0000 },
-  { 0x1a00, 0x3370, 0x0000 },
-  { 0x9a00, 0x3381, 0x5000 },
-  { 0x9a00, 0x3379, 0x4000 },
-  { 0x9a00, 0x3375, 0x3000 },
-  { 0x9a00, 0x3373, 0x2000 },
-  { 0x1a00, 0x3372, 0x0000 },
-  { 0x1a00, 0x3374, 0x0000 },
-  { 0x9a00, 0x3377, 0x2000 },
-  { 0x1a00, 0x3376, 0x0000 },
-  { 0x1a00, 0x3378, 0x0000 },
-  { 0x9a00, 0x337d, 0x3000 },
-  { 0x9a00, 0x337b, 0x2000 },
-  { 0x1a00, 0x337a, 0x0000 },
-  { 0x1a00, 0x337c, 0x0000 },
-  { 0x9a00, 0x337f, 0x2000 },
-  { 0x1a00, 0x337e, 0x0000 },
-  { 0x1a00, 0x3380, 0x0000 },
-  { 0x9a00, 0x3389, 0x4000 },
-  { 0x9a00, 0x3385, 0x3000 },
-  { 0x9a00, 0x3383, 0x2000 },
-  { 0x1a00, 0x3382, 0x0000 },
-  { 0x1a00, 0x3384, 0x0000 },
-  { 0x9a00, 0x3387, 0x2000 },
-  { 0x1a00, 0x3386, 0x0000 },
-  { 0x1a00, 0x3388, 0x0000 },
-  { 0x9a00, 0x338d, 0x3000 },
-  { 0x9a00, 0x338b, 0x2000 },
-  { 0x1a00, 0x338a, 0x0000 },
-  { 0x1a00, 0x338c, 0x0000 },
-  { 0x9a00, 0x338f, 0x2000 },
-  { 0x1a00, 0x338e, 0x0000 },
-  { 0x1a00, 0x3390, 0x0000 },
-  { 0x8700, 0xa14d, 0xa000 },
-  { 0x8700, 0xa04d, 0x9000 },
-  { 0x9a00, 0x4dcf, 0x8000 },
-  { 0x9a00, 0x33d1, 0x7000 },
-  { 0x9a00, 0x33b1, 0x6000 },
-  { 0x9a00, 0x33a1, 0x5000 },
-  { 0x9a00, 0x3399, 0x4000 },
-  { 0x9a00, 0x3395, 0x3000 },
-  { 0x9a00, 0x3393, 0x2000 },
-  { 0x1a00, 0x3392, 0x0000 },
-  { 0x1a00, 0x3394, 0x0000 },
-  { 0x9a00, 0x3397, 0x2000 },
-  { 0x1a00, 0x3396, 0x0000 },
-  { 0x1a00, 0x3398, 0x0000 },
-  { 0x9a00, 0x339d, 0x3000 },
-  { 0x9a00, 0x339b, 0x2000 },
-  { 0x1a00, 0x339a, 0x0000 },
-  { 0x1a00, 0x339c, 0x0000 },
-  { 0x9a00, 0x339f, 0x2000 },
-  { 0x1a00, 0x339e, 0x0000 },
-  { 0x1a00, 0x33a0, 0x0000 },
-  { 0x9a00, 0x33a9, 0x4000 },
-  { 0x9a00, 0x33a5, 0x3000 },
-  { 0x9a00, 0x33a3, 0x2000 },
-  { 0x1a00, 0x33a2, 0x0000 },
-  { 0x1a00, 0x33a4, 0x0000 },
-  { 0x9a00, 0x33a7, 0x2000 },
-  { 0x1a00, 0x33a6, 0x0000 },
-  { 0x1a00, 0x33a8, 0x0000 },
-  { 0x9a00, 0x33ad, 0x3000 },
-  { 0x9a00, 0x33ab, 0x2000 },
-  { 0x1a00, 0x33aa, 0x0000 },
-  { 0x1a00, 0x33ac, 0x0000 },
-  { 0x9a00, 0x33af, 0x2000 },
-  { 0x1a00, 0x33ae, 0x0000 },
-  { 0x1a00, 0x33b0, 0x0000 },
-  { 0x9a00, 0x33c1, 0x5000 },
-  { 0x9a00, 0x33b9, 0x4000 },
-  { 0x9a00, 0x33b5, 0x3000 },
-  { 0x9a00, 0x33b3, 0x2000 },
-  { 0x1a00, 0x33b2, 0x0000 },
-  { 0x1a00, 0x33b4, 0x0000 },
-  { 0x9a00, 0x33b7, 0x2000 },
-  { 0x1a00, 0x33b6, 0x0000 },
-  { 0x1a00, 0x33b8, 0x0000 },
-  { 0x9a00, 0x33bd, 0x3000 },
-  { 0x9a00, 0x33bb, 0x2000 },
-  { 0x1a00, 0x33ba, 0x0000 },
-  { 0x1a00, 0x33bc, 0x0000 },
-  { 0x9a00, 0x33bf, 0x2000 },
-  { 0x1a00, 0x33be, 0x0000 },
-  { 0x1a00, 0x33c0, 0x0000 },
-  { 0x9a00, 0x33c9, 0x4000 },
-  { 0x9a00, 0x33c5, 0x3000 },
-  { 0x9a00, 0x33c3, 0x2000 },
-  { 0x1a00, 0x33c2, 0x0000 },
-  { 0x1a00, 0x33c4, 0x0000 },
-  { 0x9a00, 0x33c7, 0x2000 },
-  { 0x1a00, 0x33c6, 0x0000 },
-  { 0x1a00, 0x33c8, 0x0000 },
-  { 0x9a00, 0x33cd, 0x3000 },
-  { 0x9a00, 0x33cb, 0x2000 },
-  { 0x1a00, 0x33ca, 0x0000 },
-  { 0x1a00, 0x33cc, 0x0000 },
-  { 0x9a00, 0x33cf, 0x2000 },
-  { 0x1a00, 0x33ce, 0x0000 },
-  { 0x1a00, 0x33d0, 0x0000 },
-  { 0x9a00, 0x33f1, 0x6000 },
-  { 0x9a00, 0x33e1, 0x5000 },
-  { 0x9a00, 0x33d9, 0x4000 },
-  { 0x9a00, 0x33d5, 0x3000 },
-  { 0x9a00, 0x33d3, 0x2000 },
-  { 0x1a00, 0x33d2, 0x0000 },
-  { 0x1a00, 0x33d4, 0x0000 },
-  { 0x9a00, 0x33d7, 0x2000 },
-  { 0x1a00, 0x33d6, 0x0000 },
-  { 0x1a00, 0x33d8, 0x0000 },
-  { 0x9a00, 0x33dd, 0x3000 },
-  { 0x9a00, 0x33db, 0x2000 },
-  { 0x1a00, 0x33da, 0x0000 },
-  { 0x1a00, 0x33dc, 0x0000 },
-  { 0x9a00, 0x33df, 0x2000 },
-  { 0x1a00, 0x33de, 0x0000 },
-  { 0x1a00, 0x33e0, 0x0000 },
-  { 0x9a00, 0x33e9, 0x4000 },
-  { 0x9a00, 0x33e5, 0x3000 },
-  { 0x9a00, 0x33e3, 0x2000 },
-  { 0x1a00, 0x33e2, 0x0000 },
-  { 0x1a00, 0x33e4, 0x0000 },
-  { 0x9a00, 0x33e7, 0x2000 },
-  { 0x1a00, 0x33e6, 0x0000 },
-  { 0x1a00, 0x33e8, 0x0000 },
-  { 0x9a00, 0x33ed, 0x3000 },
-  { 0x9a00, 0x33eb, 0x2000 },
-  { 0x1a00, 0x33ea, 0x0000 },
-  { 0x1a00, 0x33ec, 0x0000 },
-  { 0x9a00, 0x33ef, 0x2000 },
-  { 0x1a00, 0x33ee, 0x0000 },
-  { 0x1a00, 0x33f0, 0x0000 },
-  { 0x8700, 0x4db5, 0x5000 },
-  { 0x9a00, 0x33f9, 0x4000 },
-  { 0x9a00, 0x33f5, 0x3000 },
-  { 0x9a00, 0x33f3, 0x2000 },
-  { 0x1a00, 0x33f2, 0x0000 },
-  { 0x1a00, 0x33f4, 0x0000 },
-  { 0x9a00, 0x33f7, 0x2000 },
-  { 0x1a00, 0x33f6, 0x0000 },
-  { 0x1a00, 0x33f8, 0x0000 },
-  { 0x9a00, 0x33fd, 0x3000 },
-  { 0x9a00, 0x33fb, 0x2000 },
-  { 0x1a00, 0x33fa, 0x0000 },
-  { 0x1a00, 0x33fc, 0x0000 },
-  { 0x9a00, 0x33ff, 0x2000 },
-  { 0x1a00, 0x33fe, 0x0000 },
-  { 0x0700, 0x3400, 0x0000 },
-  { 0x9a00, 0x4dc7, 0x4000 },
-  { 0x9a00, 0x4dc3, 0x3000 },
-  { 0x9a00, 0x4dc1, 0x2000 },
-  { 0x1a00, 0x4dc0, 0x0000 },
-  { 0x1a00, 0x4dc2, 0x0000 },
-  { 0x9a00, 0x4dc5, 0x2000 },
-  { 0x1a00, 0x4dc4, 0x0000 },
-  { 0x1a00, 0x4dc6, 0x0000 },
-  { 0x9a00, 0x4dcb, 0x3000 },
-  { 0x9a00, 0x4dc9, 0x2000 },
-  { 0x1a00, 0x4dc8, 0x0000 },
-  { 0x1a00, 0x4dca, 0x0000 },
-  { 0x9a00, 0x4dcd, 0x2000 },
-  { 0x1a00, 0x4dcc, 0x0000 },
-  { 0x1a00, 0x4dce, 0x0000 },
-  { 0x8700, 0xa00d, 0x7000 },
-  { 0x9a00, 0x4def, 0x6000 },
-  { 0x9a00, 0x4ddf, 0x5000 },
-  { 0x9a00, 0x4dd7, 0x4000 },
-  { 0x9a00, 0x4dd3, 0x3000 },
-  { 0x9a00, 0x4dd1, 0x2000 },
-  { 0x1a00, 0x4dd0, 0x0000 },
-  { 0x1a00, 0x4dd2, 0x0000 },
-  { 0x9a00, 0x4dd5, 0x2000 },
-  { 0x1a00, 0x4dd4, 0x0000 },
-  { 0x1a00, 0x4dd6, 0x0000 },
-  { 0x9a00, 0x4ddb, 0x3000 },
-  { 0x9a00, 0x4dd9, 0x2000 },
-  { 0x1a00, 0x4dd8, 0x0000 },
-  { 0x1a00, 0x4dda, 0x0000 },
-  { 0x9a00, 0x4ddd, 0x2000 },
-  { 0x1a00, 0x4ddc, 0x0000 },
-  { 0x1a00, 0x4dde, 0x0000 },
-  { 0x9a00, 0x4de7, 0x4000 },
-  { 0x9a00, 0x4de3, 0x3000 },
-  { 0x9a00, 0x4de1, 0x2000 },
-  { 0x1a00, 0x4de0, 0x0000 },
-  { 0x1a00, 0x4de2, 0x0000 },
-  { 0x9a00, 0x4de5, 0x2000 },
-  { 0x1a00, 0x4de4, 0x0000 },
-  { 0x1a00, 0x4de6, 0x0000 },
-  { 0x9a00, 0x4deb, 0x3000 },
-  { 0x9a00, 0x4de9, 0x2000 },
-  { 0x1a00, 0x4de8, 0x0000 },
-  { 0x1a00, 0x4dea, 0x0000 },
-  { 0x9a00, 0x4ded, 0x2000 },
-  { 0x1a00, 0x4dec, 0x0000 },
-  { 0x1a00, 0x4dee, 0x0000 },
-  { 0x9a00, 0x4dff, 0x5000 },
-  { 0x9a00, 0x4df7, 0x4000 },
-  { 0x9a00, 0x4df3, 0x3000 },
-  { 0x9a00, 0x4df1, 0x2000 },
-  { 0x1a00, 0x4df0, 0x0000 },
-  { 0x1a00, 0x4df2, 0x0000 },
-  { 0x9a00, 0x4df5, 0x2000 },
-  { 0x1a00, 0x4df4, 0x0000 },
-  { 0x1a00, 0x4df6, 0x0000 },
-  { 0x9a00, 0x4dfb, 0x3000 },
-  { 0x9a00, 0x4df9, 0x2000 },
-  { 0x1a00, 0x4df8, 0x0000 },
-  { 0x1a00, 0x4dfa, 0x0000 },
-  { 0x9a00, 0x4dfd, 0x2000 },
-  { 0x1a00, 0x4dfc, 0x0000 },
-  { 0x1a00, 0x4dfe, 0x0000 },
-  { 0x8700, 0xa005, 0x4000 },
-  { 0x8700, 0xa001, 0x3000 },
-  { 0x8700, 0x9fa5, 0x2000 },
-  { 0x0700, 0x4e00, 0x0000 },
-  { 0x0700, 0xa000, 0x0000 },
-  { 0x8700, 0xa003, 0x2000 },
-  { 0x0700, 0xa002, 0x0000 },
-  { 0x0700, 0xa004, 0x0000 },
-  { 0x8700, 0xa009, 0x3000 },
-  { 0x8700, 0xa007, 0x2000 },
-  { 0x0700, 0xa006, 0x0000 },
-  { 0x0700, 0xa008, 0x0000 },
-  { 0x8700, 0xa00b, 0x2000 },
-  { 0x0700, 0xa00a, 0x0000 },
-  { 0x0700, 0xa00c, 0x0000 },
-  { 0x8700, 0xa02d, 0x6000 },
-  { 0x8700, 0xa01d, 0x5000 },
-  { 0x8700, 0xa015, 0x4000 },
-  { 0x8700, 0xa011, 0x3000 },
-  { 0x8700, 0xa00f, 0x2000 },
-  { 0x0700, 0xa00e, 0x0000 },
-  { 0x0700, 0xa010, 0x0000 },
-  { 0x8700, 0xa013, 0x2000 },
-  { 0x0700, 0xa012, 0x0000 },
-  { 0x0700, 0xa014, 0x0000 },
-  { 0x8700, 0xa019, 0x3000 },
-  { 0x8700, 0xa017, 0x2000 },
-  { 0x0700, 0xa016, 0x0000 },
-  { 0x0700, 0xa018, 0x0000 },
-  { 0x8700, 0xa01b, 0x2000 },
-  { 0x0700, 0xa01a, 0x0000 },
-  { 0x0700, 0xa01c, 0x0000 },
-  { 0x8700, 0xa025, 0x4000 },
-  { 0x8700, 0xa021, 0x3000 },
-  { 0x8700, 0xa01f, 0x2000 },
-  { 0x0700, 0xa01e, 0x0000 },
-  { 0x0700, 0xa020, 0x0000 },
-  { 0x8700, 0xa023, 0x2000 },
-  { 0x0700, 0xa022, 0x0000 },
-  { 0x0700, 0xa024, 0x0000 },
-  { 0x8700, 0xa029, 0x3000 },
-  { 0x8700, 0xa027, 0x2000 },
-  { 0x0700, 0xa026, 0x0000 },
-  { 0x0700, 0xa028, 0x0000 },
-  { 0x8700, 0xa02b, 0x2000 },
-  { 0x0700, 0xa02a, 0x0000 },
-  { 0x0700, 0xa02c, 0x0000 },
-  { 0x8700, 0xa03d, 0x5000 },
-  { 0x8700, 0xa035, 0x4000 },
-  { 0x8700, 0xa031, 0x3000 },
-  { 0x8700, 0xa02f, 0x2000 },
-  { 0x0700, 0xa02e, 0x0000 },
-  { 0x0700, 0xa030, 0x0000 },
-  { 0x8700, 0xa033, 0x2000 },
-  { 0x0700, 0xa032, 0x0000 },
-  { 0x0700, 0xa034, 0x0000 },
-  { 0x8700, 0xa039, 0x3000 },
-  { 0x8700, 0xa037, 0x2000 },
-  { 0x0700, 0xa036, 0x0000 },
-  { 0x0700, 0xa038, 0x0000 },
-  { 0x8700, 0xa03b, 0x2000 },
-  { 0x0700, 0xa03a, 0x0000 },
-  { 0x0700, 0xa03c, 0x0000 },
-  { 0x8700, 0xa045, 0x4000 },
-  { 0x8700, 0xa041, 0x3000 },
-  { 0x8700, 0xa03f, 0x2000 },
-  { 0x0700, 0xa03e, 0x0000 },
-  { 0x0700, 0xa040, 0x0000 },
-  { 0x8700, 0xa043, 0x2000 },
-  { 0x0700, 0xa042, 0x0000 },
-  { 0x0700, 0xa044, 0x0000 },
-  { 0x8700, 0xa049, 0x3000 },
-  { 0x8700, 0xa047, 0x2000 },
-  { 0x0700, 0xa046, 0x0000 },
-  { 0x0700, 0xa048, 0x0000 },
-  { 0x8700, 0xa04b, 0x2000 },
-  { 0x0700, 0xa04a, 0x0000 },
-  { 0x0700, 0xa04c, 0x0000 },
-  { 0x8700, 0xa0cd, 0x8000 },
-  { 0x8700, 0xa08d, 0x7000 },
-  { 0x8700, 0xa06d, 0x6000 },
-  { 0x8700, 0xa05d, 0x5000 },
-  { 0x8700, 0xa055, 0x4000 },
-  { 0x8700, 0xa051, 0x3000 },
-  { 0x8700, 0xa04f, 0x2000 },
-  { 0x0700, 0xa04e, 0x0000 },
-  { 0x0700, 0xa050, 0x0000 },
-  { 0x8700, 0xa053, 0x2000 },
-  { 0x0700, 0xa052, 0x0000 },
-  { 0x0700, 0xa054, 0x0000 },
-  { 0x8700, 0xa059, 0x3000 },
-  { 0x8700, 0xa057, 0x2000 },
-  { 0x0700, 0xa056, 0x0000 },
-  { 0x0700, 0xa058, 0x0000 },
-  { 0x8700, 0xa05b, 0x2000 },
-  { 0x0700, 0xa05a, 0x0000 },
-  { 0x0700, 0xa05c, 0x0000 },
-  { 0x8700, 0xa065, 0x4000 },
-  { 0x8700, 0xa061, 0x3000 },
-  { 0x8700, 0xa05f, 0x2000 },
-  { 0x0700, 0xa05e, 0x0000 },
-  { 0x0700, 0xa060, 0x0000 },
-  { 0x8700, 0xa063, 0x2000 },
-  { 0x0700, 0xa062, 0x0000 },
-  { 0x0700, 0xa064, 0x0000 },
-  { 0x8700, 0xa069, 0x3000 },
-  { 0x8700, 0xa067, 0x2000 },
-  { 0x0700, 0xa066, 0x0000 },
-  { 0x0700, 0xa068, 0x0000 },
-  { 0x8700, 0xa06b, 0x2000 },
-  { 0x0700, 0xa06a, 0x0000 },
-  { 0x0700, 0xa06c, 0x0000 },
-  { 0x8700, 0xa07d, 0x5000 },
-  { 0x8700, 0xa075, 0x4000 },
-  { 0x8700, 0xa071, 0x3000 },
-  { 0x8700, 0xa06f, 0x2000 },
-  { 0x0700, 0xa06e, 0x0000 },
-  { 0x0700, 0xa070, 0x0000 },
-  { 0x8700, 0xa073, 0x2000 },
-  { 0x0700, 0xa072, 0x0000 },
-  { 0x0700, 0xa074, 0x0000 },
-  { 0x8700, 0xa079, 0x3000 },
-  { 0x8700, 0xa077, 0x2000 },
-  { 0x0700, 0xa076, 0x0000 },
-  { 0x0700, 0xa078, 0x0000 },
-  { 0x8700, 0xa07b, 0x2000 },
-  { 0x0700, 0xa07a, 0x0000 },
-  { 0x0700, 0xa07c, 0x0000 },
-  { 0x8700, 0xa085, 0x4000 },
-  { 0x8700, 0xa081, 0x3000 },
-  { 0x8700, 0xa07f, 0x2000 },
-  { 0x0700, 0xa07e, 0x0000 },
-  { 0x0700, 0xa080, 0x0000 },
-  { 0x8700, 0xa083, 0x2000 },
-  { 0x0700, 0xa082, 0x0000 },
-  { 0x0700, 0xa084, 0x0000 },
-  { 0x8700, 0xa089, 0x3000 },
-  { 0x8700, 0xa087, 0x2000 },
-  { 0x0700, 0xa086, 0x0000 },
-  { 0x0700, 0xa088, 0x0000 },
-  { 0x8700, 0xa08b, 0x2000 },
-  { 0x0700, 0xa08a, 0x0000 },
-  { 0x0700, 0xa08c, 0x0000 },
-  { 0x8700, 0xa0ad, 0x6000 },
-  { 0x8700, 0xa09d, 0x5000 },
-  { 0x8700, 0xa095, 0x4000 },
-  { 0x8700, 0xa091, 0x3000 },
-  { 0x8700, 0xa08f, 0x2000 },
-  { 0x0700, 0xa08e, 0x0000 },
-  { 0x0700, 0xa090, 0x0000 },
-  { 0x8700, 0xa093, 0x2000 },
-  { 0x0700, 0xa092, 0x0000 },
-  { 0x0700, 0xa094, 0x0000 },
-  { 0x8700, 0xa099, 0x3000 },
-  { 0x8700, 0xa097, 0x2000 },
-  { 0x0700, 0xa096, 0x0000 },
-  { 0x0700, 0xa098, 0x0000 },
-  { 0x8700, 0xa09b, 0x2000 },
-  { 0x0700, 0xa09a, 0x0000 },
-  { 0x0700, 0xa09c, 0x0000 },
-  { 0x8700, 0xa0a5, 0x4000 },
-  { 0x8700, 0xa0a1, 0x3000 },
-  { 0x8700, 0xa09f, 0x2000 },
-  { 0x0700, 0xa09e, 0x0000 },
-  { 0x0700, 0xa0a0, 0x0000 },
-  { 0x8700, 0xa0a3, 0x2000 },
-  { 0x0700, 0xa0a2, 0x0000 },
-  { 0x0700, 0xa0a4, 0x0000 },
-  { 0x8700, 0xa0a9, 0x3000 },
-  { 0x8700, 0xa0a7, 0x2000 },
-  { 0x0700, 0xa0a6, 0x0000 },
-  { 0x0700, 0xa0a8, 0x0000 },
-  { 0x8700, 0xa0ab, 0x2000 },
-  { 0x0700, 0xa0aa, 0x0000 },
-  { 0x0700, 0xa0ac, 0x0000 },
-  { 0x8700, 0xa0bd, 0x5000 },
-  { 0x8700, 0xa0b5, 0x4000 },
-  { 0x8700, 0xa0b1, 0x3000 },
-  { 0x8700, 0xa0af, 0x2000 },
-  { 0x0700, 0xa0ae, 0x0000 },
-  { 0x0700, 0xa0b0, 0x0000 },
-  { 0x8700, 0xa0b3, 0x2000 },
-  { 0x0700, 0xa0b2, 0x0000 },
-  { 0x0700, 0xa0b4, 0x0000 },
-  { 0x8700, 0xa0b9, 0x3000 },
-  { 0x8700, 0xa0b7, 0x2000 },
-  { 0x0700, 0xa0b6, 0x0000 },
-  { 0x0700, 0xa0b8, 0x0000 },
-  { 0x8700, 0xa0bb, 0x2000 },
-  { 0x0700, 0xa0ba, 0x0000 },
-  { 0x0700, 0xa0bc, 0x0000 },
-  { 0x8700, 0xa0c5, 0x4000 },
-  { 0x8700, 0xa0c1, 0x3000 },
-  { 0x8700, 0xa0bf, 0x2000 },
-  { 0x0700, 0xa0be, 0x0000 },
-  { 0x0700, 0xa0c0, 0x0000 },
-  { 0x8700, 0xa0c3, 0x2000 },
-  { 0x0700, 0xa0c2, 0x0000 },
-  { 0x0700, 0xa0c4, 0x0000 },
-  { 0x8700, 0xa0c9, 0x3000 },
-  { 0x8700, 0xa0c7, 0x2000 },
-  { 0x0700, 0xa0c6, 0x0000 },
-  { 0x0700, 0xa0c8, 0x0000 },
-  { 0x8700, 0xa0cb, 0x2000 },
-  { 0x0700, 0xa0ca, 0x0000 },
-  { 0x0700, 0xa0cc, 0x0000 },
-  { 0x8700, 0xa10d, 0x7000 },
-  { 0x8700, 0xa0ed, 0x6000 },
-  { 0x8700, 0xa0dd, 0x5000 },
-  { 0x8700, 0xa0d5, 0x4000 },
-  { 0x8700, 0xa0d1, 0x3000 },
-  { 0x8700, 0xa0cf, 0x2000 },
-  { 0x0700, 0xa0ce, 0x0000 },
-  { 0x0700, 0xa0d0, 0x0000 },
-  { 0x8700, 0xa0d3, 0x2000 },
-  { 0x0700, 0xa0d2, 0x0000 },
-  { 0x0700, 0xa0d4, 0x0000 },
-  { 0x8700, 0xa0d9, 0x3000 },
-  { 0x8700, 0xa0d7, 0x2000 },
-  { 0x0700, 0xa0d6, 0x0000 },
-  { 0x0700, 0xa0d8, 0x0000 },
-  { 0x8700, 0xa0db, 0x2000 },
-  { 0x0700, 0xa0da, 0x0000 },
-  { 0x0700, 0xa0dc, 0x0000 },
-  { 0x8700, 0xa0e5, 0x4000 },
-  { 0x8700, 0xa0e1, 0x3000 },
-  { 0x8700, 0xa0df, 0x2000 },
-  { 0x0700, 0xa0de, 0x0000 },
-  { 0x0700, 0xa0e0, 0x0000 },
-  { 0x8700, 0xa0e3, 0x2000 },
-  { 0x0700, 0xa0e2, 0x0000 },
-  { 0x0700, 0xa0e4, 0x0000 },
-  { 0x8700, 0xa0e9, 0x3000 },
-  { 0x8700, 0xa0e7, 0x2000 },
-  { 0x0700, 0xa0e6, 0x0000 },
-  { 0x0700, 0xa0e8, 0x0000 },
-  { 0x8700, 0xa0eb, 0x2000 },
-  { 0x0700, 0xa0ea, 0x0000 },
-  { 0x0700, 0xa0ec, 0x0000 },
-  { 0x8700, 0xa0fd, 0x5000 },
-  { 0x8700, 0xa0f5, 0x4000 },
-  { 0x8700, 0xa0f1, 0x3000 },
-  { 0x8700, 0xa0ef, 0x2000 },
-  { 0x0700, 0xa0ee, 0x0000 },
-  { 0x0700, 0xa0f0, 0x0000 },
-  { 0x8700, 0xa0f3, 0x2000 },
-  { 0x0700, 0xa0f2, 0x0000 },
-  { 0x0700, 0xa0f4, 0x0000 },
-  { 0x8700, 0xa0f9, 0x3000 },
-  { 0x8700, 0xa0f7, 0x2000 },
-  { 0x0700, 0xa0f6, 0x0000 },
-  { 0x0700, 0xa0f8, 0x0000 },
-  { 0x8700, 0xa0fb, 0x2000 },
-  { 0x0700, 0xa0fa, 0x0000 },
-  { 0x0700, 0xa0fc, 0x0000 },
-  { 0x8700, 0xa105, 0x4000 },
-  { 0x8700, 0xa101, 0x3000 },
-  { 0x8700, 0xa0ff, 0x2000 },
-  { 0x0700, 0xa0fe, 0x0000 },
-  { 0x0700, 0xa100, 0x0000 },
-  { 0x8700, 0xa103, 0x2000 },
-  { 0x0700, 0xa102, 0x0000 },
-  { 0x0700, 0xa104, 0x0000 },
-  { 0x8700, 0xa109, 0x3000 },
-  { 0x8700, 0xa107, 0x2000 },
-  { 0x0700, 0xa106, 0x0000 },
-  { 0x0700, 0xa108, 0x0000 },
-  { 0x8700, 0xa10b, 0x2000 },
-  { 0x0700, 0xa10a, 0x0000 },
-  { 0x0700, 0xa10c, 0x0000 },
-  { 0x8700, 0xa12d, 0x6000 },
-  { 0x8700, 0xa11d, 0x5000 },
-  { 0x8700, 0xa115, 0x4000 },
-  { 0x8700, 0xa111, 0x3000 },
-  { 0x8700, 0xa10f, 0x2000 },
-  { 0x0700, 0xa10e, 0x0000 },
-  { 0x0700, 0xa110, 0x0000 },
-  { 0x8700, 0xa113, 0x2000 },
-  { 0x0700, 0xa112, 0x0000 },
-  { 0x0700, 0xa114, 0x0000 },
-  { 0x8700, 0xa119, 0x3000 },
-  { 0x8700, 0xa117, 0x2000 },
-  { 0x0700, 0xa116, 0x0000 },
-  { 0x0700, 0xa118, 0x0000 },
-  { 0x8700, 0xa11b, 0x2000 },
-  { 0x0700, 0xa11a, 0x0000 },
-  { 0x0700, 0xa11c, 0x0000 },
-  { 0x8700, 0xa125, 0x4000 },
-  { 0x8700, 0xa121, 0x3000 },
-  { 0x8700, 0xa11f, 0x2000 },
-  { 0x0700, 0xa11e, 0x0000 },
-  { 0x0700, 0xa120, 0x0000 },
-  { 0x8700, 0xa123, 0x2000 },
-  { 0x0700, 0xa122, 0x0000 },
-  { 0x0700, 0xa124, 0x0000 },
-  { 0x8700, 0xa129, 0x3000 },
-  { 0x8700, 0xa127, 0x2000 },
-  { 0x0700, 0xa126, 0x0000 },
-  { 0x0700, 0xa128, 0x0000 },
-  { 0x8700, 0xa12b, 0x2000 },
-  { 0x0700, 0xa12a, 0x0000 },
-  { 0x0700, 0xa12c, 0x0000 },
-  { 0x8700, 0xa13d, 0x5000 },
-  { 0x8700, 0xa135, 0x4000 },
-  { 0x8700, 0xa131, 0x3000 },
-  { 0x8700, 0xa12f, 0x2000 },
-  { 0x0700, 0xa12e, 0x0000 },
-  { 0x0700, 0xa130, 0x0000 },
-  { 0x8700, 0xa133, 0x2000 },
-  { 0x0700, 0xa132, 0x0000 },
-  { 0x0700, 0xa134, 0x0000 },
-  { 0x8700, 0xa139, 0x3000 },
-  { 0x8700, 0xa137, 0x2000 },
-  { 0x0700, 0xa136, 0x0000 },
-  { 0x0700, 0xa138, 0x0000 },
-  { 0x8700, 0xa13b, 0x2000 },
-  { 0x0700, 0xa13a, 0x0000 },
-  { 0x0700, 0xa13c, 0x0000 },
-  { 0x8700, 0xa145, 0x4000 },
-  { 0x8700, 0xa141, 0x3000 },
-  { 0x8700, 0xa13f, 0x2000 },
-  { 0x0700, 0xa13e, 0x0000 },
-  { 0x0700, 0xa140, 0x0000 },
-  { 0x8700, 0xa143, 0x2000 },
-  { 0x0700, 0xa142, 0x0000 },
-  { 0x0700, 0xa144, 0x0000 },
-  { 0x8700, 0xa149, 0x3000 },
-  { 0x8700, 0xa147, 0x2000 },
-  { 0x0700, 0xa146, 0x0000 },
-  { 0x0700, 0xa148, 0x0000 },
-  { 0x8700, 0xa14b, 0x2000 },
-  { 0x0700, 0xa14a, 0x0000 },
-  { 0x0700, 0xa14c, 0x0000 },
-  { 0x8700, 0xa24d, 0x9000 },
-  { 0x8700, 0xa1cd, 0x8000 },
-  { 0x8700, 0xa18d, 0x7000 },
-  { 0x8700, 0xa16d, 0x6000 },
-  { 0x8700, 0xa15d, 0x5000 },
-  { 0x8700, 0xa155, 0x4000 },
-  { 0x8700, 0xa151, 0x3000 },
-  { 0x8700, 0xa14f, 0x2000 },
-  { 0x0700, 0xa14e, 0x0000 },
-  { 0x0700, 0xa150, 0x0000 },
-  { 0x8700, 0xa153, 0x2000 },
-  { 0x0700, 0xa152, 0x0000 },
-  { 0x0700, 0xa154, 0x0000 },
-  { 0x8700, 0xa159, 0x3000 },
-  { 0x8700, 0xa157, 0x2000 },
-  { 0x0700, 0xa156, 0x0000 },
-  { 0x0700, 0xa158, 0x0000 },
-  { 0x8700, 0xa15b, 0x2000 },
-  { 0x0700, 0xa15a, 0x0000 },
-  { 0x0700, 0xa15c, 0x0000 },
-  { 0x8700, 0xa165, 0x4000 },
-  { 0x8700, 0xa161, 0x3000 },
-  { 0x8700, 0xa15f, 0x2000 },
-  { 0x0700, 0xa15e, 0x0000 },
-  { 0x0700, 0xa160, 0x0000 },
-  { 0x8700, 0xa163, 0x2000 },
-  { 0x0700, 0xa162, 0x0000 },
-  { 0x0700, 0xa164, 0x0000 },
-  { 0x8700, 0xa169, 0x3000 },
-  { 0x8700, 0xa167, 0x2000 },
-  { 0x0700, 0xa166, 0x0000 },
-  { 0x0700, 0xa168, 0x0000 },
-  { 0x8700, 0xa16b, 0x2000 },
-  { 0x0700, 0xa16a, 0x0000 },
-  { 0x0700, 0xa16c, 0x0000 },
-  { 0x8700, 0xa17d, 0x5000 },
-  { 0x8700, 0xa175, 0x4000 },
-  { 0x8700, 0xa171, 0x3000 },
-  { 0x8700, 0xa16f, 0x2000 },
-  { 0x0700, 0xa16e, 0x0000 },
-  { 0x0700, 0xa170, 0x0000 },
-  { 0x8700, 0xa173, 0x2000 },
-  { 0x0700, 0xa172, 0x0000 },
-  { 0x0700, 0xa174, 0x0000 },
-  { 0x8700, 0xa179, 0x3000 },
-  { 0x8700, 0xa177, 0x2000 },
-  { 0x0700, 0xa176, 0x0000 },
-  { 0x0700, 0xa178, 0x0000 },
-  { 0x8700, 0xa17b, 0x2000 },
-  { 0x0700, 0xa17a, 0x0000 },
-  { 0x0700, 0xa17c, 0x0000 },
-  { 0x8700, 0xa185, 0x4000 },
-  { 0x8700, 0xa181, 0x3000 },
-  { 0x8700, 0xa17f, 0x2000 },
-  { 0x0700, 0xa17e, 0x0000 },
-  { 0x0700, 0xa180, 0x0000 },
-  { 0x8700, 0xa183, 0x2000 },
-  { 0x0700, 0xa182, 0x0000 },
-  { 0x0700, 0xa184, 0x0000 },
-  { 0x8700, 0xa189, 0x3000 },
-  { 0x8700, 0xa187, 0x2000 },
-  { 0x0700, 0xa186, 0x0000 },
-  { 0x0700, 0xa188, 0x0000 },
-  { 0x8700, 0xa18b, 0x2000 },
-  { 0x0700, 0xa18a, 0x0000 },
-  { 0x0700, 0xa18c, 0x0000 },
-  { 0x8700, 0xa1ad, 0x6000 },
-  { 0x8700, 0xa19d, 0x5000 },
-  { 0x8700, 0xa195, 0x4000 },
-  { 0x8700, 0xa191, 0x3000 },
-  { 0x8700, 0xa18f, 0x2000 },
-  { 0x0700, 0xa18e, 0x0000 },
-  { 0x0700, 0xa190, 0x0000 },
-  { 0x8700, 0xa193, 0x2000 },
-  { 0x0700, 0xa192, 0x0000 },
-  { 0x0700, 0xa194, 0x0000 },
-  { 0x8700, 0xa199, 0x3000 },
-  { 0x8700, 0xa197, 0x2000 },
-  { 0x0700, 0xa196, 0x0000 },
-  { 0x0700, 0xa198, 0x0000 },
-  { 0x8700, 0xa19b, 0x2000 },
-  { 0x0700, 0xa19a, 0x0000 },
-  { 0x0700, 0xa19c, 0x0000 },
-  { 0x8700, 0xa1a5, 0x4000 },
-  { 0x8700, 0xa1a1, 0x3000 },
-  { 0x8700, 0xa19f, 0x2000 },
-  { 0x0700, 0xa19e, 0x0000 },
-  { 0x0700, 0xa1a0, 0x0000 },
-  { 0x8700, 0xa1a3, 0x2000 },
-  { 0x0700, 0xa1a2, 0x0000 },
-  { 0x0700, 0xa1a4, 0x0000 },
-  { 0x8700, 0xa1a9, 0x3000 },
-  { 0x8700, 0xa1a7, 0x2000 },
-  { 0x0700, 0xa1a6, 0x0000 },
-  { 0x0700, 0xa1a8, 0x0000 },
-  { 0x8700, 0xa1ab, 0x2000 },
-  { 0x0700, 0xa1aa, 0x0000 },
-  { 0x0700, 0xa1ac, 0x0000 },
-  { 0x8700, 0xa1bd, 0x5000 },
-  { 0x8700, 0xa1b5, 0x4000 },
-  { 0x8700, 0xa1b1, 0x3000 },
-  { 0x8700, 0xa1af, 0x2000 },
-  { 0x0700, 0xa1ae, 0x0000 },
-  { 0x0700, 0xa1b0, 0x0000 },
-  { 0x8700, 0xa1b3, 0x2000 },
-  { 0x0700, 0xa1b2, 0x0000 },
-  { 0x0700, 0xa1b4, 0x0000 },
-  { 0x8700, 0xa1b9, 0x3000 },
-  { 0x8700, 0xa1b7, 0x2000 },
-  { 0x0700, 0xa1b6, 0x0000 },
-  { 0x0700, 0xa1b8, 0x0000 },
-  { 0x8700, 0xa1bb, 0x2000 },
-  { 0x0700, 0xa1ba, 0x0000 },
-  { 0x0700, 0xa1bc, 0x0000 },
-  { 0x8700, 0xa1c5, 0x4000 },
-  { 0x8700, 0xa1c1, 0x3000 },
-  { 0x8700, 0xa1bf, 0x2000 },
-  { 0x0700, 0xa1be, 0x0000 },
-  { 0x0700, 0xa1c0, 0x0000 },
-  { 0x8700, 0xa1c3, 0x2000 },
-  { 0x0700, 0xa1c2, 0x0000 },
-  { 0x0700, 0xa1c4, 0x0000 },
-  { 0x8700, 0xa1c9, 0x3000 },
-  { 0x8700, 0xa1c7, 0x2000 },
-  { 0x0700, 0xa1c6, 0x0000 },
-  { 0x0700, 0xa1c8, 0x0000 },
-  { 0x8700, 0xa1cb, 0x2000 },
-  { 0x0700, 0xa1ca, 0x0000 },
-  { 0x0700, 0xa1cc, 0x0000 },
-  { 0x8700, 0xa20d, 0x7000 },
-  { 0x8700, 0xa1ed, 0x6000 },
-  { 0x8700, 0xa1dd, 0x5000 },
-  { 0x8700, 0xa1d5, 0x4000 },
-  { 0x8700, 0xa1d1, 0x3000 },
-  { 0x8700, 0xa1cf, 0x2000 },
-  { 0x0700, 0xa1ce, 0x0000 },
-  { 0x0700, 0xa1d0, 0x0000 },
-  { 0x8700, 0xa1d3, 0x2000 },
-  { 0x0700, 0xa1d2, 0x0000 },
-  { 0x0700, 0xa1d4, 0x0000 },
-  { 0x8700, 0xa1d9, 0x3000 },
-  { 0x8700, 0xa1d7, 0x2000 },
-  { 0x0700, 0xa1d6, 0x0000 },
-  { 0x0700, 0xa1d8, 0x0000 },
-  { 0x8700, 0xa1db, 0x2000 },
-  { 0x0700, 0xa1da, 0x0000 },
-  { 0x0700, 0xa1dc, 0x0000 },
-  { 0x8700, 0xa1e5, 0x4000 },
-  { 0x8700, 0xa1e1, 0x3000 },
-  { 0x8700, 0xa1df, 0x2000 },
-  { 0x0700, 0xa1de, 0x0000 },
-  { 0x0700, 0xa1e0, 0x0000 },
-  { 0x8700, 0xa1e3, 0x2000 },
-  { 0x0700, 0xa1e2, 0x0000 },
-  { 0x0700, 0xa1e4, 0x0000 },
-  { 0x8700, 0xa1e9, 0x3000 },
-  { 0x8700, 0xa1e7, 0x2000 },
-  { 0x0700, 0xa1e6, 0x0000 },
-  { 0x0700, 0xa1e8, 0x0000 },
-  { 0x8700, 0xa1eb, 0x2000 },
-  { 0x0700, 0xa1ea, 0x0000 },
-  { 0x0700, 0xa1ec, 0x0000 },
-  { 0x8700, 0xa1fd, 0x5000 },
-  { 0x8700, 0xa1f5, 0x4000 },
-  { 0x8700, 0xa1f1, 0x3000 },
-  { 0x8700, 0xa1ef, 0x2000 },
-  { 0x0700, 0xa1ee, 0x0000 },
-  { 0x0700, 0xa1f0, 0x0000 },
-  { 0x8700, 0xa1f3, 0x2000 },
-  { 0x0700, 0xa1f2, 0x0000 },
-  { 0x0700, 0xa1f4, 0x0000 },
-  { 0x8700, 0xa1f9, 0x3000 },
-  { 0x8700, 0xa1f7, 0x2000 },
-  { 0x0700, 0xa1f6, 0x0000 },
-  { 0x0700, 0xa1f8, 0x0000 },
-  { 0x8700, 0xa1fb, 0x2000 },
-  { 0x0700, 0xa1fa, 0x0000 },
-  { 0x0700, 0xa1fc, 0x0000 },
-  { 0x8700, 0xa205, 0x4000 },
-  { 0x8700, 0xa201, 0x3000 },
-  { 0x8700, 0xa1ff, 0x2000 },
-  { 0x0700, 0xa1fe, 0x0000 },
-  { 0x0700, 0xa200, 0x0000 },
-  { 0x8700, 0xa203, 0x2000 },
-  { 0x0700, 0xa202, 0x0000 },
-  { 0x0700, 0xa204, 0x0000 },
-  { 0x8700, 0xa209, 0x3000 },
-  { 0x8700, 0xa207, 0x2000 },
-  { 0x0700, 0xa206, 0x0000 },
-  { 0x0700, 0xa208, 0x0000 },
-  { 0x8700, 0xa20b, 0x2000 },
-  { 0x0700, 0xa20a, 0x0000 },
-  { 0x0700, 0xa20c, 0x0000 },
-  { 0x8700, 0xa22d, 0x6000 },
-  { 0x8700, 0xa21d, 0x5000 },
-  { 0x8700, 0xa215, 0x4000 },
-  { 0x8700, 0xa211, 0x3000 },
-  { 0x8700, 0xa20f, 0x2000 },
-  { 0x0700, 0xa20e, 0x0000 },
-  { 0x0700, 0xa210, 0x0000 },
-  { 0x8700, 0xa213, 0x2000 },
-  { 0x0700, 0xa212, 0x0000 },
-  { 0x0700, 0xa214, 0x0000 },
-  { 0x8700, 0xa219, 0x3000 },
-  { 0x8700, 0xa217, 0x2000 },
-  { 0x0700, 0xa216, 0x0000 },
-  { 0x0700, 0xa218, 0x0000 },
-  { 0x8700, 0xa21b, 0x2000 },
-  { 0x0700, 0xa21a, 0x0000 },
-  { 0x0700, 0xa21c, 0x0000 },
-  { 0x8700, 0xa225, 0x4000 },
-  { 0x8700, 0xa221, 0x3000 },
-  { 0x8700, 0xa21f, 0x2000 },
-  { 0x0700, 0xa21e, 0x0000 },
-  { 0x0700, 0xa220, 0x0000 },
-  { 0x8700, 0xa223, 0x2000 },
-  { 0x0700, 0xa222, 0x0000 },
-  { 0x0700, 0xa224, 0x0000 },
-  { 0x8700, 0xa229, 0x3000 },
-  { 0x8700, 0xa227, 0x2000 },
-  { 0x0700, 0xa226, 0x0000 },
-  { 0x0700, 0xa228, 0x0000 },
-  { 0x8700, 0xa22b, 0x2000 },
-  { 0x0700, 0xa22a, 0x0000 },
-  { 0x0700, 0xa22c, 0x0000 },
-  { 0x8700, 0xa23d, 0x5000 },
-  { 0x8700, 0xa235, 0x4000 },
-  { 0x8700, 0xa231, 0x3000 },
-  { 0x8700, 0xa22f, 0x2000 },
-  { 0x0700, 0xa22e, 0x0000 },
-  { 0x0700, 0xa230, 0x0000 },
-  { 0x8700, 0xa233, 0x2000 },
-  { 0x0700, 0xa232, 0x0000 },
-  { 0x0700, 0xa234, 0x0000 },
-  { 0x8700, 0xa239, 0x3000 },
-  { 0x8700, 0xa237, 0x2000 },
-  { 0x0700, 0xa236, 0x0000 },
-  { 0x0700, 0xa238, 0x0000 },
-  { 0x8700, 0xa23b, 0x2000 },
-  { 0x0700, 0xa23a, 0x0000 },
-  { 0x0700, 0xa23c, 0x0000 },
-  { 0x8700, 0xa245, 0x4000 },
-  { 0x8700, 0xa241, 0x3000 },
-  { 0x8700, 0xa23f, 0x2000 },
-  { 0x0700, 0xa23e, 0x0000 },
-  { 0x0700, 0xa240, 0x0000 },
-  { 0x8700, 0xa243, 0x2000 },
-  { 0x0700, 0xa242, 0x0000 },
-  { 0x0700, 0xa244, 0x0000 },
-  { 0x8700, 0xa249, 0x3000 },
-  { 0x8700, 0xa247, 0x2000 },
-  { 0x0700, 0xa246, 0x0000 },
-  { 0x0700, 0xa248, 0x0000 },
-  { 0x8700, 0xa24b, 0x2000 },
-  { 0x0700, 0xa24a, 0x0000 },
-  { 0x0700, 0xa24c, 0x0000 },
-  { 0x8700, 0xa2cd, 0x8000 },
-  { 0x8700, 0xa28d, 0x7000 },
-  { 0x8700, 0xa26d, 0x6000 },
-  { 0x8700, 0xa25d, 0x5000 },
-  { 0x8700, 0xa255, 0x4000 },
-  { 0x8700, 0xa251, 0x3000 },
-  { 0x8700, 0xa24f, 0x2000 },
-  { 0x0700, 0xa24e, 0x0000 },
-  { 0x0700, 0xa250, 0x0000 },
-  { 0x8700, 0xa253, 0x2000 },
-  { 0x0700, 0xa252, 0x0000 },
-  { 0x0700, 0xa254, 0x0000 },
-  { 0x8700, 0xa259, 0x3000 },
-  { 0x8700, 0xa257, 0x2000 },
-  { 0x0700, 0xa256, 0x0000 },
-  { 0x0700, 0xa258, 0x0000 },
-  { 0x8700, 0xa25b, 0x2000 },
-  { 0x0700, 0xa25a, 0x0000 },
-  { 0x0700, 0xa25c, 0x0000 },
-  { 0x8700, 0xa265, 0x4000 },
-  { 0x8700, 0xa261, 0x3000 },
-  { 0x8700, 0xa25f, 0x2000 },
-  { 0x0700, 0xa25e, 0x0000 },
-  { 0x0700, 0xa260, 0x0000 },
-  { 0x8700, 0xa263, 0x2000 },
-  { 0x0700, 0xa262, 0x0000 },
-  { 0x0700, 0xa264, 0x0000 },
-  { 0x8700, 0xa269, 0x3000 },
-  { 0x8700, 0xa267, 0x2000 },
-  { 0x0700, 0xa266, 0x0000 },
-  { 0x0700, 0xa268, 0x0000 },
-  { 0x8700, 0xa26b, 0x2000 },
-  { 0x0700, 0xa26a, 0x0000 },
-  { 0x0700, 0xa26c, 0x0000 },
-  { 0x8700, 0xa27d, 0x5000 },
-  { 0x8700, 0xa275, 0x4000 },
-  { 0x8700, 0xa271, 0x3000 },
-  { 0x8700, 0xa26f, 0x2000 },
-  { 0x0700, 0xa26e, 0x0000 },
-  { 0x0700, 0xa270, 0x0000 },
-  { 0x8700, 0xa273, 0x2000 },
-  { 0x0700, 0xa272, 0x0000 },
-  { 0x0700, 0xa274, 0x0000 },
-  { 0x8700, 0xa279, 0x3000 },
-  { 0x8700, 0xa277, 0x2000 },
-  { 0x0700, 0xa276, 0x0000 },
-  { 0x0700, 0xa278, 0x0000 },
-  { 0x8700, 0xa27b, 0x2000 },
-  { 0x0700, 0xa27a, 0x0000 },
-  { 0x0700, 0xa27c, 0x0000 },
-  { 0x8700, 0xa285, 0x4000 },
-  { 0x8700, 0xa281, 0x3000 },
-  { 0x8700, 0xa27f, 0x2000 },
-  { 0x0700, 0xa27e, 0x0000 },
-  { 0x0700, 0xa280, 0x0000 },
-  { 0x8700, 0xa283, 0x2000 },
-  { 0x0700, 0xa282, 0x0000 },
-  { 0x0700, 0xa284, 0x0000 },
-  { 0x8700, 0xa289, 0x3000 },
-  { 0x8700, 0xa287, 0x2000 },
-  { 0x0700, 0xa286, 0x0000 },
-  { 0x0700, 0xa288, 0x0000 },
-  { 0x8700, 0xa28b, 0x2000 },
-  { 0x0700, 0xa28a, 0x0000 },
-  { 0x0700, 0xa28c, 0x0000 },
-  { 0x8700, 0xa2ad, 0x6000 },
-  { 0x8700, 0xa29d, 0x5000 },
-  { 0x8700, 0xa295, 0x4000 },
-  { 0x8700, 0xa291, 0x3000 },
-  { 0x8700, 0xa28f, 0x2000 },
-  { 0x0700, 0xa28e, 0x0000 },
-  { 0x0700, 0xa290, 0x0000 },
-  { 0x8700, 0xa293, 0x2000 },
-  { 0x0700, 0xa292, 0x0000 },
-  { 0x0700, 0xa294, 0x0000 },
-  { 0x8700, 0xa299, 0x3000 },
-  { 0x8700, 0xa297, 0x2000 },
-  { 0x0700, 0xa296, 0x0000 },
-  { 0x0700, 0xa298, 0x0000 },
-  { 0x8700, 0xa29b, 0x2000 },
-  { 0x0700, 0xa29a, 0x0000 },
-  { 0x0700, 0xa29c, 0x0000 },
-  { 0x8700, 0xa2a5, 0x4000 },
-  { 0x8700, 0xa2a1, 0x3000 },
-  { 0x8700, 0xa29f, 0x2000 },
-  { 0x0700, 0xa29e, 0x0000 },
-  { 0x0700, 0xa2a0, 0x0000 },
-  { 0x8700, 0xa2a3, 0x2000 },
-  { 0x0700, 0xa2a2, 0x0000 },
-  { 0x0700, 0xa2a4, 0x0000 },
-  { 0x8700, 0xa2a9, 0x3000 },
-  { 0x8700, 0xa2a7, 0x2000 },
-  { 0x0700, 0xa2a6, 0x0000 },
-  { 0x0700, 0xa2a8, 0x0000 },
-  { 0x8700, 0xa2ab, 0x2000 },
-  { 0x0700, 0xa2aa, 0x0000 },
-  { 0x0700, 0xa2ac, 0x0000 },
-  { 0x8700, 0xa2bd, 0x5000 },
-  { 0x8700, 0xa2b5, 0x4000 },
-  { 0x8700, 0xa2b1, 0x3000 },
-  { 0x8700, 0xa2af, 0x2000 },
-  { 0x0700, 0xa2ae, 0x0000 },
-  { 0x0700, 0xa2b0, 0x0000 },
-  { 0x8700, 0xa2b3, 0x2000 },
-  { 0x0700, 0xa2b2, 0x0000 },
-  { 0x0700, 0xa2b4, 0x0000 },
-  { 0x8700, 0xa2b9, 0x3000 },
-  { 0x8700, 0xa2b7, 0x2000 },
-  { 0x0700, 0xa2b6, 0x0000 },
-  { 0x0700, 0xa2b8, 0x0000 },
-  { 0x8700, 0xa2bb, 0x2000 },
-  { 0x0700, 0xa2ba, 0x0000 },
-  { 0x0700, 0xa2bc, 0x0000 },
-  { 0x8700, 0xa2c5, 0x4000 },
-  { 0x8700, 0xa2c1, 0x3000 },
-  { 0x8700, 0xa2bf, 0x2000 },
-  { 0x0700, 0xa2be, 0x0000 },
-  { 0x0700, 0xa2c0, 0x0000 },
-  { 0x8700, 0xa2c3, 0x2000 },
-  { 0x0700, 0xa2c2, 0x0000 },
-  { 0x0700, 0xa2c4, 0x0000 },
-  { 0x8700, 0xa2c9, 0x3000 },
-  { 0x8700, 0xa2c7, 0x2000 },
-  { 0x0700, 0xa2c6, 0x0000 },
-  { 0x0700, 0xa2c8, 0x0000 },
-  { 0x8700, 0xa2cb, 0x2000 },
-  { 0x0700, 0xa2ca, 0x0000 },
-  { 0x0700, 0xa2cc, 0x0000 },
-  { 0x8700, 0xa30d, 0x7000 },
-  { 0x8700, 0xa2ed, 0x6000 },
-  { 0x8700, 0xa2dd, 0x5000 },
-  { 0x8700, 0xa2d5, 0x4000 },
-  { 0x8700, 0xa2d1, 0x3000 },
-  { 0x8700, 0xa2cf, 0x2000 },
-  { 0x0700, 0xa2ce, 0x0000 },
-  { 0x0700, 0xa2d0, 0x0000 },
-  { 0x8700, 0xa2d3, 0x2000 },
-  { 0x0700, 0xa2d2, 0x0000 },
-  { 0x0700, 0xa2d4, 0x0000 },
-  { 0x8700, 0xa2d9, 0x3000 },
-  { 0x8700, 0xa2d7, 0x2000 },
-  { 0x0700, 0xa2d6, 0x0000 },
-  { 0x0700, 0xa2d8, 0x0000 },
-  { 0x8700, 0xa2db, 0x2000 },
-  { 0x0700, 0xa2da, 0x0000 },
-  { 0x0700, 0xa2dc, 0x0000 },
-  { 0x8700, 0xa2e5, 0x4000 },
-  { 0x8700, 0xa2e1, 0x3000 },
-  { 0x8700, 0xa2df, 0x2000 },
-  { 0x0700, 0xa2de, 0x0000 },
-  { 0x0700, 0xa2e0, 0x0000 },
-  { 0x8700, 0xa2e3, 0x2000 },
-  { 0x0700, 0xa2e2, 0x0000 },
-  { 0x0700, 0xa2e4, 0x0000 },
-  { 0x8700, 0xa2e9, 0x3000 },
-  { 0x8700, 0xa2e7, 0x2000 },
-  { 0x0700, 0xa2e6, 0x0000 },
-  { 0x0700, 0xa2e8, 0x0000 },
-  { 0x8700, 0xa2eb, 0x2000 },
-  { 0x0700, 0xa2ea, 0x0000 },
-  { 0x0700, 0xa2ec, 0x0000 },
-  { 0x8700, 0xa2fd, 0x5000 },
-  { 0x8700, 0xa2f5, 0x4000 },
-  { 0x8700, 0xa2f1, 0x3000 },
-  { 0x8700, 0xa2ef, 0x2000 },
-  { 0x0700, 0xa2ee, 0x0000 },
-  { 0x0700, 0xa2f0, 0x0000 },
-  { 0x8700, 0xa2f3, 0x2000 },
-  { 0x0700, 0xa2f2, 0x0000 },
-  { 0x0700, 0xa2f4, 0x0000 },
-  { 0x8700, 0xa2f9, 0x3000 },
-  { 0x8700, 0xa2f7, 0x2000 },
-  { 0x0700, 0xa2f6, 0x0000 },
-  { 0x0700, 0xa2f8, 0x0000 },
-  { 0x8700, 0xa2fb, 0x2000 },
-  { 0x0700, 0xa2fa, 0x0000 },
-  { 0x0700, 0xa2fc, 0x0000 },
-  { 0x8700, 0xa305, 0x4000 },
-  { 0x8700, 0xa301, 0x3000 },
-  { 0x8700, 0xa2ff, 0x2000 },
-  { 0x0700, 0xa2fe, 0x0000 },
-  { 0x0700, 0xa300, 0x0000 },
-  { 0x8700, 0xa303, 0x2000 },
-  { 0x0700, 0xa302, 0x0000 },
-  { 0x0700, 0xa304, 0x0000 },
-  { 0x8700, 0xa309, 0x3000 },
-  { 0x8700, 0xa307, 0x2000 },
-  { 0x0700, 0xa306, 0x0000 },
-  { 0x0700, 0xa308, 0x0000 },
-  { 0x8700, 0xa30b, 0x2000 },
-  { 0x0700, 0xa30a, 0x0000 },
-  { 0x0700, 0xa30c, 0x0000 },
-  { 0x8700, 0xa32d, 0x6000 },
-  { 0x8700, 0xa31d, 0x5000 },
-  { 0x8700, 0xa315, 0x4000 },
-  { 0x8700, 0xa311, 0x3000 },
-  { 0x8700, 0xa30f, 0x2000 },
-  { 0x0700, 0xa30e, 0x0000 },
-  { 0x0700, 0xa310, 0x0000 },
-  { 0x8700, 0xa313, 0x2000 },
-  { 0x0700, 0xa312, 0x0000 },
-  { 0x0700, 0xa314, 0x0000 },
-  { 0x8700, 0xa319, 0x3000 },
-  { 0x8700, 0xa317, 0x2000 },
-  { 0x0700, 0xa316, 0x0000 },
-  { 0x0700, 0xa318, 0x0000 },
-  { 0x8700, 0xa31b, 0x2000 },
-  { 0x0700, 0xa31a, 0x0000 },
-  { 0x0700, 0xa31c, 0x0000 },
-  { 0x8700, 0xa325, 0x4000 },
-  { 0x8700, 0xa321, 0x3000 },
-  { 0x8700, 0xa31f, 0x2000 },
-  { 0x0700, 0xa31e, 0x0000 },
-  { 0x0700, 0xa320, 0x0000 },
-  { 0x8700, 0xa323, 0x2000 },
-  { 0x0700, 0xa322, 0x0000 },
-  { 0x0700, 0xa324, 0x0000 },
-  { 0x8700, 0xa329, 0x3000 },
-  { 0x8700, 0xa327, 0x2000 },
-  { 0x0700, 0xa326, 0x0000 },
-  { 0x0700, 0xa328, 0x0000 },
-  { 0x8700, 0xa32b, 0x2000 },
-  { 0x0700, 0xa32a, 0x0000 },
-  { 0x0700, 0xa32c, 0x0000 },
-  { 0x8700, 0xa33d, 0x5000 },
-  { 0x8700, 0xa335, 0x4000 },
-  { 0x8700, 0xa331, 0x3000 },
-  { 0x8700, 0xa32f, 0x2000 },
-  { 0x0700, 0xa32e, 0x0000 },
-  { 0x0700, 0xa330, 0x0000 },
-  { 0x8700, 0xa333, 0x2000 },
-  { 0x0700, 0xa332, 0x0000 },
-  { 0x0700, 0xa334, 0x0000 },
-  { 0x8700, 0xa339, 0x3000 },
-  { 0x8700, 0xa337, 0x2000 },
-  { 0x0700, 0xa336, 0x0000 },
-  { 0x0700, 0xa338, 0x0000 },
-  { 0x8700, 0xa33b, 0x2000 },
-  { 0x0700, 0xa33a, 0x0000 },
-  { 0x0700, 0xa33c, 0x0000 },
-  { 0x8700, 0xa345, 0x4000 },
-  { 0x8700, 0xa341, 0x3000 },
-  { 0x8700, 0xa33f, 0x2000 },
-  { 0x0700, 0xa33e, 0x0000 },
-  { 0x0700, 0xa340, 0x0000 },
-  { 0x8700, 0xa343, 0x2000 },
-  { 0x0700, 0xa342, 0x0000 },
-  { 0x0700, 0xa344, 0x0000 },
-  { 0x8700, 0xa349, 0x3000 },
-  { 0x8700, 0xa347, 0x2000 },
-  { 0x0700, 0xa346, 0x0000 },
-  { 0x0700, 0xa348, 0x0000 },
-  { 0x8700, 0xa34b, 0x2000 },
-  { 0x0700, 0xa34a, 0x0000 },
-  { 0x0700, 0xa34c, 0x0000 },
-  { 0x8700, 0xfc4d, 0xb000 },
-  { 0x8700, 0xf97f, 0xa000 },
-  { 0x8700, 0xa44d, 0x9000 },
-  { 0x8700, 0xa3cd, 0x8000 },
-  { 0x8700, 0xa38d, 0x7000 },
-  { 0x8700, 0xa36d, 0x6000 },
-  { 0x8700, 0xa35d, 0x5000 },
-  { 0x8700, 0xa355, 0x4000 },
-  { 0x8700, 0xa351, 0x3000 },
-  { 0x8700, 0xa34f, 0x2000 },
-  { 0x0700, 0xa34e, 0x0000 },
-  { 0x0700, 0xa350, 0x0000 },
-  { 0x8700, 0xa353, 0x2000 },
-  { 0x0700, 0xa352, 0x0000 },
-  { 0x0700, 0xa354, 0x0000 },
-  { 0x8700, 0xa359, 0x3000 },
-  { 0x8700, 0xa357, 0x2000 },
-  { 0x0700, 0xa356, 0x0000 },
-  { 0x0700, 0xa358, 0x0000 },
-  { 0x8700, 0xa35b, 0x2000 },
-  { 0x0700, 0xa35a, 0x0000 },
-  { 0x0700, 0xa35c, 0x0000 },
-  { 0x8700, 0xa365, 0x4000 },
-  { 0x8700, 0xa361, 0x3000 },
-  { 0x8700, 0xa35f, 0x2000 },
-  { 0x0700, 0xa35e, 0x0000 },
-  { 0x0700, 0xa360, 0x0000 },
-  { 0x8700, 0xa363, 0x2000 },
-  { 0x0700, 0xa362, 0x0000 },
-  { 0x0700, 0xa364, 0x0000 },
-  { 0x8700, 0xa369, 0x3000 },
-  { 0x8700, 0xa367, 0x2000 },
-  { 0x0700, 0xa366, 0x0000 },
-  { 0x0700, 0xa368, 0x0000 },
-  { 0x8700, 0xa36b, 0x2000 },
-  { 0x0700, 0xa36a, 0x0000 },
-  { 0x0700, 0xa36c, 0x0000 },
-  { 0x8700, 0xa37d, 0x5000 },
-  { 0x8700, 0xa375, 0x4000 },
-  { 0x8700, 0xa371, 0x3000 },
-  { 0x8700, 0xa36f, 0x2000 },
-  { 0x0700, 0xa36e, 0x0000 },
-  { 0x0700, 0xa370, 0x0000 },
-  { 0x8700, 0xa373, 0x2000 },
-  { 0x0700, 0xa372, 0x0000 },
-  { 0x0700, 0xa374, 0x0000 },
-  { 0x8700, 0xa379, 0x3000 },
-  { 0x8700, 0xa377, 0x2000 },
-  { 0x0700, 0xa376, 0x0000 },
-  { 0x0700, 0xa378, 0x0000 },
-  { 0x8700, 0xa37b, 0x2000 },
-  { 0x0700, 0xa37a, 0x0000 },
-  { 0x0700, 0xa37c, 0x0000 },
-  { 0x8700, 0xa385, 0x4000 },
-  { 0x8700, 0xa381, 0x3000 },
-  { 0x8700, 0xa37f, 0x2000 },
-  { 0x0700, 0xa37e, 0x0000 },
-  { 0x0700, 0xa380, 0x0000 },
-  { 0x8700, 0xa383, 0x2000 },
-  { 0x0700, 0xa382, 0x0000 },
-  { 0x0700, 0xa384, 0x0000 },
-  { 0x8700, 0xa389, 0x3000 },
-  { 0x8700, 0xa387, 0x2000 },
-  { 0x0700, 0xa386, 0x0000 },
-  { 0x0700, 0xa388, 0x0000 },
-  { 0x8700, 0xa38b, 0x2000 },
-  { 0x0700, 0xa38a, 0x0000 },
-  { 0x0700, 0xa38c, 0x0000 },
-  { 0x8700, 0xa3ad, 0x6000 },
-  { 0x8700, 0xa39d, 0x5000 },
-  { 0x8700, 0xa395, 0x4000 },
-  { 0x8700, 0xa391, 0x3000 },
-  { 0x8700, 0xa38f, 0x2000 },
-  { 0x0700, 0xa38e, 0x0000 },
-  { 0x0700, 0xa390, 0x0000 },
-  { 0x8700, 0xa393, 0x2000 },
-  { 0x0700, 0xa392, 0x0000 },
-  { 0x0700, 0xa394, 0x0000 },
-  { 0x8700, 0xa399, 0x3000 },
-  { 0x8700, 0xa397, 0x2000 },
-  { 0x0700, 0xa396, 0x0000 },
-  { 0x0700, 0xa398, 0x0000 },
-  { 0x8700, 0xa39b, 0x2000 },
-  { 0x0700, 0xa39a, 0x0000 },
-  { 0x0700, 0xa39c, 0x0000 },
-  { 0x8700, 0xa3a5, 0x4000 },
-  { 0x8700, 0xa3a1, 0x3000 },
-  { 0x8700, 0xa39f, 0x2000 },
-  { 0x0700, 0xa39e, 0x0000 },
-  { 0x0700, 0xa3a0, 0x0000 },
-  { 0x8700, 0xa3a3, 0x2000 },
-  { 0x0700, 0xa3a2, 0x0000 },
-  { 0x0700, 0xa3a4, 0x0000 },
-  { 0x8700, 0xa3a9, 0x3000 },
-  { 0x8700, 0xa3a7, 0x2000 },
-  { 0x0700, 0xa3a6, 0x0000 },
-  { 0x0700, 0xa3a8, 0x0000 },
-  { 0x8700, 0xa3ab, 0x2000 },
-  { 0x0700, 0xa3aa, 0x0000 },
-  { 0x0700, 0xa3ac, 0x0000 },
-  { 0x8700, 0xa3bd, 0x5000 },
-  { 0x8700, 0xa3b5, 0x4000 },
-  { 0x8700, 0xa3b1, 0x3000 },
-  { 0x8700, 0xa3af, 0x2000 },
-  { 0x0700, 0xa3ae, 0x0000 },
-  { 0x0700, 0xa3b0, 0x0000 },
-  { 0x8700, 0xa3b3, 0x2000 },
-  { 0x0700, 0xa3b2, 0x0000 },
-  { 0x0700, 0xa3b4, 0x0000 },
-  { 0x8700, 0xa3b9, 0x3000 },
-  { 0x8700, 0xa3b7, 0x2000 },
-  { 0x0700, 0xa3b6, 0x0000 },
-  { 0x0700, 0xa3b8, 0x0000 },
-  { 0x8700, 0xa3bb, 0x2000 },
-  { 0x0700, 0xa3ba, 0x0000 },
-  { 0x0700, 0xa3bc, 0x0000 },
-  { 0x8700, 0xa3c5, 0x4000 },
-  { 0x8700, 0xa3c1, 0x3000 },
-  { 0x8700, 0xa3bf, 0x2000 },
-  { 0x0700, 0xa3be, 0x0000 },
-  { 0x0700, 0xa3c0, 0x0000 },
-  { 0x8700, 0xa3c3, 0x2000 },
-  { 0x0700, 0xa3c2, 0x0000 },
-  { 0x0700, 0xa3c4, 0x0000 },
-  { 0x8700, 0xa3c9, 0x3000 },
-  { 0x8700, 0xa3c7, 0x2000 },
-  { 0x0700, 0xa3c6, 0x0000 },
-  { 0x0700, 0xa3c8, 0x0000 },
-  { 0x8700, 0xa3cb, 0x2000 },
-  { 0x0700, 0xa3ca, 0x0000 },
-  { 0x0700, 0xa3cc, 0x0000 },
-  { 0x8700, 0xa40d, 0x7000 },
-  { 0x8700, 0xa3ed, 0x6000 },
-  { 0x8700, 0xa3dd, 0x5000 },
-  { 0x8700, 0xa3d5, 0x4000 },
-  { 0x8700, 0xa3d1, 0x3000 },
-  { 0x8700, 0xa3cf, 0x2000 },
-  { 0x0700, 0xa3ce, 0x0000 },
-  { 0x0700, 0xa3d0, 0x0000 },
-  { 0x8700, 0xa3d3, 0x2000 },
-  { 0x0700, 0xa3d2, 0x0000 },
-  { 0x0700, 0xa3d4, 0x0000 },
-  { 0x8700, 0xa3d9, 0x3000 },
-  { 0x8700, 0xa3d7, 0x2000 },
-  { 0x0700, 0xa3d6, 0x0000 },
-  { 0x0700, 0xa3d8, 0x0000 },
-  { 0x8700, 0xa3db, 0x2000 },
-  { 0x0700, 0xa3da, 0x0000 },
-  { 0x0700, 0xa3dc, 0x0000 },
-  { 0x8700, 0xa3e5, 0x4000 },
-  { 0x8700, 0xa3e1, 0x3000 },
-  { 0x8700, 0xa3df, 0x2000 },
-  { 0x0700, 0xa3de, 0x0000 },
-  { 0x0700, 0xa3e0, 0x0000 },
-  { 0x8700, 0xa3e3, 0x2000 },
-  { 0x0700, 0xa3e2, 0x0000 },
-  { 0x0700, 0xa3e4, 0x0000 },
-  { 0x8700, 0xa3e9, 0x3000 },
-  { 0x8700, 0xa3e7, 0x2000 },
-  { 0x0700, 0xa3e6, 0x0000 },
-  { 0x0700, 0xa3e8, 0x0000 },
-  { 0x8700, 0xa3eb, 0x2000 },
-  { 0x0700, 0xa3ea, 0x0000 },
-  { 0x0700, 0xa3ec, 0x0000 },
-  { 0x8700, 0xa3fd, 0x5000 },
-  { 0x8700, 0xa3f5, 0x4000 },
-  { 0x8700, 0xa3f1, 0x3000 },
-  { 0x8700, 0xa3ef, 0x2000 },
-  { 0x0700, 0xa3ee, 0x0000 },
-  { 0x0700, 0xa3f0, 0x0000 },
-  { 0x8700, 0xa3f3, 0x2000 },
-  { 0x0700, 0xa3f2, 0x0000 },
-  { 0x0700, 0xa3f4, 0x0000 },
-  { 0x8700, 0xa3f9, 0x3000 },
-  { 0x8700, 0xa3f7, 0x2000 },
-  { 0x0700, 0xa3f6, 0x0000 },
-  { 0x0700, 0xa3f8, 0x0000 },
-  { 0x8700, 0xa3fb, 0x2000 },
-  { 0x0700, 0xa3fa, 0x0000 },
-  { 0x0700, 0xa3fc, 0x0000 },
-  { 0x8700, 0xa405, 0x4000 },
-  { 0x8700, 0xa401, 0x3000 },
-  { 0x8700, 0xa3ff, 0x2000 },
-  { 0x0700, 0xa3fe, 0x0000 },
-  { 0x0700, 0xa400, 0x0000 },
-  { 0x8700, 0xa403, 0x2000 },
-  { 0x0700, 0xa402, 0x0000 },
-  { 0x0700, 0xa404, 0x0000 },
-  { 0x8700, 0xa409, 0x3000 },
-  { 0x8700, 0xa407, 0x2000 },
-  { 0x0700, 0xa406, 0x0000 },
-  { 0x0700, 0xa408, 0x0000 },
-  { 0x8700, 0xa40b, 0x2000 },
-  { 0x0700, 0xa40a, 0x0000 },
-  { 0x0700, 0xa40c, 0x0000 },
-  { 0x8700, 0xa42d, 0x6000 },
-  { 0x8700, 0xa41d, 0x5000 },
-  { 0x8700, 0xa415, 0x4000 },
-  { 0x8700, 0xa411, 0x3000 },
-  { 0x8700, 0xa40f, 0x2000 },
-  { 0x0700, 0xa40e, 0x0000 },
-  { 0x0700, 0xa410, 0x0000 },
-  { 0x8700, 0xa413, 0x2000 },
-  { 0x0700, 0xa412, 0x0000 },
-  { 0x0700, 0xa414, 0x0000 },
-  { 0x8700, 0xa419, 0x3000 },
-  { 0x8700, 0xa417, 0x2000 },
-  { 0x0700, 0xa416, 0x0000 },
-  { 0x0700, 0xa418, 0x0000 },
-  { 0x8700, 0xa41b, 0x2000 },
-  { 0x0700, 0xa41a, 0x0000 },
-  { 0x0700, 0xa41c, 0x0000 },
-  { 0x8700, 0xa425, 0x4000 },
-  { 0x8700, 0xa421, 0x3000 },
-  { 0x8700, 0xa41f, 0x2000 },
-  { 0x0700, 0xa41e, 0x0000 },
-  { 0x0700, 0xa420, 0x0000 },
-  { 0x8700, 0xa423, 0x2000 },
-  { 0x0700, 0xa422, 0x0000 },
-  { 0x0700, 0xa424, 0x0000 },
-  { 0x8700, 0xa429, 0x3000 },
-  { 0x8700, 0xa427, 0x2000 },
-  { 0x0700, 0xa426, 0x0000 },
-  { 0x0700, 0xa428, 0x0000 },
-  { 0x8700, 0xa42b, 0x2000 },
-  { 0x0700, 0xa42a, 0x0000 },
-  { 0x0700, 0xa42c, 0x0000 },
-  { 0x8700, 0xa43d, 0x5000 },
-  { 0x8700, 0xa435, 0x4000 },
-  { 0x8700, 0xa431, 0x3000 },
-  { 0x8700, 0xa42f, 0x2000 },
-  { 0x0700, 0xa42e, 0x0000 },
-  { 0x0700, 0xa430, 0x0000 },
-  { 0x8700, 0xa433, 0x2000 },
-  { 0x0700, 0xa432, 0x0000 },
-  { 0x0700, 0xa434, 0x0000 },
-  { 0x8700, 0xa439, 0x3000 },
-  { 0x8700, 0xa437, 0x2000 },
-  { 0x0700, 0xa436, 0x0000 },
-  { 0x0700, 0xa438, 0x0000 },
-  { 0x8700, 0xa43b, 0x2000 },
-  { 0x0700, 0xa43a, 0x0000 },
-  { 0x0700, 0xa43c, 0x0000 },
-  { 0x8700, 0xa445, 0x4000 },
-  { 0x8700, 0xa441, 0x3000 },
-  { 0x8700, 0xa43f, 0x2000 },
-  { 0x0700, 0xa43e, 0x0000 },
-  { 0x0700, 0xa440, 0x0000 },
-  { 0x8700, 0xa443, 0x2000 },
-  { 0x0700, 0xa442, 0x0000 },
-  { 0x0700, 0xa444, 0x0000 },
-  { 0x8700, 0xa449, 0x3000 },
-  { 0x8700, 0xa447, 0x2000 },
-  { 0x0700, 0xa446, 0x0000 },
-  { 0x0700, 0xa448, 0x0000 },
-  { 0x8700, 0xa44b, 0x2000 },
-  { 0x0700, 0xa44a, 0x0000 },
-  { 0x0700, 0xa44c, 0x0000 },
-  { 0x8300, 0xf8ff, 0x8000 },
-  { 0x9a00, 0xa490, 0x7000 },
-  { 0x8700, 0xa46d, 0x6000 },
-  { 0x8700, 0xa45d, 0x5000 },
-  { 0x8700, 0xa455, 0x4000 },
-  { 0x8700, 0xa451, 0x3000 },
-  { 0x8700, 0xa44f, 0x2000 },
-  { 0x0700, 0xa44e, 0x0000 },
-  { 0x0700, 0xa450, 0x0000 },
-  { 0x8700, 0xa453, 0x2000 },
-  { 0x0700, 0xa452, 0x0000 },
-  { 0x0700, 0xa454, 0x0000 },
-  { 0x8700, 0xa459, 0x3000 },
-  { 0x8700, 0xa457, 0x2000 },
-  { 0x0700, 0xa456, 0x0000 },
-  { 0x0700, 0xa458, 0x0000 },
-  { 0x8700, 0xa45b, 0x2000 },
-  { 0x0700, 0xa45a, 0x0000 },
-  { 0x0700, 0xa45c, 0x0000 },
-  { 0x8700, 0xa465, 0x4000 },
-  { 0x8700, 0xa461, 0x3000 },
-  { 0x8700, 0xa45f, 0x2000 },
-  { 0x0700, 0xa45e, 0x0000 },
-  { 0x0700, 0xa460, 0x0000 },
-  { 0x8700, 0xa463, 0x2000 },
-  { 0x0700, 0xa462, 0x0000 },
-  { 0x0700, 0xa464, 0x0000 },
-  { 0x8700, 0xa469, 0x3000 },
-  { 0x8700, 0xa467, 0x2000 },
-  { 0x0700, 0xa466, 0x0000 },
-  { 0x0700, 0xa468, 0x0000 },
-  { 0x8700, 0xa46b, 0x2000 },
-  { 0x0700, 0xa46a, 0x0000 },
-  { 0x0700, 0xa46c, 0x0000 },
-  { 0x8700, 0xa47d, 0x5000 },
-  { 0x8700, 0xa475, 0x4000 },
-  { 0x8700, 0xa471, 0x3000 },
-  { 0x8700, 0xa46f, 0x2000 },
-  { 0x0700, 0xa46e, 0x0000 },
-  { 0x0700, 0xa470, 0x0000 },
-  { 0x8700, 0xa473, 0x2000 },
-  { 0x0700, 0xa472, 0x0000 },
-  { 0x0700, 0xa474, 0x0000 },
-  { 0x8700, 0xa479, 0x3000 },
-  { 0x8700, 0xa477, 0x2000 },
-  { 0x0700, 0xa476, 0x0000 },
-  { 0x0700, 0xa478, 0x0000 },
-  { 0x8700, 0xa47b, 0x2000 },
-  { 0x0700, 0xa47a, 0x0000 },
-  { 0x0700, 0xa47c, 0x0000 },
-  { 0x8700, 0xa485, 0x4000 },
-  { 0x8700, 0xa481, 0x3000 },
-  { 0x8700, 0xa47f, 0x2000 },
-  { 0x0700, 0xa47e, 0x0000 },
-  { 0x0700, 0xa480, 0x0000 },
-  { 0x8700, 0xa483, 0x2000 },
-  { 0x0700, 0xa482, 0x0000 },
-  { 0x0700, 0xa484, 0x0000 },
-  { 0x8700, 0xa489, 0x3000 },
-  { 0x8700, 0xa487, 0x2000 },
-  { 0x0700, 0xa486, 0x0000 },
-  { 0x0700, 0xa488, 0x0000 },
-  { 0x8700, 0xa48b, 0x2000 },
-  { 0x0700, 0xa48a, 0x0000 },
-  { 0x0700, 0xa48c, 0x0000 },
-  { 0x9a00, 0xa4b0, 0x6000 },
-  { 0x9a00, 0xa4a0, 0x5000 },
-  { 0x9a00, 0xa498, 0x4000 },
-  { 0x9a00, 0xa494, 0x3000 },
-  { 0x9a00, 0xa492, 0x2000 },
-  { 0x1a00, 0xa491, 0x0000 },
-  { 0x1a00, 0xa493, 0x0000 },
-  { 0x9a00, 0xa496, 0x2000 },
-  { 0x1a00, 0xa495, 0x0000 },
-  { 0x1a00, 0xa497, 0x0000 },
-  { 0x9a00, 0xa49c, 0x3000 },
-  { 0x9a00, 0xa49a, 0x2000 },
-  { 0x1a00, 0xa499, 0x0000 },
-  { 0x1a00, 0xa49b, 0x0000 },
-  { 0x9a00, 0xa49e, 0x2000 },
-  { 0x1a00, 0xa49d, 0x0000 },
-  { 0x1a00, 0xa49f, 0x0000 },
-  { 0x9a00, 0xa4a8, 0x4000 },
-  { 0x9a00, 0xa4a4, 0x3000 },
-  { 0x9a00, 0xa4a2, 0x2000 },
-  { 0x1a00, 0xa4a1, 0x0000 },
-  { 0x1a00, 0xa4a3, 0x0000 },
-  { 0x9a00, 0xa4a6, 0x2000 },
-  { 0x1a00, 0xa4a5, 0x0000 },
-  { 0x1a00, 0xa4a7, 0x0000 },
-  { 0x9a00, 0xa4ac, 0x3000 },
-  { 0x9a00, 0xa4aa, 0x2000 },
-  { 0x1a00, 0xa4a9, 0x0000 },
-  { 0x1a00, 0xa4ab, 0x0000 },
-  { 0x9a00, 0xa4ae, 0x2000 },
-  { 0x1a00, 0xa4ad, 0x0000 },
-  { 0x1a00, 0xa4af, 0x0000 },
-  { 0x9a00, 0xa4c0, 0x5000 },
-  { 0x9a00, 0xa4b8, 0x4000 },
-  { 0x9a00, 0xa4b4, 0x3000 },
-  { 0x9a00, 0xa4b2, 0x2000 },
-  { 0x1a00, 0xa4b1, 0x0000 },
-  { 0x1a00, 0xa4b3, 0x0000 },
-  { 0x9a00, 0xa4b6, 0x2000 },
-  { 0x1a00, 0xa4b5, 0x0000 },
-  { 0x1a00, 0xa4b7, 0x0000 },
-  { 0x9a00, 0xa4bc, 0x3000 },
-  { 0x9a00, 0xa4ba, 0x2000 },
-  { 0x1a00, 0xa4b9, 0x0000 },
-  { 0x1a00, 0xa4bb, 0x0000 },
-  { 0x9a00, 0xa4be, 0x2000 },
-  { 0x1a00, 0xa4bd, 0x0000 },
-  { 0x1a00, 0xa4bf, 0x0000 },
-  { 0x8700, 0xd7a3, 0x4000 },
-  { 0x9a00, 0xa4c4, 0x3000 },
-  { 0x9a00, 0xa4c2, 0x2000 },
-  { 0x1a00, 0xa4c1, 0x0000 },
-  { 0x1a00, 0xa4c3, 0x0000 },
-  { 0x9a00, 0xa4c6, 0x2000 },
-  { 0x1a00, 0xa4c5, 0x0000 },
-  { 0x0700, 0xac00, 0x0000 },
-  { 0x8400, 0xdbff, 0x3000 },
-  { 0x8400, 0xdb7f, 0x2000 },
-  { 0x0400, 0xd800, 0x0000 },
-  { 0x0400, 0xdb80, 0x0000 },
-  { 0x8400, 0xdfff, 0x2000 },
-  { 0x0400, 0xdc00, 0x0000 },
-  { 0x0300, 0xe000, 0x0000 },
-  { 0x8700, 0xf93f, 0x7000 },
-  { 0x8700, 0xf91f, 0x6000 },
-  { 0x8700, 0xf90f, 0x5000 },
-  { 0x8700, 0xf907, 0x4000 },
-  { 0x8700, 0xf903, 0x3000 },
-  { 0x8700, 0xf901, 0x2000 },
-  { 0x0700, 0xf900, 0x0000 },
-  { 0x0700, 0xf902, 0x0000 },
-  { 0x8700, 0xf905, 0x2000 },
-  { 0x0700, 0xf904, 0x0000 },
-  { 0x0700, 0xf906, 0x0000 },
-  { 0x8700, 0xf90b, 0x3000 },
-  { 0x8700, 0xf909, 0x2000 },
-  { 0x0700, 0xf908, 0x0000 },
-  { 0x0700, 0xf90a, 0x0000 },
-  { 0x8700, 0xf90d, 0x2000 },
-  { 0x0700, 0xf90c, 0x0000 },
-  { 0x0700, 0xf90e, 0x0000 },
-  { 0x8700, 0xf917, 0x4000 },
-  { 0x8700, 0xf913, 0x3000 },
-  { 0x8700, 0xf911, 0x2000 },
-  { 0x0700, 0xf910, 0x0000 },
-  { 0x0700, 0xf912, 0x0000 },
-  { 0x8700, 0xf915, 0x2000 },
-  { 0x0700, 0xf914, 0x0000 },
-  { 0x0700, 0xf916, 0x0000 },
-  { 0x8700, 0xf91b, 0x3000 },
-  { 0x8700, 0xf919, 0x2000 },
-  { 0x0700, 0xf918, 0x0000 },
-  { 0x0700, 0xf91a, 0x0000 },
-  { 0x8700, 0xf91d, 0x2000 },
-  { 0x0700, 0xf91c, 0x0000 },
-  { 0x0700, 0xf91e, 0x0000 },
-  { 0x8700, 0xf92f, 0x5000 },
-  { 0x8700, 0xf927, 0x4000 },
-  { 0x8700, 0xf923, 0x3000 },
-  { 0x8700, 0xf921, 0x2000 },
-  { 0x0700, 0xf920, 0x0000 },
-  { 0x0700, 0xf922, 0x0000 },
-  { 0x8700, 0xf925, 0x2000 },
-  { 0x0700, 0xf924, 0x0000 },
-  { 0x0700, 0xf926, 0x0000 },
-  { 0x8700, 0xf92b, 0x3000 },
-  { 0x8700, 0xf929, 0x2000 },
-  { 0x0700, 0xf928, 0x0000 },
-  { 0x0700, 0xf92a, 0x0000 },
-  { 0x8700, 0xf92d, 0x2000 },
-  { 0x0700, 0xf92c, 0x0000 },
-  { 0x0700, 0xf92e, 0x0000 },
-  { 0x8700, 0xf937, 0x4000 },
-  { 0x8700, 0xf933, 0x3000 },
-  { 0x8700, 0xf931, 0x2000 },
-  { 0x0700, 0xf930, 0x0000 },
-  { 0x0700, 0xf932, 0x0000 },
-  { 0x8700, 0xf935, 0x2000 },
-  { 0x0700, 0xf934, 0x0000 },
-  { 0x0700, 0xf936, 0x0000 },
-  { 0x8700, 0xf93b, 0x3000 },
-  { 0x8700, 0xf939, 0x2000 },
-  { 0x0700, 0xf938, 0x0000 },
-  { 0x0700, 0xf93a, 0x0000 },
-  { 0x8700, 0xf93d, 0x2000 },
-  { 0x0700, 0xf93c, 0x0000 },
-  { 0x0700, 0xf93e, 0x0000 },
-  { 0x8700, 0xf95f, 0x6000 },
-  { 0x8700, 0xf94f, 0x5000 },
-  { 0x8700, 0xf947, 0x4000 },
-  { 0x8700, 0xf943, 0x3000 },
-  { 0x8700, 0xf941, 0x2000 },
-  { 0x0700, 0xf940, 0x0000 },
-  { 0x0700, 0xf942, 0x0000 },
-  { 0x8700, 0xf945, 0x2000 },
-  { 0x0700, 0xf944, 0x0000 },
-  { 0x0700, 0xf946, 0x0000 },
-  { 0x8700, 0xf94b, 0x3000 },
-  { 0x8700, 0xf949, 0x2000 },
-  { 0x0700, 0xf948, 0x0000 },
-  { 0x0700, 0xf94a, 0x0000 },
-  { 0x8700, 0xf94d, 0x2000 },
-  { 0x0700, 0xf94c, 0x0000 },
-  { 0x0700, 0xf94e, 0x0000 },
-  { 0x8700, 0xf957, 0x4000 },
-  { 0x8700, 0xf953, 0x3000 },
-  { 0x8700, 0xf951, 0x2000 },
-  { 0x0700, 0xf950, 0x0000 },
-  { 0x0700, 0xf952, 0x0000 },
-  { 0x8700, 0xf955, 0x2000 },
-  { 0x0700, 0xf954, 0x0000 },
-  { 0x0700, 0xf956, 0x0000 },
-  { 0x8700, 0xf95b, 0x3000 },
-  { 0x8700, 0xf959, 0x2000 },
-  { 0x0700, 0xf958, 0x0000 },
-  { 0x0700, 0xf95a, 0x0000 },
-  { 0x8700, 0xf95d, 0x2000 },
-  { 0x0700, 0xf95c, 0x0000 },
-  { 0x0700, 0xf95e, 0x0000 },
-  { 0x8700, 0xf96f, 0x5000 },
-  { 0x8700, 0xf967, 0x4000 },
-  { 0x8700, 0xf963, 0x3000 },
-  { 0x8700, 0xf961, 0x2000 },
-  { 0x0700, 0xf960, 0x0000 },
-  { 0x0700, 0xf962, 0x0000 },
-  { 0x8700, 0xf965, 0x2000 },
-  { 0x0700, 0xf964, 0x0000 },
-  { 0x0700, 0xf966, 0x0000 },
-  { 0x8700, 0xf96b, 0x3000 },
-  { 0x8700, 0xf969, 0x2000 },
-  { 0x0700, 0xf968, 0x0000 },
-  { 0x0700, 0xf96a, 0x0000 },
-  { 0x8700, 0xf96d, 0x2000 },
-  { 0x0700, 0xf96c, 0x0000 },
-  { 0x0700, 0xf96e, 0x0000 },
-  { 0x8700, 0xf977, 0x4000 },
-  { 0x8700, 0xf973, 0x3000 },
-  { 0x8700, 0xf971, 0x2000 },
-  { 0x0700, 0xf970, 0x0000 },
-  { 0x0700, 0xf972, 0x0000 },
-  { 0x8700, 0xf975, 0x2000 },
-  { 0x0700, 0xf974, 0x0000 },
-  { 0x0700, 0xf976, 0x0000 },
-  { 0x8700, 0xf97b, 0x3000 },
-  { 0x8700, 0xf979, 0x2000 },
-  { 0x0700, 0xf978, 0x0000 },
-  { 0x0700, 0xf97a, 0x0000 },
-  { 0x8700, 0xf97d, 0x2000 },
-  { 0x0700, 0xf97c, 0x0000 },
-  { 0x0700, 0xf97e, 0x0000 },
-  { 0x8700, 0xfb27, 0x9000 },
-  { 0x8700, 0xf9ff, 0x8000 },
-  { 0x8700, 0xf9bf, 0x7000 },
-  { 0x8700, 0xf99f, 0x6000 },
-  { 0x8700, 0xf98f, 0x5000 },
-  { 0x8700, 0xf987, 0x4000 },
-  { 0x8700, 0xf983, 0x3000 },
-  { 0x8700, 0xf981, 0x2000 },
-  { 0x0700, 0xf980, 0x0000 },
-  { 0x0700, 0xf982, 0x0000 },
-  { 0x8700, 0xf985, 0x2000 },
-  { 0x0700, 0xf984, 0x0000 },
-  { 0x0700, 0xf986, 0x0000 },
-  { 0x8700, 0xf98b, 0x3000 },
-  { 0x8700, 0xf989, 0x2000 },
-  { 0x0700, 0xf988, 0x0000 },
-  { 0x0700, 0xf98a, 0x0000 },
-  { 0x8700, 0xf98d, 0x2000 },
-  { 0x0700, 0xf98c, 0x0000 },
-  { 0x0700, 0xf98e, 0x0000 },
-  { 0x8700, 0xf997, 0x4000 },
-  { 0x8700, 0xf993, 0x3000 },
-  { 0x8700, 0xf991, 0x2000 },
-  { 0x0700, 0xf990, 0x0000 },
-  { 0x0700, 0xf992, 0x0000 },
-  { 0x8700, 0xf995, 0x2000 },
-  { 0x0700, 0xf994, 0x0000 },
-  { 0x0700, 0xf996, 0x0000 },
-  { 0x8700, 0xf99b, 0x3000 },
-  { 0x8700, 0xf999, 0x2000 },
-  { 0x0700, 0xf998, 0x0000 },
-  { 0x0700, 0xf99a, 0x0000 },
-  { 0x8700, 0xf99d, 0x2000 },
-  { 0x0700, 0xf99c, 0x0000 },
-  { 0x0700, 0xf99e, 0x0000 },
-  { 0x8700, 0xf9af, 0x5000 },
-  { 0x8700, 0xf9a7, 0x4000 },
-  { 0x8700, 0xf9a3, 0x3000 },
-  { 0x8700, 0xf9a1, 0x2000 },
-  { 0x0700, 0xf9a0, 0x0000 },
-  { 0x0700, 0xf9a2, 0x0000 },
-  { 0x8700, 0xf9a5, 0x2000 },
-  { 0x0700, 0xf9a4, 0x0000 },
-  { 0x0700, 0xf9a6, 0x0000 },
-  { 0x8700, 0xf9ab, 0x3000 },
-  { 0x8700, 0xf9a9, 0x2000 },
-  { 0x0700, 0xf9a8, 0x0000 },
-  { 0x0700, 0xf9aa, 0x0000 },
-  { 0x8700, 0xf9ad, 0x2000 },
-  { 0x0700, 0xf9ac, 0x0000 },
-  { 0x0700, 0xf9ae, 0x0000 },
-  { 0x8700, 0xf9b7, 0x4000 },
-  { 0x8700, 0xf9b3, 0x3000 },
-  { 0x8700, 0xf9b1, 0x2000 },
-  { 0x0700, 0xf9b0, 0x0000 },
-  { 0x0700, 0xf9b2, 0x0000 },
-  { 0x8700, 0xf9b5, 0x2000 },
-  { 0x0700, 0xf9b4, 0x0000 },
-  { 0x0700, 0xf9b6, 0x0000 },
-  { 0x8700, 0xf9bb, 0x3000 },
-  { 0x8700, 0xf9b9, 0x2000 },
-  { 0x0700, 0xf9b8, 0x0000 },
-  { 0x0700, 0xf9ba, 0x0000 },
-  { 0x8700, 0xf9bd, 0x2000 },
-  { 0x0700, 0xf9bc, 0x0000 },
-  { 0x0700, 0xf9be, 0x0000 },
-  { 0x8700, 0xf9df, 0x6000 },
-  { 0x8700, 0xf9cf, 0x5000 },
-  { 0x8700, 0xf9c7, 0x4000 },
-  { 0x8700, 0xf9c3, 0x3000 },
-  { 0x8700, 0xf9c1, 0x2000 },
-  { 0x0700, 0xf9c0, 0x0000 },
-  { 0x0700, 0xf9c2, 0x0000 },
-  { 0x8700, 0xf9c5, 0x2000 },
-  { 0x0700, 0xf9c4, 0x0000 },
-  { 0x0700, 0xf9c6, 0x0000 },
-  { 0x8700, 0xf9cb, 0x3000 },
-  { 0x8700, 0xf9c9, 0x2000 },
-  { 0x0700, 0xf9c8, 0x0000 },
-  { 0x0700, 0xf9ca, 0x0000 },
-  { 0x8700, 0xf9cd, 0x2000 },
-  { 0x0700, 0xf9cc, 0x0000 },
-  { 0x0700, 0xf9ce, 0x0000 },
-  { 0x8700, 0xf9d7, 0x4000 },
-  { 0x8700, 0xf9d3, 0x3000 },
-  { 0x8700, 0xf9d1, 0x2000 },
-  { 0x0700, 0xf9d0, 0x0000 },
-  { 0x0700, 0xf9d2, 0x0000 },
-  { 0x8700, 0xf9d5, 0x2000 },
-  { 0x0700, 0xf9d4, 0x0000 },
-  { 0x0700, 0xf9d6, 0x0000 },
-  { 0x8700, 0xf9db, 0x3000 },
-  { 0x8700, 0xf9d9, 0x2000 },
-  { 0x0700, 0xf9d8, 0x0000 },
-  { 0x0700, 0xf9da, 0x0000 },
-  { 0x8700, 0xf9dd, 0x2000 },
-  { 0x0700, 0xf9dc, 0x0000 },
-  { 0x0700, 0xf9de, 0x0000 },
-  { 0x8700, 0xf9ef, 0x5000 },
-  { 0x8700, 0xf9e7, 0x4000 },
-  { 0x8700, 0xf9e3, 0x3000 },
-  { 0x8700, 0xf9e1, 0x2000 },
-  { 0x0700, 0xf9e0, 0x0000 },
-  { 0x0700, 0xf9e2, 0x0000 },
-  { 0x8700, 0xf9e5, 0x2000 },
-  { 0x0700, 0xf9e4, 0x0000 },
-  { 0x0700, 0xf9e6, 0x0000 },
-  { 0x8700, 0xf9eb, 0x3000 },
-  { 0x8700, 0xf9e9, 0x2000 },
-  { 0x0700, 0xf9e8, 0x0000 },
-  { 0x0700, 0xf9ea, 0x0000 },
-  { 0x8700, 0xf9ed, 0x2000 },
-  { 0x0700, 0xf9ec, 0x0000 },
-  { 0x0700, 0xf9ee, 0x0000 },
-  { 0x8700, 0xf9f7, 0x4000 },
-  { 0x8700, 0xf9f3, 0x3000 },
-  { 0x8700, 0xf9f1, 0x2000 },
-  { 0x0700, 0xf9f0, 0x0000 },
-  { 0x0700, 0xf9f2, 0x0000 },
-  { 0x8700, 0xf9f5, 0x2000 },
-  { 0x0700, 0xf9f4, 0x0000 },
-  { 0x0700, 0xf9f6, 0x0000 },
-  { 0x8700, 0xf9fb, 0x3000 },
-  { 0x8700, 0xf9f9, 0x2000 },
-  { 0x0700, 0xf9f8, 0x0000 },
-  { 0x0700, 0xf9fa, 0x0000 },
-  { 0x8700, 0xf9fd, 0x2000 },
-  { 0x0700, 0xf9fc, 0x0000 },
-  { 0x0700, 0xf9fe, 0x0000 },
-  { 0x8700, 0xfa41, 0x7000 },
-  { 0x8700, 0xfa1f, 0x6000 },
-  { 0x8700, 0xfa0f, 0x5000 },
-  { 0x8700, 0xfa07, 0x4000 },
-  { 0x8700, 0xfa03, 0x3000 },
-  { 0x8700, 0xfa01, 0x2000 },
-  { 0x0700, 0xfa00, 0x0000 },
-  { 0x0700, 0xfa02, 0x0000 },
-  { 0x8700, 0xfa05, 0x2000 },
-  { 0x0700, 0xfa04, 0x0000 },
-  { 0x0700, 0xfa06, 0x0000 },
-  { 0x8700, 0xfa0b, 0x3000 },
-  { 0x8700, 0xfa09, 0x2000 },
-  { 0x0700, 0xfa08, 0x0000 },
-  { 0x0700, 0xfa0a, 0x0000 },
-  { 0x8700, 0xfa0d, 0x2000 },
-  { 0x0700, 0xfa0c, 0x0000 },
-  { 0x0700, 0xfa0e, 0x0000 },
-  { 0x8700, 0xfa17, 0x4000 },
-  { 0x8700, 0xfa13, 0x3000 },
-  { 0x8700, 0xfa11, 0x2000 },
-  { 0x0700, 0xfa10, 0x0000 },
-  { 0x0700, 0xfa12, 0x0000 },
-  { 0x8700, 0xfa15, 0x2000 },
-  { 0x0700, 0xfa14, 0x0000 },
-  { 0x0700, 0xfa16, 0x0000 },
-  { 0x8700, 0xfa1b, 0x3000 },
-  { 0x8700, 0xfa19, 0x2000 },
-  { 0x0700, 0xfa18, 0x0000 },
-  { 0x0700, 0xfa1a, 0x0000 },
-  { 0x8700, 0xfa1d, 0x2000 },
-  { 0x0700, 0xfa1c, 0x0000 },
-  { 0x0700, 0xfa1e, 0x0000 },
-  { 0x8700, 0xfa31, 0x5000 },
-  { 0x8700, 0xfa27, 0x4000 },
-  { 0x8700, 0xfa23, 0x3000 },
-  { 0x8700, 0xfa21, 0x2000 },
-  { 0x0700, 0xfa20, 0x0000 },
-  { 0x0700, 0xfa22, 0x0000 },
-  { 0x8700, 0xfa25, 0x2000 },
-  { 0x0700, 0xfa24, 0x0000 },
-  { 0x0700, 0xfa26, 0x0000 },
-  { 0x8700, 0xfa2b, 0x3000 },
-  { 0x8700, 0xfa29, 0x2000 },
-  { 0x0700, 0xfa28, 0x0000 },
-  { 0x0700, 0xfa2a, 0x0000 },
-  { 0x8700, 0xfa2d, 0x2000 },
-  { 0x0700, 0xfa2c, 0x0000 },
-  { 0x0700, 0xfa30, 0x0000 },
-  { 0x8700, 0xfa39, 0x4000 },
-  { 0x8700, 0xfa35, 0x3000 },
-  { 0x8700, 0xfa33, 0x2000 },
-  { 0x0700, 0xfa32, 0x0000 },
-  { 0x0700, 0xfa34, 0x0000 },
-  { 0x8700, 0xfa37, 0x2000 },
-  { 0x0700, 0xfa36, 0x0000 },
-  { 0x0700, 0xfa38, 0x0000 },
-  { 0x8700, 0xfa3d, 0x3000 },
-  { 0x8700, 0xfa3b, 0x2000 },
-  { 0x0700, 0xfa3a, 0x0000 },
-  { 0x0700, 0xfa3c, 0x0000 },
-  { 0x8700, 0xfa3f, 0x2000 },
-  { 0x0700, 0xfa3e, 0x0000 },
-  { 0x0700, 0xfa40, 0x0000 },
-  { 0x8700, 0xfa61, 0x6000 },
-  { 0x8700, 0xfa51, 0x5000 },
-  { 0x8700, 0xfa49, 0x4000 },
-  { 0x8700, 0xfa45, 0x3000 },
-  { 0x8700, 0xfa43, 0x2000 },
-  { 0x0700, 0xfa42, 0x0000 },
-  { 0x0700, 0xfa44, 0x0000 },
-  { 0x8700, 0xfa47, 0x2000 },
-  { 0x0700, 0xfa46, 0x0000 },
-  { 0x0700, 0xfa48, 0x0000 },
-  { 0x8700, 0xfa4d, 0x3000 },
-  { 0x8700, 0xfa4b, 0x2000 },
-  { 0x0700, 0xfa4a, 0x0000 },
-  { 0x0700, 0xfa4c, 0x0000 },
-  { 0x8700, 0xfa4f, 0x2000 },
-  { 0x0700, 0xfa4e, 0x0000 },
-  { 0x0700, 0xfa50, 0x0000 },
-  { 0x8700, 0xfa59, 0x4000 },
-  { 0x8700, 0xfa55, 0x3000 },
-  { 0x8700, 0xfa53, 0x2000 },
-  { 0x0700, 0xfa52, 0x0000 },
-  { 0x0700, 0xfa54, 0x0000 },
-  { 0x8700, 0xfa57, 0x2000 },
-  { 0x0700, 0xfa56, 0x0000 },
-  { 0x0700, 0xfa58, 0x0000 },
-  { 0x8700, 0xfa5d, 0x3000 },
-  { 0x8700, 0xfa5b, 0x2000 },
-  { 0x0700, 0xfa5a, 0x0000 },
-  { 0x0700, 0xfa5c, 0x0000 },
-  { 0x8700, 0xfa5f, 0x2000 },
-  { 0x0700, 0xfa5e, 0x0000 },
-  { 0x0700, 0xfa60, 0x0000 },
-  { 0x8500, 0xfb06, 0x5000 },
-  { 0x8700, 0xfa69, 0x4000 },
-  { 0x8700, 0xfa65, 0x3000 },
-  { 0x8700, 0xfa63, 0x2000 },
-  { 0x0700, 0xfa62, 0x0000 },
-  { 0x0700, 0xfa64, 0x0000 },
-  { 0x8700, 0xfa67, 0x2000 },
-  { 0x0700, 0xfa66, 0x0000 },
-  { 0x0700, 0xfa68, 0x0000 },
-  { 0x8500, 0xfb02, 0x3000 },
-  { 0x8500, 0xfb00, 0x2000 },
-  { 0x0700, 0xfa6a, 0x0000 },
-  { 0x0500, 0xfb01, 0x0000 },
-  { 0x8500, 0xfb04, 0x2000 },
-  { 0x0500, 0xfb03, 0x0000 },
-  { 0x0500, 0xfb05, 0x0000 },
-  { 0x8700, 0xfb1f, 0x4000 },
-  { 0x8500, 0xfb16, 0x3000 },
-  { 0x8500, 0xfb14, 0x2000 },
-  { 0x0500, 0xfb13, 0x0000 },
-  { 0x0500, 0xfb15, 0x0000 },
-  { 0x8700, 0xfb1d, 0x2000 },
-  { 0x0500, 0xfb17, 0x0000 },
-  { 0x0c00, 0xfb1e, 0x0000 },
-  { 0x8700, 0xfb23, 0x3000 },
-  { 0x8700, 0xfb21, 0x2000 },
-  { 0x0700, 0xfb20, 0x0000 },
-  { 0x0700, 0xfb22, 0x0000 },
-  { 0x8700, 0xfb25, 0x2000 },
-  { 0x0700, 0xfb24, 0x0000 },
-  { 0x0700, 0xfb26, 0x0000 },
-  { 0x8700, 0xfbac, 0x8000 },
-  { 0x8700, 0xfb6c, 0x7000 },
-  { 0x8700, 0xfb4c, 0x6000 },
-  { 0x8700, 0xfb38, 0x5000 },
-  { 0x8700, 0xfb2f, 0x4000 },
-  { 0x8700, 0xfb2b, 0x3000 },
-  { 0x9900, 0xfb29, 0x2000 },
-  { 0x0700, 0xfb28, 0x0000 },
-  { 0x0700, 0xfb2a, 0x0000 },
-  { 0x8700, 0xfb2d, 0x2000 },
-  { 0x0700, 0xfb2c, 0x0000 },
-  { 0x0700, 0xfb2e, 0x0000 },
-  { 0x8700, 0xfb33, 0x3000 },
-  { 0x8700, 0xfb31, 0x2000 },
-  { 0x0700, 0xfb30, 0x0000 },
-  { 0x0700, 0xfb32, 0x0000 },
-  { 0x8700, 0xfb35, 0x2000 },
-  { 0x0700, 0xfb34, 0x0000 },
-  { 0x0700, 0xfb36, 0x0000 },
-  { 0x8700, 0xfb43, 0x4000 },
-  { 0x8700, 0xfb3c, 0x3000 },
-  { 0x8700, 0xfb3a, 0x2000 },
-  { 0x0700, 0xfb39, 0x0000 },
-  { 0x0700, 0xfb3b, 0x0000 },
-  { 0x8700, 0xfb40, 0x2000 },
-  { 0x0700, 0xfb3e, 0x0000 },
-  { 0x0700, 0xfb41, 0x0000 },
-  { 0x8700, 0xfb48, 0x3000 },
-  { 0x8700, 0xfb46, 0x2000 },
-  { 0x0700, 0xfb44, 0x0000 },
-  { 0x0700, 0xfb47, 0x0000 },
-  { 0x8700, 0xfb4a, 0x2000 },
-  { 0x0700, 0xfb49, 0x0000 },
-  { 0x0700, 0xfb4b, 0x0000 },
-  { 0x8700, 0xfb5c, 0x5000 },
-  { 0x8700, 0xfb54, 0x4000 },
-  { 0x8700, 0xfb50, 0x3000 },
-  { 0x8700, 0xfb4e, 0x2000 },
-  { 0x0700, 0xfb4d, 0x0000 },
-  { 0x0700, 0xfb4f, 0x0000 },
-  { 0x8700, 0xfb52, 0x2000 },
-  { 0x0700, 0xfb51, 0x0000 },
-  { 0x0700, 0xfb53, 0x0000 },
-  { 0x8700, 0xfb58, 0x3000 },
-  { 0x8700, 0xfb56, 0x2000 },
-  { 0x0700, 0xfb55, 0x0000 },
-  { 0x0700, 0xfb57, 0x0000 },
-  { 0x8700, 0xfb5a, 0x2000 },
-  { 0x0700, 0xfb59, 0x0000 },
-  { 0x0700, 0xfb5b, 0x0000 },
-  { 0x8700, 0xfb64, 0x4000 },
-  { 0x8700, 0xfb60, 0x3000 },
-  { 0x8700, 0xfb5e, 0x2000 },
-  { 0x0700, 0xfb5d, 0x0000 },
-  { 0x0700, 0xfb5f, 0x0000 },
-  { 0x8700, 0xfb62, 0x2000 },
-  { 0x0700, 0xfb61, 0x0000 },
-  { 0x0700, 0xfb63, 0x0000 },
-  { 0x8700, 0xfb68, 0x3000 },
-  { 0x8700, 0xfb66, 0x2000 },
-  { 0x0700, 0xfb65, 0x0000 },
-  { 0x0700, 0xfb67, 0x0000 },
-  { 0x8700, 0xfb6a, 0x2000 },
-  { 0x0700, 0xfb69, 0x0000 },
-  { 0x0700, 0xfb6b, 0x0000 },
-  { 0x8700, 0xfb8c, 0x6000 },
-  { 0x8700, 0xfb7c, 0x5000 },
-  { 0x8700, 0xfb74, 0x4000 },
-  { 0x8700, 0xfb70, 0x3000 },
-  { 0x8700, 0xfb6e, 0x2000 },
-  { 0x0700, 0xfb6d, 0x0000 },
-  { 0x0700, 0xfb6f, 0x0000 },
-  { 0x8700, 0xfb72, 0x2000 },
-  { 0x0700, 0xfb71, 0x0000 },
-  { 0x0700, 0xfb73, 0x0000 },
-  { 0x8700, 0xfb78, 0x3000 },
-  { 0x8700, 0xfb76, 0x2000 },
-  { 0x0700, 0xfb75, 0x0000 },
-  { 0x0700, 0xfb77, 0x0000 },
-  { 0x8700, 0xfb7a, 0x2000 },
-  { 0x0700, 0xfb79, 0x0000 },
-  { 0x0700, 0xfb7b, 0x0000 },
-  { 0x8700, 0xfb84, 0x4000 },
-  { 0x8700, 0xfb80, 0x3000 },
-  { 0x8700, 0xfb7e, 0x2000 },
-  { 0x0700, 0xfb7d, 0x0000 },
-  { 0x0700, 0xfb7f, 0x0000 },
-  { 0x8700, 0xfb82, 0x2000 },
-  { 0x0700, 0xfb81, 0x0000 },
-  { 0x0700, 0xfb83, 0x0000 },
-  { 0x8700, 0xfb88, 0x3000 },
-  { 0x8700, 0xfb86, 0x2000 },
-  { 0x0700, 0xfb85, 0x0000 },
-  { 0x0700, 0xfb87, 0x0000 },
-  { 0x8700, 0xfb8a, 0x2000 },
-  { 0x0700, 0xfb89, 0x0000 },
-  { 0x0700, 0xfb8b, 0x0000 },
-  { 0x8700, 0xfb9c, 0x5000 },
-  { 0x8700, 0xfb94, 0x4000 },
-  { 0x8700, 0xfb90, 0x3000 },
-  { 0x8700, 0xfb8e, 0x2000 },
-  { 0x0700, 0xfb8d, 0x0000 },
-  { 0x0700, 0xfb8f, 0x0000 },
-  { 0x8700, 0xfb92, 0x2000 },
-  { 0x0700, 0xfb91, 0x0000 },
-  { 0x0700, 0xfb93, 0x0000 },
-  { 0x8700, 0xfb98, 0x3000 },
-  { 0x8700, 0xfb96, 0x2000 },
-  { 0x0700, 0xfb95, 0x0000 },
-  { 0x0700, 0xfb97, 0x0000 },
-  { 0x8700, 0xfb9a, 0x2000 },
-  { 0x0700, 0xfb99, 0x0000 },
-  { 0x0700, 0xfb9b, 0x0000 },
-  { 0x8700, 0xfba4, 0x4000 },
-  { 0x8700, 0xfba0, 0x3000 },
-  { 0x8700, 0xfb9e, 0x2000 },
-  { 0x0700, 0xfb9d, 0x0000 },
-  { 0x0700, 0xfb9f, 0x0000 },
-  { 0x8700, 0xfba2, 0x2000 },
-  { 0x0700, 0xfba1, 0x0000 },
-  { 0x0700, 0xfba3, 0x0000 },
-  { 0x8700, 0xfba8, 0x3000 },
-  { 0x8700, 0xfba6, 0x2000 },
-  { 0x0700, 0xfba5, 0x0000 },
-  { 0x0700, 0xfba7, 0x0000 },
-  { 0x8700, 0xfbaa, 0x2000 },
-  { 0x0700, 0xfba9, 0x0000 },
-  { 0x0700, 0xfbab, 0x0000 },
-  { 0x8700, 0xfc0d, 0x7000 },
-  { 0x8700, 0xfbed, 0x6000 },
-  { 0x8700, 0xfbdd, 0x5000 },
-  { 0x8700, 0xfbd5, 0x4000 },
-  { 0x8700, 0xfbb0, 0x3000 },
-  { 0x8700, 0xfbae, 0x2000 },
-  { 0x0700, 0xfbad, 0x0000 },
-  { 0x0700, 0xfbaf, 0x0000 },
-  { 0x8700, 0xfbd3, 0x2000 },
-  { 0x0700, 0xfbb1, 0x0000 },
-  { 0x0700, 0xfbd4, 0x0000 },
-  { 0x8700, 0xfbd9, 0x3000 },
-  { 0x8700, 0xfbd7, 0x2000 },
-  { 0x0700, 0xfbd6, 0x0000 },
-  { 0x0700, 0xfbd8, 0x0000 },
-  { 0x8700, 0xfbdb, 0x2000 },
-  { 0x0700, 0xfbda, 0x0000 },
-  { 0x0700, 0xfbdc, 0x0000 },
-  { 0x8700, 0xfbe5, 0x4000 },
-  { 0x8700, 0xfbe1, 0x3000 },
-  { 0x8700, 0xfbdf, 0x2000 },
-  { 0x0700, 0xfbde, 0x0000 },
-  { 0x0700, 0xfbe0, 0x0000 },
-  { 0x8700, 0xfbe3, 0x2000 },
-  { 0x0700, 0xfbe2, 0x0000 },
-  { 0x0700, 0xfbe4, 0x0000 },
-  { 0x8700, 0xfbe9, 0x3000 },
-  { 0x8700, 0xfbe7, 0x2000 },
-  { 0x0700, 0xfbe6, 0x0000 },
-  { 0x0700, 0xfbe8, 0x0000 },
-  { 0x8700, 0xfbeb, 0x2000 },
-  { 0x0700, 0xfbea, 0x0000 },
-  { 0x0700, 0xfbec, 0x0000 },
-  { 0x8700, 0xfbfd, 0x5000 },
-  { 0x8700, 0xfbf5, 0x4000 },
-  { 0x8700, 0xfbf1, 0x3000 },
-  { 0x8700, 0xfbef, 0x2000 },
-  { 0x0700, 0xfbee, 0x0000 },
-  { 0x0700, 0xfbf0, 0x0000 },
-  { 0x8700, 0xfbf3, 0x2000 },
-  { 0x0700, 0xfbf2, 0x0000 },
-  { 0x0700, 0xfbf4, 0x0000 },
-  { 0x8700, 0xfbf9, 0x3000 },
-  { 0x8700, 0xfbf7, 0x2000 },
-  { 0x0700, 0xfbf6, 0x0000 },
-  { 0x0700, 0xfbf8, 0x0000 },
-  { 0x8700, 0xfbfb, 0x2000 },
-  { 0x0700, 0xfbfa, 0x0000 },
-  { 0x0700, 0xfbfc, 0x0000 },
-  { 0x8700, 0xfc05, 0x4000 },
-  { 0x8700, 0xfc01, 0x3000 },
-  { 0x8700, 0xfbff, 0x2000 },
-  { 0x0700, 0xfbfe, 0x0000 },
-  { 0x0700, 0xfc00, 0x0000 },
-  { 0x8700, 0xfc03, 0x2000 },
-  { 0x0700, 0xfc02, 0x0000 },
-  { 0x0700, 0xfc04, 0x0000 },
-  { 0x8700, 0xfc09, 0x3000 },
-  { 0x8700, 0xfc07, 0x2000 },
-  { 0x0700, 0xfc06, 0x0000 },
-  { 0x0700, 0xfc08, 0x0000 },
-  { 0x8700, 0xfc0b, 0x2000 },
-  { 0x0700, 0xfc0a, 0x0000 },
-  { 0x0700, 0xfc0c, 0x0000 },
-  { 0x8700, 0xfc2d, 0x6000 },
-  { 0x8700, 0xfc1d, 0x5000 },
-  { 0x8700, 0xfc15, 0x4000 },
-  { 0x8700, 0xfc11, 0x3000 },
-  { 0x8700, 0xfc0f, 0x2000 },
-  { 0x0700, 0xfc0e, 0x0000 },
-  { 0x0700, 0xfc10, 0x0000 },
-  { 0x8700, 0xfc13, 0x2000 },
-  { 0x0700, 0xfc12, 0x0000 },
-  { 0x0700, 0xfc14, 0x0000 },
-  { 0x8700, 0xfc19, 0x3000 },
-  { 0x8700, 0xfc17, 0x2000 },
-  { 0x0700, 0xfc16, 0x0000 },
-  { 0x0700, 0xfc18, 0x0000 },
-  { 0x8700, 0xfc1b, 0x2000 },
-  { 0x0700, 0xfc1a, 0x0000 },
-  { 0x0700, 0xfc1c, 0x0000 },
-  { 0x8700, 0xfc25, 0x4000 },
-  { 0x8700, 0xfc21, 0x3000 },
-  { 0x8700, 0xfc1f, 0x2000 },
-  { 0x0700, 0xfc1e, 0x0000 },
-  { 0x0700, 0xfc20, 0x0000 },
-  { 0x8700, 0xfc23, 0x2000 },
-  { 0x0700, 0xfc22, 0x0000 },
-  { 0x0700, 0xfc24, 0x0000 },
-  { 0x8700, 0xfc29, 0x3000 },
-  { 0x8700, 0xfc27, 0x2000 },
-  { 0x0700, 0xfc26, 0x0000 },
-  { 0x0700, 0xfc28, 0x0000 },
-  { 0x8700, 0xfc2b, 0x2000 },
-  { 0x0700, 0xfc2a, 0x0000 },
-  { 0x0700, 0xfc2c, 0x0000 },
-  { 0x8700, 0xfc3d, 0x5000 },
-  { 0x8700, 0xfc35, 0x4000 },
-  { 0x8700, 0xfc31, 0x3000 },
-  { 0x8700, 0xfc2f, 0x2000 },
-  { 0x0700, 0xfc2e, 0x0000 },
-  { 0x0700, 0xfc30, 0x0000 },
-  { 0x8700, 0xfc33, 0x2000 },
-  { 0x0700, 0xfc32, 0x0000 },
-  { 0x0700, 0xfc34, 0x0000 },
-  { 0x8700, 0xfc39, 0x3000 },
-  { 0x8700, 0xfc37, 0x2000 },
-  { 0x0700, 0xfc36, 0x0000 },
-  { 0x0700, 0xfc38, 0x0000 },
-  { 0x8700, 0xfc3b, 0x2000 },
-  { 0x0700, 0xfc3a, 0x0000 },
-  { 0x0700, 0xfc3c, 0x0000 },
-  { 0x8700, 0xfc45, 0x4000 },
-  { 0x8700, 0xfc41, 0x3000 },
-  { 0x8700, 0xfc3f, 0x2000 },
-  { 0x0700, 0xfc3e, 0x0000 },
-  { 0x0700, 0xfc40, 0x0000 },
-  { 0x8700, 0xfc43, 0x2000 },
-  { 0x0700, 0xfc42, 0x0000 },
-  { 0x0700, 0xfc44, 0x0000 },
-  { 0x8700, 0xfc49, 0x3000 },
-  { 0x8700, 0xfc47, 0x2000 },
-  { 0x0700, 0xfc46, 0x0000 },
-  { 0x0700, 0xfc48, 0x0000 },
-  { 0x8700, 0xfc4b, 0x2000 },
-  { 0x0700, 0xfc4a, 0x0000 },
-  { 0x0700, 0xfc4c, 0x0000 },
-  { 0x8700, 0xfeac, 0xa000 },
-  { 0x8700, 0xfd5d, 0x9000 },
-  { 0x8700, 0xfccd, 0x8000 },
-  { 0x8700, 0xfc8d, 0x7000 },
-  { 0x8700, 0xfc6d, 0x6000 },
-  { 0x8700, 0xfc5d, 0x5000 },
-  { 0x8700, 0xfc55, 0x4000 },
-  { 0x8700, 0xfc51, 0x3000 },
-  { 0x8700, 0xfc4f, 0x2000 },
-  { 0x0700, 0xfc4e, 0x0000 },
-  { 0x0700, 0xfc50, 0x0000 },
-  { 0x8700, 0xfc53, 0x2000 },
-  { 0x0700, 0xfc52, 0x0000 },
-  { 0x0700, 0xfc54, 0x0000 },
-  { 0x8700, 0xfc59, 0x3000 },
-  { 0x8700, 0xfc57, 0x2000 },
-  { 0x0700, 0xfc56, 0x0000 },
-  { 0x0700, 0xfc58, 0x0000 },
-  { 0x8700, 0xfc5b, 0x2000 },
-  { 0x0700, 0xfc5a, 0x0000 },
-  { 0x0700, 0xfc5c, 0x0000 },
-  { 0x8700, 0xfc65, 0x4000 },
-  { 0x8700, 0xfc61, 0x3000 },
-  { 0x8700, 0xfc5f, 0x2000 },
-  { 0x0700, 0xfc5e, 0x0000 },
-  { 0x0700, 0xfc60, 0x0000 },
-  { 0x8700, 0xfc63, 0x2000 },
-  { 0x0700, 0xfc62, 0x0000 },
-  { 0x0700, 0xfc64, 0x0000 },
-  { 0x8700, 0xfc69, 0x3000 },
-  { 0x8700, 0xfc67, 0x2000 },
-  { 0x0700, 0xfc66, 0x0000 },
-  { 0x0700, 0xfc68, 0x0000 },
-  { 0x8700, 0xfc6b, 0x2000 },
-  { 0x0700, 0xfc6a, 0x0000 },
-  { 0x0700, 0xfc6c, 0x0000 },
-  { 0x8700, 0xfc7d, 0x5000 },
-  { 0x8700, 0xfc75, 0x4000 },
-  { 0x8700, 0xfc71, 0x3000 },
-  { 0x8700, 0xfc6f, 0x2000 },
-  { 0x0700, 0xfc6e, 0x0000 },
-  { 0x0700, 0xfc70, 0x0000 },
-  { 0x8700, 0xfc73, 0x2000 },
-  { 0x0700, 0xfc72, 0x0000 },
-  { 0x0700, 0xfc74, 0x0000 },
-  { 0x8700, 0xfc79, 0x3000 },
-  { 0x8700, 0xfc77, 0x2000 },
-  { 0x0700, 0xfc76, 0x0000 },
-  { 0x0700, 0xfc78, 0x0000 },
-  { 0x8700, 0xfc7b, 0x2000 },
-  { 0x0700, 0xfc7a, 0x0000 },
-  { 0x0700, 0xfc7c, 0x0000 },
-  { 0x8700, 0xfc85, 0x4000 },
-  { 0x8700, 0xfc81, 0x3000 },
-  { 0x8700, 0xfc7f, 0x2000 },
-  { 0x0700, 0xfc7e, 0x0000 },
-  { 0x0700, 0xfc80, 0x0000 },
-  { 0x8700, 0xfc83, 0x2000 },
-  { 0x0700, 0xfc82, 0x0000 },
-  { 0x0700, 0xfc84, 0x0000 },
-  { 0x8700, 0xfc89, 0x3000 },
-  { 0x8700, 0xfc87, 0x2000 },
-  { 0x0700, 0xfc86, 0x0000 },
-  { 0x0700, 0xfc88, 0x0000 },
-  { 0x8700, 0xfc8b, 0x2000 },
-  { 0x0700, 0xfc8a, 0x0000 },
-  { 0x0700, 0xfc8c, 0x0000 },
-  { 0x8700, 0xfcad, 0x6000 },
-  { 0x8700, 0xfc9d, 0x5000 },
-  { 0x8700, 0xfc95, 0x4000 },
-  { 0x8700, 0xfc91, 0x3000 },
-  { 0x8700, 0xfc8f, 0x2000 },
-  { 0x0700, 0xfc8e, 0x0000 },
-  { 0x0700, 0xfc90, 0x0000 },
-  { 0x8700, 0xfc93, 0x2000 },
-  { 0x0700, 0xfc92, 0x0000 },
-  { 0x0700, 0xfc94, 0x0000 },
-  { 0x8700, 0xfc99, 0x3000 },
-  { 0x8700, 0xfc97, 0x2000 },
-  { 0x0700, 0xfc96, 0x0000 },
-  { 0x0700, 0xfc98, 0x0000 },
-  { 0x8700, 0xfc9b, 0x2000 },
-  { 0x0700, 0xfc9a, 0x0000 },
-  { 0x0700, 0xfc9c, 0x0000 },
-  { 0x8700, 0xfca5, 0x4000 },
-  { 0x8700, 0xfca1, 0x3000 },
-  { 0x8700, 0xfc9f, 0x2000 },
-  { 0x0700, 0xfc9e, 0x0000 },
-  { 0x0700, 0xfca0, 0x0000 },
-  { 0x8700, 0xfca3, 0x2000 },
-  { 0x0700, 0xfca2, 0x0000 },
-  { 0x0700, 0xfca4, 0x0000 },
-  { 0x8700, 0xfca9, 0x3000 },
-  { 0x8700, 0xfca7, 0x2000 },
-  { 0x0700, 0xfca6, 0x0000 },
-  { 0x0700, 0xfca8, 0x0000 },
-  { 0x8700, 0xfcab, 0x2000 },
-  { 0x0700, 0xfcaa, 0x0000 },
-  { 0x0700, 0xfcac, 0x0000 },
-  { 0x8700, 0xfcbd, 0x5000 },
-  { 0x8700, 0xfcb5, 0x4000 },
-  { 0x8700, 0xfcb1, 0x3000 },
-  { 0x8700, 0xfcaf, 0x2000 },
-  { 0x0700, 0xfcae, 0x0000 },
-  { 0x0700, 0xfcb0, 0x0000 },
-  { 0x8700, 0xfcb3, 0x2000 },
-  { 0x0700, 0xfcb2, 0x0000 },
-  { 0x0700, 0xfcb4, 0x0000 },
-  { 0x8700, 0xfcb9, 0x3000 },
-  { 0x8700, 0xfcb7, 0x2000 },
-  { 0x0700, 0xfcb6, 0x0000 },
-  { 0x0700, 0xfcb8, 0x0000 },
-  { 0x8700, 0xfcbb, 0x2000 },
-  { 0x0700, 0xfcba, 0x0000 },
-  { 0x0700, 0xfcbc, 0x0000 },
-  { 0x8700, 0xfcc5, 0x4000 },
-  { 0x8700, 0xfcc1, 0x3000 },
-  { 0x8700, 0xfcbf, 0x2000 },
-  { 0x0700, 0xfcbe, 0x0000 },
-  { 0x0700, 0xfcc0, 0x0000 },
-  { 0x8700, 0xfcc3, 0x2000 },
-  { 0x0700, 0xfcc2, 0x0000 },
-  { 0x0700, 0xfcc4, 0x0000 },
-  { 0x8700, 0xfcc9, 0x3000 },
-  { 0x8700, 0xfcc7, 0x2000 },
-  { 0x0700, 0xfcc6, 0x0000 },
-  { 0x0700, 0xfcc8, 0x0000 },
-  { 0x8700, 0xfccb, 0x2000 },
-  { 0x0700, 0xfcca, 0x0000 },
-  { 0x0700, 0xfccc, 0x0000 },
-  { 0x8700, 0xfd0d, 0x7000 },
-  { 0x8700, 0xfced, 0x6000 },
-  { 0x8700, 0xfcdd, 0x5000 },
-  { 0x8700, 0xfcd5, 0x4000 },
-  { 0x8700, 0xfcd1, 0x3000 },
-  { 0x8700, 0xfccf, 0x2000 },
-  { 0x0700, 0xfcce, 0x0000 },
-  { 0x0700, 0xfcd0, 0x0000 },
-  { 0x8700, 0xfcd3, 0x2000 },
-  { 0x0700, 0xfcd2, 0x0000 },
-  { 0x0700, 0xfcd4, 0x0000 },
-  { 0x8700, 0xfcd9, 0x3000 },
-  { 0x8700, 0xfcd7, 0x2000 },
-  { 0x0700, 0xfcd6, 0x0000 },
-  { 0x0700, 0xfcd8, 0x0000 },
-  { 0x8700, 0xfcdb, 0x2000 },
-  { 0x0700, 0xfcda, 0x0000 },
-  { 0x0700, 0xfcdc, 0x0000 },
-  { 0x8700, 0xfce5, 0x4000 },
-  { 0x8700, 0xfce1, 0x3000 },
-  { 0x8700, 0xfcdf, 0x2000 },
-  { 0x0700, 0xfcde, 0x0000 },
-  { 0x0700, 0xfce0, 0x0000 },
-  { 0x8700, 0xfce3, 0x2000 },
-  { 0x0700, 0xfce2, 0x0000 },
-  { 0x0700, 0xfce4, 0x0000 },
-  { 0x8700, 0xfce9, 0x3000 },
-  { 0x8700, 0xfce7, 0x2000 },
-  { 0x0700, 0xfce6, 0x0000 },
-  { 0x0700, 0xfce8, 0x0000 },
-  { 0x8700, 0xfceb, 0x2000 },
-  { 0x0700, 0xfcea, 0x0000 },
-  { 0x0700, 0xfcec, 0x0000 },
-  { 0x8700, 0xfcfd, 0x5000 },
-  { 0x8700, 0xfcf5, 0x4000 },
-  { 0x8700, 0xfcf1, 0x3000 },
-  { 0x8700, 0xfcef, 0x2000 },
-  { 0x0700, 0xfcee, 0x0000 },
-  { 0x0700, 0xfcf0, 0x0000 },
-  { 0x8700, 0xfcf3, 0x2000 },
-  { 0x0700, 0xfcf2, 0x0000 },
-  { 0x0700, 0xfcf4, 0x0000 },
-  { 0x8700, 0xfcf9, 0x3000 },
-  { 0x8700, 0xfcf7, 0x2000 },
-  { 0x0700, 0xfcf6, 0x0000 },
-  { 0x0700, 0xfcf8, 0x0000 },
-  { 0x8700, 0xfcfb, 0x2000 },
-  { 0x0700, 0xfcfa, 0x0000 },
-  { 0x0700, 0xfcfc, 0x0000 },
-  { 0x8700, 0xfd05, 0x4000 },
-  { 0x8700, 0xfd01, 0x3000 },
-  { 0x8700, 0xfcff, 0x2000 },
-  { 0x0700, 0xfcfe, 0x0000 },
-  { 0x0700, 0xfd00, 0x0000 },
-  { 0x8700, 0xfd03, 0x2000 },
-  { 0x0700, 0xfd02, 0x0000 },
-  { 0x0700, 0xfd04, 0x0000 },
-  { 0x8700, 0xfd09, 0x3000 },
-  { 0x8700, 0xfd07, 0x2000 },
-  { 0x0700, 0xfd06, 0x0000 },
-  { 0x0700, 0xfd08, 0x0000 },
-  { 0x8700, 0xfd0b, 0x2000 },
-  { 0x0700, 0xfd0a, 0x0000 },
-  { 0x0700, 0xfd0c, 0x0000 },
-  { 0x8700, 0xfd2d, 0x6000 },
-  { 0x8700, 0xfd1d, 0x5000 },
-  { 0x8700, 0xfd15, 0x4000 },
-  { 0x8700, 0xfd11, 0x3000 },
-  { 0x8700, 0xfd0f, 0x2000 },
-  { 0x0700, 0xfd0e, 0x0000 },
-  { 0x0700, 0xfd10, 0x0000 },
-  { 0x8700, 0xfd13, 0x2000 },
-  { 0x0700, 0xfd12, 0x0000 },
-  { 0x0700, 0xfd14, 0x0000 },
-  { 0x8700, 0xfd19, 0x3000 },
-  { 0x8700, 0xfd17, 0x2000 },
-  { 0x0700, 0xfd16, 0x0000 },
-  { 0x0700, 0xfd18, 0x0000 },
-  { 0x8700, 0xfd1b, 0x2000 },
-  { 0x0700, 0xfd1a, 0x0000 },
-  { 0x0700, 0xfd1c, 0x0000 },
-  { 0x8700, 0xfd25, 0x4000 },
-  { 0x8700, 0xfd21, 0x3000 },
-  { 0x8700, 0xfd1f, 0x2000 },
-  { 0x0700, 0xfd1e, 0x0000 },
-  { 0x0700, 0xfd20, 0x0000 },
-  { 0x8700, 0xfd23, 0x2000 },
-  { 0x0700, 0xfd22, 0x0000 },
-  { 0x0700, 0xfd24, 0x0000 },
-  { 0x8700, 0xfd29, 0x3000 },
-  { 0x8700, 0xfd27, 0x2000 },
-  { 0x0700, 0xfd26, 0x0000 },
-  { 0x0700, 0xfd28, 0x0000 },
-  { 0x8700, 0xfd2b, 0x2000 },
-  { 0x0700, 0xfd2a, 0x0000 },
-  { 0x0700, 0xfd2c, 0x0000 },
-  { 0x8700, 0xfd3d, 0x5000 },
-  { 0x8700, 0xfd35, 0x4000 },
-  { 0x8700, 0xfd31, 0x3000 },
-  { 0x8700, 0xfd2f, 0x2000 },
-  { 0x0700, 0xfd2e, 0x0000 },
-  { 0x0700, 0xfd30, 0x0000 },
-  { 0x8700, 0xfd33, 0x2000 },
-  { 0x0700, 0xfd32, 0x0000 },
-  { 0x0700, 0xfd34, 0x0000 },
-  { 0x8700, 0xfd39, 0x3000 },
-  { 0x8700, 0xfd37, 0x2000 },
-  { 0x0700, 0xfd36, 0x0000 },
-  { 0x0700, 0xfd38, 0x0000 },
-  { 0x8700, 0xfd3b, 0x2000 },
-  { 0x0700, 0xfd3a, 0x0000 },
-  { 0x0700, 0xfd3c, 0x0000 },
-  { 0x8700, 0xfd55, 0x4000 },
-  { 0x8700, 0xfd51, 0x3000 },
-  { 0x9200, 0xfd3f, 0x2000 },
-  { 0x1600, 0xfd3e, 0x0000 },
-  { 0x0700, 0xfd50, 0x0000 },
-  { 0x8700, 0xfd53, 0x2000 },
-  { 0x0700, 0xfd52, 0x0000 },
-  { 0x0700, 0xfd54, 0x0000 },
-  { 0x8700, 0xfd59, 0x3000 },
-  { 0x8700, 0xfd57, 0x2000 },
-  { 0x0700, 0xfd56, 0x0000 },
-  { 0x0700, 0xfd58, 0x0000 },
-  { 0x8700, 0xfd5b, 0x2000 },
-  { 0x0700, 0xfd5a, 0x0000 },
-  { 0x0700, 0xfd5c, 0x0000 },
-  { 0x8c00, 0xfe09, 0x8000 },
-  { 0x8700, 0xfd9f, 0x7000 },
-  { 0x8700, 0xfd7d, 0x6000 },
-  { 0x8700, 0xfd6d, 0x5000 },
-  { 0x8700, 0xfd65, 0x4000 },
-  { 0x8700, 0xfd61, 0x3000 },
-  { 0x8700, 0xfd5f, 0x2000 },
-  { 0x0700, 0xfd5e, 0x0000 },
-  { 0x0700, 0xfd60, 0x0000 },
-  { 0x8700, 0xfd63, 0x2000 },
-  { 0x0700, 0xfd62, 0x0000 },
-  { 0x0700, 0xfd64, 0x0000 },
-  { 0x8700, 0xfd69, 0x3000 },
-  { 0x8700, 0xfd67, 0x2000 },
-  { 0x0700, 0xfd66, 0x0000 },
-  { 0x0700, 0xfd68, 0x0000 },
-  { 0x8700, 0xfd6b, 0x2000 },
-  { 0x0700, 0xfd6a, 0x0000 },
-  { 0x0700, 0xfd6c, 0x0000 },
-  { 0x8700, 0xfd75, 0x4000 },
-  { 0x8700, 0xfd71, 0x3000 },
-  { 0x8700, 0xfd6f, 0x2000 },
-  { 0x0700, 0xfd6e, 0x0000 },
-  { 0x0700, 0xfd70, 0x0000 },
-  { 0x8700, 0xfd73, 0x2000 },
-  { 0x0700, 0xfd72, 0x0000 },
-  { 0x0700, 0xfd74, 0x0000 },
-  { 0x8700, 0xfd79, 0x3000 },
-  { 0x8700, 0xfd77, 0x2000 },
-  { 0x0700, 0xfd76, 0x0000 },
-  { 0x0700, 0xfd78, 0x0000 },
-  { 0x8700, 0xfd7b, 0x2000 },
-  { 0x0700, 0xfd7a, 0x0000 },
-  { 0x0700, 0xfd7c, 0x0000 },
-  { 0x8700, 0xfd8d, 0x5000 },
-  { 0x8700, 0xfd85, 0x4000 },
-  { 0x8700, 0xfd81, 0x3000 },
-  { 0x8700, 0xfd7f, 0x2000 },
-  { 0x0700, 0xfd7e, 0x0000 },
-  { 0x0700, 0xfd80, 0x0000 },
-  { 0x8700, 0xfd83, 0x2000 },
-  { 0x0700, 0xfd82, 0x0000 },
-  { 0x0700, 0xfd84, 0x0000 },
-  { 0x8700, 0xfd89, 0x3000 },
-  { 0x8700, 0xfd87, 0x2000 },
-  { 0x0700, 0xfd86, 0x0000 },
-  { 0x0700, 0xfd88, 0x0000 },
-  { 0x8700, 0xfd8b, 0x2000 },
-  { 0x0700, 0xfd8a, 0x0000 },
-  { 0x0700, 0xfd8c, 0x0000 },
-  { 0x8700, 0xfd97, 0x4000 },
-  { 0x8700, 0xfd93, 0x3000 },
-  { 0x8700, 0xfd8f, 0x2000 },
-  { 0x0700, 0xfd8e, 0x0000 },
-  { 0x0700, 0xfd92, 0x0000 },
-  { 0x8700, 0xfd95, 0x2000 },
-  { 0x0700, 0xfd94, 0x0000 },
-  { 0x0700, 0xfd96, 0x0000 },
-  { 0x8700, 0xfd9b, 0x3000 },
-  { 0x8700, 0xfd99, 0x2000 },
-  { 0x0700, 0xfd98, 0x0000 },
-  { 0x0700, 0xfd9a, 0x0000 },
-  { 0x8700, 0xfd9d, 0x2000 },
-  { 0x0700, 0xfd9c, 0x0000 },
-  { 0x0700, 0xfd9e, 0x0000 },
-  { 0x8700, 0xfdbf, 0x6000 },
-  { 0x8700, 0xfdaf, 0x5000 },
-  { 0x8700, 0xfda7, 0x4000 },
-  { 0x8700, 0xfda3, 0x3000 },
-  { 0x8700, 0xfda1, 0x2000 },
-  { 0x0700, 0xfda0, 0x0000 },
-  { 0x0700, 0xfda2, 0x0000 },
-  { 0x8700, 0xfda5, 0x2000 },
-  { 0x0700, 0xfda4, 0x0000 },
-  { 0x0700, 0xfda6, 0x0000 },
-  { 0x8700, 0xfdab, 0x3000 },
-  { 0x8700, 0xfda9, 0x2000 },
-  { 0x0700, 0xfda8, 0x0000 },
-  { 0x0700, 0xfdaa, 0x0000 },
-  { 0x8700, 0xfdad, 0x2000 },
-  { 0x0700, 0xfdac, 0x0000 },
-  { 0x0700, 0xfdae, 0x0000 },
-  { 0x8700, 0xfdb7, 0x4000 },
-  { 0x8700, 0xfdb3, 0x3000 },
-  { 0x8700, 0xfdb1, 0x2000 },
-  { 0x0700, 0xfdb0, 0x0000 },
-  { 0x0700, 0xfdb2, 0x0000 },
-  { 0x8700, 0xfdb5, 0x2000 },
-  { 0x0700, 0xfdb4, 0x0000 },
-  { 0x0700, 0xfdb6, 0x0000 },
-  { 0x8700, 0xfdbb, 0x3000 },
-  { 0x8700, 0xfdb9, 0x2000 },
-  { 0x0700, 0xfdb8, 0x0000 },
-  { 0x0700, 0xfdba, 0x0000 },
-  { 0x8700, 0xfdbd, 0x2000 },
-  { 0x0700, 0xfdbc, 0x0000 },
-  { 0x0700, 0xfdbe, 0x0000 },
-  { 0x8700, 0xfdf7, 0x5000 },
-  { 0x8700, 0xfdc7, 0x4000 },
-  { 0x8700, 0xfdc3, 0x3000 },
-  { 0x8700, 0xfdc1, 0x2000 },
-  { 0x0700, 0xfdc0, 0x0000 },
-  { 0x0700, 0xfdc2, 0x0000 },
-  { 0x8700, 0xfdc5, 0x2000 },
-  { 0x0700, 0xfdc4, 0x0000 },
-  { 0x0700, 0xfdc6, 0x0000 },
-  { 0x8700, 0xfdf3, 0x3000 },
-  { 0x8700, 0xfdf1, 0x2000 },
-  { 0x0700, 0xfdf0, 0x0000 },
-  { 0x0700, 0xfdf2, 0x0000 },
-  { 0x8700, 0xfdf5, 0x2000 },
-  { 0x0700, 0xfdf4, 0x0000 },
-  { 0x0700, 0xfdf6, 0x0000 },
-  { 0x8c00, 0xfe01, 0x4000 },
-  { 0x8700, 0xfdfb, 0x3000 },
-  { 0x8700, 0xfdf9, 0x2000 },
-  { 0x0700, 0xfdf8, 0x0000 },
-  { 0x0700, 0xfdfa, 0x0000 },
-  { 0x9a00, 0xfdfd, 0x2000 },
-  { 0x1700, 0xfdfc, 0x0000 },
-  { 0x0c00, 0xfe00, 0x0000 },
-  { 0x8c00, 0xfe05, 0x3000 },
-  { 0x8c00, 0xfe03, 0x2000 },
-  { 0x0c00, 0xfe02, 0x0000 },
-  { 0x0c00, 0xfe04, 0x0000 },
-  { 0x8c00, 0xfe07, 0x2000 },
-  { 0x0c00, 0xfe06, 0x0000 },
-  { 0x0c00, 0xfe08, 0x0000 },
-  { 0x9900, 0xfe66, 0x7000 },
-  { 0x9500, 0xfe45, 0x6000 },
-  { 0x9600, 0xfe35, 0x5000 },
-  { 0x8c00, 0xfe21, 0x4000 },
-  { 0x8c00, 0xfe0d, 0x3000 },
-  { 0x8c00, 0xfe0b, 0x2000 },
-  { 0x0c00, 0xfe0a, 0x0000 },
-  { 0x0c00, 0xfe0c, 0x0000 },
-  { 0x8c00, 0xfe0f, 0x2000 },
-  { 0x0c00, 0xfe0e, 0x0000 },
-  { 0x0c00, 0xfe20, 0x0000 },
-  { 0x9100, 0xfe31, 0x3000 },
-  { 0x8c00, 0xfe23, 0x2000 },
-  { 0x0c00, 0xfe22, 0x0000 },
-  { 0x1500, 0xfe30, 0x0000 },
-  { 0x9000, 0xfe33, 0x2000 },
-  { 0x1100, 0xfe32, 0x0000 },
-  { 0x1000, 0xfe34, 0x0000 },
-  { 0x9600, 0xfe3d, 0x4000 },
-  { 0x9600, 0xfe39, 0x3000 },
-  { 0x9600, 0xfe37, 0x2000 },
-  { 0x1200, 0xfe36, 0x0000 },
-  { 0x1200, 0xfe38, 0x0000 },
-  { 0x9600, 0xfe3b, 0x2000 },
-  { 0x1200, 0xfe3a, 0x0000 },
-  { 0x1200, 0xfe3c, 0x0000 },
-  { 0x9600, 0xfe41, 0x3000 },
-  { 0x9600, 0xfe3f, 0x2000 },
-  { 0x1200, 0xfe3e, 0x0000 },
-  { 0x1200, 0xfe40, 0x0000 },
-  { 0x9600, 0xfe43, 0x2000 },
-  { 0x1200, 0xfe42, 0x0000 },
-  { 0x1200, 0xfe44, 0x0000 },
-  { 0x9500, 0xfe56, 0x5000 },
-  { 0x9000, 0xfe4d, 0x4000 },
-  { 0x9500, 0xfe49, 0x3000 },
-  { 0x9600, 0xfe47, 0x2000 },
-  { 0x1500, 0xfe46, 0x0000 },
-  { 0x1200, 0xfe48, 0x0000 },
-  { 0x9500, 0xfe4b, 0x2000 },
-  { 0x1500, 0xfe4a, 0x0000 },
-  { 0x1500, 0xfe4c, 0x0000 },
-  { 0x9500, 0xfe51, 0x3000 },
-  { 0x9000, 0xfe4f, 0x2000 },
-  { 0x1000, 0xfe4e, 0x0000 },
-  { 0x1500, 0xfe50, 0x0000 },
-  { 0x9500, 0xfe54, 0x2000 },
-  { 0x1500, 0xfe52, 0x0000 },
-  { 0x1500, 0xfe55, 0x0000 },
-  { 0x9200, 0xfe5e, 0x4000 },
-  { 0x9200, 0xfe5a, 0x3000 },
-  { 0x9100, 0xfe58, 0x2000 },
-  { 0x1500, 0xfe57, 0x0000 },
-  { 0x1600, 0xfe59, 0x0000 },
-  { 0x9200, 0xfe5c, 0x2000 },
-  { 0x1600, 0xfe5b, 0x0000 },
-  { 0x1600, 0xfe5d, 0x0000 },
-  { 0x9900, 0xfe62, 0x3000 },
-  { 0x9500, 0xfe60, 0x2000 },
-  { 0x1500, 0xfe5f, 0x0000 },
-  { 0x1500, 0xfe61, 0x0000 },
-  { 0x9900, 0xfe64, 0x2000 },
-  { 0x1100, 0xfe63, 0x0000 },
-  { 0x1900, 0xfe65, 0x0000 },
-  { 0x8700, 0xfe8c, 0x6000 },
-  { 0x8700, 0xfe7c, 0x5000 },
-  { 0x8700, 0xfe73, 0x4000 },
-  { 0x9500, 0xfe6b, 0x3000 },
-  { 0x9700, 0xfe69, 0x2000 },
-  { 0x1500, 0xfe68, 0x0000 },
-  { 0x1500, 0xfe6a, 0x0000 },
-  { 0x8700, 0xfe71, 0x2000 },
-  { 0x0700, 0xfe70, 0x0000 },
-  { 0x0700, 0xfe72, 0x0000 },
-  { 0x8700, 0xfe78, 0x3000 },
-  { 0x8700, 0xfe76, 0x2000 },
-  { 0x0700, 0xfe74, 0x0000 },
-  { 0x0700, 0xfe77, 0x0000 },
-  { 0x8700, 0xfe7a, 0x2000 },
-  { 0x0700, 0xfe79, 0x0000 },
-  { 0x0700, 0xfe7b, 0x0000 },
-  { 0x8700, 0xfe84, 0x4000 },
-  { 0x8700, 0xfe80, 0x3000 },
-  { 0x8700, 0xfe7e, 0x2000 },
-  { 0x0700, 0xfe7d, 0x0000 },
-  { 0x0700, 0xfe7f, 0x0000 },
-  { 0x8700, 0xfe82, 0x2000 },
-  { 0x0700, 0xfe81, 0x0000 },
-  { 0x0700, 0xfe83, 0x0000 },
-  { 0x8700, 0xfe88, 0x3000 },
-  { 0x8700, 0xfe86, 0x2000 },
-  { 0x0700, 0xfe85, 0x0000 },
-  { 0x0700, 0xfe87, 0x0000 },
-  { 0x8700, 0xfe8a, 0x2000 },
-  { 0x0700, 0xfe89, 0x0000 },
-  { 0x0700, 0xfe8b, 0x0000 },
-  { 0x8700, 0xfe9c, 0x5000 },
-  { 0x8700, 0xfe94, 0x4000 },
-  { 0x8700, 0xfe90, 0x3000 },
-  { 0x8700, 0xfe8e, 0x2000 },
-  { 0x0700, 0xfe8d, 0x0000 },
-  { 0x0700, 0xfe8f, 0x0000 },
-  { 0x8700, 0xfe92, 0x2000 },
-  { 0x0700, 0xfe91, 0x0000 },
-  { 0x0700, 0xfe93, 0x0000 },
-  { 0x8700, 0xfe98, 0x3000 },
-  { 0x8700, 0xfe96, 0x2000 },
-  { 0x0700, 0xfe95, 0x0000 },
-  { 0x0700, 0xfe97, 0x0000 },
-  { 0x8700, 0xfe9a, 0x2000 },
-  { 0x0700, 0xfe99, 0x0000 },
-  { 0x0700, 0xfe9b, 0x0000 },
-  { 0x8700, 0xfea4, 0x4000 },
-  { 0x8700, 0xfea0, 0x3000 },
-  { 0x8700, 0xfe9e, 0x2000 },
-  { 0x0700, 0xfe9d, 0x0000 },
-  { 0x0700, 0xfe9f, 0x0000 },
-  { 0x8700, 0xfea2, 0x2000 },
-  { 0x0700, 0xfea1, 0x0000 },
-  { 0x0700, 0xfea3, 0x0000 },
-  { 0x8700, 0xfea8, 0x3000 },
-  { 0x8700, 0xfea6, 0x2000 },
-  { 0x0700, 0xfea5, 0x0000 },
-  { 0x0700, 0xfea7, 0x0000 },
-  { 0x8700, 0xfeaa, 0x2000 },
-  { 0x0700, 0xfea9, 0x0000 },
-  { 0x0700, 0xfeab, 0x0000 },
-  { 0x8700, 0xffaf, 0x9000 },
-  { 0x8900, 0xff2f, 0x8020 },
-  { 0x8700, 0xfeec, 0x7000 },
-  { 0x8700, 0xfecc, 0x6000 },
-  { 0x8700, 0xfebc, 0x5000 },
-  { 0x8700, 0xfeb4, 0x4000 },
-  { 0x8700, 0xfeb0, 0x3000 },
-  { 0x8700, 0xfeae, 0x2000 },
-  { 0x0700, 0xfead, 0x0000 },
-  { 0x0700, 0xfeaf, 0x0000 },
-  { 0x8700, 0xfeb2, 0x2000 },
-  { 0x0700, 0xfeb1, 0x0000 },
-  { 0x0700, 0xfeb3, 0x0000 },
-  { 0x8700, 0xfeb8, 0x3000 },
-  { 0x8700, 0xfeb6, 0x2000 },
-  { 0x0700, 0xfeb5, 0x0000 },
-  { 0x0700, 0xfeb7, 0x0000 },
-  { 0x8700, 0xfeba, 0x2000 },
-  { 0x0700, 0xfeb9, 0x0000 },
-  { 0x0700, 0xfebb, 0x0000 },
-  { 0x8700, 0xfec4, 0x4000 },
-  { 0x8700, 0xfec0, 0x3000 },
-  { 0x8700, 0xfebe, 0x2000 },
-  { 0x0700, 0xfebd, 0x0000 },
-  { 0x0700, 0xfebf, 0x0000 },
-  { 0x8700, 0xfec2, 0x2000 },
-  { 0x0700, 0xfec1, 0x0000 },
-  { 0x0700, 0xfec3, 0x0000 },
-  { 0x8700, 0xfec8, 0x3000 },
-  { 0x8700, 0xfec6, 0x2000 },
-  { 0x0700, 0xfec5, 0x0000 },
-  { 0x0700, 0xfec7, 0x0000 },
-  { 0x8700, 0xfeca, 0x2000 },
-  { 0x0700, 0xfec9, 0x0000 },
-  { 0x0700, 0xfecb, 0x0000 },
-  { 0x8700, 0xfedc, 0x5000 },
-  { 0x8700, 0xfed4, 0x4000 },
-  { 0x8700, 0xfed0, 0x3000 },
-  { 0x8700, 0xfece, 0x2000 },
-  { 0x0700, 0xfecd, 0x0000 },
-  { 0x0700, 0xfecf, 0x0000 },
-  { 0x8700, 0xfed2, 0x2000 },
-  { 0x0700, 0xfed1, 0x0000 },
-  { 0x0700, 0xfed3, 0x0000 },
-  { 0x8700, 0xfed8, 0x3000 },
-  { 0x8700, 0xfed6, 0x2000 },
-  { 0x0700, 0xfed5, 0x0000 },
-  { 0x0700, 0xfed7, 0x0000 },
-  { 0x8700, 0xfeda, 0x2000 },
-  { 0x0700, 0xfed9, 0x0000 },
-  { 0x0700, 0xfedb, 0x0000 },
-  { 0x8700, 0xfee4, 0x4000 },
-  { 0x8700, 0xfee0, 0x3000 },
-  { 0x8700, 0xfede, 0x2000 },
-  { 0x0700, 0xfedd, 0x0000 },
-  { 0x0700, 0xfedf, 0x0000 },
-  { 0x8700, 0xfee2, 0x2000 },
-  { 0x0700, 0xfee1, 0x0000 },
-  { 0x0700, 0xfee3, 0x0000 },
-  { 0x8700, 0xfee8, 0x3000 },
-  { 0x8700, 0xfee6, 0x2000 },
-  { 0x0700, 0xfee5, 0x0000 },
-  { 0x0700, 0xfee7, 0x0000 },
-  { 0x8700, 0xfeea, 0x2000 },
-  { 0x0700, 0xfee9, 0x0000 },
-  { 0x0700, 0xfeeb, 0x0000 },
-  { 0x9500, 0xff0f, 0x6000 },
-  { 0x8700, 0xfefc, 0x5000 },
-  { 0x8700, 0xfef4, 0x4000 },
-  { 0x8700, 0xfef0, 0x3000 },
-  { 0x8700, 0xfeee, 0x2000 },
-  { 0x0700, 0xfeed, 0x0000 },
-  { 0x0700, 0xfeef, 0x0000 },
-  { 0x8700, 0xfef2, 0x2000 },
-  { 0x0700, 0xfef1, 0x0000 },
-  { 0x0700, 0xfef3, 0x0000 },
-  { 0x8700, 0xfef8, 0x3000 },
-  { 0x8700, 0xfef6, 0x2000 },
-  { 0x0700, 0xfef5, 0x0000 },
-  { 0x0700, 0xfef7, 0x0000 },
-  { 0x8700, 0xfefa, 0x2000 },
-  { 0x0700, 0xfef9, 0x0000 },
-  { 0x0700, 0xfefb, 0x0000 },
-  { 0x9500, 0xff07, 0x4000 },
-  { 0x9500, 0xff03, 0x3000 },
-  { 0x9500, 0xff01, 0x2000 },
-  { 0x0100, 0xfeff, 0x0000 },
-  { 0x1500, 0xff02, 0x0000 },
-  { 0x9500, 0xff05, 0x2000 },
-  { 0x1700, 0xff04, 0x0000 },
-  { 0x1500, 0xff06, 0x0000 },
-  { 0x9900, 0xff0b, 0x3000 },
-  { 0x9200, 0xff09, 0x2000 },
-  { 0x1600, 0xff08, 0x0000 },
-  { 0x1500, 0xff0a, 0x0000 },
-  { 0x9100, 0xff0d, 0x2000 },
-  { 0x1500, 0xff0c, 0x0000 },
-  { 0x1500, 0xff0e, 0x0000 },
-  { 0x9500, 0xff1f, 0x5000 },
-  { 0x8d00, 0xff17, 0x4000 },
-  { 0x8d00, 0xff13, 0x3000 },
-  { 0x8d00, 0xff11, 0x2000 },
-  { 0x0d00, 0xff10, 0x0000 },
-  { 0x0d00, 0xff12, 0x0000 },
-  { 0x8d00, 0xff15, 0x2000 },
-  { 0x0d00, 0xff14, 0x0000 },
-  { 0x0d00, 0xff16, 0x0000 },
-  { 0x9500, 0xff1b, 0x3000 },
-  { 0x8d00, 0xff19, 0x2000 },
-  { 0x0d00, 0xff18, 0x0000 },
-  { 0x1500, 0xff1a, 0x0000 },
-  { 0x9900, 0xff1d, 0x2000 },
-  { 0x1900, 0xff1c, 0x0000 },
-  { 0x1900, 0xff1e, 0x0000 },
-  { 0x8900, 0xff27, 0x4020 },
-  { 0x8900, 0xff23, 0x3020 },
-  { 0x8900, 0xff21, 0x2020 },
-  { 0x1500, 0xff20, 0x0000 },
-  { 0x0900, 0xff22, 0x0020 },
-  { 0x8900, 0xff25, 0x2020 },
-  { 0x0900, 0xff24, 0x0020 },
-  { 0x0900, 0xff26, 0x0020 },
-  { 0x8900, 0xff2b, 0x3020 },
-  { 0x8900, 0xff29, 0x2020 },
-  { 0x0900, 0xff28, 0x0020 },
-  { 0x0900, 0xff2a, 0x0020 },
-  { 0x8900, 0xff2d, 0x2020 },
-  { 0x0900, 0xff2c, 0x0020 },
-  { 0x0900, 0xff2e, 0x0020 },
-  { 0x8700, 0xff6f, 0x7000 },
-  { 0x8500, 0xff4f, 0x6fe0 },
-  { 0x9000, 0xff3f, 0x5000 },
-  { 0x8900, 0xff37, 0x4020 },
-  { 0x8900, 0xff33, 0x3020 },
-  { 0x8900, 0xff31, 0x2020 },
-  { 0x0900, 0xff30, 0x0020 },
-  { 0x0900, 0xff32, 0x0020 },
-  { 0x8900, 0xff35, 0x2020 },
-  { 0x0900, 0xff34, 0x0020 },
-  { 0x0900, 0xff36, 0x0020 },
-  { 0x9600, 0xff3b, 0x3000 },
-  { 0x8900, 0xff39, 0x2020 },
-  { 0x0900, 0xff38, 0x0020 },
-  { 0x0900, 0xff3a, 0x0020 },
-  { 0x9200, 0xff3d, 0x2000 },
-  { 0x1500, 0xff3c, 0x0000 },
-  { 0x1800, 0xff3e, 0x0000 },
-  { 0x8500, 0xff47, 0x4fe0 },
-  { 0x8500, 0xff43, 0x3fe0 },
-  { 0x8500, 0xff41, 0x2fe0 },
-  { 0x1800, 0xff40, 0x0000 },
-  { 0x0500, 0xff42, 0x0fe0 },
-  { 0x8500, 0xff45, 0x2fe0 },
-  { 0x0500, 0xff44, 0x0fe0 },
-  { 0x0500, 0xff46, 0x0fe0 },
-  { 0x8500, 0xff4b, 0x3fe0 },
-  { 0x8500, 0xff49, 0x2fe0 },
-  { 0x0500, 0xff48, 0x0fe0 },
-  { 0x0500, 0xff4a, 0x0fe0 },
-  { 0x8500, 0xff4d, 0x2fe0 },
-  { 0x0500, 0xff4c, 0x0fe0 },
-  { 0x0500, 0xff4e, 0x0fe0 },
-  { 0x9600, 0xff5f, 0x5000 },
-  { 0x8500, 0xff57, 0x4fe0 },
-  { 0x8500, 0xff53, 0x3fe0 },
-  { 0x8500, 0xff51, 0x2fe0 },
-  { 0x0500, 0xff50, 0x0fe0 },
-  { 0x0500, 0xff52, 0x0fe0 },
-  { 0x8500, 0xff55, 0x2fe0 },
-  { 0x0500, 0xff54, 0x0fe0 },
-  { 0x0500, 0xff56, 0x0fe0 },
-  { 0x9600, 0xff5b, 0x3000 },
-  { 0x8500, 0xff59, 0x2fe0 },
-  { 0x0500, 0xff58, 0x0fe0 },
-  { 0x0500, 0xff5a, 0x0fe0 },
-  { 0x9200, 0xff5d, 0x2000 },
-  { 0x1900, 0xff5c, 0x0000 },
-  { 0x1900, 0xff5e, 0x0000 },
-  { 0x8700, 0xff67, 0x4000 },
-  { 0x9200, 0xff63, 0x3000 },
-  { 0x9500, 0xff61, 0x2000 },
-  { 0x1200, 0xff60, 0x0000 },
-  { 0x1600, 0xff62, 0x0000 },
-  { 0x9000, 0xff65, 0x2000 },
-  { 0x1500, 0xff64, 0x0000 },
-  { 0x0700, 0xff66, 0x0000 },
-  { 0x8700, 0xff6b, 0x3000 },
-  { 0x8700, 0xff69, 0x2000 },
-  { 0x0700, 0xff68, 0x0000 },
-  { 0x0700, 0xff6a, 0x0000 },
-  { 0x8700, 0xff6d, 0x2000 },
-  { 0x0700, 0xff6c, 0x0000 },
-  { 0x0700, 0xff6e, 0x0000 },
-  { 0x8700, 0xff8f, 0x6000 },
-  { 0x8700, 0xff7f, 0x5000 },
-  { 0x8700, 0xff77, 0x4000 },
-  { 0x8700, 0xff73, 0x3000 },
-  { 0x8700, 0xff71, 0x2000 },
-  { 0x0600, 0xff70, 0x0000 },
-  { 0x0700, 0xff72, 0x0000 },
-  { 0x8700, 0xff75, 0x2000 },
-  { 0x0700, 0xff74, 0x0000 },
-  { 0x0700, 0xff76, 0x0000 },
-  { 0x8700, 0xff7b, 0x3000 },
-  { 0x8700, 0xff79, 0x2000 },
-  { 0x0700, 0xff78, 0x0000 },
-  { 0x0700, 0xff7a, 0x0000 },
-  { 0x8700, 0xff7d, 0x2000 },
-  { 0x0700, 0xff7c, 0x0000 },
-  { 0x0700, 0xff7e, 0x0000 },
-  { 0x8700, 0xff87, 0x4000 },
-  { 0x8700, 0xff83, 0x3000 },
-  { 0x8700, 0xff81, 0x2000 },
-  { 0x0700, 0xff80, 0x0000 },
-  { 0x0700, 0xff82, 0x0000 },
-  { 0x8700, 0xff85, 0x2000 },
-  { 0x0700, 0xff84, 0x0000 },
-  { 0x0700, 0xff86, 0x0000 },
-  { 0x8700, 0xff8b, 0x3000 },
-  { 0x8700, 0xff89, 0x2000 },
-  { 0x0700, 0xff88, 0x0000 },
-  { 0x0700, 0xff8a, 0x0000 },
-  { 0x8700, 0xff8d, 0x2000 },
-  { 0x0700, 0xff8c, 0x0000 },
-  { 0x0700, 0xff8e, 0x0000 },
-  { 0x8600, 0xff9f, 0x5000 },
-  { 0x8700, 0xff97, 0x4000 },
-  { 0x8700, 0xff93, 0x3000 },
-  { 0x8700, 0xff91, 0x2000 },
-  { 0x0700, 0xff90, 0x0000 },
-  { 0x0700, 0xff92, 0x0000 },
-  { 0x8700, 0xff95, 0x2000 },
-  { 0x0700, 0xff94, 0x0000 },
-  { 0x0700, 0xff96, 0x0000 },
-  { 0x8700, 0xff9b, 0x3000 },
-  { 0x8700, 0xff99, 0x2000 },
-  { 0x0700, 0xff98, 0x0000 },
-  { 0x0700, 0xff9a, 0x0000 },
-  { 0x8700, 0xff9d, 0x2000 },
-  { 0x0700, 0xff9c, 0x0000 },
-  { 0x0600, 0xff9e, 0x0000 },
-  { 0x8700, 0xffa7, 0x4000 },
-  { 0x8700, 0xffa3, 0x3000 },
-  { 0x8700, 0xffa1, 0x2000 },
-  { 0x0700, 0xffa0, 0x0000 },
-  { 0x0700, 0xffa2, 0x0000 },
-  { 0x8700, 0xffa5, 0x2000 },
-  { 0x0700, 0xffa4, 0x0000 },
-  { 0x0700, 0xffa6, 0x0000 },
-  { 0x8700, 0xffab, 0x3000 },
-  { 0x8700, 0xffa9, 0x2000 },
-  { 0x0700, 0xffa8, 0x0000 },
-  { 0x0700, 0xffaa, 0x0000 },
-  { 0x8700, 0xffad, 0x2000 },
-  { 0x0700, 0xffac, 0x0000 },
-  { 0x0700, 0xffae, 0x0000 },
-  { 0x8701, 0x004c, 0x8000 },
-  { 0x8701, 0x0008, 0x7000 },
-  { 0x8700, 0xffd6, 0x6000 },
-  { 0x8700, 0xffc2, 0x5000 },
-  { 0x8700, 0xffb7, 0x4000 },
-  { 0x8700, 0xffb3, 0x3000 },
-  { 0x8700, 0xffb1, 0x2000 },
-  { 0x0700, 0xffb0, 0x0000 },
-  { 0x0700, 0xffb2, 0x0000 },
-  { 0x8700, 0xffb5, 0x2000 },
-  { 0x0700, 0xffb4, 0x0000 },
-  { 0x0700, 0xffb6, 0x0000 },
-  { 0x8700, 0xffbb, 0x3000 },
-  { 0x8700, 0xffb9, 0x2000 },
-  { 0x0700, 0xffb8, 0x0000 },
-  { 0x0700, 0xffba, 0x0000 },
-  { 0x8700, 0xffbd, 0x2000 },
-  { 0x0700, 0xffbc, 0x0000 },
-  { 0x0700, 0xffbe, 0x0000 },
-  { 0x8700, 0xffcc, 0x4000 },
-  { 0x8700, 0xffc6, 0x3000 },
-  { 0x8700, 0xffc4, 0x2000 },
-  { 0x0700, 0xffc3, 0x0000 },
-  { 0x0700, 0xffc5, 0x0000 },
-  { 0x8700, 0xffca, 0x2000 },
-  { 0x0700, 0xffc7, 0x0000 },
-  { 0x0700, 0xffcb, 0x0000 },
-  { 0x8700, 0xffd2, 0x3000 },
-  { 0x8700, 0xffce, 0x2000 },
-  { 0x0700, 0xffcd, 0x0000 },
-  { 0x0700, 0xffcf, 0x0000 },
-  { 0x8700, 0xffd4, 0x2000 },
-  { 0x0700, 0xffd3, 0x0000 },
-  { 0x0700, 0xffd5, 0x0000 },
-  { 0x9900, 0xffec, 0x5000 },
-  { 0x9800, 0xffe3, 0x4000 },
-  { 0x8700, 0xffdc, 0x3000 },
-  { 0x8700, 0xffda, 0x2000 },
-  { 0x0700, 0xffd7, 0x0000 },
-  { 0x0700, 0xffdb, 0x0000 },
-  { 0x9700, 0xffe1, 0x2000 },
-  { 0x1700, 0xffe0, 0x0000 },
-  { 0x1900, 0xffe2, 0x0000 },
-  { 0x9a00, 0xffe8, 0x3000 },
-  { 0x9700, 0xffe5, 0x2000 },
-  { 0x1a00, 0xffe4, 0x0000 },
-  { 0x1700, 0xffe6, 0x0000 },
-  { 0x9900, 0xffea, 0x2000 },
-  { 0x1900, 0xffe9, 0x0000 },
-  { 0x1900, 0xffeb, 0x0000 },
-  { 0x8701, 0x0000, 0x4000 },
-  { 0x8100, 0xfffa, 0x3000 },
-  { 0x9a00, 0xffee, 0x2000 },
-  { 0x1a00, 0xffed, 0x0000 },
-  { 0x0100, 0xfff9, 0x0000 },
-  { 0x9a00, 0xfffc, 0x2000 },
-  { 0x0100, 0xfffb, 0x0000 },
-  { 0x1a00, 0xfffd, 0x0000 },
-  { 0x8701, 0x0004, 0x3000 },
-  { 0x8701, 0x0002, 0x2000 },
-  { 0x0701, 0x0001, 0x0000 },
-  { 0x0701, 0x0003, 0x0000 },
-  { 0x8701, 0x0006, 0x2000 },
-  { 0x0701, 0x0005, 0x0000 },
-  { 0x0701, 0x0007, 0x0000 },
-  { 0x8701, 0x002a, 0x6000 },
-  { 0x8701, 0x0019, 0x5000 },
-  { 0x8701, 0x0011, 0x4000 },
-  { 0x8701, 0x000d, 0x3000 },
-  { 0x8701, 0x000a, 0x2000 },
-  { 0x0701, 0x0009, 0x0000 },
-  { 0x0701, 0x000b, 0x0000 },
-  { 0x8701, 0x000f, 0x2000 },
-  { 0x0701, 0x000e, 0x0000 },
-  { 0x0701, 0x0010, 0x0000 },
-  { 0x8701, 0x0015, 0x3000 },
-  { 0x8701, 0x0013, 0x2000 },
-  { 0x0701, 0x0012, 0x0000 },
-  { 0x0701, 0x0014, 0x0000 },
-  { 0x8701, 0x0017, 0x2000 },
-  { 0x0701, 0x0016, 0x0000 },
-  { 0x0701, 0x0018, 0x0000 },
-  { 0x8701, 0x0021, 0x4000 },
-  { 0x8701, 0x001d, 0x3000 },
-  { 0x8701, 0x001b, 0x2000 },
-  { 0x0701, 0x001a, 0x0000 },
-  { 0x0701, 0x001c, 0x0000 },
-  { 0x8701, 0x001f, 0x2000 },
-  { 0x0701, 0x001e, 0x0000 },
-  { 0x0701, 0x0020, 0x0000 },
-  { 0x8701, 0x0025, 0x3000 },
-  { 0x8701, 0x0023, 0x2000 },
-  { 0x0701, 0x0022, 0x0000 },
-  { 0x0701, 0x0024, 0x0000 },
-  { 0x8701, 0x0028, 0x2000 },
-  { 0x0701, 0x0026, 0x0000 },
-  { 0x0701, 0x0029, 0x0000 },
-  { 0x8701, 0x003a, 0x5000 },
-  { 0x8701, 0x0032, 0x4000 },
-  { 0x8701, 0x002e, 0x3000 },
-  { 0x8701, 0x002c, 0x2000 },
-  { 0x0701, 0x002b, 0x0000 },
-  { 0x0701, 0x002d, 0x0000 },
-  { 0x8701, 0x0030, 0x2000 },
-  { 0x0701, 0x002f, 0x0000 },
-  { 0x0701, 0x0031, 0x0000 },
-  { 0x8701, 0x0036, 0x3000 },
-  { 0x8701, 0x0034, 0x2000 },
-  { 0x0701, 0x0033, 0x0000 },
-  { 0x0701, 0x0035, 0x0000 },
-  { 0x8701, 0x0038, 0x2000 },
-  { 0x0701, 0x0037, 0x0000 },
-  { 0x0701, 0x0039, 0x0000 },
-  { 0x8701, 0x0044, 0x4000 },
-  { 0x8701, 0x0040, 0x3000 },
-  { 0x8701, 0x003d, 0x2000 },
-  { 0x0701, 0x003c, 0x0000 },
-  { 0x0701, 0x003f, 0x0000 },
-  { 0x8701, 0x0042, 0x2000 },
-  { 0x0701, 0x0041, 0x0000 },
-  { 0x0701, 0x0043, 0x0000 },
-  { 0x8701, 0x0048, 0x3000 },
-  { 0x8701, 0x0046, 0x2000 },
-  { 0x0701, 0x0045, 0x0000 },
-  { 0x0701, 0x0047, 0x0000 },
-  { 0x8701, 0x004a, 0x2000 },
-  { 0x0701, 0x0049, 0x0000 },
-  { 0x0701, 0x004b, 0x0000 },
-  { 0x8701, 0x00b0, 0x7000 },
-  { 0x8701, 0x0090, 0x6000 },
-  { 0x8701, 0x0080, 0x5000 },
-  { 0x8701, 0x0056, 0x4000 },
-  { 0x8701, 0x0052, 0x3000 },
-  { 0x8701, 0x0050, 0x2000 },
-  { 0x0701, 0x004d, 0x0000 },
-  { 0x0701, 0x0051, 0x0000 },
-  { 0x8701, 0x0054, 0x2000 },
-  { 0x0701, 0x0053, 0x0000 },
-  { 0x0701, 0x0055, 0x0000 },
-  { 0x8701, 0x005a, 0x3000 },
-  { 0x8701, 0x0058, 0x2000 },
-  { 0x0701, 0x0057, 0x0000 },
-  { 0x0701, 0x0059, 0x0000 },
-  { 0x8701, 0x005c, 0x2000 },
-  { 0x0701, 0x005b, 0x0000 },
-  { 0x0701, 0x005d, 0x0000 },
-  { 0x8701, 0x0088, 0x4000 },
-  { 0x8701, 0x0084, 0x3000 },
-  { 0x8701, 0x0082, 0x2000 },
-  { 0x0701, 0x0081, 0x0000 },
-  { 0x0701, 0x0083, 0x0000 },
-  { 0x8701, 0x0086, 0x2000 },
-  { 0x0701, 0x0085, 0x0000 },
-  { 0x0701, 0x0087, 0x0000 },
-  { 0x8701, 0x008c, 0x3000 },
-  { 0x8701, 0x008a, 0x2000 },
-  { 0x0701, 0x0089, 0x0000 },
-  { 0x0701, 0x008b, 0x0000 },
-  { 0x8701, 0x008e, 0x2000 },
-  { 0x0701, 0x008d, 0x0000 },
-  { 0x0701, 0x008f, 0x0000 },
-  { 0x8701, 0x00a0, 0x5000 },
-  { 0x8701, 0x0098, 0x4000 },
-  { 0x8701, 0x0094, 0x3000 },
-  { 0x8701, 0x0092, 0x2000 },
-  { 0x0701, 0x0091, 0x0000 },
-  { 0x0701, 0x0093, 0x0000 },
-  { 0x8701, 0x0096, 0x2000 },
-  { 0x0701, 0x0095, 0x0000 },
-  { 0x0701, 0x0097, 0x0000 },
-  { 0x8701, 0x009c, 0x3000 },
-  { 0x8701, 0x009a, 0x2000 },
-  { 0x0701, 0x0099, 0x0000 },
-  { 0x0701, 0x009b, 0x0000 },
-  { 0x8701, 0x009e, 0x2000 },
-  { 0x0701, 0x009d, 0x0000 },
-  { 0x0701, 0x009f, 0x0000 },
-  { 0x8701, 0x00a8, 0x4000 },
-  { 0x8701, 0x00a4, 0x3000 },
-  { 0x8701, 0x00a2, 0x2000 },
-  { 0x0701, 0x00a1, 0x0000 },
-  { 0x0701, 0x00a3, 0x0000 },
-  { 0x8701, 0x00a6, 0x2000 },
-  { 0x0701, 0x00a5, 0x0000 },
-  { 0x0701, 0x00a7, 0x0000 },
-  { 0x8701, 0x00ac, 0x3000 },
-  { 0x8701, 0x00aa, 0x2000 },
-  { 0x0701, 0x00a9, 0x0000 },
-  { 0x0701, 0x00ab, 0x0000 },
-  { 0x8701, 0x00ae, 0x2000 },
-  { 0x0701, 0x00ad, 0x0000 },
-  { 0x0701, 0x00af, 0x0000 },
-  { 0x8701, 0x00d0, 0x6000 },
-  { 0x8701, 0x00c0, 0x5000 },
-  { 0x8701, 0x00b8, 0x4000 },
-  { 0x8701, 0x00b4, 0x3000 },
-  { 0x8701, 0x00b2, 0x2000 },
-  { 0x0701, 0x00b1, 0x0000 },
-  { 0x0701, 0x00b3, 0x0000 },
-  { 0x8701, 0x00b6, 0x2000 },
-  { 0x0701, 0x00b5, 0x0000 },
-  { 0x0701, 0x00b7, 0x0000 },
-  { 0x8701, 0x00bc, 0x3000 },
-  { 0x8701, 0x00ba, 0x2000 },
-  { 0x0701, 0x00b9, 0x0000 },
-  { 0x0701, 0x00bb, 0x0000 },
-  { 0x8701, 0x00be, 0x2000 },
-  { 0x0701, 0x00bd, 0x0000 },
-  { 0x0701, 0x00bf, 0x0000 },
-  { 0x8701, 0x00c8, 0x4000 },
-  { 0x8701, 0x00c4, 0x3000 },
-  { 0x8701, 0x00c2, 0x2000 },
-  { 0x0701, 0x00c1, 0x0000 },
-  { 0x0701, 0x00c3, 0x0000 },
-  { 0x8701, 0x00c6, 0x2000 },
-  { 0x0701, 0x00c5, 0x0000 },
-  { 0x0701, 0x00c7, 0x0000 },
-  { 0x8701, 0x00cc, 0x3000 },
-  { 0x8701, 0x00ca, 0x2000 },
-  { 0x0701, 0x00c9, 0x0000 },
-  { 0x0701, 0x00cb, 0x0000 },
-  { 0x8701, 0x00ce, 0x2000 },
-  { 0x0701, 0x00cd, 0x0000 },
-  { 0x0701, 0x00cf, 0x0000 },
-  { 0x8701, 0x00e0, 0x5000 },
-  { 0x8701, 0x00d8, 0x4000 },
-  { 0x8701, 0x00d4, 0x3000 },
-  { 0x8701, 0x00d2, 0x2000 },
-  { 0x0701, 0x00d1, 0x0000 },
-  { 0x0701, 0x00d3, 0x0000 },
-  { 0x8701, 0x00d6, 0x2000 },
-  { 0x0701, 0x00d5, 0x0000 },
-  { 0x0701, 0x00d7, 0x0000 },
-  { 0x8701, 0x00dc, 0x3000 },
-  { 0x8701, 0x00da, 0x2000 },
-  { 0x0701, 0x00d9, 0x0000 },
-  { 0x0701, 0x00db, 0x0000 },
-  { 0x8701, 0x00de, 0x2000 },
-  { 0x0701, 0x00dd, 0x0000 },
-  { 0x0701, 0x00df, 0x0000 },
-  { 0x8701, 0x00e8, 0x4000 },
-  { 0x8701, 0x00e4, 0x3000 },
-  { 0x8701, 0x00e2, 0x2000 },
-  { 0x0701, 0x00e1, 0x0000 },
-  { 0x0701, 0x00e3, 0x0000 },
-  { 0x8701, 0x00e6, 0x2000 },
-  { 0x0701, 0x00e5, 0x0000 },
-  { 0x0701, 0x00e7, 0x0000 },
-  { 0x8701, 0x00ec, 0x3000 },
-  { 0x8701, 0x00ea, 0x2000 },
-  { 0x0701, 0x00e9, 0x0000 },
-  { 0x0701, 0x00eb, 0x0000 },
-  { 0x8701, 0x00ee, 0x2000 },
-  { 0x0701, 0x00ed, 0x0000 },
-  { 0x0701, 0x00ef, 0x0000 },
-  { 0x8501, 0xd459, 0xb000 },
-  { 0x9a01, 0xd080, 0xa000 },
-  { 0x8701, 0x045f, 0x9000 },
-  { 0x8701, 0x0349, 0x8000 },
-  { 0x9a01, 0x013c, 0x7000 },
-  { 0x8f01, 0x0119, 0x6000 },
-  { 0x8f01, 0x0109, 0x5000 },
-  { 0x8701, 0x00f8, 0x4000 },
-  { 0x8701, 0x00f4, 0x3000 },
-  { 0x8701, 0x00f2, 0x2000 },
-  { 0x0701, 0x00f1, 0x0000 },
-  { 0x0701, 0x00f3, 0x0000 },
-  { 0x8701, 0x00f6, 0x2000 },
-  { 0x0701, 0x00f5, 0x0000 },
-  { 0x0701, 0x00f7, 0x0000 },
-  { 0x9501, 0x0101, 0x3000 },
-  { 0x8701, 0x00fa, 0x2000 },
-  { 0x0701, 0x00f9, 0x0000 },
-  { 0x1501, 0x0100, 0x0000 },
-  { 0x8f01, 0x0107, 0x2000 },
-  { 0x1a01, 0x0102, 0x0000 },
-  { 0x0f01, 0x0108, 0x0000 },
-  { 0x8f01, 0x0111, 0x4000 },
-  { 0x8f01, 0x010d, 0x3000 },
-  { 0x8f01, 0x010b, 0x2000 },
-  { 0x0f01, 0x010a, 0x0000 },
-  { 0x0f01, 0x010c, 0x0000 },
-  { 0x8f01, 0x010f, 0x2000 },
-  { 0x0f01, 0x010e, 0x0000 },
-  { 0x0f01, 0x0110, 0x0000 },
-  { 0x8f01, 0x0115, 0x3000 },
-  { 0x8f01, 0x0113, 0x2000 },
-  { 0x0f01, 0x0112, 0x0000 },
-  { 0x0f01, 0x0114, 0x0000 },
-  { 0x8f01, 0x0117, 0x2000 },
-  { 0x0f01, 0x0116, 0x0000 },
-  { 0x0f01, 0x0118, 0x0000 },
-  { 0x8f01, 0x0129, 0x5000 },
-  { 0x8f01, 0x0121, 0x4000 },
-  { 0x8f01, 0x011d, 0x3000 },
-  { 0x8f01, 0x011b, 0x2000 },
-  { 0x0f01, 0x011a, 0x0000 },
-  { 0x0f01, 0x011c, 0x0000 },
-  { 0x8f01, 0x011f, 0x2000 },
-  { 0x0f01, 0x011e, 0x0000 },
-  { 0x0f01, 0x0120, 0x0000 },
-  { 0x8f01, 0x0125, 0x3000 },
-  { 0x8f01, 0x0123, 0x2000 },
-  { 0x0f01, 0x0122, 0x0000 },
-  { 0x0f01, 0x0124, 0x0000 },
-  { 0x8f01, 0x0127, 0x2000 },
-  { 0x0f01, 0x0126, 0x0000 },
-  { 0x0f01, 0x0128, 0x0000 },
-  { 0x8f01, 0x0131, 0x4000 },
-  { 0x8f01, 0x012d, 0x3000 },
-  { 0x8f01, 0x012b, 0x2000 },
-  { 0x0f01, 0x012a, 0x0000 },
-  { 0x0f01, 0x012c, 0x0000 },
-  { 0x8f01, 0x012f, 0x2000 },
-  { 0x0f01, 0x012e, 0x0000 },
-  { 0x0f01, 0x0130, 0x0000 },
-  { 0x9a01, 0x0138, 0x3000 },
-  { 0x8f01, 0x0133, 0x2000 },
-  { 0x0f01, 0x0132, 0x0000 },
-  { 0x1a01, 0x0137, 0x0000 },
-  { 0x9a01, 0x013a, 0x2000 },
-  { 0x1a01, 0x0139, 0x0000 },
-  { 0x1a01, 0x013b, 0x0000 },
-  { 0x8701, 0x031c, 0x6000 },
-  { 0x8701, 0x030c, 0x5000 },
-  { 0x8701, 0x0304, 0x4000 },
-  { 0x8701, 0x0300, 0x3000 },
-  { 0x9a01, 0x013e, 0x2000 },
-  { 0x1a01, 0x013d, 0x0000 },
-  { 0x1a01, 0x013f, 0x0000 },
-  { 0x8701, 0x0302, 0x2000 },
-  { 0x0701, 0x0301, 0x0000 },
-  { 0x0701, 0x0303, 0x0000 },
-  { 0x8701, 0x0308, 0x3000 },
-  { 0x8701, 0x0306, 0x2000 },
-  { 0x0701, 0x0305, 0x0000 },
-  { 0x0701, 0x0307, 0x0000 },
-  { 0x8701, 0x030a, 0x2000 },
-  { 0x0701, 0x0309, 0x0000 },
-  { 0x0701, 0x030b, 0x0000 },
-  { 0x8701, 0x0314, 0x4000 },
-  { 0x8701, 0x0310, 0x3000 },
-  { 0x8701, 0x030e, 0x2000 },
-  { 0x0701, 0x030d, 0x0000 },
-  { 0x0701, 0x030f, 0x0000 },
-  { 0x8701, 0x0312, 0x2000 },
-  { 0x0701, 0x0311, 0x0000 },
-  { 0x0701, 0x0313, 0x0000 },
-  { 0x8701, 0x0318, 0x3000 },
-  { 0x8701, 0x0316, 0x2000 },
-  { 0x0701, 0x0315, 0x0000 },
-  { 0x0701, 0x0317, 0x0000 },
-  { 0x8701, 0x031a, 0x2000 },
-  { 0x0701, 0x0319, 0x0000 },
-  { 0x0701, 0x031b, 0x0000 },
-  { 0x8701, 0x0339, 0x5000 },
-  { 0x8701, 0x0331, 0x4000 },
-  { 0x8f01, 0x0321, 0x3000 },
-  { 0x8701, 0x031e, 0x2000 },
-  { 0x0701, 0x031d, 0x0000 },
-  { 0x0f01, 0x0320, 0x0000 },
-  { 0x8f01, 0x0323, 0x2000 },
-  { 0x0f01, 0x0322, 0x0000 },
-  { 0x0701, 0x0330, 0x0000 },
-  { 0x8701, 0x0335, 0x3000 },
-  { 0x8701, 0x0333, 0x2000 },
-  { 0x0701, 0x0332, 0x0000 },
-  { 0x0701, 0x0334, 0x0000 },
-  { 0x8701, 0x0337, 0x2000 },
-  { 0x0701, 0x0336, 0x0000 },
-  { 0x0701, 0x0338, 0x0000 },
-  { 0x8701, 0x0341, 0x4000 },
-  { 0x8701, 0x033d, 0x3000 },
-  { 0x8701, 0x033b, 0x2000 },
-  { 0x0701, 0x033a, 0x0000 },
-  { 0x0701, 0x033c, 0x0000 },
-  { 0x8701, 0x033f, 0x2000 },
-  { 0x0701, 0x033e, 0x0000 },
-  { 0x0701, 0x0340, 0x0000 },
-  { 0x8701, 0x0345, 0x3000 },
-  { 0x8701, 0x0343, 0x2000 },
-  { 0x0701, 0x0342, 0x0000 },
-  { 0x0701, 0x0344, 0x0000 },
-  { 0x8701, 0x0347, 0x2000 },
-  { 0x0701, 0x0346, 0x0000 },
-  { 0x0701, 0x0348, 0x0000 },
-  { 0x8901, 0x041f, 0x7028 },
-  { 0x9501, 0x039f, 0x6000 },
-  { 0x8701, 0x038e, 0x5000 },
-  { 0x8701, 0x0386, 0x4000 },
-  { 0x8701, 0x0382, 0x3000 },
-  { 0x8701, 0x0380, 0x2000 },
-  { 0x0e01, 0x034a, 0x0000 },
-  { 0x0701, 0x0381, 0x0000 },
-  { 0x8701, 0x0384, 0x2000 },
-  { 0x0701, 0x0383, 0x0000 },
-  { 0x0701, 0x0385, 0x0000 },
-  { 0x8701, 0x038a, 0x3000 },
-  { 0x8701, 0x0388, 0x2000 },
-  { 0x0701, 0x0387, 0x0000 },
-  { 0x0701, 0x0389, 0x0000 },
-  { 0x8701, 0x038c, 0x2000 },
-  { 0x0701, 0x038b, 0x0000 },
-  { 0x0701, 0x038d, 0x0000 },
-  { 0x8701, 0x0396, 0x4000 },
-  { 0x8701, 0x0392, 0x3000 },
-  { 0x8701, 0x0390, 0x2000 },
-  { 0x0701, 0x038f, 0x0000 },
-  { 0x0701, 0x0391, 0x0000 },
-  { 0x8701, 0x0394, 0x2000 },
-  { 0x0701, 0x0393, 0x0000 },
-  { 0x0701, 0x0395, 0x0000 },
-  { 0x8701, 0x039a, 0x3000 },
-  { 0x8701, 0x0398, 0x2000 },
-  { 0x0701, 0x0397, 0x0000 },
-  { 0x0701, 0x0399, 0x0000 },
-  { 0x8701, 0x039c, 0x2000 },
-  { 0x0701, 0x039b, 0x0000 },
-  { 0x0701, 0x039d, 0x0000 },
-  { 0x8901, 0x040f, 0x5028 },
-  { 0x8901, 0x0407, 0x4028 },
-  { 0x8901, 0x0403, 0x3028 },
-  { 0x8901, 0x0401, 0x2028 },
-  { 0x0901, 0x0400, 0x0028 },
-  { 0x0901, 0x0402, 0x0028 },
-  { 0x8901, 0x0405, 0x2028 },
-  { 0x0901, 0x0404, 0x0028 },
-  { 0x0901, 0x0406, 0x0028 },
-  { 0x8901, 0x040b, 0x3028 },
-  { 0x8901, 0x0409, 0x2028 },
-  { 0x0901, 0x0408, 0x0028 },
-  { 0x0901, 0x040a, 0x0028 },
-  { 0x8901, 0x040d, 0x2028 },
-  { 0x0901, 0x040c, 0x0028 },
-  { 0x0901, 0x040e, 0x0028 },
-  { 0x8901, 0x0417, 0x4028 },
-  { 0x8901, 0x0413, 0x3028 },
-  { 0x8901, 0x0411, 0x2028 },
-  { 0x0901, 0x0410, 0x0028 },
-  { 0x0901, 0x0412, 0x0028 },
-  { 0x8901, 0x0415, 0x2028 },
-  { 0x0901, 0x0414, 0x0028 },
-  { 0x0901, 0x0416, 0x0028 },
-  { 0x8901, 0x041b, 0x3028 },
-  { 0x8901, 0x0419, 0x2028 },
-  { 0x0901, 0x0418, 0x0028 },
-  { 0x0901, 0x041a, 0x0028 },
-  { 0x8901, 0x041d, 0x2028 },
-  { 0x0901, 0x041c, 0x0028 },
-  { 0x0901, 0x041e, 0x0028 },
-  { 0x8501, 0x043f, 0x6fd8 },
-  { 0x8501, 0x042f, 0x5fd8 },
-  { 0x8901, 0x0427, 0x4028 },
-  { 0x8901, 0x0423, 0x3028 },
-  { 0x8901, 0x0421, 0x2028 },
-  { 0x0901, 0x0420, 0x0028 },
-  { 0x0901, 0x0422, 0x0028 },
-  { 0x8901, 0x0425, 0x2028 },
-  { 0x0901, 0x0424, 0x0028 },
-  { 0x0901, 0x0426, 0x0028 },
-  { 0x8501, 0x042b, 0x3fd8 },
-  { 0x8501, 0x0429, 0x2fd8 },
-  { 0x0501, 0x0428, 0x0fd8 },
-  { 0x0501, 0x042a, 0x0fd8 },
-  { 0x8501, 0x042d, 0x2fd8 },
-  { 0x0501, 0x042c, 0x0fd8 },
-  { 0x0501, 0x042e, 0x0fd8 },
-  { 0x8501, 0x0437, 0x4fd8 },
-  { 0x8501, 0x0433, 0x3fd8 },
-  { 0x8501, 0x0431, 0x2fd8 },
-  { 0x0501, 0x0430, 0x0fd8 },
-  { 0x0501, 0x0432, 0x0fd8 },
-  { 0x8501, 0x0435, 0x2fd8 },
-  { 0x0501, 0x0434, 0x0fd8 },
-  { 0x0501, 0x0436, 0x0fd8 },
-  { 0x8501, 0x043b, 0x3fd8 },
-  { 0x8501, 0x0439, 0x2fd8 },
-  { 0x0501, 0x0438, 0x0fd8 },
-  { 0x0501, 0x043a, 0x0fd8 },
-  { 0x8501, 0x043d, 0x2fd8 },
-  { 0x0501, 0x043c, 0x0fd8 },
-  { 0x0501, 0x043e, 0x0fd8 },
-  { 0x8501, 0x044f, 0x5fd8 },
-  { 0x8501, 0x0447, 0x4fd8 },
-  { 0x8501, 0x0443, 0x3fd8 },
-  { 0x8501, 0x0441, 0x2fd8 },
-  { 0x0501, 0x0440, 0x0fd8 },
-  { 0x0501, 0x0442, 0x0fd8 },
-  { 0x8501, 0x0445, 0x2fd8 },
-  { 0x0501, 0x0444, 0x0fd8 },
-  { 0x0501, 0x0446, 0x0fd8 },
-  { 0x8501, 0x044b, 0x3fd8 },
-  { 0x8501, 0x0449, 0x2fd8 },
-  { 0x0501, 0x0448, 0x0fd8 },
-  { 0x0501, 0x044a, 0x0fd8 },
-  { 0x8501, 0x044d, 0x2fd8 },
-  { 0x0501, 0x044c, 0x0fd8 },
-  { 0x0501, 0x044e, 0x0fd8 },
-  { 0x8701, 0x0457, 0x4000 },
-  { 0x8701, 0x0453, 0x3000 },
-  { 0x8701, 0x0451, 0x2000 },
-  { 0x0701, 0x0450, 0x0000 },
-  { 0x0701, 0x0452, 0x0000 },
-  { 0x8701, 0x0455, 0x2000 },
-  { 0x0701, 0x0454, 0x0000 },
-  { 0x0701, 0x0456, 0x0000 },
-  { 0x8701, 0x045b, 0x3000 },
-  { 0x8701, 0x0459, 0x2000 },
-  { 0x0701, 0x0458, 0x0000 },
-  { 0x0701, 0x045a, 0x0000 },
-  { 0x8701, 0x045d, 0x2000 },
-  { 0x0701, 0x045c, 0x0000 },
-  { 0x0701, 0x045e, 0x0000 },
-  { 0x9a01, 0xd000, 0x8000 },
-  { 0x8d01, 0x04a1, 0x7000 },
-  { 0x8701, 0x047f, 0x6000 },
-  { 0x8701, 0x046f, 0x5000 },
-  { 0x8701, 0x0467, 0x4000 },
-  { 0x8701, 0x0463, 0x3000 },
-  { 0x8701, 0x0461, 0x2000 },
-  { 0x0701, 0x0460, 0x0000 },
-  { 0x0701, 0x0462, 0x0000 },
-  { 0x8701, 0x0465, 0x2000 },
-  { 0x0701, 0x0464, 0x0000 },
-  { 0x0701, 0x0466, 0x0000 },
-  { 0x8701, 0x046b, 0x3000 },
-  { 0x8701, 0x0469, 0x2000 },
-  { 0x0701, 0x0468, 0x0000 },
-  { 0x0701, 0x046a, 0x0000 },
-  { 0x8701, 0x046d, 0x2000 },
-  { 0x0701, 0x046c, 0x0000 },
-  { 0x0701, 0x046e, 0x0000 },
-  { 0x8701, 0x0477, 0x4000 },
-  { 0x8701, 0x0473, 0x3000 },
-  { 0x8701, 0x0471, 0x2000 },
-  { 0x0701, 0x0470, 0x0000 },
-  { 0x0701, 0x0472, 0x0000 },
-  { 0x8701, 0x0475, 0x2000 },
-  { 0x0701, 0x0474, 0x0000 },
-  { 0x0701, 0x0476, 0x0000 },
-  { 0x8701, 0x047b, 0x3000 },
-  { 0x8701, 0x0479, 0x2000 },
-  { 0x0701, 0x0478, 0x0000 },
-  { 0x0701, 0x047a, 0x0000 },
-  { 0x8701, 0x047d, 0x2000 },
-  { 0x0701, 0x047c, 0x0000 },
-  { 0x0701, 0x047e, 0x0000 },
-  { 0x8701, 0x048f, 0x5000 },
-  { 0x8701, 0x0487, 0x4000 },
-  { 0x8701, 0x0483, 0x3000 },
-  { 0x8701, 0x0481, 0x2000 },
-  { 0x0701, 0x0480, 0x0000 },
-  { 0x0701, 0x0482, 0x0000 },
-  { 0x8701, 0x0485, 0x2000 },
-  { 0x0701, 0x0484, 0x0000 },
-  { 0x0701, 0x0486, 0x0000 },
-  { 0x8701, 0x048b, 0x3000 },
-  { 0x8701, 0x0489, 0x2000 },
-  { 0x0701, 0x0488, 0x0000 },
-  { 0x0701, 0x048a, 0x0000 },
-  { 0x8701, 0x048d, 0x2000 },
-  { 0x0701, 0x048c, 0x0000 },
-  { 0x0701, 0x048e, 0x0000 },
-  { 0x8701, 0x0497, 0x4000 },
-  { 0x8701, 0x0493, 0x3000 },
-  { 0x8701, 0x0491, 0x2000 },
-  { 0x0701, 0x0490, 0x0000 },
-  { 0x0701, 0x0492, 0x0000 },
-  { 0x8701, 0x0495, 0x2000 },
-  { 0x0701, 0x0494, 0x0000 },
-  { 0x0701, 0x0496, 0x0000 },
-  { 0x8701, 0x049b, 0x3000 },
-  { 0x8701, 0x0499, 0x2000 },
-  { 0x0701, 0x0498, 0x0000 },
-  { 0x0701, 0x049a, 0x0000 },
-  { 0x8701, 0x049d, 0x2000 },
-  { 0x0701, 0x049c, 0x0000 },
-  { 0x0d01, 0x04a0, 0x0000 },
-  { 0x8701, 0x081a, 0x6000 },
-  { 0x8701, 0x080a, 0x5000 },
-  { 0x8d01, 0x04a9, 0x4000 },
-  { 0x8d01, 0x04a5, 0x3000 },
-  { 0x8d01, 0x04a3, 0x2000 },
-  { 0x0d01, 0x04a2, 0x0000 },
-  { 0x0d01, 0x04a4, 0x0000 },
-  { 0x8d01, 0x04a7, 0x2000 },
-  { 0x0d01, 0x04a6, 0x0000 },
-  { 0x0d01, 0x04a8, 0x0000 },
-  { 0x8701, 0x0803, 0x3000 },
-  { 0x8701, 0x0801, 0x2000 },
-  { 0x0701, 0x0800, 0x0000 },
-  { 0x0701, 0x0802, 0x0000 },
-  { 0x8701, 0x0805, 0x2000 },
-  { 0x0701, 0x0804, 0x0000 },
-  { 0x0701, 0x0808, 0x0000 },
-  { 0x8701, 0x0812, 0x4000 },
-  { 0x8701, 0x080e, 0x3000 },
-  { 0x8701, 0x080c, 0x2000 },
-  { 0x0701, 0x080b, 0x0000 },
-  { 0x0701, 0x080d, 0x0000 },
-  { 0x8701, 0x0810, 0x2000 },
-  { 0x0701, 0x080f, 0x0000 },
-  { 0x0701, 0x0811, 0x0000 },
-  { 0x8701, 0x0816, 0x3000 },
-  { 0x8701, 0x0814, 0x2000 },
-  { 0x0701, 0x0813, 0x0000 },
-  { 0x0701, 0x0815, 0x0000 },
-  { 0x8701, 0x0818, 0x2000 },
-  { 0x0701, 0x0817, 0x0000 },
-  { 0x0701, 0x0819, 0x0000 },
-  { 0x8701, 0x082a, 0x5000 },
-  { 0x8701, 0x0822, 0x4000 },
-  { 0x8701, 0x081e, 0x3000 },
-  { 0x8701, 0x081c, 0x2000 },
-  { 0x0701, 0x081b, 0x0000 },
-  { 0x0701, 0x081d, 0x0000 },
-  { 0x8701, 0x0820, 0x2000 },
-  { 0x0701, 0x081f, 0x0000 },
-  { 0x0701, 0x0821, 0x0000 },
-  { 0x8701, 0x0826, 0x3000 },
-  { 0x8701, 0x0824, 0x2000 },
-  { 0x0701, 0x0823, 0x0000 },
-  { 0x0701, 0x0825, 0x0000 },
-  { 0x8701, 0x0828, 0x2000 },
-  { 0x0701, 0x0827, 0x0000 },
-  { 0x0701, 0x0829, 0x0000 },
-  { 0x8701, 0x0832, 0x4000 },
-  { 0x8701, 0x082e, 0x3000 },
-  { 0x8701, 0x082c, 0x2000 },
-  { 0x0701, 0x082b, 0x0000 },
-  { 0x0701, 0x082d, 0x0000 },
-  { 0x8701, 0x0830, 0x2000 },
-  { 0x0701, 0x082f, 0x0000 },
-  { 0x0701, 0x0831, 0x0000 },
-  { 0x8701, 0x0837, 0x3000 },
-  { 0x8701, 0x0834, 0x2000 },
-  { 0x0701, 0x0833, 0x0000 },
-  { 0x0701, 0x0835, 0x0000 },
-  { 0x8701, 0x083c, 0x2000 },
-  { 0x0701, 0x0838, 0x0000 },
-  { 0x0701, 0x083f, 0x0000 },
-  { 0x9a01, 0xd040, 0x7000 },
-  { 0x9a01, 0xd020, 0x6000 },
-  { 0x9a01, 0xd010, 0x5000 },
-  { 0x9a01, 0xd008, 0x4000 },
-  { 0x9a01, 0xd004, 0x3000 },
-  { 0x9a01, 0xd002, 0x2000 },
-  { 0x1a01, 0xd001, 0x0000 },
-  { 0x1a01, 0xd003, 0x0000 },
-  { 0x9a01, 0xd006, 0x2000 },
-  { 0x1a01, 0xd005, 0x0000 },
-  { 0x1a01, 0xd007, 0x0000 },
-  { 0x9a01, 0xd00c, 0x3000 },
-  { 0x9a01, 0xd00a, 0x2000 },
-  { 0x1a01, 0xd009, 0x0000 },
-  { 0x1a01, 0xd00b, 0x0000 },
-  { 0x9a01, 0xd00e, 0x2000 },
-  { 0x1a01, 0xd00d, 0x0000 },
-  { 0x1a01, 0xd00f, 0x0000 },
-  { 0x9a01, 0xd018, 0x4000 },
-  { 0x9a01, 0xd014, 0x3000 },
-  { 0x9a01, 0xd012, 0x2000 },
-  { 0x1a01, 0xd011, 0x0000 },
-  { 0x1a01, 0xd013, 0x0000 },
-  { 0x9a01, 0xd016, 0x2000 },
-  { 0x1a01, 0xd015, 0x0000 },
-  { 0x1a01, 0xd017, 0x0000 },
-  { 0x9a01, 0xd01c, 0x3000 },
-  { 0x9a01, 0xd01a, 0x2000 },
-  { 0x1a01, 0xd019, 0x0000 },
-  { 0x1a01, 0xd01b, 0x0000 },
-  { 0x9a01, 0xd01e, 0x2000 },
-  { 0x1a01, 0xd01d, 0x0000 },
-  { 0x1a01, 0xd01f, 0x0000 },
-  { 0x9a01, 0xd030, 0x5000 },
-  { 0x9a01, 0xd028, 0x4000 },
-  { 0x9a01, 0xd024, 0x3000 },
-  { 0x9a01, 0xd022, 0x2000 },
-  { 0x1a01, 0xd021, 0x0000 },
-  { 0x1a01, 0xd023, 0x0000 },
-  { 0x9a01, 0xd026, 0x2000 },
-  { 0x1a01, 0xd025, 0x0000 },
-  { 0x1a01, 0xd027, 0x0000 },
-  { 0x9a01, 0xd02c, 0x3000 },
-  { 0x9a01, 0xd02a, 0x2000 },
-  { 0x1a01, 0xd029, 0x0000 },
-  { 0x1a01, 0xd02b, 0x0000 },
-  { 0x9a01, 0xd02e, 0x2000 },
-  { 0x1a01, 0xd02d, 0x0000 },
-  { 0x1a01, 0xd02f, 0x0000 },
-  { 0x9a01, 0xd038, 0x4000 },
-  { 0x9a01, 0xd034, 0x3000 },
-  { 0x9a01, 0xd032, 0x2000 },
-  { 0x1a01, 0xd031, 0x0000 },
-  { 0x1a01, 0xd033, 0x0000 },
-  { 0x9a01, 0xd036, 0x2000 },
-  { 0x1a01, 0xd035, 0x0000 },
-  { 0x1a01, 0xd037, 0x0000 },
-  { 0x9a01, 0xd03c, 0x3000 },
-  { 0x9a01, 0xd03a, 0x2000 },
-  { 0x1a01, 0xd039, 0x0000 },
-  { 0x1a01, 0xd03b, 0x0000 },
-  { 0x9a01, 0xd03e, 0x2000 },
-  { 0x1a01, 0xd03d, 0x0000 },
-  { 0x1a01, 0xd03f, 0x0000 },
-  { 0x9a01, 0xd060, 0x6000 },
-  { 0x9a01, 0xd050, 0x5000 },
-  { 0x9a01, 0xd048, 0x4000 },
-  { 0x9a01, 0xd044, 0x3000 },
-  { 0x9a01, 0xd042, 0x2000 },
-  { 0x1a01, 0xd041, 0x0000 },
-  { 0x1a01, 0xd043, 0x0000 },
-  { 0x9a01, 0xd046, 0x2000 },
-  { 0x1a01, 0xd045, 0x0000 },
-  { 0x1a01, 0xd047, 0x0000 },
-  { 0x9a01, 0xd04c, 0x3000 },
-  { 0x9a01, 0xd04a, 0x2000 },
-  { 0x1a01, 0xd049, 0x0000 },
-  { 0x1a01, 0xd04b, 0x0000 },
-  { 0x9a01, 0xd04e, 0x2000 },
-  { 0x1a01, 0xd04d, 0x0000 },
-  { 0x1a01, 0xd04f, 0x0000 },
-  { 0x9a01, 0xd058, 0x4000 },
-  { 0x9a01, 0xd054, 0x3000 },
-  { 0x9a01, 0xd052, 0x2000 },
-  { 0x1a01, 0xd051, 0x0000 },
-  { 0x1a01, 0xd053, 0x0000 },
-  { 0x9a01, 0xd056, 0x2000 },
-  { 0x1a01, 0xd055, 0x0000 },
-  { 0x1a01, 0xd057, 0x0000 },
-  { 0x9a01, 0xd05c, 0x3000 },
-  { 0x9a01, 0xd05a, 0x2000 },
-  { 0x1a01, 0xd059, 0x0000 },
-  { 0x1a01, 0xd05b, 0x0000 },
-  { 0x9a01, 0xd05e, 0x2000 },
-  { 0x1a01, 0xd05d, 0x0000 },
-  { 0x1a01, 0xd05f, 0x0000 },
-  { 0x9a01, 0xd070, 0x5000 },
-  { 0x9a01, 0xd068, 0x4000 },
-  { 0x9a01, 0xd064, 0x3000 },
-  { 0x9a01, 0xd062, 0x2000 },
-  { 0x1a01, 0xd061, 0x0000 },
-  { 0x1a01, 0xd063, 0x0000 },
-  { 0x9a01, 0xd066, 0x2000 },
-  { 0x1a01, 0xd065, 0x0000 },
-  { 0x1a01, 0xd067, 0x0000 },
-  { 0x9a01, 0xd06c, 0x3000 },
-  { 0x9a01, 0xd06a, 0x2000 },
-  { 0x1a01, 0xd069, 0x0000 },
-  { 0x1a01, 0xd06b, 0x0000 },
-  { 0x9a01, 0xd06e, 0x2000 },
-  { 0x1a01, 0xd06d, 0x0000 },
-  { 0x1a01, 0xd06f, 0x0000 },
-  { 0x9a01, 0xd078, 0x4000 },
-  { 0x9a01, 0xd074, 0x3000 },
-  { 0x9a01, 0xd072, 0x2000 },
-  { 0x1a01, 0xd071, 0x0000 },
-  { 0x1a01, 0xd073, 0x0000 },
-  { 0x9a01, 0xd076, 0x2000 },
-  { 0x1a01, 0xd075, 0x0000 },
-  { 0x1a01, 0xd077, 0x0000 },
-  { 0x9a01, 0xd07c, 0x3000 },
-  { 0x9a01, 0xd07a, 0x2000 },
-  { 0x1a01, 0xd079, 0x0000 },
-  { 0x1a01, 0xd07b, 0x0000 },
-  { 0x9a01, 0xd07e, 0x2000 },
-  { 0x1a01, 0xd07d, 0x0000 },
-  { 0x1a01, 0xd07f, 0x0000 },
-  { 0x9a01, 0xd18d, 0x9000 },
-  { 0x9a01, 0xd10a, 0x8000 },
-  { 0x9a01, 0xd0c0, 0x7000 },
-  { 0x9a01, 0xd0a0, 0x6000 },
-  { 0x9a01, 0xd090, 0x5000 },
-  { 0x9a01, 0xd088, 0x4000 },
-  { 0x9a01, 0xd084, 0x3000 },
-  { 0x9a01, 0xd082, 0x2000 },
-  { 0x1a01, 0xd081, 0x0000 },
-  { 0x1a01, 0xd083, 0x0000 },
-  { 0x9a01, 0xd086, 0x2000 },
-  { 0x1a01, 0xd085, 0x0000 },
-  { 0x1a01, 0xd087, 0x0000 },
-  { 0x9a01, 0xd08c, 0x3000 },
-  { 0x9a01, 0xd08a, 0x2000 },
-  { 0x1a01, 0xd089, 0x0000 },
-  { 0x1a01, 0xd08b, 0x0000 },
-  { 0x9a01, 0xd08e, 0x2000 },
-  { 0x1a01, 0xd08d, 0x0000 },
-  { 0x1a01, 0xd08f, 0x0000 },
-  { 0x9a01, 0xd098, 0x4000 },
-  { 0x9a01, 0xd094, 0x3000 },
-  { 0x9a01, 0xd092, 0x2000 },
-  { 0x1a01, 0xd091, 0x0000 },
-  { 0x1a01, 0xd093, 0x0000 },
-  { 0x9a01, 0xd096, 0x2000 },
-  { 0x1a01, 0xd095, 0x0000 },
-  { 0x1a01, 0xd097, 0x0000 },
-  { 0x9a01, 0xd09c, 0x3000 },
-  { 0x9a01, 0xd09a, 0x2000 },
-  { 0x1a01, 0xd099, 0x0000 },
-  { 0x1a01, 0xd09b, 0x0000 },
-  { 0x9a01, 0xd09e, 0x2000 },
-  { 0x1a01, 0xd09d, 0x0000 },
-  { 0x1a01, 0xd09f, 0x0000 },
-  { 0x9a01, 0xd0b0, 0x5000 },
-  { 0x9a01, 0xd0a8, 0x4000 },
-  { 0x9a01, 0xd0a4, 0x3000 },
-  { 0x9a01, 0xd0a2, 0x2000 },
-  { 0x1a01, 0xd0a1, 0x0000 },
-  { 0x1a01, 0xd0a3, 0x0000 },
-  { 0x9a01, 0xd0a6, 0x2000 },
-  { 0x1a01, 0xd0a5, 0x0000 },
-  { 0x1a01, 0xd0a7, 0x0000 },
-  { 0x9a01, 0xd0ac, 0x3000 },
-  { 0x9a01, 0xd0aa, 0x2000 },
-  { 0x1a01, 0xd0a9, 0x0000 },
-  { 0x1a01, 0xd0ab, 0x0000 },
-  { 0x9a01, 0xd0ae, 0x2000 },
-  { 0x1a01, 0xd0ad, 0x0000 },
-  { 0x1a01, 0xd0af, 0x0000 },
-  { 0x9a01, 0xd0b8, 0x4000 },
-  { 0x9a01, 0xd0b4, 0x3000 },
-  { 0x9a01, 0xd0b2, 0x2000 },
-  { 0x1a01, 0xd0b1, 0x0000 },
-  { 0x1a01, 0xd0b3, 0x0000 },
-  { 0x9a01, 0xd0b6, 0x2000 },
-  { 0x1a01, 0xd0b5, 0x0000 },
-  { 0x1a01, 0xd0b7, 0x0000 },
-  { 0x9a01, 0xd0bc, 0x3000 },
-  { 0x9a01, 0xd0ba, 0x2000 },
-  { 0x1a01, 0xd0b9, 0x0000 },
-  { 0x1a01, 0xd0bb, 0x0000 },
-  { 0x9a01, 0xd0be, 0x2000 },
-  { 0x1a01, 0xd0bd, 0x0000 },
-  { 0x1a01, 0xd0bf, 0x0000 },
-  { 0x9a01, 0xd0e0, 0x6000 },
-  { 0x9a01, 0xd0d0, 0x5000 },
-  { 0x9a01, 0xd0c8, 0x4000 },
-  { 0x9a01, 0xd0c4, 0x3000 },
-  { 0x9a01, 0xd0c2, 0x2000 },
-  { 0x1a01, 0xd0c1, 0x0000 },
-  { 0x1a01, 0xd0c3, 0x0000 },
-  { 0x9a01, 0xd0c6, 0x2000 },
-  { 0x1a01, 0xd0c5, 0x0000 },
-  { 0x1a01, 0xd0c7, 0x0000 },
-  { 0x9a01, 0xd0cc, 0x3000 },
-  { 0x9a01, 0xd0ca, 0x2000 },
-  { 0x1a01, 0xd0c9, 0x0000 },
-  { 0x1a01, 0xd0cb, 0x0000 },
-  { 0x9a01, 0xd0ce, 0x2000 },
-  { 0x1a01, 0xd0cd, 0x0000 },
-  { 0x1a01, 0xd0cf, 0x0000 },
-  { 0x9a01, 0xd0d8, 0x4000 },
-  { 0x9a01, 0xd0d4, 0x3000 },
-  { 0x9a01, 0xd0d2, 0x2000 },
-  { 0x1a01, 0xd0d1, 0x0000 },
-  { 0x1a01, 0xd0d3, 0x0000 },
-  { 0x9a01, 0xd0d6, 0x2000 },
-  { 0x1a01, 0xd0d5, 0x0000 },
-  { 0x1a01, 0xd0d7, 0x0000 },
-  { 0x9a01, 0xd0dc, 0x3000 },
-  { 0x9a01, 0xd0da, 0x2000 },
-  { 0x1a01, 0xd0d9, 0x0000 },
-  { 0x1a01, 0xd0db, 0x0000 },
-  { 0x9a01, 0xd0de, 0x2000 },
-  { 0x1a01, 0xd0dd, 0x0000 },
-  { 0x1a01, 0xd0df, 0x0000 },
-  { 0x9a01, 0xd0f0, 0x5000 },
-  { 0x9a01, 0xd0e8, 0x4000 },
-  { 0x9a01, 0xd0e4, 0x3000 },
-  { 0x9a01, 0xd0e2, 0x2000 },
-  { 0x1a01, 0xd0e1, 0x0000 },
-  { 0x1a01, 0xd0e3, 0x0000 },
-  { 0x9a01, 0xd0e6, 0x2000 },
-  { 0x1a01, 0xd0e5, 0x0000 },
-  { 0x1a01, 0xd0e7, 0x0000 },
-  { 0x9a01, 0xd0ec, 0x3000 },
-  { 0x9a01, 0xd0ea, 0x2000 },
-  { 0x1a01, 0xd0e9, 0x0000 },
-  { 0x1a01, 0xd0eb, 0x0000 },
-  { 0x9a01, 0xd0ee, 0x2000 },
-  { 0x1a01, 0xd0ed, 0x0000 },
-  { 0x1a01, 0xd0ef, 0x0000 },
-  { 0x9a01, 0xd102, 0x4000 },
-  { 0x9a01, 0xd0f4, 0x3000 },
-  { 0x9a01, 0xd0f2, 0x2000 },
-  { 0x1a01, 0xd0f1, 0x0000 },
-  { 0x1a01, 0xd0f3, 0x0000 },
-  { 0x9a01, 0xd100, 0x2000 },
-  { 0x1a01, 0xd0f5, 0x0000 },
-  { 0x1a01, 0xd101, 0x0000 },
-  { 0x9a01, 0xd106, 0x3000 },
-  { 0x9a01, 0xd104, 0x2000 },
-  { 0x1a01, 0xd103, 0x0000 },
-  { 0x1a01, 0xd105, 0x0000 },
-  { 0x9a01, 0xd108, 0x2000 },
-  { 0x1a01, 0xd107, 0x0000 },
-  { 0x1a01, 0xd109, 0x0000 },
-  { 0x9a01, 0xd14d, 0x7000 },
-  { 0x9a01, 0xd12d, 0x6000 },
-  { 0x9a01, 0xd11a, 0x5000 },
-  { 0x9a01, 0xd112, 0x4000 },
-  { 0x9a01, 0xd10e, 0x3000 },
-  { 0x9a01, 0xd10c, 0x2000 },
-  { 0x1a01, 0xd10b, 0x0000 },
-  { 0x1a01, 0xd10d, 0x0000 },
-  { 0x9a01, 0xd110, 0x2000 },
-  { 0x1a01, 0xd10f, 0x0000 },
-  { 0x1a01, 0xd111, 0x0000 },
-  { 0x9a01, 0xd116, 0x3000 },
-  { 0x9a01, 0xd114, 0x2000 },
-  { 0x1a01, 0xd113, 0x0000 },
-  { 0x1a01, 0xd115, 0x0000 },
-  { 0x9a01, 0xd118, 0x2000 },
-  { 0x1a01, 0xd117, 0x0000 },
-  { 0x1a01, 0xd119, 0x0000 },
-  { 0x9a01, 0xd122, 0x4000 },
-  { 0x9a01, 0xd11e, 0x3000 },
-  { 0x9a01, 0xd11c, 0x2000 },
-  { 0x1a01, 0xd11b, 0x0000 },
-  { 0x1a01, 0xd11d, 0x0000 },
-  { 0x9a01, 0xd120, 0x2000 },
-  { 0x1a01, 0xd11f, 0x0000 },
-  { 0x1a01, 0xd121, 0x0000 },
-  { 0x9a01, 0xd126, 0x3000 },
-  { 0x9a01, 0xd124, 0x2000 },
-  { 0x1a01, 0xd123, 0x0000 },
-  { 0x1a01, 0xd125, 0x0000 },
-  { 0x9a01, 0xd12b, 0x2000 },
-  { 0x1a01, 0xd12a, 0x0000 },
-  { 0x1a01, 0xd12c, 0x0000 },
-  { 0x9a01, 0xd13d, 0x5000 },
-  { 0x9a01, 0xd135, 0x4000 },
-  { 0x9a01, 0xd131, 0x3000 },
-  { 0x9a01, 0xd12f, 0x2000 },
-  { 0x1a01, 0xd12e, 0x0000 },
-  { 0x1a01, 0xd130, 0x0000 },
-  { 0x9a01, 0xd133, 0x2000 },
-  { 0x1a01, 0xd132, 0x0000 },
-  { 0x1a01, 0xd134, 0x0000 },
-  { 0x9a01, 0xd139, 0x3000 },
-  { 0x9a01, 0xd137, 0x2000 },
-  { 0x1a01, 0xd136, 0x0000 },
-  { 0x1a01, 0xd138, 0x0000 },
-  { 0x9a01, 0xd13b, 0x2000 },
-  { 0x1a01, 0xd13a, 0x0000 },
-  { 0x1a01, 0xd13c, 0x0000 },
-  { 0x9a01, 0xd145, 0x4000 },
-  { 0x9a01, 0xd141, 0x3000 },
-  { 0x9a01, 0xd13f, 0x2000 },
-  { 0x1a01, 0xd13e, 0x0000 },
-  { 0x1a01, 0xd140, 0x0000 },
-  { 0x9a01, 0xd143, 0x2000 },
-  { 0x1a01, 0xd142, 0x0000 },
-  { 0x1a01, 0xd144, 0x0000 },
-  { 0x9a01, 0xd149, 0x3000 },
-  { 0x9a01, 0xd147, 0x2000 },
-  { 0x1a01, 0xd146, 0x0000 },
-  { 0x1a01, 0xd148, 0x0000 },
-  { 0x9a01, 0xd14b, 0x2000 },
-  { 0x1a01, 0xd14a, 0x0000 },
-  { 0x1a01, 0xd14c, 0x0000 },
-  { 0x8a01, 0xd16d, 0x6000 },
-  { 0x9a01, 0xd15d, 0x5000 },
-  { 0x9a01, 0xd155, 0x4000 },
-  { 0x9a01, 0xd151, 0x3000 },
-  { 0x9a01, 0xd14f, 0x2000 },
-  { 0x1a01, 0xd14e, 0x0000 },
-  { 0x1a01, 0xd150, 0x0000 },
-  { 0x9a01, 0xd153, 0x2000 },
-  { 0x1a01, 0xd152, 0x0000 },
-  { 0x1a01, 0xd154, 0x0000 },
-  { 0x9a01, 0xd159, 0x3000 },
-  { 0x9a01, 0xd157, 0x2000 },
-  { 0x1a01, 0xd156, 0x0000 },
-  { 0x1a01, 0xd158, 0x0000 },
-  { 0x9a01, 0xd15b, 0x2000 },
-  { 0x1a01, 0xd15a, 0x0000 },
-  { 0x1a01, 0xd15c, 0x0000 },
-  { 0x8a01, 0xd165, 0x4000 },
-  { 0x9a01, 0xd161, 0x3000 },
-  { 0x9a01, 0xd15f, 0x2000 },
-  { 0x1a01, 0xd15e, 0x0000 },
-  { 0x1a01, 0xd160, 0x0000 },
-  { 0x9a01, 0xd163, 0x2000 },
-  { 0x1a01, 0xd162, 0x0000 },
-  { 0x1a01, 0xd164, 0x0000 },
-  { 0x8c01, 0xd169, 0x3000 },
-  { 0x8c01, 0xd167, 0x2000 },
-  { 0x0a01, 0xd166, 0x0000 },
-  { 0x0c01, 0xd168, 0x0000 },
-  { 0x9a01, 0xd16b, 0x2000 },
-  { 0x1a01, 0xd16a, 0x0000 },
-  { 0x1a01, 0xd16c, 0x0000 },
-  { 0x8c01, 0xd17d, 0x5000 },
-  { 0x8101, 0xd175, 0x4000 },
-  { 0x8a01, 0xd171, 0x3000 },
-  { 0x8a01, 0xd16f, 0x2000 },
-  { 0x0a01, 0xd16e, 0x0000 },
-  { 0x0a01, 0xd170, 0x0000 },
-  { 0x8101, 0xd173, 0x2000 },
-  { 0x0a01, 0xd172, 0x0000 },
-  { 0x0101, 0xd174, 0x0000 },
-  { 0x8101, 0xd179, 0x3000 },
-  { 0x8101, 0xd177, 0x2000 },
-  { 0x0101, 0xd176, 0x0000 },
-  { 0x0101, 0xd178, 0x0000 },
-  { 0x8c01, 0xd17b, 0x2000 },
-  { 0x0101, 0xd17a, 0x0000 },
-  { 0x0c01, 0xd17c, 0x0000 },
-  { 0x8c01, 0xd185, 0x4000 },
-  { 0x8c01, 0xd181, 0x3000 },
-  { 0x8c01, 0xd17f, 0x2000 },
-  { 0x0c01, 0xd17e, 0x0000 },
-  { 0x0c01, 0xd180, 0x0000 },
-  { 0x9a01, 0xd183, 0x2000 },
-  { 0x0c01, 0xd182, 0x0000 },
-  { 0x1a01, 0xd184, 0x0000 },
-  { 0x8c01, 0xd189, 0x3000 },
-  { 0x8c01, 0xd187, 0x2000 },
-  { 0x0c01, 0xd186, 0x0000 },
-  { 0x0c01, 0xd188, 0x0000 },
-  { 0x8c01, 0xd18b, 0x2000 },
-  { 0x0c01, 0xd18a, 0x0000 },
-  { 0x1a01, 0xd18c, 0x0000 },
-  { 0x9a01, 0xd32f, 0x8000 },
-  { 0x9a01, 0xd1cd, 0x7000 },
-  { 0x8c01, 0xd1ad, 0x6000 },
-  { 0x9a01, 0xd19d, 0x5000 },
-  { 0x9a01, 0xd195, 0x4000 },
-  { 0x9a01, 0xd191, 0x3000 },
-  { 0x9a01, 0xd18f, 0x2000 },
-  { 0x1a01, 0xd18e, 0x0000 },
-  { 0x1a01, 0xd190, 0x0000 },
-  { 0x9a01, 0xd193, 0x2000 },
-  { 0x1a01, 0xd192, 0x0000 },
-  { 0x1a01, 0xd194, 0x0000 },
-  { 0x9a01, 0xd199, 0x3000 },
-  { 0x9a01, 0xd197, 0x2000 },
-  { 0x1a01, 0xd196, 0x0000 },
-  { 0x1a01, 0xd198, 0x0000 },
-  { 0x9a01, 0xd19b, 0x2000 },
-  { 0x1a01, 0xd19a, 0x0000 },
-  { 0x1a01, 0xd19c, 0x0000 },
-  { 0x9a01, 0xd1a5, 0x4000 },
-  { 0x9a01, 0xd1a1, 0x3000 },
-  { 0x9a01, 0xd19f, 0x2000 },
-  { 0x1a01, 0xd19e, 0x0000 },
-  { 0x1a01, 0xd1a0, 0x0000 },
-  { 0x9a01, 0xd1a3, 0x2000 },
-  { 0x1a01, 0xd1a2, 0x0000 },
-  { 0x1a01, 0xd1a4, 0x0000 },
-  { 0x9a01, 0xd1a9, 0x3000 },
-  { 0x9a01, 0xd1a7, 0x2000 },
-  { 0x1a01, 0xd1a6, 0x0000 },
-  { 0x1a01, 0xd1a8, 0x0000 },
-  { 0x8c01, 0xd1ab, 0x2000 },
-  { 0x0c01, 0xd1aa, 0x0000 },
-  { 0x0c01, 0xd1ac, 0x0000 },
-  { 0x9a01, 0xd1bd, 0x5000 },
-  { 0x9a01, 0xd1b5, 0x4000 },
-  { 0x9a01, 0xd1b1, 0x3000 },
-  { 0x9a01, 0xd1af, 0x2000 },
-  { 0x1a01, 0xd1ae, 0x0000 },
-  { 0x1a01, 0xd1b0, 0x0000 },
-  { 0x9a01, 0xd1b3, 0x2000 },
-  { 0x1a01, 0xd1b2, 0x0000 },
-  { 0x1a01, 0xd1b4, 0x0000 },
-  { 0x9a01, 0xd1b9, 0x3000 },
-  { 0x9a01, 0xd1b7, 0x2000 },
-  { 0x1a01, 0xd1b6, 0x0000 },
-  { 0x1a01, 0xd1b8, 0x0000 },
-  { 0x9a01, 0xd1bb, 0x2000 },
-  { 0x1a01, 0xd1ba, 0x0000 },
-  { 0x1a01, 0xd1bc, 0x0000 },
-  { 0x9a01, 0xd1c5, 0x4000 },
-  { 0x9a01, 0xd1c1, 0x3000 },
-  { 0x9a01, 0xd1bf, 0x2000 },
-  { 0x1a01, 0xd1be, 0x0000 },
-  { 0x1a01, 0xd1c0, 0x0000 },
-  { 0x9a01, 0xd1c3, 0x2000 },
-  { 0x1a01, 0xd1c2, 0x0000 },
-  { 0x1a01, 0xd1c4, 0x0000 },
-  { 0x9a01, 0xd1c9, 0x3000 },
-  { 0x9a01, 0xd1c7, 0x2000 },
-  { 0x1a01, 0xd1c6, 0x0000 },
-  { 0x1a01, 0xd1c8, 0x0000 },
-  { 0x9a01, 0xd1cb, 0x2000 },
-  { 0x1a01, 0xd1ca, 0x0000 },
-  { 0x1a01, 0xd1cc, 0x0000 },
-  { 0x9a01, 0xd30f, 0x6000 },
-  { 0x9a01, 0xd1dd, 0x5000 },
-  { 0x9a01, 0xd1d5, 0x4000 },
-  { 0x9a01, 0xd1d1, 0x3000 },
-  { 0x9a01, 0xd1cf, 0x2000 },
-  { 0x1a01, 0xd1ce, 0x0000 },
-  { 0x1a01, 0xd1d0, 0x0000 },
-  { 0x9a01, 0xd1d3, 0x2000 },
-  { 0x1a01, 0xd1d2, 0x0000 },
-  { 0x1a01, 0xd1d4, 0x0000 },
-  { 0x9a01, 0xd1d9, 0x3000 },
-  { 0x9a01, 0xd1d7, 0x2000 },
-  { 0x1a01, 0xd1d6, 0x0000 },
-  { 0x1a01, 0xd1d8, 0x0000 },
-  { 0x9a01, 0xd1db, 0x2000 },
-  { 0x1a01, 0xd1da, 0x0000 },
-  { 0x1a01, 0xd1dc, 0x0000 },
-  { 0x9a01, 0xd307, 0x4000 },
-  { 0x9a01, 0xd303, 0x3000 },
-  { 0x9a01, 0xd301, 0x2000 },
-  { 0x1a01, 0xd300, 0x0000 },
-  { 0x1a01, 0xd302, 0x0000 },
-  { 0x9a01, 0xd305, 0x2000 },
-  { 0x1a01, 0xd304, 0x0000 },
-  { 0x1a01, 0xd306, 0x0000 },
-  { 0x9a01, 0xd30b, 0x3000 },
-  { 0x9a01, 0xd309, 0x2000 },
-  { 0x1a01, 0xd308, 0x0000 },
-  { 0x1a01, 0xd30a, 0x0000 },
-  { 0x9a01, 0xd30d, 0x2000 },
-  { 0x1a01, 0xd30c, 0x0000 },
-  { 0x1a01, 0xd30e, 0x0000 },
-  { 0x9a01, 0xd31f, 0x5000 },
-  { 0x9a01, 0xd317, 0x4000 },
-  { 0x9a01, 0xd313, 0x3000 },
-  { 0x9a01, 0xd311, 0x2000 },
-  { 0x1a01, 0xd310, 0x0000 },
-  { 0x1a01, 0xd312, 0x0000 },
-  { 0x9a01, 0xd315, 0x2000 },
-  { 0x1a01, 0xd314, 0x0000 },
-  { 0x1a01, 0xd316, 0x0000 },
-  { 0x9a01, 0xd31b, 0x3000 },
-  { 0x9a01, 0xd319, 0x2000 },
-  { 0x1a01, 0xd318, 0x0000 },
-  { 0x1a01, 0xd31a, 0x0000 },
-  { 0x9a01, 0xd31d, 0x2000 },
-  { 0x1a01, 0xd31c, 0x0000 },
-  { 0x1a01, 0xd31e, 0x0000 },
-  { 0x9a01, 0xd327, 0x4000 },
-  { 0x9a01, 0xd323, 0x3000 },
-  { 0x9a01, 0xd321, 0x2000 },
-  { 0x1a01, 0xd320, 0x0000 },
-  { 0x1a01, 0xd322, 0x0000 },
-  { 0x9a01, 0xd325, 0x2000 },
-  { 0x1a01, 0xd324, 0x0000 },
-  { 0x1a01, 0xd326, 0x0000 },
-  { 0x9a01, 0xd32b, 0x3000 },
-  { 0x9a01, 0xd329, 0x2000 },
-  { 0x1a01, 0xd328, 0x0000 },
-  { 0x1a01, 0xd32a, 0x0000 },
-  { 0x9a01, 0xd32d, 0x2000 },
-  { 0x1a01, 0xd32c, 0x0000 },
-  { 0x1a01, 0xd32e, 0x0000 },
-  { 0x8901, 0xd418, 0x7000 },
-  { 0x9a01, 0xd34f, 0x6000 },
-  { 0x9a01, 0xd33f, 0x5000 },
-  { 0x9a01, 0xd337, 0x4000 },
-  { 0x9a01, 0xd333, 0x3000 },
-  { 0x9a01, 0xd331, 0x2000 },
-  { 0x1a01, 0xd330, 0x0000 },
-  { 0x1a01, 0xd332, 0x0000 },
-  { 0x9a01, 0xd335, 0x2000 },
-  { 0x1a01, 0xd334, 0x0000 },
-  { 0x1a01, 0xd336, 0x0000 },
-  { 0x9a01, 0xd33b, 0x3000 },
-  { 0x9a01, 0xd339, 0x2000 },
-  { 0x1a01, 0xd338, 0x0000 },
-  { 0x1a01, 0xd33a, 0x0000 },
-  { 0x9a01, 0xd33d, 0x2000 },
-  { 0x1a01, 0xd33c, 0x0000 },
-  { 0x1a01, 0xd33e, 0x0000 },
-  { 0x9a01, 0xd347, 0x4000 },
-  { 0x9a01, 0xd343, 0x3000 },
-  { 0x9a01, 0xd341, 0x2000 },
-  { 0x1a01, 0xd340, 0x0000 },
-  { 0x1a01, 0xd342, 0x0000 },
-  { 0x9a01, 0xd345, 0x2000 },
-  { 0x1a01, 0xd344, 0x0000 },
-  { 0x1a01, 0xd346, 0x0000 },
-  { 0x9a01, 0xd34b, 0x3000 },
-  { 0x9a01, 0xd349, 0x2000 },
-  { 0x1a01, 0xd348, 0x0000 },
-  { 0x1a01, 0xd34a, 0x0000 },
-  { 0x9a01, 0xd34d, 0x2000 },
-  { 0x1a01, 0xd34c, 0x0000 },
-  { 0x1a01, 0xd34e, 0x0000 },
-  { 0x8901, 0xd408, 0x5000 },
-  { 0x8901, 0xd400, 0x4000 },
-  { 0x9a01, 0xd353, 0x3000 },
-  { 0x9a01, 0xd351, 0x2000 },
-  { 0x1a01, 0xd350, 0x0000 },
-  { 0x1a01, 0xd352, 0x0000 },
-  { 0x9a01, 0xd355, 0x2000 },
-  { 0x1a01, 0xd354, 0x0000 },
-  { 0x1a01, 0xd356, 0x0000 },
-  { 0x8901, 0xd404, 0x3000 },
-  { 0x8901, 0xd402, 0x2000 },
-  { 0x0901, 0xd401, 0x0000 },
-  { 0x0901, 0xd403, 0x0000 },
-  { 0x8901, 0xd406, 0x2000 },
-  { 0x0901, 0xd405, 0x0000 },
-  { 0x0901, 0xd407, 0x0000 },
-  { 0x8901, 0xd410, 0x4000 },
-  { 0x8901, 0xd40c, 0x3000 },
-  { 0x8901, 0xd40a, 0x2000 },
-  { 0x0901, 0xd409, 0x0000 },
-  { 0x0901, 0xd40b, 0x0000 },
-  { 0x8901, 0xd40e, 0x2000 },
-  { 0x0901, 0xd40d, 0x0000 },
-  { 0x0901, 0xd40f, 0x0000 },
-  { 0x8901, 0xd414, 0x3000 },
-  { 0x8901, 0xd412, 0x2000 },
-  { 0x0901, 0xd411, 0x0000 },
-  { 0x0901, 0xd413, 0x0000 },
-  { 0x8901, 0xd416, 0x2000 },
-  { 0x0901, 0xd415, 0x0000 },
-  { 0x0901, 0xd417, 0x0000 },
-  { 0x8901, 0xd438, 0x6000 },
-  { 0x8501, 0xd428, 0x5000 },
-  { 0x8501, 0xd420, 0x4000 },
-  { 0x8501, 0xd41c, 0x3000 },
-  { 0x8501, 0xd41a, 0x2000 },
-  { 0x0901, 0xd419, 0x0000 },
-  { 0x0501, 0xd41b, 0x0000 },
-  { 0x8501, 0xd41e, 0x2000 },
-  { 0x0501, 0xd41d, 0x0000 },
-  { 0x0501, 0xd41f, 0x0000 },
-  { 0x8501, 0xd424, 0x3000 },
-  { 0x8501, 0xd422, 0x2000 },
-  { 0x0501, 0xd421, 0x0000 },
-  { 0x0501, 0xd423, 0x0000 },
-  { 0x8501, 0xd426, 0x2000 },
-  { 0x0501, 0xd425, 0x0000 },
-  { 0x0501, 0xd427, 0x0000 },
-  { 0x8501, 0xd430, 0x4000 },
-  { 0x8501, 0xd42c, 0x3000 },
-  { 0x8501, 0xd42a, 0x2000 },
-  { 0x0501, 0xd429, 0x0000 },
-  { 0x0501, 0xd42b, 0x0000 },
-  { 0x8501, 0xd42e, 0x2000 },
-  { 0x0501, 0xd42d, 0x0000 },
-  { 0x0501, 0xd42f, 0x0000 },
-  { 0x8901, 0xd434, 0x3000 },
-  { 0x8501, 0xd432, 0x2000 },
-  { 0x0501, 0xd431, 0x0000 },
-  { 0x0501, 0xd433, 0x0000 },
-  { 0x8901, 0xd436, 0x2000 },
-  { 0x0901, 0xd435, 0x0000 },
-  { 0x0901, 0xd437, 0x0000 },
-  { 0x8901, 0xd448, 0x5000 },
-  { 0x8901, 0xd440, 0x4000 },
-  { 0x8901, 0xd43c, 0x3000 },
-  { 0x8901, 0xd43a, 0x2000 },
-  { 0x0901, 0xd439, 0x0000 },
-  { 0x0901, 0xd43b, 0x0000 },
-  { 0x8901, 0xd43e, 0x2000 },
-  { 0x0901, 0xd43d, 0x0000 },
-  { 0x0901, 0xd43f, 0x0000 },
-  { 0x8901, 0xd444, 0x3000 },
-  { 0x8901, 0xd442, 0x2000 },
-  { 0x0901, 0xd441, 0x0000 },
-  { 0x0901, 0xd443, 0x0000 },
-  { 0x8901, 0xd446, 0x2000 },
-  { 0x0901, 0xd445, 0x0000 },
-  { 0x0901, 0xd447, 0x0000 },
-  { 0x8501, 0xd450, 0x4000 },
-  { 0x8901, 0xd44c, 0x3000 },
-  { 0x8901, 0xd44a, 0x2000 },
-  { 0x0901, 0xd449, 0x0000 },
-  { 0x0901, 0xd44b, 0x0000 },
-  { 0x8501, 0xd44e, 0x2000 },
-  { 0x0901, 0xd44d, 0x0000 },
-  { 0x0501, 0xd44f, 0x0000 },
-  { 0x8501, 0xd454, 0x3000 },
-  { 0x8501, 0xd452, 0x2000 },
-  { 0x0501, 0xd451, 0x0000 },
-  { 0x0501, 0xd453, 0x0000 },
-  { 0x8501, 0xd457, 0x2000 },
-  { 0x0501, 0xd456, 0x0000 },
-  { 0x0501, 0xd458, 0x0000 },
-  { 0x8702, 0xf876, 0xb000 },
-  { 0x8901, 0xd670, 0xa000 },
-  { 0x8901, 0xd570, 0x9000 },
-  { 0x8901, 0xd4e4, 0x8000 },
-  { 0x8501, 0xd499, 0x7000 },
-  { 0x8901, 0xd479, 0x6000 },
-  { 0x8901, 0xd469, 0x5000 },
-  { 0x8501, 0xd461, 0x4000 },
-  { 0x8501, 0xd45d, 0x3000 },
-  { 0x8501, 0xd45b, 0x2000 },
-  { 0x0501, 0xd45a, 0x0000 },
-  { 0x0501, 0xd45c, 0x0000 },
-  { 0x8501, 0xd45f, 0x2000 },
-  { 0x0501, 0xd45e, 0x0000 },
-  { 0x0501, 0xd460, 0x0000 },
-  { 0x8501, 0xd465, 0x3000 },
-  { 0x8501, 0xd463, 0x2000 },
-  { 0x0501, 0xd462, 0x0000 },
-  { 0x0501, 0xd464, 0x0000 },
-  { 0x8501, 0xd467, 0x2000 },
-  { 0x0501, 0xd466, 0x0000 },
-  { 0x0901, 0xd468, 0x0000 },
-  { 0x8901, 0xd471, 0x4000 },
-  { 0x8901, 0xd46d, 0x3000 },
-  { 0x8901, 0xd46b, 0x2000 },
-  { 0x0901, 0xd46a, 0x0000 },
-  { 0x0901, 0xd46c, 0x0000 },
-  { 0x8901, 0xd46f, 0x2000 },
-  { 0x0901, 0xd46e, 0x0000 },
-  { 0x0901, 0xd470, 0x0000 },
-  { 0x8901, 0xd475, 0x3000 },
-  { 0x8901, 0xd473, 0x2000 },
-  { 0x0901, 0xd472, 0x0000 },
-  { 0x0901, 0xd474, 0x0000 },
-  { 0x8901, 0xd477, 0x2000 },
-  { 0x0901, 0xd476, 0x0000 },
-  { 0x0901, 0xd478, 0x0000 },
-  { 0x8501, 0xd489, 0x5000 },
-  { 0x8901, 0xd481, 0x4000 },
-  { 0x8901, 0xd47d, 0x3000 },
-  { 0x8901, 0xd47b, 0x2000 },
-  { 0x0901, 0xd47a, 0x0000 },
-  { 0x0901, 0xd47c, 0x0000 },
-  { 0x8901, 0xd47f, 0x2000 },
-  { 0x0901, 0xd47e, 0x0000 },
-  { 0x0901, 0xd480, 0x0000 },
-  { 0x8501, 0xd485, 0x3000 },
-  { 0x8501, 0xd483, 0x2000 },
-  { 0x0501, 0xd482, 0x0000 },
-  { 0x0501, 0xd484, 0x0000 },
-  { 0x8501, 0xd487, 0x2000 },
-  { 0x0501, 0xd486, 0x0000 },
-  { 0x0501, 0xd488, 0x0000 },
-  { 0x8501, 0xd491, 0x4000 },
-  { 0x8501, 0xd48d, 0x3000 },
-  { 0x8501, 0xd48b, 0x2000 },
-  { 0x0501, 0xd48a, 0x0000 },
-  { 0x0501, 0xd48c, 0x0000 },
-  { 0x8501, 0xd48f, 0x2000 },
-  { 0x0501, 0xd48e, 0x0000 },
-  { 0x0501, 0xd490, 0x0000 },
-  { 0x8501, 0xd495, 0x3000 },
-  { 0x8501, 0xd493, 0x2000 },
-  { 0x0501, 0xd492, 0x0000 },
-  { 0x0501, 0xd494, 0x0000 },
-  { 0x8501, 0xd497, 0x2000 },
-  { 0x0501, 0xd496, 0x0000 },
-  { 0x0501, 0xd498, 0x0000 },
-  { 0x8501, 0xd4c3, 0x6000 },
-  { 0x8901, 0xd4b1, 0x5000 },
-  { 0x8901, 0xd4a6, 0x4000 },
-  { 0x8901, 0xd49e, 0x3000 },
-  { 0x8501, 0xd49b, 0x2000 },
-  { 0x0501, 0xd49a, 0x0000 },
-  { 0x0901, 0xd49c, 0x0000 },
-  { 0x8901, 0xd4a2, 0x2000 },
-  { 0x0901, 0xd49f, 0x0000 },
-  { 0x0901, 0xd4a5, 0x0000 },
-  { 0x8901, 0xd4ac, 0x3000 },
-  { 0x8901, 0xd4aa, 0x2000 },
-  { 0x0901, 0xd4a9, 0x0000 },
-  { 0x0901, 0xd4ab, 0x0000 },
-  { 0x8901, 0xd4af, 0x2000 },
-  { 0x0901, 0xd4ae, 0x0000 },
-  { 0x0901, 0xd4b0, 0x0000 },
-  { 0x8501, 0xd4b9, 0x4000 },
-  { 0x8901, 0xd4b5, 0x3000 },
-  { 0x8901, 0xd4b3, 0x2000 },
-  { 0x0901, 0xd4b2, 0x0000 },
-  { 0x0901, 0xd4b4, 0x0000 },
-  { 0x8501, 0xd4b7, 0x2000 },
-  { 0x0501, 0xd4b6, 0x0000 },
-  { 0x0501, 0xd4b8, 0x0000 },
-  { 0x8501, 0xd4bf, 0x3000 },
-  { 0x8501, 0xd4bd, 0x2000 },
-  { 0x0501, 0xd4bb, 0x0000 },
-  { 0x0501, 0xd4be, 0x0000 },
-  { 0x8501, 0xd4c1, 0x2000 },
-  { 0x0501, 0xd4c0, 0x0000 },
-  { 0x0501, 0xd4c2, 0x0000 },
-  { 0x8901, 0xd4d4, 0x5000 },
-  { 0x8501, 0xd4cc, 0x4000 },
-  { 0x8501, 0xd4c8, 0x3000 },
-  { 0x8501, 0xd4c6, 0x2000 },
-  { 0x0501, 0xd4c5, 0x0000 },
-  { 0x0501, 0xd4c7, 0x0000 },
-  { 0x8501, 0xd4ca, 0x2000 },
-  { 0x0501, 0xd4c9, 0x0000 },
-  { 0x0501, 0xd4cb, 0x0000 },
-  { 0x8901, 0xd4d0, 0x3000 },
-  { 0x8501, 0xd4ce, 0x2000 },
-  { 0x0501, 0xd4cd, 0x0000 },
-  { 0x0501, 0xd4cf, 0x0000 },
-  { 0x8901, 0xd4d2, 0x2000 },
-  { 0x0901, 0xd4d1, 0x0000 },
-  { 0x0901, 0xd4d3, 0x0000 },
-  { 0x8901, 0xd4dc, 0x4000 },
-  { 0x8901, 0xd4d8, 0x3000 },
-  { 0x8901, 0xd4d6, 0x2000 },
-  { 0x0901, 0xd4d5, 0x0000 },
-  { 0x0901, 0xd4d7, 0x0000 },
-  { 0x8901, 0xd4da, 0x2000 },
-  { 0x0901, 0xd4d9, 0x0000 },
-  { 0x0901, 0xd4db, 0x0000 },
-  { 0x8901, 0xd4e0, 0x3000 },
-  { 0x8901, 0xd4de, 0x2000 },
-  { 0x0901, 0xd4dd, 0x0000 },
-  { 0x0901, 0xd4df, 0x0000 },
-  { 0x8901, 0xd4e2, 0x2000 },
-  { 0x0901, 0xd4e1, 0x0000 },
-  { 0x0901, 0xd4e3, 0x0000 },
-  { 0x8501, 0xd529, 0x7000 },
-  { 0x8901, 0xd504, 0x6000 },
-  { 0x8501, 0xd4f4, 0x5000 },
-  { 0x8501, 0xd4ec, 0x4000 },
-  { 0x8901, 0xd4e8, 0x3000 },
-  { 0x8901, 0xd4e6, 0x2000 },
-  { 0x0901, 0xd4e5, 0x0000 },
-  { 0x0901, 0xd4e7, 0x0000 },
-  { 0x8501, 0xd4ea, 0x2000 },
-  { 0x0901, 0xd4e9, 0x0000 },
-  { 0x0501, 0xd4eb, 0x0000 },
-  { 0x8501, 0xd4f0, 0x3000 },
-  { 0x8501, 0xd4ee, 0x2000 },
-  { 0x0501, 0xd4ed, 0x0000 },
-  { 0x0501, 0xd4ef, 0x0000 },
-  { 0x8501, 0xd4f2, 0x2000 },
-  { 0x0501, 0xd4f1, 0x0000 },
-  { 0x0501, 0xd4f3, 0x0000 },
-  { 0x8501, 0xd4fc, 0x4000 },
-  { 0x8501, 0xd4f8, 0x3000 },
-  { 0x8501, 0xd4f6, 0x2000 },
-  { 0x0501, 0xd4f5, 0x0000 },
-  { 0x0501, 0xd4f7, 0x0000 },
-  { 0x8501, 0xd4fa, 0x2000 },
-  { 0x0501, 0xd4f9, 0x0000 },
-  { 0x0501, 0xd4fb, 0x0000 },
-  { 0x8501, 0xd500, 0x3000 },
-  { 0x8501, 0xd4fe, 0x2000 },
-  { 0x0501, 0xd4fd, 0x0000 },
-  { 0x0501, 0xd4ff, 0x0000 },
-  { 0x8501, 0xd502, 0x2000 },
-  { 0x0501, 0xd501, 0x0000 },
-  { 0x0501, 0xd503, 0x0000 },
-  { 0x8901, 0xd518, 0x5000 },
-  { 0x8901, 0xd50f, 0x4000 },
-  { 0x8901, 0xd509, 0x3000 },
-  { 0x8901, 0xd507, 0x2000 },
-  { 0x0901, 0xd505, 0x0000 },
-  { 0x0901, 0xd508, 0x0000 },
-  { 0x8901, 0xd50d, 0x2000 },
-  { 0x0901, 0xd50a, 0x0000 },
-  { 0x0901, 0xd50e, 0x0000 },
-  { 0x8901, 0xd513, 0x3000 },
-  { 0x8901, 0xd511, 0x2000 },
-  { 0x0901, 0xd510, 0x0000 },
-  { 0x0901, 0xd512, 0x0000 },
-  { 0x8901, 0xd516, 0x2000 },
-  { 0x0901, 0xd514, 0x0000 },
-  { 0x0901, 0xd517, 0x0000 },
-  { 0x8501, 0xd521, 0x4000 },
-  { 0x8901, 0xd51c, 0x3000 },
-  { 0x8901, 0xd51a, 0x2000 },
-  { 0x0901, 0xd519, 0x0000 },
-  { 0x0901, 0xd51b, 0x0000 },
-  { 0x8501, 0xd51f, 0x2000 },
-  { 0x0501, 0xd51e, 0x0000 },
-  { 0x0501, 0xd520, 0x0000 },
-  { 0x8501, 0xd525, 0x3000 },
-  { 0x8501, 0xd523, 0x2000 },
-  { 0x0501, 0xd522, 0x0000 },
-  { 0x0501, 0xd524, 0x0000 },
-  { 0x8501, 0xd527, 0x2000 },
-  { 0x0501, 0xd526, 0x0000 },
-  { 0x0501, 0xd528, 0x0000 },
-  { 0x8901, 0xd54f, 0x6000 },
-  { 0x8901, 0xd539, 0x5000 },
-  { 0x8501, 0xd531, 0x4000 },
-  { 0x8501, 0xd52d, 0x3000 },
-  { 0x8501, 0xd52b, 0x2000 },
-  { 0x0501, 0xd52a, 0x0000 },
-  { 0x0501, 0xd52c, 0x0000 },
-  { 0x8501, 0xd52f, 0x2000 },
-  { 0x0501, 0xd52e, 0x0000 },
-  { 0x0501, 0xd530, 0x0000 },
-  { 0x8501, 0xd535, 0x3000 },
-  { 0x8501, 0xd533, 0x2000 },
-  { 0x0501, 0xd532, 0x0000 },
-  { 0x0501, 0xd534, 0x0000 },
-  { 0x8501, 0xd537, 0x2000 },
-  { 0x0501, 0xd536, 0x0000 },
-  { 0x0901, 0xd538, 0x0000 },
-  { 0x8901, 0xd543, 0x4000 },
-  { 0x8901, 0xd53e, 0x3000 },
-  { 0x8901, 0xd53c, 0x2000 },
-  { 0x0901, 0xd53b, 0x0000 },
-  { 0x0901, 0xd53d, 0x0000 },
-  { 0x8901, 0xd541, 0x2000 },
-  { 0x0901, 0xd540, 0x0000 },
-  { 0x0901, 0xd542, 0x0000 },
-  { 0x8901, 0xd54b, 0x3000 },
-  { 0x8901, 0xd546, 0x2000 },
-  { 0x0901, 0xd544, 0x0000 },
-  { 0x0901, 0xd54a, 0x0000 },
-  { 0x8901, 0xd54d, 0x2000 },
-  { 0x0901, 0xd54c, 0x0000 },
-  { 0x0901, 0xd54e, 0x0000 },
-  { 0x8501, 0xd560, 0x5000 },
-  { 0x8501, 0xd558, 0x4000 },
-  { 0x8501, 0xd554, 0x3000 },
-  { 0x8501, 0xd552, 0x2000 },
-  { 0x0901, 0xd550, 0x0000 },
-  { 0x0501, 0xd553, 0x0000 },
-  { 0x8501, 0xd556, 0x2000 },
-  { 0x0501, 0xd555, 0x0000 },
-  { 0x0501, 0xd557, 0x0000 },
-  { 0x8501, 0xd55c, 0x3000 },
-  { 0x8501, 0xd55a, 0x2000 },
-  { 0x0501, 0xd559, 0x0000 },
-  { 0x0501, 0xd55b, 0x0000 },
-  { 0x8501, 0xd55e, 0x2000 },
-  { 0x0501, 0xd55d, 0x0000 },
-  { 0x0501, 0xd55f, 0x0000 },
-  { 0x8501, 0xd568, 0x4000 },
-  { 0x8501, 0xd564, 0x3000 },
-  { 0x8501, 0xd562, 0x2000 },
-  { 0x0501, 0xd561, 0x0000 },
-  { 0x0501, 0xd563, 0x0000 },
-  { 0x8501, 0xd566, 0x2000 },
-  { 0x0501, 0xd565, 0x0000 },
-  { 0x0501, 0xd567, 0x0000 },
-  { 0x8901, 0xd56c, 0x3000 },
-  { 0x8501, 0xd56a, 0x2000 },
-  { 0x0501, 0xd569, 0x0000 },
-  { 0x0501, 0xd56b, 0x0000 },
-  { 0x8901, 0xd56e, 0x2000 },
-  { 0x0901, 0xd56d, 0x0000 },
-  { 0x0901, 0xd56f, 0x0000 },
-  { 0x8501, 0xd5f0, 0x8000 },
-  { 0x8901, 0xd5b0, 0x7000 },
-  { 0x8501, 0xd590, 0x6000 },
-  { 0x8901, 0xd580, 0x5000 },
-  { 0x8901, 0xd578, 0x4000 },
-  { 0x8901, 0xd574, 0x3000 },
-  { 0x8901, 0xd572, 0x2000 },
-  { 0x0901, 0xd571, 0x0000 },
-  { 0x0901, 0xd573, 0x0000 },
-  { 0x8901, 0xd576, 0x2000 },
-  { 0x0901, 0xd575, 0x0000 },
-  { 0x0901, 0xd577, 0x0000 },
-  { 0x8901, 0xd57c, 0x3000 },
-  { 0x8901, 0xd57a, 0x2000 },
-  { 0x0901, 0xd579, 0x0000 },
-  { 0x0901, 0xd57b, 0x0000 },
-  { 0x8901, 0xd57e, 0x2000 },
-  { 0x0901, 0xd57d, 0x0000 },
-  { 0x0901, 0xd57f, 0x0000 },
-  { 0x8501, 0xd588, 0x4000 },
-  { 0x8901, 0xd584, 0x3000 },
-  { 0x8901, 0xd582, 0x2000 },
-  { 0x0901, 0xd581, 0x0000 },
-  { 0x0901, 0xd583, 0x0000 },
-  { 0x8501, 0xd586, 0x2000 },
-  { 0x0901, 0xd585, 0x0000 },
-  { 0x0501, 0xd587, 0x0000 },
-  { 0x8501, 0xd58c, 0x3000 },
-  { 0x8501, 0xd58a, 0x2000 },
-  { 0x0501, 0xd589, 0x0000 },
-  { 0x0501, 0xd58b, 0x0000 },
-  { 0x8501, 0xd58e, 0x2000 },
-  { 0x0501, 0xd58d, 0x0000 },
-  { 0x0501, 0xd58f, 0x0000 },
-  { 0x8901, 0xd5a0, 0x5000 },
-  { 0x8501, 0xd598, 0x4000 },
-  { 0x8501, 0xd594, 0x3000 },
-  { 0x8501, 0xd592, 0x2000 },
-  { 0x0501, 0xd591, 0x0000 },
-  { 0x0501, 0xd593, 0x0000 },
-  { 0x8501, 0xd596, 0x2000 },
-  { 0x0501, 0xd595, 0x0000 },
-  { 0x0501, 0xd597, 0x0000 },
-  { 0x8501, 0xd59c, 0x3000 },
-  { 0x8501, 0xd59a, 0x2000 },
-  { 0x0501, 0xd599, 0x0000 },
-  { 0x0501, 0xd59b, 0x0000 },
-  { 0x8501, 0xd59e, 0x2000 },
-  { 0x0501, 0xd59d, 0x0000 },
-  { 0x0501, 0xd59f, 0x0000 },
-  { 0x8901, 0xd5a8, 0x4000 },
-  { 0x8901, 0xd5a4, 0x3000 },
-  { 0x8901, 0xd5a2, 0x2000 },
-  { 0x0901, 0xd5a1, 0x0000 },
-  { 0x0901, 0xd5a3, 0x0000 },
-  { 0x8901, 0xd5a6, 0x2000 },
-  { 0x0901, 0xd5a5, 0x0000 },
-  { 0x0901, 0xd5a7, 0x0000 },
-  { 0x8901, 0xd5ac, 0x3000 },
-  { 0x8901, 0xd5aa, 0x2000 },
-  { 0x0901, 0xd5a9, 0x0000 },
-  { 0x0901, 0xd5ab, 0x0000 },
-  { 0x8901, 0xd5ae, 0x2000 },
-  { 0x0901, 0xd5ad, 0x0000 },
-  { 0x0901, 0xd5af, 0x0000 },
-  { 0x8501, 0xd5d0, 0x6000 },
-  { 0x8501, 0xd5c0, 0x5000 },
-  { 0x8901, 0xd5b8, 0x4000 },
-  { 0x8901, 0xd5b4, 0x3000 },
-  { 0x8901, 0xd5b2, 0x2000 },
-  { 0x0901, 0xd5b1, 0x0000 },
-  { 0x0901, 0xd5b3, 0x0000 },
-  { 0x8901, 0xd5b6, 0x2000 },
-  { 0x0901, 0xd5b5, 0x0000 },
-  { 0x0901, 0xd5b7, 0x0000 },
-  { 0x8501, 0xd5bc, 0x3000 },
-  { 0x8501, 0xd5ba, 0x2000 },
-  { 0x0901, 0xd5b9, 0x0000 },
-  { 0x0501, 0xd5bb, 0x0000 },
-  { 0x8501, 0xd5be, 0x2000 },
-  { 0x0501, 0xd5bd, 0x0000 },
-  { 0x0501, 0xd5bf, 0x0000 },
-  { 0x8501, 0xd5c8, 0x4000 },
-  { 0x8501, 0xd5c4, 0x3000 },
-  { 0x8501, 0xd5c2, 0x2000 },
-  { 0x0501, 0xd5c1, 0x0000 },
-  { 0x0501, 0xd5c3, 0x0000 },
-  { 0x8501, 0xd5c6, 0x2000 },
-  { 0x0501, 0xd5c5, 0x0000 },
-  { 0x0501, 0xd5c7, 0x0000 },
-  { 0x8501, 0xd5cc, 0x3000 },
-  { 0x8501, 0xd5ca, 0x2000 },
-  { 0x0501, 0xd5c9, 0x0000 },
-  { 0x0501, 0xd5cb, 0x0000 },
-  { 0x8501, 0xd5ce, 0x2000 },
-  { 0x0501, 0xd5cd, 0x0000 },
-  { 0x0501, 0xd5cf, 0x0000 },
-  { 0x8901, 0xd5e0, 0x5000 },
-  { 0x8901, 0xd5d8, 0x4000 },
-  { 0x8901, 0xd5d4, 0x3000 },
-  { 0x8501, 0xd5d2, 0x2000 },
-  { 0x0501, 0xd5d1, 0x0000 },
-  { 0x0501, 0xd5d3, 0x0000 },
-  { 0x8901, 0xd5d6, 0x2000 },
-  { 0x0901, 0xd5d5, 0x0000 },
-  { 0x0901, 0xd5d7, 0x0000 },
-  { 0x8901, 0xd5dc, 0x3000 },
-  { 0x8901, 0xd5da, 0x2000 },
-  { 0x0901, 0xd5d9, 0x0000 },
-  { 0x0901, 0xd5db, 0x0000 },
-  { 0x8901, 0xd5de, 0x2000 },
-  { 0x0901, 0xd5dd, 0x0000 },
-  { 0x0901, 0xd5df, 0x0000 },
-  { 0x8901, 0xd5e8, 0x4000 },
-  { 0x8901, 0xd5e4, 0x3000 },
-  { 0x8901, 0xd5e2, 0x2000 },
-  { 0x0901, 0xd5e1, 0x0000 },
-  { 0x0901, 0xd5e3, 0x0000 },
-  { 0x8901, 0xd5e6, 0x2000 },
-  { 0x0901, 0xd5e5, 0x0000 },
-  { 0x0901, 0xd5e7, 0x0000 },
-  { 0x8901, 0xd5ec, 0x3000 },
-  { 0x8901, 0xd5ea, 0x2000 },
-  { 0x0901, 0xd5e9, 0x0000 },
-  { 0x0901, 0xd5eb, 0x0000 },
-  { 0x8501, 0xd5ee, 0x2000 },
-  { 0x0901, 0xd5ed, 0x0000 },
-  { 0x0501, 0xd5ef, 0x0000 },
-  { 0x8501, 0xd630, 0x7000 },
-  { 0x8901, 0xd610, 0x6000 },
-  { 0x8501, 0xd600, 0x5000 },
-  { 0x8501, 0xd5f8, 0x4000 },
-  { 0x8501, 0xd5f4, 0x3000 },
-  { 0x8501, 0xd5f2, 0x2000 },
-  { 0x0501, 0xd5f1, 0x0000 },
-  { 0x0501, 0xd5f3, 0x0000 },
-  { 0x8501, 0xd5f6, 0x2000 },
-  { 0x0501, 0xd5f5, 0x0000 },
-  { 0x0501, 0xd5f7, 0x0000 },
-  { 0x8501, 0xd5fc, 0x3000 },
-  { 0x8501, 0xd5fa, 0x2000 },
-  { 0x0501, 0xd5f9, 0x0000 },
-  { 0x0501, 0xd5fb, 0x0000 },
-  { 0x8501, 0xd5fe, 0x2000 },
-  { 0x0501, 0xd5fd, 0x0000 },
-  { 0x0501, 0xd5ff, 0x0000 },
-  { 0x8901, 0xd608, 0x4000 },
-  { 0x8501, 0xd604, 0x3000 },
-  { 0x8501, 0xd602, 0x2000 },
-  { 0x0501, 0xd601, 0x0000 },
-  { 0x0501, 0xd603, 0x0000 },
-  { 0x8501, 0xd606, 0x2000 },
-  { 0x0501, 0xd605, 0x0000 },
-  { 0x0501, 0xd607, 0x0000 },
-  { 0x8901, 0xd60c, 0x3000 },
-  { 0x8901, 0xd60a, 0x2000 },
-  { 0x0901, 0xd609, 0x0000 },
-  { 0x0901, 0xd60b, 0x0000 },
-  { 0x8901, 0xd60e, 0x2000 },
-  { 0x0901, 0xd60d, 0x0000 },
-  { 0x0901, 0xd60f, 0x0000 },
-  { 0x8901, 0xd620, 0x5000 },
-  { 0x8901, 0xd618, 0x4000 },
-  { 0x8901, 0xd614, 0x3000 },
-  { 0x8901, 0xd612, 0x2000 },
-  { 0x0901, 0xd611, 0x0000 },
-  { 0x0901, 0xd613, 0x0000 },
-  { 0x8901, 0xd616, 0x2000 },
-  { 0x0901, 0xd615, 0x0000 },
-  { 0x0901, 0xd617, 0x0000 },
-  { 0x8901, 0xd61c, 0x3000 },
-  { 0x8901, 0xd61a, 0x2000 },
-  { 0x0901, 0xd619, 0x0000 },
-  { 0x0901, 0xd61b, 0x0000 },
-  { 0x8901, 0xd61e, 0x2000 },
-  { 0x0901, 0xd61d, 0x0000 },
-  { 0x0901, 0xd61f, 0x0000 },
-  { 0x8501, 0xd628, 0x4000 },
-  { 0x8501, 0xd624, 0x3000 },
-  { 0x8501, 0xd622, 0x2000 },
-  { 0x0901, 0xd621, 0x0000 },
-  { 0x0501, 0xd623, 0x0000 },
-  { 0x8501, 0xd626, 0x2000 },
-  { 0x0501, 0xd625, 0x0000 },
-  { 0x0501, 0xd627, 0x0000 },
-  { 0x8501, 0xd62c, 0x3000 },
-  { 0x8501, 0xd62a, 0x2000 },
-  { 0x0501, 0xd629, 0x0000 },
-  { 0x0501, 0xd62b, 0x0000 },
-  { 0x8501, 0xd62e, 0x2000 },
-  { 0x0501, 0xd62d, 0x0000 },
-  { 0x0501, 0xd62f, 0x0000 },
-  { 0x8901, 0xd650, 0x6000 },
-  { 0x8901, 0xd640, 0x5000 },
-  { 0x8501, 0xd638, 0x4000 },
-  { 0x8501, 0xd634, 0x3000 },
-  { 0x8501, 0xd632, 0x2000 },
-  { 0x0501, 0xd631, 0x0000 },
-  { 0x0501, 0xd633, 0x0000 },
-  { 0x8501, 0xd636, 0x2000 },
-  { 0x0501, 0xd635, 0x0000 },
-  { 0x0501, 0xd637, 0x0000 },
-  { 0x8901, 0xd63c, 0x3000 },
-  { 0x8501, 0xd63a, 0x2000 },
-  { 0x0501, 0xd639, 0x0000 },
-  { 0x0501, 0xd63b, 0x0000 },
-  { 0x8901, 0xd63e, 0x2000 },
-  { 0x0901, 0xd63d, 0x0000 },
-  { 0x0901, 0xd63f, 0x0000 },
-  { 0x8901, 0xd648, 0x4000 },
-  { 0x8901, 0xd644, 0x3000 },
-  { 0x8901, 0xd642, 0x2000 },
-  { 0x0901, 0xd641, 0x0000 },
-  { 0x0901, 0xd643, 0x0000 },
-  { 0x8901, 0xd646, 0x2000 },
-  { 0x0901, 0xd645, 0x0000 },
-  { 0x0901, 0xd647, 0x0000 },
-  { 0x8901, 0xd64c, 0x3000 },
-  { 0x8901, 0xd64a, 0x2000 },
-  { 0x0901, 0xd649, 0x0000 },
-  { 0x0901, 0xd64b, 0x0000 },
-  { 0x8901, 0xd64e, 0x2000 },
-  { 0x0901, 0xd64d, 0x0000 },
-  { 0x0901, 0xd64f, 0x0000 },
-  { 0x8501, 0xd660, 0x5000 },
-  { 0x8501, 0xd658, 0x4000 },
-  { 0x8901, 0xd654, 0x3000 },
-  { 0x8901, 0xd652, 0x2000 },
-  { 0x0901, 0xd651, 0x0000 },
-  { 0x0901, 0xd653, 0x0000 },
-  { 0x8501, 0xd656, 0x2000 },
-  { 0x0901, 0xd655, 0x0000 },
-  { 0x0501, 0xd657, 0x0000 },
-  { 0x8501, 0xd65c, 0x3000 },
-  { 0x8501, 0xd65a, 0x2000 },
-  { 0x0501, 0xd659, 0x0000 },
-  { 0x0501, 0xd65b, 0x0000 },
-  { 0x8501, 0xd65e, 0x2000 },
-  { 0x0501, 0xd65d, 0x0000 },
-  { 0x0501, 0xd65f, 0x0000 },
-  { 0x8501, 0xd668, 0x4000 },
-  { 0x8501, 0xd664, 0x3000 },
-  { 0x8501, 0xd662, 0x2000 },
-  { 0x0501, 0xd661, 0x0000 },
-  { 0x0501, 0xd663, 0x0000 },
-  { 0x8501, 0xd666, 0x2000 },
-  { 0x0501, 0xd665, 0x0000 },
-  { 0x0501, 0xd667, 0x0000 },
-  { 0x8501, 0xd66c, 0x3000 },
-  { 0x8501, 0xd66a, 0x2000 },
-  { 0x0501, 0xd669, 0x0000 },
-  { 0x0501, 0xd66b, 0x0000 },
-  { 0x8501, 0xd66e, 0x2000 },
-  { 0x0501, 0xd66d, 0x0000 },
-  { 0x0501, 0xd66f, 0x0000 },
-  { 0x8501, 0xd774, 0x9000 },
-  { 0x8901, 0xd6f4, 0x8000 },
-  { 0x8901, 0xd6b4, 0x7000 },
-  { 0x8501, 0xd690, 0x6000 },
-  { 0x8901, 0xd680, 0x5000 },
-  { 0x8901, 0xd678, 0x4000 },
-  { 0x8901, 0xd674, 0x3000 },
-  { 0x8901, 0xd672, 0x2000 },
-  { 0x0901, 0xd671, 0x0000 },
-  { 0x0901, 0xd673, 0x0000 },
-  { 0x8901, 0xd676, 0x2000 },
-  { 0x0901, 0xd675, 0x0000 },
-  { 0x0901, 0xd677, 0x0000 },
-  { 0x8901, 0xd67c, 0x3000 },
-  { 0x8901, 0xd67a, 0x2000 },
-  { 0x0901, 0xd679, 0x0000 },
-  { 0x0901, 0xd67b, 0x0000 },
-  { 0x8901, 0xd67e, 0x2000 },
-  { 0x0901, 0xd67d, 0x0000 },
-  { 0x0901, 0xd67f, 0x0000 },
-  { 0x8901, 0xd688, 0x4000 },
-  { 0x8901, 0xd684, 0x3000 },
-  { 0x8901, 0xd682, 0x2000 },
-  { 0x0901, 0xd681, 0x0000 },
-  { 0x0901, 0xd683, 0x0000 },
-  { 0x8901, 0xd686, 0x2000 },
-  { 0x0901, 0xd685, 0x0000 },
-  { 0x0901, 0xd687, 0x0000 },
-  { 0x8501, 0xd68c, 0x3000 },
-  { 0x8501, 0xd68a, 0x2000 },
-  { 0x0901, 0xd689, 0x0000 },
-  { 0x0501, 0xd68b, 0x0000 },
-  { 0x8501, 0xd68e, 0x2000 },
-  { 0x0501, 0xd68d, 0x0000 },
-  { 0x0501, 0xd68f, 0x0000 },
-  { 0x8501, 0xd6a0, 0x5000 },
-  { 0x8501, 0xd698, 0x4000 },
-  { 0x8501, 0xd694, 0x3000 },
-  { 0x8501, 0xd692, 0x2000 },
-  { 0x0501, 0xd691, 0x0000 },
-  { 0x0501, 0xd693, 0x0000 },
-  { 0x8501, 0xd696, 0x2000 },
-  { 0x0501, 0xd695, 0x0000 },
-  { 0x0501, 0xd697, 0x0000 },
-  { 0x8501, 0xd69c, 0x3000 },
-  { 0x8501, 0xd69a, 0x2000 },
-  { 0x0501, 0xd699, 0x0000 },
-  { 0x0501, 0xd69b, 0x0000 },
-  { 0x8501, 0xd69e, 0x2000 },
-  { 0x0501, 0xd69d, 0x0000 },
-  { 0x0501, 0xd69f, 0x0000 },
-  { 0x8901, 0xd6ac, 0x4000 },
-  { 0x8901, 0xd6a8, 0x3000 },
-  { 0x8501, 0xd6a2, 0x2000 },
-  { 0x0501, 0xd6a1, 0x0000 },
-  { 0x0501, 0xd6a3, 0x0000 },
-  { 0x8901, 0xd6aa, 0x2000 },
-  { 0x0901, 0xd6a9, 0x0000 },
-  { 0x0901, 0xd6ab, 0x0000 },
-  { 0x8901, 0xd6b0, 0x3000 },
-  { 0x8901, 0xd6ae, 0x2000 },
-  { 0x0901, 0xd6ad, 0x0000 },
-  { 0x0901, 0xd6af, 0x0000 },
-  { 0x8901, 0xd6b2, 0x2000 },
-  { 0x0901, 0xd6b1, 0x0000 },
-  { 0x0901, 0xd6b3, 0x0000 },
-  { 0x8501, 0xd6d4, 0x6000 },
-  { 0x8501, 0xd6c4, 0x5000 },
-  { 0x8901, 0xd6bc, 0x4000 },
-  { 0x8901, 0xd6b8, 0x3000 },
-  { 0x8901, 0xd6b6, 0x2000 },
-  { 0x0901, 0xd6b5, 0x0000 },
-  { 0x0901, 0xd6b7, 0x0000 },
-  { 0x8901, 0xd6ba, 0x2000 },
-  { 0x0901, 0xd6b9, 0x0000 },
-  { 0x0901, 0xd6bb, 0x0000 },
-  { 0x8901, 0xd6c0, 0x3000 },
-  { 0x8901, 0xd6be, 0x2000 },
-  { 0x0901, 0xd6bd, 0x0000 },
-  { 0x0901, 0xd6bf, 0x0000 },
-  { 0x8501, 0xd6c2, 0x2000 },
-  { 0x1901, 0xd6c1, 0x0000 },
-  { 0x0501, 0xd6c3, 0x0000 },
-  { 0x8501, 0xd6cc, 0x4000 },
-  { 0x8501, 0xd6c8, 0x3000 },
-  { 0x8501, 0xd6c6, 0x2000 },
-  { 0x0501, 0xd6c5, 0x0000 },
-  { 0x0501, 0xd6c7, 0x0000 },
-  { 0x8501, 0xd6ca, 0x2000 },
-  { 0x0501, 0xd6c9, 0x0000 },
-  { 0x0501, 0xd6cb, 0x0000 },
-  { 0x8501, 0xd6d0, 0x3000 },
-  { 0x8501, 0xd6ce, 0x2000 },
-  { 0x0501, 0xd6cd, 0x0000 },
-  { 0x0501, 0xd6cf, 0x0000 },
-  { 0x8501, 0xd6d2, 0x2000 },
-  { 0x0501, 0xd6d1, 0x0000 },
-  { 0x0501, 0xd6d3, 0x0000 },
-  { 0x8901, 0xd6e4, 0x5000 },
-  { 0x8501, 0xd6dc, 0x4000 },
-  { 0x8501, 0xd6d8, 0x3000 },
-  { 0x8501, 0xd6d6, 0x2000 },
-  { 0x0501, 0xd6d5, 0x0000 },
-  { 0x0501, 0xd6d7, 0x0000 },
-  { 0x8501, 0xd6da, 0x2000 },
-  { 0x0501, 0xd6d9, 0x0000 },
-  { 0x1901, 0xd6db, 0x0000 },
-  { 0x8501, 0xd6e0, 0x3000 },
-  { 0x8501, 0xd6de, 0x2000 },
-  { 0x0501, 0xd6dd, 0x0000 },
-  { 0x0501, 0xd6df, 0x0000 },
-  { 0x8901, 0xd6e2, 0x2000 },
-  { 0x0501, 0xd6e1, 0x0000 },
-  { 0x0901, 0xd6e3, 0x0000 },
-  { 0x8901, 0xd6ec, 0x4000 },
-  { 0x8901, 0xd6e8, 0x3000 },
-  { 0x8901, 0xd6e6, 0x2000 },
-  { 0x0901, 0xd6e5, 0x0000 },
-  { 0x0901, 0xd6e7, 0x0000 },
-  { 0x8901, 0xd6ea, 0x2000 },
-  { 0x0901, 0xd6e9, 0x0000 },
-  { 0x0901, 0xd6eb, 0x0000 },
-  { 0x8901, 0xd6f0, 0x3000 },
-  { 0x8901, 0xd6ee, 0x2000 },
-  { 0x0901, 0xd6ed, 0x0000 },
-  { 0x0901, 0xd6ef, 0x0000 },
-  { 0x8901, 0xd6f2, 0x2000 },
-  { 0x0901, 0xd6f1, 0x0000 },
-  { 0x0901, 0xd6f3, 0x0000 },
-  { 0x8901, 0xd734, 0x7000 },
-  { 0x8501, 0xd714, 0x6000 },
-  { 0x8501, 0xd704, 0x5000 },
-  { 0x8501, 0xd6fc, 0x4000 },
-  { 0x8901, 0xd6f8, 0x3000 },
-  { 0x8901, 0xd6f6, 0x2000 },
-  { 0x0901, 0xd6f5, 0x0000 },
-  { 0x0901, 0xd6f7, 0x0000 },
-  { 0x8901, 0xd6fa, 0x2000 },
-  { 0x0901, 0xd6f9, 0x0000 },
-  { 0x1901, 0xd6fb, 0x0000 },
-  { 0x8501, 0xd700, 0x3000 },
-  { 0x8501, 0xd6fe, 0x2000 },
-  { 0x0501, 0xd6fd, 0x0000 },
-  { 0x0501, 0xd6ff, 0x0000 },
-  { 0x8501, 0xd702, 0x2000 },
-  { 0x0501, 0xd701, 0x0000 },
-  { 0x0501, 0xd703, 0x0000 },
-  { 0x8501, 0xd70c, 0x4000 },
-  { 0x8501, 0xd708, 0x3000 },
-  { 0x8501, 0xd706, 0x2000 },
-  { 0x0501, 0xd705, 0x0000 },
-  { 0x0501, 0xd707, 0x0000 },
-  { 0x8501, 0xd70a, 0x2000 },
-  { 0x0501, 0xd709, 0x0000 },
-  { 0x0501, 0xd70b, 0x0000 },
-  { 0x8501, 0xd710, 0x3000 },
-  { 0x8501, 0xd70e, 0x2000 },
-  { 0x0501, 0xd70d, 0x0000 },
-  { 0x0501, 0xd70f, 0x0000 },
-  { 0x8501, 0xd712, 0x2000 },
-  { 0x0501, 0xd711, 0x0000 },
-  { 0x0501, 0xd713, 0x0000 },
-  { 0x8901, 0xd724, 0x5000 },
-  { 0x8901, 0xd71c, 0x4000 },
-  { 0x8501, 0xd718, 0x3000 },
-  { 0x8501, 0xd716, 0x2000 },
-  { 0x1901, 0xd715, 0x0000 },
-  { 0x0501, 0xd717, 0x0000 },
-  { 0x8501, 0xd71a, 0x2000 },
-  { 0x0501, 0xd719, 0x0000 },
-  { 0x0501, 0xd71b, 0x0000 },
-  { 0x8901, 0xd720, 0x3000 },
-  { 0x8901, 0xd71e, 0x2000 },
-  { 0x0901, 0xd71d, 0x0000 },
-  { 0x0901, 0xd71f, 0x0000 },
-  { 0x8901, 0xd722, 0x2000 },
-  { 0x0901, 0xd721, 0x0000 },
-  { 0x0901, 0xd723, 0x0000 },
-  { 0x8901, 0xd72c, 0x4000 },
-  { 0x8901, 0xd728, 0x3000 },
-  { 0x8901, 0xd726, 0x2000 },
-  { 0x0901, 0xd725, 0x0000 },
-  { 0x0901, 0xd727, 0x0000 },
-  { 0x8901, 0xd72a, 0x2000 },
-  { 0x0901, 0xd729, 0x0000 },
-  { 0x0901, 0xd72b, 0x0000 },
-  { 0x8901, 0xd730, 0x3000 },
-  { 0x8901, 0xd72e, 0x2000 },
-  { 0x0901, 0xd72d, 0x0000 },
-  { 0x0901, 0xd72f, 0x0000 },
-  { 0x8901, 0xd732, 0x2000 },
-  { 0x0901, 0xd731, 0x0000 },
-  { 0x0901, 0xd733, 0x0000 },
-  { 0x8501, 0xd754, 0x6000 },
-  { 0x8501, 0xd744, 0x5000 },
-  { 0x8501, 0xd73c, 0x4000 },
-  { 0x8501, 0xd738, 0x3000 },
-  { 0x8501, 0xd736, 0x2000 },
-  { 0x1901, 0xd735, 0x0000 },
-  { 0x0501, 0xd737, 0x0000 },
-  { 0x8501, 0xd73a, 0x2000 },
-  { 0x0501, 0xd739, 0x0000 },
-  { 0x0501, 0xd73b, 0x0000 },
-  { 0x8501, 0xd740, 0x3000 },
-  { 0x8501, 0xd73e, 0x2000 },
-  { 0x0501, 0xd73d, 0x0000 },
-  { 0x0501, 0xd73f, 0x0000 },
-  { 0x8501, 0xd742, 0x2000 },
-  { 0x0501, 0xd741, 0x0000 },
-  { 0x0501, 0xd743, 0x0000 },
-  { 0x8501, 0xd74c, 0x4000 },
-  { 0x8501, 0xd748, 0x3000 },
-  { 0x8501, 0xd746, 0x2000 },
-  { 0x0501, 0xd745, 0x0000 },
-  { 0x0501, 0xd747, 0x0000 },
-  { 0x8501, 0xd74a, 0x2000 },
-  { 0x0501, 0xd749, 0x0000 },
-  { 0x0501, 0xd74b, 0x0000 },
-  { 0x8501, 0xd750, 0x3000 },
-  { 0x8501, 0xd74e, 0x2000 },
-  { 0x0501, 0xd74d, 0x0000 },
-  { 0x1901, 0xd74f, 0x0000 },
-  { 0x8501, 0xd752, 0x2000 },
-  { 0x0501, 0xd751, 0x0000 },
-  { 0x0501, 0xd753, 0x0000 },
-  { 0x8901, 0xd764, 0x5000 },
-  { 0x8901, 0xd75c, 0x4000 },
-  { 0x8901, 0xd758, 0x3000 },
-  { 0x8901, 0xd756, 0x2000 },
-  { 0x0501, 0xd755, 0x0000 },
-  { 0x0901, 0xd757, 0x0000 },
-  { 0x8901, 0xd75a, 0x2000 },
-  { 0x0901, 0xd759, 0x0000 },
-  { 0x0901, 0xd75b, 0x0000 },
-  { 0x8901, 0xd760, 0x3000 },
-  { 0x8901, 0xd75e, 0x2000 },
-  { 0x0901, 0xd75d, 0x0000 },
-  { 0x0901, 0xd75f, 0x0000 },
-  { 0x8901, 0xd762, 0x2000 },
-  { 0x0901, 0xd761, 0x0000 },
-  { 0x0901, 0xd763, 0x0000 },
-  { 0x8901, 0xd76c, 0x4000 },
-  { 0x8901, 0xd768, 0x3000 },
-  { 0x8901, 0xd766, 0x2000 },
-  { 0x0901, 0xd765, 0x0000 },
-  { 0x0901, 0xd767, 0x0000 },
-  { 0x8901, 0xd76a, 0x2000 },
-  { 0x0901, 0xd769, 0x0000 },
-  { 0x0901, 0xd76b, 0x0000 },
-  { 0x8501, 0xd770, 0x3000 },
-  { 0x8901, 0xd76e, 0x2000 },
-  { 0x0901, 0xd76d, 0x0000 },
-  { 0x1901, 0xd76f, 0x0000 },
-  { 0x8501, 0xd772, 0x2000 },
-  { 0x0501, 0xd771, 0x0000 },
-  { 0x0501, 0xd773, 0x0000 },
-  { 0x8d01, 0xd7f8, 0x8000 },
-  { 0x8501, 0xd7b4, 0x7000 },
-  { 0x8901, 0xd794, 0x6000 },
-  { 0x8501, 0xd784, 0x5000 },
-  { 0x8501, 0xd77c, 0x4000 },
-  { 0x8501, 0xd778, 0x3000 },
-  { 0x8501, 0xd776, 0x2000 },
-  { 0x0501, 0xd775, 0x0000 },
-  { 0x0501, 0xd777, 0x0000 },
-  { 0x8501, 0xd77a, 0x2000 },
-  { 0x0501, 0xd779, 0x0000 },
-  { 0x0501, 0xd77b, 0x0000 },
-  { 0x8501, 0xd780, 0x3000 },
-  { 0x8501, 0xd77e, 0x2000 },
-  { 0x0501, 0xd77d, 0x0000 },
-  { 0x0501, 0xd77f, 0x0000 },
-  { 0x8501, 0xd782, 0x2000 },
-  { 0x0501, 0xd781, 0x0000 },
-  { 0x0501, 0xd783, 0x0000 },
-  { 0x8501, 0xd78c, 0x4000 },
-  { 0x8501, 0xd788, 0x3000 },
-  { 0x8501, 0xd786, 0x2000 },
-  { 0x0501, 0xd785, 0x0000 },
-  { 0x0501, 0xd787, 0x0000 },
-  { 0x8501, 0xd78a, 0x2000 },
-  { 0x1901, 0xd789, 0x0000 },
-  { 0x0501, 0xd78b, 0x0000 },
-  { 0x8901, 0xd790, 0x3000 },
-  { 0x8501, 0xd78e, 0x2000 },
-  { 0x0501, 0xd78d, 0x0000 },
-  { 0x0501, 0xd78f, 0x0000 },
-  { 0x8901, 0xd792, 0x2000 },
-  { 0x0901, 0xd791, 0x0000 },
-  { 0x0901, 0xd793, 0x0000 },
-  { 0x8901, 0xd7a4, 0x5000 },
-  { 0x8901, 0xd79c, 0x4000 },
-  { 0x8901, 0xd798, 0x3000 },
-  { 0x8901, 0xd796, 0x2000 },
-  { 0x0901, 0xd795, 0x0000 },
-  { 0x0901, 0xd797, 0x0000 },
-  { 0x8901, 0xd79a, 0x2000 },
-  { 0x0901, 0xd799, 0x0000 },
-  { 0x0901, 0xd79b, 0x0000 },
-  { 0x8901, 0xd7a0, 0x3000 },
-  { 0x8901, 0xd79e, 0x2000 },
-  { 0x0901, 0xd79d, 0x0000 },
-  { 0x0901, 0xd79f, 0x0000 },
-  { 0x8901, 0xd7a2, 0x2000 },
-  { 0x0901, 0xd7a1, 0x0000 },
-  { 0x0901, 0xd7a3, 0x0000 },
-  { 0x8501, 0xd7ac, 0x4000 },
-  { 0x8901, 0xd7a8, 0x3000 },
-  { 0x8901, 0xd7a6, 0x2000 },
-  { 0x0901, 0xd7a5, 0x0000 },
-  { 0x0901, 0xd7a7, 0x0000 },
-  { 0x8501, 0xd7aa, 0x2000 },
-  { 0x1901, 0xd7a9, 0x0000 },
-  { 0x0501, 0xd7ab, 0x0000 },
-  { 0x8501, 0xd7b0, 0x3000 },
-  { 0x8501, 0xd7ae, 0x2000 },
-  { 0x0501, 0xd7ad, 0x0000 },
-  { 0x0501, 0xd7af, 0x0000 },
-  { 0x8501, 0xd7b2, 0x2000 },
-  { 0x0501, 0xd7b1, 0x0000 },
-  { 0x0501, 0xd7b3, 0x0000 },
-  { 0x8d01, 0xd7d8, 0x6000 },
-  { 0x8501, 0xd7c4, 0x5000 },
-  { 0x8501, 0xd7bc, 0x4000 },
-  { 0x8501, 0xd7b8, 0x3000 },
-  { 0x8501, 0xd7b6, 0x2000 },
-  { 0x0501, 0xd7b5, 0x0000 },
-  { 0x0501, 0xd7b7, 0x0000 },
-  { 0x8501, 0xd7ba, 0x2000 },
-  { 0x0501, 0xd7b9, 0x0000 },
-  { 0x0501, 0xd7bb, 0x0000 },
-  { 0x8501, 0xd7c0, 0x3000 },
-  { 0x8501, 0xd7be, 0x2000 },
-  { 0x0501, 0xd7bd, 0x0000 },
-  { 0x0501, 0xd7bf, 0x0000 },
-  { 0x8501, 0xd7c2, 0x2000 },
-  { 0x0501, 0xd7c1, 0x0000 },
-  { 0x1901, 0xd7c3, 0x0000 },
-  { 0x8d01, 0xd7d0, 0x4000 },
-  { 0x8501, 0xd7c8, 0x3000 },
-  { 0x8501, 0xd7c6, 0x2000 },
-  { 0x0501, 0xd7c5, 0x0000 },
-  { 0x0501, 0xd7c7, 0x0000 },
-  { 0x8d01, 0xd7ce, 0x2000 },
-  { 0x0501, 0xd7c9, 0x0000 },
-  { 0x0d01, 0xd7cf, 0x0000 },
-  { 0x8d01, 0xd7d4, 0x3000 },
-  { 0x8d01, 0xd7d2, 0x2000 },
-  { 0x0d01, 0xd7d1, 0x0000 },
-  { 0x0d01, 0xd7d3, 0x0000 },
-  { 0x8d01, 0xd7d6, 0x2000 },
-  { 0x0d01, 0xd7d5, 0x0000 },
-  { 0x0d01, 0xd7d7, 0x0000 },
-  { 0x8d01, 0xd7e8, 0x5000 },
-  { 0x8d01, 0xd7e0, 0x4000 },
-  { 0x8d01, 0xd7dc, 0x3000 },
-  { 0x8d01, 0xd7da, 0x2000 },
-  { 0x0d01, 0xd7d9, 0x0000 },
-  { 0x0d01, 0xd7db, 0x0000 },
-  { 0x8d01, 0xd7de, 0x2000 },
-  { 0x0d01, 0xd7dd, 0x0000 },
-  { 0x0d01, 0xd7df, 0x0000 },
-  { 0x8d01, 0xd7e4, 0x3000 },
-  { 0x8d01, 0xd7e2, 0x2000 },
-  { 0x0d01, 0xd7e1, 0x0000 },
-  { 0x0d01, 0xd7e3, 0x0000 },
-  { 0x8d01, 0xd7e6, 0x2000 },
-  { 0x0d01, 0xd7e5, 0x0000 },
-  { 0x0d01, 0xd7e7, 0x0000 },
-  { 0x8d01, 0xd7f0, 0x4000 },
-  { 0x8d01, 0xd7ec, 0x3000 },
-  { 0x8d01, 0xd7ea, 0x2000 },
-  { 0x0d01, 0xd7e9, 0x0000 },
-  { 0x0d01, 0xd7eb, 0x0000 },
-  { 0x8d01, 0xd7ee, 0x2000 },
-  { 0x0d01, 0xd7ed, 0x0000 },
-  { 0x0d01, 0xd7ef, 0x0000 },
-  { 0x8d01, 0xd7f4, 0x3000 },
-  { 0x8d01, 0xd7f2, 0x2000 },
-  { 0x0d01, 0xd7f1, 0x0000 },
-  { 0x0d01, 0xd7f3, 0x0000 },
-  { 0x8d01, 0xd7f6, 0x2000 },
-  { 0x0d01, 0xd7f5, 0x0000 },
-  { 0x0d01, 0xd7f7, 0x0000 },
-  { 0x8702, 0xf836, 0x7000 },
-  { 0x8702, 0xf816, 0x6000 },
-  { 0x8702, 0xf806, 0x5000 },
-  { 0x8702, 0x0000, 0x4000 },
-  { 0x8d01, 0xd7fc, 0x3000 },
-  { 0x8d01, 0xd7fa, 0x2000 },
-  { 0x0d01, 0xd7f9, 0x0000 },
-  { 0x0d01, 0xd7fb, 0x0000 },
-  { 0x8d01, 0xd7fe, 0x2000 },
-  { 0x0d01, 0xd7fd, 0x0000 },
-  { 0x0d01, 0xd7ff, 0x0000 },
-  { 0x8702, 0xf802, 0x3000 },
-  { 0x8702, 0xf800, 0x2000 },
-  { 0x0702, 0xa6d6, 0x0000 },
-  { 0x0702, 0xf801, 0x0000 },
-  { 0x8702, 0xf804, 0x2000 },
-  { 0x0702, 0xf803, 0x0000 },
-  { 0x0702, 0xf805, 0x0000 },
-  { 0x8702, 0xf80e, 0x4000 },
-  { 0x8702, 0xf80a, 0x3000 },
-  { 0x8702, 0xf808, 0x2000 },
-  { 0x0702, 0xf807, 0x0000 },
-  { 0x0702, 0xf809, 0x0000 },
-  { 0x8702, 0xf80c, 0x2000 },
-  { 0x0702, 0xf80b, 0x0000 },
-  { 0x0702, 0xf80d, 0x0000 },
-  { 0x8702, 0xf812, 0x3000 },
-  { 0x8702, 0xf810, 0x2000 },
-  { 0x0702, 0xf80f, 0x0000 },
-  { 0x0702, 0xf811, 0x0000 },
-  { 0x8702, 0xf814, 0x2000 },
-  { 0x0702, 0xf813, 0x0000 },
-  { 0x0702, 0xf815, 0x0000 },
-  { 0x8702, 0xf826, 0x5000 },
-  { 0x8702, 0xf81e, 0x4000 },
-  { 0x8702, 0xf81a, 0x3000 },
-  { 0x8702, 0xf818, 0x2000 },
-  { 0x0702, 0xf817, 0x0000 },
-  { 0x0702, 0xf819, 0x0000 },
-  { 0x8702, 0xf81c, 0x2000 },
-  { 0x0702, 0xf81b, 0x0000 },
-  { 0x0702, 0xf81d, 0x0000 },
-  { 0x8702, 0xf822, 0x3000 },
-  { 0x8702, 0xf820, 0x2000 },
-  { 0x0702, 0xf81f, 0x0000 },
-  { 0x0702, 0xf821, 0x0000 },
-  { 0x8702, 0xf824, 0x2000 },
-  { 0x0702, 0xf823, 0x0000 },
-  { 0x0702, 0xf825, 0x0000 },
-  { 0x8702, 0xf82e, 0x4000 },
-  { 0x8702, 0xf82a, 0x3000 },
-  { 0x8702, 0xf828, 0x2000 },
-  { 0x0702, 0xf827, 0x0000 },
-  { 0x0702, 0xf829, 0x0000 },
-  { 0x8702, 0xf82c, 0x2000 },
-  { 0x0702, 0xf82b, 0x0000 },
-  { 0x0702, 0xf82d, 0x0000 },
-  { 0x8702, 0xf832, 0x3000 },
-  { 0x8702, 0xf830, 0x2000 },
-  { 0x0702, 0xf82f, 0x0000 },
-  { 0x0702, 0xf831, 0x0000 },
-  { 0x8702, 0xf834, 0x2000 },
-  { 0x0702, 0xf833, 0x0000 },
-  { 0x0702, 0xf835, 0x0000 },
-  { 0x8702, 0xf856, 0x6000 },
-  { 0x8702, 0xf846, 0x5000 },
-  { 0x8702, 0xf83e, 0x4000 },
-  { 0x8702, 0xf83a, 0x3000 },
-  { 0x8702, 0xf838, 0x2000 },
-  { 0x0702, 0xf837, 0x0000 },
-  { 0x0702, 0xf839, 0x0000 },
-  { 0x8702, 0xf83c, 0x2000 },
-  { 0x0702, 0xf83b, 0x0000 },
-  { 0x0702, 0xf83d, 0x0000 },
-  { 0x8702, 0xf842, 0x3000 },
-  { 0x8702, 0xf840, 0x2000 },
-  { 0x0702, 0xf83f, 0x0000 },
-  { 0x0702, 0xf841, 0x0000 },
-  { 0x8702, 0xf844, 0x2000 },
-  { 0x0702, 0xf843, 0x0000 },
-  { 0x0702, 0xf845, 0x0000 },
-  { 0x8702, 0xf84e, 0x4000 },
-  { 0x8702, 0xf84a, 0x3000 },
-  { 0x8702, 0xf848, 0x2000 },
-  { 0x0702, 0xf847, 0x0000 },
-  { 0x0702, 0xf849, 0x0000 },
-  { 0x8702, 0xf84c, 0x2000 },
-  { 0x0702, 0xf84b, 0x0000 },
-  { 0x0702, 0xf84d, 0x0000 },
-  { 0x8702, 0xf852, 0x3000 },
-  { 0x8702, 0xf850, 0x2000 },
-  { 0x0702, 0xf84f, 0x0000 },
-  { 0x0702, 0xf851, 0x0000 },
-  { 0x8702, 0xf854, 0x2000 },
-  { 0x0702, 0xf853, 0x0000 },
-  { 0x0702, 0xf855, 0x0000 },
-  { 0x8702, 0xf866, 0x5000 },
-  { 0x8702, 0xf85e, 0x4000 },
-  { 0x8702, 0xf85a, 0x3000 },
-  { 0x8702, 0xf858, 0x2000 },
-  { 0x0702, 0xf857, 0x0000 },
-  { 0x0702, 0xf859, 0x0000 },
-  { 0x8702, 0xf85c, 0x2000 },
-  { 0x0702, 0xf85b, 0x0000 },
-  { 0x0702, 0xf85d, 0x0000 },
-  { 0x8702, 0xf862, 0x3000 },
-  { 0x8702, 0xf860, 0x2000 },
-  { 0x0702, 0xf85f, 0x0000 },
-  { 0x0702, 0xf861, 0x0000 },
-  { 0x8702, 0xf864, 0x2000 },
-  { 0x0702, 0xf863, 0x0000 },
-  { 0x0702, 0xf865, 0x0000 },
-  { 0x8702, 0xf86e, 0x4000 },
-  { 0x8702, 0xf86a, 0x3000 },
-  { 0x8702, 0xf868, 0x2000 },
-  { 0x0702, 0xf867, 0x0000 },
-  { 0x0702, 0xf869, 0x0000 },
-  { 0x8702, 0xf86c, 0x2000 },
-  { 0x0702, 0xf86b, 0x0000 },
-  { 0x0702, 0xf86d, 0x0000 },
-  { 0x8702, 0xf872, 0x3000 },
-  { 0x8702, 0xf870, 0x2000 },
-  { 0x0702, 0xf86f, 0x0000 },
-  { 0x0702, 0xf871, 0x0000 },
-  { 0x8702, 0xf874, 0x2000 },
-  { 0x0702, 0xf873, 0x0000 },
-  { 0x0702, 0xf875, 0x0000 },
-  { 0x8702, 0xf976, 0x9000 },
-  { 0x8702, 0xf8f6, 0x8000 },
-  { 0x8702, 0xf8b6, 0x7000 },
-  { 0x8702, 0xf896, 0x6000 },
-  { 0x8702, 0xf886, 0x5000 },
-  { 0x8702, 0xf87e, 0x4000 },
-  { 0x8702, 0xf87a, 0x3000 },
-  { 0x8702, 0xf878, 0x2000 },
-  { 0x0702, 0xf877, 0x0000 },
-  { 0x0702, 0xf879, 0x0000 },
-  { 0x8702, 0xf87c, 0x2000 },
-  { 0x0702, 0xf87b, 0x0000 },
-  { 0x0702, 0xf87d, 0x0000 },
-  { 0x8702, 0xf882, 0x3000 },
-  { 0x8702, 0xf880, 0x2000 },
-  { 0x0702, 0xf87f, 0x0000 },
-  { 0x0702, 0xf881, 0x0000 },
-  { 0x8702, 0xf884, 0x2000 },
-  { 0x0702, 0xf883, 0x0000 },
-  { 0x0702, 0xf885, 0x0000 },
-  { 0x8702, 0xf88e, 0x4000 },
-  { 0x8702, 0xf88a, 0x3000 },
-  { 0x8702, 0xf888, 0x2000 },
-  { 0x0702, 0xf887, 0x0000 },
-  { 0x0702, 0xf889, 0x0000 },
-  { 0x8702, 0xf88c, 0x2000 },
-  { 0x0702, 0xf88b, 0x0000 },
-  { 0x0702, 0xf88d, 0x0000 },
-  { 0x8702, 0xf892, 0x3000 },
-  { 0x8702, 0xf890, 0x2000 },
-  { 0x0702, 0xf88f, 0x0000 },
-  { 0x0702, 0xf891, 0x0000 },
-  { 0x8702, 0xf894, 0x2000 },
-  { 0x0702, 0xf893, 0x0000 },
-  { 0x0702, 0xf895, 0x0000 },
-  { 0x8702, 0xf8a6, 0x5000 },
-  { 0x8702, 0xf89e, 0x4000 },
-  { 0x8702, 0xf89a, 0x3000 },
-  { 0x8702, 0xf898, 0x2000 },
-  { 0x0702, 0xf897, 0x0000 },
-  { 0x0702, 0xf899, 0x0000 },
-  { 0x8702, 0xf89c, 0x2000 },
-  { 0x0702, 0xf89b, 0x0000 },
-  { 0x0702, 0xf89d, 0x0000 },
-  { 0x8702, 0xf8a2, 0x3000 },
-  { 0x8702, 0xf8a0, 0x2000 },
-  { 0x0702, 0xf89f, 0x0000 },
-  { 0x0702, 0xf8a1, 0x0000 },
-  { 0x8702, 0xf8a4, 0x2000 },
-  { 0x0702, 0xf8a3, 0x0000 },
-  { 0x0702, 0xf8a5, 0x0000 },
-  { 0x8702, 0xf8ae, 0x4000 },
-  { 0x8702, 0xf8aa, 0x3000 },
-  { 0x8702, 0xf8a8, 0x2000 },
-  { 0x0702, 0xf8a7, 0x0000 },
-  { 0x0702, 0xf8a9, 0x0000 },
-  { 0x8702, 0xf8ac, 0x2000 },
-  { 0x0702, 0xf8ab, 0x0000 },
-  { 0x0702, 0xf8ad, 0x0000 },
-  { 0x8702, 0xf8b2, 0x3000 },
-  { 0x8702, 0xf8b0, 0x2000 },
-  { 0x0702, 0xf8af, 0x0000 },
-  { 0x0702, 0xf8b1, 0x0000 },
-  { 0x8702, 0xf8b4, 0x2000 },
-  { 0x0702, 0xf8b3, 0x0000 },
-  { 0x0702, 0xf8b5, 0x0000 },
-  { 0x8702, 0xf8d6, 0x6000 },
-  { 0x8702, 0xf8c6, 0x5000 },
-  { 0x8702, 0xf8be, 0x4000 },
-  { 0x8702, 0xf8ba, 0x3000 },
-  { 0x8702, 0xf8b8, 0x2000 },
-  { 0x0702, 0xf8b7, 0x0000 },
-  { 0x0702, 0xf8b9, 0x0000 },
-  { 0x8702, 0xf8bc, 0x2000 },
-  { 0x0702, 0xf8bb, 0x0000 },
-  { 0x0702, 0xf8bd, 0x0000 },
-  { 0x8702, 0xf8c2, 0x3000 },
-  { 0x8702, 0xf8c0, 0x2000 },
-  { 0x0702, 0xf8bf, 0x0000 },
-  { 0x0702, 0xf8c1, 0x0000 },
-  { 0x8702, 0xf8c4, 0x2000 },
-  { 0x0702, 0xf8c3, 0x0000 },
-  { 0x0702, 0xf8c5, 0x0000 },
-  { 0x8702, 0xf8ce, 0x4000 },
-  { 0x8702, 0xf8ca, 0x3000 },
-  { 0x8702, 0xf8c8, 0x2000 },
-  { 0x0702, 0xf8c7, 0x0000 },
-  { 0x0702, 0xf8c9, 0x0000 },
-  { 0x8702, 0xf8cc, 0x2000 },
-  { 0x0702, 0xf8cb, 0x0000 },
-  { 0x0702, 0xf8cd, 0x0000 },
-  { 0x8702, 0xf8d2, 0x3000 },
-  { 0x8702, 0xf8d0, 0x2000 },
-  { 0x0702, 0xf8cf, 0x0000 },
-  { 0x0702, 0xf8d1, 0x0000 },
-  { 0x8702, 0xf8d4, 0x2000 },
-  { 0x0702, 0xf8d3, 0x0000 },
-  { 0x0702, 0xf8d5, 0x0000 },
-  { 0x8702, 0xf8e6, 0x5000 },
-  { 0x8702, 0xf8de, 0x4000 },
-  { 0x8702, 0xf8da, 0x3000 },
-  { 0x8702, 0xf8d8, 0x2000 },
-  { 0x0702, 0xf8d7, 0x0000 },
-  { 0x0702, 0xf8d9, 0x0000 },
-  { 0x8702, 0xf8dc, 0x2000 },
-  { 0x0702, 0xf8db, 0x0000 },
-  { 0x0702, 0xf8dd, 0x0000 },
-  { 0x8702, 0xf8e2, 0x3000 },
-  { 0x8702, 0xf8e0, 0x2000 },
-  { 0x0702, 0xf8df, 0x0000 },
-  { 0x0702, 0xf8e1, 0x0000 },
-  { 0x8702, 0xf8e4, 0x2000 },
-  { 0x0702, 0xf8e3, 0x0000 },
-  { 0x0702, 0xf8e5, 0x0000 },
-  { 0x8702, 0xf8ee, 0x4000 },
-  { 0x8702, 0xf8ea, 0x3000 },
-  { 0x8702, 0xf8e8, 0x2000 },
-  { 0x0702, 0xf8e7, 0x0000 },
-  { 0x0702, 0xf8e9, 0x0000 },
-  { 0x8702, 0xf8ec, 0x2000 },
-  { 0x0702, 0xf8eb, 0x0000 },
-  { 0x0702, 0xf8ed, 0x0000 },
-  { 0x8702, 0xf8f2, 0x3000 },
-  { 0x8702, 0xf8f0, 0x2000 },
-  { 0x0702, 0xf8ef, 0x0000 },
-  { 0x0702, 0xf8f1, 0x0000 },
-  { 0x8702, 0xf8f4, 0x2000 },
-  { 0x0702, 0xf8f3, 0x0000 },
-  { 0x0702, 0xf8f5, 0x0000 },
-  { 0x8702, 0xf936, 0x7000 },
-  { 0x8702, 0xf916, 0x6000 },
-  { 0x8702, 0xf906, 0x5000 },
-  { 0x8702, 0xf8fe, 0x4000 },
-  { 0x8702, 0xf8fa, 0x3000 },
-  { 0x8702, 0xf8f8, 0x2000 },
-  { 0x0702, 0xf8f7, 0x0000 },
-  { 0x0702, 0xf8f9, 0x0000 },
-  { 0x8702, 0xf8fc, 0x2000 },
-  { 0x0702, 0xf8fb, 0x0000 },
-  { 0x0702, 0xf8fd, 0x0000 },
-  { 0x8702, 0xf902, 0x3000 },
-  { 0x8702, 0xf900, 0x2000 },
-  { 0x0702, 0xf8ff, 0x0000 },
-  { 0x0702, 0xf901, 0x0000 },
-  { 0x8702, 0xf904, 0x2000 },
-  { 0x0702, 0xf903, 0x0000 },
-  { 0x0702, 0xf905, 0x0000 },
-  { 0x8702, 0xf90e, 0x4000 },
-  { 0x8702, 0xf90a, 0x3000 },
-  { 0x8702, 0xf908, 0x2000 },
-  { 0x0702, 0xf907, 0x0000 },
-  { 0x0702, 0xf909, 0x0000 },
-  { 0x8702, 0xf90c, 0x2000 },
-  { 0x0702, 0xf90b, 0x0000 },
-  { 0x0702, 0xf90d, 0x0000 },
-  { 0x8702, 0xf912, 0x3000 },
-  { 0x8702, 0xf910, 0x2000 },
-  { 0x0702, 0xf90f, 0x0000 },
-  { 0x0702, 0xf911, 0x0000 },
-  { 0x8702, 0xf914, 0x2000 },
-  { 0x0702, 0xf913, 0x0000 },
-  { 0x0702, 0xf915, 0x0000 },
-  { 0x8702, 0xf926, 0x5000 },
-  { 0x8702, 0xf91e, 0x4000 },
-  { 0x8702, 0xf91a, 0x3000 },
-  { 0x8702, 0xf918, 0x2000 },
-  { 0x0702, 0xf917, 0x0000 },
-  { 0x0702, 0xf919, 0x0000 },
-  { 0x8702, 0xf91c, 0x2000 },
-  { 0x0702, 0xf91b, 0x0000 },
-  { 0x0702, 0xf91d, 0x0000 },
-  { 0x8702, 0xf922, 0x3000 },
-  { 0x8702, 0xf920, 0x2000 },
-  { 0x0702, 0xf91f, 0x0000 },
-  { 0x0702, 0xf921, 0x0000 },
-  { 0x8702, 0xf924, 0x2000 },
-  { 0x0702, 0xf923, 0x0000 },
-  { 0x0702, 0xf925, 0x0000 },
-  { 0x8702, 0xf92e, 0x4000 },
-  { 0x8702, 0xf92a, 0x3000 },
-  { 0x8702, 0xf928, 0x2000 },
-  { 0x0702, 0xf927, 0x0000 },
-  { 0x0702, 0xf929, 0x0000 },
-  { 0x8702, 0xf92c, 0x2000 },
-  { 0x0702, 0xf92b, 0x0000 },
-  { 0x0702, 0xf92d, 0x0000 },
-  { 0x8702, 0xf932, 0x3000 },
-  { 0x8702, 0xf930, 0x2000 },
-  { 0x0702, 0xf92f, 0x0000 },
-  { 0x0702, 0xf931, 0x0000 },
-  { 0x8702, 0xf934, 0x2000 },
-  { 0x0702, 0xf933, 0x0000 },
-  { 0x0702, 0xf935, 0x0000 },
-  { 0x8702, 0xf956, 0x6000 },
-  { 0x8702, 0xf946, 0x5000 },
-  { 0x8702, 0xf93e, 0x4000 },
-  { 0x8702, 0xf93a, 0x3000 },
-  { 0x8702, 0xf938, 0x2000 },
-  { 0x0702, 0xf937, 0x0000 },
-  { 0x0702, 0xf939, 0x0000 },
-  { 0x8702, 0xf93c, 0x2000 },
-  { 0x0702, 0xf93b, 0x0000 },
-  { 0x0702, 0xf93d, 0x0000 },
-  { 0x8702, 0xf942, 0x3000 },
-  { 0x8702, 0xf940, 0x2000 },
-  { 0x0702, 0xf93f, 0x0000 },
-  { 0x0702, 0xf941, 0x0000 },
-  { 0x8702, 0xf944, 0x2000 },
-  { 0x0702, 0xf943, 0x0000 },
-  { 0x0702, 0xf945, 0x0000 },
-  { 0x8702, 0xf94e, 0x4000 },
-  { 0x8702, 0xf94a, 0x3000 },
-  { 0x8702, 0xf948, 0x2000 },
-  { 0x0702, 0xf947, 0x0000 },
-  { 0x0702, 0xf949, 0x0000 },
-  { 0x8702, 0xf94c, 0x2000 },
-  { 0x0702, 0xf94b, 0x0000 },
-  { 0x0702, 0xf94d, 0x0000 },
-  { 0x8702, 0xf952, 0x3000 },
-  { 0x8702, 0xf950, 0x2000 },
-  { 0x0702, 0xf94f, 0x0000 },
-  { 0x0702, 0xf951, 0x0000 },
-  { 0x8702, 0xf954, 0x2000 },
-  { 0x0702, 0xf953, 0x0000 },
-  { 0x0702, 0xf955, 0x0000 },
-  { 0x8702, 0xf966, 0x5000 },
-  { 0x8702, 0xf95e, 0x4000 },
-  { 0x8702, 0xf95a, 0x3000 },
-  { 0x8702, 0xf958, 0x2000 },
-  { 0x0702, 0xf957, 0x0000 },
-  { 0x0702, 0xf959, 0x0000 },
-  { 0x8702, 0xf95c, 0x2000 },
-  { 0x0702, 0xf95b, 0x0000 },
-  { 0x0702, 0xf95d, 0x0000 },
-  { 0x8702, 0xf962, 0x3000 },
-  { 0x8702, 0xf960, 0x2000 },
-  { 0x0702, 0xf95f, 0x0000 },
-  { 0x0702, 0xf961, 0x0000 },
-  { 0x8702, 0xf964, 0x2000 },
-  { 0x0702, 0xf963, 0x0000 },
-  { 0x0702, 0xf965, 0x0000 },
-  { 0x8702, 0xf96e, 0x4000 },
-  { 0x8702, 0xf96a, 0x3000 },
-  { 0x8702, 0xf968, 0x2000 },
-  { 0x0702, 0xf967, 0x0000 },
-  { 0x0702, 0xf969, 0x0000 },
-  { 0x8702, 0xf96c, 0x2000 },
-  { 0x0702, 0xf96b, 0x0000 },
-  { 0x0702, 0xf96d, 0x0000 },
-  { 0x8702, 0xf972, 0x3000 },
-  { 0x8702, 0xf970, 0x2000 },
-  { 0x0702, 0xf96f, 0x0000 },
-  { 0x0702, 0xf971, 0x0000 },
-  { 0x8702, 0xf974, 0x2000 },
-  { 0x0702, 0xf973, 0x0000 },
-  { 0x0702, 0xf975, 0x0000 },
-  { 0x810e, 0x0077, 0x9000 },
-  { 0x8702, 0xf9f6, 0x8000 },
-  { 0x8702, 0xf9b6, 0x7000 },
-  { 0x8702, 0xf996, 0x6000 },
-  { 0x8702, 0xf986, 0x5000 },
-  { 0x8702, 0xf97e, 0x4000 },
-  { 0x8702, 0xf97a, 0x3000 },
-  { 0x8702, 0xf978, 0x2000 },
-  { 0x0702, 0xf977, 0x0000 },
-  { 0x0702, 0xf979, 0x0000 },
-  { 0x8702, 0xf97c, 0x2000 },
-  { 0x0702, 0xf97b, 0x0000 },
-  { 0x0702, 0xf97d, 0x0000 },
-  { 0x8702, 0xf982, 0x3000 },
-  { 0x8702, 0xf980, 0x2000 },
-  { 0x0702, 0xf97f, 0x0000 },
-  { 0x0702, 0xf981, 0x0000 },
-  { 0x8702, 0xf984, 0x2000 },
-  { 0x0702, 0xf983, 0x0000 },
-  { 0x0702, 0xf985, 0x0000 },
-  { 0x8702, 0xf98e, 0x4000 },
-  { 0x8702, 0xf98a, 0x3000 },
-  { 0x8702, 0xf988, 0x2000 },
-  { 0x0702, 0xf987, 0x0000 },
-  { 0x0702, 0xf989, 0x0000 },
-  { 0x8702, 0xf98c, 0x2000 },
-  { 0x0702, 0xf98b, 0x0000 },
-  { 0x0702, 0xf98d, 0x0000 },
-  { 0x8702, 0xf992, 0x3000 },
-  { 0x8702, 0xf990, 0x2000 },
-  { 0x0702, 0xf98f, 0x0000 },
-  { 0x0702, 0xf991, 0x0000 },
-  { 0x8702, 0xf994, 0x2000 },
-  { 0x0702, 0xf993, 0x0000 },
-  { 0x0702, 0xf995, 0x0000 },
-  { 0x8702, 0xf9a6, 0x5000 },
-  { 0x8702, 0xf99e, 0x4000 },
-  { 0x8702, 0xf99a, 0x3000 },
-  { 0x8702, 0xf998, 0x2000 },
-  { 0x0702, 0xf997, 0x0000 },
-  { 0x0702, 0xf999, 0x0000 },
-  { 0x8702, 0xf99c, 0x2000 },
-  { 0x0702, 0xf99b, 0x0000 },
-  { 0x0702, 0xf99d, 0x0000 },
-  { 0x8702, 0xf9a2, 0x3000 },
-  { 0x8702, 0xf9a0, 0x2000 },
-  { 0x0702, 0xf99f, 0x0000 },
-  { 0x0702, 0xf9a1, 0x0000 },
-  { 0x8702, 0xf9a4, 0x2000 },
-  { 0x0702, 0xf9a3, 0x0000 },
-  { 0x0702, 0xf9a5, 0x0000 },
-  { 0x8702, 0xf9ae, 0x4000 },
-  { 0x8702, 0xf9aa, 0x3000 },
-  { 0x8702, 0xf9a8, 0x2000 },
-  { 0x0702, 0xf9a7, 0x0000 },
-  { 0x0702, 0xf9a9, 0x0000 },
-  { 0x8702, 0xf9ac, 0x2000 },
-  { 0x0702, 0xf9ab, 0x0000 },
-  { 0x0702, 0xf9ad, 0x0000 },
-  { 0x8702, 0xf9b2, 0x3000 },
-  { 0x8702, 0xf9b0, 0x2000 },
-  { 0x0702, 0xf9af, 0x0000 },
-  { 0x0702, 0xf9b1, 0x0000 },
-  { 0x8702, 0xf9b4, 0x2000 },
-  { 0x0702, 0xf9b3, 0x0000 },
-  { 0x0702, 0xf9b5, 0x0000 },
-  { 0x8702, 0xf9d6, 0x6000 },
-  { 0x8702, 0xf9c6, 0x5000 },
-  { 0x8702, 0xf9be, 0x4000 },
-  { 0x8702, 0xf9ba, 0x3000 },
-  { 0x8702, 0xf9b8, 0x2000 },
-  { 0x0702, 0xf9b7, 0x0000 },
-  { 0x0702, 0xf9b9, 0x0000 },
-  { 0x8702, 0xf9bc, 0x2000 },
-  { 0x0702, 0xf9bb, 0x0000 },
-  { 0x0702, 0xf9bd, 0x0000 },
-  { 0x8702, 0xf9c2, 0x3000 },
-  { 0x8702, 0xf9c0, 0x2000 },
-  { 0x0702, 0xf9bf, 0x0000 },
-  { 0x0702, 0xf9c1, 0x0000 },
-  { 0x8702, 0xf9c4, 0x2000 },
-  { 0x0702, 0xf9c3, 0x0000 },
-  { 0x0702, 0xf9c5, 0x0000 },
-  { 0x8702, 0xf9ce, 0x4000 },
-  { 0x8702, 0xf9ca, 0x3000 },
-  { 0x8702, 0xf9c8, 0x2000 },
-  { 0x0702, 0xf9c7, 0x0000 },
-  { 0x0702, 0xf9c9, 0x0000 },
-  { 0x8702, 0xf9cc, 0x2000 },
-  { 0x0702, 0xf9cb, 0x0000 },
-  { 0x0702, 0xf9cd, 0x0000 },
-  { 0x8702, 0xf9d2, 0x3000 },
-  { 0x8702, 0xf9d0, 0x2000 },
-  { 0x0702, 0xf9cf, 0x0000 },
-  { 0x0702, 0xf9d1, 0x0000 },
-  { 0x8702, 0xf9d4, 0x2000 },
-  { 0x0702, 0xf9d3, 0x0000 },
-  { 0x0702, 0xf9d5, 0x0000 },
-  { 0x8702, 0xf9e6, 0x5000 },
-  { 0x8702, 0xf9de, 0x4000 },
-  { 0x8702, 0xf9da, 0x3000 },
-  { 0x8702, 0xf9d8, 0x2000 },
-  { 0x0702, 0xf9d7, 0x0000 },
-  { 0x0702, 0xf9d9, 0x0000 },
-  { 0x8702, 0xf9dc, 0x2000 },
-  { 0x0702, 0xf9db, 0x0000 },
-  { 0x0702, 0xf9dd, 0x0000 },
-  { 0x8702, 0xf9e2, 0x3000 },
-  { 0x8702, 0xf9e0, 0x2000 },
-  { 0x0702, 0xf9df, 0x0000 },
-  { 0x0702, 0xf9e1, 0x0000 },
-  { 0x8702, 0xf9e4, 0x2000 },
-  { 0x0702, 0xf9e3, 0x0000 },
-  { 0x0702, 0xf9e5, 0x0000 },
-  { 0x8702, 0xf9ee, 0x4000 },
-  { 0x8702, 0xf9ea, 0x3000 },
-  { 0x8702, 0xf9e8, 0x2000 },
-  { 0x0702, 0xf9e7, 0x0000 },
-  { 0x0702, 0xf9e9, 0x0000 },
-  { 0x8702, 0xf9ec, 0x2000 },
-  { 0x0702, 0xf9eb, 0x0000 },
-  { 0x0702, 0xf9ed, 0x0000 },
-  { 0x8702, 0xf9f2, 0x3000 },
-  { 0x8702, 0xf9f0, 0x2000 },
-  { 0x0702, 0xf9ef, 0x0000 },
-  { 0x0702, 0xf9f1, 0x0000 },
-  { 0x8702, 0xf9f4, 0x2000 },
-  { 0x0702, 0xf9f3, 0x0000 },
-  { 0x0702, 0xf9f5, 0x0000 },
-  { 0x810e, 0x0037, 0x7000 },
-  { 0x8702, 0xfa16, 0x6000 },
-  { 0x8702, 0xfa06, 0x5000 },
-  { 0x8702, 0xf9fe, 0x4000 },
-  { 0x8702, 0xf9fa, 0x3000 },
-  { 0x8702, 0xf9f8, 0x2000 },
-  { 0x0702, 0xf9f7, 0x0000 },
-  { 0x0702, 0xf9f9, 0x0000 },
-  { 0x8702, 0xf9fc, 0x2000 },
-  { 0x0702, 0xf9fb, 0x0000 },
-  { 0x0702, 0xf9fd, 0x0000 },
-  { 0x8702, 0xfa02, 0x3000 },
-  { 0x8702, 0xfa00, 0x2000 },
-  { 0x0702, 0xf9ff, 0x0000 },
-  { 0x0702, 0xfa01, 0x0000 },
-  { 0x8702, 0xfa04, 0x2000 },
-  { 0x0702, 0xfa03, 0x0000 },
-  { 0x0702, 0xfa05, 0x0000 },
-  { 0x8702, 0xfa0e, 0x4000 },
-  { 0x8702, 0xfa0a, 0x3000 },
-  { 0x8702, 0xfa08, 0x2000 },
-  { 0x0702, 0xfa07, 0x0000 },
-  { 0x0702, 0xfa09, 0x0000 },
-  { 0x8702, 0xfa0c, 0x2000 },
-  { 0x0702, 0xfa0b, 0x0000 },
-  { 0x0702, 0xfa0d, 0x0000 },
-  { 0x8702, 0xfa12, 0x3000 },
-  { 0x8702, 0xfa10, 0x2000 },
-  { 0x0702, 0xfa0f, 0x0000 },
-  { 0x0702, 0xfa11, 0x0000 },
-  { 0x8702, 0xfa14, 0x2000 },
-  { 0x0702, 0xfa13, 0x0000 },
-  { 0x0702, 0xfa15, 0x0000 },
-  { 0x810e, 0x0027, 0x5000 },
-  { 0x810e, 0x0001, 0x4000 },
-  { 0x8702, 0xfa1a, 0x3000 },
-  { 0x8702, 0xfa18, 0x2000 },
-  { 0x0702, 0xfa17, 0x0000 },
-  { 0x0702, 0xfa19, 0x0000 },
-  { 0x8702, 0xfa1c, 0x2000 },
-  { 0x0702, 0xfa1b, 0x0000 },
-  { 0x0702, 0xfa1d, 0x0000 },
-  { 0x810e, 0x0023, 0x3000 },
-  { 0x810e, 0x0021, 0x2000 },
-  { 0x010e, 0x0020, 0x0000 },
-  { 0x010e, 0x0022, 0x0000 },
-  { 0x810e, 0x0025, 0x2000 },
-  { 0x010e, 0x0024, 0x0000 },
-  { 0x010e, 0x0026, 0x0000 },
-  { 0x810e, 0x002f, 0x4000 },
-  { 0x810e, 0x002b, 0x3000 },
-  { 0x810e, 0x0029, 0x2000 },
-  { 0x010e, 0x0028, 0x0000 },
-  { 0x010e, 0x002a, 0x0000 },
-  { 0x810e, 0x002d, 0x2000 },
-  { 0x010e, 0x002c, 0x0000 },
-  { 0x010e, 0x002e, 0x0000 },
-  { 0x810e, 0x0033, 0x3000 },
-  { 0x810e, 0x0031, 0x2000 },
-  { 0x010e, 0x0030, 0x0000 },
-  { 0x010e, 0x0032, 0x0000 },
-  { 0x810e, 0x0035, 0x2000 },
-  { 0x010e, 0x0034, 0x0000 },
-  { 0x010e, 0x0036, 0x0000 },
-  { 0x810e, 0x0057, 0x6000 },
-  { 0x810e, 0x0047, 0x5000 },
-  { 0x810e, 0x003f, 0x4000 },
-  { 0x810e, 0x003b, 0x3000 },
-  { 0x810e, 0x0039, 0x2000 },
-  { 0x010e, 0x0038, 0x0000 },
-  { 0x010e, 0x003a, 0x0000 },
-  { 0x810e, 0x003d, 0x2000 },
-  { 0x010e, 0x003c, 0x0000 },
-  { 0x010e, 0x003e, 0x0000 },
-  { 0x810e, 0x0043, 0x3000 },
-  { 0x810e, 0x0041, 0x2000 },
-  { 0x010e, 0x0040, 0x0000 },
-  { 0x010e, 0x0042, 0x0000 },
-  { 0x810e, 0x0045, 0x2000 },
-  { 0x010e, 0x0044, 0x0000 },
-  { 0x010e, 0x0046, 0x0000 },
-  { 0x810e, 0x004f, 0x4000 },
-  { 0x810e, 0x004b, 0x3000 },
-  { 0x810e, 0x0049, 0x2000 },
-  { 0x010e, 0x0048, 0x0000 },
-  { 0x010e, 0x004a, 0x0000 },
-  { 0x810e, 0x004d, 0x2000 },
-  { 0x010e, 0x004c, 0x0000 },
-  { 0x010e, 0x004e, 0x0000 },
-  { 0x810e, 0x0053, 0x3000 },
-  { 0x810e, 0x0051, 0x2000 },
-  { 0x010e, 0x0050, 0x0000 },
-  { 0x010e, 0x0052, 0x0000 },
-  { 0x810e, 0x0055, 0x2000 },
-  { 0x010e, 0x0054, 0x0000 },
-  { 0x010e, 0x0056, 0x0000 },
-  { 0x810e, 0x0067, 0x5000 },
-  { 0x810e, 0x005f, 0x4000 },
-  { 0x810e, 0x005b, 0x3000 },
-  { 0x810e, 0x0059, 0x2000 },
-  { 0x010e, 0x0058, 0x0000 },
-  { 0x010e, 0x005a, 0x0000 },
-  { 0x810e, 0x005d, 0x2000 },
-  { 0x010e, 0x005c, 0x0000 },
-  { 0x010e, 0x005e, 0x0000 },
-  { 0x810e, 0x0063, 0x3000 },
-  { 0x810e, 0x0061, 0x2000 },
-  { 0x010e, 0x0060, 0x0000 },
-  { 0x010e, 0x0062, 0x0000 },
-  { 0x810e, 0x0065, 0x2000 },
-  { 0x010e, 0x0064, 0x0000 },
-  { 0x010e, 0x0066, 0x0000 },
-  { 0x810e, 0x006f, 0x4000 },
-  { 0x810e, 0x006b, 0x3000 },
-  { 0x810e, 0x0069, 0x2000 },
-  { 0x010e, 0x0068, 0x0000 },
-  { 0x010e, 0x006a, 0x0000 },
-  { 0x810e, 0x006d, 0x2000 },
-  { 0x010e, 0x006c, 0x0000 },
-  { 0x010e, 0x006e, 0x0000 },
-  { 0x810e, 0x0073, 0x3000 },
-  { 0x810e, 0x0071, 0x2000 },
-  { 0x010e, 0x0070, 0x0000 },
-  { 0x010e, 0x0072, 0x0000 },
-  { 0x810e, 0x0075, 0x2000 },
-  { 0x010e, 0x0074, 0x0000 },
-  { 0x010e, 0x0076, 0x0000 },
-  { 0x8c0e, 0x0177, 0x8000 },
-  { 0x8c0e, 0x0137, 0x7000 },
-  { 0x8c0e, 0x0117, 0x6000 },
-  { 0x8c0e, 0x0107, 0x5000 },
-  { 0x810e, 0x007f, 0x4000 },
-  { 0x810e, 0x007b, 0x3000 },
-  { 0x810e, 0x0079, 0x2000 },
-  { 0x010e, 0x0078, 0x0000 },
-  { 0x010e, 0x007a, 0x0000 },
-  { 0x810e, 0x007d, 0x2000 },
-  { 0x010e, 0x007c, 0x0000 },
-  { 0x010e, 0x007e, 0x0000 },
-  { 0x8c0e, 0x0103, 0x3000 },
-  { 0x8c0e, 0x0101, 0x2000 },
-  { 0x0c0e, 0x0100, 0x0000 },
-  { 0x0c0e, 0x0102, 0x0000 },
-  { 0x8c0e, 0x0105, 0x2000 },
-  { 0x0c0e, 0x0104, 0x0000 },
-  { 0x0c0e, 0x0106, 0x0000 },
-  { 0x8c0e, 0x010f, 0x4000 },
-  { 0x8c0e, 0x010b, 0x3000 },
-  { 0x8c0e, 0x0109, 0x2000 },
-  { 0x0c0e, 0x0108, 0x0000 },
-  { 0x0c0e, 0x010a, 0x0000 },
-  { 0x8c0e, 0x010d, 0x2000 },
-  { 0x0c0e, 0x010c, 0x0000 },
-  { 0x0c0e, 0x010e, 0x0000 },
-  { 0x8c0e, 0x0113, 0x3000 },
-  { 0x8c0e, 0x0111, 0x2000 },
-  { 0x0c0e, 0x0110, 0x0000 },
-  { 0x0c0e, 0x0112, 0x0000 },
-  { 0x8c0e, 0x0115, 0x2000 },
-  { 0x0c0e, 0x0114, 0x0000 },
-  { 0x0c0e, 0x0116, 0x0000 },
-  { 0x8c0e, 0x0127, 0x5000 },
-  { 0x8c0e, 0x011f, 0x4000 },
-  { 0x8c0e, 0x011b, 0x3000 },
-  { 0x8c0e, 0x0119, 0x2000 },
-  { 0x0c0e, 0x0118, 0x0000 },
-  { 0x0c0e, 0x011a, 0x0000 },
-  { 0x8c0e, 0x011d, 0x2000 },
-  { 0x0c0e, 0x011c, 0x0000 },
-  { 0x0c0e, 0x011e, 0x0000 },
-  { 0x8c0e, 0x0123, 0x3000 },
-  { 0x8c0e, 0x0121, 0x2000 },
-  { 0x0c0e, 0x0120, 0x0000 },
-  { 0x0c0e, 0x0122, 0x0000 },
-  { 0x8c0e, 0x0125, 0x2000 },
-  { 0x0c0e, 0x0124, 0x0000 },
-  { 0x0c0e, 0x0126, 0x0000 },
-  { 0x8c0e, 0x012f, 0x4000 },
-  { 0x8c0e, 0x012b, 0x3000 },
-  { 0x8c0e, 0x0129, 0x2000 },
-  { 0x0c0e, 0x0128, 0x0000 },
-  { 0x0c0e, 0x012a, 0x0000 },
-  { 0x8c0e, 0x012d, 0x2000 },
-  { 0x0c0e, 0x012c, 0x0000 },
-  { 0x0c0e, 0x012e, 0x0000 },
-  { 0x8c0e, 0x0133, 0x3000 },
-  { 0x8c0e, 0x0131, 0x2000 },
-  { 0x0c0e, 0x0130, 0x0000 },
-  { 0x0c0e, 0x0132, 0x0000 },
-  { 0x8c0e, 0x0135, 0x2000 },
-  { 0x0c0e, 0x0134, 0x0000 },
-  { 0x0c0e, 0x0136, 0x0000 },
-  { 0x8c0e, 0x0157, 0x6000 },
-  { 0x8c0e, 0x0147, 0x5000 },
-  { 0x8c0e, 0x013f, 0x4000 },
-  { 0x8c0e, 0x013b, 0x3000 },
-  { 0x8c0e, 0x0139, 0x2000 },
-  { 0x0c0e, 0x0138, 0x0000 },
-  { 0x0c0e, 0x013a, 0x0000 },
-  { 0x8c0e, 0x013d, 0x2000 },
-  { 0x0c0e, 0x013c, 0x0000 },
-  { 0x0c0e, 0x013e, 0x0000 },
-  { 0x8c0e, 0x0143, 0x3000 },
-  { 0x8c0e, 0x0141, 0x2000 },
-  { 0x0c0e, 0x0140, 0x0000 },
-  { 0x0c0e, 0x0142, 0x0000 },
-  { 0x8c0e, 0x0145, 0x2000 },
-  { 0x0c0e, 0x0144, 0x0000 },
-  { 0x0c0e, 0x0146, 0x0000 },
-  { 0x8c0e, 0x014f, 0x4000 },
-  { 0x8c0e, 0x014b, 0x3000 },
-  { 0x8c0e, 0x0149, 0x2000 },
-  { 0x0c0e, 0x0148, 0x0000 },
-  { 0x0c0e, 0x014a, 0x0000 },
-  { 0x8c0e, 0x014d, 0x2000 },
-  { 0x0c0e, 0x014c, 0x0000 },
-  { 0x0c0e, 0x014e, 0x0000 },
-  { 0x8c0e, 0x0153, 0x3000 },
-  { 0x8c0e, 0x0151, 0x2000 },
-  { 0x0c0e, 0x0150, 0x0000 },
-  { 0x0c0e, 0x0152, 0x0000 },
-  { 0x8c0e, 0x0155, 0x2000 },
-  { 0x0c0e, 0x0154, 0x0000 },
-  { 0x0c0e, 0x0156, 0x0000 },
-  { 0x8c0e, 0x0167, 0x5000 },
-  { 0x8c0e, 0x015f, 0x4000 },
-  { 0x8c0e, 0x015b, 0x3000 },
-  { 0x8c0e, 0x0159, 0x2000 },
-  { 0x0c0e, 0x0158, 0x0000 },
-  { 0x0c0e, 0x015a, 0x0000 },
-  { 0x8c0e, 0x015d, 0x2000 },
-  { 0x0c0e, 0x015c, 0x0000 },
-  { 0x0c0e, 0x015e, 0x0000 },
-  { 0x8c0e, 0x0163, 0x3000 },
-  { 0x8c0e, 0x0161, 0x2000 },
-  { 0x0c0e, 0x0160, 0x0000 },
-  { 0x0c0e, 0x0162, 0x0000 },
-  { 0x8c0e, 0x0165, 0x2000 },
-  { 0x0c0e, 0x0164, 0x0000 },
-  { 0x0c0e, 0x0166, 0x0000 },
-  { 0x8c0e, 0x016f, 0x4000 },
-  { 0x8c0e, 0x016b, 0x3000 },
-  { 0x8c0e, 0x0169, 0x2000 },
-  { 0x0c0e, 0x0168, 0x0000 },
-  { 0x0c0e, 0x016a, 0x0000 },
-  { 0x8c0e, 0x016d, 0x2000 },
-  { 0x0c0e, 0x016c, 0x0000 },
-  { 0x0c0e, 0x016e, 0x0000 },
-  { 0x8c0e, 0x0173, 0x3000 },
-  { 0x8c0e, 0x0171, 0x2000 },
-  { 0x0c0e, 0x0170, 0x0000 },
-  { 0x0c0e, 0x0172, 0x0000 },
-  { 0x8c0e, 0x0175, 0x2000 },
-  { 0x0c0e, 0x0174, 0x0000 },
-  { 0x0c0e, 0x0176, 0x0000 },
-  { 0x8c0e, 0x01b7, 0x7000 },
-  { 0x8c0e, 0x0197, 0x6000 },
-  { 0x8c0e, 0x0187, 0x5000 },
-  { 0x8c0e, 0x017f, 0x4000 },
-  { 0x8c0e, 0x017b, 0x3000 },
-  { 0x8c0e, 0x0179, 0x2000 },
-  { 0x0c0e, 0x0178, 0x0000 },
-  { 0x0c0e, 0x017a, 0x0000 },
-  { 0x8c0e, 0x017d, 0x2000 },
-  { 0x0c0e, 0x017c, 0x0000 },
-  { 0x0c0e, 0x017e, 0x0000 },
-  { 0x8c0e, 0x0183, 0x3000 },
-  { 0x8c0e, 0x0181, 0x2000 },
-  { 0x0c0e, 0x0180, 0x0000 },
-  { 0x0c0e, 0x0182, 0x0000 },
-  { 0x8c0e, 0x0185, 0x2000 },
-  { 0x0c0e, 0x0184, 0x0000 },
-  { 0x0c0e, 0x0186, 0x0000 },
-  { 0x8c0e, 0x018f, 0x4000 },
-  { 0x8c0e, 0x018b, 0x3000 },
-  { 0x8c0e, 0x0189, 0x2000 },
-  { 0x0c0e, 0x0188, 0x0000 },
-  { 0x0c0e, 0x018a, 0x0000 },
-  { 0x8c0e, 0x018d, 0x2000 },
-  { 0x0c0e, 0x018c, 0x0000 },
-  { 0x0c0e, 0x018e, 0x0000 },
-  { 0x8c0e, 0x0193, 0x3000 },
-  { 0x8c0e, 0x0191, 0x2000 },
-  { 0x0c0e, 0x0190, 0x0000 },
-  { 0x0c0e, 0x0192, 0x0000 },
-  { 0x8c0e, 0x0195, 0x2000 },
-  { 0x0c0e, 0x0194, 0x0000 },
-  { 0x0c0e, 0x0196, 0x0000 },
-  { 0x8c0e, 0x01a7, 0x5000 },
-  { 0x8c0e, 0x019f, 0x4000 },
-  { 0x8c0e, 0x019b, 0x3000 },
-  { 0x8c0e, 0x0199, 0x2000 },
-  { 0x0c0e, 0x0198, 0x0000 },
-  { 0x0c0e, 0x019a, 0x0000 },
-  { 0x8c0e, 0x019d, 0x2000 },
-  { 0x0c0e, 0x019c, 0x0000 },
-  { 0x0c0e, 0x019e, 0x0000 },
-  { 0x8c0e, 0x01a3, 0x3000 },
-  { 0x8c0e, 0x01a1, 0x2000 },
-  { 0x0c0e, 0x01a0, 0x0000 },
-  { 0x0c0e, 0x01a2, 0x0000 },
-  { 0x8c0e, 0x01a5, 0x2000 },
-  { 0x0c0e, 0x01a4, 0x0000 },
-  { 0x0c0e, 0x01a6, 0x0000 },
-  { 0x8c0e, 0x01af, 0x4000 },
-  { 0x8c0e, 0x01ab, 0x3000 },
-  { 0x8c0e, 0x01a9, 0x2000 },
-  { 0x0c0e, 0x01a8, 0x0000 },
-  { 0x0c0e, 0x01aa, 0x0000 },
-  { 0x8c0e, 0x01ad, 0x2000 },
-  { 0x0c0e, 0x01ac, 0x0000 },
-  { 0x0c0e, 0x01ae, 0x0000 },
-  { 0x8c0e, 0x01b3, 0x3000 },
-  { 0x8c0e, 0x01b1, 0x2000 },
-  { 0x0c0e, 0x01b0, 0x0000 },
-  { 0x0c0e, 0x01b2, 0x0000 },
-  { 0x8c0e, 0x01b5, 0x2000 },
-  { 0x0c0e, 0x01b4, 0x0000 },
-  { 0x0c0e, 0x01b6, 0x0000 },
-  { 0x8c0e, 0x01d7, 0x6000 },
-  { 0x8c0e, 0x01c7, 0x5000 },
-  { 0x8c0e, 0x01bf, 0x4000 },
-  { 0x8c0e, 0x01bb, 0x3000 },
-  { 0x8c0e, 0x01b9, 0x2000 },
-  { 0x0c0e, 0x01b8, 0x0000 },
-  { 0x0c0e, 0x01ba, 0x0000 },
-  { 0x8c0e, 0x01bd, 0x2000 },
-  { 0x0c0e, 0x01bc, 0x0000 },
-  { 0x0c0e, 0x01be, 0x0000 },
-  { 0x8c0e, 0x01c3, 0x3000 },
-  { 0x8c0e, 0x01c1, 0x2000 },
-  { 0x0c0e, 0x01c0, 0x0000 },
-  { 0x0c0e, 0x01c2, 0x0000 },
-  { 0x8c0e, 0x01c5, 0x2000 },
-  { 0x0c0e, 0x01c4, 0x0000 },
-  { 0x0c0e, 0x01c6, 0x0000 },
-  { 0x8c0e, 0x01cf, 0x4000 },
-  { 0x8c0e, 0x01cb, 0x3000 },
-  { 0x8c0e, 0x01c9, 0x2000 },
-  { 0x0c0e, 0x01c8, 0x0000 },
-  { 0x0c0e, 0x01ca, 0x0000 },
-  { 0x8c0e, 0x01cd, 0x2000 },
-  { 0x0c0e, 0x01cc, 0x0000 },
-  { 0x0c0e, 0x01ce, 0x0000 },
-  { 0x8c0e, 0x01d3, 0x3000 },
-  { 0x8c0e, 0x01d1, 0x2000 },
-  { 0x0c0e, 0x01d0, 0x0000 },
-  { 0x0c0e, 0x01d2, 0x0000 },
-  { 0x8c0e, 0x01d5, 0x2000 },
-  { 0x0c0e, 0x01d4, 0x0000 },
-  { 0x0c0e, 0x01d6, 0x0000 },
-  { 0x8c0e, 0x01e7, 0x5000 },
-  { 0x8c0e, 0x01df, 0x4000 },
-  { 0x8c0e, 0x01db, 0x3000 },
-  { 0x8c0e, 0x01d9, 0x2000 },
-  { 0x0c0e, 0x01d8, 0x0000 },
-  { 0x0c0e, 0x01da, 0x0000 },
-  { 0x8c0e, 0x01dd, 0x2000 },
-  { 0x0c0e, 0x01dc, 0x0000 },
-  { 0x0c0e, 0x01de, 0x0000 },
-  { 0x8c0e, 0x01e3, 0x3000 },
-  { 0x8c0e, 0x01e1, 0x2000 },
-  { 0x0c0e, 0x01e0, 0x0000 },
-  { 0x0c0e, 0x01e2, 0x0000 },
-  { 0x8c0e, 0x01e5, 0x2000 },
-  { 0x0c0e, 0x01e4, 0x0000 },
-  { 0x0c0e, 0x01e6, 0x0000 },
-  { 0x8c0e, 0x01ef, 0x4000 },
-  { 0x8c0e, 0x01eb, 0x3000 },
-  { 0x8c0e, 0x01e9, 0x2000 },
-  { 0x0c0e, 0x01e8, 0x0000 },
-  { 0x0c0e, 0x01ea, 0x0000 },
-  { 0x8c0e, 0x01ed, 0x2000 },
-  { 0x0c0e, 0x01ec, 0x0000 },
-  { 0x0c0e, 0x01ee, 0x0000 },
-  { 0x830f, 0xfffd, 0x2000 },
-  { 0x030f, 0x0000, 0x0000 },
-  { 0x0310, 0x0000, 0x1000 },
-  { 0x0310, 0xfffd, 0x0000 },
+  { 0x09800000, 0x0000001f },
+  { 0x09000020, 0x74000000 },
+  { 0x09800021, 0x54000002 },
+  { 0x09000024, 0x5c000000 },
+  { 0x09800025, 0x54000002 },
+  { 0x09000028, 0x58000000 },
+  { 0x09000029, 0x48000000 },
+  { 0x0900002a, 0x54000000 },
+  { 0x0900002b, 0x64000000 },
+  { 0x0900002c, 0x54000000 },
+  { 0x0900002d, 0x44000000 },
+  { 0x0980002e, 0x54000001 },
+  { 0x09800030, 0x34000009 },
+  { 0x0980003a, 0x54000001 },
+  { 0x0980003c, 0x64000002 },
+  { 0x0980003f, 0x54000001 },
+  { 0x21000041, 0x24000020 },
+  { 0x21000042, 0x24000020 },
+  { 0x21000043, 0x24000020 },
+  { 0x21000044, 0x24000020 },
+  { 0x21000045, 0x24000020 },
+  { 0x21000046, 0x24000020 },
+  { 0x21000047, 0x24000020 },
+  { 0x21000048, 0x24000020 },
+  { 0x21000049, 0x24000020 },
+  { 0x2100004a, 0x24000020 },
+  { 0x2100004b, 0x24000020 },
+  { 0x2100004c, 0x24000020 },
+  { 0x2100004d, 0x24000020 },
+  { 0x2100004e, 0x24000020 },
+  { 0x2100004f, 0x24000020 },
+  { 0x21000050, 0x24000020 },
+  { 0x21000051, 0x24000020 },
+  { 0x21000052, 0x24000020 },
+  { 0x21000053, 0x24000020 },
+  { 0x21000054, 0x24000020 },
+  { 0x21000055, 0x24000020 },
+  { 0x21000056, 0x24000020 },
+  { 0x21000057, 0x24000020 },
+  { 0x21000058, 0x24000020 },
+  { 0x21000059, 0x24000020 },
+  { 0x2100005a, 0x24000020 },
+  { 0x0900005b, 0x58000000 },
+  { 0x0900005c, 0x54000000 },
+  { 0x0900005d, 0x48000000 },
+  { 0x0900005e, 0x60000000 },
+  { 0x0900005f, 0x40000000 },
+  { 0x09000060, 0x60000000 },
+  { 0x21000061, 0x1400ffe0 },
+  { 0x21000062, 0x1400ffe0 },
+  { 0x21000063, 0x1400ffe0 },
+  { 0x21000064, 0x1400ffe0 },
+  { 0x21000065, 0x1400ffe0 },
+  { 0x21000066, 0x1400ffe0 },
+  { 0x21000067, 0x1400ffe0 },
+  { 0x21000068, 0x1400ffe0 },
+  { 0x21000069, 0x1400ffe0 },
+  { 0x2100006a, 0x1400ffe0 },
+  { 0x2100006b, 0x1400ffe0 },
+  { 0x2100006c, 0x1400ffe0 },
+  { 0x2100006d, 0x1400ffe0 },
+  { 0x2100006e, 0x1400ffe0 },
+  { 0x2100006f, 0x1400ffe0 },
+  { 0x21000070, 0x1400ffe0 },
+  { 0x21000071, 0x1400ffe0 },
+  { 0x21000072, 0x1400ffe0 },
+  { 0x21000073, 0x1400ffe0 },
+  { 0x21000074, 0x1400ffe0 },
+  { 0x21000075, 0x1400ffe0 },
+  { 0x21000076, 0x1400ffe0 },
+  { 0x21000077, 0x1400ffe0 },
+  { 0x21000078, 0x1400ffe0 },
+  { 0x21000079, 0x1400ffe0 },
+  { 0x2100007a, 0x1400ffe0 },
+  { 0x0900007b, 0x58000000 },
+  { 0x0900007c, 0x64000000 },
+  { 0x0900007d, 0x48000000 },
+  { 0x0900007e, 0x64000000 },
+  { 0x0980007f, 0x00000020 },
+  { 0x090000a0, 0x74000000 },
+  { 0x090000a1, 0x54000000 },
+  { 0x098000a2, 0x5c000003 },
+  { 0x098000a6, 0x68000001 },
+  { 0x090000a8, 0x60000000 },
+  { 0x090000a9, 0x68000000 },
+  { 0x210000aa, 0x14000000 },
+  { 0x090000ab, 0x50000000 },
+  { 0x090000ac, 0x64000000 },
+  { 0x090000ad, 0x04000000 },
+  { 0x090000ae, 0x68000000 },
+  { 0x090000af, 0x60000000 },
+  { 0x090000b0, 0x68000000 },
+  { 0x090000b1, 0x64000000 },
+  { 0x098000b2, 0x3c000001 },
+  { 0x090000b4, 0x60000000 },
+  { 0x090000b5, 0x140002e7 },
+  { 0x090000b6, 0x68000000 },
+  { 0x090000b7, 0x54000000 },
+  { 0x090000b8, 0x60000000 },
+  { 0x090000b9, 0x3c000000 },
+  { 0x210000ba, 0x14000000 },
+  { 0x090000bb, 0x4c000000 },
+  { 0x098000bc, 0x3c000002 },
+  { 0x090000bf, 0x54000000 },
+  { 0x210000c0, 0x24000020 },
+  { 0x210000c1, 0x24000020 },
+  { 0x210000c2, 0x24000020 },
+  { 0x210000c3, 0x24000020 },
+  { 0x210000c4, 0x24000020 },
+  { 0x210000c5, 0x24000020 },
+  { 0x210000c6, 0x24000020 },
+  { 0x210000c7, 0x24000020 },
+  { 0x210000c8, 0x24000020 },
+  { 0x210000c9, 0x24000020 },
+  { 0x210000ca, 0x24000020 },
+  { 0x210000cb, 0x24000020 },
+  { 0x210000cc, 0x24000020 },
+  { 0x210000cd, 0x24000020 },
+  { 0x210000ce, 0x24000020 },
+  { 0x210000cf, 0x24000020 },
+  { 0x210000d0, 0x24000020 },
+  { 0x210000d1, 0x24000020 },
+  { 0x210000d2, 0x24000020 },
+  { 0x210000d3, 0x24000020 },
+  { 0x210000d4, 0x24000020 },
+  { 0x210000d5, 0x24000020 },
+  { 0x210000d6, 0x24000020 },
+  { 0x090000d7, 0x64000000 },
+  { 0x210000d8, 0x24000020 },
+  { 0x210000d9, 0x24000020 },
+  { 0x210000da, 0x24000020 },
+  { 0x210000db, 0x24000020 },
+  { 0x210000dc, 0x24000020 },
+  { 0x210000dd, 0x24000020 },
+  { 0x210000de, 0x24000020 },
+  { 0x210000df, 0x14000000 },
+  { 0x210000e0, 0x1400ffe0 },
+  { 0x210000e1, 0x1400ffe0 },
+  { 0x210000e2, 0x1400ffe0 },
+  { 0x210000e3, 0x1400ffe0 },
+  { 0x210000e4, 0x1400ffe0 },
+  { 0x210000e5, 0x1400ffe0 },
+  { 0x210000e6, 0x1400ffe0 },
+  { 0x210000e7, 0x1400ffe0 },
+  { 0x210000e8, 0x1400ffe0 },
+  { 0x210000e9, 0x1400ffe0 },
+  { 0x210000ea, 0x1400ffe0 },
+  { 0x210000eb, 0x1400ffe0 },
+  { 0x210000ec, 0x1400ffe0 },
+  { 0x210000ed, 0x1400ffe0 },
+  { 0x210000ee, 0x1400ffe0 },
+  { 0x210000ef, 0x1400ffe0 },
+  { 0x210000f0, 0x1400ffe0 },
+  { 0x210000f1, 0x1400ffe0 },
+  { 0x210000f2, 0x1400ffe0 },
+  { 0x210000f3, 0x1400ffe0 },
+  { 0x210000f4, 0x1400ffe0 },
+  { 0x210000f5, 0x1400ffe0 },
+  { 0x210000f6, 0x1400ffe0 },
+  { 0x090000f7, 0x64000000 },
+  { 0x210000f8, 0x1400ffe0 },
+  { 0x210000f9, 0x1400ffe0 },
+  { 0x210000fa, 0x1400ffe0 },
+  { 0x210000fb, 0x1400ffe0 },
+  { 0x210000fc, 0x1400ffe0 },
+  { 0x210000fd, 0x1400ffe0 },
+  { 0x210000fe, 0x1400ffe0 },
+  { 0x210000ff, 0x14000079 },
+  { 0x21000100, 0x24000001 },
+  { 0x21000101, 0x1400ffff },
+  { 0x21000102, 0x24000001 },
+  { 0x21000103, 0x1400ffff },
+  { 0x21000104, 0x24000001 },
+  { 0x21000105, 0x1400ffff },
+  { 0x21000106, 0x24000001 },
+  { 0x21000107, 0x1400ffff },
+  { 0x21000108, 0x24000001 },
+  { 0x21000109, 0x1400ffff },
+  { 0x2100010a, 0x24000001 },
+  { 0x2100010b, 0x1400ffff },
+  { 0x2100010c, 0x24000001 },
+  { 0x2100010d, 0x1400ffff },
+  { 0x2100010e, 0x24000001 },
+  { 0x2100010f, 0x1400ffff },
+  { 0x21000110, 0x24000001 },
+  { 0x21000111, 0x1400ffff },
+  { 0x21000112, 0x24000001 },
+  { 0x21000113, 0x1400ffff },
+  { 0x21000114, 0x24000001 },
+  { 0x21000115, 0x1400ffff },
+  { 0x21000116, 0x24000001 },
+  { 0x21000117, 0x1400ffff },
+  { 0x21000118, 0x24000001 },
+  { 0x21000119, 0x1400ffff },
+  { 0x2100011a, 0x24000001 },
+  { 0x2100011b, 0x1400ffff },
+  { 0x2100011c, 0x24000001 },
+  { 0x2100011d, 0x1400ffff },
+  { 0x2100011e, 0x24000001 },
+  { 0x2100011f, 0x1400ffff },
+  { 0x21000120, 0x24000001 },
+  { 0x21000121, 0x1400ffff },
+  { 0x21000122, 0x24000001 },
+  { 0x21000123, 0x1400ffff },
+  { 0x21000124, 0x24000001 },
+  { 0x21000125, 0x1400ffff },
+  { 0x21000126, 0x24000001 },
+  { 0x21000127, 0x1400ffff },
+  { 0x21000128, 0x24000001 },
+  { 0x21000129, 0x1400ffff },
+  { 0x2100012a, 0x24000001 },
+  { 0x2100012b, 0x1400ffff },
+  { 0x2100012c, 0x24000001 },
+  { 0x2100012d, 0x1400ffff },
+  { 0x2100012e, 0x24000001 },
+  { 0x2100012f, 0x1400ffff },
+  { 0x21000130, 0x2400ff39 },
+  { 0x21000131, 0x1400ff18 },
+  { 0x21000132, 0x24000001 },
+  { 0x21000133, 0x1400ffff },
+  { 0x21000134, 0x24000001 },
+  { 0x21000135, 0x1400ffff },
+  { 0x21000136, 0x24000001 },
+  { 0x21000137, 0x1400ffff },
+  { 0x21000138, 0x14000000 },
+  { 0x21000139, 0x24000001 },
+  { 0x2100013a, 0x1400ffff },
+  { 0x2100013b, 0x24000001 },
+  { 0x2100013c, 0x1400ffff },
+  { 0x2100013d, 0x24000001 },
+  { 0x2100013e, 0x1400ffff },
+  { 0x2100013f, 0x24000001 },
+  { 0x21000140, 0x1400ffff },
+  { 0x21000141, 0x24000001 },
+  { 0x21000142, 0x1400ffff },
+  { 0x21000143, 0x24000001 },
+  { 0x21000144, 0x1400ffff },
+  { 0x21000145, 0x24000001 },
+  { 0x21000146, 0x1400ffff },
+  { 0x21000147, 0x24000001 },
+  { 0x21000148, 0x1400ffff },
+  { 0x21000149, 0x14000000 },
+  { 0x2100014a, 0x24000001 },
+  { 0x2100014b, 0x1400ffff },
+  { 0x2100014c, 0x24000001 },
+  { 0x2100014d, 0x1400ffff },
+  { 0x2100014e, 0x24000001 },
+  { 0x2100014f, 0x1400ffff },
+  { 0x21000150, 0x24000001 },
+  { 0x21000151, 0x1400ffff },
+  { 0x21000152, 0x24000001 },
+  { 0x21000153, 0x1400ffff },
+  { 0x21000154, 0x24000001 },
+  { 0x21000155, 0x1400ffff },
+  { 0x21000156, 0x24000001 },
+  { 0x21000157, 0x1400ffff },
+  { 0x21000158, 0x24000001 },
+  { 0x21000159, 0x1400ffff },
+  { 0x2100015a, 0x24000001 },
+  { 0x2100015b, 0x1400ffff },
+  { 0x2100015c, 0x24000001 },
+  { 0x2100015d, 0x1400ffff },
+  { 0x2100015e, 0x24000001 },
+  { 0x2100015f, 0x1400ffff },
+  { 0x21000160, 0x24000001 },
+  { 0x21000161, 0x1400ffff },
+  { 0x21000162, 0x24000001 },
+  { 0x21000163, 0x1400ffff },
+  { 0x21000164, 0x24000001 },
+  { 0x21000165, 0x1400ffff },
+  { 0x21000166, 0x24000001 },
+  { 0x21000167, 0x1400ffff },
+  { 0x21000168, 0x24000001 },
+  { 0x21000169, 0x1400ffff },
+  { 0x2100016a, 0x24000001 },
+  { 0x2100016b, 0x1400ffff },
+  { 0x2100016c, 0x24000001 },
+  { 0x2100016d, 0x1400ffff },
+  { 0x2100016e, 0x24000001 },
+  { 0x2100016f, 0x1400ffff },
+  { 0x21000170, 0x24000001 },
+  { 0x21000171, 0x1400ffff },
+  { 0x21000172, 0x24000001 },
+  { 0x21000173, 0x1400ffff },
+  { 0x21000174, 0x24000001 },
+  { 0x21000175, 0x1400ffff },
+  { 0x21000176, 0x24000001 },
+  { 0x21000177, 0x1400ffff },
+  { 0x21000178, 0x2400ff87 },
+  { 0x21000179, 0x24000001 },
+  { 0x2100017a, 0x1400ffff },
+  { 0x2100017b, 0x24000001 },
+  { 0x2100017c, 0x1400ffff },
+  { 0x2100017d, 0x24000001 },
+  { 0x2100017e, 0x1400ffff },
+  { 0x2100017f, 0x1400fed4 },
+  { 0x21000180, 0x140000c3 },
+  { 0x21000181, 0x240000d2 },
+  { 0x21000182, 0x24000001 },
+  { 0x21000183, 0x1400ffff },
+  { 0x21000184, 0x24000001 },
+  { 0x21000185, 0x1400ffff },
+  { 0x21000186, 0x240000ce },
+  { 0x21000187, 0x24000001 },
+  { 0x21000188, 0x1400ffff },
+  { 0x21000189, 0x240000cd },
+  { 0x2100018a, 0x240000cd },
+  { 0x2100018b, 0x24000001 },
+  { 0x2100018c, 0x1400ffff },
+  { 0x2100018d, 0x14000000 },
+  { 0x2100018e, 0x2400004f },
+  { 0x2100018f, 0x240000ca },
+  { 0x21000190, 0x240000cb },
+  { 0x21000191, 0x24000001 },
+  { 0x21000192, 0x1400ffff },
+  { 0x21000193, 0x240000cd },
+  { 0x21000194, 0x240000cf },
+  { 0x21000195, 0x14000061 },
+  { 0x21000196, 0x240000d3 },
+  { 0x21000197, 0x240000d1 },
+  { 0x21000198, 0x24000001 },
+  { 0x21000199, 0x1400ffff },
+  { 0x2100019a, 0x140000a3 },
+  { 0x2100019b, 0x14000000 },
+  { 0x2100019c, 0x240000d3 },
+  { 0x2100019d, 0x240000d5 },
+  { 0x2100019e, 0x14000082 },
+  { 0x2100019f, 0x240000d6 },
+  { 0x210001a0, 0x24000001 },
+  { 0x210001a1, 0x1400ffff },
+  { 0x210001a2, 0x24000001 },
+  { 0x210001a3, 0x1400ffff },
+  { 0x210001a4, 0x24000001 },
+  { 0x210001a5, 0x1400ffff },
+  { 0x210001a6, 0x240000da },
+  { 0x210001a7, 0x24000001 },
+  { 0x210001a8, 0x1400ffff },
+  { 0x210001a9, 0x240000da },
+  { 0x218001aa, 0x14000001 },
+  { 0x210001ac, 0x24000001 },
+  { 0x210001ad, 0x1400ffff },
+  { 0x210001ae, 0x240000da },
+  { 0x210001af, 0x24000001 },
+  { 0x210001b0, 0x1400ffff },
+  { 0x210001b1, 0x240000d9 },
+  { 0x210001b2, 0x240000d9 },
+  { 0x210001b3, 0x24000001 },
+  { 0x210001b4, 0x1400ffff },
+  { 0x210001b5, 0x24000001 },
+  { 0x210001b6, 0x1400ffff },
+  { 0x210001b7, 0x240000db },
+  { 0x210001b8, 0x24000001 },
+  { 0x210001b9, 0x1400ffff },
+  { 0x210001ba, 0x14000000 },
+  { 0x210001bb, 0x1c000000 },
+  { 0x210001bc, 0x24000001 },
+  { 0x210001bd, 0x1400ffff },
+  { 0x210001be, 0x14000000 },
+  { 0x210001bf, 0x14000038 },
+  { 0x218001c0, 0x1c000003 },
+  { 0x210001c4, 0x24000002 },
+  { 0x210001c5, 0x2000ffff },
+  { 0x210001c6, 0x1400fffe },
+  { 0x210001c7, 0x24000002 },
+  { 0x210001c8, 0x2000ffff },
+  { 0x210001c9, 0x1400fffe },
+  { 0x210001ca, 0x24000002 },
+  { 0x210001cb, 0x2000ffff },
+  { 0x210001cc, 0x1400fffe },
+  { 0x210001cd, 0x24000001 },
+  { 0x210001ce, 0x1400ffff },
+  { 0x210001cf, 0x24000001 },
+  { 0x210001d0, 0x1400ffff },
+  { 0x210001d1, 0x24000001 },
+  { 0x210001d2, 0x1400ffff },
+  { 0x210001d3, 0x24000001 },
+  { 0x210001d4, 0x1400ffff },
+  { 0x210001d5, 0x24000001 },
+  { 0x210001d6, 0x1400ffff },
+  { 0x210001d7, 0x24000001 },
+  { 0x210001d8, 0x1400ffff },
+  { 0x210001d9, 0x24000001 },
+  { 0x210001da, 0x1400ffff },
+  { 0x210001db, 0x24000001 },
+  { 0x210001dc, 0x1400ffff },
+  { 0x210001dd, 0x1400ffb1 },
+  { 0x210001de, 0x24000001 },
+  { 0x210001df, 0x1400ffff },
+  { 0x210001e0, 0x24000001 },
+  { 0x210001e1, 0x1400ffff },
+  { 0x210001e2, 0x24000001 },
+  { 0x210001e3, 0x1400ffff },
+  { 0x210001e4, 0x24000001 },
+  { 0x210001e5, 0x1400ffff },
+  { 0x210001e6, 0x24000001 },
+  { 0x210001e7, 0x1400ffff },
+  { 0x210001e8, 0x24000001 },
+  { 0x210001e9, 0x1400ffff },
+  { 0x210001ea, 0x24000001 },
+  { 0x210001eb, 0x1400ffff },
+  { 0x210001ec, 0x24000001 },
+  { 0x210001ed, 0x1400ffff },
+  { 0x210001ee, 0x24000001 },
+  { 0x210001ef, 0x1400ffff },
+  { 0x210001f0, 0x14000000 },
+  { 0x210001f1, 0x24000002 },
+  { 0x210001f2, 0x2000ffff },
+  { 0x210001f3, 0x1400fffe },
+  { 0x210001f4, 0x24000001 },
+  { 0x210001f5, 0x1400ffff },
+  { 0x210001f6, 0x2400ff9f },
+  { 0x210001f7, 0x2400ffc8 },
+  { 0x210001f8, 0x24000001 },
+  { 0x210001f9, 0x1400ffff },
+  { 0x210001fa, 0x24000001 },
+  { 0x210001fb, 0x1400ffff },
+  { 0x210001fc, 0x24000001 },
+  { 0x210001fd, 0x1400ffff },
+  { 0x210001fe, 0x24000001 },
+  { 0x210001ff, 0x1400ffff },
+  { 0x21000200, 0x24000001 },
+  { 0x21000201, 0x1400ffff },
+  { 0x21000202, 0x24000001 },
+  { 0x21000203, 0x1400ffff },
+  { 0x21000204, 0x24000001 },
+  { 0x21000205, 0x1400ffff },
+  { 0x21000206, 0x24000001 },
+  { 0x21000207, 0x1400ffff },
+  { 0x21000208, 0x24000001 },
+  { 0x21000209, 0x1400ffff },
+  { 0x2100020a, 0x24000001 },
+  { 0x2100020b, 0x1400ffff },
+  { 0x2100020c, 0x24000001 },
+  { 0x2100020d, 0x1400ffff },
+  { 0x2100020e, 0x24000001 },
+  { 0x2100020f, 0x1400ffff },
+  { 0x21000210, 0x24000001 },
+  { 0x21000211, 0x1400ffff },
+  { 0x21000212, 0x24000001 },
+  { 0x21000213, 0x1400ffff },
+  { 0x21000214, 0x24000001 },
+  { 0x21000215, 0x1400ffff },
+  { 0x21000216, 0x24000001 },
+  { 0x21000217, 0x1400ffff },
+  { 0x21000218, 0x24000001 },
+  { 0x21000219, 0x1400ffff },
+  { 0x2100021a, 0x24000001 },
+  { 0x2100021b, 0x1400ffff },
+  { 0x2100021c, 0x24000001 },
+  { 0x2100021d, 0x1400ffff },
+  { 0x2100021e, 0x24000001 },
+  { 0x2100021f, 0x1400ffff },
+  { 0x21000220, 0x2400ff7e },
+  { 0x21000221, 0x14000000 },
+  { 0x21000222, 0x24000001 },
+  { 0x21000223, 0x1400ffff },
+  { 0x21000224, 0x24000001 },
+  { 0x21000225, 0x1400ffff },
+  { 0x21000226, 0x24000001 },
+  { 0x21000227, 0x1400ffff },
+  { 0x21000228, 0x24000001 },
+  { 0x21000229, 0x1400ffff },
+  { 0x2100022a, 0x24000001 },
+  { 0x2100022b, 0x1400ffff },
+  { 0x2100022c, 0x24000001 },
+  { 0x2100022d, 0x1400ffff },
+  { 0x2100022e, 0x24000001 },
+  { 0x2100022f, 0x1400ffff },
+  { 0x21000230, 0x24000001 },
+  { 0x21000231, 0x1400ffff },
+  { 0x21000232, 0x24000001 },
+  { 0x21000233, 0x1400ffff },
+  { 0x21800234, 0x14000005 },
+  { 0x2100023a, 0x24002a2b },
+  { 0x2100023b, 0x24000001 },
+  { 0x2100023c, 0x1400ffff },
+  { 0x2100023d, 0x2400ff5d },
+  { 0x2100023e, 0x24002a28 },
+  { 0x2180023f, 0x14000001 },
+  { 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 },
+  { 0x21000255, 0x14000000 },
+  { 0x21000256, 0x1400ff33 },
+  { 0x21000257, 0x1400ff33 },
+  { 0x21000258, 0x14000000 },
+  { 0x21000259, 0x1400ff36 },
+  { 0x2100025a, 0x14000000 },
+  { 0x2100025b, 0x1400ff35 },
+  { 0x2180025c, 0x14000003 },
+  { 0x21000260, 0x1400ff33 },
+  { 0x21800261, 0x14000001 },
+  { 0x21000263, 0x1400ff31 },
+  { 0x21800264, 0x14000003 },
+  { 0x21000268, 0x1400ff2f },
+  { 0x21000269, 0x1400ff2d },
+  { 0x2100026a, 0x14000000 },
+  { 0x2100026b, 0x140029f7 },
+  { 0x2180026c, 0x14000002 },
+  { 0x2100026f, 0x1400ff2d },
+  { 0x21800270, 0x14000001 },
+  { 0x21000272, 0x1400ff2b },
+  { 0x21800273, 0x14000001 },
+  { 0x21000275, 0x1400ff2a },
+  { 0x21800276, 0x14000006 },
+  { 0x2100027d, 0x140029e7 },
+  { 0x2180027e, 0x14000001 },
+  { 0x21000280, 0x1400ff26 },
+  { 0x21800281, 0x14000001 },
+  { 0x21000283, 0x1400ff26 },
+  { 0x21800284, 0x14000003 },
+  { 0x21000288, 0x1400ff26 },
+  { 0x21000289, 0x1400ffbb },
+  { 0x2100028a, 0x1400ff27 },
+  { 0x2100028b, 0x1400ff27 },
+  { 0x2100028c, 0x1400ffb9 },
+  { 0x2180028d, 0x14000004 },
+  { 0x21000292, 0x1400ff25 },
+  { 0x21000293, 0x14000000 },
+  { 0x21000294, 0x1c000000 },
+  { 0x21800295, 0x1400001a },
+  { 0x218002b0, 0x18000011 },
+  { 0x098002c2, 0x60000003 },
+  { 0x098002c6, 0x1800000b },
+  { 0x098002d2, 0x6000000d },
+  { 0x218002e0, 0x18000004 },
+  { 0x098002e5, 0x60000008 },
+  { 0x090002ee, 0x18000000 },
+  { 0x098002ef, 0x60000010 },
+  { 0x1b800300, 0x30000044 },
+  { 0x1b000345, 0x30000054 },
+  { 0x1b800346, 0x30000029 },
+  { 0x13800374, 0x60000001 },
+  { 0x1300037a, 0x18000000 },
+  { 0x1300037b, 0x14000082 },
+  { 0x1300037c, 0x14000082 },
+  { 0x1300037d, 0x14000082 },
+  { 0x0900037e, 0x54000000 },
+  { 0x13800384, 0x60000001 },
+  { 0x13000386, 0x24000026 },
+  { 0x09000387, 0x54000000 },
+  { 0x13000388, 0x24000025 },
+  { 0x13000389, 0x24000025 },
+  { 0x1300038a, 0x24000025 },
+  { 0x1300038c, 0x24000040 },
+  { 0x1300038e, 0x2400003f },
+  { 0x1300038f, 0x2400003f },
+  { 0x13000390, 0x14000000 },
+  { 0x13000391, 0x24000020 },
+  { 0x13000392, 0x24000020 },
+  { 0x13000393, 0x24000020 },
+  { 0x13000394, 0x24000020 },
+  { 0x13000395, 0x24000020 },
+  { 0x13000396, 0x24000020 },
+  { 0x13000397, 0x24000020 },
+  { 0x13000398, 0x24000020 },
+  { 0x13000399, 0x24000020 },
+  { 0x1300039a, 0x24000020 },
+  { 0x1300039b, 0x24000020 },
+  { 0x1300039c, 0x24000020 },
+  { 0x1300039d, 0x24000020 },
+  { 0x1300039e, 0x24000020 },
+  { 0x1300039f, 0x24000020 },
+  { 0x130003a0, 0x24000020 },
+  { 0x130003a1, 0x24000020 },
+  { 0x130003a3, 0x24000020 },
+  { 0x130003a4, 0x24000020 },
+  { 0x130003a5, 0x24000020 },
+  { 0x130003a6, 0x24000020 },
+  { 0x130003a7, 0x24000020 },
+  { 0x130003a8, 0x24000020 },
+  { 0x130003a9, 0x24000020 },
+  { 0x130003aa, 0x24000020 },
+  { 0x130003ab, 0x24000020 },
+  { 0x130003ac, 0x1400ffda },
+  { 0x130003ad, 0x1400ffdb },
+  { 0x130003ae, 0x1400ffdb },
+  { 0x130003af, 0x1400ffdb },
+  { 0x130003b0, 0x14000000 },
+  { 0x130003b1, 0x1400ffe0 },
+  { 0x130003b2, 0x1400ffe0 },
+  { 0x130003b3, 0x1400ffe0 },
+  { 0x130003b4, 0x1400ffe0 },
+  { 0x130003b5, 0x1400ffe0 },
+  { 0x130003b6, 0x1400ffe0 },
+  { 0x130003b7, 0x1400ffe0 },
+  { 0x130003b8, 0x1400ffe0 },
+  { 0x130003b9, 0x1400ffe0 },
+  { 0x130003ba, 0x1400ffe0 },
+  { 0x130003bb, 0x1400ffe0 },
+  { 0x130003bc, 0x1400ffe0 },
+  { 0x130003bd, 0x1400ffe0 },
+  { 0x130003be, 0x1400ffe0 },
+  { 0x130003bf, 0x1400ffe0 },
+  { 0x130003c0, 0x1400ffe0 },
+  { 0x130003c1, 0x1400ffe0 },
+  { 0x130003c2, 0x1400ffe1 },
+  { 0x130003c3, 0x1400ffe0 },
+  { 0x130003c4, 0x1400ffe0 },
+  { 0x130003c5, 0x1400ffe0 },
+  { 0x130003c6, 0x1400ffe0 },
+  { 0x130003c7, 0x1400ffe0 },
+  { 0x130003c8, 0x1400ffe0 },
+  { 0x130003c9, 0x1400ffe0 },
+  { 0x130003ca, 0x1400ffe0 },
+  { 0x130003cb, 0x1400ffe0 },
+  { 0x130003cc, 0x1400ffc0 },
+  { 0x130003cd, 0x1400ffc1 },
+  { 0x130003ce, 0x1400ffc1 },
+  { 0x130003d0, 0x1400ffc2 },
+  { 0x130003d1, 0x1400ffc7 },
+  { 0x138003d2, 0x24000002 },
+  { 0x130003d5, 0x1400ffd1 },
+  { 0x130003d6, 0x1400ffca },
+  { 0x130003d7, 0x14000000 },
+  { 0x130003d8, 0x24000001 },
+  { 0x130003d9, 0x1400ffff },
+  { 0x130003da, 0x24000001 },
+  { 0x130003db, 0x1400ffff },
+  { 0x130003dc, 0x24000001 },
+  { 0x130003dd, 0x1400ffff },
+  { 0x130003de, 0x24000001 },
+  { 0x130003df, 0x1400ffff },
+  { 0x130003e0, 0x24000001 },
+  { 0x130003e1, 0x1400ffff },
+  { 0x0a0003e2, 0x24000001 },
+  { 0x0a0003e3, 0x1400ffff },
+  { 0x0a0003e4, 0x24000001 },
+  { 0x0a0003e5, 0x1400ffff },
+  { 0x0a0003e6, 0x24000001 },
+  { 0x0a0003e7, 0x1400ffff },
+  { 0x0a0003e8, 0x24000001 },
+  { 0x0a0003e9, 0x1400ffff },
+  { 0x0a0003ea, 0x24000001 },
+  { 0x0a0003eb, 0x1400ffff },
+  { 0x0a0003ec, 0x24000001 },
+  { 0x0a0003ed, 0x1400ffff },
+  { 0x0a0003ee, 0x24000001 },
+  { 0x0a0003ef, 0x1400ffff },
+  { 0x130003f0, 0x1400ffaa },
+  { 0x130003f1, 0x1400ffb0 },
+  { 0x130003f2, 0x14000007 },
+  { 0x130003f3, 0x14000000 },
+  { 0x130003f4, 0x2400ffc4 },
+  { 0x130003f5, 0x1400ffa0 },
+  { 0x130003f6, 0x64000000 },
+  { 0x130003f7, 0x24000001 },
+  { 0x130003f8, 0x1400ffff },
+  { 0x130003f9, 0x2400fff9 },
+  { 0x130003fa, 0x24000001 },
+  { 0x130003fb, 0x1400ffff },
+  { 0x130003fc, 0x14000000 },
+  { 0x130003fd, 0x2400ff7e },
+  { 0x130003fe, 0x2400ff7e },
+  { 0x130003ff, 0x2400ff7e },
+  { 0x0c000400, 0x24000050 },
+  { 0x0c000401, 0x24000050 },
+  { 0x0c000402, 0x24000050 },
+  { 0x0c000403, 0x24000050 },
+  { 0x0c000404, 0x24000050 },
+  { 0x0c000405, 0x24000050 },
+  { 0x0c000406, 0x24000050 },
+  { 0x0c000407, 0x24000050 },
+  { 0x0c000408, 0x24000050 },
+  { 0x0c000409, 0x24000050 },
+  { 0x0c00040a, 0x24000050 },
+  { 0x0c00040b, 0x24000050 },
+  { 0x0c00040c, 0x24000050 },
+  { 0x0c00040d, 0x24000050 },
+  { 0x0c00040e, 0x24000050 },
+  { 0x0c00040f, 0x24000050 },
+  { 0x0c000410, 0x24000020 },
+  { 0x0c000411, 0x24000020 },
+  { 0x0c000412, 0x24000020 },
+  { 0x0c000413, 0x24000020 },
+  { 0x0c000414, 0x24000020 },
+  { 0x0c000415, 0x24000020 },
+  { 0x0c000416, 0x24000020 },
+  { 0x0c000417, 0x24000020 },
+  { 0x0c000418, 0x24000020 },
+  { 0x0c000419, 0x24000020 },
+  { 0x0c00041a, 0x24000020 },
+  { 0x0c00041b, 0x24000020 },
+  { 0x0c00041c, 0x24000020 },
+  { 0x0c00041d, 0x24000020 },
+  { 0x0c00041e, 0x24000020 },
+  { 0x0c00041f, 0x24000020 },
+  { 0x0c000420, 0x24000020 },
+  { 0x0c000421, 0x24000020 },
+  { 0x0c000422, 0x24000020 },
+  { 0x0c000423, 0x24000020 },
+  { 0x0c000424, 0x24000020 },
+  { 0x0c000425, 0x24000020 },
+  { 0x0c000426, 0x24000020 },
+  { 0x0c000427, 0x24000020 },
+  { 0x0c000428, 0x24000020 },
+  { 0x0c000429, 0x24000020 },
+  { 0x0c00042a, 0x24000020 },
+  { 0x0c00042b, 0x24000020 },
+  { 0x0c00042c, 0x24000020 },
+  { 0x0c00042d, 0x24000020 },
+  { 0x0c00042e, 0x24000020 },
+  { 0x0c00042f, 0x24000020 },
+  { 0x0c000430, 0x1400ffe0 },
+  { 0x0c000431, 0x1400ffe0 },
+  { 0x0c000432, 0x1400ffe0 },
+  { 0x0c000433, 0x1400ffe0 },
+  { 0x0c000434, 0x1400ffe0 },
+  { 0x0c000435, 0x1400ffe0 },
+  { 0x0c000436, 0x1400ffe0 },
+  { 0x0c000437, 0x1400ffe0 },
+  { 0x0c000438, 0x1400ffe0 },
+  { 0x0c000439, 0x1400ffe0 },
+  { 0x0c00043a, 0x1400ffe0 },
+  { 0x0c00043b, 0x1400ffe0 },
+  { 0x0c00043c, 0x1400ffe0 },
+  { 0x0c00043d, 0x1400ffe0 },
+  { 0x0c00043e, 0x1400ffe0 },
+  { 0x0c00043f, 0x1400ffe0 },
+  { 0x0c000440, 0x1400ffe0 },
+  { 0x0c000441, 0x1400ffe0 },
+  { 0x0c000442, 0x1400ffe0 },
+  { 0x0c000443, 0x1400ffe0 },
+  { 0x0c000444, 0x1400ffe0 },
+  { 0x0c000445, 0x1400ffe0 },
+  { 0x0c000446, 0x1400ffe0 },
+  { 0x0c000447, 0x1400ffe0 },
+  { 0x0c000448, 0x1400ffe0 },
+  { 0x0c000449, 0x1400ffe0 },
+  { 0x0c00044a, 0x1400ffe0 },
+  { 0x0c00044b, 0x1400ffe0 },
+  { 0x0c00044c, 0x1400ffe0 },
+  { 0x0c00044d, 0x1400ffe0 },
+  { 0x0c00044e, 0x1400ffe0 },
+  { 0x0c00044f, 0x1400ffe0 },
+  { 0x0c000450, 0x1400ffb0 },
+  { 0x0c000451, 0x1400ffb0 },
+  { 0x0c000452, 0x1400ffb0 },
+  { 0x0c000453, 0x1400ffb0 },
+  { 0x0c000454, 0x1400ffb0 },
+  { 0x0c000455, 0x1400ffb0 },
+  { 0x0c000456, 0x1400ffb0 },
+  { 0x0c000457, 0x1400ffb0 },
+  { 0x0c000458, 0x1400ffb0 },
+  { 0x0c000459, 0x1400ffb0 },
+  { 0x0c00045a, 0x1400ffb0 },
+  { 0x0c00045b, 0x1400ffb0 },
+  { 0x0c00045c, 0x1400ffb0 },
+  { 0x0c00045d, 0x1400ffb0 },
+  { 0x0c00045e, 0x1400ffb0 },
+  { 0x0c00045f, 0x1400ffb0 },
+  { 0x0c000460, 0x24000001 },
+  { 0x0c000461, 0x1400ffff },
+  { 0x0c000462, 0x24000001 },
+  { 0x0c000463, 0x1400ffff },
+  { 0x0c000464, 0x24000001 },
+  { 0x0c000465, 0x1400ffff },
+  { 0x0c000466, 0x24000001 },
+  { 0x0c000467, 0x1400ffff },
+  { 0x0c000468, 0x24000001 },
+  { 0x0c000469, 0x1400ffff },
+  { 0x0c00046a, 0x24000001 },
+  { 0x0c00046b, 0x1400ffff },
+  { 0x0c00046c, 0x24000001 },
+  { 0x0c00046d, 0x1400ffff },
+  { 0x0c00046e, 0x24000001 },
+  { 0x0c00046f, 0x1400ffff },
+  { 0x0c000470, 0x24000001 },
+  { 0x0c000471, 0x1400ffff },
+  { 0x0c000472, 0x24000001 },
+  { 0x0c000473, 0x1400ffff },
+  { 0x0c000474, 0x24000001 },
+  { 0x0c000475, 0x1400ffff },
+  { 0x0c000476, 0x24000001 },
+  { 0x0c000477, 0x1400ffff },
+  { 0x0c000478, 0x24000001 },
+  { 0x0c000479, 0x1400ffff },
+  { 0x0c00047a, 0x24000001 },
+  { 0x0c00047b, 0x1400ffff },
+  { 0x0c00047c, 0x24000001 },
+  { 0x0c00047d, 0x1400ffff },
+  { 0x0c00047e, 0x24000001 },
+  { 0x0c00047f, 0x1400ffff },
+  { 0x0c000480, 0x24000001 },
+  { 0x0c000481, 0x1400ffff },
+  { 0x0c000482, 0x68000000 },
+  { 0x0c800483, 0x30000003 },
+  { 0x0c800488, 0x2c000001 },
+  { 0x0c00048a, 0x24000001 },
+  { 0x0c00048b, 0x1400ffff },
+  { 0x0c00048c, 0x24000001 },
+  { 0x0c00048d, 0x1400ffff },
+  { 0x0c00048e, 0x24000001 },
+  { 0x0c00048f, 0x1400ffff },
+  { 0x0c000490, 0x24000001 },
+  { 0x0c000491, 0x1400ffff },
+  { 0x0c000492, 0x24000001 },
+  { 0x0c000493, 0x1400ffff },
+  { 0x0c000494, 0x24000001 },
+  { 0x0c000495, 0x1400ffff },
+  { 0x0c000496, 0x24000001 },
+  { 0x0c000497, 0x1400ffff },
+  { 0x0c000498, 0x24000001 },
+  { 0x0c000499, 0x1400ffff },
+  { 0x0c00049a, 0x24000001 },
+  { 0x0c00049b, 0x1400ffff },
+  { 0x0c00049c, 0x24000001 },
+  { 0x0c00049d, 0x1400ffff },
+  { 0x0c00049e, 0x24000001 },
+  { 0x0c00049f, 0x1400ffff },
+  { 0x0c0004a0, 0x24000001 },
+  { 0x0c0004a1, 0x1400ffff },
+  { 0x0c0004a2, 0x24000001 },
+  { 0x0c0004a3, 0x1400ffff },
+  { 0x0c0004a4, 0x24000001 },
+  { 0x0c0004a5, 0x1400ffff },
+  { 0x0c0004a6, 0x24000001 },
+  { 0x0c0004a7, 0x1400ffff },
+  { 0x0c0004a8, 0x24000001 },
+  { 0x0c0004a9, 0x1400ffff },
+  { 0x0c0004aa, 0x24000001 },
+  { 0x0c0004ab, 0x1400ffff },
+  { 0x0c0004ac, 0x24000001 },
+  { 0x0c0004ad, 0x1400ffff },
+  { 0x0c0004ae, 0x24000001 },
+  { 0x0c0004af, 0x1400ffff },
+  { 0x0c0004b0, 0x24000001 },
+  { 0x0c0004b1, 0x1400ffff },
+  { 0x0c0004b2, 0x24000001 },
+  { 0x0c0004b3, 0x1400ffff },
+  { 0x0c0004b4, 0x24000001 },
+  { 0x0c0004b5, 0x1400ffff },
+  { 0x0c0004b6, 0x24000001 },
+  { 0x0c0004b7, 0x1400ffff },
+  { 0x0c0004b8, 0x24000001 },
+  { 0x0c0004b9, 0x1400ffff },
+  { 0x0c0004ba, 0x24000001 },
+  { 0x0c0004bb, 0x1400ffff },
+  { 0x0c0004bc, 0x24000001 },
+  { 0x0c0004bd, 0x1400ffff },
+  { 0x0c0004be, 0x24000001 },
+  { 0x0c0004bf, 0x1400ffff },
+  { 0x0c0004c0, 0x2400000f },
+  { 0x0c0004c1, 0x24000001 },
+  { 0x0c0004c2, 0x1400ffff },
+  { 0x0c0004c3, 0x24000001 },
+  { 0x0c0004c4, 0x1400ffff },
+  { 0x0c0004c5, 0x24000001 },
+  { 0x0c0004c6, 0x1400ffff },
+  { 0x0c0004c7, 0x24000001 },
+  { 0x0c0004c8, 0x1400ffff },
+  { 0x0c0004c9, 0x24000001 },
+  { 0x0c0004ca, 0x1400ffff },
+  { 0x0c0004cb, 0x24000001 },
+  { 0x0c0004cc, 0x1400ffff },
+  { 0x0c0004cd, 0x24000001 },
+  { 0x0c0004ce, 0x1400ffff },
+  { 0x0c0004cf, 0x1400fff1 },
+  { 0x0c0004d0, 0x24000001 },
+  { 0x0c0004d1, 0x1400ffff },
+  { 0x0c0004d2, 0x24000001 },
+  { 0x0c0004d3, 0x1400ffff },
+  { 0x0c0004d4, 0x24000001 },
+  { 0x0c0004d5, 0x1400ffff },
+  { 0x0c0004d6, 0x24000001 },
+  { 0x0c0004d7, 0x1400ffff },
+  { 0x0c0004d8, 0x24000001 },
+  { 0x0c0004d9, 0x1400ffff },
+  { 0x0c0004da, 0x24000001 },
+  { 0x0c0004db, 0x1400ffff },
+  { 0x0c0004dc, 0x24000001 },
+  { 0x0c0004dd, 0x1400ffff },
+  { 0x0c0004de, 0x24000001 },
+  { 0x0c0004df, 0x1400ffff },
+  { 0x0c0004e0, 0x24000001 },
+  { 0x0c0004e1, 0x1400ffff },
+  { 0x0c0004e2, 0x24000001 },
+  { 0x0c0004e3, 0x1400ffff },
+  { 0x0c0004e4, 0x24000001 },
+  { 0x0c0004e5, 0x1400ffff },
+  { 0x0c0004e6, 0x24000001 },
+  { 0x0c0004e7, 0x1400ffff },
+  { 0x0c0004e8, 0x24000001 },
+  { 0x0c0004e9, 0x1400ffff },
+  { 0x0c0004ea, 0x24000001 },
+  { 0x0c0004eb, 0x1400ffff },
+  { 0x0c0004ec, 0x24000001 },
+  { 0x0c0004ed, 0x1400ffff },
+  { 0x0c0004ee, 0x24000001 },
+  { 0x0c0004ef, 0x1400ffff },
+  { 0x0c0004f0, 0x24000001 },
+  { 0x0c0004f1, 0x1400ffff },
+  { 0x0c0004f2, 0x24000001 },
+  { 0x0c0004f3, 0x1400ffff },
+  { 0x0c0004f4, 0x24000001 },
+  { 0x0c0004f5, 0x1400ffff },
+  { 0x0c0004f6, 0x24000001 },
+  { 0x0c0004f7, 0x1400ffff },
+  { 0x0c0004f8, 0x24000001 },
+  { 0x0c0004f9, 0x1400ffff },
+  { 0x0c0004fa, 0x24000001 },
+  { 0x0c0004fb, 0x1400ffff },
+  { 0x0c0004fc, 0x24000001 },
+  { 0x0c0004fd, 0x1400ffff },
+  { 0x0c0004fe, 0x24000001 },
+  { 0x0c0004ff, 0x1400ffff },
+  { 0x0c000500, 0x24000001 },
+  { 0x0c000501, 0x1400ffff },
+  { 0x0c000502, 0x24000001 },
+  { 0x0c000503, 0x1400ffff },
+  { 0x0c000504, 0x24000001 },
+  { 0x0c000505, 0x1400ffff },
+  { 0x0c000506, 0x24000001 },
+  { 0x0c000507, 0x1400ffff },
+  { 0x0c000508, 0x24000001 },
+  { 0x0c000509, 0x1400ffff },
+  { 0x0c00050a, 0x24000001 },
+  { 0x0c00050b, 0x1400ffff },
+  { 0x0c00050c, 0x24000001 },
+  { 0x0c00050d, 0x1400ffff },
+  { 0x0c00050e, 0x24000001 },
+  { 0x0c00050f, 0x1400ffff },
+  { 0x0c000510, 0x24000001 },
+  { 0x0c000511, 0x1400ffff },
+  { 0x0c000512, 0x24000001 },
+  { 0x0c000513, 0x1400ffff },
+  { 0x01000531, 0x24000030 },
+  { 0x01000532, 0x24000030 },
+  { 0x01000533, 0x24000030 },
+  { 0x01000534, 0x24000030 },
+  { 0x01000535, 0x24000030 },
+  { 0x01000536, 0x24000030 },
+  { 0x01000537, 0x24000030 },
+  { 0x01000538, 0x24000030 },
+  { 0x01000539, 0x24000030 },
+  { 0x0100053a, 0x24000030 },
+  { 0x0100053b, 0x24000030 },
+  { 0x0100053c, 0x24000030 },
+  { 0x0100053d, 0x24000030 },
+  { 0x0100053e, 0x24000030 },
+  { 0x0100053f, 0x24000030 },
+  { 0x01000540, 0x24000030 },
+  { 0x01000541, 0x24000030 },
+  { 0x01000542, 0x24000030 },
+  { 0x01000543, 0x24000030 },
+  { 0x01000544, 0x24000030 },
+  { 0x01000545, 0x24000030 },
+  { 0x01000546, 0x24000030 },
+  { 0x01000547, 0x24000030 },
+  { 0x01000548, 0x24000030 },
+  { 0x01000549, 0x24000030 },
+  { 0x0100054a, 0x24000030 },
+  { 0x0100054b, 0x24000030 },
+  { 0x0100054c, 0x24000030 },
+  { 0x0100054d, 0x24000030 },
+  { 0x0100054e, 0x24000030 },
+  { 0x0100054f, 0x24000030 },
+  { 0x01000550, 0x24000030 },
+  { 0x01000551, 0x24000030 },
+  { 0x01000552, 0x24000030 },
+  { 0x01000553, 0x24000030 },
+  { 0x01000554, 0x24000030 },
+  { 0x01000555, 0x24000030 },
+  { 0x01000556, 0x24000030 },
+  { 0x01000559, 0x18000000 },
+  { 0x0180055a, 0x54000005 },
+  { 0x01000561, 0x1400ffd0 },
+  { 0x01000562, 0x1400ffd0 },
+  { 0x01000563, 0x1400ffd0 },
+  { 0x01000564, 0x1400ffd0 },
+  { 0x01000565, 0x1400ffd0 },
+  { 0x01000566, 0x1400ffd0 },
+  { 0x01000567, 0x1400ffd0 },
+  { 0x01000568, 0x1400ffd0 },
+  { 0x01000569, 0x1400ffd0 },
+  { 0x0100056a, 0x1400ffd0 },
+  { 0x0100056b, 0x1400ffd0 },
+  { 0x0100056c, 0x1400ffd0 },
+  { 0x0100056d, 0x1400ffd0 },
+  { 0x0100056e, 0x1400ffd0 },
+  { 0x0100056f, 0x1400ffd0 },
+  { 0x01000570, 0x1400ffd0 },
+  { 0x01000571, 0x1400ffd0 },
+  { 0x01000572, 0x1400ffd0 },
+  { 0x01000573, 0x1400ffd0 },
+  { 0x01000574, 0x1400ffd0 },
+  { 0x01000575, 0x1400ffd0 },
+  { 0x01000576, 0x1400ffd0 },
+  { 0x01000577, 0x1400ffd0 },
+  { 0x01000578, 0x1400ffd0 },
+  { 0x01000579, 0x1400ffd0 },
+  { 0x0100057a, 0x1400ffd0 },
+  { 0x0100057b, 0x1400ffd0 },
+  { 0x0100057c, 0x1400ffd0 },
+  { 0x0100057d, 0x1400ffd0 },
+  { 0x0100057e, 0x1400ffd0 },
+  { 0x0100057f, 0x1400ffd0 },
+  { 0x01000580, 0x1400ffd0 },
+  { 0x01000581, 0x1400ffd0 },
+  { 0x01000582, 0x1400ffd0 },
+  { 0x01000583, 0x1400ffd0 },
+  { 0x01000584, 0x1400ffd0 },
+  { 0x01000585, 0x1400ffd0 },
+  { 0x01000586, 0x1400ffd0 },
+  { 0x01000587, 0x14000000 },
+  { 0x09000589, 0x54000000 },
+  { 0x0100058a, 0x44000000 },
+  { 0x19800591, 0x3000002c },
+  { 0x190005be, 0x54000000 },
+  { 0x190005bf, 0x30000000 },
+  { 0x190005c0, 0x54000000 },
+  { 0x198005c1, 0x30000001 },
+  { 0x190005c3, 0x54000000 },
+  { 0x198005c4, 0x30000001 },
+  { 0x190005c6, 0x54000000 },
+  { 0x190005c7, 0x30000000 },
+  { 0x198005d0, 0x1c00001a },
+  { 0x198005f0, 0x1c000002 },
+  { 0x198005f3, 0x54000001 },
+  { 0x09800600, 0x04000003 },
+  { 0x0000060b, 0x5c000000 },
+  { 0x0980060c, 0x54000001 },
+  { 0x0080060e, 0x68000001 },
+  { 0x00800610, 0x30000005 },
+  { 0x0900061b, 0x54000000 },
+  { 0x0080061e, 0x54000001 },
+  { 0x00800621, 0x1c000019 },
+  { 0x09000640, 0x18000000 },
+  { 0x00800641, 0x1c000009 },
+  { 0x1b80064b, 0x30000013 },
+  { 0x09800660, 0x34000009 },
+  { 0x0080066a, 0x54000003 },
+  { 0x0080066e, 0x1c000001 },
+  { 0x1b000670, 0x30000000 },
+  { 0x00800671, 0x1c000062 },
+  { 0x000006d4, 0x54000000 },
+  { 0x000006d5, 0x1c000000 },
+  { 0x008006d6, 0x30000006 },
+  { 0x090006dd, 0x04000000 },
+  { 0x000006de, 0x2c000000 },
+  { 0x008006df, 0x30000005 },
+  { 0x008006e5, 0x18000001 },
+  { 0x008006e7, 0x30000001 },
+  { 0x000006e9, 0x68000000 },
+  { 0x008006ea, 0x30000003 },
+  { 0x008006ee, 0x1c000001 },
+  { 0x008006f0, 0x34000009 },
+  { 0x008006fa, 0x1c000002 },
+  { 0x008006fd, 0x68000001 },
+  { 0x000006ff, 0x1c000000 },
+  { 0x31800700, 0x5400000d },
+  { 0x3100070f, 0x04000000 },
+  { 0x31000710, 0x1c000000 },
+  { 0x31000711, 0x30000000 },
+  { 0x31800712, 0x1c00001d },
+  { 0x31800730, 0x3000001a },
+  { 0x3180074d, 0x1c000020 },
+  { 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 },
+  { 0x0e00093c, 0x30000000 },
+  { 0x0e00093d, 0x1c000000 },
+  { 0x0e80093e, 0x28000002 },
+  { 0x0e800941, 0x30000007 },
+  { 0x0e800949, 0x28000003 },
+  { 0x0e00094d, 0x30000000 },
+  { 0x0e000950, 0x1c000000 },
+  { 0x0e800951, 0x30000003 },
+  { 0x0e800958, 0x1c000009 },
+  { 0x0e800962, 0x30000001 },
+  { 0x09800964, 0x54000001 },
+  { 0x0e800966, 0x34000009 },
+  { 0x09000970, 0x54000000 },
+  { 0x0e80097b, 0x1c000004 },
+  { 0x02000981, 0x30000000 },
+  { 0x02800982, 0x28000001 },
+  { 0x02800985, 0x1c000007 },
+  { 0x0280098f, 0x1c000001 },
+  { 0x02800993, 0x1c000015 },
+  { 0x028009aa, 0x1c000006 },
+  { 0x020009b2, 0x1c000000 },
+  { 0x028009b6, 0x1c000003 },
+  { 0x020009bc, 0x30000000 },
+  { 0x020009bd, 0x1c000000 },
+  { 0x028009be, 0x28000002 },
+  { 0x028009c1, 0x30000003 },
+  { 0x028009c7, 0x28000001 },
+  { 0x028009cb, 0x28000001 },
+  { 0x020009cd, 0x30000000 },
+  { 0x020009ce, 0x1c000000 },
+  { 0x020009d7, 0x28000000 },
+  { 0x028009dc, 0x1c000001 },
+  { 0x028009df, 0x1c000002 },
+  { 0x028009e2, 0x30000001 },
+  { 0x028009e6, 0x34000009 },
+  { 0x028009f0, 0x1c000001 },
+  { 0x028009f2, 0x5c000001 },
+  { 0x028009f4, 0x3c000005 },
+  { 0x020009fa, 0x68000000 },
+  { 0x15800a01, 0x30000001 },
+  { 0x15000a03, 0x28000000 },
+  { 0x15800a05, 0x1c000005 },
+  { 0x15800a0f, 0x1c000001 },
+  { 0x15800a13, 0x1c000015 },
+  { 0x15800a2a, 0x1c000006 },
+  { 0x15800a32, 0x1c000001 },
+  { 0x15800a35, 0x1c000001 },
+  { 0x15800a38, 0x1c000001 },
+  { 0x15000a3c, 0x30000000 },
+  { 0x15800a3e, 0x28000002 },
+  { 0x15800a41, 0x30000001 },
+  { 0x15800a47, 0x30000001 },
+  { 0x15800a4b, 0x30000002 },
+  { 0x15800a59, 0x1c000003 },
+  { 0x15000a5e, 0x1c000000 },
+  { 0x15800a66, 0x34000009 },
+  { 0x15800a70, 0x30000001 },
+  { 0x15800a72, 0x1c000002 },
+  { 0x14800a81, 0x30000001 },
+  { 0x14000a83, 0x28000000 },
+  { 0x14800a85, 0x1c000008 },
+  { 0x14800a8f, 0x1c000002 },
+  { 0x14800a93, 0x1c000015 },
+  { 0x14800aaa, 0x1c000006 },
+  { 0x14800ab2, 0x1c000001 },
+  { 0x14800ab5, 0x1c000004 },
+  { 0x14000abc, 0x30000000 },
+  { 0x14000abd, 0x1c000000 },
+  { 0x14800abe, 0x28000002 },
+  { 0x14800ac1, 0x30000004 },
+  { 0x14800ac7, 0x30000001 },
+  { 0x14000ac9, 0x28000000 },
+  { 0x14800acb, 0x28000001 },
+  { 0x14000acd, 0x30000000 },
+  { 0x14000ad0, 0x1c000000 },
+  { 0x14800ae0, 0x1c000001 },
+  { 0x14800ae2, 0x30000001 },
+  { 0x14800ae6, 0x34000009 },
+  { 0x14000af1, 0x5c000000 },
+  { 0x2b000b01, 0x30000000 },
+  { 0x2b800b02, 0x28000001 },
+  { 0x2b800b05, 0x1c000007 },
+  { 0x2b800b0f, 0x1c000001 },
+  { 0x2b800b13, 0x1c000015 },
+  { 0x2b800b2a, 0x1c000006 },
+  { 0x2b800b32, 0x1c000001 },
+  { 0x2b800b35, 0x1c000004 },
+  { 0x2b000b3c, 0x30000000 },
+  { 0x2b000b3d, 0x1c000000 },
+  { 0x2b000b3e, 0x28000000 },
+  { 0x2b000b3f, 0x30000000 },
+  { 0x2b000b40, 0x28000000 },
+  { 0x2b800b41, 0x30000002 },
+  { 0x2b800b47, 0x28000001 },
+  { 0x2b800b4b, 0x28000001 },
+  { 0x2b000b4d, 0x30000000 },
+  { 0x2b000b56, 0x30000000 },
+  { 0x2b000b57, 0x28000000 },
+  { 0x2b800b5c, 0x1c000001 },
+  { 0x2b800b5f, 0x1c000002 },
+  { 0x2b800b66, 0x34000009 },
+  { 0x2b000b70, 0x68000000 },
+  { 0x2b000b71, 0x1c000000 },
+  { 0x35000b82, 0x30000000 },
+  { 0x35000b83, 0x1c000000 },
+  { 0x35800b85, 0x1c000005 },
+  { 0x35800b8e, 0x1c000002 },
+  { 0x35800b92, 0x1c000003 },
+  { 0x35800b99, 0x1c000001 },
+  { 0x35000b9c, 0x1c000000 },
+  { 0x35800b9e, 0x1c000001 },
+  { 0x35800ba3, 0x1c000001 },
+  { 0x35800ba8, 0x1c000002 },
+  { 0x35800bae, 0x1c00000b },
+  { 0x35800bbe, 0x28000001 },
+  { 0x35000bc0, 0x30000000 },
+  { 0x35800bc1, 0x28000001 },
+  { 0x35800bc6, 0x28000002 },
+  { 0x35800bca, 0x28000002 },
+  { 0x35000bcd, 0x30000000 },
+  { 0x35000bd7, 0x28000000 },
+  { 0x35800be6, 0x34000009 },
+  { 0x35800bf0, 0x3c000002 },
+  { 0x35800bf3, 0x68000005 },
+  { 0x35000bf9, 0x5c000000 },
+  { 0x35000bfa, 0x68000000 },
+  { 0x36800c01, 0x28000002 },
+  { 0x36800c05, 0x1c000007 },
+  { 0x36800c0e, 0x1c000002 },
+  { 0x36800c12, 0x1c000016 },
+  { 0x36800c2a, 0x1c000009 },
+  { 0x36800c35, 0x1c000004 },
+  { 0x36800c3e, 0x30000002 },
+  { 0x36800c41, 0x28000003 },
+  { 0x36800c46, 0x30000002 },
+  { 0x36800c4a, 0x30000003 },
+  { 0x36800c55, 0x30000001 },
+  { 0x36800c60, 0x1c000001 },
+  { 0x36800c66, 0x34000009 },
+  { 0x1c800c82, 0x28000001 },
+  { 0x1c800c85, 0x1c000007 },
+  { 0x1c800c8e, 0x1c000002 },
+  { 0x1c800c92, 0x1c000016 },
+  { 0x1c800caa, 0x1c000009 },
+  { 0x1c800cb5, 0x1c000004 },
+  { 0x1c000cbc, 0x30000000 },
+  { 0x1c000cbd, 0x1c000000 },
+  { 0x1c000cbe, 0x28000000 },
+  { 0x1c000cbf, 0x30000000 },
+  { 0x1c800cc0, 0x28000004 },
+  { 0x1c000cc6, 0x30000000 },
+  { 0x1c800cc7, 0x28000001 },
+  { 0x1c800cca, 0x28000001 },
+  { 0x1c800ccc, 0x30000001 },
+  { 0x1c800cd5, 0x28000001 },
+  { 0x1c000cde, 0x1c000000 },
+  { 0x1c800ce0, 0x1c000001 },
+  { 0x1c800ce2, 0x30000001 },
+  { 0x1c800ce6, 0x34000009 },
+  { 0x1c800cf1, 0x68000001 },
+  { 0x24800d02, 0x28000001 },
+  { 0x24800d05, 0x1c000007 },
+  { 0x24800d0e, 0x1c000002 },
+  { 0x24800d12, 0x1c000016 },
+  { 0x24800d2a, 0x1c00000f },
+  { 0x24800d3e, 0x28000002 },
+  { 0x24800d41, 0x30000002 },
+  { 0x24800d46, 0x28000002 },
+  { 0x24800d4a, 0x28000002 },
+  { 0x24000d4d, 0x30000000 },
+  { 0x24000d57, 0x28000000 },
+  { 0x24800d60, 0x1c000001 },
+  { 0x24800d66, 0x34000009 },
+  { 0x2f800d82, 0x28000001 },
+  { 0x2f800d85, 0x1c000011 },
+  { 0x2f800d9a, 0x1c000017 },
+  { 0x2f800db3, 0x1c000008 },
+  { 0x2f000dbd, 0x1c000000 },
+  { 0x2f800dc0, 0x1c000006 },
+  { 0x2f000dca, 0x30000000 },
+  { 0x2f800dcf, 0x28000002 },
+  { 0x2f800dd2, 0x30000002 },
+  { 0x2f000dd6, 0x30000000 },
+  { 0x2f800dd8, 0x28000007 },
+  { 0x2f800df2, 0x28000001 },
+  { 0x2f000df4, 0x54000000 },
+  { 0x38800e01, 0x1c00002f },
+  { 0x38000e31, 0x30000000 },
+  { 0x38800e32, 0x1c000001 },
+  { 0x38800e34, 0x30000006 },
+  { 0x09000e3f, 0x5c000000 },
+  { 0x38800e40, 0x1c000005 },
+  { 0x38000e46, 0x18000000 },
+  { 0x38800e47, 0x30000007 },
+  { 0x38000e4f, 0x54000000 },
+  { 0x38800e50, 0x34000009 },
+  { 0x38800e5a, 0x54000001 },
+  { 0x20800e81, 0x1c000001 },
+  { 0x20000e84, 0x1c000000 },
+  { 0x20800e87, 0x1c000001 },
+  { 0x20000e8a, 0x1c000000 },
+  { 0x20000e8d, 0x1c000000 },
+  { 0x20800e94, 0x1c000003 },
+  { 0x20800e99, 0x1c000006 },
+  { 0x20800ea1, 0x1c000002 },
+  { 0x20000ea5, 0x1c000000 },
+  { 0x20000ea7, 0x1c000000 },
+  { 0x20800eaa, 0x1c000001 },
+  { 0x20800ead, 0x1c000003 },
+  { 0x20000eb1, 0x30000000 },
+  { 0x20800eb2, 0x1c000001 },
+  { 0x20800eb4, 0x30000005 },
+  { 0x20800ebb, 0x30000001 },
+  { 0x20000ebd, 0x1c000000 },
+  { 0x20800ec0, 0x1c000004 },
+  { 0x20000ec6, 0x18000000 },
+  { 0x20800ec8, 0x30000005 },
+  { 0x20800ed0, 0x34000009 },
+  { 0x20800edc, 0x1c000001 },
+  { 0x39000f00, 0x1c000000 },
+  { 0x39800f01, 0x68000002 },
+  { 0x39800f04, 0x5400000e },
+  { 0x39800f13, 0x68000004 },
+  { 0x39800f18, 0x30000001 },
+  { 0x39800f1a, 0x68000005 },
+  { 0x39800f20, 0x34000009 },
+  { 0x39800f2a, 0x3c000009 },
+  { 0x39000f34, 0x68000000 },
+  { 0x39000f35, 0x30000000 },
+  { 0x39000f36, 0x68000000 },
+  { 0x39000f37, 0x30000000 },
+  { 0x39000f38, 0x68000000 },
+  { 0x39000f39, 0x30000000 },
+  { 0x39000f3a, 0x58000000 },
+  { 0x39000f3b, 0x48000000 },
+  { 0x39000f3c, 0x58000000 },
+  { 0x39000f3d, 0x48000000 },
+  { 0x39800f3e, 0x28000001 },
+  { 0x39800f40, 0x1c000007 },
+  { 0x39800f49, 0x1c000021 },
+  { 0x39800f71, 0x3000000d },
+  { 0x39000f7f, 0x28000000 },
+  { 0x39800f80, 0x30000004 },
+  { 0x39000f85, 0x54000000 },
+  { 0x39800f86, 0x30000001 },
+  { 0x39800f88, 0x1c000003 },
+  { 0x39800f90, 0x30000007 },
+  { 0x39800f99, 0x30000023 },
+  { 0x39800fbe, 0x68000007 },
+  { 0x39000fc6, 0x30000000 },
+  { 0x39800fc7, 0x68000005 },
+  { 0x39000fcf, 0x68000000 },
+  { 0x39800fd0, 0x54000001 },
+  { 0x26801000, 0x1c000021 },
+  { 0x26801023, 0x1c000004 },
+  { 0x26801029, 0x1c000001 },
+  { 0x2600102c, 0x28000000 },
+  { 0x2680102d, 0x30000003 },
+  { 0x26001031, 0x28000000 },
+  { 0x26001032, 0x30000000 },
+  { 0x26801036, 0x30000001 },
+  { 0x26001038, 0x28000000 },
+  { 0x26001039, 0x30000000 },
+  { 0x26801040, 0x34000009 },
+  { 0x2680104a, 0x54000005 },
+  { 0x26801050, 0x1c000005 },
+  { 0x26801056, 0x28000001 },
+  { 0x26801058, 0x30000001 },
+  { 0x100010a0, 0x24001c60 },
+  { 0x100010a1, 0x24001c60 },
+  { 0x100010a2, 0x24001c60 },
+  { 0x100010a3, 0x24001c60 },
+  { 0x100010a4, 0x24001c60 },
+  { 0x100010a5, 0x24001c60 },
+  { 0x100010a6, 0x24001c60 },
+  { 0x100010a7, 0x24001c60 },
+  { 0x100010a8, 0x24001c60 },
+  { 0x100010a9, 0x24001c60 },
+  { 0x100010aa, 0x24001c60 },
+  { 0x100010ab, 0x24001c60 },
+  { 0x100010ac, 0x24001c60 },
+  { 0x100010ad, 0x24001c60 },
+  { 0x100010ae, 0x24001c60 },
+  { 0x100010af, 0x24001c60 },
+  { 0x100010b0, 0x24001c60 },
+  { 0x100010b1, 0x24001c60 },
+  { 0x100010b2, 0x24001c60 },
+  { 0x100010b3, 0x24001c60 },
+  { 0x100010b4, 0x24001c60 },
+  { 0x100010b5, 0x24001c60 },
+  { 0x100010b6, 0x24001c60 },
+  { 0x100010b7, 0x24001c60 },
+  { 0x100010b8, 0x24001c60 },
+  { 0x100010b9, 0x24001c60 },
+  { 0x100010ba, 0x24001c60 },
+  { 0x100010bb, 0x24001c60 },
+  { 0x100010bc, 0x24001c60 },
+  { 0x100010bd, 0x24001c60 },
+  { 0x100010be, 0x24001c60 },
+  { 0x100010bf, 0x24001c60 },
+  { 0x100010c0, 0x24001c60 },
+  { 0x100010c1, 0x24001c60 },
+  { 0x100010c2, 0x24001c60 },
+  { 0x100010c3, 0x24001c60 },
+  { 0x100010c4, 0x24001c60 },
+  { 0x100010c5, 0x24001c60 },
+  { 0x108010d0, 0x1c00002a },
+  { 0x090010fb, 0x54000000 },
+  { 0x100010fc, 0x18000000 },
+  { 0x17801100, 0x1c000059 },
+  { 0x1780115f, 0x1c000043 },
+  { 0x178011a8, 0x1c000051 },
+  { 0x0f801200, 0x1c000048 },
+  { 0x0f80124a, 0x1c000003 },
+  { 0x0f801250, 0x1c000006 },
+  { 0x0f001258, 0x1c000000 },
+  { 0x0f80125a, 0x1c000003 },
+  { 0x0f801260, 0x1c000028 },
+  { 0x0f80128a, 0x1c000003 },
+  { 0x0f801290, 0x1c000020 },
+  { 0x0f8012b2, 0x1c000003 },
+  { 0x0f8012b8, 0x1c000006 },
+  { 0x0f0012c0, 0x1c000000 },
+  { 0x0f8012c2, 0x1c000003 },
+  { 0x0f8012c8, 0x1c00000e },
+  { 0x0f8012d8, 0x1c000038 },
+  { 0x0f801312, 0x1c000003 },
+  { 0x0f801318, 0x1c000042 },
+  { 0x0f00135f, 0x30000000 },
+  { 0x0f001360, 0x68000000 },
+  { 0x0f801361, 0x54000007 },
+  { 0x0f801369, 0x3c000013 },
+  { 0x0f801380, 0x1c00000f },
+  { 0x0f801390, 0x68000009 },
+  { 0x088013a0, 0x1c000054 },
+  { 0x07801401, 0x1c00026b },
+  { 0x0780166d, 0x54000001 },
+  { 0x0780166f, 0x1c000007 },
+  { 0x28001680, 0x74000000 },
+  { 0x28801681, 0x1c000019 },
+  { 0x2800169b, 0x58000000 },
+  { 0x2800169c, 0x48000000 },
+  { 0x2d8016a0, 0x1c00004a },
+  { 0x098016eb, 0x54000002 },
+  { 0x2d8016ee, 0x38000002 },
+  { 0x32801700, 0x1c00000c },
+  { 0x3280170e, 0x1c000003 },
+  { 0x32801712, 0x30000002 },
+  { 0x18801720, 0x1c000011 },
+  { 0x18801732, 0x30000002 },
+  { 0x09801735, 0x54000001 },
+  { 0x06801740, 0x1c000011 },
+  { 0x06801752, 0x30000001 },
+  { 0x33801760, 0x1c00000c },
+  { 0x3380176e, 0x1c000002 },
+  { 0x33801772, 0x30000001 },
+  { 0x1f801780, 0x1c000033 },
+  { 0x1f8017b4, 0x04000001 },
+  { 0x1f0017b6, 0x28000000 },
+  { 0x1f8017b7, 0x30000006 },
+  { 0x1f8017be, 0x28000007 },
+  { 0x1f0017c6, 0x30000000 },
+  { 0x1f8017c7, 0x28000001 },
+  { 0x1f8017c9, 0x3000000a },
+  { 0x1f8017d4, 0x54000002 },
+  { 0x1f0017d7, 0x18000000 },
+  { 0x1f8017d8, 0x54000002 },
+  { 0x1f0017db, 0x5c000000 },
+  { 0x1f0017dc, 0x1c000000 },
+  { 0x1f0017dd, 0x30000000 },
+  { 0x1f8017e0, 0x34000009 },
+  { 0x1f8017f0, 0x3c000009 },
+  { 0x25801800, 0x54000005 },
+  { 0x25001806, 0x44000000 },
+  { 0x25801807, 0x54000003 },
+  { 0x2580180b, 0x30000002 },
+  { 0x2500180e, 0x74000000 },
+  { 0x25801810, 0x34000009 },
+  { 0x25801820, 0x1c000022 },
+  { 0x25001843, 0x18000000 },
+  { 0x25801844, 0x1c000033 },
+  { 0x25801880, 0x1c000028 },
+  { 0x250018a9, 0x30000000 },
+  { 0x22801900, 0x1c00001c },
+  { 0x22801920, 0x30000002 },
+  { 0x22801923, 0x28000003 },
+  { 0x22801927, 0x30000001 },
+  { 0x22801929, 0x28000002 },
+  { 0x22801930, 0x28000001 },
+  { 0x22001932, 0x30000000 },
+  { 0x22801933, 0x28000005 },
+  { 0x22801939, 0x30000002 },
+  { 0x22001940, 0x68000000 },
+  { 0x22801944, 0x54000001 },
+  { 0x22801946, 0x34000009 },
+  { 0x34801950, 0x1c00001d },
+  { 0x34801970, 0x1c000004 },
+  { 0x27801980, 0x1c000029 },
+  { 0x278019b0, 0x28000010 },
+  { 0x278019c1, 0x1c000006 },
+  { 0x278019c8, 0x28000001 },
+  { 0x278019d0, 0x34000009 },
+  { 0x278019de, 0x54000001 },
+  { 0x1f8019e0, 0x6800001f },
+  { 0x05801a00, 0x1c000016 },
+  { 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, 0x14000003 },
+  { 0x21001d7d, 0x14000ee6 },
+  { 0x21801d7e, 0x1400001c },
+  { 0x21801d9b, 0x18000024 },
+  { 0x1b801dc0, 0x3000000a },
+  { 0x1b801dfe, 0x30000001 },
+  { 0x21001e00, 0x24000001 },
+  { 0x21001e01, 0x1400ffff },
+  { 0x21001e02, 0x24000001 },
+  { 0x21001e03, 0x1400ffff },
+  { 0x21001e04, 0x24000001 },
+  { 0x21001e05, 0x1400ffff },
+  { 0x21001e06, 0x24000001 },
+  { 0x21001e07, 0x1400ffff },
+  { 0x21001e08, 0x24000001 },
+  { 0x21001e09, 0x1400ffff },
+  { 0x21001e0a, 0x24000001 },
+  { 0x21001e0b, 0x1400ffff },
+  { 0x21001e0c, 0x24000001 },
+  { 0x21001e0d, 0x1400ffff },
+  { 0x21001e0e, 0x24000001 },
+  { 0x21001e0f, 0x1400ffff },
+  { 0x21001e10, 0x24000001 },
+  { 0x21001e11, 0x1400ffff },
+  { 0x21001e12, 0x24000001 },
+  { 0x21001e13, 0x1400ffff },
+  { 0x21001e14, 0x24000001 },
+  { 0x21001e15, 0x1400ffff },
+  { 0x21001e16, 0x24000001 },
+  { 0x21001e17, 0x1400ffff },
+  { 0x21001e18, 0x24000001 },
+  { 0x21001e19, 0x1400ffff },
+  { 0x21001e1a, 0x24000001 },
+  { 0x21001e1b, 0x1400ffff },
+  { 0x21001e1c, 0x24000001 },
+  { 0x21001e1d, 0x1400ffff },
+  { 0x21001e1e, 0x24000001 },
+  { 0x21001e1f, 0x1400ffff },
+  { 0x21001e20, 0x24000001 },
+  { 0x21001e21, 0x1400ffff },
+  { 0x21001e22, 0x24000001 },
+  { 0x21001e23, 0x1400ffff },
+  { 0x21001e24, 0x24000001 },
+  { 0x21001e25, 0x1400ffff },
+  { 0x21001e26, 0x24000001 },
+  { 0x21001e27, 0x1400ffff },
+  { 0x21001e28, 0x24000001 },
+  { 0x21001e29, 0x1400ffff },
+  { 0x21001e2a, 0x24000001 },
+  { 0x21001e2b, 0x1400ffff },
+  { 0x21001e2c, 0x24000001 },
+  { 0x21001e2d, 0x1400ffff },
+  { 0x21001e2e, 0x24000001 },
+  { 0x21001e2f, 0x1400ffff },
+  { 0x21001e30, 0x24000001 },
+  { 0x21001e31, 0x1400ffff },
+  { 0x21001e32, 0x24000001 },
+  { 0x21001e33, 0x1400ffff },
+  { 0x21001e34, 0x24000001 },
+  { 0x21001e35, 0x1400ffff },
+  { 0x21001e36, 0x24000001 },
+  { 0x21001e37, 0x1400ffff },
+  { 0x21001e38, 0x24000001 },
+  { 0x21001e39, 0x1400ffff },
+  { 0x21001e3a, 0x24000001 },
+  { 0x21001e3b, 0x1400ffff },
+  { 0x21001e3c, 0x24000001 },
+  { 0x21001e3d, 0x1400ffff },
+  { 0x21001e3e, 0x24000001 },
+  { 0x21001e3f, 0x1400ffff },
+  { 0x21001e40, 0x24000001 },
+  { 0x21001e41, 0x1400ffff },
+  { 0x21001e42, 0x24000001 },
+  { 0x21001e43, 0x1400ffff },
+  { 0x21001e44, 0x24000001 },
+  { 0x21001e45, 0x1400ffff },
+  { 0x21001e46, 0x24000001 },
+  { 0x21001e47, 0x1400ffff },
+  { 0x21001e48, 0x24000001 },
+  { 0x21001e49, 0x1400ffff },
+  { 0x21001e4a, 0x24000001 },
+  { 0x21001e4b, 0x1400ffff },
+  { 0x21001e4c, 0x24000001 },
+  { 0x21001e4d, 0x1400ffff },
+  { 0x21001e4e, 0x24000001 },
+  { 0x21001e4f, 0x1400ffff },
+  { 0x21001e50, 0x24000001 },
+  { 0x21001e51, 0x1400ffff },
+  { 0x21001e52, 0x24000001 },
+  { 0x21001e53, 0x1400ffff },
+  { 0x21001e54, 0x24000001 },
+  { 0x21001e55, 0x1400ffff },
+  { 0x21001e56, 0x24000001 },
+  { 0x21001e57, 0x1400ffff },
+  { 0x21001e58, 0x24000001 },
+  { 0x21001e59, 0x1400ffff },
+  { 0x21001e5a, 0x24000001 },
+  { 0x21001e5b, 0x1400ffff },
+  { 0x21001e5c, 0x24000001 },
+  { 0x21001e5d, 0x1400ffff },
+  { 0x21001e5e, 0x24000001 },
+  { 0x21001e5f, 0x1400ffff },
+  { 0x21001e60, 0x24000001 },
+  { 0x21001e61, 0x1400ffff },
+  { 0x21001e62, 0x24000001 },
+  { 0x21001e63, 0x1400ffff },
+  { 0x21001e64, 0x24000001 },
+  { 0x21001e65, 0x1400ffff },
+  { 0x21001e66, 0x24000001 },
+  { 0x21001e67, 0x1400ffff },
+  { 0x21001e68, 0x24000001 },
+  { 0x21001e69, 0x1400ffff },
+  { 0x21001e6a, 0x24000001 },
+  { 0x21001e6b, 0x1400ffff },
+  { 0x21001e6c, 0x24000001 },
+  { 0x21001e6d, 0x1400ffff },
+  { 0x21001e6e, 0x24000001 },
+  { 0x21001e6f, 0x1400ffff },
+  { 0x21001e70, 0x24000001 },
+  { 0x21001e71, 0x1400ffff },
+  { 0x21001e72, 0x24000001 },
+  { 0x21001e73, 0x1400ffff },
+  { 0x21001e74, 0x24000001 },
+  { 0x21001e75, 0x1400ffff },
+  { 0x21001e76, 0x24000001 },
+  { 0x21001e77, 0x1400ffff },
+  { 0x21001e78, 0x24000001 },
+  { 0x21001e79, 0x1400ffff },
+  { 0x21001e7a, 0x24000001 },
+  { 0x21001e7b, 0x1400ffff },
+  { 0x21001e7c, 0x24000001 },
+  { 0x21001e7d, 0x1400ffff },
+  { 0x21001e7e, 0x24000001 },
+  { 0x21001e7f, 0x1400ffff },
+  { 0x21001e80, 0x24000001 },
+  { 0x21001e81, 0x1400ffff },
+  { 0x21001e82, 0x24000001 },
+  { 0x21001e83, 0x1400ffff },
+  { 0x21001e84, 0x24000001 },
+  { 0x21001e85, 0x1400ffff },
+  { 0x21001e86, 0x24000001 },
+  { 0x21001e87, 0x1400ffff },
+  { 0x21001e88, 0x24000001 },
+  { 0x21001e89, 0x1400ffff },
+  { 0x21001e8a, 0x24000001 },
+  { 0x21001e8b, 0x1400ffff },
+  { 0x21001e8c, 0x24000001 },
+  { 0x21001e8d, 0x1400ffff },
+  { 0x21001e8e, 0x24000001 },
+  { 0x21001e8f, 0x1400ffff },
+  { 0x21001e90, 0x24000001 },
+  { 0x21001e91, 0x1400ffff },
+  { 0x21001e92, 0x24000001 },
+  { 0x21001e93, 0x1400ffff },
+  { 0x21001e94, 0x24000001 },
+  { 0x21001e95, 0x1400ffff },
+  { 0x21801e96, 0x14000004 },
+  { 0x21001e9b, 0x1400ffc5 },
+  { 0x21001ea0, 0x24000001 },
+  { 0x21001ea1, 0x1400ffff },
+  { 0x21001ea2, 0x24000001 },
+  { 0x21001ea3, 0x1400ffff },
+  { 0x21001ea4, 0x24000001 },
+  { 0x21001ea5, 0x1400ffff },
+  { 0x21001ea6, 0x24000001 },
+  { 0x21001ea7, 0x1400ffff },
+  { 0x21001ea8, 0x24000001 },
+  { 0x21001ea9, 0x1400ffff },
+  { 0x21001eaa, 0x24000001 },
+  { 0x21001eab, 0x1400ffff },
+  { 0x21001eac, 0x24000001 },
+  { 0x21001ead, 0x1400ffff },
+  { 0x21001eae, 0x24000001 },
+  { 0x21001eaf, 0x1400ffff },
+  { 0x21001eb0, 0x24000001 },
+  { 0x21001eb1, 0x1400ffff },
+  { 0x21001eb2, 0x24000001 },
+  { 0x21001eb3, 0x1400ffff },
+  { 0x21001eb4, 0x24000001 },
+  { 0x21001eb5, 0x1400ffff },
+  { 0x21001eb6, 0x24000001 },
+  { 0x21001eb7, 0x1400ffff },
+  { 0x21001eb8, 0x24000001 },
+  { 0x21001eb9, 0x1400ffff },
+  { 0x21001eba, 0x24000001 },
+  { 0x21001ebb, 0x1400ffff },
+  { 0x21001ebc, 0x24000001 },
+  { 0x21001ebd, 0x1400ffff },
+  { 0x21001ebe, 0x24000001 },
+  { 0x21001ebf, 0x1400ffff },
+  { 0x21001ec0, 0x24000001 },
+  { 0x21001ec1, 0x1400ffff },
+  { 0x21001ec2, 0x24000001 },
+  { 0x21001ec3, 0x1400ffff },
+  { 0x21001ec4, 0x24000001 },
+  { 0x21001ec5, 0x1400ffff },
+  { 0x21001ec6, 0x24000001 },
+  { 0x21001ec7, 0x1400ffff },
+  { 0x21001ec8, 0x24000001 },
+  { 0x21001ec9, 0x1400ffff },
+  { 0x21001eca, 0x24000001 },
+  { 0x21001ecb, 0x1400ffff },
+  { 0x21001ecc, 0x24000001 },
+  { 0x21001ecd, 0x1400ffff },
+  { 0x21001ece, 0x24000001 },
+  { 0x21001ecf, 0x1400ffff },
+  { 0x21001ed0, 0x24000001 },
+  { 0x21001ed1, 0x1400ffff },
+  { 0x21001ed2, 0x24000001 },
+  { 0x21001ed3, 0x1400ffff },
+  { 0x21001ed4, 0x24000001 },
+  { 0x21001ed5, 0x1400ffff },
+  { 0x21001ed6, 0x24000001 },
+  { 0x21001ed7, 0x1400ffff },
+  { 0x21001ed8, 0x24000001 },
+  { 0x21001ed9, 0x1400ffff },
+  { 0x21001eda, 0x24000001 },
+  { 0x21001edb, 0x1400ffff },
+  { 0x21001edc, 0x24000001 },
+  { 0x21001edd, 0x1400ffff },
+  { 0x21001ede, 0x24000001 },
+  { 0x21001edf, 0x1400ffff },
+  { 0x21001ee0, 0x24000001 },
+  { 0x21001ee1, 0x1400ffff },
+  { 0x21001ee2, 0x24000001 },
+  { 0x21001ee3, 0x1400ffff },
+  { 0x21001ee4, 0x24000001 },
+  { 0x21001ee5, 0x1400ffff },
+  { 0x21001ee6, 0x24000001 },
+  { 0x21001ee7, 0x1400ffff },
+  { 0x21001ee8, 0x24000001 },
+  { 0x21001ee9, 0x1400ffff },
+  { 0x21001eea, 0x24000001 },
+  { 0x21001eeb, 0x1400ffff },
+  { 0x21001eec, 0x24000001 },
+  { 0x21001eed, 0x1400ffff },
+  { 0x21001eee, 0x24000001 },
+  { 0x21001eef, 0x1400ffff },
+  { 0x21001ef0, 0x24000001 },
+  { 0x21001ef1, 0x1400ffff },
+  { 0x21001ef2, 0x24000001 },
+  { 0x21001ef3, 0x1400ffff },
+  { 0x21001ef4, 0x24000001 },
+  { 0x21001ef5, 0x1400ffff },
+  { 0x21001ef6, 0x24000001 },
+  { 0x21001ef7, 0x1400ffff },
+  { 0x21001ef8, 0x24000001 },
+  { 0x21001ef9, 0x1400ffff },
+  { 0x13001f00, 0x14000008 },
+  { 0x13001f01, 0x14000008 },
+  { 0x13001f02, 0x14000008 },
+  { 0x13001f03, 0x14000008 },
+  { 0x13001f04, 0x14000008 },
+  { 0x13001f05, 0x14000008 },
+  { 0x13001f06, 0x14000008 },
+  { 0x13001f07, 0x14000008 },
+  { 0x13001f08, 0x2400fff8 },
+  { 0x13001f09, 0x2400fff8 },
+  { 0x13001f0a, 0x2400fff8 },
+  { 0x13001f0b, 0x2400fff8 },
+  { 0x13001f0c, 0x2400fff8 },
+  { 0x13001f0d, 0x2400fff8 },
+  { 0x13001f0e, 0x2400fff8 },
+  { 0x13001f0f, 0x2400fff8 },
+  { 0x13001f10, 0x14000008 },
+  { 0x13001f11, 0x14000008 },
+  { 0x13001f12, 0x14000008 },
+  { 0x13001f13, 0x14000008 },
+  { 0x13001f14, 0x14000008 },
+  { 0x13001f15, 0x14000008 },
+  { 0x13001f18, 0x2400fff8 },
+  { 0x13001f19, 0x2400fff8 },
+  { 0x13001f1a, 0x2400fff8 },
+  { 0x13001f1b, 0x2400fff8 },
+  { 0x13001f1c, 0x2400fff8 },
+  { 0x13001f1d, 0x2400fff8 },
+  { 0x13001f20, 0x14000008 },
+  { 0x13001f21, 0x14000008 },
+  { 0x13001f22, 0x14000008 },
+  { 0x13001f23, 0x14000008 },
+  { 0x13001f24, 0x14000008 },
+  { 0x13001f25, 0x14000008 },
+  { 0x13001f26, 0x14000008 },
+  { 0x13001f27, 0x14000008 },
+  { 0x13001f28, 0x2400fff8 },
+  { 0x13001f29, 0x2400fff8 },
+  { 0x13001f2a, 0x2400fff8 },
+  { 0x13001f2b, 0x2400fff8 },
+  { 0x13001f2c, 0x2400fff8 },
+  { 0x13001f2d, 0x2400fff8 },
+  { 0x13001f2e, 0x2400fff8 },
+  { 0x13001f2f, 0x2400fff8 },
+  { 0x13001f30, 0x14000008 },
+  { 0x13001f31, 0x14000008 },
+  { 0x13001f32, 0x14000008 },
+  { 0x13001f33, 0x14000008 },
+  { 0x13001f34, 0x14000008 },
+  { 0x13001f35, 0x14000008 },
+  { 0x13001f36, 0x14000008 },
+  { 0x13001f37, 0x14000008 },
+  { 0x13001f38, 0x2400fff8 },
+  { 0x13001f39, 0x2400fff8 },
+  { 0x13001f3a, 0x2400fff8 },
+  { 0x13001f3b, 0x2400fff8 },
+  { 0x13001f3c, 0x2400fff8 },
+  { 0x13001f3d, 0x2400fff8 },
+  { 0x13001f3e, 0x2400fff8 },
+  { 0x13001f3f, 0x2400fff8 },
+  { 0x13001f40, 0x14000008 },
+  { 0x13001f41, 0x14000008 },
+  { 0x13001f42, 0x14000008 },
+  { 0x13001f43, 0x14000008 },
+  { 0x13001f44, 0x14000008 },
+  { 0x13001f45, 0x14000008 },
+  { 0x13001f48, 0x2400fff8 },
+  { 0x13001f49, 0x2400fff8 },
+  { 0x13001f4a, 0x2400fff8 },
+  { 0x13001f4b, 0x2400fff8 },
+  { 0x13001f4c, 0x2400fff8 },
+  { 0x13001f4d, 0x2400fff8 },
+  { 0x13001f50, 0x14000000 },
+  { 0x13001f51, 0x14000008 },
+  { 0x13001f52, 0x14000000 },
+  { 0x13001f53, 0x14000008 },
+  { 0x13001f54, 0x14000000 },
+  { 0x13001f55, 0x14000008 },
+  { 0x13001f56, 0x14000000 },
+  { 0x13001f57, 0x14000008 },
+  { 0x13001f59, 0x2400fff8 },
+  { 0x13001f5b, 0x2400fff8 },
+  { 0x13001f5d, 0x2400fff8 },
+  { 0x13001f5f, 0x2400fff8 },
+  { 0x13001f60, 0x14000008 },
+  { 0x13001f61, 0x14000008 },
+  { 0x13001f62, 0x14000008 },
+  { 0x13001f63, 0x14000008 },
+  { 0x13001f64, 0x14000008 },
+  { 0x13001f65, 0x14000008 },
+  { 0x13001f66, 0x14000008 },
+  { 0x13001f67, 0x14000008 },
+  { 0x13001f68, 0x2400fff8 },
+  { 0x13001f69, 0x2400fff8 },
+  { 0x13001f6a, 0x2400fff8 },
+  { 0x13001f6b, 0x2400fff8 },
+  { 0x13001f6c, 0x2400fff8 },
+  { 0x13001f6d, 0x2400fff8 },
+  { 0x13001f6e, 0x2400fff8 },
+  { 0x13001f6f, 0x2400fff8 },
+  { 0x13001f70, 0x1400004a },
+  { 0x13001f71, 0x1400004a },
+  { 0x13001f72, 0x14000056 },
+  { 0x13001f73, 0x14000056 },
+  { 0x13001f74, 0x14000056 },
+  { 0x13001f75, 0x14000056 },
+  { 0x13001f76, 0x14000064 },
+  { 0x13001f77, 0x14000064 },
+  { 0x13001f78, 0x14000080 },
+  { 0x13001f79, 0x14000080 },
+  { 0x13001f7a, 0x14000070 },
+  { 0x13001f7b, 0x14000070 },
+  { 0x13001f7c, 0x1400007e },
+  { 0x13001f7d, 0x1400007e },
+  { 0x13001f80, 0x14000008 },
+  { 0x13001f81, 0x14000008 },
+  { 0x13001f82, 0x14000008 },
+  { 0x13001f83, 0x14000008 },
+  { 0x13001f84, 0x14000008 },
+  { 0x13001f85, 0x14000008 },
+  { 0x13001f86, 0x14000008 },
+  { 0x13001f87, 0x14000008 },
+  { 0x13001f88, 0x2000fff8 },
+  { 0x13001f89, 0x2000fff8 },
+  { 0x13001f8a, 0x2000fff8 },
+  { 0x13001f8b, 0x2000fff8 },
+  { 0x13001f8c, 0x2000fff8 },
+  { 0x13001f8d, 0x2000fff8 },
+  { 0x13001f8e, 0x2000fff8 },
+  { 0x13001f8f, 0x2000fff8 },
+  { 0x13001f90, 0x14000008 },
+  { 0x13001f91, 0x14000008 },
+  { 0x13001f92, 0x14000008 },
+  { 0x13001f93, 0x14000008 },
+  { 0x13001f94, 0x14000008 },
+  { 0x13001f95, 0x14000008 },
+  { 0x13001f96, 0x14000008 },
+  { 0x13001f97, 0x14000008 },
+  { 0x13001f98, 0x2000fff8 },
+  { 0x13001f99, 0x2000fff8 },
+  { 0x13001f9a, 0x2000fff8 },
+  { 0x13001f9b, 0x2000fff8 },
+  { 0x13001f9c, 0x2000fff8 },
+  { 0x13001f9d, 0x2000fff8 },
+  { 0x13001f9e, 0x2000fff8 },
+  { 0x13001f9f, 0x2000fff8 },
+  { 0x13001fa0, 0x14000008 },
+  { 0x13001fa1, 0x14000008 },
+  { 0x13001fa2, 0x14000008 },
+  { 0x13001fa3, 0x14000008 },
+  { 0x13001fa4, 0x14000008 },
+  { 0x13001fa5, 0x14000008 },
+  { 0x13001fa6, 0x14000008 },
+  { 0x13001fa7, 0x14000008 },
+  { 0x13001fa8, 0x2000fff8 },
+  { 0x13001fa9, 0x2000fff8 },
+  { 0x13001faa, 0x2000fff8 },
+  { 0x13001fab, 0x2000fff8 },
+  { 0x13001fac, 0x2000fff8 },
+  { 0x13001fad, 0x2000fff8 },
+  { 0x13001fae, 0x2000fff8 },
+  { 0x13001faf, 0x2000fff8 },
+  { 0x13001fb0, 0x14000008 },
+  { 0x13001fb1, 0x14000008 },
+  { 0x13001fb2, 0x14000000 },
+  { 0x13001fb3, 0x14000009 },
+  { 0x13001fb4, 0x14000000 },
+  { 0x13801fb6, 0x14000001 },
+  { 0x13001fb8, 0x2400fff8 },
+  { 0x13001fb9, 0x2400fff8 },
+  { 0x13001fba, 0x2400ffb6 },
+  { 0x13001fbb, 0x2400ffb6 },
+  { 0x13001fbc, 0x2000fff7 },
+  { 0x13001fbd, 0x60000000 },
+  { 0x13001fbe, 0x1400e3db },
+  { 0x13801fbf, 0x60000002 },
+  { 0x13001fc2, 0x14000000 },
+  { 0x13001fc3, 0x14000009 },
+  { 0x13001fc4, 0x14000000 },
+  { 0x13801fc6, 0x14000001 },
+  { 0x13001fc8, 0x2400ffaa },
+  { 0x13001fc9, 0x2400ffaa },
+  { 0x13001fca, 0x2400ffaa },
+  { 0x13001fcb, 0x2400ffaa },
+  { 0x13001fcc, 0x2000fff7 },
+  { 0x13801fcd, 0x60000002 },
+  { 0x13001fd0, 0x14000008 },
+  { 0x13001fd1, 0x14000008 },
+  { 0x13801fd2, 0x14000001 },
+  { 0x13801fd6, 0x14000001 },
+  { 0x13001fd8, 0x2400fff8 },
+  { 0x13001fd9, 0x2400fff8 },
+  { 0x13001fda, 0x2400ff9c },
+  { 0x13001fdb, 0x2400ff9c },
+  { 0x13801fdd, 0x60000002 },
+  { 0x13001fe0, 0x14000008 },
+  { 0x13001fe1, 0x14000008 },
+  { 0x13801fe2, 0x14000002 },
+  { 0x13001fe5, 0x14000007 },
+  { 0x13801fe6, 0x14000001 },
+  { 0x13001fe8, 0x2400fff8 },
+  { 0x13001fe9, 0x2400fff8 },
+  { 0x13001fea, 0x2400ff90 },
+  { 0x13001feb, 0x2400ff90 },
+  { 0x13001fec, 0x2400fff9 },
+  { 0x13801fed, 0x60000002 },
+  { 0x13001ff2, 0x14000000 },
+  { 0x13001ff3, 0x14000009 },
+  { 0x13001ff4, 0x14000000 },
+  { 0x13801ff6, 0x14000001 },
+  { 0x13001ff8, 0x2400ff80 },
+  { 0x13001ff9, 0x2400ff80 },
+  { 0x13001ffa, 0x2400ff82 },
+  { 0x13001ffb, 0x2400ff82 },
+  { 0x13001ffc, 0x2000fff7 },
+  { 0x13801ffd, 0x60000001 },
+  { 0x09802000, 0x7400000a },
+  { 0x0980200b, 0x04000004 },
+  { 0x09802010, 0x44000005 },
+  { 0x09802016, 0x54000001 },
+  { 0x09002018, 0x50000000 },
+  { 0x09002019, 0x4c000000 },
+  { 0x0900201a, 0x58000000 },
+  { 0x0980201b, 0x50000001 },
+  { 0x0900201d, 0x4c000000 },
+  { 0x0900201e, 0x58000000 },
+  { 0x0900201f, 0x50000000 },
+  { 0x09802020, 0x54000007 },
+  { 0x09002028, 0x6c000000 },
+  { 0x09002029, 0x70000000 },
+  { 0x0980202a, 0x04000004 },
+  { 0x0900202f, 0x74000000 },
+  { 0x09802030, 0x54000008 },
+  { 0x09002039, 0x50000000 },
+  { 0x0900203a, 0x4c000000 },
+  { 0x0980203b, 0x54000003 },
+  { 0x0980203f, 0x40000001 },
+  { 0x09802041, 0x54000002 },
+  { 0x09002044, 0x64000000 },
+  { 0x09002045, 0x58000000 },
+  { 0x09002046, 0x48000000 },
+  { 0x09802047, 0x5400000a },
+  { 0x09002052, 0x64000000 },
+  { 0x09002053, 0x54000000 },
+  { 0x09002054, 0x40000000 },
+  { 0x09802055, 0x54000009 },
+  { 0x0900205f, 0x74000000 },
+  { 0x09802060, 0x04000003 },
+  { 0x0980206a, 0x04000005 },
+  { 0x09002070, 0x3c000000 },
+  { 0x21002071, 0x14000000 },
+  { 0x09802074, 0x3c000005 },
+  { 0x0980207a, 0x64000002 },
+  { 0x0900207d, 0x58000000 },
+  { 0x0900207e, 0x48000000 },
+  { 0x2100207f, 0x14000000 },
+  { 0x09802080, 0x3c000009 },
+  { 0x0980208a, 0x64000002 },
+  { 0x0900208d, 0x58000000 },
+  { 0x0900208e, 0x48000000 },
+  { 0x21802090, 0x18000004 },
+  { 0x098020a0, 0x5c000015 },
+  { 0x1b8020d0, 0x3000000c },
+  { 0x1b8020dd, 0x2c000003 },
+  { 0x1b0020e1, 0x30000000 },
+  { 0x1b8020e2, 0x2c000002 },
+  { 0x1b8020e5, 0x3000000a },
+  { 0x09802100, 0x68000001 },
+  { 0x09002102, 0x24000000 },
+  { 0x09802103, 0x68000003 },
+  { 0x09002107, 0x24000000 },
+  { 0x09802108, 0x68000001 },
+  { 0x0900210a, 0x14000000 },
+  { 0x0980210b, 0x24000002 },
+  { 0x0980210e, 0x14000001 },
+  { 0x09802110, 0x24000002 },
+  { 0x09002113, 0x14000000 },
+  { 0x09002114, 0x68000000 },
+  { 0x09002115, 0x24000000 },
+  { 0x09802116, 0x68000002 },
+  { 0x09802119, 0x24000004 },
+  { 0x0980211e, 0x68000005 },
+  { 0x09002124, 0x24000000 },
+  { 0x09002125, 0x68000000 },
+  { 0x13002126, 0x2400e2a3 },
+  { 0x09002127, 0x68000000 },
+  { 0x09002128, 0x24000000 },
+  { 0x09002129, 0x68000000 },
+  { 0x2100212a, 0x2400df41 },
+  { 0x2100212b, 0x2400dfba },
+  { 0x0980212c, 0x24000001 },
+  { 0x0900212e, 0x68000000 },
+  { 0x0900212f, 0x14000000 },
+  { 0x09802130, 0x24000001 },
+  { 0x21002132, 0x2400001c },
+  { 0x09002133, 0x24000000 },
+  { 0x09002134, 0x14000000 },
+  { 0x09802135, 0x1c000003 },
+  { 0x09002139, 0x14000000 },
+  { 0x0980213a, 0x68000001 },
+  { 0x0980213c, 0x14000001 },
+  { 0x0980213e, 0x24000001 },
+  { 0x09802140, 0x64000004 },
+  { 0x09002145, 0x24000000 },
+  { 0x09802146, 0x14000003 },
+  { 0x0900214a, 0x68000000 },
+  { 0x0900214b, 0x64000000 },
+  { 0x0980214c, 0x68000001 },
+  { 0x2100214e, 0x1400ffe4 },
+  { 0x09802153, 0x3c00000c },
+  { 0x09002160, 0x38000010 },
+  { 0x09002161, 0x38000010 },
+  { 0x09002162, 0x38000010 },
+  { 0x09002163, 0x38000010 },
+  { 0x09002164, 0x38000010 },
+  { 0x09002165, 0x38000010 },
+  { 0x09002166, 0x38000010 },
+  { 0x09002167, 0x38000010 },
+  { 0x09002168, 0x38000010 },
+  { 0x09002169, 0x38000010 },
+  { 0x0900216a, 0x38000010 },
+  { 0x0900216b, 0x38000010 },
+  { 0x0900216c, 0x38000010 },
+  { 0x0900216d, 0x38000010 },
+  { 0x0900216e, 0x38000010 },
+  { 0x0900216f, 0x38000010 },
+  { 0x09002170, 0x3800fff0 },
+  { 0x09002171, 0x3800fff0 },
+  { 0x09002172, 0x3800fff0 },
+  { 0x09002173, 0x3800fff0 },
+  { 0x09002174, 0x3800fff0 },
+  { 0x09002175, 0x3800fff0 },
+  { 0x09002176, 0x3800fff0 },
+  { 0x09002177, 0x3800fff0 },
+  { 0x09002178, 0x3800fff0 },
+  { 0x09002179, 0x3800fff0 },
+  { 0x0900217a, 0x3800fff0 },
+  { 0x0900217b, 0x3800fff0 },
+  { 0x0900217c, 0x3800fff0 },
+  { 0x0900217d, 0x3800fff0 },
+  { 0x0900217e, 0x3800fff0 },
+  { 0x0900217f, 0x3800fff0 },
+  { 0x09802180, 0x38000002 },
+  { 0x09002183, 0x24000001 },
+  { 0x21002184, 0x1400ffff },
+  { 0x09802190, 0x64000004 },
+  { 0x09802195, 0x68000004 },
+  { 0x0980219a, 0x64000001 },
+  { 0x0980219c, 0x68000003 },
+  { 0x090021a0, 0x64000000 },
+  { 0x098021a1, 0x68000001 },
+  { 0x090021a3, 0x64000000 },
+  { 0x098021a4, 0x68000001 },
+  { 0x090021a6, 0x64000000 },
+  { 0x098021a7, 0x68000006 },
+  { 0x090021ae, 0x64000000 },
+  { 0x098021af, 0x6800001e },
+  { 0x098021ce, 0x64000001 },
+  { 0x098021d0, 0x68000001 },
+  { 0x090021d2, 0x64000000 },
+  { 0x090021d3, 0x68000000 },
+  { 0x090021d4, 0x64000000 },
+  { 0x098021d5, 0x6800001e },
+  { 0x098021f4, 0x6400010b },
+  { 0x09802300, 0x68000007 },
+  { 0x09802308, 0x64000003 },
+  { 0x0980230c, 0x68000013 },
+  { 0x09802320, 0x64000001 },
+  { 0x09802322, 0x68000006 },
+  { 0x09002329, 0x58000000 },
+  { 0x0900232a, 0x48000000 },
+  { 0x0980232b, 0x68000050 },
+  { 0x0900237c, 0x64000000 },
+  { 0x0980237d, 0x6800001d },
+  { 0x0980239b, 0x64000018 },
+  { 0x098023b4, 0x68000027 },
+  { 0x098023dc, 0x64000005 },
+  { 0x098023e2, 0x68000005 },
+  { 0x09802400, 0x68000026 },
+  { 0x09802440, 0x6800000a },
+  { 0x09802460, 0x3c00003b },
+  { 0x0980249c, 0x68000019 },
+  { 0x090024b6, 0x6800001a },
+  { 0x090024b7, 0x6800001a },
+  { 0x090024b8, 0x6800001a },
+  { 0x090024b9, 0x6800001a },
+  { 0x090024ba, 0x6800001a },
+  { 0x090024bb, 0x6800001a },
+  { 0x090024bc, 0x6800001a },
+  { 0x090024bd, 0x6800001a },
+  { 0x090024be, 0x6800001a },
+  { 0x090024bf, 0x6800001a },
+  { 0x090024c0, 0x6800001a },
+  { 0x090024c1, 0x6800001a },
+  { 0x090024c2, 0x6800001a },
+  { 0x090024c3, 0x6800001a },
+  { 0x090024c4, 0x6800001a },
+  { 0x090024c5, 0x6800001a },
+  { 0x090024c6, 0x6800001a },
+  { 0x090024c7, 0x6800001a },
+  { 0x090024c8, 0x6800001a },
+  { 0x090024c9, 0x6800001a },
+  { 0x090024ca, 0x6800001a },
+  { 0x090024cb, 0x6800001a },
+  { 0x090024cc, 0x6800001a },
+  { 0x090024cd, 0x6800001a },
+  { 0x090024ce, 0x6800001a },
+  { 0x090024cf, 0x6800001a },
+  { 0x090024d0, 0x6800ffe6 },
+  { 0x090024d1, 0x6800ffe6 },
+  { 0x090024d2, 0x6800ffe6 },
+  { 0x090024d3, 0x6800ffe6 },
+  { 0x090024d4, 0x6800ffe6 },
+  { 0x090024d5, 0x6800ffe6 },
+  { 0x090024d6, 0x6800ffe6 },
+  { 0x090024d7, 0x6800ffe6 },
+  { 0x090024d8, 0x6800ffe6 },
+  { 0x090024d9, 0x6800ffe6 },
+  { 0x090024da, 0x6800ffe6 },
+  { 0x090024db, 0x6800ffe6 },
+  { 0x090024dc, 0x6800ffe6 },
+  { 0x090024dd, 0x6800ffe6 },
+  { 0x090024de, 0x6800ffe6 },
+  { 0x090024df, 0x6800ffe6 },
+  { 0x090024e0, 0x6800ffe6 },
+  { 0x090024e1, 0x6800ffe6 },
+  { 0x090024e2, 0x6800ffe6 },
+  { 0x090024e3, 0x6800ffe6 },
+  { 0x090024e4, 0x6800ffe6 },
+  { 0x090024e5, 0x6800ffe6 },
+  { 0x090024e6, 0x6800ffe6 },
+  { 0x090024e7, 0x6800ffe6 },
+  { 0x090024e8, 0x6800ffe6 },
+  { 0x090024e9, 0x6800ffe6 },
+  { 0x098024ea, 0x3c000015 },
+  { 0x09802500, 0x680000b6 },
+  { 0x090025b7, 0x64000000 },
+  { 0x098025b8, 0x68000008 },
+  { 0x090025c1, 0x64000000 },
+  { 0x098025c2, 0x68000035 },
+  { 0x098025f8, 0x64000007 },
+  { 0x09802600, 0x6800006e },
+  { 0x0900266f, 0x64000000 },
+  { 0x09802670, 0x6800002c },
+  { 0x098026a0, 0x68000012 },
+  { 0x09802701, 0x68000003 },
+  { 0x09802706, 0x68000003 },
+  { 0x0980270c, 0x6800001b },
+  { 0x09802729, 0x68000022 },
+  { 0x0900274d, 0x68000000 },
+  { 0x0980274f, 0x68000003 },
+  { 0x09002756, 0x68000000 },
+  { 0x09802758, 0x68000006 },
+  { 0x09802761, 0x68000006 },
+  { 0x09002768, 0x58000000 },
+  { 0x09002769, 0x48000000 },
+  { 0x0900276a, 0x58000000 },
+  { 0x0900276b, 0x48000000 },
+  { 0x0900276c, 0x58000000 },
+  { 0x0900276d, 0x48000000 },
+  { 0x0900276e, 0x58000000 },
+  { 0x0900276f, 0x48000000 },
+  { 0x09002770, 0x58000000 },
+  { 0x09002771, 0x48000000 },
+  { 0x09002772, 0x58000000 },
+  { 0x09002773, 0x48000000 },
+  { 0x09002774, 0x58000000 },
+  { 0x09002775, 0x48000000 },
+  { 0x09802776, 0x3c00001d },
+  { 0x09002794, 0x68000000 },
+  { 0x09802798, 0x68000017 },
+  { 0x098027b1, 0x6800000d },
+  { 0x098027c0, 0x64000004 },
+  { 0x090027c5, 0x58000000 },
+  { 0x090027c6, 0x48000000 },
+  { 0x098027c7, 0x64000003 },
+  { 0x098027d0, 0x64000015 },
+  { 0x090027e6, 0x58000000 },
+  { 0x090027e7, 0x48000000 },
+  { 0x090027e8, 0x58000000 },
+  { 0x090027e9, 0x48000000 },
+  { 0x090027ea, 0x58000000 },
+  { 0x090027eb, 0x48000000 },
+  { 0x098027f0, 0x6400000f },
+  { 0x04802800, 0x680000ff },
+  { 0x09802900, 0x64000082 },
+  { 0x09002983, 0x58000000 },
+  { 0x09002984, 0x48000000 },
+  { 0x09002985, 0x58000000 },
+  { 0x09002986, 0x48000000 },
+  { 0x09002987, 0x58000000 },
+  { 0x09002988, 0x48000000 },
+  { 0x09002989, 0x58000000 },
+  { 0x0900298a, 0x48000000 },
+  { 0x0900298b, 0x58000000 },
+  { 0x0900298c, 0x48000000 },
+  { 0x0900298d, 0x58000000 },
+  { 0x0900298e, 0x48000000 },
+  { 0x0900298f, 0x58000000 },
+  { 0x09002990, 0x48000000 },
+  { 0x09002991, 0x58000000 },
+  { 0x09002992, 0x48000000 },
+  { 0x09002993, 0x58000000 },
+  { 0x09002994, 0x48000000 },
+  { 0x09002995, 0x58000000 },
+  { 0x09002996, 0x48000000 },
+  { 0x09002997, 0x58000000 },
+  { 0x09002998, 0x48000000 },
+  { 0x09802999, 0x6400003e },
+  { 0x090029d8, 0x58000000 },
+  { 0x090029d9, 0x48000000 },
+  { 0x090029da, 0x58000000 },
+  { 0x090029db, 0x48000000 },
+  { 0x098029dc, 0x6400001f },
+  { 0x090029fc, 0x58000000 },
+  { 0x090029fd, 0x48000000 },
+  { 0x098029fe, 0x64000101 },
+  { 0x09802b00, 0x6800001a },
+  { 0x09802b20, 0x68000003 },
+  { 0x11002c00, 0x24000030 },
+  { 0x11002c01, 0x24000030 },
+  { 0x11002c02, 0x24000030 },
+  { 0x11002c03, 0x24000030 },
+  { 0x11002c04, 0x24000030 },
+  { 0x11002c05, 0x24000030 },
+  { 0x11002c06, 0x24000030 },
+  { 0x11002c07, 0x24000030 },
+  { 0x11002c08, 0x24000030 },
+  { 0x11002c09, 0x24000030 },
+  { 0x11002c0a, 0x24000030 },
+  { 0x11002c0b, 0x24000030 },
+  { 0x11002c0c, 0x24000030 },
+  { 0x11002c0d, 0x24000030 },
+  { 0x11002c0e, 0x24000030 },
+  { 0x11002c0f, 0x24000030 },
+  { 0x11002c10, 0x24000030 },
+  { 0x11002c11, 0x24000030 },
+  { 0x11002c12, 0x24000030 },
+  { 0x11002c13, 0x24000030 },
+  { 0x11002c14, 0x24000030 },
+  { 0x11002c15, 0x24000030 },
+  { 0x11002c16, 0x24000030 },
+  { 0x11002c17, 0x24000030 },
+  { 0x11002c18, 0x24000030 },
+  { 0x11002c19, 0x24000030 },
+  { 0x11002c1a, 0x24000030 },
+  { 0x11002c1b, 0x24000030 },
+  { 0x11002c1c, 0x24000030 },
+  { 0x11002c1d, 0x24000030 },
+  { 0x11002c1e, 0x24000030 },
+  { 0x11002c1f, 0x24000030 },
+  { 0x11002c20, 0x24000030 },
+  { 0x11002c21, 0x24000030 },
+  { 0x11002c22, 0x24000030 },
+  { 0x11002c23, 0x24000030 },
+  { 0x11002c24, 0x24000030 },
+  { 0x11002c25, 0x24000030 },
+  { 0x11002c26, 0x24000030 },
+  { 0x11002c27, 0x24000030 },
+  { 0x11002c28, 0x24000030 },
+  { 0x11002c29, 0x24000030 },
+  { 0x11002c2a, 0x24000030 },
+  { 0x11002c2b, 0x24000030 },
+  { 0x11002c2c, 0x24000030 },
+  { 0x11002c2d, 0x24000030 },
+  { 0x11002c2e, 0x24000030 },
+  { 0x11002c30, 0x1400ffd0 },
+  { 0x11002c31, 0x1400ffd0 },
+  { 0x11002c32, 0x1400ffd0 },
+  { 0x11002c33, 0x1400ffd0 },
+  { 0x11002c34, 0x1400ffd0 },
+  { 0x11002c35, 0x1400ffd0 },
+  { 0x11002c36, 0x1400ffd0 },
+  { 0x11002c37, 0x1400ffd0 },
+  { 0x11002c38, 0x1400ffd0 },
+  { 0x11002c39, 0x1400ffd0 },
+  { 0x11002c3a, 0x1400ffd0 },
+  { 0x11002c3b, 0x1400ffd0 },
+  { 0x11002c3c, 0x1400ffd0 },
+  { 0x11002c3d, 0x1400ffd0 },
+  { 0x11002c3e, 0x1400ffd0 },
+  { 0x11002c3f, 0x1400ffd0 },
+  { 0x11002c40, 0x1400ffd0 },
+  { 0x11002c41, 0x1400ffd0 },
+  { 0x11002c42, 0x1400ffd0 },
+  { 0x11002c43, 0x1400ffd0 },
+  { 0x11002c44, 0x1400ffd0 },
+  { 0x11002c45, 0x1400ffd0 },
+  { 0x11002c46, 0x1400ffd0 },
+  { 0x11002c47, 0x1400ffd0 },
+  { 0x11002c48, 0x1400ffd0 },
+  { 0x11002c49, 0x1400ffd0 },
+  { 0x11002c4a, 0x1400ffd0 },
+  { 0x11002c4b, 0x1400ffd0 },
+  { 0x11002c4c, 0x1400ffd0 },
+  { 0x11002c4d, 0x1400ffd0 },
+  { 0x11002c4e, 0x1400ffd0 },
+  { 0x11002c4f, 0x1400ffd0 },
+  { 0x11002c50, 0x1400ffd0 },
+  { 0x11002c51, 0x1400ffd0 },
+  { 0x11002c52, 0x1400ffd0 },
+  { 0x11002c53, 0x1400ffd0 },
+  { 0x11002c54, 0x1400ffd0 },
+  { 0x11002c55, 0x1400ffd0 },
+  { 0x11002c56, 0x1400ffd0 },
+  { 0x11002c57, 0x1400ffd0 },
+  { 0x11002c58, 0x1400ffd0 },
+  { 0x11002c59, 0x1400ffd0 },
+  { 0x11002c5a, 0x1400ffd0 },
+  { 0x11002c5b, 0x1400ffd0 },
+  { 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 },
+  { 0x0a002c83, 0x1400ffff },
+  { 0x0a002c84, 0x24000001 },
+  { 0x0a002c85, 0x1400ffff },
+  { 0x0a002c86, 0x24000001 },
+  { 0x0a002c87, 0x1400ffff },
+  { 0x0a002c88, 0x24000001 },
+  { 0x0a002c89, 0x1400ffff },
+  { 0x0a002c8a, 0x24000001 },
+  { 0x0a002c8b, 0x1400ffff },
+  { 0x0a002c8c, 0x24000001 },
+  { 0x0a002c8d, 0x1400ffff },
+  { 0x0a002c8e, 0x24000001 },
+  { 0x0a002c8f, 0x1400ffff },
+  { 0x0a002c90, 0x24000001 },
+  { 0x0a002c91, 0x1400ffff },
+  { 0x0a002c92, 0x24000001 },
+  { 0x0a002c93, 0x1400ffff },
+  { 0x0a002c94, 0x24000001 },
+  { 0x0a002c95, 0x1400ffff },
+  { 0x0a002c96, 0x24000001 },
+  { 0x0a002c97, 0x1400ffff },
+  { 0x0a002c98, 0x24000001 },
+  { 0x0a002c99, 0x1400ffff },
+  { 0x0a002c9a, 0x24000001 },
+  { 0x0a002c9b, 0x1400ffff },
+  { 0x0a002c9c, 0x24000001 },
+  { 0x0a002c9d, 0x1400ffff },
+  { 0x0a002c9e, 0x24000001 },
+  { 0x0a002c9f, 0x1400ffff },
+  { 0x0a002ca0, 0x24000001 },
+  { 0x0a002ca1, 0x1400ffff },
+  { 0x0a002ca2, 0x24000001 },
+  { 0x0a002ca3, 0x1400ffff },
+  { 0x0a002ca4, 0x24000001 },
+  { 0x0a002ca5, 0x1400ffff },
+  { 0x0a002ca6, 0x24000001 },
+  { 0x0a002ca7, 0x1400ffff },
+  { 0x0a002ca8, 0x24000001 },
+  { 0x0a002ca9, 0x1400ffff },
+  { 0x0a002caa, 0x24000001 },
+  { 0x0a002cab, 0x1400ffff },
+  { 0x0a002cac, 0x24000001 },
+  { 0x0a002cad, 0x1400ffff },
+  { 0x0a002cae, 0x24000001 },
+  { 0x0a002caf, 0x1400ffff },
+  { 0x0a002cb0, 0x24000001 },
+  { 0x0a002cb1, 0x1400ffff },
+  { 0x0a002cb2, 0x24000001 },
+  { 0x0a002cb3, 0x1400ffff },
+  { 0x0a002cb4, 0x24000001 },
+  { 0x0a002cb5, 0x1400ffff },
+  { 0x0a002cb6, 0x24000001 },
+  { 0x0a002cb7, 0x1400ffff },
+  { 0x0a002cb8, 0x24000001 },
+  { 0x0a002cb9, 0x1400ffff },
+  { 0x0a002cba, 0x24000001 },
+  { 0x0a002cbb, 0x1400ffff },
+  { 0x0a002cbc, 0x24000001 },
+  { 0x0a002cbd, 0x1400ffff },
+  { 0x0a002cbe, 0x24000001 },
+  { 0x0a002cbf, 0x1400ffff },
+  { 0x0a002cc0, 0x24000001 },
+  { 0x0a002cc1, 0x1400ffff },
+  { 0x0a002cc2, 0x24000001 },
+  { 0x0a002cc3, 0x1400ffff },
+  { 0x0a002cc4, 0x24000001 },
+  { 0x0a002cc5, 0x1400ffff },
+  { 0x0a002cc6, 0x24000001 },
+  { 0x0a002cc7, 0x1400ffff },
+  { 0x0a002cc8, 0x24000001 },
+  { 0x0a002cc9, 0x1400ffff },
+  { 0x0a002cca, 0x24000001 },
+  { 0x0a002ccb, 0x1400ffff },
+  { 0x0a002ccc, 0x24000001 },
+  { 0x0a002ccd, 0x1400ffff },
+  { 0x0a002cce, 0x24000001 },
+  { 0x0a002ccf, 0x1400ffff },
+  { 0x0a002cd0, 0x24000001 },
+  { 0x0a002cd1, 0x1400ffff },
+  { 0x0a002cd2, 0x24000001 },
+  { 0x0a002cd3, 0x1400ffff },
+  { 0x0a002cd4, 0x24000001 },
+  { 0x0a002cd5, 0x1400ffff },
+  { 0x0a002cd6, 0x24000001 },
+  { 0x0a002cd7, 0x1400ffff },
+  { 0x0a002cd8, 0x24000001 },
+  { 0x0a002cd9, 0x1400ffff },
+  { 0x0a002cda, 0x24000001 },
+  { 0x0a002cdb, 0x1400ffff },
+  { 0x0a002cdc, 0x24000001 },
+  { 0x0a002cdd, 0x1400ffff },
+  { 0x0a002cde, 0x24000001 },
+  { 0x0a002cdf, 0x1400ffff },
+  { 0x0a002ce0, 0x24000001 },
+  { 0x0a002ce1, 0x1400ffff },
+  { 0x0a002ce2, 0x24000001 },
+  { 0x0a002ce3, 0x1400ffff },
+  { 0x0a002ce4, 0x14000000 },
+  { 0x0a802ce5, 0x68000005 },
+  { 0x0a802cf9, 0x54000003 },
+  { 0x0a002cfd, 0x3c000000 },
+  { 0x0a802cfe, 0x54000001 },
+  { 0x10002d00, 0x1400e3a0 },
+  { 0x10002d01, 0x1400e3a0 },
+  { 0x10002d02, 0x1400e3a0 },
+  { 0x10002d03, 0x1400e3a0 },
+  { 0x10002d04, 0x1400e3a0 },
+  { 0x10002d05, 0x1400e3a0 },
+  { 0x10002d06, 0x1400e3a0 },
+  { 0x10002d07, 0x1400e3a0 },
+  { 0x10002d08, 0x1400e3a0 },
+  { 0x10002d09, 0x1400e3a0 },
+  { 0x10002d0a, 0x1400e3a0 },
+  { 0x10002d0b, 0x1400e3a0 },
+  { 0x10002d0c, 0x1400e3a0 },
+  { 0x10002d0d, 0x1400e3a0 },
+  { 0x10002d0e, 0x1400e3a0 },
+  { 0x10002d0f, 0x1400e3a0 },
+  { 0x10002d10, 0x1400e3a0 },
+  { 0x10002d11, 0x1400e3a0 },
+  { 0x10002d12, 0x1400e3a0 },
+  { 0x10002d13, 0x1400e3a0 },
+  { 0x10002d14, 0x1400e3a0 },
+  { 0x10002d15, 0x1400e3a0 },
+  { 0x10002d16, 0x1400e3a0 },
+  { 0x10002d17, 0x1400e3a0 },
+  { 0x10002d18, 0x1400e3a0 },
+  { 0x10002d19, 0x1400e3a0 },
+  { 0x10002d1a, 0x1400e3a0 },
+  { 0x10002d1b, 0x1400e3a0 },
+  { 0x10002d1c, 0x1400e3a0 },
+  { 0x10002d1d, 0x1400e3a0 },
+  { 0x10002d1e, 0x1400e3a0 },
+  { 0x10002d1f, 0x1400e3a0 },
+  { 0x10002d20, 0x1400e3a0 },
+  { 0x10002d21, 0x1400e3a0 },
+  { 0x10002d22, 0x1400e3a0 },
+  { 0x10002d23, 0x1400e3a0 },
+  { 0x10002d24, 0x1400e3a0 },
+  { 0x10002d25, 0x1400e3a0 },
+  { 0x3a802d30, 0x1c000035 },
+  { 0x3a002d6f, 0x18000000 },
+  { 0x0f802d80, 0x1c000016 },
+  { 0x0f802da0, 0x1c000006 },
+  { 0x0f802da8, 0x1c000006 },
+  { 0x0f802db0, 0x1c000006 },
+  { 0x0f802db8, 0x1c000006 },
+  { 0x0f802dc0, 0x1c000006 },
+  { 0x0f802dc8, 0x1c000006 },
+  { 0x0f802dd0, 0x1c000006 },
+  { 0x0f802dd8, 0x1c000006 },
+  { 0x09802e00, 0x54000001 },
+  { 0x09002e02, 0x50000000 },
+  { 0x09002e03, 0x4c000000 },
+  { 0x09002e04, 0x50000000 },
+  { 0x09002e05, 0x4c000000 },
+  { 0x09802e06, 0x54000002 },
+  { 0x09002e09, 0x50000000 },
+  { 0x09002e0a, 0x4c000000 },
+  { 0x09002e0b, 0x54000000 },
+  { 0x09002e0c, 0x50000000 },
+  { 0x09002e0d, 0x4c000000 },
+  { 0x09802e0e, 0x54000008 },
+  { 0x09002e17, 0x44000000 },
+  { 0x09002e1c, 0x50000000 },
+  { 0x09002e1d, 0x4c000000 },
+  { 0x16802e80, 0x68000019 },
+  { 0x16802e9b, 0x68000058 },
+  { 0x16802f00, 0x680000d5 },
+  { 0x09802ff0, 0x6800000b },
+  { 0x09003000, 0x74000000 },
+  { 0x09803001, 0x54000002 },
+  { 0x09003004, 0x68000000 },
+  { 0x16003005, 0x18000000 },
+  { 0x09003006, 0x1c000000 },
+  { 0x16003007, 0x38000000 },
+  { 0x09003008, 0x58000000 },
+  { 0x09003009, 0x48000000 },
+  { 0x0900300a, 0x58000000 },
+  { 0x0900300b, 0x48000000 },
+  { 0x0900300c, 0x58000000 },
+  { 0x0900300d, 0x48000000 },
+  { 0x0900300e, 0x58000000 },
+  { 0x0900300f, 0x48000000 },
+  { 0x09003010, 0x58000000 },
+  { 0x09003011, 0x48000000 },
+  { 0x09803012, 0x68000001 },
+  { 0x09003014, 0x58000000 },
+  { 0x09003015, 0x48000000 },
+  { 0x09003016, 0x58000000 },
+  { 0x09003017, 0x48000000 },
+  { 0x09003018, 0x58000000 },
+  { 0x09003019, 0x48000000 },
+  { 0x0900301a, 0x58000000 },
+  { 0x0900301b, 0x48000000 },
+  { 0x0900301c, 0x44000000 },
+  { 0x0900301d, 0x58000000 },
+  { 0x0980301e, 0x48000001 },
+  { 0x09003020, 0x68000000 },
+  { 0x16803021, 0x38000008 },
+  { 0x1b80302a, 0x30000005 },
+  { 0x09003030, 0x44000000 },
+  { 0x09803031, 0x18000004 },
+  { 0x09803036, 0x68000001 },
+  { 0x16803038, 0x38000002 },
+  { 0x1600303b, 0x18000000 },
+  { 0x0900303c, 0x1c000000 },
+  { 0x0900303d, 0x54000000 },
+  { 0x0980303e, 0x68000001 },
+  { 0x1a803041, 0x1c000055 },
+  { 0x1b803099, 0x30000001 },
+  { 0x0980309b, 0x60000001 },
+  { 0x1a80309d, 0x18000001 },
+  { 0x1a00309f, 0x1c000000 },
+  { 0x090030a0, 0x44000000 },
+  { 0x1d8030a1, 0x1c000059 },
+  { 0x090030fb, 0x54000000 },
+  { 0x098030fc, 0x18000002 },
+  { 0x1d0030ff, 0x1c000000 },
+  { 0x03803105, 0x1c000027 },
+  { 0x17803131, 0x1c00005d },
+  { 0x09803190, 0x68000001 },
+  { 0x09803192, 0x3c000003 },
+  { 0x09803196, 0x68000009 },
+  { 0x038031a0, 0x1c000017 },
+  { 0x098031c0, 0x6800000f },
+  { 0x1d8031f0, 0x1c00000f },
+  { 0x17803200, 0x6800001e },
+  { 0x09803220, 0x3c000009 },
+  { 0x0980322a, 0x68000019 },
+  { 0x09003250, 0x68000000 },
+  { 0x09803251, 0x3c00000e },
+  { 0x17803260, 0x6800001f },
+  { 0x09803280, 0x3c000009 },
+  { 0x0980328a, 0x68000026 },
+  { 0x098032b1, 0x3c00000e },
+  { 0x098032c0, 0x6800003e },
+  { 0x09803300, 0x680000ff },
+  { 0x16803400, 0x1c0019b5 },
+  { 0x09804dc0, 0x6800003f },
+  { 0x16804e00, 0x1c0051bb },
+  { 0x3c80a000, 0x1c000014 },
+  { 0x3c00a015, 0x18000000 },
+  { 0x3c80a016, 0x1c000476 },
+  { 0x3c80a490, 0x68000036 },
+  { 0x0980a700, 0x60000016 },
+  { 0x0980a717, 0x18000003 },
+  { 0x0980a720, 0x60000001 },
+  { 0x3080a800, 0x1c000001 },
+  { 0x3000a802, 0x28000000 },
+  { 0x3080a803, 0x1c000002 },
+  { 0x3000a806, 0x30000000 },
+  { 0x3080a807, 0x1c000003 },
+  { 0x3000a80b, 0x30000000 },
+  { 0x3080a80c, 0x1c000016 },
+  { 0x3080a823, 0x28000001 },
+  { 0x3080a825, 0x30000001 },
+  { 0x3000a827, 0x28000000 },
+  { 0x3080a828, 0x68000003 },
+  { 0x4080a840, 0x1c000033 },
+  { 0x4080a874, 0x54000003 },
+  { 0x1780ac00, 0x1c002ba3 },
+  { 0x0980d800, 0x1000037f },
+  { 0x0980db80, 0x1000007f },
+  { 0x0980dc00, 0x100003ff },
+  { 0x0980e000, 0x0c0018ff },
+  { 0x1680f900, 0x1c00012d },
+  { 0x1680fa30, 0x1c00003a },
+  { 0x1680fa70, 0x1c000069 },
+  { 0x2180fb00, 0x14000006 },
+  { 0x0180fb13, 0x14000004 },
+  { 0x1900fb1d, 0x1c000000 },
+  { 0x1900fb1e, 0x30000000 },
+  { 0x1980fb1f, 0x1c000009 },
+  { 0x1900fb29, 0x64000000 },
+  { 0x1980fb2a, 0x1c00000c },
+  { 0x1980fb38, 0x1c000004 },
+  { 0x1900fb3e, 0x1c000000 },
+  { 0x1980fb40, 0x1c000001 },
+  { 0x1980fb43, 0x1c000001 },
+  { 0x1980fb46, 0x1c00006b },
+  { 0x0080fbd3, 0x1c00016a },
+  { 0x0900fd3e, 0x58000000 },
+  { 0x0900fd3f, 0x48000000 },
+  { 0x0080fd50, 0x1c00003f },
+  { 0x0080fd92, 0x1c000035 },
+  { 0x0080fdf0, 0x1c00000b },
+  { 0x0000fdfc, 0x5c000000 },
+  { 0x0900fdfd, 0x68000000 },
+  { 0x1b80fe00, 0x3000000f },
+  { 0x0980fe10, 0x54000006 },
+  { 0x0900fe17, 0x58000000 },
+  { 0x0900fe18, 0x48000000 },
+  { 0x0900fe19, 0x54000000 },
+  { 0x1b80fe20, 0x30000003 },
+  { 0x0900fe30, 0x54000000 },
+  { 0x0980fe31, 0x44000001 },
+  { 0x0980fe33, 0x40000001 },
+  { 0x0900fe35, 0x58000000 },
+  { 0x0900fe36, 0x48000000 },
+  { 0x0900fe37, 0x58000000 },
+  { 0x0900fe38, 0x48000000 },
+  { 0x0900fe39, 0x58000000 },
+  { 0x0900fe3a, 0x48000000 },
+  { 0x0900fe3b, 0x58000000 },
+  { 0x0900fe3c, 0x48000000 },
+  { 0x0900fe3d, 0x58000000 },
+  { 0x0900fe3e, 0x48000000 },
+  { 0x0900fe3f, 0x58000000 },
+  { 0x0900fe40, 0x48000000 },
+  { 0x0900fe41, 0x58000000 },
+  { 0x0900fe42, 0x48000000 },
+  { 0x0900fe43, 0x58000000 },
+  { 0x0900fe44, 0x48000000 },
+  { 0x0980fe45, 0x54000001 },
+  { 0x0900fe47, 0x58000000 },
+  { 0x0900fe48, 0x48000000 },
+  { 0x0980fe49, 0x54000003 },
+  { 0x0980fe4d, 0x40000002 },
+  { 0x0980fe50, 0x54000002 },
+  { 0x0980fe54, 0x54000003 },
+  { 0x0900fe58, 0x44000000 },
+  { 0x0900fe59, 0x58000000 },
+  { 0x0900fe5a, 0x48000000 },
+  { 0x0900fe5b, 0x58000000 },
+  { 0x0900fe5c, 0x48000000 },
+  { 0x0900fe5d, 0x58000000 },
+  { 0x0900fe5e, 0x48000000 },
+  { 0x0980fe5f, 0x54000002 },
+  { 0x0900fe62, 0x64000000 },
+  { 0x0900fe63, 0x44000000 },
+  { 0x0980fe64, 0x64000002 },
+  { 0x0900fe68, 0x54000000 },
+  { 0x0900fe69, 0x5c000000 },
+  { 0x0980fe6a, 0x54000001 },
+  { 0x0080fe70, 0x1c000004 },
+  { 0x0080fe76, 0x1c000086 },
+  { 0x0900feff, 0x04000000 },
+  { 0x0980ff01, 0x54000002 },
+  { 0x0900ff04, 0x5c000000 },
+  { 0x0980ff05, 0x54000002 },
+  { 0x0900ff08, 0x58000000 },
+  { 0x0900ff09, 0x48000000 },
+  { 0x0900ff0a, 0x54000000 },
+  { 0x0900ff0b, 0x64000000 },
+  { 0x0900ff0c, 0x54000000 },
+  { 0x0900ff0d, 0x44000000 },
+  { 0x0980ff0e, 0x54000001 },
+  { 0x0980ff10, 0x34000009 },
+  { 0x0980ff1a, 0x54000001 },
+  { 0x0980ff1c, 0x64000002 },
+  { 0x0980ff1f, 0x54000001 },
+  { 0x2100ff21, 0x24000020 },
+  { 0x2100ff22, 0x24000020 },
+  { 0x2100ff23, 0x24000020 },
+  { 0x2100ff24, 0x24000020 },
+  { 0x2100ff25, 0x24000020 },
+  { 0x2100ff26, 0x24000020 },
+  { 0x2100ff27, 0x24000020 },
+  { 0x2100ff28, 0x24000020 },
+  { 0x2100ff29, 0x24000020 },
+  { 0x2100ff2a, 0x24000020 },
+  { 0x2100ff2b, 0x24000020 },
+  { 0x2100ff2c, 0x24000020 },
+  { 0x2100ff2d, 0x24000020 },
+  { 0x2100ff2e, 0x24000020 },
+  { 0x2100ff2f, 0x24000020 },
+  { 0x2100ff30, 0x24000020 },
+  { 0x2100ff31, 0x24000020 },
+  { 0x2100ff32, 0x24000020 },
+  { 0x2100ff33, 0x24000020 },
+  { 0x2100ff34, 0x24000020 },
+  { 0x2100ff35, 0x24000020 },
+  { 0x2100ff36, 0x24000020 },
+  { 0x2100ff37, 0x24000020 },
+  { 0x2100ff38, 0x24000020 },
+  { 0x2100ff39, 0x24000020 },
+  { 0x2100ff3a, 0x24000020 },
+  { 0x0900ff3b, 0x58000000 },
+  { 0x0900ff3c, 0x54000000 },
+  { 0x0900ff3d, 0x48000000 },
+  { 0x0900ff3e, 0x60000000 },
+  { 0x0900ff3f, 0x40000000 },
+  { 0x0900ff40, 0x60000000 },
+  { 0x2100ff41, 0x1400ffe0 },
+  { 0x2100ff42, 0x1400ffe0 },
+  { 0x2100ff43, 0x1400ffe0 },
+  { 0x2100ff44, 0x1400ffe0 },
+  { 0x2100ff45, 0x1400ffe0 },
+  { 0x2100ff46, 0x1400ffe0 },
+  { 0x2100ff47, 0x1400ffe0 },
+  { 0x2100ff48, 0x1400ffe0 },
+  { 0x2100ff49, 0x1400ffe0 },
+  { 0x2100ff4a, 0x1400ffe0 },
+  { 0x2100ff4b, 0x1400ffe0 },
+  { 0x2100ff4c, 0x1400ffe0 },
+  { 0x2100ff4d, 0x1400ffe0 },
+  { 0x2100ff4e, 0x1400ffe0 },
+  { 0x2100ff4f, 0x1400ffe0 },
+  { 0x2100ff50, 0x1400ffe0 },
+  { 0x2100ff51, 0x1400ffe0 },
+  { 0x2100ff52, 0x1400ffe0 },
+  { 0x2100ff53, 0x1400ffe0 },
+  { 0x2100ff54, 0x1400ffe0 },
+  { 0x2100ff55, 0x1400ffe0 },
+  { 0x2100ff56, 0x1400ffe0 },
+  { 0x2100ff57, 0x1400ffe0 },
+  { 0x2100ff58, 0x1400ffe0 },
+  { 0x2100ff59, 0x1400ffe0 },
+  { 0x2100ff5a, 0x1400ffe0 },
+  { 0x0900ff5b, 0x58000000 },
+  { 0x0900ff5c, 0x64000000 },
+  { 0x0900ff5d, 0x48000000 },
+  { 0x0900ff5e, 0x64000000 },
+  { 0x0900ff5f, 0x58000000 },
+  { 0x0900ff60, 0x48000000 },
+  { 0x0900ff61, 0x54000000 },
+  { 0x0900ff62, 0x58000000 },
+  { 0x0900ff63, 0x48000000 },
+  { 0x0980ff64, 0x54000001 },
+  { 0x1d80ff66, 0x1c000009 },
+  { 0x0900ff70, 0x18000000 },
+  { 0x1d80ff71, 0x1c00002c },
+  { 0x0980ff9e, 0x18000001 },
+  { 0x1780ffa0, 0x1c00001e },
+  { 0x1780ffc2, 0x1c000005 },
+  { 0x1780ffca, 0x1c000005 },
+  { 0x1780ffd2, 0x1c000005 },
+  { 0x1780ffda, 0x1c000002 },
+  { 0x0980ffe0, 0x5c000001 },
+  { 0x0900ffe2, 0x64000000 },
+  { 0x0900ffe3, 0x60000000 },
+  { 0x0900ffe4, 0x68000000 },
+  { 0x0980ffe5, 0x5c000001 },
+  { 0x0900ffe8, 0x68000000 },
+  { 0x0980ffe9, 0x64000003 },
+  { 0x0980ffed, 0x68000001 },
+  { 0x0980fff9, 0x04000002 },
+  { 0x0980fffc, 0x68000001 },
+  { 0x23810000, 0x1c00000b },
+  { 0x2381000d, 0x1c000019 },
+  { 0x23810028, 0x1c000012 },
+  { 0x2381003c, 0x1c000001 },
+  { 0x2381003f, 0x1c00000e },
+  { 0x23810050, 0x1c00000d },
+  { 0x23810080, 0x1c00007a },
+  { 0x09810100, 0x54000001 },
+  { 0x09010102, 0x68000000 },
+  { 0x09810107, 0x3c00002c },
+  { 0x09810137, 0x68000008 },
+  { 0x13810140, 0x38000034 },
+  { 0x13810175, 0x3c000003 },
+  { 0x13810179, 0x68000010 },
+  { 0x1301018a, 0x3c000000 },
+  { 0x29810300, 0x1c00001e },
+  { 0x29810320, 0x3c000003 },
+  { 0x12810330, 0x1c000010 },
+  { 0x12010341, 0x38000000 },
+  { 0x12810342, 0x1c000007 },
+  { 0x1201034a, 0x38000000 },
+  { 0x3b810380, 0x1c00001d },
+  { 0x3b01039f, 0x54000000 },
+  { 0x2a8103a0, 0x1c000023 },
+  { 0x2a8103c8, 0x1c000007 },
+  { 0x2a0103d0, 0x54000000 },
+  { 0x2a8103d1, 0x38000004 },
+  { 0x0d010400, 0x24000028 },
+  { 0x0d010401, 0x24000028 },
+  { 0x0d010402, 0x24000028 },
+  { 0x0d010403, 0x24000028 },
+  { 0x0d010404, 0x24000028 },
+  { 0x0d010405, 0x24000028 },
+  { 0x0d010406, 0x24000028 },
+  { 0x0d010407, 0x24000028 },
+  { 0x0d010408, 0x24000028 },
+  { 0x0d010409, 0x24000028 },
+  { 0x0d01040a, 0x24000028 },
+  { 0x0d01040b, 0x24000028 },
+  { 0x0d01040c, 0x24000028 },
+  { 0x0d01040d, 0x24000028 },
+  { 0x0d01040e, 0x24000028 },
+  { 0x0d01040f, 0x24000028 },
+  { 0x0d010410, 0x24000028 },
+  { 0x0d010411, 0x24000028 },
+  { 0x0d010412, 0x24000028 },
+  { 0x0d010413, 0x24000028 },
+  { 0x0d010414, 0x24000028 },
+  { 0x0d010415, 0x24000028 },
+  { 0x0d010416, 0x24000028 },
+  { 0x0d010417, 0x24000028 },
+  { 0x0d010418, 0x24000028 },
+  { 0x0d010419, 0x24000028 },
+  { 0x0d01041a, 0x24000028 },
+  { 0x0d01041b, 0x24000028 },
+  { 0x0d01041c, 0x24000028 },
+  { 0x0d01041d, 0x24000028 },
+  { 0x0d01041e, 0x24000028 },
+  { 0x0d01041f, 0x24000028 },
+  { 0x0d010420, 0x24000028 },
+  { 0x0d010421, 0x24000028 },
+  { 0x0d010422, 0x24000028 },
+  { 0x0d010423, 0x24000028 },
+  { 0x0d010424, 0x24000028 },
+  { 0x0d010425, 0x24000028 },
+  { 0x0d010426, 0x24000028 },
+  { 0x0d010427, 0x24000028 },
+  { 0x0d010428, 0x1400ffd8 },
+  { 0x0d010429, 0x1400ffd8 },
+  { 0x0d01042a, 0x1400ffd8 },
+  { 0x0d01042b, 0x1400ffd8 },
+  { 0x0d01042c, 0x1400ffd8 },
+  { 0x0d01042d, 0x1400ffd8 },
+  { 0x0d01042e, 0x1400ffd8 },
+  { 0x0d01042f, 0x1400ffd8 },
+  { 0x0d010430, 0x1400ffd8 },
+  { 0x0d010431, 0x1400ffd8 },
+  { 0x0d010432, 0x1400ffd8 },
+  { 0x0d010433, 0x1400ffd8 },
+  { 0x0d010434, 0x1400ffd8 },
+  { 0x0d010435, 0x1400ffd8 },
+  { 0x0d010436, 0x1400ffd8 },
+  { 0x0d010437, 0x1400ffd8 },
+  { 0x0d010438, 0x1400ffd8 },
+  { 0x0d010439, 0x1400ffd8 },
+  { 0x0d01043a, 0x1400ffd8 },
+  { 0x0d01043b, 0x1400ffd8 },
+  { 0x0d01043c, 0x1400ffd8 },
+  { 0x0d01043d, 0x1400ffd8 },
+  { 0x0d01043e, 0x1400ffd8 },
+  { 0x0d01043f, 0x1400ffd8 },
+  { 0x0d010440, 0x1400ffd8 },
+  { 0x0d010441, 0x1400ffd8 },
+  { 0x0d010442, 0x1400ffd8 },
+  { 0x0d010443, 0x1400ffd8 },
+  { 0x0d010444, 0x1400ffd8 },
+  { 0x0d010445, 0x1400ffd8 },
+  { 0x0d010446, 0x1400ffd8 },
+  { 0x0d010447, 0x1400ffd8 },
+  { 0x0d010448, 0x1400ffd8 },
+  { 0x0d010449, 0x1400ffd8 },
+  { 0x0d01044a, 0x1400ffd8 },
+  { 0x0d01044b, 0x1400ffd8 },
+  { 0x0d01044c, 0x1400ffd8 },
+  { 0x0d01044d, 0x1400ffd8 },
+  { 0x0d01044e, 0x1400ffd8 },
+  { 0x0d01044f, 0x1400ffd8 },
+  { 0x2e810450, 0x1c00004d },
+  { 0x2c8104a0, 0x34000009 },
+  { 0x0b810800, 0x1c000005 },
+  { 0x0b010808, 0x1c000000 },
+  { 0x0b81080a, 0x1c00002b },
+  { 0x0b810837, 0x1c000001 },
+  { 0x0b01083c, 0x1c000000 },
+  { 0x0b01083f, 0x1c000000 },
+  { 0x41810900, 0x1c000015 },
+  { 0x41810916, 0x3c000003 },
+  { 0x4101091f, 0x54000000 },
+  { 0x1e010a00, 0x1c000000 },
+  { 0x1e810a01, 0x30000002 },
+  { 0x1e810a05, 0x30000001 },
+  { 0x1e810a0c, 0x30000003 },
+  { 0x1e810a10, 0x1c000003 },
+  { 0x1e810a15, 0x1c000002 },
+  { 0x1e810a19, 0x1c00001a },
+  { 0x1e810a38, 0x30000002 },
+  { 0x1e010a3f, 0x30000000 },
+  { 0x1e810a40, 0x3c000007 },
+  { 0x1e810a50, 0x54000008 },
+  { 0x3e812000, 0x1c00036e },
+  { 0x3e812400, 0x38000062 },
+  { 0x3e812470, 0x54000003 },
+  { 0x0981d000, 0x680000f5 },
+  { 0x0981d100, 0x68000026 },
+  { 0x0981d12a, 0x6800003a },
+  { 0x0981d165, 0x28000001 },
+  { 0x1b81d167, 0x30000002 },
+  { 0x0981d16a, 0x68000002 },
+  { 0x0981d16d, 0x28000005 },
+  { 0x0981d173, 0x04000007 },
+  { 0x1b81d17b, 0x30000007 },
+  { 0x0981d183, 0x68000001 },
+  { 0x1b81d185, 0x30000006 },
+  { 0x0981d18c, 0x6800001d },
+  { 0x1b81d1aa, 0x30000003 },
+  { 0x0981d1ae, 0x6800002f },
+  { 0x1381d200, 0x68000041 },
+  { 0x1381d242, 0x30000002 },
+  { 0x1301d245, 0x68000000 },
+  { 0x0981d300, 0x68000056 },
+  { 0x0981d360, 0x3c000011 },
+  { 0x0981d400, 0x24000019 },
+  { 0x0981d41a, 0x14000019 },
+  { 0x0981d434, 0x24000019 },
+  { 0x0981d44e, 0x14000006 },
+  { 0x0981d456, 0x14000011 },
+  { 0x0981d468, 0x24000019 },
+  { 0x0981d482, 0x14000019 },
+  { 0x0901d49c, 0x24000000 },
+  { 0x0981d49e, 0x24000001 },
+  { 0x0901d4a2, 0x24000000 },
+  { 0x0981d4a5, 0x24000001 },
+  { 0x0981d4a9, 0x24000003 },
+  { 0x0981d4ae, 0x24000007 },
+  { 0x0981d4b6, 0x14000003 },
+  { 0x0901d4bb, 0x14000000 },
+  { 0x0981d4bd, 0x14000006 },
+  { 0x0981d4c5, 0x1400000a },
+  { 0x0981d4d0, 0x24000019 },
+  { 0x0981d4ea, 0x14000019 },
+  { 0x0981d504, 0x24000001 },
+  { 0x0981d507, 0x24000003 },
+  { 0x0981d50d, 0x24000007 },
+  { 0x0981d516, 0x24000006 },
+  { 0x0981d51e, 0x14000019 },
+  { 0x0981d538, 0x24000001 },
+  { 0x0981d53b, 0x24000003 },
+  { 0x0981d540, 0x24000004 },
+  { 0x0901d546, 0x24000000 },
+  { 0x0981d54a, 0x24000006 },
+  { 0x0981d552, 0x14000019 },
+  { 0x0981d56c, 0x24000019 },
+  { 0x0981d586, 0x14000019 },
+  { 0x0981d5a0, 0x24000019 },
+  { 0x0981d5ba, 0x14000019 },
+  { 0x0981d5d4, 0x24000019 },
+  { 0x0981d5ee, 0x14000019 },
+  { 0x0981d608, 0x24000019 },
+  { 0x0981d622, 0x14000019 },
+  { 0x0981d63c, 0x24000019 },
+  { 0x0981d656, 0x14000019 },
+  { 0x0981d670, 0x24000019 },
+  { 0x0981d68a, 0x1400001b },
+  { 0x0981d6a8, 0x24000018 },
+  { 0x0901d6c1, 0x64000000 },
+  { 0x0981d6c2, 0x14000018 },
+  { 0x0901d6db, 0x64000000 },
+  { 0x0981d6dc, 0x14000005 },
+  { 0x0981d6e2, 0x24000018 },
+  { 0x0901d6fb, 0x64000000 },
+  { 0x0981d6fc, 0x14000018 },
+  { 0x0901d715, 0x64000000 },
+  { 0x0981d716, 0x14000005 },
+  { 0x0981d71c, 0x24000018 },
+  { 0x0901d735, 0x64000000 },
+  { 0x0981d736, 0x14000018 },
+  { 0x0901d74f, 0x64000000 },
+  { 0x0981d750, 0x14000005 },
+  { 0x0981d756, 0x24000018 },
+  { 0x0901d76f, 0x64000000 },
+  { 0x0981d770, 0x14000018 },
+  { 0x0901d789, 0x64000000 },
+  { 0x0981d78a, 0x14000005 },
+  { 0x0981d790, 0x24000018 },
+  { 0x0901d7a9, 0x64000000 },
+  { 0x0981d7aa, 0x14000018 },
+  { 0x0901d7c3, 0x64000000 },
+  { 0x0981d7c4, 0x14000005 },
+  { 0x0901d7ca, 0x24000000 },
+  { 0x0901d7cb, 0x14000000 },
+  { 0x0981d7ce, 0x34000031 },
+  { 0x16820000, 0x1c00a6d6 },
+  { 0x1682f800, 0x1c00021d },
+  { 0x090e0001, 0x04000000 },
+  { 0x098e0020, 0x0400005f },
+  { 0x1b8e0100, 0x300000ef },
+  { 0x098f0000, 0x0c00fffd },
+  { 0x09900000, 0x0c00fffd },
 };
diff -Nurp --exclude='.bzr*' tin-1.8.3/pcre/version.sh tin-2.0.0/pcre/version.sh
--- tin-1.8.3/pcre/version.sh	2005-09-12 16:34:51.000000000 +0200
+++ tin-2.0.0/pcre/version.sh	2011-04-17 16:04:37.264109598 +0200
@@ -6,7 +6,7 @@
 # digits for minor numbers less than 10. There are unlikely to be
 # that many releases anyway.
 
-PCRE_MAJOR=6
-PCRE_MINOR=4
-PCRE_DATE=05-Sep-2005
+PCRE_MAJOR=7
+PCRE_MINOR=0
+PCRE_DATE=18-Dec-2006
 PCRE_VERSION=${PCRE_MAJOR}.${PCRE_MINOR}
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/Makefile.inn tin-2.0.0/po/Makefile.inn
--- tin-1.8.3/po/Makefile.inn	2005-06-28 10:31:29.000000000 +0200
+++ tin-2.0.0/po/Makefile.inn	2011-04-17 16:06:16.839263075 +0200
@@ -8,6 +8,7 @@
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
+NLS_TEXTDOMAIN = @NLS_TEXTDOMAIN@
 
 # These two variables depend on the location of this directory.
 subdir = po
@@ -22,38 +23,45 @@ srcdir = @srcdir@
 top_srcdir = @top_srcdir@
 VPATH = @srcdir@
 
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-MKINSTALLDIRS = @MKINSTALLDIRS@
-
-CC = @CC@
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
-
-DEFS = @DEFS@
-CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@
+prefix		= @prefix@
+exec_prefix	= @exec_prefix@
+datadir		= @datadir@
+localedir	= $(datadir)/locale
+gettextsrcdir	= $(datadir)/gettext/po
+
+DATADIR		= $(DESTDIR)$(datadir)
+LOCALEDIR	= $(DESTDIR)$(localedir)
+GETTEXTSRCDIR	= $(DESTDIR)$(gettextsrcdir)
+
+INSTALL		= @INSTALL@
+INSTALL_DATA	= @INSTALL_DATA@
+
+CC		= @CC@
+GMSGFMT		= @GMSGFMT@
+MSGFMT		= @MSGFMT@
+XGETTEXT	= @XGETTEXT@
+MSGMERGE	= msgmerge
+
+DEFS		= @DEFS@
+CFLAGS		= @CFLAGS@
+CPPFLAGS	= @CPPFLAGS@
 
 INCLUDES = -I.. -I$(top_srcdir)/intl
 
 COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
 
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-DISTFILES = ChangeLog Makefile.inn POTFILES.in $(PACKAGE).pot \
+POFILES		= @POFILES@
+GMOFILES	= @GMOFILES@
+DISTFILES	= ChangeLog Makefile.inn POTFILES.in $(PACKAGE).pot \
 $(POFILES) $(GMOFILES)
 
 POTFILES = \
 
-CATALOGS = @CATALOGS@
+CATALOGS	= @CATALOGS@
+CATOBJEXT	= @CATOBJEXT@
+INSTOBJEXT	= @INSTOBJEXT@
+
+INSTOBJ	= $(NLS_TEXTDOMAIN)$(INSTOBJEXT)
 
 .SUFFIXES:
 .SUFFIXES: .c .o .po .pox .gmo .mo
@@ -83,7 +91,7 @@ all-no:
 # have been downloaded.
 
 $(srcdir)/$(PACKAGE).pot: $(POTFILES) $(srcdir)/POTFILES.in
-	$(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+	$(XGETTEXT) --default-domain=$(NLS_TEXTDOMAIN) --directory=$(top_srcdir) \
 	  --add-comments --keyword=_ --keyword=N_ \
 	  --files-from=$(srcdir)/POTFILES.in \
 	&& test ! -f $(PACKAGE).po \
@@ -95,28 +103,28 @@ install: install-exec install-data
 install-exec:
 install-data: install-data-@USE_NLS@
 	if test "$(PACKAGE)" = "gettext"; then \
-	  $(MKINSTALLDIRS) $(DESTDIR)$(gettextsrcdir); \
+	  mkdir -p $(GETTEXTSRCDIR); \
 	  $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
-			  $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
+			  $(GETTEXTSRCDIR)/Makefile.in.in; \
 	else \
 	  : ; \
 	fi
 install-data-no: all
 install-data-yes: all
-	$(MKINSTALLDIRS) $(DESTDIR)$(datadir)
+	mkdir -p $(DATADIR)
 	@catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
-	  dir=$(localedir)/$$lang/LC_MESSAGES; \
-	  $(MKINSTALLDIRS) $(DESTDIR)$$dir; \
+	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+	  dir=$(LOCALEDIR)/$$lang/LC_MESSAGES; \
+	  mkdir -p $$dir; \
 	  if test -r $$cat; then \
-	    $(INSTALL_DATA) $$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
-	    echo "installing $$cat as $(DESTDIR)$$dir/$(PACKAGE).mo"; \
+	    $(INSTALL_DATA) $$cat $$dir/$(INSTOBJ); \
+	    echo "installing $$cat as $$dir/$(INSTOBJ)"; \
 	  else \
-	    $(INSTALL_DATA) $(srcdir)/$$cat $(DESTDIR)$$dir/$(PACKAGE).mo; \
+	    $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(INSTOBJ); \
 	    echo "installing $(srcdir)/$$cat as" \
-		 "$(DESTDIR)$$dir/$(PACKAGE).mo"; \
+		 "$$dir/$(INSTOBJ)"; \
 	  fi; \
 	done
 
@@ -127,11 +135,11 @@ uninstall:
 	catalogs='$(CATALOGS)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
-	  rm -f $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(PACKAGE).mo; \
+	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+	  rm -f $(LOCALEDIR)/$$lang/LC_MESSAGES/$(INSTOBJ); \
 	done
 	if test "$(PACKAGE)" = "gettext"; then \
-	  rm -f $(DESTDIR)$(gettextsrcdir)/Makefile.in.in; \
+	  rm -f $(GETTEXTSRCDIR)/Makefile.in.in; \
 	else \
 	  : ; \
 	fi
@@ -173,7 +181,7 @@ update-po: Makefile
 	catalogs='$(GMOFILES)'; \
 	for cat in $$catalogs; do \
 	  cat=`basename $$cat`; \
-	  lang=`echo $$cat | sed 's/\.gmo$$//'`; \
+	  lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
 	  echo "$$lang:"; \
 	  if $(MSGMERGE) $$lang.po $(PACKAGE).pot -o $$lang.new.po; then \
 	    mv -f $$lang.new.po $$lang.po; \
Binary files tin-1.8.3/po/da.gmo and tin-2.0.0/po/da.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/da.po tin-2.0.0/po/da.po
--- tin-1.8.3/po/da.po	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/po/da.po	2011-08-22 18:32:40.679159973 +0200
@@ -0,0 +1,7167 @@
+# Danish translation of Tin.
+# Copyright (C) 2010 Tin & Joe Hansen.
+# This file is distributed under the same license as the tin package.
+# Joe Hansen <joedalton2@yahoo.dk>, 2009, 2010.
+#
+# Der er ikke anvendt accenter i denne oversÃ¦ttelse.
+# '' er bevaret i oversÃ¦ttelsen pÃ¥ samme mÃ¥de ''.
+#
+# by -> efter
+# header -> teksthoved
+# newsgroup -> nyhedsgruppe
+# option -> indstilling (tilvalg?)
+# posting -> indsendelse
+# posting date -> indsendingsdato
+# post to -> send til
+# yank -> ryk
+# scope -> virkefelt (omfang?)
+# score -> point
+# sign -> underskriv
+# signatur -> underskrift
+# subject -> emne
+# whitespace -> mellemrum (egentlig 'blanke tegn' (mellemrum,
+#                         (linjeskift, sideskift, tabulatortegn osv.))
+#
+# bemÃ¦rk at den her slags strenge ikke skal oversÃ¦ttes
+# add_posted_to_filter=ON/OFF. Kun hvis der er mellemrum til hÃ¸jre for
+# tegnet lig med.
+# Husk mellemrum, projektet anbefaler at man bevarer mellemrummene.
+#
+# Kan man oversÃ¦tte "Subject:" et sted i filen?  Ellers skal det mÃ¥ske
+# vÃ¦re uoversat
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.9.5\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\n"
+        "PO-Revision-Date: 2010-07-18 19:14+0100\n"
+        "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
+        "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=UTF-8\n"
+        "Content-Transfer-Encoding: 8bit\n"
+
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
+#, c-format
+msgid   "attribute with no scope: %s"
+msgstr  "attribut uden virkefelt: %s"
+
+#: src/attrib.c:884
+msgid   "Processing attributes... "
+msgstr  "Behandler attributter... "
+
+#: src/attrib.c:1102
+#, c-format
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  "# Rediger ikke denne kommentarblok\n"
+        "#\n"
+
+#: src/attrib.c:1103
+#, c-format
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  "#  scope=STRENG (f.eks. alt.*,!alt.bin*) [krÃ¦vet]\n"
+
+#: src/attrib.c:1104
+#, c-format
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  "#  add_posted_to_filter=ON/OFF\n"
+
+#: src/attrib.c:1105
+#, c-format
+msgid   "#  advertising=ON/OFF\n"
+msgstr  "#  advertising=ON/OFF\n"
+
+#: src/attrib.c:1106
+#, c-format
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  "#  alternative_handling=ON/OFF\n"
+
+#: src/attrib.c:1107
+#, c-format
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  "#  ask_for_metamail=ON/OFF\n"
+
+#: src/attrib.c:1108
+#, c-format
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  "#  auto_cc_bcc=NUM\n"
+
+#: src/attrib.c:1109
+#, c-format
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  "#    0=Nej, 1=Cc, 2=Bcc, 3=Cc og Bcc\n"
+
+#: src/attrib.c:1110
+#, c-format
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  "#  auto_list_thread=ON/OFF\n"
+
+#: src/attrib.c:1111
+#, c-format
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  "#  auto_save=ON/OFF\n"
+
+#: src/attrib.c:1112
+#, c-format
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  "#  auto_select=ON/OFF\n"
+
+#: src/attrib.c:1113
+#, c-format
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  "#  batch_save=ON/OFF\n"
+
+#: src/attrib.c:1114
+#, c-format
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  "#  date_format=STRENG (f.eks. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+
+#: src/attrib.c:1115
+#, c-format
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  "#  delete_tmp_files=ON/OFF\n"
+
+#: src/attrib.c:1116
+#, c-format
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  "#  editor_format=STRENG (f.eks. %%E +%%N %%F)\n"
+
+#: src/attrib.c:1117
+#, c-format
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  "#  fcc=STRENG (f.eks. =postkasse)\n"
+
+#: src/attrib.c:1118
+#, c-format
+msgid   "#  followup_to=STRING\n"
+msgstr  "#  followup_to=STRENG\n"
+
+#: src/attrib.c:1119
+#, c-format
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  "#  from=STRENG (tilfÃ¸j bare Ã¸nsket fra:-linje, brug ikke anfÃ¸rselstegn)\n"
+
+#: src/attrib.c:1120
+#, c-format
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  "#  group_catchup_on_exit=ON/OFF\n"
+
+#: src/attrib.c:1121
+#, c-format
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  "#  mail_8bit_header=ON/OFF\n"
+
+#: src/attrib.c:1122
+#, c-format
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  "#  mail_mime_encoding=supported_encoding"
+
+#: src/attrib.c:1130
+#, c-format
+msgid   "#  ispell=STRING\n"
+msgstr  "#  ispell=STRENG\n"
+
+#: src/attrib.c:1132
+#, c-format
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  "#  maildir=STRENG (f.eks. ~/Post)\n"
+
+#: src/attrib.c:1133
+#, c-format
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  "#  mailing_list=STRENG (f.eks. majordomo@example.org)\n"
+
+#: src/attrib.c:1134
+#, c-format
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  "#  mime_types_to_save=STRENG (f.eks. image/*,!image/bmp)\n"
+
+#: src/attrib.c:1135
+#, c-format
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  "#  mark_ignore_tags=ON/OFF\n"
+
+#: src/attrib.c:1136
+#, c-format
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  "#  mark_saved_read=ON/OFF\n"
+
+#: src/attrib.c:1137
+#, c-format
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  "#  mime_forward=ON/OFF\n"
+
+#: src/attrib.c:1139
+#, c-format
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  "#  mm_network_charset=supported_charset"
+
+#: src/attrib.c:1146
+#, c-format
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  "#  undeclared_charset=STRENG (standard er US-ASCII)\n"
+
+#: src/attrib.c:1148
+#, c-format
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  "#  news_headers_to_display=STRENG\n"
+
+#: src/attrib.c:1149
+#, c-format
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  "#  news_headers_to_not_display=STRENG\n"
+
+#: src/attrib.c:1150
+#, c-format
+msgid   "#  news_quote_format=STRING\n"
+msgstr  "#  news_quote_format=STRENG\n"
+
+#: src/attrib.c:1151
+#, c-format
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  "#  organization=STRENG (hvis '/' er i begyndelsen, sÃ¥ lÃ¦s fra fil)\n"
+
+#: src/attrib.c:1152
+#, c-format
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  "#  pos_first_unread=ON/OFF\n"
+
+#: src/attrib.c:1153
+#, c-format
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  "#  post_8bit_header=ON/OFF\n"
+
+#: src/attrib.c:1154
+#, c-format
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  "#  post_mime_encoding=supported_encoding"
+
+#: src/attrib.c:1161
+#, c-format
+msgid   "#  post_process_type=NUM\n"
+msgstr  "#  post_process_type=NUM\n"
+
+#: src/attrib.c:1166
+#, c-format
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  "#  post_process_view=ON/OFF\n"
+
+#: src/attrib.c:1167
+#, c-format
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  "#  quick_kill_scope=STRENG (f.eks. talk.*)\n"
+
+#: src/attrib.c:1168
+#, c-format
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  "#  quick_kill_expire=ON/OFF\n"
+
+#: src/attrib.c:1169
+#, c-format
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  "#  quick_kill_case=ON/OFF\n"
+
+#: src/attrib.c:1170
+#, c-format
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  "#  quick_kill_header=NUM\n"
+
+#: src/attrib.c:1171 src/attrib.c:1180
+#, fuzzy, c-format
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  "#    0=Subject: (versalfÃ¸lsom)   1=Subject: (ikke versalfÃ¸lsom)\n"
+
+#: src/attrib.c:1172 src/attrib.c:1181
+#, fuzzy, c-format
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  "#    2=From: (versalfÃ¸lsom)      3=From: (ikke versalfÃ¸lsom)\n"
+
+#: src/attrib.c:1173 src/attrib.c:1182
+#, c-format
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  ""
+
+#: src/attrib.c:1174 src/attrib.c:1183
+#, c-format
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  ""
+
+#: src/attrib.c:1175 src/attrib.c:1184
+#, c-format
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  ""
+
+#: src/attrib.c:1176
+#, c-format
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  "#  quick_select_scope=STRENG\n"
+
+#: src/attrib.c:1177
+#, c-format
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  "#  quick_select_expire=ON/OFF\n"
+
+#: src/attrib.c:1178
+#, c-format
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  "#  quick_select_case=ON/OFF\n"
+
+#: src/attrib.c:1179
+#, c-format
+msgid   "#  quick_select_header=NUM\n"
+msgstr  "#  quick_select_header=NUM\n"
+
+#: src/attrib.c:1185
+#, c-format
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  "#  quote_chars=STRENG (%%s, %%S for initialer)\n"
+
+#: src/attrib.c:1187
+#, c-format
+msgid   "#  print_header=ON/OFF\n"
+msgstr  "#  print_header=ON/OFF\n"
+
+#: src/attrib.c:1189
+#, c-format
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  "#  process_only_unread=ON/OFF\n"
+
+#: src/attrib.c:1190
+#, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  "#  prompt_followupto=ON/OFF\n"
+
+#: src/attrib.c:1191
+#, c-format
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  "#  savedir=STRENG (f.eks. ~user/News)\n"
+
+#: src/attrib.c:1192
+#, c-format
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  "#  savefile=STRENG (f.eks. =linux)\n"
+
+#: src/attrib.c:1193
+#, c-format
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  "#  sigfile=STRENG (f.eks. $var/sig)\n"
+
+#: src/attrib.c:1194
+#, c-format
+msgid   "#  show_author=NUM\n"
+msgstr  "#  show_author=NUM\n"
+
+#: src/attrib.c:1200
+#, c-format
+msgid   "#  show_info=NUM\n"
+msgstr  "#  show_info=NUM\n"
+
+#: src/attrib.c:1206
+#, c-format
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  "#  show_signatures=ON/OFF\n"
+
+#: src/attrib.c:1207
+#, c-format
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  "#  show_only_unread_arts=ON/OFF\n"
+
+#: src/attrib.c:1208
+#, c-format
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  "#  sigdashes=ON/OFF\n"
+
+#: src/attrib.c:1209
+#, c-format
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  "#  signature_repost=ON/OFF\n"
+
+#: src/attrib.c:1210
+#, c-format
+msgid   "#  sort_article_type=NUM\n"
+msgstr  "#  sort_article_type=NUM\n"
+
+#: src/attrib.c:1228
+#, c-format
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  "#  sort_threads_type=NUM\n"
+
+#: src/attrib.c:1237
+#, c-format
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  "#  start_editor_offset=ON/OFF\n"
+
+#: src/attrib.c:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  "#  tex2iso_conv=ON/OFF\n"
+
+#: src/attrib.c:1239
+#, c-format
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  "#  thread_catchup_on_exit=ON/OFF\n"
+
+#: src/attrib.c:1240
+#, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  "#  thread_articles=NUM"
+
+#: src/attrib.c:1247
+#, c-format
+msgid   "#  thread_perc=NUM\n"
+msgstr  "#  thread_perc=NUM\n"
+
+#: src/attrib.c:1248
+#, c-format
+msgid   "#  trim_article_body=NUM\n"
+msgstr  "#  trim_article_body=NUM\n"
+
+#: src/attrib.c:1249
+#, c-format
+msgid   "#    0 = Don't trim article body\n"
+msgstr  ""
+
+#: src/attrib.c:1250
+#, c-format
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1251
+#, c-format
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1252
+#, c-format
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1253
+#, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  ""
+
+#: src/attrib.c:1254
+#, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  "#  verbatim_handling=ON/OFF\n"
+
+#: src/attrib.c:1258
+#, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  "#  wrap_on_next_unread=ON/OFF\n"
+
+#: src/attrib.c:1259
+#, c-format
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  "#  x_body=STRENG (f.eks. ~/.tin/extra-body-text)\n"
+
+#: src/attrib.c:1260
+#, c-format
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  "#  x_comment_to=ON/OFF\n"
+
+#: src/attrib.c:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  "#  x_headers=STRENG (f.eks. ~/.tin/extra-headers)\n"
+
+#: src/attrib.c:1262
+#, c-format
+msgid   "#\n"
+        "# Note that it is best to put general (global scoping)\n"
+msgstr  ""
+
+#: src/attrib.c:1263
+#, c-format
+msgid   "# entries first followed by group specific entries.\n"
+        "#\n"
+msgstr  ""
+
+#: src/attrib.c:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  ""
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(ukendt)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  ""
+
+#: src/lang.c:42
+msgid   "1 Response"
+msgstr  "1 svar"
+
+#: src/lang.c:46
+#, c-format
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s indeholder ingen nyhedsgrupper. Afslutter."
+
+#: src/lang.c:47
+msgid   "all "
+msgstr  "alle "
+
+#: src/lang.c:48
+msgid   "All groups"
+msgstr  "Alle grupper"
+
+#: src/lang.c:49
+#, c-format
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  "Fil %s findes. %s=tilfÃ¸j, %s=overskriv, %s=afslut: "
+
+#: src/lang.c:50
+msgid   "Article cancelled (deleted)."
+msgstr  "Artikel fortrudt (slettet)."
+
+#: src/lang.c:52
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "Artikel kan ikke fortrydes (slettet)."
+
+#: src/lang.c:54
+msgid   "Article deleted."
+msgstr  "Artikel slettet."
+
+#: src/lang.c:55
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "Din artikel:\n"
+        "  Â»%sÂ«\n"
+        "vil blive indsendt til den fÃ¸lgende %s:\n"
+
+#: src/lang.c:56
+msgid   "Article not posted!"
+msgstr  "Artikel ikke indsendt!"
+
+#: src/lang.c:57
+msgid   "Article not saved"
+msgstr  "Artikel ikke gemt"
+
+#: src/lang.c:58
+msgid   "Article Level Commands"
+msgstr  "Kommandoer for artikelniveau"
+
+#: src/lang.c:59
+msgid   "Article has no parent"
+msgstr  "Artikel har ingen overartikel"
+
+#: src/lang.c:60
+msgid   "Parent article has been killed"
+msgstr  "Overartikel er blevet drÃ¦bt"
+
+#: src/lang.c:61
+msgid   "Parent article is unavailable"
+msgstr  "Overartikel er ikke tilgÃ¦ngelig"
+
+#: src/lang.c:62
+#, c-format
+msgid   "Article posted: %s"
+msgstr  "Artikel indsendt: %s"
+
+#: src/lang.c:63
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  "Artikel afvist (gemt til %s)"
+
+#: src/lang.c:64
+#, fuzzy, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  "Marker %s=mÃ¦rkede artikler/trÃ¥de, %s=nuvÃ¦rende trÃ¥d, %s=afslut: "
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  "Artikel utilgÃ¦ngelig"
+
+#: src/lang.c:66
+msgid   "Article undeleted."
+msgstr  "Sletning af artikel fjernet."
+
+#: src/lang.c:67
+#, c-format
+msgid   "Article %4d of %4d"
+msgstr  "Artikel %4d af %4d"
+
+#: src/lang.c:69
+msgid   "articles"
+msgstr  "artikler"
+
+#: src/lang.c:70
+msgid   "This is a repost of the following article:"
+msgstr  "Dette er en gentagelse af den fÃ¸lgende artikel:"
+
+#: src/lang.c:71
+msgid   "article"
+msgstr  "artikel"
+
+#: src/lang.c:72
+msgid   "Article"
+msgstr  "Artikel"
+
+#: src/lang.c:73
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  "-- %d %s sendt --"
+
+#: src/lang.c:74
+#, c-format
+msgid   " at %s"
+msgstr  ""
+
+#: src/lang.c:75
+#, c-format
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  ""
+
+#: src/lang.c:76
+msgid   ", charset: "
+msgstr  ", tegnsÃ¦t: "
+
+#: src/lang.c:77
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  ""
+
+#: src/lang.c:78
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- Beskrivelse: %s --]\n"
+
+#: src/lang.c:79
+#, fuzzy, c-format
+msgid   "%d lines"
+msgstr  "%d Linjer"
+
+#: src/lang.c:80
+msgid   "Attachment Menu"
+msgstr  ""
+
+#: src/lang.c:81
+#, fuzzy
+msgid   "Attachment Menu Commands"
+msgstr  "Kommandoer for attributmenu"
+
+#: src/lang.c:82
+#, fuzzy
+msgid   "<no name>"
+msgstr  "ingen"
+
+#: src/lang.c:83
+#, fuzzy, c-format
+msgid   "Attachment saved successfully. (%s)"
+msgstr  "newsrc-fil blev gemt.\n"
+
+#: src/lang.c:84
+#, fuzzy, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  "newsrc-fil blev gemt.\n"
+
+#: src/lang.c:85
+#, fuzzy
+msgid   "Select attachment> "
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:86
+#, fuzzy
+msgid   "Tagged attachment"
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:87
+#, fuzzy, c-format
+msgid   "%d attachments tagged"
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:88
+#, fuzzy
+msgid   "Untagged attachment"
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:89
+msgid   "Attributes Menu Commands"
+msgstr  "Kommandoer for attributmenu"
+
+#: src/lang.c:91
+#, c-format
+msgid   "%d Authentication failed"
+msgstr  "%d godkendelse mislykkedes"
+
+#: src/lang.c:92
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "Adgangskode for NNTP-godkendelse blev ikke fundet for %s"
+
+#: src/lang.c:93
+msgid   "Server expects authentication.\n"
+msgstr  "Server forventer godkendelse.\n"
+
+#: src/lang.c:94
+msgid   "    Please enter password: "
+msgstr  "    Venligst indtast adgangskode: "
+
+#: src/lang.c:95
+msgid   "    Please enter username: "
+msgstr  "    Venligst indtast brugernavn: "
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  "Autoriseret for bruger: %s\n"
+
+#: src/lang.c:97
+#, c-format
+msgid   "Authorization failed for user: %s\n"
+msgstr  "Kunne ikke autorisere bruger: %s\n"
+
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  "BaglÃ¦ns sÃ¸gning efter forfatter [%s]> "
+
+#: src/lang.c:100
+#, c-format
+msgid   "Author search forwards [%s]> "
+msgstr  "Fremadrettet sÃ¸gning efter forfatter [%s]> "
+
+#: src/lang.c:101
+#, c-format
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  "\n"
+        "Autoabonnerede pÃ¥ %s"
+
+#: src/lang.c:102
+msgid   "Autosubscribing groups...\n"
+msgstr  "Autoabonnerer pÃ¥ grupper...\n"
+
+#: src/lang.c:103
+#, c-format
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  "Automarkerer artikler (brug '%s' for at se alle ulÃ¦ste) ..."
+
+#: src/lang.c:105
+#, c-format
+msgid   "Active file corrupt - %s"
+msgstr  "Aktiv fil korrupt - %s"
+
+#: src/lang.c:106
+#, c-format
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  "Artikel til indsendelse medfÃ¸rte fejl/advarsler. %s=afslut, %s=menu, %"
+        "s=rediger:"
+
+#: src/lang.c:107
+#, c-format
+msgid   "Unrecognized attribute: %s"
+msgstr  "Attribut ikke genkendt: %s"
+
+#: src/lang.c:108
+#, c-format
+msgid   "Bad command. Type '%s' for help."
+msgstr  "Forkert kommando. Tast Â»%sÂ« for hjÃ¦lp."
+
+#: src/lang.c:110
+msgid   "Base article"
+msgstr  "Baseartikel"
+
+#: src/lang.c:111
+msgid   "Base article range"
+msgstr  ""
+
+#: src/lang.c:112
+#, c-format
+msgid   "%s: Updating of index files not supported\n"
+msgstr  "%s: Opdatering af indeksfiler er ikke understÃ¸ttet\n"
+
+#: src/lang.c:113
+msgid   "*** Beginning of article ***"
+msgstr  "*** Begyndelse pÃ¥ artikel ***"
+
+#: src/lang.c:114
+msgid   "*** Beginning of page ***"
+msgstr  "*** Begyndelse pÃ¥ side ***"
+
+#: src/lang.c:116
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  ""
+
+#: src/lang.c:117
+msgid   "Cancelling article..."
+msgstr  "Fortryder artikel..."
+
+#: src/lang.c:119
+#, c-format
+msgid   "Cannot create %s"
+msgstr  "Kan ikke oprette %s"
+
+#: src/lang.c:120
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  "Kan ikke finde baseartikel %d"
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  "Kan ikke Ã¥bne %s"
+
+#: src/lang.c:122
+#, c-format
+msgid   "Couldn't open %s for saving"
+msgstr  "Kunne ikke Ã¥bne %s til gemning"
+
+#: src/lang.c:123
+msgid   "*** Posting not allowed ***"
+msgstr  "*** Indsendelse ikke tilladt ***"
+
+#: src/lang.c:124
+#, c-format
+msgid   "Posting is not allowed to %s"
+msgstr  "Indsendelse er ikke tilladt til %s"
+
+#: src/lang.c:126
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  "Kan ikke hente %s"
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s er en mappe"
+
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  ""
+
+#: src/lang.c:130
+#, c-format
+msgid   "Catchup %s..."
+msgstr  ""
+
+#: src/lang.c:131
+msgid   "Catchup all groups entered during this session?"
+msgstr  ""
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  ""
+
+#: src/lang.c:133
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  ""
+
+#: src/lang.c:134
+msgid   "Caughtup"
+msgstr  ""
+
+#: src/lang.c:135
+msgid   "Check Prepared Article"
+msgstr  "Tjek forberedt artikel"
+
+#: src/lang.c:136
+msgid   "Checking for new groups... "
+msgstr  "Tjekker for nye grupper..."
+
+#: src/lang.c:137
+msgid   "Checking for news..."
+msgstr  "Kigger efter nyheder..."
+
+#: src/lang.c:138
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  ""
+
+#: src/lang.c:140
+msgid   "ANSI color disabled"
+msgstr  "ANSI-farve slÃ¥et fra"
+
+#: src/lang.c:141
+msgid   "ANSI color enabled"
+msgstr  "ANSI-farve slÃ¥et til"
+
+#: src/lang.c:143
+#, c-format
+msgid   "Command failed: %s"
+msgstr  "Kommando mislykkedes: %s"
+
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  ""
+
+#: src/lang.c:146
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  "Forbinder til %s..."
+
+#: src/lang.c:148
+msgid   "<CR>"
+msgstr  "<CR>"
+
+#: src/lang.c:149
+msgid   "Creating active file for saved groups...\n"
+msgstr  "Opretter aktiv fil for gemte grupper...\n"
+
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  "Opretter newsrc-fil...\n"
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "Standard"
+
+#: src/lang.c:153
+msgid   "Delete saved files that have been post processed?"
+msgstr  "Slet gemte filer som er blevet efterbehandlet?"
+
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  "Sletter midlertidige filer..."
+
+#: src/lang.c:156
+msgid   "*** End of article ***"
+msgstr  "*** Slut pÃ¥ artikel ***"
+
+#: src/lang.c:157
+msgid   "*** End of articles ***"
+msgstr  "*** Slut pÃ¥ artikler ***"
+
+#: src/lang.c:158
+#, fuzzy
+msgid   "*** End of attachments ***"
+msgstr  "*** Slut pÃ¥ artikler ***"
+
+#: src/lang.c:159
+msgid   "*** End of groups ***"
+msgstr  "*** Slut pÃ¥ grupper ***"
+
+#: src/lang.c:160
+msgid   "*** End of page ***"
+msgstr  "*** Slut pÃ¥ side ***"
+
+#: src/lang.c:161
+msgid   "*** End of scopes ***"
+msgstr  "*** Slut pÃ¥ virkefelter ***"
+
+#: src/lang.c:162
+msgid   "*** End of thread ***"
+msgstr  "*** Slut pÃ¥ trÃ¥d ***"
+
+#: src/lang.c:163
+#, fuzzy
+msgid   "*** End of URLs ***"
+msgstr  "*** Slut pÃ¥ grupper ***"
+
+#: src/lang.c:164
+msgid   "Enter limit of articles to get> "
+msgstr  "Indtast begrÃ¦nsning pÃ¥ antal artikler der skal hentes> "
+
+#: src/lang.c:165
+msgid   "Enter Message-ID to go to> "
+msgstr  "Indtast besked-id som der skal gÃ¥s till> "
+
+#: src/lang.c:166
+msgid   " and enter next unread thread"
+msgstr  " og indtast nÃ¦ste ulÃ¦ste trÃ¥d"
+
+#: src/lang.c:167
+msgid   " and enter next unread article"
+msgstr  " og se nÃ¦ste ulÃ¦ste artikel"
+
+#: src/lang.c:168
+msgid   " and enter next unread group"
+msgstr  " og indtast nÃ¦ste ulÃ¦ste gruppe"
+
+#: src/lang.c:169
+msgid   "Enter option number> "
+msgstr  "Indtast valgnummer> "
+
+#: src/lang.c:170
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  "Indtast interval [%s]> "
+
+#: src/lang.c:171
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  ""
+
+#: src/lang.c:173
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  ""
+
+#: src/lang.c:174
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  ""
+
+#: src/lang.c:175
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  ""
+
+#: src/lang.c:176
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  ""
+
+#: src/lang.c:178
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  "Kan ikke fjerne lÃ¥s pÃ¥ %s"
+
+#: src/lang.c:179
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  ""
+
+#: src/lang.c:180
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  "Kunne ikke lÃ¥se %s - artikel ikke tilfÃ¸jet!"
+
+#: src/lang.c:183
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  "Korrupt fil %s"
+
+#: src/lang.c:185
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  ""
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  "Intern fejl i GNKSA-rutine - indsend fejlrapport.\n"
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  ""
+
+#: src/lang.c:188
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  ""
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  ""
+
+# Hmm, altsÃ¥ hvis der er en grund til at de har skrevet det "At" i
+# stedet for at bruge tegnet, kan det jo hedde snabela pÃ¥ dansk, men det
+# virker mrÃ¦keligt og jeg tror din oversÃ¦ttelse er god nok
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  "@-tegn mangler i e-post-adresse.\n"
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  "Enkeltkomponent FQDN er ikke tilladt. TilfÃ¸j dit domÃ¦ne.\n"
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
+
+#: src/lang.c:194
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
+
+#: src/lang.c:195
+msgid   "Illegal character in FQDN.\n"
+msgstr  "Ulovlig karakter i FQDN.\n"
+
+#: src/lang.c:196
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  "FQDN-komponent uden lÃ¦ngde er ikke tilladt.\n"
+
+#: src/lang.c:197
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  "FQDN-komponent overstiger den maksimale tilladte lÃ¦ngde (63 karakterer).\n"
+
+#: src/lang.c:198
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  ""
+
+#: src/lang.c:199
+msgid   "FQDN component may not start with digit.\n"
+msgstr  "FQDN-komponent mÃ¥ ikke begynde med tal.\n"
+
+#: src/lang.c:200
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  ""
+
+#: src/lang.c:201
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  ""
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  ""
+
+#: src/lang.c:203
+msgid   "Missing localpart of mail address.\n"
+msgstr  "Mangler lokal del af e-post-adresse.\n"
+
+#: src/lang.c:204
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  "Ugyldigt tegn i lokal del af e-post-adresse.\n"
+
+#: src/lang.c:205
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  ""
+
+#: src/lang.c:206
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  ""
+
+#: src/lang.c:207
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  ""
+
+#: src/lang.c:208
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  ""
+
+#: src/lang.c:209
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  ""
+
+#: src/lang.c:210
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  ""
+
+#: src/lang.c:211
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  ""
+
+#: src/lang.c:212
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  ""
+
+#: src/lang.c:213
+#, fuzzy, c-format
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  "\n"
+        "Fejl: Ulovlig formateret %s.\n"
+
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
+#: src/lang.c:215
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  ""
+
+#: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  ""
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  ""
+
+#: src/lang.c:227
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  ""
+
+#: src/lang.c:228
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  "\n"
+        "Fejl: Linjen Â»%s:Â« er tom.\n"
+
+#: src/lang.c:229
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  "\n"
+        "Fejl: Linjen Â»%s:Â« mangler fra artikelteksthovedet.\n"
+
+#: src/lang.c:230
+#, c-format
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  ""
+
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  ""
+
+#: src/lang.c:232
+#, c-format
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  ""
+
+#: src/lang.c:233
+#, c-format
+msgid   "Insecure permissions of %s (%o)"
+msgstr  "Usikre tilladelser pÃ¥ %s (%o)"
+
+#: src/lang.c:235
+#, c-format
+msgid   "Invalid response to GROUP command, %s"
+msgstr  "Ugyldigt svar pÃ¥ kommanoden GROUP, %s"
+
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  ""
+
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  ""
+
+#: src/lang.c:242
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  "\n"
+        "Fejl: \"poster\" er ikke en gyldig nyhedsgruppe!\n"
+
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  "Kan ikke indhente et (fuldt gyldigt) domÃ¦nenavn!"
+
+#: src/lang.c:244
+#, c-format
+msgid   "No permissions to go into %s\n"
+msgstr  "Ingen tilladelse til at gÃ¥ ind i %s\n"
+
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  "\n"
+        "Fejl: Â»Fra:-linjeÂ« mangler.\n"
+
+#: src/lang.c:248
+#, c-format
+msgid   "No read permissions for %s\n"
+msgstr  "Ingen lÃ¦serettigheder for %s\n"
+
+#: src/lang.c:249
+#, c-format
+msgid   "File %s does not exist\n"
+msgstr  "Fil %s eksisterer ikke\n"
+
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "Ingen skriverettigheder for %s\n"
+
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  "Kan ikke indhente brugerinformation (/etc/passwd mangler?)"
+
+#: src/lang.c:252
+msgid   "errors"
+msgstr  "fejl"
+
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  "\n"
+        "Fejl pÃ¥ linje %d: Teksthoved for Â»afsenderÂ« er ikke tilladt (den vil blive "
+        "tilfÃ¸jet for dig)\n"
+
+#: src/lang.c:256
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  "Server har ingen af grupperne vist i %s"
+
+#: src/lang.c:257
+msgid   "error"
+msgstr  "fejl"
+
+#: src/lang.c:258
+msgid   "Unknown display level"
+msgstr  "Ukendt visningsniveau"
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  "<ESC>"
+
+#: src/lang.c:260
+msgid   "Exiting..."
+msgstr  "Afslutter..."
+
+#: src/lang.c:261
+msgid   "leaving external mail-reader"
+msgstr  "forlader ekstern postlÃ¦ser"
+
+#: src/lang.c:262
+#, c-format
+msgid   "Extracting %s..."
+msgstr  "Udpakker %s..."
+
+#: src/lang.c:264
+#, c-format
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  "Kunne ikke skrive %s fil. Filsystem fyldt op? Fil gendannet til tidligere "
+        "tilstand."
+
+#: src/lang.c:265
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  "Fejl under oprettelse af sikkerhedskopi af %s fil. Filsystem fyldt op?"
+
+#: src/lang.c:266
+#, c-format
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  "Filtrerer globale regler (%d/%d)..."
+
+#: src/lang.c:267
+msgid   "Rule created by: "
+msgstr  "Regel oprettet af: "
+
+#: src/lang.c:268
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "Indtast mÃ¸nster [%s]> "
+
+#: src/lang.c:269
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  ""
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  "  %s\t Svar vil blive sendt til dig per e-post.\n"
+
+#: src/lang.c:271
+msgid   "-- forwarded message --\n"
+msgstr  "-- videresendt besked --\n"
+
+#: src/lang.c:272
+msgid   "-- end of forwarded message --\n"
+msgstr  ""
+
+#: src/lang.c:273
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  ""
+
+#: src/lang.c:294
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  "Indtast point for regel (standard=%d): "
+
+#: src/lang.c:295
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  ""
+
+#. SCORE_MAX
+#: src/lang.c:296
+msgid   "Full"
+msgstr  ""
+
+#: src/lang.c:297
+msgid   "Comment (optional)  : "
+msgstr  "BemÃ¦rkning (valgfri)  : "
+
+#: src/lang.c:298
+msgid   "Apply pattern to    : "
+msgstr  "Anvend mÃ¸nster pÃ¥    : "
+
+#: src/lang.c:299
+msgid   "From: line (ignore case)      "
+msgstr  ""
+
+#: src/lang.c:300
+msgid   "From: line (case sensitive)   "
+msgstr  ""
+
+#: src/lang.c:302
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s: Ukendt vÃ¦rt.\n"
+
+#: src/lang.c:304
+msgid   "global "
+msgstr  ""
+
+#: src/lang.c:305
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  ""
+
+#: src/lang.c:306
+#, c-format
+msgid   "%s is bogus"
+msgstr  ""
+
+#: src/lang.c:307
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  ""
+
+#: src/lang.c:308
+msgid   "groups"
+msgstr  "grupper"
+
+#: src/lang.c:309
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "GenlÃ¦ser %s..."
+
+#: src/lang.c:310
+msgid   "Top Level Commands"
+msgstr  "Kommandoer for topniveau"
+
+#: src/lang.c:311
+msgid   "Group Selection"
+msgstr  "Gruppemarkering"
+
+#: src/lang.c:312
+msgid   "group"
+msgstr  "gruppe"
+
+#: src/lang.c:314
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  ""
+
+#: src/lang.c:315
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:316
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  ""
+
+#: src/lang.c:317
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:318
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:319
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  ""
+
+#: src/lang.c:320
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:321
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:322
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:323
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:324
+msgid   "kill an article via a menu"
+msgstr  "drÃ¦b en artikel via en menu"
+
+#: src/lang.c:325
+msgid   "auto-select (hot) an article via a menu"
+msgstr  ""
+
+#: src/lang.c:326
+msgid   "Browse URLs in article"
+msgstr  "Gennemse URL'er i artikel"
+
+#: src/lang.c:327
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  ""
+
+#: src/lang.c:329
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  "afbryd (slet) eller fortrÃ¦ng (oveskriv) aktuel artikel"
+
+#: src/lang.c:330
+msgid   "post followup to current article"
+msgstr  ""
+
+#: src/lang.c:331
+msgid   "post followup (don't copy text) to current article"
+msgstr  ""
+
+#: src/lang.c:332
+msgid   "post followup to current article quoting complete headers"
+msgstr  ""
+
+#: src/lang.c:333
+msgid   "repost chosen article to another group"
+msgstr  "gensend valgt artikel til anden gruppe"
+
+#: src/lang.c:335
+msgid   "edit article (mail-groups only)"
+msgstr  "rediger artikel (kun postgrupper)"
+
+#: src/lang.c:336
+msgid   "display first article in current thread"
+msgstr  "vis fÃ¸rste artikel i aktuel trÃ¥d"
+
+# af artiklen
+#: src/lang.c:337
+msgid   "display first page of article"
+msgstr  "vis fÃ¸rste side pÃ¥ artikel"
+
+#: src/lang.c:338
+msgid   "display last article in current thread"
+msgstr  "vis sidste artikel i aktuel trÃ¥d"
+
+#: src/lang.c:339
+msgid   "display last page of article"
+msgstr  "vis sidste side pÃ¥ artikel"
+
+#: src/lang.c:340
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  ""
+
+#: src/lang.c:341
+msgid   "display next article"
+msgstr  "vis nÃ¦ste artikel"
+
+#: src/lang.c:342
+msgid   "display first article in next thread"
+msgstr  "vis fÃ¸rste artikel i nÃ¦ste trÃ¥d"
+
+#: src/lang.c:343
+msgid   "display next unread article"
+msgstr  "vis nÃ¦ste ulÃ¦ste artikel"
+
+#: src/lang.c:344
+msgid   "go to the article that this one followed up"
+msgstr  "gÃ¥ til den artikel som den her fulgte op pÃ¥"
+
+#: src/lang.c:345
+msgid   "display previous article"
+msgstr  "vis forrige artikel"
+
+#: src/lang.c:346
+msgid   "display previous unread article"
+msgstr  "vis forrige ulÃ¦ste artikel"
+
+# eller ".. artikel ved brug af standardmetoden", jeg synes ikke
+# umiddelbart det er til at regne ud
+#: src/lang.c:347
+msgid   "quickly kill an article using defaults"
+msgstr  "drÃ¦b hurtigt en artikel som bruger standarder"
+
+#: src/lang.c:348
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  "autovÃ¦lg hurtigt (populÃ¦r) en artikel som bruger standarder"
+
+# gÃ¥ tilbage til
+#: src/lang.c:349
+msgid   "return to group selection level"
+msgstr  "returner til gruppeudvÃ¦lgelsesniveau"
+
+#: src/lang.c:350
+msgid   "reply through mail to author"
+msgstr  "svar via e-post til forfatter"
+
+#: src/lang.c:351
+msgid   "reply through mail (don't copy text) to author"
+msgstr  "svar via e-post (kopier ikke tekst) til forfatter"
+
+#: src/lang.c:352
+msgid   "reply through mail to author quoting complete headers"
+msgstr  "svar via e-post til forfatter med citering af hele hoveder"
+
+#: src/lang.c:353
+msgid   "search backwards within this article"
+msgstr  "sÃ¸g baglÃ¦ns indenfor denne artikel"
+
+#: src/lang.c:354
+msgid   "search forwards within this article"
+msgstr  "sÃ¸g fremad idenfor denne artikel"
+
+#: src/lang.c:355
+msgid   "show article in raw-mode (including all headers)"
+msgstr  "vis artikel i rawtilstand (inklusiv alle hoveder)"
+
+#: src/lang.c:356
+msgid   "skip next block of included text"
+msgstr  ""
+
+#: src/lang.c:357
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  ""
+
+#: src/lang.c:358
+#, fuzzy
+msgid   "toggle display of all headers"
+msgstr  "slÃ¥ visning af alle/valgte artikler til/fra"
+
+#: src/lang.c:359
+msgid   "toggle word highlighting on/off"
+msgstr  ""
+
+#: src/lang.c:360
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  ""
+
+#: src/lang.c:361
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  ""
+
+#: src/lang.c:362
+msgid   "toggle german TeX style decoding for current article"
+msgstr  ""
+
+#: src/lang.c:363
+msgid   "toggle display of uuencoded sections"
+msgstr  ""
+
+#: src/lang.c:364
+msgid   "View/pipe/save multimedia attachments"
+msgstr  ""
+
+#: src/lang.c:365
+#, fuzzy
+msgid   "choose first attachment in list"
+msgstr  "vÃ¦lg fÃ¸rste artikel i listen"
+
+#: src/lang.c:366
+#, fuzzy
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  vÃ¦lg trÃ¥d efter nummer"
+
+#: src/lang.c:367
+#, fuzzy
+msgid   "choose last attachment in list"
+msgstr  "vÃ¦lg sidste artikel i listen"
+
+#: src/lang.c:369
+msgid   "pipe attachment into command"
+msgstr  ""
+
+#: src/lang.c:370
+#, fuzzy
+msgid   "pipe raw attachment into command"
+msgstr  "Kommandoer for attributmenu"
+
+#: src/lang.c:372
+msgid   "save attachment to disk"
+msgstr  ""
+
+#: src/lang.c:373
+#, fuzzy
+msgid   "search for attachments forwards"
+msgstr  "sÃ¸g efter artikler fremad efter forfatter"
+
+#: src/lang.c:374
+#, fuzzy
+msgid   "search for attachments backwards"
+msgstr  "sÃ¸g efter artikler baglÃ¦ns efter forfatter"
+
+#: src/lang.c:375
+msgid   "view attachment"
+msgstr  ""
+
+#: src/lang.c:376
+#, fuzzy
+msgid   "tag attachment"
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:377
+#, fuzzy
+msgid   "tag attachments that match user specified pattern"
+msgstr  "vÃ¦lg trÃ¥de som svarer til brugerangivet mÃ¸nster"
+
+#: src/lang.c:378
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
+
+#: src/lang.c:379
+#, fuzzy
+msgid   "untag all tagged attachments"
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:380
+#, fuzzy
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  "slÃ¥ infobesked i sidste linje til/fra (emne/beskrivelse)"
+
+#: src/lang.c:381
+msgid   "choose first attribute in list"
+msgstr  "vÃ¦lg fÃ¸rste attribut i listen"
+
+#: src/lang.c:382
+#, fuzzy
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  vÃ¦lg trÃ¥d efter nummer"
+
+#: src/lang.c:383
+msgid   "choose last attribute in list"
+msgstr  "vÃ¦lg sidste attribut i listen"
+
+#: src/lang.c:384
+msgid   "reset attribute to a default value"
+msgstr  ""
+
+#: src/lang.c:385
+msgid   "search forwards for an attribute"
+msgstr  "sÃ¸g fremad efter en attribut"
+
+#: src/lang.c:386
+msgid   "search backwards for an attribute"
+msgstr  "sÃ¸g baglÃ¦ns efter en attribut"
+
+#: src/lang.c:387
+msgid   "select attribute"
+msgstr  "vÃ¦lg attribut"
+
+#: src/lang.c:388
+msgid   "toggle back to options menu when invoked from there"
+msgstr  ""
+
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  ""
+
+#: src/lang.c:390
+msgid   "choose first option in list"
+msgstr  "vÃ¦lg fÃ¸rste indstilling i listen"
+
+#: src/lang.c:391
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  vÃ¦lg indstilling efter nummer"
+
+#: src/lang.c:392
+msgid   "choose last option in list"
+msgstr  "vÃ¦lg sidste indstilling i listen"
+
+#: src/lang.c:393
+msgid   "start scopes menu"
+msgstr  "start virkefeltmenu"
+
+#: src/lang.c:394
+msgid   "search forwards for an option"
+msgstr  "sÃ¸g fremad efter en indstilling"
+
+#: src/lang.c:395
+msgid   "search backwards for an option"
+msgstr  "sÃ¸g baglÃ¦ns efter en indstilling"
+
+#: src/lang.c:396
+msgid   "select option"
+msgstr  "vÃ¦lg indstilling"
+
+#: src/lang.c:397
+msgid   "toggle to attributes menu"
+msgstr  ""
+
+#: src/lang.c:398
+msgid   "choose range of articles to be affected by next command"
+msgstr  ""
+
+#: src/lang.c:399
+msgid   "escape from command prompt"
+msgstr  ""
+
+#: src/lang.c:400
+msgid   "edit filter file"
+msgstr  "rediger filterfil"
+
+#: src/lang.c:401
+msgid   "get help"
+msgstr  "fÃ¥ hjÃ¦lp"
+
+#: src/lang.c:402
+msgid   "display last article viewed"
+msgstr  "vis den sidst viste artikel"
+
+#: src/lang.c:403
+msgid   "down one line"
+msgstr  "en linje ned"
+
+#: src/lang.c:404
+msgid   "up one line"
+msgstr  "en linje op"
+
+#: src/lang.c:405
+msgid   "go to article chosen by Message-ID"
+msgstr  "gÃ¥ til artikel valgt efter besked-id"
+
+#: src/lang.c:406
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  "send artikel/trÃ¥d/populÃ¦r/mÃ¸nster/mÃ¦rkede artikler til nogen"
+
+#: src/lang.c:407
+msgid   "menu of configurable options"
+msgstr  "menu med konfigurerbare indstillinger"
+
+#: src/lang.c:408
+msgid   "down one page"
+msgstr  "en side ned"
+
+#: src/lang.c:409
+msgid   "up one page"
+msgstr  "en side ned"
+
+#: src/lang.c:411
+msgid   "post (write) article to current group"
+msgstr  "send (skriv) artikel til aktuel gruppe"
+
+#: src/lang.c:412
+msgid   "post postponed articles"
+msgstr  "send udskudte artikler"
+
+#: src/lang.c:414
+msgid   "list articles posted by you (from posted file)"
+msgstr  "vis artikler sendt af dig (fra sendtfil)"
+
+#: src/lang.c:415
+msgid   "return to previous menu"
+msgstr  "returner til forrige menu"
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  "afslut tin Ã¸jbelikkeligt"
+
+#: src/lang.c:417
+msgid   "redraw page"
+msgstr  "genskriv side"
+
+#: src/lang.c:418
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  "gem artikel/trÃ¥d/populÃ¦r/mÃ¸nster/mÃ¦rkede artikler til fil"
+
+#: src/lang.c:419
+msgid   "save marked articles automatically without user prompts"
+msgstr  "gem automatisk markerede artikler uden brugerindgreb"
+
+#: src/lang.c:420
+msgid   "scroll the screen one line down"
+msgstr  "rul skÃ¦rmen en linje ned"
+
+#: src/lang.c:421
+msgid   "scroll the screen one line up"
+msgstr  "rul skÃ¦rmen en linje op"
+
+#: src/lang.c:422
+msgid   "search for articles by author backwards"
+msgstr  "sÃ¸g efter artikler baglÃ¦ns efter forfatter"
+
+#: src/lang.c:423
+msgid   "search for articles by author forwards"
+msgstr  "sÃ¸g efter artikler fremad efter forfatter"
+
+#: src/lang.c:424
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  "sÃ¸g i alle artikler efter en angivet streng (dette kan tage lang tid)"
+
+#: src/lang.c:425
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  " \t  (sÃ¸gning er uafhÃ¦ngigt af store/smÃ¥ bogstaver og omhandler alle artikler)"
+
+#: src/lang.c:426
+msgid   "search for articles by Subject line backwards"
+msgstr  "sÃ¸g efter artikler baglÃ¦ns per emnelinje"
+
+#: src/lang.c:427
+msgid   "search for articles by Subject line forwards"
+msgstr  "sÃ¸g efter artikler forlÃ¦ns per emnelinje"
+
+#: src/lang.c:428
+msgid   "repeat last search"
+msgstr  "gentag sidste sÃ¸gning"
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  "mÃ¦rk aktuel artikel til gensending/postudsendelse/piping/udskrivning/gemning"
+
+#: src/lang.c:430
+msgid   "toggle info message in last line (subject/description)"
+msgstr  "slÃ¥ infobesked i sidste linje til/fra (emne/beskrivelse)"
+
+#: src/lang.c:431
+msgid   "toggle inverse video"
+msgstr  "slÃ¥ omvendt video til/fra"
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  "slÃ¥ minihjÃ¦lpens menuvisning til/fra"
+
+#: src/lang.c:433
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  ""
+
+#: src/lang.c:434
+msgid   "show version information"
+msgstr  "vis versioninformation"
+
+#: src/lang.c:435
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  "marker alle artikler som lÃ¦st og returner til gruppeudvÃ¦lgelsesmenu"
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  "marker alle artikler som lÃ¦st og gÃ¥ videre til nÃ¦ste gruppe med ulÃ¦ste "
+        "artikler"
+
+#: src/lang.c:437
+msgid   "choose first thread in list"
+msgstr  "vÃ¦lg fÃ¸rste trÃ¥d i listen"
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  "vÃ¦lg sidste trÃ¥d i listen"
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  "vis artikler indenfor aktuel trÃ¥d (hent undertrÃ¥dsmenuen frem)"
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  "marker artikel som ulÃ¦st"
+
+#: src/lang.c:441
+#, fuzzy
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  "marker aktuel trÃ¥d eller mÃ¦rkede trÃ¥de som lÃ¦st"
+
+#: src/lang.c:442
+#, fuzzy
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  "marker aktuel trÃ¥d eller mÃ¦rkede trÃ¥de som lÃ¦st"
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  ""
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  ""
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  "slÃ¥ visning af alle/valgte artikler til/fra"
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  "vis nÃ¦ste gruppe"
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  "vis forrige gruppe"
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  "slÃ¥ alle valg (alle artikler) til/fra"
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  "vÃ¦lg gruppe (gÃ¸r Â»populÃ¦rÂ«)"
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  "vÃ¦lg trÃ¥d"
+
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  "vÃ¦lg trÃ¥de hvis mindst en ulÃ¦st artikel er valgt"
+
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  "vÃ¦lg trÃ¥de som svarer til brugerangivet mÃ¸nster"
+
+#: src/lang.c:453
+msgid   "tag all parts of current multipart-message in order"
+msgstr  ""
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  vÃ¦lg trÃ¥d efter nummer"
+
+#: src/lang.c:455
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  ""
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  ""
+
+#: src/lang.c:457
+msgid   "toggle selection of thread"
+msgstr  ""
+
+#: src/lang.c:458
+msgid   "cycle through threading options available"
+msgstr  ""
+
+#: src/lang.c:459
+msgid   "undo all selections (all articles)"
+msgstr  ""
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  ""
+
+#: src/lang.c:461
+msgid   "add new scope"
+msgstr  "tilfÃ¸j nyt virkefelt"
+
+#: src/lang.c:462
+msgid   "delete scope"
+msgstr  "slet virkefelt"
+
+#: src/lang.c:463
+msgid   "edit attributes file"
+msgstr  "rediger attributfil"
+
+#: src/lang.c:464
+msgid   "choose first scope in list"
+msgstr  "vÃ¦lg fÃ¸rste virkefelt i listen"
+
+#: src/lang.c:465
+msgid   "0 - 9\t  choose scope by number"
+msgstr  "0 - 9\t  vÃ¦lg virkefelt efter nummer"
+
+#: src/lang.c:466
+msgid   "choose last scope in list"
+msgstr  "vÃ¦lg sidste virkefelt i listen"
+
+#: src/lang.c:467
+msgid   "move scope"
+msgstr  "flyt virkefelt"
+
+#: src/lang.c:468
+msgid   "rename scope"
+msgstr  "omdÃ¸b virkefelt"
+
+#: src/lang.c:469
+msgid   "select scope"
+msgstr  "vÃ¦lg virkefelt"
+
+#: src/lang.c:470
+msgid   "mark all articles in group as read"
+msgstr  "marker alle artikler i gruppe som lÃ¦st"
+
+#: src/lang.c:471
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  "marker alle artikler i gruppe som lÃ¦st og flyt til nÃ¦ste ulÃ¦ste gruppe"
+
+#: src/lang.c:472
+msgid   "choose first group in list"
+msgstr  "vÃ¦lg fÃ¸rste gruppe i listen"
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  "vÃ¦lg gruppe efter navn"
+
+#: src/lang.c:474
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  vÃ¦lg gruppe efter nummer"
+
+#: src/lang.c:475
+msgid   "choose range of groups to be affected by next command"
+msgstr  ""
+
+#: src/lang.c:476
+msgid   "choose last group in list"
+msgstr  "vÃ¦lg sidste gruppe i listen"
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  "marker alle artikler i valgt gruppe som ulÃ¦ste"
+
+#: src/lang.c:478
+msgid   "move chosen group within list"
+msgstr  "flyt valgt gruppe indenfor listen"
+
+#: src/lang.c:479
+msgid   "choose next group with unread news"
+msgstr  "vÃ¦lg nÃ¦ste gruppe med ulÃ¦ste nyheder"
+
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  "afslut"
+
+#: src/lang.c:481
+msgid   "quit without saving configuration changes"
+msgstr  "afslut uden at gemme konfigurationsÃ¦ndringer"
+
+#: src/lang.c:482
+msgid   "read chosen group"
+msgstr  "lÃ¦s valgt gruppe"
+
+#: src/lang.c:483
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  ""
+
+#: src/lang.c:484
+msgid   "search backwards for a group name"
+msgstr  "sÃ¸g baglÃ¦ns efter et gruppenavn"
+
+#: src/lang.c:485
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  ""
+
+#: src/lang.c:486
+msgid   "search forwards for a group name"
+msgstr  "sÃ¸g fremad efter et gruppenavn"
+
+#: src/lang.c:487
+msgid   "subscribe to chosen group"
+msgstr  "abonner pÃ¥ valgt gruppe"
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  "abonner pÃ¥ grupper som stemmer overens med mÃ¸nster"
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  "genlÃ¦ste aktiv fil for at tjekke for nye nyheder"
+
+#: src/lang.c:490
+msgid   "toggle display of group name only or group name plus description"
+msgstr  ""
+
+#: src/lang.c:491
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  ""
+
+#: src/lang.c:492
+msgid   "unsubscribe from chosen group"
+msgstr  ""
+
+#: src/lang.c:493
+msgid   "unsubscribe from groups that match pattern"
+msgstr  ""
+
+#: src/lang.c:494
+msgid   "sort the list of groups"
+msgstr  "sorter gruppelisten"
+
+#: src/lang.c:495
+msgid   "toggle display to show all/subscribed groups"
+msgstr  ""
+
+#: src/lang.c:496
+msgid   "0 - 9\t  choose article by number"
+msgstr  ""
+
+#: src/lang.c:497
+msgid   "mark thread as read and return to group index page"
+msgstr  ""
+
+#: src/lang.c:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  ""
+
+#: src/lang.c:499
+msgid   "choose first article in list"
+msgstr  "vÃ¦lg fÃ¸rste artikel i listen"
+
+#: src/lang.c:500
+msgid   "choose last article in list"
+msgstr  "vÃ¦lg sidste artikel i listen"
+
+#: src/lang.c:501
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  ""
+
+#: src/lang.c:502
+msgid   "mark article, range or tagged articles as unread"
+msgstr  "marker artikel, interval eller mÃ¦rkede trÃ¥de som ulÃ¦ste"
+
+#: src/lang.c:503
+msgid   "mark current thread as unread"
+msgstr  "marker aktuel trÃ¥d som ulÃ¦st"
+
+#: src/lang.c:504
+msgid   "read chosen article"
+msgstr  "lÃ¦s valgt artikel"
+
+#: src/lang.c:505
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "Vis egenskaber\n"
+        "--------------"
+
+#: src/lang.c:506
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "Diverse\n"
+        "-------"
+
+#: src/lang.c:507
+msgid   "Moving around\n"
+        "-------------"
+msgstr  ""
+
+#: src/lang.c:508
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  ""
+
+#: src/lang.c:509
+#, fuzzy
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  "Virkefeltshandlinger\n"
+        "--------------------"
+
+#: src/lang.c:510
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  ""
+
+#: src/lang.c:511
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  ""
+
+#: src/lang.c:512
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  "Virkefeltshandlinger\n"
+        "--------------------"
+
+#: src/lang.c:513
+#, fuzzy
+msgid   "URL operations\n"
+        "--------------"
+msgstr  "Virkefeltshandlinger\n"
+        "--------------------"
+
+#: src/lang.c:514
+#, fuzzy
+msgid   "choose first URL in list"
+msgstr  "vÃ¦lg fÃ¸rste virkefelt i listen"
+
+#: src/lang.c:515
+#, fuzzy
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  vÃ¦lg virkefelt efter nummer"
+
+#: src/lang.c:516
+#, fuzzy
+msgid   "choose last URL in list"
+msgstr  "vÃ¦lg sidste virkefelt i listen"
+
+#: src/lang.c:517
+#, fuzzy
+msgid   "search for URLs forwards"
+msgstr  "sÃ¸g efter artikler fremad efter forfatter"
+
+#: src/lang.c:518
+#, fuzzy
+msgid   "search for URLs backwards"
+msgstr  "sÃ¸g efter artikler baglÃ¦ns efter forfatter"
+
+#: src/lang.c:519
+msgid   "Open URL in browser"
+msgstr  ""
+
+#: src/lang.c:520
+#, fuzzy
+msgid   "toggle info message in last line (URL)"
+msgstr  "slÃ¥ infobesked i sidste linje til/fra (emne/beskrivelse)"
+
+#: src/lang.c:522
+msgid   "Group Level Commands"
+msgstr  "Kommandoer for gruppeniveau"
+
+#: src/lang.c:523
+msgid   "Kill filter added"
+msgstr  ""
+
+#: src/lang.c:524
+msgid   "Auto-selection filter added"
+msgstr  ""
+
+#: src/lang.c:525
+msgid   "All parts tagged"
+msgstr  ""
+
+#: src/lang.c:526
+msgid   "Storing article for later posting"
+msgstr  ""
+
+#: src/lang.c:527
+msgid   "Please enter a valid character"
+msgstr  ""
+
+#: src/lang.c:528
+#, c-format
+msgid   "Missing part #%d"
+msgstr  ""
+
+#: src/lang.c:529
+msgid   "*** No postponed articles ***"
+msgstr  ""
+
+#: src/lang.c:530
+msgid   "Not a multi-part message"
+msgstr  ""
+
+#: src/lang.c:531
+msgid   "You are not subscribed to this group"
+msgstr  ""
+
+#: src/lang.c:532
+msgid   "No previous expression"
+msgstr  ""
+
+#: src/lang.c:533
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  ""
+
+#. TODO: replace hardcoded key-name in txt_info_postponed
+#: src/lang.c:535
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  ""
+
+#: src/lang.c:536
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  ""
+
+#: src/lang.c:538
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  ""
+
+#: src/lang.c:539
+msgid   "TeX2Iso encoded article"
+msgstr  ""
+
+#: src/lang.c:540
+msgid   "incomplete "
+msgstr  ""
+
+#. TODO: replace hardcoded key-names
+#: src/lang.c:542
+#, c-format
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  ""
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  ""
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  ""
+
+#: src/lang.c:563
+#, c-format
+msgid   "Invalid  Sender:-header %s"
+msgstr  ""
+
+#: src/lang.c:565
+msgid   "Inverse video disabled"
+msgstr  ""
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  ""
+
+#: src/lang.c:568
+#, c-format
+msgid   "Missing definition for %s\n"
+msgstr  "Mangler definition for %s\n"
+
+#: src/lang.c:569
+#, c-format
+msgid   "Invalid key definition '%s'\n"
+msgstr  "Ugyldig nÃ¸gledefinition '%s'\n"
+
+#: src/lang.c:570
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  "Ugylidg nÃ¸glenavn '%s'\n"
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  "NÃ¸glekortfil blev opgraderet til version %s\n"
+
+# Hmm, sÃ¥ er spÃ¸rgsmÃ¥let jo sÃ¥, nÃ¥r der er sÃ¥dan et tilfÃ¦ldigt antal
+# mellemrum efter : og positionen af : skal bevares i oversÃ¦ttelsen, det
+# er svÃ¦rt at vide nÃ¥r der ikke er nogen kommentarer
+#: src/lang.c:572
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  "DrÃ¦b fra:     [%s] (j/n): "
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  "DrÃ¦b linjer: (</>num): "
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  "DrÃ¦b artikelmenu"
+
+#: src/lang.c:575
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  "DrÃ¦b Msg-Id:   [%s] (f/l/o/n): "
+
+#: src/lang.c:576
+msgid   "Kill pattern scope  : "
+msgstr  "DrÃ¦b mÃ¸nstervirkefelt  : "
+
+#: src/lang.c:577
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  "DrÃ¦b emne:  [%s] (j/n): "
+
+#: src/lang.c:578
+msgid   "Kill text pattern   : "
+msgstr  "DrÃ¦b tekstmÃ¸nster   : "
+
+#: src/lang.c:579
+msgid   "Kill time in days   : "
+msgstr  "DrÃ¦b tidspunkt pÃ¥ dagen   : "
+
+#: src/lang.c:581
+msgid   "Last"
+msgstr  "Sidste"
+
+#: src/lang.c:582
+msgid   "-- Last response --"
+msgstr  "-- Sidste svar --"
+
+#: src/lang.c:583
+#, c-format
+msgid   "Lines %s  "
+msgstr  "Linjer %s  "
+
+#: src/lang.c:585
+msgid   "Mail"
+msgstr  "Post"
+
+#: src/lang.c:586
+msgid   "mailbox "
+msgstr  "postkasse "
+
+#: src/lang.c:587
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "Send artikel(er) til [%.*s]> "
+
+#: src/lang.c:588
+#, c-format
+msgid   "Mailing log to %s\n"
+msgstr  "Sender log til %s\n"
+
+#: src/lang.c:589
+msgid   "Mail bug report..."
+msgstr  "Send fejlrapport..."
+
+#: src/lang.c:590
+#, c-format
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "Send FEJLRAPPORT til %s?"
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  "Sendt"
+
+#: src/lang.c:592
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  "Sender til %s..."
+
+#: src/lang.c:593
+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:596
+#, c-format
+msgid   "%s marked as read"
+msgstr  "%s markeret som lÃ¦st"
+
+#: src/lang.c:597
+#, c-format
+msgid   "%s marked as unread"
+msgstr  "%s markeret som ulÃ¦st"
+
+#: src/lang.c:598
+#, c-format
+msgid   "Marked %d of %d %s as read"
+msgstr  "Markerede %d af %d %s som lÃ¦st"
+
+#: src/lang.c:599
+#, c-format
+msgid   "Marked %d of %d %s as unread"
+msgstr  "Markerede %d af %d %s som ulÃ¦ste"
+
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  ""
+
+#: src/lang.c:601
+#, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  "MÃ¦rk alle artikler som lÃ¦st%s?"
+
+#: src/lang.c:602
+#, c-format
+msgid   "Mark article as read%s?"
+msgstr  "Marker alle artikler som lÃ¦st%s?"
+
+#: src/lang.c:603
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  "Marker gruppe %s som lÃ¦st?"
+
+#: src/lang.c:604
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "Marker trÃ¥d som lÃ¦st%s"
+
+#: src/lang.c:605
+#, c-format
+msgid   "Matching %s groups..."
+msgstr  "Sammenligner %s grupper..."
+
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
+#, fuzzy, c-format
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  "<n>=angiv nuvÃ¦rende som n; %s=nÃ¦ste ulÃ¦st; %s=sÃ¸gemÃ¸nster; %s=drÃ¦b/vÃ¦lg"
+
+#: src/lang.c:608
+#, fuzzy, c-format
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=linje ned; %s=linje op; %s=hjÃ¦lp; %s=flyt; %s=afslut; %s=slÃ¥ alle/ulÃ¦ste "
+        "til/fra"
+
+#: src/lang.c:610
+#, fuzzy, c-format
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=linje ned; %s=linje op; %s=hjÃ¦lp; %s=flyt; %s=afslut; %s=slÃ¥ alle/ulÃ¦ste "
+        "til/fra"
+
+#: src/lang.c:612
+#, fuzzy, c-format
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=sÃ¸g fremad; %s=sÃ¸g bagud; %s=afslut"
+
+#: src/lang.c:613 src/lang.c:617
+#, c-format
+msgid   "<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
+msgstr  "<n>=angiv nuvÃ¦rende som n; %s=nÃ¦ste ulÃ¦st; %s=sÃ¸gemÃ¸nster; %s=drÃ¦b/vÃ¦lg"
+
+#: src/lang.c:614
+#, c-format
+msgid   "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list "
+        "thread"
+msgstr  "%s=forfattersÃ¸gning; %s=opsamling; %s=linje ned; %s=linje op; %s=marker som "
+        "lÃ¦st; %s=vis trÃ¥d"
+
+#: src/lang.c:615
+#, c-format
+msgid   "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom"
+msgstr  "%s=linje op; %s=linje ned; %s=side op; %s=side ned; %s=top; %s=bund"
+
+#: src/lang.c:616
+#, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=quit"
+msgstr  "%s=sÃ¸g fremad; %s=sÃ¸g bagud; %s=afslut"
+
+#: src/lang.c:618
+#, c-format
+msgid   "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
+msgstr  "%s=forfattersÃ¸gning; %s=indholdssÃ¸gning; %s=opsamling; %s=opfÃ¸lgning; %"
+        "s=marker som lÃ¦st"
+
+#: src/lang.c:619
+#, c-format
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  ""
+
+#: src/lang.c:621
+#, c-format
+msgid   "<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
+msgstr  "<n>=angiv nuvÃ¦rende som n; %s=nÃ¦ste ulÃ¦st; %s,%s=sÃ¸gemÃ¸nster; %s=opsamling"
+
+#: src/lang.c:622
+#, c-format
+msgid   "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread"
+msgstr  "%s=linje ned; %s=linje op; %s=hjÃ¦lp; %s=flyt; %s=afslut; %s=slÃ¥ alle/ulÃ¦ste "
+        "til/fra"
+
+#: src/lang.c:623
+#, c-format
+msgid   "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out"
+msgstr  "%s=abonner; %s=undermÃ¸nster; %s=slut abonnement; %s=fjern undermÃ¸nster; %"
+        "s=ryk ind/ud"
+
+#: src/lang.c:624
+#, c-format
+msgid   "<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
+msgstr  ""
+
+#: src/lang.c:625
+#, c-format
+msgid   "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread"
+msgstr  ""
+
+#: src/lang.c:627
+#, fuzzy, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=sÃ¸g fremad; %s=sÃ¸g bagud; %s=afslut"
+
+#: src/lang.c:628
+msgid   "--More--"
+msgstr  ""
+
+#: src/lang.c:629
+#, c-format
+msgid   "Moving %s..."
+msgstr  ""
+
+#: src/lang.c:630
+msgid   "Message-ID: & last Reference  "
+msgstr  ""
+
+#: src/lang.c:631
+msgid   "Message-ID: line              "
+msgstr  ""
+
+#: src/lang.c:632
+msgid   "Message-ID: & References: line"
+msgstr  ""
+
+#: src/lang.c:634
+msgid   ", name: "
+msgstr  ", navn: "
+
+#: src/lang.c:635
+#, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "GÃ¥ til nyhedsgruppe [%s]> "
+
+#: src/lang.c:636
+msgid   "newsgroups"
+msgstr  "nyhedsgrupper"
+
+#: src/lang.c:637
+#, c-format
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  ""
+
+#: src/lang.c:638
+msgid   "newsgroup"
+msgstr  "nyhedsgruppe"
+
+#: src/lang.c:639
+msgid   "Try and save newsrc file again?"
+msgstr  "ForsÃ¸g at gemme newsrc-fil igen?"
+
+#: src/lang.c:640
+msgid   "Warning: No newsgroups were written to your newsrc file. Save aborted."
+msgstr  "Advarsel: Ingen nyhedsgrupper blev skrevet til din newsrc-fil. Afbrudt."
+
+#: src/lang.c:641
+msgid   "newsrc file saved successfully.\n"
+msgstr  "newsrc-fil blev gemt.\n"
+
+#: src/lang.c:642
+msgid   "-- Next response --"
+msgstr  "-- NÃ¦ste svar --"
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  "Nej "
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  "*** Ingen artikler ***"
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  "Ingen artikler er udgivet"
+
+#: src/lang.c:646
+#, fuzzy
+msgid   "*** No attachments ***"
+msgstr  "*** Ingen artikler ***"
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  "*** Ingen beskrivelse ***"
+
+#: src/lang.c:648
+msgid   "No filename"
+msgstr  "Intet filnavn"
+
+#: src/lang.c:649
+msgid   "No group"
+msgstr  "Ingen gruppe"
+
+#: src/lang.c:650
+msgid   "*** No groups ***"
+msgstr  "*** Ingen grupper ***"
+
+#: src/lang.c:651
+msgid   "No more groups to read"
+msgstr  "Ikke flere grupper der kan lÃ¦ses"
+
+#: src/lang.c:652
+msgid   "No last message"
+msgstr  "Ingen sidste besked"
+
+#: src/lang.c:653
+msgid   "No mail address"
+msgstr  "Ingen e-post-adresse"
+
+#: src/lang.c:654
+msgid   "No articles marked for saving"
+msgstr  "Ingen artikler markeret til gemning"
+
+#: src/lang.c:655
+msgid   "No match"
+msgstr  "Intet resultat"
+
+#: src/lang.c:656
+msgid   "No more groups"
+msgstr  "Ikke flere grupper"
+
+#: src/lang.c:657
+msgid   "No newsgroups"
+msgstr  "Ingen nyhedsgrupper"
+
+#: src/lang.c:658
+msgid   "No next unread article"
+msgstr  "Ingen nÃ¦ste ulÃ¦st artikel"
+
+#: src/lang.c:659
+msgid   "No previous group"
+msgstr  "Ingen forrige gruppe"
+
+#: src/lang.c:660
+msgid   "No previous search, nothing to repeat"
+msgstr  ""
+
+#: src/lang.c:661
+msgid   "No previous unread article"
+msgstr  "Ingen forrige ulÃ¦st artikel"
+
+#: src/lang.c:662
+msgid   "No responses"
+msgstr  "Ingen svar"
+
+#: src/lang.c:663
+msgid   "No responses to list in current thread"
+msgstr  "Ingen svar at vise i aktuel trÃ¥d"
+
+#: src/lang.c:664
+msgid   "*** No scopes ***"
+msgstr  "*** Ingen virkefelter ***"
+
+#: src/lang.c:665
+msgid   "No search string"
+msgstr  "Ingen sÃ¸gestreng"
+
+#: src/lang.c:666
+msgid   "No subject"
+msgstr  "Intet emne"
+
+#: src/lang.c:668
+#, c-format
+msgid   "%s: Terminal must have clear to end-of-line (ce)\n"
+msgstr  ""
+
+#: src/lang.c:669
+#, c-format
+msgid   "%s: Terminal must have clear to end-of-screen (cd)\n"
+msgstr  ""
+
+#: src/lang.c:670
+#, c-format
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  ""
+
+#: src/lang.c:671
+#, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  ""
+
+#: src/lang.c:672
+#, c-format
+msgid   "%s: TERM variable must be set to use screen capabilities\n"
+msgstr  ""
+
+#: src/lang.c:674
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  ""
+
+#: src/lang.c:675
+msgid   "Newsgroup does not exist on this server"
+msgstr  "Nyhedsgruppe eksisterer ikke pÃ¥ denne server"
+
+#: src/lang.c:676
+#, c-format
+msgid   "Group %s not found in active file"
+msgstr  "Gruppe %s blev ikke fundet i aktiv fil"
+
+#: src/lang.c:677
+msgid   "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  ""
+
+#: src/lang.c:678
+msgid   "use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  ""
+
+#: src/lang.c:679
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  ""
+
+#: src/lang.c:686
+msgid   "Only"
+msgstr  "Kun"
+
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "Indstilling ikke slÃ¥et til. Rekompiler med %s."
+
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  "Indstillingsmenu"
+
+#: src/lang.c:689
+#, fuzzy
+msgid   "Options Menu Commands"
+msgstr  "Indstillingsmenu"
+
+#: src/lang.c:692
+#, c-format
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  ""
+
+#: src/lang.c:693
+#, c-format
+msgid   "Error in regex: pcre internal error %d"
+msgstr  ""
+
+#: src/lang.c:694
+#, c-format
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  ""
+
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  ""
+
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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:700
+msgid   "Posted articles history"
+msgstr  ""
+
+#: src/lang.c:701
+#, c-format
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "Send til nyhedsgruppe(r) [%s]> "
+
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  ""
+
+#: src/lang.c:703
+msgid   "-- post processing completed --"
+msgstr  ""
+
+#: src/lang.c:704
+#, c-format
+msgid   "Post subject [%s]> "
+msgstr  ""
+
+#: src/lang.c:705
+msgid   "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
+msgstr  ""
+
+#: src/lang.c:706
+msgid   "Posting article..."
+msgstr  ""
+
+#: src/lang.c:707
+#, c-format
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  ""
+
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  ""
+
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  ""
+
+#: src/lang.c:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  ""
+
+#: src/lang.c:711
+msgid   "Processing mail messages marked for deletion."
+msgstr  ""
+
+#: src/lang.c:712
+msgid   "Processing saved articles marked for deletion."
+msgstr  ""
+
+#: src/lang.c:713
+#, c-format
+msgid   "Accept Followup-To? %s=post, %s=ignore, %s=quit: "
+msgstr  ""
+
+#: src/lang.c:714
+msgid   "Article unchanged, abort mailing?"
+msgstr  ""
+
+#: src/lang.c:715
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  ""
+
+#: src/lang.c:717
+msgid   "Add quick kill filter?"
+msgstr  ""
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  ""
+
+#: src/lang.c:719
+msgid   "Do you really want to quit?"
+msgstr  ""
+
+#: src/lang.c:720
+#, c-format
+msgid   "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
+msgstr  ""
+
+#: src/lang.c:721
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  ""
+
+#: src/lang.c:722
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:723
+#, c-format
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  ""
+
+#: src/lang.c:724
+#, c-format
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  ""
+
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  "Ã˜nsker du virkelig at afslutte uden at gemme din konfiguration?"
+
+#: src/lang.c:728
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  "Ugyldigt interval - '0-9.$' f.eks. 1-$ er gyldige"
+
+#: src/lang.c:730
+msgid   "Do you want to abort this operation?"
+msgstr  "Ã˜nsker du at afbryde denne handling?"
+
+#: src/lang.c:731
+msgid   "Do you want to exit tin immediately?"
+msgstr  "Ã˜nsker du Ã¸jeblikkeligt at afslutte tin?"
+
+#: src/lang.c:733
+msgid   "Reading ('q' to quit)..."
+msgstr  "LÃ¦ser ('q' for afslut)..."
+
+#: src/lang.c:734
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  "LÃ¦ser %sartikler..."
+
+#: src/lang.c:735
+#, c-format
+msgid   "Reading %sattributes file...\n"
+msgstr  ""
+
+#: src/lang.c:736
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  ""
+
+#: src/lang.c:737
+msgid   "Reading filter file...\n"
+msgstr  ""
+
+#: src/lang.c:738
+#, c-format
+msgid   "Reading %s groups..."
+msgstr  ""
+
+#: src/lang.c:739
+msgid   "Reading input history file...\n"
+msgstr  ""
+
+#: src/lang.c:740
+msgid   "Reading keymap file...\n"
+msgstr  ""
+
+#: src/lang.c:741
+msgid   "Reading groups from active file... "
+msgstr  ""
+
+#: src/lang.c:742
+msgid   "Reading groups from newsrc file... "
+msgstr  ""
+
+#: src/lang.c:743
+msgid   "Reading newsgroups file... "
+msgstr  "LÃ¦ser fil med nyhedsgrupper... "
+
+#: src/lang.c:744
+msgid   "Reading newsrc file..."
+msgstr  ""
+
+#: src/lang.c:745
+msgid   "References: line              "
+msgstr  ""
+
+#: src/lang.c:747
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  "(%d:%02d igen)"
+
+#: src/lang.c:749
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  ""
+
+#: src/lang.c:750
+msgid   "Removed from the previous rule: "
+msgstr  "Fjernet fra den forrige regel: "
+
+#: src/lang.c:751
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "Fejl: OmdÃ¸b %s til %s"
+
+#: src/lang.c:752
+msgid   "Reply to author..."
+msgstr  "Svar til forfatter..."
+
+#: src/lang.c:753
+msgid   "Repost"
+msgstr  "Gensend"
+
+#: src/lang.c:754
+msgid   "Reposting article..."
+msgstr  "Genindsender artikel..."
+
+#: src/lang.c:755
+#, c-format
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  "Gensend artikler til grupper [%s]> "
+
+#: src/lang.c:756
+msgid   "Reset newsrc?"
+msgstr  "Nulstil newsrc?"
+
+#: src/lang.c:757
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  "Svar er blevet sendt til de fÃ¸lgende nyhedsgrupper"
+
+#: src/lang.c:758
+#, c-format
+msgid   "Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
+msgstr  ""
+
+#: src/lang.c:760
+msgid   "Press <RETURN> to continue..."
+msgstr  "Tast <RETUR> for at fortsÃ¦tte..."
+
+#: src/lang.c:762
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  ""
+
+#: src/lang.c:763
+msgid   "Select Lines: (</>num): "
+msgstr  "VÃ¦lg linjer: (</>num): "
+
+#: src/lang.c:764
+msgid   "Auto-select Article Menu"
+msgstr  ""
+
+#: src/lang.c:765
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  "VÃ¦lg Msg-Id  [%s] (f/l/o/n): "
+
+#: src/lang.c:766
+msgid   "Select pattern scope: "
+msgstr  "VÃ¦lg mÃ¸nstervirkefelt: "
+
+#: src/lang.c:767
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  "VÃ¦lg emne [%s] (y/n): "
+
+#: src/lang.c:768
+msgid   "Select text pattern : "
+msgstr  "VÃ¦lg tekstmÃ¸nster   : "
+
+#: src/lang.c:769
+msgid   "Select time in days   : "
+msgstr  "VÃ¦lg tid i dage       : "
+
+#: src/lang.c:770
+#, c-format
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:776
+msgid   "Showing unread groups only"
+msgstr  "Vis kun ulÃ¦ste grupper"
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  ""
+
+#: src/lang.c:778
+msgid   "Subject: line (case sensitive)"
+msgstr  ""
+
+#: src/lang.c:779
+msgid   "Save"
+msgstr  "Gem"
+
+#: src/lang.c:780
+#, c-format
+msgid   "Save '%s' (%s/%s)?"
+msgstr  ""
+
+#: src/lang.c:781
+msgid   "Save configuration before continuing?"
+msgstr  ""
+
+#: src/lang.c:782
+msgid   "Save filename> "
+msgstr  "Gem filnavn> "
+
+#: src/lang.c:783
+msgid   "Saved"
+msgstr  "Gemt"
+
+#: src/lang.c:784
+#, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  ""
+
+#: src/lang.c:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  "Gemt %s...\n"
+
+#: src/lang.c:786
+msgid   "Nothing was saved"
+msgstr  "Intet blev gemt"
+
+#: src/lang.c:787
+#, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s fra %d %s\n"
+
+#: src/lang.c:788
+#, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s gemt til %s%s --"
+
+#: src/lang.c:789
+#, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s gemt til %s - %s --"
+
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  "Gemmer..."
+
+#: src/lang.c:791
+#, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  ""
+
+#: src/lang.c:793
+#, c-format
+msgid   "%s: screen is too small\n"
+msgstr  "%s: SkÃ¦rm er for lille\n"
+
+#: src/lang.c:795
+#, c-format
+msgid   "screen is too small, %s is exiting\n"
+msgstr  ""
+
+#: src/lang.c:796
+msgid   "Delete scope?"
+msgstr  "Slet virkefelt?"
+
+#: src/lang.c:797
+msgid   "Enter scope> "
+msgstr  "Indtast virkefelt> "
+
+#: src/lang.c:798
+msgid   "Select new position> "
+msgstr  "VÃ¦lg ny placering>"
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  "Ny placering kan ikke vÃ¦re et globalt virkefelt"
+
+#: src/lang.c:800
+msgid   "Global scope, operation not allowed"
+msgstr  "Global virkefelt, handling ikke tilladt"
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  "OmdÃ¸b virkefelt> "
+
+#: src/lang.c:802
+msgid   "Select scope> "
+msgstr  "VÃ¦lg virkefelt> "
+
+#: src/lang.c:803
+msgid   "Scopes Menu"
+msgstr  "Virkefeltsmenu"
+
+#: src/lang.c:804
+msgid   "Scopes Menu Commands"
+msgstr  "Kommandoer for virkefeltsmenu"
+
+#: src/lang.c:805
+#, c-format
+msgid   "Search backwards [%s]> "
+msgstr  "SÃ¸g baglÃ¦ns [%s]> "
+
+#: src/lang.c:806
+#, c-format
+msgid   "Search body [%s]> "
+msgstr  ""
+
+#: src/lang.c:807
+#, c-format
+msgid   "Search forwards [%s]> "
+msgstr  "SÃ¸g fremad [%s]> "
+
+#: src/lang.c:808
+msgid   "Searching..."
+msgstr  "SÃ¸ger..."
+
+#: src/lang.c:809
+#, c-format
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  "SÃ¸ger i artikel %d af %d ('q' for at afbryde)..."
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  "VÃ¦lg artikel> "
+
+#: src/lang.c:811
+msgid   "Select option number before text or use arrow keys and <CR>. 'q' to quit."
+msgstr  ""
+
+#: src/lang.c:812
+msgid   "Select group> "
+msgstr  "VÃ¦lg gruppe> "
+
+#: src/lang.c:813
+#, c-format
+msgid   "Enter selection pattern [%s]> "
+msgstr  ""
+
+#: src/lang.c:814
+msgid   "Select thread > "
+msgstr  "VÃ¦lg trÃ¥d > "
+
+#: src/lang.c:815
+#, c-format
+msgid   "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
+msgstr  ""
+
+#: src/lang.c:816
+msgid   "servers active-file"
+msgstr  ""
+
+#: src/lang.c:817
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  ""
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  "<MELLEMRUM>"
+
+#: src/lang.c:819
+#, c-format
+msgid   "Starting: (%s)"
+msgstr  "Starter: (%s)"
+
+#: src/lang.c:820
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  ""
+
+#: src/lang.c:821
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  "TrÃ¥d (%.*s)"
+
+#: src/lang.c:822
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  ""
+
+#: src/lang.c:823
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  ""
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  ""
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  ""
+
+#: src/lang.c:826
+#, c-format
+msgid   "Repost or supersede article(s) [%%s]? (%s/%s/%s): "
+msgstr  ""
+
+#: src/lang.c:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  ""
+
+#: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  ""
+
+#: src/lang.c:829
+#, c-format
+msgid   "\n"
+        "Stopped. Type 'fg' to restart %s\n"
+msgstr  "\n"
+        "Stoppet. Tast 'fg' for at genstarte %s\n"
+
+#: src/lang.c:831
+#, c-format
+msgid   "%d days"
+msgstr  "%d dage"
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  ""
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  "TeX "
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  ""
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  ""
+
+#: src/lang.c:848
+msgid   "# If ON use print current subject or newsgroup description in the last line\n"
+msgstr  ""
+
+#: src/lang.c:849
+msgid   "# Host & time info used for detecting new groups (don't touch)\n"
+msgstr  ""
+
+#: src/lang.c:850
+msgid   "There is no news\n"
+msgstr  "Der er ingen nyheder\n"
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  "TrÃ¥d"
+
+#: src/lang.c:852
+msgid   "Thread Level Commands"
+msgstr  "Kommandoer pÃ¥ trÃ¥dniveau"
+
+#: src/lang.c:853
+msgid   "Thread deselected"
+msgstr  "TrÃ¥d fravalgt"
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  "TrÃ¥d valgt"
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  "trÃ¥de"
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  "trÃ¥d"
+
+#: src/lang.c:859
+#, c-format
+msgid   "Thread %4s of %4s"
+msgstr  "TrÃ¥d %4s af %4s"
+
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  "Opdeler artikler i trÃ¥de..."
+
+#: src/lang.c:861
+#, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  ""
+
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  ""
+
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  ""
+
+#: src/lang.c:864
+#, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  ""
+
+#: src/lang.c:866
+#, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  ""
+
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  ""
+
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  "          h=hjÃ¦lp"
+
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  "UbegrÃ¦nset"
+
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  ""
+
+#: src/lang.c:873
+#, c-format
+msgid   "Error decoding %s : %s"
+msgstr  ""
+
+#: src/lang.c:874
+msgid   "No end."
+msgstr  "Ingen slutning."
+
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s dekodet med succes."
+
+#: src/lang.c:876
+#, c-format
+msgid   "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:877
+msgid   "unread "
+msgstr  "ulÃ¦st "
+
+#: src/lang.c:878
+#, c-format
+msgid   "unsubscribed from %d groups"
+msgstr  ""
+
+#: src/lang.c:879
+#, c-format
+msgid   "Unsubscribed from %s"
+msgstr  ""
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  ""
+
+#: src/lang.c:881
+msgid   "Unthreading articles..."
+msgstr  ""
+
+#: src/lang.c:882
+msgid   "Updated"
+msgstr  "Opdateret"
+
+#: src/lang.c:884
+#, c-format
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  ""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  "Opdaterer"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  ""
+
+#: src/lang.c:888
+#, fuzzy
+msgid   "URL Menu Commands"
+msgstr  "Kommandoer for virkefeltsmenu"
+
+#: src/lang.c:889
+#, fuzzy, c-format
+msgid   "Opening %s"
+msgstr  "Ã…bner %s\n"
+
+#: src/lang.c:890
+#, fuzzy
+msgid   "Select URL> "
+msgstr  "VÃ¦lg virkefelt> "
+
+#: src/lang.c:891
+#, fuzzy
+msgid   "No URLs in this article"
+msgstr  "Ingen yderligere URL'er i denne artikel"
+
+#: src/lang.c:892
+msgid   "Use MIME display program for this message?"
+msgstr  "Anvend MIME-visningsprogram for denne besked?"
+
+#: src/lang.c:893
+msgid   "  -c       mark all news as read in subscribed newsgroups (batch mode)"
+msgstr  ""
+
+#: src/lang.c:894
+msgid   "  -Z       return status indicating if any unread news (batch mode)"
+msgstr  ""
+
+#: src/lang.c:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  "  -q       led ikke efter nye nyhedsgrupper"
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  "  -X       gem ikke nogen filer ved afslutning"
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  "  -d       vis ikke beskrivelser for nyhedsgrupper"
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  ""
+
+#: src/lang.c:899
+#, c-format
+msgid   "  -H       help information about %s"
+msgstr  "  -H       hjÃ¦lpinformation om %s"
+
+#: src/lang.c:900
+msgid   "  -h       this help message"
+msgstr  "  -h       denne hjÃ¦lpebesked"
+
+#: src/lang.c:901
+#, c-format
+msgid   "  -I dir   news index file directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  ""
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "Send fejlrapporter/kommentarer til %s"
+
+#: src/lang.c:905
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  ""
+
+#: src/lang.c:906
+msgid   "  -M user  mail new news to specified user (batch mode)"
+msgstr  ""
+
+#: src/lang.c:907
+#, c-format
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  ""
+
+#: src/lang.c:908
+msgid   "  -x       no posting mode"
+msgstr  ""
+
+#: src/lang.c:909
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       send en artikel og afslut"
+
+#: src/lang.c:910
+msgid   "  -o       post all postponed articles and exit"
+msgstr  "  -o       send alle udsatte artikler og afslut"
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  ""
+
+#: src/lang.c:912
+#, c-format
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:913
+msgid   "  -S       save new news for later reading (batch mode)"
+msgstr  "  -S       gem nye nyheder til senere lÃ¦sning (batchtilstand)"
+
+#: src/lang.c:914
+msgid   "  -z       start if any unread news"
+msgstr  ""
+
+#: src/lang.c:915
+#, c-format
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  ""
+
+#: src/lang.c:916
+msgid   "  -v       verbose output for batch mode options"
+msgstr  ""
+
+#: src/lang.c:917
+msgid   "  -V       print version & date information"
+msgstr  "  -V       vis version- & datoinformation"
+
+#: src/lang.c:918
+#, c-format
+msgid   "%s only useful without batch mode operations\n"
+msgstr  ""
+
+#: src/lang.c:919
+#, c-format
+msgid   "%s only useful for batch mode operations\n"
+msgstr  ""
+
+#: src/lang.c:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  ""
+
+#: src/lang.c:922
+#, c-format
+msgid   "\n"
+        "%s%d out of range (0 - %d). Reset to 0"
+msgstr  ""
+
+#: src/lang.c:923
+#, c-format
+msgid   "View '%s' (%s/%s)?"
+msgstr  "Vis '%s' (%s/%s)?"
+
+#: src/lang.c:925
+#, c-format
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  ""
+
+#: src/lang.c:926
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  "\n"
+        "Advarsel: Artikel uÃ¦ndret efter redigering\n"
+
+#: src/lang.c:927
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  "\n"
+        "Advarsel: Â»Emne:Â« indeholder kun mellemrum.\n"
+
+#: src/lang.c:928
+msgid   "\n"
+        "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
+msgstr  "\n"
+        "Advarsel: Â»EmneÂ« begynder med Â»Re:Â« men der er ingen Â»referencerÂ«.\n"
+
+#: src/lang.c:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  ""
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:937
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  ""
+
+#: src/lang.c:942
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  ""
+
+#: src/lang.c:943
+#, c-format
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  "\n"
+        "\n"
+        "Du opgraderer til %s fra en tidligere version.\n"
+        "Nogle vÃ¦rdier i din %s-fil har Ã¦ndret sig!\n"
+        "LÃ¦s WHATSNEW, etc...\n"
+
+#: src/lang.c:945
+#, c-format
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  ""
+
+#: src/lang.c:948
+#, c-format
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  ""
+
+#: src/lang.c:952
+#, c-format
+msgid   "\n"
+        "Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
+msgstr  ""
+
+#: src/lang.c:953
+#, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  "Advarsel: Kun %d ud af %d artikler blev gemt"
+
+#: src/lang.c:954
+#, c-format
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  ""
+
+#: src/lang.c:958
+#, c-format
+msgid   "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
+msgstr  "Advarsel: Denne postadresse kan indeholde en spamfÃ¦lde. %s=continue, %"
+        "s=abort? "
+
+#: src/lang.c:959
+msgid   "\n"
+        "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
+msgstr  "\n"
+        "Advarsel: Underskrifter skal starte med '-- \\n' ikke med '--\\n'.\n"
+
+#: src/lang.c:960
+msgid   "Writing attributes file..."
+msgstr  "Skriver attributfil..."
+
+#: src/lang.c:962
+#, c-format
+msgid   "%d Responses"
+msgstr  "%d svar"
+
+#: src/lang.c:964
+#, c-format
+msgid   "Added %d %s"
+msgstr  "TilfÃ¸jede %d %s"
+
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  "Ingen grupper der ikke er tilmeldte at vise"
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  "Viser kun tilmeldte til grupper"
+
+#: src/lang.c:967
+msgid   "Yes "
+msgstr  "Ja "
+
+#: src/lang.c:968
+msgid   "    You have mail"
+msgstr  "      Du har post"
+
+#: src/lang.c:973
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  ""
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  "   -D tilstand  fejlsÃ¸gningstilstand"
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:997
+msgid   "toggle color"
+msgstr  "slÃ¥ farve til/fra"
+
+#: src/lang.c:998
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  ""
+
+#: src/lang.c:1022
+msgid   "\n"
+        "Error: Followup-To set to more than one newsgroup!\n"
+msgstr  ""
+
+#: src/lang.c:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  "\n"
+        "Fejl: Â»%sÂ« omdÃ¸bes, brug Â»%sÂ« i steden for!\n"
+
+#: src/lang.c:1024
+#, c-format
+msgid   "\n"
+        "Error: cross-posting to %d newsgroups and no Followup-To line!\n"
+msgstr  ""
+
+#: src/lang.c:1025
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is not a valid newsgroup!\n"
+msgstr  "\n"
+        "Fejl: \"%s\" er ikke en gyldig nyhedsgruppe!\n"
+
+#: src/lang.c:1027
+msgid   "\n"
+        "Warning: Followup-To set to more than one newsgroup!\n"
+msgstr  ""
+
+#: src/lang.c:1028
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  "\n"
+        "Advarsel: Â»%sÂ« er omdÃ¸bt, du skal bruge Â»%sÂ« i steden for!\n"
+
+#: src/lang.c:1029
+#, c-format
+msgid   "\n"
+        "Warning: cross-posting to %d newsgroups and no Followup-To line!\n"
+msgstr  ""
+
+#: src/lang.c:1030
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
+msgstr  ""
+
+#: src/lang.c:1031
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not a valid newsgroup at this site!\n"
+msgstr  ""
+
+#: src/lang.c:1035
+#, c-format
+msgid   "%d files successfully written from %d articles. %d %s occurred."
+msgstr  ""
+
+#: src/lang.c:1036
+msgid   "Missing parts."
+msgstr  "Manglende dele."
+
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  "Ingen begyndelse."
+
+#: src/lang.c:1038
+msgid   "No data."
+msgstr  "Ingen data."
+
+#: src/lang.c:1039
+msgid   "Unknown error."
+msgstr  "Ukendt fejl."
+
+#: src/lang.c:1042
+#, c-format
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  ""
+
+#: src/lang.c:1047
+msgid   "Reading mail active file... "
+msgstr  ""
+
+#: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  ""
+
+#: src/lang.c:1052
+msgid   "perform PGP operations on article"
+msgstr  "udfÃ¸r PGP-handlinger pÃ¥ artikel"
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  "TilfÃ¸j nÃ¸gle(r) til offentlig nÃ¸glering?"
+
+#: src/lang.c:1054
+#, c-format
+msgid   "%s=encrypt, %s=sign, %s=both, %s=quit: "
+msgstr  "%s=krypter, %s=underskriv, %s=begge, %s=afslut: "
+
+#: src/lang.c:1055
+#, c-format
+msgid   "%s=sign, %s=sign & include public key, %s=quit: "
+msgstr  ""
+
+#: src/lang.c:1056
+#, c-format
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  "PGP er ikke sat op (kan ikke Ã¥bne %s)"
+
+#: src/lang.c:1057
+msgid   "Article not signed and no public keys found"
+msgstr  "Artikel ikke underskrevet og ingen offentlige nÃ¸gler fundet"
+
+#: src/lang.c:1059
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1060
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1061
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1063
+#, c-format
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1064
+#, c-format
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1065
+#, c-format
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1069
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1070
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1071
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1073
+#, c-format
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1074
+#, c-format
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1075
+#, c-format
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1084
+msgid   "Try cache_overview_files to speed up things.\n"
+msgstr  ""
+
+#: src/lang.c:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  "Tin vil i steden for anvende lokale indeksfiler.\n"
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  "Kan ikke finde NNTP-servernavn"
+
+#: src/lang.c:1087
+#, c-format
+msgid   "Connecting to %s:%u..."
+msgstr  "Forbinder til %s:%u..."
+
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  "Afbryder fra server...\n"
+
+#: src/lang.c:1089
+#, c-format
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  ""
+
+#: src/lang.c:1090
+#, c-format
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  "Kunne ikke forbinde til NNTP-server %s. Afslutter..."
+
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  "205  Lukker forbindelse"
+
+#: src/lang.c:1092
+msgid   "Your server does not support the NNTP XOVER or OVER command.\n"
+msgstr  "Din server understÃ¸tter ikke kommandoerne NNTP XOVER eller OVER.\n"
+
+#: src/lang.c:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  "Forbindelsen til nyhedsserveren har fÃ¥et tidsudlÃ¸b. Genforbind?"
+
+#: src/lang.c:1094
+#, c-format
+msgid   "Put the server name in the file %s,\n"
+        "or set the environment variable NNTPSERVER"
+msgstr  ""
+
+#: src/lang.c:1095
+msgid   "  -A       force authentication on connect"
+msgstr  ""
+
+#: src/lang.c:1096
+#, c-format
+msgid   "  -g serv  read news from NNTP server serv [default=%s]"
+msgstr  ""
+
+#: src/lang.c:1097
+#, c-format
+msgid   "  -p port  use port as NNTP port [default=%d]"
+msgstr  ""
+
+#: src/lang.c:1098
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  ""
+
+#: src/lang.c:1099
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  ""
+
+#: src/lang.c:1100
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  ""
+
+#: src/lang.c:1101
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  ""
+
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  "\n"
+        "sokkel- eller forbindelsesproblem\n"
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "Forbindelse til %s: "
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  "Giver op...\n"
+
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp: Ukendt tjeneste.\n"
+
+#: src/lang.c:1114
+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:1117
+msgid   "Your server does not have Xref: in its XOVER information.\n"
+msgstr  "Din server har ikke Xref: I sin XOVER-information.\n"
+
+#: src/lang.c:1120
+#, c-format
+msgid   "Can't open %s. Try %s -r to read news via NNTP.\n"
+msgstr  ""
+
+#: src/lang.c:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  ""
+
+#: src/lang.c:1124
+msgid   "  -l       read only active file instead of scanning spool (-n) command"
+msgstr  ""
+
+#: src/lang.c:1125
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  ""
+
+#: src/lang.c:1126
+msgid   "Your server does not have Xref: in its NOV-files.\n"
+msgstr  ""
+
+#: src/lang.c:1130
+msgid   "Posting using external inews failed. Use built in inews instead?"
+msgstr  ""
+
+#: src/lang.c:1131
+msgid   "It worked! Should I always use my built in inews from now on?"
+msgstr  ""
+
+#: src/lang.c:1135
+#, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s udskrevet"
+
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  ""
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  "Udskriv"
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  "Udskriver..."
+
+#: src/lang.c:1142
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  ""
+
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  "Ingen kommando"
+
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  ""
+
+#: src/lang.c:1145
+#, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  ""
+
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  ""
+
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  ""
+
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  ""
+
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  ""
+
+#: src/lang.c:1162
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  ""
+
+#: src/lang.c:1166
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
+msgstr  ""
+
+#: src/lang.c:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  ""
+
+#: src/lang.c:1184
+msgid   "shell escape"
+msgstr  ""
+
+#: src/lang.c:1185
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  "Skalkommando (%s)"
+
+#: src/lang.c:1186
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "Indtast skalkommando [%s]> "
+
+#: src/lang.c:1190
+#, c-format
+msgid   "%s: Can't get entry for TERM\n"
+msgstr  ""
+
+#: src/lang.c:1194
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "Gruppe %.*s ('q' for afslut)..."
+
+#: src/lang.c:1196
+#, c-format
+msgid   "Group %.*s..."
+msgstr  "Gruppe %.*s..."
+
+#: src/lang.c:1200
+msgid   "Server unavailable\n"
+msgstr  "Server utilgÃ¦ngelig\n"
+
+#: src/lang.c:1206
+#, 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:1207
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1209
+#, c-format
+msgid   "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1210
+#, c-format
+msgid   "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1214
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1215
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1217
+#, c-format
+msgid   "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1218
+#, c-format
+msgid   "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1224
+msgid   "Terminal does not support color"
+msgstr  "Terminal understÃ¸tter ikke farver"
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  "ForsÃ¸ger %s"
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  "Ingen"
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  "Emne"
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  "Referencer"
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  "BÃ¥de emne og referencer"
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  ""
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  ""
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  "Nej"
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  "Ja"
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  "Gem alle"
+
+#: src/lang.c:1270
+msgid   "Address"
+msgstr  "Adresse"
+
+#: src/lang.c:1271
+msgid   "Full Name"
+msgstr  "Fulde navn"
+
+#: src/lang.c:1272
+msgid   "Address and Name"
+msgstr  "Adresse og navn"
+
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  "Maks."
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  "Sum"
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  "Gennemsnit"
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  "Linjer"
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  "Point"
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  "Linjer % point"
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  "Sort"
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  "RÃ¸d"
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  "GrÃ¸n"
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  "Brun"
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  "BlÃ¥"
+
+# Andre muligheder: RÃ¸dviolet
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  "Pink"
+
+# Cyan er en blÃ¥/grÃ¸n farve. (kunne ogsÃ¥ bruge turkis som oversÃ¦ttelse).
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  "Cyan"
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  "Hvis"
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "GrÃ¥"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  "LyserÃ¸d"
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  "LysegrÃ¸n"
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  "Gul"
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  "LyseblÃ¥"
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  "Lys pink"
+
+#: src/lang.c:1311
+msgid   "Light Cyan"
+msgstr  "Lys cyan"
+
+#: src/lang.c:1312
+msgid   "Light White"
+msgstr  "Lysehvid"
+
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  "Intet"
+
+#: src/lang.c:1322
+msgid   "Space"
+msgstr  "Mellemrum"
+
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  "Normal"
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  ""
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  ""
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  ""
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  "Blinkende"
+
+#: src/lang.c:1334
+msgid   "Half bright"
+msgstr  ""
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  "Fed"
+
+#: src/lang.c:1341
+msgid   "Cc"
+msgstr  ""
+
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  ""
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  ""
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  "ingen"
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  "kommandoer"
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  "vÃ¦lg"
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  ""
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  ""
+
+#: src/lang.c:1354
+msgid   "quit & select"
+msgstr  "afslut & vÃ¦lg"
+
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  ""
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  "Side ned (PageDown)"
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1368
+#, fuzzy
+msgid   "Subject: (case sensitive)"
+msgstr  "Emne: (stigende)"
+
+#: src/lang.c:1369
+#, fuzzy
+msgid   "Subject: (ignore case)"
+msgstr  "Emne: (stigende)"
+
+#: src/lang.c:1370
+#, fuzzy
+msgid   "From: (case sensitive)"
+msgstr  "Fra: (stigende)"
+
+#: src/lang.c:1371
+#, fuzzy
+msgid   "From: (ignore case)"
+msgstr  "Fra: (stigende)"
+
+#: src/lang.c:1372
+msgid   "Msg-ID: & full References: line"
+msgstr  ""
+
+#: src/lang.c:1373
+msgid   "Msg-ID: & last References: only"
+msgstr  ""
+
+#: src/lang.c:1374
+msgid   "Message-ID: entry only"
+msgstr  ""
+
+#: src/lang.c:1375
+#, fuzzy
+msgid   "Lines:"
+msgstr  "Linjer"
+
+#: src/lang.c:1380
+msgid   "Don't trim article body"
+msgstr  ""
+
+#: src/lang.c:1381
+msgid   "Skip leading blank lines"
+msgstr  "Spring indledende tomme linjer over"
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  "Spring afsluttende tomme linjer over"
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  "Spring indledende og afsluttende tomme linjer over"
+
+#: src/lang.c:1384
+msgid   "Compact multiple between text"
+msgstr  ""
+
+#: src/lang.c:1385
+msgid   "Compact multiple and skip leading"
+msgstr  ""
+
+#: src/lang.c:1386
+msgid   "Compact multiple and skip trailing"
+msgstr  ""
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  ""
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  "Skalarkiv"
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  "Emne: (faldende)"
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  "Emne: (stigende)"
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  "Fra: (faldende)"
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  "Fra: (stigende)"
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  "Dato: (faldende)"
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  "Dato: (stigende)"
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  "Point (faldende)"
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  "Point (stigende)"
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  "Linjer: (faldende)"
+
+#: src/lang.c:1427
+msgid   "Lines: (ascending)"
+msgstr  "Linjer: (stigende)"
+
+#: src/lang.c:1434
+msgid   "Last posting date (descending)"
+msgstr  "Sidste indsendingsdato (faldende)"
+
+#: src/lang.c:1435
+msgid   "Last posting date (ascending)"
+msgstr  "Sidste indsendingsdato (stigende)"
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  "Behold altid"
+
+#: src/lang.c:1441
+msgid   "Always Remove"
+msgstr  "Fjern altid"
+
+#: src/lang.c:1442
+msgid   "Mark with D on selection screen"
+msgstr  "Marker med D pÃ¥ udvÃ¦lgelsesskÃ¦rmen"
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  ""
+
+#: src/lang.c:1448
+msgid   "Kill all arts & show with K"
+msgstr  ""
+
+#. TODO: s/K/art_marked_killed/
+#: src/lang.c:1449
+msgid   "Kill all arts and never show"
+msgstr  ""
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  "Intet specielt"
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  ""
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  ""
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  ""
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  ""
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  ""
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  ""
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  ""
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  "nej"
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  "med teksthoveder"
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  "uden teksthoveder"
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  ""
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  ""
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  ""
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  ""
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  "Vis indstillinger"
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  "Farveindstillinger"
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  "ArtikelbegrÃ¦nsende indstillinger"
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  "Indsendelses-/postindstillinger"
+
+#: src/lang.c:1548
+msgid   "Saving/Printing Options"
+msgstr  "Gemnings-/udskrivningsindstillinger"
+
+#: src/lang.c:1554
+msgid   "Expert Options"
+msgstr  "Ekspertindstillinger"
+
+#: src/lang.c:1560
+msgid   "Filtering Options"
+msgstr  "Filterindstillinger"
+
+#: src/lang.c:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  ""
+
+#: src/lang.c:1567
+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:1572
+msgid   "Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1573
+msgid   "Show description of each newsgroup"
+msgstr  "Vis beskrivelse af hver nyhedsgruppe"
+
+#: src/lang.c:1574
+msgid   "# If ON show group description text after newsgroup name at\n"
+        "# group selection level\n"
+msgstr  ""
+
+#: src/lang.c:1579
+msgid   "Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
+        "sets."
+msgstr  ""
+
+#: src/lang.c:1580
+msgid   "In group menu, show author by"
+msgstr  "I gruppemenu, vis forfatter efter"
+
+#: src/lang.c:1581
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  ""
+
+#: src/lang.c:1590
+msgid   "Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  ""
+
+#: src/lang.c:1592
+msgid   "# If ON use -> otherwise highlighted bar for selection\n"
+msgstr  ""
+
+#: src/lang.c:1597
+msgid   "Use inverse video for page headers"
+msgstr  ""
+
+#: src/lang.c:1598
+msgid   "# If ON use inverse video for page headers at different levels\n"
+msgstr  ""
+
+#: src/lang.c:1603
+msgid   "Thread articles by"
+msgstr  ""
+
+#: src/lang.c:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  ""
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  ""
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  ""
+
+#: src/lang.c:1629
+msgid   "Score of a thread"
+msgstr  ""
+
+#: src/lang.c:1630
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  ""
+
+#: src/lang.c:1638
+msgid   "Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1639
+msgid   "Sort articles by"
+msgstr  "Sorter artikler efter"
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  ""
+
+#: src/lang.c:1656
+msgid   "Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1657
+msgid   "Sort threads by"
+msgstr  "Sorter trÃ¥de efter"
+
+#: src/lang.c:1658
+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:1668
+msgid   "Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1669
+msgid   "Go to first unread article in group"
+msgstr  "GÃ¥ til den nÃ¦ste ulÃ¦ste artikel med"
+
+#: src/lang.c:1670
+msgid   "# If ON put cursor at first unread art in group otherwise last art\n"
+msgstr  ""
+
+#: src/lang.c:1674
+msgid   "Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1675
+msgid   "Show only unread articles"
+msgstr  "Vis kun ulÃ¦ste artikler"
+
+#: src/lang.c:1676
+msgid   "# If ON show only new/unread articles otherwise show all.\n"
+msgstr  ""
+
+#: src/lang.c:1681
+msgid   "Show only groups with unread arts"
+msgstr  ""
+
+#: src/lang.c:1682
+msgid   "# If ON show only subscribed to groups that contain unread articles.\n"
+msgstr  ""
+
+#: src/lang.c:1687
+msgid   "Filter which articles"
+msgstr  ""
+
+#: src/lang.c:1688
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  ""
+
+#: src/lang.c:1697
+msgid   "Go to the next unread article with"
+msgstr  "GÃ¥ til den nÃ¦ste ulÃ¦ste artikel med"
+
+#: src/lang.c:1698
+msgid   "# Go to the unread article with following 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:1708
+msgid   "How to treat blank lines"
+msgstr  "Hvordan tomme linjer skal behandles"
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  ""
+
+#: src/lang.c:1727
+msgid   "# If ON automatically list thread when entering it using right arrow key.\n"
+msgstr  ""
+
+#: src/lang.c:1731
+msgid   "Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1732
+msgid   "Character to show deleted articles"
+msgstr  ""
+
+#: src/lang.c:1733
+msgid   "# Character used to show that an art was deleted (default 'D')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1738
+msgid   "Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1739
+msgid   "Character to show inrange articles"
+msgstr  ""
+
+#: src/lang.c:1740
+msgid   "# Character used to show that an art is in a range (default '#')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1745
+msgid   "Enter character to indicate that article will return. <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:1746
+msgid   "Character to show returning arts"
+msgstr  ""
+
+#: src/lang.c:1747
+msgid   "# Character used to show that an art will return (default '-')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1752
+msgid   "Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1753
+msgid   "Character to show selected articles"
+msgstr  "Tegn der viser valgte artikler"
+
+#: src/lang.c:1754
+msgid   "# Character used to show that an art was auto-selected (default '*')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1759
+msgid   "Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1760
+msgid   "Character to show recent articles"
+msgstr  ""
+
+#: src/lang.c:1761
+msgid   "# Character used to show that an art is recent (default 'o')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1766
+msgid   "Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1767
+msgid   "Character to show unread articles"
+msgstr  ""
+
+#: src/lang.c:1768
+msgid   "# Character used to show that an art is unread (default '+')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1773
+msgid   "Enter character to indicate read articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1774
+msgid   "Character to show read articles"
+msgstr  ""
+
+#: src/lang.c:1775
+msgid   "# Character used to show that an art was read (default ' ')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1780
+msgid   "Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1781
+msgid   "Character to show killed articles"
+msgstr  ""
+
+#: src/lang.c:1782
+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:1787
+msgid   "Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1788
+msgid   "Character to show readselected arts"
+msgstr  ""
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1795
+msgid   "Max. length of group names shown"
+msgstr  ""
+
+#: src/lang.c:1796
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  "# Maksimal lÃ¦ngde pÃ¥ navne pÃ¥ nyhedsgrupper som vises\n"
+
+#: src/lang.c:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  ""
+
+#: src/lang.c:1802
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
+
+#: src/lang.c:1809
+msgid   "Show lines/score in listings"
+msgstr  ""
+
+#: src/lang.c:1810
+msgid   "# What information 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  ""
+
+#: src/lang.c:1819
+msgid   "0 = full page scrolling, -1 = show previous last line as first on next page, -"
+        "2 = half page"
+msgstr  ""
+
+#: src/lang.c:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  ""
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  ""
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  "Vis underskrifter"
+
+#: src/lang.c:1833
+msgid   "# If OFF don't show signatures when displaying articles\n"
+msgstr  "# Hvis OFF (FRA) sÃ¥ vis ikke underskrifter nÃ¥r der vises artikler\n"
+
+#: src/lang.c:1837
+msgid   "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1838
+msgid   "Display uue data as an attachment"
+msgstr  "Vis uue-data som et bilag"
+
+#: src/lang.c:1839
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  ""
+
+#: src/lang.c:1849
+msgid   "Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1850
+msgid   "Display \"a as Umlaut-a"
+msgstr  ""
+
+#: src/lang.c:1851
+msgid   "# If ON decode German style TeX umlaut codes to ISO and\n"
+        "# show \"a as Umlaut-a, etc.\n"
+msgstr  ""
+
+#: src/lang.c:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  ""
+
+#: src/lang.c:1857
+msgid   "Display these header fields (or *)"
+msgstr  ""
+
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  ""
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  ""
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  ""
+
+#: src/lang.c:1878
+msgid   "Do you want to enable automatic handling of multipart/alternative articles?"
+msgstr  "Ã˜nsker du at aktivere automatisk hÃ¥ndtering af flerdels-/alternative artikler?"
+
+#: src/lang.c:1879
+msgid   "Skip multipart/alternative parts"
+msgstr  ""
+
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  ""
+
+#: src/lang.c:1884
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1885
+msgid   "Detection of verbatim blocks"
+msgstr  "Detektering af verbatimblokke"
+
+#: src/lang.c:1886
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  ""
+
+#: src/lang.c:1891
+msgid   "A regex used to decide which lines to show in col_quote."
+msgstr  ""
+
+#: src/lang.c:1892
+msgid   "Regex used to show quoted lines"
+msgstr  ""
+
+#: src/lang.c:1893
+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:1899
+msgid   "A regex used to decide which lines to show in col_quote2."
+msgstr  ""
+
+#: src/lang.c:1900
+msgid   "Regex used to show twice quoted l."
+msgstr  ""
+
+#: src/lang.c:1901
+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:1907
+msgid   "A regex used to decide which lines to show in col_quote3."
+msgstr  ""
+
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  ""
+
+#: src/lang.c:1909
+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:1916
+msgid   "A regex used to decide which words to show in col_markslashes."
+msgstr  ""
+
+#: src/lang.c:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  ""
+
+#: src/lang.c:1918
+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:1924
+msgid   "A regex used to decide which words to show in col_markstars."
+msgstr  ""
+
+#: src/lang.c:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  ""
+
+#: src/lang.c:1926
+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:1932
+msgid   "A regex used to decide which words to show in col_markstroke."
+msgstr  ""
+
+#: src/lang.c:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  ""
+
+#: src/lang.c:1934
+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:1940
+msgid   "A regex used to decide which words to show in col_markdash."
+msgstr  ""
+
+#: src/lang.c:1941
+msgid   "Regex used to highlight _underline_"
+msgstr  ""
+
+#: src/lang.c:1942
+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:1948
+msgid   "A regex used to find Subject prefixes to remove.  Use '|' as separator."
+msgstr  ""
+
+#: src/lang.c:1949
+msgid   "Regex with Subject prefixes"
+msgstr  ""
+
+#: src/lang.c:1950
+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:1955
+msgid   "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr  ""
+
+#: src/lang.c:1956
+msgid   "Regex with Subject suffixes"
+msgstr  ""
+
+#: src/lang.c:1957
+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:1962
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  ""
+
+#: src/lang.c:1963
+msgid   "Regex for begin of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  ""
+
+#: src/lang.c:1969
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  ""
+
+#: src/lang.c:1970
+msgid   "Regex for end of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  ""
+
+#: src/lang.c:1976
+msgid   "Enter name and options for external MIME viewer, --internal for built-in "
+        "viewer"
+msgstr  ""
+
+#: src/lang.c:1977
+msgid   "MIME binary content viewer"
+msgstr  ""
+
+#: src/lang.c:1978
+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:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  "BekrÃ¦ft fÃ¸r start af visningsprogram for ikke-tekst"
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  "SpÃ¸rg fÃ¸r brug af MIME-fremviser"
+
+#: src/lang.c:1987
+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:1992
+msgid   "Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1993
+msgid   "Catchup read groups when quitting"
+msgstr  ""
+
+#: src/lang.c:1994
+msgid   "# If ON ask user if read groups should all be marked read\n"
+msgstr  ""
+
+#: src/lang.c:1999
+msgid   "Catchup group using left key"
+msgstr  ""
+
+#: src/lang.c:2000
+msgid   "# If ON catchup group/thread when leaving with the left arrow key.\n"
+msgstr  ""
+
+#: src/lang.c:2005
+msgid   "Catchup thread by using left key"
+msgstr  ""
+
+#: src/lang.c:2011
+msgid   "Which actions require confirmation"
+msgstr  ""
+
+#: src/lang.c:2012
+msgid   "# What should we ask confirmation for.\n"
+msgstr  "# Hvad skal vi spÃ¸rge efter bekrÃ¦ftelse pÃ¥.\n"
+
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  ""
+
+#: src/lang.c:2018
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  ""
+
+#: src/lang.c:2022
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2023
+#, fuzzy
+msgid   "Program that opens URLs"
+msgstr  "Program som Ã¥bner URL'er"
+
+#: src/lang.c:2024
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  ""
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  "Anvend mus i xterm"
+
+#: src/lang.c:2030
+msgid   "# If ON enable mouse button support on xterm terminals\n"
+msgstr  ""
+
+#: src/lang.c:2036
+msgid   "Use scroll keys on keypad"
+msgstr  "Brug rultaster pÃ¥ numerisk tastatur"
+
+#: src/lang.c:2037
+msgid   "# If ON enable scroll keys on terminals that support it\n"
+msgstr  ""
+
+#: src/lang.c:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  "Antal artikler til hentning"
+
+#: src/lang.c:2044
+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:2049
+msgid   "Enter number of days article is considered recent. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2050
+msgid   "Article recentness time limit"
+msgstr  ""
+
+#: src/lang.c:2051
+msgid   "# Number of days in which article is considered recent, (0=OFF)\n"
+msgstr  ""
+
+#: src/lang.c:2055
+msgid   "WILDMAT for normal wildcards, REGEX for full regular expression matching."
+msgstr  ""
+
+#: src/lang.c:2056
+msgid   "Wildcard matching"
+msgstr  ""
+
+#: src/lang.c:2057
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  ""
+
+#: src/lang.c:2064
+msgid   "Enter minimal score before an article is marked killed. <CR> sets."
+msgstr  "Indtast minimal point fÃ¸r en artikel markeres som drÃ¦bt. <CR> angiver."
+
+#: src/lang.c:2065
+msgid   "Score limit (kill)"
+msgstr  "PointbegrÃ¦nsning (drÃ¦b)"
+
+#: src/lang.c:2066
+msgid   "# Score limit before an article is marked killed\n"
+msgstr  "# PointbegrÃ¦nsning fÃ¸r en artikel markeres som drÃ¦bt\n"
+
+#: src/lang.c:2070
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  "Indtast standardpoint for at drÃ¦be artikler. <CR> angiver."
+
+#: src/lang.c:2071
+msgid   "Default score to kill articles"
+msgstr  "Standardpoint for at drÃ¦be artikler"
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  "# Standardpoint for at drÃ¦be artikler\n"
+
+#: src/lang.c:2076
+msgid   "Enter minimal score before an article is marked hot. <CR> sets."
+msgstr  "Indtast minimal point fÃ¸r en artikel markeres som populÃ¦r. <CR> angiver."
+
+#: src/lang.c:2077
+msgid   "Score limit (select)"
+msgstr  "PointbegrÃ¦nsning (vÃ¦lg)"
+
+#: src/lang.c:2078
+msgid   "# Score limit before an article is marked hot\n"
+msgstr  "# PointbegrÃ¦nsning fÃ¸r en artikel er markeret som populÃ¦r\n"
+
+#: src/lang.c:2082
+msgid   "Enter default score to select articles. <CR> sets."
+msgstr  "Indtast standardpoint for at vÃ¦lge artikler: <CR> angiver."
+
+#: src/lang.c:2083
+msgid   "Default score to select articles"
+msgstr  "Standardpoint for at vÃ¦lge artikler"
+
+#: src/lang.c:2084
+msgid   "# Default score to select articles\n"
+msgstr  "# Standardpoint for at vÃ¦lge artikler\n"
+
+#: src/lang.c:2090
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  "Brug slmface for at vise ''X-face:''s"
+
+#: src/lang.c:2091
+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:2099
+msgid   "Use ANSI color"
+msgstr  "Brug ANSI-farve"
+
+#: src/lang.c:2100
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# Hvis ON (TIL) brug ANSI-farve\n"
+
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  "Standardforgrundsfarve"
+
+#: src/lang.c:2106
+msgid   "# Standard foreground color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standardforgrundsfarve\n"
+        "# Standard: -1 (standardfarve)\n"
+
+#: src/lang.c:2112
+msgid   "Standard background color"
+msgstr  "Standardbaggrundsfarve"
+
+#: src/lang.c:2113
+msgid   "# Standard background color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standardbaggrundsfarve\n"
+        "# Standard: -1 (standardfarve)\n"
+
+#: src/lang.c:2119
+msgid   "Color for inverse text (background)"
+msgstr  "Farve for inverteret tekst (baggrund)"
+
+#: src/lang.c:2120
+msgid   "# Color of background for inverse text\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Farve pÃ¥ baggrund for inverteret tekst\n"
+        "# Standard: 4 (blÃ¥)\n"
+
+#: src/lang.c:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  "Farve pÃ¥ inverteret tekst (forgrund)"
+
+#: src/lang.c:2127
+msgid   "# Color of foreground for inverse text\n"
+        "# Default: 7 (white)\n"
+msgstr  "# Farve pÃ¥ forgrund for inverteret tekst\n"
+        "# Standard: 7 (hvid)\n"
+
+#: src/lang.c:2133
+msgid   "Color of text lines"
+msgstr  "Farve pÃ¥ tekstlinjer"
+
+#: src/lang.c:2134
+msgid   "# Color of text lines\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Farve pÃ¥ tekstlinjer\n"
+        "# Standard: -1 (standardfarve)\n"
+
+#: src/lang.c:2140
+msgid   "Color of mini help menu"
+msgstr  "Farve pÃ¥ minihjÃ¦lpemenu"
+
+#: src/lang.c:2141
+msgid   "# Color of mini help menu\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# Farve pÃ¥ minihjÃ¦lpemenu\n"
+        "# Standard: 3 (brun)\n"
+
+#: src/lang.c:2147
+msgid   "Color of help text"
+msgstr  "Farve pÃ¥ hjÃ¦lpetekst"
+
+#: src/lang.c:2148
+msgid   "# Color of help pages\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Farve pÃ¥ hjÃ¦lpesider\n"
+        "# Standard: -1 (standardfarve)\n"
+
+#: src/lang.c:2154
+msgid   "Color of status messages"
+msgstr  "Farve pÃ¥ statusbeskeder"
+
+#: src/lang.c:2155
+msgid   "# Color of messages in last line\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Farve pÃ¥ beskeder i sidste linje\n"
+        "# Standard: 6 (cyan)\n"
+
+#: src/lang.c:2161
+msgid   "Color of quoted lines"
+msgstr  "Farve pÃ¥ citerede linjer"
+
+#: src/lang.c:2162
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farve pÃ¥ citeringslinjer\n"
+        "# Standard: 2 (grÃ¸n)\n"
+
+#: src/lang.c:2168
+msgid   "Color of twice quoted line"
+msgstr  "Farve pÃ¥ dobbelt citerede linjer"
+
+#: src/lang.c:2169
+msgid   "# Color of twice quoted lines\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# Farve pÃ¥ dobbelt citerede linjer# Standard: 3 (brun)\n"
+
+#: src/lang.c:2175
+msgid   "Color of =>3 times quoted line"
+msgstr  "Farve pÃ¥ =>3 gange citerede linje"
+
+#: src/lang.c:2176
+msgid   "# Color of >=3 times quoted lines\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Farve pÃ¥ >=3 gange citerede linjer\n"
+        "# Standard: 4 (blÃ¥)\n"
+
+#: src/lang.c:2182
+msgid   "Color of article header lines"
+msgstr  "Farve pÃ¥ artikelhovedlinjer"
+
+#: src/lang.c:2183
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farve pÃ¥ hovedlinjer\n"
+        "# Standard: 2 (grÃ¸n)\n"
+
+# actual, er det sÃ¥dan noget som "faktiske" eller "rigtige" her, jeg er i tvivl
+#: src/lang.c:2189
+msgid   "Color of actual news header fields"
+msgstr  "Farve pÃ¥ aktuelle nyhedshovedfelter"
+
+#: src/lang.c:2190
+msgid   "# Color of actual news header fields\n"
+        "# Default: 9 (light red)\n"
+msgstr  "# Farve pÃ¥ aktuelle nyhedshovedfelter\n"
+        "# Standard: 9 (lyserÃ¸d)\n"
+
+#: src/lang.c:2196
+msgid   "Color of article subject lines"
+msgstr  "Farve pÃ¥ artikelemnelinjer"
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Farve pÃ¥ artikelemne\n"
+        "# Standard: 6 (cyan)\n"
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  "Farve pÃ¥ svartÃ¦ller"
+
+#: src/lang.c:2204
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farve pÃ¥ svartÃ¦ller\n"
+        "# Standard: 2 (grÃ¸n)\n"
+
+#: src/lang.c:2210
+msgid   "Color of sender (From:)"
+msgstr  "Farver pÃ¥ afsender (Fra:)"
+
+#: src/lang.c:2211
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farve pÃ¥ afsender (Fra:)\n"
+        "# Standard: 2 (grÃ¸n)\n"
+
+#: src/lang.c:2217
+msgid   "Color of help/mail sign"
+msgstr  "Farve pÃ¥ hjÃ¦lp-/posttegn"
+
+#: src/lang.c:2218
+msgid   "# Color of Help/Mail-Sign\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Farve pÃ¥ hjÃ¦lp-/posttegn\n"
+        "# Standard: 4 (blÃ¥)\n"
+
+#: src/lang.c:2224
+msgid   "Color of signatures"
+msgstr  "Farve pÃ¥ underskrifter"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Farve pÃ¥ underskrift\n"
+        "# Standard: 4 (blÃ¥)\n"
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  "Farve pÃ¥ fremhÃ¦vede URL'er"
+
+#: src/lang.c:2232
+msgid   "# Color of highlighted URLs\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Farve pÃ¥ fremhÃ¦vede URL'er\n"
+        "# Standard: -1 (standardfarve)\n"
+
+#: src/lang.c:2238
+msgid   "Color of verbatim blocks"
+msgstr  "Farve pÃ¥ verbatimblokke"
+
+#: src/lang.c:2239
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  "# Farve pÃ¥ verbatimblokke\n"
+        "# Standard: 5 (lyserÃ¸d)\n"
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  "Farve pÃ¥ fremhÃ¦vninger med *stjerner*"
+
+#: src/lang.c:2246
+msgid   "# Color of word highlighting with *stars*\n"
+        "# Default: 11 (yellow)\n"
+msgstr  "# Farve pÃ¥ ordfremhÃ¦vninger med *stjerner*\n"
+        "# Standard: 11 (gul)\n"
+
+#: src/lang.c:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  "Farve pÃ¥ fremhÃ¦vning med _streg_"
+
+#: src/lang.c:2253
+msgid   "# Color of word highlighting with _dash_\n"
+        "# Default: 13 (light pink)\n"
+msgstr  "# Farve pÃ¥ ordfremhÃ¦vning med _streg_\n"
+        "# Standard: 13 (lyselilla)\n"
+
+#: src/lang.c:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  "Farve pÃ¥ fremhÃ¦vninger med /skrÃ¥streg/"
+
+#: src/lang.c:2260
+msgid   "# Color of word highlighting with /slash/\n"
+        "# Default: 14 (light cyan)\n"
+msgstr  "# Farve pÃ¥ ordfremhÃ¦vninger med /skrÃ¥streg/\n"
+        "# Standard: 14 (lyscyan)\n"
+
+# Er det ikke stroke der er skrÃ¥skreg?
+# nej den er god nok med at slahs er skrÃ¥streg ligesom der stÃ¥r fÃ¸r
+#: src/lang.c:2266
+msgid   "Color of highlighting with -stroke-"
+msgstr  "Farve pÃ¥ fremhÃ¦vning med -bindestreg-"
+
+#: src/lang.c:2267
+msgid   "# Color of word highlighting with -stroke-\n"
+        "# Default: 12 (light blue)\n"
+msgstr  "# Farve pÃ¥ ordfremhÃ¦vning med -bindestreg-\n"
+        "# Standard: 12 (lysblÃ¥)\n"
+
+#: src/lang.c:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  "Attr. pÃ¥ fremhÃ¦vninger med *stjerner*"
+
+#: src/lang.c:2275
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  "# Attributer pÃ¥ ordfremhÃ¦vninger pÃ¥ monoterminaler\n"
+        "# Mulige vÃ¦rdier er:\n"
+        "#   0 = Normal\n"
+        "#   1 = Understregning\n"
+        "#   2 = Bedste fremhÃ¦vning\n"
+        "#   3 = Omvendt video\n"
+        "#   4 = Blinkende\n"
+        "#   5 = Halvlyst\n"
+        "#   6 = Fed\n"
+        "\n"
+        "# Attribut pÃ¥ ordfremhÃ¦vning med *stjerner*\n"
+        "# Standard: 6 (fed)\n"
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  ""
+
+#: src/lang.c:2291
+msgid   "# Attribute of word highlighting with _dash_\n"
+        "# Default: 2 (best highlighting)\n"
+msgstr  ""
+
+#: src/lang.c:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  ""
+
+#: src/lang.c:2298
+msgid   "# Attribute of word highlighting with /slash/\n"
+        "# Default: 5 (half bright)\n"
+msgstr  ""
+
+#: src/lang.c:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  ""
+
+#: src/lang.c:2305
+msgid   "# Attribute of word highlighting with -stroke-\n"
+        "# Default: 3 (reverse video)\n"
+msgstr  ""
+
+#: src/lang.c:2311
+msgid   "URL highlighting in message body"
+msgstr  ""
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  ""
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  ""
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  ""
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  ""
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  ""
+
+#: src/lang.c:2333
+msgid   "Enter column number to wrap article lines to in the pager. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2334
+msgid   "Page line wrap column"
+msgstr  ""
+
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  ""
+
+#: src/lang.c:2340
+msgid   "Wrap around threads on next unread"
+msgstr  ""
+
+#: src/lang.c:2341
+msgid   "# If ON wrap around threads on searching next unread article\n"
+msgstr  ""
+
+#: src/lang.c:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  "Postadresse (og fulde navn)"
+
+#: src/lang.c:2347
+msgid   "# User's mail address (and fullname), if not username@host (fullname)\n"
+msgstr  ""
+
+#: src/lang.c:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  ""
+
+#: src/lang.c:2353
+msgid   "# If ON show empty Followup-To header when editing an article\n"
+msgstr  ""
+
+#: src/lang.c:2357
+msgid   "Enter path/! command/--none to create your default signature. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2358
+msgid   "Create signature from path/command"
+msgstr  ""
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  ""
+
+#: src/lang.c:2366
+msgid   "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  ""
+
+#: src/lang.c:2368
+msgid   "# If ON prepend the signature with dashes '\\n-- \\n'\n"
+msgstr  ""
+
+#: src/lang.c:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  ""
+
+#: src/lang.c:2374
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  ""
+
+#: src/lang.c:2378
+#, c-format
+msgid   "Enter quotation marks, %s or %S for author's initials."
+msgstr  ""
+
+#: src/lang.c:2379
+msgid   "Characters used as quote-marks"
+msgstr  ""
+
+#: src/lang.c:2380
+#, 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:2386
+msgid   "Quoting behavior"
+msgstr  ""
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  ""
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+msgid   "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
+msgstr  ""
+
+#: src/lang.c:2401
+msgid   "Quote line when following up"
+msgstr  ""
+
+#: src/lang.c:2402
+#, 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:2409
+msgid   "Quote line when cross-posting"
+msgstr  ""
+
+#: src/lang.c:2415
+msgid   "Quote line when mailing"
+msgstr  ""
+
+#: src/lang.c:2420
+msgid   "If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2421
+msgid   "Insert 'User-Agent:' header"
+msgstr  ""
+
+#: src/lang.c:2422
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  ""
+
+#: src/lang.c:2427
+msgid   "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2428
+msgid   "MM_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  ""
+
+#: src/lang.c:2439
+msgid   "MM_NETWORK_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2440
+msgid   "# Charset used for MIME (Content-Type) header in postings.\n"
+msgstr  ""
+
+#: src/lang.c:2444
+msgid   "Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2445
+msgid   "MM_LOCAL_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  ""
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  ""
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  "# Format pÃ¥ postkassen.\n"
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  ""
+
+#: src/lang.c:2460
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  ""
+
+#: src/lang.c:2468 src/lang.c:2489
+msgid   "Don't change unless you know what you are doing. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  ""
+
+#: src/lang.c:2470
+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:2477
+msgid   "Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2478
+msgid   "View post-processed files"
+msgstr  ""
+
+#: src/lang.c:2479
+msgid   "# If set, post processed files will be opened in a viewer\n"
+msgstr  ""
+
+#: src/lang.c:2484
+msgid   "MIME encoding in mail messages"
+msgstr  ""
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  ""
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  ""
+
+#: src/lang.c:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  ""
+
+#: src/lang.c:2502
+msgid   "# If ON strip blanks from ends of lines for faster display on slow "
+        "terminals.\n"
+msgstr  ""
+
+#: src/lang.c:2507
+msgid   "If ON, use transliteration. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2508
+msgid   "Transliteration"
+msgstr  ""
+
+#: src/lang.c:2509
+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:2517
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  ""
+
+#: src/lang.c:2518
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  ""
+
+#: src/lang.c:2527
+msgid   "Enter address elements about which you want to be warned. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2528
+msgid   "Spamtrap warning address parts"
+msgstr  ""
+
+#: src/lang.c:2529
+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:2534
+msgid   "Enter default number of days a filter entry will be valid. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  "Antal dage en filterpost er gyldig"
+
+#: src/lang.c:2536
+msgid   "# Number of days a short term filter will be active\n"
+msgstr  "# Antal dage et korttidsfilter vil vÃ¦re aktivt\n"
+
+#: src/lang.c:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2541
+msgid   "Add posted articles to filter"
+msgstr  ""
+
+#: src/lang.c:2542
+msgid   "# If ON add posted articles which start a new thread to filter for\n"
+        "# highlighting follow-ups\n"
+msgstr  ""
+
+#: src/lang.c:2546
+msgid   "The directory where articles/threads are to be saved in mailbox format."
+msgstr  ""
+
+#: src/lang.c:2547
+msgid   "Mail directory"
+msgstr  "Postmappe"
+
+#: src/lang.c:2548
+msgid   "# (-m) directory where articles/threads are saved in mailbox format\n"
+msgstr  ""
+
+#: src/lang.c:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  ""
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  ""
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  ""
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  "# Mappe hvor artikler/trÃ¥de gemmes\n"
+
+#: src/lang.c:2565
+msgid   "Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2566
+msgid   "Use Archive-name: header for save"
+msgstr  ""
+
+#: src/lang.c:2567
+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:2572
+msgid   "Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  ""
+
+#: src/lang.c:2574
+msgid   "# If ON mark articles that are saved as read\n"
+msgstr  ""
+
+#: src/lang.c:2578
+msgid   "Do post processing (eg. extract attachments) for saved articles."
+msgstr  ""
+
+#: src/lang.c:2579
+msgid   "Post process saved articles"
+msgstr  ""
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  ""
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  "Behandl kun ulÃ¦ste artikler"
+
+#: src/lang.c:2590
+msgid   "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
+msgstr  ""
+
+#: src/lang.c:2595
+msgid   "Print all or just part of header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2596
+msgid   "Print all headers when printing"
+msgstr  ""
+
+#: src/lang.c:2597
+msgid   "# If ON print all of article header otherwise just the important lines\n"
+msgstr  ""
+
+#: src/lang.c:2601
+msgid   "The printer program with options that is to be used to print articles/threads."
+msgstr  "Printerprogrammet med indstillinger som vil blive brugt til at udskrive "
+        "artikler/trÃ¥de."
+
+#: src/lang.c:2602
+msgid   "Printer program with options"
+msgstr  "Printerprogram med indstillinger"
+
+#: src/lang.c:2603
+msgid   "# Print program with parameters used to print articles/threads\n"
+msgstr  ""
+
+#: src/lang.c:2609
+msgid   "Force redraw after certain commands"
+msgstr  ""
+
+#: src/lang.c:2610
+msgid   "# If ON a screen redraw will always be done after certain external commands\n"
+msgstr  ""
+
+#: src/lang.c:2614
+msgid   "Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2615
+msgid   "Start editor with line offset"
+msgstr  ""
+
+#: src/lang.c:2616
+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:2621
+msgid   "Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2622
+msgid   "Invocation of your editor"
+msgstr  ""
+
+#: src/lang.c:2623
+#, c-format
+msgid   "# Format of editor line including parameters\n"
+        "# %%E Editor  %%F Filename  %%N Linenumber\n"
+msgstr  ""
+
+#: src/lang.c:2628
+msgid   "Enter name and options for external-inews, --internal for internal inews"
+msgstr  ""
+
+#: src/lang.c:2629
+msgid   "External inews"
+msgstr  ""
+
+#: src/lang.c:2630
+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:2634
+msgid   "Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2635
+msgid   "Invocation of your mail command"
+msgstr  ""
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  ""
+
+#: src/lang.c:2644
+msgid   "Use interactive mail reader"
+msgstr  ""
+
+#: src/lang.c:2645
+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  ""
+
+#: src/lang.c:2654
+msgid   "Remove ~/.article after posting"
+msgstr  ""
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  ""
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+msgid   "Filename for all posted articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2668
+msgid   "Filename for posted articles"
+msgstr  "Filnavn for indsendte artikler"
+
+#: src/lang.c:2669
+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:2674
+msgid   "Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  ""
+
+#: src/lang.c:2676
+msgid   "# If ON keep all failed postings in ~/dead.articles\n"
+msgstr  ""
+
+#: src/lang.c:2680
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  ""
+
+#: src/lang.c:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  ""
+
+#: src/lang.c:2682
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  ""
+
+#: src/lang.c:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  ""
+
+#: src/lang.c:2688
+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  ""
+
+#: src/lang.c:2696
+msgid   "Enter number of seconds until active file will be reread. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2697
+msgid   "Interval in secs to reread active"
+msgstr  ""
+
+#: src/lang.c:2698
+msgid   "# Time interval in seconds between rereading the active file (0=never)\n"
+msgstr  ""
+
+#: src/lang.c:2703
+msgid   "Reconnect to server automatically"
+msgstr  ""
+
+#: src/lang.c:2704
+msgid   "# If ON automatically reconnect to NNTP server if the connection is broken\n"
+msgstr  ""
+
+#: src/lang.c:2708
+msgid   "Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  ""
+
+#: src/lang.c:2710
+msgid   "# If ON, create local copies of NNTP overview files.\n"
+msgstr  ""
+
+#: src/lang.c:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  ""
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  ""
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  ""
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  ""
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  ""
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  ""
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  ""
+
+#: src/lang.c:2752
+msgid   "Delete post-process files"
+msgstr  ""
+
+#: src/lang.c:2757
+msgid   "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2758
+msgid   "Mailbox to save sent mails"
+msgstr  ""
+
+#: src/lang.c:2763
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  ""
+
+#: src/lang.c:2769
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2776
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  "Ispellprogram"
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  ""
+
+#: src/lang.c:2784
+msgid   "Mailing list address"
+msgstr  "Adresse pÃ¥ postliste"
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  "Videresend artikler som bilag"
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  "En kommaadskilt liste af MIME store/smÃ¥ Content-typer. <ESC> afbryder."
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  "Hvilke MIME-typer vil blive gemt"
+
+#: src/lang.c:2801
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  ""
+
+#: src/lang.c:2807
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2808
+msgid   "savefile"
+msgstr  ""
+
+#: src/lang.c:2813 src/lang.c:2837
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2814
+msgid   "Quick (1 key) select filter scope"
+msgstr  ""
+
+#: src/lang.c:2819 src/lang.c:2843
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
+
+#: src/lang.c:2825 src/lang.c:2849
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2826
+msgid   "Quick (1 key) select filter case"
+msgstr  ""
+
+#: src/lang.c:2831 src/lang.c:2855
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
+
+#: src/lang.c:2838
+msgid   "Quick (1 key) kill filter scope"
+msgstr  ""
+
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
+
+#: src/lang.c:2850
+msgid   "Quick (1 key) kill filter case"
+msgstr  ""
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2863
+msgid   "UNDECLARED_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2869
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2870
+msgid   "X_Body"
+msgstr  "X_Body"
+
+#: src/lang.c:2875
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  "X_Headers"
+
+#: src/lang.c:2881
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2882
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  ""
+
+#: src/misc.c:3754
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "Version: %s %s udgave %s (Â»%sÂ«) %s %s\n"
+
+#: src/misc.c:3757
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "Version: %s %s udgave %s (Â»%sÂ«)\n"
+
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  ""
+
+#: src/nntplib.c:819
+#, c-format
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  ""
+
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  ""
+
+#: src/nntplib.c:863 src/nntplib.c:1838
+#, c-format
+msgid   "Read (%s)\n"
+msgstr  "LÃ¦st (%s)\n"
+
+#: src/nntplib.c:865
+#, c-format
+msgid   "Resend last command (%s)\n"
+msgstr  ""
+
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  ""
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  ""
+
+#: src/nrctbl.c:175
+#, c-format
+msgid   "couldn't expand %s\n"
+msgstr  "kunne ikke udvide %s\n"
+
+#: src/post.c:1307
+#, 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:1312
+#, 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:1314
+#, 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:2278
+#, c-format
+msgid   "Posting: %.*s ..."
+msgstr  ""
+
+#. Check if okay to read
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "Afbryder lÃ¦sning, vent venligst..."
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "AfbrÃ¸d lÃ¦sning\n"
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  ""
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  "uÃ¦ndret"
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  "[- UtilgÃ¦ngelig -]"
+
+#.
+#. * preamble
+#. * TODO: -> lang.c
+#.
+#: src/rfc2047.c:1287
+#, c-format
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  ""
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "byte"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "ulÃ¦ste"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "alle"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  ""
+
+#: src/xface.c:70
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  "Kan ikke kÃ¸re slrnface: KÃ¸rer ikke i en xterm."
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
+#, c-format
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  "Kan ikke kÃ¸re slrnface: MiljÃ¸variabel %s ikke fundet."
+
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  "Kan ikke kÃ¸re slrnface: Kunne ikke oprette %s"
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  ""
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  "Kan ikke kÃ¸re slrnface: Kunne ikke konstruere fifo-navn."
+
+#: src/xface.c:174
+#, c-format
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  "Slrnface blev unormalt afbrudt, kode %d."
+
+#: src/xface.c:218
+#, c-format
+msgid   "Slrnface failed: %s."
+msgstr  "Slrnface mislykkedes: %s."
Binary files tin-1.8.3/po/de.gmo and tin-2.0.0/po/de.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/de.po tin-2.0.0/po/de.po
--- tin-1.8.3/po/de.po	2007-02-01 13:58:03.000000000 +0100
+++ tin-2.0.0/po/de.po	2011-08-22 18:32:41.055218373 +0200
@@ -1,6626 +1,7620 @@
-# German translations for tin
-# Sven Hartge <oweh@ds9.argh.org>, 2000-2002
-# Kai Bojens <kbojens@on-luebeck.de>, 2000-2002
-# Andreas Metzler <tin-dev@downhill.at.eu.org>, 2001-2003
-# Christian Garbs <tin-dev@cgarbs.de>, 2003
+# German translations for tin.
+# Sven Hartge <oweh@ds9.argh.org>, 2000-2002.
+# Kai Bojens <kbojens@on-luebeck.de>, 2000-2002.
+# Andreas Metzler <tin-dev@downhill.at.eu.org>, 2001-2003.
+# Christian Garbs <tin-dev@cgarbs.de>, 2003.
 #
-msgid	""
-msgstr	"Project-Id-Version: tin 1.8.3\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+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"
-	"Language-Team: German <german-tin@ds9.argh.org>\n"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=ISO-8859-1\n"
-	"Content-Transfer-Encoding: 8bit\n"
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.9.6\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\n"
+        "PO-Revision-Date: 2005-01-29 23:50+0100\n"
+        "Last-Translator: Christian Garbs <tin-dev@cgarbs.de>\n"
+        "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=ISO-8859-1\n"
+        "Content-Transfer-Encoding: 8bit\n"
 
-#: src/art.c:1534
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	"%d Fehlerhafter Overview-Datensatz (%d Felder) '%s'"
+msgid   "attribute with no scope: %s"
+msgstr  "Attribut ohne Gültigkeitsbereich: %s"
 
-#: src/attrib.c:649
+#: src/attrib.c:884
+msgid   "Processing attributes... "
+msgstr  "Verarbeite Attribute... "
+
+#: src/attrib.c:1102
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	"# Diesen Kommentarabschnitt nicht verändern\n"
-	"#\n"
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  "# Diesen Kommentarabschnitt nicht verändern\n"
+        "#\n"
 
-#: src/attrib.c:650
+#: src/attrib.c:1103
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	"#  scope=ZEICHENKETTE  [notwendig]\n"
-	"#    Gültigkeitsbereich, z.B. alt.*,!alt.bin*\n"
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  "#  scope=ZEICHENKETTE  [notwendig]\n"
+        "#    Gültigkeitsbereich, z.B. alt.*,!alt.bin*\n"
 
-#: src/attrib.c:651
+#: src/attrib.c:1104
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	"#  maildir=ZEICHENKETTE\n"
-	"#    Verzeichnis der Mail-Ordner, z.B. ~/Mail\n"
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  "#  add_posted_to_filter=ON/OFF\n"
+        "#    Filtereintrag erzeugen für eigene Postings\n"
 
-#: src/attrib.c:652
+#: src/attrib.c:1105
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	"#  savedir=ZEICHENKETTE\n"
-	"#    Verzeichnis zum Speichern, z.B. ~user/News\n"
+msgid   "#  advertising=ON/OFF\n"
+msgstr  "#  advertising=ON/OFF\n"
+        "#    User-Agent:-Header einfügen\n"
 
-#: src/attrib.c:653
+#: src/attrib.c:1106
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	"#  savefile=ZEICHENKETTE\n"
-	"#    Datei zum Speichern, z.B. =linux\n"
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  "#  alternative_handling=ON/OFF\n"
+        "#    MIME multipart/alternative-Teile ausblenden\n"
 
-#: src/attrib.c:654
+#: src/attrib.c:1107
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	"#  sigfile=ZEICHENKETTE\n"
-	"#    Signatur, z.B. $var/sig\n"
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  "#  ask_for_metamail=ON/OFF\n"
+        "#    Start des MIME-Viewers erst nach Bestätigung\n"
 
-#: src/attrib.c:655
+#: src/attrib.c:1108
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	"#  organization=ZEICHENKETTE\n"
-	"#    Organization-Header; ist das erste Zeichen ein '/', wird der\n"
-	"#    Wert aus dieser Datei gelesen.\n"
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  "#  auto_cc_bcc=ZAHL\n"
 
-#: src/attrib.c:656
+#: src/attrib.c:1109
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	"#  followup_to=ZEICHENKETTE\n"
-	"#    Voreinstellung für den Followup-To-Header\n"
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  "#    0=Nein, 1=Cc, 2=Bcc, 3=Cc und Bcc\n"
 
-#: src/attrib.c:657
+#: src/attrib.c:1110
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	"#  mailing_list=ZEICHENKETTE\n"
-	"#    Gruppe ist eine gegatete Mailingliste, z.B. majordomo@example.org\n"
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:658
+#: src/attrib.c:1111
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	"#  x_headers=ZEICHENKETTE\n"
-	"#    Zusätzliche Header, z.B. ~/.tin/extra-headers\n"
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  "#  auto_save=ON/OFF\n"
+        "#    Artikel mit Archive-name:-Header automatisch in die darin\n"
+        "#    angegebene Datei speichern\n"
 
-#: src/attrib.c:659
+#: src/attrib.c:1112
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	"#  x_body=ZEICHENKETTE\n"
-	"#    Text wird automatisch zu Beginn des Artikels eingefügt,\n"
-	"#    z.B. ~/.tin/extra-body-text\n"
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  "#  auto_select=ON/OFF\n"
+        "#    Führe GroupMarkUnselArtRead Kommando automatisch beim Betreten\n"
+        "#    der Gruppe aus\n"
 
-#: src/attrib.c:660
+#: src/attrib.c:1113
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	"#  from=ZEICHENKETTE\n"
-	"#    Absender, einfach den gewünschten Wert eintragen,\n"
-	"#    keine Anführungszeichen verwenden\n"
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  "#  batch_save=ON/OFF\n"
+        "#    Im Batch-Modus werden die Artikel beachtet\n"
 
-#: src/attrib.c:661
+#: src/attrib.c:1114
 #, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	"#  news_quote_format=ZEICHENKETTE\n"
-	"#    Einleitungszeile, z.B. news_quote_format=In %%M, %%F wrote:\n"
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  "#  date_format=ZEICHENKETTE\n"
+        "#    z.B. %%a, %%d %%b %%Y %%H:%%M:%%S\n"
 
-#: src/attrib.c:662
+#: src/attrib.c:1115
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	"#  quote_chars=ZEICHENKETTE\n"
-	"#    Zeichen für Zitate in Antworten, %%s oder %%S ergibt Autoreninitialien\n"
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  "#  delete_tmp_files=ON/OFF\n"
+        "#    Gespeicherte, zur Nachbearbeitung weitergegebene Artikel ohne\n"
+        "#    Nachfrage löschen\n"
 
-#: src/attrib.c:663
+#: src/attrib.c:1116
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	"#  mime_types_to_save=ZEICHENKETTE\n"
-	"#    z.B. image/*,!image/bmp\n"
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  "#  editor_format=ZEICHENKETTE\n"
+        "#    z.B. %%E +%%N %%F\n"
 
-#: src/attrib.c:665
+#: src/attrib.c:1117
 #, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	"#  ispell=ZEICHENKETTE\n"
-	"#    Aufruf der Rechtschreibprüfung,\n"
-	"#    z.B. ispell -C -ddeutsch -w äöüÄÖÜß@ -Tlatin1\n"
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  "#  fcc=ZEICHENKETTE\n"
+        "#    Datei in der eine Kopie der Mail abgelegt werden soll,\n"
+        "#    z.B.: =mailbox\n"
 
-#: src/attrib.c:667
+#: src/attrib.c:1118
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	"#  auto_select=ON/OFF\n"
-	"#    Führe GroupMarkUnselArtRead Kommando automatisch beim Betreten\n"
-	"#    der Gruppe aus\n"
+msgid   "#  followup_to=STRING\n"
+msgstr  "#  followup_to=ZEICHENKETTE\n"
+        "#    Voreinstellung für den Followup-To:-Header\n"
 
-#: src/attrib.c:668
+#: src/attrib.c:1119
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	"#  auto_save=ON/OFF\n"
-	"#    Artikel mit 'Archive-name:'-Header automatisch in die darin\n"
-	"#    angegebene Datei speichern\n"
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  "#  from=ZEICHENKETTE\n"
+        "#    Absender, einfach den gewünschten Wert eintragen,\n"
+        "#    keine Anführungszeichen verwenden\n"
 
-#: src/attrib.c:669
+#: src/attrib.c:1120
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	"#  batch_save=ON/OFF\n"
-	"#    Im Batch-Modus werden die Artikel beachtet\n"
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:670
+#: src/attrib.c:1121
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	"#  delete_tmp_files=ON/OFF\n"
-	"#    Gespeicherte, zur Nachbearbeitung weitergegebene Artikel ohne\n"
-	"#    Nachfrage löschen\n"
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:671
+#: src/attrib.c:1122
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	"#  show_only_unread=ON/OFF\n"
-	"#    nur ungelesene Artikel anzeigen\n"
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  "#  mail_mime_encoding=ZEICHENKETTE"
 
-#: src/attrib.c:672
+#: src/attrib.c:1130
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	"#  thread_arts=ZAHL\n"
-	"#    Threading nach:"
+msgid   "#  ispell=STRING\n"
+msgstr  "#  ispell=ZEICHENKETTE\n"
+        "#    Aufruf der Rechtschreibprüfung,\n"
+        "#    z.B. ispell -C -ddeutsch -w äöüÄÖÜß@ -Tlatin1\n"
 
-#: src/attrib.c:679
+#: src/attrib.c:1132
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	"#  thread_perc=ZAHL\n"
-	"#    Wieviel Prozent des Subjects müssen gleich sein?\n"
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  "#  maildir=ZEICHENKETTE\n"
+        "#    Verzeichnis der Mail-Ordner, z.B. ~/Mail\n"
 
-#: src/attrib.c:680
+#: src/attrib.c:1133
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	"#  show_author=ZAHL\n"
-	"#    Anzeige des From-Felds\n"
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  "#  mailing_list=ZEICHENKETTE\n"
+        "#    Gruppe ist eine gegatete Mailingliste, z.B. majordomo@example.org\n"
 
-#: src/attrib.c:686
+#: src/attrib.c:1134
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	"#  show_info=ZAHL\n"
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  "#  mime_types_to_save=ZEICHENKETTE\n"
+        "#    z.B. image/*,!image/bmp\n"
 
-#: src/attrib.c:692
+#: src/attrib.c:1135
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	"#  sort_art_type=ZAHL\n"
-	"#    Artikel sortieren nach:\n"
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:710
+#: src/attrib.c:1136
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	"#  sort_threads_type=ZAHL\n"
-	"#    Threads sortieren nach:\n"
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:715
+#: src/attrib.c:1137
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	"#  post_proc_type=ZAHL\n"
-	"#    Nachbearbeitung\n"
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  "#  mime_forward=ON/OFF\n"
+        "#    Weitergeleitete Artikel als MIME-Anhang senden\n"
 
-#: src/attrib.c:720
+#: src/attrib.c:1139
 #, 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"
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  "#  mm_network_charset=Zeichensatz\n"
+        "#    Erlaubt sind folgende:"
 
-#: src/attrib.c:721
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	"#  quick_kill_expire=ON/OFF\n"
-	"#    Kill verfällt automatisch\n"
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  "#  undeclared_charset=Zeichensatz\n"
+        "#    Voreinstellung ist US-ASCII\n"
 
-#: src/attrib.c:722
+#: src/attrib.c:1148
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	"#  quick_kill_case=ON/OFF\n"
-	"#    Kill beachtet Gross/Kleinschreibung\n"
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  "#  news_headers_to_display=ZEICHENKETTE\n"
+        "#    Voreinstellung ist: Newsgroups Followup-To Summary Keywords X-Comment-"
+        "To\n"
 
-#: src/attrib.c:723
+#: src/attrib.c:1149
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	"#  quick_kill_header=ZAHL\n"
-	"#    Killen nach:\n"
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  "#  news_headers_to_not_display=ZEICHENKETTE\n"
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1150
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	"#    0=Subject (Gross/Kleinschreibung beachten), 1=Subject (G/K ignorieren)\n"
+msgid   "#  news_quote_format=STRING\n"
+msgstr  "#  news_quote_format=ZEICHENKETTE\n"
+        "#    Einleitungszeile, z.B. news_quote_format=In %%M, %%F wrote:\n"
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1151
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	"#    2=From (G/K beachten), 3=From (G/K ignorieren)\n"
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  "#  organization=ZEICHENKETTE\n"
+        "#    Organization:-Header; ist das erste Zeichen ein '/', wird der\n"
+        "#    Wert aus dieser Datei gelesen.\n"
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1152
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	"#    4=Message-ID, 5=Zeilen\n"
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:727
+#: src/attrib.c:1153
 #, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	"#  quick_select_scope=ZEICHENKETTE\n"
-	"#    Voreinstellung für Gültigkeitsbereich neuer Auswahlregeln (Hochscoren)\n"
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:728
+#: src/attrib.c:1154
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	"#  quick_select_expire=ON/OFF\n"
-	"#    Regel verfällt automatisch\n"
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  "#  post_mime_encoding=ZEICHENKETTE"
 
-#: src/attrib.c:729
+#: src/attrib.c:1161
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	"#  quick_select_case=ON/OFF\n"
-	"#    Regel beachtet Gross/Kleinschreibung\n"
+msgid   "#  post_process_type=NUM\n"
+msgstr  "#  post_process_type=ZAHL\n"
+        "#    Nachbearbeitung\n"
 
-#: src/attrib.c:730
+#: src/attrib.c:1166
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	"#  quick_select_header=NUM\n"
-	"#    Auswählen (Hochscoren) nach:\n"
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  "#  post_process_view=ON/OFF\n"
+        "#    Nachbearbeitete Artikel anzeigen\n"
 
-#: src/attrib.c:734
+#: src/attrib.c:1167
 #, 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"
+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:735
+#: src/attrib.c:1168
 #, 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"
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  "#  quick_kill_expire=ON/OFF\n"
+        "#    Kill verfällt automatisch\n"
 
-#: src/attrib.c:736
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	"#  tex2iso_conv=ON/OFF\n"
-	"#    Automatische Umwandlung von TeX-Umlauten\n"
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  "#  quick_kill_case=ON/OFF\n"
+        "#    Kill beachtet Groß/Kleinschreibung\n"
 
-#: src/attrib.c:737
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	"#  mime_forward=ON/OFF\n"
-	"#    Weitergeleitete Artikel als MIME-Anhang senden\n"
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  "#  quick_kill_header=ZAHL\n"
+        "#    Killen nach:\n"
 
-#: src/attrib.c:739
+#: src/attrib.c:1171 src/attrib.c:1180
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	"#  mm_network_charset=Zeichensatz\n"
-	"#    Erlaubt sind folgende:"
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  "#    0=Subject: (Groß/Kleinschreibung beachten), 1=Subject: (G/K ignorieren)\n"
 
-#: src/attrib.c:746
+#: src/attrib.c:1172 src/attrib.c:1181
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	"#  undeclared_charset=ZEICHENKETTE\n"
-	"#    Voreinstellung ist US-ASCII\n"
+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:748
+#: src/attrib.c:1173 src/attrib.c:1182
 #, 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"
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  "#    4=Message-ID: & alle References: Einträge\n"
 
-#: src/attrib.c:749
+#: src/attrib.c:1174 src/attrib.c:1183
 #, 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"
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  "#    5=Message-ID: & letzter References: Eintrag\n"
 
-#: src/attrib.c:750
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	"############################################################################\n"
-	"\n"
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  "#    6=Message-ID: allein, 7=Lines:\n"
 
-#: src/attrib.c:756
+#: src/attrib.c:1176
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	"# Zusätzliche Header einfügen\n"
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  "#  quick_select_scope=ZEICHENKETTE\n"
+        "#    Voreinstellung für Gültigkeitsbereich neuer Auswahlregeln (Hochscoren)\n"
 
-#: src/attrib.c:764
+#: src/attrib.c:1177
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	"# in *sources* nur Nachbearbeitung mit shar\n"
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  "#  quick_select_expire=ON/OFF\n"
+        "#    Regel verfällt automatisch\n"
 
-#: src/attrib.c:768
+#: src/attrib.c:1178
 #, c-format
-msgid	"# in *binaries* do full post processing but no TeX2ISO conversion,\n"
-msgstr	"# in *binaries* Nachbearbeitung ohne TeX2ISO umwandlung,\n"
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  "#  quick_select_case=ON/OFF\n"
+        "#    Regel beachtet Groß/Kleinschreibung\n"
 
-#: src/attrib.c:769
+#: src/attrib.c:1179
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	"# temporäre Dateien löschen und Followup-To: poster setzen\n"
+msgid   "#  quick_select_header=NUM\n"
+msgstr  "#  quick_select_header=NUM\n"
+        "#    Auswählen (Hochscoren) nach:\n"
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	"(unbekannt)"
+#: src/attrib.c:1185
+#, c-format
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  "#  quote_chars=ZEICHENKETTE\n"
+        "#    Zeichen für Zitate in Antworten, %%s oder %%S ergibt Autoreninitialien\n"
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	"Aus der vorigen Regel gelöscht: "
-
-# TRANSLATION MISSING
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	""
+#: src/attrib.c:1187
+#, c-format
+msgid   "#  print_header=ON/OFF\n"
+msgstr  "#  print_header=ON/OFF\n"
+        "#    Alle Header beim Drucken ausgeben\n"
+
+#: src/attrib.c:1189
+#, c-format
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1190
+#, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  "#  prompt_followupto=ON/OFF\n"
+        "#    Leeren Followup-To:-Header anzeigen beim Erstellen eines Artikels\n"
+
+#: src/attrib.c:1191
+#, c-format
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  "#  savedir=ZEICHENKETTE\n"
+        "#    Verzeichnis zum Speichern, z.B. ~user/News\n"
+
+#: src/attrib.c:1192
+#, c-format
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  "#  savefile=ZEICHENKETTE\n"
+        "#    Datei zum Speichern, z.B. =linux\n"
+
+#: src/attrib.c:1193
+#, c-format
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  "#  sigfile=ZEICHENKETTE\n"
+        "#    Signatur, z.B. $var/sig\n"
+
+#: src/attrib.c:1194
+#, c-format
+msgid   "#  show_author=NUM\n"
+msgstr  "#  show_author=ZAHL\n"
+        "#    Anzeige des From-Felds\n"
+
+#: src/attrib.c:1200
+#, c-format
+msgid   "#  show_info=NUM\n"
+msgstr  "#  show_info=ZAHL\n"
+
+#: src/attrib.c:1206
+#, c-format
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  "#  show_signatures=ON/OFF\n"
+        "#    Signaturen anzeigen\n"
+
+#: src/attrib.c:1207
+#, c-format
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  "#  show_only_unread_arts=ON/OFF\n"
+        "#    nur ungelesene Artikel anzeigen\n"
+
+#: src/attrib.c:1208
+#, c-format
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  "#  sigdashes=ON/OFF\n"
+        "#    Signatur mit '\\n-- \\n' abtrennen\n"
+
+#: src/attrib.c:1209
+#, c-format
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  "#  signature_repost=ON/OFF\n"
+        "#    Signatur beim Reposten anhängen\n"
+
+#: src/attrib.c:1210
+#, c-format
+msgid   "#  sort_article_type=NUM\n"
+msgstr  "#  sort_article_type=ZAHL\n"
+        "#    Artikel sortieren nach:\n"
+
+#: src/attrib.c:1228
+#, c-format
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  "#  sort_threads_type=ZAHL\n"
+        "#    Threads sortieren nach:\n"
+
+#: src/attrib.c:1237
+#, c-format
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  "#  tex2iso_conv=ON/OFF\n"
+        "#    Automatische Umwandlung von TeX-Umlauten\n"
+
+#: src/attrib.c:1239
+#, c-format
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1240
+#, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  "#  thread_articles=ZAHL\n"
+        "#    Threading nach:"
+
+#: src/attrib.c:1247
+#, c-format
+msgid   "#  thread_perc=NUM\n"
+msgstr  "#  thread_perc=ZAHL\n"
+        "#    Wie viel Prozent des Subjects müssen gleich sein?\n"
+
+#: src/attrib.c:1248
+#, c-format
+msgid   "#  trim_article_body=NUM\n"
+msgstr  "#  trim_article_body=ZAHL\n"
+
+#: src/attrib.c:1249
+#, c-format
+msgid   "#    0 = Don't trim article body\n"
+msgstr  "#    0 = Artikelrumpf nicht anpassen\n"
+
+#: src/attrib.c:1250
+#, c-format
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  "#    1 = Führende Leerzeilen überspringen\n"
+
+#: src/attrib.c:1251
+#, c-format
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  "#    2 = Abschliessende Leerzeilen überspringen\n"
+
+#: src/attrib.c:1252
+#, c-format
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  "#    3 = Führende und abschliessende Leerzeilen überspringen\n"
+
+#: src/attrib.c:1253
+#, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  ""
+
+#: src/attrib.c:1254
+#, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  "#  verbatim_handling=ON/OFF\n"
+        "#    Wortgetreue Textblöcke erkennen\n"
+
+#: src/attrib.c:1258
+#, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1259
+#, c-format
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  "#  x_body=ZEICHENKETTE\n"
+        "#    Text wird automatisch zu Beginn des Artikels eingefügt,\n"
+        "#    z.B. ~/.tin/extra-body-text\n"
+
+#: src/attrib.c:1260
+#, 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:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  "#  x_headers=ZEICHENKETTE\n"
+        "#    Zusätzliche Header, z.B. ~/.tin/extra-headers\n"
+
+#: src/attrib.c:1262
+#, 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:1263
+#, 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:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  "############################################################################\n"
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(unbekannt)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  ""
 
 #: src/lang.c:42
-msgid	"1 Response"
-msgstr	"1 Antwort"
+msgid   "1 Response"
+msgstr  "1 Antwort"
 
 #: src/lang.c:46
 #, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%s enthält keine Newsgruppen. tin beendet sich."
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s enthält keine Newsgruppen. tin beendet sich."
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	"alle "
+msgid   "all "
+msgstr  "alle "
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	"Alle Gruppen"
+msgid   "All groups"
+msgstr  "Alle Gruppen"
 
 #: src/lang.c:49
 #, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	"Datei %s existiert. %s=anfügen, %s=überschreiben, %s=beenden: "
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  "Datei %s existiert. %s=anfügen, %s=überschreiben, %s=beenden: "
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	"Artikel gecancelt (gelöscht)."
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"Artikel kann nicht gecancelt (gelöscht) werden."
+msgid   "Article cancelled (deleted)."
+msgstr  "Artikel gecancelt (gelöscht)."
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	"Artikel gelöscht."
-
-#: src/lang.c:53
-#, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"\n"
-	"Ihr Artikel:\n"
-	"  \"%s\"\n"
-	"wird in folgende %s gepostet:\n"
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "Artikel kann nicht gecancelt (gelöscht) werden."
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	"Artikel nicht gepostet!"
+msgid   "Article deleted."
+msgstr  "Artikel gelöscht."
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	"Artikel nicht gespeichert"
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "Ihr Artikel:\n"
+        "  \"%s\"\n"
+        "wird in folgende %s gepostet:\n"
 
 #: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	"Artikelbereich Befehle"
+msgid   "Article not posted!"
+msgstr  "Artikel nicht gepostet!"
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	"Artikel hat keinen Bezugsartikel"
+msgid   "Article not saved"
+msgstr  "Artikel nicht gespeichert"
 
 #: src/lang.c:58
-msgid	"Parent article has been killed"
-msgstr	"Der Bezugsartikel wurde gekillt"
+msgid   "Article Level Commands"
+msgstr  "Artikelbereich Befehle"
 
 #: src/lang.c:59
-msgid	"Parent article is unavailable"
-msgstr	"Bezugsartikel nicht verfügbar"
+msgid   "Article has no parent"
+msgstr  "Artikel hat keinen Bezugsartikel"
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	"Artikel gepostet: %s"
+msgid   "Parent article has been killed"
+msgstr  "Der Bezugsartikel wurde gekillt"
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	"Artikel abgelehnt (abgespeichert als %s)"
+msgid   "Parent article is unavailable"
+msgstr  "Bezugsartikel nicht verfügbar"
 
 #: src/lang.c:62
 #, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	"%s=Artikel %s=Thread %s=hervorgehoben %s=Muster %s=markierte %s=beenden: "
+msgid   "Article posted: %s"
+msgstr  "Artikel gepostet: %s"
 
 #: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	"Artikel nicht verfügbar"
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  "Artikel abgelehnt (abgespeichert als %s)"
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	"Artikel löschen rückgängig gemacht."
+#, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  "%s=Artikel %s=Thread %s=Bereich %s=herv. %s=Muster %s=markierte %s=beenden: "
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  "Artikel nicht verfügbar"
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	"Artikel"
+msgid   "Article undeleted."
+msgstr  "Artikel löschen rückgängig gemacht."
 
 #: src/lang.c:67
-msgid	"This is a repost of the following article:"
-msgstr	"Dies ist ein Repost des folgenden Artikels:"
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	"Artikel"
+#, c-format
+msgid   "Article %4d of %4d"
+msgstr  "Artikel %4d von %4d"
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	"Artikel"
+msgid   "articles"
+msgstr  "Artikel"
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	"-- %d %s gemailt --"
+msgid   "This is a repost of the following article:"
+msgstr  "Dies ist ein Repost des folgenden Artikels:"
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	" bei %s"
+msgid   "article"
+msgstr  "Artikel"
 
 #: src/lang.c:72
-#, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[-- %s/%s, Encoding %s%s%s, %d Zeilen%s%s --]\n"
+msgid   "Article"
+msgstr  "Artikel"
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	", Zeichensatz: "
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  "-- %d %s gemailt --"
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	"%*s[-- Beschreibung: %s --]\n"
+msgid   " at %s"
+msgstr  " bei %s"
 
 #: src/lang.c:75
 #, c-format
-msgid	"%d Authentication failed"
-msgstr	"%d Anmeldung fehlgeschlagen"
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  "%*s[-- %s/%s, Encoding %s%s%s, %d Zeilen%s%s --]\n"
 
 #: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	"Der Server verlangt Anmeldung (Passwort).\n"
+msgid   ", charset: "
+msgstr  ", Zeichensatz: "
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	"    Bitte das Passwort eingeben: "
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  "%*s[-- Zeichensatz %s wird nicht unterstützt --]\n"
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	"    Bitte den Usernamen eingeben: "
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- Beschreibung: %s --]\n"
 
 #: src/lang.c:79
 #, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	"Autorsuche rückwärts [%s]> "
+msgid   "%d lines"
+msgstr  "%d Zeilen"
 
 #: src/lang.c:80
-#, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	"Autorsuche vorwärts [%s]> "
+msgid   "Attachment Menu"
+msgstr  ""
 
 #: src/lang.c:81
-#, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"Angemeldet als Benutzer: %s\n"
+msgid   "Attachment Menu Commands"
+msgstr  ""
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"Anmeldung für den Benutzer \"%s\" fehlgeschlagen\n"
+msgid   "<no name>"
+msgstr  "<kein Name>"
 
 #: src/lang.c:83
 #, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	"\n"
-	"Automatisch abonniert: %s"
+msgid   "Attachment saved successfully. (%s)"
+msgstr  "Anhang erfolgreich gespeichert. (%s)"
 
 #: src/lang.c:84
-msgid	"Autosubscribing groups...\n"
-msgstr	"Automatisches Abonnieren der Gruppen...\n"
+#, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  "%d von %d Anhängen erfolgreich gespeichert."
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	"Automatische Artikelauswahl ('%s' um alle ungelesenen zu sehen) ..."
+msgid   "Select attachment> "
+msgstr  "Wähle Anhang> "
+
+#: src/lang.c:86
+msgid   "Tagged attachment"
+msgstr  ""
 
 #: src/lang.c:87
 #, c-format
-msgid	"Active file corrupt - %s"
-msgstr	"Die Datei 'active' ist beschädigt - %s"
+msgid   "%d attachments tagged"
+msgstr  ""
 
 #: src/lang.c:88
-#, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	"Artikel verursachte Fehler/Warnungen. %s=beenden, %s=Menü, %s=editieren: "
+msgid   "Untagged attachment"
+msgstr  ""
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"Unbekannte Attribute: %s"
+msgid   "Attributes Menu Commands"
+msgstr  ""
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"Ungültiger Befehl. Drücken Sie '%s' für Hilfe."
+msgid   "%d Authentication failed"
+msgstr  "%d Anmeldung fehlgeschlagen"
 
 #: src/lang.c:92
-msgid	"Base article"
-msgstr	"Ursprungsartikel"
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "NNTP Anmeldepasswort für %s nicht gefunden"
 
 #: src/lang.c:93
-msgid	"Base article range"
-msgstr	"Bereich für Ursprungsartikel"
+msgid   "Server expects authentication.\n"
+msgstr  "Der Server verlangt Anmeldung (Passwort).\n"
 
 #: src/lang.c:94
-#, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	"%s: Aktualisieren der Index-Dateien nicht unterstützt\n"
+msgid   "    Please enter password: "
+msgstr  "    Bitte das Passwort eingeben: "
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	"*** Anfang des Artikels ***"
+msgid   "    Please enter username: "
+msgstr  "    Bitte den Usernamen eingeben: "
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  "Angemeldet als Benutzer: %s\n"
 
 #: src/lang.c:97
 #, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	"[%%s] canceln (löschen) oder superseden (überschreiben)? (%s/%s/%s): "
+msgid   "Authorization failed for user: %s\n"
+msgstr  "Anmeldung für den Benutzer \"%s\" fehlgeschlagen\n"
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	"Lösche Artikel..."
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  "Autorsuche rückwärts [%s]> "
 
 #: src/lang.c:100
 #, c-format
-msgid	"Cannot create %s"
-msgstr	"Kann %s nicht erstellen"
+msgid   "Author search forwards [%s]> "
+msgstr  "Autorsuche vorwärts [%s]> "
 
 #: src/lang.c:101
 #, c-format
-msgid	"Can't find base article %d"
-msgstr	"Kann den Basisartikel %d nicht finden"
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  "\n"
+        "Automatisch abonniert: %s"
 
 #: src/lang.c:102
-#, c-format
-msgid	"Can't open %s"
-msgstr	"Kann %s nicht öffnen"
+msgid   "Autosubscribing groups...\n"
+msgstr  "Automatisches Abonnieren der Gruppen...\n"
 
 #: src/lang.c:103
 #, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	"Kann %s nicht speichern"
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	"*** Posten nicht erlaubt ***"
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  "Automatische Artikelauswahl ('%s' um alle ungelesenen zu sehen) ..."
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	"Posten nach %s ist nicht erlaubt"
+msgid   "Active file corrupt - %s"
+msgstr  "Die Datei 'active' ist beschädigt - %s"
 
 #: src/lang.c:106
 #, c-format
-msgid	"Can't retrieve %s"
-msgstr	"Kann %s nicht empfangen"
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  "Artikel verursachte Fehler/Warnungen. %s=beenden, %s=Menü, %s=editieren: "
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	"%s ist ein Verzeichnis"
+msgid   "Unrecognized attribute: %s"
+msgstr  "Unbekannte Attribute: %s"
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	"Aufholen"
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	"Aufholen von %s..."
+msgid   "Bad command. Type '%s' for help."
+msgstr  "Ungültiger Befehl. Drücken Sie '%s' für Hilfe."
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	"Alle betretenen Gruppen als gelesen markieren?"
+msgid   "Base article"
+msgstr  "Ursprungsartikel"
 
 #: src/lang.c:111
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	"Markierte Artikel in der Gruppe - trotzdem aufholen (als gelesen markieren)?"
+msgid   "Base article range"
+msgstr  "Bereich für Ursprungsartikel"
 
 #: src/lang.c:112
 #, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	"%s %d %s in %lu Sekunden\n"
+msgid   "%s: Updating of index files not supported\n"
+msgstr  "%s: Aktualisieren der Index-Dateien nicht unterstützt\n"
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	"Aufgeholt"
+msgid   "*** Beginning of article ***"
+msgstr  "*** Anfang des Artikels ***"
 
 #: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	"Überprüfe vorbereiteten Artikel"
-
-#: src/lang.c:115
-msgid	"Checking for new groups... "
-msgstr	"Prüfe, ob neue Gruppen vorhanden sind... "
+msgid   "*** Beginning of page ***"
+msgstr  "*** Seitenanfang ***"
 
 #: src/lang.c:116
-msgid	"Checking for news..."
-msgstr	"Prüfe, ob neue Artikel vorhanden sind..."
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  "[%%s] canceln (löschen) oder superseden (überschreiben)? (%s/%s/%s): "
 
 #: src/lang.c:117
-#, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	"Nachbearbeiten %s=nein, %s=ja, %s=shar, %s=Ende: "
+msgid   "Cancelling article..."
+msgstr  "Lösche Artikel..."
 
 #: src/lang.c:119
-msgid	"ANSI color disabled"
-msgstr	"ANSI Farben ausgeschaltet"
+#, c-format
+msgid   "Cannot create %s"
+msgstr  "Kann %s nicht erstellen"
 
 #: src/lang.c:120
-msgid	"ANSI color enabled"
-msgstr	"ANSI Farben eingeschaltet"
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  "Kann den Basisartikel %d nicht finden"
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  "Kann %s nicht öffnen"
 
 #: src/lang.c:122
 #, c-format
-msgid	"Command failed: %s"
-msgstr	"Befehl fehlgeschlagen: %s"
+msgid   "Couldn't open %s for saving"
+msgstr  "Kann %s nicht speichern"
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	"Nicht ausgewählte (hot) Artikel auf gelesen setzen?"
+msgid   "*** Posting not allowed ***"
+msgstr  "*** Posten nicht erlaubt ***"
 
 #: src/lang.c:124
 #, c-format
-msgid	"Connecting to %s..."
-msgstr	"Verbinde mit %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	"<CR>"
+msgid   "Posting is not allowed to %s"
+msgstr  "Posten nach %s ist nicht erlaubt"
 
 #: src/lang.c:126
-msgid	"Creating active file for saved groups...\n"
-msgstr	"Erzeuge die Datei 'active' für gespeicherte Gruppen...\n"
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  "Kann %s nicht empfangen"
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s ist ein Verzeichnis"
 
-#: src/lang.c:127
-msgid	"Creating newsrc file...\n"
-msgstr	"Erzeuge newsrc Datei...\n"
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"Voreinstellung"
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  "Catchup"
 
 #: src/lang.c:130
-msgid	"Delete saved files that have been post processed?"
-msgstr	"Löschen der gespeicherten Dateien, die nachbearbeitet wurden?"
+#, c-format
+msgid   "Catchup %s..."
+msgstr  "Catchup von %s..."
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	"Lösche temporäre Dateien..."
+msgid   "Catchup all groups entered during this session?"
+msgstr  "Alle betretenen Gruppen als gelesen markieren?"
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  "Markierte Artikel in der Gruppe - trotzdem aufholen (als gelesen markieren)?"
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	"*** Ende des Artikels ***"
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  "%s %d %s in %lu Sekunden\n"
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	"*** Ende der Artikel ***"
+msgid   "Caughtup"
+msgstr  "Aufgeholt"
 
 #: src/lang.c:135
-msgid	"*** End of groups ***"
-msgstr	"*** Ende der Gruppen ***"
+msgid   "Check Prepared Article"
+msgstr  "Überprüfe vorbereiteten Artikel"
 
 #: src/lang.c:136
-msgid	"*** End of thread ***"
-msgstr	"*** Ende des Threads ***"
+msgid   "Checking for new groups... "
+msgstr  "Prüfe, ob neue Gruppen vorhanden sind... "
 
 #: src/lang.c:137
-msgid	"Enter limit of articles to get> "
-msgstr	"Anzahl zu holender Artikel> "
+msgid   "Checking for news..."
+msgstr  "Prüfe, ob neue Artikel vorhanden sind..."
 
 #: src/lang.c:138
-msgid	"Enter Message-ID to go to> "
-msgstr	"Message-ID, die Sie suchen> "
-
-#: src/lang.c:139
-msgid	" and enter next unread thread"
-msgstr	" und nächsten ungel. Thread betreten"
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  "Nachbearbeiten %s=nein, %s=ja, %s=shar, %s=Ende: "
 
 #: src/lang.c:140
-msgid	" and enter next unread group"
-msgstr	" und betritt nächste Gruppe"
+msgid   "ANSI color disabled"
+msgstr  "ANSI Farben ausgeschaltet"
 
 #: src/lang.c:141
-msgid	"Enter option number> "
-msgstr	"Optionsnummer eingeben> "
+msgid   "ANSI color enabled"
+msgstr  "ANSI Farben eingeschaltet"
 
-#: src/lang.c:142
+#: src/lang.c:143
 #, c-format
-msgid	"Enter range [%s]> "
-msgstr	"Bereich eingeben [%s]> "
+msgid   "Command failed: %s"
+msgstr  "Befehl fehlgeschlagen: %s"
 
-#: src/lang.c:143
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	"\n"
-	"Warnung: Approved:-Header benutzt.\n"
-
-#: src/lang.c:145
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	"\n"
-	"Fehler: Ungültige Adresse im Approved:-Header.\n"
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  "Nicht ausgewählte (hot) Artikel auf gelesen setzen?"
 
 #: src/lang.c:146
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	"\n"
-	"Fehler: Ungültige Adresse im From:-Header.\n"
-
-#: src/lang.c:147
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	"\n"
-	"Fehler: Ungültige Adresse im Reply-To:-Header.\n"
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  "Verbinde mit %s..."
 
 #: src/lang.c:148
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	"\n"
-	"Fehler: Ungültiger FQDN im Message-ID:-Header.\n"
+msgid   "<CR>"
+msgstr  "<CR>"
 
 #: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	"Kann Lock auf %s nicht entfernen"
-
-#: src/lang.c:151
-#, c-format
-msgid	"Corrupted file %s"
-msgstr	"Datei %s ist beschädigt"
+msgid   "Creating active file for saved groups...\n"
+msgstr  "Erzeuge die Datei 'active' für gespeicherte Gruppen...\n"
 
-#: src/lang.c:152
-#, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	"Konnte %s nicht dotlocken - Artikel nicht angehängt!"
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  "Erzeuge newsrc Datei...\n"
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "Voreinstellung"
 
 #: src/lang.c:153
-#, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	"Konnte %s nicht locken - Artikel nicht angehängt!"
+msgid   "Delete saved files that have been post processed?"
+msgstr  "Löschen der gespeicherten Dateien, die nachbearbeitet wurden?"
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	"Interner Fehler in der GNKSA Routine - Senden Sie einen Fehlerbericht.\n"
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  "Lösche temporäre Dateien..."
 
 #: src/lang.c:156
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	"Linkes Größerzeichen '<' fehlt in Route-Adresse.\n"
+msgid   "*** End of article ***"
+msgstr  "*** Ende des Artikels ***"
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	"Linke Klammer '(' fehlt in EMail-Adresse (alter Stil).\n"
+msgid   "*** End of articles ***"
+msgstr  "*** Ende der Artikel ***"
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	"Rechte Klammer ')' fehlt in EMail-Adresse (alter Stil).\n"
+msgid   "*** End of attachments ***"
+msgstr  "*** Ende der Anhänge ***"
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	"In der Mailadresse fehlt das '@'.\n"
+msgid   "*** End of groups ***"
+msgstr  "*** Ende der Gruppen ***"
 
 #: src/lang.c:160
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	"Ein einteiliger FQDN ist nicht erlaubt. Fügen Sie Ihre Domain hinzu.\n"
+msgid   "*** End of page ***"
+msgstr  "*** Seitenende ***"
 
 #: src/lang.c:161
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Unzulässige Domain. Senden Sie einen Fehlerbericht, wenn es Ihre TL-Domain\n"
-	"wirklich gibt. Benutzen Sie .invalid für bewusst falsche Adressen.\n"
+msgid   "*** End of scopes ***"
+msgstr  ""
 
 #: src/lang.c:162
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Regelwidrige Domain. Senden Sie einen Fehlerbericht, wenn es Ihre TL-Domain\n"
-	"wirklich gibt. Benutzen Sie .invalid für bewusst falsche Adressen.\n"
+msgid   "*** End of thread ***"
+msgstr  "*** Ende des Threads ***"
 
 #: src/lang.c:163
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Unbekannte Domain. Senden Sie einen Fehlerbericht, wenn es Ihre TL-Domain\n"
-	"wirklich gibt. Benutzen Sie .invalid für bewusst falsche Adressen.\n"
+msgid   "*** End of URLs ***"
+msgstr  "*** Ende der URLs ***"
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	"Ungültiges Zeichen im FQDN.\n"
+msgid   "Enter limit of articles to get> "
+msgstr  "Anzahl zu holender Artikel> "
 
 #: src/lang.c:165
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	"Der FQDN darf keine leere Komponente enthalten.\n"
+msgid   "Enter Message-ID to go to> "
+msgstr  "Message-ID, die Sie suchen> "
 
 #: src/lang.c:166
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	"Eine Komponente des FQDN überschreitet die maximale Länge (63 Zeichen).\n"
+msgid   " and enter next unread thread"
+msgstr  " und nächsten ungel. Thread betreten"
 
 #: src/lang.c:167
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	"Komponenten des FQDN dürfen nicht mit einem Bindestrich beginnen.\n"
+msgid   " and enter next unread article"
+msgstr  " und nächsten ungel. Artikel betreten"
 
 #: src/lang.c:168
-msgid	"FQDN component may not start with digit.\n"
-msgstr	"Komponenten des FQDN dürfen nicht mit einer Zahl beginnen.\n"
+msgid   " and enter next unread group"
+msgstr  " und betritt nächste Gruppe"
 
 #: src/lang.c:169
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	"Die IP-Adresse ist nicht gültig.\n"
+msgid   "Enter option number> "
+msgstr  "Optionsnummer eingeben> "
 
 #: src/lang.c:170
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	"Die IP-Adresse ist ausschließlich für den privaten Gebrauch gedacht.\n"
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  "Bereich eingeben [%s]> "
 
 #: src/lang.c:171
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	"Die rechte Klammer nach der IP-Adresse fehlt.\n"
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	"Fehlender Lokalteil in der Mailadresse.\n"
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  "\n"
+        "Warnung: Approved:-Header benutzt.\n"
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	"Ungültiges Zeichen im Lokalteil der Mailadresse.\n"
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  "\n"
+        "Fehler: Ungültige Adresse im Approved:-Header.\n"
 
 #: src/lang.c:174
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	"Eine leere Lokalteilkomponente ist nicht erlaubt.\n"
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  "\n"
+        "Fehler: Ungültige Adresse im From:-Header.\n"
 
 #: src/lang.c:175
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	"Ungültiges Zeichen im Realname.\n"
-	"Ungeschützte Wörter dürfen kein '!()<>@,;:\\.[]' in der Adresse enthalten.\n"
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  "\n"
+        "Fehler: Ungültige Adresse im Reply-To:-Header.\n"
 
 #: src/lang.c:176
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	"Ungültiges Zeichen im Realname.\n"
-	"Geschützte Wörter dürfen kein '()<>\\' enthalten.\n"
-
-#: src/lang.c:177
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	"Ungültiges Zeichen im Realname.\n"
-	"Kodierte Wörter dürfen '!()<>@,;:\"\\.[]/=' nicht enthalten.\n"
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  "\n"
+        "Fehler: Ungültiger FQDN im Message-ID:-Header.\n"
 
 #: src/lang.c:178
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	"Falsche Syntax im kodierten Wort, das im Realname enthalten ist.\n"
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  "Kann Lock auf %s nicht entfernen"
 
 #: src/lang.c:179
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	"Ungültiges Zeichen im Realname.\n"
-	"Ungeschützte Wörter dürfen kein '()<>\\' in Adressen enthalten (alter Stil).\n"
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  "Konnte %s nicht dotlocken - Artikel nicht angehängt!"
 
 #: src/lang.c:180
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	"Ungültiges Zeichen im Realname.\n"
-	"Kontrollzeichen und unkodierte 8bit Zeichen > 127 sind verboten.\n"
-
-#: src/lang.c:181
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	"\n"
-	"Fehler: Keine Leerzeile nach dem Header gefunden.\n"
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  "Konnte %s nicht locken - Artikel nicht angehängt!"
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	"\n"
-	"Fehler: Das Posting enthält  nicht-ASCII Zeichen,  aber MM_CHARSET ist\n"
-	"        auf  US-ASCII  eingestellt.  Bitte ändern  Sie dies  auf einen\n"
-	"        passenden  Wert für Ihre  Sprache,  indem Sie  M)enü benutzen,\n"
-	"        oder direkt die tinrc ändern.\n"
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  "Datei %s ist beschädigt"
+
+#: src/lang.c:185
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  "\n"
+        "Fehler: Followup-To \"poster\" zusammen mit einem Gruppenname\n"
+        "        ist nicht erlaubt!\n"
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  "Interner Fehler in der GNKSA Routine - Senden Sie einen Fehlerbericht.\n"
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  "Linkes Größerzeichen '<' fehlt in Route-Adresse.\n"
 
 #: src/lang.c:188
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	"\n"
-	"Fehler: Das Posting enthält nicht-ASCII Zeichen, aber die MIME-Kodierung\n"
-	"        für Artikel ist auf \"7bit\" gesetzt. Bitte ändern Sie dies auf\n"
-	"        \"8bit\" oder \"quoted-printable\" - Zeichensatzabhängig -  via\n"
-	"         M)enü oder durch editieren der tinrc.\n"
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  "Linke Klammer '(' fehlt in EMail-Adresse (alter Stil).\n"
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  "Rechte Klammer ')' fehlt in EMail-Adresse (alter Stil).\n"
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  "In der Mailadresse fehlt das '@'.\n"
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  "Ein einteiliger FQDN ist nicht erlaubt. Fügen Sie Ihre Domain hinzu.\n"
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Unzulässige Domain. Senden Sie einen Fehlerbericht, wenn es Ihre TL-Domain\n"
+        "wirklich gibt. Benutzen Sie .invalid für bewusst falsche Adressen.\n"
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Regelwidrige Domain. Senden Sie einen Fehlerbericht, wenn es Ihre TL-Domain\n"
+        "wirklich gibt. Benutzen Sie .invalid für bewusst falsche Adressen.\n"
 
 #: src/lang.c:194
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	"\n"
-	"Fehler: Der Artikel beginnt mit einer Leerzeile anstatt des Headers\n"
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Unbekannte Domain. Senden Sie einen Fehlerbericht, wenn es Ihre TL-Domain\n"
+        "wirklich gibt. Benutzen Sie .invalid für bewusst falsche Adressen.\n"
 
 #: src/lang.c:195
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	"\n"
-	"Fehler: Der Header in Zeile %d enthält kein ':' nach seinem Bezeichner:\n"
-	"%s\n"
+msgid   "Illegal character in FQDN.\n"
+msgstr  "Ungültiges Zeichen im FQDN.\n"
 
 #: src/lang.c:196
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	"\n"
-	"Fehler: Die \"%s:\" Zeile ist leer.\n"
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  "Der FQDN darf keine leere Komponente enthalten.\n"
 
 #: src/lang.c:197
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	"\n"
-	"Fehler: Die \"%s:\" Zeile fehlt im Artikel Header.\n"
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  "Eine Komponente des FQDN überschreitet die maximale Länge (63 Zeichen).\n"
 
 #: src/lang.c:198
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	"\n"
-	"Fehler: Der Header in der Zeile %d hat kein Leerzeichen nach dem ':' :\n"
-	"%s\n"
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  "Komponenten des FQDN dürfen nicht mit einem Bindestrich beginnen.\n"
 
 #: src/lang.c:199
-#, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	"\n"
-	"Fehler: Es sind mehrere (%d) \"%s:\" Zeilen im Header.\n"
+msgid   "FQDN component may not start with digit.\n"
+msgstr  "Komponenten des FQDN dürfen nicht mit einer Zahl beginnen.\n"
 
 #: src/lang.c:200
-#, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	"Unsichere Zugriffsbeschränkungen auf %s (%o)"
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  "Die IP-Adresse ist nicht gültig.\n"
 
 #: src/lang.c:201
-#, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	"Ungültige Antwort auf GROUP-Befehl, %s"
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  "Die IP-Adresse ist ausschließlich für den privaten Gebrauch gedacht.\n"
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  "Die rechte Klammer nach der IP-Adresse fehlt.\n"
 
 #: src/lang.c:203
-#, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	"MIME-Fehler: Unerwartetes Ende des %s/%s-Artikels"
+msgid   "Missing localpart of mail address.\n"
+msgstr  "Fehlender Lokalteil in der Mailadresse.\n"
 
 #: src/lang.c:204
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	"MIME-Fehler: Anfangsgrenze in Hadern"
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  "Ungültiges Zeichen im Lokalteil der Mailadresse.\n"
 
 #: src/lang.c:205
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	"Kann keinen (vollqualifizierten) Domainnamen finden!"
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  "Eine leere Lokalteilkomponente ist nicht erlaubt.\n"
 
 #: src/lang.c:206
-#, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"Keine Berechtigung um %s zu betreten\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  "Ungültiges Zeichen im Realname.\n"
+        "Ungeschützte Wörter dürfen kein '!()<>@,;:\\.[]' in der Adresse enthalten.\n"
 
 #: src/lang.c:207
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	"\n"
-	"Fehler: Die From: Zeile fehlt.\n"
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  "Ungültiges Zeichen im Realname.\n"
+        "Geschützte Wörter dürfen kein '()<>\\' enthalten.\n"
 
 #: src/lang.c:208
-#, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"Keine Leseberechtigung für %s\n"
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  "Ungültiges Zeichen im Realname.\n"
+        "Kodierte Wörter dürfen '!()<>@,;:\"\\.[]/=' nicht enthalten.\n"
 
 #: src/lang.c:209
-#, c-format
-msgid	"File %s does not exist\n"
-msgstr	"Datei %s existiert nicht\n"
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  "Falsche Syntax im kodierten Wort, das im Realname enthalten ist.\n"
 
 #: src/lang.c:210
-#, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"Keine Schreibberechtigung für %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  "Ungültiges Zeichen im Realname.\n"
+        "Ungeschützte Wörter dürfen kein '()<>\\' in Adressen enthalten (alter Stil).\n"
 
 #: src/lang.c:211
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	"Kann Benutzer-Infos nicht finden (/etc/passwd fehlt?)"
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  "Ungültiges Zeichen im Realname.\n"
+        "Kontrollzeichen und unkodierte 8bit Zeichen > 127 sind verboten.\n"
 
 #: src/lang.c:212
-msgid	"errors"
-msgstr	"Fehler"
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  "\n"
+        "Fehler: Keine Leerzeile nach dem Header gefunden.\n"
 
 #: src/lang.c:213
 #, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	"\n"
-	"Fehler in Zeile %d: \"Sender:\" Header ist nicht erlaubt (wird hinzugefügt)\n"
-
-#: src/lang.c:214
-#, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	"Server führt keine der Gruppen aus %s"
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  "\n"
+        "Fehler: Ungültiges %s Format.\n"
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
-msgid	"error"
-msgstr	"Fehler"
-
-#: src/lang.c:216
-msgid	"Unknown display level"
-msgstr	"Unbekannter Level"
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	"<ESC>"
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	"Beenden..."
-
-#: src/lang.c:219
-msgid	"leaving external mail-reader"
-msgstr	"Verlasse externen Mailreader"
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  "\n"
+        "Fehler: Das Posting enthält  nicht-ASCII Zeichen,  aber MM_CHARSET ist\n"
+        "        auf  US-ASCII  eingestellt.  Bitte ändern  Sie dies  auf einen\n"
+        "        passenden  Wert für Ihre  Sprache,  indem Sie  M)enü benutzen,\n"
+        "        oder direkt die tinrc ändern.\n"
 
 #: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  "\n"
+        "Fehler: Das Posting enthält nicht-ASCII Zeichen, aber die MIME-Kodierung\n"
+        "        für Artikel ist auf \"7bit\" gesetzt. Bitte ändern Sie dies auf\n"
+        "        \"8bit\" oder \"quoted-printable\" - Zeichensatz abhängig -  via\n"
+        "         M)enü oder durch editieren der tinrc.\n"
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  "\n"
+        "Fehler: Der Artikel beginnt mit einer Leerzeile anstatt des Headers\n"
+
+#: src/lang.c:227
 #, c-format
-msgid	"Extracting %s..."
-msgstr	"Entpacke %s..."
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  "\n"
+        "Fehler: Der Header in Zeile %d enthält kein ':' nach seinem Bezeichner:\n"
+        "%s\n"
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	"Fehler beim Schreiben von %s. Dateisystem voll? Datei zurückgesetzt."
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  "\n"
+        "Fehler: Die \"%s:\" Zeile ist leer.\n"
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	"Fehler beim Erzeugen der Sicherung von %s. Dateisystem voll?"
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  "\n"
+        "Fehler: Die \"%s:\" Zeile fehlt im Artikel Header.\n"
 
-#: src/lang.c:224
+#: src/lang.c:230
 #, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	"Filtern nach den globalen Regeln (%d/%d)..."
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  "\n"
+        "Fehler: %s enthält auch nicht 7Bit Zeichen.\n"
 
-#: src/lang.c:225
-msgid	"Rule created by: "
-msgstr	"Regel erstellt von: "
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  "\n"
+        "Fehler: Der Header in der Zeile %d hat kein Leerzeichen nach dem ':' :\n"
+        "%s\n"
 
-#: src/lang.c:226
+#: src/lang.c:232
 #, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"Muster eingeben [%s]> "
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  "\n"
+        "Fehler: Es sind mehrere (%d) \"%s:\" Zeilen im Header.\n"
 
-#: src/lang.c:227
+#: src/lang.c:233
 #, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	"\n"
-	"Antworten auf Ihre Artikel sollen in folgenden %s erscheinen:\n"
+msgid   "Insecure permissions of %s (%o)"
+msgstr  "Unsichere Zugriffsbeschränkungen auf %s (%o)"
 
-#: src/lang.c:228
+#: src/lang.c:235
 #, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	"  %s\t Antworten erhalten Sie direkt per Mail.\n"
+msgid   "Invalid response to GROUP command, %s"
+msgstr  "Ungültige Antwort auf GROUP-Befehl, %s"
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	"-- weitergeleitete Nachricht --\n"
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  "MIME-Fehler: Unerwartetes Ende des %s/%s-Artikels"
 
-#: src/lang.c:230
-msgid	"-- end of forwarded message --\n"
-msgstr	"-- Ende der weitergeleiteten Nachricht --\n"
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  "MIME-Fehler: Anfangsgrenze in Hadern"
 
-#: src/lang.c:231
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	"# Format:\n"
-	"#   comment=Z.KETTE   Optionaler Kommentar. Es sind mehrere "
-	"Kommentareinträge\n"
-	"#                     pro Regel erlaubt. Kommentare müssen ganz am Anfang "
-	"stehen,\n"
-	"#                     sonst werden sie zur nächsten Regel verschoben. '#' "
-	"darf\n"
-	"#                     nicht im Kommentar vorkommen!\n"
-	"#   group=Z.KETTE     Liste der Newsgroups (z.B. comp.*,!*sources*) "
-	"[obligatorisch]\n"
-	"#   case=ZAHL         Groß/Kleinschreibung beim Filtern beachten=0,\n"
-	"#                     ignorieren=1        [obligatorisch]\n"
-	"#   score=ZAHL|ZKETTE Score/Bewertung für diese Regel, entweder eine\n"
-	"#                     Zahl (z.B. 70) oder eines der beiden Schlüsselwörter\n"
-	"#                     'hot' oder 'kill'\n"
-	"#   subj=ZEICHENKETTE Subject(Betreff). (z.B. How to be a wizard)\n"
-	"#   from=ZEICHENKETTE From(Absender). (z.B. *Craig Shergold*)\n"
-	"#   msgid=Z.KETTE     Message-ID (z.B.<123@@ether.net>) kommt in Message-ID-\n"
-	"#                     oder References-Zeile vor. - Regel wirkt auf den "
-	"Artikel\n"
-	"#                     mit der M-ID und alle Antworten darauf.\n"
-	"#   msgid_last=ZKETTE Message-ID-Header selbst und letzte Element von "
-	"References\n"
-	"#                     Regel wirkt auf Posting selbst oder _direkte_ "
-	"Antworten.\n"
-	"#   msgid_only=ZKETTE Message-ID lautet (z.B.<123@@ether.net>).\n"
-	"#   refs_only=Z.KETTE References-Header (z.B.<123@@ether.net>), kein\n"
-	"#                     Vergleich mit Message-ID-Header.\n"
-	"#   lines=[<>]?ZAHL   Zeilenanzahl (Lines-Header)\n"
-	"#   gnksa=[<>]?ZAHL   Rückgabewert der Funktion GNKSA parse_from()\n"
-	"#\n"
-	"#   xref=MUSTER       Muster passt auf Xref-Header (z.B. alt.flame*)\n"
-	"#\n"
-	"#   time=ZAHL         Ablaufdatum der Regel als time_t Wert\n"
-	"#                     (Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC)\n"
-	"#\n"
+#: src/lang.c:242
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  "\n"
+        "Fehler: \"poster\" ist nicht erlaubt in Newsgroups!\n"
 
-#: src/lang.c:252
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  "Kann keinen (voll qualifizierten) Domainnamen finden!"
+
+#: src/lang.c:244
 #, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	"Bewertung für Regel (Standard=%d): "
+msgid   "No permissions to go into %s\n"
+msgstr  "Keine Berechtigung um %s zu betreten\n"
 
-#: src/lang.c:253
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  "\n"
+        "Fehler: Die From: Zeile fehlt.\n"
+
+#: src/lang.c:248
 #, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	"Geben Sie die Höhe der Bewertung an (Bereich 0 < Bewertung <= %d)"
+msgid   "No read permissions for %s\n"
+msgstr  "Keine Leseberechtigung für %s\n"
 
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	"Voll"
+#: src/lang.c:249
+#, c-format
+msgid   "File %s does not exist\n"
+msgstr  "Datei %s existiert nicht\n"
+
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "Keine Schreibberechtigung für %s\n"
 
-#: src/lang.c:255
-msgid	"Comment (optional)  : "
-msgstr	"Kommentar (optional): "
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  "Kann Benutzer-Infos nicht finden (/etc/passwd fehlt?)"
+
+#: src/lang.c:252
+msgid   "errors"
+msgstr  "Fehler"
+
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  "\n"
+        "Fehler in Zeile %d: \"Sender:\"-Header ist nicht erlaubt (wird hinzugefügt)\n"
 
 #: src/lang.c:256
-msgid	"Apply pattern to    : "
-msgstr	"Wende Muster an auf : "
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  "Server führt keine der Gruppen aus %s"
 
 #: src/lang.c:257
-msgid	"From: line (ignore case)      "
-msgstr	"From: Zeile (ignoriere Groß- Kleinschreibung)"
+msgid   "error"
+msgstr  "Fehler"
 
 #: src/lang.c:258
-msgid	"From: line (case sensitive)   "
-msgstr	"From: Zeile (Groß- Kleinschreibung beachten) "
+msgid   "Unknown display level"
+msgstr  "Unbekannter Level"
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  "<ESC>"
 
 #: src/lang.c:260
-#, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s: Unbekannter Host.\n"
+msgid   "Exiting..."
+msgstr  "Beenden..."
 
 #: src/lang.c:261
-msgid	"global "
-msgstr	"Global "
+msgid   "leaving external mail-reader"
+msgstr  "Verlasse externen Mailreader"
 
 #: src/lang.c:262
 #, c-format
-msgid	"Please use %.100s instead"
-msgstr	"Bitte %.100s statt dessen benutzen"
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	"%s ist ungültig"
+msgid   "Extracting %s..."
+msgstr  "Entpacke %s..."
 
 #: src/lang.c:264
 #, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"Gruppe %s ist moderiert. Fortfahren?"
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  "Fehler beim Schreiben von %s. Dateisystem voll? Datei zurückgesetzt."
 
 #: src/lang.c:265
-msgid	"groups"
-msgstr	"Gruppen"
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  "Fehler beim Erzeugen der Sicherung von %s. Dateisystem voll?"
 
 #: src/lang.c:266
 #, c-format
-msgid	"Rereading %s..."
-msgstr	"Lese %s..."
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  "Filtern nach den globalen Regeln (%d/%d)..."
 
 #: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	"Top Level Befehle"
+msgid   "Rule created by: "
+msgstr  "Regel erstellt von: "
 
 #: src/lang.c:268
-msgid	"Group Selection"
-msgstr	"Gruppen-Auswahl"
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "Muster eingeben [%s]> "
 
 #: src/lang.c:269
-msgid	"group"
-msgstr	"Gruppe"
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  "\n"
+        "Antworten auf Ihre Artikel sollen in folgenden %s erscheinen:\n"
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  "  %s\t Antworten erhalten Sie direkt per Mail.\n"
 
 #: src/lang.c:271
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	"Kommentarzeile(n). <CR> für nächsten Menüpunkt bzw. Ende der eingeg. Zeile."
+msgid   "-- forwarded message --\n"
+msgstr  "-- weitergeleitete Nachricht --\n"
 
 #: src/lang.c:272
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"From: zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
+msgid   "-- end of forwarded message --\n"
+msgstr  "-- Ende der weitergeleiteten Nachricht --\n"
 
 #: src/lang.c:273
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	"Zeilenzahl der Artikel, die gefiltert werden. < weniger, > mehr, = gleich."
-
-#: src/lang.c:274
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Message-ID: zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:275
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Subject: zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:276
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	"Textmuster zum Filtern, wenn Subject: & From: nicht Ihren Wünschen entspricht."
-
-#: src/lang.c:277
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	"Wähle worauf das Textmuster angewendet wird. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:278
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	"Gültigkeitsdauer in Tagen für den Filter. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:279
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Filterregel gilt für aktuelle/alle Gruppe(n). <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:280
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Filterregel gilt für aktuelle/allen Gruppe(n).<SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:281
-msgid	"kill an article via a menu"
-msgstr	"killt einen Artikel mittels eines Menüs"
-
-#: src/lang.c:282
-msgid	"auto-select (hot) an article via a menu"
-msgstr	"Filterregel (hochscoren) für Artikel via Menü erstellen"
-
-#: src/lang.c:283
-msgid	"Browse URLs in article"
-msgstr	"URLs im Artikel mit Browser öffnen"
-
-#: src/lang.c:284
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	"0 - 9\t  zeigt Artikel nach Nummern sortiert im aktuellen Thread"
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	"cancelt (löscht) oder ersetzt den aktuellen Artikel"
-
-#: src/lang.c:286
-msgid	"edit article (mail-groups only)"
-msgstr	"editiere Artikel (nur bei Mail-Gruppen)"
-
-#: src/lang.c:287
-msgid	"display first article in current thread"
-msgstr	"ersten Artikel im aktuellen Thread anzeigen"
-
-#: src/lang.c:288
-msgid	"display first page of article"
-msgstr	"zeigt erste Seite des Artikels an"
-
-#: src/lang.c:289
-msgid	"post followup to current article"
-msgstr	"aktuellen Artikel beantworten (followup)"
-
-#: src/lang.c:290
-msgid	"post followup (don't copy text) to current article"
-msgstr	"aktuellen Artikel beantworten, ohne Zitieren des Textes"
-
-#: src/lang.c:291
-msgid	"post followup to current article quoting complete headers"
-msgstr	"aktuellen Artikel beantworten, mit Komplettzitat der Header"
-
-#: src/lang.c:292
-msgid	"display last article in current thread"
-msgstr	"letzten Artikel im aktuellen Thread anzeigen"
-
-#: src/lang.c:293
-msgid	"display last page of article"
-msgstr	"letzte Seite des Artikels anzeigen"
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  "# Format:\n"
+        "#   comment=Z.KETTE   Optionaler Kommentar. Es sind mehrere "
+        "Kommentareinträge\n"
+        "#                     pro Regel erlaubt. Kommentare müssen ganz am Anfang\n"
+        "#                     stehen, sonst werden sie zur nächsten Regel "
+        "verschoben.\n"
+        "#                     '#' darf nicht im Kommentar vorkommen!\n"
+        "#   group=Z.KETTE     Liste der Newsgroups (z.B. comp.*,!*sources*) "
+        "[notwendig]\n"
+        "#   case=ZAHL         Groß/Kleinschreibung beim Filtern beachten=0,\n"
+        "#                     ignorieren=1        [notwendig]\n"
+        "#   score=ZAHL|ZKETTE Score/Bewertung für diese Regel, entweder eine\n"
+        "#                     Zahl (z.B. 70) oder eines der beiden Schlüsselwörter\n"
+        "#                     'hot' oder 'kill'\n"
+        "#   subj=ZEICHENKETTE Subject(Betreff). (z.B. How to be a wizard)\n"
+        "#   from=ZEICHENKETTE From(Absender). (z.B. *Erika Mustermann*)\n"
+        "#   msgid=Z.KETTE     Message-ID (z.B. <123@@example.com>) kommt in Message-"
+        "ID-\n"
+        "#                     oder References-Zeile vor. Regel wirkt auf den Artikel\n"
+        "#                     mit der Message-ID und alle Antworten darauf.\n"
+        "#   msgid_last=ZKETTE Message-ID-Header selbst und das letzte Element von\n"
+        "#                     References. Regel wirkt auf Posting selbst oder\n"
+        "#                     _direkte_ Antworten.\n"
+        "#   msgid_only=ZKETTE Message-ID lautet (z.B. <123@@ether.net>).\n"
+        "#   refs_only=Z.KETTE References-Header (z.B. <123@@ether.net>), kein\n"
+        "#                     Vergleich mit Message-ID-Header.\n"
+        "#   lines=[<>]?ZAHL   Zeilenanzahl (Lines-Header)\n"
+        "#   gnksa=[<>]?ZAHL   Rückgabewert der Funktion GNKSA parse_from()\n"
+        "#   xref=MUSTER       Muster passt auf Xref-Header (z.B. alt.flame*)\n"
+        "#   time=ZAHL         Ablaufdatum der Regel als time_t Wert\n"
+        "#                     (Anzahl der Sekunden seit 1970-01-01 00:00:00 UTC)\n"
+        "#\n"
 
 #: src/lang.c:294
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	"markiere Rest des Thread als gelesen, springe zu nächstem ungelesenen"
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  "Bewertung für Regel (Standard=%d): "
 
 #: src/lang.c:295
-msgid	"display next article"
-msgstr	"nächsten Artikel anzeigen"
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  "Geben Sie die Höhe der Bewertung an (Bereich 0 < Bewertung <= %d)"
 
+#. SCORE_MAX
 #: src/lang.c:296
-msgid	"display first article in next thread"
-msgstr	"zeigt den ersten Artikel im nächsten Thread an"
+msgid   "Full"
+msgstr  "Voll"
 
 #: src/lang.c:297
-msgid	"display next unread article"
-msgstr	"nächsten ungelesenen Artikel anzeigen"
+msgid   "Comment (optional)  : "
+msgstr  "Kommentar (optional): "
 
 #: src/lang.c:298
-msgid	"go to the article that this one followed up"
-msgstr	"(Bezugs)Artikel anzeigen, den der aktuelle Artikel beantwortet hat"
+msgid   "Apply pattern to    : "
+msgstr  "Wende Muster an auf : "
 
 #: src/lang.c:299
-msgid	"display previous article"
-msgstr	"vorhergehenden Artikel anzeigen"
+msgid   "From: line (ignore case)      "
+msgstr  "From: Zeile (ignoriere Groß- Kleinschreibung)"
 
 #: src/lang.c:300
-msgid	"display previous unread article"
-msgstr	"vorhergehenden ungelesenen Artikel anzeigen"
-
-#: src/lang.c:301
-msgid	"quickly kill an article using defaults"
-msgstr	"killt einen Artikel schnell und benutzt dabei die Voreinstellungen"
+msgid   "From: line (case sensitive)   "
+msgstr  "From: Zeile (Groß- Kleinschreibung beachten) "
 
 #: src/lang.c:302
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	"markiert (hervorheben) Artikel und benutzt die Voreinstellungen"
-
-#: src/lang.c:303
-msgid	"return to group selection level"
-msgstr	"kehrt zum Gruppenauswahlmenü zurück"
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s: Unbekannter Host.\n"
 
 #: src/lang.c:304
-msgid	"reply through mail to author"
-msgstr	"Antwort per Mail an den Autor"
+msgid   "global "
+msgstr  "Global "
 
 #: src/lang.c:305
-msgid	"reply through mail (don't copy text) to author"
-msgstr	"Antwort per Mail an den Autor (ohne Zitieren des Textes)"
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  "Bitte %.100s statt dessen benutzen"
 
 #: src/lang.c:306
-msgid	"reply through mail to author quoting complete headers"
-msgstr	"Antwort per Mail an den Autor, wobei der komplette Header zitiert wird"
+#, c-format
+msgid   "%s is bogus"
+msgstr  "%s ist ungültig"
 
 #: src/lang.c:307
-msgid	"repost chosen article to another group"
-msgstr	"gewählten Artikel in eine andere Gruppe reposten"
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  "Gruppe %s ist moderiert. Fortfahren?"
 
 #: src/lang.c:308
-msgid	"search backwards within this article"
-msgstr	"sucht rückwärts innerhalb des Artikels"
+msgid   "groups"
+msgstr  "Gruppen"
 
 #: src/lang.c:309
-msgid	"search forwards within this article"
-msgstr	"sucht vorwärts innerhalb des Artikels"
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "Lese %s..."
 
 #: src/lang.c:310
-msgid	"show article in raw-mode (including all headers)"
-msgstr	"Artikel im Rohformat (inklusive aller Header) anzeigen"
+msgid   "Top Level Commands"
+msgstr  "Top Level Befehle"
 
 #: src/lang.c:311
-msgid	"skip next block of included text"
-msgstr	"überspringt den nächsten Zitatblock"
+msgid   "Group Selection"
+msgstr  "Gruppen-Auswahl"
 
 #: src/lang.c:312
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	"schalte Anzeige von durch Form-Feed (^L) versteckten Teilen ein/aus"
-
-#: src/lang.c:313
-msgid	"toggle word highlighting on/off"
-msgstr	"schaltet das Wort-Hervorheben ein/aus"
+msgid   "group"
+msgstr  "Gruppe"
 
 #: src/lang.c:314
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	"(de)aktiviert ROT-13 Dekodierung für den aktuellen Artikel"
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  "Kommentarzeile(n). <CR> für nächsten Menüpunkt bzw. Ende der eingeg. Zeile."
 
 #: src/lang.c:315
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	"wechsle Tabulatorweite 4 <-> 8"
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "From: zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:316
-msgid	"toggle german TeX style decoding for current article"
-msgstr	"(de)aktiviere deutsche TeX-style Dekodierung für aktuellen Artikel"
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  "Zeilenzahl der Artikel, die gefiltert werden. < weniger, > mehr, = gleich."
 
 #: src/lang.c:317
-msgid	"toggle display of uuencoded sections"
-msgstr	"Anzeige von UU-kodierten Teilen umschalten"
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Message-ID: zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:318
-msgid	"View/save multimedia attachments"
-msgstr	"Multimedia-Anhänge anzeigen/speichern"
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Subject: zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:319
-#, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"sendet Fehlerbericht oder Kommentar via Mail an %s"
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  "Textmuster zum Filtern, wenn Subject: & From: nicht Ihren Wünschen entspricht."
 
 #: src/lang.c:320
-msgid	"choose range of articles to be affected by next command"
-msgstr	"Bereich der Artikel, die vom nächsten Kommando betroffen sind"
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  "Wähle worauf das Textmuster angewendet wird. <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:321
-msgid	"escape from command prompt"
-msgstr	"Verlassen der Kommandozeile"
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  "Gültigkeitsdauer in Tagen für den Filter. <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:322
-msgid	"edit filter file"
-msgstr	"Filter-Datei bearbeiten"
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Filterregel gilt für aktuelle/alle Gruppe(n). <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:323
-msgid	"get help"
-msgstr	"zeigt die Hilfe"
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Filterregel gilt für aktuelle/allen Gruppe(n).<SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:324
-msgid	"display last article viewed"
-msgstr	"zeigt den zuletzt angezeigten Artikel an"
+msgid   "kill an article via a menu"
+msgstr  "killt einen Artikel mittels eines Menüs"
 
 #: src/lang.c:325
-msgid	"down one line"
-msgstr	"eine Zeile runter"
+msgid   "auto-select (hot) an article via a menu"
+msgstr  "Filterregel (hochscoren) für Artikel via Menü erstellen"
 
 #: src/lang.c:326
-msgid	"up one line"
-msgstr	"eine Zeile hoch"
+msgid   "Browse URLs in article"
+msgstr  "URLs im Artikel mit Browser öffnen"
 
 #: src/lang.c:327
-msgid	"go to article chosen by Message-ID"
-msgstr	"Artikel mit dieser Message-ID anzeigen"
-
-#: src/lang.c:328
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	"Artikel/Thread/hervorgeh./markierten Artikel per Mail weiterleiten"
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  "0 - 9\t  zeigt Artikel nach Nummern sortiert im aktuellen Thread"
 
 #: src/lang.c:329
-msgid	"menu of configurable options"
-msgstr	"Menü der konfigurierbaren Optionen"
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  "cancelt (löscht) oder ersetzt den aktuellen Artikel"
 
 #: src/lang.c:330
-msgid	"down one page"
-msgstr	"eine Seite runter"
+msgid   "post followup to current article"
+msgstr  "aktuellen Artikel beantworten (followup)"
 
 #: src/lang.c:331
-msgid	"up one page"
-msgstr	"eine Seite hoch"
+msgid   "post followup (don't copy text) to current article"
+msgstr  "aktuellen Artikel beantworten, ohne Zitieren des Textes"
 
 #: src/lang.c:332
-msgid	"post (write) article to current group"
-msgstr	"poste (schreibe) Artikel in die aktuelle Gruppe"
+msgid   "post followup to current article quoting complete headers"
+msgstr  "aktuellen Artikel beantworten, mit Komplettzitat der Header"
 
 #: src/lang.c:333
-msgid	"post postponed articles"
-msgstr	"poste zurückgestellte Artikel"
-
-#: src/lang.c:334
-msgid	"list articles posted by you (from posted file)"
-msgstr	"listet Ihre geposteten Artikel auf (aus der 'posted' Datei)"
+msgid   "repost chosen article to another group"
+msgstr  "gewählten Artikel in eine andere Gruppe reposten"
 
 #: src/lang.c:335
-msgid	"return to previous menu"
-msgstr	"kehrt zum vorherigen Menü zurück"
+msgid   "edit article (mail-groups only)"
+msgstr  "editiere Artikel (nur bei Mail-Gruppen)"
 
 #: src/lang.c:336
-msgid	"quit tin immediately"
-msgstr	"beendet tin sofort"
+msgid   "display first article in current thread"
+msgstr  "ersten Artikel im aktuellen Thread anzeigen"
 
 #: src/lang.c:337
-msgid	"redraw page"
-msgstr	"Bildschirmdarstellung neu zeichnen"
+msgid   "display first page of article"
+msgstr  "zeigt erste Seite des Artikels an"
 
 #: src/lang.c:338
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	"speichert Artikel/Thread hervorgehoben/Muster/markierten Artikel"
+msgid   "display last article in current thread"
+msgstr  "letzten Artikel im aktuellen Thread anzeigen"
 
 #: src/lang.c:339
-msgid	"save marked articles automatically without user prompts"
-msgstr	"speichert markierte Artikel automatisch ohne Nachfrage"
+msgid   "display last page of article"
+msgstr  "letzte Seite des Artikels anzeigen"
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	"Bildschirm eine Zeile nach oben schieben"
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  "markiere Rest des Thread als gelesen, springe zu nächstem ungelesenen"
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	"Bildschirm eine Zeile nach unten schieben"
+msgid   "display next article"
+msgstr  "nächsten Artikel anzeigen"
 
 #: src/lang.c:342
-msgid	"search for articles by author backwards"
-msgstr	"sucht rückwärts nach Artikeln von Autor"
+msgid   "display first article in next thread"
+msgstr  "zeigt den ersten Artikel im nächsten Thread an"
 
 #: src/lang.c:343
-msgid	"search for articles by author forwards"
-msgstr	"sucht vorwärts nach Artikeln von Autor"
+msgid   "display next unread article"
+msgstr  "nächsten ungelesenen Artikel anzeigen"
 
 #: src/lang.c:344
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	"sucht in allen Artikel nach vorgegebener Zeichenkette (kann dauern)"
+msgid   "go to the article that this one followed up"
+msgstr  "(Bezugs)Artikel anzeigen, den der aktuelle Artikel beantwortet hat"
 
-# TODO: formating
 #: src/lang.c:345
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	" \t  (Suchen beachten Gross/Kleinschreibung nicht und laufen über den\n"
-	"          letzten Artikel hinaus zum ersten Artikel der Gruppe und von dort\n"
-	"          aus weiter.)"
+msgid   "display previous article"
+msgstr  "vorhergehenden Artikel anzeigen"
 
 #: src/lang.c:346
-msgid	"search for articles by Subject line backwards"
-msgstr	"durchsucht Artikel rückwärts nach Subject Zeile"
+msgid   "display previous unread article"
+msgstr  "vorhergehenden ungelesenen Artikel anzeigen"
 
 #: src/lang.c:347
-msgid	"search for articles by Subject line forwards"
-msgstr	"durchsucht Artikel vorwärts nach Subject Zeile"
+msgid   "quickly kill an article using defaults"
+msgstr  "killt einen Artikel schnell und benutzt dabei die Voreinstellungen"
 
 #: src/lang.c:348
-msgid	"repeat last search"
-msgstr	"letzte Suche wiederholen"
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  "markiert (hervorheben) Artikel und benutzt die Voreinstellungen"
 
 #: src/lang.c:349
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	"markiere Artikel für nochmaliges posten/pipen/drucken/abspeichern"
+msgid   "return to group selection level"
+msgstr  "kehrt zum Gruppenauswahlmenü zurück"
 
 #: src/lang.c:350
-msgid	"toggle info message in last line (subject/description)"
-msgstr	"Anzeige von Subject/Beschreibung in d. letzten Zeile (de)aktivieren"
+msgid   "reply through mail to author"
+msgstr  "Antwort per Mail an den Autor"
 
 #: src/lang.c:351
-msgid	"toggle inverse video"
-msgstr	"(de)aktiviert inverse Darstellung"
+msgid   "reply through mail (don't copy text) to author"
+msgstr  "Antwort per Mail an den Autor (ohne Zitieren des Textes)"
 
 #: src/lang.c:352
-msgid	"toggle mini help menu display"
-msgstr	"schaltet das Minihilfemenü ein/aus"
+msgid   "reply through mail to author quoting complete headers"
+msgstr  "Antwort per Mail an den Autor, wobei der komplette Header zitiert wird"
 
 #: src/lang.c:353
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	"Zeigt des Autors EMail Adresse, Realname, beides oder nichts von beidem an"
+msgid   "search backwards within this article"
+msgstr  "sucht rückwärts innerhalb des Artikels"
 
 #: src/lang.c:354
-msgid	"show version information"
-msgstr	"zeige Versionsinformationen"
+msgid   "search forwards within this article"
+msgstr  "sucht vorwärts innerhalb des Artikels"
 
 #: src/lang.c:355
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	"markiert alle Artikel als gelesen und kehrt zum Gruppenmenü zurück"
+msgid   "show article in raw-mode (including all headers)"
+msgstr  "Artikel im Rohformat (inklusive aller Header) anzeigen"
 
 #: src/lang.c:356
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	"markiere Artikel gelesen; öffne nä. Gruppe mit ungelesenen Artikeln"
+msgid   "skip next block of included text"
+msgstr  "überspringt den nächsten Zitatblock"
 
 #: src/lang.c:357
-msgid	"choose first thread in list"
-msgstr	"Wähle ersten Thread in der Liste"
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  "schalte Anzeige von durch Form-Feed (^L) versteckten Teilen ein/aus"
 
 #: src/lang.c:358
-msgid	"choose last thread in list"
-msgstr	"Wähle letzten Thread in der Liste"
+msgid   "toggle display of all headers"
+msgstr  ""
 
 #: src/lang.c:359
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	"listet Artikel im aktuellen Thread (öffnet das Thread Untermenü)"
+msgid   "toggle word highlighting on/off"
+msgstr  "schaltet das Wort-Hervorheben ein/aus"
 
 #: src/lang.c:360
-msgid	"mark article as unread"
-msgstr	"markiert Artikel als ungelesen"
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  "(de)aktiviert ROT-13 Dekodierung für den aktuellen Artikel"
 
 #: src/lang.c:361
-msgid	"mark current thread or tagged threads as read"
-msgstr	"markiert den aktuellen Thread oder markierte Artikel als gelesen"
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  "wechsle Tabulatorweite 4 <-> 8"
 
 #: src/lang.c:362
-msgid	"mark thread as unread"
-msgstr	"markiert den aktuellen Thread als ungelesen"
+msgid   "toggle german TeX style decoding for current article"
+msgstr  "(de)aktiviere deutsche TeX-style Dekodierung für aktuellen Artikel"
 
 #: src/lang.c:363
-msgid	"toggle display of all/selected articles"
-msgstr	"wechselt zwischen der Anzeige aller/markierter (hot) Artikel"
+msgid   "toggle display of uuencoded sections"
+msgstr  "Anzeige von UU-kodierten Teilen umschalten"
 
 #: src/lang.c:364
-msgid	"display next group"
-msgstr	"zeige nächste Gruppe"
+msgid   "View/pipe/save multimedia attachments"
+msgstr  "Multimedia-Anhänge anzeigen/pipen/speichern"
 
 #: src/lang.c:365
-msgid	"display previous group"
-msgstr	"zeige vorhergehende Gruppe"
+msgid   "choose first attachment in list"
+msgstr  "wähle ersten Anhang in der Liste"
 
 #: src/lang.c:366
-msgid	"toggle all selections (all articles)"
-msgstr	"Markierung 'hot'/wichtig für alle Artikel umschalten"
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  Wähle Anhang anhand der Nummer"
 
 #: src/lang.c:367
-msgid	"select group (make \"hot\")"
-msgstr	"Markierung 'hot'/wichtig für Gruppe setzen"
-
-#: src/lang.c:368
-msgid	"select thread"
-msgstr	"Markierung 'hot'/wichtig für Thread setzen"
+msgid   "choose last attachment in list"
+msgstr  "wähle letzten Anhang in der Liste"
 
-# TODO: formating
 #: src/lang.c:369
-msgid	"select threads if at least one unread article is selected"
-msgstr	"Markierung 'hot'/wichtig für alle Threads setzen, die schon einen\n"
-	"          ungelesenen Artikel mit Markierung 'hot'/wichtig enthalten."
+msgid   "pipe attachment into command"
+msgstr  ""
 
-# TODO: formating
 #: src/lang.c:370
-msgid	"select threads that match user specified pattern"
-msgstr	"Markierung 'hot'/wichtig für alle Threads setzen, die einem\n"
-	"          gewählten Muster entsprechen"
-
-#: src/lang.c:371
-msgid	"tag all parts of current multipart-message in order"
-msgstr	"markiert alle Teile der multipart-Nachrichten in der Reihenfolge"
+msgid   "pipe raw attachment into command"
+msgstr  ""
 
 #: src/lang.c:372
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 - 9\t  wählt Thread anhand der Nummer"
+msgid   "save attachment to disk"
+msgstr  "Anhang speichern"
 
 #: src/lang.c:373
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	"Anzahl der zu holenden oder wieder zu ladenden Artikel ändern"
+msgid   "search for attachments forwards"
+msgstr  ""
 
 #: src/lang.c:374
-msgid	"toggle display of all/unread articles"
-msgstr	"wechselt zwischen der Anzeige aller/ungelesener Artikel"
+msgid   "search for attachments backwards"
+msgstr  ""
 
 #: src/lang.c:375
-msgid	"toggle selection of thread"
-msgstr	"Markierung 'hot'/wichtig für Thread setzen/entfernen"
+msgid   "view attachment"
+msgstr  "Anhang ansehen"
 
 #: src/lang.c:376
-msgid	"cycle through threading options available"
-msgstr	"wechsle durch die verschiedenen Threading-Optionen"
+msgid   "tag attachment"
+msgstr  "Anhang markieren"
 
+# TODO: formating
 #: src/lang.c:377
-msgid	"undo all selections (all articles)"
-msgstr	"Markierung 'hot'/wichtig für alle Artikel entfernen"
+msgid   "tag attachments that match user specified pattern"
+msgstr  ""
 
 #: src/lang.c:378
-msgid	"untag all tagged threads"
-msgstr	"hebt die Markierung der markierten Artikel auf"
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
 
 #: src/lang.c:379
-msgid	"mark all articles in group as read"
-msgstr	"markiert alle Artikel der Gruppe als gelesen"
+msgid   "untag all tagged attachments"
+msgstr  "hebt die Markierung der markierten Anhänge auf"
 
 #: src/lang.c:380
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	"markiert Gruppe als gelesen, springt zur nächsten mit ungel. Artikeln"
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  ""
 
 #: src/lang.c:381
-msgid	"choose first group in list"
-msgstr	"Wähle erste Gruppe in der Liste"
+msgid   "choose first attribute in list"
+msgstr  "wähle erstes Attribut in der Liste"
 
 #: src/lang.c:382
-msgid	"choose group by name"
-msgstr	"Gruppe anhand des Namens auswählen"
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  Wähle Attribut anhand der Nummer"
 
 #: src/lang.c:383
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 - 9\t  wählt die Gruppe anhand der Nummer"
+msgid   "choose last attribute in list"
+msgstr  "wähle letztes Attribut in der Liste"
 
 #: src/lang.c:384
-msgid	"choose range of groups to be affected by next command"
-msgstr	"Bereich der Gruppen, die vom nächsten Kommando betroffen sind"
+msgid   "reset attribute to a default value"
+msgstr  ""
 
 #: src/lang.c:385
-msgid	"choose last group in list"
-msgstr	"Wähle letzte Gruppe in der Liste"
+msgid   "search forwards for an attribute"
+msgstr  "suche vorwärts nach einem Attribut"
 
 #: src/lang.c:386
-msgid	"mark all articles in chosen group unread"
-msgstr	"markiert alle Artikel in der gewählten Gruppe als ungelesen"
+msgid   "search backwards for an attribute"
+msgstr  "sucht rückwärts nach einem Attribut"
 
 #: src/lang.c:387
-msgid	"move chosen group within list"
-msgstr	"bewegt die gewählte Gruppe innerhalb der Liste"
+msgid   "select attribute"
+msgstr  ""
 
 #: src/lang.c:388
-msgid	"choose next group with unread news"
-msgstr	"wählt die nächste Gruppe mit ungelesenen Artikeln"
+msgid   "toggle back to options menu when invoked from there"
+msgstr  ""
 
-#: src/lang.c:389 src/lang.c:1197
-msgid	"quit"
-msgstr	"Beenden"
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  "sendet Fehlerbericht oder Kommentar via Mail an %s"
 
 #: src/lang.c:390
-msgid	"quit without saving configuration changes"
-msgstr	"beenden ohne die Konfigurationsänderungen zu sichern"
+msgid   "choose first option in list"
+msgstr  "Wähle erste Option in der Liste"
 
 #: src/lang.c:391
-msgid	"read chosen group"
-msgstr	"liest ausgewählte Gruppe"
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  wählt die Option anhand der Nummer"
 
 #: src/lang.c:392
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	"setzt die .newsrc zurück (alle Artikel als gelesen markiert)"
+msgid   "choose last option in list"
+msgstr  "Wähle letzte Option in der Liste"
 
 #: src/lang.c:393
-msgid	"search backwards for a group name"
-msgstr	"sucht rückwärts nach einem Gruppennamen"
+msgid   "start scopes menu"
+msgstr  ""
 
 #: src/lang.c:394
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	" \t  (alle Suchen sind case-insensitive und beginnen am Ende von vorn)"
+msgid   "search forwards for an option"
+msgstr  "suche vorwärts nach einer Option"
 
 #: src/lang.c:395
-msgid	"search forwards for a group name"
-msgstr	"suche vorwärts nach einer Gruppe"
+msgid   "search backwards for an option"
+msgstr  "sucht rückwärts nach einer Option"
 
 #: src/lang.c:396
-msgid	"subscribe to chosen group"
-msgstr	"abonniert ausgewählte Gruppe"
+msgid   "select option"
+msgstr  "Option auswählen"
 
 #: src/lang.c:397
-msgid	"subscribe to groups that match pattern"
-msgstr	"abonniere Gruppen, die auf das Muster passen"
+msgid   "toggle to attributes menu"
+msgstr  ""
 
 #: src/lang.c:398
-msgid	"reread active file to check for any new news"
-msgstr	"lies die Datei 'active' neu ein, um nach neuen Artikeln zu suchen"
+msgid   "choose range of articles to be affected by next command"
+msgstr  "Bereich der Artikel, die vom nächsten Kommando betroffen sind"
 
 #: src/lang.c:399
-msgid	"toggle display of group name only or group name plus description"
-msgstr	"Anzeige der Kurzbeschreibung der Gruppe (de)aktivieren."
+msgid   "escape from command prompt"
+msgstr  "Verlassen der Kommandozeile"
 
 #: src/lang.c:400
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	"wechselt die Anzeige zwischen allen/ungelesenen abonnierten Gruppen"
+msgid   "edit filter file"
+msgstr  "Filter-Datei bearbeiten"
 
 #: src/lang.c:401
-msgid	"unsubscribe from chosen group"
-msgstr	"bestellt ausgewählte Gruppe ab"
+msgid   "get help"
+msgstr  "zeigt die Hilfe"
 
 #: src/lang.c:402
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"bestelle Gruppen ab, die auf das Muster passen"
+msgid   "display last article viewed"
+msgstr  "zeigt den zuletzt angezeigten Artikel an"
 
 #: src/lang.c:403
-msgid	"sort the list of groups"
-msgstr	"Liste der Gruppen sortieren"
+msgid   "down one line"
+msgstr  "eine Zeile runter"
 
 #: src/lang.c:404
-msgid	"toggle display to show all/subscribed groups"
-msgstr	"schaltet um zwischen der Anzeige aller/abonnierten Gruppen"
+msgid   "up one line"
+msgstr  "eine Zeile hoch"
 
 #: src/lang.c:405
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 - 9\t  Wähle Artikel anhand der Nummer"
+msgid   "go to article chosen by Message-ID"
+msgstr  "Artikel mit dieser Message-ID anzeigen"
 
 #: src/lang.c:406
-msgid	"mark thread as read and return to group index page"
-msgstr	"markiert den Thread als gelesen und kehrt zum Gruppenindex zurück"
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  "Artikel/Thread/hervorgeh./markierten Artikel per Mail weiterleiten"
 
 #: src/lang.c:407
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	"markiert Thread als gelesen; nächster ungelesener Thread/Gruppe"
+msgid   "menu of configurable options"
+msgstr  "Menü der konfigurierbaren Optionen"
 
 #: src/lang.c:408
-msgid	"choose first article in list"
-msgstr	"wähle ersten Artikel in der Liste"
+msgid   "down one page"
+msgstr  "eine Seite runter"
 
 #: src/lang.c:409
-msgid	"choose last article in list"
-msgstr	"wähle letzten Artikel in der Liste"
-
-#: src/lang.c:410
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	"markiert Artikel als gelesen geht zum nächsten ungelesenen Artikel"
+msgid   "up one page"
+msgstr  "eine Seite hoch"
 
 #: src/lang.c:411
-msgid	"read chosen article"
-msgstr	"zeige gewählten Artikel"
+msgid   "post (write) article to current group"
+msgstr  "poste (schreibe) Artikel in die aktuelle Gruppe"
 
 #: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	"Darstellungsoptionen\n"
-	"--------------------"
-
-#: src/lang.c:413
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	"Verschiedenes\n"
-	"-------------"
+msgid   "post postponed articles"
+msgstr  "poste zurückgestellte Artikel"
 
 #: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	"Position ändern\n"
-	"---------------"
+msgid   "list articles posted by you (from posted file)"
+msgstr  "listet Ihre geposteten Artikel auf (aus der 'posted' Datei)"
 
 #: src/lang.c:415
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"Gruppe/Thread/Artikel Kommandos\n"
-	"-------------------------------"
+msgid   "return to previous menu"
+msgstr  "kehrt zum vorherigen Menü zurück"
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  "beendet tin sofort"
 
 #: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	"Gruppenlevel Befehle"
+msgid   "redraw page"
+msgstr  "Bildschirmdarstellung neu zeichnen"
 
 #: src/lang.c:418
-msgid	"Kill filter added"
-msgstr	"Killfilter hinzugefügt"
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  "speichert Artikel/Thread hervorgehoben/Muster/markierten Artikel"
 
 #: src/lang.c:419
-msgid	"Auto-selection filter added"
-msgstr	"Automatischer Auswahlfilter hinzugefügt"
+msgid   "save marked articles automatically without user prompts"
+msgstr  "speichert markierte Artikel automatisch ohne Nachfrage"
 
 #: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	"Alle Teile markiert"
+msgid   "scroll the screen one line down"
+msgstr  "Bildschirm eine Zeile nach oben schieben"
 
 #: src/lang.c:421
-msgid	"Storing article for later posting"
-msgstr	"Speichert Artikel, um ihn später zu posten"
+msgid   "scroll the screen one line up"
+msgstr  "Bildschirm eine Zeile nach unten schieben"
 
 #: src/lang.c:422
-msgid	"Please enter a valid character"
-msgstr	"Bitte ein gültiges Zeichen eingeben"
+msgid   "search for articles by author backwards"
+msgstr  "sucht rückwärts nach Artikeln von Autor"
 
 #: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	"Teil Nummer %d fehlt."
+msgid   "search for articles by author forwards"
+msgstr  "sucht vorwärts nach Artikeln von Autor"
 
 #: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	"*** Keine zurückgelegten Artikel ***"
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  "sucht in allen Artikel nach vorgegebener Zeichenkette (kann dauern)"
 
+# TODO: formating
 #: src/lang.c:425
-msgid	"Not a multi-part message"
-msgstr	"Kein mehrteiliger Artikel"
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  " \t  (Suchen beachten Groß/Kleinschreibung nicht und laufen über den\n"
+        "          letzten Artikel hinaus zum ersten Artikel der Gruppe und von dort\n"
+        "          aus weiter.)"
 
 #: src/lang.c:426
-msgid	"You are not subscribed to this group"
-msgstr	"Sie haben diese Gruppe nicht abonniert"
+msgid   "search for articles by Subject line backwards"
+msgstr  "durchsucht Artikel rückwärts nach Subject Zeile"
 
 #: src/lang.c:427
-msgid	"No previous expression"
-msgstr	"Kein vorhergehender Ausdruck"
+msgid   "search for articles by Subject line forwards"
+msgstr  "durchsucht Artikel vorwärts nach Subject Zeile"
 
 #: src/lang.c:428
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	"Ausführung nicht möglich im nicht-überschreiben Modus"
+msgid   "repeat last search"
+msgstr  "letzte Suche wiederholen"
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  "markiere Artikel für nochmaliges posten/pipen/drucken/abspeichern"
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	"%d zurückgelegte %s, hervorholen mit ^O...\n"
+msgid   "toggle info message in last line (subject/description)"
+msgstr  "Anzeige von Subject/Beschreibung in d. letzten Zeile (de)aktivieren"
 
 #: src/lang.c:431
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	"X-Conversion-Note: multipart/alternative Inhalt wurde entfernt.\n"
-	"  Um das zu ändern, setzen Sie in der tinrc das alternative_handling auf OFF\n"
+msgid   "toggle inverse video"
+msgstr  "(de)aktiviert inverse Darstellung"
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  "schaltet das Minihilfemenü ein/aus"
 
 #: src/lang.c:433
-#, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	"Dateiname für %s/%s ist eine Mailbox. Anhang nicht gespeichert"
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  "Zeigt des Autors EMail Adresse, Realname, beides oder nichts\n"
+        "          von beidem an"
 
 #: src/lang.c:434
-msgid	"TeX2Iso encoded article"
-msgstr	"TeX2Iso kodierter Artikel"
+msgid   "show version information"
+msgstr  "zeige Versionsinformationen"
 
 #: src/lang.c:435
-msgid	"incomplete "
-msgstr	"unvollständige "
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  "markiert alle Artikel als gelesen und kehrt zum Gruppenmenü zurück"
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  "markiere Artikel gelesen; öffne nä. Gruppe mit ungelesenen Artikeln"
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	"\n"
-	"Willkommen bei %s, dem vollbildfähigen Newsreader mit Threaddarstellung.\n"
-	"Er kann News lokal (z.B. <spool>/news), oder von entfernten Rechnern\n"
-	"(-r Option) von einem NNTP Server lesen. -h zeigt alle "
-	"Kommandozeilenoptionen.\n"
-	"\n"
-	"%s hat 4 verschiedene Level um News zu lesen: die Newsgruppenauswahl, den\n"
-	"Gruppenindex, den Threadlevel und den Artikelbetrachter. Eine Hilfe gibt es\n"
-	"zu jedem Level indem man einfach 'h' drückt.\n"
-	"\n"
-	"Zum rauf- und runterbewegen benutzt man die Cursortasten oder 'j' und 'k'.\n"
-	"'Bildrauf/Bildrunter', STRG-U und STRG-D um eine Seite hoch oder runter zu\n"
-	"scrollen. Eine Newsgruppe betritt man mittels RETURN oder TAB.\n"
-	"\n"
-	"Artikel, Threads, markierte Artikel oder Artikel, die einem Suchmuster\n"
-	"entsprechen, können gemailt ('m'), gedruckt ('o'), gespeichert ('s') oder\n"
-	"gepipet ('|') werden. Benutzen Sie 'w', um einen neuen Artikel zu schreiben,\n"
-	"'f'/'F', um auf einen Artikel zu antworten und 'r'/'R', um den Autor via\n"
-	"Mail zu antworten. Mit 'M' können Sie %s mittels eines Menüs konfigurieren.\n"
-	"\n"
-	"Für mehr Informationen lesen Sie die Manpage, das README, INSTALL, TODO etc.\n"
-	"Bitte senden Sie Fehlerberichte und Kommentare mittels des 'R' Kommandos an\n"
-	"%s.\n"
+msgid   "choose first thread in list"
+msgstr  "Wähle ersten Thread in der Liste"
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  "Wähle letzten Thread in der Liste"
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  "listet Artikel im aktuellen Thread (öffnet das Thread Untermenü)"
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  "markiert Artikel als ungelesen"
+
+#: src/lang.c:441
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  "markiert den aktuellen Thread, Bereich oder markierte Artikel als gelesen"
+
+#: src/lang.c:442
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  "markiert den aktuellen Thread, Bereich oder markierte Artikel als ungelesen"
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  ""
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  ""
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  "wechselt zwischen der Anzeige aller/markierter (hot) Artikel"
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  "zeige nächste Gruppe"
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  "zeige vorhergehende Gruppe"
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  "Markierung 'hot'/wichtig für alle Artikel umschalten"
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  "Markierung 'hot'/wichtig für Gruppe setzen"
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  "Markierung 'hot'/wichtig für Thread setzen"
+
+# TODO: formating
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  "Markierung 'hot'/wichtig für alle Threads setzen, die schon einen\n"
+        "          ungelesenen Artikel mit Markierung 'hot'/wichtig enthalten."
+
+# TODO: formating
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  "Markierung 'hot'/wichtig für alle Threads setzen, die einem\n"
+        "          gewählten Muster entsprechen"
 
 #: src/lang.c:453
-#, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	"Ungültige From: %s Zeile. Lesen Sie  INSTALL nochmal."
+msgid   "tag all parts of current multipart-message in order"
+msgstr  "markiert alle Teile der multipart-Nachrichten in der Reihenfolge"
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  wählt Thread anhand der Nummer"
 
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	"Ungültige Mehrbytezeichen-Folge vorhanden\n"
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  "Anzahl der zu holenden oder wieder zu ladenden Artikel ändern"
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  "wechselt zwischen der Anzeige aller/ungelesener Artikel"
 
 #: src/lang.c:457
-#, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	"Ungültiger Sender:-Header %s"
+msgid   "toggle selection of thread"
+msgstr  "Markierung 'hot'/wichtig für Thread setzen/entfernen"
 
 #: src/lang.c:458
-msgid	"Inverse video disabled"
-msgstr	"Inverse Bilddarstellung abgestellt"
+msgid   "cycle through threading options available"
+msgstr  "wechsle durch die verschiedenen Threading-Optionen"
 
 #: src/lang.c:459
-msgid	"Inverse video enabled"
-msgstr	"Inverse Bilddarstellung eingeschaltet"
+msgid   "undo all selections (all articles)"
+msgstr  "Markierung 'hot'/wichtig für alle Artikel entfernen"
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  "hebt die Markierung der markierten Artikel auf"
 
 #: src/lang.c:461
-#, c-format
-msgid	"Missing definition for %s\n"
-msgstr	"Fehlende Definition für %s\n"
+msgid   "add new scope"
+msgstr  ""
 
 #: src/lang.c:462
-#, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	"Ungültige Tastenbelegung '%s'\n"
+msgid   "delete scope"
+msgstr  ""
 
 #: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	"Ungültiger Tastenname '%s'\n"
+msgid   "edit attributes file"
+msgstr  ""
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	"Keymap-File wurde auf Version %s umgestellt\n"
+msgid   "choose first scope in list"
+msgstr  ""
 
 #: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	"Filter From:   [%s] (j/n): "
+msgid   "0 - 9\t  choose scope by number"
+msgstr  ""
 
 #: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	"Filter Z.:  (</>num): "
+msgid   "choose last scope in list"
+msgstr  ""
 
 #: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	"Filter Menü (Kill, Bewertung/Score verringern)"
+msgid   "move scope"
+msgstr  ""
 
 #: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	"Filter Msg-Id: [%s] (v/l/n/n): "
+msgid   "rename scope"
+msgstr  ""
 
 #: src/lang.c:469
-msgid	"Kill pattern scope  : "
-msgstr	"Filter nach Muster  : "
+msgid   "select scope"
+msgstr  ""
 
 #: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	"Filter Subject:[%s] (j/n): "
+msgid   "mark all articles in group as read"
+msgstr  "markiert alle Artikel der Gruppe als gelesen"
 
 #: src/lang.c:471
-msgid	"Kill text pattern   : "
-msgstr	"Filter Textmuster   : "
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  "markiert Gruppe als gelesen, springt zur nächsten mit ungel. Artikeln"
 
 #: src/lang.c:472
-msgid	"Kill time in days   : "
-msgstr	"Filterzeit in Tagen : "
+msgid   "choose first group in list"
+msgstr  "Wähle erste Gruppe in der Liste"
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  "Gruppe anhand des Namens auswählen"
 
 #: src/lang.c:474
-msgid	"Last"
-msgstr	"Letzte"
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  wählt die Gruppe anhand der Nummer"
 
 #: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	"-- Letzte Antwort --"
+msgid   "choose range of groups to be affected by next command"
+msgstr  "Bereich der Gruppen, die vom nächsten Kommando betroffen sind"
 
 #: src/lang.c:476
-#, c-format
-msgid	"Lines %s  "
-msgstr	"Zeilen %s "
+msgid   "choose last group in list"
+msgstr  "Wähle letzte Gruppe in der Liste"
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  "markiert alle Artikel in der gewählten Gruppe als ungelesen"
 
 #: src/lang.c:478
-msgid	"Message-ID: line              "
-msgstr	"Message-ID: Zeile             "
+msgid   "move chosen group within list"
+msgstr  "bewegt die gewählte Gruppe innerhalb der Liste"
 
 #: src/lang.c:479
-msgid	"Mail"
-msgstr	"Maile"
+msgid   "choose next group with unread news"
+msgstr  "wählt die nächste Gruppe mit ungelesenen Artikeln"
 
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	"Mailbox "
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  "Beenden"
 
 #: src/lang.c:481
-#, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"Mailt Artikel an [%.*s]> "
+msgid   "quit without saving configuration changes"
+msgstr  "beenden ohne die Konfigurationsänderungen zu sichern"
 
 #: src/lang.c:482
-#, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"Maile Log-Datei an %s\n"
+msgid   "read chosen group"
+msgstr  "liest ausgewählte Gruppe"
 
 #: src/lang.c:483
-msgid	"Mail bug report..."
-msgstr	"Maile einen Fehlerbericht..."
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  "setzt die .newsrc zurück (alle Artikel als gelesen markiert)"
 
 #: src/lang.c:484
-#, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"Fehlerbericht an %s senden?"
+msgid   "search backwards for a group name"
+msgstr  "sucht rückwärts nach einem Gruppennamen"
 
 #: src/lang.c:485
-msgid	"Mailed"
-msgstr	"Gemailt"
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  " \t  (alle Suchen sind case-insensitive und beginnen am Ende von vorn)"
 
 #: src/lang.c:486
-#, c-format
-msgid	"Mailing to %s..."
-msgstr	"Senden der Mail an %s..."
+msgid   "search forwards for a group name"
+msgstr  "suche vorwärts nach einer Gruppe"
 
 #: src/lang.c:487
-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	"# [Mail/Speicher] active-Datei. Format ist wie die news active-Datei:\n"
-	"#   Gruppenname max.Artnum min.Artnum /dir\n"
-	"# Das 4. Feld ist das Basisverzeichnis (z.B. ~/Mail oder ~/News)\n"
-	"#\n"
+msgid   "subscribe to chosen group"
+msgstr  "abonniert ausgewählte Gruppe"
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  "abonniere Gruppen, die auf das Muster passen"
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  "lies die Datei 'active' neu ein, um nach neuen Artikeln zu suchen"
 
 #: src/lang.c:490
-#, c-format
-msgid	"%s marked as unread"
-msgstr	"%s als ungelesen markiert"
+msgid   "toggle display of group name only or group name plus description"
+msgstr  "Anzeige der Kurzbeschreibung der Gruppe (de)aktivieren."
 
 #: src/lang.c:491
-#, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	"%d von %d %s als gelesen markiert"
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  "wechselt die Anzeige zwischen allen/ungelesenen abonnierten Gruppen"
 
 #: src/lang.c:492
-#, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"Alle Artikel als gelesen markieren%s?"
+msgid   "unsubscribe from chosen group"
+msgstr  "bestellt ausgewählte Gruppe ab"
 
 #: src/lang.c:493
-#, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	"%s=markierte oder %s=aktuellen Artikel auf gelesen setzen. %s=Abbrechen: "
+msgid   "unsubscribe from groups that match pattern"
+msgstr  "bestelle Gruppen ab, die auf das Muster passen"
 
 #: src/lang.c:494
-#, c-format
-msgid	"Mark group %s as read?"
-msgstr	"Die Gruppe %s als gelesen markieren?"
+msgid   "sort the list of groups"
+msgstr  "Liste der Gruppen sortieren"
 
 #: src/lang.c:495
-#, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"Den Thread als gelesen markieren%s?"
+msgid   "toggle display to show all/subscribed groups"
+msgstr  "schaltet um zwischen der Anzeige aller/abonnierten Gruppen"
 
 #: src/lang.c:496
-#, 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: "
+msgid   "0 - 9\t  choose article by number"
+msgstr  "0 - 9\t  Wähle Artikel anhand der Nummer"
 
 #: src/lang.c:497
-#, c-format
-msgid	"Matching %s groups..."
-msgstr	"Übereinstimmende %s Gruppen..."
+msgid   "mark thread as read and return to group index page"
+msgstr  "markiert den Thread als gelesen und kehrt zum Gruppenindex zurück"
 
-#: src/lang.c:498 src/lang.c:502
-#, 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:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  "markiert Thread als gelesen; nächster ungelesener Thread/Gruppe"
 
 #: src/lang.c:499
-#, 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."
+msgid   "choose first article in list"
+msgstr  "wähle ersten Artikel in der Liste"
 
 #: src/lang.c:500
-#, 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"
+msgid   "choose last article in list"
+msgstr  "wähle letzten Artikel in der Liste"
 
 #: src/lang.c:501
-#, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	"%s=Suche vorwärts; %s=Suche rückwärts; %s=Beenden"
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  ""
+
+#: src/lang.c:502
+msgid   "mark article, range or tagged articles as unread"
+msgstr  ""
 
 #: src/lang.c:503
-#, 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"
+msgid   "mark current thread as unread"
+msgstr  "markiert den aktuellen Thread als ungelesen"
 
 #: src/lang.c:504
-#, 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"
+msgid   "read chosen article"
+msgstr  "zeige gewählten Artikel"
 
 #: src/lang.c:505
-#, 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."
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "Darstellungsoptionen\n"
+        "--------------------"
 
 #: src/lang.c:506
-#, 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."
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "Verschiedenes\n"
+        "-------------"
 
 #: src/lang.c:507
-#, 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"
+msgid   "Moving around\n"
+        "-------------"
+msgstr  "Position ändern\n"
+        "---------------"
 
 #: src/lang.c:508
-#, 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"
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  "Gruppe/Thread/Artikel Kommandos\n"
+        "-------------------------------"
 
 #: src/lang.c:509
-msgid	"--More--"
-msgstr	"--Mehr--"
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  ""
 
 #: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	"Verschiebe %s..."
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  ""
+
+#: src/lang.c:511
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  ""
 
 #: src/lang.c:512
-msgid	", name: "
-msgstr	", Name: "
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  ""
 
 #: src/lang.c:513
-#, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	"Gehe zu Gruppe [%s]> "
+msgid   "URL operations\n"
+        "--------------"
+msgstr  ""
 
 #: src/lang.c:514
-msgid	"newsgroups"
-msgstr	"Gruppen"
+msgid   "choose first URL in list"
+msgstr  "Wähle erste URL in der Liste"
 
 #: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	"Position %s in der Gruppenliste (1,2,..,$) [%d]> "
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  wählt die URL anhand der Nummer"
 
 #: src/lang.c:516
-msgid	"newsgroup"
-msgstr	"Gruppe"
+msgid   "choose last URL in list"
+msgstr  "Wähle letzte URL in der Liste"
 
 #: src/lang.c:517
-msgid	"Try and save newsrc file again?"
-msgstr	"Erneut versuchen, die newsrc-Datei zu schreiben?"
+msgid   "search for URLs forwards"
+msgstr  "Suche vorwärts nach URLs"
 
 #: src/lang.c:518
-msgid	"Warning: No newsgroups were written to your newsrc file. Save aborted."
-msgstr	"Warnung: Keine Newsgruppen in die newsrc geschrieben. Speicherabbruch."
+msgid   "search for URLs backwards"
+msgstr  "Suche rückwärts nach URLs"
 
 #: src/lang.c:519
-msgid	"newsrc file saved successfully.\n"
-msgstr	"newsrc-Datei erfolgreich geschrieben.\n"
+msgid   "Open URL in browser"
+msgstr  ""
 
 #: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	"-- Nächste Antwort --"
-
-#: src/lang.c:521
-#, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"NNTP Anmeldepasswort für %s nicht gefunden"
+msgid   "toggle info message in last line (URL)"
+msgstr  ""
 
 #: src/lang.c:522
-msgid	"No  "
-msgstr	"Nein"
+msgid   "Group Level Commands"
+msgstr  "Gruppenlevel Befehle"
 
 #: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	"*** Keine Artikel ***"
+msgid   "Kill filter added"
+msgstr  "Killfilter hinzugefügt"
 
 #: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	"Es wurden keine Artikel gepostet"
+msgid   "Auto-selection filter added"
+msgstr  "Automatischer Auswahlfilter hinzugefügt"
 
 #: src/lang.c:525
-msgid	"*** No description ***"
-msgstr	"*** Keine Kurzbeschreibung ***"
+msgid   "All parts tagged"
+msgstr  "Alle Teile markiert"
 
 #: src/lang.c:526
-msgid	"No filename"
-msgstr	"Kein Dateiname"
+msgid   "Storing article for later posting"
+msgstr  "Speichert Artikel, um ihn später zu posten"
 
 #: src/lang.c:527
-msgid	"No group"
-msgstr	"Keine Gruppe"
+msgid   "Please enter a valid character"
+msgstr  "Bitte ein gültiges Zeichen eingeben"
 
 #: src/lang.c:528
-msgid	"*** No groups ***"
-msgstr	"*** Keine Newsgruppen ***"
+#, c-format
+msgid   "Missing part #%d"
+msgstr  "Teil Nummer %d fehlt."
 
 #: src/lang.c:529
-msgid	"No more groups to read"
-msgstr	"Keine Gruppen zum Lesen übrig"
+msgid   "*** No postponed articles ***"
+msgstr  "*** Keine zurückgelegten Artikel ***"
 
 #: src/lang.c:530
-msgid	"No last message"
-msgstr	"Keine letzte Nachricht"
+msgid   "Not a multi-part message"
+msgstr  "Kein mehrteiliger Artikel"
 
 #: src/lang.c:531
-msgid	"No mail address"
-msgstr	"Keine EMail-Adresse"
+msgid   "You are not subscribed to this group"
+msgstr  "Sie haben diese Gruppe nicht abonniert"
 
 #: src/lang.c:532
-msgid	"No articles marked for saving"
-msgstr	"Keine Artikel zum Speichern markiert"
+msgid   "No previous expression"
+msgstr  "Kein vorhergehender Ausdruck"
 
 #: src/lang.c:533
-msgid	"No match"
-msgstr	"Kein Treffer"
-
-#: src/lang.c:534
-msgid	"No more groups"
-msgstr	"Keine Gruppen mehr"
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  "Ausführung nicht möglich im nicht-überschreiben Modus"
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-msgid	"No newsgroups"
-msgstr	"Keine Newsgruppen"
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  "%d zurückgelegte %s, hervorholen mit ^O...\n"
 
 #: src/lang.c:536
-msgid	"No next unread article"
-msgstr	"Kein nächster ungelesener Artikel"
-
-#: src/lang.c:537
-msgid	"No previous group"
-msgstr	"Keine vorherige Gruppe"
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  "X-Conversion-Note: multipart/alternative Inhalt wurde entfernt.\n"
+        "  Um das zu ändern, setzen Sie in der tinrc das alternative_handling auf OFF\n"
 
 #: src/lang.c:538
-msgid	"No previous unread article"
-msgstr	"Kein vorheriger ungelesener Artikel"
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  "Dateiname für %s/%s ist eine Mailbox. Anhang nicht gespeichert"
 
 #: src/lang.c:539
-msgid	"No responses"
-msgstr	"Keine Antworten"
+msgid   "TeX2Iso encoded article"
+msgstr  "TeX2Iso kodierter Artikel"
 
 #: src/lang.c:540
-msgid	"No responses to list in current thread"
-msgstr	"Keine Antworten vorhanden im aktuellen Thread"
-
-#: src/lang.c:541
-msgid	"No search string"
-msgstr	"Kein Suchmuster"
+msgid   "incomplete "
+msgstr  "unvollständige "
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-msgid	"No subject"
-msgstr	"Kein Subject"
-
-#: src/lang.c:544
 #, 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
-#, 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
-#, 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
-#, 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
-#, 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
-#, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	"Kein Programm für %s/%s gefunden\n"
-
-#: src/lang.c:551
-msgid	"Newsgroup does not exist on this server"
-msgstr	"Newsgruppe existiert nicht auf diesem Server"
-
-#: src/lang.c:552
-#, c-format
-msgid	"Group %s not found in active file"
-msgstr	"Gruppe %s nicht in der Active-Datei gefunden"
-
-#: src/lang.c:553
-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
-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
-#, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	"# NNTP-Server -> newsrc Übersetzungstabelle und NNTP-Server\n"
-	"# Abkürzungen für %s %s\n"
-	"#\n"
-	"# Das Format für diese Datei ist\n"
-	"# <FQDN des NNTP-Servers> <newsrc Datei> <Kurzname> ...\n"
-	"#\n"
-	"# Wird <newsrc Datei> ohne Pfad angegeben, so wird $HOME als Ort angenommen\n"
-	"#\n"
-	"# Beispiele:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	"Nur"
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  "\n"
+        "Willkommen bei %s, dem vollbildfähigen Newsreader mit Threaddarstellung.\n"
+        "Er kann News lokal (z.B. <spool>/news), oder von entfernten Rechnern\n"
+        "(-r Option) von einem NNTP Server lesen. -h zeigt alle "
+        "Kommandozeilenoptionen.\n"
+        "\n"
+        "%s hat 4 verschiedene Level um News zu lesen: die Newsgruppenauswahl, den\n"
+        "Gruppenindex, den Threadlevel und den Artikelbetrachter. Eine Hilfe gibt es\n"
+        "zu jedem Level indem man einfach 'h' drückt.\n"
+        "\n"
+        "Zum rauf- und runterbewegen benutzt man die Cursortasten oder 'j' und 'k'.\n"
+        "'Bildrauf/Bildrunter', STRG-U und STRG-D um eine Seite hoch oder runter zu\n"
+        "scrollen. Eine Newsgruppe betritt man mittels RETURN oder TAB.\n"
+        "\n"
+        "Artikel, Threads, markierte Artikel oder Artikel, die einem Suchmuster\n"
+        "entsprechen, können gemailt ('m'), gedruckt ('o'), gespeichert ('s') oder\n"
+        "gepipet ('|') werden. Benutzen Sie 'w', um einen neuen Artikel zu schreiben,\n"
+        "'f'/'F', um auf einen Artikel zu antworten und 'r'/'R', um den Autor via\n"
+        "Mail zu antworten. Mit 'M' können Sie %s mittels eines Menüs konfigurieren.\n"
+        "\n"
+        "Für mehr Informationen lesen Sie die Manpage, das README, INSTALL, TODO etc.\n"
+        "Bitte senden Sie Fehlerberichte und Kommentare mittels des 'R' Kommandos an\n"
+        "%s.\n"
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  "Ungültige From: %s Zeile. Lesen Sie  INSTALL nochmal."
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  "Ungültige Mehrbytezeichen-Folge vorhanden\n"
 
 #: src/lang.c:563
 #, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"Option nicht vorhanden. Neu kompilieren mit %s."
+msgid   "Invalid  Sender:-header %s"
+msgstr  "Ungültiger Sender:-Header %s"
 
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	"Optionsmenü"
-
-#: src/lang.c:567
-#, 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:565
+msgid   "Inverse video disabled"
+msgstr  "Inverse Bilddarstellung abgestellt"
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  "Inverse Bilddarstellung eingeschaltet"
 
 #: src/lang.c:568
 #, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	"Fehler im regulären Ausdruck: Interner Fehler %d des pcre"
+msgid   "Missing definition for %s\n"
+msgstr  "Fehlende Definition für %s\n"
 
 #: src/lang.c:569
 #, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	"Fehler im regulären Ausdruck: pcre interner Fehler %s"
+msgid   "Invalid key definition '%s'\n"
+msgstr  "Ungültige Tastenbelegung '%s'\n"
 
 #: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	"Schreibe eine Antwort..."
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  "Ungültiger Tastenname '%s'\n"
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  "Keymap-File wurde auf Version %s umgestellt\n"
 
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
 #: src/lang.c:572
-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	"Ein Fehler trat beim Posten des Artikels auf. Wenn Sie meinen, dass dies nur\n"
-	"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"
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  "Filter From:   [%s] (j/n): "
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  "Filter Z.:  (</>num): "
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  "Filter Menü (Kill, Bewertung/Score verringern)"
 
 #: src/lang.c:575
-msgid	"Posted articles history"
-msgstr	"Übersicht der geposteten Artikel"
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  "Filter Msg-Id: [%s] (v/l/n/n): "
 
 #: src/lang.c:576
-#, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"In Newsgruppe(n) [%s] posten> "
+msgid   "Kill pattern scope  : "
+msgstr  "Filter nach Muster  : "
 
 #: src/lang.c:577
-msgid	"-- post processing started --"
-msgstr	"-- Nachbearbeitung gestartet --"
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  "Filter Subject:[%s] (j/n): "
 
 #: src/lang.c:578
-msgid	"-- post processing completed --"
-msgstr	"-- Nachbearbeitung beendet --"
+msgid   "Kill text pattern   : "
+msgstr  "Filter Textmuster   : "
 
 #: src/lang.c:579
-#, c-format
-msgid	"Post subject [%s]> "
-msgstr	"Wähle Subject [%s]> "
-
-#: src/lang.c:580
-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"
+msgid   "Kill time in days   : "
+msgstr  "Filterzeit in Tagen : "
 
 #: src/lang.c:581
-msgid	"Posting article..."
-msgstr	"Poste Artikel..."
+msgid   "Last"
+msgstr  "Letzte"
 
 #: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	"Zurückgelegten Artikel [%%s]posten? (%s/%s/%s/%s/%s): "
+msgid   "-- Last response --"
+msgstr  "-- Letzte Antwort --"
 
 #: src/lang.c:583
 #, c-format
-msgid	"Hot %s"
-msgstr	"Wichtig/Hot %s"
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	"%s markiert"
+msgid   "Lines %s  "
+msgstr  "Zeilen %s "
 
 #: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	"%s Markierung entfernt"
+msgid   "Mail"
+msgstr  "Maile"
 
 #: src/lang.c:586
-msgid	"Processing mail messages marked for deletion."
-msgstr	"Bearbeite zum Löschen markierte EMails."
+msgid   "mailbox "
+msgstr  "Mailbox "
 
 #: src/lang.c:587
-msgid	"Processing saved articles marked for deletion."
-msgstr	"Bearbeite zum Löschen markierte gespeicherte Artikel."
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "Mailt Artikel an [%.*s]> "
 
 #: src/lang.c:588
 #, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	"Followup-To akzeptieren? %s=posten, %s=ignorieren, %s=Ende: "
+msgid   "Mailing log to %s\n"
+msgstr  "Maile Log-Datei an %s\n"
 
 #: src/lang.c:589
-msgid	"Article unchanged, abort mailing?"
-msgstr	"Mail unverändert, Absenden abbrechen?"
+msgid   "Mail bug report..."
+msgstr  "Maile einen Fehlerbericht..."
 
 #: src/lang.c:590
 #, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	"Wollen Sie die zurückgestellten Artikel sehen (%d)?"
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "Fehlerbericht an %s senden?"
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  "Gemailt"
 
 #: src/lang.c:592
-msgid	"Add quick kill filter?"
-msgstr	"Artikel schnell (laut Voreinstellungen) killen?"
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  "Senden der Mail an %s..."
 
 #: src/lang.c:593
-msgid	"Add quick selection filter?"
-msgstr	"Filterregel (hochscoren) (laut Voreinstellungen) hinzufügen?"
-
-#: src/lang.c:594
-msgid	"Do you really want to quit?"
-msgstr	"Möchten Sie das Programm wirklich beenden?"
-
-#: src/lang.c:595
-#, c-format
-msgid	"%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
-msgstr	"%s=cancel-Nachricht editieren, %s=Ende, %s=löschen [%%s]: "
+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  "# [Mail/Speicher] active-Datei. Format ist wie die news active-Datei:\n"
+        "#   Gruppenname max.Artnum min.Artnum /dir\n"
+        "# Das 4. Feld ist das Basisverzeichnis (z.B. ~/Mail oder ~/News)\n"
+        "#\n"
 
 #: src/lang.c:596
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	"Es befinden sich markierte Artikel in der Gruppe, trotzdem beenden?"
+#, c-format
+msgid   "%s marked as read"
+msgstr  "%s als gelesen markiert"
 
 #: src/lang.c:597
 #, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	"%s=Ende, %s=bearbeiten, %s=zurücklegen: "
+msgid   "%s marked as unread"
+msgstr  "%s als ungelesen markiert"
 
 #: src/lang.c:598
 #, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	"%s=Abbrechen %s=Editieren %s=Kill-Filter speichern: "
+msgid   "Marked %d of %d %s as read"
+msgstr  "%d von %d %s als gelesen markiert"
 
 #: src/lang.c:599
 #, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	"%s=Abbrechen %s=Editieren %s=Filter (hot) speichern: "
+msgid   "Marked %d of %d %s as unread"
+msgstr  "%d von %d %s als ungelesen markiert"
+
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  "Markierung"
+
+#: src/lang.c:601
+#, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  "Alle Artikel als gelesen markieren%s?"
 
-#: src/lang.c:600
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"Wirklich ohne Speichern der Konfiguration beenden?"
+#: src/lang.c:602
+#, c-format
+msgid   "Mark article as read%s?"
+msgstr  "Artikel als gelesen markieren%s?"
 
 #: src/lang.c:603
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	"Ungültige Bereichsangabe - Gültig wäre '0-9.$' z.B. 1-$"
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  "Die Gruppe %s als gelesen markieren?"
 
 #: src/lang.c:604
-msgid	"Do you want to abort this operation?"
-msgstr	"Wollen Sie diese Operation abbrechen?"
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "Den Thread als gelesen markieren%s?"
 
 #: src/lang.c:605
-msgid	"Do you want to exit tin immediately?"
-msgstr	"Wollen Sie tin augenblicklich verlassen?"
-
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	"Lese Antwort> "
-
-#: src/lang.c:607
-msgid	"Reading ('q' to quit)..."
-msgstr	"Lesen ('q' zum Beenden)..."
+#, c-format
+msgid   "Matching %s groups..."
+msgstr  "Übereinstimmende %s Gruppen..."
 
-#: src/lang.c:608
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
 #, c-format
-msgid	"Reading %sarticles..."
-msgstr	"Lese %sArtikel..."
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  ""
 
-#: src/lang.c:609
+#: src/lang.c:608
 #, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"Lese %sAttribute-Datei...\n"
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  ""
 
 #: src/lang.c:610
 #, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"Lese %sKonfigurations-Datei...\n"
-
-#: src/lang.c:611
-msgid	"Reading filter file...\n"
-msgstr	"Lese Filter-Datei...\n"
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=anzeigen; %s=pipen; %s=markieren; %s=Muster markieren; %s=Markierung "
+        "aufheben"
 
 #: src/lang.c:612
 #, c-format
-msgid	"Reading %s groups..."
-msgstr	"Lese %s Gruppen..."
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  ""
 
-#: src/lang.c:613
-msgid	"Reading input history file...\n"
-msgstr	"Lese Eingabe-History...\n"
+#: src/lang.c:613 src/lang.c:617
+#, 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:614
-msgid	"Reading keymap file...\n"
-msgstr	"Lese Tastaturbelegungen...\n"
+#, 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:615
-msgid	"Reading groups from active file... "
-msgstr	"Lese Gruppen aus dem Active... "
+#, 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:616
-msgid	"Reading groups from newsrc file... "
-msgstr	"Lese Gruppen aus der newsrc-Datei... "
-
-#: src/lang.c:617
-msgid	"Reading newsgroups file... "
-msgstr	"Lese Newsgroups-Datei... "
+#, 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:618
-msgid	"Reading newsrc file..."
-msgstr	"Lese newsrc-Datei..."
+#, 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:620
+#: src/lang.c:619
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	"(noch %d:%02d benötigt)"
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  "%s=hinzufügen; %s=verschieben; %s=umbenennen; %s=löschen"
+
+#: src/lang.c:621
+#, 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:622
 #, c-format
-msgid	"Bogus group %s removed."
-msgstr	"Nicht vorhandene Gruppe %s entfernt."
+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:623
 #, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"Fehler: Benenne %s in %s"
+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:624
-msgid	"Reply to author..."
-msgstr	"Mailantwort an Autor..."
+#, 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:625
-msgid	"Repost"
-msgstr	"Reposte"
-
-#: src/lang.c:626
-msgid	"Reposting article..."
-msgstr	"Wiederholtes posten des Artikels..."
+#, 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:627
 #, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	"Wiederholtes posten de(s|r) Artikel(s) in [%s]> "
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=Suche vorwärts; %s=Suche rückwärts; %s=Suche wiederholen"
 
 #: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	"newsrc zurücksetzen?"
+msgid   "--More--"
+msgstr  "--Mehr--"
 
 #: src/lang.c:629
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	"Antworten werden in folgende Gruppen gepostet"
+#, c-format
+msgid   "Moving %s..."
+msgstr  "Verschiebe %s..."
 
 #: src/lang.c:630
-#, 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: "
+msgid   "Message-ID: & last Reference  "
+msgstr  "Message-ID: & letzte Reference"
 
 #: src/lang.c:631
-#, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	"Antw. %4d von %4d"
+msgid   "Message-ID: line              "
+msgstr  "Message-ID: Zeile             "
 
 #: src/lang.c:632
-msgid	"Press <RETURN> to continue..."
-msgstr	"Drücken Sie <RETURN> um fortzufahren..."
+msgid   "Message-ID: & References: line"
+msgstr  "Message-ID: & References:     "
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	"Wähle From     [%s] (j/n): "
+msgid   ", name: "
+msgstr  ", Name: "
 
 #: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	"Wähle Zeilen: (</>num): "
+#, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "Gehe zu Gruppe [%s]> "
 
 #: src/lang.c:636
-msgid	"Auto-select Article Menu"
-msgstr	"Filter Menü (Bewertung/Score erhöhen)"
+msgid   "newsgroups"
+msgstr  "Gruppen"
 
 #: src/lang.c:637
 #, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	"Wähle Msg-Id   [%s] (v/l/n/n): "
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  "Position %s in der Gruppenliste (1,2,..,$) [%d]> "
 
 #: src/lang.c:638
-msgid	"Select pattern scope: "
-msgstr	"Wähle Muster        : "
+msgid   "newsgroup"
+msgstr  "Gruppe"
 
 #: src/lang.c:639
-#, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	"Wähle Subject  [%s] (j/n): "
+msgid   "Try and save newsrc file again?"
+msgstr  "Erneut versuchen, die newsrc-Datei zu schreiben?"
 
 #: src/lang.c:640
-msgid	"Select text pattern : "
-msgstr	"Wähle Textmuster    : "
+msgid   "Warning: No newsgroups were written to your newsrc file. Save aborted."
+msgstr  "Warnung: Keine Newsgruppen in die newsrc geschrieben. Speicherabbruch."
 
 #: src/lang.c:641
-msgid	"Select time in days   : "
-msgstr	"Wähle Zeit in Tagen   : "
+msgid   "newsrc file saved successfully.\n"
+msgstr  "newsrc-Datei erfolgreich geschrieben.\n"
 
 #: src/lang.c:642
-#, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	"# %s Server Konfigurationsdatei\n"
-	"# Diese Datei wurde automatisch von %s %s %s (\"%s\") erzeugt.\n"
-	"#\n"
-	"# Nicht verändern während %s läuft, da alle Änderungen automatisch\n"
-	"# überschrieben werden wenn Sie %s verlassen.\n"
-	"# Wenn Sie nicht genau wissen was Sie tun, dann lassen Sie einfach die\n"
-	"# Finger von dieser Datei.\n"
-	"############################################################################\n"
-	"\n"
+msgid   "-- Next response --"
+msgstr  "-- Nächste Antwort --"
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  "Nein"
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  "*** Keine Artikel ***"
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  "Es wurden keine Artikel gepostet"
+
+#: src/lang.c:646
+msgid   "*** No attachments ***"
+msgstr  "*** Keine Anhänge ***"
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  "*** Keine Kurzbeschreibung ***"
 
 #: src/lang.c:648
-msgid	"Showing unread groups only"
-msgstr	"Zeige nur Gruppen mit ungelesenen Artikeln"
+msgid   "No filename"
+msgstr  "Kein Dateiname"
 
 #: src/lang.c:649
-msgid	"Subject: line (ignore case)   "
-msgstr	"Subject: Z. (Groß-Kl. ign.)                  "
+msgid   "No group"
+msgstr  "Keine Gruppe"
 
 #: src/lang.c:650
-msgid	"Subject: line (case sensitive)"
-msgstr	"Subject: Z. (Groß-Kl. beachten)              "
+msgid   "*** No groups ***"
+msgstr  "*** Keine Newsgruppen ***"
 
 #: src/lang.c:651
-msgid	"Save"
-msgstr	"Speichern"
+msgid   "No more groups to read"
+msgstr  "Keine Gruppen zum Lesen übrig"
 
 #: src/lang.c:652
-#, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"'%s' (%s/%s) speichern?"
+msgid   "No last message"
+msgstr  "Keine letzte Nachricht"
 
 #: src/lang.c:653
-msgid	"Save configuration before continuing?"
-msgstr	"Zuerst Konfiguration speichern und danach fortfahren?"
+msgid   "No mail address"
+msgstr  "Keine EMail-Adresse"
 
 #: src/lang.c:654
-msgid	"Save filename> "
-msgstr	"Name der zu speichernden Datei> "
+msgid   "No articles marked for saving"
+msgstr  "Keine Artikel zum Speichern markiert"
 
 #: src/lang.c:655
-msgid	"Saved"
-msgstr	"Gespeichert"
+msgid   "No match"
+msgstr  "Kein Treffer"
 
 #: src/lang.c:656
-#, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	"%4d ungelesene (%4d 'hot') %s in %s\n"
+msgid   "No more groups"
+msgstr  "Keine Gruppen mehr"
 
 #: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	"%s gespeichert...\n"
+msgid   "No newsgroups"
+msgstr  "Keine Newsgruppen"
 
 #: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	"Nichts gespeichert"
+msgid   "No next unread article"
+msgstr  "Kein nächster ungelesener Artikel"
 
 #: src/lang.c:659
-#, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"\n"
-	"%s %d %s aus %d %s\n"
+msgid   "No previous group"
+msgstr  "Keine vorherige Gruppe"
 
 #: src/lang.c:660
-#, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"-- %s nach %s%s gespeichert --"
+msgid   "No previous search, nothing to repeat"
+msgstr  "Keine vorherige Suche, nichts zu wiederholen"
 
 #: src/lang.c:661
-#, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"-- %s gespeichert als %s - %s --"
+msgid   "No previous unread article"
+msgstr  "Kein vorheriger ungelesener Artikel"
 
 #: src/lang.c:662
-msgid	"Saving..."
-msgstr	"Speichere..."
+msgid   "No responses"
+msgstr  "Keine Antworten"
 
 #: src/lang.c:663
-#, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s: Initialisierung des Bildschirms fehlgeschlagen"
+msgid   "No responses to list in current thread"
+msgstr  "Keine Antworten vorhanden im aktuellen Thread"
+
+#: src/lang.c:664
+msgid   "*** No scopes ***"
+msgstr  ""
 
 #: src/lang.c:665
-#, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s: Anzeige ist zu klein\n"
+msgid   "No search string"
+msgstr  "Kein Suchmuster"
 
-#: src/lang.c:667
-#, c-format
-msgid	"screen is too small, %s is exiting\n"
-msgstr	"Anzeige zu klein, %s beendet sich\n"
+#: src/lang.c:666
+msgid   "No subject"
+msgstr  "Kein Subject"
 
 #: src/lang.c:668
 #, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"Suche rückwärts [%s]> "
+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:669
 #, c-format
-msgid	"Search body [%s]> "
-msgstr	"Durchsuche Artikelinhalt [%s]> "
+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:670
 #, c-format
-msgid	"Search forwards [%s]> "
-msgstr	"Suche vorwärts [%s]> "
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  "%s: Terminal muss Schirmlöschen (cl) unterstützen\n"
 
 #: src/lang.c:671
-msgid	"Searching..."
-msgstr	"Suche..."
+#, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  "%s: Terminal muss Cursor-Bewegungen unterstützen (cm)\n"
 
 #: src/lang.c:672
 #, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	"Suche Artikel %d von %d ('q' zum abbrechen)..."
-
-#: src/lang.c:673
-msgid	"Select article> "
-msgstr	"Wähle Artikel> "
+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:674
-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."
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  "Kein Programm für %s/%s gefunden\n"
 
 #: src/lang.c:675
-msgid	"Select group> "
-msgstr	"Wähle Gruppe> "
+msgid   "Newsgroup does not exist on this server"
+msgstr  "Newsgruppe existiert nicht auf diesem Server"
 
 #: src/lang.c:676
 #, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	"Nenne das Auswahlmuster [%s]> "
+msgid   "Group %s not found in active file"
+msgstr  "Gruppe %s nicht in der Active-Datei gefunden"
 
 #: src/lang.c:677
-msgid	"Select thread > "
-msgstr	"Wähle thread > "
+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:678
-#, 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"
+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:679
-msgid	"servers active-file"
-msgstr	"Die 'active' Datei des Servers"
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  "# NNTP-Server -> newsrc Übersetzungstabelle und NNTP-Server\n"
+        "# Abkürzungen für %s %s\n"
+        "#\n"
+        "# Das Format für diese Datei ist\n"
+        "# <FQDN des NNTP-Servers> <newsrc Datei> <Kurzname> ...\n"
+        "#\n"
+        "# Wird <newsrc Datei> ohne Pfad angegeben, so wird $HOME als Ort angenommen\n"
+        "#\n"
+        "# Beispiele:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+
+#: src/lang.c:686
+msgid   "Only"
+msgstr  "Nur"
+
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "Option nicht vorhanden. Neu kompilieren mit %s."
 
-#: src/lang.c:680
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	"Kann die Newsgruppe nicht öffnen. Sie muss erst abonniert werden..."
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  "Optionsmenü"
 
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	"<LEERT>"
+#: src/lang.c:689
+msgid   "Options Menu Commands"
+msgstr  "Optionsmenü Befehle"
 
-#: src/lang.c:682
+#: src/lang.c:692
 #, c-format
-msgid	"Starting: (%s)"
-msgstr	"Starte: (%s)"
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  "Fehler im regulären Ausdruck: %s an Pos. %d '%s'"
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"Zeige Thread (%d von %d)"
+msgid   "Error in regex: pcre internal error %d"
+msgstr  "Fehler im regulären Ausdruck: Interner Fehler %d des pcre"
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, c-format
-msgid	"Thread (%.*s)"
-msgstr	"Thread (%.*s)"
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  "Fehler im regulären Ausdruck: pcre interner Fehler %s"
 
-#: src/lang.c:685
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	"Wildcardmuster für zu abonnierende Gruppen> "
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  "Schreibe eine Antwort..."
 
-#: src/lang.c:686
-#, c-format
-msgid	"subscribed to %d groups"
-msgstr	"%d Gruppen sind abonniert"
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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  "Ein Fehler trat beim Posten des Artikels auf. Wenn Sie meinen, dass dies nur\n"
+        "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:687
+#: src/lang.c:700
+msgid   "Posted articles history"
+msgstr  "Übersicht der geposteten Artikel"
+
+#: src/lang.c:701
 #, c-format
-msgid	"Subscribed to %s"
-msgstr	"%s wurde abonniert"
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "In Newsgruppe(n) [%s] posten> "
 
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	"Abonniere... "
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  "-- Nachbearbeitung gestartet --"
 
-#: src/lang.c:689
-#, 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:703
+msgid   "-- post processing completed --"
+msgstr  "-- Nachbearbeitung beendet --"
 
-#: src/lang.c:690
+#: src/lang.c:704
 #, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	"Supersede (überschreibe) Artikel in den Gruppen [%s]> "
+msgid   "Post subject [%s]> "
+msgstr  "Wähle Subject [%s]> "
 
-#: src/lang.c:691
-msgid	"Superseding article ..."
-msgstr	"Überschreibe Artikel ..."
+#: src/lang.c:705
+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:692
-#, 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:706
+msgid   "Posting article..."
+msgstr  "Poste Artikel..."
 
-#: src/lang.c:694
+#: src/lang.c:707
 #, c-format
-msgid	"%d days"
-msgstr	"%d Tage"
-
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	"<TAB>"
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  "Zurückgelegten Artikel [%%s]posten? (%s/%s/%s/%s/%s): "
 
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	"TeX "
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  "Wichtig/Hot %s"
 
-#: src/lang.c:697
-msgid	"# Default action/prompt strings\n"
-msgstr	"# Voreingestellte Aktion/zeige Zeichenkette\n"
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  "%s markiert"
 
-#: src/lang.c:698
-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"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	"# Voreinstellung für schnellen (1 Taste) Filterregeln (Kill & Hochscoren)\n"
-	"# header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & volle References: Zeile\n"
-	"#             5=Message-ID: & letzter Reference: Eintrag ausschliesslich\n"
-	"#             6=Message-ID: Eintrag nur 7=Zeilen:\n"
-	"# global=ON/OFF  ON=alle Gruppen OFF=nur für die aktuellen Gruppe\n"
-	"# 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:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  "%s Markierung entfernt"
 
 #: src/lang.c:711
-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"
+msgid   "Processing mail messages marked for deletion."
+msgstr  "Bearbeite zum Löschen markierte EMails."
 
 #: src/lang.c:712
-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"
+msgid   "Processing saved articles marked for deletion."
+msgstr  "Bearbeite zum Löschen markierte gespeicherte Artikel."
 
 #: src/lang.c:713
-msgid	"There is no news\n"
-msgstr	"Es gibt keine neuen Artikel\n"
+#, 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:714
-msgid	"Thread"
-msgstr	"Thread"
+msgid   "Article unchanged, abort mailing?"
+msgstr  "Mail unverändert, Absenden abbrechen?"
 
 #: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	"Thread Level Kommandos"
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	"Thread nicht mehr ausgewählt"
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  "Wollen Sie die zurückgestellten Artikel sehen (%d)?"
 
 #: src/lang.c:717
-msgid	"Thread selected"
-msgstr	"Thread ausgewählt"
+msgid   "Add quick kill filter?"
+msgstr  "Artikel schnell (laut Voreinstellungen) killen?"
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  "Filterregel (hochscoren) (laut Voreinstellungen) hinzufügen?"
 
 #: src/lang.c:719
-msgid	"threads"
-msgstr	"Threads"
+msgid   "Do you really want to quit?"
+msgstr  "Möchten Sie das Programm wirklich beenden?"
+
+#: src/lang.c:720
+#, 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:721
-msgid	"Thread range"
-msgstr	"Thread-Bereich"
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  "Es befinden sich markierte Artikel in der Gruppe, trotzdem beenden?"
 
 #: src/lang.c:722
-msgid	"thread"
-msgstr	"Thread"
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  "%s=Ende, %s=bearbeiten, %s=zurücklegen: "
 
 #: src/lang.c:723
 #, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"Thread %4s v. %4s"
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  "%s=Abbrechen %s=Editieren %s=Kill-Filter speichern: "
 
 #: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	"Sortiere Artikel..."
-
-#: src/lang.c:725
 #, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	"Wort-Hervorhebung: %s"
-
-#: src/lang.c:726
-msgid	"Toggled rot13 encoding"
-msgstr	"ROT13-Kodierung (de)aktiviert"
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  "%s=Abbrechen %s=Editieren %s=Filter (hot) speichern: "
 
-#: src/lang.c:727
-#, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	"Deutsche TeX-Dekodierung: %s"
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  "Wirklich ohne Speichern der Konfiguration beenden?"
 
 #: src/lang.c:728
-#, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	"Tabulatorweite zu %d gewechselt"
-
-#: src/lang.c:729
-#, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	"%d Versuche %s zu dotlocken"
+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:730
-#, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%d Versuche %s zu locken"
+msgid   "Do you want to abort this operation?"
+msgstr  "Wollen Sie diese Operation abbrechen?"
 
 #: src/lang.c:731
-msgid	"           h=help\n"
-msgstr	"          h=Hilfe\n"
+msgid   "Do you want to exit tin immediately?"
+msgstr  "Wollen Sie tin augenblicklich verlassen?"
 
 #: src/lang.c:733
-msgid	"Unlimited"
-msgstr	"Unbegrenzt"
+msgid   "Reading ('q' to quit)..."
+msgstr  "Lesen ('q' zum Beenden)..."
 
 #: src/lang.c:734
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	"Wildcardmuster für abzubestellende Gruppen> "
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  "Lese %sArtikel..."
 
 #: src/lang.c:735
 #, c-format
-msgid	"Error decoding %s : %s"
-msgstr	"Fehler beim Dekodieren von %s : %s"
+msgid   "Reading %sattributes file...\n"
+msgstr  "Lese %sAttribute-Datei...\n"
 
 #: src/lang.c:736
-msgid	"No end."
-msgstr	"Kein Ende."
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  "Lese %sKonfigurations-Datei...\n"
 
 #: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	"%s erfolgreich dekodiert."
+msgid   "Reading filter file...\n"
+msgstr  "Lese Filter-Datei...\n"
 
 #: src/lang.c:738
 #, 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"
+msgid   "Reading %s groups..."
+msgstr  "Lese %s Gruppen..."
 
 #: src/lang.c:739
-msgid	"unread "
-msgstr	"ungelesen "
+msgid   "Reading input history file...\n"
+msgstr  "Lese Eingabe-History...\n"
 
 #: src/lang.c:740
-#, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	"%d Gruppen abbestellt"
+msgid   "Reading keymap file...\n"
+msgstr  "Lese Tastaturbelegungen...\n"
 
 #: src/lang.c:741
-#, c-format
-msgid	"Unsubscribed from %s"
-msgstr	"%s wurde abbestellt"
+msgid   "Reading groups from active file... "
+msgstr  "Lese Gruppen aus dem Active... "
 
 #: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	"Abbestellen... "
+msgid   "Reading groups from newsrc file... "
+msgstr  "Lese Gruppen aus der newsrc-Datei... "
 
 #: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	"Aktuelle Sortierung der Artikel aufheben..."
+msgid   "Reading newsgroups file... "
+msgstr  "Lese Newsgroups-Datei... "
 
 #: src/lang.c:744
-msgid	"Updated"
-msgstr	"Aktualisiert"
+msgid   "Reading newsrc file..."
+msgstr  "Lese newsrc-Datei..."
 
 #: src/lang.c:745
-msgid	"Updating"
-msgstr	"Aktualisiere"
-
-#: src/lang.c:746
-#, c-format
-msgid	"Opening %s\n"
-msgstr	"Öffne %s\n"
+msgid   "References: line              "
+msgstr  "References: Zeile             "
 
 #: src/lang.c:747
-msgid	"No more URL's in this article"
-msgstr	"Keine weiteren URLs im Artikel"
-
-#: src/lang.c:748
-msgid	"Use MIME display program for this message?"
-msgstr	"MIME-Anzeigeprogramm für diese Nachricht benutzen?"
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  "(noch %d:%02d benötigt)"
 
 #: src/lang.c:749
-msgid	"  -c       mark all news as read in subscribed newsgroups (batch mode)"
-msgstr	"  -c       Markiere Artikel gelesen in den abonnierten Gruppen (Batch-Modus)"
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  "Nicht vorhandene Gruppe %s entfernt."
 
 #: src/lang.c:750
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	"  -Z       Rückgabewert zeigt, ob ungelesene Artikel vorliegen (Batch-Modus)"
+msgid   "Removed from the previous rule: "
+msgstr  "Aus der vorigen Regel gelöscht: "
 
 #: src/lang.c:751
-msgid	"  -q       don't check for new newsgroups"
-msgstr	"  -q       Überprüfe nicht auf neue Newsgruppen"
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "Fehler: Benenne %s in %s"
 
 #: src/lang.c:752
-msgid	"  -X       don't save any files on quit"
-msgstr	"  -X       Speicher keine Dateien beim Beenden"
+msgid   "Reply to author..."
+msgstr  "Mailantwort an Autor..."
 
 #: src/lang.c:753
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	"  -d       Zeige keine Newsgruppenbeschreibungen"
+msgid   "Repost"
+msgstr  "Reposte"
 
 #: src/lang.c:754
-msgid	"  -G limit get only limit articles/group"
-msgstr	"  -G limit Hole nur 'limit' Artikel pro Newsgruppe"
+msgid   "Reposting article..."
+msgstr  "Wiederholtes posten des Artikels..."
 
 #: src/lang.c:755
 #, c-format
-msgid	"  -H       help information about %s"
-msgstr	"  -H       Hilfe und Informationen über %s"
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  "Wiederholtes posten de(s|r) Artikel(s) in [%s]> "
 
 #: src/lang.c:756
-msgid	"  -h       this help message"
-msgstr	"  -h       Diese Hilfeseite"
+msgid   "Reset newsrc?"
+msgstr  "newsrc zurücksetzen?"
 
 #: src/lang.c:757
-#, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	"  -I Verz. Verzeichnis für Artikel-Index-Datei [Standard=%s]"
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  "Antworten werden in folgende Gruppen gepostet"
 
 #: src/lang.c:758
-msgid	"  -u       update index files (batch mode)"
-msgstr	"  -u       Erneuere Index-Dateien (Batch-Modus)"
-
-#: src/lang.c:759
 #, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	"  -m Verz. Mailbox-Verzeichnis [Standard=%s]"
+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:760
-#, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	"\n"
-	"Schicken Sie Fehlerberichte/Kommentare an %s"
-
-#: src/lang.c:761
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	"  -N       Maile neue Artikel an sich selbst (Batch-Modus)"
+msgid   "Press <RETURN> to continue..."
+msgstr  "Drücken Sie <RETURN> um fortzufahren..."
 
 #: src/lang.c:762
-msgid	"  -M user  mail new news to specified user (batch mode)"
-msgstr	"  -M user  Maile neue News-Artikel an 'user' (Batch-Modus)"
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  "Wähle From     [%s] (j/n): "
 
 #: src/lang.c:763
-#, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	"  -f Datei 'Datei' als .newsrc-Datei nutzen [Standard=%s]"
+msgid   "Select Lines: (</>num): "
+msgstr  "Wähle Zeilen: (</>num): "
 
 #: src/lang.c:764
-msgid	"  -x       no posting mode"
-msgstr	"  -x       Posten nicht erlaubt Modus"
+msgid   "Auto-select Article Menu"
+msgstr  "Filter Menü (Bewertung/Score erhöhen)"
 
 #: src/lang.c:765
-msgid	"  -w       post an article and exit"
-msgstr	"  -w       Postet einen Artikel und beendet tin"
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  "Wähle Msg-Id   [%s] (v/l/n/n): "
 
 #: src/lang.c:766
-msgid	"  -o       post all postponed articles and exit"
-msgstr	"  -o       Postet alle zurückgelegten Artikel und beendet tin"
+msgid   "Select pattern scope: "
+msgstr  "Wähle Muster        : "
 
 #: src/lang.c:767
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	"  -r       Lese Artikel vom Standard-NNTP-Server"
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  "Wähle Subject  [%s] (j/n): "
 
 #: src/lang.c:768
-msgid	"  -R       read news saved by -S option"
-msgstr	"  -R       Lese Artikel, die durch -S gespeichert wurden"
+msgid   "Select text pattern : "
+msgstr  "Wähle Textmuster    : "
 
 #: src/lang.c:769
-#, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	"  -s Verz. Verzeichnis zum News-Speichern [Standard=%s]"
+msgid   "Select time in days   : "
+msgstr  "Wähle Zeit in Tagen   : "
 
 #: src/lang.c:770
-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
-msgid	"  -z       start if any unread news"
-msgstr	"  -z       Starte, wenn ungelesene Artikel vorliegen"
-
-#: src/lang.c:772
-#, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"Ein Usenet-Client.\n"
-	"\n"
-	"Syntax: %s [Optionen] [Newsgruppe[,...]]"
-
-#: src/lang.c:773
-msgid	"  -v       verbose output for batch mode options"
-msgstr	"  -v       Ausführliche Ausgabe für Batch-Modus-Optionen"
-
-#: src/lang.c:774
-msgid	"  -V       print version & date information"
-msgstr	"  -V       Gebe Versions- und Datumsinformationen aus"
-
-#: src/lang.c:775
 #, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	"%s ist nur sinnvoll ohne Batchmodeoperationen\n"
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  "# %s Server Konfigurationsdatei\n"
+        "# Diese Datei wurde automatisch von %s %s %s (\"%s\") erzeugt.\n"
+        "#\n"
+        "# Nicht verändern während %s läuft, da alle Änderungen automatisch\n"
+        "# überschrieben werden wenn Sie %s verlassen.\n"
+        "# Wenn Sie nicht genau wissen was Sie tun, dann lassen Sie einfach die\n"
+        "# Finger von dieser Datei.\n"
+        "############################################################################\n"
+        "\n"
 
 #: src/lang.c:776
-#, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	"%s ist nur sinnvoll für Batchmodeoperationen\n"
+msgid   "Showing unread groups only"
+msgstr  "Zeige nur Gruppen mit ungelesenen Artikeln"
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  "Subject: Zeile (Groß-Kl. ignorieren)         "
 
 #: src/lang.c:778
-#, 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"
+msgid   "Subject: line (case sensitive)"
+msgstr  "Subject: Zeile (Groß-Kl. beachten)           "
 
 #: src/lang.c:779
+msgid   "Save"
+msgstr  "Speichern"
+
+#: src/lang.c:780
 #, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"'%s' (%s/%s) anzeigen?"
+msgid   "Save '%s' (%s/%s)?"
+msgstr  "'%s' (%s/%s) speichern?"
 
 #: src/lang.c:781
-#, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	"\n"
-	"Warnung: Artikel überschreitet %d Spalten. Zeile %d ist die erste lange:\n"
-	"%-100s\n"
+msgid   "Save configuration before continuing?"
+msgstr  "Zuerst Konfiguration speichern und danach fortfahren?"
 
 #: src/lang.c:782
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	"\n"
-	"Warnung: Artikel wurde im Editor nicht verändert\n"
+msgid   "Save filename> "
+msgstr  "Name der zu speichernden Datei> "
 
 #: src/lang.c:783
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	"\n"
-	"Warnung: \"Subject:\" enthält nur Leerzeichen.\n"
+msgid   "Saved"
+msgstr  "Gespeichert"
 
 #: src/lang.c:784
-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"
+#, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  "%4d ungelesene (%4d 'hot') %s in %s\n"
+
+#: src/lang.c:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  "%s gespeichert...\n"
 
 #: src/lang.c:786
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	"\n"
-	"Warnung: Artikel hat \"References:\" aber \"Subject:\" beginnt nicht\n"
-	"         mit \"Re: \" and enthält auch kein \"(was:\".\n"
+msgid   "Nothing was saved"
+msgstr  "Nichts gespeichert"
+
+#: src/lang.c:787
+#, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s aus %d %s\n"
+
+#: src/lang.c:788
+#, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s nach %s%s gespeichert --"
 
 #: src/lang.c:789
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Sorgfältig lesen!\n"
-	"\n"
-	" Sie wollen einen Artikel canceln (löschen), der offenbar von ihnen stammt.\n"
-	" Dies wird den Artikel von den meisten Newsservern dieser Welt löschen.\n"
-	" Es gibt aber keine Garantie, das dies überall geschieht.\n"
-	"\n"
-	"Das ist der Artikel, den Sie canceln (löschen) wollen:\n"
-	"\n"
+#, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s gespeichert als %s - %s --"
+
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  "Speichere..."
+
+#: src/lang.c:791
+#, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  "%s: Initialisierung des Bildschirms fehlgeschlagen"
 
 #: src/lang.c:793
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	"\n"
-	"Warnung: Sie benutzen eine Zeichenkodierung, die Zeichen verändert (z.B.\n"
-	"         base64 oder quoted-printable) und einen externen inews um Ihren\n"
-	"         Artikel zu übertragen. Falls durch diesen inews eine Signatur\n"
-	"         angehängt wird, so kann diese nicht korrekt kodiert werden.\n"
+#, c-format
+msgid   "%s: screen is too small\n"
+msgstr  "%s: Anzeige ist zu klein\n"
 
-#: src/lang.c:798
+#: src/lang.c:795
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	"\n"
-	"\n"
-	"Sie benutzen jetzt tin %s, eine neuere Version als früher.\n"
-	"Einige Einstellungen in Ihrem %s-File haben sich geändert!\n"
-	"Lesen Sie \"WHATSNEW\", usw....\n"
+msgid   "screen is too small, %s is exiting\n"
+msgstr  "Anzeige zu klein, %s beendet sich\n"
+
+#: src/lang.c:796
+msgid   "Delete scope?"
+msgstr  ""
+
+#: src/lang.c:797
+msgid   "Enter scope> "
+msgstr  ""
+
+#: src/lang.c:798
+msgid   "Select new position> "
+msgstr  "Neue Position auswählen> "
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  ""
 
 #: src/lang.c:800
-#, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	"\n"
-	"\n"
-	"Sie benutzen jetzt tin %s, eine ältere Version als früher!\n"
-	"Evtl. werden Einstellungen in Ihrem %s-File\n"
-	"nicht erkannt oder ändern sich!\n"
+msgid   "Global scope, operation not allowed"
+msgstr  ""
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  ""
+
+#: src/lang.c:802
+msgid   "Select scope> "
+msgstr  ""
 
 #: src/lang.c:803
+msgid   "Scopes Menu"
+msgstr  ""
+
+#: src/lang.c:804
+msgid   "Scopes Menu Commands"
+msgstr  ""
+
+#: src/lang.c:805
 #, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	"Warnung: tin hat weniger Gruppen in Ihre\n"
-	"\t%s\n"
-	"geschrieben, als es beim Start eingelesen hat. Falls Sie nicht %ld %s\n"
-	"währenddessen abbestellt haben, ist ein Fehler aufgetreten und Sie sollten\n"
-	"Ihre %s wiederherstellen, bevor Sie tin nochmal starten!\n"
+msgid   "Search backwards [%s]> "
+msgstr  "Suche rückwärts [%s]> "
+
+#: src/lang.c:806
+#, c-format
+msgid   "Search body [%s]> "
+msgstr  "Durchsuche Artikelinhalt [%s]> "
 
 #: src/lang.c:807
 #, 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"
+msgid   "Search forwards [%s]> "
+msgstr  "Suche vorwärts [%s]> "
 
 #: src/lang.c:808
-#, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	"Warnung: Nur %d von %d Artikeln gespeichert"
+msgid   "Searching..."
+msgstr  "Suche..."
 
 #: src/lang.c:809
 #, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	"\n"
-	"Warnung: Ihre Signatur ist mehr als %d Zeilen lang. Da Signaturen meist "
-	"keine\n"
-	"         nützlichen Informationen enthalten, sollten sie so kurz wie möglich\n"
-	"         gehalten werden.\n"
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  "Suche Artikel %d von %d ('q' zum abbrechen)..."
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  "Wähle Artikel> "
+
+#: src/lang.c:811
+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:812
+msgid   "Select group> "
+msgstr  "Wähle Gruppe> "
 
 #: src/lang.c:813
 #, 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? "
+msgid   "Enter selection pattern [%s]> "
+msgstr  "Nenne das Auswahlmuster [%s]> "
 
 #: src/lang.c:814
-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"
+msgid   "Select thread > "
+msgstr  "Wähle thread > "
 
 #: src/lang.c:815
-msgid	"Writing attributes file..."
-msgstr	"Schreibe Datei mit den Eigenschaften der Newsgruppen..."
+#, 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:816
+msgid   "servers active-file"
+msgstr  "Die 'active' Datei des Servers"
 
 #: src/lang.c:817
-#, c-format
-msgid	"%d Responses"
-msgstr	"%d Antworten"
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  "Kann die Newsgruppe nicht öffnen. Sie muss erst abonniert werden..."
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  "<LEERT>"
 
 #: src/lang.c:819
 #, c-format
-msgid	"Added %d %s"
-msgstr	"%d %s hinzugefügt"
+msgid   "Starting: (%s)"
+msgstr  "Starte: (%s)"
 
 #: src/lang.c:820
-msgid	"No unsubscribed groups to show"
-msgstr	"Keine nicht abonnierte Gruppen gefunden"
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  "Zeige Thread (%d von %d)"
 
 #: src/lang.c:821
-msgid	"Showing subscribed to groups only"
-msgstr	"Zeige nur abonnierte Gruppen"
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  "Thread (%.*s)"
 
 #: src/lang.c:822
-msgid	"Yes "
-msgstr	"Ja  "
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  "Wildcardmuster für zu abonnierende Gruppen> "
 
 #: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	"   Sie haben Mail\n"
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  "%d Gruppen sind abonniert"
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  "%s wurde abonniert"
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  "Abonniere... "
+
+#: src/lang.c:826
+#, 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:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  "Supersede (überschreibe) Artikel in den Gruppen [%s]> "
 
 #: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  "Überschreibe Artikel ..."
+
+#: src/lang.c:829
 #, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	"\n"
-	"Warnung: Artikel ist in %s und enthält Zeichen die nicht im\n"
-	"         konfiguriertem MM_NETWORK_CHARSET: %s enthalten sind.\n"
-	"         Diese Zeichen werden durch '?' ersetzt wenn der Artikel\n"
-	"         unverändert gepostet wird. Um das zu vermeiden sollten Sie\n"
-	"         entweder den Artikeln entsprechend ändern und diese Zeichen\n"
-	"         entfernen oder MM_NETWORK_CHARSET im M)neu auf einen\n"
-	"         passenderen Wert setzen.\n"
-
-#: src/lang.c:839
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"  -D       Debug-Modus 1=NNTP 2=ALLES"
-
-#: src/lang.c:843
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Sorgfältig lesen!\n"
-	"\n"
-	" Sie wollen einen Artikel canceln (löschen), der offenbar nicht von ihnen "
-	"stammt.\n"
-	" Dies wird den Artikel auf sehr vielen Newsservern dieser Welt löschen;\n"
-	" Der Grossteil der Usenetteilnehmer hält dies für nicht akzeptabel.\n"
-	" Drücken Sie 'd' nur, wenn Sie wirklich sicher sind, das Sie mit den\n"
-	" eventuellen Konsequenzen leben können.\n"
-	"\n"
-	"Dies ist der Artikel, den Sie canceln (löschen) wollen:\n"
-	"\n"
+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:831
+#, c-format
+msgid   "%d days"
+msgstr  "%d Tage"
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  "<TAB>"
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  "TeX "
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  "# Voreingestellte Aktion/zeige Zeichenkette\n"
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  "# Voreinstellung für schnellen (1 Taste) Filterregeln (Kill & Hochscoren)\n"
+        "# header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & volle References: Zeile\n"
+        "#             5=Message-ID: & letzter Reference: Eintrag ausschließlich\n"
+        "#             6=Message-ID: Eintrag nur 7=Zeilen:\n"
+        "# global=ON/OFF  ON=alle Gruppen OFF=nur für die aktuellen Gruppe\n"
+        "# 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:848
+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:849
+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:850
+msgid   "There is no news\n"
+msgstr  "Es gibt keine neuen Artikel\n"
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  "Thread"
 
 #: src/lang.c:852
-msgid	"toggle color"
-msgstr	"Farben ein/aus"
+msgid   "Thread Level Commands"
+msgstr  "Thread Level Kommandos"
 
 #: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	"# Farbeinstellungen\n"
-	"# Mögliche Werte sind:\n"
-	"#  -1 = Voreinstellung (weißer Vordergrund, schwarzer Hintergrund)\n"
-	"#   0 = schwarz\n"
-	"#   1 = rot\n"
-	"#   2 = grün\n"
-	"#   3 = braun\n"
-	"#   4 = blau\n"
-	"#   5 = rosa\n"
-	"#   6 = cyan\n"
-	"#   7 = weiß\n"
-	"# Diese sind *nur* für den Vordergrund:\n"
-	"#   8 = grau\n"
-	"#   9 = hellrot\n"
-	"#  10 = hellgrün\n"
-	"#  11 = gelb\n"
-	"#  12 = hellblau\n"
-	"#  13 = hellrosa\n"
-	"#  14 = hellcyan\n"
-	"#  15 = hellweiß\n"
-	"\n"
+msgid   "Thread deselected"
+msgstr  "Thread nicht mehr ausgewählt"
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  "Thread ausgewählt"
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  "Threads"
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  "Thread"
+
+#: src/lang.c:859
+#, c-format
+msgid   "Thread %4s of %4s"
+msgstr  "Thread %4s v. %4s"
+
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  "Sortiere Artikel..."
+
+#: src/lang.c:861
+#, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  "Wort-Hervorhebung: %s"
+
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  "ROT13-Kodierung (de)aktiviert"
+
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  "Deutsche TeX-Dekodierung: %s"
+
+#: src/lang.c:864
+#, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  "Tabulatorweite zu %d gewechselt"
+
+#: src/lang.c:866
+#, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  "%d Versuche %s zu dotlocken"
+
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  "%d Versuche %s zu locken"
+
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  "          h=Hilfe"
+
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  "Unbegrenzt"
+
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  "Wildcardmuster für abzubestellende Gruppen> "
 
 #: src/lang.c:873
-msgid	"  -a       toggle color flag"
-msgstr	"  -a       Farbe ein- oder ausschalten"
+#, c-format
+msgid   "Error decoding %s : %s"
+msgstr  "Fehler beim Dekodieren von %s : %s"
+
+#: src/lang.c:874
+msgid   "No end."
+msgstr  "Kein Ende."
+
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s erfolgreich dekodiert."
+
+#: src/lang.c:876
+#, 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:877
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"Fehler: Followup-To auf mehr als eine Newsgruppe gesetzt!\n"
+msgid   "unread "
+msgstr  "ungelesen "
 
 #: src/lang.c:878
 #, 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"
+msgid   "unsubscribed from %d groups"
+msgstr  "%d Gruppen abbestellt"
 
 #: src/lang.c:879
 #, c-format
-msgid	"\n"
-	"Error: \"%s\" is not a valid newsgroup!\n"
-msgstr	"\n"
-	"Fehler: \"%s\" ist keine gültige Newsgruppe!\n"
+msgid   "Unsubscribed from %s"
+msgstr  "%s wurde abbestellt"
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  "Abbestellen... "
 
 #: src/lang.c:881
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"Warnung: Followup-To in mehr als eine Newsgruppe gesetzt!\n"
+msgid   "Unthreading articles..."
+msgstr  "Aktuelle Sortierung der Artikel aufheben..."
 
 #: src/lang.c:882
-#, 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
-#, 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"
+msgid   "Updated"
+msgstr  "Aktualisiert"
 
 #: src/lang.c:884
 #, 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"
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  "Nicht auswertbare \"LIST COUNTS\" Zeile: \"%s\""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  "Aktualisiere"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  "URL Menü"
 
 #: src/lang.c:888
-#, 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."
+msgid   "URL Menu Commands"
+msgstr  "URL Menü Befehle"
 
 #: src/lang.c:889
-msgid	"Missing parts."
-msgstr	"Teile fehlen."
+#, c-format
+msgid   "Opening %s"
+msgstr  "Öffne %s"
 
 #: src/lang.c:890
-msgid	"No beginning."
-msgstr	"Kein Anfang."
+msgid   "Select URL> "
+msgstr  "Wähle URL> "
 
 #: src/lang.c:891
-msgid	"No data."
-msgstr	"Keine Daten."
+msgid   "No URLs in this article"
+msgstr  "Keine URLs im Artikel"
 
 #: src/lang.c:892
-msgid	"Unknown error."
-msgstr	"Unbekannter Fehler."
+msgid   "Use MIME display program for this message?"
+msgstr  "MIME-Anzeigeprogramm für diese Nachricht benutzen?"
+
+#: src/lang.c:893
+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:894
+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:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  "  -q       Überprüfe nicht auf neue Newsgruppen"
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  "  -X       Speicher keine Dateien beim Beenden"
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  "  -d       Zeige keine Newsgruppenbeschreibungen"
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  "  -G limit Hole nur 'limit' Artikel pro Newsgruppe"
+
+#: src/lang.c:899
 #, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"\tPrüfsumme für %s (%ld %s)"
+msgid   "  -H       help information about %s"
+msgstr  "  -H       Hilfe und Informationen über %s"
 
 #: src/lang.c:900
-msgid	"Reading mail active file... "
-msgstr	"Lese EMail-Active-Datei... "
+msgid   "  -h       this help message"
+msgstr  "  -h       Diese Hilfeseite"
 
 #: src/lang.c:901
-msgid	"Reading mailgroups file... "
-msgstr	"Lese Mailgruppen-Datei... "
+#, 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:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  "  -u       Erneuere Index-Dateien (Batch-Modus)"
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  "  -m Verz. Mailbox-Verzeichnis [Standard=%s]"
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "Schicken Sie Fehlerberichte/Kommentare an %s"
 
 #: src/lang.c:905
-msgid	"perform PGP operations on article"
-msgstr	"wendet PGP auf den Artikel an"
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  "  -N       Maile neue Artikel an sich selbst (Batch-Modus)"
 
 #: src/lang.c:906
-msgid	"Add key(s) to public keyring?"
-msgstr	"Schlüssel dem Öffentlichen Schlüsselring hinzufügen?"
+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:907
 #, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	"%s=verschlüsseln, %s=signieren, %s=beides, %s=Ende: "
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  "  -f Datei 'Datei' als .newsrc-Datei nutzen [Standard=%s]"
 
 #: src/lang.c:908
-#, 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: "
+msgid   "  -x       no posting mode"
+msgstr  "  -x       Posten nicht erlaubt Modus"
 
 #: src/lang.c:909
-#, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	"PGP Wurde nicht konfiguriert (kann %s nicht öffnen)"
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       Postet einen Artikel und beendet tin"
 
 #: src/lang.c:910
-msgid	"Article not signed and no public keys found"
-msgstr	"Artikel ist nicht signiert; keine öffentlichen Schlüssel gefunden"
+msgid   "  -o       post all postponed articles and exit"
+msgstr  "  -o       Postet alle zurückgelegten Artikel und beendet tin"
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  "  -R       Lese Artikel, die durch -S gespeichert wurden"
 
 #: src/lang.c:912
 #, 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: "
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  "  -s Verz. Verzeichnis zum News-Speichern [Standard=%s]"
 
 #: src/lang.c:913
-#, 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]: "
+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:914
+msgid   "  -z       start if any unread news"
+msgstr  "  -z       Starte, wenn ungelesene Artikel vorliegen"
+
+#: src/lang.c:915
 #, 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]: "
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  "Ein Usenet-Client.\n"
+        "\n"
+        "Syntax: %s [Optionen] [Newsgruppe[,...]]"
 
 #: src/lang.c:916
-#, 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: "
+msgid   "  -v       verbose output for batch mode options"
+msgstr  "  -v       Ausführliche Ausgabe für Batch-Modus-Optionen"
 
 #: src/lang.c:917
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=Ende, %s=bearbeiten, %s=pgp, %s=verschicken [%%s]: "
+msgid   "  -V       print version & date information"
+msgstr  "  -V       Gebe Versions- und Datumsinformationen aus"
 
 #: src/lang.c:918
 #, 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]: "
+msgid   "%s only useful without batch mode operations\n"
+msgstr  "%s ist nur sinnvoll ohne Batchmodeoperationen\n"
+
+#: src/lang.c:919
+#, c-format
+msgid   "%s only useful for batch mode operations\n"
+msgstr  "%s ist nur sinnvoll für Batchmodeoperationen\n"
+
+#: src/lang.c:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  "Unsinnige Kombination von %s und %s. Ignoriere %s.\n"
 
 #: src/lang.c:922
 #, 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: "
+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:923
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	"%s=Ende, %s=bearbeiten, %s=ispell, %s=verschicken [%%s]: "
+msgid   "View '%s' (%s/%s)?"
+msgstr  "'%s' (%s/%s) anzeigen?"
 
-#: src/lang.c:924
+#: src/lang.c:925
 #, 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]: "
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  "\n"
+        "Warnung: Artikel überschreitet %d Spalten. Zeile %d ist die erste lange:\n"
+        "%-100s\n"
 
 #: src/lang.c:926
-#, 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: "
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  "\n"
+        "Warnung: Artikel wurde im Editor nicht verändert\n"
 
 #: src/lang.c:927
-#, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	"%s=Ende, %s=bearbeiten, %s=verschicken [%%s]: "
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  "\n"
+        "Warnung: \"Subject:\" enthält nur Leerzeichen.\n"
 
 #: src/lang.c:928
-#, 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]: "
+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:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  "\n"
+        "Warnung: Artikel hat \"References:\" aber \"Subject:\" beginnt nicht\n"
+        "         mit \"Re: \" and enthält auch kein \"(was:\".\n"
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Sorgfältig lesen!\n"
+        "\n"
+        " Sie wollen einen Artikel canceln (löschen), der offenbar von ihnen stammt.\n"
+        " Dies wird den Artikel von den meisten Newsservern dieser Welt löschen.\n"
+        " Es gibt aber keine Garantie, das dies überall geschieht.\n"
+        "\n"
+        "Das ist der Artikel, den Sie canceln (löschen) wollen:\n"
+        "\n"
 
 #: src/lang.c:937
-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
-msgid	"Tin will use local index files instead.\n"
-msgstr	"Tin wird lokale index files benutzen.\n"
-
-#: src/lang.c:939
-msgid	"Cannot find NNTP server name"
-msgstr	"Kann den Namen des NNTP Servers nicht finden"
-
-#: src/lang.c:940
-#, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"Verbinde mit %s:%d..."
-
-#: src/lang.c:941
-msgid	"Disconnecting from server...\n"
-msgstr	"Trenne Verbindung zum Server...\n"
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  "\n"
+        "Warnung: Sie benutzen eine Zeichenkodierung, die Zeichen verändert (z.B.\n"
+        "         base64 oder quoted-printable) und einen externen inews um Ihren\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:942
-#, 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"
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  "\n"
+        "Warnung: \"example\" ist eine reserviert Hierarchie!\n"
 
 #: src/lang.c:943
 #, c-format
-msgid	"Failed to connect to NNTP server %s. Exiting..."
-msgstr	"Konnte nicht zum NNTP Server %s verbinden. Beende..."
-
-#: src/lang.c:944
-msgid	"205  Closing connection"
-msgstr	"205  Schließe Verbindung"
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  "\n"
+        "\n"
+        "Sie benutzen jetzt tin %s, eine neuere Version als früher.\n"
+        "Einige Einstellungen in Ihrem %s-File haben sich geändert!\n"
+        "Lesen Sie \"WHATSNEW\", usw....\n"
 
 #: src/lang.c:945
-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
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	"Die Verbindung zum Newsserver wurde unterbrochen. Wieder verbinden?"
-
-#: src/lang.c:947
-#, 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
-msgid	"  -A       force authentication on connect"
-msgstr	"  -A       Erzwinge Anmeldung bei Verbindung"
-
-#: src/lang.c:949
 #, c-format
-msgid	"  -g serv  read news from NNTP server serv [default=%s]"
-msgstr	"  -g serv  Lese Artikel vom NNTP-Server 'serv' [Standard=%s]"
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  "\n"
+        "\n"
+        "Sie benutzen jetzt tin %s, eine ältere Version als früher!\n"
+        "Evtl. werden Einstellungen in Ihrem %s-File\n"
+        "nicht erkannt oder ändern sich!\n"
 
-#: src/lang.c:950
+#: src/lang.c:948
 #, 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
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"  -Q       Schnellstart. Das Selbe wie -nqd"
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  "Warnung: tin hat weniger Gruppen in Ihre\n"
+        "\t%s\n"
+        "geschrieben, als es beim Start eingelesen hat. Falls Sie nicht %ld %s\n"
+        "währenddessen abbestellt haben, ist ein Fehler aufgetreten und Sie sollten\n"
+        "Ihre %s wiederherstellen, bevor Sie tin nochmal starten!\n"
 
 #: src/lang.c:952
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	"  -l       Benutze nur das LIST anstelle vom GROUP-Kommando (-n)"
+#, 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:953
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	"  -n       Lese nur Gruppen aus der .newsrc-Datei vom NNTP-Server"
+#, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  "Warnung: Nur %d von %d Artikeln gespeichert"
 
-#: src/lang.c:955
+#: src/lang.c:954
 #, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/tcp: Unbekannter Service.\n"
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  "\n"
+        "Warnung: Ihre Signatur ist mehr als %d Zeilen lang. Da Signaturen meist "
+        "keine\n"
+        "         nützlichen Informationen enthalten, sollten sie so kurz wie möglich\n"
+        "         gehalten werden.\n"
 
 #: src/lang.c:958
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	"\n"
-	"Socket oder Verbindungsproblem\n"
+#, 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:959
+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:960
+msgid   "Writing attributes file..."
+msgstr  "Schreibe Datei mit den Eigenschaften der Newsgruppen..."
+
+#: src/lang.c:962
 #, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"\n"
-	"Verbindung mit %s: "
-
-#: src/lang.c:961
-msgid	"Giving up...\n"
-msgstr	"Gebe auf...\n"
+msgid   "%d Responses"
+msgstr  "%d Antworten"
 
 #: src/lang.c:964
-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"
+#, c-format
+msgid   "Added %d %s"
+msgstr  "%d %s hinzugefügt"
+
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  "Keine nicht abonnierte Gruppen gefunden"
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  "Zeige nur abonnierte Gruppen"
 
 #: src/lang.c:967
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	"Ihr Server hat kein Xref: in seiner XOVER-Information.\n"
+msgid   "Yes "
+msgstr  "Ja  "
 
-#: src/lang.c:970
-#, 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:968
+msgid   "    You have mail"
+msgstr  "   Sie haben Mail"
 
 #: src/lang.c:973
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"  -Q       Schnellstart. Das Selbe wie -qd"
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  "\n"
+        "Warnung: Artikel ist in %s und enthält Zeichen die nicht im\n"
+        "         konfiguriertem MM_NETWORK_CHARSET: %s enthalten sind.\n"
+        "         Diese Zeichen werden durch '?' ersetzt wenn der Artikel\n"
+        "         unverändert gepostet wird. Um das zu vermeiden sollten Sie\n"
+        "         entweder den Artikeln entsprechend ändern und diese Zeichen\n"
+        "         entfernen oder MM_NETWORK_CHARSET im M)neu auf einen\n"
+        "         passenderen Wert setzen.\n"
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  "  -D Modus Debug-Modus"
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Sorgfältig lesen!\n"
+        "\n"
+        " Sie wollen einen Artikel canceln (löschen), der offenbar nicht von ihnen "
+        "stammt.\n"
+        " Dies wird den Artikel auf sehr vielen Newsservern dieser Welt löschen;\n"
+        " Der Großteil der Usenetteilnehmer hält dies für nicht akzeptabel.\n"
+        " Drücken Sie 'd' nur, wenn Sie wirklich sicher sind, das Sie mit den\n"
+        " eventuellen Konsequenzen leben können.\n"
+        "\n"
+        "Dies ist der Artikel, den Sie canceln (löschen) wollen:\n"
+        "\n"
 
-#: src/lang.c:974
-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:997
+msgid   "toggle color"
+msgstr  "Farben ein/aus"
 
-#: src/lang.c:975
-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:998
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  "# Farbeinstellungen\n"
+        "# Mögliche Werte sind:\n"
+        "#  -1 = Voreinstellung (weißer Vordergrund, schwarzer Hintergrund)\n"
+        "#   0 = schwarz\n"
+        "#   1 = rot\n"
+        "#   2 = grün\n"
+        "#   3 = braun\n"
+        "#   4 = blau\n"
+        "#   5 = rosa\n"
+        "#   6 = cyan\n"
+        "#   7 = weiß\n"
+        "# Diese sind *nur* für den Vordergrund:\n"
+        "#   8 = grau\n"
+        "#   9 = hellrot\n"
+        "#  10 = hellgrün\n"
+        "#  11 = gelb\n"
+        "#  12 = hellblau\n"
+        "#  13 = hellrosa\n"
+        "#  14 = hellcyan\n"
+        "#  15 = hellweiß\n"
+        "\n"
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  "  -a       Farbe ein- oder ausschalten"
+
+#: src/lang.c:1022
+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:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  "\n"
+        "Fehler: \"%s\" wurde umbenannt, \"%s\" stattdessen benutzen!\n"
+
+#: src/lang.c:1024
+#, 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:976
-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:1025
+#, 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:980
-msgid	"Posting using external inews failed. Use built in inews instead?"
-msgstr	"Fehler beim Posten mit externem inews, verwende eingebautes?"
+#: src/lang.c:1027
+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:981
-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:1028
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  "\n"
+        "Warnung: \"%s\" wurde umbenannt, bitte \"%s\" stattdessen benutzen!\n"
 
-#: src/lang.c:989
+#: src/lang.c:1029
 #, c-format
-msgid	"%d %s printed"
-msgstr	"%d %s gedruckt"
+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:990
-msgid	"output article/thread/hot/pattern/tagged articles to printer"
-msgstr	"druckt Artikel/Thread/hervorgehobene/Muster/markierten"
+#: src/lang.c:1030
+#, 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:991
-msgid	"Print"
-msgstr	"Drucke"
+#: src/lang.c:1031
+#, 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:992
-msgid	"Printing..."
-msgstr	"Drucke..."
+#: src/lang.c:1035
+#, 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:996
-msgid	"pipe article/thread/hot/pattern/tagged articles into command"
-msgstr	"pipet Artikel/thread hervorgehoben/Muster/markierten Artikel"
+#: src/lang.c:1036
+msgid   "Missing parts."
+msgstr  "Teile fehlen."
 
-#: src/lang.c:997
-msgid	"No command"
-msgstr	"Kein Kommando"
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  "Kein Anfang."
 
-#: src/lang.c:998
-msgid	"Pipe"
-msgstr	"Pipe"
+#: src/lang.c:1038
+msgid   "No data."
+msgstr  "Keine Daten."
 
-#: src/lang.c:999
+#: src/lang.c:1039
+msgid   "Unknown error."
+msgstr  "Unbekannter Fehler."
+
+#: src/lang.c:1042
 #, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Pipen in Kommando [%.*s]> "
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  "\tPrüfsumme für %s (%ld %s)"
 
-#: src/lang.c:1000
-msgid	"Piping..."
-msgstr	"Pipen..."
-
-#: src/lang.c:1002
-msgid	"Piping not enabled."
-msgstr	"Pipen nicht aktiviert."
-
-#: src/lang.c:1006
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	"\n"
-	"Fehler: Die \"%s:\" Zeile hat Leerzeichen, die entfernt werden MÜSSEN.\n"
-	"        Der einzig erlaubte Leerraum ist derjenige, der das ':'\n"
-	"        vom Inhalt trennt. Benutzen Sie ein ',' um mehrere Newsgruppen\n"
-	"        anzugeben\n"
-
-#: src/lang.c:1011
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Fehler: Die \"%s:\" Zeile ist in der nächsten Zeile fortgesetzt.\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
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Warnung: Die \"%s:\" Zeile ist in der nächsten Zeile fortgesetzt.\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:1020
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
-msgstr	"\n"
-	"Warnung: Die \"%s:\" Zeile enthält Leerzeichen die entfernt\n"
-	"         werden sollten.\n"
+#: src/lang.c:1047
+msgid   "Reading mail active file... "
+msgstr  "Lese EMail-Active-Datei... "
 
-#: src/lang.c:1025
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	"\n"
-	"  Wenn Ihr Artikel zitierten Text enthält, nehmen Sie sich Zeit und kürzen\n"
-	"  Sie die Zitate auf das Nötigste, behalten Sie nur die Kernpunkte bei, auf\n"
-	"  die Sie sich beziehen! Viele Leute lesen Artikel, deren erste Seite nur\n"
-	"  aus zitiertem Text besteht, überhaupt nicht. Formatieren Sie Ihren Artikel\n"
-	"  so, dass er maximal 80 Zeichen lange Zeilen enthält, für Ihren eigenen\n"
-	"  Text sind 72 Zeichen eine gute Wahl, so bleibt dieser auch zitiert unter\n"
-	"  80 Zeichen. Wenn Ihre Zeilen zu lang sind, werden Sie auf dem Bildschirm\n"
-	"  kammartig umbrochen, und sind daher sehr mühsam zu lesen. Wenn Sie Ihren\n"
-	"  Artikel nicht sorgfältig formatieren, ist es sehr wahrscheinlich, dass er\n"
-	"  von vielen gar nicht gelesen wird.\n"
+#: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  "Lese Mailgruppen-Datei... "
 
-#: src/lang.c:1038
-msgid	"shell escape"
-msgstr	"Ausgang zur Shell"
+#: src/lang.c:1052
+msgid   "perform PGP operations on article"
+msgstr  "wendet PGP auf den Artikel an"
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  "Schlüssel dem Öffentlichen Schlüsselring hinzufügen?"
 
-#: src/lang.c:1039
+#: src/lang.c:1054
 #, c-format
-msgid	"Shell Command (%s)"
-msgstr	"Shellkommando (%s)"
+msgid   "%s=encrypt, %s=sign, %s=both, %s=quit: "
+msgstr  "%s=verschlüsseln, %s=signieren, %s=beides, %s=Ende: "
 
-#: src/lang.c:1040
+#: src/lang.c:1055
 #, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"Geben Sie ein Shellkommando ein [%s]> "
+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:1044
+#: src/lang.c:1056
 #, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	"%s: Kann den Wert für TERM nicht finden\n"
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  "PGP Wurde nicht konfiguriert (kann %s nicht öffnen)"
 
-#: src/lang.c:1048
-#, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"Gruppe %.*s ('q' zum beenden)..."
+#: src/lang.c:1057
+msgid   "Article not signed and no public keys found"
+msgstr  "Artikel ist nicht signiert; keine öffentlichen Schlüssel gefunden"
 
-#: src/lang.c:1050
+#: src/lang.c:1059
 #, c-format
-msgid	"Group %.*s..."
-msgstr	"Gruppe %.*s..."
-
-#: src/lang.c:1054
-msgid	"Server unavailable\n"
-msgstr	"Server nicht erreichbar\n"
+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: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"
+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: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"
+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: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"
+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: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"
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  "%s=Ende, %s=bearbeiten, %s=pgp, %s=verschicken [%%s]: "
 
-#: src/lang.c:1068
+#: src/lang.c:1065
 #, 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"
+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: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"
+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:1070
+#, 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: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"
+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:1072
+#: src/lang.c:1073
 #, 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"
+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:1078
-msgid	"Terminal does not support color"
-msgstr	"Terminal unterstützt keine Farben"
+#: src/lang.c:1074
+#, c-format
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  "%s=Ende, %s=bearbeiten, %s=verschicken [%%s]: "
 
-#: src/lang.c:1083
+#: src/lang.c:1075
 #, c-format
-msgid	"Trying %s"
-msgstr	"Versuche %s"
+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:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	"Nichts"
+#: src/lang.c:1084
+msgid   "Try cache_overview_files to speed up things.\n"
+msgstr  "Setze cache_overview_files um das lesen zu beschleunigen.\n"
+
+#: src/lang.c:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  "Tin wird lokale index files benutzen.\n"
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  "Kann den Namen des NNTP Servers nicht finden"
+
+#: src/lang.c:1087
+#, c-format
+msgid   "Connecting to %s:%u..."
+msgstr  "Verbinde mit %s:%u..."
+
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  "Trenne Verbindung zum Server...\n"
+
+#: src/lang.c:1089
+#, c-format
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  "Falsche Newsgruppe (\"%s\") in Antwort auf \"GROUP%s\"-Befehl: \"%s\""
+
+#: src/lang.c:1090
+#, c-format
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  "Konnte nicht zum NNTP Server %s verbinden. Beende..."
+
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  "205  Schließe Verbindung"
+
+#: src/lang.c:1092
+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:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  "Die Verbindung zum Newsserver wurde unterbrochen. Wieder verbinden?"
+
+#: src/lang.c:1094
+#, 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:1095
+msgid   "  -A       force authentication on connect"
+msgstr  "  -A       Erzwinge Anmeldung bei Verbindung"
+
+#: src/lang.c:1096
+#, 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:1097
+#, 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:1098
-msgid	"Subject"
-msgstr	"Subject"
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  "  -Q       Schnellstart. Das Selbe wie -nqd"
 
 #: src/lang.c:1099
-msgid	"References"
-msgstr	"References"
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  "  -r       Lese Artikel vom Standard-NNTP-Server"
 
 #: src/lang.c:1100
-msgid	"Both Subject and References"
-msgstr	"Beides: Subject und References"
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  "  -l       Benutze nur das LIST anstelle vom GROUP-Kommando (-n)"
 
 #: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	"Mehrteilige Artikel (Subject)"
+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:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  "  -4       IPv4 benutzen"
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  "  -6       IPv6 benutzen"
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  "\n"
+        "Socket oder Verbindungsproblem\n"
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "Verbindung mit %s: "
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  "Gebe auf...\n"
+
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp: Unbekannter Service.\n"
+
+#: src/lang.c:1114
+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:1102
-msgid	"Percentage Match"
-msgstr	"Prozentualer Treffer"
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	"Nein"
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	"Ja"
-
-#: src/lang.c:1116
-msgid	"Hide All"
-msgstr	"Alle ausblenden"
+#: src/lang.c:1117
+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:1120
+#, 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:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  "  -Q       Schnellstart. Das Selbe wie -qd"
 
 #: src/lang.c:1124
-msgid	"Address"
-msgstr	"Adresse"
+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:1125
-msgid	"Full Name"
-msgstr	"Voller Name"
+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:1126
-msgid	"Address and Name"
-msgstr	"Adresse und Name"
+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:1133
-msgid	"Max"
-msgstr	"Höchster"
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	"Summe"
+#: src/lang.c:1130
+msgid   "Posting using external inews failed. Use built in inews instead?"
+msgstr  "Fehler beim Posten mit externem inews, verwende eingebautes?"
+
+#: src/lang.c:1131
+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:1135
-msgid	"Average"
-msgstr	"Durchschnitt"
+#, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s gedruckt"
 
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	"Zeilen"
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	"Bewertung"
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  "druckt Artikel/Thread/hervorgehobene/Muster/markierten"
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  "Drucke"
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  "Drucke..."
 
 #: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	"Zeilen und Bewertung"
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  "pipet Artikel/thread hervorgehoben/Muster/markierten Artikel"
 
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	"Schwarz"
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  "Kein Kommando"
 
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	"Rot"
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  "Pipe"
 
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	"Grün"
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	"Braun"
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	"Blau"
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	"Rosa"
+#: src/lang.c:1145
+#, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  "Pipen in Kommando [%.*s]> "
 
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	"Cyan"
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  "Pipen..."
 
-#: src/lang.c:1158
-msgid	"White"
-msgstr	"Weiß"
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"Grau"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	"Helles Rot"
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	"Helles Grün"
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  "Pipen nicht aktiviert."
 
-#: src/lang.c:1162
-msgid	"Yellow"
-msgstr	"Gelb"
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  "\n"
+        "Fehler: Die \"%s:\" Zeile hat Leerzeichen, die entfernt werden MÜSSEN.\n"
+        "        Der einzig erlaubte Leerraum ist derjenige, der das ':'\n"
+        "        vom Inhalt trennt. Benutzen Sie ein ',' um mehrere Newsgruppen\n"
+        "        anzugeben\n"
 
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	"Helles Blau"
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	"Helles Rosa"
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	"Helles Cyan"
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Fehler: Die \"%s:\" Zeile ist in der nächsten Zeile fortgesetzt.\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:1166
-msgid	"Light White"
-msgstr	"Helles Weiß"
+#: src/lang.c:1162
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Warnung: Die \"%s:\" Zeile ist in der nächsten Zeile fortgesetzt.\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:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	"Nichts"
-
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	"Markierung"
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	"Leerzeichen"
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	"Normal"
+#: src/lang.c:1166
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
+msgstr  "\n"
+        "Warnung: Die \"%s:\" Zeile enthält Leerzeichen die entfernt\n"
+        "         werden sollten.\n"
+
+#: src/lang.c:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  "\n"
+        "  Wenn Ihr Artikel zitierten Text enthält, nehmen Sie sich Zeit und kürzen\n"
+        "  Sie die Zitate auf das Nötigste, behalten Sie nur die Kernpunkte bei, auf\n"
+        "  die Sie sich beziehen! Viele Leute lesen Artikel, deren erste Seite nur\n"
+        "  aus zitiertem Text besteht, überhaupt nicht. Formatieren Sie Ihren Artikel\n"
+        "  so, dass er maximal 80 Zeichen lange Zeilen enthält, für Ihren eigenen\n"
+        "  Text sind 72 Zeichen eine gute Wahl, so bleibt dieser auch zitiert unter\n"
+        "  80 Zeichen. Wenn Ihre Zeilen zu lang sind, werden Sie auf dem Bildschirm\n"
+        "  kammartig umbrochen, und sind daher sehr mühsam zu lesen. Wenn Sie Ihren\n"
+        "  Artikel nicht sorgfältig formatieren, ist es sehr wahrscheinlich, dass er\n"
+        "  von vielen gar nicht gelesen wird.\n"
 
 #: src/lang.c:1184
-msgid	"Best highlighting"
-msgstr	"Beste Hervorhebung"
+msgid   "shell escape"
+msgstr  "Ausgang zur Shell"
 
 #: src/lang.c:1185
-msgid	"Underline"
-msgstr	"Unterstreichen"
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  "Shellkommando (%s)"
 
 #: src/lang.c:1186
-msgid	"Reverse video"
-msgstr	"Invers"
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "Geben Sie ein Shellkommando ein [%s]> "
 
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	"Blinkend"
-
-#: src/lang.c:1188
-msgid	"Half bright"
-msgstr	"Halbe Helligkeit"
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	"Fett"
+#: src/lang.c:1190
+#, 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:1194
-msgid	"none"
-msgstr	"Nichts"
-
-#: src/lang.c:1195
-msgid	"commands"
-msgstr	"Kommandos"
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "Gruppe %.*s ('q' zum beenden)..."
 
 #: src/lang.c:1196
-msgid	"select"
-msgstr	"X-Befehl"
-
-#: src/lang.c:1198
-msgid	"commands & quit"
-msgstr	"Kommandos & Ende"
-
-#: src/lang.c:1199
-msgid	"commands & select"
-msgstr	"Kommandos & X-Befehl"
+#, c-format
+msgid   "Group %.*s..."
+msgstr  "Gruppe %.*s..."
 
 #: src/lang.c:1200
-msgid	"quit & select"
-msgstr	"Ende & X-Befehl"
+msgid   "Server unavailable\n"
+msgstr  "Server nicht erreichbar\n"
 
-#: src/lang.c:1201
-msgid	"commands & quit & select"
-msgstr	"Kmndos & Ende & X-Befehl"
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	"Shellarchiv"
-
-#: src/lang.c:1232
-msgid	"Subject: (descending)"
-msgstr	"Subject: (Absteigend)"
-
-#: src/lang.c:1233
-msgid	"Subject: (ascending)"
-msgstr	"Subject: (Aufsteigend)"
-
-#: src/lang.c:1234
-msgid	"From: (descending)"
-msgstr	"From: (Absteigend)"
-
-#: src/lang.c:1235
-msgid	"From: (ascending)"
-msgstr	"From: (Aufsteigend)"
-
-#: src/lang.c:1236
-msgid	"Date: (descending)"
-msgstr	"Date: (Absteigend)"
-
-#: src/lang.c:1237
-msgid	"Date: (ascending)"
-msgstr	"Date: (Aufsteigend)"
-
-#: src/lang.c:1238 src/lang.c:1246
-msgid	"Score (descending)"
-msgstr	"Bewertung (Absteigend)"
-
-#: src/lang.c:1239 src/lang.c:1247
-msgid	"Score (ascending)"
-msgstr	"Bewertung (Aufsteigend)"
-
-#: src/lang.c:1240
-msgid	"Lines: (descending)"
-msgstr	"Lines: (Absteigend)"
-
-#: src/lang.c:1241
-msgid	"Lines: (ascending)"
-msgstr	"Lines: (Aufsteigend)"
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	"Immer behalten"
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	"Immer entfernen"
-
-#: src/lang.c:1254
-msgid	"Mark with D on selection screen"
-msgstr	"Mit D in der Anzeige markiert"
-
-#: src/lang.c:1259
-msgid	"Kill only unread arts"
-msgstr	"Killt nur ungelesene Artikel"
-
-#: src/lang.c:1260
-msgid	"Kill all arts & show with K"
-msgstr	"Killt alle Artikel, markiert mit K"
+#: src/lang.c:1206
+#, 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"
 
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-msgid	"Kill all arts and never show"
-msgstr	"Killt alle Artikel, zeigt sie nie"
-
-#: src/lang.c:1266
-msgid	"Nothing special"
-msgstr	"Nichts besonderes"
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	"Zitatzeichen zusammenfassen"
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	"Signaturen zitieren"
-
-#: src/lang.c:1269
-msgid	"Compress quotes, quote sigs"
-msgstr	"Zitatz. kürzen, Signat. zitieren"
+#: src/lang.c:1207
+#, 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:1209
+#, 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:1210
+#, 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:1214
+#, 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:1215
+#, 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:1217
+#, 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:1218
+#, 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:1224
+msgid   "Terminal does not support color"
+msgstr  "Terminal unterstützt keine Farben"
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  "Versuche %s"
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  "Nichts"
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  "Subject"
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  "References"
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  "Beides: Subject und References"
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  "Mehrteilige Artikel (Subject)"
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  "Prozentualer Treffer"
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  "Nein"
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  "Ja"
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  "Alle ausblenden"
 
 #: src/lang.c:1270
-msgid	"Quote empty lines"
-msgstr	"Leerzeilen zitieren"
+msgid   "Address"
+msgstr  "Adresse"
 
 #: src/lang.c:1271
-msgid	"Compress quotes, quote empty lines"
-msgstr	"Zitatz. kürzen, Leerzeilen zit."
+msgid   "Full Name"
+msgstr  "Voller Name"
 
 #: src/lang.c:1272
-msgid	"Quote sigs & empty lines"
-msgstr	"Signat. und Leerzeilen zitieren"
+msgid   "Address and Name"
+msgstr  "Adresse und Name"
 
-#: src/lang.c:1273
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	"Zitatz. kürzen, Sign & Leerz. zit."
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  "Höchster"
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  "Summe"
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  "Durchschnitt"
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  "Zeilen"
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  "Bewertung"
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  "Zeilen und Bewertung"
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  "Schwarz"
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  "Rot"
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  "Grün"
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  "Braun"
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  "Blau"
+
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  "Rosa"
+
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  "Cyan"
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  "Weiß"
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "Grau"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  "Helles Rot"
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  "Helles Grün"
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  "Gelb"
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  "Helles Blau"
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  "Helles Rosa"
 
 #: src/lang.c:1311
-msgid	"no"
-msgstr	"nein"
+msgid   "Light Cyan"
+msgstr  "Helles Cyan"
 
 #: src/lang.c:1312
-msgid	"with headers"
-msgstr	"mit Header"
+msgid   "Light White"
+msgstr  "Helles Weiß"
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	"ohne Header"
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	"NFKC"
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	"NFKD"
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  "Nichts"
 
 #: src/lang.c:1322
-msgid	"NFC"
-msgstr	"NFC"
+msgid   "Space"
+msgstr  "Leerzeichen"
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	"NFD"
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  "Normal"
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  "Beste Hervorhebung"
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  "Unterstreichen"
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  "Invers"
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  "Blinkend"
 
 #: src/lang.c:1334
-msgid	"Display Options"
-msgstr	"Darstellungseinstellungen"
+msgid   "Half bright"
+msgstr  "Halbe Helligkeit"
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  "Fett"
 
 #: src/lang.c:1341
-msgid	"Color Options"
-msgstr	"Farbeinstellungen"
+msgid   "Cc"
+msgstr  "Cc"
 
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	"Artikel-Begrenzungseinstellungen"
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  "Bcc"
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  "Cc und Bcc"
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  "Nichts"
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  "Kommandos"
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  "X-Befehl"
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  "Kommandos & Ende"
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  "Kommandos & X-Befehl"
 
 #: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	"Versandeinstellungen für Mail und News"
+msgid   "quit & select"
+msgstr  "Ende & X-Befehl"
 
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	"Speicher- und Druckereinstellungen"
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	"Experteneinstellungen"
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  "Kmndos & Ende & X-Befehl"
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  ""
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1368
+msgid   "Subject: (case sensitive)"
+msgstr  "Subject: Zeile (Groß-Kl. beachten)           "
+
+#: src/lang.c:1369
+msgid   "Subject: (ignore case)"
+msgstr  "Subject: Zeile (Groß-Kl. ignorieren)         "
+
+#: src/lang.c:1370
+msgid   "From: (case sensitive)"
+msgstr  "From: Zeile (Groß- Kleinschreibung beachten) "
+
+#: src/lang.c:1371
+msgid   "From: (ignore case)"
+msgstr  "From: Zeile (ignoriere Groß- Kleinschreibung)"
 
 #: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	"Filtereinstellungen"
+msgid   "Msg-ID: & full References: line"
+msgstr  "Message-ID: & References:     "
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"<SPACE> schaltet um, <CR> setzt, <ESC> bricht ab."
-
-#: src/lang.c:1378
-msgid	"Show mini menu & posting etiquette"
-msgstr	"Zeigt Minimenü & Posting etiquette"
-
-#: src/lang.c:1379
-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:1373
+msgid   "Msg-ID: & last References: only"
+msgstr  "Message-ID: & letzte Reference"
+
+#: src/lang.c:1374
+msgid   "Message-ID: entry only"
+msgstr  "Message-ID: allein            "
+
+#: src/lang.c:1375
+msgid   "Lines:"
+msgstr  "Zeilen:"
+
+#: src/lang.c:1380
+msgid   "Don't trim article body"
+msgstr  "Artikelrumpf nicht anpassen"
+
+#: src/lang.c:1381
+msgid   "Skip leading blank lines"
+msgstr  "Führende Leerzeilen überspringen"
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  "Abschliessende Leerzeilen überspr."
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  "Führ. & abschlies. Leerz. überspr."
 
 #: src/lang.c:1384
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	"Zeige Kurzbeschreibung für Gruppe. <SPACE> wechselt & <CR> setzt."
+msgid   "Compact multiple between text"
+msgstr  ""
 
 #: src/lang.c:1385
-msgid	"Show description of each newsgroup"
-msgstr	"Zeige Beschreibung der Newsgruppen"
+msgid   "Compact multiple and skip leading"
+msgstr  ""
 
 #: src/lang.c:1386
-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:1391
-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:1392
-msgid	"In group menu, show author by"
-msgstr	"Im Gruppenmenü, zeige Autor an nach"
-
-#: src/lang.c:1393
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	"# Anzeige des 'From:' Felds\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = nichts\n"
-	"#   1 = Adresse\n"
-	"# * 2 = Voller Name\n"
-	"#   3 = beides (Adresse und Name)\n"
-
-#: src/lang.c:1402
-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:1403
-msgid	"Draw -> instead of highlighted bar"
-msgstr	"Zeige -> anstatt einer Markierung"
-
-#: src/lang.c:1404
-msgid	"# If ON use -> otherwise highlighted bar for selection\n"
-msgstr	"# Falls ON benutze -> andernfalls benutze eine Markierung zur Auswahl\n"
-
-#: src/lang.c:1409
-msgid	"Use inverse video for page headers"
-msgstr	"Inverse Darstellung für die Header"
-
-#: src/lang.c:1410
-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:1415
-msgid	"Thread articles by"
-msgstr	"Threade Artikel anhand"
-
-#: src/lang.c:1416
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	"# Gruppiere Artikel nach\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = nichts\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = beides (Subject und References)\n"
-	"#   4 = Mehrteilige Artikel\n"
-	"#   5 = prozentualer Subject vergleich\n"
+msgid   "Compact multiple and skip trailing"
+msgstr  ""
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  ""
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  "Shellarchiv"
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  "Subject: (Absteigend)"
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  "Subject: (Aufsteigend)"
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  "From: (Absteigend)"
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  "From: (Aufsteigend)"
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  "Date: (Absteigend)"
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  "Date: (Aufsteigend)"
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  "Bewertung (Absteigend)"
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  "Bewertung (Aufsteigend)"
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  "Lines: (Absteigend)"
 
 #: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	"Prozent des Subject das gleich sein muß. <CR> setzt."
+msgid   "Lines: (ascending)"
+msgstr  "Lines: (Aufsteigend)"
 
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	"Prozentualer Subject vergleich"
-
-# TRANSLATION MISSING
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
+#: src/lang.c:1434
+msgid   "Last posting date (descending)"
+msgstr  "Datum des letzten Artikels (Absteigend)"
+
+#: src/lang.c:1435
+msgid   "Last posting date (ascending)"
+msgstr  "Datum des letzten Artikels (Aufsteigend)"
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  "Immer behalten"
 
 #: src/lang.c:1441
-msgid	"Score of a thread"
-msgstr	"Bewertung eines Threads"
+msgid   "Always Remove"
+msgstr  "Immer entfernen"
 
 #: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	"# Bewertung des Threads\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = Höchster\n"
-	"#   1 = Summe\n"
-	"#   2 = Durchschnitt\n"
-
-#: src/lang.c:1450
-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:1451
-msgid	"Sort articles by"
-msgstr	"Sortiere Artikel nach"
-
-#: src/lang.c:1452
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines ascending\n"
-msgstr	"# Sortiere Artikel nach\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = nichts\n"
-	"#   1 = Subject absteigend\n"
-	"#   2 = Subject aufsteigend\n"
-	"#   3 = From absteigend\n"
-	"#   4 = From aufsteigend\n"
-	"#   5 = Datum absteigend\n"
-	"# * 6 = Datum aufsteigend\n"
-	"#   7 = Bewertung absteigend\n"
-	"#   8 = Bewertung aufsteigend\n"
-	"#   9 = Lines absteigend\n"
-	"#  10 = Lines aufsteigend\n"
-
-#: src/lang.c:1468
-msgid	"Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
-msgstr	"Threads nach Bewertung (Score) ordnen? <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:1469
-msgid	"Sort threads by"
-msgstr	"Sortiere Threads nach"
-
-#: src/lang.c:1470
-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	"# 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"
-
-#: src/lang.c:1478
-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:1479
-msgid	"Goto first unread article in group"
-msgstr	"Setze Cursor auf ersten ungel. Art."
-
-#: src/lang.c:1480
-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:1484
-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:1485
-msgid	"Show only unread articles"
-msgstr	"Zeige nur ungelesene Artikel"
-
-#: src/lang.c:1486
-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:1491
-msgid	"Show only groups with unread arts"
-msgstr	"Zeige nur Gruppen mit ungel. Art."
-
-#: src/lang.c:1492
-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:1497
-msgid	"Filter which articles"
-msgstr	"Filter (kill) anwenden auf"
-
-#: src/lang.c:1498
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	"# Filter (kill) anwenden auf\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = Filtert nur ungelesene Artikel\n"
-	"#   1 = Filtert alle Artikel und markiert sie mit K\n"
-	"#   2 = Filtert alle Artikel und zeigt gekillte niemals an\n"
-
-#: src/lang.c:1507
-msgid	"Tab goes to next unread article"
-msgstr	"Tab zeigt nächsten ungelesenen Art."
-
-#: src/lang.c:1508
-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:1512
-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:1513
-msgid	"Space goes to next unread article"
-msgstr	"Leertaste zeigt nächsten unge. Art."
-
-#: src/lang.c:1514
-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:1519
-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:1520
-msgid	"PgDn goes to next unread article"
-msgstr	"PgDn zeigt nächst. ungelesenen Art."
-
-#: src/lang.c:1521
-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:1527
-msgid	"List thread using right arrow key"
-msgstr	"Zeige Thread mit rechter Pfeilt. an"
-
-#: src/lang.c:1528
-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:1532
-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:1533
-msgid	"Character to show deleted articles"
-msgstr	"Zeichen für gelöschte Artikel"
-
-#: src/lang.c:1534
-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:1539
-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:1540
-msgid	"Character to show inrange articles"
-msgstr	"Zeichen für Artikel im Bereich"
-
-#: src/lang.c:1541
-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:1546
-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:1547
-msgid	"Character to show returning arts"
-msgstr	"Zeichen für wiederkehrende Artikel"
+msgid   "Mark with D on selection screen"
+msgstr  "Mit D in der Anzeige markiert"
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  "Killt nur ungelesene Artikel"
+
+#: src/lang.c:1448
+msgid   "Kill all arts & show with K"
+msgstr  "Killt alle Artikel, markiert mit K"
+
+#. TODO: s/K/art_marked_killed/
+#: src/lang.c:1449
+msgid   "Kill all arts and never show"
+msgstr  "Killt alle Artikel, zeigt sie nie"
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  "Nichts besonderes"
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  "Zitatzeichen zusammenfassen"
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  "Signaturen zitieren"
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  "Zitatz. kürzen, Signat. zitieren"
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  "Leerzeilen zitieren"
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  "Zitatz. kürzen, Leerzeilen zit."
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  "Signat. und Leerzeilen zitieren"
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  "Zitatz. kürzen, Sign & Leerz. zit."
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  "nein"
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  "mit Header"
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  "ohne Header"
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  "NFKC"
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  "NFKD"
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  "NFC"
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  "NFD"
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  "Darstellungseinstellungen"
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  "Farbeinstellungen"
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  "Artikel-Begrenzungseinstellungen"
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  "Versandeinstellungen für Mail und News"
 
 #: src/lang.c:1548
-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:1553
-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."
+msgid   "Saving/Printing Options"
+msgstr  "Speicher- und Druckereinstellungen"
 
 #: src/lang.c:1554
-msgid	"Character to show selected articles"
-msgstr	"Zeichen für wichtige Artikel"
-
-#: src/lang.c:1555
-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"
+msgid   "Expert Options"
+msgstr  "Experteneinstellungen"
 
 #: src/lang.c:1560
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	"Definiere Zeichen für aktuelle Artikel. <CR> setzt, <ESC> bricht ab."
+msgid   "Filtering Options"
+msgstr  "Filtereinstellungen"
 
-#: src/lang.c:1561
-msgid	"Character to show recent articles"
-msgstr	"Zeichen für aktuelle Artikel"
-
-#: src/lang.c:1562
-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:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "<SPACE> schaltet um, <CR> setzt, <ESC> bricht ab."
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  "Zeigt Minimenü & Posting etiquette"
 
 #: src/lang.c:1567
-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:1568
-msgid	"Character to show unread articles"
-msgstr	"Zeichen für ungelesene Artikel"
-
-#: src/lang.c:1569
-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"
+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:1572
+msgid   "Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
+msgstr  "Zeige Kurzbeschreibung für Gruppe. <SPACE> wechselt & <CR> setzt."
+
+#: src/lang.c:1573
+msgid   "Show description of each newsgroup"
+msgstr  "Zeige Beschreibung der Newsgruppen"
 
 #: src/lang.c:1574
-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:1575
-msgid	"Character to show read articles"
-msgstr	"Zeichen für gelesene Artikel"
-
-#: src/lang.c:1576
-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"
+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 Gruppennamen angezeigt\n"
+
+#: src/lang.c:1579
+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:1580
+msgid   "In group menu, show author by"
+msgstr  "Im Gruppenmenü, zeige Autor an nach"
 
 #: src/lang.c:1581
-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:1582
-msgid	"Character to show killed articles"
-msgstr	"Zeichen für gekillte Artikel"
-
-#: src/lang.c:1583
-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:1588
-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:1589
-msgid	"Character to show readselected arts"
-msgstr	"Zeichen für gelesene wichtige Art."
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  "# Anzeige des 'From:' Felds\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = nichts\n"
+        "#   1 = Adresse\n"
+        "# * 2 = Voller Name\n"
+        "#   3 = beides (Adresse und Name)\n"
 
 #: src/lang.c:1590
-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:1595
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	"Maximale Länge des angezeigten Newsgruppennamens. <CR> setzt."
-
-#: src/lang.c:1596
-msgid	"Max. length of group names shown"
-msgstr	"Max. Länge angezeigter Gruppennamen"
+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:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  "Zeige -> anstatt einer Markierung"
+
+#: src/lang.c:1592
+msgid   "# If ON use -> otherwise highlighted bar for selection\n"
+msgstr  "# Falls ON benutze -> andernfalls benutze eine Markierung zur Auswahl\n"
 
 #: src/lang.c:1597
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	"# Maximale Länge der angezeigten Newsgruppennamen\n"
+msgid   "Use inverse video for page headers"
+msgstr  "Inverse Darstellung für die Header"
 
-#: src/lang.c:1602
-msgid	"Show lines/score in listings"
-msgstr	"Zeige Zeilenz./Bewert. in Übersicht"
+#: src/lang.c:1598
+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:1603
-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	"# Welche weiteren Informationen sollen in der Artikel/Thread Übersicht\n"
-	"# angezeigt werden.\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = keine\n"
-	"#   1 = Zeilenzahl\n"
-	"#   2 = Bewertung\n"
-	"#   3 = Zeilenzahl & Bewertung\n"
-
-#: src/lang.c:1612
-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:1613
-msgid	"Number of lines to scroll in pager"
-msgstr	"Blättere Artikel um ... Zeilen"
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	"# Anzahl der Zeilen, die Cursor-Auf/Ab bei der Artikelanzeige\n"
-	"# weiterblättert.\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#  -2 = um eine halbe Seite\n"
-	"#  -1 = seitenweise, zeigt zusätzlich letzte Zeile der vorigen Seite\n"
-	"#   0 = seitenweise\n"
-	"# * 1 = zeilenweise\n"
-	"#   2 oder mehr = um 2 oder mehr Zeilen\n"
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	"Zeige Signaturen an. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	"Zeige Signaturen an"
-
-#: src/lang.c:1626
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	"# Falls OFF zeige keine Signaturen an\n"
+msgid   "Thread articles by"
+msgstr  "Threade Artikel anhand"
 
-#: src/lang.c:1630
-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:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  "# Gruppiere Artikel nach\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = nichts\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = beides (Subject und References)\n"
+        "#   4 = Mehrteilige Artikel\n"
+        "#   5 = prozentualer Subject Vergleich\n"
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  "Prozent des Subject das gleich sein muss. <CR> setzt."
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  "Prozentualer Subject Vergleich"
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  "# Prozentsatzthreading...\n"
+        "# Anteil der Zeichen im Subject eines Artikels die gleich sein müssen um zum\n"
+        "# selben Thread zu gehören. Diese Option erwartet eine positive ganze Zahl.\n"
+        "# Falls z.B. 80 verwendet wird, dann müssen mind. 80%% der Zeichen im "
+        "Subject\n"
+        "# am Stück mit dem Subject des obersten Artikels im Thread übereinstimmen um\n"
+        "# in den gleichen Thread sortiert zu werden.\n"
+
+#: src/lang.c:1629
+msgid   "Score of a thread"
+msgstr  "Bewertung eines Threads"
 
-#: src/lang.c:1631
-msgid	"Display uue data as an attachment"
-msgstr	"Zeige uue-Teile als Attachment"
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	"# Behandlung von uuencodeten Daten bei der Artikelanzeige.\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = Anzeige der Rohdaten\n"
-	"#   1 = Einzeilige Zusammenfassung für vollständige Daten\n"
-	"#       ähnlich der von MIME Anhängen\n"
-	"#   2 = Einzeilige Zusammenfassung auch für unvollständige Daten\n"
-
-#: src/lang.c:1642
-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:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	"Wandle TeX-Umlaute automatisch um"
-
-#: src/lang.c:1644
-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:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	"Durch Leerzeichen getrennte Liste der Header-Felder"
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	"Zeige diese Header-Felder (oder *)"
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	"# Welche Header wollen Sie sehen. Wenn Sie _alle_ sehen wollen, setzen\n"
-	"# Sie ein '*' als Wert ein. Dies ist die einzige Möglichkeit, um eine\n"
-	"# Wildcard zu nutzen. Wenn Sie als Wert 'X-' angeben, sehen Sie alle Header\n"
-	"# die mit 'X-' beginnen (wie X-Alan oder X-Pape). Sie können mehrere durch\n"
-	"# Leerzeichen getrennte Werte angeben. Wenn Sie hier nichts definieren\n"
-	"# wird diese Option deaktiviert.\n"
-
-#: src/lang.c:1660
-msgid	"Do not display these header fields"
-msgstr	"Zeige folgende Header nicht an"
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	"# Genau das gleiche wie 'news_headers_to_display', mit der Ausnahme,\n"
-	"# das es das Gegenteil bewirkt. Wenn Sie dachten, das die X- Header eine\n"
-	"# tolle Sachen waren, nun aber festgestellt haben, das dort einiges\n"
-	"# überflüssiges steht, dann könnten Sie wie folgt vorgehen:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Wenn Sie hier nichts angeben, wird diese Option deaktiviert.\n"
-
-#: src/lang.c:1671
-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:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	"Übersp. multipart/alternative-Teile"
-
-#: src/lang.c:1673
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	"# Falls ON entsorge multipart/alternative Teile des Artikels automatisch\n"
-
-#: src/lang.c:1678
-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:1679
-msgid	"Regex used to show quoted lines"
-msgstr	"Regulärer Ausd. für zit. Zeilen"
-
-#: src/lang.c:1680
-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	"# Ein regulärer Ausdruck, den tin benutzt um zu entscheiden, welche Zeilen\n"
-	"# zitiert sind, wenn man den Artikel liest. Zitierte Zeilen, werden in der\n"
-	"# Farbe angezeigt, die in col_quote definiert sind.\n"
-	"# Wenn Sie hier nichts angeben, werden die Voreinstellungen benutzt.\n"
-
-#: src/lang.c:1686
-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:1630
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  "# Bewertung des Threads\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = Höchster\n"
+        "#   1 = Summe\n"
+        "#   2 = Durchschnitt\n"
+
+#: src/lang.c:1638
+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:1639
+msgid   "Sort articles by"
+msgstr  "Sortiere Artikel nach"
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  "# Sortiere Artikel nach\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = nichts\n"
+        "#   1 = Subject absteigend\n"
+        "#   2 = Subject aufsteigend\n"
+        "#   3 = From absteigend\n"
+        "#   4 = From aufsteigend\n"
+        "#   5 = Datum absteigend\n"
+        "# * 6 = Datum aufsteigend\n"
+        "#   7 = Bewertung absteigend\n"
+        "#   8 = Bewertung aufsteigend\n"
+        "#   9 = Lines absteigend\n"
+        "#  10 = Lines aufsteigend\n"
+
+#: src/lang.c:1656
+msgid   "Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
+msgstr  "Threads nach Bewertung (Score) ordnen? <SPACE> wechselt & <CR> setzt."
+
+#: src/lang.c:1657
+msgid   "Sort threads by"
+msgstr  "Sortiere Threads nach"
+
+#: src/lang.c:1658
+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:1668
+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:1669
+msgid   "Go to first unread article in group"
+msgstr  "Setze Cursor auf ersten ungel. Art."
+
+#: src/lang.c:1670
+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:1674
+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:1675
+msgid   "Show only unread articles"
+msgstr  "Zeige nur ungelesene Artikel"
+
+#: src/lang.c:1676
+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:1681
+msgid   "Show only groups with unread arts"
+msgstr  "Zeige nur Gruppen mit ungel. Art."
+
+#: src/lang.c:1682
+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:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	"Reg. Ausd. für zweifach zitierte Z."
+msgid   "Filter which articles"
+msgstr  "Filter (kill) anwenden auf"
 
 #: src/lang.c:1688
-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	"# Ein regulärer Ausdruck, den tin benutzt, um zu entscheiden welche\n"
-	"# Zeilen zweifach zitiert wurden. Zweifach zitierte Zeilen werden mit der\n"
-	"# Farbe dargestellt, die in col_quote2 definiert ist.\n"
-	"# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
-
-#: src/lang.c:1694
-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:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	"Reg. Ausd. für >=3-fach zitierte Z."
-
-#: src/lang.c:1696
-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	"# Ein regulärer Ausdruck, der entscheidet, ob eine Zeile 3 mal oder öfter\n"
-	"# zitiert wurde. Zeilen, die darauf passen, werden in der Farbe\n"
-	"# dargestellt, die in col_quote3 definiert sind.\n"
-	"# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
-
-#: src/lang.c:1703
-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:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	"Reg. für /Schrägst./ Hervorhebungen"
-
-#: src/lang.c:1705
-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	"# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
-	"# zwischen '/' in col_markslashes angezeigt werden.\n"
-	"# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
-
-#: src/lang.c:1711
-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:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	"Regu. A. für *Stern* Hervorhebungen"
-
-#: src/lang.c:1713
-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	"# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
-	"# zwischen '*' in col_markstars angezeigt werden.\n"
-	"# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
-
-#: src/lang.c:1719
-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:1720
-msgid	"Regex used to highlight -strokes-"
-msgstr	"Reg. für -Durchstr.- Hervorhebungen"
-
-#: src/lang.c:1721
-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	"# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
-	"# zwischen '-' in col_markstroke angezeigt werden.\n"
-	"# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  "# Filter (kill) anwenden auf\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = Filtert nur ungelesene Artikel\n"
+        "#   1 = Filtert alle Artikel und markiert sie mit K\n"
+        "#   2 = Filtert alle Artikel und zeigt gekillte niemals an\n"
+
+#: src/lang.c:1697
+msgid   "Go to the next unread article with"
+msgstr  "Zum nächsten ungelesenen Artikel springen mit"
+
+#: src/lang.c:1698
+msgid   "# Go to the unread article with following 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:1708
+msgid   "How to treat blank lines"
+msgstr  "Wie mit Leerzeilen umgegangen werden soll"
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  "Zeige Thread mit rechter Pfeilt. an"
 
 #: src/lang.c:1727
-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:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	"Reg. für _Unterstr._ Hervorhebungen"
-
-#: src/lang.c:1729
-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	"# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
-	"# zwischen '_' in col_markdash angezeigt werden.\n"
-	"# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
-
-#: src/lang.c:1735
-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:1736
-msgid	"Regex with Subject prefixes"
-msgstr	"Reg. Ausd. für den Subjectanfang"
-
-#: src/lang.c:1737
-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:1742
-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:1743
-msgid	"Regex with Subject suffixes"
-msgstr	"Reg. Ausd. für das Subjectende"
-
-#: src/lang.c:1744
-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:1749
-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:1750
-msgid	"MIME binary content viewer"
-msgstr	"MIME-Viewer"
-
-#: src/lang.c:1751
-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	"# Falls --internal wird der eingebaute MIME-Viewer für die Anzeige von\n"
-	"# nicht Text teilen benutzt. Andernfalls das angegebene Programm\n"
-	"# (z.B. metamail). Keine Angabe schaltet die automatische Anzeige aus.\n"
-
-#: src/lang.c:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	"Start des MIME-Viewers bestätigen"
+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:1731
+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:1732
+msgid   "Character to show deleted articles"
+msgstr  "Zeichen für gelöschte Artikel"
+
+#: src/lang.c:1733
+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:1738
+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:1739
+msgid   "Character to show inrange articles"
+msgstr  "Zeichen für Artikel im Bereich"
+
+#: src/lang.c:1740
+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:1745
+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:1746
+msgid   "Character to show returning arts"
+msgstr  "Zeichen für wiederkehrende Artikel"
+
+#: src/lang.c:1747
+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:1752
+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:1753
+msgid   "Character to show selected articles"
+msgstr  "Zeichen für wichtige Artikel"
+
+#: src/lang.c:1754
+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:1759
-msgid	"Ask before using MIME viewer"
-msgstr	"Start des MIME-Viewers bestätigen"
+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:1760
-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:1765
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	"Beim Beenden anbieten, alle betretenen Gruppen als gelesen zu markieren?"
+msgid   "Character to show recent articles"
+msgstr  "Zeichen für aktuelle Artikel"
+
+#: src/lang.c:1761
+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:1766
-msgid	"Catchup read groups when quitting"
-msgstr	"Aufholen der Gruppen beim Beenden"
+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:1767
-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:1772
-msgid	"Catchup group using left key"
-msgstr	"Catchup der Gruppe mit l. Cursor"
+msgid   "Character to show unread articles"
+msgstr  "Zeichen für ungelesene Artikel"
+
+#: src/lang.c:1768
+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:1773
-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:1778
-msgid	"Catchup thread by using left key"
-msgstr	"Catchup mit der linken Cursort."
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	"Bestätigung erforderlich für"
-
-#: src/lang.c:1785
-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"
-	"# Beenden von tin, markieren aller nicht hochgescorter Artikel als\n"
-	"# gelesen (siehe 'X' Befehl im Manual).\n"
+msgid   "Enter character to indicate read articles. <CR> sets, <ESC> cancels."
+msgstr  "Zeichen für gelesene Artikel. <CR> setzt, <ESC> bricht ab."
 
-# TRANSLATION TOO LONG
-#: src/lang.c:1790
-msgid	"'Mark article read' ignores tags"
-msgstr	"'Art. gelesen markieren' ignoriert Markierte"
-
-#: src/lang.c:1791
-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:1774
+msgid   "Character to show read articles"
+msgstr  "Zeichen für gelesene Artikel"
+
+#: src/lang.c:1775
+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:1780
+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:1781
+msgid   "Character to show killed articles"
+msgstr  "Zeichen für gekillte Artikel"
+
+#: src/lang.c:1782
+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:1787
+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:1788
+msgid   "Character to show readselected arts"
+msgstr  "Zeichen für gelesene wichtige Art."
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  "Maximale Länge des angezeigten Newsgruppennamens. <CR> setzt."
 
 #: src/lang.c:1795
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	"Öffne URLs mit ... <CR> setzt, <ESC> bricht ab."
+msgid   "Max. length of group names shown"
+msgstr  "Max. Länge angezeigter Gruppennamen"
 
 #: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	"Öffne URLs mit ..."
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  "# Maximale Länge der angezeigten Newsgruppennamen\n"
 
-#: src/lang.c:1797
-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:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  "Lange Newsgruppennamen abkürzen"
 
 #: src/lang.c:1802
-msgid	"Use mouse in xterm"
-msgstr	"Maus in xterm nutzen"
-
-#: src/lang.c:1803
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	"# Falls ON wird die Maustastenunterstützung für xterm aktiviert\n"
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
 
 #: src/lang.c:1809
-msgid	"Use scroll keys on keypad"
-msgstr	"Scrollt. vom Nummernblock nutzen"
+msgid   "Show lines/score in listings"
+msgstr  "Zeige Zeilenz./Bewert. in Übersicht"
 
 #: src/lang.c:1810
-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:1815
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	"Maximale Anzahl der zu holenden Artikel eingeben. <CR> setzt."
-
-#: src/lang.c:1816
-msgid	"Number of articles to get"
-msgstr	"Anzahl der zu holenden Artikel"
-
-#: src/lang.c:1817
-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:1822
-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:1823
-msgid	"Article recentness time limit"
-msgstr	"Artikel Neuheitszeit-Limit"
-
-#: src/lang.c:1824
-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:1828
-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:1829
-msgid	"Wildcard matching"
-msgstr	"Wildcardprüfung"
-
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	"# Wildcardprüfung\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = Regulärer Ausdruck\n"
+msgid   "# What information 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  "# Welche weiteren Informationen sollen in der Artikel/Thread Übersicht\n"
+        "# angezeigt werden.\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = Nichts\n"
+        "# * 1 = Zeilenzahl\n"
+        "#   2 = Bewertung\n"
+        "#   3 = Zeilenzahl & Bewertung\n"
+
+#: src/lang.c:1819
+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:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  "Blättere Artikel um ... Zeilen"
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  "# Anzahl der Zeilen, die Cursor-Auf/Ab bei der Artikelanzeige "
+        "weiterblättert.\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#  -2 = um eine halbe Seite\n"
+        "#  -1 = seitenweise, zeigt zusätzlich letzte Zeile der vorigen Seite\n"
+        "#   0 = seitenweise\n"
+        "# * 1 = zeilenweise\n"
+        "#   2 oder mehr = um 2 oder mehr Zeilen\n"
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  "Zeige Signaturen an. <SPACE> wechselt & <CR> setzt."
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  "Zeige Signaturen an"
+
+#: src/lang.c:1833
+msgid   "# If OFF don't show signatures when displaying articles\n"
+msgstr  "# Falls OFF zeige keine Signaturen an\n"
 
 #: src/lang.c:1837
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	"Artikel mit weniger Bewertung (Score) werden als `gekillt' markiert. <CR> "
-	"setzt."
+msgid   "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
+msgstr  "Uu-kodierte Teile als Anhang anzeigen. <SPACE> wechselt & <CR> setzt."
 
 #: src/lang.c:1838
-msgid	"Score limit (kill)"
-msgstr	"Bewertungsgrenze (kill)"
+msgid   "Display uue data as an attachment"
+msgstr  "Zeige uue-Teile als Anhang an"
 
 #: src/lang.c:1839
-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:1843
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	"Bewertung für gekillte Artikel. <CR> setzt."
-
-#: src/lang.c:1844
-msgid	"Default score to kill articles"
-msgstr	"Bewertung für gekillte Artikel"
-
-#: src/lang.c:1845
-msgid	"# Default score to kill articles\n"
-msgstr	"# Bewertung für gekillte Artikel\n"
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  "# Behandlung von uuencodeten Daten bei der Artikelanzeige.\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = Anzeige der Rohdaten\n"
+        "#   1 = Einzeilige Zusammenfassung für vollständige Daten\n"
+        "#       ähnlich der von MIME-Anhängen\n"
+        "#   2 = Einzeilige Zusammenfassung auch für unvollständige Daten\n"
 
 #: src/lang.c:1849
-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."
+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:1850
-msgid	"Score limit (select)"
-msgstr	"Bewertungsgrenze (select)"
+msgid   "Display \"a as Umlaut-a"
+msgstr  "Wandle TeX-Umlaute automatisch um"
 
 #: src/lang.c:1851
-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:1855
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	"Bewertung für wichtige Artikel (hot). <CR> setzt."
-
-#: src/lang.c:1856
-msgid	"Default score to select articles"
-msgstr	"Bewertung für wichtige Artikel"
+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:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  "Durch Leerzeichen getrennte Liste der Header-Felder"
 
 #: src/lang.c:1857
-msgid	"# Default score to select articles\n"
-msgstr	"# Bewertung für wichtige Artikel (hot)\n"
+msgid   "Display these header fields (or *)"
+msgstr  "Zeige diese Header-Felder (oder *)"
 
-#: src/lang.c:1863
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	"''X-Face:''s mit slrnface Anzeigen"
-
-#: src/lang.c:1864
-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:1872
-msgid	"Use ANSI color"
-msgstr	"Benutze ANSI-Farben"
-
-#: src/lang.c:1873
-msgid	"# If ON using ANSI-color\n"
-msgstr	"# Falls ON benutze ANSI-Farben\n"
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  "# Welche Header wollen Sie sehen. Wenn Sie _alle_ sehen wollen, setzen\n"
+        "# Sie ein '*' als Wert ein. Dies ist die einzige Möglichkeit, um eine\n"
+        "# Wildcard zu nutzen. Wenn Sie als Wert 'X-' angeben, sehen Sie alle Header\n"
+        "# die mit 'X-' beginnen (wie X-Alan oder X-Pape). Sie können mehrere durch\n"
+        "# Leerzeichen getrennte Werte angeben. Wenn Sie hier nichts definieren\n"
+        "# wird diese Option deaktiviert.\n"
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  "Zeige folgende Header nicht an"
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  "# Genau das gleiche wie 'news_headers_to_display', mit der Ausnahme,\n"
+        "# das es das Gegenteil bewirkt. Wenn Sie dachten, das die X- Header eine\n"
+        "# tolle Sachen waren, nun aber festgestellt haben, das dort einiges\n"
+        "# überflüssiges steht, dann könnten Sie wie folgt vorgehen:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Wenn Sie hier nichts angeben, wird diese Option deaktiviert.\n"
 
 #: src/lang.c:1878
-msgid	"Standard foreground color"
-msgstr	"Standard Vordergrundfarbe"
+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:1879
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standard Vordergrundfarbe\n"
-	"# Voreinstellung: -1 (Standard Farbe)\n"
+msgid   "Skip multipart/alternative parts"
+msgstr  "Übersp. multipart/alternative-Teile"
+
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  "# Falls ON entsorge multipart/alternative Teile des Artikels automatisch\n"
+
+#: src/lang.c:1884
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1885
-msgid	"Standard background color"
-msgstr	"Standard Hintergrundfarbe"
+msgid   "Detection of verbatim blocks"
+msgstr  ""
 
 #: src/lang.c:1886
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standard Hintergrundfarbe\n"
-	"# Voreinstellung: -1 (Standard Farbe)\n"
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  ""
+
+#: src/lang.c:1891
+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:1892
-msgid	"Color for inverse text (background)"
-msgstr	"Farbe des inversen Text (Hinterg.)"
+msgid   "Regex used to show quoted lines"
+msgstr  "Regulärer Ausd. für zit. Zeilen"
 
 #: src/lang.c:1893
-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"
+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  "# Ein regulärer Ausdruck, den tin benutzt um zu entscheiden, welche Zeilen\n"
+        "# zitiert sind, wenn man den Artikel liest. Zitierte Zeilen, werden in der\n"
+        "# Farbe angezeigt, die in col_quote definiert sind.\n"
+        "# Wenn Sie hier nichts angeben, werden die Voreinstellungen benutzt.\n"
 
 #: src/lang.c:1899
-msgid	"Color for inverse text (foreground)"
-msgstr	"Farbe des inversen Text (Vordergr.)"
+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:1900
-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:1906
-msgid	"Color of text lines"
-msgstr	"Farbe der Textzeilen"
+msgid   "Regex used to show twice quoted l."
+msgstr  "Reg. Ausd. für zweifach zitierte Z."
+
+#: src/lang.c:1901
+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  "# Ein regulärer Ausdruck, den tin benutzt, um zu entscheiden welche\n"
+        "# Zeilen zweifach zitiert wurden. Zweifach zitierte Zeilen werden mit der\n"
+        "# Farbe dargestellt, die in col_quote2 definiert ist.\n"
+        "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
 
 #: src/lang.c:1907
-msgid	"# Color of text lines\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Farbe der Textzeilen\n"
-	"# Voreinstellung: -1 (Standard Farbe)\n"
-
-#: src/lang.c:1913
-msgid	"Color of mini help menu"
-msgstr	"Farbe des Minihilfemenü"
-
-#: src/lang.c:1914
-msgid	"# Color of mini help menu\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Farbe des Minihilfemenü\n"
-	"# Voreinstellung: 3 (braun)\n"
-
-#: src/lang.c:1920
-msgid	"Color of help text"
-msgstr	"Farbe des Hilfstext"
-
-#: src/lang.c:1921
-msgid	"# Color of help pages\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Farbe der Hilfsseiten\n"
-	"# Voreinstellung: -1 (Standard Farbe)\n"
-
-#: src/lang.c:1927
-msgid	"Color of status messages"
-msgstr	"Farbe der Statusmeldungen"
-
-#: src/lang.c:1928
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Farbe der letzten Zeile im Artikel\n"
-	"# Voreinstellung: 6 (cyan)\n"
+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:1934
-msgid	"Color of quoted lines"
-msgstr	"Farbe der zitierten Zeilen"
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  "Reg. Ausd. für >=3-fach zitierte Z."
+
+#: src/lang.c:1909
+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  "# Ein regulärer Ausdruck, der entscheidet, ob eine Zeile 3 mal oder öfter\n"
+        "# zitiert wurde. Zeilen, die darauf passen, werden in der Farbe\n"
+        "# dargestellt, die in col_quote3 definiert sind.\n"
+        "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
+
+#: src/lang.c:1916
+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:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  "Reg. für /Schrägst./ Hervorhebungen"
+
+#: src/lang.c:1918
+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  "# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
+        "# zwischen '/' in col_markslashes angezeigt werden.\n"
+        "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
+
+#: src/lang.c:1924
+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:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  "Regu. A. für *Stern* Hervorhebungen"
+
+#: src/lang.c:1926
+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  "# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
+        "# zwischen '*' in col_markstars angezeigt werden.\n"
+        "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
+
+#: src/lang.c:1932
+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:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  "Reg. für -Durchstr.- Hervorhebungen"
 
-#: src/lang.c:1935
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Farbe der zitierten Zeilen\n"
-	"# Voreinstellung: 2 (grün)\n"
+#: src/lang.c:1934
+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  "# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
+        "# zwischen '-' in col_markstroke angezeigt werden.\n"
+        "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
+
+#: src/lang.c:1940
+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:1941
-msgid	"Color of twice quoted line"
-msgstr	"Farbe von zweifach zitierten Zeilen"
+msgid   "Regex used to highlight _underline_"
+msgstr  "Reg. für _Unterstr._ Hervorhebungen"
 
 #: src/lang.c:1942
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Farbe von zweifach zitierten Zeilen\n"
-	"# Voreinstellung: 3 (braun)\n"
+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  "# Ein regulärer Ausdruck, der entscheidet, welche Wörter\n"
+        "# zwischen '_' in col_markdash angezeigt werden.\n"
+        "# Wenn Sie hier nichts eingeben, werden die Voreinstellungen benutzt.\n"
 
 #: src/lang.c:1948
-msgid	"Color of =>3 times quoted line"
-msgstr	"Farbe von =>3-fach zitierten Zeilen"
+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:1949
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Farbe von =>3-fach zitierten Zeilen\n"
-	"# Voreinstellung: 4 (blau)\n"
+msgid   "Regex with Subject prefixes"
+msgstr  "Reg. Ausd. für den Subjectanfang"
+
+#: src/lang.c:1950
+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:1955
-msgid	"Color of article header lines"
-msgstr	"Farbe der Artikelheaderzeilen"
+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:1956
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Farbe der Artikelheaderzeilen\n"
-	"# Voreinstellung: 2 (grün)\n"
+msgid   "Regex with Subject suffixes"
+msgstr  "Reg. Ausd. für das Subjectende"
+
+#: src/lang.c:1957
+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:1962
-msgid	"Color of actual news header fields"
-msgstr	"Farbe des angezeigten Headers"
+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:1963
-msgid	"# Color of actual news header fields\n"
-	"# Default: 9 (light red)\n"
-msgstr	"# Farbe des angezeigten Headers\n"
-	"# Voreinstellung: 9 (hellrot)\n"
+msgid   "Regex for begin of a verbatim block"
+msgstr  "Reg. Ausd. für den Anfang eines wortgetreu wiederzugebenden Absatzes"
+
+#: src/lang.c:1964
+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:1969
-msgid	"Color of article subject lines"
-msgstr	"Farbe der Subjectzeile"
+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:1970
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Farbe der Subjectzeile\n"
-	"# Voreinstellung: 6 (cyan)\n"
+msgid   "Regex for end of a verbatim block"
+msgstr  "Reg. Ausd. für das Ende eines wortgetreu wiederzugebenden Absatzes"
+
+#: src/lang.c:1971
+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:1976
-msgid	"Color of response counter"
-msgstr	"Farbe des Antwortzählers"
+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:1977
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Farbe des Antwortzählers\n"
-	"# Voreinstellung: 2 (grün)\n"
-
-#: src/lang.c:1983
-msgid	"Color of sender (From:)"
-msgstr	"Farbe des Autors (From:)"
-
-#: src/lang.c:1984
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Farbe des Autors (From:)\n"
-	"# Voreinstellung: 2 (grün)\n"
-
-#: src/lang.c:1990
-msgid	"Color of help/mail sign"
-msgstr	"Farbe des Hilfe/Mail-Zeichen"
-
-#: src/lang.c:1991
-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:1997
-msgid	"Color of signatures"
-msgstr	"Farbe von Signaturen"
-
-#: src/lang.c:1998
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Farbe von Signaturen\n"
-	"# Voreinstellung: 4 (blau)\n"
-
-#: src/lang.c:2004
-msgid	"Color of highlighted URLs"
-msgstr	"Farbe der hervorgehobenen URLs"
+msgid   "MIME binary content viewer"
+msgstr  "MIME-Viewer"
+
+#: src/lang.c:1978
+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  "# Falls --internal wird der eingebaute MIME-Viewer für die Anzeige von\n"
+        "# nicht Text teilen benutzt. Andernfalls das angegebene Programm\n"
+        "# (z.B. metamail). Keine Angabe schaltet die automatische Anzeige aus.\n"
+
+#: src/lang.c:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  "Start des MIME-Viewers bestätigen"
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  "Start des MIME-Viewers bestätigen"
+
+#: src/lang.c:1987
+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:1992
+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:1993
+msgid   "Catchup read groups when quitting"
+msgstr  "Catchup der Gruppen beim Beenden"
+
+#: src/lang.c:1994
+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:1999
+msgid   "Catchup group using left key"
+msgstr  "Catchup der Gruppe mit l. Cursor"
+
+#: src/lang.c:2000
+msgid   "# If ON catchup group/thread when leaving with the left arrow key.\n"
+msgstr  "# Falls ON: Catchup (als gelesen markieren) der Gruppe/des Threads\n"
+        "#           beim Verlassen mit der linken Cursortaste\n"
 
 #: src/lang.c:2005
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Farbe der hervorgehobenen URLs\n"
-	"# Voreinstellung: -1 (Standard Farbe)\n"
+msgid   "Catchup thread by using left key"
+msgstr  "Catchup mit der linken Cursort."
 
 #: src/lang.c:2011
-msgid	"Color of highlighting with *stars*"
-msgstr	"Farbe der Hervorhebung *Sterne*"
+msgid   "Which actions require confirmation"
+msgstr  "Bestätigung erforderlich für"
 
 #: src/lang.c:2012
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	"# Farbe der Hervorhebung durch *Sterne*\n"
-	"# Voreinstellung: 11 (gelb)\n"
+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"
+        "# Beenden von tin, markieren aller nicht hochgescorter Artikel als\n"
+        "# gelesen (siehe 'X' Befehl im Manual).\n"
 
-#: src/lang.c:2018
-msgid	"Color of highlighting with _dash_"
-msgstr	"Farbe der Hervorhebung _Striche_"
+# TRANSLATION TOO LONG
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  "'Art. (un)gelesen markieren' ignoriert Markierte"
 
-#: src/lang.c:2019
-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:2025
-msgid	"Color of highlighting with /slash/"
-msgstr	"Farbe der Hervorhebung /Schrägstr./"
-
-#: src/lang.c:2026
-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:2032
-msgid	"Color of highlighting with -stroke-"
-msgstr	"Farbe der Hervorhebung -Durchstr.-"
-
-#: src/lang.c:2033
-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:2040
-msgid	"Attr. of highlighting with *stars*"
-msgstr	"Hervorhebungsattribute *Sterne*"
-
-#: src/lang.c:2041
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	"# Attribute der Hervorhebung von Wörtern auf monochromen Terminals.\n"
-	"# Mögliche Werte sind:\n"
-	"#   0 = normal\n"
-	"#   1 = unterstrichen\n"
-	"#   2 = beste Hervorhebung\n"
-	"#   3 = invers\n"
-	"#   4 = blinkend\n"
-	"#   5 = halbe Helligkeit\n"
-	"#   6 = fett\n"
-	"\n"
-	"# Hervorhebungsattribut für *Sterne*\n"
-	"# Voreinstellung: 6 (fett)\n"
+#: src/lang.c:2018
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  "# Falls ON wird mit der Funktion 'Art. (un)gelesen markieren' nur\n"
+        "# der jeweilige Artikel markiert.\n"
+
+#: src/lang.c:2022
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  "Öffne URLs mit ... <CR> setzt, <ESC> bricht ab."
+
+#: src/lang.c:2023
+msgid   "Program that opens URLs"
+msgstr  "Öffne URLs mit ..."
+
+#: src/lang.c:2024
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  "# Programm zum Öffnen von URLs, die jeweilige URL wird hinten angehängt.\n"
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  "Maus in xterm nutzen"
+
+#: src/lang.c:2030
+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:2036
+msgid   "Use scroll keys on keypad"
+msgstr  "Scrollt. vom Nummernblock nutzen"
+
+#: src/lang.c:2037
+msgid   "# If ON enable scroll keys on terminals that support it\n"
+msgstr  "# Falls ON werden die Scrolltasten genutzt (Terminal abhängig)\n"
+
+#: src/lang.c:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  "Maximale Anzahl der zu holenden Artikel eingeben. <CR> setzt."
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  "Anzahl der zu holenden Artikel"
+
+#: src/lang.c:2044
+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:2049
+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:2050
+msgid   "Article recentness time limit"
+msgstr  "Artikel Neuheitszeit-Limit"
+
+#: src/lang.c:2051
+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:2055
+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:2056
-msgid	"Attr. of highlighting with _dash_"
-msgstr	"Hervorhebungsattr. _Unterstriche_"
+msgid   "Wildcard matching"
+msgstr  "Wildcardprüfung"
 
 #: src/lang.c:2057
-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:2063
-msgid	"Attr. of highlighting with /slash/"
-msgstr	"Hervorhebungsattr. /Schrägstriche/"
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  "# Wildcardprüfung\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = Regulärer Ausdruck\n"
 
 #: src/lang.c:2064
-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"
+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:2065
+msgid   "Score limit (kill)"
+msgstr  "Bewertungsgrenze (kill)"
+
+#: src/lang.c:2066
+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:2070
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	"Hervorhebungsattr. -Durchstreich.-"
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  "Bewertung für gekillte Artikel. <CR> setzt."
 
 #: src/lang.c:2071
-msgid	"# Attribute of word highlighting with -stroke-\n"
-	"# Default: 3 (reverse video)\n"
-msgstr	"# Hervorhebungsattribut für -Durchstreichen-\n"
-	"# Voreinstellung: 3 (Invers)\n"
+msgid   "Default score to kill articles"
+msgstr  "Bewertung für gekillte Artikel"
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  "# Bewertung für gekillte Artikel\n"
+
+#: src/lang.c:2076
+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:2077
-msgid	"URL highlighting in message body"
-msgstr	"URL-Hervorhebung im Artikel"
+msgid   "Score limit (select)"
+msgstr  "Bewertungsgrenze (select)"
 
 #: src/lang.c:2078
-msgid	"# Enable URL highlighting?\n"
-msgstr	"# URL-Hervorhebung aktivieren?\n"
+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:2082
+msgid   "Enter default score to select articles. <CR> sets."
+msgstr  "Bewertung für wichtige Artikel (hot). <CR> setzt."
 
 #: src/lang.c:2083
-msgid	"Word highlighting in message body"
-msgstr	"Wort-Hervorhebung im Artikel"
+msgid   "Default score to select articles"
+msgstr  "Bewertung für wichtige Artikel"
 
 #: src/lang.c:2084
-msgid	"# Enable word highlighting?\n"
-msgstr	"# Wort-Hervorhebung aktivieren?\n"
-
-#: src/lang.c:2089
-msgid	"What to display instead of mark"
-msgstr	"Anstelle der Markierung anzeigen"
+msgid   "# Default score to select articles\n"
+msgstr  "# Bewertung für wichtige Artikel (hot)\n"
 
 #: src/lang.c:2090
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	"# Sollen die führenden und abschließenden Sterne und Striche dargestellt\n"
-	"# werden, auch wenn sie Hervorhebungsmarkierungen sind?\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = nein\n"
-	"#   1 = ja, anzeigen\n"
-	"# * 2 = Leerzeichen anstelle darstellen\n"
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  "''X-Face:''s mit slrnface Anzeigen"
+
+#: src/lang.c:2091
+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:2099
-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."
+msgid   "Use ANSI color"
+msgstr  "Benutze ANSI-Farben"
 
 #: src/lang.c:2100
-msgid	"Page line wrap column"
-msgstr	"Zeilen umbrechen nach"
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# Falls ON benutze ANSI-Farben\n"
 
-#: src/lang.c:2101
-msgid	"# Wrap article lines at column\n"
-msgstr	"# In der Artikelanzeige Zeilen umbrechen bei Spalte\n"
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  "Standard Vordergrundfarbe"
 
 #: src/lang.c:2106
-msgid	"Wrap around threads on next unread"
-msgstr	"Nä.ungel.-kein Abbr. am Listenende?"
-
-#: src/lang.c:2107
-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:2111
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	"Standard Mail-Adresse (und Name) eingeben. <CR> setzt."
+msgid   "# Standard foreground color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standard Vordergrundfarbe\n"
+        "# Voreinstellung: -1 (Standard Farbe)\n"
 
 #: src/lang.c:2112
-msgid	"Mail address (and fullname)"
-msgstr	"Mailadresse (und Name)"
+msgid   "Standard background color"
+msgstr  "Standard Hintergrundfarbe"
 
 #: src/lang.c:2113
-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:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	"Leeres Fup'2 im Editor anzeigen"
+msgid   "# Standard background color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standard Hintergrundfarbe\n"
+        "# Voreinstellung: -1 (Standard Farbe)\n"
 
 #: src/lang.c:2119
-msgid	"# If ON show empty Followup-To header when editing an article\n"
-msgstr	"# Wenn ON, zeige leeren Followup-To:-Header im Editor\n"
+msgid   "Color for inverse text (background)"
+msgstr  "Farbe des inversen Text (Hinterg.)"
 
-#: src/lang.c:2123
-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:2124
-msgid	"Create signature from path/command"
-msgstr	"Erzeuge Signatur aus Pfad/Kommando"
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	"# Pfad der Sig (Zufällige Sigs)/Datei die für Antworten genutzt wird\n"
-	"# default_sigfile=Datei     fügt Datei als Signatur an\n"
-	"# default_sigfile=!Kommando führt Kommando aus um Sig zu erzeugen\n"
-	"# default_sigfile=--none    hängt keine Signatur an\n"
-
-#: src/lang.c:2132
-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:2120
+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:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  "Farbe des inversen Text (Vordergr.)"
+
+#: src/lang.c:2127
+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:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	"Trenne Sig mit \"-- \" ab"
+msgid   "Color of text lines"
+msgstr  "Farbe der Textzeilen"
 
 #: src/lang.c:2134
-msgid	"# If ON prepend the signature with dashes '\\n-- \\n'\n"
-msgstr	"# Falls ON trenne Signatur mit '\\n-- \\n' ab\n"
-
-#: src/lang.c:2138
-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:2139
-msgid	"Add signature when reposting"
-msgstr	"Signatur beim Reposten anhängen"
+msgid   "# Color of text lines\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Farbe der Textzeilen\n"
+        "# Voreinstellung: -1 (Standard Farbe)\n"
 
 #: src/lang.c:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	"# Falls ON wird die Signatur auch an repostete Artikel angehängt.\n"
+msgid   "Color of mini help menu"
+msgstr  "Farbe des Minihilfemenü"
 
-#: src/lang.c:2144
-#, 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:2145
-msgid	"Characters used as quote-marks"
-msgstr	"Zitatzeichen"
-
-#: src/lang.c:2146
-#, 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:2152
-msgid	"Quoting behavior"
-msgstr	"Zitierverhalten"
-
-#: src/lang.c:2153
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	"# Spezielle Optionen beim Zitieren\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = nichts besonderes\n"
-	"#   1 = Zitatzeichen zusammenziehen: '>>> ' statt '> > > '\n"
-	"#   2 = Signaturen zitieren\n"
-	"#   3 = Zitatzeichen zusammenziehen & Signaturen zitieren\n"
-	"#   4 = Leerzeilen zitieren\n"
-	"# * 5 = Zitatzeichen zusammenziehen & Leerzeilen zitieren\n"
-	"#   6 = Signaturen zitieren & Leerzeilen zitieren\n"
-	"#   7 = Zitatzeichen zusammenziehen & Signaturen zitieren & Leerzeilen "
-	"zitieren\n"
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-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:2167
-msgid	"Quote line when following up"
-msgstr	"Einleitungszeile beim Antworten"
+#: src/lang.c:2141
+msgid   "# Color of mini help menu\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# Farbe des Minihilfemenü\n"
+        "# Voreinstellung: 3 (braun)\n"
+
+#: src/lang.c:2147
+msgid   "Color of help text"
+msgstr  "Farbe des Hilfstext"
+
+#: src/lang.c:2148
+msgid   "# Color of help pages\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Farbe der Hilfsseiten\n"
+        "# Voreinstellung: -1 (Standard Farbe)\n"
+
+#: src/lang.c:2154
+msgid   "Color of status messages"
+msgstr  "Farbe der Statusmeldungen"
+
+#: src/lang.c:2155
+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:2161
+msgid   "Color of quoted lines"
+msgstr  "Farbe der zitierten Zeilen"
+
+#: src/lang.c:2162
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farbe der zitierten Zeilen\n"
+        "# Voreinstellung: 2 (grün)\n"
 
 #: src/lang.c:2168
-#, 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	"# Format der Einleitungszeile beim Schreiben/Beantworten von Artikeln\n"
-	"# %%A Adresse  %%D Datum  %%F Adr+Name  %%G Gruppenname  %%M Message-ID\n"
-	"# %%N Voller Name  %%C Vorname  %%I Initialen\n"
+msgid   "Color of twice quoted line"
+msgstr  "Farbe von zweifach zitierten Zeilen"
+
+#: src/lang.c:2169
+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:2175
-msgid	"Quote line when cross-posting"
-msgstr	"Einleitungszeile beim Crossposten"
+msgid   "Color of =>3 times quoted line"
+msgstr  "Farbe von =>3-fach zitierten Zeilen"
 
-#: src/lang.c:2181
-msgid	"Quote line when mailing"
-msgstr	"Einleitungszeile bei Mailantwort"
-
-#: src/lang.c:2186
-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:2187
-msgid	"Insert 'User-Agent:'-header"
-msgstr	"Füge 'User-Agent:'-header ein"
-
-#: src/lang.c:2188
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	"# Falls ON füge 'User-Agent: header' ein\n"
-
-#: src/lang.c:2193
-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:2194
-msgid	"MM_CHARSET"
-msgstr	"MM_CHARSET"
-
-#: src/lang.c:2195
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	"# Der lokale Zeichensatz, der auch für MIME- und Content-Type-Header\n"
-	"# genutzt wird.\n"
-	"# Wenn der Wert nicht hier gesetzt wird, wird die Umgebungsvariable "
-	"MM_CHARSET\n"
-	"# benutzt, ansonsten wird US-ASCII oder der bei Kompilieren angegebene Wert\n"
-	"# verwendet.\n"
-	"# War während des Kompilierens MIME_STRICT_CHARSET\n"
-	"# definiert, werden andere Zeichensätze als mm_charset nicht dargestellt\n"
-	"# und die jeweiligen Zeichen durch ein '?' ersetzt.\n"
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	"MM_NETWORK_CHARSET"
-
-#: src/lang.c:2206
-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:2212
-msgid	"Mailbox format"
-msgstr	"Mailbox-Format"
-
-#: src/lang.c:2213
-msgid	"# Format of the mailbox.\n"
-msgstr	"# Format der Mailbox.\n"
+#: src/lang.c:2176
+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:2182
+msgid   "Color of article header lines"
+msgstr  "Farbe der Artikelheaderzeilen"
+
+#: src/lang.c:2183
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farbe der Artikelheaderzeilen\n"
+        "# Voreinstellung: 2 (grün)\n"
+
+#: src/lang.c:2189
+msgid   "Color of actual news header fields"
+msgstr  "Farbe des angezeigten Headers"
+
+#: src/lang.c:2190
+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:2196
+msgid   "Color of article subject lines"
+msgstr  "Farbe der Subjectzeile"
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Farbe der Subjectzeile\n"
+        "# Voreinstellung: 6 (cyan)\n"
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  "Farbe des Antwortzählers"
+
+#: src/lang.c:2204
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farbe des Antwortzählers\n"
+        "# Voreinstellung: 2 (grün)\n"
+
+#: src/lang.c:2210
+msgid   "Color of sender (From:)"
+msgstr  "Farbe des Autors (From:)"
+
+#: src/lang.c:2211
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Farbe des Autors (From:)\n"
+        "# Voreinstellung: 2 (grün)\n"
+
+#: src/lang.c:2217
+msgid   "Color of help/mail sign"
+msgstr  "Farbe des Hilfe/Mail-Zeichens"
 
 #: src/lang.c:2218
-msgid	"MIME encoding in news messages"
-msgstr	"MIME-Kodierung in Newsartikeln"
-
-#: src/lang.c:2219
-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"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	"# MIME-Kodierung (8bit, base64, quoted-printable, 7bit) des Textkörpers "
-	"(Body)\n"
-	"# von Mails oder Postings (falls nötig). QP ist sinnvoll für die meisten\n"
-	"# Europäischen Zeichensätze (ISO-8859-X), die nur einen kleinen Anteil\n"
-	"# von nicht-US-ASCII Zeichen haben, während Base64 die bessere Wahl für\n"
-	"# die meisten 8Bit Zeichensätze aus Ostasien, Griechenland und Russland\n"
-	"# ist, da dort gehäuft 8Bit Zeichen vorkommen.\n"
-
-#: src/lang.c:2227 src/lang.c:2248
-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:2228
-msgid	"Use 8bit characters in news headers"
-msgstr	"Benutze 8bit-Zeichen im Newsheader"
-
-#: src/lang.c:2229
-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	"# Wenn ON werden 8-Bit-Zeichen (wie z.B. Umlaute) im Header von\n"
-	"# Newsartikeln NICHT kodiert.\n"
-	"# Voreinstellung ist OFF, d.h. 8-Bit-Zeichen werden kodiert.\n"
-	"# 8-Bit-Zeichen in Newsheadern werden unabhängig von dieser Einstellung\n"
-	"# kodiert, wenn post_mime_encoding nicht auch auf 8bit eingestellt\n"
-	"# ist.\n"
-
-#: src/lang.c:2236
-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:2237
-msgid	"View post-processed files"
-msgstr	"Nachbearbeitete Artikel anzeigen"
+msgid   "# Color of Help/Mail-Sign\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Farbe des Hilfe/Mail-Zeichens\n"
+        "# Voreinstellung: 4 (blau)\n"
+
+#: src/lang.c:2224
+msgid   "Color of signatures"
+msgstr  "Farbe von Signaturen"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Farbe von Signaturen\n"
+        "# Voreinstellung: 4 (blau)\n"
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  "Farbe der hervorgehobenen URLs"
+
+#: src/lang.c:2232
+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:2238
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	"# Wenn ON werden nachbearbeitete Artikel automatisch angezeigt.\n"
+msgid   "Color of verbatim blocks"
+msgstr  ""
 
-#: src/lang.c:2243
-msgid	"MIME encoding in mail messages"
-msgstr	"MIME-Kodierung für E-Mails"
-
-#: src/lang.c:2249
-msgid	"Use 8bit characters in mail headers"
-msgstr	"Benutze 8bit Zeichen im Mail Header"
-
-#: src/lang.c:2250
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	"# Wenn ON werden 8-Bit-Zeichen (wie z.B. Umlaute) im Header von\n"
-	"# E-Mails NICHT kodiert.\n"
-	"# Voreinstellung ist OFF, d.h. 8-Bit-Zeichen werden kodiert.\n"
-	"# 8-Bit-Zeichen in E-Mailheadern werden unabhängig von dieser Einstellung\n"
-	"# kodiert, wenn mail_mime_encoding nicht auch auf 8bit eingestellt\n"
-	"# ist. Beachten Sie aber, dass RFC 2822 8-Bit-Zeichen in\n"
-	"# 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:2239
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  ""
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  "Farbe der Hervorhebung *Sterne*"
+
+#: src/lang.c:2246
+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:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  "Farbe der Hervorhebung _Striche_"
+
+#: src/lang.c:2253
+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:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  "Farbe der Hervorhebung /Schrägstr./"
 
 #: src/lang.c:2260
-msgid	"Strip blanks from ends of lines"
-msgstr	"Leerzeichen am Zeilenende entfernen"
-
-#: src/lang.c:2261
-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"
+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:2266
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	"Wenn ON verwende Umschreibungen. <SPACE> wechselt & <CR> setzt."
+msgid   "Color of highlighting with -stroke-"
+msgstr  "Farbe der Hervorhebung -Durchstr.-"
 
 #: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	"Verwende Umschreibungen"
-
-#: src/lang.c:2268
-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	"# Wenn ON verwende //TRANSLIT Erweiterung. Das heisst, dass nicht\n"
-	"# darstellbare Zeichen durch Umschreibungen oder ähnlich aussehende\n"
-	"# Zeichen ersetzt werden. So würde z.B. das Euro-Symbol auf einem latin-1\n"
-	"# Terminal als EUR umschrieben, ohne //TRANSLIT würde tin ein\n"
-	"# Fragezeichen verwenden.\n"
+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:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  "Hervorhebungsattribute *Sterne*"
 
 #: src/lang.c:2275
-msgid	"Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	"Sendet ihnen automatisch eine Kopie. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:2276
-msgid	"Send you a cc automatically"
-msgstr	"Sendet Ihnen ein Cc automatisch"
-
-#: src/lang.c:2277
-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:2281
-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:2282
-msgid	"Send you a blind cc automatically"
-msgstr	"Sendet Ihnen eine blinde cc autom."
-
-#: src/lang.c:2283
-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:2287
-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:2288
-msgid	"Spamtrap warning address parts"
-msgstr	"Spamfallenwarnung in Adresse"
-
-#: src/lang.c:2289
-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:2294
-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:2295
-msgid	"No. of days a filter entry is valid"
-msgstr	"Tage, die ein Filter gültig ist"
-
-#: src/lang.c:2296
-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:2300
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	"Gepostete Artikel zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
-
-#: src/lang.c:2301
-msgid	"Add posted articles to filter"
-msgstr	"Füge gepostete Artikel zum Filter"
-
-#: src/lang.c:2302
-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:2306
-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:2307
-msgid	"Mail directory"
-msgstr	"Mail Verzeichnis"
-
-#: src/lang.c:2308
-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:2313
-msgid	"Save articles in batch mode (-S)"
-msgstr	"Speicher Artikel im Batchmode (-S)"
-
-#: src/lang.c:2314
-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:2319
-msgid	"The directory where you want articles/threads saved."
-msgstr	"Das Verzeichnis, in dem Artikel/Threads gespeichert werden sollen."
-
-#: src/lang.c:2320
-msgid	"Directory to save arts/threads in"
-msgstr	"Verz. um Art/Threads zu speichern"
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	"# Verzeichnis in dem Artikel/Threads gespeichert werden\n"
-
-#: src/lang.c:2325
-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:2326
-msgid	"Use Archive-name: header for save"
-msgstr	"Nutze Archive-name: zum Speichern"
-
-#: src/lang.c:2327
-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:2332
-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."
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  "# Attribute der Hervorhebung von Wörtern auf monochromen Terminals.\n"
+        "# Mögliche Werte sind:\n"
+        "#   0 = normal\n"
+        "#   1 = unterstrichen\n"
+        "#   2 = beste Hervorhebung\n"
+        "#   3 = invers\n"
+        "#   4 = blinkend\n"
+        "#   5 = halbe Helligkeit\n"
+        "#   6 = fett\n"
+        "\n"
+        "# Hervorhebungsattribut für *Sterne*\n"
+        "# Voreinstellung: 6 (fett)\n"
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  "Hervorhebungsattr. _Unterstriche_"
+
+#: src/lang.c:2291
+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:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  "Hervorhebungsattr. /Schrägstriche/"
+
+#: src/lang.c:2298
+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:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  "Hervorhebungsattr. -Durchstreich.-"
+
+#: src/lang.c:2305
+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:2311
+msgid   "URL highlighting in message body"
+msgstr  "URL-Hervorhebung im Artikel"
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  "# URL-Hervorhebung aktivieren?\n"
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  "Wort-Hervorhebung im Artikel"
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  "# Wort-Hervorhebung aktivieren?\n"
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  "Anstelle der Markierung anzeigen"
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  "# Sollen die führenden und abschließenden Sterne und Striche dargestellt\n"
+        "# werden, auch wenn sie Hervorhebungsmarkierungen sind?\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = nein\n"
+        "#   1 = ja, anzeigen\n"
+        "# * 2 = Leerzeichen anstelle darstellen\n"
 
 #: src/lang.c:2333
-msgid	"Mark saved articles/threads as read"
-msgstr	"Mark. gesp. Artikel/Threads gelesen"
+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:2334
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	"# Falls ON werden gespeicherte Artikel als gelesen markiert\n"
+msgid   "Page line wrap column"
+msgstr  "Zeilen umbrechen nach"
 
-#: src/lang.c:2338
-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:2339
-msgid	"Post process saved articles"
-msgstr	"Nachbearbeiten gespeichert. Artikel"
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  "# In der Artikelanzeige Zeilen umbrechen bei Spalte\n"
 
 #: src/lang.c:2340
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	"# Nachbearbeiten gespeicherter Artikel\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = nein\n"
-	"#   1 = ja\n"
-	"#   2 = nur Shell Archive (shar) auspacken\n"
-
-#: src/lang.c:2349
-msgid	"Process only unread articles"
-msgstr	"Bearbeite nur ungelesene Artikel"
-
-#: src/lang.c:2350
-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:2355
-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:2356
-msgid	"Print all headers when printing"
-msgstr	"Alle Header beim Drucken ausgeben"
+msgid   "Wrap around threads on next unread"
+msgstr  "Nä.ungel.-kein Abbr. am Listenende?"
+
+#: src/lang.c:2341
+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:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  "Standard Mail-Adresse (und Name) eingeben. <CR> setzt."
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  "Mailadresse (und Name)"
+
+#: src/lang.c:2347
+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:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  "Leeres Fup'2 im Editor anzeigen"
+
+#: src/lang.c:2353
+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:2357
-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:2361
-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:2362
-msgid	"Printer program with options"
-msgstr	"Druckprogramm mit Optionen"
-
-#: src/lang.c:2363
-msgid	"# Print program with parameters used to print articles/threads\n"
-msgstr	"# Druckprogramm mit Optionen zum drucken der Artikel/Threads\n"
-
-#: src/lang.c:2369
-msgid	"Force redraw after certain commands"
-msgstr	"Anzeigeauffrischung nach Kommandos"
-
-#: src/lang.c:2370
-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"
+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:2358
+msgid   "Create signature from path/command"
+msgstr  "Erzeuge Signatur aus Pfad/Kommando"
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  "# Pfad der Sig (Zufällige Sigs)/Datei die für Antworten genutzt wird\n"
+        "# sigfile=Datei      fügt Datei als Signatur an\n"
+        "# sigfile=!Kommando  führt Kommando aus um Sig zu erzeugen\n"
+        "# sigfile=--none     hängt keine Signatur an\n"
+
+#: src/lang.c:2366
+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:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  "Trenne Sig mit \"-- \" ab"
+
+#: src/lang.c:2368
+msgid   "# If ON prepend the signature with dashes '\\n-- \\n'\n"
+msgstr  "# Falls ON trenne Signatur mit '\\n-- \\n' ab\n"
+
+#: src/lang.c:2372
+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:2373
+msgid   "Add signature when reposting"
+msgstr  "Signatur beim Reposten anhängen"
 
 #: src/lang.c:2374
-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."
+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:2375
-msgid	"Start editor with line offset"
-msgstr	"Starte Editor mit Einrückung"
-
-#: src/lang.c:2376
-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:2381
-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:2382
-msgid	"Invocation of your editor"
-msgstr	"Aufruf Ihres Editors"
-
-#: src/lang.c:2383
-#, 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:2388
-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:2389
-msgid	"External inews"
-msgstr	"Externes inews-Programm"
-
-#: src/lang.c:2390
-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:2394
-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:2395
-msgid	"Invocation of your mail command"
-msgstr	"Aufruf Ihres Mailkommandos"
-
-#: src/lang.c:2396
-#, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	"# Format der Mailkommandozeile mit Ihren Parametern\n"
-	"# %%M Mailprogramm  %%S Subject  %%T To  %%F Dateiname\n"
-	"# 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:2404
-msgid	"Use interactive mail reader"
-msgstr	"Benutze interaktives Mailprogramm"
-
-#: src/lang.c:2405
-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	"# Interaktives Mailprogramm.\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = kein interaktives Mailprogramm\n"
-	"#   1 = interaktives Mailprogramm, Mailheader werden in der Datei mit "
-	"übergeben\n"
-	"#   2 = interaktives Mailprogramm, Mailheader werden als Argumente übergeben\n"
-
-#: src/lang.c:2414
-msgid	"Remove ~/.article after posting"
-msgstr	"Entferne ~/.article nach dem posten"
+#: src/lang.c:2378
+#, 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:2415
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	"# Falls ON entferne ~/.article nach dem posten.\n"
+#: src/lang.c:2379
+msgid   "Characters used as quote-marks"
+msgstr  "Zitatzeichen"
+
+#: src/lang.c:2380
+#, 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:2386
+msgid   "Quoting behavior"
+msgstr  "Zitierverhalten"
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  "# Spezielle Optionen beim Zitieren\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = nichts besonderes\n"
+        "#   1 = Zitatzeichen zusammenziehen: '>>> ' statt '> > > '\n"
+        "#   2 = Signaturen zitieren\n"
+        "#   3 = Zitatzeichen zusammenziehen & Signaturen zitieren\n"
+        "#   4 = Leerzeilen zitieren\n"
+        "# * 5 = Zitatzeichen zusammenziehen & Leerzeilen zitieren\n"
+        "#   6 = Signaturen zitieren & Leerzeilen zitieren\n"
+        "#   7 = Zitatzeichen zusammenziehen & Signaturen zitieren & Leerzeilen "
+        "zitieren\n"
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+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:2401
+msgid   "Quote line when following up"
+msgstr  "Einleitungszeile beim Antworten"
+
+#: src/lang.c:2402
+#, 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  "# Format der Einleitungszeile beim Schreiben/Beantworten von Artikeln\n"
+        "# %%A Adresse  %%D Datum  %%F Adr+Name  %%G Gruppenname  %%M Message-ID\n"
+        "# %%N Voller Name  %%C Vorname  %%I Initialen\n"
+
+#: src/lang.c:2409
+msgid   "Quote line when cross-posting"
+msgstr  "Einleitungszeile beim Crossposten"
 
-#: src/lang.c:2419
-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:2415
+msgid   "Quote line when mailing"
+msgstr  "Einleitungszeile bei Mailantwort"
 
 #: src/lang.c:2420
-msgid	"Filename for posted articles"
-msgstr	"Gepostete Artikel speichern in"
+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:2421
-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:2426
-msgid	"Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
-msgstr	"Behalte alle Fehlschläge in ~/dead.articles. <SPACE> wechselt & <CR> setzt."
+msgid   "Insert 'User-Agent:' header"
+msgstr  "Füge 'User-Agent:'-Header ein"
+
+#: src/lang.c:2422
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  "# Falls ON füge User-Agent:-Header ein\n"
 
 #: src/lang.c:2427
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	"Halte Fehlschl. in ~/dead.articles"
+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:2428
-msgid	"# If ON keep all failed postings in ~/dead.articles\n"
-msgstr	"# Falls ON werden Fehlgeschlagene Artikel in ~/dead.articles verwahrt\n"
+msgid   "MM_CHARSET"
+msgstr  "MM_CHARSET"
 
-#: src/lang.c:2432
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	"Wollen Sie nicht-abonnierte Gruppen aus der .newsrc entfernen?"
-
-#: src/lang.c:2433
-msgid	"No unsubscribed groups in newsrc"
-msgstr	"Nur abonnierte Gruppen in newsrc"
-
-#: src/lang.c:2434
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	"# Falls ON entferne nicht-abonnierte Gruppen aus der newsrc\n"
+#: src/lang.c:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  "# Der lokale Zeichensatz, der auch für MIME- und Content-Type-Header\n"
+        "# genutzt wird.\n"
+        "# Wenn der Wert nicht hier gesetzt wird, wird die Umgebungsvariable "
+        "MM_CHARSET\n"
+        "# benutzt, ansonsten wird US-ASCII oder der bei Kompilieren angegebene Wert\n"
+        "# verwendet.\n"
+        "# War während des Kompilierens MIME_STRICT_CHARSET\n"
+        "# definiert, werden andere Zeichensätze als mm_charset nicht dargestellt\n"
+        "# und die jeweiligen Zeichen durch ein '?' ersetzt.\n"
 
 #: src/lang.c:2439
-msgid	"Remove bogus groups from newsrc"
-msgstr	"Lösche nicht vorhan. G. aus newsrc"
+msgid   "MM_NETWORK_CHARSET"
+msgstr  "MM_NETWORK_CHARSET"
 
 #: src/lang.c:2440
-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	"# Was soll mit nicht mehr vorhanden Gruppen in der newsrc-Datei passieren?\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"# * 0 = Behalten\n"
-	"#   1 = entfernen\n"
-	"#   2 = Mit D in der Auswahl markieren.\n"
-
-#: src/lang.c:2448
-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:2449
-msgid	"Interval in secs to reread active"
-msgstr	"Active alle ... Sekunden neu lesen"
-
-#: src/lang.c:2450
-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:2455
-msgid	"Reconnect to server automatically"
-msgstr	"Autom. Wiederverbindung zum Server"
-
-#: src/lang.c:2456
-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"
+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:2460
-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:2461
-msgid	"Cache NNTP overview files locally"
-msgstr	"Speichere NNTP Overview Daten lokal"
-
-#: src/lang.c:2462
-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:2466
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	"Format-Zeichenkette eingeben. <CR> setzt, <ESC> bricht ab."
-
-#: src/lang.c:2467
-msgid	"Format string for display of dates"
-msgstr	"Datums Format-Zeichenkette"
-
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	"# Zeichenkette die die Datumsanzeige beschreibt.\n"
-
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	"Unicode Normalisierungsart"
-
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	"# Unicode Normalisierungsart\n"
-	"# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
-	"#   0 = keine\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	"BiDi wiedergeben"
-
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	"# Falls ON, wird bi-direktionaler Text von tin wiedergeben.\n"
-
-#: src/misc.c:3750
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	"Version: %s %s Ausgabe %s (\"%s\") %s %s\n"
-
-#: src/misc.c:3753
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	"Version: %s %s Ausgabe %s (\"%s\")\n"
-
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	"Unerreichbar?\n"
-
-#: src/nntplib.c:824
-#, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	"\n"
-	"Server reagierte nicht, Wiederholung Nummer # %d\n"
-
-#: src/nntplib.c:842 src/nntplib.c:1630
-msgid	"Rejoin current group\n"
-msgstr	"Betrete aktuelle Gruppe neu\n"
-
-#: src/nntplib.c:849 src/nntplib.c:1637
-#, c-format
-msgid	"Read (%s)\n"
-msgstr	"Lese (%s)\n"
-
-#: src/nntplib.c:851
-#, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	"Sende letztes Kommando (%s) neu\n"
-
-# TRANSLATION MISSING
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
-
-#: src/nrctbl.c:170
-#, c-format
-msgid	"couldn't expand %s\n"
-msgstr	"Kann %s nicht expandieren\n"
-
-#: src/post.c:1171
-#, 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/lang.c:2444
+msgid   "Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  "Lokaler Zeichensatz (z.B. US-ASCII, ISO-8859-1, EUC-KR), <CR> setzt."
+
+#: src/lang.c:2445
+msgid   "MM_LOCAL_CHARSET"
+msgstr  "MM_LOCAL_CHARSET"
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  "# Lokaler Zeichensatz.\n"
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  "Mailbox-Format"
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  "# Format der Mailbox.\n"
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  "MIME-Kodierung in Newsartikeln"
 
-#: src/post.c:1176
-#, 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	"Zeile %d ist länger als 998 Oktets und sollte gefaltet werden,\n"
-	"aber die Kodierung ist auf %s gestellt ohne MIME_BREAK_LONG_LINES\n"
-	"angeschaltet zu haben, oder der Artikel enhält keine 8Bit Zeichen\n"
-	"und wird daher nicht automatisch gefaltet wird.\n"
-
-#: src/post.c:1178
-#, 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/lang.c:2460
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  "# MIME-Kodierung (8bit, base64, quoted-printable, 7bit) des Artikelrumpfs\n"
+        "# (Body) von Mails oder Postings (falls nötig). QP ist sinnvoll für die\n"
+        "# meisten Europäischen Zeichensätze (ISO-8859-X), die nur einen kleinen\n"
+        "# Anteil von nicht-US-ASCII Zeichen haben, während Base64 die bessere Wahl\n"
+        "# für die meisten 8Bit Zeichensätze aus Ostasien, Griechenland und Russland\n"
+        "# ist, da dort gehäuft 8Bit Zeichen vorkommen.\n"
+
+#: src/lang.c:2468 src/lang.c:2489
+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:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  "Benutze 8bit-Zeichen im Newsheader"
+
+#: src/lang.c:2470
+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  "# Wenn ON werden 8-Bit-Zeichen (wie z.B. Umlaute) im Header von\n"
+        "# Newsartikeln NICHT kodiert.\n"
+        "# Voreinstellung ist OFF, d.h. 8-Bit-Zeichen werden kodiert.\n"
+        "# 8-Bit-Zeichen in Newsheadern werden unabhängig von dieser Einstellung\n"
+        "# kodiert, wenn post_mime_encoding nicht auch auf 8bit eingestellt\n"
+        "# ist.\n"
+
+#: src/lang.c:2477
+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:2478
+msgid   "View post-processed files"
+msgstr  "Nachbearbeitete Artikel anzeigen"
+
+#: src/lang.c:2479
+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:2484
+msgid   "MIME encoding in mail messages"
+msgstr  "MIME-Kodierung für E-Mails"
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  "Benutze 8bit Zeichen im Mail Header"
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  "# Wenn ON werden 8-Bit-Zeichen (wie z.B. Umlaute) im Header von\n"
+        "# E-Mails NICHT kodiert.\n"
+        "# Voreinstellung ist OFF, d.h. 8-Bit-Zeichen werden kodiert.\n"
+        "# 8-Bit-Zeichen in E-Mailheadern werden unabhängig von dieser Einstellung\n"
+        "# kodiert, wenn mail_mime_encoding nicht auch auf 8bit eingestellt\n"
+        "# ist. Beachten Sie aber, dass RFC 2822 8-Bit-Zeichen in\n"
+        "# 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:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  "Leerzeichen am Zeilenende entfernen"
+
+#: src/lang.c:2502
+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:2507
+msgid   "If ON, use transliteration. <SPACE> toggles & <CR> sets."
+msgstr  "Wenn ON verwende Umschreibungen. <SPACE> wechselt & <CR> setzt."
+
+#: src/lang.c:2508
+msgid   "Transliteration"
+msgstr  "Verwende Umschreibungen"
+
+#: src/lang.c:2509
+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  "# Wenn ON verwende //TRANSLIT Erweiterung. Das heißt, dass nicht\n"
+        "# darstellbare Zeichen durch Umschreibungen oder ähnlich aussehende\n"
+        "# Zeichen ersetzt werden. So würde z.B. das Euro-Symbol auf einem latin-1\n"
+        "# Terminal als EUR umschrieben, ohne //TRANSLIT würde tin ein\n"
+        "# Fragezeichen verwenden.\n"
+
+#: src/lang.c:2517
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  "Sendet Ihnen ein Cc/bbc automatisch"
+
+#: src/lang.c:2518
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  ""
+
+#: src/lang.c:2527
+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:2528
+msgid   "Spamtrap warning address parts"
+msgstr  "Spamfallenwarnung in Adresse"
+
+#: src/lang.c:2529
+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:2534
+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:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  "Tage, die ein Filter gültig ist"
+
+#: src/lang.c:2536
+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:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  "Gepostete Artikel zum Filter hinzufügen. <SPACE> wechselt & <CR> setzt."
+
+#: src/lang.c:2541
+msgid   "Add posted articles to filter"
+msgstr  "Füge gepostete Artikel zum Filter"
+
+#: src/lang.c:2542
+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:2546
+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:2547
+msgid   "Mail directory"
+msgstr  "Mail Verzeichnis"
+
+#: src/lang.c:2548
+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:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  "Speicher Artikel im Batchmode (-S)"
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  "Das Verzeichnis, in dem Artikel/Threads gespeichert werden sollen."
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  "Verz. um Art/Threads zu speichern"
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  "# Verzeichnis in dem Artikel/Threads gespeichert werden\n"
+
+#: src/lang.c:2565
+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:2566
+msgid   "Use Archive-name: header for save"
+msgstr  "Nutze Archive-name: zum Speichern"
+
+#: src/lang.c:2567
+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:2572
+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:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  "Mark. gesp. Artikel/Threads gelesen"
+
+#: src/lang.c:2574
+msgid   "# If ON mark articles that are saved as read\n"
+msgstr  "# Falls ON werden gespeicherte Artikel als gelesen markiert\n"
+
+#: src/lang.c:2578
+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:2579
+msgid   "Post process saved articles"
+msgstr  "Nachbearbeiten gespeichert. Artikel"
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  "# Nachbearbeiten gespeicherter Artikel\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = nein\n"
+        "#   1 = nur Shell Archive (shar) auspacken\n"
+        "#   2 = ja\n"
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  "Bearbeite nur ungelesene Artikel"
+
+#: src/lang.c:2590
+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:2595
+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:2596
+msgid   "Print all headers when printing"
+msgstr  "Alle Header beim Drucken ausgeben"
+
+#: src/lang.c:2597
+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:2601
+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:2602
+msgid   "Printer program with options"
+msgstr  "Druckprogramm mit Optionen"
+
+#: src/lang.c:2603
+msgid   "# Print program with parameters used to print articles/threads\n"
+msgstr  "# Druckprogramm mit Optionen zum drucken der Artikel/Threads\n"
+
+#: src/lang.c:2609
+msgid   "Force redraw after certain commands"
+msgstr  "Anzeigeauffrischung nach Kommandos"
+
+#: src/lang.c:2610
+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:2614
+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:2615
+msgid   "Start editor with line offset"
+msgstr  "Starte Editor mit Einrückung"
+
+#: src/lang.c:2616
+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:2621
+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:2622
+msgid   "Invocation of your editor"
+msgstr  "Aufruf Ihres Editors"
+
+#: src/lang.c:2623
+#, 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:2628
+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:2629
+msgid   "External inews"
+msgstr  "Externes inews-Programm"
+
+#: src/lang.c:2630
+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:2634
+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:2635
+msgid   "Invocation of your mail command"
+msgstr  "Aufruf Ihres Mailkommandos"
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  "# Format der Mailkommandozeile mit Ihren Parametern\n"
+        "# %%M Mailprogramm  %%S Subject  %%T To  %%F Dateiname\n"
+        "# 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:2644
+msgid   "Use interactive mail reader"
+msgstr  "Benutze interaktives Mailprogramm"
+
+#: src/lang.c:2645
+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  "# Interaktives Mailprogramm.\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = kein interaktives Mailprogramm\n"
+        "#   1 = interaktives Mailprogramm, Mailheader werden in der Datei mit "
+        "übergeben\n"
+        "#   2 = interaktives Mailprogramm, Mailheader werden als Argumente übergeben\n"
+
+#: src/lang.c:2654
+msgid   "Remove ~/.article after posting"
+msgstr  "Entferne ~/.article nach dem posten"
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  "# Falls ON entferne ~/.article nach dem posten.\n"
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+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:2668
+msgid   "Filename for posted articles"
+msgstr  "Gepostete Artikel speichern in"
+
+#: src/lang.c:2669
+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:2674
+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:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  "Halte Fehlschl. in ~/dead.articles"
+
+#: src/lang.c:2676
+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:2680
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  "Wollen Sie nicht-abonnierte Gruppen aus der .newsrc entfernen?"
+
+#: src/lang.c:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  "Nur abonnierte Gruppen in newsrc"
+
+#: src/lang.c:2682
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  "# Falls ON entferne nicht-abonnierte Gruppen aus der newsrc\n"
+
+#: src/lang.c:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  "Lösche nicht vorhan. G. aus newsrc"
+
+#: src/lang.c:2688
+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  "# Was soll mit nicht mehr vorhanden Gruppen in der newsrc-Datei passieren?\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "# * 0 = Behalten\n"
+        "#   1 = entfernen\n"
+        "#   2 = Mit D in der Auswahl markieren.\n"
+
+#: src/lang.c:2696
+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:2697
+msgid   "Interval in secs to reread active"
+msgstr  "Active alle ... Sekunden neu lesen"
+
+#: src/lang.c:2698
+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:2703
+msgid   "Reconnect to server automatically"
+msgstr  "Autom. Wiederverbindung zum Server"
+
+#: src/lang.c:2704
+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:2708
+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:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  "Speichere NNTP Overview Daten lokal"
+
+#: src/lang.c:2710
+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:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  "Format-Zeichenkette eingeben. <CR> setzt, <ESC> bricht ab."
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  "Datums Format-Zeichenkette"
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  "# Zeichenkette die die Datumsanzeige beschreibt.\n"
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  "Unicode Normalisierungsart"
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  "# Unicode Normalisierungsart\n"
+        "# Mögliche Werte sind (die Voreinstellung ist mit * gekennzeichnet):\n"
+        "#   0 = keine\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  "BiDi wiedergeben"
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  "# Falls ON, wird bi-direktionaler Text von tin wiedergeben.\n"
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  ""
+
+#: src/lang.c:2752
+msgid   "Delete post-process files"
+msgstr  ""
+
+#: src/lang.c:2757
+msgid   "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2758
+msgid   "Mailbox to save sent mails"
+msgstr  ""
+
+#: src/lang.c:2763
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  "Followup-To:-Header"
+
+#: src/lang.c:2769
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  "Standard Mail-Adresse (und Name) eingeben. <CR> setzt, <ESC> bricht ab."
+
+#: src/lang.c:2776
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  "ispell Programm"
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  ""
+
+#: src/lang.c:2784
+msgid   "Mailing list address"
+msgstr  ""
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  ""
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  ""
+
+#: src/lang.c:2801
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  "Organization:-Header"
+
+#: src/lang.c:2807
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2808
+msgid   "savefile"
+msgstr  "Dateiname"
+
+#: src/lang.c:2813 src/lang.c:2837
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2814
+msgid   "Quick (1 key) select filter scope"
+msgstr  ""
+
+#: src/lang.c:2819 src/lang.c:2843
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
+
+#: src/lang.c:2825 src/lang.c:2849
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2826
+msgid   "Quick (1 key) select filter case"
+msgstr  ""
+
+#: src/lang.c:2831 src/lang.c:2855
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
+
+#: src/lang.c:2838
+msgid   "Quick (1 key) kill filter scope"
+msgstr  ""
+
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
+
+#: src/lang.c:2850
+msgid   "Quick (1 key) kill filter case"
+msgstr  ""
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2863
+msgid   "UNDECLARED_CHARSET"
+msgstr  "UNDECLARED_CHARSET"
+
+#: src/lang.c:2869
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2870
+msgid   "X_Body"
+msgstr  "X_Body"
+
+#: src/lang.c:2875
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  "X_Headers"
+
+#: src/lang.c:2881
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2882
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  "Füge 'X-Comment-To:'-Header ein"
+
+#: src/misc.c:3754
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "Version: %s %s Ausgabe %s (\"%s\") %s %s\n"
+
+#: src/misc.c:3757
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "Version: %s %s Ausgabe %s (\"%s\")\n"
+
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  "Unerreichbar?\n"
+
+#: src/nntplib.c:819
+#, c-format
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  "\n"
+        "Server reagierte nicht, Wiederholung Nummer # %d\n"
+
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  "Betrete aktuelle Gruppe neu\n"
+
+#: src/nntplib.c:863 src/nntplib.c:1838
+#, c-format
+msgid   "Read (%s)\n"
+msgstr  "Lese (%s)\n"
+
+#: src/nntplib.c:865
+#, c-format
+msgid   "Resend last command (%s)\n"
+msgstr  "Sende letztes Kommando (%s) neu\n"
+
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  ""
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  ""
+
+#: src/nrctbl.c:175
+#, c-format
+msgid   "couldn't expand %s\n"
+msgstr  "Kann %s nicht expandieren\n"
+
+#: src/post.c:1307
+#, 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:1312
+#, 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  "Zeile %d ist länger als 998 Oktets und sollte gefaltet werden,\n"
+        "aber die Kodierung ist auf %s gestellt ohne MIME_BREAK_LONG_LINES\n"
+        "angeschaltet zu haben, oder der Artikel enthält keine 8Bit Zeichen\n"
+        "und wird daher nicht automatisch gefaltet wird.\n"
+
+#: src/post.c:1314
+#, 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:2278
 #, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"Poste: %.*s ..."
+msgid   "Posting: %.*s ..."
+msgstr  "Poste: %.*s ..."
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	"Breche Lesen ab, bitte warten..."
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	"Lesen abgebrochen\n"
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	"Ablassen\n"
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	"unverändert"
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	"[- Nicht Verfügbar -]"
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "Breche Lesen ab, bitte warten..."
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "Lesen abgebrochen\n"
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  "Ablassen\n"
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  "unverändert"
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  "[- Nicht Verfügbar -]"
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	"Dieser Artikel wurde im 'multipart/mixed' MIME-Format verfasst. Wenn Sie\n"
-	"dieses Präfix lesen ist Ihr Mailprogramm vermutlich nicht in der Lage dieses\n"
-	"Format zu verstehen und einiges von was folgt, kann merkwürdig aussehen.\n"
-	"\n"
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	"Bytes"
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	"ungelesen"
-
-#: src/select.c:379
-msgid	"all"
-msgstr	"Alle"
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	" R"
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	"Kann slrnface nicht starten: Umgebungsvariable %s nicht gefunden."
-
-#: src/xface.c:99 src/xface.c:131
-#, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	"Kann slrnface nicht starten: Anlegen von %s fehlgeschlagen"
-
-#: src/xface.c:109
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	"Diese Verzeichnis enthält \"named pipes\" zur Kommunikation zwischen\n"
-	"slrnface und dem aufrufenden Prozess. Normalerweise sollte es leer sein,\n"
-	"da diese Dateien nach erfolgreicher Kommunikation sofort gelöscht werden.\n"
-	"\n"
-	"slrnface verwendet Dateinamen der Form hostname.pid, sollten derartige\n"
-	"Dateien länger als wenige Sekundenbruchteile erscheinen, handelt es sich\n"
-	"vermutlich um einen Fehler.\n"
-	"\n"
-	"Wenn dieses Verzeichnis auf einem NFS-Laufwerk liegt, ist es möglich,\n"
-	"dass der NFS-Server spezielle Dateien in diesem Verzeichnis erzeugt,\n"
-	"während slrnface ausgeführt wird. Diese sollten nicht gelöscht werden.\n"
-
-# TRANSLATION MISSING
-#: src/xface.c:123
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	""
-
-#: src/xface.c:162
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  "Dieser Artikel wurde im 'multipart/mixed' MIME-Format verfasst. Wenn Sie\n"
+        "dieses Präfix lesen ist Ihr Mailprogramm vermutlich nicht in der Lage dieses\n"
+        "Format zu verstehen und einiges von was folgt, kann merkwürdig aussehen.\n"
+        "\n"
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "Bytes"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "ungelesen"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "Alle"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  " R"
+
+#: src/xface.c:70
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  "Kann slrnface nicht starten: tin läuft nicht in einem xterm."
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
+#, c-format
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  "Kann slrnface nicht starten: Umgebungsvariable %s nicht gefunden."
+
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  "Kann slrnface nicht starten: Anlegen von %s fehlgeschlagen"
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  "Diese Verzeichnis enthält \"named pipes\" zur Kommunikation zwischen\n"
+        "slrnface und dem aufrufenden Prozess. Normalerweise sollte es leer sein,\n"
+        "da diese Dateien nach erfolgreicher Kommunikation sofort gelöscht werden.\n"
+        "\n"
+        "slrnface verwendet Dateinamen der Form hostname.pid, sollten derartige\n"
+        "Dateien länger als wenige Sekundenbruchteile erscheinen, handelt es sich\n"
+        "vermutlich um einen Fehler.\n"
+        "\n"
+        "Wenn dieses Verzeichnis auf einem NFS-Laufwerk liegt, ist es möglich,\n"
+        "dass der NFS-Server spezielle Dateien in diesem Verzeichnis erzeugt,\n"
+        "während slrnface ausgeführt wird. Diese sollten nicht gelöscht werden.\n"
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  ""
+
+#: src/xface.c:174
 #, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	"Slrnface wurde mit Fehler %d beendet."
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  "Slrnface wurde mit Fehler %d beendet."
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, c-format
-msgid	"Slrnface failed: %s."
-msgstr	"Fehler %s beim Aufruf von Slrnface."
+msgid   "Slrnface failed: %s."
+msgstr  "Fehler %s beim Aufruf von Slrnface."
Binary files tin-1.8.3/po/en_GB.gmo and tin-2.0.0/po/en_GB.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/en_GB.po tin-2.0.0/po/en_GB.po
--- tin-1.8.3/po/en_GB.po	2007-02-01 13:58:03.000000000 +0100
+++ tin-2.0.0/po/en_GB.po	2011-08-22 18:32:41.367266830 +0200
@@ -1,6071 +1,7061 @@
-# English (British) translation.
-# Robert Brady <rwb197@ecs.soton.ac.uk>, 2000-2002
+# English (British) translation for tin.
+# Robert Brady <rwb197@ecs.soton.ac.uk>, 2000-2002.
 #
-msgid	""
-msgstr	"Project-Id-Version: tin 1.8.3\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+0100\n"
-	"PO-Revision-Date: 2002-11-15 20:10+0000\n"
-	"Last-Translator: Robert Brady <rwb197@zepler.org>\n"
-	"Language-Team: \n"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=ISO-8859-1\n"
-	"Content-Transfer-Encoding: 8bit\n"
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.8.1\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\n"
+        "PO-Revision-Date: 2002-11-15 20:10+0000\n"
+        "Last-Translator: Robert Brady <rwb197@zepler.org>\n"
+        "Language-Team: \n"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=ISO-8859-1\n"
+        "Content-Transfer-Encoding: 8bit\n"
 
-#: src/art.c:1534
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	""
+msgid   "attribute with no scope: %s"
+msgstr  ""
 
-#: src/attrib.c:649
+#: src/attrib.c:884
+msgid   "Processing attributes... "
+msgstr  ""
+
+#: src/attrib.c:1102
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	""
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  ""
 
-#: src/attrib.c:650
+#: src/attrib.c:1103
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	""
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  ""
 
-#: src/attrib.c:651
+#: src/attrib.c:1104
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	""
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:652
+#: src/attrib.c:1105
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	""
+msgid   "#  advertising=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:653
+#: src/attrib.c:1106
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	""
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:654
+#: src/attrib.c:1107
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	""
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:655
+#: src/attrib.c:1108
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	""
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:656
+#: src/attrib.c:1109
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	""
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  ""
 
-#: src/attrib.c:657
+#: src/attrib.c:1110
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	""
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:658
+#: src/attrib.c:1111
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	""
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:659
+#: src/attrib.c:1112
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	""
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:660
+#: src/attrib.c:1113
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	""
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:661
+#: src/attrib.c:1114
 #, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	""
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  ""
 
-#: src/attrib.c:662
+#: src/attrib.c:1115
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	""
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:663
+#: src/attrib.c:1116
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	""
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  ""
 
-#: src/attrib.c:665
+#: src/attrib.c:1117
 #, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	""
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  ""
 
-#: src/attrib.c:667
+#: src/attrib.c:1118
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	""
+msgid   "#  followup_to=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:668
+#: src/attrib.c:1119
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	""
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  ""
 
-#: src/attrib.c:669
+#: src/attrib.c:1120
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	""
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:670
+#: src/attrib.c:1121
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	""
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:671
+#: src/attrib.c:1122
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	""
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  ""
 
-#: src/attrib.c:672
+#: src/attrib.c:1130
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	""
+msgid   "#  ispell=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:679
+#: src/attrib.c:1132
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	""
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  ""
 
-#: src/attrib.c:680
+#: src/attrib.c:1133
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	""
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  ""
 
-#: src/attrib.c:686
+#: src/attrib.c:1134
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	""
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  ""
 
-#: src/attrib.c:692
+#: src/attrib.c:1135
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	""
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:710
+#: src/attrib.c:1136
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	""
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:715
+#: src/attrib.c:1137
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	""
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:720
+#: src/attrib.c:1139
 #, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	""
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  ""
 
-#: src/attrib.c:721
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  ""
 
-#: src/attrib.c:722
+#: src/attrib.c:1148
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	""
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:723
+#: src/attrib.c:1149
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	""
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1150
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	""
+msgid   "#  news_quote_format=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1151
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	""
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  ""
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1152
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	""
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:727
+#: src/attrib.c:1153
 #, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	""
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:728
+#: src/attrib.c:1154
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  ""
 
-#: src/attrib.c:729
+#: src/attrib.c:1161
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	""
+msgid   "#  post_process_type=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:730
+#: src/attrib.c:1166
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	""
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:734
+#: src/attrib.c:1167
 #, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  ""
 
-#: src/attrib.c:735
+#: src/attrib.c:1168
 #, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	""
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:736
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:737
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:739
+#: src/attrib.c:1171 src/attrib.c:1180
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	""
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  ""
 
-#: src/attrib.c:746
+#: src/attrib.c:1172 src/attrib.c:1181
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	""
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  ""
 
-#: src/attrib.c:748
+#: src/attrib.c:1173 src/attrib.c:1182
 #, c-format
-msgid	"#\n"
-	"# Note that it is best to put general (global scoping)\n"
-msgstr	""
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  ""
 
-#: src/attrib.c:749
+#: src/attrib.c:1174 src/attrib.c:1183
 #, c-format
-msgid	"# entries first followed by group specific entries.\n"
-	"#\n"
-msgstr	""
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  ""
 
-#: src/attrib.c:750
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	""
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  ""
 
-#: src/attrib.c:756
+#: src/attrib.c:1176
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	""
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:764
+#: src/attrib.c:1177
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	""
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:768
+#: src/attrib.c:1178
 #, c-format
-msgid	"# in *binaries* do full post processing but no TeX2ISO conversion,\n"
-msgstr	""
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:769
+#: src/attrib.c:1179
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	""
+msgid   "#  quick_select_header=NUM\n"
+msgstr  ""
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	""
+#: src/attrib.c:1185
+#, c-format
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  ""
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	""
-
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	""
+#: src/attrib.c:1187
+#, c-format
+msgid   "#  print_header=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1189
+#, c-format
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1190
+#, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1191
+#, c-format
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  ""
+
+#: src/attrib.c:1192
+#, c-format
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  ""
+
+#: src/attrib.c:1193
+#, c-format
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  ""
+
+#: src/attrib.c:1194
+#, c-format
+msgid   "#  show_author=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1200
+#, c-format
+msgid   "#  show_info=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1206
+#, c-format
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1207
+#, c-format
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1208
+#, c-format
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1209
+#, c-format
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1210
+#, c-format
+msgid   "#  sort_article_type=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1228
+#, c-format
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1237
+#, c-format
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1239
+#, c-format
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1240
+#, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  ""
+
+#: src/attrib.c:1247
+#, c-format
+msgid   "#  thread_perc=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1248
+#, c-format
+msgid   "#  trim_article_body=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1249
+#, c-format
+msgid   "#    0 = Don't trim article body\n"
+msgstr  ""
+
+#: src/attrib.c:1250
+#, c-format
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1251
+#, c-format
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1252
+#, c-format
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1253
+#, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  ""
+
+#: src/attrib.c:1254
+#, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1258
+#, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1259
+#, c-format
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  ""
+
+#: src/attrib.c:1260
+#, c-format
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  ""
+
+#: src/attrib.c:1262
+#, c-format
+msgid   "#\n"
+        "# Note that it is best to put general (global scoping)\n"
+msgstr  ""
+
+#: src/attrib.c:1263
+#, c-format
+msgid   "# entries first followed by group specific entries.\n"
+        "#\n"
+msgstr  ""
+
+#: src/attrib.c:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  ""
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  ""
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  ""
 
 #: src/lang.c:42
-msgid	"1 Response"
-msgstr	""
+msgid   "1 Response"
+msgstr  ""
 
 #: src/lang.c:46
 #, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	""
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  ""
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	""
+msgid   "all "
+msgstr  ""
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	""
+msgid   "All groups"
+msgstr  ""
 
 #: src/lang.c:49
 #, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	""
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	""
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	""
+msgid   "Article cancelled (deleted)."
+msgstr  ""
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	""
-
-#: src/lang.c:53
-#, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	""
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  ""
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	""
+msgid   "Article deleted."
+msgstr  ""
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  ""
 
 #: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	""
+msgid   "Article not posted!"
+msgstr  ""
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	""
+msgid   "Article not saved"
+msgstr  ""
 
 #: src/lang.c:58
-msgid	"Parent article has been killed"
-msgstr	""
+msgid   "Article Level Commands"
+msgstr  ""
 
 #: src/lang.c:59
-msgid	"Parent article is unavailable"
-msgstr	""
+msgid   "Article has no parent"
+msgstr  ""
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	""
+msgid   "Parent article has been killed"
+msgstr  ""
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	""
+msgid   "Parent article is unavailable"
+msgstr  ""
 
 #: src/lang.c:62
 #, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	""
+msgid   "Article posted: %s"
+msgstr  ""
 
 #: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	""
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  ""
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	""
+#, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  ""
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  ""
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	""
+msgid   "Article undeleted."
+msgstr  ""
 
 #: src/lang.c:67
-msgid	"This is a repost of the following article:"
-msgstr	""
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	""
+#, c-format
+msgid   "Article %4d of %4d"
+msgstr  ""
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	""
+msgid   "articles"
+msgstr  ""
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	""
+msgid   "This is a repost of the following article:"
+msgstr  ""
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	""
+msgid   "article"
+msgstr  ""
 
 #: src/lang.c:72
-#, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	""
+msgid   "Article"
+msgstr  ""
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	""
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  ""
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	""
+msgid   " at %s"
+msgstr  ""
 
 #: src/lang.c:75
 #, c-format
-msgid	"%d Authentication failed"
-msgstr	""
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  ""
 
 #: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	""
+msgid   ", charset: "
+msgstr  ""
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	""
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  ""
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	""
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  ""
 
 #: src/lang.c:79
 #, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	""
+msgid   "%d lines"
+msgstr  ""
 
 #: src/lang.c:80
-#, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	""
+msgid   "Attachment Menu"
+msgstr  ""
 
 #: src/lang.c:81
-#, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"Authorised for user: %s\n"
+msgid   "Attachment Menu Commands"
+msgstr  ""
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"Authorisation failed for user: %s\n"
+msgid   "<no name>"
+msgstr  ""
 
 #: src/lang.c:83
 #, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	""
+msgid   "Attachment saved successfully. (%s)"
+msgstr  ""
 
 #: src/lang.c:84
-msgid	"Autosubscribing groups...\n"
-msgstr	""
+#, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  ""
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	""
+msgid   "Select attachment> "
+msgstr  ""
+
+#: src/lang.c:86
+msgid   "Tagged attachment"
+msgstr  ""
 
 #: src/lang.c:87
 #, c-format
-msgid	"Active file corrupt - %s"
-msgstr	""
+msgid   "%d attachments tagged"
+msgstr  ""
 
 #: src/lang.c:88
-#, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	""
+msgid   "Untagged attachment"
+msgstr  ""
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"Unrecognised attribute: %s"
+msgid   "Attributes Menu Commands"
+msgstr  ""
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	""
+msgid   "%d Authentication failed"
+msgstr  ""
 
 #: src/lang.c:92
-msgid	"Base article"
-msgstr	""
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "NNTP authorisation password not found for %s"
 
 #: src/lang.c:93
-msgid	"Base article range"
-msgstr	""
+msgid   "Server expects authentication.\n"
+msgstr  ""
 
 #: src/lang.c:94
-#, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	""
+msgid   "    Please enter password: "
+msgstr  ""
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	""
+msgid   "    Please enter username: "
+msgstr  ""
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  "Authorised for user: %s\n"
 
 #: src/lang.c:97
 #, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	""
+msgid   "Authorization failed for user: %s\n"
+msgstr  "Authorisation failed for user: %s\n"
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	""
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  ""
 
 #: src/lang.c:100
 #, c-format
-msgid	"Cannot create %s"
-msgstr	""
+msgid   "Author search forwards [%s]> "
+msgstr  ""
 
 #: src/lang.c:101
 #, c-format
-msgid	"Can't find base article %d"
-msgstr	""
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  ""
 
 #: src/lang.c:102
-#, c-format
-msgid	"Can't open %s"
-msgstr	""
+msgid   "Autosubscribing groups...\n"
+msgstr  ""
 
 #: src/lang.c:103
 #, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	""
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	""
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  ""
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	""
+msgid   "Active file corrupt - %s"
+msgstr  ""
 
 #: src/lang.c:106
 #, c-format
-msgid	"Can't retrieve %s"
-msgstr	""
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  ""
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	""
+msgid   "Unrecognized attribute: %s"
+msgstr  "Unrecognised attribute: %s"
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	""
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	""
+msgid   "Bad command. Type '%s' for help."
+msgstr  ""
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	""
+msgid   "Base article"
+msgstr  ""
 
 #: src/lang.c:111
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	""
+msgid   "Base article range"
+msgstr  ""
 
 #: src/lang.c:112
 #, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	""
+msgid   "%s: Updating of index files not supported\n"
+msgstr  ""
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	""
+msgid   "*** Beginning of article ***"
+msgstr  ""
 
 #: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	""
-
-#: src/lang.c:115
-msgid	"Checking for new groups... "
-msgstr	""
+msgid   "*** Beginning of page ***"
+msgstr  ""
 
 #: src/lang.c:116
-msgid	"Checking for news..."
-msgstr	""
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  ""
 
 #: src/lang.c:117
-#, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	""
+msgid   "Cancelling article..."
+msgstr  ""
 
 #: src/lang.c:119
-msgid	"ANSI color disabled"
-msgstr	"ANSI colour disabled"
+#, c-format
+msgid   "Cannot create %s"
+msgstr  ""
 
 #: src/lang.c:120
-msgid	"ANSI color enabled"
-msgstr	"ANSI colour enabled"
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  ""
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  ""
 
 #: src/lang.c:122
 #, c-format
-msgid	"Command failed: %s"
-msgstr	""
+msgid   "Couldn't open %s for saving"
+msgstr  ""
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	""
+msgid   "*** Posting not allowed ***"
+msgstr  ""
 
 #: src/lang.c:124
 #, c-format
-msgid	"Connecting to %s..."
-msgstr	""
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	""
+msgid   "Posting is not allowed to %s"
+msgstr  ""
 
 #: src/lang.c:126
-msgid	"Creating active file for saved groups...\n"
-msgstr	""
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  ""
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  ""
 
-#: src/lang.c:127
-msgid	"Creating newsrc file...\n"
-msgstr	""
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	""
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  ""
 
 #: src/lang.c:130
-msgid	"Delete saved files that have been post processed?"
-msgstr	""
+#, c-format
+msgid   "Catchup %s..."
+msgstr  ""
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	""
+msgid   "Catchup all groups entered during this session?"
+msgstr  ""
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  ""
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	""
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  ""
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	""
+msgid   "Caughtup"
+msgstr  ""
 
 #: src/lang.c:135
-msgid	"*** End of groups ***"
-msgstr	""
+msgid   "Check Prepared Article"
+msgstr  ""
 
 #: src/lang.c:136
-msgid	"*** End of thread ***"
-msgstr	""
+msgid   "Checking for new groups... "
+msgstr  ""
 
 #: src/lang.c:137
-msgid	"Enter limit of articles to get> "
-msgstr	""
+msgid   "Checking for news..."
+msgstr  ""
 
 #: src/lang.c:138
-msgid	"Enter Message-ID to go to> "
-msgstr	""
-
-#: src/lang.c:139
-msgid	" and enter next unread thread"
-msgstr	""
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:140
-msgid	" and enter next unread group"
-msgstr	""
+msgid   "ANSI color disabled"
+msgstr  "ANSI colour disabled"
 
 #: src/lang.c:141
-msgid	"Enter option number> "
-msgstr	""
+msgid   "ANSI color enabled"
+msgstr  "ANSI colour enabled"
 
-#: src/lang.c:142
+#: src/lang.c:143
 #, c-format
-msgid	"Enter range [%s]> "
-msgstr	""
+msgid   "Command failed: %s"
+msgstr  ""
 
-#: src/lang.c:143
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	""
-
-#: src/lang.c:145
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	""
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  ""
 
 #: src/lang.c:146
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	""
-
-#: src/lang.c:147
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	""
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  ""
 
 #: src/lang.c:148
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	""
+msgid   "<CR>"
+msgstr  ""
 
 #: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	""
-
-#: src/lang.c:151
-#, c-format
-msgid	"Corrupted file %s"
-msgstr	""
+msgid   "Creating active file for saved groups...\n"
+msgstr  ""
 
-#: src/lang.c:152
-#, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	""
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  ""
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  ""
 
 #: src/lang.c:153
-#, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	""
+msgid   "Delete saved files that have been post processed?"
+msgstr  ""
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	""
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  ""
 
 #: src/lang.c:156
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	""
+msgid   "*** End of article ***"
+msgstr  ""
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	""
+msgid   "*** End of articles ***"
+msgstr  ""
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	""
+msgid   "*** End of attachments ***"
+msgstr  ""
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	""
+msgid   "*** End of groups ***"
+msgstr  ""
 
 #: src/lang.c:160
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	""
+msgid   "*** End of page ***"
+msgstr  ""
 
 #: src/lang.c:161
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	""
+msgid   "*** End of scopes ***"
+msgstr  ""
 
 #: src/lang.c:162
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	""
+msgid   "*** End of thread ***"
+msgstr  ""
 
 #: src/lang.c:163
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	""
+msgid   "*** End of URLs ***"
+msgstr  ""
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	""
+msgid   "Enter limit of articles to get> "
+msgstr  ""
 
 #: src/lang.c:165
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	""
+msgid   "Enter Message-ID to go to> "
+msgstr  ""
 
 #: src/lang.c:166
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	""
+msgid   " and enter next unread thread"
+msgstr  ""
 
 #: src/lang.c:167
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	""
+msgid   " and enter next unread article"
+msgstr  ""
 
 #: src/lang.c:168
-msgid	"FQDN component may not start with digit.\n"
-msgstr	""
+msgid   " and enter next unread group"
+msgstr  ""
 
 #: src/lang.c:169
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	""
+msgid   "Enter option number> "
+msgstr  ""
 
 #: src/lang.c:170
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	""
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  ""
 
 #: src/lang.c:171
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	""
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	""
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  ""
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  ""
 
 #: src/lang.c:174
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  ""
 
 #: src/lang.c:175
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  ""
 
 #: src/lang.c:176
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	""
-
-#: src/lang.c:177
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  ""
 
 #: src/lang.c:178
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	""
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  ""
 
 #: src/lang.c:179
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	""
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  ""
 
 #: src/lang.c:180
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	""
-
-#: src/lang.c:181
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	""
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  ""
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	""
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  ""
+
+#: src/lang.c:185
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  ""
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  ""
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  ""
 
 #: src/lang.c:188
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	""
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  ""
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  ""
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  ""
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  ""
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
 
 #: src/lang.c:194
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	""
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
 
 #: src/lang.c:195
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	""
+msgid   "Illegal character in FQDN.\n"
+msgstr  ""
 
 #: src/lang.c:196
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	""
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  ""
 
 #: src/lang.c:197
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	""
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  ""
 
 #: src/lang.c:198
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	""
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  ""
 
 #: src/lang.c:199
-#, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	""
+msgid   "FQDN component may not start with digit.\n"
+msgstr  ""
 
 #: src/lang.c:200
-#, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	""
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  ""
 
 #: src/lang.c:201
-#, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	""
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  ""
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  ""
 
 #: src/lang.c:203
-#, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	""
+msgid   "Missing localpart of mail address.\n"
+msgstr  ""
 
 #: src/lang.c:204
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	""
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  ""
 
 #: src/lang.c:205
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	""
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  ""
 
 #: src/lang.c:206
-#, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  ""
 
 #: src/lang.c:207
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  ""
 
 #: src/lang.c:208
-#, c-format
-msgid	"No read permissions for %s\n"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  ""
 
 #: src/lang.c:209
-#, c-format
-msgid	"File %s does not exist\n"
-msgstr	""
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  ""
 
 #: src/lang.c:210
-#, c-format
-msgid	"No write permissions for %s\n"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  ""
 
 #: src/lang.c:211
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  ""
 
 #: src/lang.c:212
-msgid	"errors"
-msgstr	""
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  ""
 
 #: src/lang.c:213
 #, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	""
-
-#: src/lang.c:214
-#, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	""
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  ""
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
-msgid	"error"
-msgstr	""
-
-#: src/lang.c:216
-msgid	"Unknown display level"
-msgstr	""
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	""
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	""
-
-#: src/lang.c:219
-msgid	"leaving external mail-reader"
-msgstr	""
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  ""
 
 #: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  ""
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  ""
+
+#: src/lang.c:227
 #, c-format
-msgid	"Extracting %s..."
-msgstr	""
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  ""
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	""
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  ""
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	""
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  ""
 
-#: src/lang.c:224
+#: src/lang.c:230
 #, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	""
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  ""
 
-#: src/lang.c:225
-msgid	"Rule created by: "
-msgstr	""
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  ""
 
-#: src/lang.c:226
+#: src/lang.c:232
 #, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	""
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  ""
 
-#: src/lang.c:227
+#: src/lang.c:233
 #, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	""
+msgid   "Insecure permissions of %s (%o)"
+msgstr  ""
 
-#: src/lang.c:228
+#: src/lang.c:235
 #, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	""
+msgid   "Invalid response to GROUP command, %s"
+msgstr  ""
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	""
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  ""
 
-#: src/lang.c:230
-msgid	"-- end of forwarded message --\n"
-msgstr	""
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  ""
 
-#: src/lang.c:231
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	""
+#: src/lang.c:242
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  ""
 
-#: src/lang.c:252
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  ""
+
+#: src/lang.c:244
 #, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	""
+msgid   "No permissions to go into %s\n"
+msgstr  ""
 
-#: src/lang.c:253
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  ""
+
+#: src/lang.c:248
 #, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	""
+msgid   "No read permissions for %s\n"
+msgstr  ""
 
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	""
+#: src/lang.c:249
+#, c-format
+msgid   "File %s does not exist\n"
+msgstr  ""
+
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  ""
 
-#: src/lang.c:255
-msgid	"Comment (optional)  : "
-msgstr	""
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  ""
+
+#: src/lang.c:252
+msgid   "errors"
+msgstr  ""
+
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  ""
 
 #: src/lang.c:256
-msgid	"Apply pattern to    : "
-msgstr	""
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  ""
 
 #: src/lang.c:257
-msgid	"From: line (ignore case)      "
-msgstr	""
+msgid   "error"
+msgstr  ""
 
 #: src/lang.c:258
-msgid	"From: line (case sensitive)   "
-msgstr	""
+msgid   "Unknown display level"
+msgstr  ""
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  ""
 
 #: src/lang.c:260
-#, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	""
+msgid   "Exiting..."
+msgstr  ""
 
 #: src/lang.c:261
-msgid	"global "
-msgstr	""
+msgid   "leaving external mail-reader"
+msgstr  ""
 
 #: src/lang.c:262
 #, c-format
-msgid	"Please use %.100s instead"
-msgstr	""
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	""
+msgid   "Extracting %s..."
+msgstr  ""
 
 #: src/lang.c:264
 #, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	""
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  ""
 
 #: src/lang.c:265
-msgid	"groups"
-msgstr	""
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  ""
 
 #: src/lang.c:266
 #, c-format
-msgid	"Rereading %s..."
-msgstr	""
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  ""
 
 #: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	""
+msgid   "Rule created by: "
+msgstr  ""
 
 #: src/lang.c:268
-msgid	"Group Selection"
-msgstr	""
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  ""
 
 #: src/lang.c:269
-msgid	"group"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  ""
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  ""
 
 #: src/lang.c:271
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	""
+msgid   "-- forwarded message --\n"
+msgstr  ""
 
 #: src/lang.c:272
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "-- end of forwarded message --\n"
+msgstr  ""
 
 #: src/lang.c:273
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	""
-
-#: src/lang.c:274
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:275
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:276
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	""
-
-#: src/lang.c:277
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:278
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:279
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:280
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:281
-msgid	"kill an article via a menu"
-msgstr	""
-
-#: src/lang.c:282
-msgid	"auto-select (hot) an article via a menu"
-msgstr	""
-
-#: src/lang.c:283
-msgid	"Browse URLs in article"
-msgstr	""
-
-#: src/lang.c:284
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	""
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	""
-
-#: src/lang.c:286
-msgid	"edit article (mail-groups only)"
-msgstr	""
-
-#: src/lang.c:287
-msgid	"display first article in current thread"
-msgstr	""
-
-#: src/lang.c:288
-msgid	"display first page of article"
-msgstr	""
-
-#: src/lang.c:289
-msgid	"post followup to current article"
-msgstr	""
-
-#: src/lang.c:290
-msgid	"post followup (don't copy text) to current article"
-msgstr	""
-
-#: src/lang.c:291
-msgid	"post followup to current article quoting complete headers"
-msgstr	""
-
-#: src/lang.c:292
-msgid	"display last article in current thread"
-msgstr	""
-
-#: src/lang.c:293
-msgid	"display last page of article"
-msgstr	""
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  ""
 
 #: src/lang.c:294
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	""
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  ""
 
 #: src/lang.c:295
-msgid	"display next article"
-msgstr	""
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  ""
 
+#. SCORE_MAX
 #: src/lang.c:296
-msgid	"display first article in next thread"
-msgstr	""
+msgid   "Full"
+msgstr  ""
 
 #: src/lang.c:297
-msgid	"display next unread article"
-msgstr	""
+msgid   "Comment (optional)  : "
+msgstr  ""
 
 #: src/lang.c:298
-msgid	"go to the article that this one followed up"
-msgstr	""
+msgid   "Apply pattern to    : "
+msgstr  ""
 
 #: src/lang.c:299
-msgid	"display previous article"
-msgstr	""
+msgid   "From: line (ignore case)      "
+msgstr  ""
 
 #: src/lang.c:300
-msgid	"display previous unread article"
-msgstr	""
-
-#: src/lang.c:301
-msgid	"quickly kill an article using defaults"
-msgstr	""
+msgid   "From: line (case sensitive)   "
+msgstr  ""
 
 #: src/lang.c:302
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	""
-
-#: src/lang.c:303
-msgid	"return to group selection level"
-msgstr	""
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  ""
 
 #: src/lang.c:304
-msgid	"reply through mail to author"
-msgstr	""
+msgid   "global "
+msgstr  ""
 
 #: src/lang.c:305
-msgid	"reply through mail (don't copy text) to author"
-msgstr	""
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  ""
 
 #: src/lang.c:306
-msgid	"reply through mail to author quoting complete headers"
-msgstr	""
+#, c-format
+msgid   "%s is bogus"
+msgstr  ""
 
 #: src/lang.c:307
-msgid	"repost chosen article to another group"
-msgstr	""
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  ""
 
 #: src/lang.c:308
-msgid	"search backwards within this article"
-msgstr	""
+msgid   "groups"
+msgstr  ""
 
 #: src/lang.c:309
-msgid	"search forwards within this article"
-msgstr	""
+#, c-format
+msgid   "Rereading %s..."
+msgstr  ""
 
 #: src/lang.c:310
-msgid	"show article in raw-mode (including all headers)"
-msgstr	""
+msgid   "Top Level Commands"
+msgstr  ""
 
 #: src/lang.c:311
-msgid	"skip next block of included text"
-msgstr	""
+msgid   "Group Selection"
+msgstr  ""
 
 #: src/lang.c:312
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	""
-
-#: src/lang.c:313
-msgid	"toggle word highlighting on/off"
-msgstr	""
+msgid   "group"
+msgstr  ""
 
 #: src/lang.c:314
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	""
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  ""
 
 #: src/lang.c:315
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	""
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:316
-msgid	"toggle german TeX style decoding for current article"
-msgstr	""
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  ""
 
 #: src/lang.c:317
-msgid	"toggle display of uuencoded sections"
-msgstr	""
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:318
-msgid	"View/save multimedia attachments"
-msgstr	""
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:319
-#, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	""
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  ""
 
 #: src/lang.c:320
-msgid	"choose range of articles to be affected by next command"
-msgstr	""
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:321
-msgid	"escape from command prompt"
-msgstr	""
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:322
-msgid	"edit filter file"
-msgstr	""
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:323
-msgid	"get help"
-msgstr	""
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:324
-msgid	"display last article viewed"
-msgstr	""
+msgid   "kill an article via a menu"
+msgstr  ""
 
 #: src/lang.c:325
-msgid	"down one line"
-msgstr	""
+msgid   "auto-select (hot) an article via a menu"
+msgstr  ""
 
 #: src/lang.c:326
-msgid	"up one line"
-msgstr	""
+msgid   "Browse URLs in article"
+msgstr  ""
 
 #: src/lang.c:327
-msgid	"go to article chosen by Message-ID"
-msgstr	""
-
-#: src/lang.c:328
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	""
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  ""
 
 #: src/lang.c:329
-msgid	"menu of configurable options"
-msgstr	""
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  ""
 
 #: src/lang.c:330
-msgid	"down one page"
-msgstr	""
+msgid   "post followup to current article"
+msgstr  ""
 
 #: src/lang.c:331
-msgid	"up one page"
-msgstr	""
+msgid   "post followup (don't copy text) to current article"
+msgstr  ""
 
 #: src/lang.c:332
-msgid	"post (write) article to current group"
-msgstr	""
+msgid   "post followup to current article quoting complete headers"
+msgstr  ""
 
 #: src/lang.c:333
-msgid	"post postponed articles"
-msgstr	""
-
-#: src/lang.c:334
-msgid	"list articles posted by you (from posted file)"
-msgstr	""
+msgid   "repost chosen article to another group"
+msgstr  ""
 
 #: src/lang.c:335
-msgid	"return to previous menu"
-msgstr	""
+msgid   "edit article (mail-groups only)"
+msgstr  ""
 
 #: src/lang.c:336
-msgid	"quit tin immediately"
-msgstr	""
+msgid   "display first article in current thread"
+msgstr  ""
 
 #: src/lang.c:337
-msgid	"redraw page"
-msgstr	""
+msgid   "display first page of article"
+msgstr  ""
 
 #: src/lang.c:338
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	""
+msgid   "display last article in current thread"
+msgstr  ""
 
 #: src/lang.c:339
-msgid	"save marked articles automatically without user prompts"
-msgstr	""
+msgid   "display last page of article"
+msgstr  ""
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	""
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  ""
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	""
+msgid   "display next article"
+msgstr  ""
 
 #: src/lang.c:342
-msgid	"search for articles by author backwards"
-msgstr	""
+msgid   "display first article in next thread"
+msgstr  ""
 
 #: src/lang.c:343
-msgid	"search for articles by author forwards"
-msgstr	""
+msgid   "display next unread article"
+msgstr  ""
 
 #: src/lang.c:344
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	""
+msgid   "go to the article that this one followed up"
+msgstr  ""
 
 #: src/lang.c:345
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	""
+msgid   "display previous article"
+msgstr  ""
 
 #: src/lang.c:346
-msgid	"search for articles by Subject line backwards"
-msgstr	""
+msgid   "display previous unread article"
+msgstr  ""
 
 #: src/lang.c:347
-msgid	"search for articles by Subject line forwards"
-msgstr	""
+msgid   "quickly kill an article using defaults"
+msgstr  ""
 
 #: src/lang.c:348
-msgid	"repeat last search"
-msgstr	""
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  ""
 
 #: src/lang.c:349
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	""
+msgid   "return to group selection level"
+msgstr  ""
 
 #: src/lang.c:350
-msgid	"toggle info message in last line (subject/description)"
-msgstr	""
+msgid   "reply through mail to author"
+msgstr  ""
 
 #: src/lang.c:351
-msgid	"toggle inverse video"
-msgstr	""
+msgid   "reply through mail (don't copy text) to author"
+msgstr  ""
 
 #: src/lang.c:352
-msgid	"toggle mini help menu display"
-msgstr	""
+msgid   "reply through mail to author quoting complete headers"
+msgstr  ""
 
 #: src/lang.c:353
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	""
+msgid   "search backwards within this article"
+msgstr  ""
 
 #: src/lang.c:354
-msgid	"show version information"
-msgstr	""
+msgid   "search forwards within this article"
+msgstr  ""
 
 #: src/lang.c:355
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	""
+msgid   "show article in raw-mode (including all headers)"
+msgstr  ""
 
 #: src/lang.c:356
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	""
+msgid   "skip next block of included text"
+msgstr  ""
 
 #: src/lang.c:357
-msgid	"choose first thread in list"
-msgstr	""
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  ""
 
 #: src/lang.c:358
-msgid	"choose last thread in list"
-msgstr	""
+msgid   "toggle display of all headers"
+msgstr  ""
 
 #: src/lang.c:359
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	""
+msgid   "toggle word highlighting on/off"
+msgstr  ""
 
 #: src/lang.c:360
-msgid	"mark article as unread"
-msgstr	""
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  ""
 
 #: src/lang.c:361
-msgid	"mark current thread or tagged threads as read"
-msgstr	""
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  ""
 
 #: src/lang.c:362
-msgid	"mark thread as unread"
-msgstr	""
+msgid   "toggle german TeX style decoding for current article"
+msgstr  ""
 
 #: src/lang.c:363
-msgid	"toggle display of all/selected articles"
-msgstr	""
+msgid   "toggle display of uuencoded sections"
+msgstr  ""
 
 #: src/lang.c:364
-msgid	"display next group"
-msgstr	""
+msgid   "View/pipe/save multimedia attachments"
+msgstr  ""
 
 #: src/lang.c:365
-msgid	"display previous group"
-msgstr	""
+msgid   "choose first attachment in list"
+msgstr  ""
 
 #: src/lang.c:366
-msgid	"toggle all selections (all articles)"
-msgstr	""
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  ""
 
 #: src/lang.c:367
-msgid	"select group (make \"hot\")"
-msgstr	""
-
-#: src/lang.c:368
-msgid	"select thread"
-msgstr	""
+msgid   "choose last attachment in list"
+msgstr  ""
 
 #: src/lang.c:369
-msgid	"select threads if at least one unread article is selected"
-msgstr	""
+msgid   "pipe attachment into command"
+msgstr  ""
 
 #: src/lang.c:370
-msgid	"select threads that match user specified pattern"
-msgstr	""
-
-#: src/lang.c:371
-msgid	"tag all parts of current multipart-message in order"
-msgstr	""
+msgid   "pipe raw attachment into command"
+msgstr  ""
 
 #: src/lang.c:372
-msgid	"0 - 9\t  choose thread by number"
-msgstr	""
+msgid   "save attachment to disk"
+msgstr  ""
 
 #: src/lang.c:373
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	""
+msgid   "search for attachments forwards"
+msgstr  ""
 
 #: src/lang.c:374
-msgid	"toggle display of all/unread articles"
-msgstr	""
+msgid   "search for attachments backwards"
+msgstr  ""
 
 #: src/lang.c:375
-msgid	"toggle selection of thread"
-msgstr	""
+msgid   "view attachment"
+msgstr  ""
 
 #: src/lang.c:376
-msgid	"cycle through threading options available"
-msgstr	""
+msgid   "tag attachment"
+msgstr  ""
 
 #: src/lang.c:377
-msgid	"undo all selections (all articles)"
-msgstr	""
+msgid   "tag attachments that match user specified pattern"
+msgstr  ""
 
 #: src/lang.c:378
-msgid	"untag all tagged threads"
-msgstr	""
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
 
 #: src/lang.c:379
-msgid	"mark all articles in group as read"
-msgstr	""
+msgid   "untag all tagged attachments"
+msgstr  ""
 
 #: src/lang.c:380
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	""
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  ""
 
 #: src/lang.c:381
-msgid	"choose first group in list"
-msgstr	""
+msgid   "choose first attribute in list"
+msgstr  ""
 
 #: src/lang.c:382
-msgid	"choose group by name"
-msgstr	""
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  ""
 
 #: src/lang.c:383
-msgid	"0 - 9\t  choose group by number"
-msgstr	""
+msgid   "choose last attribute in list"
+msgstr  ""
 
 #: src/lang.c:384
-msgid	"choose range of groups to be affected by next command"
-msgstr	""
+msgid   "reset attribute to a default value"
+msgstr  ""
 
 #: src/lang.c:385
-msgid	"choose last group in list"
-msgstr	""
+msgid   "search forwards for an attribute"
+msgstr  ""
 
 #: src/lang.c:386
-msgid	"mark all articles in chosen group unread"
-msgstr	""
+msgid   "search backwards for an attribute"
+msgstr  ""
 
 #: src/lang.c:387
-msgid	"move chosen group within list"
-msgstr	""
+msgid   "select attribute"
+msgstr  ""
 
 #: src/lang.c:388
-msgid	"choose next group with unread news"
-msgstr	""
+msgid   "toggle back to options menu when invoked from there"
+msgstr  ""
 
-#: src/lang.c:389 src/lang.c:1197
-msgid	"quit"
-msgstr	""
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  ""
 
 #: src/lang.c:390
-msgid	"quit without saving configuration changes"
-msgstr	""
+msgid   "choose first option in list"
+msgstr  ""
 
 #: src/lang.c:391
-msgid	"read chosen group"
-msgstr	""
+msgid   "0 - 9\t  choose option by number"
+msgstr  ""
 
 #: src/lang.c:392
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	""
+msgid   "choose last option in list"
+msgstr  ""
 
 #: src/lang.c:393
-msgid	"search backwards for a group name"
-msgstr	""
+msgid   "start scopes menu"
+msgstr  ""
 
 #: src/lang.c:394
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	""
+msgid   "search forwards for an option"
+msgstr  ""
 
 #: src/lang.c:395
-msgid	"search forwards for a group name"
-msgstr	""
+msgid   "search backwards for an option"
+msgstr  ""
 
 #: src/lang.c:396
-msgid	"subscribe to chosen group"
-msgstr	""
+msgid   "select option"
+msgstr  ""
 
 #: src/lang.c:397
-msgid	"subscribe to groups that match pattern"
-msgstr	""
+msgid   "toggle to attributes menu"
+msgstr  ""
 
 #: src/lang.c:398
-msgid	"reread active file to check for any new news"
-msgstr	""
+msgid   "choose range of articles to be affected by next command"
+msgstr  ""
 
 #: src/lang.c:399
-msgid	"toggle display of group name only or group name plus description"
-msgstr	""
+msgid   "escape from command prompt"
+msgstr  ""
 
 #: src/lang.c:400
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	""
+msgid   "edit filter file"
+msgstr  ""
 
 #: src/lang.c:401
-msgid	"unsubscribe from chosen group"
-msgstr	""
+msgid   "get help"
+msgstr  ""
 
 #: src/lang.c:402
-msgid	"unsubscribe from groups that match pattern"
-msgstr	""
+msgid   "display last article viewed"
+msgstr  ""
 
 #: src/lang.c:403
-msgid	"sort the list of groups"
-msgstr	""
+msgid   "down one line"
+msgstr  ""
 
 #: src/lang.c:404
-msgid	"toggle display to show all/subscribed groups"
-msgstr	""
+msgid   "up one line"
+msgstr  ""
 
 #: src/lang.c:405
-msgid	"0 - 9\t  choose article by number"
-msgstr	""
+msgid   "go to article chosen by Message-ID"
+msgstr  ""
 
 #: src/lang.c:406
-msgid	"mark thread as read and return to group index page"
-msgstr	""
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  ""
 
 #: src/lang.c:407
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	""
+msgid   "menu of configurable options"
+msgstr  ""
 
 #: src/lang.c:408
-msgid	"choose first article in list"
-msgstr	""
+msgid   "down one page"
+msgstr  ""
 
 #: src/lang.c:409
-msgid	"choose last article in list"
-msgstr	""
-
-#: src/lang.c:410
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	""
+msgid   "up one page"
+msgstr  ""
 
 #: src/lang.c:411
-msgid	"read chosen article"
-msgstr	""
+msgid   "post (write) article to current group"
+msgstr  ""
 
 #: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	""
-
-#: src/lang.c:413
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	""
+msgid   "post postponed articles"
+msgstr  ""
 
 #: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	""
+msgid   "list articles posted by you (from posted file)"
+msgstr  ""
 
 #: src/lang.c:415
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	""
+msgid   "return to previous menu"
+msgstr  ""
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  ""
 
 #: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	""
+msgid   "redraw page"
+msgstr  ""
 
 #: src/lang.c:418
-msgid	"Kill filter added"
-msgstr	""
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  ""
 
 #: src/lang.c:419
-msgid	"Auto-selection filter added"
-msgstr	""
+msgid   "save marked articles automatically without user prompts"
+msgstr  ""
 
 #: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	""
+msgid   "scroll the screen one line down"
+msgstr  ""
 
 #: src/lang.c:421
-msgid	"Storing article for later posting"
-msgstr	""
+msgid   "scroll the screen one line up"
+msgstr  ""
 
 #: src/lang.c:422
-msgid	"Please enter a valid character"
-msgstr	""
+msgid   "search for articles by author backwards"
+msgstr  ""
 
 #: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	""
+msgid   "search for articles by author forwards"
+msgstr  ""
 
 #: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	""
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  ""
 
 #: src/lang.c:425
-msgid	"Not a multi-part message"
-msgstr	""
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  ""
 
 #: src/lang.c:426
-msgid	"You are not subscribed to this group"
-msgstr	""
+msgid   "search for articles by Subject line backwards"
+msgstr  ""
 
 #: src/lang.c:427
-msgid	"No previous expression"
-msgstr	""
+msgid   "search for articles by Subject line forwards"
+msgstr  ""
 
 #: src/lang.c:428
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	""
+msgid   "repeat last search"
+msgstr  ""
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  ""
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	""
+msgid   "toggle info message in last line (subject/description)"
+msgstr  ""
 
 #: src/lang.c:431
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	""
+msgid   "toggle inverse video"
+msgstr  ""
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  ""
 
 #: src/lang.c:433
-#, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	""
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  ""
 
 #: src/lang.c:434
-msgid	"TeX2Iso encoded article"
-msgstr	""
+msgid   "show version information"
+msgstr  ""
 
 #: src/lang.c:435
-msgid	"incomplete "
-msgstr	""
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  ""
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  ""
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	""
+msgid   "choose first thread in list"
+msgstr  ""
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  ""
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  ""
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  ""
+
+#: src/lang.c:441
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  ""
+
+#: src/lang.c:442
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  ""
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  ""
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  ""
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  ""
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  ""
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  ""
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  ""
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  ""
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  ""
+
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  ""
+
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  ""
 
 #: src/lang.c:453
-#, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	""
+msgid   "tag all parts of current multipart-message in order"
+msgstr  ""
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  ""
 
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	""
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  ""
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  ""
 
 #: src/lang.c:457
-#, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	""
+msgid   "toggle selection of thread"
+msgstr  ""
 
 #: src/lang.c:458
-msgid	"Inverse video disabled"
-msgstr	""
+msgid   "cycle through threading options available"
+msgstr  ""
 
 #: src/lang.c:459
-msgid	"Inverse video enabled"
-msgstr	""
+msgid   "undo all selections (all articles)"
+msgstr  ""
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  ""
 
 #: src/lang.c:461
-#, c-format
-msgid	"Missing definition for %s\n"
-msgstr	""
+msgid   "add new scope"
+msgstr  ""
 
 #: src/lang.c:462
-#, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	""
+msgid   "delete scope"
+msgstr  ""
 
 #: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	""
+msgid   "edit attributes file"
+msgstr  ""
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	""
+msgid   "choose first scope in list"
+msgstr  ""
 
 #: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	""
+msgid   "0 - 9\t  choose scope by number"
+msgstr  ""
 
 #: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	""
+msgid   "choose last scope in list"
+msgstr  ""
 
 #: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	""
+msgid   "move scope"
+msgstr  ""
 
 #: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	""
+msgid   "rename scope"
+msgstr  ""
 
 #: src/lang.c:469
-msgid	"Kill pattern scope  : "
-msgstr	""
+msgid   "select scope"
+msgstr  ""
 
 #: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	""
+msgid   "mark all articles in group as read"
+msgstr  ""
 
 #: src/lang.c:471
-msgid	"Kill text pattern   : "
-msgstr	""
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  ""
 
 #: src/lang.c:472
-msgid	"Kill time in days   : "
-msgstr	""
+msgid   "choose first group in list"
+msgstr  ""
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  ""
 
 #: src/lang.c:474
-msgid	"Last"
-msgstr	""
+msgid   "0 - 9\t  choose group by number"
+msgstr  ""
 
 #: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	""
+msgid   "choose range of groups to be affected by next command"
+msgstr  ""
 
 #: src/lang.c:476
-#, c-format
-msgid	"Lines %s  "
-msgstr	""
+msgid   "choose last group in list"
+msgstr  ""
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  ""
 
 #: src/lang.c:478
-msgid	"Message-ID: line              "
-msgstr	""
+msgid   "move chosen group within list"
+msgstr  ""
 
 #: src/lang.c:479
-msgid	"Mail"
-msgstr	""
+msgid   "choose next group with unread news"
+msgstr  ""
 
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	""
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  ""
 
 #: src/lang.c:481
-#, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	""
+msgid   "quit without saving configuration changes"
+msgstr  ""
 
 #: src/lang.c:482
-#, c-format
-msgid	"Mailing log to %s\n"
-msgstr	""
+msgid   "read chosen group"
+msgstr  ""
 
 #: src/lang.c:483
-msgid	"Mail bug report..."
-msgstr	""
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  ""
 
 #: src/lang.c:484
-#, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	""
+msgid   "search backwards for a group name"
+msgstr  ""
 
 #: src/lang.c:485
-msgid	"Mailed"
-msgstr	""
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  ""
 
 #: src/lang.c:486
-#, c-format
-msgid	"Mailing to %s..."
-msgstr	""
+msgid   "search forwards for a group name"
+msgstr  ""
 
 #: src/lang.c:487
-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	""
+msgid   "subscribe to chosen group"
+msgstr  ""
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  ""
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  ""
 
 #: src/lang.c:490
-#, c-format
-msgid	"%s marked as unread"
-msgstr	""
+msgid   "toggle display of group name only or group name plus description"
+msgstr  ""
 
 #: src/lang.c:491
-#, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	""
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  ""
 
 #: src/lang.c:492
-#, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	""
+msgid   "unsubscribe from chosen group"
+msgstr  ""
 
 #: src/lang.c:493
-#, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	""
+msgid   "unsubscribe from groups that match pattern"
+msgstr  ""
 
 #: src/lang.c:494
-#, c-format
-msgid	"Mark group %s as read?"
-msgstr	""
+msgid   "sort the list of groups"
+msgstr  ""
 
 #: src/lang.c:495
-#, c-format
-msgid	"Mark thread as read%s?"
-msgstr	""
+msgid   "toggle display to show all/subscribed groups"
+msgstr  ""
 
 #: src/lang.c:496
-#, c-format
-msgid	"Mark %s=tagged articles/threads, %s=current thread, %s=quit: "
-msgstr	""
+msgid   "0 - 9\t  choose article by number"
+msgstr  ""
 
 #: src/lang.c:497
-#, c-format
-msgid	"Matching %s groups..."
-msgstr	""
+msgid   "mark thread as read and return to group index page"
+msgstr  ""
 
-#: src/lang.c:498 src/lang.c:502
-#, c-format
-msgid	"<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
-msgstr	""
+#: src/lang.c:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  ""
 
 #: src/lang.c:499
-#, c-format
-msgid	"%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list "
-	"thread"
-msgstr	""
+msgid   "choose first article in list"
+msgstr  ""
 
 #: src/lang.c:500
-#, c-format
-msgid	"%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom"
-msgstr	""
+msgid   "choose last article in list"
+msgstr  ""
 
 #: src/lang.c:501
-#, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	""
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  ""
+
+#: src/lang.c:502
+msgid   "mark article, range or tagged articles as unread"
+msgstr  ""
 
 #: src/lang.c:503
-#, c-format
-msgid	"%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
-msgstr	""
+msgid   "mark current thread as unread"
+msgstr  ""
 
 #: src/lang.c:504
-#, c-format
-msgid	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
-msgstr	""
+msgid   "read chosen article"
+msgstr  ""
 
 #: src/lang.c:505
-#, c-format
-msgid	"%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread"
-msgstr	""
+msgid   "Display properties\n"
+        "------------------"
+msgstr  ""
 
 #: src/lang.c:506
-#, c-format
-msgid	"%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out"
-msgstr	""
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  ""
 
 #: src/lang.c:507
-#, c-format
-msgid	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
-msgstr	""
+msgid   "Moving around\n"
+        "-------------"
+msgstr  ""
 
 #: src/lang.c:508
-#, c-format
-msgid	"%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread"
-msgstr	""
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  ""
 
 #: src/lang.c:509
-msgid	"--More--"
-msgstr	""
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  ""
 
 #: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	""
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  ""
+
+#: src/lang.c:511
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  ""
 
 #: src/lang.c:512
-msgid	", name: "
-msgstr	""
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  ""
 
 #: src/lang.c:513
-#, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	""
+msgid   "URL operations\n"
+        "--------------"
+msgstr  ""
 
 #: src/lang.c:514
-msgid	"newsgroups"
-msgstr	""
+msgid   "choose first URL in list"
+msgstr  ""
 
 #: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	""
+msgid   "0 - 9\t  choose URL by number"
+msgstr  ""
 
 #: src/lang.c:516
-msgid	"newsgroup"
-msgstr	""
+msgid   "choose last URL in list"
+msgstr  ""
 
 #: src/lang.c:517
-msgid	"Try and save newsrc file again?"
-msgstr	""
+msgid   "search for URLs forwards"
+msgstr  ""
 
 #: src/lang.c:518
-msgid	"Warning: No newsgroups were written to your newsrc file. Save aborted."
-msgstr	""
+msgid   "search for URLs backwards"
+msgstr  ""
 
 #: src/lang.c:519
-msgid	"newsrc file saved successfully.\n"
-msgstr	""
+msgid   "Open URL in browser"
+msgstr  ""
 
 #: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	""
-
-#: src/lang.c:521
-#, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"NNTP authorisation password not found for %s"
+msgid   "toggle info message in last line (URL)"
+msgstr  ""
 
 #: src/lang.c:522
-msgid	"No  "
-msgstr	""
+msgid   "Group Level Commands"
+msgstr  ""
 
 #: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	""
+msgid   "Kill filter added"
+msgstr  ""
 
 #: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	""
+msgid   "Auto-selection filter added"
+msgstr  ""
 
 #: src/lang.c:525
-msgid	"*** No description ***"
-msgstr	""
+msgid   "All parts tagged"
+msgstr  ""
 
 #: src/lang.c:526
-msgid	"No filename"
-msgstr	""
+msgid   "Storing article for later posting"
+msgstr  ""
 
 #: src/lang.c:527
-msgid	"No group"
-msgstr	""
+msgid   "Please enter a valid character"
+msgstr  ""
 
 #: src/lang.c:528
-msgid	"*** No groups ***"
-msgstr	""
+#, c-format
+msgid   "Missing part #%d"
+msgstr  ""
 
 #: src/lang.c:529
-msgid	"No more groups to read"
-msgstr	""
+msgid   "*** No postponed articles ***"
+msgstr  ""
 
 #: src/lang.c:530
-msgid	"No last message"
-msgstr	""
+msgid   "Not a multi-part message"
+msgstr  ""
 
 #: src/lang.c:531
-msgid	"No mail address"
-msgstr	""
+msgid   "You are not subscribed to this group"
+msgstr  ""
 
 #: src/lang.c:532
-msgid	"No articles marked for saving"
-msgstr	""
+msgid   "No previous expression"
+msgstr  ""
 
 #: src/lang.c:533
-msgid	"No match"
-msgstr	""
-
-#: src/lang.c:534
-msgid	"No more groups"
-msgstr	""
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  ""
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-msgid	"No newsgroups"
-msgstr	""
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  ""
 
 #: src/lang.c:536
-msgid	"No next unread article"
-msgstr	""
-
-#: src/lang.c:537
-msgid	"No previous group"
-msgstr	""
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  ""
 
 #: src/lang.c:538
-msgid	"No previous unread article"
-msgstr	""
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  ""
 
 #: src/lang.c:539
-msgid	"No responses"
-msgstr	""
+msgid   "TeX2Iso encoded article"
+msgstr  ""
 
 #: src/lang.c:540
-msgid	"No responses to list in current thread"
-msgstr	""
-
-#: src/lang.c:541
-msgid	"No search string"
-msgstr	""
+msgid   "incomplete "
+msgstr  ""
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-msgid	"No subject"
-msgstr	""
-
-#: src/lang.c:544
-#, c-format
-msgid	"%s: Terminal must have clear to end-of-line (ce)\n"
-msgstr	""
-
-#: src/lang.c:545
-#, c-format
-msgid	"%s: Terminal must have clear to end-of-screen (cd)\n"
-msgstr	""
-
-#: src/lang.c:546
 #, c-format
-msgid	"%s: Terminal must have clearscreen (cl) capability\n"
-msgstr	""
-
-#: src/lang.c:547
-#, c-format
-msgid	"%s: Terminal must have cursor motion (cm)\n"
-msgstr	""
-
-#: src/lang.c:548
-#, c-format
-msgid	"%s: TERM variable must be set to use screen capabilities\n"
-msgstr	""
-
-#: src/lang.c:550
-#, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	""
-
-#: src/lang.c:551
-msgid	"Newsgroup does not exist on this server"
-msgstr	""
-
-#: src/lang.c:552
-#, c-format
-msgid	"Group %s not found in active file"
-msgstr	""
-
-#: src/lang.c:553
-msgid	"c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: "
-msgstr	""
-
-#: src/lang.c:554
-msgid	"use a)lternative name, use d)efault .newsrc, q)uit tin: "
-msgstr	""
-
-#: src/lang.c:555
-#, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	""
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	""
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  ""
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  ""
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  ""
 
 #: src/lang.c:563
 #, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	""
-
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	""
+msgid   "Invalid  Sender:-header %s"
+msgstr  ""
 
-#: src/lang.c:567
-#, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	""
+#: src/lang.c:565
+msgid   "Inverse video disabled"
+msgstr  ""
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  ""
 
 #: src/lang.c:568
 #, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	""
+msgid   "Missing definition for %s\n"
+msgstr  ""
 
 #: src/lang.c:569
 #, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	""
+msgid   "Invalid key definition '%s'\n"
+msgstr  ""
 
 #: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	""
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  ""
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  ""
 
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
 #: src/lang.c:572
-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	""
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  ""
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  ""
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  ""
 
 #: src/lang.c:575
-msgid	"Posted articles history"
-msgstr	""
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  ""
 
 #: src/lang.c:576
-#, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	""
+msgid   "Kill pattern scope  : "
+msgstr  ""
 
 #: src/lang.c:577
-msgid	"-- post processing started --"
-msgstr	""
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:578
-msgid	"-- post processing completed --"
-msgstr	""
+msgid   "Kill text pattern   : "
+msgstr  ""
 
 #: src/lang.c:579
-#, c-format
-msgid	"Post subject [%s]> "
-msgstr	""
-
-#: src/lang.c:580
-msgid	"# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
-msgstr	""
+msgid   "Kill time in days   : "
+msgstr  ""
 
 #: src/lang.c:581
-msgid	"Posting article..."
-msgstr	""
+msgid   "Last"
+msgstr  ""
 
 #: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	""
+msgid   "-- Last response --"
+msgstr  ""
 
 #: src/lang.c:583
 #, c-format
-msgid	"Hot %s"
-msgstr	""
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	""
+msgid   "Lines %s  "
+msgstr  ""
 
 #: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	""
+msgid   "Mail"
+msgstr  ""
 
 #: src/lang.c:586
-msgid	"Processing mail messages marked for deletion."
-msgstr	""
+msgid   "mailbox "
+msgstr  ""
 
 #: src/lang.c:587
-msgid	"Processing saved articles marked for deletion."
-msgstr	""
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  ""
 
 #: src/lang.c:588
 #, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	""
+msgid   "Mailing log to %s\n"
+msgstr  ""
 
 #: src/lang.c:589
-msgid	"Article unchanged, abort mailing?"
-msgstr	""
+msgid   "Mail bug report..."
+msgstr  ""
 
 #: src/lang.c:590
 #, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	""
+msgid   "Mail BUG REPORT to %s?"
+msgstr  ""
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  ""
 
 #: src/lang.c:592
-msgid	"Add quick kill filter?"
-msgstr	""
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  ""
 
 #: src/lang.c:593
-msgid	"Add quick selection filter?"
-msgstr	""
-
-#: src/lang.c:594
-msgid	"Do you really want to quit?"
-msgstr	""
-
-#: src/lang.c:595
-#, c-format
-msgid	"%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
-msgstr	""
+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:596
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	""
+#, c-format
+msgid   "%s marked as read"
+msgstr  ""
 
 #: src/lang.c:597
 #, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	""
+msgid   "%s marked as unread"
+msgstr  ""
 
 #: src/lang.c:598
 #, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	""
+msgid   "Marked %d of %d %s as read"
+msgstr  ""
 
 #: src/lang.c:599
 #, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	""
+msgid   "Marked %d of %d %s as unread"
+msgstr  ""
 
-#: src/lang.c:600
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	""
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  ""
+
+#: src/lang.c:601
+#, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  ""
+
+#: src/lang.c:602
+#, c-format
+msgid   "Mark article as read%s?"
+msgstr  ""
 
 #: src/lang.c:603
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	""
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  ""
 
 #: src/lang.c:604
-msgid	"Do you want to abort this operation?"
-msgstr	""
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  ""
 
 #: src/lang.c:605
-msgid	"Do you want to exit tin immediately?"
-msgstr	""
-
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	""
-
-#: src/lang.c:607
-msgid	"Reading ('q' to quit)..."
-msgstr	""
+#, c-format
+msgid   "Matching %s groups..."
+msgstr  ""
 
-#: src/lang.c:608
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
 #, c-format
-msgid	"Reading %sarticles..."
-msgstr	""
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  ""
 
-#: src/lang.c:609
+#: src/lang.c:608
 #, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	""
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  ""
 
 #: src/lang.c:610
 #, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	""
-
-#: src/lang.c:611
-msgid	"Reading filter file...\n"
-msgstr	""
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  ""
 
 #: src/lang.c:612
 #, c-format
-msgid	"Reading %s groups..."
-msgstr	""
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  ""
 
-#: src/lang.c:613
-msgid	"Reading input history file...\n"
-msgstr	""
+#: src/lang.c:613 src/lang.c:617
+#, c-format
+msgid   "<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select"
+msgstr  ""
 
 #: src/lang.c:614
-msgid	"Reading keymap file...\n"
-msgstr	""
+#, c-format
+msgid   "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list "
+        "thread"
+msgstr  ""
 
 #: src/lang.c:615
-msgid	"Reading groups from active file... "
-msgstr	""
+#, c-format
+msgid   "%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom"
+msgstr  ""
 
 #: src/lang.c:616
-msgid	"Reading groups from newsrc file... "
-msgstr	""
-
-#: src/lang.c:617
-msgid	"Reading newsgroups file... "
-msgstr	""
+#, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=quit"
+msgstr  ""
 
 #: src/lang.c:618
-msgid	"Reading newsrc file..."
-msgstr	""
+#, c-format
+msgid   "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
+msgstr  ""
+
+#: src/lang.c:619
+#, c-format
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  ""
 
-#: src/lang.c:620
+#: src/lang.c:621
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	""
+msgid   "<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
+msgstr  ""
 
 #: src/lang.c:622
 #, c-format
-msgid	"Bogus group %s removed."
-msgstr	""
+msgid   "%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread"
+msgstr  ""
 
 #: src/lang.c:623
 #, c-format
-msgid	"Error: rename %s to %s"
-msgstr	""
+msgid   "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out"
+msgstr  ""
 
 #: src/lang.c:624
-msgid	"Reply to author..."
-msgstr	""
+#, c-format
+msgid   "<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
+msgstr  ""
 
 #: src/lang.c:625
-msgid	"Repost"
-msgstr	""
-
-#: src/lang.c:626
-msgid	"Reposting article..."
-msgstr	""
+#, c-format
+msgid   "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread"
+msgstr  ""
 
 #: src/lang.c:627
 #, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	""
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  ""
 
 #: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	""
+msgid   "--More--"
+msgstr  ""
 
 #: src/lang.c:629
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	""
+#, c-format
+msgid   "Moving %s..."
+msgstr  ""
 
 #: src/lang.c:630
-#, c-format
-msgid	"Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
-msgstr	""
+msgid   "Message-ID: & last Reference  "
+msgstr  ""
 
 #: src/lang.c:631
-#, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	""
+msgid   "Message-ID: line              "
+msgstr  ""
 
 #: src/lang.c:632
-msgid	"Press <RETURN> to continue..."
-msgstr	""
+msgid   "Message-ID: & References: line"
+msgstr  ""
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	""
+msgid   ", name: "
+msgstr  ""
 
 #: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	""
+#, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  ""
 
 #: src/lang.c:636
-msgid	"Auto-select Article Menu"
-msgstr	""
+msgid   "newsgroups"
+msgstr  ""
 
 #: src/lang.c:637
 #, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	""
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  ""
 
 #: src/lang.c:638
-msgid	"Select pattern scope: "
-msgstr	""
+msgid   "newsgroup"
+msgstr  ""
 
 #: src/lang.c:639
-#, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	""
+msgid   "Try and save newsrc file again?"
+msgstr  ""
 
 #: src/lang.c:640
-msgid	"Select text pattern : "
-msgstr	""
+msgid   "Warning: No newsgroups were written to your newsrc file. Save aborted."
+msgstr  ""
 
 #: src/lang.c:641
-msgid	"Select time in days   : "
-msgstr	""
+msgid   "newsrc file saved successfully.\n"
+msgstr  ""
 
 #: src/lang.c:642
-#, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	""
+msgid   "-- Next response --"
+msgstr  ""
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  ""
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  ""
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  ""
+
+#: src/lang.c:646
+msgid   "*** No attachments ***"
+msgstr  ""
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  ""
 
 #: src/lang.c:648
-msgid	"Showing unread groups only"
-msgstr	""
+msgid   "No filename"
+msgstr  ""
 
 #: src/lang.c:649
-msgid	"Subject: line (ignore case)   "
-msgstr	""
+msgid   "No group"
+msgstr  ""
 
 #: src/lang.c:650
-msgid	"Subject: line (case sensitive)"
-msgstr	""
+msgid   "*** No groups ***"
+msgstr  ""
 
 #: src/lang.c:651
-msgid	"Save"
-msgstr	""
+msgid   "No more groups to read"
+msgstr  ""
 
 #: src/lang.c:652
-#, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	""
+msgid   "No last message"
+msgstr  ""
 
 #: src/lang.c:653
-msgid	"Save configuration before continuing?"
-msgstr	""
+msgid   "No mail address"
+msgstr  ""
 
 #: src/lang.c:654
-msgid	"Save filename> "
-msgstr	""
+msgid   "No articles marked for saving"
+msgstr  ""
 
 #: src/lang.c:655
-msgid	"Saved"
-msgstr	""
+msgid   "No match"
+msgstr  ""
 
 #: src/lang.c:656
-#, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	""
+msgid   "No more groups"
+msgstr  ""
 
 #: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	""
+msgid   "No newsgroups"
+msgstr  ""
 
 #: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	""
+msgid   "No next unread article"
+msgstr  ""
 
 #: src/lang.c:659
-#, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	""
+msgid   "No previous group"
+msgstr  ""
 
 #: src/lang.c:660
-#, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	""
+msgid   "No previous search, nothing to repeat"
+msgstr  ""
 
 #: src/lang.c:661
-#, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	""
+msgid   "No previous unread article"
+msgstr  ""
 
 #: src/lang.c:662
-msgid	"Saving..."
-msgstr	""
+msgid   "No responses"
+msgstr  ""
 
 #: src/lang.c:663
-#, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s: Screen initialisation failed"
+msgid   "No responses to list in current thread"
+msgstr  ""
+
+#: src/lang.c:664
+msgid   "*** No scopes ***"
+msgstr  ""
 
 #: src/lang.c:665
-#, c-format
-msgid	"%s: screen is too small\n"
-msgstr	""
+msgid   "No search string"
+msgstr  ""
 
-#: src/lang.c:667
-#, c-format
-msgid	"screen is too small, %s is exiting\n"
-msgstr	""
+#: src/lang.c:666
+msgid   "No subject"
+msgstr  ""
 
 #: src/lang.c:668
 #, c-format
-msgid	"Search backwards [%s]> "
-msgstr	""
+msgid   "%s: Terminal must have clear to end-of-line (ce)\n"
+msgstr  ""
 
 #: src/lang.c:669
 #, c-format
-msgid	"Search body [%s]> "
-msgstr	""
+msgid   "%s: Terminal must have clear to end-of-screen (cd)\n"
+msgstr  ""
 
 #: src/lang.c:670
 #, c-format
-msgid	"Search forwards [%s]> "
-msgstr	""
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  ""
 
 #: src/lang.c:671
-msgid	"Searching..."
-msgstr	""
+#, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  ""
 
 #: src/lang.c:672
 #, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	""
-
-#: src/lang.c:673
-msgid	"Select article> "
-msgstr	""
+msgid   "%s: TERM variable must be set to use screen capabilities\n"
+msgstr  ""
 
 #: src/lang.c:674
-msgid	"Select option number before text or use arrow keys and <CR>. 'q' to quit."
-msgstr	""
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  ""
 
 #: src/lang.c:675
-msgid	"Select group> "
-msgstr	""
+msgid   "Newsgroup does not exist on this server"
+msgstr  ""
 
 #: src/lang.c:676
 #, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	""
+msgid   "Group %s not found in active file"
+msgstr  ""
 
 #: src/lang.c:677
-msgid	"Select thread > "
-msgstr	""
+msgid   "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  ""
 
 #: src/lang.c:678
-#, c-format
-msgid	"%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
-msgstr	""
+msgid   "use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  ""
 
 #: src/lang.c:679
-msgid	"servers active-file"
-msgstr	""
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  ""
+
+#: src/lang.c:686
+msgid   "Only"
+msgstr  ""
 
-#: src/lang.c:680
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	""
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  ""
+
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  ""
 
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	""
+#: src/lang.c:689
+msgid   "Options Menu Commands"
+msgstr  ""
 
-#: src/lang.c:682
+#: src/lang.c:692
 #, c-format
-msgid	"Starting: (%s)"
-msgstr	""
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  ""
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	""
+msgid   "Error in regex: pcre internal error %d"
+msgstr  ""
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, c-format
-msgid	"Thread (%.*s)"
-msgstr	""
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  ""
 
-#: src/lang.c:685
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	""
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  ""
 
-#: src/lang.c:686
-#, c-format
-msgid	"subscribed to %d groups"
-msgstr	""
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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:687
+#: src/lang.c:700
+msgid   "Posted articles history"
+msgstr  ""
+
+#: src/lang.c:701
 #, c-format
-msgid	"Subscribed to %s"
-msgstr	""
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  ""
 
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	""
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  ""
 
-#: src/lang.c:689
-#, c-format
-msgid	"Repost or supersede article(s) [%%s]? (%s/%s/%s): "
-msgstr	""
+#: src/lang.c:703
+msgid   "-- post processing completed --"
+msgstr  ""
 
-#: src/lang.c:690
+#: src/lang.c:704
 #, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	""
+msgid   "Post subject [%s]> "
+msgstr  ""
 
-#: src/lang.c:691
-msgid	"Superseding article ..."
-msgstr	""
+#: src/lang.c:705
+msgid   "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
+msgstr  ""
 
-#: src/lang.c:692
-#, c-format
-msgid	"\n"
-	"Stopped. Type 'fg' to restart %s\n"
-msgstr	""
+#: src/lang.c:706
+msgid   "Posting article..."
+msgstr  ""
 
-#: src/lang.c:694
+#: src/lang.c:707
 #, c-format
-msgid	"%d days"
-msgstr	""
-
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	""
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  ""
 
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	""
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  ""
 
-#: src/lang.c:697
-msgid	"# Default action/prompt strings\n"
-msgstr	""
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  ""
 
-#: src/lang.c:698
-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"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	""
+#: src/lang.c:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  ""
 
 #: src/lang.c:711
-msgid	"# If ON use print current subject or newsgroup description in the last line\n"
-msgstr	""
+msgid   "Processing mail messages marked for deletion."
+msgstr  ""
 
 #: src/lang.c:712
-msgid	"# Host & time info used for detecting new groups (don't touch)\n"
-msgstr	""
+msgid   "Processing saved articles marked for deletion."
+msgstr  ""
 
 #: src/lang.c:713
-msgid	"There is no news\n"
-msgstr	""
+#, c-format
+msgid   "Accept Followup-To? %s=post, %s=ignore, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:714
-msgid	"Thread"
-msgstr	""
+msgid   "Article unchanged, abort mailing?"
+msgstr  ""
 
 #: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	""
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	""
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  ""
 
 #: src/lang.c:717
-msgid	"Thread selected"
-msgstr	""
+msgid   "Add quick kill filter?"
+msgstr  ""
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  ""
 
 #: src/lang.c:719
-msgid	"threads"
-msgstr	""
+msgid   "Do you really want to quit?"
+msgstr  ""
+
+#: src/lang.c:720
+#, c-format
+msgid   "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
+msgstr  ""
 
 #: src/lang.c:721
-msgid	"Thread range"
-msgstr	""
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  ""
 
 #: src/lang.c:722
-msgid	"thread"
-msgstr	""
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  ""
 
 #: src/lang.c:723
 #, c-format
-msgid	"Thread %4s of %4s"
-msgstr	""
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  ""
 
 #: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	""
-
-#: src/lang.c:725
 #, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	""
-
-#: src/lang.c:726
-msgid	"Toggled rot13 encoding"
-msgstr	""
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  ""
 
-#: src/lang.c:727
-#, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	""
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  ""
 
 #: src/lang.c:728
-#, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	""
-
-#: src/lang.c:729
-#, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	""
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  ""
 
 #: src/lang.c:730
-#, c-format
-msgid	"%d Trying to lock %s"
-msgstr	""
+msgid   "Do you want to abort this operation?"
+msgstr  ""
 
 #: src/lang.c:731
-msgid	"           h=help\n"
-msgstr	""
+msgid   "Do you want to exit tin immediately?"
+msgstr  ""
 
 #: src/lang.c:733
-msgid	"Unlimited"
-msgstr	""
+msgid   "Reading ('q' to quit)..."
+msgstr  ""
 
 #: src/lang.c:734
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	""
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  ""
 
 #: src/lang.c:735
 #, c-format
-msgid	"Error decoding %s : %s"
-msgstr	""
+msgid   "Reading %sattributes file...\n"
+msgstr  ""
 
 #: src/lang.c:736
-msgid	"No end."
-msgstr	""
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  ""
 
 #: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	""
+msgid   "Reading filter file...\n"
+msgstr  ""
 
 #: src/lang.c:738
 #, c-format
-msgid	"%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
-	"\n"
-msgstr	""
+msgid   "Reading %s groups..."
+msgstr  ""
 
 #: src/lang.c:739
-msgid	"unread "
-msgstr	""
+msgid   "Reading input history file...\n"
+msgstr  ""
 
 #: src/lang.c:740
-#, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	""
+msgid   "Reading keymap file...\n"
+msgstr  ""
 
 #: src/lang.c:741
-#, c-format
-msgid	"Unsubscribed from %s"
-msgstr	""
+msgid   "Reading groups from active file... "
+msgstr  ""
 
 #: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	""
+msgid   "Reading groups from newsrc file... "
+msgstr  ""
 
 #: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	""
+msgid   "Reading newsgroups file... "
+msgstr  ""
 
 #: src/lang.c:744
-msgid	"Updated"
-msgstr	""
+msgid   "Reading newsrc file..."
+msgstr  ""
 
 #: src/lang.c:745
-msgid	"Updating"
-msgstr	""
-
-#: src/lang.c:746
-#, c-format
-msgid	"Opening %s\n"
-msgstr	""
+msgid   "References: line              "
+msgstr  ""
 
 #: src/lang.c:747
-msgid	"No more URL's in this article"
-msgstr	""
-
-#: src/lang.c:748
-msgid	"Use MIME display program for this message?"
-msgstr	""
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  ""
 
 #: src/lang.c:749
-msgid	"  -c       mark all news as read in subscribed newsgroups (batch mode)"
-msgstr	""
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  ""
 
 #: src/lang.c:750
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	""
+msgid   "Removed from the previous rule: "
+msgstr  ""
 
 #: src/lang.c:751
-msgid	"  -q       don't check for new newsgroups"
-msgstr	""
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  ""
 
 #: src/lang.c:752
-msgid	"  -X       don't save any files on quit"
-msgstr	""
+msgid   "Reply to author..."
+msgstr  ""
 
 #: src/lang.c:753
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	""
+msgid   "Repost"
+msgstr  ""
 
 #: src/lang.c:754
-msgid	"  -G limit get only limit articles/group"
-msgstr	""
+msgid   "Reposting article..."
+msgstr  ""
 
 #: src/lang.c:755
 #, c-format
-msgid	"  -H       help information about %s"
-msgstr	""
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  ""
 
 #: src/lang.c:756
-msgid	"  -h       this help message"
-msgstr	""
+msgid   "Reset newsrc?"
+msgstr  ""
 
 #: src/lang.c:757
-#, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	""
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  ""
 
 #: src/lang.c:758
-msgid	"  -u       update index files (batch mode)"
-msgstr	""
-
-#: src/lang.c:759
 #, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	""
+msgid   "Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:760
-#, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	""
-
-#: src/lang.c:761
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	""
+msgid   "Press <RETURN> to continue..."
+msgstr  ""
 
 #: src/lang.c:762
-msgid	"  -M user  mail new news to specified user (batch mode)"
-msgstr	""
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:763
-#, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	""
+msgid   "Select Lines: (</>num): "
+msgstr  ""
 
 #: src/lang.c:764
-msgid	"  -x       no posting mode"
-msgstr	""
+msgid   "Auto-select Article Menu"
+msgstr  ""
 
 #: src/lang.c:765
-msgid	"  -w       post an article and exit"
-msgstr	""
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  ""
 
 #: src/lang.c:766
-msgid	"  -o       post all postponed articles and exit"
-msgstr	""
+msgid   "Select pattern scope: "
+msgstr  ""
 
 #: src/lang.c:767
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	""
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:768
-msgid	"  -R       read news saved by -S option"
-msgstr	""
+msgid   "Select text pattern : "
+msgstr  ""
 
 #: src/lang.c:769
-#, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	""
+msgid   "Select time in days   : "
+msgstr  ""
 
 #: src/lang.c:770
-msgid	"  -S       save new news for later reading (batch mode)"
-msgstr	""
-
-#: src/lang.c:771
-msgid	"  -z       start if any unread news"
-msgstr	""
-
-#: src/lang.c:772
 #, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	""
-
-#: src/lang.c:773
-msgid	"  -v       verbose output for batch mode options"
-msgstr	""
-
-#: src/lang.c:774
-msgid	"  -V       print version & date information"
-msgstr	""
-
-#: src/lang.c:775
-#, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	""
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:776
-#, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	""
+msgid   "Showing unread groups only"
+msgstr  ""
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  ""
 
 #: src/lang.c:778
-#, c-format
-msgid	"\n"
-	"%s%d out of range (0 - %d). Reset to 0"
-msgstr	""
+msgid   "Subject: line (case sensitive)"
+msgstr  ""
 
 #: src/lang.c:779
+msgid   "Save"
+msgstr  ""
+
+#: src/lang.c:780
 #, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	""
+msgid   "Save '%s' (%s/%s)?"
+msgstr  ""
 
 #: src/lang.c:781
-#, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	""
+msgid   "Save configuration before continuing?"
+msgstr  ""
 
 #: src/lang.c:782
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	""
+msgid   "Save filename> "
+msgstr  ""
 
 #: src/lang.c:783
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	""
+msgid   "Saved"
+msgstr  ""
 
 #: src/lang.c:784
-msgid	"\n"
-	"Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
-msgstr	""
+#, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  ""
+
+#: src/lang.c:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  ""
 
 #: src/lang.c:786
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	""
+msgid   "Nothing was saved"
+msgstr  ""
+
+#: src/lang.c:787
+#, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  ""
+
+#: src/lang.c:788
+#, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  ""
 
 #: src/lang.c:789
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	""
+#, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  ""
+
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  ""
+
+#: src/lang.c:791
+#, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  "%s: Screen initialisation failed"
 
 #: src/lang.c:793
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	""
+#, c-format
+msgid   "%s: screen is too small\n"
+msgstr  ""
 
-#: src/lang.c:798
+#: src/lang.c:795
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	""
+msgid   "screen is too small, %s is exiting\n"
+msgstr  ""
+
+#: src/lang.c:796
+msgid   "Delete scope?"
+msgstr  ""
+
+#: src/lang.c:797
+msgid   "Enter scope> "
+msgstr  ""
+
+#: src/lang.c:798
+msgid   "Select new position> "
+msgstr  ""
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  ""
 
 #: src/lang.c:800
-#, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	""
+msgid   "Global scope, operation not allowed"
+msgstr  ""
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  ""
+
+#: src/lang.c:802
+msgid   "Select scope> "
+msgstr  ""
 
 #: src/lang.c:803
+msgid   "Scopes Menu"
+msgstr  ""
+
+#: src/lang.c:804
+msgid   "Scopes Menu Commands"
+msgstr  ""
+
+#: src/lang.c:805
 #, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	""
+msgid   "Search backwards [%s]> "
+msgstr  ""
+
+#: src/lang.c:806
+#, c-format
+msgid   "Search body [%s]> "
+msgstr  ""
 
 #: src/lang.c:807
 #, c-format
-msgid	"\n"
-	"Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
-msgstr	""
+msgid   "Search forwards [%s]> "
+msgstr  ""
 
 #: src/lang.c:808
-#, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	""
+msgid   "Searching..."
+msgstr  ""
 
 #: src/lang.c:809
 #, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	""
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  ""
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  ""
+
+#: src/lang.c:811
+msgid   "Select option number before text or use arrow keys and <CR>. 'q' to quit."
+msgstr  ""
+
+#: src/lang.c:812
+msgid   "Select group> "
+msgstr  ""
 
 #: src/lang.c:813
 #, c-format
-msgid	"Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
-msgstr	""
+msgid   "Enter selection pattern [%s]> "
+msgstr  ""
 
 #: src/lang.c:814
-msgid	"\n"
-	"Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
-msgstr	""
+msgid   "Select thread > "
+msgstr  ""
 
 #: src/lang.c:815
-msgid	"Writing attributes file..."
-msgstr	""
+#, c-format
+msgid   "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
+msgstr  ""
+
+#: src/lang.c:816
+msgid   "servers active-file"
+msgstr  ""
 
 #: src/lang.c:817
-#, c-format
-msgid	"%d Responses"
-msgstr	""
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  ""
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  ""
 
 #: src/lang.c:819
 #, c-format
-msgid	"Added %d %s"
-msgstr	""
+msgid   "Starting: (%s)"
+msgstr  ""
 
 #: src/lang.c:820
-msgid	"No unsubscribed groups to show"
-msgstr	""
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  ""
 
 #: src/lang.c:821
-msgid	"Showing subscribed to groups only"
-msgstr	""
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  ""
 
 #: src/lang.c:822
-msgid	"Yes "
-msgstr	""
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  ""
 
 #: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	""
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  ""
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  ""
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  ""
+
+#: src/lang.c:826
+#, c-format
+msgid   "Repost or supersede article(s) [%%s]? (%s/%s/%s): "
+msgstr  ""
+
+#: src/lang.c:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  ""
 
 #: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  ""
+
+#: src/lang.c:829
 #, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	""
-
-#: src/lang.c:839
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	""
-
-#: src/lang.c:843
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	""
+msgid   "\n"
+        "Stopped. Type 'fg' to restart %s\n"
+msgstr  ""
+
+#: src/lang.c:831
+#, c-format
+msgid   "%d days"
+msgstr  ""
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  ""
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  ""
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  ""
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  ""
+
+#: src/lang.c:848
+msgid   "# If ON use print current subject or newsgroup description in the last line\n"
+msgstr  ""
+
+#: src/lang.c:849
+msgid   "# Host & time info used for detecting new groups (don't touch)\n"
+msgstr  ""
+
+#: src/lang.c:850
+msgid   "There is no news\n"
+msgstr  ""
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  ""
 
 #: src/lang.c:852
-msgid	"toggle color"
-msgstr	"toggle colour"
+msgid   "Thread Level Commands"
+msgstr  ""
 
 #: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	""
+msgid   "Thread deselected"
+msgstr  ""
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  ""
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  ""
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  ""
+
+#: src/lang.c:859
+#, c-format
+msgid   "Thread %4s of %4s"
+msgstr  ""
+
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  ""
+
+#: src/lang.c:861
+#, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  ""
+
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  ""
+
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  ""
+
+#: src/lang.c:864
+#, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  ""
+
+#: src/lang.c:866
+#, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  ""
+
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  ""
+
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  ""
+
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  ""
+
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  ""
 
 #: src/lang.c:873
-msgid	"  -a       toggle color flag"
-msgstr	"  -a       toggle colour flag"
+#, c-format
+msgid   "Error decoding %s : %s"
+msgstr  ""
+
+#: src/lang.c:874
+msgid   "No end."
+msgstr  ""
+
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  ""
+
+#: src/lang.c:876
+#, c-format
+msgid   "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:877
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	""
+msgid   "unread "
+msgstr  ""
 
 #: src/lang.c:878
 #, c-format
-msgid	"\n"
-	"Error: cross-posting to %d newsgroups and no Followup-To line!\n"
-msgstr	""
+msgid   "unsubscribed from %d groups"
+msgstr  ""
 
 #: src/lang.c:879
 #, c-format
-msgid	"\n"
-	"Error: \"%s\" is not a valid newsgroup!\n"
-msgstr	""
+msgid   "Unsubscribed from %s"
+msgstr  ""
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  ""
 
 #: src/lang.c:881
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	""
+msgid   "Unthreading articles..."
+msgstr  ""
 
 #: src/lang.c:882
-#, c-format
-msgid	"\n"
-	"Warning: cross-posting to %d newsgroups and no Followup-To line!\n"
-msgstr	""
-
-#: src/lang.c:883
-#, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
-msgstr	""
+msgid   "Updated"
+msgstr  ""
 
 #: src/lang.c:884
 #, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not a valid newsgroup at this site!\n"
-msgstr	""
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  ""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  ""
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  ""
 
 #: src/lang.c:888
-#, c-format
-msgid	"%d files successfully written from %d articles. %d %s occurred."
-msgstr	""
+msgid   "URL Menu Commands"
+msgstr  ""
 
 #: src/lang.c:889
-msgid	"Missing parts."
-msgstr	""
+#, c-format
+msgid   "Opening %s"
+msgstr  ""
 
 #: src/lang.c:890
-msgid	"No beginning."
-msgstr	""
+msgid   "Select URL> "
+msgstr  ""
 
 #: src/lang.c:891
-msgid	"No data."
-msgstr	""
+msgid   "No URLs in this article"
+msgstr  ""
 
 #: src/lang.c:892
-msgid	"Unknown error."
-msgstr	""
+msgid   "Use MIME display program for this message?"
+msgstr  ""
+
+#: src/lang.c:893
+msgid   "  -c       mark all news as read in subscribed newsgroups (batch mode)"
+msgstr  ""
+
+#: src/lang.c:894
+msgid   "  -Z       return status indicating if any unread news (batch mode)"
+msgstr  ""
 
 #: src/lang.c:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  ""
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  ""
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  ""
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  ""
+
+#: src/lang.c:899
 #, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	""
+msgid   "  -H       help information about %s"
+msgstr  ""
 
 #: src/lang.c:900
-msgid	"Reading mail active file... "
-msgstr	""
+msgid   "  -h       this help message"
+msgstr  ""
 
 #: src/lang.c:901
-msgid	"Reading mailgroups file... "
-msgstr	""
+#, c-format
+msgid   "  -I dir   news index file directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  ""
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  ""
 
 #: src/lang.c:905
-msgid	"perform PGP operations on article"
-msgstr	""
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  ""
 
 #: src/lang.c:906
-msgid	"Add key(s) to public keyring?"
-msgstr	""
+msgid   "  -M user  mail new news to specified user (batch mode)"
+msgstr  ""
 
 #: src/lang.c:907
 #, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	""
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  ""
 
 #: src/lang.c:908
-#, c-format
-msgid	"%s=sign, %s=sign & include public key, %s=quit: "
-msgstr	""
+msgid   "  -x       no posting mode"
+msgstr  ""
 
 #: src/lang.c:909
-#, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	""
+msgid   "  -w       post an article and exit"
+msgstr  ""
 
 #: src/lang.c:910
-msgid	"Article not signed and no public keys found"
-msgstr	""
+msgid   "  -o       post all postponed articles and exit"
+msgstr  ""
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  ""
 
 #: src/lang.c:912
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  ""
 
 #: src/lang.c:913
-#, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
-msgstr	""
+msgid   "  -S       save new news for later reading (batch mode)"
+msgstr  ""
 
 #: src/lang.c:914
+msgid   "  -z       start if any unread news"
+msgstr  ""
+
+#: src/lang.c:915
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  ""
 
 #: src/lang.c:916
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "  -v       verbose output for batch mode options"
+msgstr  ""
 
 #: src/lang.c:917
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	""
+msgid   "  -V       print version & date information"
+msgstr  ""
 
 #: src/lang.c:918
 #, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "%s only useful without batch mode operations\n"
+msgstr  ""
+
+#: src/lang.c:919
+#, c-format
+msgid   "%s only useful for batch mode operations\n"
+msgstr  ""
+
+#: src/lang.c:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  ""
 
 #: src/lang.c:922
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "\n"
+        "%s%d out of range (0 - %d). Reset to 0"
+msgstr  ""
 
 #: src/lang.c:923
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	""
+msgid   "View '%s' (%s/%s)?"
+msgstr  ""
 
-#: src/lang.c:924
+#: src/lang.c:925
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  ""
 
 #: src/lang.c:926
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  ""
 
 #: src/lang.c:927
-#, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	""
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  ""
 
 #: src/lang.c:928
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "\n"
+        "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
+msgstr  ""
+
+#: src/lang.c:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  ""
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:937
-msgid	"Try cache_overview_files to speed up things.\n"
-msgstr	""
-
-#: src/lang.c:938
-msgid	"Tin will use local index files instead.\n"
-msgstr	""
-
-#: src/lang.c:939
-msgid	"Cannot find NNTP server name"
-msgstr	""
-
-#: src/lang.c:940
-#, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	""
-
-#: src/lang.c:941
-msgid	"Disconnecting from server...\n"
-msgstr	""
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  ""
 
 #: src/lang.c:942
-#, c-format
-msgid	"Wrong newsgroup name in response of GROUP command, %s for %s"
-msgstr	""
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  ""
 
 #: src/lang.c:943
 #, c-format
-msgid	"Failed to connect to NNTP server %s. Exiting..."
-msgstr	""
-
-#: src/lang.c:944
-msgid	"205  Closing connection"
-msgstr	""
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  ""
 
 #: src/lang.c:945
-msgid	"Your server does not support the NNTP XOVER or OVER command.\n"
-msgstr	""
-
-#: src/lang.c:946
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	""
-
-#: src/lang.c:947
-#, c-format
-msgid	"Put the server name in the file %s,\n"
-	"or set the environment variable NNTPSERVER"
-msgstr	""
-
-#: src/lang.c:948
-msgid	"  -A       force authentication on connect"
-msgstr	""
-
-#: src/lang.c:949
 #, c-format
-msgid	"  -g serv  read news from NNTP server serv [default=%s]"
-msgstr	""
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  ""
 
-#: src/lang.c:950
+#: src/lang.c:948
 #, c-format
-msgid	"  -p port  use port as NNTP port [default=%d]"
-msgstr	""
-
-#: src/lang.c:951
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	""
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  ""
 
 #: src/lang.c:952
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
+msgstr  ""
 
 #: src/lang.c:953
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	""
+#, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  ""
 
-#: src/lang.c:955
+#: src/lang.c:954
 #, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	""
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  ""
 
 #: src/lang.c:958
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	""
-
-#: src/lang.c:960
 #, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	""
-
-#: src/lang.c:961
-msgid	"Giving up...\n"
-msgstr	""
+msgid   "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
+msgstr  ""
 
-#: src/lang.c:964
-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:959
+msgid   "\n"
+        "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
+msgstr  ""
 
-#: src/lang.c:967
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	""
+#: src/lang.c:960
+msgid   "Writing attributes file..."
+msgstr  ""
 
-#: src/lang.c:970
+#: src/lang.c:962
 #, c-format
-msgid	"Can't open %s. Try %s -r to read news via NNTP.\n"
-msgstr	""
-
-#: src/lang.c:973
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	""
+msgid   "%d Responses"
+msgstr  ""
 
-#: src/lang.c:974
-msgid	"  -l       read only active file instead of scanning spool (-n) command"
-msgstr	""
-
-#: src/lang.c:975
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	""
-
-#: src/lang.c:976
-msgid	"Your server does not have Xref: in its NOV-files.\n"
-msgstr	""
-
-#: src/lang.c:980
-msgid	"Posting using external inews failed. Use built in inews instead?"
-msgstr	""
-
-#: src/lang.c:981
-msgid	"It worked! Should I always use my built in inews from now on?"
-msgstr	""
-
-#: src/lang.c:989
+#: src/lang.c:964
 #, c-format
-msgid	"%d %s printed"
-msgstr	""
+msgid   "Added %d %s"
+msgstr  ""
 
-#: src/lang.c:990
-msgid	"output article/thread/hot/pattern/tagged articles to printer"
-msgstr	""
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  ""
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  ""
 
-#: src/lang.c:991
-msgid	"Print"
-msgstr	""
+#: src/lang.c:967
+msgid   "Yes "
+msgstr  ""
 
-#: src/lang.c:992
-msgid	"Printing..."
-msgstr	""
+#: src/lang.c:968
+msgid   "    You have mail"
+msgstr  ""
 
-#: src/lang.c:996
-msgid	"pipe article/thread/hot/pattern/tagged articles into command"
-msgstr	""
+#: src/lang.c:973
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  ""
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  ""
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:997
-msgid	"No command"
-msgstr	""
+msgid   "toggle color"
+msgstr  "toggle colour"
 
 #: src/lang.c:998
-msgid	"Pipe"
-msgstr	""
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  "# Changing colours of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  "  -a       toggle colour flag"
+
+#: src/lang.c:1022
+msgid   "\n"
+        "Error: Followup-To set to more than one newsgroup!\n"
+msgstr  ""
+
+#: src/lang.c:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  ""
+
+#: src/lang.c:1024
+#, c-format
+msgid   "\n"
+        "Error: cross-posting to %d newsgroups and no Followup-To line!\n"
+msgstr  ""
 
-#: src/lang.c:999
+#: src/lang.c:1025
 #, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	""
+msgid   "\n"
+        "Error: \"%s\" is not a valid newsgroup!\n"
+msgstr  ""
 
-#: src/lang.c:1000
-msgid	"Piping..."
-msgstr	""
+#: src/lang.c:1027
+msgid   "\n"
+        "Warning: Followup-To set to more than one newsgroup!\n"
+msgstr  ""
 
-#: src/lang.c:1002
-msgid	"Piping not enabled."
-msgstr	""
+#: src/lang.c:1028
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  ""
 
-#: src/lang.c:1006
+#: src/lang.c:1029
 #, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	""
+msgid   "\n"
+        "Warning: cross-posting to %d newsgroups and no Followup-To line!\n"
+msgstr  ""
 
-#: src/lang.c:1011
+#: src/lang.c:1030
 #, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	""
+msgid   "\n"
+        "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
+msgstr  ""
 
-#: src/lang.c:1016
+#: src/lang.c:1031
 #, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	""
+msgid   "\n"
+        "Warning: \"%s\" is not a valid newsgroup at this site!\n"
+msgstr  ""
 
-#: src/lang.c:1020
+#: src/lang.c:1035
 #, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
-msgstr	""
+msgid   "%d files successfully written from %d articles. %d %s occurred."
+msgstr  ""
 
-#: src/lang.c:1025
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	""
+#: src/lang.c:1036
+msgid   "Missing parts."
+msgstr  ""
+
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  ""
 
 #: src/lang.c:1038
-msgid	"shell escape"
-msgstr	""
+msgid   "No data."
+msgstr  ""
 
 #: src/lang.c:1039
-#, c-format
-msgid	"Shell Command (%s)"
-msgstr	""
+msgid   "Unknown error."
+msgstr  ""
 
-#: src/lang.c:1040
+#: src/lang.c:1042
 #, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	""
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  ""
 
-#: src/lang.c:1044
-#, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	""
+#: src/lang.c:1047
+msgid   "Reading mail active file... "
+msgstr  ""
 
 #: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  ""
+
+#: src/lang.c:1052
+msgid   "perform PGP operations on article"
+msgstr  ""
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  ""
+
+#: src/lang.c:1054
 #, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	""
+msgid   "%s=encrypt, %s=sign, %s=both, %s=quit: "
+msgstr  ""
 
-#: src/lang.c:1050
+#: src/lang.c:1055
 #, c-format
-msgid	"Group %.*s..."
-msgstr	""
+msgid   "%s=sign, %s=sign & include public key, %s=quit: "
+msgstr  ""
 
-#: src/lang.c:1054
-msgid	"Server unavailable\n"
-msgstr	""
+#: src/lang.c:1056
+#, c-format
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  ""
+
+#: src/lang.c:1057
+msgid   "Article not signed and no public keys found"
+msgstr  ""
+
+#: src/lang.c:1059
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
 
 #: 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	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
+msgstr  ""
 
 #: 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	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
 
 #: src/lang.c:1063
 #, c-format
-msgid	"%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
 
 #: src/lang.c:1064
 #, c-format
-msgid	"%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  ""
 
-#: src/lang.c:1068
+#: src/lang.c:1065
 #, c-format
-msgid	"%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
 
 #: src/lang.c:1069
 #, c-format
-msgid	"%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1070
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
+msgstr  ""
 
 #: src/lang.c:1071
 #, c-format
-msgid	"%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
 
-#: src/lang.c:1072
+#: src/lang.c:1073
 #, c-format
-msgid	"%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
 
-#: src/lang.c:1078
-msgid	"Terminal does not support color"
-msgstr	"Terminal does not support colour"
+#: src/lang.c:1074
+#, c-format
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  ""
 
-#: src/lang.c:1083
+#: src/lang.c:1075
 #, c-format
-msgid	"Trying %s"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1084
+msgid   "Try cache_overview_files to speed up things.\n"
+msgstr  ""
+
+#: src/lang.c:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  ""
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  ""
+
+#: src/lang.c:1087
+#, c-format
+msgid   "Connecting to %s:%u..."
+msgstr  ""
+
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  ""
+
+#: src/lang.c:1089
+#, c-format
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  ""
+
+#: src/lang.c:1090
+#, c-format
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  ""
+
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  ""
 
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	""
+#: src/lang.c:1092
+msgid   "Your server does not support the NNTP XOVER or OVER command.\n"
+msgstr  ""
+
+#: src/lang.c:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  ""
+
+#: src/lang.c:1094
+#, c-format
+msgid   "Put the server name in the file %s,\n"
+        "or set the environment variable NNTPSERVER"
+msgstr  ""
+
+#: src/lang.c:1095
+msgid   "  -A       force authentication on connect"
+msgstr  ""
+
+#: src/lang.c:1096
+#, c-format
+msgid   "  -g serv  read news from NNTP server serv [default=%s]"
+msgstr  ""
+
+#: src/lang.c:1097
+#, c-format
+msgid   "  -p port  use port as NNTP port [default=%d]"
+msgstr  ""
 
 #: src/lang.c:1098
-msgid	"Subject"
-msgstr	""
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  ""
 
 #: src/lang.c:1099
-msgid	"References"
-msgstr	""
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  ""
 
 #: src/lang.c:1100
-msgid	"Both Subject and References"
-msgstr	""
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  ""
 
 #: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	""
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  ""
+
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  ""
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  ""
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  ""
 
-#: src/lang.c:1102
-msgid	"Percentage Match"
-msgstr	""
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	""
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	""
-
-#: src/lang.c:1116
-msgid	"Hide All"
-msgstr	""
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  ""
+
+#: src/lang.c:1114
+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:1117
+msgid   "Your server does not have Xref: in its XOVER information.\n"
+msgstr  ""
+
+#: src/lang.c:1120
+#, c-format
+msgid   "Can't open %s. Try %s -r to read news via NNTP.\n"
+msgstr  ""
+
+#: src/lang.c:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  ""
 
 #: src/lang.c:1124
-msgid	"Address"
-msgstr	""
+msgid   "  -l       read only active file instead of scanning spool (-n) command"
+msgstr  ""
 
 #: src/lang.c:1125
-msgid	"Full Name"
-msgstr	""
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  ""
 
 #: src/lang.c:1126
-msgid	"Address and Name"
-msgstr	""
+msgid   "Your server does not have Xref: in its NOV-files.\n"
+msgstr  ""
 
-#: src/lang.c:1133
-msgid	"Max"
-msgstr	""
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	""
+#: src/lang.c:1130
+msgid   "Posting using external inews failed. Use built in inews instead?"
+msgstr  ""
+
+#: src/lang.c:1131
+msgid   "It worked! Should I always use my built in inews from now on?"
+msgstr  ""
 
 #: src/lang.c:1135
-msgid	"Average"
-msgstr	""
+#, c-format
+msgid   "%d %s printed"
+msgstr  ""
 
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	""
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	""
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  ""
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  ""
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  ""
 
 #: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	""
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  ""
 
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	""
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  ""
 
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	""
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  ""
 
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	""
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	""
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	""
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	""
+#: src/lang.c:1145
+#, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  ""
 
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	""
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  ""
 
-#: src/lang.c:1158
-msgid	"White"
-msgstr	""
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"Grey"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	""
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	""
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  ""
 
-#: src/lang.c:1162
-msgid	"Yellow"
-msgstr	""
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  ""
+
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  ""
 
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	""
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	""
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	""
+#: src/lang.c:1162
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  ""
 
 #: src/lang.c:1166
-msgid	"Light White"
-msgstr	""
-
-#: src/lang.c:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	""
-
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	""
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	""
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
+msgstr  ""
+
+#: src/lang.c:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  ""
 
 #: src/lang.c:1184
-msgid	"Best highlighting"
-msgstr	""
+msgid   "shell escape"
+msgstr  ""
 
 #: src/lang.c:1185
-msgid	"Underline"
-msgstr	""
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  ""
 
 #: src/lang.c:1186
-msgid	"Reverse video"
-msgstr	""
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  ""
 
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	""
-
-#: src/lang.c:1188
-msgid	"Half bright"
-msgstr	""
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	""
+#: src/lang.c:1190
+#, c-format
+msgid   "%s: Can't get entry for TERM\n"
+msgstr  ""
 
 #: src/lang.c:1194
-msgid	"none"
-msgstr	""
-
-#: src/lang.c:1195
-msgid	"commands"
-msgstr	""
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  ""
 
 #: src/lang.c:1196
-msgid	"select"
-msgstr	""
-
-#: src/lang.c:1198
-msgid	"commands & quit"
-msgstr	""
-
-#: src/lang.c:1199
-msgid	"commands & select"
-msgstr	""
+#, c-format
+msgid   "Group %.*s..."
+msgstr  ""
 
 #: src/lang.c:1200
-msgid	"quit & select"
-msgstr	""
+msgid   "Server unavailable\n"
+msgstr  ""
 
-#: src/lang.c:1201
-msgid	"commands & quit & select"
-msgstr	""
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	""
-
-#: src/lang.c:1232
-msgid	"Subject: (descending)"
-msgstr	""
-
-#: src/lang.c:1233
-msgid	"Subject: (ascending)"
-msgstr	""
-
-#: src/lang.c:1234
-msgid	"From: (descending)"
-msgstr	""
-
-#: src/lang.c:1235
-msgid	"From: (ascending)"
-msgstr	""
-
-#: src/lang.c:1236
-msgid	"Date: (descending)"
-msgstr	""
-
-#: src/lang.c:1237
-msgid	"Date: (ascending)"
-msgstr	""
-
-#: src/lang.c:1238 src/lang.c:1246
-msgid	"Score (descending)"
-msgstr	""
-
-#: src/lang.c:1239 src/lang.c:1247
-msgid	"Score (ascending)"
-msgstr	""
-
-#: src/lang.c:1240
-msgid	"Lines: (descending)"
-msgstr	""
-
-#: src/lang.c:1241
-msgid	"Lines: (ascending)"
-msgstr	""
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	""
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	""
-
-#: src/lang.c:1254
-msgid	"Mark with D on selection screen"
-msgstr	""
-
-#: src/lang.c:1259
-msgid	"Kill only unread arts"
-msgstr	""
-
-#: src/lang.c:1260
-msgid	"Kill all arts & show with K"
-msgstr	""
+#: src/lang.c:1206
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %"
+        "s=post"
+msgstr  ""
 
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-msgid	"Kill all arts and never show"
-msgstr	""
-
-#: src/lang.c:1266
-msgid	"Nothing special"
-msgstr	""
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	""
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	""
-
-#: src/lang.c:1269
-msgid	"Compress quotes, quote sigs"
-msgstr	""
+#: src/lang.c:1207
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1209
+#, c-format
+msgid   "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1210
+#, c-format
+msgid   "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1214
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1215
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1217
+#, c-format
+msgid   "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1218
+#, c-format
+msgid   "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1224
+msgid   "Terminal does not support color"
+msgstr  "Terminal does not support colour"
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  ""
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  ""
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  ""
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  ""
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  ""
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  ""
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  ""
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  ""
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  ""
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  ""
 
 #: src/lang.c:1270
-msgid	"Quote empty lines"
-msgstr	""
+msgid   "Address"
+msgstr  ""
 
 #: src/lang.c:1271
-msgid	"Compress quotes, quote empty lines"
-msgstr	""
+msgid   "Full Name"
+msgstr  ""
 
 #: src/lang.c:1272
-msgid	"Quote sigs & empty lines"
-msgstr	""
+msgid   "Address and Name"
+msgstr  ""
 
-#: src/lang.c:1273
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	""
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  ""
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  ""
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  ""
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  ""
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  ""
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  ""
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  ""
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  ""
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  ""
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  ""
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  ""
+
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  ""
+
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  ""
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  ""
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "Grey"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  ""
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  ""
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  ""
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  ""
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  ""
 
 #: src/lang.c:1311
-msgid	"no"
-msgstr	""
+msgid   "Light Cyan"
+msgstr  ""
 
 #: src/lang.c:1312
-msgid	"with headers"
-msgstr	""
+msgid   "Light White"
+msgstr  ""
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	""
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	""
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	""
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  ""
 
 #: src/lang.c:1322
-msgid	"NFC"
-msgstr	""
+msgid   "Space"
+msgstr  ""
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	""
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  ""
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  ""
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  ""
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  ""
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  ""
 
 #: src/lang.c:1334
-msgid	"Display Options"
-msgstr	""
+msgid   "Half bright"
+msgstr  ""
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  ""
 
 #: src/lang.c:1341
-msgid	"Color Options"
-msgstr	"Colour Options"
+msgid   "Cc"
+msgstr  ""
 
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	""
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  ""
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  ""
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  ""
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  ""
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  ""
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  ""
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  ""
 
 #: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	""
+msgid   "quit & select"
+msgstr  ""
 
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	""
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	""
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  ""
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  ""
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1368
+msgid   "Subject: (case sensitive)"
+msgstr  ""
+
+#: src/lang.c:1369
+msgid   "Subject: (ignore case)"
+msgstr  ""
+
+#: src/lang.c:1370
+msgid   "From: (case sensitive)"
+msgstr  ""
+
+#: src/lang.c:1371
+msgid   "From: (ignore case)"
+msgstr  ""
 
 #: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	""
+msgid   "Msg-ID: & full References: line"
+msgstr  ""
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1378
-msgid	"Show mini menu & posting etiquette"
-msgstr	""
-
-#: src/lang.c:1379
-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:1373
+msgid   "Msg-ID: & last References: only"
+msgstr  ""
+
+#: src/lang.c:1374
+msgid   "Message-ID: entry only"
+msgstr  ""
+
+#: src/lang.c:1375
+msgid   "Lines:"
+msgstr  ""
+
+#: src/lang.c:1380
+msgid   "Don't trim article body"
+msgstr  ""
+
+#: src/lang.c:1381
+msgid   "Skip leading blank lines"
+msgstr  ""
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  ""
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  ""
 
 #: src/lang.c:1384
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Compact multiple between text"
+msgstr  ""
 
 #: src/lang.c:1385
-msgid	"Show description of each newsgroup"
-msgstr	""
+msgid   "Compact multiple and skip leading"
+msgstr  ""
 
 #: src/lang.c:1386
-msgid	"# If ON show group description text after newsgroup name at\n"
-	"# group selection level\n"
-msgstr	""
-
-#: src/lang.c:1391
-msgid	"Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
-	"sets."
-msgstr	""
-
-#: src/lang.c:1392
-msgid	"In group menu, show author by"
-msgstr	""
-
-#: src/lang.c:1393
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	""
-
-#: src/lang.c:1402
-msgid	"Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1403
-msgid	"Draw -> instead of highlighted bar"
-msgstr	""
-
-#: src/lang.c:1404
-msgid	"# If ON use -> otherwise highlighted bar for selection\n"
-msgstr	""
-
-#: src/lang.c:1409
-msgid	"Use inverse video for page headers"
-msgstr	""
-
-#: src/lang.c:1410
-msgid	"# If ON use inverse video for page headers at different levels\n"
-msgstr	""
-
-#: src/lang.c:1415
-msgid	"Thread articles by"
-msgstr	""
-
-#: src/lang.c:1416
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	""
+msgid   "Compact multiple and skip trailing"
+msgstr  ""
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  ""
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  ""
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  ""
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  ""
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  ""
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  ""
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  ""
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  ""
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  ""
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  ""
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  ""
 
 #: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	""
+msgid   "Lines: (ascending)"
+msgstr  ""
 
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	""
-
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
+#: src/lang.c:1434
+msgid   "Last posting date (descending)"
+msgstr  ""
+
+#: src/lang.c:1435
+msgid   "Last posting date (ascending)"
+msgstr  ""
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  ""
 
 #: src/lang.c:1441
-msgid	"Score of a thread"
-msgstr	""
+msgid   "Always Remove"
+msgstr  ""
 
 #: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	""
-
-#: src/lang.c:1450
-msgid	"Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1451
-msgid	"Sort articles by"
-msgstr	""
-
-#: src/lang.c:1452
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines ascending\n"
-msgstr	""
-
-#: src/lang.c:1468
-msgid	"Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1469
-msgid	"Sort threads by"
-msgstr	""
-
-#: src/lang.c:1470
-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	""
-
-#: src/lang.c:1478
-msgid	"Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1479
-msgid	"Goto first unread article in group"
-msgstr	""
-
-#: src/lang.c:1480
-msgid	"# If ON put cursor at first unread art in group otherwise last art\n"
-msgstr	""
-
-#: src/lang.c:1484
-msgid	"Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1485
-msgid	"Show only unread articles"
-msgstr	""
-
-#: src/lang.c:1486
-msgid	"# If ON show only new/unread articles otherwise show all.\n"
-msgstr	""
-
-#: src/lang.c:1491
-msgid	"Show only groups with unread arts"
-msgstr	""
-
-#: src/lang.c:1492
-msgid	"# If ON show only subscribed to groups that contain unread articles.\n"
-msgstr	""
-
-#: src/lang.c:1497
-msgid	"Filter which articles"
-msgstr	""
-
-#: src/lang.c:1498
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	""
-
-#: src/lang.c:1507
-msgid	"Tab goes to next unread article"
-msgstr	""
-
-#: src/lang.c:1508
-msgid	"# If ON the TAB command will go to next unread article at article viewer "
-	"level\n"
-msgstr	""
-
-#: src/lang.c:1512
-msgid	"Scrolling with <SPACE> past the end of an art. jumps to the next unread one."
-msgstr	""
-
-#: src/lang.c:1513
-msgid	"Space goes to next unread article"
-msgstr	""
-
-#: src/lang.c:1514
-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:1519
-msgid	"Scrolling with <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	""
-
-#: src/lang.c:1520
-msgid	"PgDn goes to next unread article"
-msgstr	""
-
-#: src/lang.c:1521
-msgid	"# If ON the PGDN or DOWN command will go to next unread article when\n"
-	"# pressed at end of message\n"
-msgstr	""
-
-#: src/lang.c:1527
-msgid	"List thread using right arrow key"
-msgstr	""
-
-#: src/lang.c:1528
-msgid	"# If ON automatically list thread when entering it using right arrow key.\n"
-msgstr	""
-
-#: src/lang.c:1532
-msgid	"Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1533
-msgid	"Character to show deleted articles"
-msgstr	""
-
-#: src/lang.c:1534
-msgid	"# Character used to show that an art was deleted (default 'D')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1539
-msgid	"Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1540
-msgid	"Character to show inrange articles"
-msgstr	""
-
-#: src/lang.c:1541
-msgid	"# Character used to show that an art is in a range (default '#')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1546
-msgid	"Enter character to indicate that article will return. <CR> sets, <ESC> "
-	"cancels."
-msgstr	""
-
-#: src/lang.c:1547
-msgid	"Character to show returning arts"
-msgstr	""
+msgid   "Mark with D on selection screen"
+msgstr  ""
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  ""
+
+#: src/lang.c:1448
+msgid   "Kill all arts & show with K"
+msgstr  ""
+
+#. TODO: s/K/art_marked_killed/
+#: src/lang.c:1449
+msgid   "Kill all arts and never show"
+msgstr  ""
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  ""
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  ""
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  ""
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  ""
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  ""
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  ""
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  ""
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  ""
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  ""
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  ""
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  ""
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  ""
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  ""
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  ""
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  ""
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  ""
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  "Colour Options"
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  ""
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  ""
 
 #: src/lang.c:1548
-msgid	"# Character used to show that an art will return (default '-')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1553
-msgid	"Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "Saving/Printing Options"
+msgstr  ""
 
 #: src/lang.c:1554
-msgid	"Character to show selected articles"
-msgstr	""
-
-#: src/lang.c:1555
-msgid	"# Character used to show that an art was auto-selected (default '*')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+msgid   "Expert Options"
+msgstr  ""
 
 #: src/lang.c:1560
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "Filtering Options"
+msgstr  ""
 
-#: src/lang.c:1561
-msgid	"Character to show recent articles"
-msgstr	""
-
-#: src/lang.c:1562
-msgid	"# Character used to show that an art is recent (default 'o')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+#: src/lang.c:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  ""
 
 #: src/lang.c:1567
-msgid	"Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1568
-msgid	"Character to show unread articles"
-msgstr	""
-
-#: src/lang.c:1569
-msgid	"# Character used to show that an art is unread (default '+')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+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:1572
+msgid   "Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1573
+msgid   "Show description of each newsgroup"
+msgstr  ""
 
 #: src/lang.c:1574
-msgid	"Enter character to indicate read articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1575
-msgid	"Character to show read articles"
-msgstr	""
-
-#: src/lang.c:1576
-msgid	"# Character used to show that an art was read (default ' ')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+msgid   "# If ON show group description text after newsgroup name at\n"
+        "# group selection level\n"
+msgstr  ""
+
+#: src/lang.c:1579
+msgid   "Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
+        "sets."
+msgstr  ""
+
+#: src/lang.c:1580
+msgid   "In group menu, show author by"
+msgstr  ""
 
 #: src/lang.c:1581
-msgid	"Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1582
-msgid	"Character to show killed articles"
-msgstr	""
-
-#: src/lang.c:1583
-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:1588
-msgid	"Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1589
-msgid	"Character to show readselected arts"
-msgstr	""
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  ""
 
 #: src/lang.c:1590
-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:1595
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1596
-msgid	"Max. length of group names shown"
-msgstr	""
+msgid   "Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  ""
+
+#: src/lang.c:1592
+msgid   "# If ON use -> otherwise highlighted bar for selection\n"
+msgstr  ""
 
 #: src/lang.c:1597
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	""
+msgid   "Use inverse video for page headers"
+msgstr  ""
 
-#: src/lang.c:1602
-msgid	"Show lines/score in listings"
-msgstr	""
+#: src/lang.c:1598
+msgid   "# If ON use inverse video for page headers at different levels\n"
+msgstr  ""
 
 #: src/lang.c:1603
-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	""
-
-#: src/lang.c:1612
-msgid	"0 = full page scrolling, -1 = show previous last line as first on next page, -"
-	"2 = half page"
-msgstr	""
-
-#: src/lang.c:1613
-msgid	"Number of lines to scroll in pager"
-msgstr	""
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	"# 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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behaviour)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	""
-
-#: src/lang.c:1626
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	""
+msgid   "Thread articles by"
+msgstr  ""
 
-#: src/lang.c:1630
-msgid	"Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
-msgstr	""
+#: src/lang.c:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  ""
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  ""
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  ""
+
+#: src/lang.c:1629
+msgid   "Score of a thread"
+msgstr  ""
 
-#: src/lang.c:1631
-msgid	"Display uue data as an attachment"
-msgstr	""
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	""
-
-#: src/lang.c:1642
-msgid	"Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	""
-
-#: src/lang.c:1644
-msgid	"# If ON decode German style TeX umlaut codes to ISO and\n"
-	"# show \"a as Umlaut-a, etc.\n"
-msgstr	""
-
-#: src/lang.c:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	""
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	""
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1660
-msgid	"Do not display these header fields"
-msgstr	""
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1671
-msgid	"Do you want to enable automatic handling of multipart/alternative articles?"
-msgstr	""
-
-#: src/lang.c:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	""
-
-#: src/lang.c:1673
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	""
-
-#: src/lang.c:1678
-msgid	"A regex used to decide which lines to show in col_quote."
-msgstr	""
-
-#: src/lang.c:1679
-msgid	"Regex used to show quoted lines"
-msgstr	""
-
-#: src/lang.c:1680
-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:1686
-msgid	"A regex used to decide which lines to show in col_quote2."
-msgstr	""
+#: src/lang.c:1630
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  ""
+
+#: src/lang.c:1638
+msgid   "Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1639
+msgid   "Sort articles by"
+msgstr  ""
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  ""
+
+#: src/lang.c:1656
+msgid   "Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1657
+msgid   "Sort threads by"
+msgstr  ""
+
+#: src/lang.c:1658
+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:1668
+msgid   "Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1669
+msgid   "Go to first unread article in group"
+msgstr  ""
+
+#: src/lang.c:1670
+msgid   "# If ON put cursor at first unread art in group otherwise last art\n"
+msgstr  ""
+
+#: src/lang.c:1674
+msgid   "Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1675
+msgid   "Show only unread articles"
+msgstr  ""
+
+#: src/lang.c:1676
+msgid   "# If ON show only new/unread articles otherwise show all.\n"
+msgstr  ""
+
+#: src/lang.c:1681
+msgid   "Show only groups with unread arts"
+msgstr  ""
+
+#: src/lang.c:1682
+msgid   "# If ON show only subscribed to groups that contain unread articles.\n"
+msgstr  ""
 
 #: src/lang.c:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	""
+msgid   "Filter which articles"
+msgstr  ""
 
 #: src/lang.c:1688
-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:1694
-msgid	"A regex used to decide which lines to show in col_quote3."
-msgstr	""
-
-#: src/lang.c:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	""
-
-#: src/lang.c:1696
-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:1703
-msgid	"A regex used to decide which words to show in col_markslashes."
-msgstr	""
-
-#: src/lang.c:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	""
-
-#: src/lang.c:1705
-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:1711
-msgid	"A regex used to decide which words to show in col_markstars."
-msgstr	""
-
-#: src/lang.c:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	""
-
-#: src/lang.c:1713
-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:1719
-msgid	"A regex used to decide which words to show in col_markstroke."
-msgstr	""
-
-#: src/lang.c:1720
-msgid	"Regex used to highlight -strokes-"
-msgstr	""
-
-#: src/lang.c:1721
-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	""
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  ""
+
+#: src/lang.c:1697
+msgid   "Go to the next unread article with"
+msgstr  ""
+
+#: src/lang.c:1698
+msgid   "# Go to the unread article with following 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:1708
+msgid   "How to treat blank lines"
+msgstr  ""
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  ""
 
 #: src/lang.c:1727
-msgid	"A regex used to decide which words to show in col_markdash."
-msgstr	""
+msgid   "# If ON automatically list thread when entering it using right arrow key.\n"
+msgstr  ""
 
-#: src/lang.c:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	""
-
-#: src/lang.c:1729
-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:1735
-msgid	"A regex used to find Subject prefixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1736
-msgid	"Regex with Subject prefixes"
-msgstr	""
-
-#: src/lang.c:1737
-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:1742
-msgid	"A regex used to find Subject suffixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1743
-msgid	"Regex with Subject suffixes"
-msgstr	""
-
-#: src/lang.c:1744
-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:1749
-msgid	"Enter name and options for external MIME viewer, --internal for built-in "
-	"viewer"
-msgstr	""
-
-#: src/lang.c:1750
-msgid	"MIME binary content viewer"
-msgstr	""
-
-#: src/lang.c:1751
-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:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	""
+#: src/lang.c:1731
+msgid   "Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1732
+msgid   "Character to show deleted articles"
+msgstr  ""
+
+#: src/lang.c:1733
+msgid   "# Character used to show that an art was deleted (default 'D')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1738
+msgid   "Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1739
+msgid   "Character to show inrange articles"
+msgstr  ""
+
+#: src/lang.c:1740
+msgid   "# Character used to show that an art is in a range (default '#')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1745
+msgid   "Enter character to indicate that article will return. <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:1746
+msgid   "Character to show returning arts"
+msgstr  ""
+
+#: src/lang.c:1747
+msgid   "# Character used to show that an art will return (default '-')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1752
+msgid   "Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1753
+msgid   "Character to show selected articles"
+msgstr  ""
+
+#: src/lang.c:1754
+msgid   "# Character used to show that an art was auto-selected (default '*')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1759
-msgid	"Ask before using MIME viewer"
-msgstr	""
+msgid   "Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
 #: src/lang.c:1760
-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:1765
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Character to show recent articles"
+msgstr  ""
+
+#: src/lang.c:1761
+msgid   "# Character used to show that an art is recent (default 'o')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1766
-msgid	"Catchup read groups when quitting"
-msgstr	""
+msgid   "Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
 #: src/lang.c:1767
-msgid	"# If ON ask user if read groups should all be marked read\n"
-msgstr	""
+msgid   "Character to show unread articles"
+msgstr  ""
 
-#: src/lang.c:1772
-msgid	"Catchup group using left key"
-msgstr	""
+#: src/lang.c:1768
+msgid   "# Character used to show that an art is unread (default '+')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1773
-msgid	"# If ON catchup group/thread when leaving with the left arrow key.\n"
-msgstr	""
+msgid   "Enter character to indicate read articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
-#: src/lang.c:1778
-msgid	"Catchup thread by using left key"
-msgstr	""
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	""
-
-#: src/lang.c:1785
-msgid	"# What should we ask confirmation for.\n"
-msgstr	""
-
-#: src/lang.c:1790
-msgid	"'Mark article read' ignores tags"
-msgstr	""
-
-#: src/lang.c:1791
-msgid	"# If ON the 'Mark article read' function marks only the current article.\n"
-msgstr	""
+#: src/lang.c:1774
+msgid   "Character to show read articles"
+msgstr  ""
+
+#: src/lang.c:1775
+msgid   "# Character used to show that an art was read (default ' ')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1780
+msgid   "Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1781
+msgid   "Character to show killed articles"
+msgstr  ""
+
+#: src/lang.c:1782
+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:1787
+msgid   "Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1788
+msgid   "Character to show readselected arts"
+msgstr  ""
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1795
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "Max. length of group names shown"
+msgstr  ""
 
 #: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	""
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  ""
 
-#: src/lang.c:1797
-msgid	"# The program used to open URL's. The actual URL will be appended\n"
-msgstr	""
+#: src/lang.c:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  ""
 
 #: src/lang.c:1802
-msgid	"Use mouse in xterm"
-msgstr	""
-
-#: src/lang.c:1803
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	""
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
 
 #: src/lang.c:1809
-msgid	"Use scroll keys on keypad"
-msgstr	""
+msgid   "Show lines/score in listings"
+msgstr  ""
 
 #: src/lang.c:1810
-msgid	"# If ON enable scroll keys on terminals that support it\n"
-msgstr	""
-
-#: src/lang.c:1815
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1816
-msgid	"Number of articles to get"
-msgstr	""
-
-#: src/lang.c:1817
-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:1822
-msgid	"Enter number of days article is considered recent. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1823
-msgid	"Article recentness time limit"
-msgstr	""
-
-#: src/lang.c:1824
-msgid	"# Number of days in which article is considered recent, (0=OFF)\n"
-msgstr	""
-
-#: src/lang.c:1828
-msgid	"WILDMAT for normal wildcards, REGEX for full regular expression matching."
-msgstr	""
-
-#: src/lang.c:1829
-msgid	"Wildcard matching"
-msgstr	""
-
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	""
+msgid   "# What information 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  ""
+
+#: src/lang.c:1819
+msgid   "0 = full page scrolling, -1 = show previous last line as first on next page, -"
+        "2 = half page"
+msgstr  ""
+
+#: src/lang.c:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  ""
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  "# 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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behaviour)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  ""
+
+#: src/lang.c:1833
+msgid   "# If OFF don't show signatures when displaying articles\n"
+msgstr  ""
 
 #: src/lang.c:1837
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	""
+msgid   "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1838
-msgid	"Score limit (kill)"
-msgstr	""
+msgid   "Display uue data as an attachment"
+msgstr  ""
 
 #: src/lang.c:1839
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	""
-
-#: src/lang.c:1843
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1844
-msgid	"Default score to kill articles"
-msgstr	""
-
-#: src/lang.c:1845
-msgid	"# Default score to kill articles\n"
-msgstr	""
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  ""
 
 #: src/lang.c:1849
-msgid	"Enter minimal score before an article is marked hot. <CR> sets."
-msgstr	""
+msgid   "Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1850
-msgid	"Score limit (select)"
-msgstr	""
+msgid   "Display \"a as Umlaut-a"
+msgstr  ""
 
 #: src/lang.c:1851
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	""
-
-#: src/lang.c:1855
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1856
-msgid	"Default score to select articles"
-msgstr	""
+msgid   "# If ON decode German style TeX umlaut codes to ISO and\n"
+        "# show \"a as Umlaut-a, etc.\n"
+msgstr  ""
+
+#: src/lang.c:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  ""
 
 #: src/lang.c:1857
-msgid	"# Default score to select articles\n"
-msgstr	""
+msgid   "Display these header fields (or *)"
+msgstr  ""
 
-#: src/lang.c:1863
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	""
-
-#: src/lang.c:1864
-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:1872
-msgid	"Use ANSI color"
-msgstr	"Use ANSI colour"
-
-#: src/lang.c:1873
-msgid	"# If ON using ANSI-color\n"
-msgstr	"# If ON using ANSI-colour\n"
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  ""
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  ""
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  ""
 
 #: src/lang.c:1878
-msgid	"Standard foreground color"
-msgstr	"Standard foreground colour"
+msgid   "Do you want to enable automatic handling of multipart/alternative articles?"
+msgstr  ""
 
 #: src/lang.c:1879
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standard foreground colour\n"
-	"# Default: -1 (default colour)\n"
+msgid   "Skip multipart/alternative parts"
+msgstr  ""
+
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  ""
+
+#: src/lang.c:1884
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1885
-msgid	"Standard background color"
-msgstr	"Standard background colour"
+msgid   "Detection of verbatim blocks"
+msgstr  ""
 
 #: src/lang.c:1886
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standard background colour\n"
-	"# Default: -1 (default colour)\n"
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  ""
+
+#: src/lang.c:1891
+msgid   "A regex used to decide which lines to show in col_quote."
+msgstr  ""
 
 #: src/lang.c:1892
-msgid	"Color for inverse text (background)"
-msgstr	"Colour for inverse text (bg)"
+msgid   "Regex used to show quoted lines"
+msgstr  ""
 
 #: src/lang.c:1893
-msgid	"# Color of background for inverse text\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Colour of background for inverse text\n"
-	"# Default: 4 (blue)\n"
+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:1899
-msgid	"Color for inverse text (foreground)"
-msgstr	"Colour for inverse text (fg)"
+msgid   "A regex used to decide which lines to show in col_quote2."
+msgstr  ""
 
 #: src/lang.c:1900
-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:1906
-msgid	"Color of text lines"
-msgstr	"Colour of text lines"
+msgid   "Regex used to show twice quoted l."
+msgstr  ""
+
+#: src/lang.c:1901
+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:1907
-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:1913
-msgid	"Color of mini help menu"
-msgstr	"Colour of mini help menu"
-
-#: src/lang.c:1914
-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:1920
-msgid	"Color of help text"
-msgstr	"Colour of help text"
-
-#: src/lang.c:1921
-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:1927
-msgid	"Color of status messages"
-msgstr	"Colour of status messages"
-
-#: src/lang.c:1928
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Colour of messages in last line\n"
-	"# Default: 6 (cyan)\n"
+msgid   "A regex used to decide which lines to show in col_quote3."
+msgstr  ""
 
-#: src/lang.c:1934
-msgid	"Color of quoted lines"
-msgstr	"Colour of quoted lines"
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  ""
+
+#: src/lang.c:1909
+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:1916
+msgid   "A regex used to decide which words to show in col_markslashes."
+msgstr  ""
+
+#: src/lang.c:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  ""
+
+#: src/lang.c:1918
+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:1924
+msgid   "A regex used to decide which words to show in col_markstars."
+msgstr  ""
+
+#: src/lang.c:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  ""
+
+#: src/lang.c:1926
+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:1932
+msgid   "A regex used to decide which words to show in col_markstroke."
+msgstr  ""
+
+#: src/lang.c:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  ""
 
-#: src/lang.c:1935
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Colour of quote-lines\n"
-	"# Default: 2 (green)\n"
+#: src/lang.c:1934
+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:1940
+msgid   "A regex used to decide which words to show in col_markdash."
+msgstr  ""
 
 #: src/lang.c:1941
-msgid	"Color of twice quoted line"
-msgstr	"Colour of twice quoted line"
+msgid   "Regex used to highlight _underline_"
+msgstr  ""
 
 #: src/lang.c:1942
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Colour of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
+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:1948
-msgid	"Color of =>3 times quoted line"
-msgstr	"Colour of =>3 times quoted line"
+msgid   "A regex used to find Subject prefixes to remove.  Use '|' as separator."
+msgstr  ""
 
 #: src/lang.c:1949
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Colour of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
+msgid   "Regex with Subject prefixes"
+msgstr  ""
+
+#: src/lang.c:1950
+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:1955
-msgid	"Color of article header lines"
-msgstr	"Colour of article header lines"
+msgid   "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr  ""
 
 #: src/lang.c:1956
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Colour of header-lines\n"
-	"# Default: 2 (green)\n"
+msgid   "Regex with Subject suffixes"
+msgstr  ""
+
+#: src/lang.c:1957
+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:1962
-msgid	"Color of actual news header fields"
-msgstr	"Colour of actual news header fields"
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  ""
 
 #: src/lang.c:1963
-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"
+msgid   "Regex for begin of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  ""
 
 #: src/lang.c:1969
-msgid	"Color of article subject lines"
-msgstr	"Colour of article subject lines"
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  ""
 
 #: src/lang.c:1970
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Colour of article subject\n"
-	"# Default: 6 (cyan)\n"
+msgid   "Regex for end of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  ""
 
 #: src/lang.c:1976
-msgid	"Color of response counter"
-msgstr	"Colour of response counter"
+msgid   "Enter name and options for external MIME viewer, --internal for built-in "
+        "viewer"
+msgstr  ""
 
 #: src/lang.c:1977
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Colour of response counter\n"
-	"# Default: 2 (green)\n"
-
-#: src/lang.c:1983
-msgid	"Color of sender (From:)"
-msgstr	"Colour of sender (From:)"
-
-#: src/lang.c:1984
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Colour of sender (From:)\n"
-	"# Default: 2 (green)\n"
-
-#: src/lang.c:1990
-msgid	"Color of help/mail sign"
-msgstr	"Colour of help/mail sign"
-
-#: src/lang.c:1991
-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:1997
-msgid	"Color of signatures"
-msgstr	"Colour of signatures"
-
-#: src/lang.c:1998
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Colour of signature\n"
-	"# Default: 4 (blue)\n"
-
-#: src/lang.c:2004
-msgid	"Color of highlighted URLs"
-msgstr	"Colour of highlighted URLs"
+msgid   "MIME binary content viewer"
+msgstr  ""
+
+#: src/lang.c:1978
+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:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  ""
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  ""
+
+#: src/lang.c:1987
+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:1992
+msgid   "Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1993
+msgid   "Catchup read groups when quitting"
+msgstr  ""
+
+#: src/lang.c:1994
+msgid   "# If ON ask user if read groups should all be marked read\n"
+msgstr  ""
+
+#: src/lang.c:1999
+msgid   "Catchup group using left key"
+msgstr  ""
+
+#: src/lang.c:2000
+msgid   "# If ON catchup group/thread when leaving with the left arrow key.\n"
+msgstr  ""
 
 #: src/lang.c:2005
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Colour of highlighted URLs\n"
-	"# Default: -1 (default colour)\n"
+msgid   "Catchup thread by using left key"
+msgstr  ""
 
 #: src/lang.c:2011
-msgid	"Color of highlighting with *stars*"
-msgstr	"Colour of highlighting with *stars*"
+msgid   "Which actions require confirmation"
+msgstr  ""
 
 #: src/lang.c:2012
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	"# Colour of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
+msgid   "# What should we ask confirmation for.\n"
+msgstr  ""
+
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  ""
 
 #: src/lang.c:2018
-msgid	"Color of highlighting with _dash_"
-msgstr	"Colour of highlighting with _dash_"
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  ""
 
-#: src/lang.c:2019
-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:2025
-msgid	"Color of highlighting with /slash/"
-msgstr	"Colour of highlighting with /slash/"
-
-#: src/lang.c:2026
-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:2032
-msgid	"Color of highlighting with -stroke-"
-msgstr	"Colour of highlighting w. -stroke-"
-
-#: src/lang.c:2033
-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:2040
-msgid	"Attr. of highlighting with *stars*"
-msgstr	""
-
-#: src/lang.c:2041
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	""
+#: src/lang.c:2022
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2023
+msgid   "Program that opens URLs"
+msgstr  ""
+
+#: src/lang.c:2024
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  ""
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  ""
+
+#: src/lang.c:2030
+msgid   "# If ON enable mouse button support on xterm terminals\n"
+msgstr  ""
+
+#: src/lang.c:2036
+msgid   "Use scroll keys on keypad"
+msgstr  ""
+
+#: src/lang.c:2037
+msgid   "# If ON enable scroll keys on terminals that support it\n"
+msgstr  ""
+
+#: src/lang.c:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  ""
+
+#: src/lang.c:2044
+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:2049
+msgid   "Enter number of days article is considered recent. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2050
+msgid   "Article recentness time limit"
+msgstr  ""
+
+#: src/lang.c:2051
+msgid   "# Number of days in which article is considered recent, (0=OFF)\n"
+msgstr  ""
+
+#: src/lang.c:2055
+msgid   "WILDMAT for normal wildcards, REGEX for full regular expression matching."
+msgstr  ""
 
 #: src/lang.c:2056
-msgid	"Attr. of highlighting with _dash_"
-msgstr	""
+msgid   "Wildcard matching"
+msgstr  ""
 
 #: src/lang.c:2057
-msgid	"# Attribute of word highlighting with _dash_\n"
-	"# Default: 2 (best highlighting)\n"
-msgstr	""
-
-#: src/lang.c:2063
-msgid	"Attr. of highlighting with /slash/"
-msgstr	""
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  ""
 
 #: src/lang.c:2064
-msgid	"# Attribute of word highlighting with /slash/\n"
-	"# Default: 5 (half bright)\n"
-msgstr	""
+msgid   "Enter minimal score before an article is marked killed. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2065
+msgid   "Score limit (kill)"
+msgstr  ""
+
+#: src/lang.c:2066
+msgid   "# Score limit before an article is marked killed\n"
+msgstr  ""
 
 #: src/lang.c:2070
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	""
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2071
-msgid	"# Attribute of word highlighting with -stroke-\n"
-	"# Default: 3 (reverse video)\n"
-msgstr	""
+msgid   "Default score to kill articles"
+msgstr  ""
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  ""
+
+#: src/lang.c:2076
+msgid   "Enter minimal score before an article is marked hot. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2077
-msgid	"URL highlighting in message body"
-msgstr	""
+msgid   "Score limit (select)"
+msgstr  ""
 
 #: src/lang.c:2078
-msgid	"# Enable URL highlighting?\n"
-msgstr	""
+msgid   "# Score limit before an article is marked hot\n"
+msgstr  ""
+
+#: src/lang.c:2082
+msgid   "Enter default score to select articles. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2083
-msgid	"Word highlighting in message body"
-msgstr	""
+msgid   "Default score to select articles"
+msgstr  ""
 
 #: src/lang.c:2084
-msgid	"# Enable word highlighting?\n"
-msgstr	""
-
-#: src/lang.c:2089
-msgid	"What to display instead of mark"
-msgstr	""
+msgid   "# Default score to select articles\n"
+msgstr  ""
 
 #: src/lang.c:2090
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	""
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  ""
+
+#: src/lang.c:2091
+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:2099
-msgid	"Enter column number to wrap article lines to in the pager. <CR> sets."
-msgstr	""
+msgid   "Use ANSI color"
+msgstr  "Use ANSI colour"
 
 #: src/lang.c:2100
-msgid	"Page line wrap column"
-msgstr	""
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# If ON using ANSI-colour\n"
 
-#: src/lang.c:2101
-msgid	"# Wrap article lines at column\n"
-msgstr	""
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  "Standard foreground colour"
 
 #: src/lang.c:2106
-msgid	"Wrap around threads on next unread"
-msgstr	""
-
-#: src/lang.c:2107
-msgid	"# If ON wrap around threads on searching next unread article\n"
-msgstr	""
-
-#: src/lang.c:2111
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	""
+msgid   "# Standard foreground color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standard foreground colour\n"
+        "# Default: -1 (default colour)\n"
 
 #: src/lang.c:2112
-msgid	"Mail address (and fullname)"
-msgstr	""
+msgid   "Standard background color"
+msgstr  "Standard background colour"
 
 #: src/lang.c:2113
-msgid	"# User's mail address (and fullname), if not username@host (fullname)\n"
-msgstr	""
-
-#: src/lang.c:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	""
+msgid   "# Standard background color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standard background colour\n"
+        "# Default: -1 (default colour)\n"
 
 #: src/lang.c:2119
-msgid	"# If ON show empty Followup-To header when editing an article\n"
-msgstr	""
+msgid   "Color for inverse text (background)"
+msgstr  "Colour for inverse text (bg)"
 
-#: src/lang.c:2123
-msgid	"Enter path/! command/--none to create your default signature. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2124
-msgid	"Create signature from path/command"
-msgstr	""
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	""
-
-#: src/lang.c:2132
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	""
+#: src/lang.c:2120
+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:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  "Colour for inverse text (fg)"
+
+#: src/lang.c:2127
+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:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	""
+msgid   "Color of text lines"
+msgstr  "Colour of text lines"
 
 #: src/lang.c:2134
-msgid	"# If ON prepend the signature with dashes '\\n-- \\n'\n"
-msgstr	""
-
-#: src/lang.c:2138
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2139
-msgid	"Add signature when reposting"
-msgstr	""
+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:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	""
+msgid   "Color of mini help menu"
+msgstr  "Colour of mini help menu"
 
-#: src/lang.c:2144
-#, c-format
-msgid	"Enter quotation marks, %s or %S for author's initials."
-msgstr	""
-
-#: src/lang.c:2145
-msgid	"Characters used as quote-marks"
-msgstr	""
-
-#: src/lang.c:2146
-#, 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:2152
-msgid	"Quoting behavior"
-msgstr	"Quoting behaviour"
-
-#: src/lang.c:2153
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	""
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-msgid	"%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
-msgstr	""
-
-#: src/lang.c:2167
-msgid	"Quote line when following up"
-msgstr	""
+#: src/lang.c:2141
+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:2147
+msgid   "Color of help text"
+msgstr  "Colour of help text"
+
+#: src/lang.c:2148
+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:2154
+msgid   "Color of status messages"
+msgstr  "Colour of status messages"
+
+#: src/lang.c:2155
+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:2161
+msgid   "Color of quoted lines"
+msgstr  "Colour of quoted lines"
+
+#: src/lang.c:2162
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Colour of quote-lines\n"
+        "# Default: 2 (green)\n"
 
 #: src/lang.c:2168
-#, 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	""
+msgid   "Color of twice quoted line"
+msgstr  "Colour of twice quoted line"
+
+#: src/lang.c:2169
+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:2175
-msgid	"Quote line when cross-posting"
-msgstr	""
+msgid   "Color of =>3 times quoted line"
+msgstr  "Colour of =>3 times quoted line"
 
-#: src/lang.c:2181
-msgid	"Quote line when mailing"
-msgstr	""
-
-#: src/lang.c:2186
-msgid	"If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2187
-msgid	"Insert 'User-Agent:'-header"
-msgstr	""
-
-#: src/lang.c:2188
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	""
-
-#: src/lang.c:2193
-msgid	"Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
-msgstr	""
-
-#: src/lang.c:2194
-msgid	"MM_CHARSET"
-msgstr	""
-
-#: src/lang.c:2195
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	""
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	""
-
-#: src/lang.c:2206
-msgid	"# Charset used for MIME (Content-Type) header in postings.\n"
-msgstr	""
-
-#: src/lang.c:2212
-msgid	"Mailbox format"
-msgstr	""
-
-#: src/lang.c:2213
-msgid	"# Format of the mailbox.\n"
-msgstr	""
+#: src/lang.c:2176
+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:2182
+msgid   "Color of article header lines"
+msgstr  "Colour of article header lines"
+
+#: src/lang.c:2183
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Colour of header-lines\n"
+        "# Default: 2 (green)\n"
+
+#: src/lang.c:2189
+msgid   "Color of actual news header fields"
+msgstr  "Colour of actual news header fields"
+
+#: src/lang.c:2190
+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:2196
+msgid   "Color of article subject lines"
+msgstr  "Colour of article subject lines"
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Colour of article subject\n"
+        "# Default: 6 (cyan)\n"
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  "Colour of response counter"
+
+#: src/lang.c:2204
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Colour of response counter\n"
+        "# Default: 2 (green)\n"
+
+#: src/lang.c:2210
+msgid   "Color of sender (From:)"
+msgstr  "Colour of sender (From:)"
+
+#: src/lang.c:2211
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Colour of sender (From:)\n"
+        "# Default: 2 (green)\n"
+
+#: src/lang.c:2217
+msgid   "Color of help/mail sign"
+msgstr  "Colour of help/mail sign"
 
 #: src/lang.c:2218
-msgid	"MIME encoding in news messages"
-msgstr	""
-
-#: src/lang.c:2219
-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"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	""
-
-#: src/lang.c:2227 src/lang.c:2248
-msgid	"Don't change unless you know what you are doing. <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:2228
-msgid	"Use 8bit characters in news headers"
-msgstr	""
-
-#: src/lang.c:2229
-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:2236
-msgid	"Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:2237
-msgid	"View post-processed files"
-msgstr	""
+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:2224
+msgid   "Color of signatures"
+msgstr  "Colour of signatures"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Colour of signature\n"
+        "# Default: 4 (blue)\n"
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  "Colour of highlighted URLs"
+
+#: src/lang.c:2232
+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:2238
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	""
+msgid   "Color of verbatim blocks"
+msgstr  "Colour of verbatim blocks"
 
-#: src/lang.c:2243
-msgid	"MIME encoding in mail messages"
-msgstr	""
-
-#: src/lang.c:2249
-msgid	"Use 8bit characters in mail headers"
-msgstr	""
-
-#: src/lang.c:2250
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	""
+#: src/lang.c:2239
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  "# Colour of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  "Colour of highlighting with *stars*"
+
+#: src/lang.c:2246
+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:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  "Colour of highlighting with _dash_"
+
+#: src/lang.c:2253
+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:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  "Colour of highlighting with /slash/"
 
 #: src/lang.c:2260
-msgid	"Strip blanks from ends of lines"
-msgstr	""
-
-#: src/lang.c:2261
-msgid	"# If ON strip blanks from ends of lines for faster display on slow "
-	"terminals.\n"
-msgstr	""
+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:2266
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Color of highlighting with -stroke-"
+msgstr  "Colour of highlighting w. -stroke-"
 
 #: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	""
-
-#: src/lang.c:2268
-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	""
+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:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  ""
 
 #: src/lang.c:2275
-msgid	"Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2276
-msgid	"Send you a cc automatically"
-msgstr	""
-
-#: src/lang.c:2277
-msgid	"# If ON automatically put your name in the Cc: field when mailing an article\n"
-msgstr	""
-
-#: src/lang.c:2281
-msgid	"Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2282
-msgid	"Send you a blind cc automatically"
-msgstr	""
-
-#: src/lang.c:2283
-msgid	"# If ON automatically put your name in the Bcc: field when mailing an "
-	"article\n"
-msgstr	""
-
-#: src/lang.c:2287
-msgid	"Enter address elements about which you want to be warned. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2288
-msgid	"Spamtrap warning address parts"
-msgstr	""
-
-#: src/lang.c:2289
-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:2294
-msgid	"Enter default number of days a filter entry will be valid. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2295
-msgid	"No. of days a filter entry is valid"
-msgstr	""
-
-#: src/lang.c:2296
-msgid	"# Number of days a short term filter will be active\n"
-msgstr	""
-
-#: src/lang.c:2300
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2301
-msgid	"Add posted articles to filter"
-msgstr	""
-
-#: src/lang.c:2302
-msgid	"# If ON add posted articles which start a new thread to filter for\n"
-	"# highlighting follow-ups\n"
-msgstr	""
-
-#: src/lang.c:2306
-msgid	"The directory where articles/threads are to be saved in mailbox format."
-msgstr	""
-
-#: src/lang.c:2307
-msgid	"Mail directory"
-msgstr	""
-
-#: src/lang.c:2308
-msgid	"# (-m) directory where articles/threads are saved in mailbox format\n"
-msgstr	""
-
-#: src/lang.c:2313
-msgid	"Save articles in batch mode (-S)"
-msgstr	""
-
-#: src/lang.c:2314
-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:2319
-msgid	"The directory where you want articles/threads saved."
-msgstr	""
-
-#: src/lang.c:2320
-msgid	"Directory to save arts/threads in"
-msgstr	""
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	""
-
-#: src/lang.c:2325
-msgid	"Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2326
-msgid	"Use Archive-name: header for save"
-msgstr	""
-
-#: src/lang.c:2327
-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:2332
-msgid	"Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
-	"cancels."
-msgstr	""
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  ""
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  ""
+
+#: src/lang.c:2291
+msgid   "# Attribute of word highlighting with _dash_\n"
+        "# Default: 2 (best highlighting)\n"
+msgstr  ""
+
+#: src/lang.c:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  ""
+
+#: src/lang.c:2298
+msgid   "# Attribute of word highlighting with /slash/\n"
+        "# Default: 5 (half bright)\n"
+msgstr  ""
+
+#: src/lang.c:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  ""
+
+#: src/lang.c:2305
+msgid   "# Attribute of word highlighting with -stroke-\n"
+        "# Default: 3 (reverse video)\n"
+msgstr  ""
+
+#: src/lang.c:2311
+msgid   "URL highlighting in message body"
+msgstr  ""
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  ""
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  ""
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  ""
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  ""
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  ""
 
 #: src/lang.c:2333
-msgid	"Mark saved articles/threads as read"
-msgstr	""
+msgid   "Enter column number to wrap article lines to in the pager. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2334
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	""
+msgid   "Page line wrap column"
+msgstr  ""
 
-#: src/lang.c:2338
-msgid	"Do post processing (eg. extract attachments) for saved articles."
-msgstr	""
-
-#: src/lang.c:2339
-msgid	"Post process saved articles"
-msgstr	""
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  ""
 
 #: src/lang.c:2340
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	""
-
-#: src/lang.c:2349
-msgid	"Process only unread articles"
-msgstr	""
-
-#: src/lang.c:2350
-msgid	"# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
-msgstr	""
-
-#: src/lang.c:2355
-msgid	"Print all or just part of header. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2356
-msgid	"Print all headers when printing"
-msgstr	""
+msgid   "Wrap around threads on next unread"
+msgstr  ""
+
+#: src/lang.c:2341
+msgid   "# If ON wrap around threads on searching next unread article\n"
+msgstr  ""
+
+#: src/lang.c:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  ""
+
+#: src/lang.c:2347
+msgid   "# User's mail address (and fullname), if not username@host (fullname)\n"
+msgstr  ""
+
+#: src/lang.c:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  ""
+
+#: src/lang.c:2353
+msgid   "# If ON show empty Followup-To header when editing an article\n"
+msgstr  ""
 
 #: src/lang.c:2357
-msgid	"# If ON print all of article header otherwise just the important lines\n"
-msgstr	""
+msgid   "Enter path/! command/--none to create your default signature. <CR> sets."
+msgstr  ""
 
-#: src/lang.c:2361
-msgid	"The printer program with options that is to be used to print articles/threads."
-msgstr	""
-
-#: src/lang.c:2362
-msgid	"Printer program with options"
-msgstr	""
-
-#: src/lang.c:2363
-msgid	"# Print program with parameters used to print articles/threads\n"
-msgstr	""
-
-#: src/lang.c:2369
-msgid	"Force redraw after certain commands"
-msgstr	""
-
-#: src/lang.c:2370
-msgid	"# If ON a screen redraw will always be done after certain external commands\n"
-msgstr	""
+#: src/lang.c:2358
+msgid   "Create signature from path/command"
+msgstr  ""
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  ""
+
+#: src/lang.c:2366
+msgid   "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  ""
+
+#: src/lang.c:2368
+msgid   "# If ON prepend the signature with dashes '\\n-- \\n'\n"
+msgstr  ""
+
+#: src/lang.c:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  ""
 
 #: src/lang.c:2374
-msgid	"Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  ""
+
+#: src/lang.c:2378
+#, c-format
+msgid   "Enter quotation marks, %s or %S for author's initials."
+msgstr  ""
 
-#: src/lang.c:2375
-msgid	"Start editor with line offset"
-msgstr	""
-
-#: src/lang.c:2376
-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:2381
-msgid	"Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
-msgstr	""
-
-#: src/lang.c:2382
-msgid	"Invocation of your editor"
-msgstr	""
-
-#: src/lang.c:2383
-#, c-format
-msgid	"# Format of editor line including parameters\n"
-	"# %%E Editor  %%F Filename  %%N Linenumber\n"
-msgstr	""
-
-#: src/lang.c:2388
-msgid	"Enter name and options for external-inews, --internal for internal inews"
-msgstr	""
-
-#: src/lang.c:2389
-msgid	"External inews"
-msgstr	""
-
-#: src/lang.c:2390
-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:2394
-msgid	"Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."
-msgstr	""
-
-#: src/lang.c:2395
-msgid	"Invocation of your mail command"
-msgstr	""
-
-#: src/lang.c:2396
-#, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	""
-
-#: src/lang.c:2404
-msgid	"Use interactive mail reader"
-msgstr	""
-
-#: src/lang.c:2405
-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	""
-
-#: src/lang.c:2414
-msgid	"Remove ~/.article after posting"
-msgstr	""
+#: src/lang.c:2379
+msgid   "Characters used as quote-marks"
+msgstr  ""
+
+#: src/lang.c:2380
+#, 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:2386
+msgid   "Quoting behavior"
+msgstr  "Quoting behaviour"
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  ""
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+msgid   "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
+msgstr  ""
+
+#: src/lang.c:2401
+msgid   "Quote line when following up"
+msgstr  ""
+
+#: src/lang.c:2402
+#, 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:2409
+msgid   "Quote line when cross-posting"
+msgstr  ""
 
 #: src/lang.c:2415
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	""
-
-#: src/lang.c:2419
-msgid	"Filename for all posted articles, <CR> sets, no filename=do not save."
-msgstr	""
+msgid   "Quote line when mailing"
+msgstr  ""
 
 #: src/lang.c:2420
-msgid	"Filename for posted articles"
-msgstr	""
+msgid   "If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2421
-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:2426
-msgid	"Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Insert 'User-Agent:' header"
+msgstr  ""
+
+#: src/lang.c:2422
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  ""
 
 #: src/lang.c:2427
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	""
+msgid   "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  ""
 
 #: src/lang.c:2428
-msgid	"# If ON keep all failed postings in ~/dead.articles\n"
-msgstr	""
+msgid   "MM_CHARSET"
+msgstr  ""
 
-#: src/lang.c:2432
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	""
-
-#: src/lang.c:2433
-msgid	"No unsubscribed groups in newsrc"
-msgstr	""
-
-#: src/lang.c:2434
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	""
+#: src/lang.c:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  ""
 
 #: src/lang.c:2439
-msgid	"Remove bogus groups from newsrc"
-msgstr	""
+msgid   "MM_NETWORK_CHARSET"
+msgstr  ""
 
 #: src/lang.c:2440
-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	""
-
-#: src/lang.c:2448
-msgid	"Enter number of seconds until active file will be reread. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2449
-msgid	"Interval in secs to reread active"
-msgstr	""
-
-#: src/lang.c:2450
-msgid	"# Time interval in seconds between rereading the active file (0=never)\n"
-msgstr	""
-
-#: src/lang.c:2455
-msgid	"Reconnect to server automatically"
-msgstr	""
-
-#: src/lang.c:2456
-msgid	"# If ON automatically reconnect to NNTP server if the connection is broken\n"
-msgstr	""
+msgid   "# Charset used for MIME (Content-Type) header in postings.\n"
+msgstr  ""
 
-#: src/lang.c:2460
-msgid	"Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
-msgstr	""
+#: src/lang.c:2444
+msgid   "Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2445
+msgid   "MM_LOCAL_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  ""
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  ""
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  ""
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  ""
 
-#: src/lang.c:2461
-msgid	"Cache NNTP overview files locally"
-msgstr	""
-
-#: src/lang.c:2462
-msgid	"# If ON, create local copies of NNTP overview files.\n"
-msgstr	""
-
-#: src/lang.c:2466
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:2467
-msgid	"Format string for display of dates"
-msgstr	""
-
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	""
-
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	"Unicode normalisation form"
-
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	"# Unicode normalisation form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	""
-
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	""
-
-#: src/misc.c:3750
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	""
-
-#: src/misc.c:3753
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	""
-
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	""
-
-#: src/nntplib.c:824
-#, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	""
-
-#: src/nntplib.c:842 src/nntplib.c:1630
-msgid	"Rejoin current group\n"
-msgstr	""
-
-#: src/nntplib.c:849 src/nntplib.c:1637
-#, c-format
-msgid	"Read (%s)\n"
-msgstr	""
-
-#: src/nntplib.c:851
-#, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	""
-
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
-
-#: src/nrctbl.c:170
-#, c-format
-msgid	"couldn't expand %s\n"
-msgstr	""
-
-#: src/post.c:1171
-#, 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
-#, 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
-#, 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/lang.c:2460
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  ""
+
+#: src/lang.c:2468 src/lang.c:2489
+msgid   "Don't change unless you know what you are doing. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  ""
+
+#: src/lang.c:2470
+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:2477
+msgid   "Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2478
+msgid   "View post-processed files"
+msgstr  ""
+
+#: src/lang.c:2479
+msgid   "# If set, post processed files will be opened in a viewer\n"
+msgstr  ""
+
+#: src/lang.c:2484
+msgid   "MIME encoding in mail messages"
+msgstr  ""
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  ""
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  ""
+
+#: src/lang.c:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  ""
+
+#: src/lang.c:2502
+msgid   "# If ON strip blanks from ends of lines for faster display on slow "
+        "terminals.\n"
+msgstr  ""
+
+#: src/lang.c:2507
+msgid   "If ON, use transliteration. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2508
+msgid   "Transliteration"
+msgstr  ""
+
+#: src/lang.c:2509
+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:2517
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  ""
+
+#: src/lang.c:2518
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  ""
+
+#: src/lang.c:2527
+msgid   "Enter address elements about which you want to be warned. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2528
+msgid   "Spamtrap warning address parts"
+msgstr  ""
+
+#: src/lang.c:2529
+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:2534
+msgid   "Enter default number of days a filter entry will be valid. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  ""
+
+#: src/lang.c:2536
+msgid   "# Number of days a short term filter will be active\n"
+msgstr  ""
+
+#: src/lang.c:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2541
+msgid   "Add posted articles to filter"
+msgstr  ""
+
+#: src/lang.c:2542
+msgid   "# If ON add posted articles which start a new thread to filter for\n"
+        "# highlighting follow-ups\n"
+msgstr  ""
+
+#: src/lang.c:2546
+msgid   "The directory where articles/threads are to be saved in mailbox format."
+msgstr  ""
+
+#: src/lang.c:2547
+msgid   "Mail directory"
+msgstr  ""
+
+#: src/lang.c:2548
+msgid   "# (-m) directory where articles/threads are saved in mailbox format\n"
+msgstr  ""
+
+#: src/lang.c:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  ""
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  ""
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  ""
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  ""
+
+#: src/lang.c:2565
+msgid   "Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2566
+msgid   "Use Archive-name: header for save"
+msgstr  ""
+
+#: src/lang.c:2567
+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:2572
+msgid   "Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  ""
+
+#: src/lang.c:2574
+msgid   "# If ON mark articles that are saved as read\n"
+msgstr  ""
+
+#: src/lang.c:2578
+msgid   "Do post processing (eg. extract attachments) for saved articles."
+msgstr  ""
+
+#: src/lang.c:2579
+msgid   "Post process saved articles"
+msgstr  ""
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  ""
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  ""
+
+#: src/lang.c:2590
+msgid   "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
+msgstr  ""
+
+#: src/lang.c:2595
+msgid   "Print all or just part of header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2596
+msgid   "Print all headers when printing"
+msgstr  ""
+
+#: src/lang.c:2597
+msgid   "# If ON print all of article header otherwise just the important lines\n"
+msgstr  ""
+
+#: src/lang.c:2601
+msgid   "The printer program with options that is to be used to print articles/threads."
+msgstr  ""
+
+#: src/lang.c:2602
+msgid   "Printer program with options"
+msgstr  ""
+
+#: src/lang.c:2603
+msgid   "# Print program with parameters used to print articles/threads\n"
+msgstr  ""
+
+#: src/lang.c:2609
+msgid   "Force redraw after certain commands"
+msgstr  ""
+
+#: src/lang.c:2610
+msgid   "# If ON a screen redraw will always be done after certain external commands\n"
+msgstr  ""
+
+#: src/lang.c:2614
+msgid   "Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2615
+msgid   "Start editor with line offset"
+msgstr  ""
+
+#: src/lang.c:2616
+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:2621
+msgid   "Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2622
+msgid   "Invocation of your editor"
+msgstr  ""
+
+#: src/lang.c:2623
+#, c-format
+msgid   "# Format of editor line including parameters\n"
+        "# %%E Editor  %%F Filename  %%N Linenumber\n"
+msgstr  ""
+
+#: src/lang.c:2628
+msgid   "Enter name and options for external-inews, --internal for internal inews"
+msgstr  ""
+
+#: src/lang.c:2629
+msgid   "External inews"
+msgstr  ""
+
+#: src/lang.c:2630
+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:2634
+msgid   "Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2635
+msgid   "Invocation of your mail command"
+msgstr  ""
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  ""
+
+#: src/lang.c:2644
+msgid   "Use interactive mail reader"
+msgstr  ""
+
+#: src/lang.c:2645
+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  ""
+
+#: src/lang.c:2654
+msgid   "Remove ~/.article after posting"
+msgstr  ""
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  ""
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+msgid   "Filename for all posted articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2668
+msgid   "Filename for posted articles"
+msgstr  ""
+
+#: src/lang.c:2669
+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:2674
+msgid   "Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  ""
+
+#: src/lang.c:2676
+msgid   "# If ON keep all failed postings in ~/dead.articles\n"
+msgstr  ""
+
+#: src/lang.c:2680
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  ""
+
+#: src/lang.c:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  ""
+
+#: src/lang.c:2682
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  ""
+
+#: src/lang.c:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  ""
+
+#: src/lang.c:2688
+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  ""
+
+#: src/lang.c:2696
+msgid   "Enter number of seconds until active file will be reread. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2697
+msgid   "Interval in secs to reread active"
+msgstr  ""
+
+#: src/lang.c:2698
+msgid   "# Time interval in seconds between rereading the active file (0=never)\n"
+msgstr  ""
+
+#: src/lang.c:2703
+msgid   "Reconnect to server automatically"
+msgstr  ""
+
+#: src/lang.c:2704
+msgid   "# If ON automatically reconnect to NNTP server if the connection is broken\n"
+msgstr  ""
+
+#: src/lang.c:2708
+msgid   "Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  ""
+
+#: src/lang.c:2710
+msgid   "# If ON, create local copies of NNTP overview files.\n"
+msgstr  ""
+
+#: src/lang.c:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  ""
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  ""
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  "Unicode normalisation form"
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  "# Unicode normalisation form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  ""
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  ""
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  ""
+
+#: src/lang.c:2752
+msgid   "Delete post-process files"
+msgstr  ""
+
+#: src/lang.c:2757
+msgid   "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2758
+msgid   "Mailbox to save sent mails"
+msgstr  ""
+
+#: src/lang.c:2763
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  ""
+
+#: src/lang.c:2769
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2776
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  ""
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  ""
+
+#: src/lang.c:2784
+msgid   "Mailing list address"
+msgstr  ""
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  ""
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  ""
+
+#: src/lang.c:2801
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  ""
+
+#: src/lang.c:2807
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2808
+msgid   "savefile"
+msgstr  ""
+
+#: src/lang.c:2813 src/lang.c:2837
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2814
+msgid   "Quick (1 key) select filter scope"
+msgstr  ""
+
+#: src/lang.c:2819 src/lang.c:2843
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
+
+#: src/lang.c:2825 src/lang.c:2849
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2826
+msgid   "Quick (1 key) select filter case"
+msgstr  ""
+
+#: src/lang.c:2831 src/lang.c:2855
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
+
+#: src/lang.c:2838
+msgid   "Quick (1 key) kill filter scope"
+msgstr  ""
+
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
+
+#: src/lang.c:2850
+msgid   "Quick (1 key) kill filter case"
+msgstr  ""
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2863
+msgid   "UNDECLARED_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2869
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2870
+msgid   "X_Body"
+msgstr  ""
+
+#: src/lang.c:2875
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  ""
+
+#: src/lang.c:2881
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2882
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  ""
+
+#: src/misc.c:3754
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  ""
+
+#: src/misc.c:3757
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  ""
+
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  ""
+
+#: src/nntplib.c:819
+#, c-format
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  ""
+
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  ""
+
+#: src/nntplib.c:863 src/nntplib.c:1838
+#, c-format
+msgid   "Read (%s)\n"
+msgstr  ""
+
+#: src/nntplib.c:865
+#, c-format
+msgid   "Resend last command (%s)\n"
+msgstr  ""
+
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  ""
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  ""
+
+#: src/nrctbl.c:175
+#, c-format
+msgid   "couldn't expand %s\n"
+msgstr  ""
+
+#: src/post.c:1307
+#, 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:1312
+#, 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:1314
+#, 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:2278
 #, c-format
-msgid	"Posting: %.*s ..."
-msgstr	""
+msgid   "Posting: %.*s ..."
+msgstr  ""
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	""
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	""
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	""
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	""
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	""
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  ""
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  ""
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  ""
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  ""
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  ""
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	""
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	""
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	""
-
-#: src/select.c:379
-msgid	"all"
-msgstr	""
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	""
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	""
-
-#: src/xface.c:99 src/xface.c:131
-#, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	""
-
-#: src/xface.c:109
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	""
-
-#: src/xface.c:123
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	""
-
-#: src/xface.c:162
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  ""
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  ""
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  ""
+
+#: src/select.c:378
+msgid   "all"
+msgstr  ""
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  ""
+
+#: src/xface.c:70
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  ""
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
+#, c-format
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  ""
+
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  ""
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  ""
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  ""
+
+#: src/xface.c:174
 #, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	""
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  ""
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, c-format
-msgid	"Slrnface failed: %s."
-msgstr	""
+msgid   "Slrnface failed: %s."
+msgstr  ""
Binary files tin-1.8.3/po/et.gmo and tin-2.0.0/po/et.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/et.po tin-2.0.0/po/et.po
--- tin-1.8.3/po/et.po	2007-02-01 13:58:03.000000000 +0100
+++ tin-2.0.0/po/et.po	2011-08-22 18:32:41.719321499 +0200
@@ -1,6546 +1,7601 @@
-# Estonian translations for tin
-# Copyright © 2002 Free Software Foundation, Inc.
-# Toomas Soome <Toomas.Soome@microlink.ee>, 2006.
+# Estonian translations for tin.
+# This file is distributed under the same license as the tin package.
+# Toomas Soome <Toomas.Soome@microlink.ee>, 2010.
 #
-msgid	""
-msgstr	"Project-Id-Version: tin 1.8.2\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+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"
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.9.5\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\n"
+        "PO-Revision-Date: 2010-08-12 17:33+0300\n"
+        "Last-Translator: Toomas Soome <Toomas.Soome@microlink.ee>\n"
+        "Language-Team: Estonian <linux-ee@lists.eenet.ee>\n"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=ISO-8859-15\n"
+        "Content-Transfer-Encoding: 8bit\n"
 
-#: src/art.c:1534
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	"%d Vigane overview kirje (%d välja) '%s'"
+msgid   "attribute with no scope: %s"
+msgstr  "atribuut ilma skoobita: %s"
 
-#: src/attrib.c:649
+#: src/attrib.c:884
+msgid   "Processing attributes... "
+msgstr  "Töötlen atribuute... "
+
+#: src/attrib.c:1102
+#, c-format
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  "# Ärge seda kommentaari blokki muutke\n"
+        "#\n"
+
+#: src/attrib.c:1103
+#, c-format
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  "#  scope=SÕNE (n. alt.*,!alt.bin*) [kohustuslik]\n"
+
+#: src/attrib.c:1104
+#, c-format
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  "#  add_posted_to_filter=ON/OFF\n"
+
+#: src/attrib.c:1105
+#, c-format
+msgid   "#  advertising=ON/OFF\n"
+msgstr  "#  advertising=ON/OFF\n"
+
+#: src/attrib.c:1106
+#, c-format
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  "#  alternative_handling=ON/OFF\n"
+
+#: src/attrib.c:1107
+#, c-format
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  "#  ask_for_metamail=ON/OFF\n"
+
+#: src/attrib.c:1108
+#, c-format
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  "#  auto_cc_bcc=NUM\n"
+
+#: src/attrib.c:1109
+#, c-format
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  "#    0=Ei pane, 1=Cc, 2=Bcc, 3=Cc ja Bcc\n"
+
+#: src/attrib.c:1110
+#, c-format
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  "#  auto_list_thread=ON/OFF\n"
+
+#: src/attrib.c:1111
+#, c-format
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  "#  auto_save=ON/OFF\n"
+
+#: src/attrib.c:1112
+#, c-format
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  "#  auto_select=ON/OFF\n"
+
+#: src/attrib.c:1113
+#, c-format
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  "#  batch_save=ON/OFF\n"
+
+#: src/attrib.c:1114
+#, c-format
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  "#  date_format=SÕNE (n. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+
+#: src/attrib.c:1115
+#, c-format
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  "#  delete_tmp_files=ON/OFF\n"
+
+#: src/attrib.c:1116
+#, c-format
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  "#  editor_format=SÕNE (n. %%E +%%N %%F)\n"
+
+#: src/attrib.c:1117
+#, c-format
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  "#  fcc=SÕNE (n. =postkast)\n"
+
+#: src/attrib.c:1118
+#, c-format
+msgid   "#  followup_to=STRING\n"
+msgstr  "#  followup_to=SÕNE\n"
+
+#: src/attrib.c:1119
+#, c-format
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  "#  from=SÕNE (kirjutage soovitav From: rida, ärge kasutage jutumärke)\n"
+
+#: src/attrib.c:1120
+#, c-format
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  "#  group_catchup_on_exit=ON/OFF\n"
+
+#: src/attrib.c:1121
+#, c-format
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  "#  mail_8bit_header=ON/OFF\n"
+
+#: src/attrib.c:1122
+#, c-format
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  "#  mail_mime_encoding=toetatud_kodeering"
+
+#: src/attrib.c:1130
+#, c-format
+msgid   "#  ispell=STRING\n"
+msgstr  "#  ispell=SÕNE\n"
+
+#: src/attrib.c:1132
+#, c-format
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  "#  maildir=SÕNE (n. ~/Mail)\n"
+
+#: src/attrib.c:1133
+#, c-format
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  "#  mailing_list=SÕNE (n. majordomo@example.org)\n"
+
+#: src/attrib.c:1134
+#, c-format
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  "#  mime_types_to_save=SÕNE (n. image/*,!image/bmp)\n"
+
+#: src/attrib.c:1135
+#, c-format
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  "#  mark_ignore_tags=ON/OFF\n"
+
+#: src/attrib.c:1136
+#, c-format
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  "#  mark_saved_read=ON/OFF\n"
+
+#: src/attrib.c:1137
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	"# Ärge seda kommentaari blokki muutke\n"
-	"#\n"
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  "#  mime_forward=ON/OFF\n"
 
-#: src/attrib.c:650
+#: src/attrib.c:1139
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	"#  scope=SÕNE (n. alt.*,!alt.bin*) [kohustuslik]\n"
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  "#  mm_network_charset=toetatud_koodileht"
 
-#: src/attrib.c:651
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	"#  maildir=SÕNE (n. ~/Mail)\n"
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  "#  undeclared_charset=SÕNE (vaikimisi on US-ASCII)\n"
 
-#: src/attrib.c:652
+#: src/attrib.c:1148
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	"#  savedir=SÕNE (n. ~user/News)\n"
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  "#  news_headers_to_display=SÕNE\n"
 
-#: src/attrib.c:653
+#: src/attrib.c:1149
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	"#  savefile=SÕNE (n. =linux)\n"
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  "#  news_headers_to_not_display=SÕNE\n"
 
-#: src/attrib.c:654
+#: src/attrib.c:1150
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	"#  sigfile=SÕNE (n. $var/sig)\n"
+msgid   "#  news_quote_format=STRING\n"
+msgstr  "#  news_quote_format=SÕNE\n"
 
-#: src/attrib.c:655
+#: src/attrib.c:1151
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	"#  organization=SÕNE (kui algab sümboliga '/', loe failist)\n"
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  "#  organization=SÕNE (kui algab sümboliga '/', loe failist)\n"
 
-#: src/attrib.c:656
+#: src/attrib.c:1152
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	"#  followup_to=SÕNE\n"
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  "#  pos_first_unread=ON/OFF\n"
 
-#: src/attrib.c:657
+#: src/attrib.c:1153
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	"#  mailing_list=SÕNE (n. majordomo@example.org)\n"
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  "#  post_8bit_header=ON/OFF\n"
 
-#: src/attrib.c:658
+#: src/attrib.c:1154
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	"#  x_headers=SÕNE (n. ~/.tin/extra-headers)\n"
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  "#  post_mime_encoding=toetatud_kodeering"
 
-#: src/attrib.c:659
+#: src/attrib.c:1161
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	"#  x_body=SÕNE (n. ~/.tin/extra-body-text)\n"
+msgid   "#  post_process_type=NUM\n"
+msgstr  "#  post_process_type=NUM\n"
 
-#: src/attrib.c:660
+#: src/attrib.c:1166
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	"#  from=SÕNE (kirjutage soovitav From: rida, ärge kasutage jutumärke)\n"
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  "#  post_process_view=ON/OFF\n"
 
-#: src/attrib.c:661
+#: src/attrib.c:1167
 #, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	"#  news_quote_format=SÕNE\n"
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  "#  quick_kill_scope=SÕNE (n. talk.*)\n"
 
-#: src/attrib.c:662
+#: src/attrib.c:1168
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	"#  quote_chars=SÕNE (%%s, %%S annavad initsiaalid)\n"
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  "#  quick_kill_expire=ON/OFF\n"
 
-#: src/attrib.c:663
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	"#  mime_types_to_save=SÕNE (n. image/*,!image/bmp)\n"
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  "#  quick_kill_case=ON/OFF\n"
 
-#: src/attrib.c:665
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	"#  ispell=SÕNE\n"
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  "#  quick_kill_header=NUM\n"
 
-#: src/attrib.c:667
+#: src/attrib.c:1171 src/attrib.c:1180
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	"#  auto_select=ON/OFF\n"
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  "#    0=Subject: (tõstutundlik)    1=Subject: (tõstutundetu)\n"
 
-#: src/attrib.c:668
+#: src/attrib.c:1172 src/attrib.c:1181
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	"#  auto_save=ON/OFF\n"
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  "#    2=From: (tõstutundlik)       3=From: (tõstutundetu)\n"
 
-#: src/attrib.c:669
+#: src/attrib.c:1173 src/attrib.c:1182
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	"#  batch_save=ON/OFF\n"
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  "#    4=Message-ID: & kogu References: rida\n"
 
-#: src/attrib.c:670
+#: src/attrib.c:1174 src/attrib.c:1183
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	"#  delete_tmp_files=ON/OFF\n"
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  "#    5=Message-ID: & ainult viimane References: kirje\n"
 
-#: src/attrib.c:671
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	"#  show_only_unread=ON/OFF\n"
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  "#    6=Message-ID: kirje ainult   7=Lines:\n"
 
-#: src/attrib.c:672
+#: src/attrib.c:1176
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	"#  thread_arts=NUM"
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  "#  quick_select_scope=SÕNE\n"
 
-#: src/attrib.c:679
+#: src/attrib.c:1177
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	"#  thread_perc=NUM\n"
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  "#  quick_select_expire=ON/OFF\n"
 
-#: src/attrib.c:680
+#: src/attrib.c:1178
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	"#  show_author=NUM\n"
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  "#  quick_select_case=ON/OFF\n"
 
-#: src/attrib.c:686
+#: src/attrib.c:1179
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	"#  show_info=NUM\n"
+msgid   "#  quick_select_header=NUM\n"
+msgstr  "#  quick_select_header=NUM\n"
 
-#: src/attrib.c:692
+#: src/attrib.c:1185
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	"#  sort_art_type=NUM\n"
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  "#  quote_chars=SÕNE (%%s, %%S annavad initsiaalid)\n"
 
-#: src/attrib.c:710
+#: src/attrib.c:1187
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	"#  sort_threads_type=NUM\n"
+msgid   "#  print_header=ON/OFF\n"
+msgstr  "#  print_header=ON/OFF\n"
 
-#: src/attrib.c:715
+#: src/attrib.c:1189
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	"#  post_proc_type=NUM\n"
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  "#  process_only_unread=ON/OFF\n"
 
-#: src/attrib.c:720
+#: src/attrib.c:1190
 #, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	"#  quick_kill_scope=SÕNE (n. talk.*)\n"
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  "#  prompt_followupto=ON/OFF\n"
 
-#: src/attrib.c:721
+#: src/attrib.c:1191
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	"#  quick_kill_expire=ON/OFF\n"
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  "#  savedir=SÕNE (n. ~user/News)\n"
 
-#: src/attrib.c:722
+#: src/attrib.c:1192
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	"#  quick_kill_case=ON/OFF\n"
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  "#  savefile=SÕNE (n. =linux)\n"
 
-#: src/attrib.c:723
+#: src/attrib.c:1193
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	"#  quick_kill_header=NUM\n"
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  "#  sigfile=SÕNE (n. $var/sig)\n"
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1194
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	"#    0=teema (tõstutundlik) 1=teema (tõstutundetu)\n"
+msgid   "#  show_author=NUM\n"
+msgstr  "#  show_author=NUM\n"
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1200
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	"#    2=saatja (tõstutundlik) 3=saatja (tõstutundetu)\n"
+msgid   "#  show_info=NUM\n"
+msgstr  "#  show_info=NUM\n"
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1206
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	"#    4=msgid 5=read\n"
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  "#  show_signatures=ON/OFF\n"
 
-#: src/attrib.c:727
+#: src/attrib.c:1207
 #, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	"#  quick_select_scope=SÕNE\n"
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  "#  show_only_unread_arts=ON/OFF\n"
 
-#: src/attrib.c:728
+#: src/attrib.c:1208
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	"#  quick_select_expire=ON/OFF\n"
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  "#  sigdashes=ON/OFF\n"
 
-#: src/attrib.c:729
+#: src/attrib.c:1209
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	"#  quick_select_case=ON/OFF\n"
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  "#  signature_repost=ON/OFF\n"
 
-#: src/attrib.c:730
+#: src/attrib.c:1210
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	"#  quick_select_header=NUM\n"
+msgid   "#  sort_article_type=NUM\n"
+msgstr  "#  sort_article_type=NUM\n"
 
-#: src/attrib.c:734
+#: src/attrib.c:1228
 #, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	"#  x_comment_to=ON/OFF\n"
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  "#  sort_threads_type=NUM\n"
 
-#: src/attrib.c:735
+#: src/attrib.c:1237
 #, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	"#  fcc=SÕNE (n. =postkast)\n"
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  "#  start_editor_offset=ON/OFF\n"
 
 #
-#: src/attrib.c:736
+#: src/attrib.c:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  "#  tex2iso_conv=ON/OFF\n"
+
+#: src/attrib.c:1239
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	"#  tex2iso_conv=ON/OFF\n"
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  "#  thread_catchup_on_exit=ON/OFF\n"
 
-#: src/attrib.c:737
+#: src/attrib.c:1240
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	"#  mime_forward=ON/OFF\n"
+msgid   "#  thread_articles=NUM"
+msgstr  "#  thread_articles=NUM"
 
-#: src/attrib.c:739
+#: src/attrib.c:1247
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	"#  mm_network_charset=toetatud_koodileht"
+msgid   "#  thread_perc=NUM\n"
+msgstr  "#  thread_perc=NUM\n"
 
-#: src/attrib.c:746
+#: src/attrib.c:1248
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	"#  undeclared_charset=SÕNE (vaikimisi on US-ASCII)\n"
+msgid   "#  trim_article_body=NUM\n"
+msgstr  "#  trim_article_body=NUM\n"
 
-#: src/attrib.c:748
+#: src/attrib.c:1249
 #, 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"
+msgid   "#    0 = Don't trim article body\n"
+msgstr  "#    0 = Ära lühenda artikli keha\n"
 
-#: src/attrib.c:749
+#: src/attrib.c:1250
 #, c-format
-msgid	"# entries first followed by group specific entries.\n"
-	"#\n"
-msgstr	"# ning seejärel konkreetsemad, grupi spetsiifilised, reeglid.\n"
-	"#\n"
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  "#    1 = Jäta alles alguses olevad tühjad read\n"
 
-#: src/attrib.c:750
+#: src/attrib.c:1251
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	"############################################################################\n"
-	"\n"
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  "#    2 = Jäta alles lõpus olevad tühjad read\n"
 
-#: src/attrib.c:756
+#: src/attrib.c:1252
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	"# lisa täiendavaid päiseid\n"
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  "#    3 = Jäta alles alguses ja lõpus olevad tühjad read\n"
+
+#: src/attrib.c:1253
+#, fuzzy, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  "#    4 = Tihenda teksti vahel olevad tühjad read\n"
+
+#: src/attrib.c:1254
+#, fuzzy, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  "#    5 = Tihenda teksti vahel olevad tühjad read ja\n"
+        "#        jäta alles alguses olevad tühjad read\n"
+
+#: src/attrib.c:1255
+#, fuzzy, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  "#    6 = Tihenda teksti vahel olevad tühjad read ja\n"
+        "#        jäta alles lõpus olevad tühjad read\n"
 
-#: src/attrib.c:764
+#: src/attrib.c:1256
+#, fuzzy, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  "#    7 = Tihenda teksti vahel olevad tühjad read ja\n"
+        "#        jäta alles alguses ja lõpus olevad tühjad read\n"
+
+#: src/attrib.c:1257
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	"# *tekstidel* sea järeltöötlemise tüübiks ainult shar\n"
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  "#  verbatim_handling=ON/OFF\n"
 
-#: src/attrib.c:768
+#: src/attrib.c:1258
 #, 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"
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  "#  wrap_on_next_unread=ON/OFF\n"
 
-#: src/attrib.c:769
+#: src/attrib.c:1259
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	"# kustuta ajutised failid ja sea Followup-To: postitaja\n"
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  "#  x_body=SÕNE (n. ~/.tin/extra-body-text)\n"
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	"(tundmatu)"
+#: src/attrib.c:1260
+#, c-format
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  "#  x_comment_to=ON/OFF\n"
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	"Eelmisest reeglist eemaldatud: "
-
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	"NULL"
+#: src/attrib.c:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  "#  x_headers=SÕNE (n. ~/.tin/extra-headers)\n"
+
+#: src/attrib.c:1262
+#, 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:1263
+#, 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:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  "############################################################################\n"
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(tundmatu)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  "NULL"
 
 #: src/lang.c:42
-msgid	"1 Response"
-msgstr	"1 Vastus"
+msgid   "1 Response"
+msgstr  "1 Vastus"
 
 #: src/lang.c:46
 #, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%s ei sisalda ühtki gruppi. Lõpetan töö."
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s ei sisalda ühtki gruppi. Lõpetan töö."
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	"kõik "
+msgid   "all "
+msgstr  "kõik "
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	"Kõik grupid"
+msgid   "All groups"
+msgstr  "Kõik grupid"
 
 #: src/lang.c:49
 #, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	"Fail %s on olemas. %s=jätka, %s=kirjuta üle, %s=välju: "
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  "Fail %s on olemas. %s=jätka, %s=kirjuta üle, %s=välju: "
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	"Artikkel on katkestatud (kustutatud)."
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"Artiklit ei saa katkestada (kustutada)."
+msgid   "Article cancelled (deleted)."
+msgstr  "Artikkel on katkestatud (kustutatud)."
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	"Artikkel kustutatud."
-
-#: src/lang.c:53
-#, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"\n"
-	"Teie artikkel:\n"
-	"  \"%s\"\n"
-	"postitatakse %s:\n"
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "Artiklit ei saa katkestada (kustutada)."
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	"Artiklit ei postitatud!"
+msgid   "Article deleted."
+msgstr  "Artikkel kustutatud."
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	"Artiklit ei salvestatud"
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "Teie artikkel:\n"
+        "  \"%s\"\n"
+        "postitatakse %s:\n"
 
 #: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	"Artiklitaseme käsud"
+msgid   "Article not posted!"
+msgstr  "Artiklit ei postitatud!"
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	"Artiklil pole eelnevat"
+msgid   "Article not saved"
+msgstr  "Artiklit ei salvestatud"
 
 #: src/lang.c:58
-msgid	"Parent article has been killed"
-msgstr	"Eelnev artikkel on hävitatud"
+msgid   "Article Level Commands"
+msgstr  "Artiklitaseme käsud"
 
 #: src/lang.c:59
-msgid	"Parent article is unavailable"
-msgstr	"Eelnev artikkel pole kättesaadav"
+msgid   "Article has no parent"
+msgstr  "Artiklil pole eelnevat"
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	"Artikkel on postitatud: %s"
+msgid   "Parent article has been killed"
+msgstr  "Eelnev artikkel on hävitatud"
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	"Artikkel lükati tagasi (salvestasin faili %s)"
+msgid   "Parent article is unavailable"
+msgstr  "Eelnev artikkel pole kättesaadav"
 
 #: src/lang.c:62
 #, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	"%s=artikkel, %s=teema, %s=kuum, %s=muster, %s=märgitud artiklid, %s=välju: "
+msgid   "Article posted: %s"
+msgstr  "Artikkel on postitatud: %s"
 
 #: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	"Artiklit pole"
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  "Artikkel lükati tagasi (salvestasin faili %s)"
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	"Artikkel taastatud."
+#, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  "%s=artikkel, %s=teema, %s=vahemik, %s=kuum, %s=muster, %s=märgitud, %s=välju: "
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  "Artiklit pole"
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	"artiklit"
+msgid   "Article undeleted."
+msgstr  "Artikkel taastatud."
 
 #: src/lang.c:67
-msgid	"This is a repost of the following article:"
-msgstr	"See on järgneva artikli uuesti postitamine:"
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	"artikkel"
+#, c-format
+msgid   "Article %4d of %4d"
+msgstr  "Artikkel %4d : %4d"
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	"Artikkel"
+msgid   "articles"
+msgstr  "artiklit"
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	"-- %d %s saadetud --"
+msgid   "This is a repost of the following article:"
+msgstr  "See on järgneva artikli uuesti postitamine:"
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	" o: %s"
+msgid   "article"
+msgstr  "artikkel"
 
 #: src/lang.c:72
-#, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[-- %s/%s, kodeerin %s%s%s, %d rida%s%s --]\n"
+msgid   "Article"
+msgstr  "Artikkel"
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	", kooditabel: "
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  "-- %d %s saadetud --"
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	"%*s[-- Kirjeldus: %s --]\n"
+msgid   " at %s"
+msgstr  " o: %s"
 
 #: src/lang.c:75
 #, c-format
-msgid	"%d Authentication failed"
-msgstr	"%d Autentimine ebaõnnestus"
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  "%*s[-- %s/%s, kodeerin %s%s%s, %d rida%s%s --]\n"
 
 #: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	"Server eeldab autentimist.\n"
+msgid   ", charset: "
+msgstr  ", kooditabel: "
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	"    Palun sisestage parool: "
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  ""
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	"    Palun sisestage kasutajanimi: "
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- Kirjeldus: %s --]\n"
 
 #: src/lang.c:79
 #, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	"Autori tagaspidi otsimine [%s]> "
+msgid   "%d lines"
+msgstr  ""
 
 #: src/lang.c:80
-#, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	"Autori edaspidi otsimine [%s]> "
+msgid   "Attachment Menu"
+msgstr  ""
 
 #: src/lang.c:81
-#, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"Autoriseeritud kasutaja: %s\n"
+#, fuzzy
+msgid   "Attachment Menu Commands"
+msgstr  "Atribuutide menüü käsud"
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"Autoriseerimine ebaõnnestus. Kasutaja: %s\n"
+#, fuzzy
+msgid   "<no name>"
+msgstr  "pole"
 
 #: src/lang.c:83
-#, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	"\n"
-	"%s tellitud"
+#, fuzzy, c-format
+msgid   "Attachment saved successfully. (%s)"
+msgstr  "newsrc fail on edukalt salvestatud.\n"
 
 #: src/lang.c:84
-msgid	"Autosubscribing groups...\n"
-msgstr	"Tellin grupid...\n"
+#, fuzzy, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  "newsrc fail on edukalt salvestatud.\n"
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	"Valin artiklid (kõikide lugemata artiklite vaatamiseks '%s') ..."
+#, fuzzy
+msgid   "Select attachment> "
+msgstr  "Valige artikkel> "
+
+#: src/lang.c:86
+#, fuzzy
+msgid   "Tagged attachment"
+msgstr  "Valige artikkel> "
 
 #: src/lang.c:87
-#, c-format
-msgid	"Active file corrupt - %s"
-msgstr	"Aktiivsete artiklite fail on vigane - %s"
+#, fuzzy, c-format
+msgid   "%d attachments tagged"
+msgstr  "Valige artikkel> "
 
 #: src/lang.c:88
-#, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	"Postitatav artikkel sai vigu või hoiatusi. %s=välju, %s=menüü, %s=toimeta: "
+#, fuzzy
+msgid   "Untagged attachment"
+msgstr  "Valige artikkel> "
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"Tundmatu atribuut: %s"
+msgid   "Attributes Menu Commands"
+msgstr  "Atribuutide menüü käsud"
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"Vigane käsk. Abiinfo saamiseks vajutage '%s'."
+msgid   "%d Authentication failed"
+msgstr  "%d Autentimine ebaõnnestus"
 
 #: src/lang.c:92
-msgid	"Base article"
-msgstr	"Baasartikkel"
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "Serverile %s vastavat NNTP autoriseerimise parooli pole"
 
 #: src/lang.c:93
-msgid	"Base article range"
-msgstr	"Baasartiklite vahemik"
+msgid   "Server expects authentication.\n"
+msgstr  "Server eeldab autentimist.\n"
 
 #: src/lang.c:94
-#, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	"%s: indeks failide uuendamist ei toetata\n"
+msgid   "    Please enter password: "
+msgstr  "    Palun sisestage parool: "
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	"*** Artikli algus ***"
+msgid   "    Please enter username: "
+msgstr  "    Palun sisestage kasutajanimi: "
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  "Autoriseeritud kasutaja: %s\n"
 
 #: src/lang.c:97
 #, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	"Katkestada (kustutada) või asendada artikkel [%%s]? (%s/%s/%s): "
+msgid   "Authorization failed for user: %s\n"
+msgstr  "Autoriseerimine ebaõnnestus. Kasutaja: %s\n"
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	"Katkestan artiklit..."
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  "Autori tagaspidi otsimine [%s]> "
 
 #: src/lang.c:100
 #, c-format
-msgid	"Cannot create %s"
-msgstr	"%s ei õnnestu luua"
+msgid   "Author search forwards [%s]> "
+msgstr  "Autori edaspidi otsimine [%s]> "
 
 #: src/lang.c:101
 #, c-format
-msgid	"Can't find base article %d"
-msgstr	"Ei leis baasartiklit %d"
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  "\n"
+        "%s tellitud"
 
 #: src/lang.c:102
-#, c-format
-msgid	"Can't open %s"
-msgstr	"%s ei saa avada"
+msgid   "Autosubscribing groups...\n"
+msgstr  "Tellin grupid...\n"
 
 #: src/lang.c:103
 #, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	"%s ei saa salvestamiseks avada"
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	"*** Postitamine ei ole lubatud ***"
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  "Valin artiklid (kõikide lugemata artiklite vaatamiseks '%s') ..."
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	"%s ei luba postitada"
+msgid   "Active file corrupt - %s"
+msgstr  "Aktiivsete artiklite fail on vigane - %s"
 
 #: src/lang.c:106
 #, c-format
-msgid	"Can't retrieve %s"
-msgstr	"%s ei õnnestu laadida"
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  "Postitatav artikkel sai vigu või hoiatusi. %s=välju, %s=menüü, %s=toimeta: "
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	"%s on kataloog"
+msgid   "Unrecognized attribute: %s"
+msgstr  "Tundmatu atribuut: %s"
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	"Märgin loetuks"
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	"Märgin %s loetuks..."
+msgid   "Bad command. Type '%s' for help."
+msgstr  "Vigane käsk. Abiinfo saamiseks vajutage '%s'."
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	"Märgi loetuks kõik grupid, millesse on sessiooni jooksul sisenetud?"
+msgid   "Base article"
+msgstr  "Baasartikkel"
 
 #: src/lang.c:111
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	"Teil on siin grupis märgitud teateid - märgin loetuks?"
+msgid   "Base article range"
+msgstr  "Baasartiklite vahemik"
 
 #: src/lang.c:112
 #, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	"%s %d %s %lu sekundiga\n"
+msgid   "%s: Updating of index files not supported\n"
+msgstr  "%s: indeks failide uuendamist ei toetata\n"
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	"Loetud"
+msgid   "*** Beginning of article ***"
+msgstr  "*** Artikli algus ***"
 
 #: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	"Kontrollin valminud artiklit"
-
-#: src/lang.c:115
-msgid	"Checking for new groups... "
-msgstr	"Otsin uusi gruppe... "
+msgid   "*** Beginning of page ***"
+msgstr  "*** Lehe algus ***"
 
 #: src/lang.c:116
-msgid	"Checking for news..."
-msgstr	"Otsin uudiseid..."
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  "Katkestada (kustutada) või asendada artikkel [%%s]? (%s/%s/%s): "
 
 #: src/lang.c:117
-#, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	"Järeltöötle %s=ei, %s=jah, %s=shar, %s=välju: "
+msgid   "Cancelling article..."
+msgstr  "Katkestan artiklit..."
 
 #: src/lang.c:119
-msgid	"ANSI color disabled"
-msgstr	"ANSI värvid on keelatud"
+#, c-format
+msgid   "Cannot create %s"
+msgstr  "%s ei õnnestu luua"
 
 #: src/lang.c:120
-msgid	"ANSI color enabled"
-msgstr	"ANSI värvid on lubatud"
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  "Ei leis baasartiklit %d"
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  "%s ei saa avada"
 
 #: src/lang.c:122
 #, c-format
-msgid	"Command failed: %s"
-msgstr	"Käsk ebaõnnestus: %s"
+msgid   "Couldn't open %s for saving"
+msgstr  "%s ei saa salvestamiseks avada"
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	"Märgin valimata artiklid loetuks?"
+msgid   "*** Posting not allowed ***"
+msgstr  "*** Postitamine ei ole lubatud ***"
 
 #: src/lang.c:124
 #, c-format
-msgid	"Connecting to %s..."
-msgstr	"Loon ühendust serveriga %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	"<CR>"
+msgid   "Posting is not allowed to %s"
+msgstr  "%s ei luba postitada"
 
 #: src/lang.c:126
-msgid	"Creating active file for saved groups...\n"
-msgstr	"Loon salvestatud gruppidele active faili...\n"
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  "%s ei õnnestu laadida"
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s on kataloog"
 
-#: src/lang.c:127
-msgid	"Creating newsrc file...\n"
-msgstr	"Loon newsrc faili...\n"
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"Vaikimisi"
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  "Märgin loetuks"
 
 #: src/lang.c:130
-msgid	"Delete saved files that have been post processed?"
-msgstr	"Kas kustutada salvestatud ja töödeldud failid?"
+#, c-format
+msgid   "Catchup %s..."
+msgstr  "Märgin %s loetuks..."
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	"Kustutan ajutisi faile..."
+msgid   "Catchup all groups entered during this session?"
+msgstr  "Märgi loetuks kõik grupid, millesse on sessiooni jooksul sisenetud?"
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  "Teil on siin grupis märgitud teateid - märgin loetuks?"
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	"*** Artiklid on otsas ***"
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  "%s %d %s %lu sekundiga\n"
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	"*** Artiklid on otsas ***"
+msgid   "Caughtup"
+msgstr  "Loetud"
 
 #: src/lang.c:135
-msgid	"*** End of groups ***"
-msgstr	"*** Grupid on otsas ***"
+msgid   "Check Prepared Article"
+msgstr  "Kontrollin valminud artiklit"
 
 #: src/lang.c:136
-msgid	"*** End of thread ***"
-msgstr	"*** Teema on otsas ***"
+msgid   "Checking for new groups... "
+msgstr  "Otsin uusi gruppe... "
 
 #: src/lang.c:137
-msgid	"Enter limit of articles to get> "
-msgstr	"Sisestage leatavate artiklite piirang> "
+msgid   "Checking for news..."
+msgstr  "Otsin uudiseid..."
 
 #: src/lang.c:138
-msgid	"Enter Message-ID to go to> "
-msgstr	"Sisestage Message-ID> "
-
-#: src/lang.c:139
-msgid	" and enter next unread thread"
-msgstr	" ja siseneda järgmisse lugemata teemasse"
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  "Järeltöötle %s=ei, %s=jah, %s=shar, %s=välju: "
 
 #: src/lang.c:140
-msgid	" and enter next unread group"
-msgstr	" ja siseneda järgmisse lugemata teemasse"
+msgid   "ANSI color disabled"
+msgstr  "ANSI värvid on keelatud"
 
 #: src/lang.c:141
-msgid	"Enter option number> "
-msgstr	"Sisestage omaduse number> "
+msgid   "ANSI color enabled"
+msgstr  "ANSI värvid on lubatud"
 
-#: src/lang.c:142
+#: src/lang.c:143
 #, c-format
-msgid	"Enter range [%s]> "
-msgstr	"Sisestage vahemik [%s]> "
+msgid   "Command failed: %s"
+msgstr  "Käsk ebaõnnestus: %s"
 
-#: src/lang.c:143
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	"\n"
-	"Hoiatus: Kasutati päiserida Approved:.\n"
-
-#: src/lang.c:145
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	"\n"
-	"Viga: Vigane aadress Approved: real.\n"
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  "Märgin valimata artiklid loetuks?"
 
 #: src/lang.c:146
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	"\n"
-	"Viga: Vigane aadress From: real.\n"
-
-#: src/lang.c:147
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	"\n"
-	"Viga: Vigane aadress Reply-To: real.\n"
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  "Loon ühendust serveriga %s..."
 
 #: src/lang.c:148
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	"\n"
-	"Viga: Vigane FQDN Message-ID: real.\n"
+msgid   "<CR>"
+msgstr  "<CR>"
 
 #: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	"%s ei saa lahti lukustada"
-
-#: src/lang.c:151
-#, c-format
-msgid	"Corrupted file %s"
-msgstr	"Vigane fail %s"
+msgid   "Creating active file for saved groups...\n"
+msgstr  "Loon salvestatud gruppidele active faili...\n"
 
-#: src/lang.c:152
-#, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	"Ei saa punkt-lukustada %s - artiklit ei lisatud!"
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  "Loon newsrc faili...\n"
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "Vaikimisi"
 
 #: src/lang.c:153
-#, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	"Ei saa lukustada %s - artiklit ei lisatud!"
+msgid   "Delete saved files that have been post processed?"
+msgstr  "Kas kustutada salvestatud ja töödeldud failid?"
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	"Sisemine viga GNKSA protseduuris - saatke vearaport.\n"
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  "Kustutan ajutisi faile..."
 
 #: src/lang.c:156
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	"Aadressis puudub <.\n"
+msgid   "*** End of article ***"
+msgstr  "*** Artiklid on otsas ***"
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	"Vanas stiilis aadressis puudub vasak ümarsulg.\n"
+msgid   "*** End of articles ***"
+msgstr  "*** Artiklid on otsas ***"
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	"Vanas stiilis aadressis puudub parem ümarsulg.\n"
+#, fuzzy
+msgid   "*** End of attachments ***"
+msgstr  "*** Artiklid on otsas ***"
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	"Postiaadressis puudub at-märk.\n"
+msgid   "*** End of groups ***"
+msgstr  "*** Grupid on otsas ***"
 
 #: src/lang.c:160
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	"Ühekomponendiline FQDN pole lubatud. Lisage oma doomen.\n"
+msgid   "*** End of page ***"
+msgstr  "*** Lehe lõpp ***"
 
 #: src/lang.c:161
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Vigane doomen. Saatke vearaport, kui teie doomen on reaalselt olemas.\n"
-	"Kasutage \"vigase\" aadressi kirjutamisel juurmise doomenina .invalid.\n"
+msgid   "*** End of scopes ***"
+msgstr  "*** Skoopide lõpp ***"
 
 #: src/lang.c:162
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Vigane doomen. Saatke vearaport, kui teie doomen on reaalselt olemas.\n"
-	"Kasutage \"vigase\" aadressi kirjutamisel juurmise doomenina .invalid.\n"
+msgid   "*** End of thread ***"
+msgstr  "*** Teema on otsas ***"
 
 #: src/lang.c:163
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Vigane doomen. Saatke vearaport, kui teie doomen on reaalselt olemas.\n"
-	"Kasutage \"vigase\" aadressi kirjutamisel juurmise doomenina .invalid.\n"
+#, fuzzy
+msgid   "*** End of URLs ***"
+msgstr  "*** Grupid on otsas ***"
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	"FQDN sisaldab lubamatut sümbolit.\n"
+msgid   "Enter limit of articles to get> "
+msgstr  "Sisestage leatavate artiklite piirang> "
 
 #: src/lang.c:165
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	"Null pikkusega FQDN komponent ei ole lubatud.\n"
+msgid   "Enter Message-ID to go to> "
+msgstr  "Sisestage Message-ID> "
 
 #: src/lang.c:166
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	"FQDN komponendi pikkus ületab maksimaalset lubatut (63 sümbolit).\n"
+msgid   " and enter next unread thread"
+msgstr  " ja siseneda järgmisse lugemata teemasse"
 
 #: src/lang.c:167
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	"FQDN komponendi alguses ega lõpus ei või olla kriips.\n"
+msgid   " and enter next unread article"
+msgstr  " ja sisene järgmisse lugemata artiklisse"
 
 #: src/lang.c:168
-msgid	"FQDN component may not start with digit.\n"
-msgstr	"FQDN komponent ei või alata numbriga.\n"
+msgid   " and enter next unread group"
+msgstr  " ja siseneda järgmisse lugemata teemasse"
 
 #: src/lang.c:169
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	"Doomen sisaldab võimatut numbrilist väärtust.\n"
+msgid   "Enter option number> "
+msgstr  "Sisestage omaduse number> "
 
 #: src/lang.c:170
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	"Doomenit on lubatud kasutada ainult privaatvõrgus.\n"
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  "Sisestage vahemik [%s]> "
 
 #: src/lang.c:171
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	"Doomenis puudub vasak sulg.\n"
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	"Aadressil puudub lokaalne osa.\n"
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  "\n"
+        "Hoiatus: Kasutati päiserida Approved:.\n"
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	"Lubamatu sümbol aadressi lokaalses osas.\n"
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  "\n"
+        "Viga: Vigane aadress Approved: real.\n"
 
 #: src/lang.c:174
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	"Null pikkusega lokaalne komponent ei ole lubatud.\n"
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  "\n"
+        "Viga: Vigane aadress From: real.\n"
 
 #: src/lang.c:175
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	"Pärisnimes on lubamatu sümbol.\n"
-	"Kvootimata sõnad aadressides ei tohi sisaldada '!()<>@,;:\\.[]'.\n"
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  "\n"
+        "Viga: Vigane aadress Reply-To: real.\n"
 
 #: src/lang.c:176
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	"Pärisnimes on lubamatu sümbol.\n"
-	"Kvooditud sõnad ei või sisaldada '()<>\\'.\n"
-
-#: src/lang.c:177
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	"Pärisnimes on lubamatu sümbol.\n"
-	"Kodeeritud sõnad parameetris ei või sisaldada '!()<>@,;:\"\\.[]/='.\n"
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  "\n"
+        "Viga: Vigane FQDN Message-ID: real.\n"
 
 #: src/lang.c:178
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	"Vigane reaalses nimes kasutatud kodeeritud sõna süntaks.\n"
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  "%s ei saa lahti lukustada"
 
 #: src/lang.c:179
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	"Pärisnimes on lubamatu sümbol.\n"
-	"Kvootimata sõnad vanas stiilis aadressides ei või sisaldada '()<>\\'.\n"
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  "Ei saa punkt-lukustada %s - artiklit ei lisatud!"
 
 #: src/lang.c:180
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	"Pärisnimes on lubamatu sümbol.\n"
-	"Kontrollsümbolid ja kodeerimata 8bit sümbolid väärtusega > 127 ei ole "
-	"lubatud.\n"
-
-#: src/lang.c:181
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	"\n"
-	"Viga: peale päiseridu pole tühja rida.\n"
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  "Ei saa lukustada %s - artiklit ei lisatud!"
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	"\n"
-	"Viga: Postitus sisaldab mitte-ASCII sümboleid, aga MM_CHARSET väärtuseks\n"
-	"      on US_ASCII - palun seadke MM_CHARSET väärtus oma keelele sobivaks\n"
-	"      kasutades seadete M)enüüd või toimetades tinrc faili.\n"
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  "Vigane fail %s"
+
+#: src/lang.c:185
+#, fuzzy
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  "\n"
+        "Viga: Followup-To real on rohkem kui üks grupp!\n"
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  "Sisemine viga GNKSA protseduuris - saatke vearaport.\n"
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  "Aadressis puudub <.\n"
 
 #: src/lang.c:188
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	"\n"
-	"Viga: Postitus sisaldab mitte-ASCII sümboleid, aga artiklite kodeerimisel\n"
-	"      kasutatavaks MIME kodeeringuks on valitud \"7bit\" - palun muutke see\n"
-	"      \"8bit\" või \"quoted-printable\", vastavalt,  milline meetod on teil\n"
-	"      enam levinud.  Muuta saate kasutades seadete M)enüüd või toimetades\n"
-	"      tinrc faili.\n"
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  "Vanas stiilis aadressis puudub vasak ümarsulg.\n"
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  "Vanas stiilis aadressis puudub parem ümarsulg.\n"
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  "Postiaadressis puudub at-märk.\n"
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  "Ühekomponendiline FQDN pole lubatud. Lisage oma doomen.\n"
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Vigane doomen. Saatke vearaport, kui teie doomen on reaalselt olemas.\n"
+        "Kasutage \"vigase\" aadressi kirjutamisel juurmise doomenina .invalid.\n"
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Vigane doomen. Saatke vearaport, kui teie doomen on reaalselt olemas.\n"
+        "Kasutage \"vigase\" aadressi kirjutamisel juurmise doomenina .invalid.\n"
 
 #: src/lang.c:194
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	"\n"
-	"Viga: Artikkel algab päise asemel tühja reaga\n"
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Vigane doomen. Saatke vearaport, kui teie doomen on reaalselt olemas.\n"
+        "Kasutage \"vigase\" aadressi kirjutamisel juurmise doomenina .invalid.\n"
 
 #: src/lang.c:195
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	"\n"
-	"Viga: Päisereal %d puudub päise nime järel koolon:\n"
-	"%s\n"
+msgid   "Illegal character in FQDN.\n"
+msgstr  "FQDN sisaldab lubamatut sümbolit.\n"
 
 #: src/lang.c:196
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	"\n"
-	"Viga: \"%s:\" rida on tühi.\n"
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  "Null pikkusega FQDN komponent ei ole lubatud.\n"
 
 #: src/lang.c:197
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	"\n"
-	"Viga: Artikli päises puudub rida \"%s:\".\n"
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  "FQDN komponendi pikkus ületab maksimaalset lubatut (63 sümbolit).\n"
 
 #: src/lang.c:198
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	"\n"
-	"Viga: Päisel real %d puudub kooloni järel tühik:\n"
-	"%s\n"
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  "FQDN komponendi alguses ega lõpus ei või olla kriips.\n"
 
 #: src/lang.c:199
-#, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	"\n"
-	"Viga: Päises on mitu (%d) \"%s:\" rida.\n"
+msgid   "FQDN component may not start with digit.\n"
+msgstr  "FQDN komponent ei või alata numbriga.\n"
 
 #: src/lang.c:200
-#, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	"Ebaturvalised õigused failil %s (%o)"
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  "Doomen sisaldab võimatut numbrilist väärtust.\n"
 
 #: src/lang.c:201
-#, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	"Vigane vastus GROUP käsule, %s"
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  "Doomenit on lubatud kasutada ainult privaatvõrgus.\n"
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  "Doomenis puudub vasak sulg.\n"
 
 #: src/lang.c:203
-#, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	"MIME parsimise viga: Ootamatu artikli %s/%s lõpp"
+msgid   "Missing localpart of mail address.\n"
+msgstr  "Aadressil puudub lokaalne osa.\n"
 
 #: src/lang.c:204
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	"MIME parsimise viga: Algas eraldaja aga loen alles päiseid"
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  "Lubamatu sümbol aadressi lokaalses osas.\n"
 
 #: src/lang.c:205
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	"Ei õnnestu saada (täis) doomeninime!"
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  "Null pikkusega lokaalne komponent ei ole lubatud.\n"
 
 #: src/lang.c:206
-#, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"Puuduvad õigused siseneda %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  "Pärisnimes on lubamatu sümbol.\n"
+        "Kvootimata sõnad aadressides ei tohi sisaldada '!()<>@,;:\\.[]'.\n"
 
 #: src/lang.c:207
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	"\n"
-	"Viga: From: rida puudub.\n"
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  "Pärisnimes on lubamatu sümbol.\n"
+        "Kvooditud sõnad ei või sisaldada '()<>\\'.\n"
 
 #: src/lang.c:208
-#, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"%s lugemiseks pole õiguseid\n"
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  "Pärisnimes on lubamatu sümbol.\n"
+        "Kodeeritud sõnad parameetris ei või sisaldada '!()<>@,;:\"\\.[]/='.\n"
 
 #: src/lang.c:209
-#, c-format
-msgid	"File %s does not exist\n"
-msgstr	"Faili %s pole\n"
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  "Vigane reaalses nimes kasutatud kodeeritud sõna süntaks.\n"
 
 #: src/lang.c:210
-#, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"%s kirjutamiseks pole õiguseid\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  "Pärisnimes on lubamatu sümbol.\n"
+        "Kvootimata sõnad vanas stiilis aadressides ei või sisaldada '()<>\\'.\n"
 
 #: src/lang.c:211
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	"Ei leia kasutate kohta infot (/etc/passwd puudub?)"
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  "Pärisnimes on lubamatu sümbol.\n"
+        "Kontrollsümbolid ja kodeerimata 8bit sümbolid väärtusega > 127 ei ole "
+        "lubatud.\n"
 
 #: src/lang.c:212
-msgid	"errors"
-msgstr	"viga"
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  "\n"
+        "Viga: peale päiseridu pole tühja rida.\n"
 
 #: src/lang.c:213
-#, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	"\n"
-	"Viga real %d: \"Sender:\" päiserida pole lubatud (see lisatakse teie eest)\n"
-
-#: src/lang.c:214
-#, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	"Serveril pole failis %s näidatud gruppe"
+#, fuzzy, c-format
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  "\n"
+        "Viga: Vigane vormindatud %s.\n"
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
-msgid	"error"
-msgstr	"viga"
-
-#: src/lang.c:216
-msgid	"Unknown display level"
-msgstr	"Tundmatu ektaani tase"
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	"<ESC>"
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	"Lõpetan..."
-
-#: src/lang.c:219
-msgid	"leaving external mail-reader"
-msgstr	"jätan välise kirjade lugeja"
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  "\n"
+        "Viga: Postitus sisaldab mitte-ASCII sümboleid, aga MM_CHARSET väärtuseks\n"
+        "      on US_ASCII - palun seadke MM_CHARSET väärtus oma keelele sobivaks\n"
+        "      kasutades seadete M)enüüd või toimetades tinrc faili.\n"
 
 #: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  "\n"
+        "Viga: Postitus sisaldab mitte-ASCII sümboleid, aga artiklite kodeerimisel\n"
+        "      kasutatavaks MIME kodeeringuks on valitud \"7bit\" - palun muutke see\n"
+        "      \"8bit\" või \"quoted-printable\", vastavalt,  milline meetod on teil\n"
+        "      enam levinud.  Muuta saate kasutades seadete M)enüüd või toimetades\n"
+        "      tinrc faili.\n"
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  "\n"
+        "Viga: Artikkel algab päise asemel tühja reaga\n"
+
+#: src/lang.c:227
 #, c-format
-msgid	"Extracting %s..."
-msgstr	"Loon %s..."
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  "\n"
+        "Viga: Päisereal %d puudub päise nime järel koolon:\n"
+        "%s\n"
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	"Viga faili %s kirjutamisel. Failisüsteem on täis? Faili eelmine olek "
-	"taastatud."
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  "\n"
+        "Viga: \"%s:\" rida on tühi.\n"
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	"Failist %s ei õnnestu varukoopiat luua. Failisüsteem on täis?"
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  "\n"
+        "Viga: Artikli päises puudub rida \"%s:\".\n"
 
-#: src/lang.c:224
+#: src/lang.c:230
 #, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	"Filtreerin globaalseid reegleid (%d/%d)..."
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  "\n"
+        "Viga: %s sisaldab mitte 7bit sümboleid.\n"
 
-#: src/lang.c:225
-msgid	"Rule created by: "
-msgstr	"Reegli looja: "
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  "\n"
+        "Viga: Päisel real %d puudub kooloni järel tühik:\n"
+        "%s\n"
 
-#: src/lang.c:226
+#: src/lang.c:232
 #, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"Sisestage muster [%s]> "
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  "\n"
+        "Viga: Päises on mitu (%d) \"%s:\" rida.\n"
 
-#: src/lang.c:227
+#: src/lang.c:233
 #, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	"\n"
-	"Te soovisite vastused artiklile %s:\n"
+msgid   "Insecure permissions of %s (%o)"
+msgstr  "Ebaturvalised õigused failil %s (%o)"
 
-#: src/lang.c:228
+#: src/lang.c:235
 #, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	"  %s\t Vastused saadetakse teile kirjaga.\n"
+msgid   "Invalid response to GROUP command, %s"
+msgstr  "Vigane vastus GROUP käsule, %s"
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	"-- edastatud teade --\n"
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  "MIME parsimise viga: Ootamatu artikli %s/%s lõpp"
 
-#: src/lang.c:230
-msgid	"-- end of forwarded message --\n"
-msgstr	"-- edastatud teate lõpp --\n"
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  "MIME parsimise viga: Algas eraldaja aga loen alles päiseid"
 
-#: src/lang.c:231
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	"# Vorming:\n"
-	"#   comment=SÕNE      Mittekohustuslik. Lubatud on mitu rida. Kommentaarid\n"
-	"#                     peavad olema reegli alguses või nad tõstetakse "
-	"järgmise\n"
-	"#                     reegli juurde. '#' ei ole kommentaari jaoks lubatud!\n"
-	"#   group=SÕNE        Kohustuslik. Gruppide loend (n. comp.*,!*sources*).\n"
-	"#   case=NUM          Kohustuslik. Võrdle=0 / ignoreeri=1 filtreerimisel\n"
-	"#                     suur-väiketähti.\n"
-	"#   score=NUMBER|SÕNE Kohustuslik. Omistatav kaal. Kas:\n"
-	"#     score=NUMBER      number (nt. 70). Või:\n"
-	"#     score=SÕNE        üks kahest võtmesõnast: 'hot' või 'kill'.\n"
-	"#   subj=SÕNE         Mittekohustuslik. Subject: rida (n. Kuidas olla tark).\n"
-	"#   from=SÕNE         Mittekohustuslik. From: rida (n. *Jaan Tamm*)\n"
-	"#   msgid=SÕNE        Mittekohustuslik. Message-ID: rida (n. <123@ether."
-	"net>)\n"
-	"#                     koos kõikide viidetega.\n"
-	"#   msgid_last=SÕNE   Mittekohustuslik. Nagu ülal, aga ainult viimane viide.\n"
-	"#   msgid_only=SÕNE   Mittekohustuslik. Nagu ülal, aga viideteta.\n"
-	"#   refs_only=SÕNE    Mittekohustuslik. References: rida (n. <123@ether."
-	"net>)\n"
-	"#                     ilma Message-ID:\n"
-	"#   lines=[<>]?NUMBER Mittekohustuslik. Lines: rida. '<' või '>' pole\n"
-	"#                     kohustuslikud.\n"
-	"#   gnksa=[<>]?NUMBER Mittekohustuslik. GNKSA parse_from() tagastatud kood.\n"
-	"#                     '<' või '>' pole kohustuslikud.\n"
-	"#   xref=MUSTER       Mittekohustuslik. Surmamise muster (n. alt.flame*)\n"
-	"#   time=NUMBER       Mittekohustuslik. Reegli aegumine time_t väärtusena\n"
-	"#\n"
+#: src/lang.c:242
+#, fuzzy
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  "\n"
+        "Viga: \"poster\" ei ole lubatud grupp!\n"
 
-#: src/lang.c:252
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  "Ei õnnestu saada (täis) doomeninime!"
+
+#: src/lang.c:244
+#, c-format
+msgid   "No permissions to go into %s\n"
+msgstr  "Puuduvad õigused siseneda %s\n"
+
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  "\n"
+        "Viga: From: rida puudub.\n"
+
+#: src/lang.c:248
 #, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	"Reegli kaal        (vaikimisi=%d): "
+msgid   "No read permissions for %s\n"
+msgstr  "%s lugemiseks pole õiguseid\n"
 
-#: src/lang.c:253
+#: src/lang.c:249
 #, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	"Sisestage reegli kaal (vahemik on 0 < kaal <= %d)"
+msgid   "File %s does not exist\n"
+msgstr  "Faili %s pole\n"
 
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	"Täis"
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "%s kirjutamiseks pole õiguseid\n"
+
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  "Ei leia kasutate kohta infot (/etc/passwd puudub?)"
+
+#: src/lang.c:252
+msgid   "errors"
+msgstr  "viga"
 
-#: src/lang.c:255
-msgid	"Comment (optional)  : "
-msgstr	"Kommentaar (vaba)   : "
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  "\n"
+        "Viga real %d: \"Sender:\" päiserida pole lubatud (see lisatakse teie eest)\n"
 
 #: src/lang.c:256
-msgid	"Apply pattern to    : "
-msgstr	"Rakenda mustrit     : "
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  "Serveril pole failis %s näidatud gruppe"
 
 #: src/lang.c:257
-msgid	"From: line (ignore case)      "
-msgstr	"From: rida (tõstutundetu)   "
+msgid   "error"
+msgstr  "viga"
 
 #: src/lang.c:258
-msgid	"From: line (case sensitive)   "
-msgstr	"From: rida (tõstutundlik)   "
+msgid   "Unknown display level"
+msgstr  "Tundmatu ektaani tase"
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  "<ESC>"
 
 #: src/lang.c:260
-#, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s: Tundmatu host.\n"
+msgid   "Exiting..."
+msgstr  "Lõpetan..."
 
 #: src/lang.c:261
-msgid	"global "
-msgstr	"globaalset "
+msgid   "leaving external mail-reader"
+msgstr  "jätan välise kirjade lugeja"
 
 #: src/lang.c:262
 #, c-format
-msgid	"Please use %.100s instead"
-msgstr	"Kasutage selle asemel palun %.100s"
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	"gruppi %s pole"
+msgid   "Extracting %s..."
+msgstr  "Loon %s..."
 
 #: src/lang.c:264
 #, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"Grupp %s on modereeritav. Jätkan?"
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  "Viga faili %s kirjutamisel. Failisüsteem on täis? Faili eelmine olek "
+        "taastatud."
 
 #: src/lang.c:265
-msgid	"groups"
-msgstr	"gruppi"
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  "Failist %s ei õnnestu varukoopiat luua. Failisüsteem on täis?"
 
 #: src/lang.c:266
 #, c-format
-msgid	"Rereading %s..."
-msgstr	"Loen %s uuesti..."
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  "Filtreerin globaalseid reegleid (%d/%d)..."
 
 #: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	"Ülemise taseme käsud"
+msgid   "Rule created by: "
+msgstr  "Reegli looja: "
 
 #: src/lang.c:268
-msgid	"Group Selection"
-msgstr	"Grupi valik"
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "Sisestage muster [%s]> "
 
 #: src/lang.c:269
-msgid	"group"
-msgstr	"grupp"
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  "\n"
+        "Te soovisite vastused artiklile %s:\n"
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  "  %s\t Vastused saadetakse teile kirjaga.\n"
 
 #: src/lang.c:271
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	"Üks või enam kommentaari rida. <CR> lisamiseks või tühja rea jätkamiseks."
+msgid   "-- forwarded message --\n"
+msgstr  "-- edastatud teade --\n"
 
 #: src/lang.c:272
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"From: rida filtrite faili. <TÜHIK> lülitab, <CR> seab."
+msgid   "-- end of forwarded message --\n"
+msgstr  "-- edastatud teate lõpp --\n"
 
 #: src/lang.c:273
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	"Filtraaritavate artiklite ridu. < on vähem, > on rohkem, = on võrdne."
-
-#: src/lang.c:274
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Message-ID: rida filtri faili lisamiseks. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:275
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Subject: rida filtri faili lisamiseks. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:276
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	"Sisestage filtreerimiseks tekstimuster, kui Subject: ja From: ei ole piisav."
-
-#: src/lang.c:277
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	"Valige, kus tekstimustrit rakendada. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:278
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	"Sisestatud filtri aegumisaeg päevades. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:279
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Kasuta surmamist jooksval/kõikidel gruppidel. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:280
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Kasuta valikut jooksval/kõikidel gruppidel. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:281
-msgid	"kill an article via a menu"
-msgstr	"artiklite surmamise menüü"
-
-#: src/lang.c:282
-msgid	"auto-select (hot) an article via a menu"
-msgstr	"(kuuma) artikli automaatse valiku menüü"
-
-#: src/lang.c:283
-msgid	"Browse URLs in article"
-msgstr	"Brausi artiklis olevaid URLe"
-
-#: src/lang.c:284
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	"0 - 9\t  näita jooksva teema numbri järgi valitud artiklit"
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	"katkesta (kustuta) või asenda (kirjuta üle) jooksev artikkel"
-
-#: src/lang.c:286
-msgid	"edit article (mail-groups only)"
-msgstr	"toimeta artiklit (ainult kirjade-grupid)"
-
-#: src/lang.c:287
-msgid	"display first article in current thread"
-msgstr	"näita jooksva teema esimest artiklit"
-
-#: src/lang.c:288
-msgid	"display first page of article"
-msgstr	"näita artikli esimest lehekülge"
-
-#: src/lang.c:289
-msgid	"post followup to current article"
-msgstr	"postita vastus jooksvale artiklile"
-
-#: src/lang.c:290
-msgid	"post followup (don't copy text) to current article"
-msgstr	"postita vastus (kopeeri teksti) jooksvale artiklile"
-
-#: src/lang.c:291
-msgid	"post followup to current article quoting complete headers"
-msgstr	"postita vastus jooksvale artiklile, tsiteerides kõiki päiseid"
-
-#: src/lang.c:292
-msgid	"display last article in current thread"
-msgstr	"näita jooksva teema viimast artiklit"
-
-#: src/lang.c:293
-msgid	"display last page of article"
-msgstr	"näita artikli viimast lehekülge"
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  "# Vorming:\n"
+        "#   comment=SÕNE      Mittekohustuslik. Lubatud on mitu rida. Kommentaarid\n"
+        "#                     peavad olema reegli alguses või nad tõstetakse "
+        "järgmise\n"
+        "#                     reegli juurde. '#' ei ole kommentaari jaoks lubatud!\n"
+        "#   group=SÕNE        Kohustuslik. Gruppide loend (n. comp.*,!*sources*).\n"
+        "#   case=NUM          Kohustuslik. Võrdle=0 / ignoreeri=1 filtreerimisel\n"
+        "#                     suur-väiketähti.\n"
+        "#   score=NUMBER|SÕNE Kohustuslik. Omistatav kaal. Kas:\n"
+        "#     score=NUMBER      number (nt. 70). Või:\n"
+        "#     score=SÕNE        üks kahest võtmesõnast: 'hot' või 'kill'.\n"
+        "#   subj=SÕNE         Mittekohustuslik. Subject: rida (n. Kuidas olla tark).\n"
+        "#   from=SÕNE         Mittekohustuslik. From: rida (n. *Jaan Tamm*)\n"
+        "#   msgid=SÕNE        Mittekohustuslik. Message-ID: rida (n. <123@ether."
+        "net>)\n"
+        "#                     koos kõikide viidetega.\n"
+        "#   msgid_last=SÕNE   Mittekohustuslik. Nagu ülal, aga ainult viimane viide.\n"
+        "#   msgid_only=SÕNE   Mittekohustuslik. Nagu ülal, aga viideteta.\n"
+        "#   refs_only=SÕNE    Mittekohustuslik. References: rida (n. <123@ether."
+        "net>)\n"
+        "#                     ilma Message-ID:\n"
+        "#   lines=[<>]?NUMBER Mittekohustuslik. Lines: rida. '<' või '>' pole\n"
+        "#                     kohustuslikud.\n"
+        "#   gnksa=[<>]?NUMBER Mittekohustuslik. GNKSA parse_from() tagastatud kood.\n"
+        "#                     '<' või '>' pole kohustuslikud.\n"
+        "#   xref=MUSTER       Mittekohustuslik. Surmamise muster (n. alt.flame*)\n"
+        "#   time=NUMBER       Mittekohustuslik. Reegli aegumine time_t väärtusena\n"
+        "#\n"
 
 #: src/lang.c:294
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	"märgi teema loetuks ja liigu järgmisele lugemata teemale"
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  "Reegli kaal        (vaikimisi=%d): "
 
 #: src/lang.c:295
-msgid	"display next article"
-msgstr	"näita järgmist artiklit"
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  "Sisestage reegli kaal (vahemik on 0 < kaal <= %d)"
 
+#. SCORE_MAX
 #: src/lang.c:296
-msgid	"display first article in next thread"
-msgstr	"näita järgmise teema esimest artiklit"
+msgid   "Full"
+msgstr  "Täis"
 
 #: src/lang.c:297
-msgid	"display next unread article"
-msgstr	"näita järgmist lugemata artiklit"
+msgid   "Comment (optional)  : "
+msgstr  "Kommentaar (vaba)   : "
 
 #: src/lang.c:298
-msgid	"go to the article that this one followed up"
-msgstr	"mine artiklile, millele see artikkel järgneb"
+msgid   "Apply pattern to    : "
+msgstr  "Rakenda mustrit     : "
 
 #: src/lang.c:299
-msgid	"display previous article"
-msgstr	"näita eelmist artiklit"
+msgid   "From: line (ignore case)      "
+msgstr  "From: rida (tõstutundetu)   "
 
 #: src/lang.c:300
-msgid	"display previous unread article"
-msgstr	"näita eelmist lugemata artiklit"
-
-#: src/lang.c:301
-msgid	"quickly kill an article using defaults"
-msgstr	"surma kiiresti artikkel, kasutades vaikeväärtusi"
+msgid   "From: line (case sensitive)   "
+msgstr  "From: rida (tõstutundlik)   "
 
 #: src/lang.c:302
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	"vali kiiresti vaikeväärtusi kasutades (kuumad) artiklid"
-
-#: src/lang.c:303
-msgid	"return to group selection level"
-msgstr	"tagasi gruppide valikusse"
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s: Tundmatu host.\n"
 
 #: src/lang.c:304
-msgid	"reply through mail to author"
-msgstr	"vasta autorile kirjaga"
+msgid   "global "
+msgstr  "globaalset "
 
 #: src/lang.c:305
-msgid	"reply through mail (don't copy text) to author"
-msgstr	"vasta autorile kirjaga (teksti ei kopeerita)"
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  "Kasutage selle asemel palun %.100s"
 
 #: src/lang.c:306
-msgid	"reply through mail to author quoting complete headers"
-msgstr	"vasta autorile kirjaga, tsiteerides kõiki päiseid"
+#, c-format
+msgid   "%s is bogus"
+msgstr  "gruppi %s pole"
 
 #: src/lang.c:307
-msgid	"repost chosen article to another group"
-msgstr	"postita valitud artikkel teise gruppi"
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  "Grupp %s on modereeritav. Jätkan?"
 
 #: src/lang.c:308
-msgid	"search backwards within this article"
-msgstr	"otsi artiklis tagaspidi"
+msgid   "groups"
+msgstr  "gruppi"
 
 #: src/lang.c:309
-msgid	"search forwards within this article"
-msgstr	"otsi artiklis edaspidi"
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "Loen %s uuesti..."
 
 #: src/lang.c:310
-msgid	"show article in raw-mode (including all headers)"
-msgstr	"näita kogu artiklit (koos päistega)"
+msgid   "Top Level Commands"
+msgstr  "Ülemise taseme käsud"
 
 #: src/lang.c:311
-msgid	"skip next block of included text"
-msgstr	"järgmisele tekstiblokile"
+msgid   "Group Selection"
+msgstr  "Grupi valik"
 
 #: src/lang.c:312
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	"lülita lehevahetusega (^L) peidetud osade näitamist"
-
-#: src/lang.c:313
-msgid	"toggle word highlighting on/off"
-msgstr	"lülita sõnade märkimine sisse/välja"
+msgid   "group"
+msgstr  "grupp"
 
 #: src/lang.c:314
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	"lülita jooksva artikli ROT-13 (lihtne dekodeering) kodeering"
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  "Üks või enam kommentaari rida. <CR> lisamiseks või tühja rea jätkamiseks."
 
 #: src/lang.c:315
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	"lülita tabulaatori laius 4 <-> 8"
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "From: rida filtrite faili. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:316
-msgid	"toggle german TeX style decoding for current article"
-msgstr	"lülita jooksva artikli saksa TeX stiilis dekodeerimine"
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  "Filtraaritavate artiklite ridu. < on vähem, > on rohkem, = on võrdne."
 
 #: src/lang.c:317
-msgid	"toggle display of uuencoded sections"
-msgstr	"lülita uuenkodeeritud osade näitamine"
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Message-ID: rida filtri faili lisamiseks. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:318
-msgid	"View/save multimedia attachments"
-msgstr	"Vaata/salvesta multimeedia lisasid"
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Subject: rida filtri faili lisamiseks. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:319
-#, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"saatke vearaport või kommentaar aadressile %s"
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  "Sisestage filtreerimiseks tekstimuster, kui Subject: ja From: ei ole piisav."
 
 #: src/lang.c:320
-msgid	"choose range of articles to be affected by next command"
-msgstr	"valige järgmise käsuga töödeldavate artiklite vahemik"
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  "Valige, kus tekstimustrit rakendada. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:321
-msgid	"escape from command prompt"
-msgstr	"pääs käsuviibalt"
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  "Sisestatud filtri aegumisaeg päevades. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:322
-msgid	"edit filter file"
-msgstr	"toimeta filtrite faili"
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Kasuta surmamist jooksval/kõikidel gruppidel. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:323
-msgid	"get help"
-msgstr	"anna abiinfot"
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Kasuta valikut jooksval/kõikidel gruppidel. <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:324
-msgid	"display last article viewed"
-msgstr	"näita viimasena vaadatud artiklit"
+msgid   "kill an article via a menu"
+msgstr  "artiklite surmamise menüü"
 
 #: src/lang.c:325
-msgid	"down one line"
-msgstr	"üks rida alla"
+msgid   "auto-select (hot) an article via a menu"
+msgstr  "(kuuma) artikli automaatse valiku menüü"
 
 #: src/lang.c:326
-msgid	"up one line"
-msgstr	"üles üks rida"
+msgid   "Browse URLs in article"
+msgstr  "Brausi artiklis olevaid URLe"
 
 #: src/lang.c:327
-msgid	"go to article chosen by Message-ID"
-msgstr	"liigu Message-ID poolt määratud artiklile"
-
-#: src/lang.c:328
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	"saada artikkel/teema/kuum/muster/märgitud kellelegi"
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  "0 - 9\t  näita jooksva teema numbri järgi valitud artiklit"
 
 #: src/lang.c:329
-msgid	"menu of configurable options"
-msgstr	"seadete menüü"
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  "katkesta (kustuta) või asenda (kirjuta üle) jooksev artikkel"
 
 #: src/lang.c:330
-msgid	"down one page"
-msgstr	"alla üks lehekülg"
+msgid   "post followup to current article"
+msgstr  "postita vastus jooksvale artiklile"
 
 #: src/lang.c:331
-msgid	"up one page"
-msgstr	"üles üks lehekülg"
+msgid   "post followup (don't copy text) to current article"
+msgstr  "postita vastus (kopeeri teksti) jooksvale artiklile"
 
 #: src/lang.c:332
-msgid	"post (write) article to current group"
-msgstr	"postita (kirjuta) artikkel jooksvasse gruppi"
+msgid   "post followup to current article quoting complete headers"
+msgstr  "postita vastus jooksvale artiklile, tsiteerides kõiki päiseid"
 
 #: src/lang.c:333
-msgid	"post postponed articles"
-msgstr	"postita ootel artiklid"
-
-#: src/lang.c:334
-msgid	"list articles posted by you (from posted file)"
-msgstr	"näita teie poolt postitatud artikleid (failist posted)"
+msgid   "repost chosen article to another group"
+msgstr  "postita valitud artikkel teise gruppi"
 
 #: src/lang.c:335
-msgid	"return to previous menu"
-msgstr	"tagasi eelmisse menüüsse"
+msgid   "edit article (mail-groups only)"
+msgstr  "toimeta artiklit (ainult kirjade-grupid)"
 
 #: src/lang.c:336
-msgid	"quit tin immediately"
-msgstr	"välju viivitamata tinist"
+msgid   "display first article in current thread"
+msgstr  "näita jooksva teema esimest artiklit"
 
 #: src/lang.c:337
-msgid	"redraw page"
-msgstr	"värskenda lehekülge"
+msgid   "display first page of article"
+msgstr  "näita artikli esimest lehekülge"
 
 #: src/lang.c:338
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	"salvesta artikkel/teema/kuum/muster/märgitud faili"
+msgid   "display last article in current thread"
+msgstr  "näita jooksva teema viimast artiklit"
 
 #: src/lang.c:339
-msgid	"save marked articles automatically without user prompts"
-msgstr	"salvesta märgitud artiklid automaatselt, kasutajalt küsimata"
+msgid   "display last page of article"
+msgstr  "näita artikli viimast lehekülge"
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	"keri ekraani rida alla"
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  "märgi teema loetuks ja liigu järgmisele lugemata teemale"
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	"keri ekraani rida üles"
+msgid   "display next article"
+msgstr  "näita järgmist artiklit"
 
 #: src/lang.c:342
-msgid	"search for articles by author backwards"
-msgstr	"otsi artikleid autori järgi tagaspidi"
+msgid   "display first article in next thread"
+msgstr  "näita järgmise teema esimest artiklit"
 
 #: src/lang.c:343
-msgid	"search for articles by author forwards"
-msgstr	"otsi artikleid autori järgi edaspidi"
+msgid   "display next unread article"
+msgstr  "näita järgmist lugemata artiklit"
 
 #: src/lang.c:344
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	"otsi antud teksti artiklitest (see võib võtta aega)"
+msgid   "go to the article that this one followed up"
+msgstr  "mine artiklile, millele see artikkel järgneb"
 
 #: src/lang.c:345
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	" \t  (otsing on tõstutundetu ja käib üle kõikide artiklite)"
+msgid   "display previous article"
+msgstr  "näita eelmist artiklit"
 
 #: src/lang.c:346
-msgid	"search for articles by Subject line backwards"
-msgstr	"otsi artiklit teema järgi tagaspidi"
+msgid   "display previous unread article"
+msgstr  "näita eelmist lugemata artiklit"
 
 #: src/lang.c:347
-msgid	"search for articles by Subject line forwards"
-msgstr	"otsi artiklit teema järgi edaspidi"
+msgid   "quickly kill an article using defaults"
+msgstr  "surma kiiresti artikkel, kasutades vaikeväärtusi"
 
 #: src/lang.c:348
-msgid	"repeat last search"
-msgstr	"korda eelmist otsingut"
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  "vali kiiresti vaikeväärtusi kasutades (kuumad) artiklid"
 
 #: src/lang.c:349
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	"märgi jooksev artikkel, et postitada/saata/trükkida/salvestada/torusse"
+msgid   "return to group selection level"
+msgstr  "tagasi gruppide valikusse"
 
 #: src/lang.c:350
-msgid	"toggle info message in last line (subject/description)"
-msgstr	"lülita viimase rea infoteadet (teema/kirjeldus)"
+msgid   "reply through mail to author"
+msgstr  "vasta autorile kirjaga"
 
 #: src/lang.c:351
-msgid	"toggle inverse video"
-msgstr	"lülita pööratud video"
+msgid   "reply through mail (don't copy text) to author"
+msgstr  "vasta autorile kirjaga (teksti ei kopeerita)"
 
 #: src/lang.c:352
-msgid	"toggle mini help menu display"
-msgstr	"abiinfo lülita ekraanil miniabi menüüd"
+msgid   "reply through mail to author quoting complete headers"
+msgstr  "vasta autorile kirjaga, tsiteerides kõiki päiseid"
 
 #: src/lang.c:353
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	"vali näitamiseks autori aadress, pärisnimi, mõlemad või mitte midagi"
+msgid   "search backwards within this article"
+msgstr  "otsi artiklis tagaspidi"
 
 #: src/lang.c:354
-msgid	"show version information"
-msgstr	"esita info versioonist"
+msgid   "search forwards within this article"
+msgstr  "otsi artiklis edaspidi"
 
 #: src/lang.c:355
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	"märgi artiklid loetuks ja välju gruppide valiku menüüsse"
+msgid   "show article in raw-mode (including all headers)"
+msgstr  "näita kogu artiklit (koos päistega)"
 
 #: src/lang.c:356
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	"märgi artiklid loetuks, sisene järgmisse lugemata artiklitega gruppi"
+msgid   "skip next block of included text"
+msgstr  "järgmisele tekstiblokile"
 
 #: src/lang.c:357
-msgid	"choose first thread in list"
-msgstr	"vali loendist esimene teema"
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  "lülita lehevahetusega (^L) peidetud osade näitamist"
 
 #: src/lang.c:358
-msgid	"choose last thread in list"
-msgstr	"vali loendist viimane teema"
+#, fuzzy
+msgid   "toggle display of all headers"
+msgstr  "lülita ekraanil kõik/lugemata artiklid"
 
 #: src/lang.c:359
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	"artiklite loend jooksvas teemas (esita teema alam-menüü)"
+msgid   "toggle word highlighting on/off"
+msgstr  "lülita sõnade märkimine sisse/välja"
 
 #: src/lang.c:360
-msgid	"mark article as unread"
-msgstr	"märgi artikkel loetuks"
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  "lülita jooksva artikli ROT-13 (lihtne dekodeering) kodeering"
 
 #: src/lang.c:361
-msgid	"mark current thread or tagged threads as read"
-msgstr	"märgi jooksev teema või märgitud teemad loetuks"
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  "lülita tabulaatori laius 4 <-> 8"
 
 #: src/lang.c:362
-msgid	"mark thread as unread"
-msgstr	"märgi teema loetuks"
+msgid   "toggle german TeX style decoding for current article"
+msgstr  "lülita jooksva artikli saksa TeX stiilis dekodeerimine"
 
 #: src/lang.c:363
-msgid	"toggle display of all/selected articles"
-msgstr	"lülita ekraanile kõik/valitud artiklid"
+msgid   "toggle display of uuencoded sections"
+msgstr  "lülita uuenkodeeritud osade näitamine"
 
 #: src/lang.c:364
-msgid	"display next group"
-msgstr	"näita järgmist gruppi"
+#, fuzzy
+msgid   "View/pipe/save multimedia attachments"
+msgstr  "Vaata/salvesta multimeedia lisasid"
 
 #: src/lang.c:365
-msgid	"display previous group"
-msgstr	"näita eelmist gruppi"
+#, fuzzy
+msgid   "choose first attachment in list"
+msgstr  "vali loendis esimene artikkel"
 
 #: src/lang.c:366
-msgid	"toggle all selections (all articles)"
-msgstr	"lülita kõiki valikuid (kõiki artikleid)"
+#, fuzzy
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  vali numbri järgi artikkel"
 
 #: src/lang.c:367
-msgid	"select group (make \"hot\")"
-msgstr	"vali grupp (muuda \"kuumaks\")"
-
-#: src/lang.c:368
-msgid	"select thread"
-msgstr	"vali teema"
+#, fuzzy
+msgid   "choose last attachment in list"
+msgstr  "vali loendis viimane artikkel"
 
 #: src/lang.c:369
-msgid	"select threads if at least one unread article is selected"
-msgstr	"vali teemad, kui on valitud vähemalt üks lugemata artikkel"
+msgid   "pipe attachment into command"
+msgstr  ""
 
 #: src/lang.c:370
-msgid	"select threads that match user specified pattern"
-msgstr	"vali kasutaja määratud mustrile vastavad teemad"
-
-#: src/lang.c:371
-msgid	"tag all parts of current multipart-message in order"
-msgstr	"märgi jooksva mitmeosalise teate kõik osad"
+#, fuzzy
+msgid   "pipe raw attachment into command"
+msgstr  "Atribuutide menüü käsud"
 
 #: src/lang.c:372
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 - 9\t  vali numbri järgi teema"
+msgid   "save attachment to disk"
+msgstr  ""
 
 #: src/lang.c:373
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	"sea laetavate artiklite piirang ja lae uuesti"
+#, fuzzy
+msgid   "search for attachments forwards"
+msgstr  "otsi artikleid autori järgi edaspidi"
 
 #: src/lang.c:374
-msgid	"toggle display of all/unread articles"
-msgstr	"lülita ekraanil kõik/lugemata artiklid"
+#, fuzzy
+msgid   "search for attachments backwards"
+msgstr  "otsi artikleid autori järgi tagaspidi"
 
 #: src/lang.c:375
-msgid	"toggle selection of thread"
-msgstr	"lülita teema valikut"
+msgid   "view attachment"
+msgstr  ""
 
 #: src/lang.c:376
-msgid	"cycle through threading options available"
-msgstr	"erinevad teemade käsitlemise võtmed"
+#, fuzzy
+msgid   "tag attachment"
+msgstr  "Valige artikkel> "
 
 #: src/lang.c:377
-msgid	"undo all selections (all articles)"
-msgstr	"ennista kõik valikud (kõik artiklid)"
+#, fuzzy
+msgid   "tag attachments that match user specified pattern"
+msgstr  "vali kasutaja määratud mustrile vastavad teemad"
 
 #: src/lang.c:378
-msgid	"untag all tagged threads"
-msgstr	"eemalda märgistus kõikidelt märgitud teemadelt"
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
 
 #: src/lang.c:379
-msgid	"mark all articles in group as read"
-msgstr	"märgi valitud grupis kõik artiklid loetuks"
+#, fuzzy
+msgid   "untag all tagged attachments"
+msgstr  "eemalda märgistus kõikidelt märgitud teemadelt"
 
 #: src/lang.c:380
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	"märgi grupp loetuks ja liigu järgmisele lugemata grupile"
+#, fuzzy
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  "lülita viimase rea infoteadet (teema/kirjeldus)"
 
 #: src/lang.c:381
-msgid	"choose first group in list"
-msgstr	"vali loetelust esimene grupp"
+msgid   "choose first attribute in list"
+msgstr  "vali loendis esimene atribuut"
 
 #: src/lang.c:382
-msgid	"choose group by name"
-msgstr	"vali grupp nime järgi"
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  vali numbri järgi atribuut"
 
 #: src/lang.c:383
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 - 9\t  vali grupp numbri järgi"
+msgid   "choose last attribute in list"
+msgstr  "vali loendis viimane atribuut"
 
 #: src/lang.c:384
-msgid	"choose range of groups to be affected by next command"
-msgstr	"järgmise käsuga töödeldavate gruppide vahemik"
+msgid   "reset attribute to a default value"
+msgstr  "sea atribuudile vaikeväärtus"
 
 #: src/lang.c:385
-msgid	"choose last group in list"
-msgstr	"vali loetelust viimane grupp"
+msgid   "search forwards for an attribute"
+msgstr  "otsi atribuuti edaspidi"
 
 #: src/lang.c:386
-msgid	"mark all articles in chosen group unread"
-msgstr	"märgi valitud grupis kõik artiklid mitte-loetuks"
+msgid   "search backwards for an attribute"
+msgstr  "otsi atribuuti tagaspidi"
 
 #: src/lang.c:387
-msgid	"move chosen group within list"
-msgstr	"liiguta valitud gruppi loendis"
+msgid   "select attribute"
+msgstr  "vali atribuut"
 
 #: src/lang.c:388
-msgid	"choose next group with unread news"
-msgstr	"vali järgmine lugemata artiklitega grupp"
+msgid   "toggle back to options menu when invoked from there"
+msgstr  "tagasi seadete menüüsse"
 
-#: src/lang.c:389 src/lang.c:1197
-msgid	"quit"
-msgstr	"välju"
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  "saatke vearaport või kommentaar aadressile %s"
 
 #: src/lang.c:390
-msgid	"quit without saving configuration changes"
-msgstr	"välju muudetud seadeid salvestamata"
+msgid   "choose first option in list"
+msgstr  "vali loetelust esimene parameeter"
 
 #: src/lang.c:391
-msgid	"read chosen group"
-msgstr	"loe valitud gruppi"
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  vali parameeter numbri järgi"
 
 #: src/lang.c:392
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	".newsrc faili algväärtustamine (kõik artiklid mitte-loetuks)"
+msgid   "choose last option in list"
+msgstr  "vali loetelust viimane parameeter"
 
 #: src/lang.c:393
-msgid	"search backwards for a group name"
-msgstr	"otsi grupi nime tagaspidi"
+msgid   "start scopes menu"
+msgstr  "alusta skoopide menüüd"
 
 #: src/lang.c:394
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	" \t  (kõik otsingud on tõstutundetud ja vajadusel alustavad algusest)"
+msgid   "search forwards for an option"
+msgstr  "otsi parameetrit nime edaspidi"
 
 #: src/lang.c:395
-msgid	"search forwards for a group name"
-msgstr	"otsi grupi nime edaspidi"
+msgid   "search backwards for an option"
+msgstr  "otsi parameetrit tagaspidi"
 
 #: src/lang.c:396
-msgid	"subscribe to chosen group"
-msgstr	"telli valitud grupp"
+msgid   "select option"
+msgstr  "vali parameeter"
 
 #: src/lang.c:397
-msgid	"subscribe to groups that match pattern"
-msgstr	"telli mustrile vastavaid gruppe"
+msgid   "toggle to attributes menu"
+msgstr  "lülita atribuutide menüü"
 
 #: src/lang.c:398
-msgid	"reread active file to check for any new news"
-msgstr	"kontrolli aktiivsete gruppide faili - kas on uusi artikleid"
+msgid   "choose range of articles to be affected by next command"
+msgstr  "valige järgmise käsuga töödeldavate artiklite vahemik"
 
 #: src/lang.c:399
-msgid	"toggle display of group name only or group name plus description"
-msgstr	"vali ekraanil ainult grupi nimi või grupi nimi ja kirjeldus"
+msgid   "escape from command prompt"
+msgstr  "pääs käsuviibalt"
 
 #: src/lang.c:400
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	"vali ekraanile kõik/lugemata tellitud grupid"
+msgid   "edit filter file"
+msgstr  "toimeta filtrite faili"
 
 #: src/lang.c:401
-msgid	"unsubscribe from chosen group"
-msgstr	"loobu valitud grupist"
+msgid   "get help"
+msgstr  "anna abiinfot"
 
 #: src/lang.c:402
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"loobu mustrile vastavatest gruppidest"
+msgid   "display last article viewed"
+msgstr  "näita viimasena vaadatud artiklit"
 
 #: src/lang.c:403
-msgid	"sort the list of groups"
-msgstr	"järjesta gruppide loend"
+msgid   "down one line"
+msgstr  "üks rida alla"
 
 #: src/lang.c:404
-msgid	"toggle display to show all/subscribed groups"
-msgstr	"näita ekraanil kõiki/tellitud gruppe"
+msgid   "up one line"
+msgstr  "üles üks rida"
 
 #: src/lang.c:405
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 - 9\t  vali numbri järgi artikkel"
+msgid   "go to article chosen by Message-ID"
+msgstr  "liigu Message-ID poolt määratud artiklile"
 
 #: src/lang.c:406
-msgid	"mark thread as read and return to group index page"
-msgstr	"märgi teema loetuks ja välju gruppide indeksi lehele"
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  "saada artikkel/teema/kuum/muster/märgitud kellelegi"
 
 #: src/lang.c:407
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	"märgi teema loetuks ja sisene järgmisse teemasse või gruppi"
+msgid   "menu of configurable options"
+msgstr  "seadete menüü"
 
 #: src/lang.c:408
-msgid	"choose first article in list"
-msgstr	"vali loendis esimene artikkel"
+msgid   "down one page"
+msgstr  "alla üks lehekülg"
 
 #: src/lang.c:409
-msgid	"choose last article in list"
-msgstr	"vali loendis viimane artikkel"
-
-#: src/lang.c:410
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	"märgi artikkel või märgitud artiklid loetuks, liigu järgm. lugemata artiklile"
+msgid   "up one page"
+msgstr  "üles üks lehekülg"
 
 #: src/lang.c:411
-msgid	"read chosen article"
-msgstr	"loe valitud artiklit"
+msgid   "post (write) article to current group"
+msgstr  "postita (kirjuta) artikkel jooksvasse gruppi"
 
 #: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	"Ekraani omadused\n"
-	"----------------"
-
-#: src/lang.c:413
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	"Muud\n"
-	"----"
+msgid   "post postponed articles"
+msgstr  "postita ootel artiklid"
 
 #: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	"Liikumine\n"
-	"---------"
+msgid   "list articles posted by you (from posted file)"
+msgstr  "näita teie poolt postitatud artikleid (failist posted)"
 
 #: src/lang.c:415
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"Grupi/teema/artikli operatsioonid\n"
-	"---------------------------------"
+msgid   "return to previous menu"
+msgstr  "tagasi eelmisse menüüsse"
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  "välju viivitamata tinist"
 
 #: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	"Grupitaseme käsud"
+msgid   "redraw page"
+msgstr  "värskenda lehekülge"
 
 #: src/lang.c:418
-msgid	"Kill filter added"
-msgstr	"Surmamise filter lisatud"
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  "salvesta artikkel/teema/kuum/muster/märgitud faili"
 
 #: src/lang.c:419
-msgid	"Auto-selection filter added"
-msgstr	"Automaatse valiku filter lisatud"
+msgid   "save marked articles automatically without user prompts"
+msgstr  "salvesta märgitud artiklid automaatselt, kasutajalt küsimata"
 
 #: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	"Kõik osad on märgitud"
+msgid   "scroll the screen one line down"
+msgstr  "keri ekraani rida alla"
 
 #: src/lang.c:421
-msgid	"Storing article for later posting"
-msgstr	"Salvestan artikli hiljem postitamiseks"
+msgid   "scroll the screen one line up"
+msgstr  "keri ekraani rida üles"
 
 #: src/lang.c:422
-msgid	"Please enter a valid character"
-msgstr	"Palun sisestage lubatud sümbol"
+msgid   "search for articles by author backwards"
+msgstr  "otsi artikleid autori järgi tagaspidi"
 
 #: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	"Puudub osa nr: %d"
+msgid   "search for articles by author forwards"
+msgstr  "otsi artikleid autori järgi edaspidi"
 
 #: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	"*** Postitusootel artikleid pole ***"
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  "otsi antud teksti artiklitest (see võib võtta aega)"
 
 #: src/lang.c:425
-msgid	"Not a multi-part message"
-msgstr	"Ei ole mitmeosaline teade"
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  " \t  (otsing on tõstutundetu ja käib üle kõikide artiklite)"
 
 #: src/lang.c:426
-msgid	"You are not subscribed to this group"
-msgstr	"Te pole seda gruppi tellinud"
+msgid   "search for articles by Subject line backwards"
+msgstr  "otsi artiklit teema järgi tagaspidi"
 
 #: src/lang.c:427
-msgid	"No previous expression"
-msgstr	"Eelmist avaldist pole"
+msgid   "search for articles by Subject line forwards"
+msgstr  "otsi artiklit teema järgi edaspidi"
 
 #: src/lang.c:428
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	"Operatsioon on ülekirjutamist keelavas moodis keelatud"
+msgid   "repeat last search"
+msgstr  "korda eelmist otsingut"
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  "märgi jooksev artikkel, et postitada/saata/trükkida/salvestada/torusse"
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	"%d ootel %s, kasutamiseks ^O...\n"
+msgid   "toggle info message in last line (subject/description)"
+msgstr  "lülita viimase rea infoteadet (teema/kirjeldus)"
 
 #: src/lang.c:431
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	"X-Conversion-Note: multipart/alternative sisu on eemaldatud.\n"
-	"  Et näha tervet artiklit, lülitage alternatiivide käsitlemine välja\n"
+msgid   "toggle inverse video"
+msgstr  "lülita pööratud video"
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  "abiinfo lülita ekraanil miniabi menüüd"
 
 #: src/lang.c:433
-#, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	"Fail %s/%s salvestamiseks on postkast. Lisa ei salvestatud"
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  "vali näitamiseks autori aadress, pärisnimi, mõlemad või mitte midagi"
 
 #: src/lang.c:434
-msgid	"TeX2Iso encoded article"
-msgstr	"TeX2Iso kodeeritud artikkel"
+msgid   "show version information"
+msgstr  "esita info versioonist"
 
 #: src/lang.c:435
-msgid	"incomplete "
-msgstr	"mittetäielik "
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  "märgi artiklid loetuks ja välju gruppide valiku menüüsse"
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  "märgi artiklid loetuks, sisene järgmisse lugemata artiklitega gruppi"
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	"\n"
-	"See on %s, täisekraan teemadega Netnews lugeja. Uudiseid saab lugeda\n"
-	"lokaalselt (st <spool>/news) või üle võrgu (võti -r),  kasutades NNTP\n"
-	"(Network News Transport Protocol) serverit. Võti -h annab teile kasutata-\n"
-	"vate võtmete loendi.\n"
-	"\n"
-	"%s omab uudiste lugemisel nelja taset, gruppide valiku lehekülg,  grupi\n"
-	"indeksi lehekülg, teema lehekülg ja artikli lugeja. Igal tasemel saab 'h'\n"
-	"käsku kasutades abiinfot.\n"
-	"\n"
-	"Üles/alla liikumiseks kasutage terminali nooleklahve või 'j'/'k'.   Lehe-\n"
-	"külgede kerimiseks kasutage PgUp/PgDn või Ctrl-U ja Ctrl-D.  Gruppi sise-\n"
-	"nemiseks vajutage TAB või RETURN.\n"
-	"\n"
-	"Artikleid, teemasid, märgitud artikleid või mustrile vastavaid  artikleid\n"
-	"saate edasi saata ('m' käsk), trükkida ('o' käsk), salvestada ('s' käsk),\n"
-	"saata toruga välisele programmile ('|' käsk). Artikli postitamiseks kasu-\n"
-	"tage käsku  'w',  'f' ja 'F' käskudega saate vastata olemasolevale artik-\n"
-	"lile ning 'r' ja 'R' käskudega saate vastata artikli autorile kirja teel.\n"
-	"'M'  käsk võimaldab teil  seadistada %s operatsioone.\n"
-	"\n"
-	"Lisainfot leiate manualist, README, INSTALL, TODO ja FTP failidest.\n"
-	"Palun saatke vearaportid/kommentaarid 'R' käsuga aadressil %s.\n"
+msgid   "choose first thread in list"
+msgstr  "vali loendist esimene teema"
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  "vali loendist viimane teema"
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  "artiklite loend jooksvas teemas (esita teema alam-menüü)"
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  "märgi artikkel loetuks"
+
+#: src/lang.c:441
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  "märgi jooksev teema, vahemik või märgitud teemad loetuks"
+
+#: src/lang.c:442
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  "märgi jooksev teema, vahemik või märgitud teemad mitteloetuks"
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  "märgi jooksev/vahemik/valitud/muster/märgitud loetuks"
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  "märgi jooksev/vahemik/valitud/muster/märgitud mitteloetuks"
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  "lülita ekraanile kõik/valitud artiklid"
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  "näita järgmist gruppi"
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  "näita eelmist gruppi"
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  "lülita kõiki valikuid (kõiki artikleid)"
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  "vali grupp (muuda \"kuumaks\")"
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  "vali teema"
+
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  "vali teemad, kui on valitud vähemalt üks lugemata artikkel"
+
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  "vali kasutaja määratud mustrile vastavad teemad"
 
 #: src/lang.c:453
-#, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	"Vigane From: %s rida. Lugege uuesti faili INSTALL."
+msgid   "tag all parts of current multipart-message in order"
+msgstr  "märgi jooksva mitmeosalise teate kõik osad"
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  vali numbri järgi teema"
 
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	"Leidsin vigase mitmebaidi järjendi\n"
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  "sea laetavate artiklite piirang ja lae uuesti"
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  "lülita ekraanil kõik/lugemata artiklid"
 
 #: src/lang.c:457
-#, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	"Vigane Sender:-päis %s"
+msgid   "toggle selection of thread"
+msgstr  "lülita teema valikut"
 
 #: src/lang.c:458
-msgid	"Inverse video disabled"
-msgstr	"Pööratud video keelatud"
+msgid   "cycle through threading options available"
+msgstr  "erinevad teemade käsitlemise võtmed"
 
 #: src/lang.c:459
-msgid	"Inverse video enabled"
-msgstr	"Pööratud video lubatud"
+msgid   "undo all selections (all articles)"
+msgstr  "ennista kõik valikud (kõik artiklid)"
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  "eemalda märgistus kõikidelt märgitud teemadelt"
 
 #: src/lang.c:461
-#, c-format
-msgid	"Missing definition for %s\n"
-msgstr	"%s definitsioon puudub\n"
+msgid   "add new scope"
+msgstr  "lisa uus skoop"
 
 #: src/lang.c:462
-#, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	"Vigane klahvi definitsioon '%s'\n"
+msgid   "delete scope"
+msgstr  "kustuta skoop"
 
 #: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	"Vigane klahvi nimi '%s'\n"
+msgid   "edit attributes file"
+msgstr  "toimeta atribuutide faili"
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	"Keymap fail uuendati versioonini %s\n"
+msgid   "choose first scope in list"
+msgstr  "vali loetelust esimene skoop"
 
 #: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	"Surmake From:  [%s] (j/e): "
+msgid   "0 - 9\t  choose scope by number"
+msgstr  "0 - 9\t  vali skoop numbri järgi"
 
 #: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	"Surmake read: (</>num) : "
+msgid   "choose last scope in list"
+msgstr  "vali loetelust viimane skoop"
 
 #: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	"Artuklite surmamise menüü"
+msgid   "move scope"
+msgstr  "liiguta skoopi"
 
 #: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	"Surmake Msg-Id:[%s] (f/l/o/n): "
+msgid   "rename scope"
+msgstr  "nimeta skoop ümber"
 
 #: src/lang.c:469
-msgid	"Kill pattern scope  : "
-msgstr	"Surmamise mustri ulatus: "
+msgid   "select scope"
+msgstr  "vali skoop"
 
 #: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	"Surmake teema: [%s] (j/e): "
+msgid   "mark all articles in group as read"
+msgstr  "märgi valitud grupis kõik artiklid loetuks"
 
 #: src/lang.c:471
-msgid	"Kill text pattern   : "
-msgstr	"Surmake tekst mustriga : "
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  "märgi grupp loetuks ja liigu järgmisele lugemata grupile"
 
 #: src/lang.c:472
-msgid	"Kill time in days   : "
-msgstr	"Surmamise aeg päevades : "
+msgid   "choose first group in list"
+msgstr  "vali loetelust esimene grupp"
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  "vali grupp nime järgi"
 
 #: src/lang.c:474
-msgid	"Last"
-msgstr	"Viimane"
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  vali grupp numbri järgi"
 
 #: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	"-- Viimane vastus --"
+msgid   "choose range of groups to be affected by next command"
+msgstr  "järgmise käsuga töödeldavate gruppide vahemik"
 
 #: src/lang.c:476
-#, c-format
-msgid	"Lines %s  "
-msgstr	"Rida: %s  "
+msgid   "choose last group in list"
+msgstr  "vali loetelust viimane grupp"
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  "märgi valitud grupis kõik artiklid mitte-loetuks"
 
 #: src/lang.c:478
-msgid	"Message-ID: line              "
-msgstr	"Message-ID: rida            "
+msgid   "move chosen group within list"
+msgstr  "liiguta valitud gruppi loendis"
 
 #: src/lang.c:479
-msgid	"Mail"
-msgstr	"E-post"
+msgid   "choose next group with unread news"
+msgstr  "vali järgmine lugemata artiklitega grupp"
 
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	"postkasti "
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  "välju"
 
 #: src/lang.c:481
-#, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"Saada artiklid aadressil [%.*s]> "
+msgid   "quit without saving configuration changes"
+msgstr  "välju muudetud seadeid salvestamata"
 
 #: src/lang.c:482
-#, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"Saadan logi aadressil %s\n"
+msgid   "read chosen group"
+msgstr  "loe valitud gruppi"
 
 #: src/lang.c:483
-msgid	"Mail bug report..."
-msgstr	"Saada vearaport..."
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  ".newsrc faili algväärtustamine (kõik artiklid mitte-loetuks)"
 
 #: src/lang.c:484
-#, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"Saadan VEARAPORTI aadressil %s?"
+msgid   "search backwards for a group name"
+msgstr  "otsi grupi nime tagaspidi"
 
 #: src/lang.c:485
-msgid	"Mailed"
-msgstr	"Saadetud"
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  " \t  (kõik otsingud on tõstutundetud ja vajadusel alustavad algusest)"
 
 #: src/lang.c:486
-#, c-format
-msgid	"Mailing to %s..."
-msgstr	"Saadan aadressil %s..."
+msgid   "search forwards for a group name"
+msgstr  "otsi grupi nime edaspidi"
 
 #: src/lang.c:487
-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	"# [Saada/Salvesta] fail \"active\". Vorming on sarnane news active failile:\n"
-	"#   grupinimi  maks.artnumb  min.artnumb  /kataloog\n"
-	"# Neljas väli on baaskataloog (näiteks ~/Mail või ~/News)\n"
-	"#\n"
+msgid   "subscribe to chosen group"
+msgstr  "telli valitud grupp"
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  "telli mustrile vastavaid gruppe"
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  "kontrolli aktiivsete gruppide faili - kas on uusi artikleid"
 
 #: src/lang.c:490
-#, c-format
-msgid	"%s marked as unread"
-msgstr	"%s märgitud loetuks"
+msgid   "toggle display of group name only or group name plus description"
+msgstr  "vali ekraanil ainult grupi nimi või grupi nimi ja kirjeldus"
 
 #: src/lang.c:491
-#, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	"Märkisin %d (%d) märgitud %s loetuks"
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  "vali ekraanile kõik/lugemata tellitud grupid"
 
 #: src/lang.c:492
-#, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"Märgin kõik artiklid loetuks%s?"
+msgid   "unsubscribe from chosen group"
+msgstr  "loobu valitud grupist"
 
 #: src/lang.c:493
-#, 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: "
+msgid   "unsubscribe from groups that match pattern"
+msgstr  "loobu mustrile vastavatest gruppidest"
 
 #: src/lang.c:494
-#, c-format
-msgid	"Mark group %s as read?"
-msgstr	"Märgin grupi %s loetuks?"
+msgid   "sort the list of groups"
+msgstr  "järjesta gruppide loend"
 
 #: src/lang.c:495
-#, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"Märgin teema loetuks%s?"
+msgid   "toggle display to show all/subscribed groups"
+msgstr  "näita ekraanil kõiki/tellitud gruppe"
 
 #: src/lang.c:496
-#, 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: "
+msgid   "0 - 9\t  choose article by number"
+msgstr  "0 - 9\t  vali numbri järgi artikkel"
 
 #: src/lang.c:497
-#, c-format
-msgid	"Matching %s groups..."
-msgstr	"Otsin %s gruppe..."
+msgid   "mark thread as read and return to group index page"
+msgstr  "märgi teema loetuks ja välju gruppide indeksi lehele"
 
-#: src/lang.c:498 src/lang.c:502
-#, 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:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  "märgi teema loetuks ja sisene järgmisse teemasse või gruppi"
 
 #: src/lang.c:499
-#, 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"
+msgid   "choose first article in list"
+msgstr  "vali loendis esimene artikkel"
 
 #: src/lang.c:500
-#, 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"
+msgid   "choose last article in list"
+msgstr  "vali loendis viimane artikkel"
 
 #: src/lang.c:501
-#, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	"%s=otsi edaspidi; %s=otsi tagaspidi; %s=välju"
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  "märgi art. vahemik või märgitud art. loetuks, liigu järgm. lugemata artiklile"
+
+#: src/lang.c:502
+msgid   "mark article, range or tagged articles as unread"
+msgstr  "märgi jooksev teema, vahemik või märgitud teemad mitteloetuks"
 
 #: src/lang.c:503
-#, 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"
+msgid   "mark current thread as unread"
+msgstr  "märgi teema mitteloetuks"
 
 #: src/lang.c:504
-#, 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"
+msgid   "read chosen article"
+msgstr  "loe valitud artiklit"
 
 #: src/lang.c:505
-#, 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"
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "Ekraani omadused\n"
+        "----------------"
 
 #: src/lang.c:506
-#, 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"
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "Muud\n"
+        "----"
 
 #: src/lang.c:507
-#, 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"
+msgid   "Moving around\n"
+        "-------------"
+msgstr  "Liikumine\n"
+        "---------"
 
 #: src/lang.c:508
-#, 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"
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  "Grupi/teema/artikli operatsioonid\n"
+        "---------------------------------"
 
 #: src/lang.c:509
-msgid	"--More--"
-msgstr	"--Veel--"
+#, fuzzy
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  "Operatsioonid atribuutidega\n"
+        "---------------------------"
 
 #: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	"Tõstan %s..."
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  "Operatsioonid atribuutidega\n"
+        "---------------------------"
+
+#: src/lang.c:511
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  "Operatsioonid seadetega\n"
+        "-----------------------"
 
 #: src/lang.c:512
-msgid	", name: "
-msgstr	", nimi: "
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  "Operatsioonid skoobiga\n"
+        "----------------------"
 
 #: src/lang.c:513
-#, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	"Mine gruppi [%s]> "
+#, fuzzy
+msgid   "URL operations\n"
+        "--------------"
+msgstr  "Operatsioonid skoobiga\n"
+        "----------------------"
 
 #: src/lang.c:514
-msgid	"newsgroups"
-msgstr	"gruppidesse"
+#, fuzzy
+msgid   "choose first URL in list"
+msgstr  "vali loetelust esimene skoop"
 
 #: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	"Positsioon %s gruppide nimistus (1,2,..,$) [%d]> "
+#, fuzzy
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  vali skoop numbri järgi"
 
 #: src/lang.c:516
-msgid	"newsgroup"
-msgstr	"gruppi"
+#, fuzzy
+msgid   "choose last URL in list"
+msgstr  "vali loetelust viimane skoop"
 
 #: src/lang.c:517
-msgid	"Try and save newsrc file again?"
-msgstr	"Proovin newsrc faili uuesti salvestada?"
+#, fuzzy
+msgid   "search for URLs forwards"
+msgstr  "otsi artikleid autori järgi edaspidi"
 
 #: src/lang.c:518
-msgid	"Warning: No newsgroups were written to your newsrc file. Save aborted."
-msgstr	"Hoiatus: Teie newsrc faili ei salvestatud ühtegi gruppi. Katkestasin "
-	"salvestamise."
+#, fuzzy
+msgid   "search for URLs backwards"
+msgstr  "otsi artikleid autori järgi tagaspidi"
 
 #: src/lang.c:519
-msgid	"newsrc file saved successfully.\n"
-msgstr	"newsrc fail on edukalt salvestatud.\n"
+msgid   "Open URL in browser"
+msgstr  ""
 
 #: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	"- Järgmine vastus -"
-
-#: src/lang.c:521
-#, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"Serverile %s vastavat NNTP autoriseerimise parooli pole"
+#, fuzzy
+msgid   "toggle info message in last line (URL)"
+msgstr  "lülita viimase rea infoteadet (teema/kirjeldus)"
 
 #: src/lang.c:522
-msgid	"No  "
-msgstr	"Ei  "
+msgid   "Group Level Commands"
+msgstr  "Grupitaseme käsud"
 
 #: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	"*** Artikleid pole ***"
+msgid   "Kill filter added"
+msgstr  "Surmamise filter lisatud"
 
 #: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	"Postitatud artikleid pole"
+msgid   "Auto-selection filter added"
+msgstr  "Automaatse valiku filter lisatud"
 
 #: src/lang.c:525
-msgid	"*** No description ***"
-msgstr	"*** Kirjeldus puudub ***"
+msgid   "All parts tagged"
+msgstr  "Kõik osad on märgitud"
 
 #: src/lang.c:526
-msgid	"No filename"
-msgstr	"Failil pole nime"
+msgid   "Storing article for later posting"
+msgstr  "Salvestan artikli hiljem postitamiseks"
 
 #: src/lang.c:527
-msgid	"No group"
-msgstr	"Gruppi pole"
+msgid   "Please enter a valid character"
+msgstr  "Palun sisestage lubatud sümbol"
 
 #: src/lang.c:528
-msgid	"*** No groups ***"
-msgstr	"*** Gruppe pole ***"
+#, c-format
+msgid   "Missing part #%d"
+msgstr  "Puudub osa nr: %d"
 
 #: src/lang.c:529
-msgid	"No more groups to read"
-msgstr	"Lugemiseks rohkem gruppe pole"
+msgid   "*** No postponed articles ***"
+msgstr  "*** Postitusootel artikleid pole ***"
 
 #: src/lang.c:530
-msgid	"No last message"
-msgstr	"Viimast teadet pole"
+msgid   "Not a multi-part message"
+msgstr  "Ei ole mitmeosaline teade"
 
 #: src/lang.c:531
-msgid	"No mail address"
-msgstr	"E-posti aadressi pole"
+msgid   "You are not subscribed to this group"
+msgstr  "Te pole seda gruppi tellinud"
 
 #: src/lang.c:532
-msgid	"No articles marked for saving"
-msgstr	"Salvestamiseks märgitud artikleid pole"
+msgid   "No previous expression"
+msgstr  "Eelmist avaldist pole"
 
 #: src/lang.c:533
-msgid	"No match"
-msgstr	"Ei leia"
-
-#: src/lang.c:534
-msgid	"No more groups"
-msgstr	"Rohkem gruppe pole"
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  "Operatsioon on ülekirjutamist keelavas moodis keelatud"
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-msgid	"No newsgroups"
-msgstr	"Gruppe pole"
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  "%d ootel %s, kasutamiseks ^O...\n"
 
 #: src/lang.c:536
-msgid	"No next unread article"
-msgstr	"Järgmist lugemata artiklit pole"
-
-#: src/lang.c:537
-msgid	"No previous group"
-msgstr	"Eelmist gruppi pole"
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  "X-Conversion-Note: multipart/alternative sisu on eemaldatud.\n"
+        "  Et näha tervet artiklit, lülitage alternatiivide käsitlemine välja\n"
 
 #: src/lang.c:538
-msgid	"No previous unread article"
-msgstr	"Eelmist lugemata artiklit pole"
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  "Fail %s/%s salvestamiseks on postkast. Lisa ei salvestatud"
 
 #: src/lang.c:539
-msgid	"No responses"
-msgstr	"Vastuseid pole"
+msgid   "TeX2Iso encoded article"
+msgstr  "TeX2Iso kodeeritud artikkel"
 
 #: src/lang.c:540
-msgid	"No responses to list in current thread"
-msgstr	"Jooksvas teemas pole vastuseid"
-
-#: src/lang.c:541
-msgid	"No search string"
-msgstr	"Otsingusõne puudub"
+msgid   "incomplete "
+msgstr  "mittetäielik "
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-msgid	"No subject"
-msgstr	"Teema puudub"
-
-#: src/lang.c:544
 #, 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
-#, 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
-#, c-format
-msgid	"%s: Terminal must have clearscreen (cl) capability\n"
-msgstr	"%s: Terminalil peab olema ekraanipuhastamise (cl) omadus\n"
-
-#: src/lang.c:547
-#, c-format
-msgid	"%s: Terminal must have cursor motion (cm)\n"
-msgstr	"%s: Terminal peab toetama kursori liigutamist (cm)\n"
-
-#: src/lang.c:548
-#, 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
-#, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	"%s/%s jaoks puudub vaatur\n"
-
-#: src/lang.c:551
-msgid	"Newsgroup does not exist on this server"
-msgstr	"Gruppi pole sellel serveril"
-
-#: src/lang.c:552
-#, c-format
-msgid	"Group %s not found in active file"
-msgstr	"Gruppi %s pole aktiivsete gruppide failis"
-
-#: src/lang.c:553
-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
-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
-#, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	"# NNTP-server -> newsrc teisendustabel ja %s %s\n"
-	"# NNTP-server lühivormide nimistu\n"
-	"#\n"
-	"# selle faili formaat on\n"
-	"#   <NNTP-serveri FQDN> <newsrc fail> <lühivorm> ...\n"
-	"#\n"
-	"# kui <newsrc fail> on antud ilma teeta, eeldatakse asukohaks $HOME\n"
-	"#\n"
-	"# näited:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	"Ainult"
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  "\n"
+        "See on %s, täisekraan teemadega Netnews lugeja. Uudiseid saab lugeda\n"
+        "lokaalselt (st <spool>/news) või üle võrgu (võti -r),  kasutades NNTP\n"
+        "(Network News Transport Protocol) serverit. Võti -h annab teile kasutata-\n"
+        "vate võtmete loendi.\n"
+        "\n"
+        "%s omab uudiste lugemisel nelja taset, gruppide valiku lehekülg,  grupi\n"
+        "indeksi lehekülg, teema lehekülg ja artikli lugeja. Igal tasemel saab 'h'\n"
+        "käsku kasutades abiinfot.\n"
+        "\n"
+        "Üles/alla liikumiseks kasutage terminali nooleklahve või 'j'/'k'.   Lehe-\n"
+        "külgede kerimiseks kasutage PgUp/PgDn või Ctrl-U ja Ctrl-D.  Gruppi sise-\n"
+        "nemiseks vajutage TAB või RETURN.\n"
+        "\n"
+        "Artikleid, teemasid, märgitud artikleid või mustrile vastavaid  artikleid\n"
+        "saate edasi saata ('m' käsk), trükkida ('o' käsk), salvestada ('s' käsk),\n"
+        "saata toruga välisele programmile ('|' käsk). Artikli postitamiseks kasu-\n"
+        "tage käsku  'w',  'f' ja 'F' käskudega saate vastata olemasolevale artik-\n"
+        "lile ning 'r' ja 'R' käskudega saate vastata artikli autorile kirja teel.\n"
+        "'M'  käsk võimaldab teil  seadistada %s operatsioone.\n"
+        "\n"
+        "Lisainfot leiate manualist, README, INSTALL, TODO ja FTP failidest.\n"
+        "Palun saatke vearaportid/kommentaarid 'R' käsuga aadressil %s.\n"
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  "Vigane From: %s rida. Lugege uuesti faili INSTALL."
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  "Leidsin vigase mitmebaidi järjendi\n"
 
 #: src/lang.c:563
 #, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"Võti pole lubatud. Kasutage kompileerimisel %s."
+msgid   "Invalid  Sender:-header %s"
+msgstr  "Vigane Sender:-päis %s"
 
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	"Omaduste menüü"
-
-#: src/lang.c:567
-#, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	"Viga regulaaravaldises: %s positsioonil %d '%s'"
+#: src/lang.c:565
+msgid   "Inverse video disabled"
+msgstr  "Pööratud video keelatud"
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  "Pööratud video lubatud"
 
 #: src/lang.c:568
 #, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	"Viga regulaaravaldises: pcre sisemine viga %d"
+msgid   "Missing definition for %s\n"
+msgstr  "%s definitsioon puudub\n"
 
 #: src/lang.c:569
 #, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	"Viga regulaaravaldises: uurimiseks - pcre sisemine viga %s"
+msgid   "Invalid key definition '%s'\n"
+msgstr  "Vigane klahvi definitsioon '%s'\n"
 
 #: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	"Postita vastus..."
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  "Vigane klahvi nimi '%s'\n"
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  "Keymap fail uuendati versioonini %s\n"
 
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
 #: src/lang.c:572
-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	"Artikli postitamisel tekkis viga. Kui te arvate, et see viga on ajutine\n"
-	"või muul viisil kõrvaldatav, võite artikli salvestada hiljem postitamiseks\n"
-	"ja ^O käsuga hiljem postitada.\n"
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  "Surmake From:  [%s] (j/e): "
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  "Surmake read: (</>num) : "
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  "Artuklite surmamise menüü"
 
 #: src/lang.c:575
-msgid	"Posted articles history"
-msgstr	"Postitatud artiklite ajalugu"
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  "Surmake Msg-Id:[%s] (f/l/o/n): "
 
 #: src/lang.c:576
-#, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"Postita gruppidesse [%s]> "
+msgid   "Kill pattern scope  : "
+msgstr  "Surmamise mustri ulatus: "
 
 #: src/lang.c:577
-msgid	"-- post processing started --"
-msgstr	"-- lõpptöötlus alustas --"
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  "Surmake teema: [%s] (j/e): "
 
 #: src/lang.c:578
-msgid	"-- post processing completed --"
-msgstr	"-- lõpptöötlus lõpetas --"
+msgid   "Kill text pattern   : "
+msgstr  "Surmake tekst mustriga : "
 
 #: src/lang.c:579
-#, c-format
-msgid	"Post subject [%s]> "
-msgstr	"Postituse teema [%s]> "
-
-#: src/lang.c:580
-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"
+msgid   "Kill time in days   : "
+msgstr  "Surmamise aeg päevades : "
 
 #: src/lang.c:581
-msgid	"Posting article..."
-msgstr	"Postitan artiklit..."
+msgid   "Last"
+msgstr  "Viimane"
 
 #: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	"Postitan ootel artiklid [%%s]? (%s/%s/%s/%s/%s): "
+msgid   "-- Last response --"
+msgstr  "-- Viimane vastus --"
 
 #: src/lang.c:583
 #, c-format
-msgid	"Hot %s"
-msgstr	"Kuum %s"
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	"Märgitud %s"
+msgid   "Lines %s  "
+msgstr  "Rida: %s  "
 
 #: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	"Märkimata %s"
+msgid   "Mail"
+msgstr  "E-post"
 
 #: src/lang.c:586
-msgid	"Processing mail messages marked for deletion."
-msgstr	"Töötlen kirju, mis on kustutamiseks märgitud."
+msgid   "mailbox "
+msgstr  "postkasti "
 
 #: src/lang.c:587
-msgid	"Processing saved articles marked for deletion."
-msgstr	"Töötlen salvestatud ja kustutamiseks märgitud artikleid."
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "Saada artiklid aadressil [%.*s]> "
 
 #: src/lang.c:588
 #, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	"Aktsepteerin Followup-To? %s=postita, %s=ignoreeri, %s=välju: "
+msgid   "Mailing log to %s\n"
+msgstr  "Saadan logi aadressil %s\n"
 
 #: src/lang.c:589
-msgid	"Article unchanged, abort mailing?"
-msgstr	"Artiklit ei ole muudetud, katkestan saatmise?"
+msgid   "Mail bug report..."
+msgstr  "Saada vearaport..."
 
 #: src/lang.c:590
 #, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	"Kas soovite näha postitamisootel artikleid (%d)?"
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "Saadan VEARAPORTI aadressil %s?"
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  "Saadetud"
 
 #: src/lang.c:592
-msgid	"Add quick kill filter?"
-msgstr	"Lisan kiirsurmamise filtri?"
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  "Saadan aadressil %s..."
 
 #: src/lang.c:593
-msgid	"Add quick selection filter?"
-msgstr	"Lisan kiirvaliku filtri?"
-
-#: src/lang.c:594
-msgid	"Do you really want to quit?"
-msgstr	"Kas te tõesti soovite väljuda?"
-
-#: src/lang.c:595
-#, c-format
-msgid	"%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
-msgstr	"%s=toimeta katkestamisteadet, %s=välju, %s=kustuta (katkesta) [%%s]: "
+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  "# [Saada/Salvesta] fail \"active\". Vorming on sarnane news active failile:\n"
+        "#   grupinimi  maks.artnumb  min.artnumb  /kataloog\n"
+        "# Neljas väli on baaskataloog (näiteks ~/Mail või ~/News)\n"
+        "#\n"
 
 #: src/lang.c:596
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	"Teil on siin grupis märgitud artikleid - väljun siiski?"
+#, c-format
+msgid   "%s marked as read"
+msgstr  "%s märgitud loetuks"
 
 #: src/lang.c:597
 #, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	"%s=välju, %s=toimeta, %s=ootele: "
+msgid   "%s marked as unread"
+msgstr  "%s märgitud mitteloetuks"
 
 #: src/lang.c:598
 #, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	"%s=välju %s=toimeta %s=salvesta surmamise kirjeldus: "
+msgid   "Marked %d of %d %s as read"
+msgstr  "Märkisin %d (%d) %s loetuks"
 
 #: src/lang.c:599
 #, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	"%s=välju %s=toimeta %s=salvesta valiku kirjeldus: "
+msgid   "Marked %d of %d %s as unread"
+msgstr  "Märkisin %d (%d) %s mitteloetuks"
+
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  "Märk"
+
+#: src/lang.c:601
+#, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  "Märgin kõik artiklid loetuks%s?"
 
-#: src/lang.c:600
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"Kas te tõesti soovite seadeid salvestamata väljuda?"
+#: src/lang.c:602
+#, c-format
+msgid   "Mark article as read%s?"
+msgstr  "Märgin artikli loetuks%s?"
 
 #: src/lang.c:603
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	"Vigane vahemik - lubatud on '0-9.$' näiteks 1-$"
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  "Märgin grupi %s loetuks?"
 
 #: src/lang.c:604
-msgid	"Do you want to abort this operation?"
-msgstr	"Kas soovite seda operatsiooni katkestada?"
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "Märgin teema loetuks%s?"
 
 #: src/lang.c:605
-msgid	"Do you want to exit tin immediately?"
-msgstr	"Kas soovite viivitamata tinist väljuda?"
-
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	"Loen vastust> "
-
-#: src/lang.c:607
-msgid	"Reading ('q' to quit)..."
-msgstr	"Loen ('q' katkestamiseks)..."
-
-#: src/lang.c:608
 #, c-format
-msgid	"Reading %sarticles..."
-msgstr	"Loen %sartikleid..."
+msgid   "Matching %s groups..."
+msgstr  "Otsin %s gruppe..."
 
-#: src/lang.c:609
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
 #, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"Loen %satribuutide faili...\n"
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  "<n>=jooksev n; %s=rida alla; %s=rida üles; %s=abiinfo; %s=välju"
 
-#: src/lang.c:610
-#, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"Loen %sseadete faili...\n"
+#: src/lang.c:608
+#, fuzzy, c-format
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=kiri; %s=välju; %s=vasta kirjaga; %s=salvesta; %s=märgi; %s=postita"
 
-#: src/lang.c:611
-msgid	"Reading filter file...\n"
-msgstr	"Loen filtrite faili...\n"
+#: src/lang.c:610
+#, fuzzy, c-format
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=kiri; %s=välju; %s=vasta kirjaga; %s=salvesta; %s=märgi; %s=postita"
 
 #: src/lang.c:612
-#, c-format
-msgid	"Reading %s groups..."
-msgstr	"Loen %s gruppe..."
+#, fuzzy, c-format
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=otsi edaspidi; %s=otsi tagaspidi; %s=välju"
 
-#: src/lang.c:613
-msgid	"Reading input history file...\n"
-msgstr	"Loen sisendi ajalugu...\n"
+#: src/lang.c:613 src/lang.c:617
+#, 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:614
-msgid	"Reading keymap file...\n"
-msgstr	"Loen klahvitabeli faili...\n"
+#, 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:615
-msgid	"Reading groups from active file... "
-msgstr	"Loen aktiivseid gruppe... "
+#, 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:616
-msgid	"Reading groups from newsrc file... "
-msgstr	"Loen gruppe newsrc failist... "
-
-#: src/lang.c:617
-msgid	"Reading newsgroups file... "
-msgstr	"Loen gruppide kirjeldusi... "
+#, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=quit"
+msgstr  "%s=otsi edaspidi; %s=otsi tagaspidi; %s=välju"
 
 #: src/lang.c:618
-msgid	"Reading newsrc file..."
-msgstr	"Loen newsrc faili..."
+#, 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:619
+#, c-format
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  "%s=lisa; %s=liiguta; %s=uus nimi; %s=kustuta"
 
-#: src/lang.c:620
+#: src/lang.c:621
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	"(%d:%02d järgneb)"
+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:622
 #, c-format
-msgid	"Bogus group %s removed."
-msgstr	"Vigane grupp %s on eemaldatud."
+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:623
 #, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"Viga: %s uus nimi %s"
+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:624
-msgid	"Reply to author..."
-msgstr	"Vastan autorile..."
+#, 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:625
-msgid	"Repost"
-msgstr	"Uuesti postitus"
-
-#: src/lang.c:626
-msgid	"Reposting article..."
-msgstr	"Postitan artikli uuesti..."
+#, 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:627
-#, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	"Postitan artikli(d) gruppi(desse) [%s]> "
+#, fuzzy, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=otsi edaspidi; %s=otsi tagaspidi; %s=välju"
 
 #: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	"Algväärtustan newsrc?"
+msgid   "--More--"
+msgstr  "--Veel--"
 
 #: src/lang.c:629
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	"Vastused edastatakse järgnevatesse gruppidesse"
+#, c-format
+msgid   "Moving %s..."
+msgstr  "Tõstan %s..."
 
 #: src/lang.c:630
-#, 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: "
+msgid   "Message-ID: & last Reference  "
+msgstr  "Message-ID: & viimane viitamine "
 
 #: src/lang.c:631
-#, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	"Vastus %4d : %4d"
+msgid   "Message-ID: line              "
+msgstr  "Message-ID: rida              "
 
 #: src/lang.c:632
-msgid	"Press <RETURN> to continue..."
-msgstr	"Jätkamiseks vajutage <RETURN>..."
+msgid   "Message-ID: & References: line"
+msgstr  "Message-ID: & References: rida"
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	"Valige From    [%s] (j/e): "
+msgid   ", name: "
+msgstr  ", nimi: "
 
 #: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	"Valige read:  (</>num): "
+#, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "Mine gruppi [%s]> "
 
 #: src/lang.c:636
-msgid	"Auto-select Article Menu"
-msgstr	"Automaatselt valitavate artiklite menüü"
+msgid   "newsgroups"
+msgstr  "gruppidesse"
 
 #: src/lang.c:637
 #, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	"Valige Msg-Id  [%s] (f/l/o/n): "
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  "Positsioon %s gruppide nimistus (1,2,..,$) [%d]> "
 
 #: src/lang.c:638
-msgid	"Select pattern scope: "
-msgstr	"Valige mustri ulatus: "
+msgid   "newsgroup"
+msgstr  "gruppi"
 
 #: src/lang.c:639
-#, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	"Valige teema   [%s] (j/e): "
+msgid   "Try and save newsrc file again?"
+msgstr  "Proovin newsrc faili uuesti salvestada?"
 
 #: src/lang.c:640
-msgid	"Select text pattern : "
-msgstr	"Valige tekstimuster : "
+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:641
-msgid	"Select time in days   : "
-msgstr	"Valige aeg päevades   : "
+msgid   "newsrc file saved successfully.\n"
+msgstr  "newsrc fail on edukalt salvestatud.\n"
 
 #: src/lang.c:642
-#, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	"# %s serveri seadete fail\n"
-	"# Selle faili on automaatselt salvestanud %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Ärge muutke seda faili, kui %s töötab, teie muudatused kirjutatakse\n"
-	"# %s töö lõpetamisel üle.\n"
-	"# Kui te ei tea, mida teha, ärge muutke seda faili üldse.\n"
-	"############################################################################\n"
-	"\n"
+msgid   "-- Next response --"
+msgstr  "- Järgmine vastus -"
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  "Ei  "
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  "*** Artikleid pole ***"
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  "Postitatud artikleid pole"
+
+#: src/lang.c:646
+#, fuzzy
+msgid   "*** No attachments ***"
+msgstr  "*** Artikleid pole ***"
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  "*** Kirjeldus puudub ***"
 
 #: src/lang.c:648
-msgid	"Showing unread groups only"
-msgstr	"Näitan ainult lugemata gruppe"
+msgid   "No filename"
+msgstr  "Failil pole nime"
 
 #: src/lang.c:649
-msgid	"Subject: line (ignore case)   "
-msgstr	"Subject: rida (tõstutundetu)"
+msgid   "No group"
+msgstr  "Gruppi pole"
 
 #: src/lang.c:650
-msgid	"Subject: line (case sensitive)"
-msgstr	"Subject: rida (tõstutundlik)"
+msgid   "*** No groups ***"
+msgstr  "*** Gruppe pole ***"
 
 #: src/lang.c:651
-msgid	"Save"
-msgstr	"Salvesta"
+msgid   "No more groups to read"
+msgstr  "Lugemiseks rohkem gruppe pole"
 
 #: src/lang.c:652
-#, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"Salvestan '%s' (%s/%s)?"
+msgid   "No last message"
+msgstr  "Viimast teadet pole"
 
 #: src/lang.c:653
-msgid	"Save configuration before continuing?"
-msgstr	"Salvestan seaded enne jätkamist?"
+msgid   "No mail address"
+msgstr  "E-posti aadressi pole"
 
 #: src/lang.c:654
-msgid	"Save filename> "
-msgstr	"Fail salvestamiseks> "
+msgid   "No articles marked for saving"
+msgstr  "Salvestamiseks märgitud artikleid pole"
 
 #: src/lang.c:655
-msgid	"Saved"
-msgstr	"Salvestatud"
+msgid   "No match"
+msgstr  "Ei leia"
 
 #: src/lang.c:656
-#, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	"%4d lugemata (%4d kuuma) %s grupis %s\n"
+msgid   "No more groups"
+msgstr  "Rohkem gruppe pole"
 
 #: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	"Salvestatud %s...\n"
+msgid   "No newsgroups"
+msgstr  "Gruppe pole"
 
 #: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	"Midagi ei salvestatud"
+msgid   "No next unread article"
+msgstr  "Järgmist lugemata artiklit pole"
 
 #: src/lang.c:659
-#, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"\n"
-	"%s %d %s %d grupist%s\n"
+msgid   "No previous group"
+msgstr  "Eelmist gruppi pole"
 
 #: src/lang.c:660
-#, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"-- %s salvestati %s%s --"
+msgid   "No previous search, nothing to repeat"
+msgstr  ""
 
 #: src/lang.c:661
-#, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"-- %s salvestati %s - %s --"
+msgid   "No previous unread article"
+msgstr  "Eelmist lugemata artiklit pole"
 
 #: src/lang.c:662
-msgid	"Saving..."
-msgstr	"Salvestan..."
+msgid   "No responses"
+msgstr  "Vastuseid pole"
 
 #: src/lang.c:663
-#, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s: Ekraani initsialiseerimine ebaõnnestus"
+msgid   "No responses to list in current thread"
+msgstr  "Jooksvas teemas pole vastuseid"
+
+#: src/lang.c:664
+msgid   "*** No scopes ***"
+msgstr  "*** Skoope pole ***"
 
 #: src/lang.c:665
-#, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s: ekraan on liiga väike\n"
+msgid   "No search string"
+msgstr  "Otsingusõne puudub"
 
-#: src/lang.c:667
-#, 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:666
+msgid   "No subject"
+msgstr  "Teema puudub"
 
 #: src/lang.c:668
 #, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"Otsin tagurpidi [%s]> "
+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:669
 #, c-format
-msgid	"Search body [%s]> "
-msgstr	"Otsi kehast [%s]> "
+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:670
 #, c-format
-msgid	"Search forwards [%s]> "
-msgstr	"Otsi edaspidi [%s]> "
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  "%s: Terminalil peab olema ekraanipuhastamise (cl) omadus\n"
 
 #: src/lang.c:671
-msgid	"Searching..."
-msgstr	"Otsin..."
+#, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  "%s: Terminal peab toetama kursori liigutamist (cm)\n"
 
 #: src/lang.c:672
 #, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	"Otsin artiklit %d/%d ('q' katkestamiseks)..."
-
-#: src/lang.c:673
-msgid	"Select article> "
-msgstr	"Valige artikkel> "
+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:674
-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."
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  "%s/%s jaoks puudub vaatur\n"
 
 #: src/lang.c:675
-msgid	"Select group> "
-msgstr	"Valige grupp> "
+msgid   "Newsgroup does not exist on this server"
+msgstr  "Gruppi pole sellel serveril"
 
 #: src/lang.c:676
 #, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	"Sisestage valiku muster [%s]> "
+msgid   "Group %s not found in active file"
+msgstr  "Gruppi %s pole aktiivsete gruppide failis"
 
 #: src/lang.c:677
-msgid	"Select thread > "
-msgstr	"Valige teema > "
+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:678
-#, 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"
+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:679
-msgid	"servers active-file"
-msgstr	"serveri aktiivsete gruppide fail"
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  "# NNTP-server -> newsrc teisendustabel ja %s %s\n"
+        "# NNTP-server lühivormide nimistu\n"
+        "#\n"
+        "# selle faili formaat on\n"
+        "#   <NNTP-serveri FQDN> <newsrc fail> <lühivorm> ...\n"
+        "#\n"
+        "# kui <newsrc fail> on antud ilma teeta, eeldatakse asukohaks $HOME\n"
+        "#\n"
+        "# näited:\n"
+        "#   news.tin.org  .newsrc-tin.org  tinorg\n"
+        "#   news.example.org    /tmp/nrc-ex      example    ex\n"
+        "#\n"
+
+#: src/lang.c:686
+msgid   "Only"
+msgstr  "Ainult"
 
-#: src/lang.c:680
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	"Uutesse gruppidesse ei saa siseneda. Tellige kõigepealt..."
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "Võti pole lubatud. Kasutage kompileerimisel %s."
 
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	"<TÜHIK>"
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  "Omaduste menüü"
 
-#: src/lang.c:682
+#: src/lang.c:689
+msgid   "Options Menu Commands"
+msgstr  "Omaduste menüü käsud"
+
+#: src/lang.c:692
 #, c-format
-msgid	"Starting: (%s)"
-msgstr	"Stardin: (%s)"
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  "Viga regulaaravaldises: %s positsioonil %d '%s'"
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"Teemad (%d/%d)"
+msgid   "Error in regex: pcre internal error %d"
+msgstr  "Viga regulaaravaldises: pcre sisemine viga %d"
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, c-format
-msgid	"Thread (%.*s)"
-msgstr	"Teema (%.*s)"
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  "Viga regulaaravaldises: uurimiseks - pcre sisemine viga %s"
 
-#: src/lang.c:685
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	"Sisestage tellimise muster> "
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  "Postita vastus..."
 
-#: src/lang.c:686
-#, c-format
-msgid	"subscribed to %d groups"
-msgstr	"%d gruppi on tellitud"
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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  "Artikli postitamisel tekkis viga. Kui te arvate, et see viga on ajutine\n"
+        "või muul viisil kõrvaldatav, võite artikli salvestada hiljem postitamiseks\n"
+        "ja ^O käsuga hiljem postitada.\n"
 
-#: src/lang.c:687
+#: src/lang.c:700
+msgid   "Posted articles history"
+msgstr  "Postitatud artiklite ajalugu"
+
+#: src/lang.c:701
 #, c-format
-msgid	"Subscribed to %s"
-msgstr	"%s on tellitud"
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "Postita gruppidesse [%s]> "
 
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	"Tellin... "
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  "-- lõpptöötlus alustas --"
 
-#: src/lang.c:689
-#, 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:703
+msgid   "-- post processing completed --"
+msgstr  "-- lõpptöötlus lõpetas --"
 
-#: src/lang.c:690
+#: src/lang.c:704
 #, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	"Asendan artikli(d) gruppides [%s]> "
+msgid   "Post subject [%s]> "
+msgstr  "Postituse teema [%s]> "
 
-#: src/lang.c:691
-msgid	"Superseding article ..."
-msgstr	"Asendan artikli ..."
+#: src/lang.c:705
+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:692
-#, 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:706
+msgid   "Posting article..."
+msgstr  "Postitan artiklit..."
 
-#: src/lang.c:694
+#: src/lang.c:707
 #, c-format
-msgid	"%d days"
-msgstr	"%d päeva"
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  "Postitan ootel artiklid [%%s]? (%s/%s/%s/%s/%s): "
 
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	"<TAB>"
-
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	"TeX "
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  "Kuum %s"
 
-#: src/lang.c:697
-msgid	"# Default action/prompt strings\n"
-msgstr	"# Vaikimisi aktsioonide/viipade sõned\n"
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  "Märgitud %s"
 
-#: src/lang.c:698
-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"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	"# Vaikeväärtused kiire (1 võtme) surmamisel & auto-valiku filtritele\n"
-	"# header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & kogu References: rida\n"
-	"#             5=Message-ID: & ainult viimane References: kirje\n"
-	"#             6=Message-ID: kirje ainult 7=Lines:\n"
-	"# global=ON/OFF  ON=rakenda kõikidele gruppidele OFF=ainult jooksvale "
-	"grupile\n"
-	"# 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:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  "Märkimata %s"
 
 #: src/lang.c:711
-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"
+msgid   "Processing mail messages marked for deletion."
+msgstr  "Töötlen kirju, mis on kustutamiseks märgitud."
 
 #: src/lang.c:712
-msgid	"# Host & time info used for detecting new groups (don't touch)\n"
-msgstr	"# Masin & aeg - kasutatakse uute gruppide leidmiseks (mitte muuta)\n"
+msgid   "Processing saved articles marked for deletion."
+msgstr  "Töötlen salvestatud ja kustutamiseks märgitud artikleid."
 
 #: src/lang.c:713
-msgid	"There is no news\n"
-msgstr	"Uudiseid pole\n"
+#, 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:714
-msgid	"Thread"
-msgstr	"Teema"
+msgid   "Article unchanged, abort mailing?"
+msgstr  "Artiklit ei ole muudetud, katkestan saatmise?"
 
 #: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	"Teemataseme käsud"
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	"Teema pole valitud"
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  "Kas soovite näha postitamisootel artikleid (%d)?"
 
 #: src/lang.c:717
-msgid	"Thread selected"
-msgstr	"Teema on valitud"
+msgid   "Add quick kill filter?"
+msgstr  "Lisan kiirsurmamise filtri?"
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  "Lisan kiirvaliku filtri?"
 
 #: src/lang.c:719
-msgid	"threads"
-msgstr	"teemad"
+msgid   "Do you really want to quit?"
+msgstr  "Kas te tõesti soovite väljuda?"
+
+#: src/lang.c:720
+#, 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:721
-msgid	"Thread range"
-msgstr	"Teemade vahemik"
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  "Teil on siin grupis märgitud artikleid - väljun siiski?"
 
 #: src/lang.c:722
-msgid	"thread"
-msgstr	"teema"
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  "%s=välju, %s=toimeta, %s=ootele: "
 
 #: src/lang.c:723
 #, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"Teema %4s : %4s"
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  "%s=välju %s=toimeta %s=salvesta surmamise kirjeldus: "
 
 #: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	"Järjestan artiklid teemade kaupa..."
-
-#: src/lang.c:725
 #, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	"Sõnade esiletõstmine lülitatud %s"
-
-#: src/lang.c:726
-msgid	"Toggled rot13 encoding"
-msgstr	"Lülitatud rot13 kodeerimine"
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  "%s=välju %s=toimeta %s=salvesta valiku kirjeldus: "
 
-#: src/lang.c:727
-#, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	"Lülitatud saksa TeX kodeering %s"
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  "Kas te tõesti soovite seadeid salvestamata väljuda?"
 
 #: src/lang.c:728
-#, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	"Lülitatud tab-width väärtus %d"
-
-#: src/lang.c:729
-#, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	"%d Üritan punkt-lukustada %s"
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  "Vigane vahemik - lubatud on '0-9.$' näiteks 1-$"
 
 #: src/lang.c:730
-#, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%d Üritan lukustada %s"
+msgid   "Do you want to abort this operation?"
+msgstr  "Kas soovite seda operatsiooni katkestada?"
 
 #: src/lang.c:731
-msgid	"           h=help\n"
-msgstr	"           h=appi\n"
+msgid   "Do you want to exit tin immediately?"
+msgstr  "Kas soovite viivitamata tinist väljuda?"
 
 #: src/lang.c:733
-msgid	"Unlimited"
-msgstr	"Piiramata"
+msgid   "Reading ('q' to quit)..."
+msgstr  "Loen ('q' katkestamiseks)..."
 
 #: src/lang.c:734
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	"Sisestage loobumise muster> "
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  "Loen %sartikleid..."
 
 #: src/lang.c:735
 #, c-format
-msgid	"Error decoding %s : %s"
-msgstr	"Viga %s dekodeerimisel: %s"
+msgid   "Reading %sattributes file...\n"
+msgstr  "Loen %satribuutide faili...\n"
 
 #: src/lang.c:736
-msgid	"No end."
-msgstr	"Lõpp puudub."
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  "Loen %sseadete faili...\n"
 
 #: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	"%s on edukalt dekodeeritud."
+msgid   "Reading filter file...\n"
+msgstr  "Loen filtrite faili...\n"
 
 #: src/lang.c:738
 #, 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"
+msgid   "Reading %s groups..."
+msgstr  "Loen %s gruppe..."
 
 #: src/lang.c:739
-msgid	"unread "
-msgstr	"lugemata "
+msgid   "Reading input history file...\n"
+msgstr  "Loen sisendi ajalugu...\n"
 
 #: src/lang.c:740
-#, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	"loobunud %d grupist"
+msgid   "Reading keymap file...\n"
+msgstr  "Loen klahvitabeli faili...\n"
 
 #: src/lang.c:741
-#, c-format
-msgid	"Unsubscribed from %s"
-msgstr	"Loobunud grupist %s"
+msgid   "Reading groups from active file... "
+msgstr  "Loen aktiivseid gruppe... "
 
 #: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	"Loobun gruppidest... "
+msgid   "Reading groups from newsrc file... "
+msgstr  "Loen gruppe newsrc failist... "
 
 #: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	"Tükeldan teemad..."
+msgid   "Reading newsgroups file... "
+msgstr  "Loen gruppide kirjeldusi... "
 
 #: src/lang.c:744
-msgid	"Updated"
-msgstr	"Uuendatud"
+msgid   "Reading newsrc file..."
+msgstr  "Loen newsrc faili..."
 
 #: src/lang.c:745
-msgid	"Updating"
-msgstr	"Uuendan"
-
-#: src/lang.c:746
-#, c-format
-msgid	"Opening %s\n"
-msgstr	"Proovin %s\n"
+msgid   "References: line              "
+msgstr  "References: rida              "
 
 #: src/lang.c:747
-msgid	"No more URL's in this article"
-msgstr	"Selles artiklis pole rohkem URL'e"
-
-#: src/lang.c:748
-msgid	"Use MIME display program for this message?"
-msgstr	"Kasutan selle teate lugemiseks MIME näitamise programmi?"
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  "(%d:%02d järgneb)"
 
 #: src/lang.c:749
-msgid	"  -c       mark all news as read in subscribed newsgroups (batch mode)"
-msgstr	"  -c       märgi tellitud gruppides kõik artiklid loetuks (pakettmood)"
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  "Vigane grupp %s on eemaldatud."
 
 #: src/lang.c:750
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	"  -Z       tagasta väärtus, mis näitab, kas on lugemata artikleid (pakettmood)"
+msgid   "Removed from the previous rule: "
+msgstr  "Eelmisest reeglist eemaldatud: "
 
 #: src/lang.c:751
-msgid	"  -q       don't check for new newsgroups"
-msgstr	"  -q       ära otsi uusi gruppe"
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "Viga: %s uus nimi %s"
 
 #: src/lang.c:752
-msgid	"  -X       don't save any files on quit"
-msgstr	"  -X       töö lõpetamisel ära salvesta ühtegi faili"
+msgid   "Reply to author..."
+msgstr  "Vastan autorile..."
 
 #: src/lang.c:753
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	"  -d       ära näita gruppide kirjeldusi"
+msgid   "Repost"
+msgstr  "Uuesti postitus"
 
 #: src/lang.c:754
-msgid	"  -G limit get only limit articles/group"
-msgstr	"  -G num   loe aunult num artiklit/gruppi"
+msgid   "Reposting article..."
+msgstr  "Postitan artikli uuesti..."
 
 #: src/lang.c:755
 #, c-format
-msgid	"  -H       help information about %s"
-msgstr	"  -H       %s kasutamise abiinfo"
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  "Postitan artikli(d) gruppi(desse) [%s]> "
 
 #: src/lang.c:756
-msgid	"  -h       this help message"
-msgstr	"  -h       see abitekst"
+msgid   "Reset newsrc?"
+msgstr  "Algväärtustan newsrc?"
 
 #: src/lang.c:757
-#, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	"  -I kat   uudiste indeksfaili kataloog [vaikimisi=%s]"
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  "Vastused edastatakse järgnevatesse gruppidesse"
 
 #: src/lang.c:758
-msgid	"  -u       update index files (batch mode)"
-msgstr	"  -u       värskenda indeksfaile (pakettmood)"
-
-#: src/lang.c:759
 #, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	"  -m kat   kirjakaustade kataloog [vaikimisi=%s]"
+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:760
-#, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	"\n"
-	"Saatke palun vea raport/kommentaarid aadressil %s"
-
-#: src/lang.c:761
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	"  -N       saada uued vastused teie postitustele (pakettmood)"
+msgid   "Press <RETURN> to continue..."
+msgstr  "Jätkamiseks vajutage <RETURN>..."
 
 #: src/lang.c:762
-msgid	"  -M user  mail new news to specified user (batch mode)"
-msgstr	"  -M kasut saada uued artiklid näidatud kasutajale (pakettmood)"
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  "Valige From    [%s] (j/e): "
 
 #: src/lang.c:763
-#, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	"  -f fail  tellitud gruppide fail [vaikimisi=%s]"
+msgid   "Select Lines: (</>num): "
+msgstr  "Valige read:  (</>num): "
 
 #: src/lang.c:764
-msgid	"  -x       no posting mode"
-msgstr	"  -x       postitamiseta mood"
+msgid   "Auto-select Article Menu"
+msgstr  "Automaatselt valitavate artiklite menüü"
 
 #: src/lang.c:765
-msgid	"  -w       post an article and exit"
-msgstr	"  -w       postita artikkel ja lõpeta töö"
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  "Valige Msg-Id  [%s] (f/l/o/n): "
 
 #: src/lang.c:766
-msgid	"  -o       post all postponed articles and exit"
-msgstr	"  -o       postita kõik postitamisootel artiklid ja lõpeta töö"
+msgid   "Select pattern scope: "
+msgstr  "Valige mustri ulatus: "
 
 #: src/lang.c:767
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	"  -r       loe artikleid kasutades vaikimisi NNTP serverit"
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  "Valige teema   [%s] (j/e): "
 
 #: src/lang.c:768
-msgid	"  -R       read news saved by -S option"
-msgstr	"  -R       loe artikleid, mis on salvestatud -S võtmega"
+msgid   "Select text pattern : "
+msgstr  "Valige tekstimuster : "
 
 #: src/lang.c:769
-#, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	"  -s kat   artiklite salvestamise kataloog [vaikimisi=%s]"
+msgid   "Select time in days   : "
+msgstr  "Valige aeg päevades   : "
 
 #: src/lang.c:770
-msgid	"  -S       save new news for later reading (batch mode)"
-msgstr	"  -S       salvesta uued artiklid hilisemaks lugemiseks (pakettmood)"
-
-#: src/lang.c:771
-msgid	"  -z       start if any unread news"
-msgstr	"  -z       alusta tööd, kui on lugemata uudiseid"
-
-#: src/lang.c:772
-#, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"Usenet klient.\n"
-	"\n"
-	"Kasuta: %s [võtmed] [grupp[,...]]"
-
-#: src/lang.c:773
-msgid	"  -v       verbose output for batch mode options"
-msgstr	"  -v       esita pakettmoodi käskudega detailsemat informatsiooni"
-
-#: src/lang.c:774
-msgid	"  -V       print version & date information"
-msgstr	"  -V       esita versiooni ja kuupäeva informatsioon"
-
-#: src/lang.c:775
 #, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	"%s on kasutatav ainult pakettmoodi käskudeta\n"
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  "# %s serveri seadete fail\n"
+        "# Selle faili on automaatselt salvestanud %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Ärge muutke seda faili, kui %s töötab, teie muudatused kirjutatakse\n"
+        "# %s töö lõpetamisel üle.\n"
+        "# Kui te ei tea, mida teha, ärge muutke seda faili üldse.\n"
+        "############################################################################\n"
+        "\n"
 
 #: src/lang.c:776
-#, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	"%s on kasutatav ainult pakettmoodi käskudega\n"
+msgid   "Showing unread groups only"
+msgstr  "Näitan ainult lugemata gruppe"
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  "Subject: rida (tõstutundetu)"
 
 #: src/lang.c:778
-#, 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"
+msgid   "Subject: line (case sensitive)"
+msgstr  "Subject: rida (tõstutundlik)"
 
 #: src/lang.c:779
+msgid   "Save"
+msgstr  "Salvesta"
+
+#: src/lang.c:780
 #, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"Vaatan '%s' (%s/%s)?"
+msgid   "Save '%s' (%s/%s)?"
+msgstr  "Salvestan '%s' (%s/%s)?"
 
 #: src/lang.c:781
-#, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	"\n"
-	"Hoiatus: postitus ületab %d veergu. Esimene pikk rida on rida %d:\n"
-	"%-100s\n"
+msgid   "Save configuration before continuing?"
+msgstr  "Salvestan seaded enne jätkamist?"
 
 #: src/lang.c:782
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	"\n"
-	"Hoiatus: artiklit ei ole toimetamise käigus muudetud\n"
+msgid   "Save filename> "
+msgstr  "Fail salvestamiseks> "
 
 #: src/lang.c:783
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	"\n"
-	"Hoiatus: \"Subject:\" real on ainult tühikud.\n"
+msgid   "Saved"
+msgstr  "Salvestatud"
 
 #: src/lang.c:784
-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"
+#, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  "%4d lugemata (%4d kuuma) %s grupis %s\n"
+
+#: src/lang.c:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  "Salvestatud %s...\n"
 
 #: src/lang.c:786
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	"\n"
-	"Hoiatus: Artiklis on \"References:\" päis, aga \"Subject:\" ei alga fraasiga\n"
-	"         \"Re: \" ega sisalda \"(was:\".\n"
+msgid   "Nothing was saved"
+msgstr  "Midagi ei salvestatud"
+
+#: src/lang.c:787
+#, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s %d grupist%s\n"
+
+#: src/lang.c:788
+#, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s salvestati %s%s --"
 
 #: src/lang.c:789
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Lugege hoolikalt!\n"
-	"\n"
-	"  Te asute kustutama artiklit, mis paistab olema teie poolt kirjutatud.\n"
-	"  Seega te eemaldate artikli paljudest uudiseserveritest  üle  maailma,\n"
-	"  kuid kustutamisel ei ole mingit garantiid.\n"
-	"\n"
-	"Siin on artikkel, mida te hakkate kustutama:\n"
-	"\n"
+#, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s salvestati %s - %s --"
+
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  "Salvestan..."
+
+#: src/lang.c:791
+#, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  "%s: Ekraani initsialiseerimine ebaõnnestus"
 
 #: src/lang.c:793
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	"\n"
-	"Hoiatus: Te kasutate keerukat kodeeringut (nagu base64 või quoted-printable)\n"
-	"         ja postitamiseks välist inews programmi.  Kui  see  inews  programm\n"
-	"         lisab artiklile signatuuri, siis on võimalik,  et seda ei kodeerita\n"
-	"         korrektselt.\n"
+#, c-format
+msgid   "%s: screen is too small\n"
+msgstr  "%s: ekraan on liiga väike\n"
 
-#: src/lang.c:798
+#: src/lang.c:795
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	"\n"
-	"\n"
-	"Te uuendate tini versioonile %s. Mõned\n"
-	"Väärtused failis %s on muutunud!\n"
-	"Palun lugege faile WHATSNEW, jne...\n"
+msgid   "screen is too small, %s is exiting\n"
+msgstr  "ekraan on liiga väike, %s lõpetab töö\n"
+
+#: src/lang.c:796
+msgid   "Delete scope?"
+msgstr  "Kustutan skoobi?"
+
+#: src/lang.c:797
+msgid   "Enter scope> "
+msgstr  "Sisestage skoop> "
+
+#: src/lang.c:798
+msgid   "Select new position> "
+msgstr  "Valige uus positsioon> "
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  "Uus positsioon ei saa olla globaalne skoop"
 
 #: src/lang.c:800
-#, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	"\n"
-	"\n"
-	"Te käivitate tin versioon %s, mis on vanem kui teie eelmises sessioonis\n"
-	"kasutatu!\n"
-	"Mõningaid väärtusi failis %s võidakse ignoreerida, mõningaid võidakse muuta!\n"
+msgid   "Global scope, operation not allowed"
+msgstr  "Globaalne skoop, operatsioon ei ole lubatud"
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  "Skoobi uus nimi> "
+
+#: src/lang.c:802
+msgid   "Select scope> "
+msgstr  "Valige skoop> "
 
 #: src/lang.c:803
+msgid   "Scopes Menu"
+msgstr  "Skoopide menüü"
+
+#: src/lang.c:804
+msgid   "Scopes Menu Commands"
+msgstr  "Skoopide menüü käsud"
+
+#: src/lang.c:805
 #, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	"Hoiatus: tin kirjutas vähem gruppe teie\n"
-	"\t%s\n"
-	"kui ta luges käivitamisel. Kui te ei loobunud sessiooni kestel %ld\n"
-	"grupist%s, tähendab see viga ja te peaksite varundama oma %s\n"
-	"enne, kui te tini uuesti käivitate!\n"
+msgid   "Search backwards [%s]> "
+msgstr  "Otsin tagurpidi [%s]> "
+
+#: src/lang.c:806
+#, c-format
+msgid   "Search body [%s]> "
+msgstr  "Otsi kehast [%s]> "
 
 #: src/lang.c:807
 #, c-format
-msgid	"\n"
-	"Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
-msgstr	"\n"
-	"Hoiatus: Leidsin %d '-- \\n' rida, mis võib tekitada osades inimestes "
-	"segadust.\n"
+msgid   "Search forwards [%s]> "
+msgstr  "Otsi edaspidi [%s]> "
 
 #: src/lang.c:808
-#, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	"Hoiatus: Salvestati ainult %d artiklit %d artiklist"
+msgid   "Searching..."
+msgstr  "Otsin..."
 
 #: src/lang.c:809
 #, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	"\n"
-	"Hoiatus: Teie signatuur on pikem, kui %d rida. Kuna tavaliselt signatuurid "
-	"ei\n"
-	"         sisalda kasulikku informatsiooni, siis peaksid nad olema "
-	"võimalikult\n"
-	"         lühikesed.\n"
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  "Otsin artiklit %d/%d ('q' katkestamiseks)..."
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  "Valige artikkel> "
+
+#: src/lang.c:811
+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:812
+msgid   "Select group> "
+msgstr  "Valige grupp> "
 
 #: src/lang.c:813
 #, 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?"
+msgid   "Enter selection pattern [%s]> "
+msgstr  "Sisestage valiku muster [%s]> "
 
 #: src/lang.c:814
-msgid	"\n"
-	"Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
-msgstr	"\n"
-	"Hoiatus: Signatuuride alguses peaks olema '-- \\n', mitte '--\\n'.\n"
+msgid   "Select thread > "
+msgstr  "Valige teema > "
 
 #: src/lang.c:815
-msgid	"Writing attributes file..."
-msgstr	"Kirjutan atribuutide faili..."
+#, 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:816
+msgid   "servers active-file"
+msgstr  "serveri aktiivsete gruppide fail"
 
 #: src/lang.c:817
-#, c-format
-msgid	"%d Responses"
-msgstr	"%d Vastust"
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  "Uutesse gruppidesse ei saa siseneda. Tellige kõigepealt..."
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  "<TÜHIK>"
 
 #: src/lang.c:819
 #, c-format
-msgid	"Added %d %s"
-msgstr	"Lisatud %d %s"
+msgid   "Starting: (%s)"
+msgstr  "Stardin: (%s)"
 
 #: src/lang.c:820
-msgid	"No unsubscribed groups to show"
-msgstr	"Tellimata gruppe pole"
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  "Teemad (%d/%d)"
 
 #: src/lang.c:821
-msgid	"Showing subscribed to groups only"
-msgstr	"Näitan ainult tellitud gruppe"
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  "Teema (%.*s)"
 
 #: src/lang.c:822
-msgid	"Yes "
-msgstr	"Jah "
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  "Sisestage tellimise muster> "
 
 #: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	"    Teil on kiri\n"
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  "%d gruppi on tellitud"
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  "%s on tellitud"
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  "Tellin... "
+
+#: src/lang.c:826
+#, 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:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  "Asendan artikli(d) gruppides [%s]> "
 
 #: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  "Asendan artikli ..."
+
+#: src/lang.c:829
 #, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	"\n"
-	"Hoiatus: Postitus on %s ja sisaldab sümboleid, mis puuduvad teie poolt\n"
-	"         valitud MM_NETWORK_CHARSET: %s.\n"
-	"         Kui te postitate selle artikli muutmata kujul, asendatakse\n"
-	"         need sümbolid sümboliga '?'. Et vältida sodi teie artiklis, palun\n"
-	"         seda kas muuta ja eemaldada need sümbolid või muuta seadet\n"
-	"         MM_NETWORK_CHARSET. Viimast saate teostada kasutades valikut M)"
-	"enüü.\n"
-
-#: src/lang.c:839
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"  -D       silumismood 1=NNTP 2=KÕIK"
-
-#: src/lang.c:843
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Lugege hoolikalt!\n"
-	"\n"
-	"  Te olete kustutamas artiklit, mida te ilmselt pole kirjutanud.  Seega\n"
-	"  eemaldatakse artikkle paljudest uudiseserveritest üle maailma. Useneti\n"
-	"  üldsus loeb sellist käitumist ebakohaseks.  Vajutage  'd' ainult siis,\n"
-	"  kui te olete täiesti veendunud selle sammu vajalikkuses.\n"
-	"\n"
-	"Siin on artikkel, mida te asute kustutama:\n"
-	"\n"
+msgid   "\n"
+        "Stopped. Type 'fg' to restart %s\n"
+msgstr  "\n"
+        "Peatatud. %s uuesti käivitamiseks kirjutage palun 'fg'\n"
+
+#: src/lang.c:831
+#, c-format
+msgid   "%d days"
+msgstr  "%d päeva"
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  "<TAB>"
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  "TeX "
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  "# Vaikimisi aktsioonide/viipade sõned\n"
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  "# Vaikeväärtused kiire (1 võtme) surmamisel & auto-valiku filtritele\n"
+        "# header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & kogu References: rida\n"
+        "#             5=Message-ID: & ainult viimane References: kirje\n"
+        "#             6=Message-ID: kirje ainult 7=Lines:\n"
+        "# global=ON/OFF  ON=rakenda kõikidele gruppidele OFF=ainult jooksvale "
+        "grupile\n"
+        "# 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:848
+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:849
+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:850
+msgid   "There is no news\n"
+msgstr  "Uudiseid pole\n"
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  "Teema"
 
 #: src/lang.c:852
-msgid	"toggle color"
-msgstr	"lülita värve"
+msgid   "Thread Level Commands"
+msgstr  "Teemataseme käsud"
 
 #: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	"# Ekraaniosade värvide muutmine\n"
-	"# Võimalikud väärtused on:\n"
-	"#  -1 = vaikimisi (valge esiplaan ja must tagaplaan)\n"
-	"#   0 = must\n"
-	"#   1 = punane\n"
-	"#   2 = roheline\n"
-	"#   3 = pruun\n"
-	"#   4 = sinine\n"
-	"#   5 = roosa\n"
-	"#   6 = lilla\n"
-	"#   7 = valge\n"
-	"# Need on *ainult* esiplaani tarvis:\n"
-	"#   8 = hall\n"
-	"#   9 = helepunane\n"
-	"#  10 = heleroheline\n"
-	"#  11 = kollane\n"
-	"#  12 = helesinine\n"
-	"#  13 = heleroosa\n"
-	"#  14 = helelilla\n"
-	"#  15 = helevalge\n"
-	"\n"
+msgid   "Thread deselected"
+msgstr  "Teema pole valitud"
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  "Teema on valitud"
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  "teemad"
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  "teema"
+
+#: src/lang.c:859
+#, c-format
+msgid   "Thread %4s of %4s"
+msgstr  "Teema %4s : %4s"
+
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  "Järjestan artiklid teemade kaupa..."
+
+#: src/lang.c:861
+#, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  "Sõnade esiletõstmine lülitatud %s"
+
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  "Lülitatud rot13 kodeerimine"
+
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  "Lülitatud saksa TeX kodeering %s"
+
+#: src/lang.c:864
+#, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  "Lülitatud tab-width väärtus %d"
+
+#: src/lang.c:866
+#, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  "%d Üritan punkt-lukustada %s"
+
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  "%d Üritan lukustada %s"
+
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  "           h=appi"
+
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  "Piiramata"
+
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  "Sisestage loobumise muster> "
 
 #: src/lang.c:873
-msgid	"  -a       toggle color flag"
-msgstr	"  -a       lülita värvide kasutamist"
+#, c-format
+msgid   "Error decoding %s : %s"
+msgstr  "Viga %s dekodeerimisel: %s"
+
+#: src/lang.c:874
+msgid   "No end."
+msgstr  "Lõpp puudub."
+
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s on edukalt dekodeeritud."
+
+#: src/lang.c:876
+#, 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:877
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"Viga: Followup-To real on rohkem kui üks grupp!\n"
+msgid   "unread "
+msgstr  "lugemata "
 
 #: src/lang.c:878
 #, 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"
+msgid   "unsubscribed from %d groups"
+msgstr  "loobunud %d grupist"
 
 #: src/lang.c:879
 #, c-format
-msgid	"\n"
-	"Error: \"%s\" is not a valid newsgroup!\n"
-msgstr	"\n"
-	"Viga: \"%s\" ei ole lubatud grupp!\n"
+msgid   "Unsubscribed from %s"
+msgstr  "Loobunud grupist %s"
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  "Loobun gruppidest... "
 
 #: src/lang.c:881
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"Hoiatus: Followup-To on seatud rohkem, kui ühele grupile!\n"
+msgid   "Unthreading articles..."
+msgstr  "Tükeldan teemad..."
 
 #: src/lang.c:882
-#, 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
-#, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
-msgstr	"\n"
-	"Hoiatus: \"%s\" puudub teie newsrc failist, see võib olla selles serveris "
-	"vigane!\n"
+msgid   "Updated"
+msgstr  "Uuendatud"
 
 #: src/lang.c:884
 #, 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"
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  "mitteparsitav \"LIST COUNTS\" rida: \"%s\""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  "Uuendan"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  ""
 
 #: src/lang.c:888
-#, c-format
-msgid	"%d files successfully written from %d articles. %d %s occurred."
-msgstr	"Edukalt kirjutatud %d faili %d artiklist. Esines %d viga%s."
+#, fuzzy
+msgid   "URL Menu Commands"
+msgstr  "Skoopide menüü käsud"
 
 #: src/lang.c:889
-msgid	"Missing parts."
-msgstr	"Osad puuduvad."
+#, fuzzy, c-format
+msgid   "Opening %s"
+msgstr  "Proovin %s\n"
 
 #: src/lang.c:890
-msgid	"No beginning."
-msgstr	"Algus puudub."
+#, fuzzy
+msgid   "Select URL> "
+msgstr  "Valige skoop> "
 
 #: src/lang.c:891
-msgid	"No data."
-msgstr	"Andmeid pole."
+#, fuzzy
+msgid   "No URLs in this article"
+msgstr  "Selles artiklis pole rohkem URL'e"
 
 #: src/lang.c:892
-msgid	"Unknown error."
-msgstr	"Tundmatu viga."
+msgid   "Use MIME display program for this message?"
+msgstr  "Kasutan selle teate lugemiseks MIME näitamise programmi?"
+
+#: src/lang.c:893
+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:894
+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:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  "  -q       ära otsi uusi gruppe"
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  "  -X       töö lõpetamisel ära salvesta ühtegi faili"
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  "  -d       ära näita gruppide kirjeldusi"
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  "  -G num   loe aunult num artiklit/gruppi"
+
+#: src/lang.c:899
 #, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"\t%s kontrollsumma (%ld %s)"
+msgid   "  -H       help information about %s"
+msgstr  "  -H       %s kasutamise abiinfo"
 
 #: src/lang.c:900
-msgid	"Reading mail active file... "
-msgstr	"Loen aktiivsete kirjade kausta... "
+msgid   "  -h       this help message"
+msgstr  "  -h       see abitekst"
 
 #: src/lang.c:901
-msgid	"Reading mailgroups file... "
-msgstr	"Loen kirjagruppide faili... "
+#, c-format
+msgid   "  -I dir   news index file directory [default=%s]"
+msgstr  "  -I kat   uudiste indeksfaili kataloog [vaikimisi=%s]"
+
+#: src/lang.c:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  "  -u       värskenda indeksfaile (pakettmood)"
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  "  -m kat   kirjakaustade kataloog [vaikimisi=%s]"
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "Saatke palun vea raport/kommentaarid aadressil %s"
 
 #: src/lang.c:905
-msgid	"perform PGP operations on article"
-msgstr	"kasuta artiklil PGP operatsioone"
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  "  -N       saada uued vastused teie postitustele (pakettmood)"
 
 #: src/lang.c:906
-msgid	"Add key(s) to public keyring?"
-msgstr	"Lisan võtmed avalike võtmete hoidlasse?"
+msgid   "  -M user  mail new news to specified user (batch mode)"
+msgstr  "  -M kasut saada uued artiklid näidatud kasutajale (pakettmood)"
 
 #: src/lang.c:907
 #, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	"%s=krüpti, %s=allkirjasta, %s=mõlemad, %s=välju: "
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  "  -f fail  tellitud gruppide fail [vaikimisi=%s]"
 
 #: src/lang.c:908
-#, c-format
-msgid	"%s=sign, %s=sign & include public key, %s=quit: "
-msgstr	"%s=allkirjasta, %s=allkirjasta & lisa avalik võti, %s=välju: "
+msgid   "  -x       no posting mode"
+msgstr  "  -x       postitamiseta mood"
 
 #: src/lang.c:909
-#, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	"PGP pole seadistatud (ei saa avada %s)"
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       postita artikkel ja lõpeta töö"
 
 #: src/lang.c:910
-msgid	"Article not signed and no public keys found"
-msgstr	"Artikkel pole allkirjastatud ja avalikke võtmeid pole"
+msgid   "  -o       post all postponed articles and exit"
+msgstr  "  -o       postita kõik postitamisootel artiklid ja lõpeta töö"
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  "  -R       loe artikleid, mis on salvestatud -S võtmega"
 
 #: src/lang.c:912
 #, 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: "
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  "  -s kat   artiklite salvestamise kataloog [vaikimisi=%s]"
 
 #: src/lang.c:913
-#, 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]: "
+msgid   "  -S       save new news for later reading (batch mode)"
+msgstr  "  -S       salvesta uued artiklid hilisemaks lugemiseks (pakettmood)"
 
 #: src/lang.c:914
+msgid   "  -z       start if any unread news"
+msgstr  "  -z       alusta tööd, kui on lugemata uudiseid"
+
+#: src/lang.c:915
 #, 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]: "
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  "Usenet klient.\n"
+        "\n"
+        "Kasuta: %s [võtmed] [grupp[,...]]"
 
 #: src/lang.c:916
-#, 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: "
+msgid   "  -v       verbose output for batch mode options"
+msgstr  "  -v       esita pakettmoodi käskudega detailsemat informatsiooni"
 
 #: src/lang.c:917
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=välju, %s=toimeta, %s=pgp, %s=saada [%%s]: "
+msgid   "  -V       print version & date information"
+msgstr  "  -V       esita versiooni ja kuupäeva informatsioon"
 
 #: src/lang.c:918
 #, 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]: "
+msgid   "%s only useful without batch mode operations\n"
+msgstr  "%s on kasutatav ainult pakettmoodi käskudeta\n"
+
+#: src/lang.c:919
+#, c-format
+msgid   "%s only useful for batch mode operations\n"
+msgstr  "%s on kasutatav ainult pakettmoodi käskudega\n"
+
+#: src/lang.c:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  "Kasutu %s ja %s kombinatsioon. Ignoreerin %s.\n"
 
 #: src/lang.c:922
 #, 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: "
+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:923
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	"%s=välju, %s=toimeta, %s=ispell, %s=saada [%%s]: "
+msgid   "View '%s' (%s/%s)?"
+msgstr  "Vaatan '%s' (%s/%s)?"
 
-#: src/lang.c:924
+#: src/lang.c:925
 #, 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]: "
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  "\n"
+        "Hoiatus: postitus ületab %d veergu. Esimene pikk rida on rida %d:\n"
+        "%-100s\n"
 
 #: src/lang.c:926
-#, 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: "
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  "\n"
+        "Hoiatus: artiklit ei ole toimetamise käigus muudetud\n"
 
 #: src/lang.c:927
-#, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	"%s=välju, %s=toimeta, %s=saada [%%s]: "
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  "\n"
+        "Hoiatus: \"Subject:\" real on ainult tühikud.\n"
 
 #: src/lang.c:928
-#, 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]: "
+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:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  "\n"
+        "Hoiatus: Artiklis on \"References:\" päis, aga \"Subject:\" ei alga fraasiga\n"
+        "         \"Re: \" ega sisalda \"(was:\".\n"
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Lugege hoolikalt!\n"
+        "\n"
+        "  Te asute kustutama artiklit, mis paistab olema teie poolt kirjutatud.\n"
+        "  Seega te eemaldate artikli paljudest uudiseserveritest  üle  maailma,\n"
+        "  kuid kustutamisel ei ole mingit garantiid.\n"
+        "\n"
+        "Siin on artikkel, mida te hakkate kustutama:\n"
+        "\n"
 
 #: src/lang.c:937
-msgid	"Try cache_overview_files to speed up things.\n"
-msgstr	"Proovige asjade kiirendamiseks cache_overview_files.\n"
-
-#: src/lang.c:938
-msgid	"Tin will use local index files instead.\n"
-msgstr	"Tin kasutab hoopis kohalikke indeksfaile.\n"
-
-#: src/lang.c:939
-msgid	"Cannot find NNTP server name"
-msgstr	"Ei leia NNTP serveri nime"
-
-#: src/lang.c:940
-#, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"Loon ühendust serveriga %s:%d..."
-
-#: src/lang.c:941
-msgid	"Disconnecting from server...\n"
-msgstr	"Lõpetan ühenduse...\n"
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  "\n"
+        "Hoiatus: Te kasutate keerukat kodeeringut (nagu base64 või quoted-printable)\n"
+        "         ja postitamiseks välist inews programmi.  Kui  see  inews  programm\n"
+        "         lisab artiklile signatuuri, siis on võimalik,  et seda ei kodeerita\n"
+        "         korrektselt.\n"
 
 #: src/lang.c:942
-#, c-format
-msgid	"Wrong newsgroup name in response of GROUP command, %s for %s"
-msgstr	"Vigane vastus GROUP käsule, %s grupile %s"
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  ""
 
 #: src/lang.c:943
 #, 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
-msgid	"205  Closing connection"
-msgstr	"205  Sulen ühendust"
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  "\n"
+        "\n"
+        "Te uuendate tini versioonile %s. Mõned\n"
+        "Väärtused failis %s on muutunud!\n"
+        "Palun lugege faile WHATSNEW, jne...\n"
 
 #: src/lang.c:945
-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
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	"Ühendus uudisegruppide serveriga aegus. ühendun uuesti?"
-
-#: src/lang.c:947
-#, 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
-msgid	"  -A       force authentication on connect"
-msgstr	"  -A       sunni ühenduse loomisel autentima"
-
-#: src/lang.c:949
 #, c-format
-msgid	"  -g serv  read news from NNTP server serv [default=%s]"
-msgstr	"  -g serv  loe uudiseid NNTP serverist serv [vaikimisi=%s]"
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  "\n"
+        "\n"
+        "Te käivitate tin versioon %s, mis on vanem kui teie eelmises sessioonis\n"
+        "kasutatu!\n"
+        "Mõningaid väärtusi failis %s võidakse ignoreerida, mõningaid võidakse muuta!\n"
 
-#: src/lang.c:950
+#: src/lang.c:948
 #, c-format
-msgid	"  -p port  use port as NNTP port [default=%d]"
-msgstr	"  -p port  kasuta NNTP porti [vaikimisi=%d]"
-
-#: src/lang.c:951
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"  -Q       kiirstart. Sama kui -nqd"
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  "Hoiatus: tin kirjutas vähem gruppe teie\n"
+        "\t%s\n"
+        "kui ta luges käivitamisel. Kui te ei loobunud sessiooni kestel %ld\n"
+        "grupist%s, tähendab see viga ja te peaksite varundama oma %s\n"
+        "enne, kui te tini uuesti käivitate!\n"
 
 #: src/lang.c:952
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	"  -l       kasuta LIST käsku GROUP (-n) käsu asemel"
+#, c-format
+msgid   "\n"
+        "Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
+msgstr  "\n"
+        "Hoiatus: Leidsin %d '-- \\n' rida, mis võib tekitada osades inimestes "
+        "segadust.\n"
 
 #: src/lang.c:953
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	"  -n       loe NNTP serverist ainult tellitud .newsrc grupid"
+#, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  "Hoiatus: Salvestati ainult %d artiklit %d artiklist"
 
-#: src/lang.c:955
+#: src/lang.c:954
 #, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/tcp: Tundmatu teenus.\n"
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  "\n"
+        "Hoiatus: Teie signatuur on pikem, kui %d rida. Kuna tavaliselt signatuurid "
+        "ei\n"
+        "         sisalda kasulikku informatsiooni, siis peaksid nad olema "
+        "võimalikult\n"
+        "         lühikesed.\n"
 
 #: src/lang.c:958
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	"\n"
-	"Probleem pistikuga või ühendusega\n"
+#, 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:959
+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:960
+msgid   "Writing attributes file..."
+msgstr  "Kirjutan atribuutide faili..."
+
+#: src/lang.c:962
 #, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"\n"
-	"Loon ühendust serveriga %s: "
-
-#: src/lang.c:961
-msgid	"Giving up...\n"
-msgstr	"Annan alla...\n"
+msgid   "%d Responses"
+msgstr  "%d Vastust"
 
 #: src/lang.c:964
-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"
+#, c-format
+msgid   "Added %d %s"
+msgstr  "Lisatud %d %s"
+
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  "Tellimata gruppe pole"
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  "Näitan ainult tellitud gruppe"
 
 #: src/lang.c:967
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	"Teie server ei paku Xref: päiserida XOVER informatsioonis.\n"
+msgid   "Yes "
+msgstr  "Jah "
 
-#: src/lang.c:970
-#, 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:968
+msgid   "    You have mail"
+msgstr  "     Teil on kiri"
 
 #: src/lang.c:973
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"  -Q       kiirstart. Sama kui -qd"
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  "\n"
+        "Hoiatus: Postitus on %s ja sisaldab sümboleid, mis puuduvad teie poolt\n"
+        "         valitud MM_NETWORK_CHARSET: %s.\n"
+        "         Kui te postitate selle artikli muutmata kujul, asendatakse\n"
+        "         need sümbolid sümboliga '?'. Et vältida sodi teie artiklis, palun\n"
+        "         seda kas muuta ja eemaldada need sümbolid või muuta seadet\n"
+        "         MM_NETWORK_CHARSET. Viimast saate teostada kasutades valikut M)"
+        "enüü.\n"
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  "  -D mood  silumismood"
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Lugege hoolikalt!\n"
+        "\n"
+        "  Te olete kustutamas artiklit, mida te ilmselt pole kirjutanud.  Seega\n"
+        "  eemaldatakse artikkle paljudest uudiseserveritest üle maailma. Useneti\n"
+        "  üldsus loeb sellist käitumist ebakohaseks.  Vajutage  'd' ainult siis,\n"
+        "  kui te olete täiesti veendunud selle sammu vajalikkuses.\n"
+        "\n"
+        "Siin on artikkel, mida te asute kustutama:\n"
+        "\n"
 
-#: src/lang.c:974
-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:997
+msgid   "toggle color"
+msgstr  "lülita värve"
 
-#: src/lang.c:975
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	"  -n       loe poolist ainult tellitud .newsrc gruppe"
+#: src/lang.c:998
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  "# Ekraaniosade värvide muutmine\n"
+        "# Võimalikud väärtused on:\n"
+        "#  -1 = vaikimisi (valge esiplaan ja must tagaplaan)\n"
+        "#   0 = must\n"
+        "#   1 = punane\n"
+        "#   2 = roheline\n"
+        "#   3 = pruun\n"
+        "#   4 = sinine\n"
+        "#   5 = roosa\n"
+        "#   6 = lilla\n"
+        "#   7 = valge\n"
+        "# Need on *ainult* esiplaani tarvis:\n"
+        "#   8 = hall\n"
+        "#   9 = helepunane\n"
+        "#  10 = heleroheline\n"
+        "#  11 = kollane\n"
+        "#  12 = helesinine\n"
+        "#  13 = heleroosa\n"
+        "#  14 = helelilla\n"
+        "#  15 = helevalge\n"
+        "\n"
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  "  -a       lülita värvide kasutamist"
+
+#: src/lang.c:1022
+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:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  "\n"
+        "Viga: \"%s\" on ümber nimetatud, kasutage selle asemel \"%s\"!\n"
+
+#: src/lang.c:1024
+#, 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:976
-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:1025
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is not a valid newsgroup!\n"
+msgstr  "\n"
+        "Viga: \"%s\" ei ole lubatud grupp!\n"
+
+#: src/lang.c:1027
+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:1028
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  "\n"
+        "Hoiatus: \"%s\" on ümber nimetatud, kasutage selle asemel \"%s\"!\n"
+
+#: src/lang.c:1029
+#, 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:1030
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
+msgstr  "\n"
+        "Hoiatus: \"%s\" puudub teie newsrc failist, see võib olla selles serveris "
+        "vigane!\n"
+
+#: src/lang.c:1031
+#, 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:1035
+#, 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:1036
+msgid   "Missing parts."
+msgstr  "Osad puuduvad."
+
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  "Algus puudub."
 
-#: src/lang.c:980
-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:1038
+msgid   "No data."
+msgstr  "Andmeid pole."
 
-#: src/lang.c:981
-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:1039
+msgid   "Unknown error."
+msgstr  "Tundmatu viga."
 
-#: src/lang.c:989
+#: src/lang.c:1042
 #, c-format
-msgid	"%d %s printed"
-msgstr	"%d %s trükitud"
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  "\t%s kontrollsumma (%ld %s)"
 
-#: 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:1047
+msgid   "Reading mail active file... "
+msgstr  "Loen aktiivsete kirjade kausta... "
 
-#: src/lang.c:991
-msgid	"Print"
-msgstr	"Trüki"
-
-#: src/lang.c:992
-msgid	"Printing..."
-msgstr	"Trükin..."
+#: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  "Loen kirjagruppide faili... "
 
-#: 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:1052
+msgid   "perform PGP operations on article"
+msgstr  "kasuta artiklil PGP operatsioone"
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  "Lisan võtmed avalike võtmete hoidlasse?"
 
-#: src/lang.c:997
-msgid	"No command"
-msgstr	"Käsku pole"
+#: src/lang.c:1054
+#, 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:998
-msgid	"Pipe"
-msgstr	"Toru"
+#: src/lang.c:1055
+#, 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:999
+#: src/lang.c:1056
 #, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Toru käsku [%.*s]> "
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  "PGP pole seadistatud (ei saa avada %s)"
 
-#: src/lang.c:1000
-msgid	"Piping..."
-msgstr	"Saadan torusse..."
-
-#: src/lang.c:1002
-msgid	"Piping not enabled."
-msgstr	"Toru kasutamine pole lubatud."
-
-#: src/lang.c:1006
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	"\n"
-	"Viga: Real \"%s:\" on tühikud, mis tuleb sealt eemaldada. Ainuke lubatud\n"
-	"      tühik on see,  mis eraldab koolonit (:)  teistest komponentidest\n"
-	"      real. Gruppide eraldamiseks kasutage palun koma (,).\n"
-
-#: src/lang.c:1011
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Viga: Rida \"%s\" jätkun järgneval real. Kuna see rida ei või sisaldada\n"
-	"      tühikuid, siis ei ole see lubatud.  Palun kirjutage kõik grupid\n"
-	"      ühele reale.\n"
-
-#: src/lang.c:1016
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Viga: Rida \"%s\" jätkub järgneval real.\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: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:1057
+msgid   "Article not signed and no public keys found"
+msgstr  "Artikkel pole allkirjastatud ja avalikke võtmeid pole"
 
-#: src/lang.c:1025
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	"\n"
-	"  Kui teie artikkel sisaldab tsiteeritud teksti, kasutage palun tsitaatides\n"
-	"  ainult  seda teksti,  millele te vastate.  Paljudel inimestel on  kombeks\n"
-	"  ignoreerida artikleid, mille esimene lehekülg on enamuses tsitaat.  Vorm-\n"
-	"  istage oma artikliread mahtuma 80 sümbolisisse  (kuni 72 sümboli pikkused\n"
-	"  read on hea valik, kuna jätab ruumi ka tsiteerimiseks).  Kui teie read on\n"
-	"  pikemad,  siis nad võivad ekraanile mitte  mahtuda ja  lugeja ei saa teie\n"
-	"  teksti normaalselt lugeda.  Kui te ei arvesta oma postitustes nende nõue-\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:1059
+#, 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:1038
-msgid	"shell escape"
-msgstr	"paojada käsureale"
+#: src/lang.c:1060
+#, 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:1039
+#: src/lang.c:1061
 #, c-format
-msgid	"Shell Command (%s)"
-msgstr	"Käsurea käsk (%s)"
+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:1040
+#: src/lang.c:1063
 #, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"Sisestage käsurea käsk [%s]> "
+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:1044
+#: src/lang.c:1064
 #, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	"%s: Ei saa TERM kirjet\n"
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  "%s=välju, %s=toimeta, %s=pgp, %s=saada [%%s]: "
 
-#: src/lang.c:1048
+#: src/lang.c:1065
 #, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"Grupp %.*s ('q' lõpetamiseks)..."
+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:1050
+#: src/lang.c:1069
 #, c-format
-msgid	"Group %.*s..."
-msgstr	"Grupp %.*s..."
+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:1054
-msgid	"Server unavailable\n"
-msgstr	"Server ei vasta\n"
+#: src/lang.c:1070
+#, 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:1060
+#: src/lang.c:1071
 #, 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"
+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:1061
+#: src/lang.c:1073
 #, 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"
+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:1063
+#: src/lang.c:1074
 #, 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"
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  "%s=välju, %s=toimeta, %s=saada [%%s]: "
 
-#: src/lang.c:1064
+#: src/lang.c:1075
 #, 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"
+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:1084
+msgid   "Try cache_overview_files to speed up things.\n"
+msgstr  "Proovige asjade kiirendamiseks cache_overview_files.\n"
+
+#: src/lang.c:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  "Tin kasutab hoopis kohalikke indeksfaile.\n"
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  "Ei leia NNTP serveri nime"
 
-#: src/lang.c:1068
+#: src/lang.c:1087
 #, 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"
+msgid   "Connecting to %s:%u..."
+msgstr  "Loon ühendust serveriga %s:%u..."
 
-#: src/lang.c:1069
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  "Lõpetan ühenduse...\n"
+
+#: src/lang.c:1089
 #, 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"
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  "Vale grupi nimi (\"%s\") vastuseks \"GROUP %s\" käsule: \"%s\""
 
-#: src/lang.c:1071
+#: src/lang.c:1090
 #, 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"
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  "NNTP serveriga %s ühenduse loomine ebaõnnestus. Lõpetan..."
 
-#: src/lang.c:1072
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  "205  Sulen ühendust"
+
+#: src/lang.c:1092
+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:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  "Ühendus uudisegruppide serveriga aegus. ühendun uuesti?"
+
+#: src/lang.c:1094
 #, 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"
+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:1078
-msgid	"Terminal does not support color"
-msgstr	"Terminal ei toeta värve"
+#: src/lang.c:1095
+msgid   "  -A       force authentication on connect"
+msgstr  "  -A       sunni ühenduse loomisel autentima"
 
-#: src/lang.c:1083
+#: src/lang.c:1096
 #, c-format
-msgid	"Trying %s"
-msgstr	"Proovin %s"
+msgid   "  -g serv  read news from NNTP server serv [default=%s]"
+msgstr  "  -g serv  loe uudiseid NNTP serverist serv [vaikimisi=%s]"
 
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	"Pole"
+#: src/lang.c:1097
+#, c-format
+msgid   "  -p port  use port as NNTP port [default=%d]"
+msgstr  "  -p port  kasuta NNTP porti [vaikimisi=%d]"
 
 #: src/lang.c:1098
-msgid	"Subject"
-msgstr	"Teema"
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  "  -Q       kiirstart. Sama kui -nqd"
 
 #: src/lang.c:1099
-msgid	"References"
-msgstr	"Viited"
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  "  -r       loe artikleid kasutades vaikimisi NNTP serverit"
 
 #: src/lang.c:1100
-msgid	"Both Subject and References"
-msgstr	"Nii teema kui viited"
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  "  -l       kasuta LIST käsku GROUP (-n) käsu asemel"
 
 #: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	"Mitmeosaliste teema"
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  "  -n       loe NNTP serverist ainult tellitud .newsrc grupid"
 
-#: src/lang.c:1102
-msgid	"Percentage Match"
-msgstr	"Percentage Match"
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	"Ei"
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	"Jah"
-
-#: src/lang.c:1116
-msgid	"Hide All"
-msgstr	"Peida kõik"
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  "\n"
+        "Probleem pistikuga või ühendusega\n"
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "Loon ühendust serveriga %s: "
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  "Annan alla...\n"
+
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp: Tundmatu teenus.\n"
+
+#: src/lang.c:1114
+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:1117
+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:1120
+#, 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:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  "  -Q       kiirstart. Sama kui -qd"
 
 #: src/lang.c:1124
-msgid	"Address"
-msgstr	"Aadress"
+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:1125
-msgid	"Full Name"
-msgstr	"Täisnimi"
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  "  -n       loe poolist ainult tellitud .newsrc gruppe"
 
 #: src/lang.c:1126
-msgid	"Address and Name"
-msgstr	"Aadress ja nimi"
+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:1133
-msgid	"Max"
-msgstr	"Maksimum"
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	"Summa"
+#: src/lang.c:1130
+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:1131
+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:1135
-msgid	"Average"
-msgstr	"Keskmine"
+#, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s trükitud"
 
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	"Read"
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	"Kaal"
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  "saada artikkel/teema/kuum/muster/märgitud trükkalile"
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  "Trüki"
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  "Trükin..."
 
 #: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	"Read & kaal"
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  "saada artikkel/teema/kuum/muster/märgitud toruga käsule"
 
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	"Must"
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  "Käsku pole"
 
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	"Punane"
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  "Toru"
 
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	"Roheline"
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	"Pruun"
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	"Sinine"
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	"Roosa"
+#: src/lang.c:1145
+#, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  "Toru käsku [%.*s]> "
 
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	"Lilla"
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  "Saadan torusse..."
 
-#: src/lang.c:1158
-msgid	"White"
-msgstr	"valge"
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"Hall"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	"Helepunane"
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	"Heleroheline"
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  "Toru kasutamine pole lubatud."
 
-#: src/lang.c:1162
-msgid	"Yellow"
-msgstr	"Kollane"
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  "\n"
+        "Viga: Real \"%s:\" on tühikud, mis tuleb sealt eemaldada. Ainuke lubatud\n"
+        "      tühik on see,  mis eraldab koolonit (:)  teistest komponentidest\n"
+        "      real. Gruppide eraldamiseks kasutage palun koma (,).\n"
 
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	"Helesinine"
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	"Heleroosa"
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	"Helelilla"
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Viga: Rida \"%s\" jätkun järgneval real. Kuna see rida ei või sisaldada\n"
+        "      tühikuid, siis ei ole see lubatud.  Palun kirjutage kõik grupid\n"
+        "      ühele reale.\n"
 
-#: src/lang.c:1166
-msgid	"Light White"
-msgstr	"Helevalge"
+#: src/lang.c:1162
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Viga: Rida \"%s\" jätkub järgneval real.\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:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	"Ei kasuta"
-
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	"Märk"
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	"Tühik"
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	"Tavaline"
+#: src/lang.c:1166
+#, 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:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  "\n"
+        "  Kui teie artikkel sisaldab tsiteeritud teksti, kasutage palun tsitaatides\n"
+        "  ainult  seda teksti,  millele te vastate.  Paljudel inimestel on  kombeks\n"
+        "  ignoreerida artikleid, mille esimene lehekülg on enamuses tsitaat.  Vorm-\n"
+        "  istage oma artikliread mahtuma 80 sümbolisisse  (kuni 72 sümboli pikkused\n"
+        "  read on hea valik, kuna jätab ruumi ka tsiteerimiseks).  Kui teie read on\n"
+        "  pikemad,  siis nad võivad ekraanile mitte  mahtuda ja  lugeja ei saa teie\n"
+        "  teksti normaalselt lugeda.  Kui te ei arvesta oma postitustes nende nõue-\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:1184
-msgid	"Best highlighting"
-msgstr	"Parim esiletõstmine"
+msgid   "shell escape"
+msgstr  "paojada käsureale"
 
 #: src/lang.c:1185
-msgid	"Underline"
-msgstr	"Allajoonitud"
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  "Käsurea käsk (%s)"
 
 #: src/lang.c:1186
-msgid	"Reverse video"
-msgstr	"Pööratud video"
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "Sisestage käsurea käsk [%s]> "
 
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	"Plinkiv"
-
-#: src/lang.c:1188
-msgid	"Half bright"
-msgstr	"Poolhele"
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	"Paks"
+#: src/lang.c:1190
+#, c-format
+msgid   "%s: Can't get entry for TERM\n"
+msgstr  "%s: Ei saa TERM kirjet\n"
 
 #: src/lang.c:1194
-msgid	"none"
-msgstr	"pole"
-
-#: src/lang.c:1195
-msgid	"commands"
-msgstr	"käsud"
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "Grupp %.*s ('q' lõpetamiseks)..."
 
 #: src/lang.c:1196
-msgid	"select"
-msgstr	"valik"
-
-#: src/lang.c:1198
-msgid	"commands & quit"
-msgstr	"käsud & välju"
-
-#: src/lang.c:1199
-msgid	"commands & select"
-msgstr	"käsud & valik"
+#, c-format
+msgid   "Group %.*s..."
+msgstr  "Grupp %.*s..."
 
 #: src/lang.c:1200
-msgid	"quit & select"
-msgstr	"välju & valik"
+msgid   "Server unavailable\n"
+msgstr  "Server ei vasta\n"
 
-#: src/lang.c:1201
-msgid	"commands & quit & select"
-msgstr	"käsud & välju & valik"
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	"Shelli arhiiv"
-
-#: src/lang.c:1232
-msgid	"Subject: (descending)"
-msgstr	"Subject: (kahanevalt)"
-
-#: src/lang.c:1233
-msgid	"Subject: (ascending)"
-msgstr	"Subject: (kasvavalt)"
-
-#: src/lang.c:1234
-msgid	"From: (descending)"
-msgstr	"From: (kahanevalt)"
-
-#: src/lang.c:1235
-msgid	"From: (ascending)"
-msgstr	"From: (kasvavalt)"
-
-#: src/lang.c:1236
-msgid	"Date: (descending)"
-msgstr	"Date: (kahanevalt)"
-
-#: src/lang.c:1237
-msgid	"Date: (ascending)"
-msgstr	"Date: (kasvavalt)"
-
-#: src/lang.c:1238 src/lang.c:1246
-msgid	"Score (descending)"
-msgstr	"Kaal (kahanevalt)"
-
-#: src/lang.c:1239 src/lang.c:1247
-msgid	"Score (ascending)"
-msgstr	"Kaal (kasvavalt)"
-
-#: src/lang.c:1240
-msgid	"Lines: (descending)"
-msgstr	"Lines: (kahanevalt)"
-
-#: src/lang.c:1241
-msgid	"Lines: (ascending)"
-msgstr	"Lines: (kasvavalt)"
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	"Hoia alati"
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	"Eemalda alati"
-
-#: src/lang.c:1254
-msgid	"Mark with D on selection screen"
-msgstr	"Märgi valikuekraanil tähega D"
-
-#: src/lang.c:1259
-msgid	"Kill only unread arts"
-msgstr	"Surma ainult lugemata artiklid"
-
-#: src/lang.c:1260
-msgid	"Kill all arts & show with K"
-msgstr	"Surma kõik artiklid & näita K tähega"
+#: src/lang.c:1206
+#, 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"
 
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-msgid	"Kill all arts and never show"
-msgstr	"Surma kõik artiklid ja ära näita"
-
-#: src/lang.c:1266
-msgid	"Nothing special"
-msgstr	"Ei midagi erilist"
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	"Tihenda tsitaadid"
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	"Tsiteeri allkirju"
-
-#: src/lang.c:1269
-msgid	"Compress quotes, quote sigs"
-msgstr	"Tihenda tsitaadid, tsiteeri allkirju"
+#: src/lang.c:1207
+#, 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:1209
+#, 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:1210
+#, 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:1214
+#, 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:1215
+#, 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:1217
+#, 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:1218
+#, 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:1224
+msgid   "Terminal does not support color"
+msgstr  "Terminal ei toeta värve"
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  "Proovin %s"
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  "Pole"
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  "Teema"
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  "Viited"
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  "Nii teema kui viited"
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  "Mitmeosaliste teema"
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  "Percentage Match"
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  "Ei"
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  "Jah"
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  "Peida kõik"
 
 #: src/lang.c:1270
-msgid	"Quote empty lines"
-msgstr	"Tsiteeri tühje ridu"
+msgid   "Address"
+msgstr  "Aadress"
 
 #: src/lang.c:1271
-msgid	"Compress quotes, quote empty lines"
-msgstr	"Tihenda tsitaadid, tsiteeri tühje ridu"
+msgid   "Full Name"
+msgstr  "Täisnimi"
 
 #: src/lang.c:1272
-msgid	"Quote sigs & empty lines"
-msgstr	"Tsiteeri allkirju ja tühje ridu"
+msgid   "Address and Name"
+msgstr  "Aadress ja nimi"
 
-#: src/lang.c:1273
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	"Tihenda tsitaate, tsiteeri allkirju ja tühje ridu"
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  "Maksimum"
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  "Summa"
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  "Keskmine"
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  "Read"
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  "Kaal"
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  "Read & kaal"
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  "Must"
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  "Punane"
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  "Roheline"
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  "Pruun"
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  "Sinine"
+
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  "Roosa"
+
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  "Lilla"
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  "valge"
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "Hall"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  "Helepunane"
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  "Heleroheline"
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  "Kollane"
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  "Helesinine"
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  "Heleroosa"
 
 #: src/lang.c:1311
-msgid	"no"
-msgstr	"ei"
+msgid   "Light Cyan"
+msgstr  "Helelilla"
 
 #: src/lang.c:1312
-msgid	"with headers"
-msgstr	"päistega"
+msgid   "Light White"
+msgstr  "Helevalge"
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	"päisteta"
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	"NFKC"
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	"NFKD"
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  "Ei kasuta"
 
 #: src/lang.c:1322
-msgid	"NFC"
-msgstr	"NFC"
+msgid   "Space"
+msgstr  "Tühik"
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	"NFD"
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  "Tavaline"
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  "Parim esiletõstmine"
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  "Allajoonitud"
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  "Pööratud video"
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  "Plinkiv"
 
 #: src/lang.c:1334
-msgid	"Display Options"
-msgstr	"Ekraani seaded"
+msgid   "Half bright"
+msgstr  "Poolhele"
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  "Paks"
 
 #: src/lang.c:1341
-msgid	"Color Options"
-msgstr	"Värvide seaded"
+msgid   "Cc"
+msgstr  "Cc"
 
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	"Artikli piirangute seaded"
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  "Bcc"
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  "Cc ja Bcc"
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  "pole"
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  "käsud"
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  "valik"
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  "käsud & välju"
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  "käsud & valik"
 
 #: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	"Postitamise/saatmise seaded"
+msgid   "quit & select"
+msgstr  "välju & valik"
 
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	"Salvestamise/trükkimise seaded"
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	"Ekspertseaded"
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  "käsud & välju & valik"
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  "PageDown"
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  "PageNextUnread"
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  "PageDown või PageNextUnread"
+
+#: src/lang.c:1368
+#, fuzzy
+msgid   "Subject: (case sensitive)"
+msgstr  "Subject: rida (tõstutundlik)"
+
+#: src/lang.c:1369
+#, fuzzy
+msgid   "Subject: (ignore case)"
+msgstr  "Subject: rida (tõstutundetu)"
+
+#: src/lang.c:1370
+#, fuzzy
+msgid   "From: (case sensitive)"
+msgstr  "From: rida (tõstutundlik)   "
+
+#: src/lang.c:1371
+#, fuzzy
+msgid   "From: (ignore case)"
+msgstr  "From: rida (tõstutundetu)   "
 
 #: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	"Filtreerimise seaded"
-
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"<TÜHIK> lülitab, <CR> seab, <ESC> katkestab."
-
-#: src/lang.c:1378
-msgid	"Show mini menu & posting etiquette"
-msgstr	"Näita minimenüüd & post. etiketti"
-
-#: src/lang.c:1379
-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"
+#, fuzzy
+msgid   "Msg-ID: & full References: line"
+msgstr  "Message-ID: & References: rida"
+
+#: src/lang.c:1373
+#, fuzzy
+msgid   "Msg-ID: & last References: only"
+msgstr  "Message-ID: & viimane viitamine "
+
+#: src/lang.c:1374
+#, fuzzy
+msgid   "Message-ID: entry only"
+msgstr  "#    6=Message-ID: kirje ainult   7=Lines:\n"
+
+#: src/lang.c:1375
+#, fuzzy
+msgid   "Lines:"
+msgstr  "Read"
+
+#: src/lang.c:1380
+msgid   "Don't trim article body"
+msgstr  "Ära lühenda artikli keha"
+
+#: src/lang.c:1381
+msgid   "Skip leading blank lines"
+msgstr  "Jäta alguses tühjad read alles"
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  "Jäta lõpus tühjad read alles"
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  "Jäta alguses ja lõpus tühjad read alles"
 
 #: src/lang.c:1384
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	"Näita gruppide lühikirjeldusi. <TÜHIK> lülitab ja <CR> seab."
+msgid   "Compact multiple between text"
+msgstr  "Tihenda tekstiblokid"
 
 #: src/lang.c:1385
-msgid	"Show description of each newsgroup"
-msgstr	"Näita iga grupi lühikirjeldust"
+msgid   "Compact multiple and skip leading"
+msgstr  "Tihenda, jäta alguses read alles"
 
 #: src/lang.c:1386
-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:1391
-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:1392
-msgid	"In group menu, show author by"
-msgstr	"Näita grupimenüüs autorit"
-
-#: src/lang.c:1393
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	"# Millist saatja nime osa näidata\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 = mitte midagi\n"
-	"#   1 = aadress\n"
-	"# * 2 = täisnimi\n"
-	"#   3 = mõlemad\n"
-
-#: src/lang.c:1402
-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:1403
-msgid	"Draw -> instead of highlighted bar"
-msgstr	"Joonista -> heleda riba asemel"
-
-#: src/lang.c:1404
-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:1409
-msgid	"Use inverse video for page headers"
-msgstr	"Kasuta päistel pööratud videot"
-
-#: src/lang.c:1410
-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:1415
-msgid	"Thread articles by"
-msgstr	"Artiklite teemadesse jagamine"
-
-#: src/lang.c:1416
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	"# Artiklite teemadesse jagamine\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 = ei jaga\n"
-	"#   1 = Teema\n"
-	"#   2 = Viited\n"
-	"# * 3 = Mõlemad (Teema ja Viited)\n"
-	"#   4 = Mitmeosaline teema\n"
-	"#   5 = Protsentuaalne sobivus\n"
+msgid   "Compact multiple and skip trailing"
+msgstr  "Tihenda, jäta lõpus read alles"
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  "Tihenda, jäta alguse ja lõpu read alles"
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  "Shelli arhiiv"
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  "Subject: (kahanevalt)"
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  "Subject: (kasvavalt)"
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  "From: (kahanevalt)"
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  "From: (kasvavalt)"
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  "Date: (kahanevalt)"
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  "Date: (kasvavalt)"
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  "Kaal (kahanevalt)"
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  "Kaal (kasvavalt)"
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  "Lines: (kahanevalt)"
 
 #: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	"Sisestage teema loomiseks vajalik protsentuaalne sobivus. <CR> seab."
+msgid   "Lines: (ascending)"
+msgstr  "Lines: (kasvavalt)"
 
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	"Teema protsentuaalne sobivus"
-
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	"# Teema protsentuaalne sobivus...\n"
-	"# artikli teemas olevate sõmbolite protsent, mis peab sobima baasartikliga,\n"
-	"# et nad mõlemad loetaks samasse teemasse. Väärtus on täisarv, näiteks 80.\n"
-	"# Väärtuse 80 korral peab täpselt 80%% sümbolitest sobima et artiklid ühte\n"
-	"# 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:1434
+msgid   "Last posting date (descending)"
+msgstr  "Viimane postitamise kuupäev (kahanevalt)"
+
+#: src/lang.c:1435
+msgid   "Last posting date (ascending)"
+msgstr  "Viimane postitamise kuupäev (kasvavalt)"
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  "Hoia alati"
 
 #: src/lang.c:1441
-msgid	"Score of a thread"
-msgstr	"Teema kaal"
+msgid   "Always Remove"
+msgstr  "Eemalda alati"
 
 #: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	"# Teema kaal\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = maksimum\n"
-	"#   1 = summa\n"
-	"#   2 = keskmine\n"
-
-#: src/lang.c:1450
-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:1451
-msgid	"Sort articles by"
-msgstr	"Artiklite järjestus"
-
-#: src/lang.c:1452
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines ascending\n"
-msgstr	"# Artiklite järjestamine\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 = ei järjesta\n"
-	"#   1 = Teema kahanev\n"
-	"#   2 = Teema kasvav\n"
-	"#   3 = Saatja kahanev\n"
-	"#   4 = Saatja kasvava\n"
-	"#   5 = Kuupäev kahanev\n"
-	"# * 6 = Kuupäev kasvav\n"
-	"#   7 = Kaal kahanev\n"
-	"#   8 = Kaal kasvav\n"
-	"#   9 = Ridu kahanev\n"
-	"#  10 = Ridu kasvav\n"
-
-#: src/lang.c:1468
-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:1469
-msgid	"Sort threads by"
-msgstr	"Teemade järjestus"
-
-#: src/lang.c:1470
-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	"# 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:1478
-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:1479
-msgid	"Goto first unread article in group"
-msgstr	"Mine grupis esimesele lugemata art."
-
-#: src/lang.c:1480
-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:1484
-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:1485
-msgid	"Show only unread articles"
-msgstr	"Näita ainult lugemata artikleid"
-
-#: src/lang.c:1486
-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:1491
-msgid	"Show only groups with unread arts"
-msgstr	"Ainult lugemata artiklitega grupid"
-
-#: src/lang.c:1492
-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:1497
-msgid	"Filter which articles"
-msgstr	"Filtreeri artikleid"
-
-#: src/lang.c:1498
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	"# Artikklite filtreerimine\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = Surma ainult lugemata artiklid\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:1507
-msgid	"Tab goes to next unread article"
-msgstr	"Tab viib järgmisele lugemata art."
-
-#: src/lang.c:1508
-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:1512
-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:1513
-msgid	"Space goes to next unread article"
-msgstr	"Tühik viib järgmisele lugemata art."
-
-#: src/lang.c:1514
-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:1519
-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:1520
-msgid	"PgDn goes to next unread article"
-msgstr	"PgDn viib järgmisele lugemata art."
-
-#: src/lang.c:1521
-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:1527
-msgid	"List thread using right arrow key"
-msgstr	"Nool paremale näitab teema loendit"
-
-#: src/lang.c:1528
-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:1532
-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:1533
-msgid	"Character to show deleted articles"
-msgstr	"Kustutatud artiklite marker"
-
-#: src/lang.c:1534
-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:1539
-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:1540
-msgid	"Character to show inrange articles"
-msgstr	"Artiklite vahemiku marker"
-
-#: src/lang.c:1541
-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:1546
-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:1547
-msgid	"Character to show returning arts"
-msgstr	"Tagasi tulnud artiklite marker"
+msgid   "Mark with D on selection screen"
+msgstr  "Märgi valikuekraanil tähega D"
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  "Surma ainult lugemata artiklid"
+
+#: src/lang.c:1448
+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:1449
+msgid   "Kill all arts and never show"
+msgstr  "Surma kõik artiklid ja ära näita"
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  "Ei midagi erilist"
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  "Tihenda tsitaadid"
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  "Tsiteeri allkirju"
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  "Tihenda tsitaadid, tsiteeri allkirju"
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  "Tsiteeri tühje ridu"
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  "Tihenda tsitaadid, tsiteeri tühje ridu"
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  "Tsiteeri allkirju ja tühje ridu"
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  "Tihenda tsitaate, tsiteeri allkirju ja tühje ridu"
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  "ei"
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  "päistega"
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  "päisteta"
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  "NFKC"
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  "NFKD"
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  "NFC"
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  "NFD"
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  "Ekraani seaded"
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  "Värvide seaded"
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  "Artikli piirangute seaded"
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  "Postitamise/saatmise seaded"
 
 #: src/lang.c:1548
-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:1553
-msgid	"Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
-msgstr	"Sisestage valitud artikleid märkiv sümbol. <CR> seab, <ESC> katkestab."
+msgid   "Saving/Printing Options"
+msgstr  "Salvestamise/trükkimise seaded"
 
 #: src/lang.c:1554
-msgid	"Character to show selected articles"
-msgstr	"Valitud artiklite marker"
-
-#: src/lang.c:1555
-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"
+msgid   "Expert Options"
+msgstr  "Ekspertseaded"
 
 #: src/lang.c:1560
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	"Sisestage värskeid artikleid märkiv sümbol. <CR> seab, <ESC> katkestab."
+msgid   "Filtering Options"
+msgstr  "Filtreerimise seaded"
 
-#: src/lang.c:1561
-msgid	"Character to show recent articles"
-msgstr	"Värskete artiklite marker"
-
-#: src/lang.c:1562
-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:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "<TÜHIK> lülitab, <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  "Näita minimenüüd & post. etiketti"
 
 #: src/lang.c:1567
-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:1568
-msgid	"Character to show unread articles"
-msgstr	"Lugemata artiklite marker"
-
-#: src/lang.c:1569
-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"
+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:1572
+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:1573
+msgid   "Show description of each newsgroup"
+msgstr  "Näita iga grupi lühikirjeldust"
 
 #: src/lang.c:1574
-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:1575
-msgid	"Character to show read articles"
-msgstr	"Loetud artiklite marker"
-
-#: src/lang.c:1576
-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"
+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:1579
+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:1580
+msgid   "In group menu, show author by"
+msgstr  "Näita grupimenüüs autorit"
 
 #: src/lang.c:1581
-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:1582
-msgid	"Character to show killed articles"
-msgstr	"Surmatud artiklite marker"
-
-#: src/lang.c:1583
-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:1588
-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:1589
-msgid	"Character to show readselected arts"
-msgstr	"Lugemiseks valitud artiklite marker"
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  "# Millist saatja nime osa näidata\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = mitte midagi\n"
+        "#   1 = aadress\n"
+        "# * 2 = täisnimi\n"
+        "#   3 = mõlemad\n"
 
 #: src/lang.c:1590
-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:1595
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	"Sisestage maksimaalne näidatav grupi nime pikkus. <CR> seab."
-
-#: src/lang.c:1596
-msgid	"Max. length of group names shown"
-msgstr	"Maksimaalne grupinime pikkus"
+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:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  "Joonista -> heleda riba asemel"
+
+#: src/lang.c:1592
+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:1597
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	"# Maksimaalne grupi nime pikkus, mida näidatakse ekraanil\n"
+msgid   "Use inverse video for page headers"
+msgstr  "Kasuta päistel pööratud videot"
 
-#: src/lang.c:1602
-msgid	"Show lines/score in listings"
-msgstr	"Näita loendis artikli kaalu/ridu"
+#: src/lang.c:1598
+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:1603
-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	"# Millist informatsiooni tuleks näidata artikli/teema loendis\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 = mitte midagi\n"
-	"# * 1 = ridu\n"
-	"#   2 = kaalu\n"
-	"#   3 = ridu ja kaalu\n"
-
-#: src/lang.c:1612
-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:1613
-msgid	"Number of lines to scroll in pager"
-msgstr	"Lehitsejas keritavate ridade arv"
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	"# Ridade arv, mida lehitseja kerib üles/alla\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#  -2 = poole lehe kaupa kerimine\n"
-	"#  -1 = ülemine või alumine rida jäetakse järgmisele lehele\n"
-	"#   0 = leht haaval (tavaline käitumine)\n"
-	"# * 1 = rida haaval\n"
-	"#   2 või suurem = keri 2 või enama rea haaval (ainult lehitsejas)\n"
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	"Näita signatuure, <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	"Näita signatuure"
-
-#: src/lang.c:1626
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	"# Kui väärtus on OFF, ei näita koos artiklitega signatuure\n"
+msgid   "Thread articles by"
+msgstr  "Artiklite teemadesse jagamine"
 
-#: src/lang.c:1630
-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:1631
-msgid	"Display uue data as an attachment"
-msgstr	"Näita uuenk. andmeid lisadena"
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	"# uuenkodeeritud andmete käsitlemine lehitsejas\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = näita puhast uuenkodeeritud andmeid\n"
-	"#   1 = uuenkodeeritud andmed koondatakse üheks märgitud reaks, mis näitab\n"
-	"#       mahtu ja failinime, sarnaselt nagu näidatakse MIME lisandeid\n"
-	"#   2 = nagu 1, aga iga rida, mis tundub olema uuenkodeeritud, esitatakse\n"
-	"#       märgituna.\n"
-
-#
-#: src/lang.c:1642
-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:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  "# Artiklite teemadesse jagamine\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = ei jaga\n"
+        "#   1 = Teema\n"
+        "#   2 = Viited\n"
+        "# * 3 = Mõlemad (Teema ja Viited)\n"
+        "#   4 = Mitmeosaline teema\n"
+        "#   5 = Protsentuaalne sobivus\n"
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  "Sisestage teema loomiseks vajalik protsentuaalne sobivus. <CR> seab."
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  "Teema protsentuaalne sobivus"
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  "# Teema protsentuaalne sobivus...\n"
+        "# artikli teemas olevate sõmbolite protsent, mis peab sobima baasartikliga,\n"
+        "# et nad mõlemad loetaks samasse teemasse. Väärtus on täisarv, näiteks 80.\n"
+        "# Väärtuse 80 korral peab täpselt 80%% sümbolitest sobima et artiklid ühte\n"
+        "# 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:1629
+msgid   "Score of a thread"
+msgstr  "Teema kaal"
 
-#
-#: src/lang.c:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	"Näita \"a kui Umlaut-a"
-
-#: src/lang.c:1644
-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:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	"Tühikuga eraldatud päised"
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	"Näita neid päiseid (või *)"
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	"# Milliseid artikli päiseid te soovite näha. Kui te soovite näha _kõiki_\n"
-	"# päiseid, kasutage väärtusena '*'. See on ka ainus jokkersümboli "
-	"kasutusviis.\n"
-	"# Kui te sisestate väärtusena 'X-', siis näete kõiki päiseridi, mis algavad\n"
-	"# fraasiga 'X-'. Mitu väärtust saate sisestada, kasutades eraldajana "
-	"tühikut.\n"
-	"# Kui te väärtust ei määra, lülitatakse see omadus välja.\n"
-
-#: src/lang.c:1660
-msgid	"Do not display these header fields"
-msgstr	"Ära näita neid päiseridu"
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	"# Sama kui 'news_headers_to_display', kuid tähendus on vastupidine.\n"
-	"# Mõlema omaduse kasutamise näiteks oletame, et te soovita näha X-\n"
-	"# algavaid päiseid, kuid mitte X-Alan ja X-Pape. Sel juhul kasutage:\n"
-	"#\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"#\n"
-	"# Kui te väärtust ei määra, lülitatakse see omadus välja.\n"
-
-#: src/lang.c:1671
-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:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	"Jäta multipart/alternative osad"
-
-#: src/lang.c:1673
-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:1678
-msgid	"A regex used to decide which lines to show in col_quote."
-msgstr	"Regulaaravaldis otsustamaks, milliseid ridu tsitaatides näidata."
-
-#: src/lang.c:1679
-msgid	"Regex used to show quoted lines"
-msgstr	"Tsiteeritud ridade näitamise regex"
-
-#: src/lang.c:1680
-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	"# Regulaaravaldis, mida tin kasutab, et artikli vaatamisel otsustada,\n"
-	"# 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:1686
-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:1630
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  "# Teema kaal\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = maksimum\n"
+        "#   1 = summa\n"
+        "#   2 = keskmine\n"
+
+#: src/lang.c:1638
+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:1639
+msgid   "Sort articles by"
+msgstr  "Artiklite järjestus"
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  "# Artiklite järjestamine\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = ei järjesta\n"
+        "#   1 = Teema kahanev\n"
+        "#   2 = Teema kasvav\n"
+        "#   3 = Saatja kahanev\n"
+        "#   4 = Saatja kasvava\n"
+        "#   5 = Kuupäev kahanev\n"
+        "# * 6 = Kuupäev kasvav\n"
+        "#   7 = Kaal kahanev\n"
+        "#   8 = Kaal kasvav\n"
+        "#   9 = Ridu kahanev\n"
+        "#  10 = Ridu kasvav\n"
+
+#: src/lang.c:1656
+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:1657
+msgid   "Sort threads by"
+msgstr  "Teemade järjestus"
+
+#: src/lang.c:1658
+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"
+        "#   3 = Viimane postitamise kuupäev kahanevalt\n"
+        "#   4 = Viimane postitamise kuupäev kasvavalt\n"
+
+#: src/lang.c:1668
+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:1669
+msgid   "Go to first unread article in group"
+msgstr  "Mine grupis esimesele lugemata art."
+
+#: src/lang.c:1670
+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:1674
+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:1675
+msgid   "Show only unread articles"
+msgstr  "Näita ainult lugemata artikleid"
+
+#: src/lang.c:1676
+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:1681
+msgid   "Show only groups with unread arts"
+msgstr  "Ainult lugemata artiklitega grupid"
+
+#: src/lang.c:1682
+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:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	"Topelt tsiteeritud ridu näitav reg"
+msgid   "Filter which articles"
+msgstr  "Filtreeri artikleid"
 
 #: src/lang.c:1688
-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	"# Regulaaravaldis, mida tin kasutab, et otsustada, millised\n"
-	"# read on kahekordselt tsiteeritud. Topelt tsiteeritud ridu\n"
-	"# näidatakse col_quote2.\n"
-	"# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n"
-
-#: src/lang.c:1694
-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:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	">= 3 tsiteeritud ridu näitav reg"
-
-#: src/lang.c:1696
-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	"# Regulaaravaldis, mida tin kasutab, et otsustada, millised\n"
-	"# read on >= 3 korda tsiteeritud. >= 3 korda tsiteeritud ridu\n"
-	"# näidatakse col_quote3.\n"
-	"# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n"
-
-#: src/lang.c:1703
-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:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	"Regex et esile tõsta /kaldkriipse/"
-
-#: src/lang.c:1705
-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	"# Regulaaravaldis mida tin kasutab et otsustada, milliseid '/' vahel olevaid\n"
-	"# sõnu näidata col_markslashes abil. Kui jätate selle tühjaks, kasutab\n"
-	"# tin sisse ehitatud vaikeväärtust.\n"
-
-#: src/lang.c:1711
-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:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	"Regex et esile tõsta *tärne*"
-
-#: src/lang.c:1713
-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	"# Regulaaravaldis mida tin kasutab et otsustada, milliseid '*' vahel olevaid\n"
-	"# sõnu näidata col_markstars abil. Kui jätate selle tühjaks, kasutab\n"
-	"# tin sisse ehitatud vaikeväärtust.\n"
-
-#: src/lang.c:1719
-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:1720
-msgid	"Regex used to highlight -strokes-"
-msgstr	"Regex et esile tõsta -kriipse-"
-
-#: src/lang.c:1721
-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	"# Regulaaravaldis mida tin kasutab et otsustada, milliseid '-' vahel olevaid\n"
-	"# sõnu näidata col_markstroke abil. Kui jätate selle tühjaks, kasutab\n"
-	"# tin sisse ehitatud vaikeväärtust.\n"
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  "# Artikklite filtreerimine\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = Surma ainult lugemata artiklid\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:1697
+msgid   "Go to the next unread article with"
+msgstr  "Liigu järgmise lugemata artiklile klahviga"
+
+#: src/lang.c:1698
+#, fuzzy
+msgid   "# Go to the unread article with following 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  "# Liigu järgmise lugemata artiklile klahviga\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = mitte midagi\n"
+        "#   1 = LK alla\n"
+        "# * 2 = TAB\n"
+        "#   3 = LK alla või TAB\n"
+
+#: src/lang.c:1708
+msgid   "How to treat blank lines"
+msgstr  "Kuidas käsitleda tühje ridasid"
+
+#: src/lang.c:1709
+#, fuzzy
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  "# Tihenda artikli keha, eemalda liigsed tühjad read.\n"
+        "# Võimalikud väärtused on (vaikimisi väärtust tähistab *):\n"
+        "# * 0 = Ei tihenda\n"
+        "#   1 = Jäta alles alguse read\n"
+        "#   2 = Jäta alles lõpu read\n"
+        "#   3 = Jäta alles alguse ja lõpu read\n"
+        "#   4 = Tihenda read tekstiblokkide vahel\n"
+        "#   5 = Tihenda read tekstiblokkide vahel ja jäta alles alguse read\n"
+        "#   6 = Tihenda read tekstiblokkide vahel ja jäta alles lõpu read\n"
+        "#   7 = Tihenda read tekstiblokkide vahel ja jäta alles alguse ja lõpu read\n"
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  "Nool paremale näitab teema loendit"
 
 #: src/lang.c:1727
-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."
+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:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	"Regex et esile tõsta _alakriipse_"
-
-#: src/lang.c:1729
-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	"# Regulaaravaldis mida tin kasutab et otsustada, milliseid '_' vahel olevaid\n"
-	"# sõnu näidata col_markdash abil. Kui jätate selle tühjaks, kasutab\n"
-	"# tin sisse ehitatud vaikeväärtust.\n"
-
-#: src/lang.c:1735
-msgid	"A regex used to find Subject prefixes to remove.  Use '|' as separator."
-msgstr	"Regulaaravaldis eemaldatava teema prefiksi leidmiseks. Eraldajaks on '|'."
-
-#: src/lang.c:1736
-msgid	"Regex with Subject prefixes"
-msgstr	"Regex teema prefiksi leidmiseks"
-
-#: src/lang.c:1737
-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:1742
-msgid	"A regex used to find Subject suffixes to remove.  Use '|' as separator."
-msgstr	"Regulaaravaldis eemaldatava teema sufiksi leidmiseks. Eraldajaks on '|'."
-
-#: src/lang.c:1743
-msgid	"Regex with Subject suffixes"
-msgstr	"Regex teema sufiksi leidmiseks"
-
-#: src/lang.c:1744
-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:1749
-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:1750
-msgid	"MIME binary content viewer"
-msgstr	"MIME kahendsisu lehitseja"
-
-#: src/lang.c:1751
-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	"# --internal korral kasuta artikli mittetekstiliste osade vaatamiseks sisse\n"
-	"# ehitatud MIME lehitsejat.\n"
-	"# Muidu määra automaatseks vaatamiseks väline programm (nt. metamail) või\n"
-	"# jäta tühjaks\n"
-
-#: src/lang.c:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	"Küsi enne mitte-tekstiliste osade vaatamist kinnitust"
+#: src/lang.c:1731
+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:1732
+msgid   "Character to show deleted articles"
+msgstr  "Kustutatud artiklite marker"
+
+#: src/lang.c:1733
+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:1738
+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:1739
+msgid   "Character to show inrange articles"
+msgstr  "Artiklite vahemiku marker"
+
+#: src/lang.c:1740
+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:1745
+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:1746
+msgid   "Character to show returning arts"
+msgstr  "Tagasi tulnud artiklite marker"
+
+#: src/lang.c:1747
+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:1752
+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:1753
+msgid   "Character to show selected articles"
+msgstr  "Valitud artiklite marker"
+
+#: src/lang.c:1754
+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:1759
-msgid	"Ask before using MIME viewer"
-msgstr	"Küsi MIME lehitseja kasutamise luba"
+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:1760
-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:1765
-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."
+msgid   "Character to show recent articles"
+msgstr  "Värskete artiklite marker"
+
+#: src/lang.c:1761
+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:1766
-msgid	"Catchup read groups when quitting"
-msgstr	"Väljumisel märkida grupid loetuks"
+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:1767
-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:1772
-msgid	"Catchup group using left key"
-msgstr	"Nool vasakule märgib grupi loetuks"
+msgid   "Character to show unread articles"
+msgstr  "Lugemata artiklite marker"
+
+#: src/lang.c:1768
+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:1773
-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:1778
-msgid	"Catchup thread by using left key"
-msgstr	"Nool vasakule märgib teema loetuks"
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	"Tegevused mis nõuavad kinnitust"
-
-#: src/lang.c:1785
-msgid	"# What should we ask confirmation for.\n"
-msgstr	"# Millele me peaksime küsima kinnitust.\n"
-
-#: src/lang.c:1790
-msgid	"'Mark article read' ignores tags"
-msgstr	"'Märgi art. loetuks' eirab märke"
-
-#: src/lang.c:1791
-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"
+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:1774
+msgid   "Character to show read articles"
+msgstr  "Loetud artiklite marker"
+
+#: src/lang.c:1775
+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:1780
+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:1781
+msgid   "Character to show killed articles"
+msgstr  "Surmatud artiklite marker"
+
+#: src/lang.c:1782
+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:1787
+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:1788
+msgid   "Character to show readselected arts"
+msgstr  "Lugemiseks valitud artiklite marker"
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  "Sisestage maksimaalne näidatav grupi nime pikkus. <CR> seab."
 
 #: src/lang.c:1795
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	"Programm URLide avamiseks, <CR> seab, <ESC> katkestab."
+msgid   "Max. length of group names shown"
+msgstr  "Maksimaalne grupinime pikkus"
 
 #: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	"Programm URLide avamiseks"
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  "# Maksimaalne grupi nime pikkus, mida näidatakse ekraanil\n"
 
-#: src/lang.c:1797
-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:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  ""
 
 #: src/lang.c:1802
-msgid	"Use mouse in xterm"
-msgstr	"Kasuta xterm aknas hiirt"
-
-#: src/lang.c:1803
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	"# Kui väärtus on ON, luba xterm aknas hiire tugi\n"
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
 
 #: src/lang.c:1809
-msgid	"Use scroll keys on keypad"
-msgstr	"Kasuta kerimisnuppe"
+msgid   "Show lines/score in listings"
+msgstr  "Näita loendis artikli kaalu/ridu"
 
 #: src/lang.c:1810
-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:1815
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	"Sisestage suurim laetavate artiklite arv. <CR> seab."
-
-#: src/lang.c:1816
-msgid	"Number of articles to get"
-msgstr	"Laetavate artiklite arv"
-
-#: src/lang.c:1817
-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:1822
-msgid	"Enter number of days article is considered recent. <CR> sets."
-msgstr	"Sisestage artikli värskuse kestus. <CR> seab."
-
-#: src/lang.c:1823
-msgid	"Article recentness time limit"
-msgstr	"Artikli värskuse ajapiir"
-
-#: src/lang.c:1824
-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:1828
-msgid	"WILDMAT for normal wildcards, REGEX for full regular expression matching."
-msgstr	"WILDMAT tavalistele jokkeritele, REGEX täisregulaaravaldistega otsimisele."
-
-#: src/lang.c:1829
-msgid	"Wildcard matching"
-msgstr	"Jokkeritega otsimine"
-
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	"# Jokkeritega otsimine\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
+#, fuzzy
+msgid   "# What information 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  "# Millist informatsiooni tuleks näidata artikli/teema loendis\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = mitte midagi\n"
+        "# * 1 = ridu\n"
+        "#   2 = kaalu\n"
+        "#   3 = ridu ja kaalu\n"
+
+#: src/lang.c:1819
+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:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  "Lehitsejas keritavate ridade arv"
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  "# Ridade arv, mida lehitseja kerib üles/alla\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#  -2 = poole lehe kaupa kerimine\n"
+        "#  -1 = ülemine või alumine rida jäetakse järgmisele lehele\n"
+        "#   0 = leht haaval (tavaline käitumine)\n"
+        "# * 1 = rida haaval\n"
+        "#   2 või suurem = keri 2 või enama rea haaval (ainult lehitsejas)\n"
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  "Näita signatuure, <TÜHIK> lülitab, <CR> seab."
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  "Näita signatuure"
+
+#: src/lang.c:1833
+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:1837
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	"Sisestage minimaalne kaal artikli surmamiseks. <CR> seab."
+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:1838
-msgid	"Score limit (kill)"
-msgstr	"Kaalu alampiir (surmamine)"
+msgid   "Display uue data as an attachment"
+msgstr  "Näita uuenk. andmeid lisadena"
 
 #: src/lang.c:1839
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	"# Kaalu alampiir, enne kui artikkel märgitakse surmatuks\n"
-
-#: src/lang.c:1843
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	"Sisestage vaikimisi kaal artiklite surmamiseks. <CR> seab."
-
-#: src/lang.c:1844
-msgid	"Default score to kill articles"
-msgstr	"Artiklite surmamise vaikimisi kaal"
-
-#: src/lang.c:1845
-msgid	"# Default score to kill articles\n"
-msgstr	"# Vaikimisi kaal artiklite surmamiseks\n"
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  "# uuenkodeeritud andmete käsitlemine lehitsejas\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = näita puhast uuenkodeeritud andmeid\n"
+        "#   1 = uuenkodeeritud andmed koondatakse üheks märgitud reaks, mis näitab\n"
+        "#       mahtu ja failinime, sarnaselt nagu näidatakse MIME lisandeid\n"
+        "#   2 = nagu 1, aga iga rida, mis tundub olema uuenkodeeritud, esitatakse\n"
+        "#       märgituna.\n"
 
+#
 #: src/lang.c:1849
-msgid	"Enter minimal score before an article is marked hot. <CR> sets."
-msgstr	"Sisestage minimaalne kaal, enne kui artikkel märgitakse kuumaks. <CR> seab."
+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:1850
-msgid	"Score limit (select)"
-msgstr	"Kaalu alampiir (valik)"
+msgid   "Display \"a as Umlaut-a"
+msgstr  "Näita \"a kui Umlaut-a"
 
 #: src/lang.c:1851
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	"# Kaalu alampiir, enne kui artikkel märgitakse muumaks\n"
-
-#: src/lang.c:1855
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	"Sisestage vaikimisi kaal artiklite valimiseks. <CR> seab."
-
-#: src/lang.c:1856
-msgid	"Default score to select articles"
-msgstr	"Vaikimisi kaal artiklite valimiseks"
+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:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  "Tühikuga eraldatud päised"
 
 #: src/lang.c:1857
-msgid	"# Default score to select articles\n"
-msgstr	"# Vaikimisi kaal artiklite valimiseks\n"
+msgid   "Display these header fields (or *)"
+msgstr  "Näita neid päiseid (või *)"
 
-#: src/lang.c:1863
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	"''X-Face:'' näitamiseks slrnface"
-
-#: src/lang.c:1864
-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:1872
-msgid	"Use ANSI color"
-msgstr	"Kasuta ANSI värve"
-
-#: src/lang.c:1873
-msgid	"# If ON using ANSI-color\n"
-msgstr	"# Kui väärtus on ON, kasuta ANSI värve\n"
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  "# Milliseid artikli päiseid te soovite näha. Kui te soovite näha _kõiki_\n"
+        "# päiseid, kasutage väärtusena '*'. See on ka ainus jokkersümboli "
+        "kasutusviis.\n"
+        "# Kui te sisestate väärtusena 'X-', siis näete kõiki päiseridi, mis algavad\n"
+        "# fraasiga 'X-'. Mitu väärtust saate sisestada, kasutades eraldajana "
+        "tühikut.\n"
+        "# Kui te väärtust ei määra, lülitatakse see omadus välja.\n"
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  "Ära näita neid päiseridu"
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  "# Sama kui 'news_headers_to_display', kuid tähendus on vastupidine.\n"
+        "# Mõlema omaduse kasutamise näiteks oletame, et te soovita näha X-\n"
+        "# algavaid päiseid, kuid mitte X-Alan ja X-Pape. Sel juhul kasutage:\n"
+        "#\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "#\n"
+        "# Kui te väärtust ei määra, lülitatakse see omadus välja.\n"
 
 #: src/lang.c:1878
-msgid	"Standard foreground color"
-msgstr	"Standardne esiplaani värv"
+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:1879
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standardne esiplaani värv\n"
-	"# Vaikimisi: -1 (vaikimisi värv)\n"
+msgid   "Skip multipart/alternative parts"
+msgstr  "Jäta multipart/alternative osad"
+
+#: src/lang.c:1880
+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:1884
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  "Luba identsete blokkide tuvastamine? <TÜHIK> lülitab, <CR> seab."
 
 #: src/lang.c:1885
-msgid	"Standard background color"
-msgstr	"Standardne tagaplaani värv"
+msgid   "Detection of verbatim blocks"
+msgstr  "Identsete blokkide tuvastamine"
 
 #: src/lang.c:1886
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standardne tagaplaani värv\n"
-	"# Vaikimisi: -1 (vaikimisi värv)\n"
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  "# Kui väärtus on ON, tuvasta artiklis identsed blokid\n"
+
+#: src/lang.c:1891
+msgid   "A regex used to decide which lines to show in col_quote."
+msgstr  "Regulaaravaldis otsustamaks, milliseid ridu tsitaatides näidata."
 
 #: src/lang.c:1892
-msgid	"Color for inverse text (background)"
-msgstr	"Pööratud teksti värv (tagaplaan)"
+msgid   "Regex used to show quoted lines"
+msgstr  "Tsiteeritud ridade näitamise regex"
 
 #: src/lang.c:1893
-msgid	"# Color of background for inverse text\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Pööratud teksti tagaplaani värv\n"
-	"# Vaikimisi: 4 (sinine)\n"
+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  "# Regulaaravaldis, mida tin kasutab, et artikli vaatamisel otsustada,\n"
+        "# 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:1899
-msgid	"Color for inverse text (foreground)"
-msgstr	"Pööratud teksti värv (esiplaan)"
+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:1900
-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:1906
-msgid	"Color of text lines"
-msgstr	"Tekstiridade värv"
+msgid   "Regex used to show twice quoted l."
+msgstr  "Topelt tsiteeritud ridu näitav reg"
+
+#: src/lang.c:1901
+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  "# Regulaaravaldis, mida tin kasutab, et otsustada, millised\n"
+        "# read on kahekordselt tsiteeritud. Topelt tsiteeritud ridu\n"
+        "# näidatakse col_quote2.\n"
+        "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n"
 
 #: src/lang.c:1907
-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:1913
-msgid	"Color of mini help menu"
-msgstr	"Miniabiinfo värv"
-
-#: src/lang.c:1914
-msgid	"# Color of mini help menu\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Miniabiinfo värv\n"
-	"# Vaikimisi: 3 (pruun)\n"
-
-#: src/lang.c:1920
-msgid	"Color of help text"
-msgstr	"Abiinfo värv"
-
-#: src/lang.c:1921
-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:1927
-msgid	"Color of status messages"
-msgstr	"Olekuteadete värv"
-
-#: src/lang.c:1928
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Viimasel real olevate teadete värv\n"
-	"# Default: 6 (lilla)\n"
+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:1934
-msgid	"Color of quoted lines"
-msgstr	"Tsitaadi värv"
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  ">= 3 tsiteeritud ridu näitav reg"
+
+#: src/lang.c:1909
+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  "# Regulaaravaldis, mida tin kasutab, et otsustada, millised\n"
+        "# read on >= 3 korda tsiteeritud. >= 3 korda tsiteeritud ridu\n"
+        "# näidatakse col_quote3.\n"
+        "# Kui te jätate selle tühjaks, kasutab tin sisseehitatud väärtust.\n"
+
+#: src/lang.c:1916
+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:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  "Regex et esile tõsta /kaldkriipse/"
+
+#: src/lang.c:1918
+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  "# Regulaaravaldis mida tin kasutab et otsustada, milliseid '/' vahel olevaid\n"
+        "# sõnu näidata col_markslashes abil. Kui jätate selle tühjaks, kasutab\n"
+        "# tin sisse ehitatud vaikeväärtust.\n"
+
+#: src/lang.c:1924
+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:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  "Regex et esile tõsta *tärne*"
+
+#: src/lang.c:1926
+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  "# Regulaaravaldis mida tin kasutab et otsustada, milliseid '*' vahel olevaid\n"
+        "# sõnu näidata col_markstars abil. Kui jätate selle tühjaks, kasutab\n"
+        "# tin sisse ehitatud vaikeväärtust.\n"
+
+#: src/lang.c:1932
+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:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  "Regex et esile tõsta -kriipse-"
 
-#: src/lang.c:1935
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Tsitaadi värv\n"
-	"# Vaikimisi: 2 (roheline)\n"
+#: src/lang.c:1934
+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  "# Regulaaravaldis mida tin kasutab et otsustada, milliseid '-' vahel olevaid\n"
+        "# sõnu näidata col_markstroke abil. Kui jätate selle tühjaks, kasutab\n"
+        "# tin sisse ehitatud vaikeväärtust.\n"
+
+#: src/lang.c:1940
+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:1941
-msgid	"Color of twice quoted line"
-msgstr	"Topelt tsiteeritud rea värv"
+msgid   "Regex used to highlight _underline_"
+msgstr  "Regex et esile tõsta _alakriipse_"
 
 #: src/lang.c:1942
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Topelt tsiteeritud rea värv\n"
-	"# Vaikimisi: 3 (pruun)\n"
+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  "# Regulaaravaldis mida tin kasutab et otsustada, milliseid '_' vahel olevaid\n"
+        "# sõnu näidata col_markdash abil. Kui jätate selle tühjaks, kasutab\n"
+        "# tin sisse ehitatud vaikeväärtust.\n"
 
 #: src/lang.c:1948
-msgid	"Color of =>3 times quoted line"
-msgstr	"=>3 korda tsiteeritud rea värv"
+msgid   "A regex used to find Subject prefixes to remove.  Use '|' as separator."
+msgstr  "Regulaaravaldis eemaldatava teema prefiksi leidmiseks. Eraldajaks on '|'."
 
 #: src/lang.c:1949
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# =>3 korda tsiteeritud rea värv\n"
-	"# Vaikimisi: 4 (sinine)\n"
+msgid   "Regex with Subject prefixes"
+msgstr  "Regex teema prefiksi leidmiseks"
+
+#: src/lang.c:1950
+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:1955
-msgid	"Color of article header lines"
-msgstr	"Artikli päiseridade värv"
+msgid   "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr  "Regulaaravaldis eemaldatava teema sufiksi leidmiseks. Eraldajaks on '|'."
 
 #: src/lang.c:1956
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Päiseridade värv\n"
-	"# Vaikimisi: 2 (roheline)\n"
+msgid   "Regex with Subject suffixes"
+msgstr  "Regex teema sufiksi leidmiseks"
+
+#: src/lang.c:1957
+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:1962
-msgid	"Color of actual news header fields"
-msgstr	"Artikli tegelike päiseridade värv"
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  "Regulaaravaldis identse bloki alguse tuvastamiseks."
 
 #: src/lang.c:1963
-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"
+msgid   "Regex for begin of a verbatim block"
+msgstr  "Identse bloki alguse reg. avaldis"
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  "# Regulaaravaldis, mida tin kasutab et leida identse bloki algust.\n"
 
 #: src/lang.c:1969
-msgid	"Color of article subject lines"
-msgstr	"Artikli teemarea värv"
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  "Regulaaravaldis identse bloki lõpu tuvastamiseks."
 
 #: src/lang.c:1970
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Artikli teema värv\n"
-	"# Vaikimisi: 6 (lilla)\n"
+msgid   "Regex for end of a verbatim block"
+msgstr  "Identse bloki lõpu reg. avaldis"
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  "# Regulaaravaldis, mida tin kasutab et leida identse bloki lõppu.\n"
 
 #: src/lang.c:1976
-msgid	"Color of response counter"
-msgstr	"Vastuste arvu loenduri värv"
+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:1977
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Vastuste arvu loenduri värv\n"
-	"# Vaikimisi: 2 (roheline)\n"
-
-#: src/lang.c:1983
-msgid	"Color of sender (From:)"
-msgstr	"Saatja värv (From:)"
-
-#: src/lang.c:1984
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Saatja värv (From:)\n"
-	"# Vaikimisi: 2 (roheline)\n"
-
-#: src/lang.c:1990
-msgid	"Color of help/mail sign"
-msgstr	"Abiinfo/kirja teate värv"
-
-#: src/lang.c:1991
-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:1997
-msgid	"Color of signatures"
-msgstr	"Signatuuri värv"
-
-#: src/lang.c:1998
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Signatuuri värv\n"
-	"# Vaikimisi: 4 (sinine)\n"
-
-#: src/lang.c:2004
-msgid	"Color of highlighted URLs"
-msgstr	"Esiletõstetud URLide värv"
+msgid   "MIME binary content viewer"
+msgstr  "MIME kahendsisu lehitseja"
+
+#: src/lang.c:1978
+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  "# --internal korral kasuta artikli mittetekstiliste osade vaatamiseks sisse\n"
+        "# ehitatud MIME lehitsejat.\n"
+        "# Muidu määra automaatseks vaatamiseks väline programm (nt. metamail) või\n"
+        "# jäta tühjaks\n"
+
+#: src/lang.c:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  "Küsi enne mitte-tekstiliste osade vaatamist kinnitust"
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  "Küsi MIME lehitseja kasutamise luba"
+
+#: src/lang.c:1987
+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:1992
+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:1993
+msgid   "Catchup read groups when quitting"
+msgstr  "Väljumisel märkida grupid loetuks"
+
+#: src/lang.c:1994
+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:1999
+msgid   "Catchup group using left key"
+msgstr  "Nool vasakule märgib grupi loetuks"
+
+#: src/lang.c:2000
+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:2005
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Esiletõstetud URLide värv\n"
-	"# Vaikimisi: -1 (vaikimisi värv)\n"
+msgid   "Catchup thread by using left key"
+msgstr  "Nool vasakule märgib teema loetuks"
 
 #: src/lang.c:2011
-msgid	"Color of highlighting with *stars*"
-msgstr	"*tärnidega* esiletõstmise värv"
+msgid   "Which actions require confirmation"
+msgstr  "Tegevused mis nõuavad kinnitust"
 
 #: src/lang.c:2012
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	"# *tärnidega* esiletõstmise värv\n"
-	"# Vaikimisi: 11 (kollane)\n"
+msgid   "# What should we ask confirmation for.\n"
+msgstr  "# Millele me peaksime küsima kinnitust.\n"
 
-#: src/lang.c:2018
-msgid	"Color of highlighting with _dash_"
-msgstr	"_alakriipsudega_ esiletõstmise värv"
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  "'Märgi art. (mitte)loetuks' eirab märke"
 
-#: src/lang.c:2019
-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:2025
-msgid	"Color of highlighting with /slash/"
-msgstr	"/Kaldkriipsude/ esiletõstmise värv"
-
-#: src/lang.c:2026
-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:2032
-msgid	"Color of highlighting with -stroke-"
-msgstr	"-Kriipsudega- esiletõstmise värv"
-
-#: src/lang.c:2033
-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:2040
-msgid	"Attr. of highlighting with *stars*"
-msgstr	"*tärnidega* esiletõstmise atribuut"
-
-#: src/lang.c:2041
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	"# Sõnade esiletõstmise atribuut mono terminalidel.\n"
-	"# Võimalikud väärtused on:\n"
-	"#   0 - Tavaline\n"
-	"#   1 - Allajoonitud\n"
-	"#   2 - Parim esiletõstmine\n"
-	"#   3 - Pööratud video\n"
-	"#   4 - Plinkiv\n"
-	"#   5 - Poolhele\n"
-	"#   6 - Paks\n"
-	"\n"
-	"# *tärnidega* esiletõstmise atribuut\n"
-	"# Vaikimisi: 6 (paks)\n"
+#: src/lang.c:2018
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  "# Kui väärtus on ON märgib 'Märgi artikkel (mitte)loetuks' funktsioon ainult\n"
+        "# jooksva artikli.\n"
+
+#: src/lang.c:2022
+#, fuzzy
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  "Programm URLide avamiseks, <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2023
+#, fuzzy
+msgid   "Program that opens URLs"
+msgstr  "Programm URLide avamiseks"
+
+#: src/lang.c:2024
+#, fuzzy
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  "# Programm URLide avamiseks. URL lisatakse argumendiks\n"
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  "Kasuta xterm aknas hiirt"
+
+#: src/lang.c:2030
+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:2036
+msgid   "Use scroll keys on keypad"
+msgstr  "Kasuta kerimisnuppe"
+
+#: src/lang.c:2037
+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:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  "Sisestage suurim laetavate artiklite arv. <CR> seab."
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  "Laetavate artiklite arv"
+
+#: src/lang.c:2044
+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:2049
+msgid   "Enter number of days article is considered recent. <CR> sets."
+msgstr  "Sisestage artikli värskuse kestus. <CR> seab."
+
+#: src/lang.c:2050
+msgid   "Article recentness time limit"
+msgstr  "Artikli värskuse ajapiir"
+
+#: src/lang.c:2051
+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:2055
+msgid   "WILDMAT for normal wildcards, REGEX for full regular expression matching."
+msgstr  "WILDMAT tavalistele jokkeritele, REGEX täisregulaaravaldistega otsimisele."
 
 #: src/lang.c:2056
-msgid	"Attr. of highlighting with _dash_"
-msgstr	"_alakriipsudega_ esiletõstmise atr."
+msgid   "Wildcard matching"
+msgstr  "Jokkeritega otsimine"
 
 #: src/lang.c:2057
-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:2063
-msgid	"Attr. of highlighting with /slash/"
-msgstr	"/Kaldkriipsude/ esiletõstmise atr."
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  "# Jokkeritega otsimine\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
 
 #: src/lang.c:2064
-msgid	"# Attribute of word highlighting with /slash/\n"
-	"# Default: 5 (half bright)\n"
-msgstr	"# /Kaldkriipsude/ esiletõstmise atribuut\n"
-	"# Vaikimisi: 5 (poolhele)\n"
+msgid   "Enter minimal score before an article is marked killed. <CR> sets."
+msgstr  "Sisestage minimaalne kaal artikli surmamiseks. <CR> seab."
+
+#: src/lang.c:2065
+msgid   "Score limit (kill)"
+msgstr  "Kaalu alampiir (surmamine)"
+
+#: src/lang.c:2066
+msgid   "# Score limit before an article is marked killed\n"
+msgstr  "# Kaalu alampiir, enne kui artikkel märgitakse surmatuks\n"
 
 #: src/lang.c:2070
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	"-Kriipsudega- esiletõstmise atr."
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  "Sisestage vaikimisi kaal artiklite surmamiseks. <CR> seab."
 
 #: src/lang.c:2071
-msgid	"# Attribute of word highlighting with -stroke-\n"
-	"# Default: 3 (reverse video)\n"
-msgstr	"# Vaikimisi: 3 (pööratud video)\n"
+msgid   "Default score to kill articles"
+msgstr  "Artiklite surmamise vaikimisi kaal"
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  "# Vaikimisi kaal artiklite surmamiseks\n"
+
+#: src/lang.c:2076
+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:2077
-msgid	"URL highlighting in message body"
-msgstr	"Teate kehas URL esiletõstmine"
+msgid   "Score limit (select)"
+msgstr  "Kaalu alampiir (valik)"
 
 #: src/lang.c:2078
-msgid	"# Enable URL highlighting?\n"
-msgstr	"# Luba URLide esiletõstmine?\n"
+msgid   "# Score limit before an article is marked hot\n"
+msgstr  "# Kaalu alampiir, enne kui artikkel märgitakse muumaks\n"
+
+#: src/lang.c:2082
+msgid   "Enter default score to select articles. <CR> sets."
+msgstr  "Sisestage vaikimisi kaal artiklite valimiseks. <CR> seab."
 
 #: src/lang.c:2083
-msgid	"Word highlighting in message body"
-msgstr	"Sõnade esiletõstmine teate kehas"
+msgid   "Default score to select articles"
+msgstr  "Vaikimisi kaal artiklite valimiseks"
 
 #: src/lang.c:2084
-msgid	"# Enable word highlighting?\n"
-msgstr	"# Lubada sõnade esiletõstmine?\n"
-
-#: src/lang.c:2089
-msgid	"What to display instead of mark"
-msgstr	"Mida näidata märgi asemel"
+msgid   "# Default score to select articles\n"
+msgstr  "# Vaikimisi kaal artiklite valimiseks\n"
 
 #: src/lang.c:2090
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	"# Kas näidata algavaid ja lõppevaid tärne ja kriipse,\n"
-	"# isegi, kui need on ka esiletõstmise märgid?\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 - ei\n"
-	"#   1 - jah, näita märki\n"
-	"# * 2 - trüki hoopis tühik\n"
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  "''X-Face:'' näitamiseks slrnface"
+
+#: src/lang.c:2091
+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:2099
-msgid	"Enter column number to wrap article lines to in the pager. <CR> sets."
-msgstr	"Sisestage veerg, millelt lehitseja hakkab ridu murdma. <CR> seab."
+msgid   "Use ANSI color"
+msgstr  "Kasuta ANSI värve"
 
 #: src/lang.c:2100
-msgid	"Page line wrap column"
-msgstr	"Rea murdmise veerg lehitsejas"
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# Kui väärtus on ON, kasuta ANSI värve\n"
 
-#: src/lang.c:2101
-msgid	"# Wrap article lines at column\n"
-msgstr	"# Murra artikli read antud veerus\n"
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  "Standardne esiplaani värv"
 
 #: src/lang.c:2106
-msgid	"Wrap around threads on next unread"
-msgstr	"Liigu lugemata art-le ümber teemade"
-
-#: src/lang.c:2107
-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:2111
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	"Sisestage oma e-posti aadress (ja oma nimi). <CR> seab."
+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:2112
-msgid	"Mail address (and fullname)"
-msgstr	"E-posti aadress (ja teie nimi)"
+msgid   "Standard background color"
+msgstr  "Standardne tagaplaani värv"
 
 #: src/lang.c:2113
-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:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	"Näita toimetis tühja Followup-To"
+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:2119
-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"
+msgid   "Color for inverse text (background)"
+msgstr  "Pööratud teksti värv (tagaplaan)"
 
-#: src/lang.c:2123
-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:2124
-msgid	"Create signature from path/command"
-msgstr	"Signatuuri loomiseks tee/käsk"
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	"# Postitamisel/vastamisel kasutatav signatuuri fail\n"
-	"# default_sigfile=fail       lisa signatuur failist\n"
-	"# default_sigfile=!käsk      käivitab käsu, mis genereerib signatuuri\n"
-	"# default_sigfile=--none     ära lisa signatuuri\n"
-
-#: src/lang.c:2132
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	"Signatuurile eelnevale reale \"-- \". <TÜHIK> lülitab, <CR> seab."
+#: src/lang.c:2120
+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:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  "Pööratud teksti värv (esiplaan)"
+
+#: src/lang.c:2127
+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:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	"Lisa signatuuri ette \"-- \""
+msgid   "Color of text lines"
+msgstr  "Tekstiridade värv"
 
 #: src/lang.c:2134
-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:2138
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	"Lisa artikli uuestipostitamisel signatuur. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:2139
-msgid	"Add signature when reposting"
-msgstr	"Lisa uuestipostitusel signatuur"
+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:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	"# Kui väärtus on ON, lisa uuestipostitatud artiklile signatuur\n"
-
-#: src/lang.c:2144
-#, c-format
-msgid	"Enter quotation marks, %s or %S for author's initials."
-msgstr	"Sisestage tsitaadimärgid, %s või %S annab autori initsiaalid."
+msgid   "Color of mini help menu"
+msgstr  "Miniabiinfo värv"
 
-#: src/lang.c:2145
-msgid	"Characters used as quote-marks"
-msgstr	"Tsiteerimise märgid"
-
-#: src/lang.c:2146
-#, 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:2152
-msgid	"Quoting behavior"
-msgstr	"Käitumine tsiteerimisel"
-
-#: src/lang.c:2153
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	"# Kuidas käsitleda vastamisel tsitaate.\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 = Ei tee midagi erilist\n"
-	"#   1 = Tihenda tsitaadid\n"
-	"#   2 = Tsiteeri allkirju\n"
-	"#   3 = Tihenda tsitaadid, tsiteeri allkirju\n"
-	"#   4 = Tsiteeri tühje ridu\n"
-	"# * 5 = Tihenda tsitaadid, tsiteeri tühje ridu\n"
-	"#   6 = Tsiteeri allkirju, tsiteeri tühje ridu\n"
-	"#   7 = Tihenda tsitaadid, tsiteeri allkirju, tsiteeri tühje ridu\n"
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-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:2167
-msgid	"Quote line when following up"
-msgstr	"Tsiteerimise rida vastamisel"
+#: src/lang.c:2141
+msgid   "# Color of mini help menu\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# Miniabiinfo värv\n"
+        "# Vaikimisi: 3 (pruun)\n"
+
+#: src/lang.c:2147
+msgid   "Color of help text"
+msgstr  "Abiinfo värv"
+
+#: src/lang.c:2148
+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:2154
+msgid   "Color of status messages"
+msgstr  "Olekuteadete värv"
+
+#: src/lang.c:2155
+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:2161
+msgid   "Color of quoted lines"
+msgstr  "Tsitaadi värv"
+
+#: src/lang.c:2162
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Tsitaadi värv\n"
+        "# Vaikimisi: 2 (roheline)\n"
 
 #: src/lang.c:2168
-#, 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	"# Tsiteeriva rea vorming artikli mailimisel/postitamisel/vastamisel\n"
-	"# %%A Aadress    %%D Kuup   %%F Aadr+Nimi   %%G Grupp   %%M Message-ID\n"
-	"# %%N Täielik nimi  %%C Eesnimi   %%I Initsiaalid\n"
+msgid   "Color of twice quoted line"
+msgstr  "Topelt tsiteeritud rea värv"
+
+#: src/lang.c:2169
+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:2175
-msgid	"Quote line when cross-posting"
-msgstr	"Tsiteerimise rida ristpostitusel"
+msgid   "Color of =>3 times quoted line"
+msgstr  "=>3 korda tsiteeritud rea värv"
 
-#: src/lang.c:2181
-msgid	"Quote line when mailing"
-msgstr	"Tsiteerimise rida kirjutamisel"
-
-#: src/lang.c:2186
-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:2187
-msgid	"Insert 'User-Agent:'-header"
-msgstr	"Sisestage 'User-Agent:'-päis"
-
-#: src/lang.c:2188
-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:2193
-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:2194
-msgid	"MM_CHARSET"
-msgstr	"MM_CHARSET"
-
-#: src/lang.c:2195
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	"# Lokaalselt toetatud kooditabel, mida kasutatakse ka MIME päistes\n"
-	"# ja Content-Type päises.\n"
-	"# Kui ei ole seatud, kasutatakse keskkonnamuutuja MM_CHARSET väärtust.\n"
-	"# Kui ka seda pole seatud, kasutatakse kompileerimise ajal määratut\n"
-	"# või US-ASCII.\n"
-	"# Kui kompileerimise ajal oli defineeritud MIME_STRICT_CHARSET, siis\n"
-	"# loetakse mm_charset väärtusest erinev kooditabel mitte-näidatavaks\n"
-	"# ja näitamisel kasutatakse '?'.\n"
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	"MM_NETWORK_CHARSET"
-
-#: src/lang.c:2206
-msgid	"# Charset used for MIME (Content-Type) header in postings.\n"
-msgstr	"# Postituste MIME (Content-Type) päises kasutatav kooditabel.\n"
-
-#: src/lang.c:2212
-msgid	"Mailbox format"
-msgstr	"Kirjade kataloog"
-
-#: src/lang.c:2213
-msgid	"# Format of the mailbox.\n"
-msgstr	"# Kirjade kataloog.\n"
+#: src/lang.c:2176
+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:2182
+msgid   "Color of article header lines"
+msgstr  "Artikli päiseridade värv"
+
+#: src/lang.c:2183
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Päiseridade värv\n"
+        "# Vaikimisi: 2 (roheline)\n"
+
+#: src/lang.c:2189
+msgid   "Color of actual news header fields"
+msgstr  "Artikli tegelike päiseridade värv"
+
+#: src/lang.c:2190
+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:2196
+msgid   "Color of article subject lines"
+msgstr  "Artikli teemarea värv"
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Artikli teema värv\n"
+        "# Vaikimisi: 6 (lilla)\n"
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  "Vastuste arvu loenduri värv"
+
+#: src/lang.c:2204
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Vastuste arvu loenduri värv\n"
+        "# Vaikimisi: 2 (roheline)\n"
+
+#: src/lang.c:2210
+msgid   "Color of sender (From:)"
+msgstr  "Saatja värv (From:)"
+
+#: src/lang.c:2211
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Saatja värv (From:)\n"
+        "# Vaikimisi: 2 (roheline)\n"
+
+#: src/lang.c:2217
+msgid   "Color of help/mail sign"
+msgstr  "Abiinfo/kirja teate värv"
 
 #: src/lang.c:2218
-msgid	"MIME encoding in news messages"
-msgstr	"Kasuta artiklites MIME kodeerimist"
-
-#: src/lang.c:2219
-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"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	"# Vajadusel kirjade ja artiklite kehade MIME kodeerimine (8bit, base64,\n"
-	"# quoted-printable, 7bit). QP on piisav enamusele Euroopa kooditabelitele\n"
-	"# (ISO-8859-X), kus kasutatakse vähesel määral mitte-US-ASCII sümboleid.\n"
-	"# Base64 on kasulik enamuse 8 bitistele ida-aasia, kreeka ja vene\n"
-	"# kooditabelitele, kus kasutatakse palju 8 bitiseid sümboleid.\n"
-
-#: src/lang.c:2227 src/lang.c:2248
-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:2228
-msgid	"Use 8bit characters in news headers"
-msgstr	"Kasuta artikli päises 8bit tähti"
-
-#: src/lang.c:2229
-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	"# Kui väärtus on ON, 8bit sümboleid artiklite postitamisel ei kodeerita.\n"
-	"# Vaikimisi on OFF, seega vaikimisi kodeeritakse 8bit sümbolid.\n"
-	"# 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:2236
-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:2237
-msgid	"View post-processed files"
-msgstr	"Vaata töödeldud faile"
+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:2224
+msgid   "Color of signatures"
+msgstr  "Signatuuri värv"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Signatuuri värv\n"
+        "# Vaikimisi: 4 (sinine)\n"
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  "Esiletõstetud URLide värv"
+
+#: src/lang.c:2232
+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:2238
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	"# Kui on seatud, avatakse töödeldud fail vaatamiseks\n"
+msgid   "Color of verbatim blocks"
+msgstr  "Identsete blokkide värv"
 
-#: src/lang.c:2243
-msgid	"MIME encoding in mail messages"
-msgstr	"Kasuta kirjades MIME kodeerimist"
-
-#: src/lang.c:2249
-msgid	"Use 8bit characters in mail headers"
-msgstr	"Kasuta kirja päises 8bit tähti"
-
-#: src/lang.c:2250
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	"# Kui väärtus on ON, 8bit sümboleid kirjade päistes ei kodeerita.\n"
-	"# Vaikimisi on OFF, seega vaikimisi kodeeritakse 8bit sümbolid.\n"
-	"# 8bit sümbolid päistes kodeeritakse sõltumata selle parameetri väärtusest,\n"
-	"# kui just mail_mime_encoding väärtus on samuti 8bit. Pidage meeles,\n"
-	"# 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:2239
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  "# Identsete blokkide värv\n"
+        "# Vaikimisi: 5 (roosa)\n"
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  "*tärnidega* esiletõstmise värv"
+
+#: src/lang.c:2246
+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:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  "_alakriipsudega_ esiletõstmise värv"
+
+#: src/lang.c:2253
+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:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  "/Kaldkriipsude/ esiletõstmise värv"
 
 #: src/lang.c:2260
-msgid	"Strip blanks from ends of lines"
-msgstr	"Eemalda tühikud realõppudest"
-
-#: src/lang.c:2261
-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"
+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:2266
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	"Kui väärtus on ON, kasuta transliteratsiooni. <TÜHIK> lülitab, <CR> seab."
+msgid   "Color of highlighting with -stroke-"
+msgstr  "-Kriipsudega- esiletõstmise värv"
 
 #: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	"Transliteratsioon"
-
-#: src/lang.c:2268
-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	"# Kui väärtus on ON, kasuta //TRANSLIT laiendust. See tähendab, et kui "
-	"sümbolit\n"
-	"# ei saa esitada soovitavas kooditabelis, võib seda esitada kasutades\n"
-	"# üht või enamat sarnast sümbolit.\n"
+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:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  "*tärnidega* esiletõstmise atribuut"
 
 #: src/lang.c:2275
-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:2276
-msgid	"Send you a cc automatically"
-msgstr	"Saada automaatselt koopia"
-
-#: src/lang.c:2277
-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:2281
-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:2282
-msgid	"Send you a blind cc automatically"
-msgstr	"Saada automaatselt pimekoopia"
-
-#: src/lang.c:2283
-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:2287
-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:2288
-msgid	"Spamtrap warning address parts"
-msgstr	"Rämpsposti hoiatus aadressi osadele"
-
-#: src/lang.c:2289
-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:2294
-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:2295
-msgid	"No. of days a filter entry is valid"
-msgstr	"Filtri kehtivus päevades"
-
-#: src/lang.c:2296
-msgid	"# Number of days a short term filter will be active\n"
-msgstr	"# lühiajalise filtri kehtivus päevades\n"
-
-#: src/lang.c:2300
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	"Lisage postitatud artikkel filtrisse. <TÜHIK> lülitab, <CR> seab."
-
-#: src/lang.c:2301
-msgid	"Add posted articles to filter"
-msgstr	"Lisage postitatud artikkel filtrile"
-
-#: src/lang.c:2302
-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:2306
-msgid	"The directory where articles/threads are to be saved in mailbox format."
-msgstr	"Kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis."
-
-#: src/lang.c:2307
-msgid	"Mail directory"
-msgstr	"Kirjade kataloog"
-
-#: src/lang.c:2308
-msgid	"# (-m) directory where articles/threads are saved in mailbox format\n"
-msgstr	"# (-m) kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis\n"
-
-#: src/lang.c:2313
-msgid	"Save articles in batch mode (-S)"
-msgstr	"Salvesta artiklid pakettmoodis (-S)"
-
-#: src/lang.c:2314
-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:2319
-msgid	"The directory where you want articles/threads saved."
-msgstr	"Kataloog, kuhu te soovite artikleid salvestada."
-
-#: src/lang.c:2320
-msgid	"Directory to save arts/threads in"
-msgstr	"Kataloog artiklite salvestamiseks"
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	"# Kataloog, kuhu salvestatakse artiklid/teemad\n"
-
-#: src/lang.c:2325
-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:2326
-msgid	"Use Archive-name: header for save"
-msgstr	"Kasuta salvestamisel Archive-name:"
-
-#: src/lang.c:2327
-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:2332
-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."
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  "# Sõnade esiletõstmise atribuut mono terminalidel.\n"
+        "# Võimalikud väärtused on:\n"
+        "#   0 - Tavaline\n"
+        "#   1 - Allajoonitud\n"
+        "#   2 - Parim esiletõstmine\n"
+        "#   3 - Pööratud video\n"
+        "#   4 - Plinkiv\n"
+        "#   5 - Poolhele\n"
+        "#   6 - Paks\n"
+        "\n"
+        "# *tärnidega* esiletõstmise atribuut\n"
+        "# Vaikimisi: 6 (paks)\n"
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  "_alakriipsudega_ esiletõstmise atr."
+
+#: src/lang.c:2291
+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:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  "/Kaldkriipsude/ esiletõstmise atr."
+
+#: src/lang.c:2298
+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:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  "-Kriipsudega- esiletõstmise atr."
+
+#: src/lang.c:2305
+msgid   "# Attribute of word highlighting with -stroke-\n"
+        "# Default: 3 (reverse video)\n"
+msgstr  "# Vaikimisi: 3 (pööratud video)\n"
+
+#: src/lang.c:2311
+msgid   "URL highlighting in message body"
+msgstr  "Teate kehas URL esiletõstmine"
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  "# Luba URLide esiletõstmine?\n"
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  "Sõnade esiletõstmine teate kehas"
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  "# Lubada sõnade esiletõstmine?\n"
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  "Mida näidata märgi asemel"
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  "# Kas näidata algavaid ja lõppevaid tärne ja kriipse,\n"
+        "# isegi, kui need on ka esiletõstmise märgid?\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 - ei\n"
+        "#   1 - jah, näita märki\n"
+        "# * 2 - trüki hoopis tühik\n"
 
 #: src/lang.c:2333
-msgid	"Mark saved articles/threads as read"
-msgstr	"Märgi salvestatud artiklid loetuks"
+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:2334
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	"# Kui väärtus on ON, märgi salvestatud artiklid loetuks\n"
+msgid   "Page line wrap column"
+msgstr  "Rea murdmise veerg lehitsejas"
 
-#: src/lang.c:2338
-msgid	"Do post processing (eg. extract attachments) for saved articles."
-msgstr	"Teosta salvestatud artiklitel järeltöötlemist (nt. lisade eraldamist)."
-
-#: src/lang.c:2339
-msgid	"Post process saved articles"
-msgstr	"Salvestatud artikl. järeltöötlemine"
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  "# Murra artikli read antud veerus\n"
 
 #: src/lang.c:2340
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	"# Teosta salvestatud artiklite järeltöötlemist (lisade eraldamine).\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = ei\n"
-	"#   1 = jah\n"
-	"#   2 = eralda ainult shelli arhiivid (shar)\n"
-
-#: src/lang.c:2349
-msgid	"Process only unread articles"
-msgstr	"Töötle ainult lugemata artikleid"
-
-#: src/lang.c:2350
-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:2355
-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:2356
-msgid	"Print all headers when printing"
-msgstr	"Trükkimisel trüki kõik päised"
+msgid   "Wrap around threads on next unread"
+msgstr  "Liigu lugemata art-le ümber teemade"
+
+#: src/lang.c:2341
+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:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  "Sisestage oma e-posti aadress (ja oma nimi). <CR> seab."
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  "E-posti aadress (ja teie nimi)"
+
+#: src/lang.c:2347
+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:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  "Näita toimetis tühja Followup-To"
+
+#: src/lang.c:2353
+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:2357
-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"
+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:2361
-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:2362
-msgid	"Printer program with options"
-msgstr	"Trükikäsk koos võtmetega"
-
-#: src/lang.c:2363
-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:2369
-msgid	"Force redraw after certain commands"
-msgstr	"Värskenda ekraani peale käske"
-
-#: src/lang.c:2370
-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:2358
+msgid   "Create signature from path/command"
+msgstr  "Signatuuri loomiseks tee/käsk"
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  "# Postitamisel/vastamisel kasutatav signatuuri fail\n"
+        "# sigfile=fail       lisa signatuur failist\n"
+        "# sigfile=!käsk      käivitab käsu, mis genereerib signatuuri\n"
+        "# sigfile=--none     ära lisa signatuuri\n"
+
+#: src/lang.c:2366
+msgid   "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
+msgstr  "Signatuurile eelnevale reale \"-- \". <TÜHIK> lülitab, <CR> seab."
+
+#: src/lang.c:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  "Lisa signatuuri ette \"-- \""
+
+#: src/lang.c:2368
+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:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  "Lisa artikli uuestipostitamisel signatuur. <TÜHIK> lülitab, <CR> seab."
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  "Lisa uuestipostitusel signatuur"
 
 #: src/lang.c:2374
-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:2375
-msgid	"Start editor with line offset"
-msgstr	"Käivita tekstitoimeti reanumbril"
-
-#: src/lang.c:2376
-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:2381
-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:2382
-msgid	"Invocation of your editor"
-msgstr	"Teie tekstitoimeti"
-
-#: src/lang.c:2383
-#, 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:2388
-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:2389
-msgid	"External inews"
-msgstr	"Väline inews"
-
-#: src/lang.c:2390
-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:2394
-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:2395
-msgid	"Invocation of your mail command"
-msgstr	"Teie e-posti käsk"
-
-#: src/lang.c:2396
-#, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	"# e-posti saatja käsurea formaat koos parameetritega\n"
-	"# %%M Programm  %%S Teema  %%T Saaja  %%F Failinimi\n"
-	"# 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:2404
-msgid	"Use interactive mail reader"
-msgstr	"Kasuta interaktiivset e-posti"
-
-#: src/lang.c:2405
-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	"# Interaktiivne e-posti programm\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = interaktiivset e-posti programmi pole\n"
-	"#   1 = kasuta interaktiivset e-posti programmi koos päistega\n"
-	"#   2 = kasuta interaktiivset e-posti programmi päisteta\n"
-
-#: src/lang.c:2414
-msgid	"Remove ~/.article after posting"
-msgstr	"Eemalda ~/.article peale postitust"
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  "# Kui väärtus on ON, lisa uuestipostitatud artiklile signatuur\n"
 
-#: src/lang.c:2415
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	"# Kui väärtus on ON, kustuta  ~/.article peale postitust.\n"
+#: src/lang.c:2378
+#, 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:2419
-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:2379
+msgid   "Characters used as quote-marks"
+msgstr  "Tsiteerimise märgid"
+
+#: src/lang.c:2380
+#, 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:2386
+msgid   "Quoting behavior"
+msgstr  "Käitumine tsiteerimisel"
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  "# Kuidas käsitleda vastamisel tsitaate.\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = Ei tee midagi erilist\n"
+        "#   1 = Tihenda tsitaadid\n"
+        "#   2 = Tsiteeri allkirju\n"
+        "#   3 = Tihenda tsitaadid, tsiteeri allkirju\n"
+        "#   4 = Tsiteeri tühje ridu\n"
+        "# * 5 = Tihenda tsitaadid, tsiteeri tühje ridu\n"
+        "#   6 = Tsiteeri allkirju, tsiteeri tühje ridu\n"
+        "#   7 = Tihenda tsitaadid, tsiteeri allkirju, tsiteeri tühje ridu\n"
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+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:2401
+msgid   "Quote line when following up"
+msgstr  "Tsiteerimise rida vastamisel"
+
+#: src/lang.c:2402
+#, 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  "# Tsiteeriva rea vorming artikli mailimisel/postitamisel/vastamisel\n"
+        "# %%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:2409
+msgid   "Quote line when cross-posting"
+msgstr  "Tsiteerimise rida ristpostitusel"
+
+#: src/lang.c:2415
+msgid   "Quote line when mailing"
+msgstr  "Tsiteerimise rida kirjutamisel"
 
 #: src/lang.c:2420
-msgid	"Filename for posted articles"
-msgstr	"Failinimi postitatud artiklitele"
+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:2421
-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:2426
-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."
+#, fuzzy
+msgid   "Insert 'User-Agent:' header"
+msgstr  "Sisestage 'User-Agent:'-päis"
+
+#: src/lang.c:2422
+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:2427
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	"Vigased artiklid ~/dead.articles"
+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:2428
-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"
+msgid   "MM_CHARSET"
+msgstr  "MM_CHARSET"
 
-#: src/lang.c:2432
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	"Kas te soovite eemaldada tellimata grupid .newsrc failist"
-
-#: src/lang.c:2433
-msgid	"No unsubscribed groups in newsrc"
-msgstr	"newsrcs ainult tellitud grupid"
-
-#: src/lang.c:2434
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	"# Kui väärtus on ON, eemalda tellimata grupid newsrc failist\n"
+#: src/lang.c:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  "# Lokaalselt toetatud kooditabel, mida kasutatakse ka MIME päistes\n"
+        "# ja Content-Type päises.\n"
+        "# Kui ei ole seatud, kasutatakse keskkonnamuutuja MM_CHARSET väärtust.\n"
+        "# Kui ka seda pole seatud, kasutatakse kompileerimise ajal määratut\n"
+        "# või US-ASCII.\n"
+        "# Kui kompileerimise ajal oli defineeritud MIME_STRICT_CHARSET, siis\n"
+        "# loetakse mm_charset väärtusest erinev kooditabel mitte-näidatavaks\n"
+        "# ja näitamisel kasutatakse '?'.\n"
 
 #: src/lang.c:2439
-msgid	"Remove bogus groups from newsrc"
-msgstr	"Eemalda olematud grupid"
+msgid   "MM_NETWORK_CHARSET"
+msgstr  "MM_NETWORK_CHARSET"
 
 #: src/lang.c:2440
-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	"# Mida teha olematute gruppidega newsrc failis\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"# * 0 = Hoia alles\n"
-	"#   1 = Eemalda\n"
-	"#   2 = Märgi valikuekraanil lipuga D\n"
-
-#: src/lang.c:2448
-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:2449
-msgid	"Interval in secs to reread active"
-msgstr	"Aktiivsete faili lugemise intervall"
-
-#: src/lang.c:2450
-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:2455
-msgid	"Reconnect to server automatically"
-msgstr	"Taasta automaatselt NNTP ühendus"
-
-#: src/lang.c:2456
-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:2460
-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."
+msgid   "# Charset used for MIME (Content-Type) header in postings.\n"
+msgstr  "# Postituste MIME (Content-Type) päises kasutatav kooditabel.\n"
 
-#: src/lang.c:2461
-msgid	"Cache NNTP overview files locally"
-msgstr	"Puhverda NNTP overview lokaalselt"
-
-#: src/lang.c:2462
-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:2466
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	"Sisestage vormingusõne. <CR> seab, <ESC> katkestab."
-
-#: src/lang.c:2467
-msgid	"Format string for display of dates"
-msgstr	"Kuupäevade esitamise vormingusõne"
-
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	"# Vormingusõne kuupäevade esitamiseks\n"
-
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	"Unikoodi normaliseerimise kuju"
-
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	"# Unikoodi normaliseerimine\n"
-	"# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
-	"#   0 = Pole\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	"Renderda BiDi"
-
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	"# Kui väärtus on ON, renderdab tin mitmesuunalist (BiDi) teksti\n"
-
-#: src/misc.c:3750
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	"Versioon: %s %s väljalase %s (\"%s\") %s %s\n"
-
-#: src/misc.c:3753
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	"Versioon: %s %s väljalase %s (\"%s\")\n"
-
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	"Kättesaamatu?\n"
-
-#: src/nntplib.c:824
-#, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	"\n"
-	"Ühendus serveriga aegus, proovin taastada, katse %d\n"
-
-#: src/nntplib.c:842 src/nntplib.c:1630
-msgid	"Rejoin current group\n"
-msgstr	"Taasühinen jooksva grupiga\n"
-
-#: src/nntplib.c:849 src/nntplib.c:1637
-#, c-format
-msgid	"Read (%s)\n"
-msgstr	"Lugesin (%s)\n"
-
-#: src/nntplib.c:851
-#, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	"Saada viimane käsk uuesti (%s)\n"
-
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	"MOTD: "
-
-#: src/nrctbl.c:170
-#, c-format
-msgid	"couldn't expand %s\n"
-msgstr	"ei saa laiendada %s\n"
-
-#: src/post.c:1171
-#, 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/lang.c:2444
+msgid   "Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  "Sisestage lokaalse kooditabeli nimi (n. UTF-8, ISO-8859-15), <CR> seab."
+
+#: src/lang.c:2445
+msgid   "MM_LOCAL_CHARSET"
+msgstr  "MM_LOCAL_CHARSET"
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  "# Lokaalne kooditabel.\n"
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  "Kirjade kataloog"
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  "# Kirjade kataloog.\n"
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  "Kasuta artiklites MIME kodeerimist"
 
-#: src/post.c:1176
-#, 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	"Rida %d on pikem, kui 998 sümbolit ja tuleks poolitada, aga kodeering\n"
-	"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
-#, 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/lang.c:2460
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  "# Vajadusel kirjade ja artiklite kehade MIME kodeerimine (8bit, base64,\n"
+        "# quoted-printable, 7bit). QP on piisav enamusele Euroopa kooditabelitele\n"
+        "# (ISO-8859-X), kus kasutatakse vähesel määral mitte-US-ASCII sümboleid.\n"
+        "# Base64 on kasulik enamuse 8 bitistele ida-aasia, kreeka ja vene\n"
+        "# kooditabelitele, kus kasutatakse palju 8 bitiseid sümboleid.\n"
+
+#: src/lang.c:2468 src/lang.c:2489
+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:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  "Kasuta artikli päises 8bit tähti"
+
+#: src/lang.c:2470
+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  "# Kui väärtus on ON, 8bit sümboleid artiklite postitamisel ei kodeerita.\n"
+        "# Vaikimisi on OFF, seega vaikimisi kodeeritakse 8bit sümbolid.\n"
+        "# 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:2477
+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:2478
+msgid   "View post-processed files"
+msgstr  "Vaata töödeldud faile"
+
+#: src/lang.c:2479
+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:2484
+msgid   "MIME encoding in mail messages"
+msgstr  "Kasuta kirjades MIME kodeerimist"
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  "Kasuta kirja päises 8bit tähti"
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  "# Kui väärtus on ON, 8bit sümboleid kirjade päistes ei kodeerita.\n"
+        "# Vaikimisi on OFF, seega vaikimisi kodeeritakse 8bit sümbolid.\n"
+        "# 8bit sümbolid päistes kodeeritakse sõltumata selle parameetri väärtusest,\n"
+        "# kui just mail_mime_encoding väärtus on samuti 8bit. Pidage meeles,\n"
+        "# 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:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  "Eemalda tühikud realõppudest"
+
+#: src/lang.c:2502
+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:2507
+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:2508
+msgid   "Transliteration"
+msgstr  "Transliteratsioon"
+
+#: src/lang.c:2509
+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  "# Kui väärtus on ON, kasuta //TRANSLIT laiendust. See tähendab, et kui "
+        "sümbolit\n"
+        "# ei saa esitada soovitavas kooditabelis, võib seda esitada kasutades\n"
+        "# üht või enamat sarnast sümbolit.\n"
+
+#: src/lang.c:2517
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  "Saada automaatselt Cc/Bcc koopia"
+
+#: src/lang.c:2518
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  "# Artikli saatmisel paneb teie nime Cc: ja/või Bcc: väljale.\n"
+        "# Võimalikud väärtused on (vaikimisi väärtus märgitud *):\n"
+        "# * 0 = Ei pane\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc ja Bcc\n"
+
+#: src/lang.c:2527
+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:2528
+msgid   "Spamtrap warning address parts"
+msgstr  "Rämpsposti hoiatus aadressi osadele"
+
+#: src/lang.c:2529
+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:2534
+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:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  "Filtri kehtivus päevades"
+
+#: src/lang.c:2536
+msgid   "# Number of days a short term filter will be active\n"
+msgstr  "# lühiajalise filtri kehtivus päevades\n"
+
+#: src/lang.c:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  "Lisage postitatud artikkel filtrisse. <TÜHIK> lülitab, <CR> seab."
+
+#: src/lang.c:2541
+msgid   "Add posted articles to filter"
+msgstr  "Lisage postitatud artikkel filtrile"
+
+#: src/lang.c:2542
+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:2546
+msgid   "The directory where articles/threads are to be saved in mailbox format."
+msgstr  "Kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis."
+
+#: src/lang.c:2547
+msgid   "Mail directory"
+msgstr  "Kirjade kataloog"
+
+#: src/lang.c:2548
+msgid   "# (-m) directory where articles/threads are saved in mailbox format\n"
+msgstr  "# (-m) kataloog, kuhu artikleid/teemasid salvestatakse kirjaformaadis\n"
+
+#: src/lang.c:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  "Salvesta artiklid pakettmoodis (-S)"
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  "Kataloog, kuhu te soovite artikleid salvestada."
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  "Kataloog artiklite salvestamiseks"
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  "# Kataloog, kuhu salvestatakse artiklid/teemad\n"
+
+#: src/lang.c:2565
+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:2566
+msgid   "Use Archive-name: header for save"
+msgstr  "Kasuta salvestamisel Archive-name:"
+
+#: src/lang.c:2567
+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:2572
+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:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  "Märgi salvestatud artiklid loetuks"
+
+#: src/lang.c:2574
+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:2578
+msgid   "Do post processing (eg. extract attachments) for saved articles."
+msgstr  "Teosta salvestatud artiklitel järeltöötlemist (nt. lisade eraldamist)."
+
+#: src/lang.c:2579
+msgid   "Post process saved articles"
+msgstr  "Salvestatud artikl. järeltöötlemine"
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  "# Teosta salvestatud artiklite järeltöötlemist (lisade eraldamine).\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = ei\n"
+        "#   1 = jah\n"
+        "#   2 = eralda ainult shelli arhiivid (shar)\n"
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  "Töötle ainult lugemata artikleid"
+
+#: src/lang.c:2590
+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:2595
+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:2596
+msgid   "Print all headers when printing"
+msgstr  "Trükkimisel trüki kõik päised"
+
+#: src/lang.c:2597
+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:2601
+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:2602
+msgid   "Printer program with options"
+msgstr  "Trükikäsk koos võtmetega"
+
+#: src/lang.c:2603
+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:2609
+msgid   "Force redraw after certain commands"
+msgstr  "Värskenda ekraani peale käske"
+
+#: src/lang.c:2610
+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:2614
+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:2615
+msgid   "Start editor with line offset"
+msgstr  "Käivita tekstitoimeti reanumbril"
+
+#: src/lang.c:2616
+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:2621
+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:2622
+msgid   "Invocation of your editor"
+msgstr  "Teie tekstitoimeti"
+
+#: src/lang.c:2623
+#, 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:2628
+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:2629
+msgid   "External inews"
+msgstr  "Väline inews"
+
+#: src/lang.c:2630
+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:2634
+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:2635
+msgid   "Invocation of your mail command"
+msgstr  "Teie e-posti käsk"
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  "# e-posti saatja käsurea formaat koos parameetritega\n"
+        "# %%M Programm  %%S Teema  %%T Saaja  %%F Failinimi\n"
+        "# 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:2644
+msgid   "Use interactive mail reader"
+msgstr  "Kasuta interaktiivset e-posti"
+
+#: src/lang.c:2645
+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  "# Interaktiivne e-posti programm\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = interaktiivset e-posti programmi pole\n"
+        "#   1 = kasuta interaktiivset e-posti programmi koos päistega\n"
+        "#   2 = kasuta interaktiivset e-posti programmi päisteta\n"
+
+#: src/lang.c:2654
+msgid   "Remove ~/.article after posting"
+msgstr  "Eemalda ~/.article peale postitust"
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  "# Kui väärtus on ON, kustuta  ~/.article peale postitust.\n"
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+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:2668
+msgid   "Filename for posted articles"
+msgstr  "Failinimi postitatud artiklitele"
+
+#: src/lang.c:2669
+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:2674
+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:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  "Vigased artiklid ~/dead.articles"
+
+#: src/lang.c:2676
+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:2680
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  "Kas te soovite eemaldada tellimata grupid .newsrc failist"
+
+#: src/lang.c:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  "newsrcs ainult tellitud grupid"
+
+#: src/lang.c:2682
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  "# Kui väärtus on ON, eemalda tellimata grupid newsrc failist\n"
+
+#: src/lang.c:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  "Eemalda olematud grupid"
+
+#: src/lang.c:2688
+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  "# Mida teha olematute gruppidega newsrc failis\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "# * 0 = Hoia alles\n"
+        "#   1 = Eemalda\n"
+        "#   2 = Märgi valikuekraanil lipuga D\n"
+
+#: src/lang.c:2696
+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:2697
+msgid   "Interval in secs to reread active"
+msgstr  "Aktiivsete faili lugemise intervall"
+
+#: src/lang.c:2698
+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:2703
+msgid   "Reconnect to server automatically"
+msgstr  "Taasta automaatselt NNTP ühendus"
+
+#: src/lang.c:2704
+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:2708
+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:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  "Puhverda NNTP overview lokaalselt"
+
+#: src/lang.c:2710
+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:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  "Sisestage vormingusõne. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  "Kuupäevade esitamise vormingusõne"
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  "# Vormingusõne kuupäevade esitamiseks\n"
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  "Unikoodi normaliseerimise kuju"
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  "# Unikoodi normaliseerimine\n"
+        "# Võimalikud väärtused on (vaikeväärtuse tähis on *):\n"
+        "#   0 = Pole\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  "Renderda BiDi"
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  "# Kui väärtus on ON, renderdab tin mitmesuunalist (BiDi) teksti\n"
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  "Automaatselt GroupMarkUnselArtRead"
+
+#: src/lang.c:2752
+msgid   "Delete post-process files"
+msgstr  "Kustuta järel-töödeldud failid"
+
+#: src/lang.c:2757
+msgid   "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr  "Failinimi mailitud artiklitele. <CR> seab. Nime puudumisel ei salvestata."
+
+#: src/lang.c:2758
+msgid   "Mailbox to save sent mails"
+msgstr  "Saadetud e-mailide postkast"
+
+#: src/lang.c:2763
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  "Sea grup(p)i(de)le Followup-To: päis. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  "Followup-To: päis"
+
+#: src/lang.c:2769
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  "Sisestage oma e-posti aadress (ja oma nimi). <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2776
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  "ispell või selle analoogi tee ja argumendid, <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  "Ispell programm"
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  "Kui grupp on postiloend, saada vastused sel aadressil."
+
+#: src/lang.c:2784
+msgid   "Mailing list address"
+msgstr  "Postiloendi aadress"
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  "Saada artikkel manusena"
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  "Komaga eraldatud loend MIME põhi/alam sisu tüüpidest. <ESC> katkestab."
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  "Millised MIME tüübid salvestatakse"
+
+#: src/lang.c:2801
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  "Organization: päise väärtus. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  "Organization: päis"
+
+#: src/lang.c:2807
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  "Salvestatud artiklite fail. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2808
+msgid   "savefile"
+msgstr  "fail salvestamiseks"
+
+#: src/lang.c:2813 src/lang.c:2837
+#, fuzzy
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  "Sisestage vormingusõne. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2814
+#, fuzzy
+msgid   "Quick (1 key) select filter scope"
+msgstr  "Lisan kiirvaliku filtri?"
+
+#: src/lang.c:2819 src/lang.c:2843
+#, fuzzy
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  "Salvestatud artiklite fail. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
+
+#: src/lang.c:2825 src/lang.c:2849
+#, fuzzy
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  "Organization: päise väärtus. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2826
+#, fuzzy
+msgid   "Quick (1 key) select filter case"
+msgstr  "Lisan kiirvaliku filtri?"
+
+#: src/lang.c:2831 src/lang.c:2855
+#, fuzzy
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  "Lisa postitamisel see päis. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
+
+#: src/lang.c:2838
+#, fuzzy
+msgid   "Quick (1 key) kill filter scope"
+msgstr  "Lisan kiirsurmamise filtri?"
+
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
+
+#: src/lang.c:2850
+#, fuzzy
+msgid   "Quick (1 key) kill filter case"
+msgstr  "Lisan kiirsurmamise filtri?"
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  "Kui kooditabelit pole määratud, kasuta seda kooditabelit, <CR> seab."
+
+#: src/lang.c:2863
+msgid   "UNDECLARED_CHARSET"
+msgstr  "UNDECLARED_CHARSET"
+
+#: src/lang.c:2869
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  "Lisa see tekst teate keha algusse. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2870
+msgid   "X_Body"
+msgstr  "X_Body"
+
+#: src/lang.c:2875
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  "Lisa postitamisel see päis. <CR> seab, <ESC> katkestab."
+
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  "X_Headers"
+
+#: src/lang.c:2881
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  "Lisa automaatselt X-Comment-To: päis? <TÜHIK> lülitab, <CR> seab."
+
+#: src/lang.c:2882
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  "Sisestage 'X-Comment-To:' päis"
+
+#: src/misc.c:3754
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "Versioon: %s %s väljalase %s (\"%s\") %s %s\n"
+
+#: src/misc.c:3757
+#, c-format
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "Versioon: %s %s väljalase %s (\"%s\")\n"
+
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  "Kättesaamatu?\n"
+
+#: src/nntplib.c:819
+#, c-format
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  "\n"
+        "Ühendus serveriga aegus, proovin taastada, katse %d\n"
+
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  "Taasühinen jooksva grupiga\n"
+
+#: src/nntplib.c:863 src/nntplib.c:1838
+#, c-format
+msgid   "Read (%s)\n"
+msgstr  "Lugesin (%s)\n"
+
+#: src/nntplib.c:865
+#, c-format
+msgid   "Resend last command (%s)\n"
+msgstr  "Saada viimane käsk uuesti (%s)\n"
+
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  "CAPABILITIES ei sisalda READER"
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  "MOTD: "
+
+#: src/nrctbl.c:175
+#, c-format
+msgid   "couldn't expand %s\n"
+msgstr  "ei saa laiendada %s\n"
+
+#: src/post.c:1307
+#, 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:1312
+#, fuzzy, 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  "Rida %d on pikem, kui 998 sümbolit ja tuleks poolitada, aga kodeering\n"
+        "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:1314
+#, fuzzy, 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:2278
 #, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"Postitan: %.*s ..."
+msgid   "Posting: %.*s ..."
+msgstr  "Postitan: %.*s ..."
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	"Katkestan lugemise, palun oodake..."
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	"Katkestatud lugemine\n"
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	"Tühjendan\n"
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	"muutmata"
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	"[- Pole kasutatav -]"
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "Katkestan lugemise, palun oodake..."
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "Katkestatud lugemine\n"
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  "Tühjendan\n"
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  "muutmata"
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  "[- Pole kasutatav -]"
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	"See teade on koostatud kasutades 'multipart/mixed' MIME vormingut. Kui\n"
-	"te loete seda prefiksit, siis pole teie mailiprogrammi seadistatud seda\n"
-	"vormingut kasutama ja järgnev tekst võib olla kummaline.\n"
-	"\n"
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	"baiti"
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	"lugemata"
-
-#: src/select.c:379
-msgid	"all"
-msgstr	"kõik"
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	" L"
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	"Slrnface ei saa käivitada: Keskkonnamuutuja %s puudub."
-
-#: src/xface.c:99 src/xface.c:131
-#, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	"Slrnface ei saa käivitada: %s loomine ebaõnnestus"
-
-#: src/xface.c:109
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	"Seda kataloogi kasutatakse slrnface ja tema vanemprotsessi vahelise\n"
-	"suhtlemise korraldamiseks nimega torude abil. Tavaliselt peaks see olema\n"
-	"tühi, kuna toru kustutatakse kohe, kui see on mõlemas protsessis avatud.\n"
-	"\n"
-	"slrnface poolt loodud failinimed on kujul \"hostinimi.pid\". Kui need\n"
-	"failid on jäänud alles kauemaks kui sekundi osa, viitab see tavaliselt\n"
-	"veale.\n"
-	"\n"
-	"Kui see kataloog on haagitud NFS serverilt, võib slrnface töö ajal\n"
-	"siiski näha ka vastavaid faile. Kui see on nii, ärge neid kustutage.\n"
-
-#: src/xface.c:123
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	"Slrnface ei saa käivitada: ei õnnestu konstrueerida fifo nime."
-
-#: src/xface.c:162
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  "See teade on koostatud kasutades 'multipart/mixed' MIME vormingut. Kui\n"
+        "te loete seda prefiksit, siis pole teie mailiprogrammi seadistatud seda\n"
+        "vormingut kasutama ja järgnev tekst võib olla kummaline.\n"
+        "\n"
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "baiti"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "lugemata"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "kõik"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  " L"
+
+#: src/xface.c:70
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  "Slrnface ei saa käivitada: Ei tööta xterm terminalis."
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
+#, c-format
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  "Slrnface ei saa käivitada: Keskkonnamuutuja %s puudub."
+
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  "Slrnface ei saa käivitada: %s loomine ebaõnnestus"
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  "Seda kataloogi kasutatakse slrnface ja tema vanemprotsessi vahelise\n"
+        "suhtlemise korraldamiseks nimega torude abil. Tavaliselt peaks see olema\n"
+        "tühi, kuna toru kustutatakse kohe, kui see on mõlemas protsessis avatud.\n"
+        "\n"
+        "slrnface poolt loodud failinimed on kujul \"hostinimi.pid\". Kui need\n"
+        "failid on jäänud alles kauemaks kui sekundi osa, viitab see tavaliselt\n"
+        "veale.\n"
+        "\n"
+        "Kui see kataloog on haagitud NFS serverilt, võib slrnface töö ajal\n"
+        "siiski näha ka vastavaid faile. Kui see on nii, ärge neid kustutage.\n"
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  "Slrnface ei saa käivitada: ei õnnestu konstrueerida fifo nime."
+
+#: src/xface.c:174
 #, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	"Slrnface lõpetas veaga, kood %d."
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  "Slrnface lõpetas veaga, kood %d."
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, c-format
-msgid	"Slrnface failed: %s."
-msgstr	"Slrnface ebaõnnestus: %s."
+msgid   "Slrnface failed: %s."
+msgstr  "Slrnface ebaõnnestus: %s."
Binary files tin-1.8.3/po/fr.gmo and tin-2.0.0/po/fr.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/fr.po tin-2.0.0/po/fr.po
--- tin-1.8.3/po/fr.po	2007-02-01 13:58:04.000000000 +0100
+++ tin-2.0.0/po/fr.po	2011-08-22 18:32:42.127384867 +0200
@@ -1,6626 +1,7671 @@
-# French translation for tin
-# Matt Anton <tin@syrius.org>, 2003-2004
+# French translation for tin.
+# This file is distributed under the same license as the tin package.
+# Matt Anton <tin@syrius.org>, 2003-2011.
 #
-msgid	""
-msgstr	"Project-Id-Version: 1.8.0\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+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"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=ISO-8859-15\n"
-	"Content-Transfer-Encoding: 8bit\n"
+msgid   ""
+msgstr  "Project-Id-Version: tin-1.9.6\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\n"
+        "PO-Revision-Date: 2011-01-22 14:11+0100\n"
+        "Last-Translator: Matt Anton <tin@syrius.org>\n"
+        "Language-Team: French <traduc@traduc.org>\n"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=ISO-8859-15\n"
+        "Content-Transfer-Encoding: 8bit\n"
+        "Language: fr\n"
 
-#: src/art.c:1534
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	"%d Mauvais overview (%d champs) '%s'"
+msgid   "attribute with no scope: %s"
+msgstr  "attribut sans sélection : %s"
 
-#: src/attrib.c:649
+#: src/attrib.c:884
+msgid   "Processing attributes... "
+msgstr  "Traitement du fichier attributes..."
+
+#: src/attrib.c:1102
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	"# Ne pas éditer ce commentaire\n"
-	"#\n"
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  "# Ne pas éditer ce commentaire\n"
+        "#\n"
 
-#: src/attrib.c:650
+#: src/attrib.c:1103
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	"#  scope=TERME (pe. alt.*,!alt.bin*) [obligatoire]\n"
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  "#  scope=TERME (pe. alt.*,!alt.bin*) [obligatoire]\n"
 
-#: src/attrib.c:651
+#: src/attrib.c:1104
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	"#  maildir=TERME (pe. ~/Mail)\n"
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  "#  add_posted_to_filter=ON/OFF\n"
 
-#: src/attrib.c:652
+#: src/attrib.c:1105
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	"#  savedir=TERME (pe. ~user/News)\n"
+msgid   "#  advertising=ON/OFF\n"
+msgstr  "#  advertising=ON/OFF\n"
 
-#: src/attrib.c:653
+#: src/attrib.c:1106
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	"#  savefile=TERME (pe. =linux)\n"
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  "#  alternative_handling=ON/OFF\n"
 
-#: src/attrib.c:654
+#: src/attrib.c:1107
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	"#  sigfile=TERME (pe. $var/sig)\n"
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  "#  ask_for_metamail=ON/OFF\n"
 
-#: src/attrib.c:655
+#: src/attrib.c:1108
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	"#  organization=TERME (si commence par '/' lire dans fichier)\n"
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  "#  auto_cc_bcc=NUM\n"
 
-#: src/attrib.c:656
+#: src/attrib.c:1109
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	"#  followup_to=TERME\n"
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  "#    0=Non, 1=Cc, 2=Cci, 3=Cc et Cci\n"
 
-#: src/attrib.c:657
+#: src/attrib.c:1110
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	"#  mailing_list=TERME (pe. majordomo@example.org)\n"
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  "#  auto_list_thread=ON/OFF\n"
 
-#: src/attrib.c:658
+#: src/attrib.c:1111
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	"#  x_headers=TERME (pe. ~/.tin/extra-headers)\n"
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  "#  auto_save=ON/OFF\n"
 
-#: src/attrib.c:659
+#: src/attrib.c:1112
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	"#  x_body=TERME (pe. ~/.tin/extra-body-text)\n"
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  "#  auto_select=ON/OFF\n"
 
-#: src/attrib.c:660
+#: src/attrib.c:1113
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	"#  from=TERME (choix du 'From:', ne pas utiliser celui cité)\n"
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  "#  batch_save=ON/OFF\n"
 
-#: src/attrib.c:661
+#: src/attrib.c:1114
 #, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	"#  news_quote_format=TERME\n"
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  "#  date_format=TERME (pe. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
 
-#: src/attrib.c:662
+#: src/attrib.c:1115
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	"#  quote_chars=TERME (%%s, %%S pour les initiales)\n"
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  "#  delete_tmp_files=ON/OFF\n"
 
-#: src/attrib.c:663
+#: src/attrib.c:1116
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	"#  mime_types_to_save=TERME (pe. image/*,!image/bmp)\n"
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  "#  editor_format=TERME (pe. %%E +%%N %%F)\n"
 
-#: src/attrib.c:665
+#: src/attrib.c:1117
 #, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	"#  ispell=TERME\n"
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  "#  fcc=TERME (pe. =mailbox)\n"
 
-#: src/attrib.c:667
+#: src/attrib.c:1118
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	"#  auto_select=ON/OFF\n"
+msgid   "#  followup_to=STRING\n"
+msgstr  "#  followup_to=TERME\n"
 
-#: src/attrib.c:668
+#: src/attrib.c:1119
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	"#  auto_save=ON/OFF\n"
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  "#  from=TERME (choix du 'From:', ne pas utiliser celui cité)\n"
 
-#: src/attrib.c:669
+#: src/attrib.c:1120
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	"#  batch_save=ON/OFF\n"
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  "#  group_catchup_on_exit=ON/OFF\n"
 
-#: src/attrib.c:670
+#: src/attrib.c:1121
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	"#  delete_tmp_files=ON/OFF\n"
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  "#  mail_8bit_header=ON/OFF\n"
 
-#: src/attrib.c:671
+#: src/attrib.c:1122
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	"#  show_only_unread=ON/OFF\n"
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  "#  mail_mime_encoding=encodage_supporté"
 
-#: src/attrib.c:672
+#: src/attrib.c:1130
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	"#  thread_arts=NUM"
+msgid   "#  ispell=STRING\n"
+msgstr  "#  ispell=TERME\n"
 
-#: src/attrib.c:679
+#: src/attrib.c:1132
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	"#  thread_perc=NUM\n"
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  "#  maildir=TERME (pe. ~/Mail)\n"
 
-#: src/attrib.c:680
+#: src/attrib.c:1133
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	"#  show_author=NUM\n"
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  "#  mailing_list=TERME (pe. majordomo@example.org)\n"
 
-#: src/attrib.c:686
+#: src/attrib.c:1134
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	"#  show_info=NUM\n"
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  "#  mime_types_to_save=TERME (pe. image/*,!image/bmp)\n"
 
-#: src/attrib.c:692
+#: src/attrib.c:1135
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	"#  sort_art_type=NUM\n"
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  "#  mark_ignore_tags=ON/OFF\n"
 
-#: src/attrib.c:710
+#: src/attrib.c:1136
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	"#  sort_threads_type=NUM\n"
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  "#  mark_saved_read=ON/OFF\n"
 
-#: src/attrib.c:715
+#: src/attrib.c:1137
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	"#  post_proc_type=NUM\n"
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  "#  mime_forward=ON/OFF\n"
 
-#: src/attrib.c:720
+#: src/attrib.c:1139
 #, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	"#  quick_kill_scope=TERME (pe. talk.*)\n"
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  "#  mm_network_charset=encodage_supporté"
 
-#: src/attrib.c:721
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	"#  quick_kill_expire=ON/OFF\n"
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  "#  undeclared_charset=TERME (défaut est US-ASCII)\n"
 
-#: src/attrib.c:722
+#: src/attrib.c:1148
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	"#  quick_kill_case=ON/OFF\n"
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  "#  news_headers_to_display=TERME\n"
 
-#: src/attrib.c:723
+#: src/attrib.c:1149
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	"#  quick_kill_header=NUM\n"
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  "#  news_headers_to_not_display=TERME\n"
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1150
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	"#    0=subject (casse sensible) 1=subject (ignore la casse)\n"
+msgid   "#  news_quote_format=STRING\n"
+msgstr  "#  news_quote_format=TERME\n"
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1151
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	"#    2=from (casse sensible) 3=from (ignore la casse)\n"
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  "#  organization=TERME (si commence par '/' lire dans fichier)\n"
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1152
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	"#    4=msgid 5=lines\n"
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  "#  pos_first_unread=ON/OFF\n"
 
-#: src/attrib.c:727
+#: src/attrib.c:1153
 #, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	"#  quick_select_scope=TERME\n"
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  "#  post_8bit_header=ON/OFF\n"
 
-#: src/attrib.c:728
+#: src/attrib.c:1154
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	"#  quick_select_expire=ON/OFF\n"
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  "#  post_mime_encoding=encodage_supporté"
 
-#: src/attrib.c:729
+#: src/attrib.c:1161
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	"#  quick_select_case=ON/OFF\n"
+msgid   "#  post_process_type=NUM\n"
+msgstr  "#  post_process_type=NUM\n"
 
-#: src/attrib.c:730
+#: src/attrib.c:1166
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	"#  quick_select_header=NUM\n"
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  "#  post_process_view=ON/OFF\n"
 
-#: src/attrib.c:734
+#: src/attrib.c:1167
 #, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	"#  x_comment_to=ON/OFF\n"
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  "#  quick_kill_scope=TERME (pe. talk.*)\n"
 
-#: src/attrib.c:735
+#: src/attrib.c:1168
 #, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	"#  fcc=TERME (pe. =mailbox)\n"
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  "#  quick_kill_expire=ON/OFF\n"
 
-#: src/attrib.c:736
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	"#  tex2iso_conv=ON/OFF\n"
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  "#  quick_kill_case=ON/OFF\n"
 
-#: src/attrib.c:737
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	"#  mime_forward=ON/OFF\n"
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  "#  quick_kill_header=NUM\n"
 
-#: src/attrib.c:739
+#: src/attrib.c:1171 src/attrib.c:1180
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	"#  mm_network_charset=encodage_supporté"
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  "#    0=Subject: (casse sensible)  1=Subject: (ignore la casse)\n"
 
-#: src/attrib.c:746
+#: src/attrib.c:1172 src/attrib.c:1181
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	"#  undeclared_charset=TERME (défaut est US-ASCII)\n"
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  "#    2=From: (casse sensible)     3=From: (ignore la casse)\n"
 
-#: src/attrib.c:748
+#: src/attrib.c:1173 src/attrib.c:1182
 #, 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"
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  "#    4=Message-ID: &  \"References:\" complètes : ligne\n"
 
-#: src/attrib.c:749
+#: src/attrib.c:1174 src/attrib.c:1183
 #, 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"
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  "#    5=Message-ID: & dernières References: entrée uniquement\n"
 
-#: src/attrib.c:750
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	"############################################################################\n"
-	"\n"
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  "#    6=Message-ID: entrée uniquement     7=Lignes:\n"
 
-#: src/attrib.c:756
+#: src/attrib.c:1176
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	"# inclure des en-têtes supplémentaires\n"
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  "#  quick_select_scope=TERME\n"
 
-#: src/attrib.c:764
+#: src/attrib.c:1177
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	"# dans *sources* choisir le type shar en post-traitement\n"
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  "#  quick_select_expire=ON/OFF\n"
 
-# TRANSLATION OUTDATED
-#: src/attrib.c:768
-#, 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:1178
+#, c-format
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  "#  quick_select_case=ON/OFF\n"
 
-#: src/attrib.c:769
+#: src/attrib.c:1179
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	"# effaçant les fichiers temporaires et utiliser Followup-To: poster\n"
+msgid   "#  quick_select_header=NUM\n"
+msgstr  "#  quick_select_header=NUM\n"
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	"(inconnu)"
+#: src/attrib.c:1185
+#, c-format
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  "#  quote_chars=TERME (%%s, %%S pour les initiales)\n"
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	"Effacé de la règle précédente : "
-
-# TRANSLATION MISSING
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	""
+#: src/attrib.c:1187
+#, c-format
+msgid   "#  print_header=ON/OFF\n"
+msgstr  "#  print_header=ON/OFF\n"
+
+#: src/attrib.c:1189
+#, c-format
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  "#  process_only_unread=ON/OFF\n"
+
+#: src/attrib.c:1190
+#, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  "#  prompt_followupto=ON/OFF\n"
+
+#: src/attrib.c:1191
+#, c-format
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  "#  savedir=TERME (pe. ~user/News)\n"
+
+#: src/attrib.c:1192
+#, c-format
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  "#  savefile=TERME (pe. =linux)\n"
+
+#: src/attrib.c:1193
+#, c-format
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  "#  sigfile=TERME (pe. $var/sig)\n"
+
+#: src/attrib.c:1194
+#, c-format
+msgid   "#  show_author=NUM\n"
+msgstr  "#  show_author=NUM\n"
+
+#: src/attrib.c:1200
+#, c-format
+msgid   "#  show_info=NUM\n"
+msgstr  "#  show_info=NUM\n"
+
+#: src/attrib.c:1206
+#, c-format
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  "#  show_signatures=ON/OFF\n"
+
+#: src/attrib.c:1207
+#, c-format
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  "#  show_only_unread=ON/OFF\n"
+
+#: src/attrib.c:1208
+#, c-format
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  "#  sigdashes=ON/OFF\n"
+
+#: src/attrib.c:1209
+#, c-format
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  "#  signature_repost=ON/OFF\n"
+
+#: src/attrib.c:1210
+#, c-format
+msgid   "#  sort_article_type=NUM\n"
+msgstr  "#  sort_art_type=NUM\n"
+
+#: src/attrib.c:1228
+#, c-format
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  "#  sort_threads_type=NUM\n"
+
+#: src/attrib.c:1237
+#, c-format
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  "#  start_editor_offset=ON/OFF\n"
+
+#: src/attrib.c:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  "#  tex2iso_conv=ON/OFF\n"
+
+#: src/attrib.c:1239
+#, c-format
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  "#  batch_save=ON/OFF\n"
+
+#: src/attrib.c:1240
+#, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  "#  thread_arts=NUM"
+
+#: src/attrib.c:1247
+#, c-format
+msgid   "#  thread_perc=NUM\n"
+msgstr  "#  thread_perc=NUM\n"
+
+#: src/attrib.c:1248
+#, c-format
+msgid   "#  trim_article_body=NUM\n"
+msgstr  "#  trim_article_body=NUM\n"
+
+#: src/attrib.c:1249
+#, c-format
+msgid   "#    0 = Don't trim article body\n"
+msgstr  "#    0 = Ne pas nettoyer le corps de l'article\n"
+
+#: src/attrib.c:1250
+#, c-format
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  "#   1 = Effacer les lignes vides du début\n"
+
+#: src/attrib.c:1251
+#, c-format
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  "#   2 = Effacer les lignes vides de la fin\n"
+
+#: src/attrib.c:1252
+#, c-format
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  "#   3 = Effacer les lignes vides du début et de la fin\n"
+
+#: src/attrib.c:1253
+#, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  "#   4 = Regrouper plusieurs lignes vides entre les paragraphes\n"
+
+#: src/attrib.c:1254
+#, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  "#   5 = Regrouper plusieurs lignes vides entre les paragraphes et\n"
+        "#       effacer les lignes vides du début\n"
+
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  "#   6 = Regrouper plusieurs lignes vides entre les paragraphes et\n"
+        "#       effacer les lignes vides de la fin\n"
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  "#   7 = Regrouper plusieurs lignes vides entre les paragraphes et\n"
+        "#       effacer les lignes vides du début et de la fin\n"
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  "#  verbatim_handling=ON/OFF\n"
+
+#: src/attrib.c:1258
+#, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  "#  wrap_on_next_unread=ON/OFF\n"
+
+#: src/attrib.c:1259
+#, c-format
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  "#  x_body=TERME (pe. ~/.tin/extra-body-text)\n"
+
+#: src/attrib.c:1260
+#, c-format
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  "#  x_comment_to=ON/OFF\n"
+
+#: src/attrib.c:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  "#  x_headers=TERME (pe. ~/.tin/extra-headers)\n"
+
+#: src/attrib.c:1262
+#, 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:1263
+#, 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:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  "############################################################################\n"
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(inconnu)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  "NULL"
 
 #: src/lang.c:42
-msgid	"1 Response"
-msgstr	"1 Réponse"
+msgid   "1 Response"
+msgstr  "1 Réponse"
 
 #: src/lang.c:46
 #, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%s ne contient pas de groupes. Fermeture."
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s ne contient pas de groupes. Fermeture."
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	"tout "
+msgid   "all "
+msgstr  "tout "
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	"Tous les groupes"
+msgid   "All groups"
+msgstr  "Tous les groupes"
 
 #: src/lang.c:49
 #, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	"Fichier %s existe. %s=ajouter, %s=écraser, %s=quitter : "
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  "Fichier %s existe. %s=ajouter, %s=écraser, %s=quitter : "
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	"Article annulé (effacé)."
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"Impossible d'annuler l'article (effacé)."
+msgid   "Article cancelled (deleted)."
+msgstr  "Article annulé (effacé)."
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	"Article effacé."
-
-#: src/lang.c:53
-#, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"\n"
-	"Votre article :\n"
-	"  \"%s\"\n"
-	"sera posté dans le(s) %s suivant(s) :\n"
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "Impossible d'annuler l'article (effacé)."
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	"Article non posté !"
+msgid   "Article deleted."
+msgstr  "Article effacé."
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	"Article non enregistré"
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "Votre article :\n"
+        "  \"%s\"\n"
+        "sera posté dans le(s) %s suivant(s) :\n"
 
 #: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	"Commandes pour articles"
+msgid   "Article not posted!"
+msgstr  "Article non posté !"
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	"Article orphelin"
+msgid   "Article not saved"
+msgstr  "Article non enregistré"
 
 #: src/lang.c:58
-msgid	"Parent article has been killed"
-msgstr	"L'article parent a été filtré"
+msgid   "Article Level Commands"
+msgstr  "Commandes pour articles"
 
 #: src/lang.c:59
-msgid	"Parent article is unavailable"
-msgstr	"L'article parent est indisponible"
+msgid   "Article has no parent"
+msgstr  "Article orphelin"
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	"Article posté : %s"
+msgid   "Parent article has been killed"
+msgstr  "L'article parent a été filtré"
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	"Article rejeté (enregistré dans %s)"
+msgid   "Parent article is unavailable"
+msgstr  "L'article parent est indisponible"
 
 #: src/lang.c:62
 #, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	"%s=article, %s=fil, %s=sélection, %s=chaîne, %s=art. marq., %s=quitter : "
+msgid   "Article posted: %s"
+msgstr  "Article posté : %s"
 
 #: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	"Article indisponible"
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  "Article rejeté (enregistré dans %s)"
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	"Article non effacé."
+#, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  "%s=article, %s=fil, %s=champ, %s=sélection, %s=chaîne, %s=art. marq., %"
+        "s=quitter : "
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  "Article indisponible"
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	"articles"
+msgid   "Article undeleted."
+msgstr  "Article non effacé."
 
 #: src/lang.c:67
-msgid	"This is a repost of the following article:"
-msgstr	"C'est un repostage de l'article suivant :"
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	"article"
+#, c-format
+msgid   "Article %4d of %4d"
+msgstr  "Article %4d sur %4d"
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	"Article"
+msgid   "articles"
+msgstr  "articles"
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	"-- %d %s envoyé --"
+msgid   "This is a repost of the following article:"
+msgstr  "C'est un repostage de l'article suivant :"
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	" à %s"
+msgid   "article"
+msgstr  "article"
 
 #: src/lang.c:72
-#, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[-- %s/%s, encodage en %s%s%s, %d lignes%s%s --]\n"
+msgid   "Article"
+msgstr  "Article"
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	", encodage : "
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  "-- %d %s envoyé --"
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	"%*s[-- Description : %s --]\n"
+msgid   " at %s"
+msgstr  " à %s"
 
 #: src/lang.c:75
 #, c-format
-msgid	"%d Authentication failed"
-msgstr	"%d Échec de l'authentification"
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  "%*s[-- %s/%s, encodage en %s%s%s, %d lignes%s%s --]\n"
 
 #: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	"Le serveur attend une authentification.\n"
+msgid   ", charset: "
+msgstr  ", encodage : "
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	"    Entrez votre mdp svp : "
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  "%*s[-- l'encodage %s n'est pas supporté --]\n"
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	"    Entrez votre identifiant svp : "
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- Description : %s --]\n"
 
 #: src/lang.c:79
 #, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	"Recherche arrière sur l'auteur [%s] > "
+msgid   "%d lines"
+msgstr  "%d Lignes"
 
 #: src/lang.c:80
-#, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	"Recherche avant sur l'auteur [%s] > "
+msgid   "Attachment Menu"
+msgstr  "Menu Pièce-jointe"
 
 #: src/lang.c:81
-#, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"Autorisé pour l'utilisateur : %s\n"
+msgid   "Attachment Menu Commands"
+msgstr  "Menu des pièces-jointes"
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"Autorisation refusée pour l'utilisateur : %s\n"
+msgid   "<no name>"
+msgstr  "<aucun nom>"
 
 #: src/lang.c:83
 #, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	"\n"
-	"Abonnement auto. à %s"
+msgid   "Attachment saved successfully. (%s)"
+msgstr  "Pièce-jointe enregistrée. (%s)"
 
 #: src/lang.c:84
-msgid	"Autosubscribing groups...\n"
-msgstr	"Abonnement auto. aux groupes...\n"
+#, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  "%d sur %d pièces-jointes enregistrées."
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	"Sélection auto. des articles (voir les non lus par '%s')..."
+msgid   "Select attachment> "
+msgstr  "Sélectionner la pièce-jointe >"
+
+#: src/lang.c:86
+msgid   "Tagged attachment"
+msgstr  "Pièce-jointe marquée"
 
 #: src/lang.c:87
 #, c-format
-msgid	"Active file corrupt - %s"
-msgstr	"Fichier active corrompu - %s"
+msgid   "%d attachments tagged"
+msgstr  "%d pièce(s)-jointe(s) marquée(s)"
 
 #: src/lang.c:88
-#, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	"L'article à poster pose des problèmes. %s=quitter, %s=Menu, %s=éditer : "
+msgid   "Untagged attachment"
+msgstr  "pièce-jointe non marquée"
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"Attribut non reconnu : %s"
+msgid   "Attributes Menu Commands"
+msgstr  "Menu des attributs"
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"Mauvaise commande. Tapez '%s' pour l'aide."
+msgid   "%d Authentication failed"
+msgstr  "%d Échec de l'authentification"
 
 #: src/lang.c:92
-msgid	"Base article"
-msgstr	"Article initial"
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "Mot de passe NNTP introuvable pour %s"
 
 #: src/lang.c:93
-msgid	"Base article range"
-msgstr	"Champ article initial"
+msgid   "Server expects authentication.\n"
+msgstr  "Le serveur attend une authentification.\n"
 
 #: src/lang.c:94
-#, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	"%s : Màj des fichiers index non supportée\n"
+msgid   "    Please enter password: "
+msgstr  "    Entrez votre mdp svp : "
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	"*** Début de l'article ***"
+msgid   "    Please enter username: "
+msgstr  "    Entrez votre identifiant svp : "
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  "Autorisé pour l'utilisateur : %s\n"
 
 #: src/lang.c:97
 #, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	"Annuler (effacer) ou remplacer (écraser) l'article [%%s]? (%s/%s/%s) : "
+msgid   "Authorization failed for user: %s\n"
+msgstr  "Autorisation refusée pour l'utilisateur : %s\n"
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	"Annulation de l'article..."
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  "Recherche arrière sur l'auteur [%s] > "
 
 #: src/lang.c:100
 #, c-format
-msgid	"Cannot create %s"
-msgstr	"Création de %s impossible"
+msgid   "Author search forwards [%s]> "
+msgstr  "Recherche avant sur l'auteur [%s] > "
 
 #: src/lang.c:101
 #, c-format
-msgid	"Can't find base article %d"
-msgstr	"Article initial %d introuvable"
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  "\n"
+        "Abonnement auto. à %s"
 
 #: src/lang.c:102
-#, c-format
-msgid	"Can't open %s"
-msgstr	"Ouverture de %s impossible"
+msgid   "Autosubscribing groups...\n"
+msgstr  "Abonnement auto. aux groupes...\n"
 
 #: src/lang.c:103
 #, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	"Ouverture de %s pour enregistrement impossible"
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	"*** Postage non autorisé ***"
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  "Sélection auto. des articles (voir les non lus par '%s')..."
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	"Postage non autorisé dans %s"
+msgid   "Active file corrupt - %s"
+msgstr  "Fichier active corrompu - %s"
 
 #: src/lang.c:106
 #, c-format
-msgid	"Can't retrieve %s"
-msgstr	"Récupération de %s impossible"
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  "L'article à poster pose des problèmes. %s=quitter, %s=Menu, %s=éditer : "
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	"%s est un répertoire"
+msgid   "Unrecognized attribute: %s"
+msgstr  "Attribut non reconnu : %s"
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	"Marquer lu"
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	"Effacement sur %s..."
+msgid   "Bad command. Type '%s' for help."
+msgstr  "Mauvaise commande. Tapez '%s' pour l'aide."
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	"Marquer lus tous les groupes visités lors de la session ?"
+msgid   "Base article"
+msgstr  "Article initial"
 
 #: src/lang.c:111
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	"Vous avez marqué des articles de ce groupe - marquer comme lu ?"
+msgid   "Base article range"
+msgstr  "Champ article initial"
 
 #: src/lang.c:112
 #, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	"%s %d %s en %lu secondes\n"
+msgid   "%s: Updating of index files not supported\n"
+msgstr  "%s : Màj des fichiers index non supportée\n"
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	"Caughtup"
+msgid   "*** Beginning of article ***"
+msgstr  "*** Début de l'article ***"
 
 #: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	"Vérification de l'article préparé"
-
-#: src/lang.c:115
-msgid	"Checking for new groups... "
-msgstr	"Vérification de nouveaux groupes... "
+msgid   "*** Beginning of page ***"
+msgstr  "*** Début de l'article ***"
 
 #: src/lang.c:116
-msgid	"Checking for news..."
-msgstr	"Vérification de articles..."
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  "Annuler (effacer) ou remplacer (écraser) l'article [%%s]? (%s/%s/%s) : "
 
 #: src/lang.c:117
-#, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	"Traiter %s=non, %s=oui, %s=shar, %s=quitter : "
+msgid   "Cancelling article..."
+msgstr  "Annulation de l'article..."
 
 #: src/lang.c:119
-msgid	"ANSI color disabled"
-msgstr	"Couleurs ANSI désactivées"
+#, c-format
+msgid   "Cannot create %s"
+msgstr  "Création de %s impossible"
 
 #: src/lang.c:120
-msgid	"ANSI color enabled"
-msgstr	"Couleurs ANSI activées"
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  "Article initial %d introuvable"
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  "Ouverture de %s impossible"
 
 #: src/lang.c:122
 #, c-format
-msgid	"Command failed: %s"
-msgstr	"Échec commande : %s"
+msgid   "Couldn't open %s for saving"
+msgstr  "Ouverture de %s pour enregistrement impossible"
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	"Marquer comme lu les articles sélectionnés ?"
+msgid   "*** Posting not allowed ***"
+msgstr  "*** Postage non autorisé ***"
 
 #: src/lang.c:124
 #, c-format
-msgid	"Connecting to %s..."
-msgstr	"Connexion à %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	"<RETOUR>"
+msgid   "Posting is not allowed to %s"
+msgstr  "Postage non autorisé dans %s"
 
 #: src/lang.c:126
-msgid	"Creating active file for saved groups...\n"
-msgstr	"Création du fichier active des groupes enregistrés...\n"
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  "Récupération de %s impossible"
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s est un répertoire"
 
-#: src/lang.c:127
-msgid	"Creating newsrc file...\n"
-msgstr	"Création du fichier newsrc...\n"
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"Défaut"
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  "Marquer lu"
 
 #: src/lang.c:130
-msgid	"Delete saved files that have been post processed?"
-msgstr	"Effacer les fichiers enregistrés qui ont été post-traités ?"
+#, c-format
+msgid   "Catchup %s..."
+msgstr  "Effacement sur %s..."
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	"Effacement des fichiers temporaires..."
+msgid   "Catchup all groups entered during this session?"
+msgstr  "Marquer lus tous les groupes visités lors de la session ?"
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  "Vous avez marqué des articles de ce groupe - marquer comme lu ?"
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	"*** Fin de l'article ***"
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  "%s %d %s en %lu secondes\n"
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	"*** Fin de la liste ***"
+msgid   "Caughtup"
+msgstr  "Caughtup"
 
 #: src/lang.c:135
-msgid	"*** End of groups ***"
-msgstr	"*** Fin de la liste ***"
+msgid   "Check Prepared Article"
+msgstr  "Vérification de l'article préparé"
 
 #: src/lang.c:136
-msgid	"*** End of thread ***"
-msgstr	"*** Fin du fil ***"
+msgid   "Checking for new groups... "
+msgstr  "Vérification de nouveaux groupes... "
 
 #: src/lang.c:137
-msgid	"Enter limit of articles to get> "
-msgstr	"Entrez le nombre max d'articles à récupérer > "
+msgid   "Checking for news..."
+msgstr  "Vérification des articles..."
 
 #: src/lang.c:138
-msgid	"Enter Message-ID to go to> "
-msgstr	"Entrez le Message-ID à voir > "
-
-#: src/lang.c:139
-msgid	" and enter next unread thread"
-msgstr	" et passer au fil non lu suivant"
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  "Traiter %s=non, %s=oui, %s=shar, %s=quitter : "
 
 #: src/lang.c:140
-msgid	" and enter next unread group"
-msgstr	" et entrer dans le groupe suivant non lu"
+msgid   "ANSI color disabled"
+msgstr  "Couleurs ANSI désactivées"
 
 #: src/lang.c:141
-msgid	"Enter option number> "
-msgstr	"Entrez le numéro de l'option > "
+msgid   "ANSI color enabled"
+msgstr  "Couleurs ANSI activées"
 
-#: src/lang.c:142
+#: src/lang.c:143
 #, c-format
-msgid	"Enter range [%s]> "
-msgstr	"Entrez un champ [%s] > "
+msgid   "Command failed: %s"
+msgstr  "Échec commande : %s"
 
-#: src/lang.c:143
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	"\n"
-	"Attention : en-tête Approved: utilisé.\n"
-
-#: src/lang.c:145
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	"\n"
-	"Erreur : Mauvaise adresse dans l'en-tête Approved:.\n"
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  "Marquer comme lu les articles sélectionnés ?"
 
 #: src/lang.c:146
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	"\n"
-	"Erreur : Mauvaise adresse dans l'en-tête From:.\n"
-
-#: src/lang.c:147
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	"\n"
-	"Erreur : Mauvais adresse dans l'en-ête Reply-To:.\n"
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  "Connexion à %s..."
 
 #: src/lang.c:148
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	"\n"
-	"Erreur : Mauvais FQDN dans l'en-tête Message-ID:.\n"
+msgid   "<CR>"
+msgstr  "<RETOUR>"
 
 #: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	"Déverrouillage de %s impossible"
-
-#: src/lang.c:151
-#, c-format
-msgid	"Corrupted file %s"
-msgstr	"Fichier %s corrompu"
+msgid   "Creating active file for saved groups...\n"
+msgstr  "Création du fichier active des groupes enregistrés...\n"
 
-#: src/lang.c:152
-#, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	"N'a pu déverrouiler %s - article non ajouté !"
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  "Création du fichier newsrc...\n"
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "Défaut"
 
 #: src/lang.c:153
-#, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	"N'a pu verrouiller %s - article non ajouté !"
+msgid   "Delete saved files that have been post processed?"
+msgstr  "Effacer les fichiers enregistrés qui ont été post-traités ?"
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	"Erreur interne dans routine GNKSA - envoi d'un rapport de bug.\n"
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  "Effacement des fichiers temporaires..."
 
 #: src/lang.c:156
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	"Accolade gauche manquante dans l'adresse de routage.\n"
+msgid   "*** End of article ***"
+msgstr  "*** Fin de l'article ***"
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	"Parenthèse gauche manquante dans l'ancien type d'adresse.\n"
+msgid   "*** End of articles ***"
+msgstr  "*** Fin de la liste ***"
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	"Parenthèse droite manquante dans l'ancien type d'adresse.\n"
+msgid   "*** End of attachments ***"
+msgstr  "*** Fin des pièces-jointes ***"
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	"Arobase manquant dans l'adresse email.\n"
+msgid   "*** End of groups ***"
+msgstr  "*** Fin de la liste ***"
 
 #: src/lang.c:160
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	"Composant FQDN unique non autorisé. Ajoutez votre domaine.\n"
+msgid   "*** End of page ***"
+msgstr  "*** Fin de l'article ***"
 
 #: src/lang.c:161
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Domaine invalide. Envoyez un rapport de bug si votre domaine premier existe.\n"
-	"Utilisez .invalid comme domaine premier pour les fausses adresses.\n"
+msgid   "*** End of scopes ***"
+msgstr  "*** Fin de la liste ***"
 
 #: src/lang.c:162
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Domaine illégal. Envoyez un rapport de bug si votre domaine premier existe.\n"
-	"Utilisez .invalid comme domaine premier pour les fausses adresses.\n"
+msgid   "*** End of thread ***"
+msgstr  "*** Fin du fil ***"
 
 #: src/lang.c:163
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Domaine inconnu. Envoyez un rapport de bug si votre domaine premier existe.\n"
-	"Utilisez .invalid comme domaine premier pour les fausses adresses.\n"
+msgid   "*** End of URLs ***"
+msgstr  "*** Fin des URLs ***"
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	"Caractère illégal dans le FQDN.\n"
+msgid   "Enter limit of articles to get> "
+msgstr  "Entrez le nombre max d'articles à récupérer > "
 
 #: src/lang.c:165
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	"Valeur vide dans le FQDN non autorisé.\n"
+msgid   "Enter Message-ID to go to> "
+msgstr  "Entrez le Message-ID à voir > "
 
 #: src/lang.c:166
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	"Composant FQDN excède la longueur max autorisée (63 car.).\n"
+msgid   " and enter next unread thread"
+msgstr  " et passer au fil non lu suivant"
 
 #: src/lang.c:167
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	"Composant FQDN ne devrait pas commencer ou finir par un tiret.\n"
+msgid   " and enter next unread article"
+msgstr  " et passer à l'article non lu suivant"
 
 #: src/lang.c:168
-msgid	"FQDN component may not start with digit.\n"
-msgstr	"Composant FQDN ne devrait pas commencer par un chiffre.\n"
+msgid   " and enter next unread group"
+msgstr  " et entrer dans le groupe suivant non lu"
 
 #: src/lang.c:169
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	"Domaine littéral contient une valeur numérique impossible.\n"
+msgid   "Enter option number> "
+msgstr  "Entrez le numéro de l'option > "
 
 #: src/lang.c:170
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	"Domaine littéral est pour l'usage privé et n'est pas autorisé à l'usage "
-	"global.\n"
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  "Entrez un champ [%s] > "
 
 #: src/lang.c:171
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	"Parenthèse droite manquante dans le domaine littéral.\n"
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	"Partie locale manquante dans l'adresse email.\n"
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  "\n"
+        "Attention : en-tête Approved: utilisé.\n"
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	"Caractère illégal dans la partie locale de l'adresse email.\n"
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  "\n"
+        "Erreur : Mauvaise adresse dans l'en-tête Approved:.\n"
 
 #: src/lang.c:174
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	"Valeur vide dans composant de partie locale non autorisé.\n"
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  "\n"
+        "Erreur : Mauvaise adresse dans l'en-tête From:.\n"
 
 #: src/lang.c:175
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	"Caractère illégal dans le nom réel.\n"
-	"Mots non cités ne devraient pas contenir '!()<>@,;:\\.[]' dans l'adresse de "
-	"routage.\n"
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  "\n"
+        "Erreur : Mauvais adresse dans l'en-ête Reply-To:.\n"
 
 #: src/lang.c:176
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	"Caractère illégal dans le nom réel.\n"
-	"Mots cités ne devraient pas contenir '()<>\\'.\n"
-
-#: src/lang.c:177
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	"Caractère illégal dans le nom réel.\n"
-	"Mots encodés ne devraient pas contenir '!()<>@,;:\"\\.[]/=' dans le "
-	"paramètre.\n"
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  "\n"
+        "Erreur : Mauvais FQDN dans l'en-tête Message-ID:.\n"
 
 #: src/lang.c:178
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	"Mauvaise syntaxe dans le mot encodé utilisé dans le nom réel.\n"
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  "Déverrouillage de %s impossible"
 
 #: src/lang.c:179
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	"Caractère illégal dans le nom réel.\n"
-	"Mots non cités ne devraient pas contenir '()<>\\' dans les adresses de type "
-	"anciennes.\n"
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  "N'a pu déverrouiler %s - article non ajouté !"
 
 #: src/lang.c:180
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	"Caractère illégal dans le nom réel.\n"
-	"Les caractères de contrôle et non encodés en 8bit > 127 ne sont pas "
-	"autorisés.\n"
-
-#: src/lang.c:181
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	"\n"
-	"Erreur : Pas de ligne vide trouvée après l'en-tête.\n"
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  "N'a pu verrouiller %s - article non ajouté !"
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	"\n"
-	"Erreur : L'article contient des caractères non-ASCII mais US-ASCII est\n"
-	"         choisi comme MM_CHARSET - changez svp ce réglage en une valeur\n"
-	"         correcte pour votre langue via le M)enu des options ou via\n"
-	"         l'édition de votre tinrc.\n"
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  "Fichier %s corrompu"
+
+#: src/lang.c:185
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  "\n"
+        "Erreur : Followup-To \"poster\" et un groupe n'est pas autorisé !\n"
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  "Erreur interne dans routine GNKSA - envoi d'un rapport de bogue.\n"
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  "Accolade gauche manquante dans l'adresse de routage.\n"
 
 #: src/lang.c:188
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	"\n"
-	"Erreur : L'article à poster contient des caractères non-ASCII mais\n"
-	"         l'encodage MIME pour les articles de news est \"7bit\" -\n"
-	"         changez svp pour \"8bit\" ou \"quoted-printable\" suivant ce\n"
-	"         qui est préférable d'après l'endroit où vous vous situez. Ce\n"
-	"         changement peut être effectué via le M)enu des options ou via\n"
-	"         l'édition de votre tinrc.\n"
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  "Parenthèse gauche manquante dans l'ancien type d'adresse.\n"
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  "Parenthèse droite manquante dans l'ancien type d'adresse.\n"
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  "Arobase manquant dans l'adresse email.\n"
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  "Composant FQDN unique non autorisé. Ajoutez votre domaine.\n"
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Domaine invalide. Envoyez un rapport de bogue si votre domaine premier "
+        "existe.\n"
+        "Utilisez .invalid comme domaine premier pour les fausses adresses.\n"
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Domaine illégal. Envoyez un rapport de bogue si votre domaine premier "
+        "existe.\n"
+        "Utilisez .invalid comme domaine premier pour les fausses adresses.\n"
 
 #: src/lang.c:194
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	"\n"
-	"Erreur : L'article débute avec une ligne vide au lieu d'un en-tête\n"
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Domaine inconnu. Envoyez un rapport de bogue si votre domaine premier "
+        "existe.\n"
+        "Utilisez .invalid comme domaine premier pour les fausses adresses.\n"
 
 #: src/lang.c:195
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	"\n"
-	"Erreur : L'en-tête de la ligne %d n'a pas de séparateur après l'en-tête "
-	"nom :\n"
-	"%s\n"
+msgid   "Illegal character in FQDN.\n"
+msgstr  "Caractère illégal dans le FQDN.\n"
 
 #: src/lang.c:196
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	"\n"
-	"Erreur : La ligne \"%s:\" est vide.\n"
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  "Valeur vide dans le FQDN non autorisé.\n"
 
 #: src/lang.c:197
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	"\n"
-	"Erreur : La ligne \"%s:\" est absente de l'en-tête de l'article.\n"
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  "Composant FQDN excède la longueur max autorisée (63 car.).\n"
 
 #: src/lang.c:198
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	"\n"
-	"Erreur : L'en-tête à la ligne %d n'a pas d'espace après le séparateur :\n"
-	"%s\n"
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  "Composant FQDN ne devrait pas commencer ou finir par un tiret.\n"
 
 #: src/lang.c:199
-#, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	"\n"
-	"Erreur : Il y a plusieurs lignes (%d) \"%s:\" dans l'en-tête.\n"
+msgid   "FQDN component may not start with digit.\n"
+msgstr  "Composant FQDN ne devrait pas commencer par un chiffre.\n"
 
 #: src/lang.c:200
-#, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	"Permissions de %s non sûres (%o)"
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  "Domaine littéral contient une valeur numérique impossible.\n"
 
 #: src/lang.c:201
-#, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	"Réponse de la commande GROUP invalide, %s"
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  "Domaine littéral est pour l'usage privé et n'est pas autorisé à l'usage "
+        "global.\n"
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  "Parenthèse droite manquante dans le domaine littéral.\n"
 
 #: src/lang.c:203
-#, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	"Erreur MIME : Fin inattendue de l'article %s %s"
+msgid   "Missing localpart of mail address.\n"
+msgstr  "Partie locale manquante dans l'adresse email.\n"
 
 #: src/lang.c:204
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	"Erreur MIME : Début de la borne lors de la lecture des en-têtes"
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  "Caractère illégal dans la partie locale de l'adresse email.\n"
 
 #: src/lang.c:205
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	"Nom de domaine (qualifié) introuvable !"
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  "Valeur vide dans composant de partie locale non autorisé.\n"
 
 #: src/lang.c:206
-#, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"Pas la permission d'aller dans %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  "Caractère illégal dans le nom réel.\n"
+        "Mots non cités ne devraient pas contenir '!()<>@,;:\\.[]' dans l'adresse de "
+        "routage.\n"
 
 #: src/lang.c:207
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	"\n"
-	"Erreur : En-tête 'From:' manquant.\n"
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  "Caractère illégal dans le nom réel.\n"
+        "Mots cités ne devraient pas contenir '()<>\\'.\n"
 
 #: src/lang.c:208
-#, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"Pas la permission de lecture pour %s\n"
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  "Caractère illégal dans le nom réel.\n"
+        "Mots encodés ne devraient pas contenir '!()<>@,;:\"\\.[]/=' dans le "
+        "paramètre.\n"
 
 #: src/lang.c:209
-#, c-format
-msgid	"File %s does not exist\n"
-msgstr	"Fichier %s inexistant\n"
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  "Mauvaise syntaxe dans le mot encodé utilisé dans le nom réel.\n"
 
 #: src/lang.c:210
-#, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"Pas la permission d'écrire pour %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  "Caractère illégal dans le nom réel.\n"
+        "Mots non cités ne devraient pas contenir '()<>\\' dans les adresses de type "
+        "anciennes.\n"
 
 #: src/lang.c:211
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	"Info sur l'utilisateur introuvable (/etc/passwd manquant ?)"
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  "Caractère illégal dans le nom réel.\n"
+        "Les caractères de contrôle et non encodés en 8bit > 127 ne sont pas "
+        "autorisés.\n"
 
 #: src/lang.c:212
-msgid	"errors"
-msgstr	"erreurs"
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  "\n"
+        "Erreur : Pas de ligne vide trouvée après l'en-tête.\n"
 
 #: src/lang.c:213
 #, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	"\n"
-	"Erreur sur la ligne %d : en-tête \"Sender:\" non autorisé (sera ajouté pour "
-	"vous)\n"
-
-#: src/lang.c:214
-#, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	"Le serveur n'a aucun groupe listé dans %s"
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  "\n"
+        "Erreur : Formattage incorrect de %s.\n"
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
-msgid	"error"
-msgstr	"erreur"
-
-#: src/lang.c:216
-msgid	"Unknown display level"
-msgstr	"Vue affichée inconnue"
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	"<ESC>"
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	"Fermeture..."
-
-#: src/lang.c:219
-msgid	"leaving external mail-reader"
-msgstr	"fermeture du client mail externe"
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  "\n"
+        "Erreur : L'article contient des caractères non-ASCII mais US-ASCII est\n"
+        "         choisi comme MM_CHARSET - changez svp ce réglage en une valeur\n"
+        "         correcte pour votre langue via le M)enu des options ou via\n"
+        "         l'édition de votre tinrc.\n"
 
 #: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  "\n"
+        "Erreur : L'article à poster contient des caractères non-ASCII mais\n"
+        "         l'encodage MIME pour les articles de news est \"7bit\" -\n"
+        "         changez svp pour \"8bit\" ou \"quoted-printable\" suivant ce\n"
+        "         qui est préférable d'après l'endroit où vous vous situez. Ce\n"
+        "         changement peut être effectué via le M)enu des options ou via\n"
+        "         l'édition de votre tinrc.\n"
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  "\n"
+        "Erreur : L'article débute avec une ligne vide au lieu d'un en-tête\n"
+
+#: src/lang.c:227
 #, c-format
-msgid	"Extracting %s..."
-msgstr	"Extraction de %s..."
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  "\n"
+        "Erreur : L'en-tête de la ligne %d n'a pas de séparateur après l'en-tête "
+        "nom :\n"
+        "%s\n"
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	"Écriture du fichier %s échouée. Disque plein ? Fichier non touché."
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  "\n"
+        "Erreur : La ligne \"%s:\" est vide.\n"
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	"Erreur lors de la sauvegarde du fichier %s. Disque plein ?"
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  "\n"
+        "Erreur : La ligne \"%s:\" est absente de l'en-tête de l'article.\n"
 
-#: src/lang.c:224
+#: src/lang.c:230
 #, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	"Filtrage selon les règles globales (%d/%d)..."
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  "\n"
+        "Erreur : %s ne contient pas de caractères 7 bits.\n"
 
-#: src/lang.c:225
-msgid	"Rule created by: "
-msgstr	"Règle créée par : "
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  "\n"
+        "Erreur : L'en-tête à la ligne %d n'a pas d'espace après le séparateur :\n"
+        "%s\n"
 
-#: src/lang.c:226
+#: src/lang.c:232
 #, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"Entrez le réglage [%s] > "
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  "\n"
+        "Erreur : Il y a plusieurs lignes (%d) \"%s:\" dans l'en-tête.\n"
 
-#: src/lang.c:227
+#: src/lang.c:233
 #, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	"\n"
-	"Vous avez souhaité que les réponses à votre article aillent au %s suivant :\n"
+msgid   "Insecure permissions of %s (%o)"
+msgstr  "Permissions de %s non sûres (%o)"
 
-#: src/lang.c:228
+#: src/lang.c:235
 #, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	"  %s\t Les réponses vous seront envoyées par email.\n"
+msgid   "Invalid response to GROUP command, %s"
+msgstr  "Réponse de la commande GROUP invalide, %s"
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	"-- message redirigé --\n"
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  "Erreur MIME : Fin inattendue de l'article %s %s"
 
-#: src/lang.c:230
-msgid	"-- end of forwarded message --\n"
-msgstr	"-- fin du message redirigé --\n"
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  "Erreur MIME : Début de la borne lors de la lecture des en-têtes"
 
-#: src/lang.c:231
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	"# Format :\n"
-	"#   comment=TERME\tFacultatif. Plusieurs lignes acceptées.\n"
-	"#\t\t\tLes commentaires doivent êtres placés au\n"
-	"#\t\t\tdébut de la règle, sinon ils seront déplacés\n"
-	"#\t\t\tà la règle suivante. '#' n'est pas un mot-clé\n"
-	"#\t\t\tvalide pour un commentaire !\n"
-	"#   group=TERME\tOgligatoire. Liste de groupe (pe. fr.comp.*,!*sources*).\n"
-	"#   case=NUM\t\tOgligatoire. Casse sensible=0 / casse insensible=1.\n"
-	"#   score=NUM|TERME\tObligatoire. Score à attribuer. Soit :\n"
-	"#     score=NUM\t- Un numéro (pe. 70). Ou :\n"
-	"#     score=TERME\t- Un des deux mots-clé suivants : 'hot' ou 'kill'.\n"
-	"#   subj=TERME\t\tFacultatif. En-tête 'Subject:' (pe. Comment devenir un "
-	"gourou).\n"
-	"#   from=TERME\t\tFacultatif. En-tête 'From:' (pe. *Craig Shergold*).\n"
-	"#   msgid=TERME\tFacultatif. En-tête 'Message-ID:' (pe. <123@ether.net>) "
-	"avec\n"
-	"#\t\t\tréférence complète.\n"
-	"#   msgid_last=TERME\tFacultatif. Comme ci-dessus mais avec juste le dernier "
-	"MID.\n"
-	"#   msgid_only=TERME\tFacultatif. Comme ci-dessus mais sans les références.\n"
-	"#   refs_only=TERME\tFacultatif. En-tête 'References:' (pe. <123@ether.net>) "
-	"sans\n"
-	"#\t\t\tla ligne Message-ID:\n"
-	"#   lines=[<>]?NUM\tFacultatif. En-tête 'Lines:'. '<' ou '>' sont "
-	"optionnels.\n"
-	"#   gnksa=[<>]?NUM\tFacultatif. Résultat du 'parse_from' du GNKSA. '<' ou "
-	"'>'\n"
-	"#\t\t\tsont optionnels.\n"
-	"#   xref=CHAÎNE\tFacultatif. Chaîne à filtrer (pe. alt.flame*)\n"
-	"#   time=NUM\t\tFacultatif. La valeur de time_t indique la durée de la "
-	"règle.\n"
-	"#\n"
+#: src/lang.c:242
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  "\n"
+        "Erreur : \"poster\" n'est pas autorisé dans les Groupes !\n"
 
-#: src/lang.c:252
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  "Nom de domaine (qualifié) introuvable !"
+
+#: src/lang.c:244
 #, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	"Entrez le score (défaut=%d) : "
+msgid   "No permissions to go into %s\n"
+msgstr  "Pas la permission d'aller dans %s\n"
+
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  "\n"
+        "Erreur : En-tête 'From:' manquant.\n"
 
-#: src/lang.c:253
+#: src/lang.c:248
 #, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	"Entrez la valeur du score (0 < score <= %d)"
+msgid   "No read permissions for %s\n"
+msgstr  "Pas la permission de lecture pour %s\n"
 
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	"Tous"
+#: src/lang.c:249
+#, c-format
+msgid   "File %s does not exist\n"
+msgstr  "Fichier %s inexistant\n"
+
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "Pas la permission d'écrire pour %s\n"
+
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  "Info sur l'utilisateur introuvable (/etc/passwd manquant ?)"
 
-#: src/lang.c:255
-msgid	"Comment (optional)  : "
-msgstr	"Commentaire (facultatif) : "
+#: src/lang.c:252
+msgid   "errors"
+msgstr  "erreurs"
+
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  "\n"
+        "Erreur sur la ligne %d : en-tête \"Sender:\" non autorisé (sera ajouté pour "
+        "vous)\n"
 
 #: src/lang.c:256
-msgid	"Apply pattern to    : "
-msgstr	"Appliquer à     : "
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  "Le serveur n'a aucun groupe listé dans %s"
 
 #: src/lang.c:257
-msgid	"From: line (ignore case)      "
-msgstr	"l'en-tête 'From:' (ignorer la casse)"
+msgid   "error"
+msgstr  "erreur"
 
 #: src/lang.c:258
-msgid	"From: line (case sensitive)   "
-msgstr	"l'en-tête 'From:' (casse sensible)"
+msgid   "Unknown display level"
+msgstr  "Vue affichée inconnue"
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  "<ESC>"
 
 #: src/lang.c:260
-#, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s : Hôte inconnu.\n"
+msgid   "Exiting..."
+msgstr  "Fermeture..."
 
 #: src/lang.c:261
-msgid	"global "
-msgstr	"global "
+msgid   "leaving external mail-reader"
+msgstr  "fermeture du client mail externe"
 
 #: src/lang.c:262
 #, c-format
-msgid	"Please use %.100s instead"
-msgstr	"Utilisez svp %.100s à la place"
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	"%s pose problème"
+msgid   "Extracting %s..."
+msgstr  "Extraction de %s..."
 
 #: src/lang.c:264
 #, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"Groupe %s modéré. Continuer ?"
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  "Écriture du fichier %s échouée. Disque plein ? Fichier non touché."
 
 #: src/lang.c:265
-msgid	"groups"
-msgstr	"groupes"
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  "Erreur lors de la sauvegarde du fichier %s. Disque plein ?"
 
 #: src/lang.c:266
 #, c-format
-msgid	"Rereading %s..."
-msgstr	"Relecture de %s..."
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  "Filtrage selon les règles globales (%d/%d)..."
 
 #: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	"Commandes niveau supérieur"
+msgid   "Rule created by: "
+msgstr  "Règle créée par : "
 
 #: src/lang.c:268
-msgid	"Group Selection"
-msgstr	"Sélection du groupe"
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "Entrez le réglage [%s] > "
 
 #: src/lang.c:269
-msgid	"group"
-msgstr	"groupe"
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  "\n"
+        "Vous avez souhaité que les réponses à votre article aillent au(x) %s suivant"
+        "(s) :\n"
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  "  %s\t Les réponses vous seront envoyées par email.\n"
 
 #: src/lang.c:271
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	"Inclure un commentaire. <RETOUR> pour ajouter une ligne ou continuer si vide."
+msgid   "-- forwarded message --\n"
+msgstr  "-- message redirigé --\n"
 
 #: src/lang.c:272
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Filtrer l'en-tête 'From:'. <ESPACE> change & <RETOUR> valide."
+msgid   "-- end of forwarded message --\n"
+msgstr  "-- fin du message redirigé --\n"
 
 #: src/lang.c:273
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	"Filtrer selon le nombre de lignes. < pour moins, > pour plus, = pareil."
-
-#: src/lang.c:274
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Filtrer l'en-tête 'Message-ID'. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:275
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Filtrer l'en-tête 'Subject'. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:276
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	"Terme à filtrer si autre que les en-têtes 'Subject:' & 'From:'."
-
-#: src/lang.c:277
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	"Sur quel en-tête appliquer ce terme. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:278
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	"Durée (en nombre de jours) du filtre. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:279
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Filtrer groupe actuel ou tous. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:280
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Appliquer règle au groupe actuel ou à tous. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:281
-msgid	"kill an article via a menu"
-msgstr	"filtrer un article via un menu"
-
-#: src/lang.c:282
-msgid	"auto-select (hot) an article via a menu"
-msgstr	"sélection auto. (hot) d'un article via un menu"
-
-#: src/lang.c:283
-msgid	"Browse URLs in article"
-msgstr	"Voir les URLs dans l'article"
-
-#: src/lang.c:284
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	"0 - 9\t  affiche les articles par numéro du fil actuel"
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	"annuler (effacer) ou remplacer (écraser) l'article actuel"
-
-#: src/lang.c:286
-msgid	"edit article (mail-groups only)"
-msgstr	"éditer l'article (groupes de messagerie uniquement)"
-
-#: src/lang.c:287
-msgid	"display first article in current thread"
-msgstr	"afficher le 1er article du fil actuel"
-
-#: src/lang.c:288
-msgid	"display first page of article"
-msgstr	"afficher la 1ère page de l'article"
-
-#: src/lang.c:289
-msgid	"post followup to current article"
-msgstr	"poster un suivi pour l'article actuel"
-
-#: src/lang.c:290
-msgid	"post followup (don't copy text) to current article"
-msgstr	"poster un suivi (ne pas copier le texte) pour l'article actuel"
-
-#: src/lang.c:291
-msgid	"post followup to current article quoting complete headers"
-msgstr	"poster un suivi pour l'article actuel en citant les en-têtes"
-
-#: src/lang.c:292
-msgid	"display last article in current thread"
-msgstr	"afficher le dernier article du fil actuel"
-
-#: src/lang.c:293
-msgid	"display last page of article"
-msgstr	"afficher la dernière page de l'article"
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  "# Format :\n"
+        "#   comment=TERME     Facultatif. Plusieurs lignes acceptées.\n"
+        "#                     Les commentaires doivent êtres placés au\n"
+        "#                     début de la règle, sinon ils seront déplacés\n"
+        "#                     à la règle suivante. '#' n'est pas un mot-clé\n"
+        "#                     valide pour un commentaire !\n"
+        "#   group=TERME       Ogligatoire. Liste de groupe (pe. fr.comp.*,!"
+        "*sources*).\n"
+        "#   case=NUM          Ogligatoire. Casse sensible=0 / casse insensible=1.\n"
+        "#   score=NUM|TERME   Obligatoire. Score à attribuer. Soit :\n"
+        "#     score=NUM         Un numéro (pe. 70). Ou :\n"
+        "#     score=TERME       Un des deux mots-clé suivants : 'hot' ou 'kill'.\n"
+        "#   subj=TERME        Facultatif. En-tête 'Subject:' (pe. Comment devenir un "
+        "gourou).\n"
+        "#   from=TERME        Facultatif. En-tête 'From:' (pe. *Craig Shergold*).\n"
+        "#   msgid=TERME       Facultatif. En-tête 'Message-ID:' (pe. <123@ether.net>) "
+        "avec\n"
+        "#                     référence complète.\n"
+        "#   msgid_last=TERME  Facultatif. Comme ci-dessus mais avec juste le dernier "
+        "MID.\n"
+        "#   msgid_only=TERME  Facultatif. Comme ci-dessus mais sans les références.\n"
+        "#   refs_only=TERME   Facultatif. En-tête 'References:' (pe. <123@ether.net>) "
+        "sans\n"
+        "#                     la ligne Message-ID:\n"
+        "#   lines=[<>]?NUM    Facultatif. En-tête 'Lines:'. '<' ou '>' sont "
+        "optionnels.\n"
+        "#   gnksa=[<>]?NUM    Facultatif. Résultat du 'parse_from' du GNKSA. '<' ou "
+        "'>'\n"
+        "#                     sont optionnels.\n"
+        "#   xref=CHAÎNE       Facultatif. Chaîne à filtrer (pe. alt.flame*)\n"
+        "#   time=NUM          Facultatif. La valeur de time_t indique la durée de la "
+        "règle.\n"
+        "#\n"
 
 #: src/lang.c:294
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	"marquer comme lu le reste du fil et aller au fil non lu suivant"
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  "Entrez le score (défaut=%d) : "
 
 #: src/lang.c:295
-msgid	"display next article"
-msgstr	"afficher l'article suivant"
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  "Entrez la valeur du score (0 < score <= %d)"
 
+#. SCORE_MAX
 #: src/lang.c:296
-msgid	"display first article in next thread"
-msgstr	"afficher le 1er article du fil suivant"
+msgid   "Full"
+msgstr  "Tous"
 
 #: src/lang.c:297
-msgid	"display next unread article"
-msgstr	"afficher le prochain article non lu"
+msgid   "Comment (optional)  : "
+msgstr  "Commentaire (facultatif) : "
 
 #: src/lang.c:298
-msgid	"go to the article that this one followed up"
-msgstr	"aller à l'article parent"
+msgid   "Apply pattern to    : "
+msgstr  "Appliquer à     : "
 
 #: src/lang.c:299
-msgid	"display previous article"
-msgstr	"afficher l'article précédent"
+msgid   "From: line (ignore case)      "
+msgstr  "l'en-tête 'From:' (ignorer la casse)"
 
 #: src/lang.c:300
-msgid	"display previous unread article"
-msgstr	"afficher l'article précédent non lu"
-
-#: src/lang.c:301
-msgid	"quickly kill an article using defaults"
-msgstr	"filtrer rapidement un article en utilisant les défauts"
+msgid   "From: line (case sensitive)   "
+msgstr  "l'en-tête 'From:' (casse sensible)"
 
 #: src/lang.c:302
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	"sélection auto. (hot) d'un article en utilisant les défauts"
-
-#: src/lang.c:303
-msgid	"return to group selection level"
-msgstr	"retourner à la vue sélection de groupe"
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s : Hôte inconnu.\n"
 
 #: src/lang.c:304
-msgid	"reply through mail to author"
-msgstr	"répondre par email à l'auteur"
+msgid   "global "
+msgstr  "global "
 
 #: src/lang.c:305
-msgid	"reply through mail (don't copy text) to author"
-msgstr	"répondre (ne pas copier le texte) par email à l'auteur"
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  "Utilisez svp %.100s à la place"
 
 #: src/lang.c:306
-msgid	"reply through mail to author quoting complete headers"
-msgstr	"répondre par email à l'auteur en citant les en-têtes"
+#, c-format
+msgid   "%s is bogus"
+msgstr  "%s pose problème"
 
 #: src/lang.c:307
-msgid	"repost chosen article to another group"
-msgstr	"reposter l'article choisi dans un autre groupe"
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  "Groupe %s modéré. Continuer ?"
 
 #: src/lang.c:308
-msgid	"search backwards within this article"
-msgstr	"recherche arrière dans cet article"
+msgid   "groups"
+msgstr  "groupes"
 
 #: src/lang.c:309
-msgid	"search forwards within this article"
-msgstr	"recherche avant dans cet article"
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "Relecture de %s..."
 
 #: src/lang.c:310
-msgid	"show article in raw-mode (including all headers)"
-msgstr	"afficher la source des articles (incluant les en-têtes)"
+msgid   "Top Level Commands"
+msgstr  "Commandes niveau supérieur"
 
 #: src/lang.c:311
-msgid	"skip next block of included text"
-msgstr	"passer au bloc suivant incluant du texte"
+msgid   "Group Selection"
+msgstr  "Sélection du groupe"
 
 #: src/lang.c:312
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	"(dés)activer l'affichage des sections masquer par (^L)"
-
-#: src/lang.c:313
-msgid	"toggle word highlighting on/off"
-msgstr	"(dés)activer la surbrillance des mots"
+msgid   "group"
+msgstr  "groupe"
 
 #: src/lang.c:314
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	"(dés)activer ROT-13 (décodage basic) pour l'article actuel"
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  "Inclure un commentaire. <RETOUR> pour ajouter une ligne ou continuer si vide."
 
 #: src/lang.c:315
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	"basculer la taille de tabulation 4 <-> 8"
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Filtrer l'en-tête 'From:'. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:316
-msgid	"toggle german TeX style decoding for current article"
-msgstr	"(dés)activer le décodage Allemand de type TeX pour l'article actuel"
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  "Filtrer selon le nombre de lignes. < pour moins, > pour plus, = pareil."
 
 #: src/lang.c:317
-msgid	"toggle display of uuencoded sections"
-msgstr	"(dés)activer l'affichage des sections uuencodées"
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Filtrer l'en-tête 'Message-ID'. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:318
-msgid	"View/save multimedia attachments"
-msgstr	"Voir/enregistrer les pj multimédia"
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Filtrer l'en-tête 'Subject'. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:319
-#, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"signaler un bug ou envoi d'un commentaires à %s"
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  "Terme à filtrer si autre que les en-têtes 'Subject:' & 'From:'."
 
 #: src/lang.c:320
-msgid	"choose range of articles to be affected by next command"
-msgstr	"choisir les articles qui seront affectés par la commande suivante"
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  "Sur quel en-tête appliquer ce terme. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:321
-msgid	"escape from command prompt"
-msgstr	"quitter le prompt"
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  "Durée (en nombre de jours) du filtre. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:322
-msgid	"edit filter file"
-msgstr	"éditer les filtres"
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Filtrer groupe actuel ou tous. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:323
-msgid	"get help"
-msgstr	"voir l'aide"
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Appliquer règle au groupe actuel ou à tous. <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:324
-msgid	"display last article viewed"
-msgstr	"afficher le dernier article lu"
+msgid   "kill an article via a menu"
+msgstr  "filtrer un article via un menu"
 
 #: src/lang.c:325
-msgid	"down one line"
-msgstr	"descendre d'une ligne"
+msgid   "auto-select (hot) an article via a menu"
+msgstr  "sélection auto. (hot) d'un article via un menu"
 
 #: src/lang.c:326
-msgid	"up one line"
-msgstr	"monter d'une ligne"
+msgid   "Browse URLs in article"
+msgstr  "Voir les URLs dans l'article"
 
 #: src/lang.c:327
-msgid	"go to article chosen by Message-ID"
-msgstr	"aller à l'article via son Message-ID"
-
-#: src/lang.c:328
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	"envoyer article/fil/sél./articles marqués à une personne"
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  "0 - 9\t  affiche les articles par numéro du fil actuel"
 
 #: src/lang.c:329
-msgid	"menu of configurable options"
-msgstr	"menu des options réglables"
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  "annuler (effacer) ou remplacer (écraser) l'article actuel"
 
 #: src/lang.c:330
-msgid	"down one page"
-msgstr	"descendre d'une page"
+msgid   "post followup to current article"
+msgstr  "poster un suivi pour l'article actuel"
 
 #: src/lang.c:331
-msgid	"up one page"
-msgstr	"monter d'une page"
+msgid   "post followup (don't copy text) to current article"
+msgstr  "poster un suivi (ne pas copier le texte) pour l'article actuel"
 
 #: src/lang.c:332
-msgid	"post (write) article to current group"
-msgstr	"poster (écrire) un article dans le groupe actuel"
+msgid   "post followup to current article quoting complete headers"
+msgstr  "poster un suivi pour l'article actuel en citant les en-têtes"
 
 #: src/lang.c:333
-msgid	"post postponed articles"
-msgstr	"poster les brouillons"
-
-#: src/lang.c:334
-msgid	"list articles posted by you (from posted file)"
-msgstr	"lister les articles postés par vous (fichier posted)"
+msgid   "repost chosen article to another group"
+msgstr  "reposter l'article choisi dans un autre groupe"
 
 #: src/lang.c:335
-msgid	"return to previous menu"
-msgstr	"retourner au menu précédent"
+msgid   "edit article (mail-groups only)"
+msgstr  "éditer l'article (groupes de messagerie uniquement)"
 
 #: src/lang.c:336
-msgid	"quit tin immediately"
-msgstr	"quitter tin immédiatement"
+msgid   "display first article in current thread"
+msgstr  "afficher le 1er article du fil actuel"
 
 #: src/lang.c:337
-msgid	"redraw page"
-msgstr	"rafraîchir la page"
+msgid   "display first page of article"
+msgstr  "afficher la 1ère page de l'article"
 
 #: src/lang.c:338
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	"enregistrer article/fil/sél./articles marqués dans un fichier"
+msgid   "display last article in current thread"
+msgstr  "afficher le dernier article du fil actuel"
 
 #: src/lang.c:339
-msgid	"save marked articles automatically without user prompts"
-msgstr	"enregistrement auto. des articles marqués sans demander"
+msgid   "display last page of article"
+msgstr  "afficher la dernière page de l'article"
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	"défiler une page par une page"
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  "marquer comme lu le reste du fil et aller au fil non lu suivant"
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	"remonter une page par une page"
+msgid   "display next article"
+msgstr  "afficher l'article suivant"
 
 #: src/lang.c:342
-msgid	"search for articles by author backwards"
-msgstr	"recherche arrière d'articles par auteur"
+msgid   "display first article in next thread"
+msgstr  "afficher le 1er article du fil suivant"
 
 #: src/lang.c:343
-msgid	"search for articles by author forwards"
-msgstr	"recherche avant d'articles par auteur"
+msgid   "display next unread article"
+msgstr  "afficher le prochain article non lu"
 
 #: src/lang.c:344
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	"rechercher partout un terme précis (cela peut prendre du temps)"
+msgid   "go to the article that this one followed up"
+msgstr  "aller à l'article parent"
 
 #: src/lang.c:345
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	" \t  (recherche ignore la casse et se cantonne à tous les articles)"
+msgid   "display previous article"
+msgstr  "afficher l'article précédent"
 
 #: src/lang.c:346
-msgid	"search for articles by Subject line backwards"
-msgstr	"recherche arrière d'articles par Sujet"
+msgid   "display previous unread article"
+msgstr  "afficher l'article précédent non lu"
 
 #: src/lang.c:347
-msgid	"search for articles by Subject line forwards"
-msgstr	"recherche avant d'articles par Sujet"
+msgid   "quickly kill an article using defaults"
+msgstr  "filtrer rapidement un article en utilisant les défauts"
 
 #: src/lang.c:348
-msgid	"repeat last search"
-msgstr	"relancer la dernière recherche"
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  "sélection auto. (hot) d'un article en utilisant les défauts"
 
 #: src/lang.c:349
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	"marquer article pour repostage/envoi/passer/imprimer/enregistrer"
+msgid   "return to group selection level"
+msgstr  "retourner à la vue sélection de groupe"
 
 #: src/lang.c:350
-msgid	"toggle info message in last line (subject/description)"
-msgstr	"afficher ou non les infos dans la dernière ligne (sujet/description)"
+msgid   "reply through mail to author"
+msgstr  "répondre par email à l'auteur"
 
 #: src/lang.c:351
-msgid	"toggle inverse video"
-msgstr	"afficher ou non la vidéo inversée"
+msgid   "reply through mail (don't copy text) to author"
+msgstr  "répondre (ne pas copier le texte) par email à l'auteur"
 
 #: src/lang.c:352
-msgid	"toggle mini help menu display"
-msgstr	"afficher ou non le petit menu d'aide"
+msgid   "reply through mail to author quoting complete headers"
+msgstr  "répondre par email à l'auteur en citant les en-têtes"
 
 #: src/lang.c:353
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	"afficher cycliquement l'email des auteurs, nom réel, les deux ou aucun"
+msgid   "search backwards within this article"
+msgstr  "recherche arrière dans cet article"
 
 #: src/lang.c:354
-msgid	"show version information"
-msgstr	"afficher la version de tin"
+msgid   "search forwards within this article"
+msgstr  "recherche avant dans cet article"
 
 #: src/lang.c:355
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	"marquer tous les articles comme lus et retourner au menu groupe"
+msgid   "show article in raw-mode (including all headers)"
+msgstr  "afficher la source des articles (incluant les en-têtes)"
 
 #: src/lang.c:356
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	"tout marquer comme lu et entrer dans le prochain groupe non lu"
+msgid   "skip next block of included text"
+msgstr  "passer au bloc suivant incluant du texte"
 
 #: src/lang.c:357
-msgid	"choose first thread in list"
-msgstr	"choisir le 1er fil de la liste"
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  "(dés)activer l'affichage des sections masquer par (^L)"
 
 #: src/lang.c:358
-msgid	"choose last thread in list"
-msgstr	"choisir le dernier fil de la liste"
+#, fuzzy
+msgid   "toggle display of all headers"
+msgstr  "(dés)activer l'affichage de tout article/articles non lus"
 
 #: src/lang.c:359
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	"lister les articles du fil actuel (sous-menu fil)"
+msgid   "toggle word highlighting on/off"
+msgstr  "(dés)activer la surbrillance des mots"
 
 #: src/lang.c:360
-msgid	"mark article as unread"
-msgstr	"marquer l'article comme non lu"
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  "(dés)activer ROT-13 (décodage basic) pour l'article actuel"
 
 #: src/lang.c:361
-msgid	"mark current thread or tagged threads as read"
-msgstr	"marquer le fil actuel ou les fils marqués comme lus"
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  "basculer la taille de tabulation 4 <-> 8"
 
 #: src/lang.c:362
-msgid	"mark thread as unread"
-msgstr	"marquer le fil comme non lu"
+msgid   "toggle german TeX style decoding for current article"
+msgstr  "(dés)activer le décodage Allemand de type TeX pour l'article actuel"
 
 #: src/lang.c:363
-msgid	"toggle display of all/selected articles"
-msgstr	"(dés)activer la vue de tout article/articles sélectionnés"
+msgid   "toggle display of uuencoded sections"
+msgstr  "(dés)activer l'affichage des sections uuencodées"
 
 #: src/lang.c:364
-msgid	"display next group"
-msgstr	"afficher le groupe suivant"
+msgid   "View/pipe/save multimedia attachments"
+msgstr  "Voir/passer/enregistrer les PJ multimédia"
 
 #: src/lang.c:365
-msgid	"display previous group"
-msgstr	"afficher le groupe précédent"
+msgid   "choose first attachment in list"
+msgstr  "choisir la première pièce-jointe de la liste"
 
 #: src/lang.c:366
-msgid	"toggle all selections (all articles)"
-msgstr	"(dés)activer toutes les sélections (tout article)"
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  choisir la pièce-jointe par son numéro"
 
 #: src/lang.c:367
-msgid	"select group (make \"hot\")"
-msgstr	"sélection du groupe (utiliser \"hot\")"
-
-#: src/lang.c:368
-msgid	"select thread"
-msgstr	"sélectionner le fil"
+msgid   "choose last attachment in list"
+msgstr  "choisir la dernière PJ de la liste"
 
 #: src/lang.c:369
-msgid	"select threads if at least one unread article is selected"
-msgstr	"sél. les fils si au moins un article non lu est sélectionné"
+msgid   "pipe attachment into command"
+msgstr  "passer la pièce-jointe à une commande"
 
 #: src/lang.c:370
-msgid	"select threads that match user specified pattern"
-msgstr	"sélectionner les fils qui correspondent au critère choisi"
-
-#: src/lang.c:371
-msgid	"tag all parts of current multipart-message in order"
-msgstr	"marquer dans l'ordre toutes parties du message multiparties"
+msgid   "pipe raw attachment into command"
+msgstr  "passer la source de la PJ à une commande"
 
 #: src/lang.c:372
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 - 9\t  choisir le fil par numéro"
+msgid   "save attachment to disk"
+msgstr  "enregistrer la pièce-jointe"
 
 #: src/lang.c:373
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	"(dés)activer le nombre limite d'article à charger et à recharger"
+msgid   "search for attachments forwards"
+msgstr  "recherche avant des pièces-jointes"
 
 #: src/lang.c:374
-msgid	"toggle display of all/unread articles"
-msgstr	"(dés)activer l'affichage de tout article/articles non lus"
+msgid   "search for attachments backwards"
+msgstr  "recherche arrière des pièces-jointes"
 
 #: src/lang.c:375
-msgid	"toggle selection of thread"
-msgstr	"(dés)activer sélection du fil"
+msgid   "view attachment"
+msgstr  "voir la pièce-jointe"
 
 #: src/lang.c:376
-msgid	"cycle through threading options available"
-msgstr	"voir toutes les options de groupage disponibles"
+msgid   "tag attachment"
+msgstr  "marquer la pièce-jointe"
 
 #: src/lang.c:377
-msgid	"undo all selections (all articles)"
-msgstr	"annuler toutes sélections (tout article)"
+msgid   "tag attachments that match user specified pattern"
+msgstr  "marquer les PJ qui correspondant à une recherche"
 
 #: src/lang.c:378
-msgid	"untag all tagged threads"
-msgstr	"démarquer tout fil marqué"
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  "annuler (ou pas) le marquage de toutes les PJ"
 
 #: src/lang.c:379
-msgid	"mark all articles in group as read"
-msgstr	"marquer lu tous les articles du groupe"
+msgid   "untag all tagged attachments"
+msgstr  "démarquer toutes les PJ marquées"
 
 #: src/lang.c:380
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	"marquer lu le groupe et aller au groupe non lu suivant"
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  "(dés)activer le message d'info. de la dernière ligne (nom/description de la "
+        "PJ)"
 
 #: src/lang.c:381
-msgid	"choose first group in list"
-msgstr	"choisir le 1er groupe de la liste"
+msgid   "choose first attribute in list"
+msgstr  "choisir le 1er article dans la liste"
 
 #: src/lang.c:382
-msgid	"choose group by name"
-msgstr	"choisir le groupe par nom"
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  choisir un article par numéro"
 
 #: src/lang.c:383
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 - 9\t  choisir un groupe par son numéro"
+msgid   "choose last attribute in list"
+msgstr  "choisir le dernier article dans la liste"
 
 #: src/lang.c:384
-msgid	"choose range of groups to be affected by next command"
-msgstr	"choisir les groupes affectés par la commande suivante"
+msgid   "reset attribute to a default value"
+msgstr  "réinitialiser à sa valeur par défaut"
 
 #: src/lang.c:385
-msgid	"choose last group in list"
-msgstr	"choisir le dernier groupe de la liste"
+msgid   "search forwards for an attribute"
+msgstr  "recherche avant d'un attribut"
 
 #: src/lang.c:386
-msgid	"mark all articles in chosen group unread"
-msgstr	"marquer non lu tout article dans le groupe choisi"
+msgid   "search backwards for an attribute"
+msgstr  "recherche arrière d'un attribut"
 
 #: src/lang.c:387
-msgid	"move chosen group within list"
-msgstr	"déplacer le groupe sélectionné"
+msgid   "select attribute"
+msgstr  "sélectionner un attribut"
 
 #: src/lang.c:388
-msgid	"choose next group with unread news"
-msgstr	"choisir le groupe suivant ayant articles non lus"
+msgid   "toggle back to options menu when invoked from there"
+msgstr  "revenir au menu options lorsque demandé depuis ici"
 
-#: src/lang.c:389 src/lang.c:1197
-msgid	"quit"
-msgstr	"quitter"
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  "signaler un bogue ou envoi d'un commentaires à %s"
 
 #: src/lang.c:390
-msgid	"quit without saving configuration changes"
-msgstr	"quitter sans enregistrer les changements"
+msgid   "choose first option in list"
+msgstr  "choisir la première option de la liste"
 
 #: src/lang.c:391
-msgid	"read chosen group"
-msgstr	"lire le groupe choisi"
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  choisir une option par son numéro"
 
 #: src/lang.c:392
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	"réinitialiser .newsrc (tout sera marqué non lu dans les groupes)"
+msgid   "choose last option in list"
+msgstr  "choisir la dernière option de la liste"
 
 #: src/lang.c:393
-msgid	"search backwards for a group name"
-msgstr	"recherche arrière d'un groupe"
+msgid   "start scopes menu"
+msgstr  "afficher le menu des sélections"
 
 #: src/lang.c:394
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	" \t  (les recherches sont sensibles à la casse)"
+msgid   "search forwards for an option"
+msgstr  "recherche avant d'une option"
 
 #: src/lang.c:395
-msgid	"search forwards for a group name"
-msgstr	"recherche avant d'un groupe"
+msgid   "search backwards for an option"
+msgstr  "recherche arrière d'une option"
 
 #: src/lang.c:396
-msgid	"subscribe to chosen group"
-msgstr	"s'abonner au groupe sélectionné"
+msgid   "select option"
+msgstr  "sélectionner une option"
 
 #: src/lang.c:397
-msgid	"subscribe to groups that match pattern"
-msgstr	"abonnement aux groupes correspondant au critère"
+msgid   "toggle to attributes menu"
+msgstr  "(dés)activer le menu attributs"
 
 #: src/lang.c:398
-msgid	"reread active file to check for any new news"
-msgstr	"vérifier l'existence de nouveaux articles"
+msgid   "choose range of articles to be affected by next command"
+msgstr  "choisir les articles qui seront affectés par la commande suivante"
 
 #: src/lang.c:399
-msgid	"toggle display of group name only or group name plus description"
-msgstr	"afficher ou non le nom du groupe ou le nom + sa description"
+msgid   "escape from command prompt"
+msgstr  "quitter le prompt"
 
 #: src/lang.c:400
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	"afficher ou non tous les groupes abonnés non lu"
+msgid   "edit filter file"
+msgstr  "éditer les filtres"
 
 #: src/lang.c:401
-msgid	"unsubscribe from chosen group"
-msgstr	"se désabonner du groupe sélectionné"
+msgid   "get help"
+msgstr  "voir l'aide"
 
 #: src/lang.c:402
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"désabonnement aux groupes correspondant au critère"
+msgid   "display last article viewed"
+msgstr  "afficher le dernier article lu"
 
 #: src/lang.c:403
-msgid	"sort the list of groups"
-msgstr	"trier la liste des groupes"
+msgid   "down one line"
+msgstr  "descendre d'une ligne"
 
 #: src/lang.c:404
-msgid	"toggle display to show all/subscribed groups"
-msgstr	"afficher ou non tous les groupes abonnés"
+msgid   "up one line"
+msgstr  "monter d'une ligne"
 
 #: src/lang.c:405
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 - 9\t  choisir article par numéro"
+msgid   "go to article chosen by Message-ID"
+msgstr  "aller à l'article via son Message-ID"
 
 #: src/lang.c:406
-msgid	"mark thread as read and return to group index page"
-msgstr	"marquer le fil comme lu et revenir à la liste des groupes"
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  "envoyer article/fil/sél./articles marqués à une personne"
 
 #: src/lang.c:407
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	"marquer le fil comme lu et aller dans le fil ou groupe non lu suivant"
+msgid   "menu of configurable options"
+msgstr  "menu des options réglables"
 
 #: src/lang.c:408
-msgid	"choose first article in list"
-msgstr	"choisir le 1er article dans la liste"
+msgid   "down one page"
+msgstr  "descendre d'une page"
 
 #: src/lang.c:409
-msgid	"choose last article in list"
-msgstr	"choisir le dernier article dans la liste"
-
-# TRANSLATION TOO LONG
-#: src/lang.c:410
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	"marquer l'article ou les articles marqués comme lus et aller au prochain "
-	"article non lu"
+msgid   "up one page"
+msgstr  "monter d'une page"
 
 #: src/lang.c:411
-msgid	"read chosen article"
-msgstr	"lire l'article choisi"
+msgid   "post (write) article to current group"
+msgstr  "poster (écrire) un article dans le groupe actuel"
 
 #: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	"Propriétés de l'affichage\n"
-	"-------------------------"
-
-#: src/lang.c:413
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	"Divers\n"
-	"------"
+msgid   "post postponed articles"
+msgstr  "poster les brouillons"
 
 #: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	"Navigation\n"
-	"----------"
+msgid   "list articles posted by you (from posted file)"
+msgstr  "lister les articles postés par vous (fichier posted)"
 
 #: src/lang.c:415
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"Opérations sur les Groupes / fils / articles\n"
-	"--------------------------------------------"
+msgid   "return to previous menu"
+msgstr  "retourner au menu précédent"
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  "quitter tin immédiatement"
 
 #: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	"Commandes du niveau Groupe"
+msgid   "redraw page"
+msgstr  "rafraîchir la page"
 
 #: src/lang.c:418
-msgid	"Kill filter added"
-msgstr	"Filtre ajouté"
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  "enregistrer article/fil/sél./articles marqués dans un fichier"
 
 #: src/lang.c:419
-msgid	"Auto-selection filter added"
-msgstr	"Filtre à auto-sélection ajouté"
+msgid   "save marked articles automatically without user prompts"
+msgstr  "enregistrement auto. des articles marqués sans demander"
 
 #: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	"Toutes les parties sont marquées"
+msgid   "scroll the screen one line down"
+msgstr  "défiler une page par une page"
 
 #: src/lang.c:421
-msgid	"Storing article for later posting"
-msgstr	"Stockage de l'article afin de le poster plus tard"
+msgid   "scroll the screen one line up"
+msgstr  "remonter une page par une page"
 
 #: src/lang.c:422
-msgid	"Please enter a valid character"
-msgstr	"Entrez un caractère valide svp"
+msgid   "search for articles by author backwards"
+msgstr  "recherche arrière d'articles par auteur"
 
 #: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	"Partie manquante #%d"
+msgid   "search for articles by author forwards"
+msgstr  "recherche avant d'articles par auteur"
 
 #: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	"*** Aucun brouillon ***"
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  "rechercher partout un terme précis (cela peut prendre du temps)"
 
 #: src/lang.c:425
-msgid	"Not a multi-part message"
-msgstr	"N'est pas un message en plusieurs parties"
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  " \t  (les recherches ignorent la casse et s'opèrent sur tous les articles)"
 
 #: src/lang.c:426
-msgid	"You are not subscribed to this group"
-msgstr	"Vous n'êtes pas abonné à ce groupe"
+msgid   "search for articles by Subject line backwards"
+msgstr  "recherche arrière d'articles par Sujet"
 
 #: src/lang.c:427
-msgid	"No previous expression"
-msgstr	"Pas d'expression précédente"
+msgid   "search for articles by Subject line forwards"
+msgstr  "recherche avant d'articles par Sujet"
 
 #: src/lang.c:428
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	"Opération désactivée en mode lecture"
+msgid   "repeat last search"
+msgstr  "relancer la dernière recherche"
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  "marquer article pour repostage/envoi/passer/imprimer/enregistrer"
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	"%d %s brouillon(s), réutilisez-le(s) avec ^O...\n"
+msgid   "toggle info message in last line (subject/description)"
+msgstr  "afficher ou non les infos dans la dernière ligne (sujet/description)"
 
 #: src/lang.c:431
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	"X-Conversion-Note : contenus multiparties/alternatifs retirés.\n"
-	"  Pour voir l'article complet, désactivez la prise en charge alternative "
-	"dans\n"
-	"  le Menu Option.\n"
+msgid   "toggle inverse video"
+msgstr  "afficher ou non la vidéo inversée"
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  "afficher ou non le petit menu d'aide"
 
 #: src/lang.c:433
-#, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	"Enregistrer le fichier sous %s %s est une bàl. PJ non enregistrée"
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  "afficher cycliquement l'email des auteurs, nom réel, les deux ou aucun"
 
 #: src/lang.c:434
-msgid	"TeX2Iso encoded article"
-msgstr	"Article encodé en TeX2Iso"
+msgid   "show version information"
+msgstr  "afficher la version de tin"
 
 #: src/lang.c:435
-msgid	"incomplete "
-msgstr	"incomplet "
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  "marquer tous les articles comme lus et retourner au menu groupe"
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  "tout marquer comme lu et entrer dans le prochain groupe non lu"
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	"\n"
-	"Bienvenue dans %s, un lecteur de groupes UseNet. Pouvant également lire un\n"
-	"spool local (p.e. <spool>/news) ou depuis un serveur NNTP (Network News\n"
-	"Transport Protocol) distant (avec l'option -r). L'option -h liste les "
-	"options\n"
-	"principales de la ligne de commande.\n"
-	"\n"
-	"%s a quatre niveaux, la liste des groupes, l'index du groupe, le contenu du\n"
-	"fil de discussion, la visualisation de l'article. Une aide est visible "
-	"depuis\n"
-	"chaque niveaux en appuyant simplement sur 'h'.\n"
-	"\n"
-	"Déplacez-vous en utilisant les touches fléchées ou bien 'j' et 'k'. Utilisez\n"
-	"PgUp/PgDn ou Ctrl-U et Ctrl-D pour faire défiler la page de haut en bas.\n"
-	"Entrez dans un groupe en appuyant sur RETOUR/TAB.\n"
-	"\n"
-	"Les articles, fils, articles marqués ou articles correspondant à un critère\n"
-	"peuvent être envoyés par mail (commande 'm'), imprimés (commande 'o'),\n"
-	"enregistrés (commande 's'), passés dans un tuyau (commande '|').\n"
-	"Utilisez la commande 'w' pour poster un nouvel article, les commandes "
-	"'f'/'F'\n"
-	"pour poster un suivi en réponse à un article existant et les commandes "
-	"'r'/'R'\n"
-	"pour répondre par mail à l'auteur de l'article auquel vous répondez.\n"
-	"La commande 'M' permet de configurer %s via un menu.\n"
-	"\n"
-	"Pour plus d'informations, lisez les pages de manuel, ainsi que les fichiers\n"
-	"README, INSTALL, TODO et FTP.\n"
-	"Si vous constatez des bogues ou tout autre problème, envoyez s'il vous plaît\n"
-	"un rapport de bogue/commentaires à %s via la touche 'R'.\n"
+msgid   "choose first thread in list"
+msgstr  "choisir le 1er fil de la liste"
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  "choisir le dernier fil de la liste"
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  "lister les articles du fil actuel (sous-menu fil)"
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  "marquer l'article comme non lu"
+
+#: src/lang.c:441
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  "marquer le(s) fil(s) actuel(s) marqué(s) ou pas comme lu(s)"
+
+#: src/lang.c:442
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  "marquer le fil actuel ou les fils marqués comme non lus"
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  "après avoir demandé, marquer lu l'actuel/sélectionné/champ/marqué"
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  "après avoir demandé, marquer non lu l'actuel/sélectionné/champ/marqué"
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  "(dés)activer la vue de tout article/articles sélectionnés"
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  "afficher le groupe suivant"
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  "afficher le groupe précédent"
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  "(dés)activer toutes les sélections (tout article)"
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  "sélection du groupe (utiliser \"hot\")"
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  "sélectionner le fil"
+
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  "sél. les fils si au moins un article non lu est sélectionné"
+
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  "sélectionner les fils qui correspondent au critère choisi"
 
 #: src/lang.c:453
-#, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	"En-tête From: %s invalide. Lisez le fichier INSTALL une 2e fois."
+msgid   "tag all parts of current multipart-message in order"
+msgstr  "marquer dans l'ordre toutes parties du message multiparties"
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  choisir le fil par numéro"
 
-# TRANSLATION MISSING
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	""
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  "(dés)activer le nombre limite d'article à charger et à recharger"
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  "(dés)activer l'affichage de tout article/articles non lus"
 
 #: src/lang.c:457
-#, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	"En-tête Sender: %s invalide"
+msgid   "toggle selection of thread"
+msgstr  "(dés)activer sélection du fil"
 
 #: src/lang.c:458
-msgid	"Inverse video disabled"
-msgstr	"Vidéo inversée désactivée"
+msgid   "cycle through threading options available"
+msgstr  "voir toutes les options de groupage disponibles"
 
 #: src/lang.c:459
-msgid	"Inverse video enabled"
-msgstr	"Vidéo inversée activée"
+msgid   "undo all selections (all articles)"
+msgstr  "annuler toutes sélections (tout article)"
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  "démarquer tout fil marqué"
 
 #: src/lang.c:461
-#, c-format
-msgid	"Missing definition for %s\n"
-msgstr	"Définition manquante pour %s\n"
+msgid   "add new scope"
+msgstr  "ajouter une sélection"
 
 #: src/lang.c:462
-#, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	"Définition de clé invalide '%s'\n"
+msgid   "delete scope"
+msgstr  "effacer la sélection"
 
 #: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	"Nom de clé invalide '%s'\n"
+msgid   "edit attributes file"
+msgstr  "éditer le fichier attributes"
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	"Le fichier keymap a été mis à jour en version %s\n"
+msgid   "choose first scope in list"
+msgstr  "choisir la 1ère sélection de la liste"
 
 #: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	"   De : [%s] (o/n) : "
+msgid   "0 - 9\t  choose scope by number"
+msgstr  "0 - 9\t  choisir une sélection par son numéro"
 
 #: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	"Nombre de lignes (</>num)    : "
+msgid   "choose last scope in list"
+msgstr  "choisir la dernière sélection de la liste"
 
 #: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	"Créer un filtre"
+msgid   "move scope"
+msgstr  "déplacer la sélection"
 
 #: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	"  MID : [%s] (t/d/a/n) : "
+msgid   "rename scope"
+msgstr  "renommer la sélection"
 
 #: src/lang.c:469
-msgid	"Kill pattern scope  : "
-msgstr	"Filtre s'appliquant à : "
+msgid   "select scope"
+msgstr  "faire une sélection"
 
 #: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	"Sujet : [%s] (o/n) : "
+msgid   "mark all articles in group as read"
+msgstr  "marquer lu tous les articles du groupe"
 
 #: src/lang.c:471
-msgid	"Kill text pattern   : "
-msgstr	"Texte à filtrer : "
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  "marquer lu le groupe et aller au groupe non lu suivant"
 
 #: src/lang.c:472
-msgid	"Kill time in days   : "
-msgstr	"Durée du filtre              : "
+msgid   "choose first group in list"
+msgstr  "choisir le 1er groupe de la liste"
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  "choisir le groupe par nom"
 
 #: src/lang.c:474
-msgid	"Last"
-msgstr	"Dernier"
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  choisir un groupe par son numéro"
 
 #: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	"-- Dernière réponse --"
+msgid   "choose range of groups to be affected by next command"
+msgstr  "choisir les groupes affectés par la commande suivante"
 
 #: src/lang.c:476
-#, c-format
-msgid	"Lines %s  "
-msgstr	"%s lignes "
+msgid   "choose last group in list"
+msgstr  "choisir le dernier groupe de la liste"
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  "marquer non lu tout article dans le groupe choisi"
 
 #: src/lang.c:478
-msgid	"Message-ID: line              "
-msgstr	"l'en-tête 'Message-ID:'"
+msgid   "move chosen group within list"
+msgstr  "déplacer le groupe sélectionné"
 
 #: src/lang.c:479
-msgid	"Mail"
-msgstr	"Envoyer"
+msgid   "choose next group with unread news"
+msgstr  "choisir le groupe suivant ayant articles non lus"
 
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	"bàl"
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  "quitter"
 
 #: src/lang.c:481
-#, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"Envoyer article(s) à [%.*s] > "
+msgid   "quit without saving configuration changes"
+msgstr  "quitter sans enregistrer les changements"
 
 #: src/lang.c:482
-#, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"Envoi de l'historique à %s\n"
+msgid   "read chosen group"
+msgstr  "lire le groupe choisi"
 
 #: src/lang.c:483
-msgid	"Mail bug report..."
-msgstr	"Envoi d'un rapport de bug..."
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  "réinitialiser .newsrc (tout sera marqué non lu dans les groupes)"
 
 #: src/lang.c:484
-#, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"Signaler LE BUG à %s ?"
+msgid   "search backwards for a group name"
+msgstr  "recherche arrière d'un groupe"
 
 #: src/lang.c:485
-msgid	"Mailed"
-msgstr	"Envoyé"
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  " \t  (les recherches sont sensibles à la casse)"
 
 #: src/lang.c:486
-#, c-format
-msgid	"Mailing to %s..."
-msgstr	"Envoi à %s..."
+msgid   "search forwards for a group name"
+msgstr  "recherche avant d'un groupe"
 
 #: src/lang.c:487
-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	"# [Envoyer/Enregistrer] fichier active. Le format ressemble à\n"
-	"# celui du fichier news active :\n"
-	"#   nom_groupe  max.numéro_art  min.numéro_art  /répertoire\n"
-	"# Le 4ème champ est le répertoire racine utilisé\n"
-	"# (p.e. ~/Mail ou ~/News)\n"
+msgid   "subscribe to chosen group"
+msgstr  "s'abonner au groupe sélectionné"
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  "abonnement aux groupes correspondant au critère"
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  "vérifier l'existence de nouveaux articles"
 
 #: src/lang.c:490
-#, c-format
-msgid	"%s marked as unread"
-msgstr	"%s marqué comme non lu"
+msgid   "toggle display of group name only or group name plus description"
+msgstr  "afficher ou non le nom du groupe ou le nom + sa description"
 
 #: src/lang.c:491
-#, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	"%d marqué(s) sur %d sélectionné(s) %s comme lu(s)"
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  "afficher ou non tous les groupes abonnés non lu"
 
 #: src/lang.c:492
-#, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"Marquer tous les articles comme lus%s ?"
+msgid   "unsubscribe from chosen group"
+msgstr  "se désabonner du groupe sélectionné"
 
 #: src/lang.c:493
-#, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	"Marquer %s=art. marqués, %s=article actuel, %s=quitter : "
+msgid   "unsubscribe from groups that match pattern"
+msgstr  "désabonnement aux groupes correspondant au critère"
 
 #: src/lang.c:494
-#, c-format
-msgid	"Mark group %s as read?"
-msgstr	"Marquer le groupe %s comme lu ?"
+msgid   "sort the list of groups"
+msgstr  "trier la liste des groupes"
 
 #: src/lang.c:495
-#, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"Marquer le fil comme lu%s ?"
+msgid   "toggle display to show all/subscribed groups"
+msgstr  "afficher ou non tous les groupes abonnés"
 
 #: src/lang.c:496
-#, 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 : "
+msgid   "0 - 9\t  choose article by number"
+msgstr  "0 - 9\t  choisir article par numéro"
 
 #: src/lang.c:497
-#, c-format
-msgid	"Matching %s groups..."
-msgstr	"%s groupes correspondants..."
+msgid   "mark thread as read and return to group index page"
+msgstr  "marquer le fil comme lu et revenir à la liste des groupes"
 
-#: src/lang.c:498 src/lang.c:502
-#, 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:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  "marquer le fil comme lu et aller dans le fil ou groupe non lu suivant"
 
 #: src/lang.c:499
-#, 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"
+msgid   "choose first article in list"
+msgstr  "choisir le 1er article dans la liste"
 
 #: src/lang.c:500
-#, 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"
+msgid   "choose last article in list"
+msgstr  "choisir le dernier article dans la liste"
 
 #: src/lang.c:501
-#, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	"%s=recherche avant; %s=recherche arrière; %s=quitter"
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  "marquer le ou les articles marqués comme lus et aller au prochain non lu"
+
+#: src/lang.c:502
+msgid   "mark article, range or tagged articles as unread"
+msgstr  "marquer l'article actuel ou les articles marqués comme non lus"
 
 #: src/lang.c:503
-#, 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"
+msgid   "mark current thread as unread"
+msgstr  "marquer le fil actuel comme non lu"
 
 #: src/lang.c:504
-#, 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"
+msgid   "read chosen article"
+msgstr  "lire l'article choisi"
 
 #: src/lang.c:505
-#, 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"
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "Propriétés de l'affichage\n"
+        "-------------------------"
 
 #: src/lang.c:506
-#, 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"
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "Divers\n"
+        "------"
 
 #: src/lang.c:507
-#, 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"
+msgid   "Moving around\n"
+        "-------------"
+msgstr  "Navigation\n"
+        "----------"
 
 #: src/lang.c:508
-#, 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"
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  "Opérations sur les Groupes / fils / articles\n"
+        "--------------------------------------------"
 
 #: src/lang.c:509
-msgid	"--More--"
-msgstr	"-- Suite --"
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  "Opérations sur les pièces-jointes\n"
+        "---------------------------------"
 
 #: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	"Déplacement de %s..."
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  "Opérations sur les attributs\n"
+        "----------------------------"
+
+#: src/lang.c:511
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  "Options des opérations\n"
+        "----------------------"
 
 #: src/lang.c:512
-msgid	", name: "
-msgstr	", nom : "
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  "Opérations sur les sélections\n"
+        "-----------------------------"
 
 #: src/lang.c:513
-#, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	"Aller dans le groupe [%s]> "
+msgid   "URL operations\n"
+        "--------------"
+msgstr  "Opérations sur les URL\n"
+        "----------------------"
 
 #: src/lang.c:514
-msgid	"newsgroups"
-msgstr	"groupes"
+msgid   "choose first URL in list"
+msgstr  "choisir la première URL de la liste"
 
 #: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	"Placer %s dans la liste des groupes (1,2,..,$) [%d]> "
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  choisir l'URL par son numéro"
 
 #: src/lang.c:516
-msgid	"newsgroup"
-msgstr	"groupe"
+msgid   "choose last URL in list"
+msgstr  "choisir la dernière URL de la liste"
 
 #: src/lang.c:517
-msgid	"Try and save newsrc file again?"
-msgstr	"Encore essayer et enregistrer le newsrc ?"
+msgid   "search for URLs forwards"
+msgstr  "recherche avant des URLs"
 
 #: src/lang.c:518
-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é."
+msgid   "search for URLs backwards"
+msgstr  "recherche arrière des URLs"
 
 #: src/lang.c:519
-msgid	"newsrc file saved successfully.\n"
-msgstr	"le newsrc a été enregistré avec succès.\n"
+msgid   "Open URL in browser"
+msgstr  "Ouvrir l'URL dans le navigateur"
 
 #: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	"-- Réponse suivante --"
-
-#: src/lang.c:521
-#, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"Mot de passe NNTP introuvable pour %s"
+msgid   "toggle info message in last line (URL)"
+msgstr  "(dés)activer le message d'info. dans la dernière ligne (URL)"
 
 #: src/lang.c:522
-msgid	"No  "
-msgstr	"Non "
+msgid   "Group Level Commands"
+msgstr  "Commandes du niveau Groupe"
 
 #: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	"*** Aucun article ***"
+msgid   "Kill filter added"
+msgstr  "Filtre ajouté"
 
 #: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	"Aucun article n'a été posté"
+msgid   "Auto-selection filter added"
+msgstr  "Filtre à auto-sélection ajouté"
 
 #: src/lang.c:525
-msgid	"*** No description ***"
-msgstr	"*** Aucune description ***"
+msgid   "All parts tagged"
+msgstr  "Toutes les parties sont marquées"
 
 #: src/lang.c:526
-msgid	"No filename"
-msgstr	"Pas de nom de fichier"
+msgid   "Storing article for later posting"
+msgstr  "Stockage de l'article afin de le poster plus tard"
 
 #: src/lang.c:527
-msgid	"No group"
-msgstr	"Pas de groupe"
+msgid   "Please enter a valid character"
+msgstr  "Entrez un caractère valide svp"
 
 #: src/lang.c:528
-msgid	"*** No groups ***"
-msgstr	"*** Aucun groupe ***"
+#, c-format
+msgid   "Missing part #%d"
+msgstr  "Partie manquante #%d"
 
 #: src/lang.c:529
-msgid	"No more groups to read"
-msgstr	"Plus de groupes à lire"
+msgid   "*** No postponed articles ***"
+msgstr  "*** Aucun brouillon ***"
 
 #: src/lang.c:530
-msgid	"No last message"
-msgstr	"Aucun dernier message"
+msgid   "Not a multi-part message"
+msgstr  "N'est pas un message en plusieurs parties"
 
 #: src/lang.c:531
-msgid	"No mail address"
-msgstr	"Aucune adresse email"
+msgid   "You are not subscribed to this group"
+msgstr  "Vous n'êtes pas abonné à ce groupe"
 
 #: src/lang.c:532
-msgid	"No articles marked for saving"
-msgstr	"Aucun article marqué à enregistrer"
+msgid   "No previous expression"
+msgstr  "Pas d'expression précédente"
 
 #: src/lang.c:533
-msgid	"No match"
-msgstr	"Aucun résultat"
-
-#: src/lang.c:534
-msgid	"No more groups"
-msgstr	"Plus de groupes"
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  "Opération désactivée en mode lecture"
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-msgid	"No newsgroups"
-msgstr	"Aucun groupe"
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  "%d %s brouillon(s), réutilisez-le(s) avec ^O...\n"
 
 #: src/lang.c:536
-msgid	"No next unread article"
-msgstr	"Aucun article non lu suivant"
-
-#: src/lang.c:537
-msgid	"No previous group"
-msgstr	"Aucun groupe précédent"
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  "X-Conversion-Note : contenus multiparties/alternatifs retirés.\n"
+        "  Pour voir l'article complet, désactivez la prise en charge alternative "
+        "dans\n"
+        "  le Menu Option.\n"
 
 #: src/lang.c:538
-msgid	"No previous unread article"
-msgstr	"Aucun article non lu précédent"
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  "Enregistrer le fichier sous %s %s est une bàl. PJ non enregistrée"
 
 #: src/lang.c:539
-msgid	"No responses"
-msgstr	"Aucune réponse"
+msgid   "TeX2Iso encoded article"
+msgstr  "Article encodé en TeX2Iso"
 
 #: src/lang.c:540
-msgid	"No responses to list in current thread"
-msgstr	"Aucune réponse à afficher dans le fil actuel"
-
-#: src/lang.c:541
-msgid	"No search string"
-msgstr	"Aucun terme à rechercher"
+msgid   "incomplete "
+msgstr  "incomplet "
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-msgid	"No subject"
-msgstr	"Aucun sujet"
-
-#: src/lang.c:544
 #, 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
-#, 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
-#, 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
-#, 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
-#, 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
-#, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	"Visualiseur introuvable pour %s/%s\n"
-
-#: src/lang.c:551
-msgid	"Newsgroup does not exist on this server"
-msgstr	"Groupe inexistant sur ce serveur"
-
-#: src/lang.c:552
-#, c-format
-msgid	"Group %s not found in active file"
-msgstr	"Groupe %s introuvable dans le fichier active"
-
-#: src/lang.c:553
-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
-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
-#, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	"# Serveur NNTP -> tableau de correspondance du newsrc et serveur NNTP\n"
-	"# liste des alias pour %s %s\n"
-	"#\n"
-	"# le format de ce fichier est le suivant :\n"
-	"#   <FQDN du serveur NNTP> <fichier newsrc> <alias> ...\n"
-	"#\n"
-	"# si <fichier newsrc> n'inclus pas le chemin,\n"
-	"# $HOME est alors considéré comme celui par défaut\n"
-	"#\n"
-	"# exemples :\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	"Actuel"
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  "\n"
+        "Bienvenue dans %s, un lecteur de groupes UseNet. Pouvant également lire un\n"
+        "spool local (p.e. <spool>/news) ou depuis un serveur NNTP (Network News\n"
+        "Transport Protocol) distant (avec l'option -r). L'option -h liste les "
+        "options\n"
+        "principales de la ligne de commande.\n"
+        "\n"
+        "%s a quatre niveaux, la liste des groupes, l'index du groupe, le contenu du\n"
+        "fil de discussion, la visualisation de l'article. Une aide est visible "
+        "depuis\n"
+        "chaque niveaux en appuyant simplement sur 'h'.\n"
+        "\n"
+        "Déplacez-vous en utilisant les touches fléchées ou bien 'j' et 'k'. Utilisez\n"
+        "PgUp/PgDn ou Ctrl-U et Ctrl-D pour faire défiler la page de haut en bas.\n"
+        "Entrez dans un groupe en appuyant sur RETOUR/TAB.\n"
+        "\n"
+        "Les articles, fils, articles marqués ou articles correspondant à un critère\n"
+        "peuvent être envoyés par mail (commande 'm'), imprimés (commande 'o'),\n"
+        "enregistrés (commande 's'), passés à une commande (commande '|').\n"
+        "Utilisez la commande 'w' pour poster un nouvel article, les commandes "
+        "'f'/'F'\n"
+        "pour poster un suivi en réponse à un article existant et les commandes "
+        "'r'/'R'\n"
+        "pour répondre par mail à l'auteur de l'article auquel vous répondez.\n"
+        "La commande 'M' permet de configurer %s via un menu.\n"
+        "\n"
+        "Pour plus d'informations, lisez les pages de manuel, ainsi que les fichiers\n"
+        "README, INSTALL, TODO et FTP.\n"
+        "Si vous constatez des bogues ou tout autre problème, envoyez s'il vous plaît\n"
+        "un rapport de bogue/commentaires à %s via la touche 'R'.\n"
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  "En-tête From: %s invalide. Lisez le fichier INSTALL une 2e fois."
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  "Séquence multibyte invalide trouvée\n"
 
 #: src/lang.c:563
 #, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"Option non activée. Recompilez avec %s."
+msgid   "Invalid  Sender:-header %s"
+msgstr  "En-tête Sender: %s invalide"
 
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	"Menu Options"
-
-#: src/lang.c:567
-#, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	"Erreur dans la regex : %s à %d '%s'"
+#: src/lang.c:565
+msgid   "Inverse video disabled"
+msgstr  "Vidéo inversée désactivée"
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  "Vidéo inversée activée"
 
 #: src/lang.c:568
 #, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	"Erreur dans la regex : erreur pcre interne %d"
+msgid   "Missing definition for %s\n"
+msgstr  "Définition manquante pour %s\n"
 
 #: src/lang.c:569
 #, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	"Erreur dans la regex : study - erreur pcre interne %s"
+msgid   "Invalid key definition '%s'\n"
+msgstr  "Définition de clé invalide '%s'\n"
 
 #: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	"Postage du suivi..."
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  "Nom de clé invalide '%s'\n"
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  "Le fichier keymap a été mis à jour en version %s\n"
 
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
 #: src/lang.c:572
-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	"Une erreur est survenue lors du postage de l'article. Si vous pensez que\n"
-	"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"
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  "   De : [%s] (o/n) : "
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  "Nombre de lignes (</>num)    : "
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  "Créer un filtre"
 
 #: src/lang.c:575
-msgid	"Posted articles history"
-msgstr	"Historique des articles postés"
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  "  MID : [%s] (t/d/a/n) : "
 
 #: src/lang.c:576
-#, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"Poster dans groupe(s) [%s]> "
+msgid   "Kill pattern scope  : "
+msgstr  "Filtre s'appliquant à : "
 
 #: src/lang.c:577
-msgid	"-- post processing started --"
-msgstr	"-- post-traitement lancé --"
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  "Sujet : [%s] (o/n) : "
 
 #: src/lang.c:578
-msgid	"-- post processing completed --"
-msgstr	"-- post-traitement terminé --"
+msgid   "Kill text pattern   : "
+msgstr  "Texte à filtrer : "
 
 #: src/lang.c:579
-#, c-format
-msgid	"Post subject [%s]> "
-msgstr	"Poster le sujet [%s] > "
-
-#: src/lang.c:580
-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"
+msgid   "Kill time in days   : "
+msgstr  "Durée du filtre              : "
 
 #: src/lang.c:581
-msgid	"Posting article..."
-msgstr	"Postage de l'article..."
+msgid   "Last"
+msgstr  "Dernier"
 
 #: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	"Poster les brouillons [%%s] ? (%s/%s/%s/%s/%s) : "
+msgid   "-- Last response --"
+msgstr  "-- Dernière réponse --"
 
 #: src/lang.c:583
 #, c-format
-msgid	"Hot %s"
-msgstr	"%s sélectionné"
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	"%s marqué"
+msgid   "Lines %s  "
+msgstr  "%s lignes "
 
 #: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	"%s non marqué"
+msgid   "Mail"
+msgstr  "Envoyer"
 
 #: src/lang.c:586
-msgid	"Processing mail messages marked for deletion."
-msgstr	"Traitement des emails enregistrés marqués pour effacement."
+msgid   "mailbox "
+msgstr  "bàl"
 
 #: src/lang.c:587
-msgid	"Processing saved articles marked for deletion."
-msgstr	"Traitement des articles enregistrés marqués pour effacement."
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "Envoyer article(s) à [%.*s] > "
 
 #: src/lang.c:588
 #, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	"Accepter le Suivi ? %s=poster, %s=ignorer, %s=quitter : "
+msgid   "Mailing log to %s\n"
+msgstr  "Envoi de l'historique à %s\n"
 
 #: src/lang.c:589
-msgid	"Article unchanged, abort mailing?"
-msgstr	"Article inchangé, annuler l'envoi ?"
+msgid   "Mail bug report..."
+msgstr  "Envoi d'un rapport de bogue..."
 
 #: src/lang.c:590
 #, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	"Voulez-vous voir les brouillons (%d) ?"
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "Signaler le BOGUE à %s ?"
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  "Envoyé"
 
 #: src/lang.c:592
-msgid	"Add quick kill filter?"
-msgstr	"Ajouter rapidement un filtre ?"
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  "Envoi à %s..."
 
 #: src/lang.c:593
-msgid	"Add quick selection filter?"
-msgstr	"Ajouter rapidement une règle ?"
-
-#: src/lang.c:594
-msgid	"Do you really want to quit?"
-msgstr	"Voulez-vous réellement quitter ?"
-
-#: src/lang.c:595
-#, 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] : "
+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  "# [Envoyer/Enregistrer] fichier active. Le format ressemble à\n"
+        "# celui du fichier news active :\n"
+        "#   nom_groupe  max.numéro_art  min.numéro_art  /répertoire\n"
+        "# Le 4ème champ est le répertoire racine utilisé\n"
+        "# (p.e. ~/Mail ou ~/News)\n"
 
 #: src/lang.c:596
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	"Vous avez des articles marqués dans ce groupe - quitter quand même ?"
+#, c-format
+msgid   "%s marked as read"
+msgstr  "%s marqué comme lu"
 
 #: src/lang.c:597
 #, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	"%s=quitter, %s=éditer, %s=brouillon : "
+msgid   "%s marked as unread"
+msgstr  "%s marqué comme non lu"
 
 #: src/lang.c:598
 #, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	"%s=quitter, %s=éditer, %s=enregistrer le filtre : "
+msgid   "Marked %d of %d %s as read"
+msgstr  "%d sur %d %s marqué(s) comme lu(s)"
 
 #: src/lang.c:599
 #, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	"%s=quitter %s=éditer %s=enregistrer la règle : "
+msgid   "Marked %d of %d %s as unread"
+msgstr  "%d sur %d %s marqué(s) comme non lu(s)"
 
-#: src/lang.c:600
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"Voulez-vous réellement quitter sans enregistrer votre configuration ?"
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  "Marque"
+
+#: src/lang.c:601
+#, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  "Marquer tous les articles comme lus%s ?"
+
+#: src/lang.c:602
+#, c-format
+msgid   "Mark article as read%s?"
+msgstr  "Marquer l'article comme lu%s ?"
 
 #: src/lang.c:603
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	"Champ invalide - '0-9.$' pe. 1-$ est valide"
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  "Marquer le groupe %s comme lu ?"
 
 #: src/lang.c:604
-msgid	"Do you want to abort this operation?"
-msgstr	"Voulez-vous annuler cette opération ?"
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "Marquer le fil comme lu%s ?"
 
 #: src/lang.c:605
-msgid	"Do you want to exit tin immediately?"
-msgstr	"Voulez-vous quitter tin immédiatement ?"
-
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	"Lire la réponse> "
-
-#: src/lang.c:607
-msgid	"Reading ('q' to quit)..."
-msgstr	"Lecture ('q' pour quitter)..."
+#, c-format
+msgid   "Matching %s groups..."
+msgstr  "%s groupes correspondants..."
 
-#: src/lang.c:608
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
 #, c-format
-msgid	"Reading %sarticles..."
-msgstr	"Lecture de %sarticles..."
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  "<n>=mettre l'actuel à n; %s=descendre; %s=monter; %s=aide; %s=quitter"
 
-#: src/lang.c:609
+#: src/lang.c:608
 #, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"Lecture du fichier %sattributes...\n"
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=voir; %s=passer; %s=passer la source; %s=enregistrer; %s=marquer; %"
+        "s=marquer sélection; %s=tout démarquer"
 
 #: src/lang.c:610
 #, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"Lecture du fichier %sconfig...\n"
-
-#: src/lang.c:611
-msgid	"Reading filter file...\n"
-msgstr	"Lecture du fichier filter...\n"
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=voir; %s=enregistrer; %s=marquer; %s=marquer sélection; %s=tout démarquer"
 
 #: src/lang.c:612
 #, c-format
-msgid	"Reading %s groups..."
-msgstr	"Lecture de %s groupes..."
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=(dés)activer le marquage; %s=recherche avant; %s=recherche arrière; %"
+        "s=répéter la recherche"
 
-#: src/lang.c:613
-msgid	"Reading input history file...\n"
-msgstr	"Lecture du fichier d'historique...\n"
+#: src/lang.c:613 src/lang.c:617
+#, 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:614
-msgid	"Reading keymap file...\n"
-msgstr	"Lecture du fichier keymap...\n"
+#, 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:615
-msgid	"Reading groups from active file... "
-msgstr	"Lecture des groupes depuis le fichier active... "
+#, 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:616
-msgid	"Reading groups from newsrc file... "
-msgstr	"Lecture des groupes depuis le fichier newsrc... "
-
-#: src/lang.c:617
-msgid	"Reading newsgroups file... "
-msgstr	"Lecture du fichier newsgroups... "
+#, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=quit"
+msgstr  "%s=recherche avant; %s=recherche arrière; %s=quitter"
 
 #: src/lang.c:618
-msgid	"Reading newsrc file..."
-msgstr	"Lecture du fichier newsrc..."
+#, 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:620
+#: src/lang.c:619
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	"(%d:%02d restant)"
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  "%s=ajouter; %s=déplacer; %s=renommer; %s=effacer"
+
+#: src/lang.c:621
+#, 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:622
 #, c-format
-msgid	"Bogus group %s removed."
-msgstr	"Effacement du groupe corrompu %s."
+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:623
 #, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"Erreur : renommer %s à %s"
+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:624
-msgid	"Reply to author..."
-msgstr	"Répondre à l'auteur..."
+#, 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:625
-msgid	"Repost"
-msgstr	"Reposter"
-
-#: src/lang.c:626
-msgid	"Reposting article..."
-msgstr	"Repostage de l'article..."
+#, 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:627
 #, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	"Reposter article(s) dans groupe(s) [%s]> "
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=recherche avant; %s=recherche arrière; %s=répéter la recherche"
 
 #: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	"Réinitialiser newsrc ?"
+msgid   "--More--"
+msgstr  "-- Suite --"
 
 #: src/lang.c:629
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	"Les réponses ont été redirigées vers les groupes suivants"
+#, c-format
+msgid   "Moving %s..."
+msgstr  "Déplacement de %s..."
 
 #: src/lang.c:630
-#, 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 : "
+msgid   "Message-ID: & last Reference  "
+msgstr  "Message-ID: & dernière Référence  "
 
 #: src/lang.c:631
-#, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	"Réponse %4d sur %4d"
+msgid   "Message-ID: line              "
+msgstr  "l'en-tête 'Message-ID:'"
 
 #: src/lang.c:632
-msgid	"Press <RETURN> to continue..."
-msgstr	"Appuyez sur <RETOUR> pour continuer..."
+msgid   "Message-ID: & References: line"
+msgstr  "Ligne Message-ID: & References:"
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	"   De : [%s] (o/n) : "
+msgid   ", name: "
+msgstr  ", nom : "
 
 #: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	"Nombre de lignes (</>num)    : "
+#, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "Aller dans le groupe [%s]> "
 
 #: src/lang.c:636
-msgid	"Auto-select Article Menu"
-msgstr	"Créer une règle"
+msgid   "newsgroups"
+msgstr  "groupes"
 
 #: src/lang.c:637
 #, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	"  MID : [%s] (t/d/a/n) : "
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  "Placer %s dans la liste des groupes (1,2,..,$) [%d]> "
 
 #: src/lang.c:638
-msgid	"Select pattern scope: "
-msgstr	"Règle s'appliquant à : "
+msgid   "newsgroup"
+msgstr  "groupe"
 
 #: src/lang.c:639
-#, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	"Sujet : [%s] (o/n) : "
+msgid   "Try and save newsrc file again?"
+msgstr  "Encore essayer et enregistrer le newsrc ?"
 
 #: src/lang.c:640
-msgid	"Select text pattern : "
-msgstr	"Texte ou terme  : "
+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:641
-msgid	"Select time in days   : "
-msgstr	"Durée de la règle            : "
+msgid   "newsrc file saved successfully.\n"
+msgstr  "le newsrc a été enregistré avec succès.\n"
 
 #: src/lang.c:642
-#, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	"# Fichier de configuration serveur de %s\n"
-	"# Ce fichier a été automatiquement enregistré par %s %s %s (\"%s\")\n"
-	"#\n"
-	"# N'éditez pas ce fichier lorsque %s est ouvert, car tout changement apporté\n"
-	"# sera écrasé lorsque vous quitterez %s.\n"
-	"# Enfin, ne touchez pas à ce fichier si vous ne savez pas quoi y faire.\n"
-	"############################################################################\n"
+msgid   "-- Next response --"
+msgstr  "-- Réponse suivante --"
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  "Non "
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  "*** Aucun article ***"
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  "Aucun article n'a été posté"
+
+#: src/lang.c:646
+msgid   "*** No attachments ***"
+msgstr  "*** Pas de pièces-jointes ***"
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  "*** Aucune description ***"
 
 #: src/lang.c:648
-msgid	"Showing unread groups only"
-msgstr	"Afficher uniquement les groupes non lus"
+msgid   "No filename"
+msgstr  "Pas de nom de fichier"
 
 #: src/lang.c:649
-msgid	"Subject: line (ignore case)   "
-msgstr	"l'en-tête 'Subject:' (ignorer la casse)"
+msgid   "No group"
+msgstr  "Pas de groupe"
 
 #: src/lang.c:650
-msgid	"Subject: line (case sensitive)"
-msgstr	"l'en-tête 'Subject:' (casse sensible)"
+msgid   "*** No groups ***"
+msgstr  "*** Aucun groupe ***"
 
 #: src/lang.c:651
-msgid	"Save"
-msgstr	"Enregistrer"
+msgid   "No more groups to read"
+msgstr  "Plus de groupes à lire"
 
 #: src/lang.c:652
-#, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"Enregistrer '%s' (%s/%s) ?"
+msgid   "No last message"
+msgstr  "Aucun dernier message"
 
 #: src/lang.c:653
-msgid	"Save configuration before continuing?"
-msgstr	"Enregistrer la configuration avant de continuer ?"
+msgid   "No mail address"
+msgstr  "Aucune adresse email"
 
 #: src/lang.c:654
-msgid	"Save filename> "
-msgstr	"Enregistrer sous le nom de fichier > "
+msgid   "No articles marked for saving"
+msgstr  "Aucun article marqué à enregistrer"
 
 #: src/lang.c:655
-msgid	"Saved"
-msgstr	"Enregistré"
+msgid   "No match"
+msgstr  "Aucun résultat"
 
 #: src/lang.c:656
-#, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	"%4d non lu (%4d sél.) %s dans %s\n"
+msgid   "No more groups"
+msgstr  "Plus de groupes"
 
 #: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	"Enregistrement de %s...\n"
+msgid   "No newsgroups"
+msgstr  "Aucun groupe"
 
 #: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	"Rien n'a été enregistré"
+msgid   "No next unread article"
+msgstr  "Aucun article non lu suivant"
 
 #: src/lang.c:659
-#, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"\n"
-	"%s %d %s de %d %s\n"
+msgid   "No previous group"
+msgstr  "Aucun groupe précédent"
 
 #: src/lang.c:660
-#, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"-- %s enregistré sous %s%s --"
+msgid   "No previous search, nothing to repeat"
+msgstr  "Aucune recherche précédente, rien à répéter"
 
 #: src/lang.c:661
-#, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"-- %s enregistré sous %s - %s --"
+msgid   "No previous unread article"
+msgstr  "Aucun article non lu précédent"
 
 #: src/lang.c:662
-msgid	"Saving..."
-msgstr	"Enregistrement..."
+msgid   "No responses"
+msgstr  "Aucune réponse"
 
 #: src/lang.c:663
-#, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s : Échec de l'initialisation de l'écran"
+msgid   "No responses to list in current thread"
+msgstr  "Aucune réponse à afficher dans le fil actuel"
+
+#: src/lang.c:664
+msgid   "*** No scopes ***"
+msgstr  "*** Aucune sélection ***"
 
 #: src/lang.c:665
-#, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s : l'écran est trop petit\n"
+msgid   "No search string"
+msgstr  "Aucun terme à rechercher"
 
-#: src/lang.c:667
-#, c-format
-msgid	"screen is too small, %s is exiting\n"
-msgstr	"l'écran est trop petit, %s quitte\n"
+#: src/lang.c:666
+msgid   "No subject"
+msgstr  "Aucun sujet"
 
 #: src/lang.c:668
 #, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"Recherche arrière [%s] > "
+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:669
 #, c-format
-msgid	"Search body [%s]> "
-msgstr	"Rechercher dans le corps [%s] > "
+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:670
 #, c-format
-msgid	"Search forwards [%s]> "
-msgstr	"Recherche avant [%s] > "
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  "%s: Terminal doit avoir la fonction clearscreen (cl)\n"
 
 #: src/lang.c:671
-msgid	"Searching..."
-msgstr	"Recherche..."
+#, 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:672
 #, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	"Recherche article %d sur %d ('q' pour annuler)..."
-
-#: src/lang.c:673
-msgid	"Select article> "
-msgstr	"Sélectionner l'article > "
+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:674
-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."
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  "Visualiseur introuvable pour %s/%s\n"
 
 #: src/lang.c:675
-msgid	"Select group> "
-msgstr	"Sélectionner le groupe > "
+msgid   "Newsgroup does not exist on this server"
+msgstr  "Groupe inexistant sur ce serveur"
 
 #: src/lang.c:676
 #, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	"Entrez le critère de sélection [%s] > "
+msgid   "Group %s not found in active file"
+msgstr  "Groupe %s introuvable dans le fichier active"
 
 #: src/lang.c:677
-msgid	"Select thread > "
-msgstr	"Sélectionner le fil > "
+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:678
-#, 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"
+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:679
-msgid	"servers active-file"
-msgstr	"fichier active des serveurs"
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  "# Serveur NNTP -> tableau de correspondance du newsrc et serveur NNTP\n"
+        "# liste des alias pour %s %s\n"
+        "#\n"
+        "# le format de ce fichier est le suivant :\n"
+        "#   <FQDN du serveur NNTP> <fichier newsrc> <alias> ...\n"
+        "#\n"
+        "# si <fichier newsrc> n'inclus pas le chemin,\n"
+        "# $HOME est alors considéré comme celui par défaut\n"
+        "#\n"
+        "# exemples :\n"
+        "#   news.tin.org  .newsrc-tin.org  tinorg\n"
+        "#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
+        "#\n"
 
-#: src/lang.c:680
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	"Déplacement dans nouveaux groupes impossible. Abonnez-vous d'abord..."
+#: src/lang.c:686
+msgid   "Only"
+msgstr  "Actuel"
 
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	"<ESPACE>"
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "Option non activée. Recompilez avec %s."
+
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  "Menu Options"
 
-#: src/lang.c:682
+#: src/lang.c:689
+msgid   "Options Menu Commands"
+msgstr  "Menu Options"
+
+#: src/lang.c:692
 #, c-format
-msgid	"Starting: (%s)"
-msgstr	"Démarrage : (%s)"
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  "Erreur dans la regex : %s à %d '%s'"
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"Visualisation du fil (%d sur %d)"
+msgid   "Error in regex: pcre internal error %d"
+msgstr  "Erreur dans la regex : erreur pcre interne %d"
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, c-format
-msgid	"Thread (%.*s)"
-msgstr	"Fil (%.*s)"
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  "Erreur dans la regex : study - erreur pcre interne %s"
 
-#: src/lang.c:685
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	"Entrer un caractère joker comme critère > "
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  "Postage du suivi..."
 
-#: src/lang.c:686
-#, c-format
-msgid	"subscribed to %d groups"
-msgstr	"Abonné à %d groupes"
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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  "Une erreur est survenue lors du postage de l'article. Si vous pensez que\n"
+        "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:687
+#: src/lang.c:700
+msgid   "Posted articles history"
+msgstr  "Historique des articles postés"
+
+#: src/lang.c:701
 #, c-format
-msgid	"Subscribed to %s"
-msgstr	"Abonné à %s"
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "Poster dans groupe(s) [%s]> "
 
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	"Abonnement... "
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  "-- post-traitement lancé --"
 
-#: src/lang.c:689
-#, 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:703
+msgid   "-- post processing completed --"
+msgstr  "-- post-traitement terminé --"
 
-#: src/lang.c:690
+#: src/lang.c:704
 #, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	"Remplacer le(s) article(s) du(es) groupe(s) [%s] > "
+msgid   "Post subject [%s]> "
+msgstr  "Poster le sujet [%s] > "
 
-#: src/lang.c:691
-msgid	"Superseding article ..."
-msgstr	"Remplacement de l'article..."
+#: src/lang.c:705
+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:692
-#, c-format
-msgid	"\n"
-	"Stopped. Type 'fg' to restart %s\n"
-msgstr	"\n"
-	"Arrêté. Tapez 'fg' pour relancer %s\n"
+#: src/lang.c:706
+msgid   "Posting article..."
+msgstr  "Postage de l'article..."
 
-#: src/lang.c:694
+#: src/lang.c:707
 #, c-format
-msgid	"%d days"
-msgstr	"%d jours"
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  "Poster les brouillons [%%s] ? (%s/%s/%s/%s/%s) : "
 
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	"<TAB>"
-
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	"TeX "
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  "%s sélectionné"
 
-#: src/lang.c:697
-msgid	"# Default action/prompt strings\n"
-msgstr	"# Termes action/prompt par défaut\n"
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  "%s marqué"
 
-#: src/lang.c:698
-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"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	"# Réglages par défaut pour les filtres et filtres d'auto-sélection\n"
-	"# header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & ligne References: "
-	"complète\n"
-	"#             5=Message-ID: & dernière entrée dans References: seulement\n"
-	"#             6=Message-ID: entrée 7=Lines: seulement\n"
-	"# global=ON/OFF  ON=appliquer à tous les groups OFF=appliquer au groupe "
-	"actuel\n"
-	"# 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:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  "%s non marqué"
 
 #: src/lang.c:711
-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"
+msgid   "Processing mail messages marked for deletion."
+msgstr  "Traitement des emails enregistrés marqués pour effacement."
 
 #: src/lang.c:712
-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"
+msgid   "Processing saved articles marked for deletion."
+msgstr  "Traitement des articles enregistrés marqués pour effacement."
 
 #: src/lang.c:713
-msgid	"There is no news\n"
-msgstr	"Rien de neuf\n"
+#, 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:714
-msgid	"Thread"
-msgstr	"Fil"
+msgid   "Article unchanged, abort mailing?"
+msgstr  "Article inchangé, annuler l'envoi ?"
 
 #: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	"Commandes pour fil"
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	"Fil désélectionné"
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  "Voulez-vous voir les brouillons (%d) ?"
 
 #: src/lang.c:717
-msgid	"Thread selected"
-msgstr	"Fil sélectionné"
+msgid   "Add quick kill filter?"
+msgstr  "Ajouter rapidement un filtre ?"
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  "Ajouter rapidement une règle ?"
 
 #: src/lang.c:719
-msgid	"threads"
-msgstr	"fils"
+msgid   "Do you really want to quit?"
+msgstr  "Voulez-vous réellement quitter ?"
+
+#: src/lang.c:720
+#, 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:721
-msgid	"Thread range"
-msgstr	"Champ du fil"
+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:722
-msgid	"thread"
-msgstr	"fil"
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  "%s=quitter, %s=éditer, %s=brouillon : "
 
 #: src/lang.c:723
 #, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"    Fil %4s sur %4s"
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  "%s=quitter, %s=éditer, %s=enregistrer le filtre : "
 
 #: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	"Regroupement des articles..."
-
-#: src/lang.c:725
 #, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	"(Dés)activer surbrillance %s"
-
-#: src/lang.c:726
-msgid	"Toggled rot13 encoding"
-msgstr	"(Dés)activer codage rot13"
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  "%s=quitter %s=éditer %s=enregistrer la règle : "
 
-#: src/lang.c:727
-#, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	"(Dés)activer codage TeX Allemand %s"
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  "Voulez-vous réellement quitter sans enregistrer votre configuration ?"
 
 #: src/lang.c:728
-#, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	"(Dés)activer largeur de tabulation à %d"
-
-#: src/lang.c:729
-#, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	"%d essaye de déverrouiller %s"
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  "Champ invalide - '0-9.$' pe. 1-$ est valide"
 
 #: src/lang.c:730
-#, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%d essaye de verrouiller %s"
+msgid   "Do you want to abort this operation?"
+msgstr  "Voulez-vous annuler cette opération ?"
 
 #: src/lang.c:731
-msgid	"           h=help\n"
-msgstr	"           h=aide\n"
+msgid   "Do you want to exit tin immediately?"
+msgstr  "Voulez-vous quitter tin immédiatement ?"
 
 #: src/lang.c:733
-msgid	"Unlimited"
-msgstr	"Illimitée"
+msgid   "Reading ('q' to quit)..."
+msgstr  "Lecture ('q' pour quitter)..."
 
 #: src/lang.c:734
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	"Terme joker pour se désabonner > "
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  "Lecture de %sarticles..."
 
 #: src/lang.c:735
 #, c-format
-msgid	"Error decoding %s : %s"
-msgstr	"Erreur lors du décodage de %s : %s"
+msgid   "Reading %sattributes file...\n"
+msgstr  "Lecture du fichier %sattributes...\n"
 
 #: src/lang.c:736
-msgid	"No end."
-msgstr	"Pas de fin."
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  "Lecture du fichier %sconfig...\n"
 
 #: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	"%s décodé avec succès."
+msgid   "Reading filter file...\n"
+msgstr  "Lecture du fichier filter...\n"
 
 #: src/lang.c:738
 #, 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"
+msgid   "Reading %s groups..."
+msgstr  "Lecture de %s groupes..."
 
 #: src/lang.c:739
-msgid	"unread "
-msgstr	"non lu"
+msgid   "Reading input history file...\n"
+msgstr  "Lecture du fichier d'historique...\n"
 
 #: src/lang.c:740
-#, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	"désabonné de %d groupes"
+msgid   "Reading keymap file...\n"
+msgstr  "Lecture du fichier keymap...\n"
 
 #: src/lang.c:741
-#, c-format
-msgid	"Unsubscribed from %s"
-msgstr	"Désabonné de %s"
+msgid   "Reading groups from active file... "
+msgstr  "Lecture des groupes depuis le fichier active... "
 
 #: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	"Désabonnement... "
+msgid   "Reading groups from newsrc file... "
+msgstr  "Lecture des groupes depuis le fichier newsrc... "
 
 #: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	"Dégroupement des articles..."
+msgid   "Reading newsgroups file... "
+msgstr  "Lecture du fichier newsgroups... "
 
 #: src/lang.c:744
-msgid	"Updated"
-msgstr	"Mis à jour"
+msgid   "Reading newsrc file..."
+msgstr  "Lecture du fichier newsrc..."
 
 #: src/lang.c:745
-msgid	"Updating"
-msgstr	"Rafraîchissement"
-
-#: src/lang.c:746
-#, c-format
-msgid	"Opening %s\n"
-msgstr	"Ouverture de %s\n"
+msgid   "References: line              "
+msgstr  "l'en-tête 'References:'"
 
 #: src/lang.c:747
-msgid	"No more URL's in this article"
-msgstr	"Plus d'URL dans cet article"
-
-#: src/lang.c:748
-msgid	"Use MIME display program for this message?"
-msgstr	"Utiliser le programme d'affichage MIME pour ce message ?"
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  "(%d:%02d restant)"
 
 #: src/lang.c:749
-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)"
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  "Effacement du groupe corrompu %s."
 
 #: src/lang.c:750
-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)"
+msgid   "Removed from the previous rule: "
+msgstr  "Effacé de la règle précédente : "
 
 #: src/lang.c:751
-msgid	"  -q       don't check for new newsgroups"
-msgstr	"  -q       ne pas vérifier s'il y a des nouveaux groupes"
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "Erreur : renommer %s à %s"
 
 #: src/lang.c:752
-msgid	"  -X       don't save any files on quit"
-msgstr	"  -X       ne pas enregistrer de fichiers à la fermeture"
+msgid   "Reply to author..."
+msgstr  "Répondre à l'auteur..."
 
 #: src/lang.c:753
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	"  -d       ne pas afficher les descriptions des groupes"
+msgid   "Repost"
+msgstr  "Reposter"
 
 #: src/lang.c:754
-msgid	"  -G limit get only limit articles/group"
-msgstr	"  -G nombre d'articles par groupe limite"
+msgid   "Reposting article..."
+msgstr  "Repostage de l'article..."
 
 #: src/lang.c:755
 #, c-format
-msgid	"  -H       help information about %s"
-msgstr	"  -H       aide à propos de %s"
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  "Reposter article(s) dans groupe(s) [%s] > "
 
 #: src/lang.c:756
-msgid	"  -h       this help message"
-msgstr	"  -h       ce message d'aide"
+msgid   "Reset newsrc?"
+msgstr  "Réinitialiser newsrc ?"
 
 #: src/lang.c:757
-#, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	"  -I rép.  répertoire du fichier index [défaut=%s]"
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  "Les réponses ont été redirigées vers les groupes suivants"
 
 #: src/lang.c:758
-msgid	"  -u       update index files (batch mode)"
-msgstr	"  -u       màj des fichiers index (en tâche de fond)"
-
-#: src/lang.c:759
 #, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	"  -m rép.  répertoire des bàl [défaut=%s]"
+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:760
-#, 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
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	"  -N       envoyer toute réponse à vos articles (en tâche de fond)"
+msgid   "Press <RETURN> to continue..."
+msgstr  "Appuyez sur <RETOUR> pour continuer..."
 
 #: src/lang.c:762
-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)"
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  "   De : [%s] (o/n) : "
 
 #: src/lang.c:763
-#, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	"  -f fich. abonné au fichier groupes [défaut=%s]"
+msgid   "Select Lines: (</>num): "
+msgstr  "Nombre de lignes (</>num)    : "
 
 #: src/lang.c:764
-msgid	"  -x       no posting mode"
-msgstr	"  -x       mode postage OFF"
+msgid   "Auto-select Article Menu"
+msgstr  "Créer une règle"
 
 #: src/lang.c:765
-msgid	"  -w       post an article and exit"
-msgstr	"  -w       poster un article puis quitter"
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  "  MID : [%s] (t/d/a/n) : "
 
 #: src/lang.c:766
-msgid	"  -o       post all postponed articles and exit"
-msgstr	"  -o       poster tous les brouillons puis quitter"
+msgid   "Select pattern scope: "
+msgstr  "Règle s'appliquant à : "
 
 #: src/lang.c:767
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	"  -r       lire les articles depuis le serveur NNTP par défaut"
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  "Sujet : [%s] (o/n) : "
 
 #: src/lang.c:768
-msgid	"  -R       read news saved by -S option"
-msgstr	"  -R       lire les articles enregistrés via l'option -S"
+msgid   "Select text pattern : "
+msgstr  "Texte ou terme  : "
 
 #: src/lang.c:769
-#, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	"  -s rép.  répertoire où enregistrer les articles [défaut=%s]"
+msgid   "Select time in days   : "
+msgstr  "Durée de la règle            : "
 
 #: src/lang.c:770
-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
-msgid	"  -z       start if any unread news"
-msgstr	"  -z       lancer si articles non lus"
-
-#: src/lang.c:772
-#, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"Un lecteur UseNet.\n"
-	"Usage : %s [options] [groupe[,...]]"
-
-#: src/lang.c:773
-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
-msgid	"  -V       print version & date information"
-msgstr	"  -V       afficher infos date & version"
-
-#: src/lang.c:775
 #, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	"%s utile seulement sans opérations en tâche de fond\n"
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  "# Fichier de configuration serveur de %s\n"
+        "# Ce fichier a été automatiquement enregistré par %s %s %s (\"%s\")\n"
+        "#\n"
+        "# N'éditez pas ce fichier lorsque %s est ouvert, car tout changement apporté\n"
+        "# sera écrasé lorsque vous quitterez %s.\n"
+        "# Enfin, ne touchez pas à ce fichier si vous ne savez pas quoi y faire.\n"
+        "############################################################################\n"
 
 #: src/lang.c:776
-#, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	"%s utile seulement pour opérations en tâche de fond\n"
+msgid   "Showing unread groups only"
+msgstr  "Afficher uniquement les groupes non lus"
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  "l'en-tête 'Subject:' (ignorer la casse)"
 
 #: src/lang.c:778
-#, c-format
-msgid	"\n"
-	"%s%d out of range (0 - %d). Reset to 0"
-msgstr	"\n"
-	"%s%d expiré (0 - %d). Remis à 0"
+msgid   "Subject: line (case sensitive)"
+msgstr  "l'en-tête 'Subject:' (casse sensible)"
 
 #: src/lang.c:779
+msgid   "Save"
+msgstr  "Enregistrer"
+
+#: src/lang.c:780
 #, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"Vue '%s' (%s/%s) ?"
+msgid   "Save '%s' (%s/%s)?"
+msgstr  "Enregistrer '%s' (%s/%s) ?"
 
 #: src/lang.c:781
-#, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	"\n"
-	"Attention : message excédant %d colonnes. Ligne %d est la première "
-	"dépassant :\n"
-	"%-100s\n"
+msgid   "Save configuration before continuing?"
+msgstr  "Enregistrer la configuration avant de continuer ?"
 
 #: src/lang.c:782
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	"\n"
-	"Attention : article inchangé après son édition\n"
+msgid   "Save filename> "
+msgstr  "Enregistrer sous le nom de fichier > "
 
 #: src/lang.c:783
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	"\n"
-	"Attention : \"Subject:\" contient que des espaces.\n"
+msgid   "Saved"
+msgstr  "Enregistré"
 
 #: src/lang.c:784
-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"
+#, 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:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  "Enregistrement de %s...\n"
 
 #: src/lang.c:786
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	"\n"
-	"Attention : L'article a \"References:\" mais \"Subject:\" ne commence\n"
-	"            avec \"Re: \" et ne contient pas \"(was:\".\n"
+msgid   "Nothing was saved"
+msgstr  "Rien n'a été enregistré"
+
+#: src/lang.c:787
+#, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s de %d %s\n"
+
+#: src/lang.c:788
+#, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s enregistré sous %s%s --"
 
 #: src/lang.c:789
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Lisez ceci attentivement !\n"
-	"\n"
-	"  Vous êtes sur le point d'effacer un article apparemment écrit par vous. "
-	"Cela effacera\n"
-	"  cet article sur la plupart des serveurs UseNet du monde, mais il n'y a "
-	"aucune\n"
-	"  garantie que cela marche.\n"
-	"\n"
-	"Voici l'article que vous vous apprêtez à effacer :\n"
-	"\n"
+#, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s enregistré sous %s - %s --"
+
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  "Enregistrement..."
+
+#: src/lang.c:791
+#, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  "%s : Échec de l'initialisation de l'écran"
 
 #: src/lang.c:793
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	"\n"
-	"Attention : Vous utilisez un encodage non correct (comme base64 ou\n"
-	"            quoted-printable) et un programme inews externe pour poster\n"
-	"            votre article. Si une signature y est ajoutée par cet inews,\n"
-	"            elle ne sera pas encodée correctement.\n"
+#, c-format
+msgid   "%s: screen is too small\n"
+msgstr  "%s : l'écran est trop petit\n"
 
-#: src/lang.c:798
+#: src/lang.c:795
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	"\n"
-	"\n"
-	"Vous passer à tin %s depuis une ancienne version.\n"
-	"Certaines valeurs dans votre fichier %s ont changé !\n"
-	"Lisez le fichier WHATSNEW, etc...\n"
+msgid   "screen is too small, %s is exiting\n"
+msgstr  "l'écran est trop petit, %s quitte\n"
+
+#: src/lang.c:796
+msgid   "Delete scope?"
+msgstr  "Effacer la sélection ?"
+
+#: src/lang.c:797
+msgid   "Enter scope> "
+msgstr  "Entrez la sélection >"
+
+#: src/lang.c:798
+msgid   "Select new position> "
+msgstr  "Sélection de la nouvelle position >"
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  "Nouvelle position ne peut être une sélection globale"
 
 #: src/lang.c:800
-#, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	"\n"
-	"\n"
-	"Vous repassez à tin %s depuis une version plus récente !\n"
-	"Certaines valeurs dans votre fichier %s peuvent être ignorées, d'autres\n"
-	"ont peut-être changées !\n"
+msgid   "Global scope, operation not allowed"
+msgstr  "Opération interdite, sélection globale"
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  "Renommer la sélection"
+
+#: src/lang.c:802
+msgid   "Select scope> "
+msgstr  "Sélectionner le groupe > "
 
 #: src/lang.c:803
+msgid   "Scopes Menu"
+msgstr  "Menu Options"
+
+#: src/lang.c:804
+msgid   "Scopes Menu Commands"
+msgstr  "Menu de sélection"
+
+#: src/lang.c:805
+#, c-format
+msgid   "Search backwards [%s]> "
+msgstr  "Recherche arrière [%s] > "
+
+#: src/lang.c:806
 #, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	"Attention : tin a modifié quelque groupes dans votre\n"
-	"\t%s\n"
-	"qui est lu au lancement. Si vous ne vous êtes pas désabonné de %ld %s\n"
-	"lors de cette session, cela indique une erreur et vous devriez sauvegarder\n"
-	"votre %s avant de relancer tin !\n"
+msgid   "Search body [%s]> "
+msgstr  "Rechercher dans le corps [%s] > "
 
 #: src/lang.c:807
 #, 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"
+msgid   "Search forwards [%s]> "
+msgstr  "Recherche avant [%s] > "
 
 #: src/lang.c:808
-#, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	"Attention : Seul %d sur %d articles ont été enregistrés"
+msgid   "Searching..."
+msgstr  "Recherche..."
 
 #: src/lang.c:809
 #, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	"\n"
-	"Attention : Votre signature est longue de plus de %d lignes. Comme les "
-	"signatures\n"
-	"            ne contiennent aucune information pertinente, elles se doivent "
-	"d'être\n"
-	"            le plus court possible.\n"
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  "Recherche article %d sur %d ('q' pour annuler)..."
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  "Sélectionner l'article > "
+
+#: src/lang.c:811
+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:812
+msgid   "Select group> "
+msgstr  "Sélectionner le groupe > "
 
 #: src/lang.c:813
 #, 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 ?"
+msgid   "Enter selection pattern [%s]> "
+msgstr  "Entrez le critère de sélection [%s] > "
 
 #: src/lang.c:814
-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"
+msgid   "Select thread > "
+msgstr  "Sélectionner le fil > "
 
 #: src/lang.c:815
-msgid	"Writing attributes file..."
-msgstr	"Écriture du fichier attributes..."
+#, 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 bogue DÉTAILLÉ à %s\n"
+
+#: src/lang.c:816
+msgid   "servers active-file"
+msgstr  "fichier active des serveurs"
 
 #: src/lang.c:817
-#, c-format
-msgid	"%d Responses"
-msgstr	"%d Réponses"
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  "Déplacement dans nouveaux groupes impossible. Abonnez-vous d'abord..."
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  "<ESPACE>"
 
 #: src/lang.c:819
 #, c-format
-msgid	"Added %d %s"
-msgstr	"%d %s ajouté(s)"
+msgid   "Starting: (%s)"
+msgstr  "Démarrage : (%s)"
 
 #: src/lang.c:820
-msgid	"No unsubscribed groups to show"
-msgstr	"Aucuns groupes non abonnés à afficher"
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  "Visualisation du fil (%d sur %d)"
 
 #: src/lang.c:821
-msgid	"Showing subscribed to groups only"
-msgstr	"Afficher uniquement les groupes abonnés"
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  "Fil (%.*s)"
 
 #: src/lang.c:822
-msgid	"Yes "
-msgstr	"Oui "
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  "Entrer un caractère joker comme critère > "
 
 #: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	"    Nouveau mail\n"
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  "Abonné à %d groupes"
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  "Abonné à %s"
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  "Abonnement... "
+
+#: src/lang.c:826
+#, 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:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  "Remplacer le(s) article(s) du(es) groupe(s) [%s] > "
 
 #: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  "Remplacement de l'article..."
+
+#: src/lang.c:829
 #, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	"\n"
-	"Attention : Votre article est en %s et contient des caractères qui ne\n"
-	"            sont pas dans votre MM_NETWORK_CHARSET: %s.\n"
-	"            Ces caractères seront remplacés par '?' si vous laissez cet\n"
-	"            article inchangé. Pour éviter de réduire en bouillie votre\n"
-	"            article, soit éditez-le, soit enlevez les caractères posant\n"
-	"            problème, ou bien changer la valeur de MM_NETWORK_CHARSET\n"
-	"            via le M)enu.\n"
-
-#: src/lang.c:839
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"  -D       mode debug 1=NNTP 2=TOUS"
-
-#: src/lang.c:843
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Lisez ceci attentivement !\n"
-	"\n"
-	"  Vous vous apprêtez à effacer un article qui fut apparemment écrit par vous. "
-	"Cela\n"
-	"  effacera l'article sur de nombreux serveurs UseNet répartis sur el globe;\n"
-	"  La mojorité d'UseNet considère cela comme inapproprié, pour ne pas dire "
-	"complètement.\n"
-	"  Appuyez sur 'd' si vous vous sentez apte à subir les conséquences de ce\n"
-	"geste.\n"
-	"\n"
-	"Voici l'article que vous vous apprêtez a effacer :\n"
-	"\n"
+msgid   "\n"
+        "Stopped. Type 'fg' to restart %s\n"
+msgstr  "\n"
+        "Arrêté. Tapez 'fg' pour relancer %s\n"
+
+#: src/lang.c:831
+#, c-format
+msgid   "%d days"
+msgstr  "%d jours"
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  "<TAB>"
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  "TeX "
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  "# Termes action/prompt par défaut\n"
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  "# Réglages par défaut pour les filtres et filtres d'auto-sélection\n"
+        "# header=NUM  0,1=Subject: 2,3=From: 4=Message-ID: & ligne References: "
+        "complète\n"
+        "#             5=Message-ID: & dernière entrée dans References: seulement\n"
+        "#             6=Message-ID: entrée 7=Lines: seulement\n"
+        "# global=ON/OFF  ON=appliquer à tous les groups OFF=appliquer au groupe "
+        "actuel\n"
+        "# 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:848
+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:849
+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:850
+msgid   "There is no news\n"
+msgstr  "Rien de neuf\n"
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  "Fil"
 
 #: src/lang.c:852
-msgid	"toggle color"
-msgstr	"(dés)activer la couleur"
+msgid   "Thread Level Commands"
+msgstr  "Commandes pour fil"
 
 #: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	"# Changer la couleur de plusieurs parties de l'écran\n"
-	"# Les valeurs possibles sont :\n"
-	"#  -1 = défaut (blanc pour l'avant-plan et noir pour l'arrière-plan)\n"
-	"#   0 = noir\n"
-	"#   1 = rouge\n"
-	"#   2 = vert\n"
-	"#   3 = marron\n"
-	"#   4 = bleu\n"
-	"#   5 = rose\n"
-	"#   6 = cyan\n"
-	"#   7 = blanc\n"
-	"# Les valeurs suivantes ne sont *que* pour l'avant-plan :\n"
-	"#   8 = gris\n"
-	"#   9 = rouge gras\n"
-	"#  10 = vert gras\n"
-	"#  11 = jaune\n"
-	"#  12 = bleu grasn#  13 = rose gras\n"
-	"#  14 = cyan gras\n"
-	"#  15 = blanc gras\n"
-	"\n"
+msgid   "Thread deselected"
+msgstr  "Fil désélectionné"
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  "Fil sélectionné"
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  "fils"
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  "fil"
+
+#: src/lang.c:859
+#, c-format
+msgid   "Thread %4s of %4s"
+msgstr  "    Fil %4s sur %4s"
+
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  "Regroupement des articles..."
+
+#: src/lang.c:861
+#, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  "(Dés)activer surbrillance %s"
+
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  "(Dés)activer codage rot13"
+
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  "(Dés)activer codage TeX Allemand %s"
+
+#: src/lang.c:864
+#, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  "(Dés)activer largeur de tabulation à %d"
+
+#: src/lang.c:866
+#, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  "%d essaye de déverrouiller %s"
+
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  "%d essaye de verrouiller %s"
+
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  "           h=aide"
+
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  "Illimitée"
+
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  "Terme joker pour se désabonner > "
 
 #: src/lang.c:873
-msgid	"  -a       toggle color flag"
-msgstr	"  -a       change la couleur"
+#, c-format
+msgid   "Error decoding %s : %s"
+msgstr  "Erreur lors du décodage de %s : %s"
+
+#: src/lang.c:874
+msgid   "No end."
+msgstr  "Pas de fin."
+
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s décodé avec succès."
+
+#: src/lang.c:876
+#, 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:877
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"Erreur : Suivi positionné sur plus d'un groupe !\n"
+msgid   "unread "
+msgstr  "non lu"
 
 #: src/lang.c:878
 #, 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"
+msgid   "unsubscribed from %d groups"
+msgstr  "désabonné de %d groupes"
 
 #: src/lang.c:879
 #, c-format
-msgid	"\n"
-	"Error: \"%s\" is not a valid newsgroup!\n"
-msgstr	"\n"
-	"Erreur : \"%s\" n'est pas un groupe valide !\n"
+msgid   "Unsubscribed from %s"
+msgstr  "Désabonné de %s"
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  "Désabonnement... "
 
 #: src/lang.c:881
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"Attention : Suivi positionné sur plus d'un groupe !\n"
+msgid   "Unthreading articles..."
+msgstr  "Dégroupement des articles..."
 
 #: src/lang.c:882
-#, 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
-#, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
-msgstr	"\n"
-	"Attention : \"%s\" n'est pas dans votre newsrc, votre article peut ne\n"
-	"            pas apparaître dans ce groupe !\n"
-	"\n"
+msgid   "Updated"
+msgstr  "Mis à jour"
 
 #: src/lang.c:884
 #, 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"
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  "ligne \"LIST COUNTS\" intraitable : \"%s\""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  "Mise à jour"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  "Menu URL"
 
 #: src/lang.c:888
-#, 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."
+msgid   "URL Menu Commands"
+msgstr  "Menu URL"
 
 #: src/lang.c:889
-msgid	"Missing parts."
-msgstr	"Parties manquantes."
+#, c-format
+msgid   "Opening %s"
+msgstr  "Ouverture de %s"
 
 #: src/lang.c:890
-msgid	"No beginning."
-msgstr	"Pas de début."
+msgid   "Select URL> "
+msgstr  "Sélectionner l'URL >"
 
 #: src/lang.c:891
-msgid	"No data."
-msgstr	"Pas de données."
+msgid   "No URLs in this article"
+msgstr  "Plus d'URL dans cet article"
 
 #: src/lang.c:892
-msgid	"Unknown error."
-msgstr	"Erreur inconnue."
+msgid   "Use MIME display program for this message?"
+msgstr  "Utiliser le programme d'affichage MIME pour ce message ?"
+
+#: src/lang.c:893
+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:894
+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:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  "  -q       ne pas vérifier s'il y a des nouveaux groupes"
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  "  -X       ne pas enregistrer de fichiers à la fermeture"
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  "  -d       ne pas afficher les descriptions des groupes"
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  "  -G nombre d'articles par groupe limite"
+
+#: src/lang.c:899
 #, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"\tSomme de contrôle de %s (%ld %s)"
+msgid   "  -H       help information about %s"
+msgstr  "  -H       aide à propos de %s"
 
 #: src/lang.c:900
-msgid	"Reading mail active file... "
-msgstr	"Lecture du fichier active mail... "
+msgid   "  -h       this help message"
+msgstr  "  -h       ce message d'aide"
 
 #: src/lang.c:901
-msgid	"Reading mailgroups file... "
-msgstr	"Lecture du fichier mailgroups... "
+#, 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:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  "  -u       màj des fichiers index (en tâche de fond)"
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  "  -m rép.  répertoire des bàl [défaut=%s]"
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "Envoyez par mail vos rapports de bogues/suggestions à %s"
 
 #: src/lang.c:905
-msgid	"perform PGP operations on article"
-msgstr	"effectuer des opérations PGP sur l'article"
+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:906
-msgid	"Add key(s) to public keyring?"
-msgstr	"Ajouter les clé(s) au cercle public ?"
+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:907
 #, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	"%s=encoder, %s=signer, %s=les deux, %s=quitter : "
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  "  -f fich. abonné au fichier groupes [défaut=%s]"
 
 #: src/lang.c:908
-#, c-format
-msgid	"%s=sign, %s=sign & include public key, %s=quit: "
-msgstr	"%s=signer, %s=sig. & inclure clé publique, %s=quitter : "
+msgid   "  -x       no posting mode"
+msgstr  "  -x       mode postage OFF"
 
 #: src/lang.c:909
-#, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	"PGP n'a pas été configuré (ouverture de %s impossible)"
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       poster un article puis quitter"
 
 #: src/lang.c:910
-msgid	"Article not signed and no public keys found"
-msgstr	"Article non signé et pas de clés publiques trouvées"
+msgid   "  -o       post all postponed articles and exit"
+msgstr  "  -o       poster tous les brouillons puis quitter"
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  "  -R       lire les articles enregistrés via l'option -S"
 
 #: src/lang.c:912
 #, 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 : "
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  "  -s rép.  répertoire où enregistrer les articles [défaut=%s]"
 
 #: src/lang.c:913
-#, 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] : "
+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:914
+msgid   "  -z       start if any unread news"
+msgstr  "  -z       lancer si articles non lus"
+
+#: src/lang.c:915
 #, 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]: "
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  "Un lecteur UseNet.\n"
+        "Usage : %s [options] [groupe[,...]]"
 
 #: src/lang.c:916
-#, 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 : "
+msgid   "  -v       verbose output for batch mode options"
+msgstr  "  -v       sortie détaillée pour options en tâche de fond"
 
 #: src/lang.c:917
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=quitter, %s=éditer, %s=pgp, %s=envoyer [%%s] : "
+msgid   "  -V       print version & date information"
+msgstr  "  -V       afficher infos date & version"
 
 #: src/lang.c:918
 #, 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] : "
+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:919
+#, 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:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  "Combinaison %s et %s inutile. %s ignorée.\n"
 
 #: src/lang.c:922
 #, 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 : "
+msgid   "\n"
+        "%s%d out of range (0 - %d). Reset to 0"
+msgstr  "\n"
+        "%s%d expiré (0 - %d). Remis à 0"
 
 #: src/lang.c:923
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	"%s=quitter, %s=éditer, %s=ispell, %s=envoyer [%%s] : "
+msgid   "View '%s' (%s/%s)?"
+msgstr  "Voir '%s' (%s/%s) ?"
 
-#: src/lang.c:924
+#: src/lang.c:925
 #, 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] : "
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  "\n"
+        "Attention : message excédant %d colonnes. Ligne %d est la première "
+        "dépassant :\n"
+        "%-100s\n"
 
 #: src/lang.c:926
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
-msgstr	"%s=quitter, %s=éditer, %s=menu, %s=poster, %s=brouillon : "
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  "\n"
+        "Attention : article inchangé après son édition\n"
 
 #: src/lang.c:927
-#, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	"%s=quitter, %s=éditer, %s=envoyer [%%s] : "
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  "\n"
+        "Attention : \"Subject:\" contient que des espaces.\n"
 
 #: src/lang.c:928
-#, 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]: "
+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:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  "\n"
+        "Attention : L'article a \"References:\" mais \"Subject:\" ne commence\n"
+        "            avec \"Re: \" et ne contient pas \"(was:\".\n"
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Lisez ceci attentivement !\n"
+        "\n"
+        "  Vous êtes sur le point d'effacer un article apparemment écrit par vous. "
+        "Cela effacera\n"
+        "  cet article sur la plupart des serveurs UseNet du monde, mais il n'y a "
+        "aucune\n"
+        "  garantie que cela marche.\n"
+        "\n"
+        "Voici l'article que vous vous apprêtez à effacer :\n"
+        "\n"
 
 #: src/lang.c:937
-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
-msgid	"Tin will use local index files instead.\n"
-msgstr	"Tin utilisera à la place un index local.\n"
-
-#: src/lang.c:939
-msgid	"Cannot find NNTP server name"
-msgstr	"Nom du serveur NNTP introuvable"
-
-#: src/lang.c:940
-#, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"Connexion à %s:%d..."
-
-#: src/lang.c:941
-msgid	"Disconnecting from server...\n"
-msgstr	"Déconnexion du serveur...\n"
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  "\n"
+        "Attention : Vous utilisez un encodage non correct (comme base64 ou\n"
+        "            quoted-printable) et un programme inews externe pour poster\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:942
-#, 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"
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  "\n"
+        "Attention : \"exemple\" est une hiérarchie réservée !\n"
 
 #: src/lang.c:943
 #, 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
-msgid	"205  Closing connection"
-msgstr	"205  Fermeture de la connexion"
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  "\n"
+        "\n"
+        "Vous passer à tin %s depuis une ancienne version.\n"
+        "Certaines valeurs dans votre fichier %s ont changé !\n"
+        "Lisez le fichier WHATSNEW, etc...\n"
 
 #: src/lang.c:945
-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
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	"Connexion au serveur de nouvelles expirée. Se reconnecter ?"
-
-#: src/lang.c:947
-#, 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
-msgid	"  -A       force authentication on connect"
-msgstr	"  -A       force l'authentication à la connexion"
-
-#: src/lang.c:949
 #, 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]"
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  "\n"
+        "\n"
+        "Vous repassez à tin %s depuis une version plus récente !\n"
+        "Certaines valeurs dans votre fichier %s peuvent être ignorées, d'autres\n"
+        "ont peut-être changées !\n"
 
-#: src/lang.c:950
+#: src/lang.c:948
 #, 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
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"  -Q       démarrage rapide. Idem que -npd"
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  "Attention : tin a modifié quelques groupes dans votre\n"
+        "\t%s\n"
+        "qui est lu au lancement. Si vous ne vous êtes pas désabonné de %ld %s\n"
+        "lors de cette session, cela indique une erreur et vous devriez sauvegarder\n"
+        "votre %s avant de relancer tin !\n"
 
 #: src/lang.c:952
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	"  -l       utilise seulement LIST plutôt que GROUP (-n)"
+#, 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:953
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	"  -n       lire seulement groupes abonnés du .newsrc depuis le serveur NNTP"
+#, 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:955
+#: src/lang.c:954
 #, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/tcp : Service inconnu.\n"
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  "\n"
+        "Attention : Votre signature est longue de plus de %d lignes. Comme les "
+        "signatures\n"
+        "            ne contiennent aucune information pertinente, elles se doivent "
+        "d'être\n"
+        "            le plus court possible.\n"
 
 #: src/lang.c:958
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	"\n"
-	"problème de socket ou de connexion\n"
+#, 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:959
+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:960
+msgid   "Writing attributes file..."
+msgstr  "Écriture du fichier attributes..."
+
+#: src/lang.c:962
 #, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"\n"
-	"Connexion à %s : "
-
-#: src/lang.c:961
-msgid	"Giving up...\n"
-msgstr	"Abandon...\n"
+msgid   "%d Responses"
+msgstr  "%d Réponses"
 
 #: src/lang.c:964
-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"
+#, c-format
+msgid   "Added %d %s"
+msgstr  "%d %s ajouté(s)"
+
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  "Aucuns groupes non abonnés à afficher"
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  "Afficher uniquement les groupes abonnés"
 
 #: src/lang.c:967
-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"
+msgid   "Yes "
+msgstr  "Oui "
 
-#: src/lang.c:970
-#, 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:968
+msgid   "    You have mail"
+msgstr  "     Nouveau mail"
 
 #: src/lang.c:973
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"  -Q       démarrage rapide. Idem que -qd"
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  "\n"
+        "Attention : Votre article est en %s et contient des caractères qui ne\n"
+        "            sont pas dans votre MM_NETWORK_CHARSET: %s.\n"
+        "            Ces caractères seront remplacés par '?' si vous laissez cet\n"
+        "            article inchangé. Pour éviter de réduire en bouillie votre\n"
+        "            article, soit éditez-le, soit enlevez les caractères posant\n"
+        "            problème, ou bien changer la valeur de MM_NETWORK_CHARSET\n"
+        "            via le M)enu.\n"
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  "  -D mode  mode debug"
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Lisez ceci attentivement !\n"
+        "\n"
+        "  Vous vous apprêtez à effacer un article qui fut apparemment écrit par vous. "
+        "Cela\n"
+        "  effacera l'article sur de nombreux serveurs UseNet répartis sur el globe;\n"
+        "  La mojorité d'UseNet considère cela comme inapproprié, pour ne pas dire "
+        "complètement.\n"
+        "  Appuyez sur 'd' si vous vous sentez apte à subir les conséquences de ce\n"
+        "geste.\n"
+        "\n"
+        "Voici l'article que vous vous apprêtez a effacer :\n"
+        "\n"
 
-#: src/lang.c:974
-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:997
+msgid   "toggle color"
+msgstr  "(dés)activer la couleur"
 
-#: src/lang.c:975
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	"  -n       lire seulement groupes abonnés du .newsrc depuis le spool"
+#: src/lang.c:998
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  "# Changer la couleur de plusieurs parties de l'écran\n"
+        "# Les valeurs possibles sont :\n"
+        "#  -1 = défaut (blanc pour l'avant-plan et noir pour l'arrière-plan)\n"
+        "#   0 = noir\n"
+        "#   1 = rouge\n"
+        "#   2 = vert\n"
+        "#   3 = marron\n"
+        "#   4 = bleu\n"
+        "#   5 = rose\n"
+        "#   6 = cyan\n"
+        "#   7 = blanc\n"
+        "# Les valeurs suivantes ne sont *que* pour l'avant-plan :\n"
+        "#   8 = gris\n"
+        "#   9 = rouge gras\n"
+        "#  10 = vert gras\n"
+        "#  11 = jaune\n"
+        "#  12 = bleu gras\n"
+        "#  13 = rose gras\n"
+        "#  14 = cyan gras\n"
+        "#  15 = blanc gras\n"
+        "\n"
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  "  -a       change la couleur"
+
+#: src/lang.c:1022
+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:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  "\n"
+        "Erreur : \"%s\" est renommé, utilisez à la place \"%s\" !\n"
+
+#: src/lang.c:1024
+#, 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:976
-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:1025
+#, 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:1027
+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:1028
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  "\n"
+        "Attention : \"%s\" est renommé, vous devriez utiliser \"%s\" à la place !\n"
+
+#: src/lang.c:1029
+#, 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:1030
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
+msgstr  "\n"
+        "Attention : \"%s\" n'est pas dans votre newsrc, votre article peut ne\n"
+        "            pas apparaître dans ce groupe !\n"
+        "\n"
+
+#: src/lang.c:1031
+#, 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:1035
+#, 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:1036
+msgid   "Missing parts."
+msgstr  "Parties manquantes."
+
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  "Pas de début."
 
-#: src/lang.c:980
-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:1038
+msgid   "No data."
+msgstr  "Pas de données."
 
-#: src/lang.c:981
-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:1039
+msgid   "Unknown error."
+msgstr  "Erreur inconnue."
 
-#: src/lang.c:989
+#: src/lang.c:1042
 #, c-format
-msgid	"%d %s printed"
-msgstr	"%d %s imprimé"
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  "\tSomme de contrôle de %s (%ld %s)"
 
-#: 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:1047
+msgid   "Reading mail active file... "
+msgstr  "Lecture du fichier active mail... "
 
-#: src/lang.c:991
-msgid	"Print"
-msgstr	"Imprimer"
-
-#: src/lang.c:992
-msgid	"Printing..."
-msgstr	"Impression..."
+#: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  "Lecture du fichier mailgroups... "
 
-#: 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:1052
+msgid   "perform PGP operations on article"
+msgstr  "effectuer des opérations PGP sur l'article"
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  "Ajouter les clé(s) au cercle public ?"
 
-#: src/lang.c:997
-msgid	"No command"
-msgstr	"Aucune commande"
+#: src/lang.c:1054
+#, c-format
+msgid   "%s=encrypt, %s=sign, %s=both, %s=quit: "
+msgstr  "%s=encoder, %s=signer, %s=les deux, %s=quitter : "
 
-#: src/lang.c:998
-msgid	"Pipe"
-msgstr	"Passer (pipe)"
+#: src/lang.c:1055
+#, 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:999
+#: src/lang.c:1056
 #, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Passer à la commande [%.*s] > "
+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:1000
-msgid	"Piping..."
-msgstr	"Passage..."
-
-#: src/lang.c:1002
-msgid	"Piping not enabled."
-msgstr	"Passage non activé."
-
-#: src/lang.c:1006
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	"\n"
-	"Erreur : La ligne \"%s:\" contient des espaces qui DOIVENT être retirés.\n"
-	"         Le seul espace autorisé est celui séparant le séparateur (:)\n"
-	"         du contenu. Utilisez une virgule (,) pour séparer de multiples\n"
-	"         noms de groupes.\n"
-
-#: src/lang.c:1011
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Erreur : La ligne \"%s:\" n'est pas discontinue dans la ligne suivante.\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:1016
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Attention : La ligne \"%s:\" continue sur la ligne suivante.\n"
-	"            C'est une nouvelle fonctionnalité et peut ne pas être\n"
-	"            acceptée par tous les serveurs.\n"
-	"            Pour éviter les problèmes, indiquez tous les groupes sur une\n"
-	"            seule ligne.\n"
-
-#: src/lang.c:1020
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
-msgstr	"\n"
-	"Attention : La ligne \"%s:\" contient un ou des espaces qui DOIVENT\n"
-	"            être enlevés.\n"
+#: src/lang.c:1057
+msgid   "Article not signed and no public keys found"
+msgstr  "Article non signé et pas de clés publiques trouvées"
 
-#: src/lang.c:1025
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	"\n"
-	"  Si votre article contient du texte cité prenez s'il vous plaît un peu de "
-	"temps pour le nettoyer\n"
-	"  afin de répondre en dessous du texte cité, ou bien les personnes penseront "
-	"que vous êtes un peu bête !\n"
-	"  La plupart des gens ont la bonne idée d'effacer les parties inutiles du "
-	"texte cité.\n"
-	"  Formattez votre article afin qu'aucune ligne ne dépasse 80 caractères, afin "
-	"de respecter les usages (72 est un bon choix car il vous permet d'éviter\n"
-	"  d'excéder la limite). Si vos lignes sont trop longues, elles seront coupées "
-	"de façons aléatoires\n"
-	"  rendant la lecture difficile voir impossible. Si vous ne respectez pas ces "
-	"simples\n"
-	"  règles, pratiquement toutes les personnes ignoreront vos articles.\n"
+#: src/lang.c:1059
+#, 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:1038
-msgid	"shell escape"
-msgstr	"accéder à un shell"
+#: src/lang.c:1060
+#, 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:1039
+#: src/lang.c:1061
 #, c-format
-msgid	"Shell Command (%s)"
-msgstr	"Commande shell (%s)"
+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:1040
+#: src/lang.c:1063
 #, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"Commande shell [%s] > "
+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:1044
+#: src/lang.c:1064
 #, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	"%s : Entrée pour TERM introuvable\n"
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  "%s=quitter, %s=éditer, %s=pgp, %s=envoyer [%%s] : "
 
-#: src/lang.c:1048
+#: src/lang.c:1065
 #, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"Groupe %.*s ('q' pour quitter)..."
+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:1050
+#: src/lang.c:1069
 #, c-format
-msgid	"Group %.*s..."
-msgstr	"Groupe %.*s..."
+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:1054
-msgid	"Server unavailable\n"
-msgstr	"Service indisponible\n"
+#: src/lang.c:1070
+#, 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:1060
+#: src/lang.c:1071
 #, 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"
+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:1061
+#: src/lang.c:1073
 #, 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"
+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:1063
+#: src/lang.c:1074
 #, 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"
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  "%s=quitter, %s=éditer, %s=envoyer [%%s] : "
 
-#: src/lang.c:1064
+#: src/lang.c:1075
 #, 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: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"
+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:1069
+#: src/lang.c:1084
+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:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  "Tin utilisera à la place un index local.\n"
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  "Nom du serveur NNTP introuvable"
+
+#: src/lang.c:1087
 #, 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"
+msgid   "Connecting to %s:%u..."
+msgstr  "Connexion à %s:%u..."
 
-#: src/lang.c:1071
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  "Déconnexion du serveur...\n"
+
+#: src/lang.c:1089
 #, 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"
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  "Nom de groupe erroné (\"%s\") dans la réponse de la commande \"GROUP%s\" : \"%"
+        "s\""
 
-#: src/lang.c:1072
+#: src/lang.c:1090
 #, 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"
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  "Échec de la connexion au serveur NNTP %s. Fermeture..."
+
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  "205  Fermeture de la connexion"
 
-#: src/lang.c:1078
-msgid	"Terminal does not support color"
-msgstr	"Le terminal ne supporte pas les couleurs"
+#: src/lang.c:1092
+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:1083
+#: src/lang.c:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  "Connexion au serveur de nouvelles expirée. Se reconnecter ?"
+
+#: src/lang.c:1094
 #, c-format
-msgid	"Trying %s"
-msgstr	"Essai %s"
+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:1095
+msgid   "  -A       force authentication on connect"
+msgstr  "  -A       force l'authentication à la connexion"
 
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	"Aucun"
+#: src/lang.c:1096
+#, 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:1097
+#, 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:1098
-msgid	"Subject"
-msgstr	"Sujet"
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  "  -Q       démarrage rapide. Idem que -npd"
 
 #: src/lang.c:1099
-msgid	"References"
-msgstr	"Références"
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  "  -r       lire les articles depuis le serveur NNTP par défaut"
 
 #: src/lang.c:1100
-msgid	"Both Subject and References"
-msgstr	"Sujet et Références"
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  "  -l       utilise seulement LIST plutôt que GROUP (-n)"
 
 #: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	"Sujet multiparties"
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  "  -n       lire seulement groupes abonnés du .newsrc depuis le serveur NNTP"
 
-# TRANSLATION MISSING
-#: src/lang.c:1102
-msgid	"Percentage Match"
-msgstr	""
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	"Non"
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	"Oui"
-
-#: src/lang.c:1116
-msgid	"Hide All"
-msgstr	"Tout masquer"
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  "\n"
+        "problème de socket ou de connexion\n"
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "Connexion à %s : "
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  "Abandon...\n"
+
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp : Service inconnu.\n"
+
+#: src/lang.c:1114
+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:1117
+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:1120
+#, 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:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  "  -Q       démarrage rapide. Idem que -qd"
 
 #: src/lang.c:1124
-msgid	"Address"
-msgstr	"Adresse"
+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:1125
-msgid	"Full Name"
-msgstr	"Nom complet"
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  "  -n       lire seulement groupes abonnés du .newsrc depuis le spool"
 
 #: src/lang.c:1126
-msgid	"Address and Name"
-msgstr	"Adresse et Nom"
+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:1133
-msgid	"Max"
-msgstr	"Max"
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	"Addition"
+#: src/lang.c:1130
+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:1131
+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:1135
-msgid	"Average"
-msgstr	"Moyenne"
+#, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s imprimé"
 
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	"Lignes"
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	"Score"
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  "envoyer article/fil/sél./articles marqués à l'imprimante"
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  "Imprimer"
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  "Impression..."
 
 #: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	"Lignes & Score"
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  "passer article/fil/sél./articles marqués à une commande"
 
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	"Noir"
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  "Aucune commande"
 
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	"Rouge"
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  "Passer (pipe)"
 
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	"Vert"
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	"Marron"
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	"Bleu"
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	"Rose"
+#: src/lang.c:1145
+#, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  "Passer à la commande [%.*s] > "
 
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	"Cyan"
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  "Passage..."
 
-#: src/lang.c:1158
-msgid	"White"
-msgstr	"Blanc"
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"Gris"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	"Rouge gras"
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	"Vert gras"
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  "Passage non activé."
 
-#: src/lang.c:1162
-msgid	"Yellow"
-msgstr	"Jaune"
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  "\n"
+        "Erreur : La ligne \"%s:\" contient des espaces qui DOIVENT être retirés.\n"
+        "         Le seul espace autorisé est celui séparant le séparateur (:)\n"
+        "         du contenu. Utilisez une virgule (,) pour séparer de multiples\n"
+        "         noms de groupes.\n"
 
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	"Bleu gras"
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	"Rose gras"
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	"Cyan gras"
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Erreur : La ligne \"%s:\" n'est pas discontinue dans la ligne suivante.\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:1166
-msgid	"Light White"
-msgstr	"Blanc gras"
+#: src/lang.c:1162
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Attention : La ligne \"%s:\" continue sur la ligne suivante.\n"
+        "            C'est une nouvelle fonctionnalité et peut ne pas être\n"
+        "            acceptée par tous les serveurs.\n"
+        "            Pour éviter les problèmes, indiquez tous les groupes sur une\n"
+        "            seule ligne.\n"
 
-#: src/lang.c:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	"Rien"
-
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	"Marque"
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	"Espace"
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	"Normal"
+#: src/lang.c:1166
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
+msgstr  "\n"
+        "Attention : La ligne \"%s:\" contient un ou des espaces qui DOIVENT\n"
+        "            être enlevés.\n"
+
+#: src/lang.c:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  "\n"
+        "  Si votre article contient du texte cité prenez s'il vous plaît un peu de "
+        "temps pour le nettoyer\n"
+        "  afin de répondre en dessous du texte cité, ou bien les personnes penseront "
+        "que vous êtes un peu bête !\n"
+        "  La plupart des gens ont la bonne idée d'effacer les parties inutiles du "
+        "texte cité.\n"
+        "  Formattez votre article afin qu'aucune ligne ne dépasse 80 caractères, afin "
+        "de respecter les usages (72 est un bon choix car il vous permet d'éviter\n"
+        "  d'excéder la limite). Si vos lignes sont trop longues, elles seront coupées "
+        "de façons aléatoires\n"
+        "  rendant la lecture difficile voir impossible. Si vous ne respectez pas ces "
+        "simples\n"
+        "  règles, pratiquement toutes les personnes ignoreront vos articles.\n"
 
 #: src/lang.c:1184
-msgid	"Best highlighting"
-msgstr	"Meilleure surbrillance"
+msgid   "shell escape"
+msgstr  "accéder à un shell"
 
 #: src/lang.c:1185
-msgid	"Underline"
-msgstr	"Souligné"
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  "Commande shell (%s)"
 
 #: src/lang.c:1186
-msgid	"Reverse video"
-msgstr	"Vidéo inversée"
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "Commande shell [%s] > "
 
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	"Clignotement"
-
-#: src/lang.c:1188
-msgid	"Half bright"
-msgstr	"Moins lumineux"
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	"Gras"
+#: src/lang.c:1190
+#, c-format
+msgid   "%s: Can't get entry for TERM\n"
+msgstr  "%s : Entrée pour TERM introuvable\n"
 
 #: src/lang.c:1194
-msgid	"none"
-msgstr	"aucun"
-
-#: src/lang.c:1195
-msgid	"commands"
-msgstr	"commandes"
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "Groupe %.*s ('q' pour quitter)..."
 
 #: src/lang.c:1196
-msgid	"select"
-msgstr	"sélection"
-
-#: src/lang.c:1198
-msgid	"commands & quit"
-msgstr	"commandes & quitter"
-
-#: src/lang.c:1199
-msgid	"commands & select"
-msgstr	"commandes & sélection"
+#, c-format
+msgid   "Group %.*s..."
+msgstr  "Groupe %.*s..."
 
 #: src/lang.c:1200
-msgid	"quit & select"
-msgstr	"quitter & sélection"
+msgid   "Server unavailable\n"
+msgstr  "Service indisponible\n"
 
-#: src/lang.c:1201
-msgid	"commands & quit & select"
-msgstr	"commandes, quitter & sélection"
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	"Archive shell"
-
-#: src/lang.c:1232
-msgid	"Subject: (descending)"
-msgstr	"Subject : (descendant)"
-
-#: src/lang.c:1233
-msgid	"Subject: (ascending)"
-msgstr	"Subject : (ascendant)"
-
-#: src/lang.c:1234
-msgid	"From: (descending)"
-msgstr	"From: (descendant)"
-
-#: src/lang.c:1235
-msgid	"From: (ascending)"
-msgstr	"From: (ascendant)"
-
-#: src/lang.c:1236
-msgid	"Date: (descending)"
-msgstr	"Date: (descendant)"
-
-#: src/lang.c:1237
-msgid	"Date: (ascending)"
-msgstr	"Date: (ascendant)"
-
-#: src/lang.c:1238 src/lang.c:1246
-msgid	"Score (descending)"
-msgstr	"Score (descendant)"
-
-#: src/lang.c:1239 src/lang.c:1247
-msgid	"Score (ascending)"
-msgstr	"Score (ascendant)"
-
-#: src/lang.c:1240
-msgid	"Lines: (descending)"
-msgstr	"Lines: (descendant)"
-
-#: src/lang.c:1241
-msgid	"Lines: (ascending)"
-msgstr	"Lines: (ascendant)"
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	"Toujours garder"
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	"Toujours effacer"
-
-#: src/lang.c:1254
-msgid	"Mark with D on selection screen"
-msgstr	"Marquer avec un D dans la vue sélection"
-
-#: src/lang.c:1259
-msgid	"Kill only unread arts"
-msgstr	"Filtrer uniquement les articles non lus"
-
-#: src/lang.c:1260
-msgid	"Kill all arts & show with K"
-msgstr	"Filtrer tous les articles & afficher avec un K"
+#: src/lang.c:1206
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %"
+        "s=post"
+msgstr  "%s=passer; %s=mail; %s=impr.; %s=quitter; %s=voir lu/non lu; %s=enreg.; %"
+        "s=marquer; %s=poster"
 
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-msgid	"Kill all arts and never show"
-msgstr	"Filtrer tous les articles et ne jamais afficher"
-
-#: src/lang.c:1266
-msgid	"Nothing special"
-msgstr	"Rien de spécial"
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	"Citations compressées"
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	"Citer les signatures"
-
-#: src/lang.c:1269
-msgid	"Compress quotes, quote sigs"
-msgstr	"Compresser les citations, citer les signatures"
+#: src/lang.c:1207
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  "%s=passer; %s=mail; %s=impr.; %s=quitter; %s=répondre; %s=enreg.; %s=marquer; "
+        "%s=poster"
+
+#: src/lang.c:1209
+#, 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:1210
+#, 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:1214
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  "%s=passer; %s=mail; %s=quitter; %s=voir lu/non lu; %s=enregistrer; %"
+        "s=marquer; %s=poster"
+
+#: src/lang.c:1215
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  "%s=passer; %s=mail; %s=quitter; %s=répondre; %s=enregistrer; %s=marquer; %"
+        "s=poster"
+
+#: src/lang.c:1217
+#, 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:1218
+#, 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:1224
+msgid   "Terminal does not support color"
+msgstr  "Le terminal ne supporte pas les couleurs"
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  "Essai %s"
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  "Aucun"
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  "Sujet"
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  "Références"
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  "Sujet et Références"
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  "Sujet multiparties"
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  "Taux de concordance"
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  "Non"
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  "Oui"
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  "Tout masquer"
 
 #: src/lang.c:1270
-msgid	"Quote empty lines"
-msgstr	"Citer les lignes vides"
+msgid   "Address"
+msgstr  "Adresse"
 
 #: src/lang.c:1271
-msgid	"Compress quotes, quote empty lines"
-msgstr	"Compresser les citations, citer les lignes vides"
+msgid   "Full Name"
+msgstr  "Nom complet"
 
 #: src/lang.c:1272
-msgid	"Quote sigs & empty lines"
-msgstr	"Citer les signatures & les lignes vides"
+msgid   "Address and Name"
+msgstr  "Adresse et Nom"
 
-#: src/lang.c:1273
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	"Citations compr., signatures et lignes vides citées"
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  "Max"
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  "Addition"
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  "Moyenne"
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  "Lignes"
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  "Score"
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  "Lignes & Score"
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  "Noir"
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  "Rouge"
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  "Vert"
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  "Marron"
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  "Bleu"
+
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  "Rose"
+
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  "Cyan"
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  "Blanc"
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "Gris"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  "Rouge gras"
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  "Vert gras"
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  "Jaune"
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  "Bleu gras"
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  "Rose gras"
 
 #: src/lang.c:1311
-msgid	"no"
-msgstr	"non"
+msgid   "Light Cyan"
+msgstr  "Cyan gras"
 
 #: src/lang.c:1312
-msgid	"with headers"
-msgstr	"avec les en-têtes"
+msgid   "Light White"
+msgstr  "Blanc gras"
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	"sans les en-têtes"
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	"NFKC"
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	"NFKD"
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  "Rien"
 
 #: src/lang.c:1322
-msgid	"NFC"
-msgstr	"NFC"
+msgid   "Space"
+msgstr  "Espace"
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	"NFD"
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  "Normal"
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  "Meilleure surbrillance"
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  "Souligné"
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  "Vidéo inversée"
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  "Clignotement"
 
 #: src/lang.c:1334
-msgid	"Display Options"
-msgstr	"Options d'affichage"
+msgid   "Half bright"
+msgstr  "Moins lumineux"
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  "Gras"
 
 #: src/lang.c:1341
-msgid	"Color Options"
-msgstr	"Options des couleurs"
+msgid   "Cc"
+msgstr  "Cc"
 
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	"Options des articles"
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  "Cci"
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  "Cc et Cci"
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  "aucun"
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  "commandes"
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  "sélection"
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  "commandes & quitter"
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  "commandes & sélection"
 
 #: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	"Options de postage/messagerie"
+msgid   "quit & select"
+msgstr  "quitter & sélection"
+
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  "commandes, quitter & sélection"
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  "PageDown"
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  "PageNextUnread"
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  "PageDown ou PageNextUnread"
+
+#: src/lang.c:1368
+#, fuzzy
+msgid   "Subject: (case sensitive)"
+msgstr  "l'en-tête 'Subject:' (casse sensible)"
+
+#: src/lang.c:1369
+#, fuzzy
+msgid   "Subject: (ignore case)"
+msgstr  "l'en-tête 'Subject:' (ignorer la casse)"
 
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	"Options d'enregistrement/d'impression"
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	"Options avancées"
+#: src/lang.c:1370
+#, fuzzy
+msgid   "From: (case sensitive)"
+msgstr  "l'en-tête 'From:' (casse sensible)"
+
+#: src/lang.c:1371
+#, fuzzy
+msgid   "From: (ignore case)"
+msgstr  "l'en-tête 'From:' (ignorer la casse)"
 
 #: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	"Options de filtrage"
+#, fuzzy
+msgid   "Msg-ID: & full References: line"
+msgstr  "Ligne Message-ID: & References:"
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"<ESPACE> change, <RETOUR> valide, <ESC> annule."
-
-#: src/lang.c:1378
-msgid	"Show mini menu & posting etiquette"
-msgstr	"Afficher le menu & l'intitulé du postage"
-
-#: src/lang.c:1379
-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:1373
+#, fuzzy
+msgid   "Msg-ID: & last References: only"
+msgstr  "Message-ID: & dernière Référence  "
+
+#: src/lang.c:1374
+#, fuzzy
+msgid   "Message-ID: entry only"
+msgstr  "Message-ID: entrée uniquement"
+
+#: src/lang.c:1375
+#, fuzzy
+msgid   "Lines:"
+msgstr  "Lignes:"
+
+#: src/lang.c:1380
+msgid   "Don't trim article body"
+msgstr  "Ne pas couper le corps de l'article"
+
+#: src/lang.c:1381
+msgid   "Skip leading blank lines"
+msgstr  "Passer les lignes vides du début"
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  "Passer les lignes vides de la fin"
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  "Passer toutes les lignes vides"
 
 #: src/lang.c:1384
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	"Afficher une brève description pour chaque groupe. <ESPACE> change & <RETOUR> "
-	"valide."
+msgid   "Compact multiple between text"
+msgstr  "Regrouper entre chaque paragraphe"
 
 #: src/lang.c:1385
-msgid	"Show description of each newsgroup"
-msgstr	"Voir description de chaque groupe"
+msgid   "Compact multiple and skip leading"
+msgstr  "Regrouper et effacer les premières"
 
 #: src/lang.c:1386
-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:1391
-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:1392
-msgid	"In group menu, show author by"
-msgstr	"Dans vue groupe, voir auteur par"
-
-#: src/lang.c:1393
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	"# Partie du champ from à afficher\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = aucune\n"
-	"#   1 = adresse\n"
-	"# * 2 = nom complet\n"
-	"#   3 les deux\n"
-
-#: src/lang.c:1402
-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:1403
-msgid	"Draw -> instead of highlighted bar"
-msgstr	"Afficher -> plutôt qu'une barre"
-
-#: src/lang.c:1404
-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:1409
-msgid	"Use inverse video for page headers"
-msgstr	"Vidéo inversée pour les en-têtes"
-
-#: src/lang.c:1410
-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:1415
-msgid	"Thread articles by"
-msgstr	"Regrouper les articles par"
+msgid   "Compact multiple and skip trailing"
+msgstr  "Regrouper et effacer les dernières"
 
-# TRANSLATION OUTDATED
-#: src/lang.c:1416
-#, fuzzy
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	"# Regrouper les articles par...\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = aucun\n"
-	"#   1 = Sujet\n"
-	"#   2 = References\n"
-	"# * 3 = Les deux (Sujet et References)\n"
-	"#   4 = Sujet multipartie\n"
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  "Regrouper puis effacer les premières et dernières"
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  "Archive shell"
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  "Subject : (descendant)"
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  "Subject : (ascendant)"
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  "From: (descendant)"
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  "From: (ascendant)"
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  "Date: (descendant)"
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  "Date: (ascendant)"
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  "Score (descendant)"
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  "Score (ascendant)"
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  "Lines: (descendant)"
 
-# TRANSLATION MISSING
 #: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	""
+msgid   "Lines: (ascending)"
+msgstr  "Lines: (ascendant)"
 
-# TRANSLATION MISSING
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	""
-
-# TRANSLATION MISSING
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
+#: src/lang.c:1434
+msgid   "Last posting date (descending)"
+msgstr  "Dernière date de postage (descendant)"
+
+#: src/lang.c:1435
+msgid   "Last posting date (ascending)"
+msgstr  "Dernière date de postage (ascendant)"
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  "Toujours garder"
 
 #: src/lang.c:1441
-msgid	"Score of a thread"
-msgstr	"Score d'un fil"
+msgid   "Always Remove"
+msgstr  "Toujours effacer"
 
 #: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	"# Regrouper les scores\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = max\n"
-	"#   1 = somme\n"
-	"#   2 = moyenne\n"
-
-#: src/lang.c:1450
-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:1451
-msgid	"Sort articles by"
-msgstr	"Trier les articles par"
-
-#: src/lang.c:1452
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines ascending\n"
-msgstr	"# Trie les article par...\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = rien\n"
-	"#   1 = Sujet descendant\n"
-	"#   2 = Sujet ascendant\n"
-	"#   3 = De descendant\n"
-	"#   4 = De ascendant\n"
-	"#   5 = Date descendant\n"
-	"# * 6 = Date ascendant\n"
-	"#   7 = Score descendant\n"
-	"#   8 = Score ascendant\n"
-	"#   9 = Lignes descendant\n"
-	"#  10 = Lignes ascendant)\n"
-
-#: src/lang.c:1468
-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:1469
-msgid	"Sort threads by"
-msgstr	"Trier les fils par"
-
-#: src/lang.c:1470
-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	"# 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:1478
-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:1479
-msgid	"Goto first unread article in group"
-msgstr	"Aller au 1er article non lu du groupe"
-
-#: src/lang.c:1480
-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:1484
-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:1485
-msgid	"Show only unread articles"
-msgstr	"Afficher articles non lus seulement"
-
-#: src/lang.c:1486
-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:1491
-msgid	"Show only groups with unread arts"
-msgstr	"Voir groupes avec articles non lus"
-
-#: src/lang.c:1492
-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:1497
-msgid	"Filter which articles"
-msgstr	"Filtrer quel article"
-
-#: src/lang.c:1498
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	"# Filtrer quels articles\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = filtrer uniquement les articles non lu\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:1507
-msgid	"Tab goes to next unread article"
-msgstr	"Tab va au prochain article non lu"
-
-#: src/lang.c:1508
-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:1512
-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:1513
-msgid	"Space goes to next unread article"
-msgstr	"Espace va au prochain article non lu"
-
-#: src/lang.c:1514
-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:1519
-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:1520
-msgid	"PgDn goes to next unread article"
-msgstr	"PgDn va au prochain article non lu"
-
-#: src/lang.c:1521
-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"
-
-#: src/lang.c:1527
-msgid	"List thread using right arrow key"
-msgstr	"Lister le fil via la flèche droite"
-
-#: src/lang.c:1528
-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:1532
-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:1533
-msgid	"Character to show deleted articles"
-msgstr	"Caractère pour articles effacés"
-
-#: src/lang.c:1534
-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:1539
-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:1540
-msgid	"Character to show inrange articles"
-msgstr	"Caractère pour articles non inclus"
-
-#: src/lang.c:1541
-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:1546
-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:1547
-msgid	"Character to show returning arts"
-msgstr	"Caractère pour articles retournés"
+msgid   "Mark with D on selection screen"
+msgstr  "Marquer avec un D dans la vue sélection"
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  "Filtrer uniquement les articles non lus"
+
+#: src/lang.c:1448
+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:1449
+msgid   "Kill all arts and never show"
+msgstr  "Filtrer tous les articles et ne jamais afficher"
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  "Rien de spécial"
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  "Citations compressées"
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  "Citer les signatures"
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  "Compresser les citations, citer les signatures"
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  "Citer les lignes vides"
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  "Compresser les citations, citer les lignes vides"
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  "Citer les signatures & les lignes vides"
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  "Citations compr., signatures et lignes vides citées"
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  "non"
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  "avec les en-têtes"
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  "sans les en-têtes"
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  "NFKC"
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  "NFKD"
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  "NFC"
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  "NFD"
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  "Options d'affichage"
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  "Options des couleurs"
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  "Options des articles"
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  "Options de postage/messagerie"
 
 #: src/lang.c:1548
-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:1553
-msgid	"Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
-msgstr	"Caractère indiquant les articles sélectionnés. <RETOUR> valide, <ESC> annule."
+msgid   "Saving/Printing Options"
+msgstr  "Options d'enregistrement/d'impression"
 
 #: src/lang.c:1554
-msgid	"Character to show selected articles"
-msgstr	"Caractère pour articles sélect."
-
-#: src/lang.c:1555
-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"
+msgid   "Expert Options"
+msgstr  "Options avancées"
 
 #: src/lang.c:1560
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	"Caractère indiquant les articles récents. <RETOUR> valide, <ESC> annule."
+msgid   "Filtering Options"
+msgstr  "Options de filtrage"
 
-#: src/lang.c:1561
-msgid	"Character to show recent articles"
-msgstr	"Caractère pour articles récents"
-
-#: src/lang.c:1562
-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:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "<ESPACE> change, <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  "Afficher le menu & l'intitulé du postage"
 
 #: src/lang.c:1567
-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:1568
-msgid	"Character to show unread articles"
-msgstr	"Caractère pour articles non lus"
-
-#: src/lang.c:1569
-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"
+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:1572
+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:1573
+msgid   "Show description of each newsgroup"
+msgstr  "Voir description de chaque groupe"
 
 #: src/lang.c:1574
-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:1575
-msgid	"Character to show read articles"
-msgstr	"Caractère pour articles lus"
-
-#: src/lang.c:1576
-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"
+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:1579
+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:1580
+msgid   "In group menu, show author by"
+msgstr  "Dans vue groupe, voir auteur par"
 
 #: src/lang.c:1581
-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:1582
-msgid	"Character to show killed articles"
-msgstr	"Caractère pour articles filtrés"
-
-#: src/lang.c:1583
-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:1588
-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:1589
-msgid	"Character to show readselected arts"
-msgstr	"Caractère pour articles sélectionnés lus"
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  "# Partie du champ from à afficher\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = aucune\n"
+        "#   1 = adresse\n"
+        "# * 2 = nom complet\n"
+        "#   3 les deux\n"
 
 #: src/lang.c:1590
-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:1595
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	"Largeur max. à afficher des noms des groupes. <RETOUR> valide."
-
-#: src/lang.c:1596
-msgid	"Max. length of group names shown"
-msgstr	"Largeur max. des noms des groupes"
+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:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  "Afficher -> plutôt qu'une barre"
+
+#: src/lang.c:1592
+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:1597
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	"# Largeur maximum à afficher des noms des groupes.\n"
+msgid   "Use inverse video for page headers"
+msgstr  "Vidéo inversée pour les en-têtes"
 
-#: src/lang.c:1602
-msgid	"Show lines/score in listings"
-msgstr	"Afficher dans les différentes vues"
+#: src/lang.c:1598
+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:1603
-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	"# Quelles informations doivent être affichées dans la vue article/fil\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = rien\n"
-	"# * 1 = lignes\n"
-	"#   2 = score\n"
-	"#   3 = lignes & score\n"
-
-#: src/lang.c:1612
-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:1613
-msgid	"Number of lines to scroll in pager"
-msgstr	"Vitesse de défilement dans le pager"
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	"# Type du défilement lors de la visualisation de l'article dans le pager\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#  -2 = demi-page\n"
-	"#  -1 = la première/dernière ligne est affichée dans dans la page suivante\n"
-	"#   0 = page par page (comportement initial)\n"
-	"# * 1 = ligne par ligne\n"
-	"#   2 ou plus = défiler 2 lignes par 2 ou plus (seulement dans le pager)\n"
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	"Affiche les signatures. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	"Afficher les signatures"
-
-#: src/lang.c:1626
-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"
+msgid   "Thread articles by"
+msgstr  "Regrouper les articles par"
+
+#: src/lang.c:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  "# Regrouper les articles par...\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = aucun\n"
+        "#   1 = Sujet\n"
+        "#   2 = References\n"
+        "# * 3 = Les deux (Sujet et References)\n"
+        "#   4 = Sujet multipartie\n"
+        "#   5 = Pourcentage de concordance\n"
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  "Entrer le pourcentage de concordance pour grouper les articles en un fil. "
+        "<RETOUR> valide."
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  "Pourcentage de concordance pour grouper"
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  "# Taux de concordance de fil...\n"
+        "# le pourcentage de caractères dans le sujet d'un article qui doit "
+        "correspondre\n"
+        "# à un article initial pour qu'ils puissent être considérés comme appartenant "
+        "à\n"
+        "# un même fil. Cette option est un pourcentage, pe. 80, pas de décimales qui\n"
+        "# suivent. Si 80 est utilisé ici, alors 80%% des caractères doivent "
+        "absolument\n"
+        "# correspondre, sans insertion de caractère, pour que les articles soient "
+        "placés\n"
+        "# dans le même fil. Par exemple 'happy' et 'harpy' correspondent, mais "
+        "'harpie',\n"
+        "# 'happie' et 'harppy' seront regroupés à part de 'happy'\n"
+
+#: src/lang.c:1629
+msgid   "Score of a thread"
+msgstr  "Score d'un fil"
 
 #: src/lang.c:1630
-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:1631
-msgid	"Display uue data as an attachment"
-msgstr	"Afficher donnée uue comme PJ"
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	"# Prise en charge des données uuencode dans le pager\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = aucune, affichage brut des données uuencode\n"
-	"#   1 = oui, les données uuencode seront condensée dans une seule ligne\n"
-	"#       affichant la taille et le fichier, comme sont affichées les pj MIME\n"
-	"#   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:1642
-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:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	"Afficher \"a comme Umlaut-a"
-
-#: src/lang.c:1644
-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:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	"Liste des en-têtes, séparés par des espaces"
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	"Afficher ces en-têtes (ou *)"
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	"# Quels en-têtes voulez-vous voir. Si vous souhaitez voir _tout_ les en-"
-	"têtes,\n"
-	"# utilisez '*' comme valeur. C'est le seul moyen d'utiliser un caractère\n"
-	"# joker ici. Si vous entrez 'X-' comme valeur, vous verrez tous les en-têtes\n"
-	"# commençant par 'X-' (comme X-Alan ou X-Pape). Vous pouvez afficher "
-	"plusieurs\n"
-	"# en-têtes en les délimitant avec des espaces. Ne rien définir, désactive\n"
-	"# cette option.\n"
-
-#: src/lang.c:1660
-msgid	"Do not display these header fields"
-msgstr	"Ne pas afficher ces en-têtes"
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	"# Comme l'option 'news_headers_to_display' excepté que là c'est le "
-	"contraire.\n"
-	"# Un exemple d'utilisation de ces deux options pourrait que vous trouviez "
-	"les\n"
-	"# en-têtes 'X-' intéressantes mais celles contenant 'Alan' et 'Pape'\n"
-	"# inutiles... donc voici ce que vous pourriez alors faire :\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Ne rien définir, désactive cette option.\n"
-
-#: src/lang.c:1671
-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:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	"Ignorer parties multipart/alter."
-
-#: src/lang.c:1673
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	"# Si ON, enlève automatiquement les messages multipart/alternative\n"
-
-#: src/lang.c:1678
-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:1679
-msgid	"Regex used to show quoted lines"
-msgstr	"Regex pour afficher les citations"
-
-#: src/lang.c:1680
-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	"# Une expression régulière qui permettra à tin d'afficher les citations.\n"
-	"# 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:1686
-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."
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  "# Regrouper les scores\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = max\n"
+        "#   1 = somme\n"
+        "#   2 = moyenne\n"
+
+#: src/lang.c:1638
+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:1639
+msgid   "Sort articles by"
+msgstr  "Trier les articles par"
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  "# Trie les article par...\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = rien\n"
+        "#   1 = Sujet descendant\n"
+        "#   2 = Sujet ascendant\n"
+        "#   3 = De descendant\n"
+        "#   4 = De ascendant\n"
+        "#   5 = Date descendant\n"
+        "# * 6 = Date ascendant\n"
+        "#   7 = Score descendant\n"
+        "#   8 = Score ascendant\n"
+        "#   9 = Lignes descendant\n"
+        "#  10 = Lignes ascendant)\n"
+
+#: src/lang.c:1656
+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:1657
+msgid   "Sort threads by"
+msgstr  "Trier les fils par"
+
+#: src/lang.c:1658
+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"
+        "#   3 = Date la plus récente, descendant\n"
+        "#   4 = Date la plus récente, ascendant\n"
+
+#: src/lang.c:1668
+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:1669
+msgid   "Go to first unread article in group"
+msgstr  "Aller au 1er article non lu du groupe"
+
+#: src/lang.c:1670
+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:1674
+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:1675
+msgid   "Show only unread articles"
+msgstr  "Afficher articles non lus seulement"
+
+#: src/lang.c:1676
+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:1681
+msgid   "Show only groups with unread arts"
+msgstr  "Voir groupes avec articles non lus"
+
+#: src/lang.c:1682
+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:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	"Regex pour afficher le 2nd niveau"
+msgid   "Filter which articles"
+msgstr  "Filtrer quel article"
 
 #: src/lang.c:1688
-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	"# Une expression régulière qui permettra à tin d'afficher les citations de\n"
-	"# 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:1694
-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:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	"Regex pour afficher niveau >= 3"
-
-#: src/lang.c:1696
-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	"# Une expression régulière qui permettra à tin d'afficher les citations de\n"
-	"# troisième niveau et supérieur. Ces citations sont affichées dans "
-	"col_quote3.\n"
-	"# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
-	"défaut.\n"
-
-#: src/lang.c:1703
-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:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	"Regex pour les mots entre /slash/"
-
-#: src/lang.c:1705
-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	"# Une expression régulière qui permettra à tin d'afficher les mots\n"
-	"# placés entre des '/' dans col_markslashes.\n"
-	"# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
-	"défaut.\n"
-
-#: src/lang.c:1711
-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:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	"Regex pour les mots entre *astérisques*"
-
-#: src/lang.c:1713
-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	"# Une expression régulière qui permettra à tin d'afficher les mots\n"
-	"# placés entre des '*' dans col_markstars.\n"
-	"# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
-	"défaut.\n"
-
-#: src/lang.c:1719
-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:1720
-msgid	"Regex used to highlight -strokes-"
-msgstr	"Regex pour les mots entre -tirets-"
-
-#: src/lang.c:1721
-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	"# Une expression régulière qui permettra à tin d'afficher les mots\n"
-	"# placés entre des '-' dans col_markstroke.\n"
-	"# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
-	"défaut.\n"
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  "# Filtrer quels articles\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = filtrer uniquement les articles non lu\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:1697
+msgid   "Go to the next unread article with"
+msgstr  "Aller au prochain article non lu avec"
+
+#: src/lang.c:1698
+msgid   "# Go to the unread article with following 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  "# Aller à l'article non lu avec la ou les touches suivante(s)\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = aucune\n"
+        "#   1 = PAGE DOWN\n"
+        "# * 2 = TAB\n"
+        "#   3 = PAGE DOWN ou TAB\n"
+
+#: src/lang.c:1708
+msgid   "How to treat blank lines"
+msgstr  "Comment gérer les lignes vides"
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  "# Nettoyer le corps de l'article, effaçant les lignes vides inutiles.\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = Ne rien faire\n"
+        "#   1 = Effacer les lignes vides du début\n"
+        "#   2 = Effacer les lignes vides de la fin\n"
+        "#   3 = Effacer les lignes vides du début et de la fin\n"
+        "#   4 = Regrouper plusieurs lignes vides entre les paragraphes\n"
+        "#   5 = Regrouper plusieurs lignes vides entre les paragraphes et\n"
+        "#       effacer les lignes vides du début\n"
+        "#   6 = Regrouper plusieurs lignes vides entre les paragraphes et\n"
+        "#       effacer les lignes vides de la fin\n"
+        "#   7 = Regrouper plusieurs lignes vides entre les paragraphes et\n"
+        "#       effacer les lignes vides du début et de la fin\n"
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  "Lister le fil via la flèche droite"
 
 #: src/lang.c:1727
-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:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	"Regex pour les mots entre _underscore_"
-
-#: src/lang.c:1729
-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	"# Une expression régulière qui permettra à tin d'afficher les mots\n"
-	"# placés entre des '_' dans col_markdash.\n"
-	"# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
-	"défaut.\n"
-
-#: src/lang.c:1735
-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:1736
-msgid	"Regex with Subject prefixes"
-msgstr	"Regex pour les préfixes dans le sujet"
-
-#: src/lang.c:1737
-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:1742
-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:1743
-msgid	"Regex with Subject suffixes"
-msgstr	"Regex pour les suffixes dans le sujet"
-
-#: src/lang.c:1744
-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:1749
-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:1750
-msgid	"MIME binary content viewer"
-msgstr	"Visualisateur de contenu MIME"
-
-#: src/lang.c:1751
-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	"# Utilisation du visualisateur MIME inclus pour les parties non textuelles\n"
-	"# si l'option '--internal' est utilisée.\n"
-	"# 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:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	"Confirmation avant le lancement d'un visualisateur externe"
+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:1731
+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:1732
+msgid   "Character to show deleted articles"
+msgstr  "Caractère pour articles effacés"
+
+#: src/lang.c:1733
+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:1738
+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:1739
+msgid   "Character to show inrange articles"
+msgstr  "Caractère pour articles non inclus"
+
+#: src/lang.c:1740
+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:1745
+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:1746
+msgid   "Character to show returning arts"
+msgstr  "Caractère pour articles retournés"
+
+#: src/lang.c:1747
+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:1752
+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:1753
+msgid   "Character to show selected articles"
+msgstr  "Caractère pour articles sélect."
+
+#: src/lang.c:1754
+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:1759
-msgid	"Ask before using MIME viewer"
-msgstr	"Demander avant d'utiliser le visualisateur"
+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:1760
-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:1765
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	"Marquer lu les groupes à la fermeture ? <ESPACE> change & <RETOUR> valide."
+msgid   "Character to show recent articles"
+msgstr  "Caractère pour articles récents"
+
+#: src/lang.c:1761
+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:1766
-msgid	"Catchup read groups when quitting"
-msgstr	"Marquer lu les groupes à la fermeture"
+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:1767
-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:1772
-msgid	"Catchup group using left key"
-msgstr	"Marquer lu le groupe via la flèche gauche"
+msgid   "Character to show unread articles"
+msgstr  "Caractère pour articles non lus"
+
+#: src/lang.c:1768
+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:1773
-msgid	"# If ON catchup group/thread when leaving with the left arrow key.\n"
-msgstr	"# Si ON, marque lu avec <- le groupe/fil.\n"
+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:1778
-msgid	"Catchup thread by using left key"
-msgstr	"Marquer lu le fil via la flèche gauche"
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	"Quelles actions requièrent confirmation"
-
-#: src/lang.c:1785
-msgid	"# What should we ask confirmation for.\n"
-msgstr	"# Demande de confirmation pour...\n"
-
-#: src/lang.c:1790
-msgid	"'Mark article read' ignores tags"
-msgstr	"'Marquer lu l'article' ignore les marques"
-
-#: src/lang.c:1791
-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:1774
+msgid   "Character to show read articles"
+msgstr  "Caractère pour articles lus"
+
+#: src/lang.c:1775
+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:1780
+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:1781
+msgid   "Character to show killed articles"
+msgstr  "Caractère pour articles filtrés"
+
+#: src/lang.c:1782
+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:1787
+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:1788
+msgid   "Character to show readselected arts"
+msgstr  "Caractère pour articles sélectionnés lus"
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  "Largeur max. à afficher des noms des groupes. <RETOUR> valide."
 
 #: src/lang.c:1795
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	"Logiciel utilisé pour lancer les URLs, <RETOUR> valide, <ESC> annule."
+msgid   "Max. length of group names shown"
+msgstr  "Largeur max. des noms des groupes"
 
 #: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	"Logiciel lançant les URLs"
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  "# Largeur maximum à afficher des noms des groupes.\n"
 
-#: src/lang.c:1797
-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:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  "Abréger les noms de groupes trop longs"
 
 #: src/lang.c:1802
-msgid	"Use mouse in xterm"
-msgstr	"Utiliser la souris dans l'xterm"
-
-#: src/lang.c:1803
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	"# Si ON, active le support de la souris dans xterm\n"
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  "# Si ON, abrège (si nécessaire) les noms de groupes trop longs dans\n"
+        "# la vue de sélection de groupes et d'articles comme affiché ci-dessous :\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
 
 #: src/lang.c:1809
-msgid	"Use scroll keys on keypad"
-msgstr	"Utiliser les flèches du pavé numérique"
+msgid   "Show lines/score in listings"
+msgstr  "Afficher dans les différentes vues"
 
 #: src/lang.c:1810
-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:1815
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	"Nombre max d'articles à récupérer. <RETOUR> valide."
-
-#: src/lang.c:1816
-msgid	"Number of articles to get"
-msgstr	"Nombre d'articles à récupérer"
-
-# AMBIGUOUS
-#: src/lang.c:1817
-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:1822
-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:1823
-msgid	"Article recentness time limit"
-msgstr	"Durée des articles considérés comme récents"
-
-#: src/lang.c:1824
-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:1828
-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:1829
-msgid	"Wildcard matching"
-msgstr	"Concordance wildcard"
-
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	"# Concordances Wildcard\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
+msgid   "# What information 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  "# Quelles informations doivent être affichées dans la vue article/fil\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = rien\n"
+        "# * 1 = lignes\n"
+        "#   2 = score\n"
+        "#   3 = lignes & score\n"
+
+#: src/lang.c:1819
+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:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  "Vitesse de défilement dans le pager"
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  "# Type du défilement lors de la visualisation de l'article dans le pager\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#  -2 = demi-page\n"
+        "#  -1 = la première/dernière ligne est affichée dans dans la page suivante\n"
+        "#   0 = page par page (comportement initial)\n"
+        "# * 1 = ligne par ligne\n"
+        "#   2 ou plus = défiler 2 lignes par 2 ou plus (seulement dans le pager)\n"
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  "Affiche les signatures. <ESPACE> change & <RETOUR> valide."
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  "Afficher les signatures"
+
+#: src/lang.c:1833
+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:1837
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	"Score minimal avant qu'un article soit filtré. <RETOUR> valide."
+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:1838
-msgid	"Score limit (kill)"
-msgstr	"Score minimum (filtre)"
+msgid   "Display uue data as an attachment"
+msgstr  "Afficher donnée uue comme PJ"
 
 #: src/lang.c:1839
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	"# Score minimal avant qu'un article soit filtré\n"
-
-#: src/lang.c:1843
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	"Score par défaut pour filtrer les articles. <RETOUR> valide."
-
-#: src/lang.c:1844
-msgid	"Default score to kill articles"
-msgstr	"Score par déf. pour filtrer les articles"
-
-#: src/lang.c:1845
-msgid	"# Default score to kill articles\n"
-msgstr	"# Score par défaut pour filtrer les articles\n"
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  "# Prise en charge des données uuencode dans le pager\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = aucune, affichage brut des données uuencode\n"
+        "#   1 = oui, les données uuencode seront condensée dans une seule ligne\n"
+        "#       affichant la taille et le fichier, comme sont affichées les PJ MIME\n"
+        "#   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:1849
-msgid	"Enter minimal score before an article is marked hot. <CR> sets."
-msgstr	"Score minimal avant qu'un article soit sélectionné. <RETOUR> valide."
+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:1850
-msgid	"Score limit (select)"
-msgstr	"Score minimum (sélection)"
+msgid   "Display \"a as Umlaut-a"
+msgstr  "Afficher \"a comme Umlaut-a"
 
 #: src/lang.c:1851
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	"# Score minimal avant qu'un article soit sélectionné\n"
-
-#: src/lang.c:1855
-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:1856
-msgid	"Default score to select articles"
-msgstr	"Score par défaut pour sél. les articles"
+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:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  "Liste des en-têtes, séparés par des espaces"
 
 #: src/lang.c:1857
-msgid	"# Default score to select articles\n"
-msgstr	"# Score par défaut pour sélectionner les articles\n"
+msgid   "Display these header fields (or *)"
+msgstr  "Afficher ces en-têtes (ou *)"
 
-#: src/lang.c:1863
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	"Utiliser slrnface pour afficher les 'X-Face:'"
-
-#: src/lang.c:1864
-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:1872
-msgid	"Use ANSI color"
-msgstr	"Utiliser les couleurs ANSI"
-
-#: src/lang.c:1873
-msgid	"# If ON using ANSI-color\n"
-msgstr	"# Si ON, utiliser les couleurs ANSI\n"
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  "# Quels en-têtes voulez-vous voir. Si vous souhaitez voir _tout_ les en-"
+        "têtes,\n"
+        "# utilisez '*' comme valeur. C'est le seul moyen d'utiliser un caractère\n"
+        "# joker ici. Si vous entrez 'X-' comme valeur, vous verrez tous les en-têtes\n"
+        "# commençant par 'X-' (comme X-Alan ou X-Pape). Vous pouvez afficher "
+        "plusieurs\n"
+        "# en-têtes en les délimitant avec des espaces. Ne rien définir, désactive\n"
+        "# cette option.\n"
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  "Ne pas afficher ces en-têtes"
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  "# Comme l'option 'news_headers_to_display' excepté que là c'est le "
+        "contraire.\n"
+        "# Un exemple d'utilisation de ces deux options pourrait que vous trouviez "
+        "les\n"
+        "# en-têtes 'X-' intéressantes mais celles contenant 'Alan' et 'Pape'\n"
+        "# inutiles... donc voici ce que vous pourriez alors faire :\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Ne rien définir, désactive cette option.\n"
 
 #: src/lang.c:1878
-msgid	"Standard foreground color"
-msgstr	"Couleur standard de l'avant-plan"
+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:1879
-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"
+msgid   "Skip multipart/alternative parts"
+msgstr  "Ignorer parties multipart/alter."
+
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  "# Si ON, enlève automatiquement les messages multipart/alternative\n"
+
+#: src/lang.c:1884
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  "Activer la détection des blocs à citer ? <ESPACE> change & <RETOUR> valide."
 
 #: src/lang.c:1885
-msgid	"Standard background color"
-msgstr	"Couleur standard de l'arrière-plan"
+msgid   "Detection of verbatim blocks"
+msgstr  "Détection des blocs textuels"
 
 #: src/lang.c:1886
-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"
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  "# Si ON, détecte les blocs textuels dans les articles\n"
+
+#: src/lang.c:1891
+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:1892
-msgid	"Color for inverse text (background)"
-msgstr	"Couleur du texte inversé (arrière-plan)"
+msgid   "Regex used to show quoted lines"
+msgstr  "Regex pour afficher les citations"
 
 #: src/lang.c:1893
-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"
+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  "# Une expression régulière qui permettra à tin d'afficher les citations.\n"
+        "# 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:1899
-msgid	"Color for inverse text (foreground)"
-msgstr	"Couleur du texte inversé (avant-plan)"
+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:1900
-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:1906
-msgid	"Color of text lines"
-msgstr	"Couleur du texte"
+msgid   "Regex used to show twice quoted l."
+msgstr  "Regex pour afficher le 2nd niveau"
+
+#: src/lang.c:1901
+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  "# Une expression régulière qui permettra à tin d'afficher les citations de\n"
+        "# 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:1907
-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:1913
-msgid	"Color of mini help menu"
-msgstr	"Couleur du petit menu d'aide"
-
-#: src/lang.c:1914
-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:1920
-msgid	"Color of help text"
-msgstr	"Couleur de l'aide"
-
-#: src/lang.c:1921
-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:1927
-msgid	"Color of status messages"
-msgstr	"Couleur des messages de statut"
-
-#: src/lang.c:1928
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Couleur des messages de statut\n"
-	"# Défaut : 6 (cyan)\n"
+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:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  "Regex pour afficher niveau >= 3"
+
+#: src/lang.c:1909
+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  "# Une expression régulière qui permettra à tin d'afficher les citations de\n"
+        "# troisième niveau et supérieur. Ces citations sont affichées dans "
+        "col_quote3.\n"
+        "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
+        "défaut.\n"
+
+#: src/lang.c:1916
+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:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  "Regex pour les mots entre /slash/"
+
+#: src/lang.c:1918
+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  "# Une expression régulière qui permettra à tin d'afficher les mots\n"
+        "# placés entre des '/' dans col_markslashes.\n"
+        "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
+        "défaut.\n"
+
+#: src/lang.c:1924
+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:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  "Regex pour les mots entre *astérisques*"
+
+#: src/lang.c:1926
+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  "# Une expression régulière qui permettra à tin d'afficher les mots\n"
+        "# placés entre des '*' dans col_markstars.\n"
+        "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
+        "défaut.\n"
+
+#: src/lang.c:1932
+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:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  "Regex pour les mots entre -tirets-"
 
 #: src/lang.c:1934
-msgid	"Color of quoted lines"
-msgstr	"Couleur de citation de 1er niveau"
-
-#: src/lang.c:1935
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Couleur de citation de premier niveau\n"
-	"# Défaut : 2 (vert)\n"
+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  "# Une expression régulière qui permettra à tin d'afficher les mots\n"
+        "# placés entre des '-' dans col_markstroke.\n"
+        "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
+        "défaut.\n"
+
+#: src/lang.c:1940
+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:1941
-msgid	"Color of twice quoted line"
-msgstr	"Couleur de citation de 2nd niveau"
+msgid   "Regex used to highlight _underline_"
+msgstr  "Regex pour les mots entre _underscore_"
 
 #: src/lang.c:1942
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Couleur de citation de second niveau\n"
-	"# Défaut : 3 (marron)\n"
+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  "# Une expression régulière qui permettra à tin d'afficher les mots\n"
+        "# placés entre des '_' dans col_markdash.\n"
+        "# Si vous laissez ce champ vide, tin utilisera une valeur incluse par "
+        "défaut.\n"
 
 #: src/lang.c:1948
-msgid	"Color of =>3 times quoted line"
-msgstr	"Couleur de citation de 3e niveau ou sup."
+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:1949
-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"
+msgid   "Regex with Subject prefixes"
+msgstr  "Regex pour les préfixes dans le sujet"
+
+#: src/lang.c:1950
+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:1955
-msgid	"Color of article header lines"
-msgstr	"Couleur des en-têtes de l'article"
+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:1956
-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"
+msgid   "Regex with Subject suffixes"
+msgstr  "Regex pour les suffixes dans le sujet"
+
+#: src/lang.c:1957
+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:1962
-msgid	"Color of actual news header fields"
-msgstr	"Couleur des champs d'en-tête actuels"
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  "Une expression régulière pour trouver le début d'un bloc textuel."
 
 #: src/lang.c:1963
-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"
+msgid   "Regex for begin of a verbatim block"
+msgstr  "Regex pour le début d'un bloc textuel"
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  "# Une expression régulière que tin utilisera pour trouver\n"
+        "# le début d'un bloc textuel.\n"
 
 #: src/lang.c:1969
-msgid	"Color of article subject lines"
-msgstr	"Couleur du sujet"
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  "Une expression régulière pour trouver la fin d'un bloc textuel."
 
 #: src/lang.c:1970
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Couleur du sujet\n"
-	"# Défaut : 6 (cyan)\n"
+msgid   "Regex for end of a verbatim block"
+msgstr  "Regex pour la fin d'un bloc textuel"
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  "# Une expression régulière que tin utilisera pour trouver\n"
+        "# la fin d'une bloc textuel.\n"
 
 #: src/lang.c:1976
-msgid	"Color of response counter"
-msgstr	"Couleur du compteur de réponse"
+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:1977
-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:1983
-msgid	"Color of sender (From:)"
-msgstr	"Couleur de l'expéditeur (From:)"
-
-#: src/lang.c:1984
-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:1990
-msgid	"Color of help/mail sign"
-msgstr	"Couleur de l'aide/signature email"
-
-#: src/lang.c:1991
-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:1997
-msgid	"Color of signatures"
-msgstr	"Couleur des signatures"
-
-#: src/lang.c:1998
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Couleur des signatures\n"
-	"# Défaut : 4 (bleu)\n"
-
-#: src/lang.c:2004
-msgid	"Color of highlighted URLs"
-msgstr	"Couleur des URLs en surbrillance"
+msgid   "MIME binary content viewer"
+msgstr  "Visualisateur de contenu MIME"
+
+#: src/lang.c:1978
+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  "# Utilisation du visualisateur MIME inclus pour les parties non textuelles\n"
+        "# si l'option '--internal' est utilisée.\n"
+        "# 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:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  "Confirmation avant le lancement d'un visualisateur externe"
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  "Demander avant d'utiliser le visualisateur"
+
+#: src/lang.c:1987
+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:1992
+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:1993
+msgid   "Catchup read groups when quitting"
+msgstr  "Marquer lu les groupes à la fermeture"
+
+#: src/lang.c:1994
+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:1999
+msgid   "Catchup group using left key"
+msgstr  "Marquer lu le groupe via la flèche gauche"
+
+#: src/lang.c:2000
+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:2005
-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"
+msgid   "Catchup thread by using left key"
+msgstr  "Marquer lu le fil via la flèche gauche"
 
 #: src/lang.c:2011
-msgid	"Color of highlighting with *stars*"
-msgstr	"Couleur des mots entre *astérisques*"
+msgid   "Which actions require confirmation"
+msgstr  "Quelles actions requièrent confirmation"
 
 #: src/lang.c:2012
-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"
+msgid   "# What should we ask confirmation for.\n"
+msgstr  "# Demande de confirmation pour...\n"
 
-#: src/lang.c:2018
-msgid	"Color of highlighting with _dash_"
-msgstr	"Couleur des mots entre _underscore_"
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  "'Marquer (non)lu l'article' ignore les marques"
 
-#: src/lang.c:2019
-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:2025
-msgid	"Color of highlighting with /slash/"
-msgstr	"Couleur des mots entre /slash/"
-
-#: src/lang.c:2026
-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:2032
-msgid	"Color of highlighting with -stroke-"
-msgstr	"Couleur des mots entre -tirets-"
-
-#: src/lang.c:2033
-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:2040
-msgid	"Attr. of highlighting with *stars*"
-msgstr	"Style des mots entre *astérisques*"
-
-#: src/lang.c:2041
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	"# Style des mots mis en évidence pour les terminaux mono\n"
-	"# Les valeurs possibles sont :\n"
-	"#   0 = Normal\n"
-	"#   1 = Souligné\n"
-	"#   2 = Mise en évidence accrue\n"
-	"#   3 = Vidéo inversée\n"
-	"#   4 = Clignotement\n"
-	"#   5 = Contrasté\n"
-	"#   6 = Gras\n"
-	"\n"
-	"# Style des mots entre *astérisques*\n"
-	"# Défaut : 6 (gras)\n"
+#: src/lang.c:2018
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  "# Si ON, la fonction 'Marquer (non) lu l'article' agit uniquement sur "
+        "l'article\n"
+        "# actuel.\n"
+
+#: src/lang.c:2022
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  "Logiciel utilisé pour lancer les URLs, <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2023
+msgid   "Program that opens URLs"
+msgstr  "Logiciel lançant les URLs"
+
+#: src/lang.c:2024
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  "# Commande ou script ouvrant les URLs. L'URL sera ajoutée\n"
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  "Utiliser la souris dans l'xterm"
+
+#: src/lang.c:2030
+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:2036
+msgid   "Use scroll keys on keypad"
+msgstr  "Utiliser les flèches du pavé numérique"
+
+#: src/lang.c:2037
+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:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  "Nombre max d'articles à récupérer. <RETOUR> valide."
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  "Nombre d'articles à récupérer"
+
+#: src/lang.c:2044
+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:2049
+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:2050
+msgid   "Article recentness time limit"
+msgstr  "Durée des articles considérés comme récents"
+
+#: src/lang.c:2051
+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:2055
+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:2056
-msgid	"Attr. of highlighting with _dash_"
-msgstr	"Style des mots entre _underscore_"
+msgid   "Wildcard matching"
+msgstr  "Concordance wildcard"
 
 #: src/lang.c:2057
-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:2063
-msgid	"Attr. of highlighting with /slash/"
-msgstr	"Style des mots entre /slash/"
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  "# Concordances Wildcard\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
 
 #: src/lang.c:2064
-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"
+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:2065
+msgid   "Score limit (kill)"
+msgstr  "Score minimum (filtre)"
+
+#: src/lang.c:2066
+msgid   "# Score limit before an article is marked killed\n"
+msgstr  "# Score minimal avant qu'un article soit filtré\n"
 
 #: src/lang.c:2070
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	"Style des mots entre -tirets-"
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  "Score par défaut pour filtrer les articles. <RETOUR> valide."
 
 #: src/lang.c:2071
-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"
+msgid   "Default score to kill articles"
+msgstr  "Score par déf. pour filtrer les articles"
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  "# Score par défaut pour filtrer les articles\n"
+
+#: src/lang.c:2076
+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:2077
-msgid	"URL highlighting in message body"
-msgstr	"Mise en évidence des URLs dans les articles"
+msgid   "Score limit (select)"
+msgstr  "Score minimum (sélection)"
 
 #: src/lang.c:2078
-msgid	"# Enable URL highlighting?\n"
-msgstr	"# Mettre en évidence les URLs ?\n"
+msgid   "# Score limit before an article is marked hot\n"
+msgstr  "# Score minimal avant qu'un article soit sélectionné\n"
+
+#: src/lang.c:2082
+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:2083
-msgid	"Word highlighting in message body"
-msgstr	"Mise en évidence des mots dans les articles"
+msgid   "Default score to select articles"
+msgstr  "Score par défaut pour sél. les articles"
 
 #: src/lang.c:2084
-msgid	"# Enable word highlighting?\n"
-msgstr	"# Mettre en évidence les mots ?\n"
-
-#: src/lang.c:2089
-msgid	"What to display instead of mark"
-msgstr	"Afficher ça plutôt qu'une marque"
+msgid   "# Default score to select articles\n"
+msgstr  "# Score par défaut pour sélectionner les articles\n"
 
 #: src/lang.c:2090
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	"# Est-ce que les astérisques et tirets doivent être affichés,\n"
-	"# même s'ils mettent en évidence des marques ?\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = non\n"
-	"#   1 = oui, afficher la marque\n"
-	"# * 2 = plutôt afficher un espace\n"
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  "Utiliser slrnface pour afficher les 'X-Face:'"
+
+#: src/lang.c:2091
+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:2099
-msgid	"Enter column number to wrap article lines to in the pager. <CR> sets."
-msgstr	"Largeur du pager. <RETOUR> valide."
+msgid   "Use ANSI color"
+msgstr  "Utiliser les couleurs ANSI"
 
 #: src/lang.c:2100
-msgid	"Page line wrap column"
-msgstr	"Largeur du pager"
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# Si ON, utiliser les couleurs ANSI\n"
 
-#: src/lang.c:2101
-msgid	"# Wrap article lines at column\n"
-msgstr	"# Justifier les lignes des articles à la colonne indiquée\n"
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  "Couleur standard de l'avant-plan"
 
 #: src/lang.c:2106
-msgid	"Wrap around threads on next unread"
-msgstr	"Englober les fils pour le non lu suivant"
-
-#: src/lang.c:2107
-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:2111
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	"Adresse mail par défaut (et nom complet). <RETOUR> valide."
+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:2112
-msgid	"Mail address (and fullname)"
-msgstr	"Adresse mail (et nom complet)"
+msgid   "Standard background color"
+msgstr  "Couleur standard de l'arrière-plan"
 
 #: src/lang.c:2113
-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:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	"Inclure en-tête Followup-To dans l'éditeur"
+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:2119
-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:2123
-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:2124
-msgid	"Create signature from path/command"
-msgstr	"Signature depuis fichier/commande"
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	"# Fichier de signature à utiliser lors de la composition/réponse à un "
-	"article.\n"
-	"# 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:2132
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	"Précéder la signature avec \"-- \". <ESPACE> change & <RETOUR> valide."
+msgid   "Color for inverse text (background)"
+msgstr  "Couleur du texte inversé (arrière-plan)"
+
+#: src/lang.c:2120
+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:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  "Couleur du texte inversé (avant-plan)"
+
+#: src/lang.c:2127
+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:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	"Précéder la signature avec \"-- \""
+msgid   "Color of text lines"
+msgstr  "Couleur du texte"
 
 #: src/lang.c:2134
-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:2138
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	"Rajouter la signature lors du repostage. <ESPACE> change & <RETOUR> valide."
-
-#: src/lang.c:2139
-msgid	"Add signature when reposting"
-msgstr	"Rajouter la signature lors du repostage"
+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:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	"# Si ON, rajoute la signature aux articles repostés\n"
-
-#: src/lang.c:2144
-#, 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."
+msgid   "Color of mini help menu"
+msgstr  "Couleur du petit menu d'aide"
 
-#: src/lang.c:2145
-msgid	"Characters used as quote-marks"
-msgstr	"Caractère de citation"
-
-#: src/lang.c:2146
-#, 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	"# Caractères utilisés pour les citations.\n"
-	"# '_' est remplacé par ' ', %%s, %%S sont remplacés par les intiales\n"
-	"# de l'auteur auquel vous répondez.\n"
-
-#: src/lang.c:2152
-msgid	"Quoting behavior"
-msgstr	"Type de citations"
-
-#: src/lang.c:2153
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	"# Type de citations lors des réponses ou des suivis.\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = Rien de spécial\n"
-	"#   1 = Citations compressées\n"
-	"#   2 = Citer les signatures\n"
-	"#   3 = Compresser les citations, citer les signatures\n"
-	"#   4 = Citer les lignes vides\n"
-	"# * 5 = Compresser les citations, citer les lignes vides\n"
-	"#   6 = Citer les signatures, citer les lignes vides\n"
-	"#   7 = Citations compr., signatures et lignes vides citées\n"
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-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:2167
-msgid	"Quote line when following up"
-msgstr	"Citation lors d'un suivi"
+#: src/lang.c:2141
+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:2147
+msgid   "Color of help text"
+msgstr  "Couleur de l'aide"
+
+#: src/lang.c:2148
+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:2154
+msgid   "Color of status messages"
+msgstr  "Couleur des messages de statut"
+
+#: src/lang.c:2155
+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:2161
+msgid   "Color of quoted lines"
+msgstr  "Couleur de citation de 1er niveau"
+
+#: src/lang.c:2162
+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:2168
-#, 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	"# Format de la citation lors de l'envoi/postage/suivi d'un article\n"
-	"# %%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"
+msgid   "Color of twice quoted line"
+msgstr  "Couleur de citation de 2nd niveau"
+
+#: src/lang.c:2169
+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:2175
-msgid	"Quote line when cross-posting"
-msgstr	"Citation lors d'un cross-post"
+msgid   "Color of =>3 times quoted line"
+msgstr  "Couleur de citation de 3e niveau ou sup."
 
-#: src/lang.c:2181
-msgid	"Quote line when mailing"
-msgstr	"Citation lors d'un envoi par mail"
-
-#: src/lang.c:2186
-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:2187
-msgid	"Insert 'User-Agent:'-header"
-msgstr	"Insérer l'en-tête 'User-Agent'"
-
-#: src/lang.c:2188
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	"# Si ON inclus l'en-tête 'User-Agent:'\n"
-
-#: src/lang.c:2193
-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:2194
-msgid	"MM_CHARSET"
-msgstr	"MM_CHARSET"
-
-#: src/lang.c:2195
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	"# Jeu d'encodage supporté localement qui est également utilisé pour les\n"
-	"# en-têtes MIME ainsi que l'en-tête 'Content-Type'.\n"
-	"# Si rien n'est déclaré, la valeur de la variable d'environnement MM_CHARSET\n"
-	"# est utilisée.\n"
-	"# Utilisez US-ASCII ou utilisez la valeur par défaut lors de la compilation\n"
-	"# de tin si aucunes des deux n'est définie.\n"
-	"# Si MIME_STRICT_CHARSET est déclarée au moment de la compilation, le jeu\n"
-	"# d'encodage autre que mm_charset est considéré comme non disponible et\n"
-	"# représenté par '?'.\n"
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	"MM_NETWORK_CHARSET"
-
-#: src/lang.c:2206
-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:2212
-msgid	"Mailbox format"
-msgstr	"Format de la boîte à lettres"
-
-#: src/lang.c:2213
-msgid	"# Format of the mailbox.\n"
-msgstr	"# Format de la boîte à lettres\n"
+#: src/lang.c:2176
+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:2182
+msgid   "Color of article header lines"
+msgstr  "Couleur des en-têtes de l'article"
+
+#: src/lang.c:2183
+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:2189
+msgid   "Color of actual news header fields"
+msgstr  "Couleur des champs d'en-tête actuels"
+
+#: src/lang.c:2190
+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:2196
+msgid   "Color of article subject lines"
+msgstr  "Couleur du sujet"
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Couleur du sujet\n"
+        "# Défaut : 6 (cyan)\n"
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  "Couleur du compteur de réponse"
+
+#: src/lang.c:2204
+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:2210
+msgid   "Color of sender (From:)"
+msgstr  "Couleur de l'expéditeur (From:)"
+
+#: src/lang.c:2211
+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:2217
+msgid   "Color of help/mail sign"
+msgstr  "Couleur de l'aide/signature email"
 
 #: src/lang.c:2218
-msgid	"MIME encoding in news messages"
-msgstr	"Encodage MIME dans les messages usenet"
-
-#: src/lang.c:2219
-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"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	"# Si nécessaire, encodage MIME (8bit, base64, quoted-printable, 7bit) du\n"
-	"# corps du message pour les mails et les arrticles. QP est suffisant pour\n"
-	"# la plupart des jeux d'encodage Européens (ISO-8859-X) avec une petite\n"
-	"# fraction de caractères non-US-ASCII; alors que le Base64 est plus indiqué\n"
-	"# 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:2227 src/lang.c:2248
-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:2228
-msgid	"Use 8bit characters in news headers"
-msgstr	"Caractères 8bit dans les en-têtes usenet"
-
-#: src/lang.c:2229
-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	"# Si ON, les caractères 8bit dans les en-têtes ne sont PAS encodés.\n"
-	"# OFF par défaut. Donc les caractères 8bit sont encodés par défaut.\n"
-	"# Les caractères 8bit dans les en-têtes sont encodés indépendamment\n"
-	"# de la valeur de cette option sauf si post_mime_encoding a comme\n"
-	"# valeur 8bit.\n"
-
-#: src/lang.c:2236
-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:2237
-msgid	"View post-processed files"
-msgstr	"Voir les fichiers traités"
+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:2224
+msgid   "Color of signatures"
+msgstr  "Couleur des signatures"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Couleur des signatures\n"
+        "# Défaut : 4 (bleu)\n"
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  "Couleur des URLs en surbrillance"
+
+#: src/lang.c:2232
+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:2238
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	"# Si ON, les fichiers traités seront ouverts\n"
+msgid   "Color of verbatim blocks"
+msgstr  "Couleur des blocs textuels"
 
-#: src/lang.c:2243
-msgid	"MIME encoding in mail messages"
-msgstr	"Encodage MIME pour les mails"
-
-#: src/lang.c:2249
-msgid	"Use 8bit characters in mail headers"
-msgstr	"Caractères 8bits dans en-têtes mail"
-
-#: src/lang.c:2250
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	"# Si ON, les caractères 8bit dans les en-têtes des mails ne sont PAS "
-	"encodés.\n"
-	"# OFF par défaut. Donc les caractères 8bit sont encodés par défaut.\n"
-	"# Les caractères 8bit dans les en-têtes sont encodés indépendamment\n"
-	"# de la valeur de cette option sauf si mail_mime_encoding a comme valeur\n"
-	"# 8bit.\n"
-	"# Notez que la RFC 2822 interdit les caractères 8bit dans les en-têtes des\n"
-	"# mails donc nous vous conseillons de ne PAS activer cette option sauf si\n"
-	"# vous avez une bonne raison.\n"
+#: src/lang.c:2239
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  "# Couleur des blocs textuels\n"
+        "# Défaut : 5 (rose)\n"
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  "Couleur des mots entre *astérisques*"
+
+#: src/lang.c:2246
+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:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  "Couleur des mots entre _underscore_"
+
+#: src/lang.c:2253
+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:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  "Couleur des mots entre /slash/"
 
 #: src/lang.c:2260
-msgid	"Strip blanks from ends of lines"
-msgstr	"Nettoyer les fins de lignes"
-
-#: src/lang.c:2261
-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"
+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:2266
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	"Si ON, utilise 'translit' pour iconv_open(3). <ESPACE> change & <RETOUR> "
-	"valide."
+msgid   "Color of highlighting with -stroke-"
+msgstr  "Couleur des mots entre -tirets-"
 
 #: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	"Translitération (conversion)"
-
-#: src/lang.c:2268
-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	"# Si ON, utilise l'extension //TRANSLIT. Cela veut dire que lorsqu'un\n"
-	"# caractère n'est pas disponible dans l'encodage choisi, il peut être\n"
-	"# remplacé par un ou plusieurs autres caractères similaires.\n"
+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:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  "Style des mots entre *astérisques*"
 
 #: src/lang.c:2275
-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:2276
-msgid	"Send you a cc automatically"
-msgstr	"Envoyer automatiquement une copie"
-
-#: src/lang.c:2277
-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:2281
-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:2282
-msgid	"Send you a blind cc automatically"
-msgstr	"Envoi automatique d'une copie privée"
-
-#: src/lang.c:2283
-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:2287
-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:2288
-msgid	"Spamtrap warning address parts"
-msgstr	"Pièges à spam dans les adresses"
-
-#: src/lang.c:2289
-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:2294
-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:2295
-msgid	"No. of days a filter entry is valid"
-msgstr	"Durée de validité d'un filtre"
-
-#: src/lang.c:2296
-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:2300
-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:2301
-msgid	"Add posted articles to filter"
-msgstr	"Créer un filtre pour les articles postés"
-
-#: src/lang.c:2302
-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:2306
-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:2307
-msgid	"Mail directory"
-msgstr	"Répertoire mail"
-
-#: src/lang.c:2308
-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:2313
-msgid	"Save articles in batch mode (-S)"
-msgstr	"Enregistrer articles en arrière-plan (-S)"
-
-#: src/lang.c:2314
-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:2319
-msgid	"The directory where you want articles/threads saved."
-msgstr	"Le répertoire où vous voulez enregistrer les articles/fils."
-
-#: src/lang.c:2320
-msgid	"Directory to save arts/threads in"
-msgstr	"Répertoire où enregistrer les articles/fils"
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	"# Répertoire où sont enregistrés les articles/fils\n"
-
-#: src/lang.c:2325
-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:2326
-msgid	"Use Archive-name: header for save"
-msgstr	"Honorer l'en-tête 'Archive-name:'"
-
-#: src/lang.c:2327
-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:2332
-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."
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  "# Style des mots mis en évidence pour les terminaux mono\n"
+        "# Les valeurs possibles sont :\n"
+        "#   0 = Normal\n"
+        "#   1 = Souligné\n"
+        "#   2 = Mise en évidence accrue\n"
+        "#   3 = Vidéo inversée\n"
+        "#   4 = Clignotement\n"
+        "#   5 = Contrasté\n"
+        "#   6 = Gras\n"
+        "\n"
+        "# Style des mots entre *astérisques*\n"
+        "# Défaut : 6 (gras)\n"
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  "Style des mots entre _underscore_"
+
+#: src/lang.c:2291
+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:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  "Style des mots entre /slash/"
+
+#: src/lang.c:2298
+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:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  "Style des mots entre -tirets-"
+
+#: src/lang.c:2305
+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:2311
+msgid   "URL highlighting in message body"
+msgstr  "Mise en évidence des URLs dans les articles"
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  "# Mettre en évidence les URLs ?\n"
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  "Mise en évidence des mots dans les articles"
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  "# Mettre en évidence les mots ?\n"
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  "Afficher ça plutôt qu'une marque"
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  "# Est-ce que les astérisques et tirets doivent être affichés,\n"
+        "# même s'ils mettent en évidence des marques ?\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = non\n"
+        "#   1 = oui, afficher la marque\n"
+        "# * 2 = plutôt afficher un espace\n"
 
 #: src/lang.c:2333
-msgid	"Mark saved articles/threads as read"
-msgstr	"Marquer lu les articles/fils enregistrés"
+msgid   "Enter column number to wrap article lines to in the pager. <CR> sets."
+msgstr  "Largeur du pager. <RETOUR> valide."
 
 #: src/lang.c:2334
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	"# Si ON, marque lu les articles qui sont enregistrés\n"
+msgid   "Page line wrap column"
+msgstr  "Largeur du pager"
 
-#: src/lang.c:2338
-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:2339
-msgid	"Post process saved articles"
-msgstr	"Post-traiter les articles enregistrés"
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  "# Justifier les lignes des articles à la colonne indiquée\n"
 
 #: src/lang.c:2340
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	"# Post-traitement (enregistrement des pj) des articles enregistrés.\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = non\n"
-	"#   1 = extraire uniquement les *.shar (archives shell)\n"
-	"#   2 = oui\n"
-
-#: src/lang.c:2349
-msgid	"Process only unread articles"
-msgstr	"Traiter uniquement les articles non lus"
-
-#: src/lang.c:2350
-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:2355
-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:2356
-msgid	"Print all headers when printing"
-msgstr	"Imprimer tous les en-têtes"
+msgid   "Wrap around threads on next unread"
+msgstr  "Englober les fils pour le non lu suivant"
 
-#: src/lang.c:2357
-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:2341
+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:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  "Adresse mail par défaut (et nom complet). <RETOUR> valide."
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  "Adresse mail (et nom complet)"
+
+#: src/lang.c:2347
+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:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  "Inclure en-tête Followup-To dans l'éditeur"
+
+#: src/lang.c:2353
+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:2361
-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:2362
-msgid	"Printer program with options"
-msgstr	"Logiciel d'impression avec options"
-
-#: src/lang.c:2363
-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:2369
-msgid	"Force redraw after certain commands"
-msgstr	"Rafraîchir l'écran après certaines actions"
-
-#: src/lang.c:2370
-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:2357
+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:2358
+msgid   "Create signature from path/command"
+msgstr  "Signature depuis fichier/commande"
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  "# Fichier de signature à utiliser lors de la composition/réponse à un "
+        "article.\n"
+        "# sigfile=fichier       utilise le contenu d'un fichier comme signature\n"
+        "# sigfile=!commande   exécute une commande externe pour générer la signature\n"
+        "# sigfile=--aucun     ne pas ajouter de signature\n"
+
+#: src/lang.c:2366
+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:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  "Précéder la signature avec \"-- \""
+
+#: src/lang.c:2368
+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:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  "Rajouter la signature lors du repostage. <ESPACE> change & <RETOUR> valide."
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  "Rajouter la signature lors du repostage"
 
 #: src/lang.c:2374
-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:2375
-msgid	"Start editor with line offset"
-msgstr	"Lancer l'éditeur avec une ligne décalée"
-
-#: src/lang.c:2376
-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:2381
-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:2382
-msgid	"Invocation of your editor"
-msgstr	"Lancement de votre éditeur"
-
-#: src/lang.c:2383
-#, 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:2388
-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:2389
-msgid	"External inews"
-msgstr	"Inews externe"
-
-#: src/lang.c:2390
-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:2394
-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:2395
-msgid	"Invocation of your mail command"
-msgstr	"Lancement de votre client mail"
-
-#: src/lang.c:2396
-#, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	"# Format des paramètres pour le MUA\n"
-	"# %%M MUA  %%S Sujet  %%T 'To:'  %%F Fichier\n"
-	"# 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:2404
-msgid	"Use interactive mail reader"
-msgstr	"Utiliser un MUA interactif"
-
-#: src/lang.c:2405
-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	"# MUA interactif :\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = pas de 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:2414
-msgid	"Remove ~/.article after posting"
-msgstr	"Effacer ~/.article après le postage"
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  "# Si ON, rajoute la signature aux articles repostés\n"
 
-#: src/lang.c:2415
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	"# Si ON, effacer ~/.article après le postage.\n"
+#: src/lang.c:2378
+#, 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:2379
+msgid   "Characters used as quote-marks"
+msgstr  "Caractère de citation"
+
+#: src/lang.c:2380
+#, 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  "# Caractères utilisés pour les citations.\n"
+        "# '_' est remplacé par ' ', %%s, %%S sont remplacés par les intiales\n"
+        "# de l'auteur auquel vous répondez.\n"
+
+#: src/lang.c:2386
+msgid   "Quoting behavior"
+msgstr  "Type de citations"
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  "# Type de citations lors des réponses ou des suivis.\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = Rien de spécial\n"
+        "#   1 = Citations compressées\n"
+        "#   2 = Citer les signatures\n"
+        "#   3 = Compresser les citations, citer les signatures\n"
+        "#   4 = Citer les lignes vides\n"
+        "# * 5 = Compresser les citations, citer les lignes vides\n"
+        "#   6 = Citer les signatures, citer les lignes vides\n"
+        "#   7 = Citations compr., signatures et lignes vides citées\n"
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+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:2401
+msgid   "Quote line when following up"
+msgstr  "Citation lors d'un suivi"
+
+#: src/lang.c:2402
+#, 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  "# Format de la citation lors de l'envoi/postage/suivi d'un article\n"
+        "# %%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:2409
+msgid   "Quote line when cross-posting"
+msgstr  "Citation lors d'un cross-post"
 
-#: src/lang.c:2419
-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:2415
+msgid   "Quote line when mailing"
+msgstr  "Citation lors d'un envoi par mail"
 
 #: src/lang.c:2420
-msgid	"Filename for posted articles"
-msgstr	"Fichier pour les articles postés"
+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:2421
-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:2426
-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."
+msgid   "Insert 'User-Agent:' header"
+msgstr  "Insérer l'en-tête 'User-Agent:'"
+
+#: src/lang.c:2422
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  "# Si ON inclus l'en-tête 'User-Agent:'\n"
 
 #: src/lang.c:2427
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	"Articles non postés dans ~/dead.articles"
+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:2428
-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"
+msgid   "MM_CHARSET"
+msgstr  "MM_CHARSET"
 
-#: src/lang.c:2432
-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:2433
-msgid	"No unsubscribed groups in newsrc"
-msgstr	"Pas de groupes désabonnés dans newsrc"
-
-#: src/lang.c:2434
-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:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  "# Jeu d'encodage supporté localement qui est également utilisé pour les\n"
+        "# en-têtes MIME ainsi que l'en-tête 'Content-Type'.\n"
+        "# Si rien n'est déclaré, la valeur de la variable d'environnement MM_CHARSET\n"
+        "# est utilisée.\n"
+        "# Utilisez US-ASCII ou utilisez la valeur par défaut lors de la compilation\n"
+        "# de tin si aucunes des deux n'est définie.\n"
+        "# Si MIME_STRICT_CHARSET est déclarée au moment de la compilation, le jeu\n"
+        "# d'encodage autre que mm_charset est considéré comme non disponible et\n"
+        "# représenté par '?'.\n"
 
 #: src/lang.c:2439
-msgid	"Remove bogus groups from newsrc"
-msgstr	"Effacer les groupes corrompus de newsrc"
+msgid   "MM_NETWORK_CHARSET"
+msgstr  "MM_NETWORK_CHARSET"
 
 #: src/lang.c:2440
-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	"# Que faire des groupes corrompus du fichier newsrc\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"# * 0 = garder\n"
-	"#   1 = effacer\n"
-	"#   2 = marquer d'un D dans l'écran de sélection\n"
-
-#: src/lang.c:2448
-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:2449
-msgid	"Interval in secs to reread active"
-msgstr	"Durée avant relecture du fichier active"
-
-#: src/lang.c:2450
-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:2455
-msgid	"Reconnect to server automatically"
-msgstr	"Reconnexion automatique au serveur"
-
-#: src/lang.c:2456
-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"
+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:2444
+msgid   "Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  "Encodage local (p.e. US-ASCII, ISO_8859_1, EUC_KR), <RETOUR> valide."
+
+#: src/lang.c:2445
+msgid   "MM_LOCAL_CHARSET"
+msgstr  "MM_LOCAL_CHARSET"
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  "# Encodage de caractères local disponible.\n"
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  "Format de la boîte à lettres"
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  "# Format de la boîte à lettres\n"
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  "Encodage MIME dans les messages usenet"
 
 #: src/lang.c:2460
-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."
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  "# Si nécessaire, encodage MIME (8bit, base64, quoted-printable, 7bit) du\n"
+        "# corps du message pour les mails et les arrticles. QP est suffisant pour\n"
+        "# la plupart des jeux d'encodage Européens (ISO-8859-X) avec une petite\n"
+        "# fraction de caractères non-US-ASCII; alors que le Base64 est plus indiqué\n"
+        "# 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:2468 src/lang.c:2489
+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:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  "Caractères 8bit dans les en-têtes usenet"
+
+#: src/lang.c:2470
+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  "# Si ON, les caractères 8bit dans les en-têtes ne sont PAS encodés.\n"
+        "# OFF par défaut. Donc les caractères 8bit sont encodés par défaut.\n"
+        "# Les caractères 8bit dans les en-têtes sont encodés indépendamment\n"
+        "# de la valeur de cette option sauf si post_mime_encoding a comme\n"
+        "# valeur 8bit.\n"
+
+#: src/lang.c:2477
+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:2478
+msgid   "View post-processed files"
+msgstr  "Voir les fichiers traités"
+
+#: src/lang.c:2479
+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:2484
+msgid   "MIME encoding in mail messages"
+msgstr  "Encodage MIME pour les mails"
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  "Caractères 8bits dans en-têtes mail"
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  "# Si ON, les caractères 8bit dans les en-têtes des mails ne sont PAS "
+        "encodés.\n"
+        "# OFF par défaut. Donc les caractères 8bit sont encodés par défaut.\n"
+        "# Les caractères 8bit dans les en-têtes sont encodés indépendamment\n"
+        "# de la valeur de cette option sauf si mail_mime_encoding a comme valeur\n"
+        "# 8bit.\n"
+        "# Notez que la RFC 2822 interdit les caractères 8bit dans les en-têtes des\n"
+        "# mails donc nous vous conseillons de ne PAS activer cette option sauf si\n"
+        "# vous avez une bonne raison.\n"
+
+#: src/lang.c:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  "Nettoyer les fins de lignes"
+
+#: src/lang.c:2502
+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:2507
+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:2508
+msgid   "Transliteration"
+msgstr  "Translitération (conversion)"
+
+#: src/lang.c:2509
+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  "# Si ON, utilise l'extension //TRANSLIT. Cela veut dire que lorsqu'un\n"
+        "# 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:2517
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  "S'envoyer automatiquement une copie"
+
+#: src/lang.c:2518
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  "# Mettre votre nom dans le champ Cc: et/ou CCi: lors de l'envoi d'un "
+        "article.\n"
+        "# Les valeurs possibles sont (la valeur par défaut est indiquée par *) :\n"
+        "# * 0 = Non\n"
+        "#   1 = Cc\n"
+        "#   2 = Cci\n"
+        "#   3 = Cc et Cci\n"
+
+#: src/lang.c:2527
+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:2528
+msgid   "Spamtrap warning address parts"
+msgstr  "Pièges à spam dans les adresses"
+
+#: src/lang.c:2529
+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:2534
+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:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  "Durée de validité d'un filtre"
+
+#: src/lang.c:2536
+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:2540
+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:2541
+msgid   "Add posted articles to filter"
+msgstr  "Créer un filtre pour les articles postés"
+
+#: src/lang.c:2542
+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:2546
+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:2547
+msgid   "Mail directory"
+msgstr  "Répertoire mail"
+
+#: src/lang.c:2548
+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:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  "Enregistrer articles en arrière-plan (-S)"
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  "Le répertoire où vous voulez enregistrer les articles/fils."
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  "Répertoire où enregistrer les articles/fils"
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  "# Répertoire où sont enregistrés les articles/fils\n"
+
+#: src/lang.c:2565
+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:2566
+msgid   "Use Archive-name: header for save"
+msgstr  "Honorer l'en-tête 'Archive-name:'"
+
+#: src/lang.c:2567
+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:2572
+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:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  "Marquer lu les articles/fils enregistrés"
+
+#: src/lang.c:2574
+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:2578
+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:2579
+msgid   "Post process saved articles"
+msgstr  "Post-traiter les articles enregistrés"
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  "# Post-traitement (enregistrement des PJ) des articles enregistrés.\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = non\n"
+        "#   1 = extraire uniquement les *.shar (archives shell)\n"
+        "#   2 = oui\n"
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  "Traiter uniquement les articles non lus"
+
+#: src/lang.c:2590
+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:2595
+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:2596
+msgid   "Print all headers when printing"
+msgstr  "Imprimer tous les en-têtes"
+
+#: src/lang.c:2597
+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:2601
+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:2602
+msgid   "Printer program with options"
+msgstr  "Logiciel d'impression avec options"
+
+#: src/lang.c:2603
+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:2609
+msgid   "Force redraw after certain commands"
+msgstr  "Rafraîchir l'écran après certaines actions"
+
+#: src/lang.c:2610
+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:2614
+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:2615
+msgid   "Start editor with line offset"
+msgstr  "Lancer l'éditeur avec une ligne décalée"
+
+#: src/lang.c:2616
+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:2621
+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:2622
+msgid   "Invocation of your editor"
+msgstr  "Lancement de votre éditeur"
+
+#: src/lang.c:2623
+#, 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:2628
+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:2629
+msgid   "External inews"
+msgstr  "Inews externe"
+
+#: src/lang.c:2630
+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:2634
+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:2635
+msgid   "Invocation of your mail command"
+msgstr  "Lancement de votre client mail"
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  "# Format des paramètres pour le MUA\n"
+        "# %%M MUA  %%S Sujet  %%T 'To:'  %%F Fichier\n"
+        "# 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:2644
+msgid   "Use interactive mail reader"
+msgstr  "Utiliser un MUA interactif"
+
+#: src/lang.c:2645
+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  "# MUA interactif :\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = pas de 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:2654
+msgid   "Remove ~/.article after posting"
+msgstr  "Effacer ~/.article après le postage"
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  "# Si ON, effacer ~/.article après le postage.\n"
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+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:2668
+msgid   "Filename for posted articles"
+msgstr  "Fichier pour les articles postés"
+
+#: src/lang.c:2669
+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:2674
+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:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  "Articles non postés dans ~/dead.articles"
+
+#: src/lang.c:2676
+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:2680
+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:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  "Pas de groupes désabonnés dans newsrc"
+
+#: src/lang.c:2682
+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:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  "Effacer les groupes corrompus de newsrc"
+
+#: src/lang.c:2688
+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  "# Que faire des groupes corrompus du fichier newsrc\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "# * 0 = garder\n"
+        "#   1 = effacer\n"
+        "#   2 = marquer d'un D dans l'écran de sélection\n"
+
+#: src/lang.c:2696
+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:2697
+msgid   "Interval in secs to reread active"
+msgstr  "Durée avant relecture du fichier active"
+
+#: src/lang.c:2698
+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:2703
+msgid   "Reconnect to server automatically"
+msgstr  "Reconnexion automatique au serveur"
+
+#: src/lang.c:2704
+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:2708
+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:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  "Cache local des en-têtes NNTP"
+
+#: src/lang.c:2710
+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:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  "Formatage des dates. <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  "Format des dates affichées"
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  "# Format des dates affichées\n"
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  "Normalisation d'Unicode"
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  "# Normalisation d'Unicode\n"
+        "# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
+        "#   0 = Aucune\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  "Rendu BiDi"
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  "# Si ON, le texte bi-directionnel est affiché par tin\n"
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  "GroupMarkUnselArtRead automatiquement"
+
+#: src/lang.c:2752
+msgid   "Delete post-process files"
+msgstr  "Effacer les fichiers traités"
+
+#: src/lang.c:2757
+msgid   "Filename for all mailed 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:2758
+msgid   "Mailbox to save sent mails"
+msgstr  "Boîte aux lettres pour les emails envoyés"
+
+#: src/lang.c:2763
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  "En-tête 'Followup-To:' pour ce(s) groupe(s). <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  "En-tête 'Followup-To:'"
+
+#: src/lang.c:2769
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  "Adresse mail par défaut (et nom complet). <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2776
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  "Chemin et options pour ispell (ou autre correcteur). <RETOUR> valide, <ESC> "
+        "annule."
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  "Programme 'Ispell'"
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  "Lorsque le groupe est une liste de diffusion, envoyer les réponses à cette "
+        "adresse email."
+
+#: src/lang.c:2784
+msgid   "Mailing list address"
+msgstr  "Adresse email de la liste de diffusion"
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  "Faire suivre les articles en pièce-jointe"
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  "Une liste des 'Content-Type' MIME majeur/mineur séparée par des virgules. "
+        "<ESC> annule."
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  "Quels types MIME seront enregistrés"
+
+#: src/lang.c:2801
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  "Contenu de l'en-tête 'Organisation:'. <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  "En-tête 'Organisation:'"
+
+#: src/lang.c:2807
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  "Nom des articles sauvegardés. <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2808
+msgid   "savefile"
+msgstr  "savefile"
 
-#: src/lang.c:2461
-msgid	"Cache NNTP overview files locally"
-msgstr	"Cache local des en-têtes NNTP"
+#: src/lang.c:2813 src/lang.c:2837
+#, fuzzy
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  "Formatage des dates. <RETOUR> valide, <ESC> annule."
 
-#: src/lang.c:2462
-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:2814
+#, fuzzy
+msgid   "Quick (1 key) select filter scope"
+msgstr  "Ajouter rapidement une règle ?"
 
-#: src/lang.c:2466
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	"Formatage des dates. <RETOUR> valide, <ESC> annule."
+#: src/lang.c:2819 src/lang.c:2843
+#, fuzzy
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  "Nom des articles sauvegardés. <RETOUR> valide, <ESC> annule."
 
-#: src/lang.c:2467
-msgid	"Format string for display of dates"
-msgstr	"Format des dates affichées"
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
 
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	"# Format des dates affichées\n"
+#: src/lang.c:2825 src/lang.c:2849
+#, fuzzy
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  "Contenu de l'en-tête 'Organisation:'. <RETOUR> valide, <ESC> annule."
 
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	"Normalisation d'Unicode"
+#: src/lang.c:2826
+#, fuzzy
+msgid   "Quick (1 key) select filter case"
+msgstr  "Ajouter rapidement une règle ?"
 
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	"# Normalisation d'Unicode\n"
-	"# Les valeurs possibles sont (celle par défaut est marquée par *) :\n"
-	"#   0 = Aucune\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
+#: src/lang.c:2831 src/lang.c:2855
+#, fuzzy
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  "Insérer cet en-tête lors du postage. <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
 
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	"Rendu BiDi"
+#: src/lang.c:2838
+#, fuzzy
+msgid   "Quick (1 key) kill filter scope"
+msgstr  "Ajouter rapidement un filtre ?"
 
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	"# Si ON, le texte bi-directionnel est affiché par tin\n"
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
 
-#: src/misc.c:3750
+#: src/lang.c:2850
+#, fuzzy
+msgid   "Quick (1 key) kill filter case"
+msgstr  "Ajouter rapidement un filtre ?"
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  "Utilise cet encodage si aucun n'est spécifié, <RETOUR> pour changer."
+
+#: src/lang.c:2863
+msgid   "UNDECLARED_CHARSET"
+msgstr  "UNDECLARED_CHARSET"
+
+#: src/lang.c:2869
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  "Ajouter ce texte au début du message. <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2870
+msgid   "X_Body"
+msgstr  "X_Body"
+
+#: src/lang.c:2875
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  "Insérer cet en-tête lors du postage. <RETOUR> valide, <ESC> annule."
+
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  "X_Headers"
+
+#: src/lang.c:2881
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  "Si ON, inclus un en-tête 'X-Comment-To:'. <ESPACE> change & <RETOUR> valide."
+
+#: src/lang.c:2882
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  "Insérer l'en-tête 'X-Comment-To:'"
+
+#: src/misc.c:3754
 #, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	"Version : %s %s release %s (\"%s\") %s %s\n"
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "Version : %s %s release %s (\"%s\") %s %s\n"
 
-#: src/misc.c:3753
+#: src/misc.c:3757
 #, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	"Version : %s %s release %s (\"%s\")\n"
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "Version : %s %s release %s (\"%s\")\n"
 
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	"Inacessible ?\n"
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  "Inacessible ?\n"
 
-#: src/nntplib.c:824
+#: src/nntplib.c:819
 #, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	"\n"
-	"Connexion au serveur expirée, reconnexion # %d\n"
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  "\n"
+        "Connexion au serveur expirée, reconnexion # %d\n"
 
-#: src/nntplib.c:842 src/nntplib.c:1630
-msgid	"Rejoin current group\n"
-msgstr	"Rejoindre le groupe actuel\n"
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  "Rejoindre le groupe actuel\n"
 
-#: src/nntplib.c:849 src/nntplib.c:1637
+#: src/nntplib.c:863 src/nntplib.c:1838
 #, c-format
-msgid	"Read (%s)\n"
-msgstr	"Lecture (%s)\n"
+msgid   "Read (%s)\n"
+msgstr  "Lecture (%s)\n"
 
-#: src/nntplib.c:851
+#: src/nntplib.c:865
 #, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	"Réenvoyer la dernière commande (%s)\n"
+msgid   "Resend last command (%s)\n"
+msgstr  "Réenvoyer la dernière commande (%s)\n"
 
-# TRANSLATION MISSING
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  "CAPABILITIES n'a pas annoncé READER"
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  "MOTD: "
 
-#: src/nrctbl.c:170
+#: src/nrctbl.c:175
 #, c-format
-msgid	"couldn't expand %s\n"
-msgstr	"impossible de décompacter %s\n"
+msgid   "couldn't expand %s\n"
+msgstr  "impossible de décompacter %s\n"
 
-# TRANSLATION MISSING
-#: src/post.c:1171
+#: src/post.c:1307
 #, 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	""
+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  "La ligne %d dépasse les 998 octets et devrait être réduite, mais\n"
+        "l'encodage n'est ni %s ni %s\n"
 
-# TRANSLATION MISSING
-#: src/post.c:1176
+#: src/post.c:1312
 #, 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	""
+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  "La ligne %d dépasse les 998 octets et devrait être réduite, mais\n"
+        "l'encodage est %s sans que l'option MIME_BREAK_LONG_LINES ne soit\n"
+        "activée ou l'article ne contient pas de caractères 8 bits donc pas\n"
+        "besoin de réduire la ligne\n"
 
-# TRANSLATION MISSING
-#: src/post.c:1178
+#: src/post.c:1314
 #, c-format
-msgid	"Line %d is longer than 998 octets, and should be folded, but\n"
-	"encoding is not set to %s\n"
-msgstr	""
+msgid   "Line %d is longer than 998 octets and should be folded, but\n"
+        "encoding is not set to %s\n"
+msgstr  "La ligne %d dépasse les 998 octets et devrait être réduite, mais\n"
+        "l'encodage n'est pas %s\n"
 
-#: src/post.c:1993
+#: src/post.c:2278
 #, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"Postage : %.*s ..."
+msgid   "Posting: %.*s ..."
+msgstr  "Postage : %.*s ..."
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	"Annulation de la lecture, un moment svp..."
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	"Lecture annulée\n"
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	"Purge\n"
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	"non changé"
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	"[- Indisponible -]"
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "Annulation de la lecture, un moment svp..."
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "Lecture annulée\n"
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  "Purge\n"
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  "inchangé"
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  "[- Indisponible -]"
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	"Ce message a été composé avec le format MIME 'multipart/mixed'. Si vous\n"
-	"lisez ceci, votre MUA ne peut probablement pas lire ce nouveau format, donc\n"
-	"ce qui suit peut paraître assez bizarre.\n"
-	"\n"
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	"octets"
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	"non lu(s)"
-
-#: src/select.c:379
-msgid	"all"
-msgstr	"tout"
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	" R"
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	"Lancement de slrnface impossible : Variable %s introuvable."
-
-#: src/xface.c:99 src/xface.c:131
-#, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	"Lancement de slrnface impossible : échec de la création de %s"
-
-#: src/xface.c:109
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	"Ce répertoire est utilisé pour créer les pipes de communication entre\n"
-	"slrnface et ses processus pères. Il devrait être normalement vide car\n"
-	"le pipe est effacé juste après son ouverture entre les processus.\n"
-	"\n"
-
-#: src/xface.c:123
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	"Lancement de Slrnface impossible : création du nom fifo impossible."
-
-#: src/xface.c:162
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  "Ce message a été composé avec le format MIME 'multipart/mixed'. Si vous\n"
+        "lisez ceci, votre MUA ne peut probablement pas lire ce nouveau format, donc\n"
+        "ce qui suit peut paraître assez bizarre.\n"
+        "\n"
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "octets"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "non lu(s)"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "tout"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  " R"
+
+#: src/xface.c:70
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  "Lancement de Slrnface impossible : ce n'est pas un xterm."
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
+#, c-format
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  "Lancement de slrnface impossible : Variable %s introuvable."
+
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  "Lancement de slrnface impossible : échec de la création de %s"
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  "Ce répertoire est utilisé pour créer les pipes de communication entre\n"
+        "slrnface et ses processus pères. Il devrait être normalement vide car\n"
+        "le pipe est effacé juste après son ouverture entre les processus.\n"
+        "\n"
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  "Lancement de Slrnface impossible : création du nom fifo impossible."
+
+#: src/xface.c:174
 #, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	"Fermeture anormale de Slrnface, code %d."
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  "Fermeture anormale de Slrnface, code %d."
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, c-format
-msgid	"Slrnface failed: %s."
-msgstr	"Échec de Slrnface : %s."
+msgid   "Slrnface failed: %s."
+msgstr  "Échec de Slrnface : %s."
Binary files tin-1.8.3/po/ru.gmo and tin-2.0.0/po/ru.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/ru.po tin-2.0.0/po/ru.po
--- tin-1.8.3/po/ru.po	2007-02-01 13:58:04.000000000 +0100
+++ tin-2.0.0/po/ru.po	2011-08-22 18:32:42.511444508 +0200
@@ -1,6399 +1,7535 @@
-# Russian translations for tin package
-# Copyright (C) 2005 Free Software Foundation, Inc.
+# Russian translations for tin.
 # Andrei Emeltchenko <andrei.emeltchenko@finik.org>, 2005.
 #
-msgid	""
-msgstr	"Project-Id-Version: tin 1.8.2\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+0100\n"
-	"PO-Revision-Date: 2006-04-21 13:55+0200\n"
-	"Last-Translator: Andrei Emeltchenko <andrei.emeltchenko@finik.org>\n"
-	"Language-Team: Russian <ru@li.org>\n"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=KOI8-R\n"
-	"Content-Transfer-Encoding: 8bit\n"
-	"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
-	"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.8.2\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\n"
+        "PO-Revision-Date: 2006-04-21 15:39+0200\n"
+        "Last-Translator: Andrei Emeltchenko <andrei.emeltchenko@finik.org>\n"
+        "Language-Team: Russian <gnu@mx.ru>\n"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=KOI8-R\n"
+        "Content-Transfer-Encoding: 8bit\n"
+        "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+        "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
+#, c-format
+msgid   "attribute with no scope: %s"
+msgstr  ""
+
+#: src/attrib.c:884
+#, fuzzy
+msgid   "Processing attributes... "
+msgstr  "úÁÐÉÓØ ÆÁÊÌÁ ÁÔÒÉÂÕÔÏ×..."
+
+#: src/attrib.c:1102
+#, c-format
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  "# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÜÔÏÔ ÂÌÏË ËÏÍÍÅÎÔÁÒÉÅ×\n"
+        "#\n"
 
-#: src/art.c:1534
+#: src/attrib.c:1103
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	""
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  "#  scope=óôòïëá (ÎÁÐÒ. alt.*,!alt.bin*) [mandatory]\n"
 
-#: src/attrib.c:649
+#: src/attrib.c:1104
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	"# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÜÔÏÔ ÂÌÏË ËÏÍÍÅÎÔÁÒÉÅ×\n"
-	"#\n"
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:650
+#: src/attrib.c:1105
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	"#  scope=óôòïëá (ÎÁÐÒ. alt.*,!alt.bin*) [mandatory]\n"
+msgid   "#  advertising=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:651
+#: src/attrib.c:1106
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	"#  maildir=óôòïëá (ÎÁÐÒ. ~/Mail)\n"
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:652
+#: src/attrib.c:1107
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	"#  savedir=óôòïëá (ÎÁÐÒ. ~user/News)\n"
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1108
+#, fuzzy, c-format
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  "#  show_author=þéóìï\n"
 
-#: src/attrib.c:653
+#: src/attrib.c:1109
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	"#  savefile=óôòïëá (ÎÁÐÒ. =linux)\n"
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  ""
 
-#: src/attrib.c:654
+#: src/attrib.c:1110
+#, fuzzy, c-format
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1111
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	"#  sigfile=óôòïëá (ÎÁÐÒ. $var/sig)\n"
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:655
+#: src/attrib.c:1112
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	"#  organization=óôòïëá (ÅÓÌÉ ÎÁÞÉÎÁÅÔÓÑ Ó '/', ÔÏ ÐÒÏÞÉÔÁÔØ ÉÚ ÆÁÊÌÁ)\n"
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:656
+#: src/attrib.c:1113
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	"#  followup_to=óôòïëá\n"
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:657
+#: src/attrib.c:1114
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	"#  mailing_list=óôòïëá (ÎÁÐÒ. majordomo@example.org)\n"
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  ""
 
-#: src/attrib.c:658
+#: src/attrib.c:1115
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	"#  x_headers=óôòïëá (ÎÁÐÒ. ~/.tin/extra-headers)\n"
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:659
+#: src/attrib.c:1116
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	"#  x_body=óôòïëá (ÎÁÐÒ. ~/.tin/extra-body-text)\n"
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  ""
 
-#: src/attrib.c:660
+#: src/attrib.c:1117
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	"#  from=óôòïëá (ÄÏÂÁ×ØÔÅ ÖÅÌÁÅÍÕÀ ÓÔÒÏËÕ From:, ÎÅ ÉÓÐÏÌØÚÕÊÔÅ ËÁ×ÙÞËÉ)\n"
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  "#  fcc=óôòïëá (ÎÁÐÒ. =mailbox)\n"
 
-#: src/attrib.c:661
+#: src/attrib.c:1118
 #, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	"#  news_quote_format=óôòïëá\n"
+msgid   "#  followup_to=STRING\n"
+msgstr  "#  followup_to=óôòïëá\n"
 
-#: src/attrib.c:662
+#: src/attrib.c:1119
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	"#  quote_chars=óôòïëá (%%s, %%S ÄÌÑ ÉÎÉÃÉÁÌÏ×)\n"
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  "#  from=óôòïëá (ÄÏÂÁ×ØÔÅ ÖÅÌÁÅÍÕÀ ÓÔÒÏËÕ From:, ÎÅ ÉÓÐÏÌØÚÕÊÔÅ ËÁ×ÙÞËÉ)\n"
 
-#: src/attrib.c:663
+#: src/attrib.c:1120
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	"#  mime_types_to_save=óôòïëá (ÎÁÐÒ. image/*,!image/bmp)\n"
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1121
+#, fuzzy, c-format
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  "#  thread_perc=þéóìï\n"
 
-#: src/attrib.c:665
+#: src/attrib.c:1122
 #, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	"#  ispell=óôòïëá\n"
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  ""
 
-#: src/attrib.c:667
+#: src/attrib.c:1130
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	""
+msgid   "#  ispell=STRING\n"
+msgstr  "#  ispell=óôòïëá\n"
 
-#: src/attrib.c:668
+#: src/attrib.c:1132
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	""
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  "#  maildir=óôòïëá (ÎÁÐÒ. ~/Mail)\n"
 
-#: src/attrib.c:669
+#: src/attrib.c:1133
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	""
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  "#  mailing_list=óôòïëá (ÎÁÐÒ. majordomo@example.org)\n"
 
-#: src/attrib.c:670
+#: src/attrib.c:1134
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	""
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  "#  mime_types_to_save=óôòïëá (ÎÁÐÒ. image/*,!image/bmp)\n"
 
-#: src/attrib.c:671
+#: src/attrib.c:1135
+#, fuzzy, c-format
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1136
+#, fuzzy, c-format
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1137
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	""
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:672
+#: src/attrib.c:1139
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	"#  thread_arts=þéóìï"
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  "#  mm_network_charset=ÐÏÄÄÅÒÖÉ×ÁÅÍÁÑ_ËÏÄÉÒÏ×ËÁ"
 
-#: src/attrib.c:679
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	"#  thread_perc=þéóìï\n"
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  "#  undeclared_charset=óôòïëá (ÐÏ ÕÍÏÌÞÁÎÉÀ US-ASCII)\n"
+
+#: src/attrib.c:1148
+#, fuzzy, c-format
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  "#  news_quote_format=óôòïëá\n"
+
+#: src/attrib.c:1149
+#, fuzzy, c-format
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  "#  news_quote_format=óôòïëá\n"
 
-#: src/attrib.c:680
+#: src/attrib.c:1150
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	"#  show_author=þéóìï\n"
+msgid   "#  news_quote_format=STRING\n"
+msgstr  "#  news_quote_format=óôòïëá\n"
 
-#: src/attrib.c:686
+#: src/attrib.c:1151
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	"#  show_info=þéóìï\n"
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  "#  organization=óôòïëá (ÅÓÌÉ ÎÁÞÉÎÁÅÔÓÑ Ó '/', ÔÏ ÐÒÏÞÉÔÁÔØ ÉÚ ÆÁÊÌÁ)\n"
 
-#: src/attrib.c:692
+#: src/attrib.c:1152
+#, fuzzy, c-format
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1153
+#, fuzzy, c-format
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  "#  thread_perc=þéóìï\n"
+
+#: src/attrib.c:1154
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	"#  sort_art_type=þéóìï\n"
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  ""
+
+#: src/attrib.c:1161
+#, fuzzy, c-format
+msgid   "#  post_process_type=NUM\n"
+msgstr  "#  post_proc_type=þéóìï\n"
+
+#: src/attrib.c:1166
+#, fuzzy, c-format
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  "#  post_proc_type=þéóìï\n"
 
-#: src/attrib.c:710
+#: src/attrib.c:1167
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	"#  sort_threads_type=þéóìï\n"
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  "#  quick_kill_scope=óôòïëá (ÎÁÐÒ. talk.*)\n"
 
-#: src/attrib.c:715
+#: src/attrib.c:1168
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	"#  post_proc_type=þéóìï\n"
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:720
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	"#  quick_kill_scope=óôòïëá (ÎÁÐÒ. talk.*)\n"
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:721
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  "#  quick_kill_header=þéóìï\n"
 
-#: src/attrib.c:722
+#: src/attrib.c:1171 src/attrib.c:1180
+#, fuzzy, c-format
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  "#    0=subj (ÕÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ) 1=subj (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)\n"
+
+#: src/attrib.c:1172 src/attrib.c:1181
+#, fuzzy, c-format
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  "#    2=from (ÕÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ) 3=from (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)\n"
+
+#: src/attrib.c:1173 src/attrib.c:1182
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	""
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  ""
 
-#: src/attrib.c:723
+#: src/attrib.c:1174 src/attrib.c:1183
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	"#  quick_kill_header=þéóìï\n"
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  ""
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	"#    0=subj (ÕÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ) 1=subj (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)\n"
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  ""
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1176
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	"#    2=from (ÕÞÉÔÙ×ÁÔØ ÒÅÇÉÓÔÒ) 3=from (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)\n"
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  "#  quick_select_scope=óôòïëá\n"
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1177
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	"#    4=msgid 5=ÓÔÒÏËÉ\n"
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:727
+#: src/attrib.c:1178
 #, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	"#  quick_select_scope=óôòïëá\n"
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:728
+#: src/attrib.c:1179
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_select_header=NUM\n"
+msgstr  "#  quick_select_header=þéóìï\n"
 
-#: src/attrib.c:729
+#: src/attrib.c:1185
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	""
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  "#  quote_chars=óôòïëá (%%s, %%S ÄÌÑ ÉÎÉÃÉÁÌÏ×)\n"
+
+#: src/attrib.c:1187
+#, fuzzy, c-format
+msgid   "#  print_header=ON/OFF\n"
+msgstr  "#  thread_perc=þéóìï\n"
+
+#: src/attrib.c:1189
+#, fuzzy, c-format
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
 
-#: src/attrib.c:730
+#: src/attrib.c:1190
+#, fuzzy, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  "#  followup_to=óôòïëá\n"
+
+#: src/attrib.c:1191
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	"#  quick_select_header=þéóìï\n"
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  "#  savedir=óôòïëá (ÎÁÐÒ. ~user/News)\n"
 
-#: src/attrib.c:734
+#: src/attrib.c:1192
 #, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	""
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  "#  savefile=óôòïëá (ÎÁÐÒ. =linux)\n"
 
-#: src/attrib.c:735
+#: src/attrib.c:1193
 #, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	"#  fcc=óôòïëá (ÎÁÐÒ. =mailbox)\n"
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  "#  sigfile=óôòïëá (ÎÁÐÒ. $var/sig)\n"
 
-#: src/attrib.c:736
+#: src/attrib.c:1194
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	""
+msgid   "#  show_author=NUM\n"
+msgstr  "#  show_author=þéóìï\n"
 
-#: src/attrib.c:737
+#: src/attrib.c:1200
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	""
+msgid   "#  show_info=NUM\n"
+msgstr  "#  show_info=þéóìï\n"
+
+#: src/attrib.c:1206
+#, fuzzy, c-format
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1207
+#, fuzzy, c-format
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1208
+#, fuzzy, c-format
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
 
-#: src/attrib.c:739
+#: src/attrib.c:1209
+#, fuzzy, c-format
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1210
+#, fuzzy, c-format
+msgid   "#  sort_article_type=NUM\n"
+msgstr  "#  sort_art_type=þéóìï\n"
+
+#: src/attrib.c:1228
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	"#  mm_network_charset=ÐÏÄÄÅÒÖÉ×ÁÅÍÁÑ_ËÏÄÉÒÏ×ËÁ"
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  "#  sort_threads_type=þéóìï\n"
 
-#: src/attrib.c:746
+#: src/attrib.c:1237
+#, fuzzy, c-format
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1238
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	"#  undeclared_charset=óôòïëá (ÐÏ ÕÍÏÌÞÁÎÉÀ US-ASCII)\n"
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:748
+#: src/attrib.c:1239
 #, c-format
-msgid	"#\n"
-	"# Note that it is best to put general (global scoping)\n"
-msgstr	""
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1240
+#, fuzzy, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  "#  thread_arts=þéóìï"
 
-#: src/attrib.c:749
+#: src/attrib.c:1247
 #, c-format
-msgid	"# entries first followed by group specific entries.\n"
-	"#\n"
-msgstr	""
+msgid   "#  thread_perc=NUM\n"
+msgstr  "#  thread_perc=þéóìï\n"
 
-#: src/attrib.c:750
+#: src/attrib.c:1248
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	""
+msgid   "#  trim_article_body=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:756
+#: src/attrib.c:1249
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	"# ÄÏÂÁ×ØÔÅ ÄÏÐÏÌÎÉÔÅÌØÎÙÅ ÚÁÇÏÌÏ×ËÉ ÚÄÅÓØ\n"
+msgid   "#    0 = Don't trim article body\n"
+msgstr  ""
 
-#: src/attrib.c:764
+#: src/attrib.c:1250
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	""
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  ""
 
-#: src/attrib.c:768
+#: src/attrib.c:1251
 #, c-format
-msgid	"# in *binaries* do full post processing but no TeX2ISO conversion,\n"
-msgstr	"# × *binaries* ÄÅÌÁÔØ ÐÏÌÎÕÀ ÐÏÓÔ-ÏÂÒÁÂÏÔËÕ, ÎÏ ÔÏÌØËÏ ÎÅ TeX2ISO\n"
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  ""
 
-#: src/attrib.c:769
+#: src/attrib.c:1252
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	""
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  ""
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	"(ÎÅÉÚ×ÅÓÔÎÏ)"
+#: src/attrib.c:1253
+#, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  ""
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	"õÄÁÌ£Î ÉÚ ÐÒÅÄÙÄÕÝÅÇÏ ÐÒÁ×ÉÌÁ: "
-
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	""
+#: src/attrib.c:1254
+#, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1258
+#, fuzzy, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  "#  show_author=þéóìï\n"
+
+#: src/attrib.c:1259
+#, c-format
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  "#  x_body=óôòïëá (ÎÁÐÒ. ~/.tin/extra-body-text)\n"
+
+#: src/attrib.c:1260
+#, c-format
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  "#  x_headers=óôòïëá (ÎÁÐÒ. ~/.tin/extra-headers)\n"
+
+#: src/attrib.c:1262
+#, c-format
+msgid   "#\n"
+        "# Note that it is best to put general (global scoping)\n"
+msgstr  ""
+
+#: src/attrib.c:1263
+#, c-format
+msgid   "# entries first followed by group specific entries.\n"
+        "#\n"
+msgstr  ""
+
+#: src/attrib.c:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  ""
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(ÎÅÉÚ×ÅÓÔÎÏ)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  ""
 
 #: src/lang.c:42
-msgid	"1 Response"
-msgstr	"1 ÏÔ×ÅÔ"
+msgid   "1 Response"
+msgstr  "1 ÏÔ×ÅÔ"
 
 #: src/lang.c:46
 #, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%s ÎÅ ÓÏÄÅÒÖÉÔ ÇÒÕÐÐ ÎÏ×ÏÓÔÅÊ. ÷ÙÈÏÄ."
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s ÎÅ ÓÏÄÅÒÖÉÔ ÇÒÕÐÐ ÎÏ×ÏÓÔÅÊ. ÷ÙÈÏÄ."
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	"×ÓÅ "
+msgid   "all "
+msgstr  "×ÓÅ "
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	"÷ÓÅ ÇÒÕÐÐÙ"
+msgid   "All groups"
+msgstr  "÷ÓÅ ÇÒÕÐÐÙ"
 
 #: src/lang.c:49
 #, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	"æÁÊÌ %s ÓÕÝÅÓÔ×ÕÅÔ. %s=ÄÏÂÁ×ÉÔØ, %s=ÐÅÒÅÐÉÓÁÔØ, %s=×ÙÊÔÉ: "
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  "æÁÊÌ %s ÓÕÝÅÓÔ×ÕÅÔ. %s=ÄÏÂÁ×ÉÔØ, %s=ÐÅÒÅÐÉÓÁÔØ, %s=×ÙÊÔÉ: "
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	"óÔÁÔØÑ ÏÔÍÅÎÅÎÁ (ÕÄÁÌÅÎÁ)."
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"óÔÁÔØÑ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÏÔÍÅÎÅÎÁ (ÕÄÁÌÅÎÁ)."
+msgid   "Article cancelled (deleted)."
+msgstr  "óÔÁÔØÑ ÏÔÍÅÎÅÎÁ (ÕÄÁÌÅÎÁ)."
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	"óÔÁÔØÑ ÕÄÁÌÅÎÁ."
-
-#: src/lang.c:53
-#, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"\n"
-	"÷ÁÛÁ ÓÔÁÔØÑ:\n"
-	"  \"%s\"\n"
-	"ÂÕÄÅÔ ÏÔÐÒÁ×ÌÅÎÁ × %s:\n"
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "óÔÁÔØÑ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÏÔÍÅÎÅÎÁ (ÕÄÁÌÅÎÁ)."
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	"óÔÁÔØÑ ÎÅ ÏÔÐÒÁ×ÌÅÎÁ!"
+msgid   "Article deleted."
+msgstr  "óÔÁÔØÑ ÕÄÁÌÅÎÁ."
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	"óÔÁÔØÑ ÎÅ ÓÏÈÒÁÎÅÎÁ"
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "÷ÁÛÁ ÓÔÁÔØÑ:\n"
+        "  \"%s\"\n"
+        "ÂÕÄÅÔ ÏÔÐÒÁ×ÌÅÎÁ × %s:\n"
 
 #: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	"ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÓÔÁÔÅÊ"
+msgid   "Article not posted!"
+msgstr  "óÔÁÔØÑ ÎÅ ÏÔÐÒÁ×ÌÅÎÁ!"
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	"óÔÁÔØÑ ÎÅ ÉÍÅÅÔ ÒÏÄÉÔÅÌØÓËÏÊ ÓÔÁÔØÉ"
+msgid   "Article not saved"
+msgstr  "óÔÁÔØÑ ÎÅ ÓÏÈÒÁÎÅÎÁ"
 
 #: src/lang.c:58
-msgid	"Parent article has been killed"
-msgstr	"òÏÄÉÔÅÌØÓËÁÑ ÓÔÁÔØÑ ÂÙÌÁ ÕÎÉÞÔÏÖÅÎÁ"
+msgid   "Article Level Commands"
+msgstr  "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÓÔÁÔÅÊ"
 
 #: src/lang.c:59
-msgid	"Parent article is unavailable"
-msgstr	"òÏÄÉÔÅÌØÓËÁÑ ÓÔÁÔØÑ ÎÅÄÏÓÔÕÐÎÁ"
+msgid   "Article has no parent"
+msgstr  "óÔÁÔØÑ ÎÅ ÉÍÅÅÔ ÒÏÄÉÔÅÌØÓËÏÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	"óÔÁÔØÑ ÏÔÐÒÁ×ÌÅÎÁ: %s"
+msgid   "Parent article has been killed"
+msgstr  "òÏÄÉÔÅÌØÓËÁÑ ÓÔÁÔØÑ ÂÙÌÁ ÕÎÉÞÔÏÖÅÎÁ"
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	"óÔÁÔØÑ ÏÔ×ÅÒÇÎÕÔÁ (ÓÏÈÒÁÎÅÎÁ × %s)"
+msgid   "Parent article is unavailable"
+msgstr  "òÏÄÉÔÅÌØÓËÁÑ ÓÔÁÔØÑ ÎÅÄÏÓÔÕÐÎÁ"
 
 #: src/lang.c:62
 #, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	"%s=ÓÔÁÔØÑ, %s=ÄÉÓË., %s=hot, %s=ÛÁÂÌÏÎ, %s=ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ, %s=×ÙÈÏÄ: "
+msgid   "Article posted: %s"
+msgstr  "óÔÁÔØÑ ÏÔÐÒÁ×ÌÅÎÁ: %s"
 
 #: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	"óÔÁÔØÑ ÎÅÄÏÓÔÕÐÎÁ"
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  "óÔÁÔØÑ ÏÔ×ÅÒÇÎÕÔÁ (ÓÏÈÒÁÎÅÎÁ × %s)"
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	"óÔÁÔØÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÁ."
+#, fuzzy, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  "%s=ÓÔÁÔØÑ, %s=ÄÉÓË., %s=hot, %s=ÛÁÂÌÏÎ, %s=ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ, %s=×ÙÈÏÄ: "
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  "óÔÁÔØÑ ÎÅÄÏÓÔÕÐÎÁ"
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	"ÓÔÁÔØÉ"
+msgid   "Article undeleted."
+msgstr  "óÔÁÔØÑ ×ÏÓÓÔÁÎÏ×ÌÅÎÁ."
 
 #: src/lang.c:67
-msgid	"This is a repost of the following article:"
-msgstr	"üÔÏ ÐÏ×ÔÏÒÎÁÑ ÏÔÐÒÁ×ËÁ ÓÔÁÔØÉ:"
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	"ÓÔÁÔØÑ"
+#, c-format
+msgid   "Article %4d of %4d"
+msgstr  "óÔÁÔØÑ %4d ÉÚ %4d"
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	"óÔÁÔØÑ"
+msgid   "articles"
+msgstr  "ÓÔÁÔØÉ"
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	"-- %d %s ÏÔÐÒÁ×ÌÅÎÏ ÐÏ email --"
+msgid   "This is a repost of the following article:"
+msgstr  "üÔÏ ÐÏ×ÔÏÒÎÁÑ ÏÔÐÒÁ×ËÁ ÓÔÁÔØÉ:"
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	" × %s"
+msgid   "article"
+msgstr  "ÓÔÁÔØÑ"
 
 #: src/lang.c:72
-#, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[-- %s/%s, ËÏÄÉÒÏ×ËÁ %s%s%s, %d ÓÔÒÏË%s%s --]\n"
+msgid   "Article"
+msgstr  "óÔÁÔØÑ"
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	", ËÏÄÉÒÏ×ËÁ: "
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  "-- %d %s ÏÔÐÒÁ×ÌÅÎÏ ÐÏ email --"
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	"%*s[-- ïÐÉÓÁÎÉÅ: %s --]\n"
+msgid   " at %s"
+msgstr  " × %s"
 
 #: src/lang.c:75
 #, c-format
-msgid	"%d Authentication failed"
-msgstr	"%d á×ÔÏÒÉÚÁÃÉÑ ÎÅ ÕÄÁÌÁÓØ"
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  "%*s[-- %s/%s, ËÏÄÉÒÏ×ËÁ %s%s%s, %d ÓÔÒÏË%s%s --]\n"
 
 #: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	"óÅÒ×ÅÒ ÏÖÉÄÁÅÔ Á×ÔÏÒÉÚÁÃÉÀ. \n"
+msgid   ", charset: "
+msgstr  ", ËÏÄÉÒÏ×ËÁ: "
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	"    ðÏÖÁÌÕÊÓÔÁ ××ÅÄÉÔÅ ÐÁÒÏÌØ: "
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  ""
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	"    ðÏÖÁÌÕÊÓÔÁ ××ÅÄÉÔÅ ÉÍÑ: "
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- ïÐÉÓÁÎÉÅ: %s --]\n"
 
 #: src/lang.c:79
-#, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	"ðÏÉÓË Á×ÔÏÒÁ (ÎÁÚÁÄ)[%s]> "
+#, fuzzy, c-format
+msgid   "%d lines"
+msgstr  "óÔÒÏËÉ"
 
 #: src/lang.c:80
-#, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	"ðÏÉÓË Á×ÔÏÒÁ (×ÐÅÒ£Ä)[%s]> "
+msgid   "Attachment Menu"
+msgstr  ""
 
 #: src/lang.c:81
-#, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"á×ÔÏÒÉÚÉÒÏ×ÁÎÏ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ: %s\n"
+#, fuzzy
+msgid   "Attachment Menu Commands"
+msgstr  "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÓÔÁÔÅÊ"
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"á×ÔÏÒÉÚÁÃÉÑ ÎÅ ÕÄÁÌÁÓØ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ: %s\n"
+#, fuzzy
+msgid   "<no name>"
+msgstr  "ÎÉÞÅÇÏ"
 
 #: src/lang.c:83
-#, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	"\n"
-	"ðÏÄÐÉÓÁÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁ %s"
+#, fuzzy, c-format
+msgid   "Attachment saved successfully. (%s)"
+msgstr  "newsrc ÆÁÊÌ ÕÓÐÅÛÎÏ ÓÏÈÒÁÎ£Î.\n"
 
 #: src/lang.c:84
-msgid	"Autosubscribing groups...\n"
-msgstr	"á×ÔÏÍÁÔÉÞÅÓËÁÑ ÐÏÄÐÉÓËÁ ÎÁ ÇÒÕÐÐÙ...\n"
+#, fuzzy, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  "newsrc ÆÁÊÌ ÕÓÐÅÛÎÏ ÓÏÈÒÁÎ£Î.\n"
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	"á×ÔÏÍÁÔ. ×ÙÂÏÒ ÓÔÁÔÅÊ (ÉÓÐÏÌØÚÕÊÔÅ '%s' ÄÌÑ ÐÒÏÓÍÏÔÒÁ ÎÅÐÒÏÞÉÔÁÎÎÙÈ) ..."
+#, fuzzy
+msgid   "Select attachment> "
+msgstr  "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
+
+#: src/lang.c:86
+#, fuzzy
+msgid   "Tagged attachment"
+msgstr  "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
 
 #: src/lang.c:87
-#, c-format
-msgid	"Active file corrupt - %s"
-msgstr	"Active ÆÁÊÌ ÐÏ×ÒÅÖÄ£Î - %s"
+#, fuzzy, c-format
+msgid   "%d attachments tagged"
+msgstr  "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
 
 #: src/lang.c:88
-#, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	"óÔÁÔØÑ ÄÌÑ ÏÔÐÒÁ×ËÉ Ó ÏÛÉÂ./ÐÒÅÄÕÐÒ. %s=×ÙÈÏÄ, %s=ÍÅÎÀ, %s=ÒÅÄÁËÔ.: "
+#, fuzzy
+msgid   "Untagged attachment"
+msgstr  "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"îÅÒÁÓÐÏÚÎÁÎÎÙÊ ÁÔÒÉÂÕÔ: %s"
+#, fuzzy
+msgid   "Attributes Menu Commands"
+msgstr  "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÓÔÁÔÅÊ"
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"ïÛÉÂÏÞÎÁÑ ËÏÍÁÎÄÁ. îÁÂÅÒÉÔÅ '%s' ÄÌÑ ÐÏÍÏÝÉ."
+msgid   "%d Authentication failed"
+msgstr  "%d á×ÔÏÒÉÚÁÃÉÑ ÎÅ ÕÄÁÌÁÓØ"
 
 #: src/lang.c:92
-msgid	"Base article"
-msgstr	"ïÓÎÏ×ÎÁÑ ÓÔÁÔØÑ"
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "ðÁÒÏÌØ Á×ÔÏÒÉÚÁÃÉÉ Ë NNTP ÎÅ ÎÁÊÄÅÎ ÄÌÑ %s"
 
 #: src/lang.c:93
-msgid	"Base article range"
-msgstr	"äÉÁÐÁÚÏÎ ÏÓÎÏ×ÎÏÊ ÓÔÁÔØÉ"
+msgid   "Server expects authentication.\n"
+msgstr  "óÅÒ×ÅÒ ÏÖÉÄÁÅÔ Á×ÔÏÒÉÚÁÃÉÀ. \n"
 
 #: src/lang.c:94
-#, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	"%s: ïÂÎÏ×ÌÅÎÉÅ ÉÎÄÅËÓÁ ÆÁÊÌÏ× ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ\n"
+msgid   "    Please enter password: "
+msgstr  "    ðÏÖÁÌÕÊÓÔÁ ××ÅÄÉÔÅ ÐÁÒÏÌØ: "
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	"*** îÁÞÁÌÏ ÓÔÁÔØÉ ***"
+msgid   "    Please enter username: "
+msgstr  "    ðÏÖÁÌÕÊÓÔÁ ××ÅÄÉÔÅ ÉÍÑ: "
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  "á×ÔÏÒÉÚÉÒÏ×ÁÎÏ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ: %s\n"
 
 #: src/lang.c:97
 #, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	"ïÔÍÅÎÉÔØ (ÕÄÁÌÉÔØ) ÉÌÉ ÚÁÍÅÎÉÔØ (ÐÅÒÅÐÉÓÁÔØ) ÓÔÁÔØÀ [%%s]? (%s/%s/%s): "
+msgid   "Authorization failed for user: %s\n"
+msgstr  "á×ÔÏÒÉÚÁÃÉÑ ÎÅ ÕÄÁÌÁÓØ ÄÌÑ ÐÏÌØÚÏ×ÁÔÅÌÑ: %s\n"
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	"ïÔÍÅÎÁ ÓÔÁÔØÉ..."
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  "ðÏÉÓË Á×ÔÏÒÁ (ÎÁÚÁÄ)[%s]> "
 
 #: src/lang.c:100
 #, c-format
-msgid	"Cannot create %s"
-msgstr	"îÅ ÍÏÇÕ ÓÏÚÄÁÔØ %s"
+msgid   "Author search forwards [%s]> "
+msgstr  "ðÏÉÓË Á×ÔÏÒÁ (×ÐÅÒ£Ä)[%s]> "
 
 #: src/lang.c:101
 #, c-format
-msgid	"Can't find base article %d"
-msgstr	"îÅ ÍÏÇÕ ÎÁÊÔÉ ÏÓÎÏ×ÎÕÀ ÓÔÁÔØÀ %d"
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  "\n"
+        "ðÏÄÐÉÓÁÎ Á×ÔÏÍÁÔÉÞÅÓËÉ ÎÁ %s"
 
 #: src/lang.c:102
-#, c-format
-msgid	"Can't open %s"
-msgstr	"îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s"
+msgid   "Autosubscribing groups...\n"
+msgstr  "á×ÔÏÍÁÔÉÞÅÓËÁÑ ÐÏÄÐÉÓËÁ ÎÁ ÇÒÕÐÐÙ...\n"
 
 #: src/lang.c:103
 #, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	"îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s ÄÌÑ ÚÁÐÉÓÉ"
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	"*** ïÔÐÒÁ×ËÁ ÚÁÐÒÅÝÅÎÁ ***"
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  "á×ÔÏÍÁÔ. ×ÙÂÏÒ ÓÔÁÔÅÊ (ÉÓÐÏÌØÚÕÊÔÅ '%s' ÄÌÑ ÐÒÏÓÍÏÔÒÁ ÎÅÐÒÏÞÉÔÁÎÎÙÈ) ..."
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	"ïÔÐÒÁ×ËÁ ÚÁÐÒÅÝÅÎÁ × %s"
+msgid   "Active file corrupt - %s"
+msgstr  "Active ÆÁÊÌ ÐÏ×ÒÅÖÄ£Î - %s"
 
 #: src/lang.c:106
 #, c-format
-msgid	"Can't retrieve %s"
-msgstr	"îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ %s"
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  "óÔÁÔØÑ ÄÌÑ ÏÔÐÒÁ×ËÉ Ó ÏÛÉÂ./ÐÒÅÄÕÐÒ. %s=×ÙÈÏÄ, %s=ÍÅÎÀ, %s=ÒÅÄÁËÔ.: "
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	"%s - ÄÉÒÅËÔÏÒÉÑ"
+msgid   "Unrecognized attribute: %s"
+msgstr  "îÅÒÁÓÐÏÚÎÁÎÎÙÊ ÁÔÒÉÂÕÔ: %s"
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	"úÁÈ×ÁÔ"
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	"úÁÈ×ÁÔ %s..."
+msgid   "Bad command. Type '%s' for help."
+msgstr  "ïÛÉÂÏÞÎÁÑ ËÏÍÁÎÄÁ. îÁÂÅÒÉÔÅ '%s' ÄÌÑ ÐÏÍÏÝÉ."
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	"úÁÈ×ÁÔÉÔØ ×ÓÅ ÇÒÕÐÐÙ ÐÏÓÅÝ£ÎÎÙÅ × ÜÔÏÊ ÓÅÓÓÉÉ?"
+msgid   "Base article"
+msgstr  "ïÓÎÏ×ÎÁÑ ÓÔÁÔØÑ"
 
 #: src/lang.c:111
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	"÷Ù ÐÏÍÅÔÉÌÉ ÓÔÁÔØÉ × ÇÒÕÐÐÅ - ÚÁÈ×ÁÔÉÔØ ÎÅÓÍÏÔÒÑ ÎÁ ÜÔÏ?"
+msgid   "Base article range"
+msgstr  "äÉÁÐÁÚÏÎ ÏÓÎÏ×ÎÏÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:112
 #, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	"%s %d %s × %lu ÓÅËÕÎÄ\n"
+msgid   "%s: Updating of index files not supported\n"
+msgstr  "%s: ïÂÎÏ×ÌÅÎÉÅ ÉÎÄÅËÓÁ ÆÁÊÌÏ× ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔÓÑ\n"
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	"úÁÈ×ÁÞÅÎÏ"
+msgid   "*** Beginning of article ***"
+msgstr  "*** îÁÞÁÌÏ ÓÔÁÔØÉ ***"
 
 #: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	"ðÒÏ×ÅÒÉÔØ ÐÒÉÇÏÔÏ×ÌÅÎÎÕÀ ÓÔÁÔØÀ"
-
-#: src/lang.c:115
-msgid	"Checking for new groups... "
-msgstr	"ðÏÉÓË ÎÏ×ÙÈ ÇÒÕÐÐ... "
+#, fuzzy
+msgid   "*** Beginning of page ***"
+msgstr  "*** îÁÞÁÌÏ ÓÔÁÔØÉ ***"
 
 #: src/lang.c:116
-msgid	"Checking for news..."
-msgstr	"ðÒÏ×ÅÒËÁ ÎÏ×ÏÓÔÅÊ..."
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  "ïÔÍÅÎÉÔØ (ÕÄÁÌÉÔØ) ÉÌÉ ÚÁÍÅÎÉÔØ (ÐÅÒÅÐÉÓÁÔØ) ÓÔÁÔØÀ [%%s]? (%s/%s/%s): "
 
 #: src/lang.c:117
-#, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	"ðÏÓÔ-ÏÂÒÁÂÏÔËÁ %s=ÎÅÔ, %s=ÄÁ, %s=shar, %s=×ÙÈÏÄ:"
+msgid   "Cancelling article..."
+msgstr  "ïÔÍÅÎÁ ÓÔÁÔØÉ..."
 
 #: src/lang.c:119
-msgid	"ANSI color disabled"
-msgstr	"÷ÙËÌÀÞÉÔØ Ã×ÅÔÁ ANSI"
+#, c-format
+msgid   "Cannot create %s"
+msgstr  "îÅ ÍÏÇÕ ÓÏÚÄÁÔØ %s"
 
 #: src/lang.c:120
-msgid	"ANSI color enabled"
-msgstr	"÷ËÌÀÞÉÔØ Ã×ÅÔÁ ANSI"
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  "îÅ ÍÏÇÕ ÎÁÊÔÉ ÏÓÎÏ×ÎÕÀ ÓÔÁÔØÀ %d"
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s"
 
 #: src/lang.c:122
 #, c-format
-msgid	"Command failed: %s"
-msgstr	"ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ÉÓÐÏÌÎÅÎÉÑ: %s"
+msgid   "Couldn't open %s for saving"
+msgstr  "îÅ ÍÏÇÕ ÏÔËÒÙÔØ %s ÄÌÑ ÚÁÐÉÓÉ"
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	"ðÏÍÅÔÉÔØ ÎÅÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ?"
+msgid   "*** Posting not allowed ***"
+msgstr  "*** ïÔÐÒÁ×ËÁ ÚÁÐÒÅÝÅÎÁ ***"
 
 #: src/lang.c:124
 #, c-format
-msgid	"Connecting to %s..."
-msgstr	"óÏÅÄÉÎÑÅÍÓÑ Ó %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	""
+msgid   "Posting is not allowed to %s"
+msgstr  "ïÔÐÒÁ×ËÁ ÚÁÐÒÅÝÅÎÁ × %s"
 
 #: src/lang.c:126
-msgid	"Creating active file for saved groups...\n"
-msgstr	"óÏÚÄÁÎÉÅ ÆÁÊÌÁ active ÄÌÑ ÓÏÈÒ. ÇÒÕÐÐ...\n"
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ %s"
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s - ÄÉÒÅËÔÏÒÉÑ"
 
-#: src/lang.c:127
-msgid	"Creating newsrc file...\n"
-msgstr	"óÏÚÄÁÎÉÅ ÆÁÊÌÁ newsrc...\n"
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"ðÏ ÕÍÏÌÞÁÎÉÀ"
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  "úÁÈ×ÁÔ"
 
 #: src/lang.c:130
-msgid	"Delete saved files that have been post processed?"
-msgstr	"õÄÁÌÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÏÂÒÁÂÏÔÁÎÎÙÅ ÆÁÊÌÙ?"
+#, c-format
+msgid   "Catchup %s..."
+msgstr  "úÁÈ×ÁÔ %s..."
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	"õÄÁÌÅÎÉÅ ×ÒÅÍÅÎÎÙÈ ÆÁÊÌÏ×..."
+msgid   "Catchup all groups entered during this session?"
+msgstr  "úÁÈ×ÁÔÉÔØ ×ÓÅ ÇÒÕÐÐÙ ÐÏÓÅÝ£ÎÎÙÅ × ÜÔÏÊ ÓÅÓÓÉÉ?"
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  "÷Ù ÐÏÍÅÔÉÌÉ ÓÔÁÔØÉ × ÇÒÕÐÐÅ - ÚÁÈ×ÁÔÉÔØ ÎÅÓÍÏÔÒÑ ÎÁ ÜÔÏ?"
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	"*** ëÏÎÅÃ ÓÔÁÔØÉ ***"
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  "%s %d %s × %lu ÓÅËÕÎÄ\n"
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	"*** ëÏÎÅÃ ÓÔÁÔÅÊ ***"
+msgid   "Caughtup"
+msgstr  "úÁÈ×ÁÞÅÎÏ"
 
 #: src/lang.c:135
-msgid	"*** End of groups ***"
-msgstr	"*** ëÏÎÅÃ ÇÒÕÐÐ ***"
+msgid   "Check Prepared Article"
+msgstr  "ðÒÏ×ÅÒÉÔØ ÐÒÉÇÏÔÏ×ÌÅÎÎÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:136
-msgid	"*** End of thread ***"
-msgstr	"*** ëÏÎÅÃ ÄÉÓËÕÓÓÉÉ ***"
+msgid   "Checking for new groups... "
+msgstr  "ðÏÉÓË ÎÏ×ÙÈ ÇÒÕÐÐ... "
 
 #: src/lang.c:137
-msgid	"Enter limit of articles to get> "
-msgstr	"÷×ÅÄÉÔÅ ÐÒÅÄÅÌ ÐÏÌÕÞÁÅÍÙÈ ÓÔÁÔÅÊ> "
+msgid   "Checking for news..."
+msgstr  "ðÒÏ×ÅÒËÁ ÎÏ×ÏÓÔÅÊ..."
 
 #: src/lang.c:138
-msgid	"Enter Message-ID to go to> "
-msgstr	"÷×ÅÄÉÔÅ Message-ID ÄÌÑ ÐÅÒÅÈÏÄÁ> "
-
-#: src/lang.c:139
-msgid	" and enter next unread thread"
-msgstr	" É ××ÅÄÉÔÅ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÄÉÓËÕÓÓÉÀ"
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  "ðÏÓÔ-ÏÂÒÁÂÏÔËÁ %s=ÎÅÔ, %s=ÄÁ, %s=shar, %s=×ÙÈÏÄ:"
 
 #: src/lang.c:140
-msgid	" and enter next unread group"
-msgstr	" É ××ÅÄÉÔÅ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÇÒÕÐÐÕ"
+msgid   "ANSI color disabled"
+msgstr  "÷ÙËÌÀÞÉÔØ Ã×ÅÔÁ ANSI"
 
 #: src/lang.c:141
-msgid	"Enter option number> "
-msgstr	"÷×ÅÄÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ> "
+msgid   "ANSI color enabled"
+msgstr  "÷ËÌÀÞÉÔØ Ã×ÅÔÁ ANSI"
 
-#: src/lang.c:142
+#: src/lang.c:143
 #, c-format
-msgid	"Enter range [%s]> "
-msgstr	"÷×ÅÄÉÔÅ ÄÉÁÐÁÚÏÎ [%s]> "
+msgid   "Command failed: %s"
+msgstr  "ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ÉÓÐÏÌÎÅÎÉÑ: %s"
 
-#: src/lang.c:143
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÉÓÐÏÌØÚÏ×ÁÎ ÚÁÇÏÌÏ×ÏË Approved:.\n"
-
-#: src/lang.c:145
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ ÁÄÒÅÓ × ÚÁÇÏÌÏ×ËÅ Approved:.\n"
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  "ðÏÍÅÔÉÔØ ÎÅÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ?"
 
 #: src/lang.c:146
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ ÁÄÒÅÓ × ÚÁÇÏÌÏ×ËÅ From:.\n"
-
-#: src/lang.c:147
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ ÁÄÒÅÓ × ÚÁÇÏÌÏ×ËÅ Reply-To:.\n"
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  "óÏÅÄÉÎÑÅÍÓÑ Ó %s..."
 
 #: src/lang.c:148
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ FQDN × ÚÁÇÏÌÏ×ËÅ Message-ID:.\n"
+msgid   "<CR>"
+msgstr  ""
 
 #: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	"îÅ ÍÏÇÕ ÒÁÚÂÌÏËÉÒÏ×ÁÔØ %s"
-
-#: src/lang.c:151
-#, c-format
-msgid	"Corrupted file %s"
-msgstr	"ðÏ×ÒÅÖÄÅÎÎÙÊ ÆÁÊÌ %s"
+msgid   "Creating active file for saved groups...\n"
+msgstr  "óÏÚÄÁÎÉÅ ÆÁÊÌÁ active ÄÌÑ ÓÏÈÒ. ÇÒÕÐÐ...\n"
 
-#: src/lang.c:152
-#, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	"îÅ ÍÏÇÕ dotlock %s - ÓÔÁÔØÑ ÎÅ ÐÒÉËÒÅÐÌÅÎÁ!"
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  "óÏÚÄÁÎÉÅ ÆÁÊÌÁ newsrc...\n"
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "ðÏ ÕÍÏÌÞÁÎÉÀ"
 
 #: src/lang.c:153
-#, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	"îÅ ÍÏÇÕ ÚÁÂÌÏËÉÒÏ×ÁÔØ %s - ÓÔÁÔØÑ ÎÅ ÐÒÉËÒÅÐÌÅÎÁ!"
+msgid   "Delete saved files that have been post processed?"
+msgstr  "õÄÁÌÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÏÂÒÁÂÏÔÁÎÎÙÅ ÆÁÊÌÙ?"
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	"÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ × ÆÕÎËÃÉÉ GNKSA - ÏÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ.\n"
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  "õÄÁÌÅÎÉÅ ×ÒÅÍÅÎÎÙÈ ÆÁÊÌÏ×..."
 
 #: src/lang.c:156
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	"÷ ÁÄÒÅÓÅ ÐÒÏÐÕÝÅÎÁ ÌÅ×ÁÑ ÕÇÌÏ×ÁÑ ÓËÏÂËÁ.\n"
+msgid   "*** End of article ***"
+msgstr  "*** ëÏÎÅÃ ÓÔÁÔØÉ ***"
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	"÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÝÅÎÁ ÌÅ×ÁÑ ËÒÕÇÌÁÑ ÓËÏÂËÁ.\n"
+msgid   "*** End of articles ***"
+msgstr  "*** ëÏÎÅÃ ÓÔÁÔÅÊ ***"
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	"÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÝÅÎÁ ÐÒÁ×ÁÑ ËÒÕÇÌÁÑ ÓËÏÂËÁ.\n"
+#, fuzzy
+msgid   "*** End of attachments ***"
+msgstr  "*** ëÏÎÅÃ ÓÔÁÔÅÊ ***"
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	"÷ ÐÏÞÔÏ×ÏÍ ÁÄÒÅÓÅ ÐÒÏÐÕÝÅÎ ÚÎÁË '@'.\n"
+msgid   "*** End of groups ***"
+msgstr  "*** ëÏÎÅÃ ÇÒÕÐÐ ***"
 
 #: src/lang.c:160
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	"åÄÉÎÓÔ×ÅÎÎÙÊ ËÏÍÐÏÎÅÎÔ FQDN ÎÅÄÏÐÕÓÔÉÍ. äÏÂÁ×ØÔÅ ×ÁÛ ÄÏÍÅÎ.\n"
+#, fuzzy
+msgid   "*** End of page ***"
+msgstr  "*** ëÏÎÅÃ ÓÔÁÔØÉ ***"
 
 #: src/lang.c:161
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"îÅÐÒÁ×ÉÌØÎÙÊ ÄÏÍÅÎ. ïÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ, ÅÓÌÉ ÄÏÍÅÎ ÓÕÝÅÓÔ×ÕÅÔ.\n"
-	"éÓÐÏÌØÚÕÊÔÅ .invalid ËÁË ÄÏÍÅÎ 1 ÕÒÏ×ÎÑ ÄÌÑ ÉÓÐÏÒÞÅÎÎÙÈ ÁÄÒÅÓÏ×.\n"
+#, fuzzy
+msgid   "*** End of scopes ***"
+msgstr  "*** ëÏÎÅÃ ÇÒÕÐÐ ***"
 
 #: src/lang.c:162
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÄÏÍÅÎ. ïÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÅÓÌÉ ÄÏÍÅÎ ÓÕÝÅÓÔ×ÕÅÔ.\n"
-	"éÓÐÏÌØÚÕÊÔÅ .invalid ËÁË ÄÏÍÅÎ 1 ÕÒÏ×ÎÑ ÄÌÑ ÉÓÐÏÒÞÅÎÎÙÈ ÁÄÒÅÓÏ×.\n"
+msgid   "*** End of thread ***"
+msgstr  "*** ëÏÎÅÃ ÄÉÓËÕÓÓÉÉ ***"
 
 #: src/lang.c:163
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"îÅÉÚ×ÅÓÔÎÙÊ ÄÏÍÅÎ. ïÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÅÓÌÉ ÄÏÍÅÎ ÓÕÝÅÓÔ×ÕÅÔ.\n"
-	"éÓÐÏÌØÚÕÊÔÅ .invalid ËÁË ÄÏÍÅÎ 1 ÕÒÏ×ÎÑ ÄÌÑ ÉÓÐÏÒÞÅÎÎÙÈ ÁÄÒÅÓÏ×.\n"
+#, fuzzy
+msgid   "*** End of URLs ***"
+msgstr  "*** ëÏÎÅÃ ÇÒÕÐÐ ***"
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × FQDN.\n"
+msgid   "Enter limit of articles to get> "
+msgstr  "÷×ÅÄÉÔÅ ÐÒÅÄÅÌ ÐÏÌÕÞÁÅÍÙÈ ÓÔÁÔÅÊ> "
 
 #: src/lang.c:165
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	"îÕÌÅ×ÁÑ ÄÌÉÎÁ ËÏÍÐÏÎÅÎÔÁ FQDN ÎÅÄÏÐÕÓÔÉÍÁ.\n"
+msgid   "Enter Message-ID to go to> "
+msgstr  "÷×ÅÄÉÔÅ Message-ID ÄÌÑ ÐÅÒÅÈÏÄÁ> "
 
 #: src/lang.c:166
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	"ëÏÍÐÏÎÅÎÔ FQDN ÐÒÅ×ÙÛÁÅÔ ÍÁËÓ. ÄÏÐÕÓÔÉÍÕÀ ÄÌÉÎÕ (63 ÚÎÁËÁ).\n"
+msgid   " and enter next unread thread"
+msgstr  " É ××ÅÄÉÔÅ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÄÉÓËÕÓÓÉÀ"
 
 #: src/lang.c:167
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	"ëÏÍÐÏÎÅÎÔ FQDN ÎÅ ÍÏÖÅÔ ÎÁÞÉÎÁÔØÓÑ ÉÌÉ ÚÁËÁÎÞÉ×ÁÔØÓÑ ÄÅÆÉÓÏÍ.\n"
+#, fuzzy
+msgid   " and enter next unread article"
+msgstr  " É ××ÅÄÉÔÅ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÄÉÓËÕÓÓÉÀ"
 
 #: src/lang.c:168
-msgid	"FQDN component may not start with digit.\n"
-msgstr	"ëÏÍÐÏÎÅÎÔ FQDN ÎÅ ÍÏÖÅÔ ÎÁÞÉÎÁÔØÓÑ Ó ÃÉÆÒÙ.\n"
+msgid   " and enter next unread group"
+msgstr  " É ××ÅÄÉÔÅ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÇÒÕÐÐÕ"
 
 #: src/lang.c:169
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	"÷ ÚÎÁËÅ ÄÏÍÅÎÁ ÎÅÄÏÐÕÓÔÉÍÙÊ ÃÉÆÒÏ×ÏÊ ÚÎÁË.\n"
+msgid   "Enter option number> "
+msgstr  "÷×ÅÄÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ> "
 
 #: src/lang.c:170
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	"úÎÁË ÄÏÍÅÎÁ ÔÏÌØËÏ ÄÌÑ ÞÁÓÔÎÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ É ÎÅÄÏÐÕÓÔÉÍ.\n"
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  "÷×ÅÄÉÔÅ ÄÉÁÐÁÚÏÎ [%s]> "
 
 #: src/lang.c:171
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	"÷ ÚÎÁËÅ ÄÏÍÅÎÁ ÐÒÏÐÕÝÅÎÁ ÐÒÁ×ÁÑ ÓËÏÂËÁ.\n"
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	"ðÒÏÐÕÝÅÎÁ ÌÏËÁÌØÎÁÑ ÞÁÓÔØ ÐÏÞÔÏ×ÏÇÏ ÁÄÒÅÓÁ.\n"
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÉÓÐÏÌØÚÏ×ÁÎ ÚÁÇÏÌÏ×ÏË Approved:.\n"
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÌÏËÁÌØÎÏÊ ÞÁÓÔÉ ÐÏÞÔÏ×ÏÇÏ ÁÄÒÅÓÁ.\n"
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ ÁÄÒÅÓ × ÚÁÇÏÌÏ×ËÅ Approved:.\n"
 
 #: src/lang.c:174
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	"îÕÌÅ×ÁÑ ÄÌÉÎÁ ÌÏËÁÌØÎÏÊ ÞÁÓÔÉ email ÎÅÄÏÐÕÓÔÉÍÁ.\n"
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ ÁÄÒÅÓ × ÚÁÇÏÌÏ×ËÅ From:.\n"
 
 #: src/lang.c:175
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
-	"óÌÏ×Á ÂÅÚ ËÁ×ÙÞÅË ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '!()<>@,;:\\.[]' × ÁÄÒÅÓÅ.\n"
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ ÁÄÒÅÓ × ÚÁÇÏÌÏ×ËÅ Reply-To:.\n"
 
 #: src/lang.c:176
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
-	"óÌÏ×Á × ËÁ×ÙÞËÁÈ ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '()<>\\'.\n"
-
-#: src/lang.c:177
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
-	"ëÏÄÉÒÏ×ÁÎÎÙÅ ÓÌÏ×Á ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '!()<>@,;:\"\\.[]/=' × ÐÁÒÁÍÅÔÒÅ.\n"
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: îÅ×ÅÒÎÙÊ FQDN × ÚÁÇÏÌÏ×ËÅ Message-ID:.\n"
 
 #: src/lang.c:178
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	"îÅ×ÅÒÎÙÊ ÓÉÎÔÁËÓÉÓ × ËÏÄÉÒÏ×ÁÎÎÏÍ ÓÌÏ×Å, ÉÓÐÏÌØÚÏ×ÁÎÎÏÍ × ÉÍÅÎÉ.\n"
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  "îÅ ÍÏÇÕ ÒÁÚÂÌÏËÉÒÏ×ÁÔØ %s"
 
 #: src/lang.c:179
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
-	"óÌÏ×Á ÂÅÚ ËÁ×ÙÞÅË ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '()<>\\' × ÁÄÒÅÓÁÈ ÓÔÁÒÏÇÏ ÓÔÉÌÑ.\n"
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  "îÅ ÍÏÇÕ dotlock %s - ÓÔÁÔØÑ ÎÅ ÐÒÉËÒÅÐÌÅÎÁ!"
 
 #: src/lang.c:180
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
-	"õÐÒÁ×ÌÑÀÝÉÅ ÓÉÍ×ÏÌÙ É ÎÅËÏÄ. 8-ÂÉÔÎÙÅ ÓÉÍ×. > 127 ÎÅÄÏÐÕÓÔÉÍÙ.\n"
-
-#: src/lang.c:181
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: îÅ ÎÁÊÄÅÎÁ ÐÕÓÔÁÑ ÓÔÒÏËÁ ÐÏÓÌÅ ÚÁÇÏÌÏ×ËÁ.\n"
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  "îÅ ÍÏÇÕ ÚÁÂÌÏËÉÒÏ×ÁÔØ %s - ÓÔÁÔØÑ ÎÅ ÐÒÉËÒÅÐÌÅÎÁ!"
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: óÏÏÂÝÅÎÉÅ ÓÏÄÅÒÖÉÔ ÎÅ-ASCII ÓÉÍ×ÏÌÙ ÎÏ MM_CHARSET ÕÓÔÁÎÏ×ÌÅÎ\n"
-	"        US-ASCII - ÐÏÖÁÌÕÊÓÔÁ ÓÍÅÎÉÔÅ ÚÎÁÞÅÎÉÅ ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÅ\n"
-	"        ×ÁÛÅÍÕ ÑÚÙËÕ, ÉÓÐÏÌØÚÕÑ M)ÍÅÎÀ ËÏÎÆÉÇÕÒÉÒÕÅÍÙÈ ÚÎÁÞÅÎÉÊ ÉÌÉ\n"
-	"        ÏÔÒÅÄÁËÔÉÒÕÊÔÅ tinrc.\n"
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  "ðÏ×ÒÅÖÄÅÎÎÙÊ ÆÁÊÌ %s"
+
+#: src/lang.c:185
+#, fuzzy
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n"
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  "÷ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ × ÆÕÎËÃÉÉ GNKSA - ÏÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ.\n"
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  "÷ ÁÄÒÅÓÅ ÐÒÏÐÕÝÅÎÁ ÌÅ×ÁÑ ÕÇÌÏ×ÁÑ ÓËÏÂËÁ.\n"
 
 #: src/lang.c:188
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: óÏÏÂÝÅÎÉÅ ÓÏÄÅÒÖÉÔ ÎÅ-ASCII ÓÉÍ×ÏÌÙ, ÎÏ ËÏÄÉÒÏ×ËÁ MIME ÕÓÔÁÎÏ×ÌÅÎÁ\n"
-	"        × \"7bit\" - ÐÏÖÁÌÕÊÓÔÁ ÓÍÅÎÉÔÅ ÚÎÁÞÅÎÉÅ ÎÁ \"8bit\" ÉÌÉ\n"
-	"        \"quoted-printable\" × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ÞÔÏ ÐÒÉÎÑÔÏ × ×ÁÛÅÍ\n"
-	"        ÒÅÇÉÏÎÅ. éÓÐÏÌØÚÕÊÔÅ M)ÍÅÎÀ ËÏÎÆÉÇÕÒÉÒÕÅÍÙÈ ÏÐÃÉÊ ÉÌÉ ÏÔÒÅÄÁËÔÉÒÕÊÔÅ\n"
-	"\t ÆÁÊÌ tinrc.\n"
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  "÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÝÅÎÁ ÌÅ×ÁÑ ËÒÕÇÌÁÑ ÓËÏÂËÁ.\n"
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  "÷ ÁÄÒÅÓÅ ÓÔÁÒÏÇÏ ÓÔÉÌÑ ÐÒÏÐÕÝÅÎÁ ÐÒÁ×ÁÑ ËÒÕÇÌÁÑ ÓËÏÂËÁ.\n"
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  "÷ ÐÏÞÔÏ×ÏÍ ÁÄÒÅÓÅ ÐÒÏÐÕÝÅÎ ÚÎÁË '@'.\n"
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  "åÄÉÎÓÔ×ÅÎÎÙÊ ËÏÍÐÏÎÅÎÔ FQDN ÎÅÄÏÐÕÓÔÉÍ. äÏÂÁ×ØÔÅ ×ÁÛ ÄÏÍÅÎ.\n"
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "îÅÐÒÁ×ÉÌØÎÙÊ ÄÏÍÅÎ. ïÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ, ÅÓÌÉ ÄÏÍÅÎ ÓÕÝÅÓÔ×ÕÅÔ.\n"
+        "éÓÐÏÌØÚÕÊÔÅ .invalid ËÁË ÄÏÍÅÎ 1 ÕÒÏ×ÎÑ ÄÌÑ ÉÓÐÏÒÞÅÎÎÙÈ ÁÄÒÅÓÏ×.\n"
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÄÏÍÅÎ. ïÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÅÓÌÉ ÄÏÍÅÎ ÓÕÝÅÓÔ×ÕÅÔ.\n"
+        "éÓÐÏÌØÚÕÊÔÅ .invalid ËÁË ÄÏÍÅÎ 1 ÕÒÏ×ÎÑ ÄÌÑ ÉÓÐÏÒÞÅÎÎÙÈ ÁÄÒÅÓÏ×.\n"
 
 #: src/lang.c:194
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: óÔÁÔØÑ ÎÁÞÉÎÁÅÔÓÑ Ó ÐÕÓÔÏÊ ÓÔÒÏËÉ ×ÍÅÓÔÏ ÚÁÇÏÌÏ×ËÁ\n"
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "îÅÉÚ×ÅÓÔÎÙÊ ÄÏÍÅÎ. ïÔÐÒÁ×ØÔÅ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÅÓÌÉ ÄÏÍÅÎ ÓÕÝÅÓÔ×ÕÅÔ.\n"
+        "éÓÐÏÌØÚÕÊÔÅ .invalid ËÁË ÄÏÍÅÎ 1 ÕÒÏ×ÎÑ ÄÌÑ ÉÓÐÏÒÞÅÎÎÙÈ ÁÄÒÅÓÏ×.\n"
 
 #: src/lang.c:195
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: úÁÇÏÌÏ×ÏË × ÓÔÒÏËÅ %d ÎÅ ÉÍÅÅÔ Ä×ÏÅÔÏÞÉÑ ÐÏÓÌÅ ÉÍÅÎÉ:\n"
-	"%s\n"
+msgid   "Illegal character in FQDN.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × FQDN.\n"
 
 #: src/lang.c:196
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: ðÕcÔÁÑ ÓÔÒÏËÁ \"%s:\".\n"
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  "îÕÌÅ×ÁÑ ÄÌÉÎÁ ËÏÍÐÏÎÅÎÔÁ FQDN ÎÅÄÏÐÕÓÔÉÍÁ.\n"
 
 #: src/lang.c:197
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: óÔÒÏËÁ  \"%s:\" ÐÒÏÐÕÝÅÎÁ × ÚÁÌÏ×ËÅ ÓÔÁÔØÉ.\n"
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  "ëÏÍÐÏÎÅÎÔ FQDN ÐÒÅ×ÙÛÁÅÔ ÍÁËÓ. ÄÏÐÕÓÔÉÍÕÀ ÄÌÉÎÕ (63 ÚÎÁËÁ).\n"
 
 #: src/lang.c:198
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: úÁÇÏÌÏ×ÏË × ÓÔÒÏËÅ %d ÎÅ ÉÍÅÅÔ ÐÒÏÂÅÌÁ ÐÏÓÌÅ Ä×ÏÅÔÏÞÉÑ:\n"
-	"%s\n"
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  "ëÏÍÐÏÎÅÎÔ FQDN ÎÅ ÍÏÖÅÔ ÎÁÞÉÎÁÔØÓÑ ÉÌÉ ÚÁËÁÎÞÉ×ÁÔØÓÑ ÄÅÆÉÓÏÍ.\n"
 
 #: src/lang.c:199
-#, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: îÅÓËÏÌØËÏ ÓÔÒÏË (%d) \"%s:\" × ÚÁÇÏÌÏ×ËÅ.\n"
+msgid   "FQDN component may not start with digit.\n"
+msgstr  "ëÏÍÐÏÎÅÎÔ FQDN ÎÅ ÍÏÖÅÔ ÎÁÞÉÎÁÔØÓÑ Ó ÃÉÆÒÙ.\n"
 
 #: src/lang.c:200
-#, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	"îÅÂÅÚÏÐÁÓÎÙÅ ÐÒÁ×Á ÄÏÓÔÕÐÁ %s (%o)"
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  "÷ ÚÎÁËÅ ÄÏÍÅÎÁ ÎÅÄÏÐÕÓÔÉÍÙÊ ÃÉÆÒÏ×ÏÊ ÚÎÁË.\n"
 
 #: src/lang.c:201
-#, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÏÔ×ÅÔ ÎÁ ËÏÍÁÎÄÕ GROUP, %s"
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  "úÎÁË ÄÏÍÅÎÁ ÔÏÌØËÏ ÄÌÑ ÞÁÓÔÎÏÇÏ ÉÓÐÏÌØÚÏ×ÁÎÉÑ É ÎÅÄÏÐÕÓÔÉÍ.\n"
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  "÷ ÚÎÁËÅ ÄÏÍÅÎÁ ÐÒÏÐÕÝÅÎÁ ÐÒÁ×ÁÑ ÓËÏÂËÁ.\n"
 
 #: src/lang.c:203
-#, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	"ïÛÉÂËÁ ÏÂÒÁÂÏÔËÉ MIME: îÅÏÖÉÄÁÎÎÏÅ ÏËÏÎÞÁÎÉÅ ÓÔÁÔØÉ %s/%s"
+msgid   "Missing localpart of mail address.\n"
+msgstr  "ðÒÏÐÕÝÅÎÁ ÌÏËÁÌØÎÁÑ ÞÁÓÔØ ÐÏÞÔÏ×ÏÇÏ ÁÄÒÅÓÁ.\n"
 
 #: src/lang.c:204
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	"ïÛÉÂËÁ ÏÂÒÁÂÏÔËÉ MIME: îÁÞÁÌÏ ÇÒÁÎÉÃÙ × ÚÁÇÏÌÏ×ËÅ"
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÌÏËÁÌØÎÏÊ ÞÁÓÔÉ ÐÏÞÔÏ×ÏÇÏ ÁÄÒÅÓÁ.\n"
 
 #: src/lang.c:205
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	"îÅ ÕÄÁ£ÔÓÑ ÐÏÌÕÞÉÔØ ÐÏÌÎÏÅ ÉÍÑ ÄÏÍÅÎÁ!"
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  "îÕÌÅ×ÁÑ ÄÌÉÎÁ ÌÏËÁÌØÎÏÊ ÞÁÓÔÉ email ÎÅÄÏÐÕÓÔÉÍÁ.\n"
 
 #: src/lang.c:206
-#, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"îÅÔ ÄÏÓÔÕÐÁ ÄÌÑ %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
+        "óÌÏ×Á ÂÅÚ ËÁ×ÙÞÅË ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '!()<>@,;:\\.[]' × ÁÄÒÅÓÅ.\n"
 
 #: src/lang.c:207
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: ðÒÏÐÕÝÅÎÁ ÓÔÒÏËÁ From:.\n"
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
+        "óÌÏ×Á × ËÁ×ÙÞËÁÈ ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '()<>\\'.\n"
 
 #: src/lang.c:208
-#, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"îÅÔ ÐÒÁ×Á ÎÁ ÞÔÅÎÉÅ ÄÌÑ %s\n"
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
+        "ëÏÄÉÒÏ×ÁÎÎÙÅ ÓÌÏ×Á ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '!()<>@,;:\"\\.[]/=' × ÐÁÒÁÍÅÔÒÅ.\n"
 
 #: src/lang.c:209
-#, c-format
-msgid	"File %s does not exist\n"
-msgstr	"æÁÊÌ %s ÎÅ ÓÕÝÅÓÔ×ÕÅÔ\n"
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  "îÅ×ÅÒÎÙÊ ÓÉÎÔÁËÓÉÓ × ËÏÄÉÒÏ×ÁÎÎÏÍ ÓÌÏ×Å, ÉÓÐÏÌØÚÏ×ÁÎÎÏÍ × ÉÍÅÎÉ.\n"
 
 #: src/lang.c:210
-#, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"îÅÔ ÐÒÁ×Á ÎÁ ÚÁÐÉÓØ ÄÌÑ %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
+        "óÌÏ×Á ÂÅÚ ËÁ×ÙÞÅË ÎÅ ÍÏÇÕÔ ÓÏÄÅÒÖÁÔØ '()<>\\' × ÁÄÒÅÓÁÈ ÓÔÁÒÏÇÏ ÓÔÉÌÑ.\n"
 
 #: src/lang.c:211
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	"îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ (ÎÅÔ /etc/passwd ?)"
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÎÁË × ÉÍÅÎÉ.\n"
+        "õÐÒÁ×ÌÑÀÝÉÅ ÓÉÍ×ÏÌÙ É ÎÅËÏÄ. 8-ÂÉÔÎÙÅ ÓÉÍ×. > 127 ÎÅÄÏÐÕÓÔÉÍÙ.\n"
 
 #: src/lang.c:212
-msgid	"errors"
-msgstr	"ÏÛÉÂËÉ"
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: îÅ ÎÁÊÄÅÎÁ ÐÕÓÔÁÑ ÓÔÒÏËÁ ÐÏÓÌÅ ÚÁÇÏÌÏ×ËÁ.\n"
 
 #: src/lang.c:213
 #, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ × ÓÔÒÏËÅ %d: úÁÇÏÌÏ×ÏË \"Sender:\" ÎÅÄÏÐÕÓÔÉÍ (ÂÕÄÅÔ ÄÏÂÁ×ÌÅÎ)\n"
-
-#: src/lang.c:214
-#, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	"îÁ ÓÅÒ×ÅÒÅ ÎÅÔ ÎÉ ÏÄÎÏÊ ÇÒÕÐÐÙ ÕËÁÚÁÎÎÙÈ × %s"
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  ""
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
-msgid	"error"
-msgstr	"ÏÛÉÂËÁ"
-
-#: src/lang.c:216
-msgid	"Unknown display level"
-msgstr	"îÅÉÚ×ÅÓÔÎÙÊ ÕÒÏ×ÅÎØ ÄÉÓÐÌÅÑ"
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	""
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	"÷ÙÈÏÄ..."
-
-#: src/lang.c:219
-msgid	"leaving external mail-reader"
-msgstr	"ÏÓÔÁ×ÌÑÅÍ ×ÎÅÛÎÉÊ ÐÏÞÔÏ×ÙÊ ËÌÉÅÎÔ"
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: óÏÏÂÝÅÎÉÅ ÓÏÄÅÒÖÉÔ ÎÅ-ASCII ÓÉÍ×ÏÌÙ ÎÏ MM_CHARSET ÕÓÔÁÎÏ×ÌÅÎ\n"
+        "        US-ASCII - ÐÏÖÁÌÕÊÓÔÁ ÓÍÅÎÉÔÅ ÚÎÁÞÅÎÉÅ ÎÁ ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÅÅ\n"
+        "        ×ÁÛÅÍÕ ÑÚÙËÕ, ÉÓÐÏÌØÚÕÑ M)ÍÅÎÀ ËÏÎÆÉÇÕÒÉÒÕÅÍÙÈ ÚÎÁÞÅÎÉÊ ÉÌÉ\n"
+        "        ÏÔÒÅÄÁËÔÉÒÕÊÔÅ tinrc.\n"
 
 #: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: óÏÏÂÝÅÎÉÅ ÓÏÄÅÒÖÉÔ ÎÅ-ASCII ÓÉÍ×ÏÌÙ, ÎÏ ËÏÄÉÒÏ×ËÁ MIME ÕÓÔÁÎÏ×ÌÅÎÁ\n"
+        "        × \"7bit\" - ÐÏÖÁÌÕÊÓÔÁ ÓÍÅÎÉÔÅ ÚÎÁÞÅÎÉÅ ÎÁ \"8bit\" ÉÌÉ\n"
+        "        \"quoted-printable\" × ÚÁ×ÉÓÉÍÏÓÔÉ ÏÔ ÔÏÇÏ, ÞÔÏ ÐÒÉÎÑÔÏ × ×ÁÛÅÍ\n"
+        "        ÒÅÇÉÏÎÅ. éÓÐÏÌØÚÕÊÔÅ M)ÍÅÎÀ ËÏÎÆÉÇÕÒÉÒÕÅÍÙÈ ÏÐÃÉÊ ÉÌÉ ÏÔÒÅÄÁËÔÉÒÕÊÔÅ\n"
+        "\t ÆÁÊÌ tinrc.\n"
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: óÔÁÔØÑ ÎÁÞÉÎÁÅÔÓÑ Ó ÐÕÓÔÏÊ ÓÔÒÏËÉ ×ÍÅÓÔÏ ÚÁÇÏÌÏ×ËÁ\n"
+
+#: src/lang.c:227
 #, c-format
-msgid	"Extracting %s..."
-msgstr	"éÚ×ÌÅËÁÅÍ %s..."
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: úÁÇÏÌÏ×ÏË × ÓÔÒÏËÅ %d ÎÅ ÉÍÅÅÔ Ä×ÏÅÔÏÞÉÑ ÐÏÓÌÅ ÉÍÅÎÉ:\n"
+        "%s\n"
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	"ïÛÉÂËÁ ÚÁÐÉÓÉ ÆÁÊÌÁ %s. îÅÔ ÍÅÓÔÁ? ÷ÏÓÓÔÁÎÏ×ÌÅÎÏ ÐÒÅÄ. ÓÏÓÔÏÑÎÉÅ ÆÁÊÌÁ."
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: ðÕcÔÁÑ ÓÔÒÏËÁ \"%s:\".\n"
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	"ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ ÆÁÊÌÁ %s. îÅÔ ÍÅÓÔÁ?"
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: óÔÒÏËÁ  \"%s:\" ÐÒÏÐÕÝÅÎÁ × ÚÁÌÏ×ËÅ ÓÔÁÔØÉ.\n"
 
-#: src/lang.c:224
+#: src/lang.c:230
 #, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	"æÉÌØÔÒÁÃÉÑ ÇÌÏÂÁÌØÎÙÈ ÐÒÁ×ÉÌ (%d/%d)..."
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  ""
 
-#: src/lang.c:225
-msgid	"Rule created by: "
-msgstr	"ðÒÁ×ÉÌÏ ÓÏÚÄÁÎÏ: "
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: úÁÇÏÌÏ×ÏË × ÓÔÒÏËÅ %d ÎÅ ÉÍÅÅÔ ÐÒÏÂÅÌÁ ÐÏÓÌÅ Ä×ÏÅÔÏÞÉÑ:\n"
+        "%s\n"
 
-#: src/lang.c:226
+#: src/lang.c:232
 #, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"÷×ÅÄÉÔÅ ÛÁÂÌÏÎ [%s]> "
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: îÅÓËÏÌØËÏ ÓÔÒÏË (%d) \"%s:\" × ÚÁÇÏÌÏ×ËÅ.\n"
 
-#: src/lang.c:227
+#: src/lang.c:233
 #, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	""
+msgid   "Insecure permissions of %s (%o)"
+msgstr  "îÅÂÅÚÏÐÁÓÎÙÅ ÐÒÁ×Á ÄÏÓÔÕÐÁ %s (%o)"
 
-#: src/lang.c:228
+#: src/lang.c:235
 #, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	"  %s\t ïÔ×ÅÔÙ ÂÕÄÕÔ ÎÁÐÒÁ×ÌÅÎÙ Ë ×ÁÍ ÐÏ email.\n"
+msgid   "Invalid response to GROUP command, %s"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÏÔ×ÅÔ ÎÁ ËÏÍÁÎÄÕ GROUP, %s"
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	"-- ÐÅÒÅÓÌÁÎÎÏÅ ÓÏÏÂÝÅÎÉÅ --\n"
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  "ïÛÉÂËÁ ÏÂÒÁÂÏÔËÉ MIME: îÅÏÖÉÄÁÎÎÏÅ ÏËÏÎÞÁÎÉÅ ÓÔÁÔØÉ %s/%s"
 
-#: src/lang.c:230
-msgid	"-- end of forwarded message --\n"
-msgstr	"-- ËÏÎÅÃ ÐÅÒÅÓÌÁÎÎÏÇÏ ÓÏÏÂÝÅÎÉÑ --\n"
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  "ïÛÉÂËÁ ÏÂÒÁÂÏÔËÉ MIME: îÁÞÁÌÏ ÇÒÁÎÉÃÙ × ÚÁÇÏÌÏ×ËÅ"
 
-#: src/lang.c:231
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	""
+#: src/lang.c:242
+#, fuzzy
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÇÒÕÐÐÁ!\n"
 
-#: src/lang.c:252
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  "îÅ ÕÄÁ£ÔÓÑ ÐÏÌÕÞÉÔØ ÐÏÌÎÏÅ ÉÍÑ ÄÏÍÅÎÁ!"
+
+#: src/lang.c:244
 #, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	"÷×ÅÄÉÔÅ score ÄÌÑ ÐÒÁ×ÉÌÁ (ÐÏ ÕÍÏÌÞÁÎÉÀ=%d): "
+msgid   "No permissions to go into %s\n"
+msgstr  "îÅÔ ÄÏÓÔÕÐÁ ÄÌÑ %s\n"
 
-#: src/lang.c:253
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: ðÒÏÐÕÝÅÎÁ ÓÔÒÏËÁ From:.\n"
+
+#: src/lang.c:248
 #, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	"÷×ÅÄÉÔÅ ×ÅÓ score (× ÐÒÅÄÅÌÁÈ 0 < score <= %d)"
+msgid   "No read permissions for %s\n"
+msgstr  "îÅÔ ÐÒÁ×Á ÎÁ ÞÔÅÎÉÅ ÄÌÑ %s\n"
 
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	"ðÏÌÎÙÊ"
+#: src/lang.c:249
+#, c-format
+msgid   "File %s does not exist\n"
+msgstr  "æÁÊÌ %s ÎÅ ÓÕÝÅÓÔ×ÕÅÔ\n"
+
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "îÅÔ ÐÒÁ×Á ÎÁ ÚÁÐÉÓØ ÄÌÑ %s\n"
+
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  "îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ÐÏÌØÚÏ×ÁÔÅÌÅ (ÎÅÔ /etc/passwd ?)"
+
+#: src/lang.c:252
+msgid   "errors"
+msgstr  "ÏÛÉÂËÉ"
 
-#: src/lang.c:255
-msgid	"Comment (optional)  : "
-msgstr	"ëÏÍÍÅÎÔÁÒÉÊ (ÏÐÃÉÏÎÁÌÅÎ): "
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ × ÓÔÒÏËÅ %d: úÁÇÏÌÏ×ÏË \"Sender:\" ÎÅÄÏÐÕÓÔÉÍ (ÂÕÄÅÔ ÄÏÂÁ×ÌÅÎ)\n"
 
 #: src/lang.c:256
-msgid	"Apply pattern to    : "
-msgstr	"ðÒÉÍÅÎÉÔØ ÛÁÂÌÏÎ Ë  : "
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  "îÁ ÓÅÒ×ÅÒÅ ÎÅÔ ÎÉ ÏÄÎÏÊ ÇÒÕÐÐÙ ÕËÁÚÁÎÎÙÈ × %s"
 
 #: src/lang.c:257
-msgid	"From: line (ignore case)      "
-msgstr	"From: ÓÔÒÏËÁ (ÉÇÎÏÒ. ÒÅÇÉÓÔÒ)   "
+msgid   "error"
+msgstr  "ÏÛÉÂËÁ"
 
 #: src/lang.c:258
-msgid	"From: line (case sensitive)   "
-msgstr	"From: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒ. ÒÅÇÉÓÔÒ)    "
+msgid   "Unknown display level"
+msgstr  "îÅÉÚ×ÅÓÔÎÙÊ ÕÒÏ×ÅÎØ ÄÉÓÐÌÅÑ"
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  ""
 
 #: src/lang.c:260
-#, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s: îÅÉÚ×ÅÓÔÎÙÊ ÈÏÓÔ.\n"
+msgid   "Exiting..."
+msgstr  "÷ÙÈÏÄ..."
 
 #: src/lang.c:261
-msgid	"global "
-msgstr	"ÇÌÏÂÁÌØÎÙÈ "
+msgid   "leaving external mail-reader"
+msgstr  "ÏÓÔÁ×ÌÑÅÍ ×ÎÅÛÎÉÊ ÐÏÞÔÏ×ÙÊ ËÌÉÅÎÔ"
 
 #: src/lang.c:262
 #, c-format
-msgid	"Please use %.100s instead"
-msgstr	"ðÏÖÁÌÕÊÓÔÁ ÉÓÐÏÌØÚÕÊÔÅ ×ÍÅÓÔÏ ÜÔÏÇÏ %.100s"
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	"%s ÆÉËÔÉ×ÎÁ (bogus)"
+msgid   "Extracting %s..."
+msgstr  "éÚ×ÌÅËÁÅÍ %s..."
 
 #: src/lang.c:264
 #, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"çÒÕÐÐÁ %s ÍÏÄÅÒÉÒÕÅÔÓÑ. ðÒÏÄÏÌÖÉÔØ?"
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  "ïÛÉÂËÁ ÚÁÐÉÓÉ ÆÁÊÌÁ %s. îÅÔ ÍÅÓÔÁ? ÷ÏÓÓÔÁÎÏ×ÌÅÎÏ ÐÒÅÄ. ÓÏÓÔÏÑÎÉÅ ÆÁÊÌÁ."
 
 #: src/lang.c:265
-msgid	"groups"
-msgstr	"ÇÒÕÐÐÙ"
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  "ïÛÉÂËÁ ÓÏÈÒÁÎÅÎÉÑ ÒÅÚÅÒ×ÎÏÊ ËÏÐÉÉ ÆÁÊÌÁ %s. îÅÔ ÍÅÓÔÁ?"
 
 #: src/lang.c:266
 #, c-format
-msgid	"Rereading %s..."
-msgstr	"ðÅÒÅÞÉÔÙ×ÁÀ %s..."
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  "æÉÌØÔÒÁÃÉÑ ÇÌÏÂÁÌØÎÙÈ ÐÒÁ×ÉÌ (%d/%d)..."
 
 #: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	"ëÏÍÁÎÄÙ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ"
+msgid   "Rule created by: "
+msgstr  "ðÒÁ×ÉÌÏ ÓÏÚÄÁÎÏ: "
 
 #: src/lang.c:268
-msgid	"Group Selection"
-msgstr	"÷ÙÂÏÒ ÇÒÕÐÐÙ"
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ [%s]> "
 
 #: src/lang.c:269
-msgid	"group"
-msgstr	"ÇÒÕÐÐÁ"
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  ""
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  "  %s\t ïÔ×ÅÔÙ ÂÕÄÕÔ ÎÁÐÒÁ×ÌÅÎÙ Ë ×ÁÍ ÐÏ email.\n"
 
 #: src/lang.c:271
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	"ïÄÎÁ ÉÌÉ ÂÏÌÅÅ ÓÔÒÏË ËÏÍÍÅÎÔÁÒÉÑ. <CR> ÄÏÂÁ×ÉÔØ ÓÔÒÏËÕ ÉÌÉ ÐÒÏÄÏÌÖÉÔØ ÅÓÌÉ "
-	"ÓÔÒÏËÁ ÐÕÓÔÁ."
+msgid   "-- forwarded message --\n"
+msgstr  "-- ÐÅÒÅÓÌÁÎÎÏÅ ÓÏÏÂÝÅÎÉÅ --\n"
 
 #: src/lang.c:272
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"From: ÓÔÒÏËÁ ÄÌÑ ÄÏÂ. × ÆÉÌØÔÒ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+msgid   "-- end of forwarded message --\n"
+msgstr  "-- ËÏÎÅÃ ÐÅÒÅÓÌÁÎÎÏÇÏ ÓÏÏÂÝÅÎÉÑ --\n"
 
 #: src/lang.c:273
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	"äÌÉÎÁ ÆÉÌØÔÒÕÅÍÙÈ ÓÔÁÔÅÊ. < ÍÅÎØÛÅ, > ÂÏÌØÛÅ, = ÒÁ×ÎÏ."
-
-#: src/lang.c:274
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Message-ID: ÓÔÒÏËÁ ÄÌÑ ÄÏÂ. × ÆÉÌØÔÒ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:275
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"ôÅÍÁ: ÓÔÒÏËÁ ÄÌÑ ÄÏÂ. × ÆÉÌØÔÒ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:276
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	"÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÆÉÌØÔÒÁÃÉÉ ÅÓÌÉ Subject: É From: ÓÔÒÏËÉ ÎÅÖÅÌÁÎÎÙ."
-
-#: src/lang.c:277
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	"÷ÙÂÒÁÔØ ÉÅÓÔÏ ÐÒÉÍÅÎÅÎÉÑ ÛÁÂÌÏÎÁ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:278
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	"÷ÒÅÍÑ ÄÅÊÓÔ×ÉÑ ÆÉÌØÔÒÁ × ÄÎÑÈ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:279
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"ðÒÉÍÅÎÉÔØ kill ÔÏÌØËÏ Ë ÔÅËÕÝÅÊ ÉÌÉ ËÏ ×ÓÅÍ ÇÒÕÐÐÁÍ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:280
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"ðÒÉÍÅÎÉÔØ ×ÙÂÏÒ Ë ÔÅËÕÝÅÊ ÉÌÉ ËÏ ×ÓÅÍ ÇÒÕÐÐÁÍ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:281
-msgid	"kill an article via a menu"
-msgstr	"ÕÎÉÞÔÏÖÉÔØ ÓÔÁÔØÀ ÞÅÒÅÚ ÍÅÎÀ"
-
-#: src/lang.c:282
-msgid	"auto-select (hot) an article via a menu"
-msgstr	"Á×ÔÏ×ÙÂÏÒ (hot) ÓÔÁÔØÉ ÞÅÒÅÚ ÍÅÎÀ"
-
-#: src/lang.c:283
-msgid	"Browse URLs in article"
-msgstr	"ðÒÏÓÍÏÔÒ URL × ÓÔÁÔØÅ"
-
-#: src/lang.c:284
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	"0 - 9\t  ÐÏËÁÚÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒÕ × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	"ÏÔÍÅÎÉÔØ (ÕÄÁÌÉÔØ) ÉÌÉ ÚÁÍÅÎÉÔØ (ÐÅÒÅÐÉÓÁÔØ) ÔÅËÕÝÕÀ ÓÔÁÔØÀ"
-
-#: src/lang.c:286
-msgid	"edit article (mail-groups only)"
-msgstr	"ÒÅÄÁËÔÉÒÏ×ÁÔØ ÓÔÁÔØÀ (ÔÏÌØËÏ ÄÌÑ ÐÏÞÔÏ×ÙÈ ÇÒÕÐÐ)"
-
-#: src/lang.c:287
-msgid	"display first article in current thread"
-msgstr	"ÐÏËÁÚÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
-
-#: src/lang.c:288
-msgid	"display first page of article"
-msgstr	"ÐÏËÁÚÁÔØ ÐÅÒ×ÕÀ ÓÔÒÁÎÉÃÕ ÓÔÁÔØÉ"
-
-#: src/lang.c:289
-msgid	"post followup to current article"
-msgstr	"ÏÔÐÒÁ×ÉÔØ followup ÎÁ ÔÅËÕÝÕÀ ÓÔÁÔØÀ"
-
-#: src/lang.c:290
-msgid	"post followup (don't copy text) to current article"
-msgstr	"ÏÔÐÒÁ×ÉÔØ followup (ÎÅ ËÏÐÉÒÕÑ ÔÅËÓÔ) ÎÁ ÔÅËÕÝÕÀ ÓÔÁÔØÀ"
-
-#: src/lang.c:291
-msgid	"post followup to current article quoting complete headers"
-msgstr	"ÏÔÐÒÁ×ÉÔØ followup ÎÁ ÔÅËÕÝÕÀ ÓÔÁÔØÀ, ÃÉÔÉÒÕÑ ÐÏÌÎÙÅ ÚÁÇÏÌÏ×ËÉ"
-
-#: src/lang.c:292
-msgid	"display last article in current thread"
-msgstr	"ÐÏËÁÚÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÁÔØÀ × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
-
-#: src/lang.c:293
-msgid	"display last page of article"
-msgstr	"ÐÏËÁÚÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÒÁÎÉÃÕ ÓÔÁÔØÉ"
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  ""
 
 #: src/lang.c:294
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	"ÐÏÍÅÔÉÔØ ÏÓÔÁÔÏË ÄÉÓË. ËÁË ÐÒÏÞÉÔÁÎÎÙÊ É ÐÅÒÅÊÔÉ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞÉÔ."
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  "÷×ÅÄÉÔÅ score ÄÌÑ ÐÒÁ×ÉÌÁ (ÐÏ ÕÍÏÌÞÁÎÉÀ=%d): "
 
 #: src/lang.c:295
-msgid	"display next article"
-msgstr	"ÐÏËÁÚÁÔØ ÓÌÅÄÕÀÝÕÀ ÓÔÁÔØÀ"
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  "÷×ÅÄÉÔÅ ×ÅÓ score (× ÐÒÅÄÅÌÁÈ 0 < score <= %d)"
 
+#. SCORE_MAX
 #: src/lang.c:296
-msgid	"display first article in next thread"
-msgstr	"ÐÏËÁÚÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÓÌÅÄÕÀÝÅÊ ÄÉÓËÕÓÓÉÉ"
+msgid   "Full"
+msgstr  "ðÏÌÎÙÊ"
 
 #: src/lang.c:297
-msgid	"display next unread article"
-msgstr	"ÐÏËÁÚÁÔØ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÓÔÁÔØÀ"
+msgid   "Comment (optional)  : "
+msgstr  "ëÏÍÍÅÎÔÁÒÉÊ (ÏÐÃÉÏÎÁÌÅÎ): "
 
 #: src/lang.c:298
-msgid	"go to the article that this one followed up"
-msgstr	"ÐÅÒÅÊÔÉ ÎÁ ÓÔÁÔØÀ ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÅÔ ÜÔÁ ÓÔÁÔØÑ"
+msgid   "Apply pattern to    : "
+msgstr  "ðÒÉÍÅÎÉÔØ ÛÁÂÌÏÎ Ë  : "
 
 #: src/lang.c:299
-msgid	"display previous article"
-msgstr	"ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÓÔÁÔØÀ"
+msgid   "From: line (ignore case)      "
+msgstr  "From: ÓÔÒÏËÁ (ÉÇÎÏÒ. ÒÅÇÉÓÔÒ)   "
 
 #: src/lang.c:300
-msgid	"display previous unread article"
-msgstr	"ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÓÔÁÔØÀ"
-
-#: src/lang.c:301
-msgid	"quickly kill an article using defaults"
-msgstr	"ÂÙÓÔÒÏ ÕÎÉÞÔÏÖÉÔØ ÓÔÁÔØÀ ÉÓÐÏÌØÚÕÑ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
+msgid   "From: line (case sensitive)   "
+msgstr  "From: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒ. ÒÅÇÉÓÔÒ)    "
 
 #: src/lang.c:302
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	"ÂÙÓÔÒÙÊ Á×ÔÏ×ÙÂÏÒ (hot) ÓÔÁÔØÉ ÉÓÐÏÌØÚÕÑ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
-
-#: src/lang.c:303
-msgid	"return to group selection level"
-msgstr	"×ÅÒÎÕÔØÓÑ × ÕÒÏ×ÅÎØ ×ÙÂÏÒÁ ÇÒÕÐÐ"
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s: îÅÉÚ×ÅÓÔÎÙÊ ÈÏÓÔ.\n"
 
 #: src/lang.c:304
-msgid	"reply through mail to author"
-msgstr	"ÏÔ×ÅÔÉÔØ Á×ÔÏÒÕ ÐÏ email"
+msgid   "global "
+msgstr  "ÇÌÏÂÁÌØÎÙÈ "
 
 #: src/lang.c:305
-msgid	"reply through mail (don't copy text) to author"
-msgstr	"ÏÔ×ÅÔÉÔØ (ÎÅ ×ÓÔÁ×ÌÑÑ ÔÅËÓÔ) Á×ÔÏÒÕ ÐÏ email"
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  "ðÏÖÁÌÕÊÓÔÁ ÉÓÐÏÌØÚÕÊÔÅ ×ÍÅÓÔÏ ÜÔÏÇÏ %.100s"
 
 #: src/lang.c:306
-msgid	"reply through mail to author quoting complete headers"
-msgstr	"ÏÔ×ÅÔÉÔØ (ÃÉÔÉÒÕÑ ÐÏÌÎÏÓÔØÀ ÚÁÇÏÌÏ×ËÉ) Á×ÔÏÒÕ ÐÏ email"
+#, c-format
+msgid   "%s is bogus"
+msgstr  "%s ÆÉËÔÉ×ÎÁ (bogus)"
 
 #: src/lang.c:307
-msgid	"repost chosen article to another group"
-msgstr	"ÏÔÐÒÁ×ÉÔØ ×ÙÂÒÁÎÎÕÀ ÓÔÁÔØÀ × ÄÒÕÇÕÀ ÇÒÕÐÐÕ"
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  "çÒÕÐÐÁ %s ÍÏÄÅÒÉÒÕÅÔÓÑ. ðÒÏÄÏÌÖÉÔØ?"
 
 #: src/lang.c:308
-msgid	"search backwards within this article"
-msgstr	"ÐÏÉÓË ÎÁÚÁÄ ×ÎÕÔÒÉ ÜÔÏÊ ÓÔÁÔØÉ"
+msgid   "groups"
+msgstr  "ÇÒÕÐÐÙ"
 
 #: src/lang.c:309
-msgid	"search forwards within this article"
-msgstr	"ÐÏÉÓË ×ÐÅÒ£Ä ×ÎÕÔÒÉ ÜÔÏÊ ÓÔÁÔØÉ"
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "ðÅÒÅÞÉÔÙ×ÁÀ %s..."
 
 #: src/lang.c:310
-msgid	"show article in raw-mode (including all headers)"
-msgstr	"ÐÏËÁÚÁÔØ ÓÔÁÔØÀ × raw ÒÅÖÉÍÅ (×ËÌÀÞÁÑ ×ÓÅ ÚÁÇÏÌÏ×ËÉ)"
+msgid   "Top Level Commands"
+msgstr  "ëÏÍÁÎÄÙ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ"
 
 #: src/lang.c:311
-msgid	"skip next block of included text"
-msgstr	"ÐÒÏÐÕÓÔÉÔØ ÓÌÅÄÕÀÝÉÊ ÂÌÏË ×ËÌÀÞ£ÎÎÏÇÏ ÔÅËÓÔÁ"
+msgid   "Group Selection"
+msgstr  "÷ÙÂÏÒ ÇÒÕÐÐÙ"
 
 #: src/lang.c:312
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	"ÉÚÍÅÎÉÔØ ÏÔÏÂÒÁÖÅÎÉÅ ÓÅËÃÉÊ ÓËÒÙÔÙÈ Ó ÐÏÍÏÝØÀ form-feed (^L) ÷ëì/÷ùëì"
-
-#: src/lang.c:313
-msgid	"toggle word highlighting on/off"
-msgstr	"ÉÚÍÅÎÉÔØ ÐÏÄÓ×ÅÔËÕ ÓÌÏ× ÷ëì/÷ùëì"
+msgid   "group"
+msgstr  "ÇÒÕÐÐÁ"
 
 #: src/lang.c:314
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	"ÉÚÍÅÎÉÔØ ROT-13 (ÄÅËÏÄÉÒÏ×ÁÎÉÅ) ÄÌÑ ÔÅËÕÝÅÊ ÓÔÁÔØÉ"
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  "ïÄÎÁ ÉÌÉ ÂÏÌÅÅ ÓÔÒÏË ËÏÍÍÅÎÔÁÒÉÑ. <CR> ÄÏÂÁ×ÉÔØ ÓÔÒÏËÕ ÉÌÉ ÐÒÏÄÏÌÖÉÔØ ÅÓÌÉ "
+        "ÓÔÒÏËÁ ÐÕÓÔÁ."
 
 #: src/lang.c:315
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	"ÉÚÍÅÎÉÔØ ÛÉÒÉÎÕ TAB 4 <-> 8"
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "From: ÓÔÒÏËÁ ÄÌÑ ÄÏÂ. × ÆÉÌØÔÒ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:316
-msgid	"toggle german TeX style decoding for current article"
-msgstr	"ÉÚÍÅÎÉÔØ ÎÅÍÅÃËÉÊ TeX ÓÔÉÌØ ÄÅËÏÄÉÒÏ×ÁÎÉÑ ÄÌÑ ÔÅËÕÝÅÊ ÓÔÁÔØÉ"
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  "äÌÉÎÁ ÆÉÌØÔÒÕÅÍÙÈ ÓÔÁÔÅÊ. < ÍÅÎØÛÅ, > ÂÏÌØÛÅ, = ÒÁ×ÎÏ."
 
 #: src/lang.c:317
-msgid	"toggle display of uuencoded sections"
-msgstr	"ÉÚÍÅÎÉÔØ ÐÏËÁÚ UUE ÚÁËÏÄÉÒÏ×ÁÎÎÏÊ ÓÅËÃÉÉ"
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Message-ID: ÓÔÒÏËÁ ÄÌÑ ÄÏÂ. × ÆÉÌØÔÒ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:318
-msgid	"View/save multimedia attachments"
-msgstr	"ðÒÏÓÍÏÔÒÅÔØ/ÓÏÈÒÁÎÉÔØ ÍÕÌØÔÉÍÅÄÉÑ-×ÌÏÖÅÎÉÅ"
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "ôÅÍÁ: ÓÔÒÏËÁ ÄÌÑ ÄÏÂ. × ÆÉÌØÔÒ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:319
-#, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÉÌÉ ËÏÍÍÅÎÔÁÒÉÊ %s ÐÏ email"
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÆÉÌØÔÒÁÃÉÉ ÅÓÌÉ Subject: É From: ÓÔÒÏËÉ ÎÅÖÅÌÁÎÎÙ."
 
 #: src/lang.c:320
-msgid	"choose range of articles to be affected by next command"
-msgstr	"×ÙÂÒÁÔØ ÄÉÁÐÁÚÏÎ ÓÔÁÔÅÊ ÐÏÄ×ÅÒÖÅÎÎÙÈ ÓÌÅÄÕÀÝÅÊ ËÏÍÁÎÄÏÊ"
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  "÷ÙÂÒÁÔØ ÉÅÓÔÏ ÐÒÉÍÅÎÅÎÉÑ ÛÁÂÌÏÎÁ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:321
-msgid	"escape from command prompt"
-msgstr	"×ÙÊÔÉ ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ"
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  "÷ÒÅÍÑ ÄÅÊÓÔ×ÉÑ ÆÉÌØÔÒÁ × ÄÎÑÈ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:322
-msgid	"edit filter file"
-msgstr	"ÒÅÄÁËÔÉÒÏ×ÁÔØ ÆÁÊÌ ÆÉÌØÔÒÁ"
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "ðÒÉÍÅÎÉÔØ kill ÔÏÌØËÏ Ë ÔÅËÕÝÅÊ ÉÌÉ ËÏ ×ÓÅÍ ÇÒÕÐÐÁÍ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:323
-msgid	"get help"
-msgstr	"ÐÏÌÕÞÉÔØ ÐÏÍÏÝØ"
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "ðÒÉÍÅÎÉÔØ ×ÙÂÏÒ Ë ÔÅËÕÝÅÊ ÉÌÉ ËÏ ×ÓÅÍ ÇÒÕÐÐÁÍ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:324
-msgid	"display last article viewed"
-msgstr	"ÐÏËÁÚÁÔØ ÐÏÓÌÅÄÎÀÀ ÐÒÏÓÍÏÔÒÅÎÎÕÀ ÓÔÁÔØÀ"
+msgid   "kill an article via a menu"
+msgstr  "ÕÎÉÞÔÏÖÉÔØ ÓÔÁÔØÀ ÞÅÒÅÚ ÍÅÎÀ"
 
 #: src/lang.c:325
-msgid	"down one line"
-msgstr	"×ÎÉÚ ÎÁ ÏÄÎÕ ÓÔÒÏËÕ"
+msgid   "auto-select (hot) an article via a menu"
+msgstr  "Á×ÔÏ×ÙÂÏÒ (hot) ÓÔÁÔØÉ ÞÅÒÅÚ ÍÅÎÀ"
 
 #: src/lang.c:326
-msgid	"up one line"
-msgstr	"××ÅÒÈ ÎÁ ÏÄÎÕ ÓÔÒÏËÕ"
+msgid   "Browse URLs in article"
+msgstr  "ðÒÏÓÍÏÔÒ URL × ÓÔÁÔØÅ"
 
 #: src/lang.c:327
-msgid	"go to article chosen by Message-ID"
-msgstr	"ÐÅÒÅÊÔÉ ÎÁ ÓÔÁÔØÀ ÐÏ Message-ID"
-
-#: src/lang.c:328
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	"ÏÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ/ÄÉÓË./hot/ÛÁÂÌÏÎ/ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ÐÏ email"
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  "0 - 9\t  ÐÏËÁÚÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒÕ × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
 
 #: src/lang.c:329
-msgid	"menu of configurable options"
-msgstr	"ÍÅÎÀ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÏÐÃÉÊ"
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  "ÏÔÍÅÎÉÔØ (ÕÄÁÌÉÔØ) ÉÌÉ ÚÁÍÅÎÉÔØ (ÐÅÒÅÐÉÓÁÔØ) ÔÅËÕÝÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:330
-msgid	"down one page"
-msgstr	"×ÎÉÚ ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ"
+msgid   "post followup to current article"
+msgstr  "ÏÔÐÒÁ×ÉÔØ followup ÎÁ ÔÅËÕÝÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:331
-msgid	"up one page"
-msgstr	"××ÅÒÈ ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ"
+msgid   "post followup (don't copy text) to current article"
+msgstr  "ÏÔÐÒÁ×ÉÔØ followup (ÎÅ ËÏÐÉÒÕÑ ÔÅËÓÔ) ÎÁ ÔÅËÕÝÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:332
-msgid	"post (write) article to current group"
-msgstr	"ÏÔÐÒÁ×ÉÔØ (ÎÁÐÉÓÁÔØ) ÓÔÁÔØÀ × ÔÅËÕÝÕÀ ÇÒÕÐÐÕ"
+msgid   "post followup to current article quoting complete headers"
+msgstr  "ÏÔÐÒÁ×ÉÔØ followup ÎÁ ÔÅËÕÝÕÀ ÓÔÁÔØÀ, ÃÉÔÉÒÕÑ ÐÏÌÎÙÅ ÚÁÇÏÌÏ×ËÉ"
 
 #: src/lang.c:333
-msgid	"post postponed articles"
-msgstr	"ÏÔÐÒÁ×ÉÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ"
-
-#: src/lang.c:334
-msgid	"list articles posted by you (from posted file)"
-msgstr	"ÓÐÉÓÏË ÓÔÁÔÅÊ ÏÔÐÒÁ×ÌÅÎÎÙÈ ×ÁÍÉ (ÉÚ ÆÁÊÌÁ posted)"
+msgid   "repost chosen article to another group"
+msgstr  "ÏÔÐÒÁ×ÉÔØ ×ÙÂÒÁÎÎÕÀ ÓÔÁÔØÀ × ÄÒÕÇÕÀ ÇÒÕÐÐÕ"
 
 #: src/lang.c:335
-msgid	"return to previous menu"
-msgstr	"×ÏÚ×ÒÁÔ × ÐÒÅÄÙÄÕÝÅÅ ÍÅÎÀ"
+msgid   "edit article (mail-groups only)"
+msgstr  "ÒÅÄÁËÔÉÒÏ×ÁÔØ ÓÔÁÔØÀ (ÔÏÌØËÏ ÄÌÑ ÐÏÞÔÏ×ÙÈ ÇÒÕÐÐ)"
 
 #: src/lang.c:336
-msgid	"quit tin immediately"
-msgstr	"×ÙÊÔÉ ÉÚ tin ÎÅÍÅÄÌÅÎÎÏ"
+msgid   "display first article in current thread"
+msgstr  "ÐÏËÁÚÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
 
 #: src/lang.c:337
-msgid	"redraw page"
-msgstr	"ÐÅÒÅÒÉÓÏ×ÁÔØ ÓÔÒÁÎÉÃÕ"
+msgid   "display first page of article"
+msgstr  "ÐÏËÁÚÁÔØ ÐÅÒ×ÕÀ ÓÔÒÁÎÉÃÕ ÓÔÁÔØÉ"
 
 #: src/lang.c:338
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	"ÓÏÈÒÁÎÉÔØ ÓÔÁÔØÀ/ÄÉÓË./hot/ÛÁÂÌÏÎ/ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ÆÁÊÌ"
+msgid   "display last article in current thread"
+msgstr  "ÐÏËÁÚÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÁÔØÀ × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
 
 #: src/lang.c:339
-msgid	"save marked articles automatically without user prompts"
-msgstr	"ÓÏÈÒÁÎÑÔØ ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÂÅÚ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ"
+msgid   "display last page of article"
+msgstr  "ÐÏËÁÚÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÒÁÎÉÃÕ ÓÔÁÔØÉ"
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	"ÐÒÏËÒÕÔÉÔØ ÜËÒÁÎ ÎÁ ÏÄÎÕ ÌÉÎÉÀ ×ÎÉÚ"
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  "ÐÏÍÅÔÉÔØ ÏÓÔÁÔÏË ÄÉÓË. ËÁË ÐÒÏÞÉÔÁÎÎÙÊ É ÐÅÒÅÊÔÉ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞÉÔ."
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	"ÐÒÏËÒÕÔÉÔØ ÜËÒÁÎ ÎÁ ÏÄÎÕ ÌÉÎÉÀ ××ÅÒÈ"
+msgid   "display next article"
+msgstr  "ÐÏËÁÚÁÔØ ÓÌÅÄÕÀÝÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:342
-msgid	"search for articles by author backwards"
-msgstr	"ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (ÎÁÚÁÄ)"
+msgid   "display first article in next thread"
+msgstr  "ÐÏËÁÚÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÓÌÅÄÕÀÝÅÊ ÄÉÓËÕÓÓÉÉ"
 
 #: src/lang.c:343
-msgid	"search for articles by author forwards"
-msgstr	"ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (×ÐÅÒ£Ä)"
+msgid   "display next unread article"
+msgstr  "ÐÏËÁÚÁÔØ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:344
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	"ÐÏÉÓË ×ÓÅÈ ÓÔÁÔÅÊ ÐÏ ÚÁÄÁÎÎÏÊ ÓÔÒÏËÅ (ÍÏÖÅÔ ÚÁÎÑÔØ ÎÅËÏÔÏÒÏÅ ×ÒÅÍÑ)"
+msgid   "go to the article that this one followed up"
+msgstr  "ÐÅÒÅÊÔÉ ÎÁ ÓÔÁÔØÀ ÚÁ ËÏÔÏÒÏÊ ÓÌÅÄÕÅÔ ÜÔÁ ÓÔÁÔØÑ"
 
 #: src/lang.c:345
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	" \t  (ÐÏÉÓË ÉÇÎÏÒÉÒÕÅÔ ÒÅÇÉÓÔÒ É ÏÈ×ÁÔÙ×ÁÅÔ ×ÓÅ ÓÔÁÔØÉ)"
+msgid   "display previous article"
+msgstr  "ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:346
-msgid	"search for articles by Subject line backwards"
-msgstr	"ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ ôÅÍÅ (ÎÁÚÁÄ)"
+msgid   "display previous unread article"
+msgstr  "ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:347
-msgid	"search for articles by Subject line forwards"
-msgstr	"ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ ôÅÍÅ (×ÐÅÒ£Ä)"
+msgid   "quickly kill an article using defaults"
+msgstr  "ÂÙÓÔÒÏ ÕÎÉÞÔÏÖÉÔØ ÓÔÁÔØÀ ÉÓÐÏÌØÚÕÑ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
 #: src/lang.c:348
-msgid	"repeat last search"
-msgstr	"ÐÏ×ÔÏÒÉÔØ ÐÏÓÌÅÄÎÉÊ ÐÏÉÓË"
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  "ÂÙÓÔÒÙÊ Á×ÔÏ×ÙÂÏÒ (hot) ÓÔÁÔØÉ ÉÓÐÏÌØÚÕÑ ÕÓÔÁÎÏ×ËÉ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
 #: src/lang.c:349
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	"ÏÔÍÅÔÉÔØ ÔÅËÕÝÕÀ ÓÔÁÔØÀ ÄÌÑ ÐÅÒÅÏÔÐ./email/piping/ÐÅÞÁÔÉ/ÓÏÈÒÁÎ."
+msgid   "return to group selection level"
+msgstr  "×ÅÒÎÕÔØÓÑ × ÕÒÏ×ÅÎØ ×ÙÂÏÒÁ ÇÒÕÐÐ"
 
 #: src/lang.c:350
-msgid	"toggle info message in last line (subject/description)"
-msgstr	"ÉÚÍÅÎÉÔØ ÉÎÆ. ÓÏÏÂÝÅÎÉÅ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ (ÔÅÍÁ/ÏÐÉÓÁÎÉÅ)"
+msgid   "reply through mail to author"
+msgstr  "ÏÔ×ÅÔÉÔØ Á×ÔÏÒÕ ÐÏ email"
 
 #: src/lang.c:351
-msgid	"toggle inverse video"
-msgstr	"ÉÚÍÅÎÉÔØ ÉÎ×ÅÒÓÉÀ ×ÉÄÅÏ"
+msgid   "reply through mail (don't copy text) to author"
+msgstr  "ÏÔ×ÅÔÉÔØ (ÎÅ ×ÓÔÁ×ÌÑÑ ÔÅËÓÔ) Á×ÔÏÒÕ ÐÏ email"
 
 #: src/lang.c:352
-msgid	"toggle mini help menu display"
-msgstr	"ÉÚÍÅÎÉÔØ ÍÉÎÉÐÏÄÓËÁÚËÕ"
+msgid   "reply through mail to author quoting complete headers"
+msgstr  "ÏÔ×ÅÔÉÔØ (ÃÉÔÉÒÕÑ ÐÏÌÎÏÓÔØÀ ÚÁÇÏÌÏ×ËÉ) Á×ÔÏÒÕ ÐÏ email"
 
 #: src/lang.c:353
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	"ÓÍÅÎÉÔØ ÐÏËÁÚ ÁÄÒÅÓÏ× email, ÉÍÅÎ, ÏÂÏÉÈ ÉÌÉ ÎÉÞÅÇÏ"
+msgid   "search backwards within this article"
+msgstr  "ÐÏÉÓË ÎÁÚÁÄ ×ÎÕÔÒÉ ÜÔÏÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:354
-msgid	"show version information"
-msgstr	"ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ"
+msgid   "search forwards within this article"
+msgstr  "ÐÏÉÓË ×ÐÅÒ£Ä ×ÎÕÔÒÉ ÜÔÏÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:355
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	"ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ É ×ÅÒÎÕÔØÓÑ × ÍÅÎÀ ×ÙÂÏÒÁ ÇÒÕÐÐ"
+msgid   "show article in raw-mode (including all headers)"
+msgstr  "ÐÏËÁÚÁÔØ ÓÔÁÔØÀ × raw ÒÅÖÉÍÅ (×ËÌÀÞÁÑ ×ÓÅ ÚÁÇÏÌÏ×ËÉ)"
 
 #: src/lang.c:356
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	"ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔ. É ×ÏÊÔÉ × ÓÌÅÄ. ÇÒÕÐÐÕ Ó ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÑÍÉ"
+msgid   "skip next block of included text"
+msgstr  "ÐÒÏÐÕÓÔÉÔØ ÓÌÅÄÕÀÝÉÊ ÂÌÏË ×ËÌÀÞ£ÎÎÏÇÏ ÔÅËÓÔÁ"
 
 #: src/lang.c:357
-msgid	"choose first thread in list"
-msgstr	"×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÄÉÓËÕÓÓÉÀ × ÓÐÉÓËÅ"
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  "ÉÚÍÅÎÉÔØ ÏÔÏÂÒÁÖÅÎÉÅ ÓÅËÃÉÊ ÓËÒÙÔÙÈ Ó ÐÏÍÏÝØÀ form-feed (^L) ÷ëì/÷ùëì"
 
 #: src/lang.c:358
-msgid	"choose last thread in list"
-msgstr	"×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÄÉÓËÕÓÓÉÀ × ÓÐÉÓËÅ"
+#, fuzzy
+msgid   "toggle display of all headers"
+msgstr  "ÐÏËÁÚÙ×ÁÔØ ×ÓÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÓÔÁÔØÉ"
 
 #: src/lang.c:359
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	"ÓÐÉÓÏË ÓÔÁÔÅÊ × ÄÉÓËÕÓÓÉÉ (×ÙÚ×ÁÔØ ÐÏÄÍÅÎÀ äÉÓËÕÓÓÉÑ)"
+msgid   "toggle word highlighting on/off"
+msgstr  "ÉÚÍÅÎÉÔØ ÐÏÄÓ×ÅÔËÕ ÓÌÏ× ÷ëì/÷ùëì"
 
 #: src/lang.c:360
-msgid	"mark article as unread"
-msgstr	"ÐÏÍÅÔÉÔØ ÓÔÁÔØÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ"
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  "ÉÚÍÅÎÉÔØ ROT-13 (ÄÅËÏÄÉÒÏ×ÁÎÉÅ) ÄÌÑ ÔÅËÕÝÅÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:361
-msgid	"mark current thread or tagged threads as read"
-msgstr	"ÐÏÍÅÔÉÔØ ÔÅËÕÝÕÀ ÄÉÓË. ÉÌÉ ÏÔÍÅÞÅÎÎÙÅ ÄÉÓË. ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  "ÉÚÍÅÎÉÔØ ÛÉÒÉÎÕ TAB 4 <-> 8"
 
 #: src/lang.c:362
-msgid	"mark thread as unread"
-msgstr	"ÐÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÕÀ"
+msgid   "toggle german TeX style decoding for current article"
+msgstr  "ÉÚÍÅÎÉÔØ ÎÅÍÅÃËÉÊ TeX ÓÔÉÌØ ÄÅËÏÄÉÒÏ×ÁÎÉÑ ÄÌÑ ÔÅËÕÝÅÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:363
-msgid	"toggle display of all/selected articles"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ×ÓÅ/×ÙÂÒÁÎÎÙÅ ÓÔÁÔØÉ"
+msgid   "toggle display of uuencoded sections"
+msgstr  "ÉÚÍÅÎÉÔØ ÐÏËÁÚ UUE ÚÁËÏÄÉÒÏ×ÁÎÎÏÊ ÓÅËÃÉÉ"
 
 #: src/lang.c:364
-msgid	"display next group"
-msgstr	"ÐÏËÁÚÁÔØ ÓÌÅÄÕÀÝÕÀ ÇÒÕÐÐÕ"
+#, fuzzy
+msgid   "View/pipe/save multimedia attachments"
+msgstr  "ðÒÏÓÍÏÔÒÅÔØ/ÓÏÈÒÁÎÉÔØ ÍÕÌØÔÉÍÅÄÉÑ-×ÌÏÖÅÎÉÅ"
 
 #: src/lang.c:365
-msgid	"display previous group"
-msgstr	"ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÇÒÕÐÐÕ"
+#, fuzzy
+msgid   "choose first attachment in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
 
 #: src/lang.c:366
-msgid	"toggle all selections (all articles)"
-msgstr	"ÉÚÍÅÎÉÔØ ×ÓÅ ÐÏÍÅÔËÉ (×ÓÅ ÓÔÁÔØÉ)"
+#, fuzzy
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:367
-msgid	"select group (make \"hot\")"
-msgstr	"×ÙÂÒÁÔØ ÇÒÕÐÐÕ (ÓÄÅÌÁÔØ \"hot\")"
-
-#: src/lang.c:368
-msgid	"select thread"
-msgstr	"×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ"
+#, fuzzy
+msgid   "choose last attachment in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
 
 #: src/lang.c:369
-msgid	"select threads if at least one unread article is selected"
-msgstr	"×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ, ÅÓÌÉ ÈÏÔÑ ÂÙ ÏÄÎÁ ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÑ ÐÏÍÅÞÅÎÁ"
+msgid   "pipe attachment into command"
+msgstr  ""
 
 #: src/lang.c:370
-msgid	"select threads that match user specified pattern"
-msgstr	"×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÉ, ËÏÔÏÒÙÅ ÐÏÄÐÁÄÁÀÔ ÐÏÄ ÕËÁÚÁÎÎÙÊ ÛÁÂÌÏÎ"
-
-#: src/lang.c:371
-msgid	"tag all parts of current multipart-message in order"
-msgstr	"ÐÏÍÅÔÉÔØ ×ÓÅ ÞÁÓÔÉ ÔÅËÕÝÅÇÏ multipart-ÓÏÏÂÝÅÎÉÑ ÐÏ ÐÏÒÑÄËÕ"
+#, fuzzy
+msgid   "pipe raw attachment into command"
+msgstr  "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÓÔÁÔÅÊ"
 
 #: src/lang.c:372
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 - 9\t  ×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ ÐÏ ÎÏÍÅÒÕ"
+msgid   "save attachment to disk"
+msgstr  ""
 
 #: src/lang.c:373
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	"ÉÚÍÅÎÉÔØ ÐÒÅÄÅÌ ÞÉÓÌÁ ÐÏÌÕÞÁÅÍÙÈ É ÐÅÒÅÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ"
+#, fuzzy
+msgid   "search for attachments forwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:374
-msgid	"toggle display of all/unread articles"
-msgstr	"ÐÏËÁÚÙ×ÁÔØ ×ÓÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÓÔÁÔØÉ"
+#, fuzzy
+msgid   "search for attachments backwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (ÎÁÚÁÄ)"
 
 #: src/lang.c:375
-msgid	"toggle selection of thread"
-msgstr	"ÉÚÍÅÎÉÔØ ÐÏÍÅÔËÉ ÄÉÓËÕÓÓÉÊ"
+msgid   "view attachment"
+msgstr  ""
 
 #: src/lang.c:376
-msgid	"cycle through threading options available"
-msgstr	"ÐÅÒÅÂÏÒ ÄÏÓÔÕÐÎÙÈ ÏÐÃÉÊ ÄÉÓËÕÓÓÉÊ"
+#, fuzzy
+msgid   "tag attachment"
+msgstr  "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
 
 #: src/lang.c:377
-msgid	"undo all selections (all articles)"
-msgstr	"ÏÔÍÅÎÉÔØ ×ÓÅ ÐÏÍÅÔËÉ (×ÓÅÈ ÓÔÁÔÅÊ)"
+#, fuzzy
+msgid   "tag attachments that match user specified pattern"
+msgstr  "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÉ, ËÏÔÏÒÙÅ ÐÏÄÐÁÄÁÀÔ ÐÏÄ ÕËÁÚÁÎÎÙÊ ÛÁÂÌÏÎ"
 
 #: src/lang.c:378
-msgid	"untag all tagged threads"
-msgstr	"ÓÎÑÔØ ÍÅÔËÉ Ó ÏÔÍÅÞÅÎÎÙÈ ÄÉÓËÕÓÓÉÊ"
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
 
 #: src/lang.c:379
-msgid	"mark all articles in group as read"
-msgstr	"ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+#, fuzzy
+msgid   "untag all tagged attachments"
+msgstr  "ÓÎÑÔØ ÍÅÔËÉ Ó ÏÔÍÅÞÅÎÎÙÈ ÄÉÓËÕÓÓÉÊ"
 
 #: src/lang.c:380
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	"ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ËÁË ÐÒÏÞÉÔ. É ÐÅÒÅÊÔÉ Ë ÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÇÒÕÐÐÅ"
+#, fuzzy
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  "ÉÚÍÅÎÉÔØ ÉÎÆ. ÓÏÏÂÝÅÎÉÅ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ (ÔÅÍÁ/ÏÐÉÓÁÎÉÅ)"
 
 #: src/lang.c:381
-msgid	"choose first group in list"
-msgstr	"×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
+#, fuzzy
+msgid   "choose first attribute in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
 
 #: src/lang.c:382
-msgid	"choose group by name"
-msgstr	"×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÉÍÅÎÉ"
+#, fuzzy
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:383
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 - 9\t  ×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÎÏÍÅÒÕ"
+#, fuzzy
+msgid   "choose last attribute in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
 
 #: src/lang.c:384
-msgid	"choose range of groups to be affected by next command"
-msgstr	"×ÙÂÒÁÔØ ÄÉÁÐÁÚÏÎ ÇÒÕÐÐ ÐÏÄ×ÅÒÖÅÎÎÙÈ ÓÌÅÄÕÀÝÅÊ ËÏÍÁÎÄÅ"
+msgid   "reset attribute to a default value"
+msgstr  ""
 
 #: src/lang.c:385
-msgid	"choose last group in list"
-msgstr	"×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
+#, fuzzy
+msgid   "search forwards for an attribute"
+msgstr  "ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:386
-msgid	"mark all articles in chosen group unread"
-msgstr	"ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÙÅ"
+#, fuzzy
+msgid   "search backwards for an attribute"
+msgstr  "ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (ÎÁÚÁÄ)"
 
 #: src/lang.c:387
-msgid	"move chosen group within list"
-msgstr	"ÐÅÒÅÍÅÓÔÉÔØ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
+#, fuzzy
+msgid   "select attribute"
+msgstr  "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ"
 
 #: src/lang.c:388
-msgid	"choose next group with unread news"
-msgstr	"×ÙÂÒÁÔØ ÓÌÅÄ. ÇÒÕÐÐÕ Ó ÎÅÐÒÏÞÉÔÁÎÎÙÍÉ ÎÏ×ÏÓÔÑÍÉ"
+msgid   "toggle back to options menu when invoked from there"
+msgstr  ""
 
-#: src/lang.c:389 src/lang.c:1197
-msgid	"quit"
-msgstr	"×ÙÈÏÄ"
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  "ÏÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ ÉÌÉ ËÏÍÍÅÎÔÁÒÉÊ %s ÐÏ email"
 
 #: src/lang.c:390
-msgid	"quit without saving configuration changes"
-msgstr	"×ÙÈÏÄ ÂÅÚ ÓÏÈÒÁÎÅÎÉÑ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÉÚÍÅÎÅÎÉÊ"
+#, fuzzy
+msgid   "choose first option in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:391
-msgid	"read chosen group"
-msgstr	"ÐÒÏÞÉÔÁÔØ ×ÙÂÒÁÎÎÕÀ ÇÒÕÐÐÕ"
+#, fuzzy
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:392
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	"ÓÂÒÏÓÉÔØ .newsrc (×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ÐÏÍÅÔÑÔÓÑ ÎÅÐÒÏÞÉÔÁÎÎÙÍÉ)"
+#, fuzzy
+msgid   "choose last option in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:393
-msgid	"search backwards for a group name"
-msgstr	"ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (ÎÁÚÁÄ)"
+#, fuzzy
+msgid   "start scopes menu"
+msgstr  "×ÏÚ×ÒÁÔ × ÐÒÅÄÙÄÕÝÅÅ ÍÅÎÀ"
 
 #: src/lang.c:394
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	" \t  (×ÓÅ ÐÏÉÓËÉ ÒÅÇÉÓÔÒÏ-ÎÅÚÁ×ÉÓÉÍÙ É ÏÈ×ÁÔÙ×ÁÀÔ ×ÓÅ ÓÔÁÔØÉ/ÇÒÕÐÐÙ)"
+#, fuzzy
+msgid   "search forwards for an option"
+msgstr  "ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:395
-msgid	"search forwards for a group name"
-msgstr	"ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (×ÐÅÒ£Ä)"
+#, fuzzy
+msgid   "search backwards for an option"
+msgstr  "ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (ÎÁÚÁÄ)"
 
 #: src/lang.c:396
-msgid	"subscribe to chosen group"
-msgstr	"ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ×ÙÂÒÁÎÎÕÀ ÇÒÕÐÐÕ"
+#, fuzzy
+msgid   "select option"
+msgstr  "×ÙÂÏÒ"
 
 #: src/lang.c:397
-msgid	"subscribe to groups that match pattern"
-msgstr	"ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÇÒÕÐÐÙ, ÓÏ×ÐÁÄÁÀÝÉÅ Ó ÛÁÂÌÏÎÏÍ"
+msgid   "toggle to attributes menu"
+msgstr  ""
 
 #: src/lang.c:398
-msgid	"reread active file to check for any new news"
-msgstr	"ÐÅÒÅÞÉÔÁÔØ ÆÁÊÌ active ÄÌÑ ÐÒÏ×ÅÒËÉ ÎÏ×ÙÈ ÎÏ×ÏÓÔÅÊ"
+msgid   "choose range of articles to be affected by next command"
+msgstr  "×ÙÂÒÁÔØ ÄÉÁÐÁÚÏÎ ÓÔÁÔÅÊ ÐÏÄ×ÅÒÖÅÎÎÙÈ ÓÌÅÄÕÀÝÅÊ ËÏÍÁÎÄÏÊ"
 
 #: src/lang.c:399
-msgid	"toggle display of group name only or group name plus description"
-msgstr	"ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ÉÍÑ ÇÒÕÐÐÙ ÉÌÉ ÉÍÑ ÇÒÕÐÐÙ ÐÌÀÓ ÏÐÉÓÁÎÉÅ"
+msgid   "escape from command prompt"
+msgstr  "×ÙÊÔÉ ÉÚ ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ"
 
 #: src/lang.c:400
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	"ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ"
+msgid   "edit filter file"
+msgstr  "ÒÅÄÁËÔÉÒÏ×ÁÔØ ÆÁÊÌ ÆÉÌØÔÒÁ"
 
 #: src/lang.c:401
-msgid	"unsubscribe from chosen group"
-msgstr	"ÏÔÐÉÓÁÔØÓÑ ÏÔ ×ÙÂÒÁÎÎÏÊ ÇÒÕÐÐÙ"
+msgid   "get help"
+msgstr  "ÐÏÌÕÞÉÔØ ÐÏÍÏÝØ"
 
 #: src/lang.c:402
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"ÏÔÐÉÓÁÔØÓÑ ÏÔ ÇÒÕÐÐ, ÓÏ×ÐÁÄÁÀÝÉÈ Ó ÛÁÂÌÏÎÏÍ"
+msgid   "display last article viewed"
+msgstr  "ÐÏËÁÚÁÔØ ÐÏÓÌÅÄÎÀÀ ÐÒÏÓÍÏÔÒÅÎÎÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:403
-msgid	"sort the list of groups"
-msgstr	"ÓÏÒÔÉÒÏ×ÁÔØ ÓÐÉÓÏË ÇÒÕÐÐ"
+msgid   "down one line"
+msgstr  "×ÎÉÚ ÎÁ ÏÄÎÕ ÓÔÒÏËÕ"
 
 #: src/lang.c:404
-msgid	"toggle display to show all/subscribed groups"
-msgstr	"ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ/ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ"
+msgid   "up one line"
+msgstr  "××ÅÒÈ ÎÁ ÏÄÎÕ ÓÔÒÏËÕ"
 
 #: src/lang.c:405
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 - 9\t  ×ÙÂÒÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒÕ"
+msgid   "go to article chosen by Message-ID"
+msgstr  "ÐÅÒÅÊÔÉ ÎÁ ÓÔÁÔØÀ ÐÏ Message-ID"
 
 #: src/lang.c:406
-msgid	"mark thread as read and return to group index page"
-msgstr	"ÐÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ É ×ÅÒÎÕÔØÓÑ ÎÁ ÓÔÒÁÎÉÃÕ ÉÎÄÅËÓÁ ÇÒÕÐÐ"
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  "ÏÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ/ÄÉÓË./hot/ÛÁÂÌÏÎ/ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ÐÏ email"
 
 #: src/lang.c:407
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	"ÐÏÍÅÔÉÔØ ÄÉÓË. ËÁË ÐÒÏÞÉÔ. É ÐÅÒÅÊÔÉ × ÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÄÉÓË. ÉÌÉ ÇÒÕÐÐÅ"
+msgid   "menu of configurable options"
+msgstr  "ÍÅÎÀ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÏÐÃÉÊ"
 
 #: src/lang.c:408
-msgid	"choose first article in list"
-msgstr	"×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
+msgid   "down one page"
+msgstr  "×ÎÉÚ ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ"
 
 #: src/lang.c:409
-msgid	"choose last article in list"
-msgstr	"×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
-
-#: src/lang.c:410
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	"ÐÏÍÅÔÉÔØ ÓÔÁÔØÀ ÉÌÉ ÏÔÍÅÞ. ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔ. É ÐÅÒÅÊÔÉ Ë ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÅ"
+msgid   "up one page"
+msgstr  "××ÅÒÈ ÎÁ ÏÄÎÕ ÓÔÒÁÎÉÃÕ"
 
 #: src/lang.c:411
-msgid	"read chosen article"
-msgstr	"ÐÒÏÞÉÔÁÔØ ×ÙÂÒÁÎÎÕÀ ÓÔÁÔØÀ"
+msgid   "post (write) article to current group"
+msgstr  "ÏÔÐÒÁ×ÉÔØ (ÎÁÐÉÓÁÔØ) ÓÔÁÔØÀ × ÔÅËÕÝÕÀ ÇÒÕÐÐÕ"
 
 #: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	"ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
-	"-----------------"
-
-#: src/lang.c:413
-#, fuzzy
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	"òÁÚÎÙÅ\n"
-	"------"
+msgid   "post postponed articles"
+msgstr  "ÏÔÐÒÁ×ÉÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ"
 
 #: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	"ä×ÉÖÅÎÉÅ\n"
-	"--------"
+msgid   "list articles posted by you (from posted file)"
+msgstr  "ÓÐÉÓÏË ÓÔÁÔÅÊ ÏÔÐÒÁ×ÌÅÎÎÙÈ ×ÁÍÉ (ÉÚ ÆÁÊÌÁ posted)"
 
 #: src/lang.c:415
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"ïÐÅÒÁÃÉÉ Ó ÇÒÕÐÐÁÍÉ/ÄÉÓËÕÓÓÉÑÍ/ÓÔÁÔØÑÍÉ\n"
-	"---------------------------------------"
+msgid   "return to previous menu"
+msgstr  "×ÏÚ×ÒÁÔ × ÐÒÅÄÙÄÕÝÅÅ ÍÅÎÀ"
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  "×ÙÊÔÉ ÉÚ tin ÎÅÍÅÄÌÅÎÎÏ"
 
 #: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	"ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÇÒÕÐÐ"
+msgid   "redraw page"
+msgstr  "ÐÅÒÅÒÉÓÏ×ÁÔØ ÓÔÒÁÎÉÃÕ"
 
 #: src/lang.c:418
-msgid	"Kill filter added"
-msgstr	"õÎÉÞÔÏÖÉÔØ ÄÏÂÁ×ÌÅÎÎÙÊ ÆÉÌØÔÒ"
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  "ÓÏÈÒÁÎÉÔØ ÓÔÁÔØÀ/ÄÉÓË./hot/ÛÁÂÌÏÎ/ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ÆÁÊÌ"
 
 #: src/lang.c:419
-msgid	"Auto-selection filter added"
-msgstr	"æÉÌØÔÒ Á×ÔÏ×ÙÂÏÒÁ ÄÏÂÁ×ÌÅÎ"
+msgid   "save marked articles automatically without user prompts"
+msgstr  "ÓÏÈÒÁÎÑÔØ ÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÂÅÚ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ"
 
 #: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	"÷ÓÅ ÞÁÓÔÉ ÐÏÍÅÞÅÎÙ"
+msgid   "scroll the screen one line down"
+msgstr  "ÐÒÏËÒÕÔÉÔØ ÜËÒÁÎ ÎÁ ÏÄÎÕ ÌÉÎÉÀ ×ÎÉÚ"
 
 #: src/lang.c:421
-msgid	"Storing article for later posting"
-msgstr	"óÏÈÒÁÎÅÎÉÅ ÓÔÁÔØÉ ÄÌÑ ÏÔÌÏÖÅÎÎÏÊ ÏÔÐÒÁ×ËÉ"
+msgid   "scroll the screen one line up"
+msgstr  "ÐÒÏËÒÕÔÉÔØ ÜËÒÁÎ ÎÁ ÏÄÎÕ ÌÉÎÉÀ ××ÅÒÈ"
 
 #: src/lang.c:422
-msgid	"Please enter a valid character"
-msgstr	"ðÏÖÁÌÕÊÓÔÁ ××ÅÄÉÔÅ ÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ"
+msgid   "search for articles by author backwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (ÎÁÚÁÄ)"
 
 #: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	"ðÒÏÐÕÝÅÎÁ ÞÁÓÔØ #%d"
+msgid   "search for articles by author forwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	"*** îÅÔ ÏÔÌÏÖÅÎÎÙÈ ÓÔÁÔÅÊ ***"
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  "ÐÏÉÓË ×ÓÅÈ ÓÔÁÔÅÊ ÐÏ ÚÁÄÁÎÎÏÊ ÓÔÒÏËÅ (ÍÏÖÅÔ ÚÁÎÑÔØ ÎÅËÏÔÏÒÏÅ ×ÒÅÍÑ)"
 
 #: src/lang.c:425
-msgid	"Not a multi-part message"
-msgstr	"îÅ multi-part ÓÏÏÂÝÅÎÉÅ"
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  " \t  (ÐÏÉÓË ÉÇÎÏÒÉÒÕÅÔ ÒÅÇÉÓÔÒ É ÏÈ×ÁÔÙ×ÁÅÔ ×ÓÅ ÓÔÁÔØÉ)"
 
 #: src/lang.c:426
-msgid	"You are not subscribed to this group"
-msgstr	"÷Ù ÎÅ ÐÏÄÐÉÓÁÎÙ ÎÁ ÜÔÕ ÇÒÕÐÐÕ"
+msgid   "search for articles by Subject line backwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ ôÅÍÅ (ÎÁÚÁÄ)"
 
 #: src/lang.c:427
-msgid	"No previous expression"
-msgstr	"îÅÔ ÐÒÅÄÙÄÕÝÅÇÏ ×ÙÒÁÖÅÎÉÑ"
+msgid   "search for articles by Subject line forwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ ôÅÍÅ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:428
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	"ïÐÅÒÁÃÉÑ ÚÁÐÒÅÝÅÎÁ × ÒÅÖÉÍÅ ÚÁÐÒÅÝÅÎÉÑ ÐÅÒÅÚÁÐÉÓÉ"
+msgid   "repeat last search"
+msgstr  "ÐÏ×ÔÏÒÉÔØ ÐÏÓÌÅÄÎÉÊ ÐÏÉÓË"
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  "ÏÔÍÅÔÉÔØ ÔÅËÕÝÕÀ ÓÔÁÔØÀ ÄÌÑ ÐÅÒÅÏÔÐ./email/piping/ÐÅÞÁÔÉ/ÓÏÈÒÁÎ."
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	"%d ÏÔÌÏÖÅÎÁ(Ù) %s, ×ÏÚÏÂÎÏ×ÉÔØ Ó ^O...\n"
+msgid   "toggle info message in last line (subject/description)"
+msgstr  "ÉÚÍÅÎÉÔØ ÉÎÆ. ÓÏÏÂÝÅÎÉÅ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ (ÔÅÍÁ/ÏÐÉÓÁÎÉÅ)"
 
 #: src/lang.c:431
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	"X-Conversion-Note: multipart/alternative ÓÏÄÅÒÖÉÍÏÅ ÂÙÌÏ ÕÄÁÌÅÎÏ.\n"
-	"  äÌÑ ÐÏÌÕÞÅÎÉÑ ×ÓÅÊ ÓÔÁÔØÉ, ÉÚÍÅÎÉÔÅ ÏÂÒÁÂÏÔËÕ multipart/alternative\n"
-	"  ÓÔÁÔÅÊ ÎÁ OFF × íÅÎÀ ÏÐÃÉÊ\n"
+msgid   "toggle inverse video"
+msgstr  "ÉÚÍÅÎÉÔØ ÉÎ×ÅÒÓÉÀ ×ÉÄÅÏ"
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  "ÉÚÍÅÎÉÔØ ÍÉÎÉÐÏÄÓËÁÚËÕ"
 
 #: src/lang.c:433
-#, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	"æÁÊÌ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ  %s/%s - mailbox. ÷ÌÏÖÅÎÉÅ ÎÅ ÓÏÈÒÁÎÅÎÏ"
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  "ÓÍÅÎÉÔØ ÐÏËÁÚ ÁÄÒÅÓÏ× email, ÉÍÅÎ, ÏÂÏÉÈ ÉÌÉ ÎÉÞÅÇÏ"
 
 #: src/lang.c:434
-msgid	"TeX2Iso encoded article"
-msgstr	"TeX2Iso ËÏÄÉÒÏ×ÁÎÎÁÑ ÓÔÁÔØÑ"
+msgid   "show version information"
+msgstr  "ÐÏËÁÚÁÔØ ÉÎÆÏÒÍÁÃÉÀ Ï ×ÅÒÓÉÉ"
 
 #: src/lang.c:435
-msgid	"incomplete "
-msgstr	"ÎÅÐÏÌÎÙÊ "
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  "ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ É ×ÅÒÎÕÔØÓÑ × ÍÅÎÀ ×ÙÂÏÒÁ ÇÒÕÐÐ"
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  "ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔ. É ×ÏÊÔÉ × ÓÌÅÄ. ÇÒÕÐÐÕ Ó ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÑÍÉ"
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	"\n"
-	"äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × %s, ÐÏÌÎÏÜËÒÁÎÎÙÊ newsreader. tin ÍÏÖÅÔ ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ Ó \n"
-	"ÌÏËÁÌØÎÏÊ ÍÁÛÉÎÙ (ÎÁÐÒÉÍÅÒ Ó <spool>/news) ÉÌÉ ÕÄÁÌÅÎÏ (Ó ÏÐÃÉÅÊ -r) Ó NNTP\n"
-	"(Network News Transport Protocol) ÓÅÒ×ÅÒÁ. -h ÐÏËÁÚÙ×ÁÅÔ ÄÏÓÔÕÐÎÙÅ ÏÐÃÉÉ\n"
-	"ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ.\n"
-	"\n"
-	"÷ %s ÞÅÔÙÒÅ ÕÒÏ×ÎÑ: ÓÔÒÁÎÉÃÁ ×ÙÂÏÒÁ ÇÒÕÐÐÙ, ÓÔÒÁÎÉÃÁ ÉÎÄÅËÓÁ ÇÒÕÐÐÙ, "
-	"ÓÔÒÁÎÉÃÁ\n"
-	"ÄÉÓËÕÓÓÉÊ É ÓÔÒÁÎÉÃÁ ÐÒÏÓÍÏÔÒÁ ÓÔÁÔØÉ. ðÏÄÓËÁÚËÁ ÄÏÓÔÕÐÎÁ ÄÌÑ ËÁÖÄÏÇÏ ÕÒÏ×ÎÑ\n"
-	"ÎÁÖÁÔÉÅÍ 'h'.\n"
-	"\n"
-	"ðÅÒÅÍÅÝÁÔØÓÑ ××ÅÒÈ/×ÎÉÚ ÍÏÖÎÏ ÎÁÖÁÔÉÅÍ ÓÔÒÅÌÏË ÉÌÉ 'j' É 'k'. äÌÑ\n"
-	"ÐÒÏÌÉÓÔÙ×ÁÎÉÑ ÓÔÒÁÎÉÃÙ ××ÅÒÈ/×ÎÉÚ ÎÁÖÍÉÔÅ PgUp / PgDn ÉÌÉ Ctrl-U / Ctrl-D\n"
-	"÷ÈÏÄ × ÇÒÕÐÐÕ ÎÁÖÁÔÉÅÍ <CR>/<ôáâ>.\n"
-	"\n"
-	"óÔÁÔØÉ, ÄÉÓËÕÓÓÉÉ, ÐÏÍÅÞÅÎÎÙÅ ÉÌÉ ÓÏ×ÐÁÄÁÀÝÉÅ Ó ÛÁÂÌÏÎÏÍ ÓÔÁÔØÉ ÍÏÇÕÔ ÂÙÔØ\n"
-	"ÏÔÐÒÁ×ÌÅÎÙ ÐÏ email (ËÏÍÁÎÄÁ 'm'), ÎÁÐÅÞÁÔÁÎÙ (ËÏÍÁÎÄÁ 'o'), ÓÏÈÒÁÎÅÎÙ\n"
-	"(ËÏÍÁÎÄÁ 's') ÉÌÉ ÏÔÐÒÁ×ÌÅÎÙ × pipe (ËÏÍÁÎÄÁ '|').\n"
-	"'w' - ÏÔÐÒÁ×ÉÔØ ÎÏ×ÕÀ ÓÔÁÔØÀ, 'f'/'F' - ÏÔÐÒÁ×ÉÔØ follow-up ÎÁ ÓÕÝÅÓÔ×ÕÀÝÕÀ\n"
-	"ÓÔÁÔØÀ É 'r'/'R' - ÏÔ×ÅÔÉÔØ ÐÏ email Á×ÔÏÒÕ ÓÔÁÔØÉ. ëÏÍÁÎÄÁ 'M' ÐÏÚ×ÏÌÑÅÔ\n"
-	"ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ %s ÐÏÓÒÅÄÓÔ×ÏÍ ÕÄÏÂÎÏÇÏ ÍÅÎÀ.\n"
-	"\n"
-	"äÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÞÉÔÁÊÔÅ ÓÔÒÁÎÉÃÙ ÄÏËÕÍÅÎÔÁÃÉÉ, ÆÁÊÌÙ README, "
-	"INSTALL\n"
-	"TODO É FTP. óÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ É ÏÔÚÙ×Ù ÏÔÐÒÁ×ÌÑÊÔÅ %s ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄÙ "
-	"'R'.\n"
+msgid   "choose first thread in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÄÉÓËÕÓÓÉÀ × ÓÐÉÓËÅ"
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÄÉÓËÕÓÓÉÀ × ÓÐÉÓËÅ"
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  "ÓÐÉÓÏË ÓÔÁÔÅÊ × ÄÉÓËÕÓÓÉÉ (×ÙÚ×ÁÔØ ÐÏÄÍÅÎÀ äÉÓËÕÓÓÉÑ)"
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  "ÐÏÍÅÔÉÔØ ÓÔÁÔØÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ"
+
+#: src/lang.c:441
+#, fuzzy
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  "ÐÏÍÅÔÉÔØ ÔÅËÕÝÕÀ ÄÉÓË. ÉÌÉ ÏÔÍÅÞÅÎÎÙÅ ÄÉÓË. ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+
+#: src/lang.c:442
+#, fuzzy
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  "ÐÏÍÅÔÉÔØ ÔÅËÕÝÕÀ ÄÉÓË. ÉÌÉ ÏÔÍÅÞÅÎÎÙÅ ÄÉÓË. ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  ""
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  ""
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ×ÓÅ/×ÙÂÒÁÎÎÙÅ ÓÔÁÔØÉ"
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  "ÐÏËÁÚÁÔØ ÓÌÅÄÕÀÝÕÀ ÇÒÕÐÐÕ"
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  "ÐÏËÁÚÁÔØ ÐÒÅÄÙÄÕÝÕÀ ÇÒÕÐÐÕ"
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  "ÉÚÍÅÎÉÔØ ×ÓÅ ÐÏÍÅÔËÉ (×ÓÅ ÓÔÁÔØÉ)"
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  "×ÙÂÒÁÔØ ÇÒÕÐÐÕ (ÓÄÅÌÁÔØ \"hot\")"
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ"
+
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ, ÅÓÌÉ ÈÏÔÑ ÂÙ ÏÄÎÁ ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÑ ÐÏÍÅÞÅÎÁ"
+
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  "×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÉ, ËÏÔÏÒÙÅ ÐÏÄÐÁÄÁÀÔ ÐÏÄ ÕËÁÚÁÎÎÙÊ ÛÁÂÌÏÎ"
 
 #: src/lang.c:453
-#, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	"îÅÄÏÐÕÓÔÉÍÁÑ ÓÔÒÏËÁ From: %s. ðÒÏÞÉÔÁÊÔÅ ÆÁÊÌ INSTALL ÓÎÏ×Á."
+msgid   "tag all parts of current multipart-message in order"
+msgstr  "ÐÏÍÅÔÉÔØ ×ÓÅ ÞÁÓÔÉ ÔÅËÕÝÅÇÏ multipart-ÓÏÏÂÝÅÎÉÑ ÐÏ ÐÏÒÑÄËÕ"
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÄÉÓËÕÓÓÉÀ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	"îÁÊÄÅÎÁ ÎÅÄÏÐÕÓÔÉÍÁÑ ÍÕÌØÔÉÂÁÊÔÏ×ÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ\n"
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  "ÉÚÍÅÎÉÔØ ÐÒÅÄÅÌ ÞÉÓÌÁ ÐÏÌÕÞÁÅÍÙÈ É ÐÅÒÅÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  "ÐÏËÁÚÙ×ÁÔØ ×ÓÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÓÔÁÔØÉ"
 
 #: src/lang.c:457
-#, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÚÁÇÏÌÏ×ÏË Sender: %s"
+msgid   "toggle selection of thread"
+msgstr  "ÉÚÍÅÎÉÔØ ÐÏÍÅÔËÉ ÄÉÓËÕÓÓÉÊ"
 
 #: src/lang.c:458
-msgid	"Inverse video disabled"
-msgstr	"éÎ×ÅÒÓÎÏÅ ×ÉÄÅÏ ÚÁÐÒÅÝÅÎÏ"
+msgid   "cycle through threading options available"
+msgstr  "ÐÅÒÅÂÏÒ ÄÏÓÔÕÐÎÙÈ ÏÐÃÉÊ ÄÉÓËÕÓÓÉÊ"
 
 #: src/lang.c:459
-msgid	"Inverse video enabled"
-msgstr	"éÎ×ÅÒÓÎÏÅ ×ÉÄÅÏ ÒÁÚÒÅÛÅÎÏ"
+msgid   "undo all selections (all articles)"
+msgstr  "ÏÔÍÅÎÉÔØ ×ÓÅ ÐÏÍÅÔËÉ (×ÓÅÈ ÓÔÁÔÅÊ)"
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  "ÓÎÑÔØ ÍÅÔËÉ Ó ÏÔÍÅÞÅÎÎÙÈ ÄÉÓËÕÓÓÉÊ"
 
 #: src/lang.c:461
-#, c-format
-msgid	"Missing definition for %s\n"
-msgstr	"ðÒÏÐÕÝÅÎÏ ÏÐÒÅÄÅÌÅÎÉÅ ÄÌÑ %s\n"
+msgid   "add new scope"
+msgstr  ""
 
 #: src/lang.c:462
-#, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	"îÅÐÒÁ×ÉÌØÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ËÌÁ×ÉÛÉ '%s'\n"
+#, fuzzy
+msgid   "delete scope"
+msgstr  "÷ÙÂÒÁÔØ ÏÂÌÁÓÔØ ÛÁÂÌÏÎÁ: "
 
 #: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	"îÅÐÒÁ×ÉÌØÎÏÅ ÎÁÚ×ÁÎÉÅ ËÌÁ×ÉÛÉ '%s'\n"
+#, fuzzy
+msgid   "edit attributes file"
+msgstr  "úÁÐÉÓØ ÆÁÊÌÁ ÁÔÒÉÂÕÔÏ×..."
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	"æÁÊÌ Keymap ÏÂÎÏ×ÌÅÎ ÄÏ ×ÅÒÓÉÉ %s\n"
+#, fuzzy
+msgid   "choose first scope in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	"õÎÉÞÔÏÖÉÔØ From:    [%s] (y/n): "
+#, fuzzy
+msgid   "0 - 9\t  choose scope by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	"õÎÉÞÔÏÖÉÔØ ÓÔÒÏËÉ: (</>num): "
+#, fuzzy
+msgid   "choose last scope in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	"õÎÉÞÔÏÖÉÔØ ÍÅÎÀ ÓÔÁÔØÉ"
+msgid   "move scope"
+msgstr  ""
 
 #: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	"õÎÉÞÔÏÖÉÔØ Msg-Id:   [%s] (f/l/o/n): "
+msgid   "rename scope"
+msgstr  ""
 
 #: src/lang.c:469
-msgid	"Kill pattern scope  : "
-msgstr	"õÎÉÞÔÏÖÉÔØ ÛÁÂÌÏÎ ÏÂÚÏÒÁ  : "
+#, fuzzy
+msgid   "select scope"
+msgstr  "×ÙÈÏÄ × ÏÂÏÌÏÞËÕ"
 
 #: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	"õÎÉÞÔÏÖÉÔØ ôÅÍÕ:  [%s] (y/n): "
+msgid   "mark all articles in group as read"
+msgstr  "ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
 
 #: src/lang.c:471
-msgid	"Kill text pattern   : "
-msgstr	"õÎÉÞÔÏÖÉÔØ ÛÁÂÌÏÎ    : "
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  "ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ËÁË ÐÒÏÞÉÔ. É ÐÅÒÅÊÔÉ Ë ÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÇÒÕÐÐÅ"
 
 #: src/lang.c:472
-msgid	"Kill time in days   : "
-msgstr	"õÎÉÞÔÏÖÉÔØ ×ÒÅÍÑ × ÄÎÑÈ   : "
+msgid   "choose first group in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  "×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÉÍÅÎÉ"
 
 #: src/lang.c:474
-msgid	"Last"
-msgstr	"ðÏÓÌÅÄÎÉÊ"
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	"-- ðÏÓÌÅÄÎÉÊ ÏÔ×ÅÔ --"
+msgid   "choose range of groups to be affected by next command"
+msgstr  "×ÙÂÒÁÔØ ÄÉÁÐÁÚÏÎ ÇÒÕÐÐ ÐÏÄ×ÅÒÖÅÎÎÙÈ ÓÌÅÄÕÀÝÅÊ ËÏÍÁÎÄÅ"
 
 #: src/lang.c:476
-#, c-format
-msgid	"Lines %s  "
-msgstr	"óÔÒÏË %s  "
+msgid   "choose last group in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  "ÐÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÙÅ"
 
 #: src/lang.c:478
-msgid	"Message-ID: line              "
-msgstr	"Message-ID: ÓÔÒÏËÁ            "
+msgid   "move chosen group within list"
+msgstr  "ÐÅÒÅÍÅÓÔÉÔØ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:479
-msgid	"Mail"
-msgstr	""
+msgid   "choose next group with unread news"
+msgstr  "×ÙÂÒÁÔØ ÓÌÅÄ. ÇÒÕÐÐÕ Ó ÎÅÐÒÏÞÉÔÁÎÎÙÍÉ ÎÏ×ÏÓÔÑÍÉ"
 
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	""
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  "×ÙÈÏÄ"
 
 #: src/lang.c:481
-#, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"ïÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ(É) ÐÏ email [%.*s]> "
+msgid   "quit without saving configuration changes"
+msgstr  "×ÙÈÏÄ ÂÅÚ ÓÏÈÒÁÎÅÎÉÑ ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÈ ÉÚÍÅÎÅÎÉÊ"
 
 #: src/lang.c:482
-#, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"ïÔÐÒÁ×ÉÔØ ÌÏÇ-ÓÏÏÂÝÅÎÉÅ %s\n"
+msgid   "read chosen group"
+msgstr  "ÐÒÏÞÉÔÁÔØ ×ÙÂÒÁÎÎÕÀ ÇÒÕÐÐÕ"
 
 #: src/lang.c:483
-msgid	"Mail bug report..."
-msgstr	"ïÔÐÒÁ×ÌÑÅÔÓÑ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ..."
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  "ÓÂÒÏÓÉÔØ .newsrc (×ÓÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ ÐÏÍÅÔÑÔÓÑ ÎÅÐÒÏÞÉÔÁÎÎÙÍÉ)"
 
 #: src/lang.c:484
-#, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"ïÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ %s?"
+msgid   "search backwards for a group name"
+msgstr  "ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (ÎÁÚÁÄ)"
 
 #: src/lang.c:485
-msgid	"Mailed"
-msgstr	"ïÔÐÒÁ×ÌÅÎÏ ÐÏ email"
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  " \t  (×ÓÅ ÐÏÉÓËÉ ÒÅÇÉÓÔÒÏ-ÎÅÚÁ×ÉÓÉÍÙ É ÏÈ×ÁÔÙ×ÁÀÔ ×ÓÅ ÓÔÁÔØÉ/ÇÒÕÐÐÙ)"
 
 #: src/lang.c:486
-#, c-format
-msgid	"Mailing to %s..."
-msgstr	"ïÔÐÒÁ×ÌÑÅÔÓÑ ÐÏ email %s..."
+msgid   "search forwards for a group name"
+msgstr  "ÐÏÉÓË ÉÍÅÎÉ ÇÒÕÐÐÙ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:487
-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	""
+msgid   "subscribe to chosen group"
+msgstr  "ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ×ÙÂÒÁÎÎÕÀ ÇÒÕÐÐÕ"
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  "ÐÏÄÐÉÓÁÔØÓÑ ÎÁ ÇÒÕÐÐÙ, ÓÏ×ÐÁÄÁÀÝÉÅ Ó ÛÁÂÌÏÎÏÍ"
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  "ÐÅÒÅÞÉÔÁÔØ ÆÁÊÌ active ÄÌÑ ÐÒÏ×ÅÒËÉ ÎÏ×ÙÈ ÎÏ×ÏÓÔÅÊ"
 
 #: src/lang.c:490
-#, c-format
-msgid	"%s marked as unread"
-msgstr	"%s ÐÏÍÅÞÅÎÏ ËÁË ÎÅÐÒÏÞÉÔÁÎÏ"
+msgid   "toggle display of group name only or group name plus description"
+msgstr  "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ÉÍÑ ÇÒÕÐÐÙ ÉÌÉ ÉÍÑ ÇÒÕÐÐÙ ÐÌÀÓ ÏÐÉÓÁÎÉÅ"
 
 #: src/lang.c:491
-#, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	"ðÏÍÅÞÅÎÏ %d ÉÚ %d ÏÔÍÅÞÅÎÎÙÈ %s ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ"
 
 #: src/lang.c:492
-#, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"ðÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ%s?"
+msgid   "unsubscribe from chosen group"
+msgstr  "ÏÔÐÉÓÁÔØÓÑ ÏÔ ×ÙÂÒÁÎÎÏÊ ÇÒÕÐÐÙ"
 
 #: src/lang.c:493
-#, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	"íÁÒËÉÒÏ×ÁÔØ %s=ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ, %s=ÔÅËÕÝÕÀ ÓÔÁÔØÀ, %s=×ÙÈÏÄ: "
+msgid   "unsubscribe from groups that match pattern"
+msgstr  "ÏÔÐÉÓÁÔØÓÑ ÏÔ ÇÒÕÐÐ, ÓÏ×ÐÁÄÁÀÝÉÈ Ó ÛÁÂÌÏÎÏÍ"
 
 #: src/lang.c:494
-#, c-format
-msgid	"Mark group %s as read?"
-msgstr	"ðÏÍÅÔÉÔØ ÇÒÕÐÐÕ %s ËÁË ÐÒÏÞÉÔÁÎÎÕÀ?"
+msgid   "sort the list of groups"
+msgstr  "ÓÏÒÔÉÒÏ×ÁÔØ ÓÐÉÓÏË ÇÒÕÐÐ"
 
 #: src/lang.c:495
-#, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"ðÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ %s?"
+msgid   "toggle display to show all/subscribed groups"
+msgstr  "ÐÅÒÅËÌÀÞÉÔØ ×Ù×ÏÄ: ×ÓÅ/ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ"
 
 #: src/lang.c:496
-#, c-format
-msgid	"Mark %s=tagged articles/threads, %s=current thread, %s=quit: "
-msgstr	"íÁÒËÉÒÏ×ÁÔØ %s=ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓË., %s=ÔÅËÕÝÕÀ ÄÉÓË., %s=×ÙÈÏÄ: "
+msgid   "0 - 9\t  choose article by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÓÔÁÔØÀ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:497
-#, c-format
-msgid	"Matching %s groups..."
-msgstr	"óÏÐÏÓÔÁ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ %s ÇÒÕÐÐ..."
+msgid   "mark thread as read and return to group index page"
+msgstr  "ÐÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ É ×ÅÒÎÕÔØÓÑ ÎÁ ÓÔÒÁÎÉÃÕ ÉÎÄÅËÓÁ ÇÒÕÐÐ"
 
-#: src/lang.c:498 src/lang.c:502
-#, 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:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  "ÐÏÍÅÔÉÔØ ÄÉÓË. ËÁË ÐÒÏÞÉÔ. É ÐÅÒÅÊÔÉ × ÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÄÉÓË. ÉÌÉ ÇÒÕÐÐÅ"
 
 #: src/lang.c:499
-#, 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=ÓÐÉÓ. ÄÉÓË."
+msgid   "choose first article in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
 
 #: src/lang.c:500
-#, 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=ËÏÎÅÃ"
+msgid   "choose last article in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÓÔÁÔØÀ × ÓÐÉÓËÅ"
 
 #: src/lang.c:501
-#, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	"%s=ÐÏÉÓË ×ÐÅÒ£Ä; %s=ÐÏÉÓË ÎÁÚÁÄ; %s=×ÙÈÏÄ"
+#, fuzzy
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  "ÐÏÍÅÔÉÔØ ÓÔÁÔØÀ ÉÌÉ ÏÔÍÅÞ. ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔ. É ÐÅÒÅÊÔÉ Ë ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÅ"
+
+#: src/lang.c:502
+#, fuzzy
+msgid   "mark article, range or tagged articles as unread"
+msgstr  "ÐÏÍÅÔÉÔØ ÓÔÁÔØÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ"
 
 #: src/lang.c:503
-#, c-format
-msgid	"%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
-msgstr	"%s=ÐÏÉÓË Á×ÔÏÒÁ; %s=ÐÏÉÓË × ÓÏÏÂ.; %s=catchup; %s=followup; %s=ÍÁÒË. ÐÒÏÞ."
+#, fuzzy
+msgid   "mark current thread as unread"
+msgstr  "ÐÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÕÀ"
 
 #: src/lang.c:504
-#, 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"
+msgid   "read chosen article"
+msgstr  "ÐÒÏÞÉÔÁÔØ ×ÙÂÒÁÎÎÕÀ ÓÔÁÔØÀ"
 
 #: src/lang.c:505
-#, 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=ÕÓÔ. ×ÓÅ|"
-	"ÎÅÐÒÏÞ."
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
+        "-----------------"
 
 #: src/lang.c:506
-#, 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"
+#, fuzzy
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "òÁÚÎÙÅ\n"
+        "------"
 
 #: src/lang.c:507
-#, c-format
-msgid	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
-msgstr	"<n>=ÐÅÒÅÊÔÉ Ë n; %s=ÓÌÅÄ. ÎÅÐÒÏÞ.; %s=catchup; %s=ÉÚÍÅÎ. ×ÉÄ"
+msgid   "Moving around\n"
+        "-------------"
+msgstr  "ä×ÉÖÅÎÉÅ\n"
+        "--------"
 
 #: src/lang.c:508
-#, 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=ÍÁÒË. ÎÅÐÒÏÞ."
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  "ïÐÅÒÁÃÉÉ Ó ÇÒÕÐÐÁÍÉ/ÄÉÓËÕÓÓÉÑÍ/ÓÔÁÔØÑÍÉ\n"
+        "---------------------------------------"
 
 #: src/lang.c:509
-msgid	"--More--"
-msgstr	"--äÁÌÅÅ--"
+#, fuzzy
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  "ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
+        "-----------------"
 
 #: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	"ðÅÒÅÍÅÝÅÎÉÅ %s..."
+#, fuzzy
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  "ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
+        "-----------------"
+
+#: src/lang.c:511
+#, fuzzy
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  "ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
+        "-----------------"
 
 #: src/lang.c:512
-msgid	", name: "
-msgstr	", ÉÍÑ: "
+#, fuzzy
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  "ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
+        "-----------------"
 
 #: src/lang.c:513
-#, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	"ðÅÒÅÊÔÉ Ë ÇÒÕÐÐÅ [%s]> "
+#, fuzzy
+msgid   "URL operations\n"
+        "--------------"
+msgstr  "ðÏËÁÚÁÔØ Ó×ÏÊÓÔ×Á\n"
+        "-----------------"
 
 #: src/lang.c:514
-msgid	"newsgroups"
-msgstr	"ÇÒÕÐÐÙ"
+#, fuzzy
+msgid   "choose first URL in list"
+msgstr  "×ÙÂÒÁÔØ ÐÅÒ×ÕÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	"ðÏÚÉÃÉÑ %s × ÓÐÉÓËÅ ÇÒÕÐÐ (1,2,..,$) [%d]> "
+#, fuzzy
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  ×ÙÂÒÁÔØ ÇÒÕÐÐÕ ÐÏ ÎÏÍÅÒÕ"
 
 #: src/lang.c:516
-msgid	"newsgroup"
-msgstr	"ÇÒÕÐÐÁ"
+#, fuzzy
+msgid   "choose last URL in list"
+msgstr  "×ÙÂÒÁÔØ ÐÏÓÌÅÄÎÀÀ ÇÒÕÐÐÕ × ÓÐÉÓËÅ"
 
 #: src/lang.c:517
-msgid	"Try and save newsrc file again?"
-msgstr	"ðÏÐÒÏÂÏ×ÁÔØ É ÓÏÈÒÁÎÉÔØ newsrc ÓÎÏ×Á?"
+#, fuzzy
+msgid   "search for URLs forwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (×ÐÅÒ£Ä)"
 
 #: src/lang.c:518
-msgid	"Warning: No newsgroups were written to your newsrc file. Save aborted."
-msgstr	"÷ÎÉÍÁÎÉÅ: çÒÕÐÐÙ ÎÅ ÂÙÌÉ ÚÁÐÉÓÁÎÙ × newsrc. óÏÈÒÁÎÅÎÉÅ ÐÒÅÒ×ÁÎÏ."
+#, fuzzy
+msgid   "search for URLs backwards"
+msgstr  "ÐÏÉÓË ÓÔÁÔÅÊ ÐÏ Á×ÔÏÒÕ (ÎÁÚÁÄ)"
 
 #: src/lang.c:519
-msgid	"newsrc file saved successfully.\n"
-msgstr	"newsrc ÆÁÊÌ ÕÓÐÅÛÎÏ ÓÏÈÒÁÎ£Î.\n"
+msgid   "Open URL in browser"
+msgstr  ""
 
 #: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	"-- óÌÅÄÕÀÝÉÊ ÏÔ×ÅÔ --"
-
-#: src/lang.c:521
-#, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"ðÁÒÏÌØ Á×ÔÏÒÉÚÁÃÉÉ Ë NNTP ÎÅ ÎÁÊÄÅÎ ÄÌÑ %s"
+#, fuzzy
+msgid   "toggle info message in last line (URL)"
+msgstr  "ÉÚÍÅÎÉÔØ ÉÎÆ. ÓÏÏÂÝÅÎÉÅ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ (ÔÅÍÁ/ÏÐÉÓÁÎÉÅ)"
 
 #: src/lang.c:522
-msgid	"No  "
-msgstr	"îÅÔ  "
+msgid   "Group Level Commands"
+msgstr  "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÇÒÕÐÐ"
 
 #: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	"*** îÅÔ ÓÔÁÔÅÊ ***"
+msgid   "Kill filter added"
+msgstr  "õÎÉÞÔÏÖÉÔØ ÄÏÂÁ×ÌÅÎÎÙÊ ÆÉÌØÔÒ"
 
 #: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	"îÉ ÏÄÎÁ ÓÔÁÔØÑ ÎÅ ÂÙÌÁ ÏÔÐÒÁ×ÌÅÎÁ"
+msgid   "Auto-selection filter added"
+msgstr  "æÉÌØÔÒ Á×ÔÏ×ÙÂÏÒÁ ÄÏÂÁ×ÌÅÎ"
 
 #: src/lang.c:525
-msgid	"*** No description ***"
-msgstr	"*** îÅÔ ÏÐÉÓÁÎÉÑ ***"
+msgid   "All parts tagged"
+msgstr  "÷ÓÅ ÞÁÓÔÉ ÐÏÍÅÞÅÎÙ"
 
 #: src/lang.c:526
-msgid	"No filename"
-msgstr	"îÅÔ ÉÍÅÎÉ ÆÁÊÌÁ"
+msgid   "Storing article for later posting"
+msgstr  "óÏÈÒÁÎÅÎÉÅ ÓÔÁÔØÉ ÄÌÑ ÏÔÌÏÖÅÎÎÏÊ ÏÔÐÒÁ×ËÉ"
 
 #: src/lang.c:527
-msgid	"No group"
-msgstr	"îÅÔ ÇÒÕÐÐÙ"
+msgid   "Please enter a valid character"
+msgstr  "ðÏÖÁÌÕÊÓÔÁ ××ÅÄÉÔÅ ÄÏÐÕÓÔÉÍÙÊ ÓÉÍ×ÏÌ"
 
 #: src/lang.c:528
-msgid	"*** No groups ***"
-msgstr	"*** îÅÔ ÇÒÕÐÐ ***"
+#, c-format
+msgid   "Missing part #%d"
+msgstr  "ðÒÏÐÕÝÅÎÁ ÞÁÓÔØ #%d"
 
 #: src/lang.c:529
-msgid	"No more groups to read"
-msgstr	"îÅÔ ÂÏÌØÛÅ ÇÒÕÐÐ ÄÌÑ ÞÔÅÎÉÑ"
+msgid   "*** No postponed articles ***"
+msgstr  "*** îÅÔ ÏÔÌÏÖÅÎÎÙÈ ÓÔÁÔÅÊ ***"
 
 #: src/lang.c:530
-msgid	"No last message"
-msgstr	"îÅÔ ÐÏÓÌÅÄÎÅÇÏ ÓÏÏÂÝÅÎÉÑ"
+msgid   "Not a multi-part message"
+msgstr  "îÅ multi-part ÓÏÏÂÝÅÎÉÅ"
 
 #: src/lang.c:531
-msgid	"No mail address"
-msgstr	"îÅÔ ÁÄÒÅÓÁ email"
+msgid   "You are not subscribed to this group"
+msgstr  "÷Ù ÎÅ ÐÏÄÐÉÓÁÎÙ ÎÁ ÜÔÕ ÇÒÕÐÐÕ"
 
 #: src/lang.c:532
-msgid	"No articles marked for saving"
-msgstr	"îÅÔ ÍÁÒËÉÒÏ×ÁÎÎÙÈ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ"
+msgid   "No previous expression"
+msgstr  "îÅÔ ÐÒÅÄÙÄÕÝÅÇÏ ×ÙÒÁÖÅÎÉÑ"
 
 #: src/lang.c:533
-msgid	"No match"
-msgstr	"îÅÔ ÓÏ×ÐÁÄÅÎÉÑ"
-
-#: src/lang.c:534
-msgid	"No more groups"
-msgstr	"âÏÌØÛÅ ÎÅÔ ÇÒÕÐÐ"
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  "ïÐÅÒÁÃÉÑ ÚÁÐÒÅÝÅÎÁ × ÒÅÖÉÍÅ ÚÁÐÒÅÝÅÎÉÑ ÐÅÒÅÚÁÐÉÓÉ"
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-msgid	"No newsgroups"
-msgstr	"îÅÔ ÇÒÕÐÐ"
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  "%d ÏÔÌÏÖÅÎÁ(Ù) %s, ×ÏÚÏÂÎÏ×ÉÔØ Ó ^O...\n"
 
 #: src/lang.c:536
-msgid	"No next unread article"
-msgstr	"îÅÔ ÓÌÅÄÕÀÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÉ"
-
-#: src/lang.c:537
-msgid	"No previous group"
-msgstr	"îÅÔ ÐÒÅÄÙÄÕÝÅÊ ÇÒÕÐÐÙ"
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  "X-Conversion-Note: multipart/alternative ÓÏÄÅÒÖÉÍÏÅ ÂÙÌÏ ÕÄÁÌÅÎÏ.\n"
+        "  äÌÑ ÐÏÌÕÞÅÎÉÑ ×ÓÅÊ ÓÔÁÔØÉ, ÉÚÍÅÎÉÔÅ ÏÂÒÁÂÏÔËÕ multipart/alternative\n"
+        "  ÓÔÁÔÅÊ ÎÁ OFF × íÅÎÀ ÏÐÃÉÊ\n"
 
 #: src/lang.c:538
-msgid	"No previous unread article"
-msgstr	"îÅÔ ÐÒÅÄÙÄÕÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÉ"
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  "æÁÊÌ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ  %s/%s - mailbox. ÷ÌÏÖÅÎÉÅ ÎÅ ÓÏÈÒÁÎÅÎÏ"
 
 #: src/lang.c:539
-msgid	"No responses"
-msgstr	"îÅÔ ÏÔ×ÅÔÏ×"
+msgid   "TeX2Iso encoded article"
+msgstr  "TeX2Iso ËÏÄÉÒÏ×ÁÎÎÁÑ ÓÔÁÔØÑ"
 
 #: src/lang.c:540
-msgid	"No responses to list in current thread"
-msgstr	"îÅÔ ÏÔ×ÅÔÏ× ÎÁ ÓÐÉÓÏË × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
-
-#: src/lang.c:541
-msgid	"No search string"
-msgstr	"îÅÔ ÓÔÒÏËÉ ÐÏÉÓËÁ"
+msgid   "incomplete "
+msgstr  "ÎÅÐÏÌÎÙÊ "
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-msgid	"No subject"
-msgstr	"îÅÔ ÔÅÍÙ"
-
-#: src/lang.c:544
-#, 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
-#, 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
-#, c-format
-msgid	"%s: Terminal must have clearscreen (cl) capability\n"
-msgstr	"%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clearscreen (cl)\n"
-
-#: src/lang.c:547
-#, c-format
-msgid	"%s: Terminal must have cursor motion (cm)\n"
-msgstr	"%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ cursor motion (cm)\n"
-
-#: src/lang.c:548
-#, c-format
-msgid	"%s: TERM variable must be set to use screen capabilities\n"
-msgstr	"%s: ÕÓÔÁÎÏ×ÉÔÅ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ TERM\n"
-
-#: src/lang.c:550
-#, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	"îÅ ÎÁÊÄÅÎ ÐÒÏÓÍÏÔÏÒÝÉË ÄÌÑ %s/%s\n"
-
-#: src/lang.c:551
-msgid	"Newsgroup does not exist on this server"
-msgstr	"çÒÕÐÐÁ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÎÁ ÜÔÏÍ ÓÅÒ×ÅÒÅ"
-
-#: src/lang.c:552
-#, c-format
-msgid	"Group %s not found in active file"
-msgstr	"çÒÕÐÐÁ %s ÎÅ ÎÁÊÄÅÎÁ × ÆÁÊÌÅ active"
-
-#: src/lang.c:553
-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
-msgid	"use a)lternative name, use d)efault .newsrc, q)uit tin: "
-msgstr	"a)ÉÓÐ. ÁÌØÔÅÒ. ÉÍÑ, d)ÉÓÐ. ÓÔÁÎÄÁÒÔÎÙÊ .newsrc, q)×ÙÈÏÄ ÉÚ tin: "
-
-#: src/lang.c:555
 #, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	""
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	"ôÏÌØËÏ"
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  "\n"
+        "äÏÂÒÏ ÐÏÖÁÌÏ×ÁÔØ × %s, ÐÏÌÎÏÜËÒÁÎÎÙÊ newsreader. tin ÍÏÖÅÔ ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ Ó \n"
+        "ÌÏËÁÌØÎÏÊ ÍÁÛÉÎÙ (ÎÁÐÒÉÍÅÒ Ó <spool>/news) ÉÌÉ ÕÄÁÌÅÎÏ (Ó ÏÐÃÉÅÊ -r) Ó NNTP\n"
+        "(Network News Transport Protocol) ÓÅÒ×ÅÒÁ. -h ÐÏËÁÚÙ×ÁÅÔ ÄÏÓÔÕÐÎÙÅ ÏÐÃÉÉ\n"
+        "ËÏÍÁÎÄÎÏÊ ÓÔÒÏËÉ.\n"
+        "\n"
+        "÷ %s ÞÅÔÙÒÅ ÕÒÏ×ÎÑ: ÓÔÒÁÎÉÃÁ ×ÙÂÏÒÁ ÇÒÕÐÐÙ, ÓÔÒÁÎÉÃÁ ÉÎÄÅËÓÁ ÇÒÕÐÐÙ, "
+        "ÓÔÒÁÎÉÃÁ\n"
+        "ÄÉÓËÕÓÓÉÊ É ÓÔÒÁÎÉÃÁ ÐÒÏÓÍÏÔÒÁ ÓÔÁÔØÉ. ðÏÄÓËÁÚËÁ ÄÏÓÔÕÐÎÁ ÄÌÑ ËÁÖÄÏÇÏ ÕÒÏ×ÎÑ\n"
+        "ÎÁÖÁÔÉÅÍ 'h'.\n"
+        "\n"
+        "ðÅÒÅÍÅÝÁÔØÓÑ ××ÅÒÈ/×ÎÉÚ ÍÏÖÎÏ ÎÁÖÁÔÉÅÍ ÓÔÒÅÌÏË ÉÌÉ 'j' É 'k'. äÌÑ\n"
+        "ÐÒÏÌÉÓÔÙ×ÁÎÉÑ ÓÔÒÁÎÉÃÙ ××ÅÒÈ/×ÎÉÚ ÎÁÖÍÉÔÅ PgUp / PgDn ÉÌÉ Ctrl-U / Ctrl-D\n"
+        "÷ÈÏÄ × ÇÒÕÐÐÕ ÎÁÖÁÔÉÅÍ <CR>/<ôáâ>.\n"
+        "\n"
+        "óÔÁÔØÉ, ÄÉÓËÕÓÓÉÉ, ÐÏÍÅÞÅÎÎÙÅ ÉÌÉ ÓÏ×ÐÁÄÁÀÝÉÅ Ó ÛÁÂÌÏÎÏÍ ÓÔÁÔØÉ ÍÏÇÕÔ ÂÙÔØ\n"
+        "ÏÔÐÒÁ×ÌÅÎÙ ÐÏ email (ËÏÍÁÎÄÁ 'm'), ÎÁÐÅÞÁÔÁÎÙ (ËÏÍÁÎÄÁ 'o'), ÓÏÈÒÁÎÅÎÙ\n"
+        "(ËÏÍÁÎÄÁ 's') ÉÌÉ ÏÔÐÒÁ×ÌÅÎÙ × pipe (ËÏÍÁÎÄÁ '|').\n"
+        "'w' - ÏÔÐÒÁ×ÉÔØ ÎÏ×ÕÀ ÓÔÁÔØÀ, 'f'/'F' - ÏÔÐÒÁ×ÉÔØ follow-up ÎÁ ÓÕÝÅÓÔ×ÕÀÝÕÀ\n"
+        "ÓÔÁÔØÀ É 'r'/'R' - ÏÔ×ÅÔÉÔØ ÐÏ email Á×ÔÏÒÕ ÓÔÁÔØÉ. ëÏÍÁÎÄÁ 'M' ÐÏÚ×ÏÌÑÅÔ\n"
+        "ÓËÏÎÆÉÇÕÒÉÒÏ×ÁÔØ %s ÐÏÓÒÅÄÓÔ×ÏÍ ÕÄÏÂÎÏÇÏ ÍÅÎÀ.\n"
+        "\n"
+        "äÌÑ ÄÏÐÏÌÎÉÔÅÌØÎÏÊ ÉÎÆÏÒÍÁÃÉÉ ÞÉÔÁÊÔÅ ÓÔÒÁÎÉÃÙ ÄÏËÕÍÅÎÔÁÃÉÉ, ÆÁÊÌÙ README, "
+        "INSTALL\n"
+        "TODO É FTP. óÏÏÂÝÅÎÉÑ ÏÂ ÏÛÉÂËÁÈ É ÏÔÚÙ×Ù ÏÔÐÒÁ×ÌÑÊÔÅ %s ÐÒÉ ÐÏÍÏÝÉ ËÏÍÁÎÄÙ "
+        "'R'.\n"
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  "îÅÄÏÐÕÓÔÉÍÁÑ ÓÔÒÏËÁ From: %s. ðÒÏÞÉÔÁÊÔÅ ÆÁÊÌ INSTALL ÓÎÏ×Á."
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  "îÁÊÄÅÎÁ ÎÅÄÏÐÕÓÔÉÍÁÑ ÍÕÌØÔÉÂÁÊÔÏ×ÁÑ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔØ\n"
 
 #: src/lang.c:563
 #, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"ïÐÃÉÑ ÎÅ ×ËÌÀÞÅÎÁ. ðÅÒÅÓÏÂÅÒÉÔÅ ÐÁËÅÔ Ó %s."
+msgid   "Invalid  Sender:-header %s"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÚÁÇÏÌÏ×ÏË Sender: %s"
 
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	"íÅÎÀ ÏÐÃÉÊ"
-
-#: src/lang.c:567
-#, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	"ïÛÉÂËÁ × regex: %s × ÐÏÚ. %d '%s'"
+#: src/lang.c:565
+msgid   "Inverse video disabled"
+msgstr  "éÎ×ÅÒÓÎÏÅ ×ÉÄÅÏ ÚÁÐÒÅÝÅÎÏ"
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  "éÎ×ÅÒÓÎÏÅ ×ÉÄÅÏ ÒÁÚÒÅÛÅÎÏ"
 
 #: src/lang.c:568
 #, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	"ïÛÉÂËÁ × regex: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ pcre %d"
+msgid   "Missing definition for %s\n"
+msgstr  "ðÒÏÐÕÝÅÎÏ ÏÐÒÅÄÅÌÅÎÉÅ ÄÌÑ %s\n"
 
 #: src/lang.c:569
 #, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	"ïÛÉÂËÁ × regex: study - ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ pcre %s"
+msgid   "Invalid key definition '%s'\n"
+msgstr  "îÅÐÒÁ×ÉÌØÎÏÅ ÏÐÒÅÄÅÌÅÎÉÅ ËÌÁ×ÉÛÉ '%s'\n"
 
 #: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	"ïÔÐÒÁ×ÌÅÎÉÅ ÏÔ×ÅÔÁ × ÇÒÕÐÐÕ..."
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  "îÅÐÒÁ×ÉÌØÎÏÅ ÎÁÚ×ÁÎÉÅ ËÌÁ×ÉÛÉ '%s'\n"
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  "æÁÊÌ Keymap ÏÂÎÏ×ÌÅÎ ÄÏ ×ÅÒÓÉÉ %s\n"
 
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
 #: src/lang.c:572
-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	"ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ÏÔÐÒÁ×ÌÅÎÉÑ ÓÔÁÔØÉ. åÓÌÉ ÷Ù ÄÕÍÁÅÔÅ, ÞÔÏ ÏÛÉÂËÁ ×ÒÅÍÅÎÎÁÑ\n"
-	"É ÍÏÖÅÔ ÂÙÔØ ÉÓÐÒÁ×ÌÅÎÁÑ, ÔÏ ×Ù ÍÏÖÅÔÅ ÏÔÌÏÖÉÔØ ÓÔÁÔØÀ É ÏÔÐÒÁ×ÉÔØ Å£ Ó\n"
-	"ÐÏÍÏÝØÀ ^O ÐÏÚÖÅ.\n"
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  "õÎÉÞÔÏÖÉÔØ From:    [%s] (y/n): "
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  "õÎÉÞÔÏÖÉÔØ ÓÔÒÏËÉ: (</>num): "
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  "õÎÉÞÔÏÖÉÔØ ÍÅÎÀ ÓÔÁÔØÉ"
 
 #: src/lang.c:575
-msgid	"Posted articles history"
-msgstr	"éÓÔÏÒÉÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ"
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  "õÎÉÞÔÏÖÉÔØ Msg-Id:   [%s] (f/l/o/n): "
 
 #: src/lang.c:576
-#, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"ïÔÐÒÁ×ÉÔØ × ÇÒÕÐÐÕ(Ù) [%s]> "
+msgid   "Kill pattern scope  : "
+msgstr  "õÎÉÞÔÏÖÉÔØ ÛÁÂÌÏÎ ÏÂÚÏÒÁ  : "
 
 #: src/lang.c:577
-msgid	"-- post processing started --"
-msgstr	"-- ÐÏÓÔ-ÏÂÒÁÂÏÔËÁ ÎÁÞÁÔÁ --"
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  "õÎÉÞÔÏÖÉÔØ ôÅÍÕ:  [%s] (y/n): "
 
 #: src/lang.c:578
-msgid	"-- post processing completed --"
-msgstr	"-- ÐÏÓÔ-ÏÂÒÁÂÏÔËÁ ÚÁËÏÎÞÅÎÁ --"
+msgid   "Kill text pattern   : "
+msgstr  "õÎÉÞÔÏÖÉÔØ ÛÁÂÌÏÎ    : "
 
 #: src/lang.c:579
-#, c-format
-msgid	"Post subject [%s]> "
-msgstr	"ôÅÍÁ ÓÏÏÂÝÅÎÉÑ [%s]> "
-
-#: src/lang.c:580
-msgid	"# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
-msgstr	"# ó×ÏÄËÁ Ï ÓÏÏÂÝÅÎÉÑÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ × ÇÒÕÐÐÕ ÉÌÉ ÐÏ ÐÏÞÔÅ ×ÙÚÙ×ÁÅÔÓÑ ËÏÍÁÎÄÏÊ\n"
-	"# 'W' ÉÚ tin.\n"
+msgid   "Kill time in days   : "
+msgstr  "õÎÉÞÔÏÖÉÔØ ×ÒÅÍÑ × ÄÎÑÈ   : "
 
 #: src/lang.c:581
-msgid	"Posting article..."
-msgstr	"ïÔÐÒÁ×ÌÅÎÉÅ ÓÔÁÔØÉ..."
+msgid   "Last"
+msgstr  "ðÏÓÌÅÄÎÉÊ"
 
 #: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	"ïÔÐÒÁ×ÉÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ [%%s]? (%s/%s/%s/%s/%s): "
+msgid   "-- Last response --"
+msgstr  "-- ðÏÓÌÅÄÎÉÊ ÏÔ×ÅÔ --"
 
 #: src/lang.c:583
 #, c-format
-msgid	"Hot %s"
-msgstr	""
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	"ðÏÍÅÞÅÎÙ %s"
+msgid   "Lines %s  "
+msgstr  "óÔÒÏË %s  "
 
 #: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	"óÎÑÔÙ ÏÔÍÅÔËÉ %s"
+msgid   "Mail"
+msgstr  ""
 
 #: src/lang.c:586
-msgid	"Processing mail messages marked for deletion."
-msgstr	"ïÂÒÁÂÏÔËÁ ÐÏÞÔÏ×ÙÈ ÓÏÏÂÝÅÎÉÊ ÐÏÍÅÞÅÎÎÙÈ ÄÌÑ ÕÄÁÌÅÎÉÑ."
+msgid   "mailbox "
+msgstr  ""
 
 #: src/lang.c:587
-msgid	"Processing saved articles marked for deletion."
-msgstr	"ïÂÒÁÂÏÔËÁ ÓÏÈÒÁÎ£ÎÎÙÈ ÓÔÁÔÅÊ ÐÏÍÅÞÅÎÎÙÈ ÄÌÑ ÕÄÁÌÅÎÉÑ."
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "ïÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ(É) ÐÏ email [%.*s]> "
 
 #: src/lang.c:588
 #, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	"ðÒÉÎÑÔØ Followup-To? %s=ÏÔÐÒÁ×ÉÔØ, %s=ÉÇÎÏÒÉÒÏ×ÁÔØ, %s=×ÙÈÏÄ: "
+msgid   "Mailing log to %s\n"
+msgstr  "ïÔÐÒÁ×ÉÔØ ÌÏÇ-ÓÏÏÂÝÅÎÉÅ %s\n"
 
 #: src/lang.c:589
-msgid	"Article unchanged, abort mailing?"
-msgstr	"óÔÁÔØÑ ÎÅ ÉÚÍÅÎÉÌÁÓØ, ÐÒÅÒ×ÁÔØ ÏÔÐÒÁ×ËÕ?"
+msgid   "Mail bug report..."
+msgstr  "ïÔÐÒÁ×ÌÑÅÔÓÑ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ..."
 
 #: src/lang.c:590
 #, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	"èÏÔÉÔÅ ÐÏÓÍÏÔÒÅÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ (%d)?"
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "ïÔÐÒÁ×ÉÔØ ÓÏÏÂÝÅÎÉÅ ÏÂ ÏÛÉÂËÅ %s?"
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  "ïÔÐÒÁ×ÌÅÎÏ ÐÏ email"
 
 #: src/lang.c:592
-msgid	"Add quick kill filter?"
-msgstr	"äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ÕÎÉÞÔÏÖÅÎÉÑ?"
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  "ïÔÐÒÁ×ÌÑÅÔÓÑ ÐÏ email %s..."
 
 #: src/lang.c:593
-msgid	"Add quick selection filter?"
-msgstr	"äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ×ÙÂÏÒÁ?"
-
-#: src/lang.c:594
-msgid	"Do you really want to quit?"
-msgstr	"÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ×ÙÊÔÉ?"
-
-#: src/lang.c:595
-#, c-format
-msgid	"%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
-msgstr	"%s=ÒÅÄÁËÔ. ÏÔÍÅÎ. ÓÏÏÂÝÅÎÉÑ, %s=×ÙÈÏÄ, %s=ÕÄÁÌÉÔØ (ÏÔÍÅÎÉÔØ) [%%s]: "
+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:596
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	"ïÓÔÁÌÉÓØ ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ - ×ÙÊÔÉ ×ÓÅ ÒÁ×ÎÏ?"
+#, fuzzy, c-format
+msgid   "%s marked as read"
+msgstr  "%s ÐÏÍÅÞÅÎÏ ËÁË ÎÅÐÒÏÞÉÔÁÎÏ"
 
 #: src/lang.c:597
 #, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ, %s=ÏÔÌÏÖÉÔØ: "
+msgid   "%s marked as unread"
+msgstr  "%s ÐÏÍÅÞÅÎÏ ËÁË ÎÅÐÒÏÞÉÔÁÎÏ"
 
 #: src/lang.c:598
-#, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	"%s=×ÙÈÏÄ %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ %s=ÓÏÈÒ. ÕÎÉÞÔÏÖÅÎÎÏÅ ÏÐÉÓÁÎÉÅ: "
+#, fuzzy, c-format
+msgid   "Marked %d of %d %s as read"
+msgstr  "ðÏÍÅÞÅÎÏ %d ÉÚ %d ÏÔÍÅÞÅÎÎÙÈ %s ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
 
 #: src/lang.c:599
-#, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	"%s=×ÙÈÏÄ %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ %s=ÓÏÈÒ. ×ÙÂÒÁÎÎÏÅ ÏÐÉÓÁÎÉÅ: "
-
-#: src/lang.c:600
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ×ÙÊÔÉ ÂÅÚ ÓÏÈÒÁÎÅÎÉÑ ËÏÎÆÉÇÕÒÁÃÉÉ?"
+#, fuzzy, c-format
+msgid   "Marked %d of %d %s as unread"
+msgstr  "ðÏÍÅÞÅÎÏ %d ÉÚ %d ÏÔÍÅÞÅÎÎÙÈ %s ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  ""
+
+#: src/lang.c:601
+#, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  "ðÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ%s?"
+
+#: src/lang.c:602
+#, fuzzy, c-format
+msgid   "Mark article as read%s?"
+msgstr  "ðÏÍÅÔÉÔØ ×ÓÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ%s?"
 
 #: src/lang.c:603
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	"îÅÄÏÐÕÓÔÉÍÙÊ ÄÉÁÐÁÚÏÎ - ÄÏÓÔÕÐÎÙ '0-9.$', ÎÁÐÒ. 1-$"
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  "ðÏÍÅÔÉÔØ ÇÒÕÐÐÕ %s ËÁË ÐÒÏÞÉÔÁÎÎÕÀ?"
 
 #: src/lang.c:604
-msgid	"Do you want to abort this operation?"
-msgstr	"÷Ù ÈÏÔÉÔÅ ÐÒÅÒ×ÁÔØ ÏÐÅÒÁÃÉÀ?"
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "ðÏÍÅÔÉÔØ ÄÉÓËÕÓÓÉÀ ËÁË ÐÒÏÞÉÔÁÎÎÕÀ %s?"
 
 #: src/lang.c:605
-msgid	"Do you want to exit tin immediately?"
-msgstr	"÷Ù ÈÏÔÉÔÅ ×ÙÊÔÉ ÉÚ tin ÎÅÍÅÄÌÅÎÎÏ?"
+#, c-format
+msgid   "Matching %s groups..."
+msgstr  "óÏÐÏÓÔÁ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ %s ÇÒÕÐÐ..."
 
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	"ðÒÏÞÉÔÁÔØ ÏÔ×ÅÔ> "
-
-#: src/lang.c:607
-msgid	"Reading ('q' to quit)..."
-msgstr	"þÔÅÎÉÅ ('q' - ×ÙÈÏÄ)..."
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
+#, fuzzy, c-format
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  "<n>=ÐÅÒÅÊÔÉ Ë n; %s=ÓÌÅÄ. ÎÅÐÒÏÞ.; %s=catchup; %s=ÉÚÍÅÎ. ×ÉÄ"
 
 #: src/lang.c:608
-#, c-format
-msgid	"Reading %sarticles..."
-msgstr	"þÔÅÎÉÅ %sÓÔÁÔÅÊ..."
-
-#: src/lang.c:609
-#, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ %sÁÔÒÉÂÕÔÏ×...\n"
+#, fuzzy, c-format
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒÁÎÉÔØ; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ"
 
 #: src/lang.c:610
-#, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ %sconfig...\n"
-
-#: src/lang.c:611
-msgid	"Reading filter file...\n"
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ ÆÉÌØÔÒÏ×...\n"
+#, fuzzy, c-format
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒÁÎÉÔØ; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ"
 
 #: src/lang.c:612
-#, c-format
-msgid	"Reading %s groups..."
-msgstr	"þÔÅÎÉÅ %s ÇÒÕÐÐ..."
+#, fuzzy, c-format
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=ÐÏÉÓË ×ÐÅÒ£Ä; %s=ÐÏÉÓË ÎÁÚÁÄ; %s=×ÙÈÏÄ"
 
-#: src/lang.c:613
-msgid	"Reading input history file...\n"
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ ÉÓÔÏÒÉÉ...\n"
+#: src/lang.c:613 src/lang.c:617
+#, 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:614
-msgid	"Reading keymap file...\n"
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ ÎÁÚÎÁÞÅÎÉÊ ËÌÁ×ÉÛ...\n"
+#, 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:615
-msgid	"Reading groups from active file... "
-msgstr	"þÔÅÎÉÅ ÇÒÕÐÐ ÉÚ ÆÁÊÌÁ active... "
+#, 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:616
-msgid	"Reading groups from newsrc file... "
-msgstr	"þÔÅÎÉÅ ÇÒÕÐÐ ÉÚ ÆÁÊÌÁ newsrc... "
-
-#: src/lang.c:617
-msgid	"Reading newsgroups file... "
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ ÇÒÕÐÐ... "
+#, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=quit"
+msgstr  "%s=ÐÏÉÓË ×ÐÅÒ£Ä; %s=ÐÏÉÓË ÎÁÚÁÄ; %s=×ÙÈÏÄ"
 
 #: src/lang.c:618
-msgid	"Reading newsrc file..."
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ newsrc..."
+#, 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:619
+#, c-format
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  ""
 
-#: src/lang.c:620
+#: src/lang.c:621
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	"(%d:%02d ÏÓÔÁÌÏÓØ)"
+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:622
 #, c-format
-msgid	"Bogus group %s removed."
-msgstr	"ïÛÉÂÏÞÎÁÑ ÇÒÕÐÐÁ %s ÕÄÁÌÅÎÁ."
+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:623
 #, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"ïÛÉÂËÁ: ÐÅÒÅÉÍÅÎÏ×ÁÔØ %s × %s"
+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:624
-msgid	"Reply to author..."
-msgstr	"ïÔ×ÅÞÁÅÍ Á×ÔÏÒÕ..."
+#, 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:625
-msgid	"Repost"
-msgstr	"ïÐÒÁ×ÉÔØ ÓÎÏ×Á"
-
-#: src/lang.c:626
-msgid	"Reposting article..."
-msgstr	"ðÏ×ÔÏÒÎÁÑ ÏÔÐÒÁ×ËÁ ÓÔÁÔØÉ..."
+#, 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:627
-#, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	"ïÔÐÒÁ×ÉÔØ ÓÎÏ×Á ÓÔÁÔØÀ(É) × ÇÒÕÐÐÕ(Ù) [%s]> "
+#, fuzzy, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=ÐÏÉÓË ×ÐÅÒ£Ä; %s=ÐÏÉÓË ÎÁÚÁÄ; %s=×ÙÈÏÄ"
 
 #: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	"óÂÒÏÓÉÔØ newsrc?"
+msgid   "--More--"
+msgstr  "--äÁÌÅÅ--"
 
 #: src/lang.c:629
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	"ïÔ×ÅÔÙ ÂÙÌÉ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÙ × ÓÌÅÄÕÀÝÉÅ ÇÒÕÐÐÙ"
+#, c-format
+msgid   "Moving %s..."
+msgstr  "ðÅÒÅÍÅÝÅÎÉÅ %s..."
 
 #: src/lang.c:630
-#, c-format
-msgid	"Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
-msgstr	"ïÔ×ÅÔÙ ÂÙÌÉ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÙ ÏÔÐÒÁ×ÉÔÅÌÀ. %s=mail, %s=ÏÔÐÒÁ×ÉÔØ, %s=×ÙÈÏÄ: "
+msgid   "Message-ID: & last Reference  "
+msgstr  ""
 
 #: src/lang.c:631
-#, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	"ïÔ×ÅÔ %4d ÉÚ %4d"
+msgid   "Message-ID: line              "
+msgstr  "Message-ID: ÓÔÒÏËÁ            "
 
 #: src/lang.c:632
-msgid	"Press <RETURN> to continue..."
-msgstr	"îÁÖÍÉÔÅ <CR> ÄÌÑ ÐÒÏÄÏÌÖÅÎÉÑ..."
+msgid   "Message-ID: & References: line"
+msgstr  ""
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	"÷ÙÂÒÁÔØ From   [%s] (y/n): "
+msgid   ", name: "
+msgstr  ", ÉÍÑ: "
 
 #: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	"÷ÙÂÒÁÔØ ÓÔÒÏËÉ: (</>num): "
+#, fuzzy, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "ðÅÒÅÊÔÉ Ë ÇÒÕÐÐÅ [%s]> "
 
 #: src/lang.c:636
-msgid	"Auto-select Article Menu"
-msgstr	"á×ÔÏ×ÙÂÏÒ íÅÎÀ ÓÔÁÔÅÊ"
+msgid   "newsgroups"
+msgstr  "ÇÒÕÐÐÙ"
 
 #: src/lang.c:637
 #, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	"÷ÙÂÒÁÔØ Msg-Id [%s] (f/l/o/n): "
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  "ðÏÚÉÃÉÑ %s × ÓÐÉÓËÅ ÇÒÕÐÐ (1,2,..,$) [%d]> "
 
 #: src/lang.c:638
-msgid	"Select pattern scope: "
-msgstr	"÷ÙÂÒÁÔØ ÏÂÌÁÓÔØ ÛÁÂÌÏÎÁ: "
+msgid   "newsgroup"
+msgstr  "ÇÒÕÐÐÁ"
 
 #: src/lang.c:639
-#, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	"÷ÙÂÒÁÔØ ôÅÍÕ [%s] (y/n): "
+msgid   "Try and save newsrc file again?"
+msgstr  "ðÏÐÒÏÂÏ×ÁÔØ É ÓÏÈÒÁÎÉÔØ newsrc ÓÎÏ×Á?"
 
 #: src/lang.c:640
-msgid	"Select text pattern : "
-msgstr	"÷ÙÂÒÁÔØ ÛÁÂÌÏÎ : "
+msgid   "Warning: No newsgroups were written to your newsrc file. Save aborted."
+msgstr  "÷ÎÉÍÁÎÉÅ: çÒÕÐÐÙ ÎÅ ÂÙÌÉ ÚÁÐÉÓÁÎÙ × newsrc. óÏÈÒÁÎÅÎÉÅ ÐÒÅÒ×ÁÎÏ."
 
 #: src/lang.c:641
-msgid	"Select time in days   : "
-msgstr	"÷ÙÂÒÁÔØ ×ÒÅÍÑ  : "
+msgid   "newsrc file saved successfully.\n"
+msgstr  "newsrc ÆÁÊÌ ÕÓÐÅÛÎÏ ÓÏÈÒÁÎ£Î.\n"
 
 #: src/lang.c:642
-#, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	"# %s ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ\n"
-	"# üÔÏÔ ÆÁÊÌ ÂÙÌ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎ£Î %s %s %s (\"%s\")\n"
-	"#\n"
-	"# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ ÐÏËÁ ÚÁÐÕÝÅÎ %s, ÔÁË ËÁË ×ÓÅ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ ×\n"
-	"# ÜÔÏÍ ÆÁÊÌÅ ÂÕÄÕÔ ÐÅÒÅÚÁÐÉÓÁÎÙ, ËÏÇÄÁ ×Ù ÚÁ×ÅÒÛÉÔÅ ÒÁÂÏÔÕ %s.\n"
-	"# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÓÏ×ÓÅÍ, ÅÓÌÉ ×Ù ÎÅ ÐÏÎÉÍÁÅÔÅ ÞÔÏ ×Ù ÄÅÌÁÅÔÅ.\n"
-	"############################################################################\n"
-	"\n"
+msgid   "-- Next response --"
+msgstr  "-- óÌÅÄÕÀÝÉÊ ÏÔ×ÅÔ --"
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  "îÅÔ  "
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  "*** îÅÔ ÓÔÁÔÅÊ ***"
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  "îÉ ÏÄÎÁ ÓÔÁÔØÑ ÎÅ ÂÙÌÁ ÏÔÐÒÁ×ÌÅÎÁ"
+
+#: src/lang.c:646
+#, fuzzy
+msgid   "*** No attachments ***"
+msgstr  "*** îÅÔ ÓÔÁÔÅÊ ***"
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  "*** îÅÔ ÏÐÉÓÁÎÉÑ ***"
 
 #: src/lang.c:648
-msgid	"Showing unread groups only"
-msgstr	"÷Ù×ÏÄ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÇÒÕÐÐ"
+msgid   "No filename"
+msgstr  "îÅÔ ÉÍÅÎÉ ÆÁÊÌÁ"
 
 #: src/lang.c:649
-msgid	"Subject: line (ignore case)   "
-msgstr	"ôÅÍÁ: ÓÔÒÏËÁ (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ) "
+msgid   "No group"
+msgstr  "îÅÔ ÇÒÕÐÐÙ"
 
 #: src/lang.c:650
-msgid	"Subject: line (case sensitive)"
-msgstr	"ôÅÍÁ: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)"
+msgid   "*** No groups ***"
+msgstr  "*** îÅÔ ÇÒÕÐÐ ***"
 
 #: src/lang.c:651
-msgid	"Save"
-msgstr	"óÏÈÒÁÎÉÔØ"
+msgid   "No more groups to read"
+msgstr  "îÅÔ ÂÏÌØÛÅ ÇÒÕÐÐ ÄÌÑ ÞÔÅÎÉÑ"
 
 #: src/lang.c:652
-#, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"óÏÈÒÁÎÉÔØ '%s' (%s/%s)?"
+msgid   "No last message"
+msgstr  "îÅÔ ÐÏÓÌÅÄÎÅÇÏ ÓÏÏÂÝÅÎÉÑ"
 
 #: src/lang.c:653
-msgid	"Save configuration before continuing?"
-msgstr	"óÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ÐÅÒÅÄ ÐÒÏÄÏÌÖÅÎÉÅÍ?"
+msgid   "No mail address"
+msgstr  "îÅÔ ÁÄÒÅÓÁ email"
 
 #: src/lang.c:654
-msgid	"Save filename> "
-msgstr	"óÏÈÒÁÎÉÔØ × ÆÁÊÌ> "
+msgid   "No articles marked for saving"
+msgstr  "îÅÔ ÍÁÒËÉÒÏ×ÁÎÎÙÈ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ"
 
 #: src/lang.c:655
-msgid	"Saved"
-msgstr	"óÏÈÒÁÎÅÎÏ"
+msgid   "No match"
+msgstr  "îÅÔ ÓÏ×ÐÁÄÅÎÉÑ"
 
 #: src/lang.c:656
-#, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	"%4d ÎÅÐÒÏÞÉÔÁÎÏ (%4d hot) %s × %s\n"
+msgid   "No more groups"
+msgstr  "âÏÌØÛÅ ÎÅÔ ÇÒÕÐÐ"
 
 #: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	"óÏÈÒÁÎÅÎÏ %s...\n"
+msgid   "No newsgroups"
+msgstr  "îÅÔ ÇÒÕÐÐ"
 
 #: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	"îÉÞÅÇÏ ÎÅ ÂÙÌÏ ÓÏÈÒÁÎÅÎÏ"
+msgid   "No next unread article"
+msgstr  "îÅÔ ÓÌÅÄÕÀÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:659
-#, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"\n"
-	"%s %d %s ÉÚ %d %s\n"
+msgid   "No previous group"
+msgstr  "îÅÔ ÐÒÅÄÙÄÕÝÅÊ ÇÒÕÐÐÙ"
 
 #: src/lang.c:660
-#, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"-- %s ÓÏÈÒÁÎ. × %s%s --"
+msgid   "No previous search, nothing to repeat"
+msgstr  ""
 
 #: src/lang.c:661
-#, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"-- %s ÓÏÈÒÁÎ. × %s - %s --"
+msgid   "No previous unread article"
+msgstr  "îÅÔ ÐÒÅÄÙÄÕÝÅÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÉ"
 
 #: src/lang.c:662
-msgid	"Saving..."
-msgstr	"úÁÐÉÓØ..."
+msgid   "No responses"
+msgstr  "îÅÔ ÏÔ×ÅÔÏ×"
 
 #: src/lang.c:663
-#, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s: ÎÅÕÄÁÞÎÁÑ ÉÎÉÃÉÁÌÉÚÁÃÉÑ ÜËÒÁÎÁ"
+msgid   "No responses to list in current thread"
+msgstr  "îÅÔ ÏÔ×ÅÔÏ× ÎÁ ÓÐÉÓÏË × ÔÅËÕÝÅÊ ÄÉÓËÕÓÓÉÉ"
+
+#: src/lang.c:664
+#, fuzzy
+msgid   "*** No scopes ***"
+msgstr  "*** îÅÔ ÇÒÕÐÐ ***"
 
 #: src/lang.c:665
-#, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s: ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌ\n"
+msgid   "No search string"
+msgstr  "îÅÔ ÓÔÒÏËÉ ÐÏÉÓËÁ"
 
-#: src/lang.c:667
-#, c-format
-msgid	"screen is too small, %s is exiting\n"
-msgstr	"ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌ, %s ×ÙÈÏÄ\n"
+#: src/lang.c:666
+msgid   "No subject"
+msgstr  "îÅÔ ÔÅÍÙ"
 
 #: src/lang.c:668
 #, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"ðÏÉÓË ÎÁÚÁÄ [%s]> "
+msgid   "%s: Terminal must have clear to end-of-line (ce)\n"
+msgstr  "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clear to end-of-line (ce)\n"
 
 #: src/lang.c:669
 #, c-format
-msgid	"Search body [%s]> "
-msgstr	"ðÏÉÓË × ÔÅÌÅ [%s]> "
+msgid   "%s: Terminal must have clear to end-of-screen (cd)\n"
+msgstr  "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clear to end-of-screen (cd)\n"
 
 #: src/lang.c:670
 #, c-format
-msgid	"Search forwards [%s]> "
-msgstr	"ðÏÉÓË ×ÐÅÒ£Ä [%s]> "
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ ÆÕÎËÃÉÀ clearscreen (cl)\n"
 
 #: src/lang.c:671
-msgid	"Searching..."
-msgstr	"ðÏÉÓË..."
+#, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  "%s: ôÅÒÍÉÎÁÌ ÄÏÌÖÅÎ ÉÍÅÔØ cursor motion (cm)\n"
 
 #: src/lang.c:672
 #, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	"ðÏÉÓË ÓÔÁÔØÉ %d ÉÚ %d ('q' - ÐÒÅÒ×ÁÔØ)..."
-
-#: src/lang.c:673
-msgid	"Select article> "
-msgstr	"÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
+msgid   "%s: TERM variable must be set to use screen capabilities\n"
+msgstr  "%s: ÕÓÔÁÎÏ×ÉÔÅ ÐÅÒÅÍÅÎÎÕÀ ÓÒÅÄÙ TERM\n"
 
 #: src/lang.c:674
-msgid	"Select option number before text or use arrow keys and <CR>. 'q' to quit."
-msgstr	"÷ÙÂÅÒÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ ÉÌÉ ÐÅÒÅÊÄÉÔÅ ÓÔÒÅÌÏÞËÁÍÉ É ÎÁÖÍÉÔÅ <CR>. 'q' ×ÙÈÏÄ."
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  "îÅ ÎÁÊÄÅÎ ÐÒÏÓÍÏÔÏÒÝÉË ÄÌÑ %s/%s\n"
 
 #: src/lang.c:675
-msgid	"Select group> "
-msgstr	"÷ÙÂÅÒÉÔÅ ÇÒÕÐÐÕ> "
+msgid   "Newsgroup does not exist on this server"
+msgstr  "çÒÕÐÐÁ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÎÁ ÜÔÏÍ ÓÅÒ×ÅÒÅ"
 
 #: src/lang.c:676
 #, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	"÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ×ÙÂÏÒÁ [%s]> "
+msgid   "Group %s not found in active file"
+msgstr  "çÒÕÐÐÁ %s ÎÅ ÎÁÊÄÅÎÁ × ÆÁÊÌÅ active"
 
 #: src/lang.c:677
-msgid	"Select thread > "
-msgstr	"÷ÙÂÅÒÉÔÅ ÄÉÓËÕÓÓÉÀ > "
+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:678
-#, c-format
-msgid	"%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
-msgstr	"%s %s %s (\"%s\") [%s]: ÏÔÐÒÁ×ØÔÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ÏÂ ÏÛÉÂËÅ %s\n"
+msgid   "use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  "a)ÉÓÐ. ÁÌØÔÅÒ. ÉÍÑ, d)ÉÓÐ. ÓÔÁÎÄÁÒÔÎÙÊ .newsrc, q)×ÙÈÏÄ ÉÚ tin: "
 
 #: src/lang.c:679
-msgid	"servers active-file"
-msgstr	"active-ÆÁÊÌ ÓÅÒ×ÅÒÏ×"
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  ""
+
+#: src/lang.c:686
+msgid   "Only"
+msgstr  "ôÏÌØËÏ"
+
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "ïÐÃÉÑ ÎÅ ×ËÌÀÞÅÎÁ. ðÅÒÅÓÏÂÅÒÉÔÅ ÐÁËÅÔ Ó %s."
 
-#: src/lang.c:680
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	"îÅ ÍÏÇÕ ÐÅÒÅÊÔÉ × ÎÏ×ÕÀ ÇÒÕÐÐÕ. óÎÁÞÁÌÁ ÐÏÄÐÉÛÉÔÅÓØ..."
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  "íÅÎÀ ÏÐÃÉÊ"
 
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	"<ðòïâåì>"
+#: src/lang.c:689
+#, fuzzy
+msgid   "Options Menu Commands"
+msgstr  "íÅÎÀ ÏÐÃÉÊ"
 
-#: src/lang.c:682
+#: src/lang.c:692
 #, c-format
-msgid	"Starting: (%s)"
-msgstr	"óÔÁÒÔÕÀ: (%s)"
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  "ïÛÉÂËÁ × regex: %s × ÐÏÚ. %d '%s'"
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"óÐÉÓÏË ÄÉÓËÕÓÓÉÊ (%d ÉÚ %d)"
+msgid   "Error in regex: pcre internal error %d"
+msgstr  "ïÛÉÂËÁ × regex: ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ pcre %d"
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, c-format
-msgid	"Thread (%.*s)"
-msgstr	"äÉÓËÕÓÓÉÑ (%.*s)"
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  "ïÛÉÂËÁ × regex: study - ×ÎÕÔÒÅÎÎÑÑ ÏÛÉÂËÁ pcre %s"
 
-#: src/lang.c:685
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	"÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÐÏÄÐÉÓËÉ> "
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  "ïÔÐÒÁ×ÌÅÎÉÅ ÏÔ×ÅÔÁ × ÇÒÕÐÐÕ..."
 
-#: src/lang.c:686
-#, c-format
-msgid	"subscribed to %d groups"
-msgstr	"ÐÏÄÐÉÓÁÌÉÓØ ÎÁ %d ÇÒÕÐÐ"
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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  "ïÛÉÂËÁ ×Ï ×ÒÅÍÑ ÏÔÐÒÁ×ÌÅÎÉÑ ÓÔÁÔØÉ. åÓÌÉ ÷Ù ÄÕÍÁÅÔÅ, ÞÔÏ ÏÛÉÂËÁ ×ÒÅÍÅÎÎÁÑ\n"
+        "É ÍÏÖÅÔ ÂÙÔØ ÉÓÐÒÁ×ÌÅÎÁÑ, ÔÏ ×Ù ÍÏÖÅÔÅ ÏÔÌÏÖÉÔØ ÓÔÁÔØÀ É ÏÔÐÒÁ×ÉÔØ Å£ Ó\n"
+        "ÐÏÍÏÝØÀ ^O ÐÏÚÖÅ.\n"
 
-#: src/lang.c:687
+#: src/lang.c:700
+msgid   "Posted articles history"
+msgstr  "éÓÔÏÒÉÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:701
 #, c-format
-msgid	"Subscribed to %s"
-msgstr	"ðÏÄÐÉÓÁÌÉÓØ ÎÁ %s"
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "ïÔÐÒÁ×ÉÔØ × ÇÒÕÐÐÕ(Ù) [%s]> "
 
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	"ðÏÄÐÉÓÙ×ÁÅÍÓÑ... "
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  "-- ÐÏÓÔ-ÏÂÒÁÂÏÔËÁ ÎÁÞÁÔÁ --"
 
-#: src/lang.c:689
-#, c-format
-msgid	"Repost or supersede article(s) [%%s]? (%s/%s/%s): "
-msgstr	"ïÔÐÒÁ×ÉÔØ ÓÎÏ×Á ÉÌÉ ÚÁÍÅÎÉÔØ ÓÔÁÔØÀ(É) [%%s]? (%s/%s/%s): "
+#: src/lang.c:703
+msgid   "-- post processing completed --"
+msgstr  "-- ÐÏÓÔ-ÏÂÒÁÂÏÔËÁ ÚÁËÏÎÞÅÎÁ --"
 
-#: src/lang.c:690
+#: src/lang.c:704
 #, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	"úÁÍÅÎÉÔØ ÓÔÁÔØÀ(É) × ÇÒÕÐÐÕ(Ù) [%s]> "
+msgid   "Post subject [%s]> "
+msgstr  "ôÅÍÁ ÓÏÏÂÝÅÎÉÑ [%s]> "
 
-#: src/lang.c:691
-msgid	"Superseding article ..."
-msgstr	"úÁÍÅÎÁ ÓÔÁÔØÉ ..."
+#: src/lang.c:705
+msgid   "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
+msgstr  "# ó×ÏÄËÁ Ï ÓÏÏÂÝÅÎÉÑÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ × ÇÒÕÐÐÕ ÉÌÉ ÐÏ ÐÏÞÔÅ ×ÙÚÙ×ÁÅÔÓÑ ËÏÍÁÎÄÏÊ\n"
+        "# 'W' ÉÚ tin.\n"
 
-#: src/lang.c:692
-#, c-format
-msgid	"\n"
-	"Stopped. Type 'fg' to restart %s\n"
-msgstr	"\n"
-	"ïÓÔÁÎÏ×ÌÅÎÏ. îÁÂÅÒÉÔÅ 'fg' ÄÌÑ ÐÅÒÅÚÁÐÕÓËÁ %s\n"
+#: src/lang.c:706
+msgid   "Posting article..."
+msgstr  "ïÔÐÒÁ×ÌÅÎÉÅ ÓÔÁÔØÉ..."
 
-#: src/lang.c:694
+#: src/lang.c:707
 #, c-format
-msgid	"%d days"
-msgstr	"%d ÄÎÅÊ"
-
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	"<ôáâ>"
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  "ïÔÐÒÁ×ÉÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ [%%s]? (%s/%s/%s/%s/%s): "
 
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	""
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  ""
 
-#: src/lang.c:697
-msgid	"# Default action/prompt strings\n"
-msgstr	""
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  "ðÏÍÅÞÅÎÙ %s"
 
-#: src/lang.c:698
-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"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	""
+#: src/lang.c:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  "óÎÑÔÙ ÏÔÍÅÔËÉ %s"
 
 #: src/lang.c:711
-msgid	"# If ON use print current subject or newsgroup description in the last line\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ ÔÅËÕÝÕÀ ÔÅÍÕ ÉÌÉ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ\n"
+msgid   "Processing mail messages marked for deletion."
+msgstr  "ïÂÒÁÂÏÔËÁ ÐÏÞÔÏ×ÙÈ ÓÏÏÂÝÅÎÉÊ ÐÏÍÅÞÅÎÎÙÈ ÄÌÑ ÕÄÁÌÅÎÉÑ."
 
 #: src/lang.c:712
-msgid	"# Host & time info used for detecting new groups (don't touch)\n"
-msgstr	"# éÎÆÏÒÍÁÃÉÑ Ï ÈÏÓÔÅ É ×ÒÅÍÅÎÉ, ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ\n"
-	"# ÎÏ×ÙÈ ÇÒÕÐÐ (ÎÅ ÉÚÍÅÎÑÔØ)\n"
+msgid   "Processing saved articles marked for deletion."
+msgstr  "ïÂÒÁÂÏÔËÁ ÓÏÈÒÁÎ£ÎÎÙÈ ÓÔÁÔÅÊ ÐÏÍÅÞÅÎÎÙÈ ÄÌÑ ÕÄÁÌÅÎÉÑ."
 
 #: src/lang.c:713
-msgid	"There is no news\n"
-msgstr	"îÅÔ ÎÏ×ÏÓÔÅÊ\n"
+#, c-format
+msgid   "Accept Followup-To? %s=post, %s=ignore, %s=quit: "
+msgstr  "ðÒÉÎÑÔØ Followup-To? %s=ÏÔÐÒÁ×ÉÔØ, %s=ÉÇÎÏÒÉÒÏ×ÁÔØ, %s=×ÙÈÏÄ: "
 
 #: src/lang.c:714
-msgid	"Thread"
-msgstr	"äÉÓËÕÓÓÉÑ"
+msgid   "Article unchanged, abort mailing?"
+msgstr  "óÔÁÔØÑ ÎÅ ÉÚÍÅÎÉÌÁÓØ, ÐÒÅÒ×ÁÔØ ÏÔÐÒÁ×ËÕ?"
 
 #: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	"ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÄÉÓËÕÓÓÉÊ"
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	"ó ÄÉÓËÕÓÓÉÉ ÓÎÑÔÁ ÏÔÍÅÔËÁ"
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  "èÏÔÉÔÅ ÐÏÓÍÏÔÒÅÔØ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ (%d)?"
 
 #: src/lang.c:717
-msgid	"Thread selected"
-msgstr	"äÉÓËÕÓÓÉÑ ×ÙÂÒÁÎÁ"
+msgid   "Add quick kill filter?"
+msgstr  "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ÕÎÉÞÔÏÖÅÎÉÑ?"
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ×ÙÂÏÒÁ?"
 
 #: src/lang.c:719
-msgid	"threads"
-msgstr	"ÄÉÓËÕÓÓÉÉ"
+msgid   "Do you really want to quit?"
+msgstr  "÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ×ÙÊÔÉ?"
+
+#: src/lang.c:720
+#, c-format
+msgid   "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
+msgstr  "%s=ÒÅÄÁËÔ. ÏÔÍÅÎ. ÓÏÏÂÝÅÎÉÑ, %s=×ÙÈÏÄ, %s=ÕÄÁÌÉÔØ (ÏÔÍÅÎÉÔØ) [%%s]: "
 
 #: src/lang.c:721
-msgid	"Thread range"
-msgstr	"äÉÁÐÁÚÏÎ ÄÉÓËÕÓÓÉÉ"
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  "ïÓÔÁÌÉÓØ ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ÇÒÕÐÐÅ - ×ÙÊÔÉ ×ÓÅ ÒÁ×ÎÏ?"
 
 #: src/lang.c:722
-msgid	"thread"
-msgstr	"ÄÉÓËÕÓÓÉÑ"
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ, %s=ÏÔÌÏÖÉÔØ: "
 
 #: src/lang.c:723
 #, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"äÉÓËÕÓÓÉÑ %4s ÉÚ %4s"
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  "%s=×ÙÈÏÄ %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ %s=ÓÏÈÒ. ÕÎÉÞÔÏÖÅÎÎÏÅ ÏÐÉÓÁÎÉÅ: "
 
 #: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	"òÁÚÂÏÒ ÄÉÓËÕÓÓÉÊ..."
-
-#: src/lang.c:725
 #, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	"ðÅÒÅËÌÀÞÅÎÉÅ ÐÏÄÓ×ÅÔËÉ ÓÌÏ× %s"
-
-#: src/lang.c:726
-msgid	"Toggled rot13 encoding"
-msgstr	"ðÅÒÅËÌÀÞÅÎÉÅ ËÏÄÉÒÏ×ËÉ rot13"
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  "%s=×ÙÈÏÄ %s=ÒÅÄÁËÔÉÒÏ×ÁÔØ %s=ÓÏÈÒ. ×ÙÂÒÁÎÎÏÅ ÏÐÉÓÁÎÉÅ: "
 
-#: src/lang.c:727
-#, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	"ðÅÒÅËÌÀÞÅÎÉÅ ÎÅÍÅÃËÏÊ TeX ËÏÄÉÒÏ×ËÉ %s"
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  "÷Ù ÄÅÊÓÔ×ÉÔÅÌØÎÏ ÈÏÔÉÔÅ ×ÙÊÔÉ ÂÅÚ ÓÏÈÒÁÎÅÎÉÑ ËÏÎÆÉÇÕÒÁÃÉÉ?"
 
 #: src/lang.c:728
-#, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	"ðÅÒÅËÌÀÞÅÎÉÅ ÛÉÒÉÎÙ ÔÁÂÕÌÑÃÉÉ ÎÁ %d"
-
-#: src/lang.c:729
-#, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	"%d ÐÏÐÙÔËÁ dotlock %s"
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  "îÅÄÏÐÕÓÔÉÍÙÊ ÄÉÁÐÁÚÏÎ - ÄÏÓÔÕÐÎÙ '0-9.$', ÎÁÐÒ. 1-$"
 
 #: src/lang.c:730
-#, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%d ðÏÐÙÔËÁ ÚÁÂÌÏËÉÒÏ×ÁÔØ %s"
+msgid   "Do you want to abort this operation?"
+msgstr  "÷Ù ÈÏÔÉÔÅ ÐÒÅÒ×ÁÔØ ÏÐÅÒÁÃÉÀ?"
 
 #: src/lang.c:731
-msgid	"           h=help\n"
-msgstr	"           h=ÐÏÍÏÝØ\n"
+msgid   "Do you want to exit tin immediately?"
+msgstr  "÷Ù ÈÏÔÉÔÅ ×ÙÊÔÉ ÉÚ tin ÎÅÍÅÄÌÅÎÎÏ?"
 
 #: src/lang.c:733
-msgid	"Unlimited"
-msgstr	"îÅÏÇÒÁÎÉÞÅÎ"
+msgid   "Reading ('q' to quit)..."
+msgstr  "þÔÅÎÉÅ ('q' - ×ÙÈÏÄ)..."
 
 #: src/lang.c:734
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	"÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÏÔÐÉÓÙ×ÁÎÉÑ> "
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  "þÔÅÎÉÅ %sÓÔÁÔÅÊ..."
 
 #: src/lang.c:735
 #, c-format
-msgid	"Error decoding %s : %s"
-msgstr	"ïÛÉÂËÁ ÒÁÓËÏÄÉÒÏ×ÁÎÉÑ %s : %s"
+msgid   "Reading %sattributes file...\n"
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ %sÁÔÒÉÂÕÔÏ×...\n"
 
 #: src/lang.c:736
-msgid	"No end."
-msgstr	"îÅÔ ËÏÎÃÁ."
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ %sconfig...\n"
 
 #: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	"%s ÕÓÐÅÛÎÏ ÒÁÓËÏÄÉÒÏ×ÁÎ."
+msgid   "Reading filter file...\n"
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ ÆÉÌØÔÒÏ×...\n"
 
 #: src/lang.c:738
 #, c-format
-msgid	"%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
-	"\n"
-msgstr	"%*s[-- %s/%s, %suuencoded ÆÁÊÌ, %d ÓÔÒÏË, ÉÍÑ: %s --]\n"
-	"\n"
+msgid   "Reading %s groups..."
+msgstr  "þÔÅÎÉÅ %s ÇÒÕÐÐ..."
 
 #: src/lang.c:739
-msgid	"unread "
-msgstr	"ÎÅÐÒÏÞÉÔÁÎÏ "
+msgid   "Reading input history file...\n"
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ ÉÓÔÏÒÉÉ...\n"
 
 #: src/lang.c:740
-#, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	"ÏÔÐÉÓÁÌÉÓØ ÏÔ %d ÇÒÕÐÐ"
+msgid   "Reading keymap file...\n"
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ ÎÁÚÎÁÞÅÎÉÊ ËÌÁ×ÉÛ...\n"
 
 #: src/lang.c:741
-#, c-format
-msgid	"Unsubscribed from %s"
-msgstr	"ïÔÐÉÓÁÌÉÓØ ÏÔ %s"
+msgid   "Reading groups from active file... "
+msgstr  "þÔÅÎÉÅ ÇÒÕÐÐ ÉÚ ÆÁÊÌÁ active... "
 
 #: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	"ïÔÐÉÓÙ×ÁÅÍÓÑ... "
+msgid   "Reading groups from newsrc file... "
+msgstr  "þÔÅÎÉÅ ÇÒÕÐÐ ÉÚ ÆÁÊÌÁ newsrc... "
 
 #: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	"òÁÚÇÒÕÐÐÉÒÏ×ËÁ ÄÉÓËÕÓÓÉÊ..."
+msgid   "Reading newsgroups file... "
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ ÇÒÕÐÐ... "
 
 #: src/lang.c:744
-msgid	"Updated"
-msgstr	"ïÂÎÏ×ÌÅÎÏ"
+msgid   "Reading newsrc file..."
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ newsrc..."
 
 #: src/lang.c:745
-msgid	"Updating"
-msgstr	"ïÂÎÏ×ÌÅÎÉÅ"
-
-#: src/lang.c:746
-#, c-format
-msgid	"Opening %s\n"
-msgstr	"ïÔËÒÙÔÉÅ %s\n"
+msgid   "References: line              "
+msgstr  "References: ÓÔÒÏËÁ            "
 
 #: src/lang.c:747
-msgid	"No more URL's in this article"
-msgstr	"îÅÔ ÂÏÌØÛÅ URL × ÓÔÁÔØÅ"
-
-#: src/lang.c:748
-msgid	"Use MIME display program for this message?"
-msgstr	"÷ÙÚ×ÁÔØ ÐÒÏÇÒÁÍÍÕ, ÐÏËÁÚÙ×ÁÀÝÕÀ MIME ÄÌÑ ÓÔÁÔØÉ?"
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  "(%d:%02d ÏÓÔÁÌÏÓØ)"
 
 #: src/lang.c:749
-msgid	"  -c       mark all news as read in subscribed newsgroups (batch mode)"
-msgstr	"  -c       ÏÔÍÅÔÉÔØ ×ÓÅ ÎÏ×ÏÓÔÉ ËÁË ÐÒÏÞ. × ÐÏÄÐÉÓ. ÇÒÕÐÐÁÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  "ïÛÉÂÏÞÎÁÑ ÇÒÕÐÐÁ %s ÕÄÁÌÅÎÁ."
 
 #: src/lang.c:750
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	"  -Z       ×ÏÚ×ÒÁÔ ÓÔÁÔÕÓÁ Ï ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÎÏ×ÏÓÔÑÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
+msgid   "Removed from the previous rule: "
+msgstr  "õÄÁÌ£Î ÉÚ ÐÒÅÄÙÄÕÝÅÇÏ ÐÒÁ×ÉÌÁ: "
 
 #: src/lang.c:751
-msgid	"  -q       don't check for new newsgroups"
-msgstr	"  -q       ÎÅ ÐÒÏ×ÅÒÑÔØ ÐÏÑ×ÌÅÎÉÑ ÎÏ×ÙÈ ÇÒÕÐÐ ÎÏ×ÏÓÔÅÊ"
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "ïÛÉÂËÁ: ÐÅÒÅÉÍÅÎÏ×ÁÔØ %s × %s"
 
 #: src/lang.c:752
-msgid	"  -X       don't save any files on quit"
-msgstr	"  -X       ÎÅ ÓÏÈÒÁÎÑÔØ ÆÁÊÌÙ ÐÒÉ ×ÙÈÏÄÅ"
+msgid   "Reply to author..."
+msgstr  "ïÔ×ÅÞÁÅÍ Á×ÔÏÒÕ..."
 
 #: src/lang.c:753
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	"  -d       ÎÅ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÑ ÇÒÕÐÐ"
+msgid   "Repost"
+msgstr  "ïÐÒÁ×ÉÔØ ÓÎÏ×Á"
 
 #: src/lang.c:754
-msgid	"  -G limit get only limit articles/group"
-msgstr	"  -G limit ÐÏÌÕÞÉÔØ ÔÏÌØËÏ limit ÓÔÁÔÅÊ/ÇÒÕÐÐ"
+msgid   "Reposting article..."
+msgstr  "ðÏ×ÔÏÒÎÁÑ ÏÔÐÒÁ×ËÁ ÓÔÁÔØÉ..."
 
 #: src/lang.c:755
 #, c-format
-msgid	"  -H       help information about %s"
-msgstr	"  -H       ÐÏÄÓËÁÚËÁ Ï %s"
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  "ïÔÐÒÁ×ÉÔØ ÓÎÏ×Á ÓÔÁÔØÀ(É) × ÇÒÕÐÐÕ(Ù) [%s]> "
 
 #: src/lang.c:756
-msgid	"  -h       this help message"
-msgstr	"  -h       ÜÔÁ ÐÏÄÓËÁÚËÁ"
+msgid   "Reset newsrc?"
+msgstr  "óÂÒÏÓÉÔØ newsrc?"
 
 #: src/lang.c:757
-#, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	"  -I dir   ÄÉÒÅËÔÏÒÉÑ ÉÎÄÅËÓÎÏÇÏ ÆÁÊÌÁ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  "ïÔ×ÅÔÙ ÂÙÌÉ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÙ × ÓÌÅÄÕÀÝÉÅ ÇÒÕÐÐÙ"
 
 #: src/lang.c:758
-msgid	"  -u       update index files (batch mode)"
-msgstr	"  -u       ÏÂÎÏ×ÉÔØ ÉÎÄÅËÓÎÙÅ ÆÁÊÌÙ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
-
-#: src/lang.c:759
 #, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	"  -m dir   ÄÉÒÅËÔÏÒÉÑ mailbox [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+msgid   "Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
+msgstr  "ïÔ×ÅÔÙ ÂÙÌÉ ÐÅÒÅÎÁÐÒÁ×ÌÅÎÙ ÏÔÐÒÁ×ÉÔÅÌÀ. %s=mail, %s=ÏÔÐÒÁ×ÉÔØ, %s=×ÙÈÏÄ: "
 
 #: src/lang.c:760
-#, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	"\n"
-	"ïÔÐÒÁ×ÌÑÊÔÅ ÏÛÉÂËÉ/ËÏÍÍÅÎÔÁÒÉÉ %s"
-
-#: src/lang.c:761
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	"  -N       ÏÔÐÒÁ×ÌÑÔØ ÐÏ email ÎÏ×ÙÅ ÓÔÁÔØÉ ÎÁ ×ÁÛÉ ÓÏÏÂÝÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
+msgid   "Press <RETURN> to continue..."
+msgstr  "îÁÖÍÉÔÅ <CR> ÄÌÑ ÐÒÏÄÏÌÖÅÎÉÑ..."
 
 #: src/lang.c:762
-msgid	"  -M user  mail new news to specified user (batch mode)"
-msgstr	"  -M user  ÏÔÐÒÁ×ÌÑÔØ ÐÏ email ÎÏ×ÙÅ ÓÔÁÔØÉ ÕËÁÚÁÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ (ÐÁËÅÔÎÙÊ "
-	"ÒÅÖÉÍ)"
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  "÷ÙÂÒÁÔØ From   [%s] (y/n): "
 
 #: src/lang.c:763
-#, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	"  -f file  ÆÁÊÌ ÐÏÄÐÉÓËÉ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+msgid   "Select Lines: (</>num): "
+msgstr  "÷ÙÂÒÁÔØ ÓÔÒÏËÉ: (</>num): "
 
 #: src/lang.c:764
-msgid	"  -x       no posting mode"
-msgstr	"  -x       ÒÅÖÉÍ ÚÁÐÒÅÔ ÏÔÐÒÁ×ÌÅÎÉÑ"
+msgid   "Auto-select Article Menu"
+msgstr  "á×ÔÏ×ÙÂÏÒ íÅÎÀ ÓÔÁÔÅÊ"
 
 #: src/lang.c:765
-msgid	"  -w       post an article and exit"
-msgstr	"  -w       ÏÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ É ×ÙÊÔÉ"
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  "÷ÙÂÒÁÔØ Msg-Id [%s] (f/l/o/n): "
 
 #: src/lang.c:766
-msgid	"  -o       post all postponed articles and exit"
-msgstr	"  -o       ÏÔÐÒÁ×ÉÔØ ×ÓÅ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ É ×ÙÊÔÉ"
+msgid   "Select pattern scope: "
+msgstr  "÷ÙÂÒÁÔØ ÏÂÌÁÓÔØ ÛÁÂÌÏÎÁ: "
 
 #: src/lang.c:767
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	"  -r       ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ ÕÄÁÌÅÎÎÏ Ó NNTP ÓÅÒ×ÅÒÁ, ÚÁÄÁÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ"
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  "÷ÙÂÒÁÔØ ôÅÍÕ [%s] (y/n): "
 
 #: src/lang.c:768
-msgid	"  -R       read news saved by -S option"
-msgstr	"  -R       ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ, ÓÏÈÒÁÎ£ÎÎÙÅ ÏÐÃÉÅÊ -S"
+msgid   "Select text pattern : "
+msgstr  "÷ÙÂÒÁÔØ ÛÁÂÌÏÎ : "
 
 #: src/lang.c:769
-#, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	"  -s dir   ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÎÏ×ÏÓÔÅÊ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+msgid   "Select time in days   : "
+msgstr  "÷ÙÂÒÁÔØ ×ÒÅÍÑ  : "
 
 #: src/lang.c:770
-msgid	"  -S       save new news for later reading (batch mode)"
-msgstr	"  -S       ÓÏÈÒÁÎÑÔØ ÎÏ×ÏÓÔÉ ÄÌÑ ÐÏÓÌÅÄÕÀÝÅÇÏ ÐÒÏÞÔÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
-
-#: src/lang.c:771
-msgid	"  -z       start if any unread news"
-msgstr	"  -z       ÚÁÐÕÓÔÉÔØ ÅÓÌÉ ÅÓÔØ ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÎÏ×ÏÓÔÉ"
-
-#: src/lang.c:772
-#, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"ðÒÏÇÒÁÍÍÁ ÞÔÅÎÉÑ ÎÏ×ÏÓÔÅÊ Usenet.\n"
-	"\n"
-	"éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ[,...]]"
-
-#: src/lang.c:773
-msgid	"  -v       verbose output for batch mode options"
-msgstr	"  -v       ÄÅÔÁÌØÎÙÊ ×Ù×ÏÄ ÄÌÑ ÏÐÃÉÊ ÐÁËÅÔÎÏÇÏ ÒÅÖÉÍÁ"
-
-#: src/lang.c:774
-msgid	"  -V       print version & date information"
-msgstr	"  -V       ×Ù×ÅÓÔÉ ×ÅÒÓÉÀ É ÄÁÔÕ"
-
-#: src/lang.c:775
 #, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	"%s ÏÐÃÉÑ ÐÏÌÅÚÎÁ ÔÏÌØËÏ ÂÅÚ ÐÁËÅÔÎÏÇÏ ÒÅÖÉÍÁ\n"
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  "# %s ËÏÎÆÉÇÕÒÁÃÉÏÎÎÙÊ ÆÁÊÌ\n"
+        "# üÔÏÔ ÆÁÊÌ ÂÙÌ Á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎ£Î %s %s %s (\"%s\")\n"
+        "#\n"
+        "# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÅÇÏ ÐÏËÁ ÚÁÐÕÝÅÎ %s, ÔÁË ËÁË ×ÓÅ ×ÁÛÉ ÉÚÍÅÎÅÎÉÑ ×\n"
+        "# ÜÔÏÍ ÆÁÊÌÅ ÂÕÄÕÔ ÐÅÒÅÚÁÐÉÓÁÎÙ, ËÏÇÄÁ ×Ù ÚÁ×ÅÒÛÉÔÅ ÒÁÂÏÔÕ %s.\n"
+        "# îÅ ÒÅÄÁËÔÉÒÕÊÔÅ ÓÏ×ÓÅÍ, ÅÓÌÉ ×Ù ÎÅ ÐÏÎÉÍÁÅÔÅ ÞÔÏ ×Ù ÄÅÌÁÅÔÅ.\n"
+        "############################################################################\n"
+        "\n"
 
 #: src/lang.c:776
-#, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	"%s ÏÐÃÉÑ ÐÏÌÅÚÎÁ ÔÏÌØËÏ × ÐÁËÅÔÎÏÍ ÒÅÖÉÍÅ\n"
+msgid   "Showing unread groups only"
+msgstr  "÷Ù×ÏÄ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÇÒÕÐÐ"
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  "ôÅÍÁ: ÓÔÒÏËÁ (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ) "
 
 #: src/lang.c:778
-#, c-format
-msgid	"\n"
-	"%s%d out of range (0 - %d). Reset to 0"
-msgstr	"\n"
-	"%s%d ×ÎÅ ÄÉÁÐÁÚÏÎÁ (0 - %d). óÂÒÏÓ × 0"
+msgid   "Subject: line (case sensitive)"
+msgstr  "ôÅÍÁ: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)"
 
 #: src/lang.c:779
+msgid   "Save"
+msgstr  "óÏÈÒÁÎÉÔØ"
+
+#: src/lang.c:780
 #, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"ðÒÏÓÍÏÔÒ '%s' (%s/%s)?"
+msgid   "Save '%s' (%s/%s)?"
+msgstr  "óÏÈÒÁÎÉÔØ '%s' (%s/%s)?"
 
 #: src/lang.c:781
-#, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÓÏÏÂÝÅÎÉÅ ÐÒÅ×ÙÓÉÌÏ %d ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ.\n"
-	"óÔÒÏËÁ %d - ÐÅÒ×ÁÑ ÄÌÉÎÎÁÑ ÓÔÒÏËÁ:\n"
-	"%-100s\n"
+msgid   "Save configuration before continuing?"
+msgstr  "óÏÈÒÁÎÉÔØ ËÏÎÆÉÇÕÒÁÃÉÀ ÐÅÒÅÄ ÐÒÏÄÏÌÖÅÎÉÅÍ?"
 
 #: src/lang.c:782
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÓÔÁÔØÑ ÎÅ ÉÚÍÅÎÉÌÁÓØ ÐÏÓÌÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ\n"
+msgid   "Save filename> "
+msgstr  "óÏÈÒÁÎÉÔØ × ÆÁÊÌ> "
 
 #: src/lang.c:783
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: \"Subject:\" ÓÏÄÅÒÖÉÔ ÏÄÎÉ ÐÒÏÂÅÌÙ.\n"
+msgid   "Saved"
+msgstr  "óÏÈÒÁÎÅÎÏ"
 
 #: src/lang.c:784
-msgid	"\n"
-	"Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
-msgstr	"\n"
-	"ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: \"Subject:\" ÎÁÞÉÎÁÅÔÓÑ Ó  \"Re: \" ÎÏ ÎÅÔ \"References:\".\n"
-
-#: src/lang.c:786
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: × ÓÔÁÔØÅ ÅÓÔØ \"References:\" ÎÏ \"Subject:\"\n"
-	"          ÎÅ ÎÁÞÉÎÁÅÔÓÑ Ó \"Re: \" É ÎÅ ÓÏÄÅÒÖÉÔ \"(was:\".\n"
+#, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  "%4d ÎÅÐÒÏÞÉÔÁÎÏ (%4d hot) %s × %s\n"
 
-#: src/lang.c:789
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"ðÒÏÞÉÔÁÊÔÅ ×ÎÉÍÁÔÅÌØÎÏ!\n"
-	"\n"
-	"  ÷Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ ÓÔÁÔØÀ, ÎÁÐÉÓÁÎÎÕÀ ÓËÏÒÅÅ ×ÓÅÇÏ ×ÁÍÉ. üÔÏ ÕÎÉÞÔÏÖÉÔ\n"
-	"  ÓÔÁÔØÀ Ó ÂÏÌØÛÉÎÓÔ×Á ÓÅÒ×ÅÒÏ× ÐÏ ×ÓÅÍÕ ÍÉÒÕ, ÎÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÇÁÒÁÎÔÉÉ,\n"
-	"  ÞÔÏ ÜÔÏ ÂÕÄÅÔ ÓÒÁÂÏÔÁÅÔ.\n"
-	"\n"
-	"÷ÏÔ ÓÔÁÔØÑ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ:\n"
-	"\n"
+#: src/lang.c:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  "óÏÈÒÁÎÅÎÏ %s...\n"
 
-#: src/lang.c:793
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÷Ù ÉÓÐÏÌØÚÕÅÔÅ ËÏÄÉÒÏ×ÁÎÉÅ ÓÏÏÂÝÅÎÉÑ (base64 ÉÌÉ quoted-printable)\n"
-	"          É ×ÎÅÛÎÀÀ inews ÐÒÏÇÒÁÍÍÕ ÄÌÑ ÏÔÐÒÁ×ËÉ ÎÏ×ÏÓÔÅÊ. åÓÌÉ ÐÏÄÐÉÓØ "
-	"ÂÕÄÅÔ\n"
-	"          ÄÏÂÁ×ÌÅÎÁ ÜÔÏÊ ÐÒÏÇÒÁÍÍÏÊ, ÏÎÁ ÎÅ ÂÕÄÅÔ ËÏÒÒÅËÔÎÏ ÚÁËÏÄÉÒÏ×ÁÎÁ.\n"
+#: src/lang.c:786
+msgid   "Nothing was saved"
+msgstr  "îÉÞÅÇÏ ÎÅ ÂÙÌÏ ÓÏÈÒÁÎÅÎÏ"
 
-#: src/lang.c:798
+#: src/lang.c:787
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	"\n"
-	"\n"
-	"÷Ù ÏÂÎÏ×ÌÑÅÔÅÓØ ÄÏ tin %s Ó ÐÒÅÄÙÄÕÝÅÊ ×ÅÒÓÉÉ.\n"
-	"îÅËÏÔÏÒÙÅ ÚÎÁÞÅÎÉÑ × ×ÁÛÅÍ %s ÆÁÊÌÅ ÉÚÍÅÎÉÌÉÓØ!\n"
-	"ðÒÏÞÉÔÁÊÔÅ WHATSNEW, É Ô.Ä...\n"
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s ÉÚ %d %s\n"
 
-#: src/lang.c:800
+#: src/lang.c:788
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	"\n"
-	"\n"
-	"÷Ù ÉÓÐÏÌØÚÕÅÔÅ ÂÏÌÅÅ ÓÔÁÒÕÀ ×ÅÒÓÉÀ tin %s!\n"
-	"îÅËÏÔÏÒÙÅ ÚÎÁÞÅÎÉÅÑ × ÆÁÊÌÅ %s ÍÏÇÕÔ ÂÙÔØ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ,\n"
-	"ÄÒÕÇÉÅ ÍÏÇÌÉ ÂÙÔØ ÉÚÍÅÎÅÎÙ!\n"
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s ÓÏÈÒÁÎ. × %s%s --"
 
-#: src/lang.c:803
+#: src/lang.c:789
 #, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	""
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s ÓÏÈÒÁÎ. × %s - %s --"
 
-#: src/lang.c:807
-#, c-format
-msgid	"\n"
-	"Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÏÂÎÁÒÕÖÅÎÏ %d '-- \\n' ÓÔÒÏË, ÜÔÏ ÍÏÖÅÔ ÕÄÉ×ÉÔØ ÎÅËÏÔÏÒÙÈ "
-	"ÐÏÌØÚÏ×ÁÔÅÌÅÊ.\n"
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  "úÁÐÉÓØ..."
 
-#: src/lang.c:808
+#: src/lang.c:791
 #, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	"÷ÎÉÍÁÎÉÅ: óÏÈÒÁÎÅÎÙ ÔÏÌØËÏ %d ÉÚ %d ÓÔÁÔÅÊ"
+msgid   "%s: Screen initialization failed"
+msgstr  "%s: ÎÅÕÄÁÞÎÁÑ ÉÎÉÃÉÁÌÉÚÁÃÉÑ ÜËÒÁÎÁ"
 
-#: src/lang.c:809
+#: src/lang.c:793
 #, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÷ÁÛÁ ÐÏÄÐÉÓØ ÄÌÉÎÎÅÅ %d ÓÔÒÏË. ôÁË ËÁË ÐÏÄÐÉÓÉ ÏÂÙÞÎÏ ÎÅ ÐÅÒÅÄÁÀÔ\n"
-	"          ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÏÎÉ ÄÏÌÖÎÙ ÂÙÔØ ËÏÒÏÔËÉÍÉ ÎÁÓÔÏÌØËÏ,\n"
-	"          ÎÁÓËÏÌØËÏ ÜÔÏ ×ÏÚÍÏÖÎÏ.\n"
+msgid   "%s: screen is too small\n"
+msgstr  "%s: ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌ\n"
 
-#: src/lang.c:813
+#: src/lang.c:795
 #, c-format
-msgid	"Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
-msgstr	"÷ÎÉÍÁÎÉÅ: ÁÄÒÅÓ email ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ spamtrap. %s=ÐÒÏÄÏÌÖÉÔØ, %s=ÓÔÏÐ? "
+msgid   "screen is too small, %s is exiting\n"
+msgstr  "ÜËÒÁÎ ÓÌÉÛËÏÍ ÍÁÌ, %s ×ÙÈÏÄ\n"
 
-#: src/lang.c:814
-msgid	"\n"
-	"Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: óÉÇÎÁÔÕÒÙ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó '-- \\n' ÎÅ Ó '--\\n'.\n"
+#: src/lang.c:796
+#, fuzzy
+msgid   "Delete scope?"
+msgstr  "÷ÙÂÒÁÔØ ÏÂÌÁÓÔØ ÛÁÂÌÏÎÁ: "
 
-#: src/lang.c:815
-msgid	"Writing attributes file..."
-msgstr	"úÁÐÉÓØ ÆÁÊÌÁ ÁÔÒÉÂÕÔÏ×..."
+#: src/lang.c:797
+#, fuzzy
+msgid   "Enter scope> "
+msgstr  "÷×ÅÄÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ> "
 
-#: src/lang.c:817
-#, c-format
-msgid	"%d Responses"
-msgstr	"%d ÏÔ×ÅÔÏ×"
+#: src/lang.c:798
+#, fuzzy
+msgid   "Select new position> "
+msgstr  "÷ÙÂÒÁÔØ ÛÁÂÌÏÎ : "
 
-#: src/lang.c:819
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  ""
+
+#: src/lang.c:800
+msgid   "Global scope, operation not allowed"
+msgstr  ""
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  ""
+
+#: src/lang.c:802
+#, fuzzy
+msgid   "Select scope> "
+msgstr  "÷ÙÂÅÒÉÔÅ ÇÒÕÐÐÕ> "
+
+#: src/lang.c:803
+#, fuzzy
+msgid   "Scopes Menu"
+msgstr  "íÅÎÀ ÏÐÃÉÊ"
+
+#: src/lang.c:804
+#, fuzzy
+msgid   "Scopes Menu Commands"
+msgstr  "ëÏÍÁÎÄÙ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ"
+
+#: src/lang.c:805
+#, c-format
+msgid   "Search backwards [%s]> "
+msgstr  "ðÏÉÓË ÎÁÚÁÄ [%s]> "
+
+#: src/lang.c:806
+#, c-format
+msgid   "Search body [%s]> "
+msgstr  "ðÏÉÓË × ÔÅÌÅ [%s]> "
+
+#: src/lang.c:807
+#, c-format
+msgid   "Search forwards [%s]> "
+msgstr  "ðÏÉÓË ×ÐÅÒ£Ä [%s]> "
+
+#: src/lang.c:808
+msgid   "Searching..."
+msgstr  "ðÏÉÓË..."
+
+#: src/lang.c:809
+#, c-format
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  "ðÏÉÓË ÓÔÁÔØÉ %d ÉÚ %d ('q' - ÐÒÅÒ×ÁÔØ)..."
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  "÷ÙÂÅÒÉÔÅ ÓÔÁÔØÀ> "
+
+#: src/lang.c:811
+msgid   "Select option number before text or use arrow keys and <CR>. 'q' to quit."
+msgstr  "÷ÙÂÅÒÉÔÅ ÎÏÍÅÒ ÏÐÃÉÉ ÉÌÉ ÐÅÒÅÊÄÉÔÅ ÓÔÒÅÌÏÞËÁÍÉ É ÎÁÖÍÉÔÅ <CR>. 'q' ×ÙÈÏÄ."
+
+#: src/lang.c:812
+msgid   "Select group> "
+msgstr  "÷ÙÂÅÒÉÔÅ ÇÒÕÐÐÕ> "
+
+#: src/lang.c:813
 #, c-format
-msgid	"Added %d %s"
-msgstr	"äÏÂÁ×ÌÅÎÏ %d %s"
+msgid   "Enter selection pattern [%s]> "
+msgstr  "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ×ÙÂÏÒÁ [%s]> "
+
+#: src/lang.c:814
+msgid   "Select thread > "
+msgstr  "÷ÙÂÅÒÉÔÅ ÄÉÓËÕÓÓÉÀ > "
+
+#: src/lang.c:815
+#, c-format
+msgid   "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
+msgstr  "%s %s %s (\"%s\") [%s]: ÏÔÐÒÁ×ØÔÅ ÐÏÄÒÏÂÎÕÀ ÉÎÆÏÒÍÁÃÉÀ ÏÂ ÏÛÉÂËÅ %s\n"
+
+#: src/lang.c:816
+msgid   "servers active-file"
+msgstr  "active-ÆÁÊÌ ÓÅÒ×ÅÒÏ×"
+
+#: src/lang.c:817
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  "îÅ ÍÏÇÕ ÐÅÒÅÊÔÉ × ÎÏ×ÕÀ ÇÒÕÐÐÕ. óÎÁÞÁÌÁ ÐÏÄÐÉÛÉÔÅÓØ..."
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  "<ðòïâåì>"
+
+#: src/lang.c:819
+#, c-format
+msgid   "Starting: (%s)"
+msgstr  "óÔÁÒÔÕÀ: (%s)"
 
 #: src/lang.c:820
-msgid	"No unsubscribed groups to show"
-msgstr	"îÅÔ ÏÔÐÉÓÁÎÎÙÈ ÇÒÕÐÐ ÄÌÑ ×Ù×ÏÄÁ"
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  "óÐÉÓÏË ÄÉÓËÕÓÓÉÊ (%d ÉÚ %d)"
 
 #: src/lang.c:821
-msgid	"Showing subscribed to groups only"
-msgstr	"ðÏËÁÚ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÈ ÎÁ ÇÒÕÐÐÕ"
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  "äÉÓËÕÓÓÉÑ (%.*s)"
 
 #: src/lang.c:822
-msgid	"Yes "
-msgstr	"äÁ "
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÐÏÄÐÉÓËÉ> "
 
 #: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	"    îÏ×ÁÑ ÐÏÞÔÁ\n"
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  "ÐÏÄÐÉÓÁÌÉÓØ ÎÁ %d ÇÒÕÐÐ"
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  "ðÏÄÐÉÓÁÌÉÓØ ÎÁ %s"
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  "ðÏÄÐÉÓÙ×ÁÅÍÓÑ... "
+
+#: src/lang.c:826
+#, c-format
+msgid   "Repost or supersede article(s) [%%s]? (%s/%s/%s): "
+msgstr  "ïÔÐÒÁ×ÉÔØ ÓÎÏ×Á ÉÌÉ ÚÁÍÅÎÉÔØ ÓÔÁÔØÀ(É) [%%s]? (%s/%s/%s): "
+
+#: src/lang.c:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  "úÁÍÅÎÉÔØ ÓÔÁÔØÀ(É) × ÇÒÕÐÐÕ(Ù) [%s]> "
 
 #: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  "úÁÍÅÎÁ ÓÔÁÔØÉ ..."
+
+#: src/lang.c:829
 #, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ïÔÐÒÁ×ËÁ × %s ÓÏÄÅÒÖÉÔ ÓÉÍ×ÏÌÙ, ËÏÔÏÒÙÅ ÎÅ ÐÒÉÓÕÔÓÔ×ÕÀÔ ×\n"
-	"          ×ÙÂÒÁÎÎÏÍ MM_NETWORK_CHARSET: %s.\n"
-	"          üÔÉ ÓÉÍ×ÏÌÙ ÂÕÄÕÔ ÚÁÍÅÎÅÎÙ ÎÁ '?', ÅÓÌÉ ×Ù ÏÔÐÒÁ×ÉÔÅ ÜÔÕ ÓÔÁÔØÀ\n"
-	"          ÂÅÚ ÉÚÍÅÎÅÎÉÊ. þÔÏÂÙ ÉÚÂÅÖÁÔØ ÉÓËÁÖÅÎÉÑ ×ÁÛÉÈ ÓÔÁÔÅÊ, ÐÏÖÁÌÕÊÓÔÁ,\n"
-	"          ÏÔÒÅÄÁËÔÉÒÕÊÔÅ Å£ É ÕÂÅÒÉÔÅ ÜÔÉ ÓÉÍ×ÏÌÙ ÉÌÉ ÉÚÍÅÎÉÔÅ × M)ÅÎÀ\n"
-	"          ÚÎÁÞÅÎÉÅ MM_NETWORK_CHARSET ÎÁ ÐÏÄÈÏÄÑÝÅÅ.\n"
-
-#: src/lang.c:839
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"  -D       ÒÅÖÉÍ ÏÔÌÁÄËÉ 1=NNTP 2=÷ó³"
-
-#: src/lang.c:843
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"ðÒÏÞÉÔÁÊÔÅ ×ÎÉÍÁÔÅÌØÎÏ!\n"
-	"\n"
-	"  ÷Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ ÓÔÁÔØÀ, ÎÁÐÉÓÁÎÎÕÀ ÓËÏÒÅÅ ×ÓÅÇÏ ÎÅ ×ÁÍÉ. üÔÏ ÕÎÉÞÔÏÖÉÔ\n"
-	"  ÓÔÁÔØÀ Ó ÂÏÌØÛÉÎÓÔ×Á ÓÅÒ×ÅÒÏ× ÐÏ ×ÓÅÍÕ ÍÉÒÕ; ÂÏÌØÛÉÎÓÔ×Ï × Usenet\n"
-	"  ÒÁÓÓÍÁÔÒÉ×ÁÅÔ ÔÁËÏÅ ÄÅÊÓÔ×ÉÅ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÎÅÕÍÅÓÔÎÙÍ.\n"
-	"  îÁÖÍÉÔÅ 'd' ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ×Ù ÇÏÔÏ×Ù ÄÌÑ ÐÏÌÕÞÅÎÉÑ\n"
-	"  ÏÔÒÉÃÁÔÅÌØÎÏÊ ÒÅÁËÃÉÉ (ÒÅÚËÉÈ ÏÔ×ÅÔÏ×) ÎÁ ×ÁÛÉ ÄÅÊÓÔ×ÉÑ.\n"
-	"\n"
-	"÷ÏÔ ÓÔÁÔØÑ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ:\n"
-	"\n"
+msgid   "\n"
+        "Stopped. Type 'fg' to restart %s\n"
+msgstr  "\n"
+        "ïÓÔÁÎÏ×ÌÅÎÏ. îÁÂÅÒÉÔÅ 'fg' ÄÌÑ ÐÅÒÅÚÁÐÕÓËÁ %s\n"
+
+#: src/lang.c:831
+#, c-format
+msgid   "%d days"
+msgstr  "%d ÄÎÅÊ"
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  "<ôáâ>"
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  ""
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  ""
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  ""
+
+#: src/lang.c:848
+msgid   "# If ON use print current subject or newsgroup description in the last line\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ ÔÅËÕÝÕÀ ÔÅÍÕ ÉÌÉ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ × ÐÏÓÌÅÄÎÅÊ ÓÔÒÏËÅ\n"
+
+#: src/lang.c:849
+msgid   "# Host & time info used for detecting new groups (don't touch)\n"
+msgstr  "# éÎÆÏÒÍÁÃÉÑ Ï ÈÏÓÔÅ É ×ÒÅÍÅÎÉ, ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÏÐÒÅÄÅÌÅÎÉÑ\n"
+        "# ÎÏ×ÙÈ ÇÒÕÐÐ (ÎÅ ÉÚÍÅÎÑÔØ)\n"
+
+#: src/lang.c:850
+msgid   "There is no news\n"
+msgstr  "îÅÔ ÎÏ×ÏÓÔÅÊ\n"
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  "äÉÓËÕÓÓÉÑ"
 
 #: src/lang.c:852
-msgid	"toggle color"
-msgstr	"ÉÚÍÅÎÉÔØ Ã×ÅÔ"
+msgid   "Thread Level Commands"
+msgstr  "ëÏÍÁÎÄÙ ÕÒÏ×ÎÑ ÄÉÓËÕÓÓÉÊ"
 
 #: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	"# éÚÍÅÎÅÎÉÅ Ã×ÅÔÏ× ÄÌÑ ÒÁÚÌÉÞÎÙÈ ÞÁÓÔÅÊ ÜËÒÁÎÁ\n"
-	"# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ:\n"
-	"#  -1 = ÐÏ ÕÍÏÌÞÁÎÉÀ (ÂÅÌÙÊ ÄÌÑ ÓÉÍ×ÏÌÏ× É Þ£ÒÎÙÊ ÄÌÑ ÆÏÎÁ)\n"
-	"#   0 = Þ£ÒÎÙÊ\n"
-	"#   1 = ËÒÁÓÎÙÊ\n"
-	"#   2 = ÚÅÌ£ÎÙÊ\n"
-	"#   3 = ËÏÒÉÞÎÅ×ÙÊ\n"
-	"#   4 = ÓÉÎÉÊ\n"
-	"#   5 = ÒÏÚÏ×ÙÊ\n"
-	"#   6 = ÇÏÌÕÂÏÊ\n"
-	"#   7 = ÂÅÌÙÊ\n"
-	"# üÔÉ Ã×ÅÔÁ *ÔÏÌØËÏ* ÄÌÑ ÓÉÍ×ÏÌÏ×:\n"
-	"#   8 = ÓÅÒÙÊ\n"
-	"#   9 = Ó×ÅÔÌÏ-ËÒÁÓÎÙÊ\n"
-	"#  10 = Ó×ÅÔÌÏ-ÚÅÌ£ÎÙÊ\n"
-	"#  11 = Ö£ÌÔÙÊ\n"
-	"#  12 = Ó×ÅÔÌÏ-ÓÉÎÉÊ\n"
-	"#  13 = Ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ\n"
-	"#  14 = Ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ\n"
-	"#  15 = Ó×ÅÔÌÏ-ÂÅÌÙÊ\n"
-	"\n"
+msgid   "Thread deselected"
+msgstr  "ó ÄÉÓËÕÓÓÉÉ ÓÎÑÔÁ ÏÔÍÅÔËÁ"
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  "äÉÓËÕÓÓÉÑ ×ÙÂÒÁÎÁ"
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  "ÄÉÓËÕÓÓÉÉ"
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  "ÄÉÓËÕÓÓÉÑ"
+
+#: src/lang.c:859
+#, c-format
+msgid   "Thread %4s of %4s"
+msgstr  "äÉÓËÕÓÓÉÑ %4s ÉÚ %4s"
+
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  "òÁÚÂÏÒ ÄÉÓËÕÓÓÉÊ..."
+
+#: src/lang.c:861
+#, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  "ðÅÒÅËÌÀÞÅÎÉÅ ÐÏÄÓ×ÅÔËÉ ÓÌÏ× %s"
+
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  "ðÅÒÅËÌÀÞÅÎÉÅ ËÏÄÉÒÏ×ËÉ rot13"
+
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  "ðÅÒÅËÌÀÞÅÎÉÅ ÎÅÍÅÃËÏÊ TeX ËÏÄÉÒÏ×ËÉ %s"
+
+#: src/lang.c:864
+#, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  "ðÅÒÅËÌÀÞÅÎÉÅ ÛÉÒÉÎÙ ÔÁÂÕÌÑÃÉÉ ÎÁ %d"
+
+#: src/lang.c:866
+#, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  "%d ÐÏÐÙÔËÁ dotlock %s"
+
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  "%d ðÏÐÙÔËÁ ÚÁÂÌÏËÉÒÏ×ÁÔØ %s"
+
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  "           h=ÐÏÍÏÝØ"
+
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  "îÅÏÇÒÁÎÉÞÅÎ"
+
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  "÷×ÅÄÉÔÅ ÛÁÂÌÏÎ ÄÌÑ ÏÔÐÉÓÙ×ÁÎÉÑ> "
 
 #: src/lang.c:873
-msgid	"  -a       toggle color flag"
-msgstr	"  -a       ÉÚÍÅÎÉÔØ Ã×ÅÔ"
+#, c-format
+msgid   "Error decoding %s : %s"
+msgstr  "ïÛÉÂËÁ ÒÁÓËÏÄÉÒÏ×ÁÎÉÑ %s : %s"
+
+#: src/lang.c:874
+msgid   "No end."
+msgstr  "îÅÔ ËÏÎÃÁ."
+
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s ÕÓÐÅÛÎÏ ÒÁÓËÏÄÉÒÏ×ÁÎ."
+
+#: src/lang.c:876
+#, 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:877
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n"
+msgid   "unread "
+msgstr  "ÎÅÐÒÏÞÉÔÁÎÏ "
 
 #: src/lang.c:878
 #, c-format
-msgid	"\n"
-	"Error: cross-posting to %d newsgroups and no Followup-To line!\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: ËÒÏÓÓ-ÐÏÓÔÉÎÇÁ × %d ÇÒÕÐÐÙ ÂÅÚ Followup-To ÓÔÒÏËÉ!\n"
+msgid   "unsubscribed from %d groups"
+msgstr  "ÏÔÐÉÓÁÌÉÓØ ÏÔ %d ÇÒÕÐÐ"
 
 #: src/lang.c:879
 #, c-format
-msgid	"\n"
-	"Error: \"%s\" is not a valid newsgroup!\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÇÒÕÐÐÁ!\n"
+msgid   "Unsubscribed from %s"
+msgstr  "ïÔÐÉÓÁÌÉÓØ ÏÔ %s"
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  "ïÔÐÉÓÙ×ÁÅÍÓÑ... "
 
 #: src/lang.c:881
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n"
+msgid   "Unthreading articles..."
+msgstr  "òÁÚÇÒÕÐÐÉÒÏ×ËÁ ÄÉÓËÕÓÓÉÊ..."
 
 #: src/lang.c:882
-#, 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
-#, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: \"%s\" ÎÅ × newsrc É ÍÏÖÅÔ ÂÙÔØ ÏÛÉÂÏÞÎÁ ÎÁ ÜÔÏÍ ÍÅÓÔÅ!\n"
+msgid   "Updated"
+msgstr  "ïÂÎÏ×ÌÅÎÏ"
 
 #: src/lang.c:884
 #, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not a valid newsgroup at this site!\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÎÁ ÜÔÏÍ ÍÅÓÔÅ ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ!\n"
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  ""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  "ïÂÎÏ×ÌÅÎÉÅ"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  ""
 
 #: src/lang.c:888
-#, c-format
-msgid	"%d files successfully written from %d articles. %d %s occurred."
-msgstr	"%d ÆÁÊÌÏ× ÕÓÐÅÛÎÏ ÚÁÐÉÓÁÎÙ ÉÚ %d ÓÔÁÔÅÊ. %d %s."
+#, fuzzy
+msgid   "URL Menu Commands"
+msgstr  "ëÏÍÁÎÄÙ ×ÅÒÈÎÅÇÏ ÕÒÏ×ÎÑ"
 
 #: src/lang.c:889
-msgid	"Missing parts."
-msgstr	"ðÒÏÐÕÝÅÎÙ ÞÁÓÔÉ."
+#, fuzzy, c-format
+msgid   "Opening %s"
+msgstr  "ïÔËÒÙÔÉÅ %s\n"
 
 #: src/lang.c:890
-msgid	"No beginning."
-msgstr	"îÅÔ ÎÁÞÁÌÁ."
+#, fuzzy
+msgid   "Select URL> "
+msgstr  "÷ÙÂÅÒÉÔÅ ÇÒÕÐÐÕ> "
 
 #: src/lang.c:891
-msgid	"No data."
-msgstr	"îÅÔ ÄÁÎÎÙÈ."
+#, fuzzy
+msgid   "No URLs in this article"
+msgstr  "îÅÔ ÂÏÌØÛÅ URL × ÓÔÁÔØÅ"
 
 #: src/lang.c:892
-msgid	"Unknown error."
-msgstr	"îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ."
+msgid   "Use MIME display program for this message?"
+msgstr  "÷ÙÚ×ÁÔØ ÐÒÏÇÒÁÍÍÕ, ÐÏËÁÚÙ×ÁÀÝÕÀ MIME ÄÌÑ ÓÔÁÔØÉ?"
+
+#: src/lang.c:893
+msgid   "  -c       mark all news as read in subscribed newsgroups (batch mode)"
+msgstr  "  -c       ÏÔÍÅÔÉÔØ ×ÓÅ ÎÏ×ÏÓÔÉ ËÁË ÐÒÏÞ. × ÐÏÄÐÉÓ. ÇÒÕÐÐÁÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
+
+#: src/lang.c:894
+msgid   "  -Z       return status indicating if any unread news (batch mode)"
+msgstr  "  -Z       ×ÏÚ×ÒÁÔ ÓÔÁÔÕÓÁ Ï ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÎÏ×ÏÓÔÑÈ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
 
 #: src/lang.c:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  "  -q       ÎÅ ÐÒÏ×ÅÒÑÔØ ÐÏÑ×ÌÅÎÉÑ ÎÏ×ÙÈ ÇÒÕÐÐ ÎÏ×ÏÓÔÅÊ"
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  "  -X       ÎÅ ÓÏÈÒÁÎÑÔØ ÆÁÊÌÙ ÐÒÉ ×ÙÈÏÄÅ"
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  "  -d       ÎÅ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÑ ÇÒÕÐÐ"
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  "  -G limit ÐÏÌÕÞÉÔØ ÔÏÌØËÏ limit ÓÔÁÔÅÊ/ÇÒÕÐÐ"
+
+#: src/lang.c:899
 #, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"\tëÏÎÔÒÏÌØÎÁÑ ÓÕÍÍÁ %s (%ld %s)"
+msgid   "  -H       help information about %s"
+msgstr  "  -H       ÐÏÄÓËÁÚËÁ Ï %s"
 
 #: src/lang.c:900
-msgid	"Reading mail active file... "
-msgstr	""
+msgid   "  -h       this help message"
+msgstr  "  -h       ÜÔÁ ÐÏÄÓËÁÚËÁ"
 
 #: src/lang.c:901
-msgid	"Reading mailgroups file... "
-msgstr	"þÔÅÎÉÅ ÆÁÊÌÁ mailgroups... "
+#, c-format
+msgid   "  -I dir   news index file directory [default=%s]"
+msgstr  "  -I dir   ÄÉÒÅËÔÏÒÉÑ ÉÎÄÅËÓÎÏÇÏ ÆÁÊÌÁ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+
+#: src/lang.c:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  "  -u       ÏÂÎÏ×ÉÔØ ÉÎÄÅËÓÎÙÅ ÆÁÊÌÙ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  "  -m dir   ÄÉÒÅËÔÏÒÉÑ mailbox [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "ïÔÐÒÁ×ÌÑÊÔÅ ÏÛÉÂËÉ/ËÏÍÍÅÎÔÁÒÉÉ %s"
 
 #: src/lang.c:905
-msgid	"perform PGP operations on article"
-msgstr	"×ÙÐÏÌÎÉÔØ PGP ÏÐÅÒÁÃÉÉ ÓÏ ÓÔÁÔØÅÊ"
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  "  -N       ÏÔÐÒÁ×ÌÑÔØ ÐÏ email ÎÏ×ÙÅ ÓÔÁÔØÉ ÎÁ ×ÁÛÉ ÓÏÏÂÝÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
 
 #: src/lang.c:906
-msgid	"Add key(s) to public keyring?"
-msgstr	"äÏÂÁ×ÉÔØ ËÌÀÞ(É) Ë ÏÔËÒÙÔÙÍ ËÌÀÞÁÍ?"
+msgid   "  -M user  mail new news to specified user (batch mode)"
+msgstr  "  -M user  ÏÔÐÒÁ×ÌÑÔØ ÐÏ email ÎÏ×ÙÅ ÓÔÁÔØÉ ÕËÁÚÁÎÎÏÍÕ ÐÏÌØÚÏ×ÁÔÅÌÀ (ÐÁËÅÔÎÙÊ "
+        "ÒÅÖÉÍ)"
 
 #: src/lang.c:907
 #, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	"%s=ÛÉÆÒÏ×ÁÔØ, %s=ÐÏÄÐÉÓÁÔØ, %s=ÏÂÁ, %s=×ÙÈÏÄ: "
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  "  -f file  ÆÁÊÌ ÐÏÄÐÉÓËÉ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
 
 #: src/lang.c:908
-#, c-format
-msgid	"%s=sign, %s=sign & include public key, %s=quit: "
-msgstr	"%s=ÛÉÆÒÏ×ÁÔØ, %s=ÐÏÄÐÉÓÁÔØ É ×ÌÏÖÉÔØ ÏÔËÒÙÔÙÊ ËÌÀÞ, %s=×ÙÈÏÄ: "
+msgid   "  -x       no posting mode"
+msgstr  "  -x       ÒÅÖÉÍ ÚÁÐÒÅÔ ÏÔÐÒÁ×ÌÅÎÉÑ"
 
 #: src/lang.c:909
-#, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	"PGP ÎÅ ÕÓÔÁÎÏ×ÌÅÎ (ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ %s)"
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       ÏÔÐÒÁ×ÉÔØ ÓÔÁÔØÀ É ×ÙÊÔÉ"
 
 #: src/lang.c:910
-msgid	"Article not signed and no public keys found"
-msgstr	"óÔÁÔØÑ ÎÅ ÐÏÄÐÉÓÁÎÁ É ÏÔËÒÙÔÙÊ ËÌÀÞ ÎÅ ÎÁÊÄÅÎ"
+msgid   "  -o       post all postponed articles and exit"
+msgstr  "  -o       ÏÔÐÒÁ×ÉÔØ ×ÓÅ ÏÔÌÏÖÅÎÎÙÅ ÓÔÁÔØÉ É ×ÙÊÔÉ"
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  "  -R       ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ, ÓÏÈÒÁÎ£ÎÎÙÅ ÏÐÃÉÅÊ -S"
 
 #: src/lang.c:912
 #, 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=ÏÔÌÏÖÉÔØ: "
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  "  -s dir   ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÎÏ×ÏÓÔÅÊ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
 
 #: src/lang.c:913
-#, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=pgp, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
+msgid   "  -S       save new news for later reading (batch mode)"
+msgstr  "  -S       ÓÏÈÒÁÎÑÔØ ÎÏ×ÏÓÔÉ ÄÌÑ ÐÏÓÌÅÄÕÀÝÅÇÏ ÐÒÏÞÔÅÎÉÑ (ÐÁËÅÔÎÙÊ ÒÅÖÉÍ)"
 
 #: src/lang.c:914
+msgid   "  -z       start if any unread news"
+msgstr  "  -z       ÚÁÐÕÓÔÉÔØ ÅÓÌÉ ÅÓÔØ ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÎÏ×ÏÓÔÉ"
+
+#: src/lang.c:915
 #, 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]: "
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  "ðÒÏÇÒÁÍÍÁ ÞÔÅÎÉÑ ÎÏ×ÏÓÔÅÊ Usenet.\n"
+        "\n"
+        "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ÏÐÃÉÉ] [ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ[,...]]"
 
 #: src/lang.c:916
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔ., %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ: "
+msgid   "  -v       verbose output for batch mode options"
+msgstr  "  -v       ÄÅÔÁÌØÎÙÊ ×Ù×ÏÄ ÄÌÑ ÏÐÃÉÊ ÐÁËÅÔÎÏÇÏ ÒÅÖÉÍÁ"
 
 #: src/lang.c:917
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=pgp, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
+msgid   "  -V       print version & date information"
+msgstr  "  -V       ×Ù×ÅÓÔÉ ×ÅÒÓÉÀ É ÄÁÔÕ"
 
 #: src/lang.c:918
 #, 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]: "
+msgid   "%s only useful without batch mode operations\n"
+msgstr  "%s ÏÐÃÉÑ ÐÏÌÅÚÎÁ ÔÏÌØËÏ ÂÅÚ ÐÁËÅÔÎÏÇÏ ÒÅÖÉÍÁ\n"
+
+#: src/lang.c:919
+#, c-format
+msgid   "%s only useful for batch mode operations\n"
+msgstr  "%s ÏÐÃÉÑ ÐÏÌÅÚÎÁ ÔÏÌØËÏ × ÐÁËÅÔÎÏÍ ÒÅÖÉÍÅ\n"
+
+#: src/lang.c:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  ""
 
 #: src/lang.c:922
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ: "
+msgid   "\n"
+        "%s%d out of range (0 - %d). Reset to 0"
+msgstr  "\n"
+        "%s%d ×ÎÅ ÄÉÁÐÁÚÏÎÁ (0 - %d). óÂÒÏÓ × 0"
 
 #: src/lang.c:923
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
+msgid   "View '%s' (%s/%s)?"
+msgstr  "ðÒÏÓÍÏÔÒ '%s' (%s/%s)?"
 
-#: src/lang.c:924
+#: src/lang.c:925
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: "
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÓÏÏÂÝÅÎÉÅ ÐÒÅ×ÙÓÉÌÏ %d ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ.\n"
+        "óÔÒÏËÁ %d - ÐÅÒ×ÁÑ ÄÌÉÎÎÁÑ ÓÔÒÏËÁ:\n"
+        "%-100s\n"
 
 #: src/lang.c:926
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ: "
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÓÔÁÔØÑ ÎÅ ÉÚÍÅÎÉÌÁÓØ ÐÏÓÌÅ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ\n"
 
 #: src/lang.c:927
-#, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: \"Subject:\" ÓÏÄÅÒÖÉÔ ÏÄÎÉ ÐÒÏÂÅÌÙ.\n"
 
 #: src/lang.c:928
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	"%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: "
+msgid   "\n"
+        "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
+msgstr  "\n"
+        "ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: \"Subject:\" ÎÁÞÉÎÁÅÔÓÑ Ó  \"Re: \" ÎÏ ÎÅÔ \"References:\".\n"
+
+#: src/lang.c:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: × ÓÔÁÔØÅ ÅÓÔØ \"References:\" ÎÏ \"Subject:\"\n"
+        "          ÎÅ ÎÁÞÉÎÁÅÔÓÑ Ó \"Re: \" É ÎÅ ÓÏÄÅÒÖÉÔ \"(was:\".\n"
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "ðÒÏÞÉÔÁÊÔÅ ×ÎÉÍÁÔÅÌØÎÏ!\n"
+        "\n"
+        "  ÷Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ ÓÔÁÔØÀ, ÎÁÐÉÓÁÎÎÕÀ ÓËÏÒÅÅ ×ÓÅÇÏ ×ÁÍÉ. üÔÏ ÕÎÉÞÔÏÖÉÔ\n"
+        "  ÓÔÁÔØÀ Ó ÂÏÌØÛÉÎÓÔ×Á ÓÅÒ×ÅÒÏ× ÐÏ ×ÓÅÍÕ ÍÉÒÕ, ÎÏ ÎÅ ÓÕÝÅÓÔ×ÕÅÔ ÇÁÒÁÎÔÉÉ,\n"
+        "  ÞÔÏ ÜÔÏ ÂÕÄÅÔ ÓÒÁÂÏÔÁÅÔ.\n"
+        "\n"
+        "÷ÏÔ ÓÔÁÔØÑ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ:\n"
+        "\n"
 
 #: src/lang.c:937
-msgid	"Try cache_overview_files to speed up things.\n"
-msgstr	"ðÏÐÒÏÂÕÊÔÅ cache_overview_files ÄÌÑ ÕÓËÏÒÅÎÉÑ.\n"
-
-#: src/lang.c:938
-msgid	"Tin will use local index files instead.\n"
-msgstr	"Tin ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÁÊÌÙ ÌÏËÁÌØÎÏÇÏ ÉÎÄÅËÓÁ.\n"
-
-#: src/lang.c:939
-msgid	"Cannot find NNTP server name"
-msgstr	"îÅ ÍÏÇÕ ÎÁÊÔÉ ÉÍÑ NNTP ÓÅÒ×ÅÒÁ"
-
-#: src/lang.c:940
-#, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"óÏÅÄÉÎÅÎÉÅ Ó %s:%d..."
-
-#: src/lang.c:941
-msgid	"Disconnecting from server...\n"
-msgstr	"ïÔÓÏÅÄÉÎÅÎÉÅ ÏÔ ÓÅÒ×ÅÒÁ...\n"
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÷Ù ÉÓÐÏÌØÚÕÅÔÅ ËÏÄÉÒÏ×ÁÎÉÅ ÓÏÏÂÝÅÎÉÑ (base64 ÉÌÉ quoted-printable)\n"
+        "          É ×ÎÅÛÎÀÀ inews ÐÒÏÇÒÁÍÍÕ ÄÌÑ ÏÔÐÒÁ×ËÉ ÎÏ×ÏÓÔÅÊ. åÓÌÉ ÐÏÄÐÉÓØ "
+        "ÂÕÄÅÔ\n"
+        "          ÄÏÂÁ×ÌÅÎÁ ÜÔÏÊ ÐÒÏÇÒÁÍÍÏÊ, ÏÎÁ ÎÅ ÂÕÄÅÔ ËÏÒÒÅËÔÎÏ ÚÁËÏÄÉÒÏ×ÁÎÁ.\n"
 
 #: src/lang.c:942
-#, c-format
-msgid	"Wrong newsgroup name in response of GROUP command, %s for %s"
-msgstr	"îÅÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÇÒÕÐÐÙ × ÏÔ×ÅÔÅ ÎÁ ËÏÍÁÎÄÕ GROUP, %s ÄÌÑ %s"
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  ""
 
 #: src/lang.c:943
 #, c-format
-msgid	"Failed to connect to NNTP server %s. Exiting..."
-msgstr	"îÅ ÕÄÁÌÏÓØ ÓÏÅÄÉÎÉÔØÓÑ Ó NNTP ÓÅÒ×ÅÒÏÍ %s. ÷ÙÈÏÄ..."
-
-#: src/lang.c:944
-msgid	"205  Closing connection"
-msgstr	"205  úÁËÒÙÔÉÅ ÓÏÅÄÉÎÅÎÉÑ"
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  "\n"
+        "\n"
+        "÷Ù ÏÂÎÏ×ÌÑÅÔÅÓØ ÄÏ tin %s Ó ÐÒÅÄÙÄÕÝÅÊ ×ÅÒÓÉÉ.\n"
+        "îÅËÏÔÏÒÙÅ ÚÎÁÞÅÎÉÑ × ×ÁÛÅÍ %s ÆÁÊÌÅ ÉÚÍÅÎÉÌÉÓØ!\n"
+        "ðÒÏÞÉÔÁÊÔÅ WHATSNEW, É Ô.Ä...\n"
 
 #: src/lang.c:945
-msgid	"Your server does not support the NNTP XOVER or OVER command.\n"
-msgstr	"óÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ NNTP XOVER ÉÌÉ OVER ËÏÍÁÎÄÙ.\n"
-
-#: src/lang.c:946
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	"÷ÒÅÍÑ ÓÏÅÄÉÎÅÎÉÑ Ë ÓÅÒ×ÅÒÕ ÐÒÅ×ÙÓÉÌÏ ÌÉÍÉÔ. ðÏÄËÌÀÞÉÔØÓÑ ÅÝ£ ÒÁÚ?"
-
-#: src/lang.c:947
-#, 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
-msgid	"  -A       force authentication on connect"
-msgstr	"  -A       ÐÒÉÎÕÄÉÔÅÌØÎÁÑ ÁÕÔÅÎÔÉÆÉËÁÃÉÑ ÐÒÉ ÓÏÅÄÉÎÅÎÉÉ"
-
-#: src/lang.c:949
 #, c-format
-msgid	"  -g serv  read news from NNTP server serv [default=%s]"
-msgstr	"  -g serv  ÞÔÅÎÉÅ ÎÏ×ÏÓÔÅÊ Ó NNTP ÓÅÒ×ÅÒÁ serv [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  "\n"
+        "\n"
+        "÷Ù ÉÓÐÏÌØÚÕÅÔÅ ÂÏÌÅÅ ÓÔÁÒÕÀ ×ÅÒÓÉÀ tin %s!\n"
+        "îÅËÏÔÏÒÙÅ ÚÎÁÞÅÎÉÅÑ × ÆÁÊÌÅ %s ÍÏÇÕÔ ÂÙÔØ ÐÒÏÉÇÎÏÒÉÒÏ×ÁÎÙ,\n"
+        "ÄÒÕÇÉÅ ÍÏÇÌÉ ÂÙÔØ ÉÚÍÅÎÅÎÙ!\n"
 
-#: src/lang.c:950
+#: src/lang.c:948
 #, c-format
-msgid	"  -p port  use port as NNTP port [default=%d]"
-msgstr	"  -p port  ÉÓÐÏÌØÚÏ×ÁÔØ port ËÁË NNTP ÐÏÒÔ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%d]"
-
-#: src/lang.c:951
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"  -Q       ÂÙÓÔÒÙÊ ÚÁÐÕÓË. ëÁË Ó ÏÐÃÉÑÍÉ -nqd"
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  ""
 
 #: src/lang.c:952
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	"  -l       ÉÓÐÏÌØÚÏ×ÁÔØ LIST ×ÍÅÓÔÏ ËÏÍÁÎÄÙ GROUP (-n)"
+#, c-format
+msgid   "\n"
+        "Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÏÂÎÁÒÕÖÅÎÏ %d '-- \\n' ÓÔÒÏË, ÜÔÏ ÍÏÖÅÔ ÕÄÉ×ÉÔØ ÎÅËÏÔÏÒÙÈ "
+        "ÐÏÌØÚÏ×ÁÔÅÌÅÊ.\n"
 
 #: src/lang.c:953
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	"  -n       ÞÉÔÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ .newsrc ÇÒÕÐÐÙ Ó NNTP ÓÅÒ×ÅÒÁ"
+#, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  "÷ÎÉÍÁÎÉÅ: óÏÈÒÁÎÅÎÙ ÔÏÌØËÏ %d ÉÚ %d ÓÔÁÔÅÊ"
 
-#: src/lang.c:955
+#: src/lang.c:954
 #, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/tcp: îÅÉÚ×ÅÓÔÎÙÊ ÓÅÒ×ÉÓ.\n"
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÷ÁÛÁ ÐÏÄÐÉÓØ ÄÌÉÎÎÅÅ %d ÓÔÒÏË. ôÁË ËÁË ÐÏÄÐÉÓÉ ÏÂÙÞÎÏ ÎÅ ÐÅÒÅÄÁÀÔ\n"
+        "          ÐÏÌÅÚÎÕÀ ÉÎÆÏÒÍÁÃÉÀ, ÏÎÉ ÄÏÌÖÎÙ ÂÙÔØ ËÏÒÏÔËÉÍÉ ÎÁÓÔÏÌØËÏ,\n"
+        "          ÎÁÓËÏÌØËÏ ÜÔÏ ×ÏÚÍÏÖÎÏ.\n"
 
 #: src/lang.c:958
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	"\n"
-	"ÐÒÏÂÌÅÍÁ Ó ÓÏËÅÔÏÍ ÉÌÉ Ó ÓÏÅÄÉÎÅÎÉÅÍ\n"
-
-#: src/lang.c:960
 #, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"\n"
-	"óÏÅÄÉÎÅÎÉÅ Ó %s: "
-
-#: src/lang.c:961
-msgid	"Giving up...\n"
-msgstr	"ðÒÅËÒÁÝÁÅÍ...\n"
+msgid   "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
+msgstr  "÷ÎÉÍÁÎÉÅ: ÁÄÒÅÓ email ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ spamtrap. %s=ÐÒÏÄÏÌÖÉÔØ, %s=ÓÔÏÐ? "
 
-#: src/lang.c:964
-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:959
+msgid   "\n"
+        "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: óÉÇÎÁÔÕÒÙ ÄÏÌÖÎÙ ÎÁÞÉÎÁÔØÓÑ Ó '-- \\n' ÎÅ Ó '--\\n'.\n"
 
-#: src/lang.c:967
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	"óÅÒ×ÅÒ ÎÅ ÓÏÄÅÒÖÉÔ Xref: × XOVER.\n"
+#: src/lang.c:960
+msgid   "Writing attributes file..."
+msgstr  "úÁÐÉÓØ ÆÁÊÌÁ ÁÔÒÉÂÕÔÏ×..."
 
-#: src/lang.c:970
+#: src/lang.c:962
 #, 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
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"  -Q       ÂÙÓÔÒÙÊ ÚÁÐÕÓË. ôÏ ÖÅ ÓÁÍÏÅ ËÁË Ó ÏÐÃÉÑÍÉ -qd"
-
-#: src/lang.c:974
-msgid	"  -l       read only active file instead of scanning spool (-n) command"
-msgstr	"  -l       ÞÉÔÁÔØ ÔÏÌØËÏ ÆÁÊÌ active ×ÍÅÓÔÏ ÓËÁÎÉÒÏ×ÁÎÉÑ spool (-n) ËÏÍÁÎÄÙ"
-
-#: src/lang.c:975
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	"  -n       ÞÉÔÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ .newsrc ÇÒÕÐÐÙ ÉÚ spool"
-
-#: src/lang.c:976
-msgid	"Your server does not have Xref: in its NOV-files.\n"
-msgstr	"÷ÁÛ ÓÅÒ×ÅÒ ÎÅ ÉÍÅÅÔ Xref: × NOV-ÆÁÊÌÁÈ.\n"
-
-#: src/lang.c:980
-msgid	"Posting using external inews failed. Use built in inews instead?"
-msgstr	"ïÔÐÒÁ×ÌÅÎÉÅ Ó ×ÎÅÛÎÉÍ inews ÐÒÏ×ÁÌÉÌÏÓØ. éÓÐÏÌØÚÏ×ÁÔØ ×ÓÔÒÏÅÎÎÙÊ inews"
+msgid   "%d Responses"
+msgstr  "%d ÏÔ×ÅÔÏ×"
 
-#: src/lang.c:981
-msgid	"It worked! Should I always use my built in inews from now on?"
-msgstr	"úÁÒÁÂÏÔÁÌÏ! éÓÐÏÌØÚÏ×ÁÔØ ×ÓÅÇÄÁ ÓÄÅÌÁÎÎÙÊ inews?"
-
-#: src/lang.c:989
+#: src/lang.c:964
 #, c-format
-msgid	"%d %s printed"
-msgstr	"%d %s ÎÁÐÅÞÁÔÁÎÏ"
+msgid   "Added %d %s"
+msgstr  "äÏÂÁ×ÌÅÎÏ %d %s"
 
-#: src/lang.c:990
-msgid	"output article/thread/hot/pattern/tagged articles to printer"
-msgstr	"×Ù×ÏÄ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ/hot/ÛÁÂÌÏÎÁ/ÐÏÍÅÞÅÎÎÙÈ ÓÔÁÔÅÊ ÎÁ ÐÅÞÁÔØ"
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  "îÅÔ ÏÔÐÉÓÁÎÎÙÈ ÇÒÕÐÐ ÄÌÑ ×Ù×ÏÄÁ"
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  "ðÏËÁÚ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÈ ÎÁ ÇÒÕÐÐÕ"
 
-#: src/lang.c:991
-msgid	"Print"
-msgstr	"ðÅÞÁÔØ"
+#: src/lang.c:967
+msgid   "Yes "
+msgstr  "äÁ "
 
-#: src/lang.c:992
-msgid	"Printing..."
-msgstr	"ðÅÞÁÔÁÀ..."
+#: src/lang.c:968
+msgid   "    You have mail"
+msgstr  "    îÏ×ÁÑ ÐÏÞÔÁ"
 
-#: src/lang.c:996
-msgid	"pipe article/thread/hot/pattern/tagged articles into command"
-msgstr	"pipe ÓÔÁÔØÀ/ÄÉÓËÕÓÓÉÀ/hot/ÛÁÂÌÏÎ/ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ËÏÍÁÎÄÕ"
+#: src/lang.c:973
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ïÔÐÒÁ×ËÁ × %s ÓÏÄÅÒÖÉÔ ÓÉÍ×ÏÌÙ, ËÏÔÏÒÙÅ ÎÅ ÐÒÉÓÕÔÓÔ×ÕÀÔ ×\n"
+        "          ×ÙÂÒÁÎÎÏÍ MM_NETWORK_CHARSET: %s.\n"
+        "          üÔÉ ÓÉÍ×ÏÌÙ ÂÕÄÕÔ ÚÁÍÅÎÅÎÙ ÎÁ '?', ÅÓÌÉ ×Ù ÏÔÐÒÁ×ÉÔÅ ÜÔÕ ÓÔÁÔØÀ\n"
+        "          ÂÅÚ ÉÚÍÅÎÅÎÉÊ. þÔÏÂÙ ÉÚÂÅÖÁÔØ ÉÓËÁÖÅÎÉÑ ×ÁÛÉÈ ÓÔÁÔÅÊ, ÐÏÖÁÌÕÊÓÔÁ,\n"
+        "          ÏÔÒÅÄÁËÔÉÒÕÊÔÅ Å£ É ÕÂÅÒÉÔÅ ÜÔÉ ÓÉÍ×ÏÌÙ ÉÌÉ ÉÚÍÅÎÉÔÅ × M)ÅÎÀ\n"
+        "          ÚÎÁÞÅÎÉÅ MM_NETWORK_CHARSET ÎÁ ÐÏÄÈÏÄÑÝÅÅ.\n"
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  ""
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "ðÒÏÞÉÔÁÊÔÅ ×ÎÉÍÁÔÅÌØÎÏ!\n"
+        "\n"
+        "  ÷Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ ÓÔÁÔØÀ, ÎÁÐÉÓÁÎÎÕÀ ÓËÏÒÅÅ ×ÓÅÇÏ ÎÅ ×ÁÍÉ. üÔÏ ÕÎÉÞÔÏÖÉÔ\n"
+        "  ÓÔÁÔØÀ Ó ÂÏÌØÛÉÎÓÔ×Á ÓÅÒ×ÅÒÏ× ÐÏ ×ÓÅÍÕ ÍÉÒÕ; ÂÏÌØÛÉÎÓÔ×Ï × Usenet\n"
+        "  ÒÁÓÓÍÁÔÒÉ×ÁÅÔ ÔÁËÏÅ ÄÅÊÓÔ×ÉÅ ÐÏ ËÒÁÊÎÅÊ ÍÅÒÅ ÎÅÕÍÅÓÔÎÙÍ.\n"
+        "  îÁÖÍÉÔÅ 'd' ÔÏÌØËÏ × ÔÏÍ ÓÌÕÞÁÅ, ÅÓÌÉ ×Ù ÇÏÔÏ×Ù ÄÌÑ ÐÏÌÕÞÅÎÉÑ\n"
+        "  ÏÔÒÉÃÁÔÅÌØÎÏÊ ÒÅÁËÃÉÉ (ÒÅÚËÉÈ ÏÔ×ÅÔÏ×) ÎÁ ×ÁÛÉ ÄÅÊÓÔ×ÉÑ.\n"
+        "\n"
+        "÷ÏÔ ÓÔÁÔØÑ, ËÏÔÏÒÕÀ ×Ù ÈÏÔÉÔÅ ÏÔÍÅÎÉÔØ:\n"
+        "\n"
 
 #: src/lang.c:997
-msgid	"No command"
-msgstr	"îÅÔ ËÏÍÁÎÄÙ"
+msgid   "toggle color"
+msgstr  "ÉÚÍÅÎÉÔØ Ã×ÅÔ"
 
 #: src/lang.c:998
-msgid	"Pipe"
-msgstr	""
-
-#: src/lang.c:999
-#, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Pipe × ËÏÍÁÎÄÕ [%.*s]> "
-
-#: src/lang.c:1000
-msgid	"Piping..."
-msgstr	""
-
-#: src/lang.c:1002
-msgid	"Piping not enabled."
-msgstr	"Piping ÎÅ ×ËÌÀÞÅÎ."
-
-#: src/lang.c:1006
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: ÓÔÒÏËÁ \"%s:\" ÓÏÄÅÒÖÉÔ ÐÒÏÂÅÌÙ, ËÏÔÏÒÙÅ äïìöîù ÂÙÔØ ÕÂÒÁÎÙ.\n"
-	"        òÁÚÒÅÛÅÎ ÔÏÌØËÏ ÏÄÉÎ ÐÒÏØÅÌ, ÒÁÚÄÅÌÑÀÝÉÊ Ä×ÏÅÔÏÞÉÅ (:)\n"
-	"        É ÓÏÄÅÒÖÉÍÏÅ.  éÓÐÏÌØÚÕÊÔÅ ÚÁÐÑÔÕÀ (,) ÄÌÑ ÒÁÚÄÅÌÅÎÉÑ\n"
-	"        ÎÅÓËÏÌØËÉÈ ÉÍÅÎ ÇÒÕÐÐ.\n"
-
-#: src/lang.c:1011
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"ïÛÉÂËÁ: ÓÔÒÏËÁ \"%s:\" ÐÒÏÄÏÌÖÁÅÔÓÑ × ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ.  üÔÏ ÚÁÐÒÅÝÅÎÏ,\n"
-	"        ÔÁË ËÁË ÓÔÒÏËÁ ÎÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÐÒÏÂÅÌÏ×.\n"
-	"        ðÏÖÁÌÕÊÓÔÁ ÚÁÐÉÓÙ×ÁÅÔÅ ×ÓÅ ÇÒÕÐÐÙ ÏÄÎÏÊ ÓÔÒÏËÏÊ.\n"
-
-#: src/lang.c:1016
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"÷ÎÉÍÁÎÉÅ: ÓÔÒÏËÁ \"%s:\" ÐÒÏÄÏÌÖÁÅÔÓÑ × ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ.\n"
-	"          üÔÏ ÎÏ×ÏÅ Ó×ÏÊÔÓ×Ï É ÍÏÖÅÔ ÐÏÄÄÅÒÖÉ×ÁÔØÓÑ ÎÅ ×ÓÅÍÉ ÓÅÒ×ÅÒÁÍÉ.\n"
-	"          þÔÏÂÙ ÉÚÂÅÖÁÔØ ÐÒÏÂÌÅÍ, ÚÁÐÉÓÙ×ÁÊÔÅ ×ÓÅ ÇÒÕÐÐÙ ÏÄÎÏÊ ÓÔÒÏËÏÊ.\n"
-
-#: 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"
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  "# éÚÍÅÎÅÎÉÅ Ã×ÅÔÏ× ÄÌÑ ÒÁÚÌÉÞÎÙÈ ÞÁÓÔÅÊ ÜËÒÁÎÁ\n"
+        "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ:\n"
+        "#  -1 = ÐÏ ÕÍÏÌÞÁÎÉÀ (ÂÅÌÙÊ ÄÌÑ ÓÉÍ×ÏÌÏ× É Þ£ÒÎÙÊ ÄÌÑ ÆÏÎÁ)\n"
+        "#   0 = Þ£ÒÎÙÊ\n"
+        "#   1 = ËÒÁÓÎÙÊ\n"
+        "#   2 = ÚÅÌ£ÎÙÊ\n"
+        "#   3 = ËÏÒÉÞÎÅ×ÙÊ\n"
+        "#   4 = ÓÉÎÉÊ\n"
+        "#   5 = ÒÏÚÏ×ÙÊ\n"
+        "#   6 = ÇÏÌÕÂÏÊ\n"
+        "#   7 = ÂÅÌÙÊ\n"
+        "# üÔÉ Ã×ÅÔÁ *ÔÏÌØËÏ* ÄÌÑ ÓÉÍ×ÏÌÏ×:\n"
+        "#   8 = ÓÅÒÙÊ\n"
+        "#   9 = Ó×ÅÔÌÏ-ËÒÁÓÎÙÊ\n"
+        "#  10 = Ó×ÅÔÌÏ-ÚÅÌ£ÎÙÊ\n"
+        "#  11 = Ö£ÌÔÙÊ\n"
+        "#  12 = Ó×ÅÔÌÏ-ÓÉÎÉÊ\n"
+        "#  13 = Ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ\n"
+        "#  14 = Ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ\n"
+        "#  15 = Ó×ÅÔÌÏ-ÂÅÌÙÊ\n"
+        "\n"
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  "  -a       ÉÚÍÅÎÉÔØ Ã×ÅÔ"
+
+#: src/lang.c:1022
+msgid   "\n"
+        "Error: Followup-To set to more than one newsgroup!\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n"
+
+#: src/lang.c:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  ""
+
+#: src/lang.c:1024
+#, 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:1025
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is not a valid newsgroup!\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÇÒÕÐÐÁ!\n"
+
+#: src/lang.c:1027
+msgid   "\n"
+        "Warning: Followup-To set to more than one newsgroup!\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: Followup-To ÕÓÔÁÎÏ×ÌÅÎ ÎÁ ÂÏÌØÛÅ ÞÅÍ ÏÄÎÕ ÇÒÕÐÐÕ!\n"
+
+#: src/lang.c:1028
+#, fuzzy, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÎÁ ÜÔÏÍ ÍÅÓÔÅ ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ!\n"
+
+#: src/lang.c:1029
+#, 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:1030
+#, 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:1031
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not a valid newsgroup at this site!\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: \"%s\" - ÎÅÄÏÐÕÓÔÉÍÁÑ ÎÁ ÜÔÏÍ ÍÅÓÔÅ ÇÒÕÐÐÁ ÎÏ×ÏÓÔÅÊ!\n"
+
+#: src/lang.c:1035
+#, c-format
+msgid   "%d files successfully written from %d articles. %d %s occurred."
+msgstr  "%d ÆÁÊÌÏ× ÕÓÐÅÛÎÏ ÚÁÐÉÓÁÎÙ ÉÚ %d ÓÔÁÔÅÊ. %d %s."
+
+#: src/lang.c:1036
+msgid   "Missing parts."
+msgstr  "ðÒÏÐÕÝÅÎÙ ÞÁÓÔÉ."
+
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  "îÅÔ ÎÁÞÁÌÁ."
 
 #: src/lang.c:1038
-msgid	"shell escape"
-msgstr	"×ÙÈÏÄ × ÏÂÏÌÏÞËÕ"
+msgid   "No data."
+msgstr  "îÅÔ ÄÁÎÎÙÈ."
 
 #: src/lang.c:1039
-#, c-format
-msgid	"Shell Command (%s)"
-msgstr	"ëÏÍÁÎÄÁ ÏÂÏÌÏÞËÉ (%s)"
+msgid   "Unknown error."
+msgstr  "îÅÉÚ×ÅÓÔÎÁÑ ÏÛÉÂËÁ."
 
-#: src/lang.c:1040
+#: src/lang.c:1042
 #, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"÷×ÅÄÉÔÅ ËÏÍÁÎÄÕ ÏÂÏÌÏÞËÉ [%s]> "
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  "\tëÏÎÔÒÏÌØÎÁÑ ÓÕÍÍÁ %s (%ld %s)"
 
-#: src/lang.c:1044
-#, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	"%s: îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÚÁÐÉÓØ ÄÌÑ TERM\n"
+#: src/lang.c:1047
+msgid   "Reading mail active file... "
+msgstr  ""
 
 #: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  "þÔÅÎÉÅ ÆÁÊÌÁ mailgroups... "
+
+#: src/lang.c:1052
+msgid   "perform PGP operations on article"
+msgstr  "×ÙÐÏÌÎÉÔØ PGP ÏÐÅÒÁÃÉÉ ÓÏ ÓÔÁÔØÅÊ"
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  "äÏÂÁ×ÉÔØ ËÌÀÞ(É) Ë ÏÔËÒÙÔÙÍ ËÌÀÞÁÍ?"
+
+#: src/lang.c:1054
 #, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"çÒÕÐÐÁ %.*s ('q' ÞÔÏÂÙ ×ÙÊÔÉ)..."
+msgid   "%s=encrypt, %s=sign, %s=both, %s=quit: "
+msgstr  "%s=ÛÉÆÒÏ×ÁÔØ, %s=ÐÏÄÐÉÓÁÔØ, %s=ÏÂÁ, %s=×ÙÈÏÄ: "
 
-#: src/lang.c:1050
+#: src/lang.c:1055
 #, c-format
-msgid	"Group %.*s..."
-msgstr	"çÒÕÐÐÁ %.*s..."
+msgid   "%s=sign, %s=sign & include public key, %s=quit: "
+msgstr  "%s=ÛÉÆÒÏ×ÁÔØ, %s=ÐÏÄÐÉÓÁÔØ É ×ÌÏÖÉÔØ ÏÔËÒÙÔÙÊ ËÌÀÞ, %s=×ÙÈÏÄ: "
 
-#: src/lang.c:1054
-msgid	"Server unavailable\n"
-msgstr	"óÅÒ×ÅÒ ÎÅ ÄÏÓÔÕÐÅÎ\n"
+#: src/lang.c:1056
+#, c-format
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  "PGP ÎÅ ÕÓÔÁÎÏ×ÌÅÎ (ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ %s)"
+
+#: src/lang.c:1057
+msgid   "Article not signed and no public keys found"
+msgstr  "óÔÁÔØÑ ÎÅ ÐÏÄÐÉÓÁÎÁ É ÏÔËÒÙÔÙÊ ËÌÀÞ ÎÅ ÎÁÊÄÅÎ"
+
+#: src/lang.c:1059
+#, 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: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=ÏÔÐÒÁ×ÉÔØ"
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=pgp, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
 
 #: 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=ÏÔÐÒÁ×ÉÔØ"
+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: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=ÏÔÐÒÁ×ÉÔØ"
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄÁËÔ., %s=pgp, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ: "
 
 #: 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=ÏÔÐÒÁ×ÉÔØ"
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=pgp, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
 
-#: src/lang.c:1068
+#: src/lang.c:1065
 #, 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=ÏÔÐÒÁ×ÉÔØ"
+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: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=ÏÔÐÒÁ×ÉÔØ"
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒ., %s=ÏÔÌÏÖÉÔØ: "
+
+#: src/lang.c:1070
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
 
 #: 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=ÏÔÐÒÁ×ÉÔØ"
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ispell, %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: "
 
-#: src/lang.c:1072
+#: src/lang.c:1073
 #, c-format
-msgid	"%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	"%s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒÁÎÉÔØ; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ"
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ: "
 
-#: src/lang.c:1078
-msgid	"Terminal does not support color"
-msgstr	"ôÅÒÍÉÎÁÌ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ Ã×ÅÔ"
+#: src/lang.c:1074
+#, c-format
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÏÔÐÒÁ×ÉÔØ [%%s]: "
 
-#: src/lang.c:1083
+#: src/lang.c:1075
 #, c-format
-msgid	"Trying %s"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  "%s=×ÙÈÏÄ, %s=ÒÅÄ., %s=ÍÅÎÀ, %s=ÏÔÐÒÁ×ÉÔØ, %s=ÏÔÌÏÖÉÔØ [%%s]: "
+
+#: src/lang.c:1084
+msgid   "Try cache_overview_files to speed up things.\n"
+msgstr  "ðÏÐÒÏÂÕÊÔÅ cache_overview_files ÄÌÑ ÕÓËÏÒÅÎÉÑ.\n"
+
+#: src/lang.c:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  "Tin ÂÕÄÅÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÆÁÊÌÙ ÌÏËÁÌØÎÏÇÏ ÉÎÄÅËÓÁ.\n"
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  "îÅ ÍÏÇÕ ÎÁÊÔÉ ÉÍÑ NNTP ÓÅÒ×ÅÒÁ"
+
+#: src/lang.c:1087
+#, fuzzy, c-format
+msgid   "Connecting to %s:%u..."
+msgstr  "óÏÅÄÉÎÅÎÉÅ Ó %s:%u..."
+
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  "ïÔÓÏÅÄÉÎÅÎÉÅ ÏÔ ÓÅÒ×ÅÒÁ...\n"
+
+#: src/lang.c:1089
+#, fuzzy, c-format
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  "îÅÐÒÁ×ÉÌØÎÏÅ ÉÍÑ ÇÒÕÐÐÙ × ÏÔ×ÅÔÅ ÎÁ ËÏÍÁÎÄÕ GROUP, %s ÄÌÑ %s"
+
+#: src/lang.c:1090
+#, c-format
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  "îÅ ÕÄÁÌÏÓØ ÓÏÅÄÉÎÉÔØÓÑ Ó NNTP ÓÅÒ×ÅÒÏÍ %s. ÷ÙÈÏÄ..."
+
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  "205  úÁËÒÙÔÉÅ ÓÏÅÄÉÎÅÎÉÑ"
 
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	"îÉÞÅÇÏ"
+#: src/lang.c:1092
+msgid   "Your server does not support the NNTP XOVER or OVER command.\n"
+msgstr  "óÅÒ×ÅÒ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ NNTP XOVER ÉÌÉ OVER ËÏÍÁÎÄÙ.\n"
+
+#: src/lang.c:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  "÷ÒÅÍÑ ÓÏÅÄÉÎÅÎÉÑ Ë ÓÅÒ×ÅÒÕ ÐÒÅ×ÙÓÉÌÏ ÌÉÍÉÔ. ðÏÄËÌÀÞÉÔØÓÑ ÅÝ£ ÒÁÚ?"
+
+#: src/lang.c:1094
+#, 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:1095
+msgid   "  -A       force authentication on connect"
+msgstr  "  -A       ÐÒÉÎÕÄÉÔÅÌØÎÁÑ ÁÕÔÅÎÔÉÆÉËÁÃÉÑ ÐÒÉ ÓÏÅÄÉÎÅÎÉÉ"
+
+#: src/lang.c:1096
+#, c-format
+msgid   "  -g serv  read news from NNTP server serv [default=%s]"
+msgstr  "  -g serv  ÞÔÅÎÉÅ ÎÏ×ÏÓÔÅÊ Ó NNTP ÓÅÒ×ÅÒÁ serv [ÐÏ ÕÍÏÌÞÁÎÉÀ=%s]"
+
+#: src/lang.c:1097
+#, c-format
+msgid   "  -p port  use port as NNTP port [default=%d]"
+msgstr  "  -p port  ÉÓÐÏÌØÚÏ×ÁÔØ port ËÁË NNTP ÐÏÒÔ [ÐÏ ÕÍÏÌÞÁÎÉÀ=%d]"
 
 #: src/lang.c:1098
-msgid	"Subject"
-msgstr	"ôÅÍÁ"
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  "  -Q       ÂÙÓÔÒÙÊ ÚÁÐÕÓË. ëÁË Ó ÏÐÃÉÑÍÉ -nqd"
 
 #: src/lang.c:1099
-msgid	"References"
-msgstr	""
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  "  -r       ÞÉÔÁÔØ ÎÏ×ÏÓÔÉ ÕÄÁÌÅÎÎÏ Ó NNTP ÓÅÒ×ÅÒÁ, ÚÁÄÁÎÎÏÇÏ ÐÏ ÕÍÏÌÞÁÎÉÀ"
 
 #: src/lang.c:1100
-msgid	"Both Subject and References"
-msgstr	"ôÅÍÁ É References"
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  "  -l       ÉÓÐÏÌØÚÏ×ÁÔØ LIST ×ÍÅÓÔÏ ËÏÍÁÎÄÙ GROUP (-n)"
 
 #: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	""
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  "  -n       ÞÉÔÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ .newsrc ÇÒÕÐÐÙ Ó NNTP ÓÅÒ×ÅÒÁ"
+
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  "\n"
+        "ÐÒÏÂÌÅÍÁ Ó ÓÏËÅÔÏÍ ÉÌÉ Ó ÓÏÅÄÉÎÅÎÉÅÍ\n"
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "óÏÅÄÉÎÅÎÉÅ Ó %s: "
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  "ðÒÅËÒÁÝÁÅÍ...\n"
+
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp: îÅÉÚ×ÅÓÔÎÙÊ ÓÅÒ×ÉÓ.\n"
 
-#: src/lang.c:1102
-msgid	"Percentage Match"
-msgstr	"óÏ×ÐÁÄÅÎÉÑ ÐÏ ÐÒÏÃÅÎÔÁÍ"
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	"îÅÔ"
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	"äÁ"
-
-#: src/lang.c:1116
-msgid	"Hide All"
-msgstr	"óËÒÙÔØ ×ÓÅ"
+#: src/lang.c:1114
+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:1117
+msgid   "Your server does not have Xref: in its XOVER information.\n"
+msgstr  "óÅÒ×ÅÒ ÎÅ ÓÏÄÅÒÖÉÔ Xref: × XOVER.\n"
+
+#: src/lang.c:1120
+#, 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:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  "  -Q       ÂÙÓÔÒÙÊ ÚÁÐÕÓË. ôÏ ÖÅ ÓÁÍÏÅ ËÁË Ó ÏÐÃÉÑÍÉ -qd"
 
 #: src/lang.c:1124
-msgid	"Address"
-msgstr	"áÄÒÅÓ"
+msgid   "  -l       read only active file instead of scanning spool (-n) command"
+msgstr  "  -l       ÞÉÔÁÔØ ÔÏÌØËÏ ÆÁÊÌ active ×ÍÅÓÔÏ ÓËÁÎÉÒÏ×ÁÎÉÑ spool (-n) ËÏÍÁÎÄÙ"
 
 #: src/lang.c:1125
-msgid	"Full Name"
-msgstr	"ðÏÌÎÏÅ ÉÍÑ"
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  "  -n       ÞÉÔÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ .newsrc ÇÒÕÐÐÙ ÉÚ spool"
 
 #: src/lang.c:1126
-msgid	"Address and Name"
-msgstr	"áÄÒÅÓ É ÉÍÑ"
+msgid   "Your server does not have Xref: in its NOV-files.\n"
+msgstr  "÷ÁÛ ÓÅÒ×ÅÒ ÎÅ ÉÍÅÅÔ Xref: × NOV-ÆÁÊÌÁÈ.\n"
 
-#: src/lang.c:1133
-msgid	"Max"
-msgstr	"íÁËÓÉÍÁÌØÎÙÊ"
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	"óÕÍÍÁ"
+#: src/lang.c:1130
+msgid   "Posting using external inews failed. Use built in inews instead?"
+msgstr  "ïÔÐÒÁ×ÌÅÎÉÅ Ó ×ÎÅÛÎÉÍ inews ÐÒÏ×ÁÌÉÌÏÓØ. éÓÐÏÌØÚÏ×ÁÔØ ×ÓÔÒÏÅÎÎÙÊ inews"
+
+#: src/lang.c:1131
+msgid   "It worked! Should I always use my built in inews from now on?"
+msgstr  "úÁÒÁÂÏÔÁÌÏ! éÓÐÏÌØÚÏ×ÁÔØ ×ÓÅÇÄÁ ÓÄÅÌÁÎÎÙÊ inews?"
 
 #: src/lang.c:1135
-msgid	"Average"
-msgstr	"óÒÅÄÎÉÊ"
+#, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s ÎÁÐÅÞÁÔÁÎÏ"
 
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	"óÔÒÏËÉ"
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	""
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  "×Ù×ÏÄ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ/hot/ÛÁÂÌÏÎÁ/ÐÏÍÅÞÅÎÎÙÈ ÓÔÁÔÅÊ ÎÁ ÐÅÞÁÔØ"
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  "ðÅÞÁÔØ"
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  "ðÅÞÁÔÁÀ..."
 
 #: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	"óÔÒÏËÉ É Score"
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  "pipe ÓÔÁÔØÀ/ÄÉÓËÕÓÓÉÀ/hot/ÛÁÂÌÏÎ/ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ × ËÏÍÁÎÄÕ"
 
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	"þÅÒÎÙÊ"
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  "îÅÔ ËÏÍÁÎÄÙ"
 
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	"ëÒÁÓÎÙÊ"
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  ""
 
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	"úÅÌ£ÎÙÊ"
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	"ëÏÒÉÞÎÅ×ÙÊ"
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	"óÉÎÉÊ"
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	"òÏÚÏ×ÙÊ"
+#: src/lang.c:1145
+#, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  "Pipe × ËÏÍÁÎÄÕ [%.*s]> "
 
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	"çÏÌÕÂÏÊ"
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  ""
 
-#: src/lang.c:1158
-msgid	"White"
-msgstr	"âÅÌÙÊ"
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"óÅÒÙÊ"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	"ó×ÅÔÌÏ-ËÒÁÓÎÙÊ"
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	"ó×ÅÔÌÏ-ÚÅÌ£ÎÙÊ"
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  "Piping ÎÅ ×ËÌÀÞÅÎ."
 
-#: src/lang.c:1162
-msgid	"Yellow"
-msgstr	"ö£ÌÔÙÊ"
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: ÓÔÒÏËÁ \"%s:\" ÓÏÄÅÒÖÉÔ ÐÒÏÂÅÌÙ, ËÏÔÏÒÙÅ äïìöîù ÂÙÔØ ÕÂÒÁÎÙ.\n"
+        "        òÁÚÒÅÛÅÎ ÔÏÌØËÏ ÏÄÉÎ ÐÒÏØÅÌ, ÒÁÚÄÅÌÑÀÝÉÊ Ä×ÏÅÔÏÞÉÅ (:)\n"
+        "        É ÓÏÄÅÒÖÉÍÏÅ.  éÓÐÏÌØÚÕÊÔÅ ÚÁÐÑÔÕÀ (,) ÄÌÑ ÒÁÚÄÅÌÅÎÉÑ\n"
+        "        ÎÅÓËÏÌØËÉÈ ÉÍÅÎ ÇÒÕÐÐ.\n"
 
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	"ó×ÅÔÌÏ-ÓÉÎÉÊ"
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	"ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ"
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	"ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ"
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "ïÛÉÂËÁ: ÓÔÒÏËÁ \"%s:\" ÐÒÏÄÏÌÖÁÅÔÓÑ × ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ.  üÔÏ ÚÁÐÒÅÝÅÎÏ,\n"
+        "        ÔÁË ËÁË ÓÔÒÏËÁ ÎÅ ÍÏÖÅÔ ÓÏÄÅÒÖÁÔØ ÐÒÏÂÅÌÏ×.\n"
+        "        ðÏÖÁÌÕÊÓÔÁ ÚÁÐÉÓÙ×ÁÅÔÅ ×ÓÅ ÇÒÕÐÐÙ ÏÄÎÏÊ ÓÔÒÏËÏÊ.\n"
 
-#: src/lang.c:1166
-msgid	"Light White"
-msgstr	"ó×ÅÔÌÏ-ÂÅÌÙÊ"
+#: src/lang.c:1162
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÓÔÒÏËÁ \"%s:\" ÐÒÏÄÏÌÖÁÅÔÓÑ × ÓÌÅÄÕÀÝÅÊ ÓÔÒÏËÅ.\n"
+        "          üÔÏ ÎÏ×ÏÅ Ó×ÏÊÔÓ×Ï É ÍÏÖÅÔ ÐÏÄÄÅÒÖÉ×ÁÔØÓÑ ÎÅ ×ÓÅÍÉ ÓÅÒ×ÅÒÁÍÉ.\n"
+        "          þÔÏÂÙ ÉÚÂÅÖÁÔØ ÐÒÏÂÌÅÍ, ÚÁÐÉÓÙ×ÁÊÔÅ ×ÓÅ ÇÒÕÐÐÙ ÏÄÎÏÊ ÓÔÒÏËÏÊ.\n"
 
-#: src/lang.c:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	"îÉÞÅÇÏ"
-
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	""
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	""
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	""
+#: src/lang.c:1166
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
+msgstr  "\n"
+        "÷ÎÉÍÁÎÉÅ: ÓÔÒÏËÁ \"%s:\" ÓÏÄÅÒÖÉÔ ÐÒÏÂÅÌÙ, ËÏÔÏÒÙÅ ÄÏÌÖÎÙ ÂÙÔØ ÕÂÒÁÎÙ.\n"
+
+#: src/lang.c:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  ""
 
 #: src/lang.c:1184
-msgid	"Best highlighting"
-msgstr	"ìÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ"
+msgid   "shell escape"
+msgstr  "×ÙÈÏÄ × ÏÂÏÌÏÞËÕ"
 
 #: src/lang.c:1185
-msgid	"Underline"
-msgstr	"ðÏÄÞÅÒËÉ×ÁÎÉÅ"
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  "ëÏÍÁÎÄÁ ÏÂÏÌÏÞËÉ (%s)"
 
 #: src/lang.c:1186
-msgid	"Reverse video"
-msgstr	"òÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ"
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "÷×ÅÄÉÔÅ ËÏÍÁÎÄÕ ÏÂÏÌÏÞËÉ [%s]> "
 
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	"íÉÇÁÎÉÅ"
-
-#: src/lang.c:1188
-msgid	"Half bright"
-msgstr	""
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	""
+#: src/lang.c:1190
+#, c-format
+msgid   "%s: Can't get entry for TERM\n"
+msgstr  "%s: îÅ ÍÏÇÕ ÐÏÌÕÞÉÔØ ÚÁÐÉÓØ ÄÌÑ TERM\n"
 
 #: src/lang.c:1194
-msgid	"none"
-msgstr	"ÎÉÞÅÇÏ"
-
-#: src/lang.c:1195
-msgid	"commands"
-msgstr	"ËÏÍÁÎÄÙ"
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "çÒÕÐÐÁ %.*s ('q' ÞÔÏÂÙ ×ÙÊÔÉ)..."
 
 #: src/lang.c:1196
-msgid	"select"
-msgstr	"×ÙÂÏÒ"
-
-#: src/lang.c:1198
-msgid	"commands & quit"
-msgstr	"ËÏÍÁÎÄÙ É ×ÙÈÏÄ"
-
-#: src/lang.c:1199
-msgid	"commands & select"
-msgstr	"ËÏÍÁÎÄÙ É ×ÙÂÏÒ"
+#, c-format
+msgid   "Group %.*s..."
+msgstr  "çÒÕÐÐÁ %.*s..."
 
 #: src/lang.c:1200
-msgid	"quit & select"
-msgstr	"×ÙÈÏÄ É ×ÙÂÏÒ"
+msgid   "Server unavailable\n"
+msgstr  "óÅÒ×ÅÒ ÎÅ ÄÏÓÔÕÐÅÎ\n"
 
-#: src/lang.c:1201
-msgid	"commands & quit & select"
-msgstr	"ËÏÍÁÎÄÙ, ×ÙÈÏÄ É ×ÙÂÏÒ"
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	""
-
-#: src/lang.c:1232
-msgid	"Subject: (descending)"
-msgstr	"ôÅÍÁ: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
-
-#: src/lang.c:1233
-msgid	"Subject: (ascending)"
-msgstr	"ôÅÍÁ: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
-
-#: src/lang.c:1234
-msgid	"From: (descending)"
-msgstr	"From: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
-
-#: src/lang.c:1235
-msgid	"From: (ascending)"
-msgstr	"From: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
-
-#: src/lang.c:1236
-msgid	"Date: (descending)"
-msgstr	"äÁÔÁ: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
-
-#: src/lang.c:1237
-msgid	"Date: (ascending)"
-msgstr	"äÁÔÁ: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
-
-#: src/lang.c:1238 src/lang.c:1246
-msgid	"Score (descending)"
-msgstr	"Score (ÐÏ ÕÂÙ×ÁÎÉÀ)"
-
-#: src/lang.c:1239 src/lang.c:1247
-msgid	"Score (ascending)"
-msgstr	"Score (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
-
-#: src/lang.c:1240
-msgid	"Lines: (descending)"
-msgstr	"ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
-
-#: src/lang.c:1241
-msgid	"Lines: (ascending)"
-msgstr	"ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	""
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	""
-
-#: src/lang.c:1254
-msgid	"Mark with D on selection screen"
-msgstr	""
-
-#: src/lang.c:1259
-msgid	"Kill only unread arts"
-msgstr	"õÎÉÞÔÏÖÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞ. ÓÔÁÔØÉ"
-
-#: src/lang.c:1260
-msgid	"Kill all arts & show with K"
-msgstr	"õÎÉÞÔÏÖÁÔØ ×ÓÅ ÓÔÁÔØÉ É ÐÏËÁÚ. Ó K"
+#: src/lang.c:1206
+#, 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=ÏÔÐÒÁ×ÉÔØ"
 
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-msgid	"Kill all arts and never show"
-msgstr	"õÎÉÞÔÏÖÁÔØ ×ÓÅ ÓÔÁÔØÉ É ÎÅ ÐÏËÁÚ."
-
-#: src/lang.c:1266
-msgid	"Nothing special"
-msgstr	"îÉÞÅÇÏ ÏÓÏÂÅÎÎÏÇÏ"
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	"óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ"
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	"ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ"
-
-#: src/lang.c:1269
-msgid	"Compress quotes, quote sigs"
-msgstr	"óÖÉÍÁÔØ ÓÉÇÎÁÔÕÒÙ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ"
+#: src/lang.c:1207
+#, 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:1209
+#, 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:1210
+#, 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:1214
+#, 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:1215
+#, 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:1217
+#, 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:1218
+#, c-format
+msgid   "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  "%s=mail; %s=×ÙÈÏÄ; %s=ÏÔ×ÅÔÉÔØ; %s=ÓÏÈÒÁÎÉÔØ; %s=ÏÔÍ.; %s=ÏÔÐÒÁ×ÉÔØ"
+
+#: src/lang.c:1224
+msgid   "Terminal does not support color"
+msgstr  "ôÅÒÍÉÎÁÌ ÎÅ ÐÏÄÄÅÒÖÉ×ÁÅÔ Ã×ÅÔ"
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  ""
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  "îÉÞÅÇÏ"
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  "ôÅÍÁ"
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  ""
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  "ôÅÍÁ É References"
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  ""
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  "óÏ×ÐÁÄÅÎÉÑ ÐÏ ÐÒÏÃÅÎÔÁÍ"
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  "îÅÔ"
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  "äÁ"
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  "óËÒÙÔØ ×ÓÅ"
 
 #: src/lang.c:1270
-msgid	"Quote empty lines"
-msgstr	"ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+msgid   "Address"
+msgstr  "áÄÒÅÓ"
 
 #: src/lang.c:1271
-msgid	"Compress quotes, quote empty lines"
-msgstr	"óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+msgid   "Full Name"
+msgstr  "ðÏÌÎÏÅ ÉÍÑ"
 
 #: src/lang.c:1272
-msgid	"Quote sigs & empty lines"
-msgstr	"ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+msgid   "Address and Name"
+msgstr  "áÄÒÅÓ É ÉÍÑ"
 
-#: src/lang.c:1273
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	"óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  "íÁËÓÉÍÁÌØÎÙÊ"
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  "óÕÍÍÁ"
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  "óÒÅÄÎÉÊ"
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  "óÔÒÏËÉ"
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  ""
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  "óÔÒÏËÉ É Score"
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  "þÅÒÎÙÊ"
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  "ëÒÁÓÎÙÊ"
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  "úÅÌ£ÎÙÊ"
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  "ëÏÒÉÞÎÅ×ÙÊ"
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  "óÉÎÉÊ"
+
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  "òÏÚÏ×ÙÊ"
+
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  "çÏÌÕÂÏÊ"
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  "âÅÌÙÊ"
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "óÅÒÙÊ"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  "ó×ÅÔÌÏ-ËÒÁÓÎÙÊ"
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  "ó×ÅÔÌÏ-ÚÅÌ£ÎÙÊ"
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  "ö£ÌÔÙÊ"
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  "ó×ÅÔÌÏ-ÓÉÎÉÊ"
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  "ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ"
 
 #: src/lang.c:1311
-msgid	"no"
-msgstr	"ÎÅÔ"
+msgid   "Light Cyan"
+msgstr  "ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ"
 
 #: src/lang.c:1312
-msgid	"with headers"
-msgstr	"Ó ÚÁÇÏÌÏ×ËÁÍÉ"
+msgid   "Light White"
+msgstr  "ó×ÅÔÌÏ-ÂÅÌÙÊ"
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	"ÂÅÚ ÚÁÇÏÌÏ×ËÏ×"
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	""
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	""
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  "îÉÞÅÇÏ"
 
 #: src/lang.c:1322
-msgid	"NFC"
-msgstr	""
+msgid   "Space"
+msgstr  ""
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	""
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  ""
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  "ìÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ"
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  "ðÏÄÞÅÒËÉ×ÁÎÉÅ"
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  "òÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ"
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  "íÉÇÁÎÉÅ"
 
 #: src/lang.c:1334
-msgid	"Display Options"
-msgstr	"ïÐÃÉÉ ×Ù×ÏÄÁ"
+msgid   "Half bright"
+msgstr  ""
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  ""
 
 #: src/lang.c:1341
-msgid	"Color Options"
-msgstr	"ïÐÃÉÉ ÒÁÂÏÔÙ Ó Ã×ÅÔÏÍ"
+msgid   "Cc"
+msgstr  ""
 
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	""
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  ""
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  ""
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  "ÎÉÞÅÇÏ"
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  "ËÏÍÁÎÄÙ"
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  "×ÙÂÏÒ"
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  "ËÏÍÁÎÄÙ É ×ÙÈÏÄ"
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  "ËÏÍÁÎÄÙ É ×ÙÂÏÒ"
 
 #: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	"ïÐÃÉÉ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ/ÐÉÓÅÍ"
+msgid   "quit & select"
+msgstr  "×ÙÈÏÄ É ×ÙÂÏÒ"
 
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	"ïÐÃÉÉ ÓÏÈÒÁÎÅÎÉÑ É ÐÅÞÁÔÉ"
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	"üËÓÐÅÒÔÎÙÅ ÏÐÃÉÉ"
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  "ËÏÍÁÎÄÙ, ×ÙÈÏÄ É ×ÙÂÏÒ"
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  ""
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1368
+#, fuzzy
+msgid   "Subject: (case sensitive)"
+msgstr  "ôÅÍÁ: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ)"
+
+#: src/lang.c:1369
+#, fuzzy
+msgid   "Subject: (ignore case)"
+msgstr  "ôÅÍÁ: ÓÔÒÏËÁ (ÉÇÎÏÒÉÒÏ×ÁÔØ ÒÅÇÉÓÔÒ) "
+
+#: src/lang.c:1370
+#, fuzzy
+msgid   "From: (case sensitive)"
+msgstr  "From: ÓÔÒÏËÁ (ÎÅ ÉÇÎÏÒ. ÒÅÇÉÓÔÒ)    "
+
+#: src/lang.c:1371
+#, fuzzy
+msgid   "From: (ignore case)"
+msgstr  "From: ÓÔÒÏËÁ (ÉÇÎÏÒ. ÒÅÇÉÓÔÒ)   "
 
 #: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	"ïÐÃÉÉ ÆÉÌØÔÒÁÃÉÉ"
+msgid   "Msg-ID: & full References: line"
+msgstr  ""
+
+#: src/lang.c:1373
+msgid   "Msg-ID: & last References: only"
+msgstr  ""
+
+#: src/lang.c:1374
+msgid   "Message-ID: entry only"
+msgstr  ""
+
+#: src/lang.c:1375
+#, fuzzy
+msgid   "Lines:"
+msgstr  "óÔÒÏËÉ"
+
+#: src/lang.c:1380
+#, fuzzy
+msgid   "Don't trim article body"
+msgstr  "óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ"
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"<ðòïâåì> ×ÙÂÒÁÔØ, <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:1378
-msgid	"Show mini menu & posting etiquette"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÍÉÎÉ-ÍÅÎÀ É ÜÔÉËÅÔ ÏÂÝÅÎÉÑ"
-
-#: src/lang.c:1379
-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:1381
+msgid   "Skip leading blank lines"
+msgstr  ""
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  ""
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  ""
 
 #: src/lang.c:1384
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	"ðÏËÁÚÙ×ÁÔØ ËÏÒÏÔËÏÅ ÏÐÉÓÁÎÉÑ ÄÌÑ ËÁÖÄÏÊ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
+msgid   "Compact multiple between text"
+msgstr  ""
 
 #: src/lang.c:1385
-msgid	"Show description of each newsgroup"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐ"
+msgid   "Compact multiple and skip leading"
+msgstr  ""
 
 #: src/lang.c:1386
-msgid	"# If ON show group description text after newsgroup name at\n"
-	"# group selection level\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ ÐÏÓÌÅ ÉÍÅÎÉ ÇÒÕÐÐÙ ×\n"
-	"# ÒÅÖÉÍÅ ×ÙÂÏÒÁ ÇÒÕÐÐÙ\n"
-
-#: src/lang.c:1391
-msgid	"Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
-	"sets."
-msgstr	"÷Ù×ÏÄ ôÅÍÙ É á×ÔÏÒÁ × ÍÅÎÀ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1392
-msgid	"In group menu, show author by"
-msgstr	"÷ ÍÅÎÀ ÇÒÕÐÐÙ ÐÏËÁÚÁÔØ Á×ÔÏÒÁ ËÁË"
-
-#: src/lang.c:1393
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	"# ÷Ù×ÏÄÉÔØ ÞÁÓÔØ ÐÏÌÑ From:\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = ÎÉÞÅÇÏ\n"
-	"#   1 = ÁÄÒÅÓ\n"
-	"# * 2 = ÐÏÌÎÏÅ ÉÍÑ\n"
-	"#   3 = ÁÄÒÅÓ É ÐÏÌÎÏÅ ÉÍÑ\n"
-
-#: src/lang.c:1402
-msgid	"Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
-msgstr	"÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1403
-msgid	"Draw -> instead of highlighted bar"
-msgstr	"÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ."
-
-#: src/lang.c:1404
-msgid	"# If ON use -> otherwise highlighted bar for selection\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ\n"
-
-#: src/lang.c:1409
-msgid	"Use inverse video for page headers"
-msgstr	"éÎ×ÅÒÓÎÙÊ ×ÉÄÅÏ ÒÅÖÉÍ ÄÌÑ ÚÁÇÏÌÏ×ËÏ× ÓÔÒÁÎÉÃ"
-
-#: src/lang.c:1410
-msgid	"# If ON use inverse video for page headers at different levels\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎ×ÅÒÓÉÀ Ã×ÅÔÏ× ÄÌÑ ÚÁÇÏÌÏ×ËÏ× ÎÁ\n"
-	"# ÒÁÚÌÉÞÎÙÈ ÕÒÏ×ÎÑÈ\n"
-
-#: src/lang.c:1415
-msgid	"Thread articles by"
-msgstr	"çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ"
-
-#: src/lang.c:1416
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	"# çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ...\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = ÎÉÞÅÇÏ\n"
-	"#   1 = ôÅÍÁ\n"
-	"#   2 = References\n"
-	"# * 3 = ïÂÁ (ôÅÍÁ É References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = óÏ×ÐÁÄÅÎÉÅ ÐÏ ÐÒÏÃÅÎÔÁÍ\n"
+msgid   "Compact multiple and skip trailing"
+msgstr  ""
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  ""
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  ""
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  "ôÅÍÁ: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  "ôÅÍÁ: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  "From: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  "From: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  "äÁÔÁ: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  "äÁÔÁ: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  "Score (ÐÏ ÕÂÙ×ÁÎÉÀ)"
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  "Score (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
 
 #: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÎÅÏÂÈÏÄÉÍÙÊ ÐÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÌÑ ÏÂßÅÄÉÎÅÎÉÑ × ÄÉÓËÕÓÓÉÀ. <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	"ðÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÉÓËÕÓÓÉÉ"
-
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
+msgid   "Lines: (ascending)"
+msgstr  "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
+
+#: src/lang.c:1434
+#, fuzzy
+msgid   "Last posting date (descending)"
+msgstr  "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ÕÂÙ×ÁÎÉÀ)"
+
+#: src/lang.c:1435
+#, fuzzy
+msgid   "Last posting date (ascending)"
+msgstr  "ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË: (ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ)"
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  ""
 
 #: src/lang.c:1441
-msgid	"Score of a thread"
-msgstr	"Score ÄÉÓËÕÓÓÉÉ"
+msgid   "Always Remove"
+msgstr  ""
 
 #: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	"# Score ÄÉÓËÕÓÓÉÉ\n"
-	"# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"# * 0 = max\n"
-	"#   1 = ÓÕÍÍÁ\n"
-	"#   2 = ÓÒÅÄÎÅÅ\n"
-
-#: src/lang.c:1450
-msgid	"Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
-msgstr	"óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ôÅÍÅ, From, äÁÔÅ ÉÌÉ Score. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1451
-msgid	"Sort articles by"
-msgstr	"óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ"
-
-#: src/lang.c:1452
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines ascending\n"
-msgstr	"# óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ...\n"
-	"# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = ÎÉÞÅÇÏ\n"
-	"#   1 = ôÅÍÁ ÐÏ ÕÂÙ×ÁÎÉÀ\n"
-	"#   2 = ôÅÍÁ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
-	"#   3 = From ÐÏ ÕÂÙ×ÁÎÉÀ\n"
-	"#   4 = From ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
-	"#   5 = äÁÔÁ ÐÏ ÕÂÙ×ÁÎÉÀ\n"
-	"# * 6 = äÁÔÁ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
-	"#   7 = Score ÐÏ ÕÂÙ×ÁÎÉÀ\n"
-	"#   8 = Score ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
-	"#   9 = ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË ÐÏ ÕÂÙ×ÁÎÉÀ\n"
-	"#  10 = ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
-
-#: src/lang.c:1468
-msgid	"Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
-msgstr	"îÅ ÓÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÉÌÉ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏ Score. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1469
-msgid	"Sort threads by"
-msgstr	"óÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÐÏ"
-
-#: src/lang.c:1470
-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"
-	"# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = ÎÉÞÅÇÏ\n"
-	"# * 1 = Score ÐÏ ÕÂÙ×ÁÎÉÀ\n"
-	"#   2 = Score ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
-
-#: src/lang.c:1478
-msgid	"Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
-msgstr	"õÓÔ. ËÕÒÓÏÒ ÎÁ ÐÅÒ×ÕÀ/ÐÏÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÀ × ÇÒÕÐÐÁÈ. <ðòïâåì> ×ÙÂÏÒ, "
-	"<CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1479
-msgid	"Goto first unread article in group"
-msgstr	"ðÅÒÅÊÔÉ Ë ÐÅÒ×ÏÊ ÎÅÐÒÏÞ. ÓÔÁÔØÅ × ÇÒÕÐÐÅ"
-
-#: src/lang.c:1480
-msgid	"# If ON put cursor at first unread art in group otherwise last art\n"
-msgstr	"# åÓÌÉ ON ÔÏ ÐÅÒÅÊÔÉ Ë ÐÅÒ×ÏÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÅ × ÇÒÕÐÐÅ,\n"
-	"# ÉÎÁÞÅ Ë ÐÅÒÅÊÔÉ Ë ÐÏÓÌÅÄÎÅÊ.\n"
-
-#: src/lang.c:1484
-msgid	"Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
-msgstr	"ðÏËÁÚÙ×ÁÔØ ×ÓÅ ÓÔÁÔØÉ ÉÌÉ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1485
-msgid	"Show only unread articles"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÉ"
-
-#: src/lang.c:1486
-msgid	"# If ON show only new/unread articles otherwise show all.\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÏ×ÙÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÓÔÁÔØÉ,\n"
-	"# ÉÎÁÞÅ ÐÏËÁÚÙ×ÁÔØ ×ÓÅ.\n"
-
-#: src/lang.c:1491
-msgid	"Show only groups with unread arts"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÇÒÕÐÐÙ Ó ÎÅÐÒÏÞ. ÓÔÁÔØÑÍÉ"
-
-#: src/lang.c:1492
-msgid	"# If ON show only subscribed to groups that contain unread articles.\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ Ó ÎÅÐÒÏÞÔ£ÎÎÙÍÉ ÓÔÁÔØÑÍÉ.\n"
-
-#: src/lang.c:1497
-msgid	"Filter which articles"
-msgstr	"óÔÁÔØÉ ÄÌÑ ÆÉÌØÔÒÁÃÉÉ"
-
-#: src/lang.c:1498
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	""
-
-#: src/lang.c:1507
-msgid	"Tab goes to next unread article"
-msgstr	"Tab - ÐÅÒÅÈÏÄ Ë ÓÌÅÄ. ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÅ"
-
-#: src/lang.c:1508
-msgid	"# If ON the TAB command will go to next unread article at article viewer "
-	"level\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÏ ÔÁÂÕÌÑÃÉÉ ÐÅÒÅÈÏÄÉÔØ ÎÁ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÓÔÁÔØÀ\n"
-
-#: src/lang.c:1512
-msgid	"Scrolling with <SPACE> past the end of an art. jumps to the next unread one."
-msgstr	"ðÒÏËÒÕÔËÁ <ðòïâåìïí> ÄÏ ËÏÎÃÁ ÓÔÁÔØÉ, ÚÁÔÅÍ ÐÅÒÅÈÏÄ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÀ."
-
-#: src/lang.c:1513
-msgid	"Space goes to next unread article"
-msgstr	"ðÒÏÂÅÌ - ÐÅÒÅÈÏÄ Ë ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÅ"
-
-#: src/lang.c:1514
-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, ÔÏ ÐÏ ÐÒÏÂÅÌÕ ÐÅÒÅÈÏÄÉÔØ ÎÁ ÓÌÅÄÕÀÝÕÀ ÎÅÐÒÏÞÉÔÁÎÎÕÀ ÓÔÁÔØÀ\n"
-	"# ÐÏ ÄÏÓÔÉÖÅÎÉÀ ËÏÎÃÁ ÔÅËÕÝÅÊ ÓÔÁÔØÉ (ÐÏÄÏÂÎÏ ÐÅÊÄÖÅÒÕ rn)\n"
-
-#: src/lang.c:1519
-msgid	"Scrolling with <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	"ðÒÏËÒÕÔËÁ <PGDN>/<DOWN> ÄÏ ËÏÎÃÁ ÓÔÁÔØÉ, ÚÁÔÅÍ ÐÅÒÅÈÏÄ ÎÁ ÓÌÅÄ. ÎÅÐÒÏÞ. "
-	"ÓÔÁÔØÀ."
-
-#: src/lang.c:1520
-msgid	"PgDn goes to next unread article"
-msgstr	"PgDn - ÐÅÒÅÈÏÄ Ë ÓÌÅÄ. ÎÅÐÒÏÞ. ÓÔÁÔØÅ"
-
-#: src/lang.c:1521
-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:1527
-msgid	"List thread using right arrow key"
-msgstr	"òÁÚ×ÅÒÎÕÔØ ÄÉÓËÕÓÓÉÀ ÐÒÁ×ÏÊ ÓÔÒÅÌËÏÊ"
-
-#: src/lang.c:1528
-msgid	"# If ON automatically list thread when entering it using right arrow key.\n"
-msgstr	""
-
-#: src/lang.c:1532
-msgid	"Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:1533
-msgid	"Character to show deleted articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1534
-msgid	"# Character used to show that an art was deleted (default 'D')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1539
-msgid	"Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
-	"ÏÔÍÅÎÉÔØ."
-
-#: src/lang.c:1540
-msgid	"Character to show inrange articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ"
-
-#: src/lang.c:1541
-msgid	"# Character used to show that an art is in a range (default '#')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1546
-msgid	"Enter character to indicate that article will return. <CR> sets, <ESC> "
-	"cancels."
-msgstr	""
-
-#: src/lang.c:1547
-msgid	"Character to show returning arts"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÏÚ×Ò. ÓÔÁÔÅÊ"
+msgid   "Mark with D on selection screen"
+msgstr  ""
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  "õÎÉÞÔÏÖÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞ. ÓÔÁÔØÉ"
+
+#: src/lang.c:1448
+msgid   "Kill all arts & show with K"
+msgstr  "õÎÉÞÔÏÖÁÔØ ×ÓÅ ÓÔÁÔØÉ É ÐÏËÁÚ. Ó K"
+
+#. TODO: s/K/art_marked_killed/
+#: src/lang.c:1449
+msgid   "Kill all arts and never show"
+msgstr  "õÎÉÞÔÏÖÁÔØ ×ÓÅ ÓÔÁÔØÉ É ÎÅ ÐÏËÁÚ."
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  "îÉÞÅÇÏ ÏÓÏÂÅÎÎÏÇÏ"
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  "óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ"
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ"
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  "óÖÉÍÁÔØ ÓÉÇÎÁÔÕÒÙ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ"
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  "óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  "óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  "ÎÅÔ"
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  "Ó ÚÁÇÏÌÏ×ËÁÍÉ"
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  "ÂÅÚ ÚÁÇÏÌÏ×ËÏ×"
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  ""
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  ""
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  ""
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  ""
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  "ïÐÃÉÉ ×Ù×ÏÄÁ"
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  "ïÐÃÉÉ ÒÁÂÏÔÙ Ó Ã×ÅÔÏÍ"
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  ""
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  "ïÐÃÉÉ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ/ÐÉÓÅÍ"
 
 #: src/lang.c:1548
-msgid	"# Character used to show that an art will return (default '-')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1553
-msgid	"Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
+msgid   "Saving/Printing Options"
+msgstr  "ïÐÃÉÉ ÓÏÈÒÁÎÅÎÉÑ É ÐÅÞÁÔÉ"
 
 #: src/lang.c:1554
-msgid	"Character to show selected articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1555
-msgid	"# Character used to show that an art was auto-selected (default '*')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+msgid   "Expert Options"
+msgstr  "üËÓÐÅÒÔÎÙÅ ÏÐÃÉÉ"
 
 #: src/lang.c:1560
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
+msgid   "Filtering Options"
+msgstr  "ïÐÃÉÉ ÆÉÌØÔÒÁÃÉÉ"
 
-#: src/lang.c:1561
-msgid	"Character to show recent articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1562
-msgid	"# Character used to show that an art is recent (default 'o')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÏÊ ÓÔÁÔØÉ (ÐÏ ÕÍÏÌÞÁÎÉÀ 'o')\n"
-	"# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n"
+#: src/lang.c:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "<ðòïâåì> ×ÙÂÒÁÔØ, <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÍÉÎÉ-ÍÅÎÀ É ÜÔÉËÅÔ ÏÂÝÅÎÉÑ"
 
 #: src/lang.c:1567
-msgid	"Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:1568
-msgid	"Character to show unread articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1569
-msgid	"# Character used to show that an art is unread (default '+')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔØÉ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÏÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ '+')\n"
-	"# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n"
+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:1572
+msgid   "Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
+msgstr  "ðÏËÁÚÙ×ÁÔØ ËÏÒÏÔËÏÅ ÏÐÉÓÁÎÉÑ ÄÌÑ ËÁÖÄÏÊ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1573
+msgid   "Show description of each newsgroup"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐ"
 
 #: src/lang.c:1574
-msgid	"Enter character to indicate read articles. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:1575
-msgid	"Character to show read articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1576
-msgid	"# Character used to show that an art was read (default ' ')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÏÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ ' ')\n"
-	"# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n"
+msgid   "# If ON show group description text after newsgroup name at\n"
+        "# group selection level\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÏÐÉÓÁÎÉÅ ÇÒÕÐÐÙ ÐÏÓÌÅ ÉÍÅÎÉ ÇÒÕÐÐÙ ×\n"
+        "# ÒÅÖÉÍÅ ×ÙÂÏÒÁ ÇÒÕÐÐÙ\n"
+
+#: src/lang.c:1579
+msgid   "Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
+        "sets."
+msgstr  "÷Ù×ÏÄ ôÅÍÙ É á×ÔÏÒÁ × ÍÅÎÀ ÇÒÕÐÐÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1580
+msgid   "In group menu, show author by"
+msgstr  "÷ ÍÅÎÀ ÇÒÕÐÐÙ ÐÏËÁÚÁÔØ Á×ÔÏÒÁ ËÁË"
 
 #: src/lang.c:1581
-msgid	"Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:1582
-msgid	"Character to show killed articles"
-msgstr	"óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1583
-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:1588
-msgid	"Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1589
-msgid	"Character to show readselected arts"
-msgstr	""
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  "# ÷Ù×ÏÄÉÔØ ÞÁÓÔØ ÐÏÌÑ From:\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = ÎÉÞÅÇÏ\n"
+        "#   1 = ÁÄÒÅÓ\n"
+        "# * 2 = ÐÏÌÎÏÅ ÉÍÑ\n"
+        "#   3 = ÁÄÒÅÓ É ÐÏÌÎÏÅ ÉÍÑ\n"
 
 #: src/lang.c:1590
-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:1595
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	"íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1596
-msgid	"Max. length of group names shown"
-msgstr	"íÁËÓ. ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ"
+msgid   "Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
+msgstr  "÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  "÷Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ."
+
+#: src/lang.c:1592
+msgid   "# If ON use -> otherwise highlighted bar for selection\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ -> ×ÍÅÓÔÏ ÐÏÄÓ×ÅÔËÉ × ÍÅÎÀ\n"
 
 #: src/lang.c:1597
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	"# íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ\n"
+msgid   "Use inverse video for page headers"
+msgstr  "éÎ×ÅÒÓÎÙÊ ×ÉÄÅÏ ÒÅÖÉÍ ÄÌÑ ÚÁÇÏÌÏ×ËÏ× ÓÔÒÁÎÉÃ"
 
-#: src/lang.c:1602
-msgid	"Show lines/score in listings"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÓÔÒÏËÉ/score × ÌÉÓÔÉÎÇÅ"
+#: src/lang.c:1598
+msgid   "# If ON use inverse video for page headers at different levels\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎ×ÅÒÓÉÀ Ã×ÅÔÏ× ÄÌÑ ÚÁÇÏÌÏ×ËÏ× ÎÁ\n"
+        "# ÒÁÚÌÉÞÎÙÈ ÕÒÏ×ÎÑÈ\n"
 
 #: src/lang.c:1603
-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	"# ëÁËÁÑ ÉÎÆÏÒÍÁÃÉÑ ÄÏÌÖÎÁ ×Ù×ÏÄÉÔÓÑ × ÓÐÉÓËÅ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n"
-	"# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = ÎÉÞÅÇÏ\n"
-	"# * 1 = ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË\n"
-	"#   2 = score\n"
-	"#   3 = ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË É score\n"
-
-#: src/lang.c:1612
-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:1613
-msgid	"Number of lines to scroll in pager"
-msgstr	"þÉÓÌÏ ÓÔÒÏË ÐÒÏËÒÕÔËÉ × ÐÅÊÄÖÅÒÅ"
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	""
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	"÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	"÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ"
-
-#: src/lang.c:1626
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	"# åÓÌÉ OFF, ÔÏ ÎÅ ×Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ ÐÒÉ ×Ù×ÏÄÅ ÓÔÁÔÅÊ\n"
+msgid   "Thread articles by"
+msgstr  "çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ"
+
+#: src/lang.c:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  "# çÒÕÐÐÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ...\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = ÎÉÞÅÇÏ\n"
+        "#   1 = ôÅÍÁ\n"
+        "#   2 = References\n"
+        "# * 3 = ïÂÁ (ôÅÍÁ É References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = óÏ×ÐÁÄÅÎÉÅ ÐÏ ÐÒÏÃÅÎÔÁÍ\n"
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ÎÅÏÂÈÏÄÉÍÙÊ ÐÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÌÑ ÏÂßÅÄÉÎÅÎÉÑ × ÄÉÓËÕÓÓÉÀ. <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  "ðÒÏÃÅÎÔ ÓÏ×ÐÁÄÅÎÉÑ ÄÉÓËÕÓÓÉÉ"
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  ""
+
+#: src/lang.c:1629
+msgid   "Score of a thread"
+msgstr  "Score ÄÉÓËÕÓÓÉÉ"
 
 #: src/lang.c:1630
-msgid	"Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
-msgstr	"÷Ù×ÏÄÉÔØ UUE ÚÁËÏÄÉÒÏ×ÁÎÎÙÅ ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1631
-msgid	"Display uue data as an attachment"
-msgstr	"÷Ù×ÏÄÉÔØ UUE ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ"
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	""
-
-#: src/lang.c:1642
-msgid	"Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	"÷Ù×ÏÄÉÔØ \"a ËÁË Umlaut-a"
-
-#: src/lang.c:1644
-msgid	"# If ON decode German style TeX umlaut codes to ISO and\n"
-	"# show \"a as Umlaut-a, etc.\n"
-msgstr	""
-
-#: src/lang.c:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	"óÐÉÓÏË ÐÏÌÅÊ ÚÁÇÏÌÏ×ËÁ, ÒÁÚÄÅÌ£ÎÎÙÅ ÐÒÏÂÅÌÁÍÉ"
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÜÔÉ ÐÏÌÑ ÚÁÇÏÌÏ×ËÁ (ÉÌÉ *)"
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1660
-msgid	"Do not display these header fields"
-msgstr	"îÅ ÐÏËÁÚÙ×ÁÔØ ÜÔÉ ÐÏÌÑ ÚÁÇÏÌÏ×ËÁ"
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1671
-msgid	"Do you want to enable automatic handling of multipart/alternative articles?"
-msgstr	"èÏÔÉÔÅ ×ËÌÀÞÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÕÀ ÏÂÒÁÂÏÔËÕ multipart/alternative ÓÔÁÔÅÊ?"
-
-#: src/lang.c:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	"ðÒÏÐÕÓËÁÔØ multipart/alternative ÞÁÓÔÉ"
-
-#: src/lang.c:1673
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	""
-
-#: src/lang.c:1678
-msgid	"A regex used to decide which lines to show in col_quote."
-msgstr	""
-
-#: src/lang.c:1679
-msgid	"Regex used to show quoted lines"
-msgstr	"çÅÇ. ×ÙÒ. ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
-
-#: src/lang.c:1680
-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:1686
-msgid	"A regex used to decide which lines to show in col_quote2."
-msgstr	""
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  "# Score ÄÉÓËÕÓÓÉÉ\n"
+        "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "# * 0 = max\n"
+        "#   1 = ÓÕÍÍÁ\n"
+        "#   2 = ÓÒÅÄÎÅÅ\n"
+
+#: src/lang.c:1638
+msgid   "Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
+msgstr  "óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ ôÅÍÅ, From, äÁÔÅ ÉÌÉ Score. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1639
+msgid   "Sort articles by"
+msgstr  "óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ"
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  "# óÏÒÔÉÒÏ×ÁÔØ ÓÔÁÔØÉ ÐÏ...\n"
+        "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = ÎÉÞÅÇÏ\n"
+        "#   1 = ôÅÍÁ ÐÏ ÕÂÙ×ÁÎÉÀ\n"
+        "#   2 = ôÅÍÁ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
+        "#   3 = From ÐÏ ÕÂÙ×ÁÎÉÀ\n"
+        "#   4 = From ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
+        "#   5 = äÁÔÁ ÐÏ ÕÂÙ×ÁÎÉÀ\n"
+        "# * 6 = äÁÔÁ ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
+        "#   7 = Score ÐÏ ÕÂÙ×ÁÎÉÀ\n"
+        "#   8 = Score ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
+        "#   9 = ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË ÐÏ ÕÂÙ×ÁÎÉÀ\n"
+        "#  10 = ëÏÌÉÞÅÓÔ×Ï ÓÔÒÏË ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
+
+#: src/lang.c:1656
+msgid   "Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
+msgstr  "îÅ ÓÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÉÌÉ ÓÏÒÔÉÒÏ×ÁÔØ ÐÏ Score. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1657
+msgid   "Sort threads by"
+msgstr  "óÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÉ ÐÏ"
+
+#: src/lang.c:1658
+#, 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  "# óÏÒÔÉÒÏ×ÁÔØ ÄÉÓËÕÓÓÉÀ ÐÏ...\n"
+        "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = ÎÉÞÅÇÏ\n"
+        "# * 1 = Score ÐÏ ÕÂÙ×ÁÎÉÀ\n"
+        "#   2 = Score ÐÏ ×ÏÚÒÁÓÔÁÎÉÀ\n"
+
+#: src/lang.c:1668
+msgid   "Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
+msgstr  "õÓÔ. ËÕÒÓÏÒ ÎÁ ÐÅÒ×ÕÀ/ÐÏÓÌÅÄ. ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÀ × ÇÒÕÐÐÁÈ. <ðòïâåì> ×ÙÂÏÒ, "
+        "<CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1669
+#, fuzzy
+msgid   "Go to first unread article in group"
+msgstr  "ðÅÒÅÊÔÉ Ë ÐÅÒ×ÏÊ ÎÅÐÒÏÞ. ÓÔÁÔØÅ × ÇÒÕÐÐÅ"
+
+#: src/lang.c:1670
+msgid   "# If ON put cursor at first unread art in group otherwise last art\n"
+msgstr  "# åÓÌÉ ON ÔÏ ÐÅÒÅÊÔÉ Ë ÐÅÒ×ÏÊ ÎÅÐÒÏÞÉÔÁÎÎÏÊ ÓÔÁÔØÅ × ÇÒÕÐÐÅ,\n"
+        "# ÉÎÁÞÅ Ë ÐÅÒÅÊÔÉ Ë ÐÏÓÌÅÄÎÅÊ.\n"
+
+#: src/lang.c:1674
+msgid   "Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
+msgstr  "ðÏËÁÚÙ×ÁÔØ ×ÓÅ ÓÔÁÔØÉ ÉÌÉ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1675
+msgid   "Show only unread articles"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞÉÔ. ÓÔÁÔØÉ"
+
+#: src/lang.c:1676
+msgid   "# If ON show only new/unread articles otherwise show all.\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÎÏ×ÙÅ/ÎÅÐÒÏÞÉÔÁÎÎÙÅ ÓÔÁÔØÉ,\n"
+        "# ÉÎÁÞÅ ÐÏËÁÚÙ×ÁÔØ ×ÓÅ.\n"
+
+#: src/lang.c:1681
+msgid   "Show only groups with unread arts"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÇÒÕÐÐÙ Ó ÎÅÐÒÏÞ. ÓÔÁÔØÑÍÉ"
+
+#: src/lang.c:1682
+msgid   "# If ON show only subscribed to groups that contain unread articles.\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÔÏÌØËÏ ÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ Ó ÎÅÐÒÏÞÔ£ÎÎÙÍÉ ÓÔÁÔØÑÍÉ.\n"
 
 #: src/lang.c:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	"òÅÇ. ×ÙÒ. ÄÌÑ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+msgid   "Filter which articles"
+msgstr  "óÔÁÔØÉ ÄÌÑ ÆÉÌØÔÒÁÃÉÉ"
 
 #: src/lang.c:1688
-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:1694
-msgid	"A regex used to decide which lines to show in col_quote3."
-msgstr	""
-
-#: src/lang.c:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	"òÅÇ. ×ÙÒ. ÄÌÑ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË >= 3 ÒÁÚ"
-
-#: src/lang.c:1696
-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:1703
-msgid	"A regex used to decide which words to show in col_markslashes."
-msgstr	""
-
-#: src/lang.c:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	"òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/"
-
-#: src/lang.c:1705
-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:1711
-msgid	"A regex used to decide which words to show in col_markstars."
-msgstr	""
-
-#: src/lang.c:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	"òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ *ÔÅËÓÔÁ*"
-
-#: src/lang.c:1713
-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:1719
-msgid	"A regex used to decide which words to show in col_markstroke."
-msgstr	""
-
-#: src/lang.c:1720
-msgid	"Regex used to highlight -strokes-"
-msgstr	"òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ -ÔÅËÓÔÁ-"
-
-#: src/lang.c:1721
-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	""
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  ""
+
+#: src/lang.c:1697
+msgid   "Go to the next unread article with"
+msgstr  ""
+
+#: src/lang.c:1698
+msgid   "# Go to the unread article with following 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:1708
+#, fuzzy
+msgid   "How to treat blank lines"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ"
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  "òÁÚ×ÅÒÎÕÔØ ÄÉÓËÕÓÓÉÀ ÐÒÁ×ÏÊ ÓÔÒÅÌËÏÊ"
 
 #: src/lang.c:1727
-msgid	"A regex used to decide which words to show in col_markdash."
-msgstr	""
+msgid   "# If ON automatically list thread when entering it using right arrow key.\n"
+msgstr  ""
 
-#: src/lang.c:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	"òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ _ÔÅËÓÔÁ_"
-
-#: src/lang.c:1729
-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:1735
-msgid	"A regex used to find Subject prefixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1736
-msgid	"Regex with Subject prefixes"
-msgstr	""
-
-#: src/lang.c:1737
-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:1742
-msgid	"A regex used to find Subject suffixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1743
-msgid	"Regex with Subject suffixes"
-msgstr	""
-
-#: src/lang.c:1744
-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:1749
-msgid	"Enter name and options for external MIME viewer, --internal for built-in "
-	"viewer"
-msgstr	"÷×ÅÄÉÔÅ ÉÍÑ É ÏÐÃÉÉ ÄÌÑ ×ÎÅÛÎÅÇÏ ÐÒÏÓÍÏÔÒ. MIME, --internal ÄÌÑ ×ÓÔÒÏÅÎÎÏÇÏ "
-	"ÐÒÏÓÍÏÔÒ."
-
-#: src/lang.c:1750
-msgid	"MIME binary content viewer"
-msgstr	"ðÒÏÓÍÏÔÏÒÝÉË ÓÏÄÅÒÖÉÍÏÇÏ Ä×ÏÉÞÎÏÇÏ MIME"
-
-#: src/lang.c:1751
-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:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	"ðÏÄÔ×ÅÒÖÄÁÔØ ÓÔÁÒÔ ÐÒÏÓÍÏÔÏÒÝÉËÁ ÎÅÔÅËÓÔÏ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ"
+#: src/lang.c:1731
+msgid   "Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:1732
+msgid   "Character to show deleted articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÄÁÌ£ÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:1733
+msgid   "# Character used to show that an art was deleted (default 'D')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1738
+msgid   "Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
+        "ÏÔÍÅÎÉÔØ."
+
+#: src/lang.c:1739
+msgid   "Character to show inrange articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ"
+
+#: src/lang.c:1740
+msgid   "# Character used to show that an art is in a range (default '#')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1745
+msgid   "Enter character to indicate that article will return. <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:1746
+msgid   "Character to show returning arts"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÏÚ×Ò. ÓÔÁÔÅÊ"
+
+#: src/lang.c:1747
+msgid   "# Character used to show that an art will return (default '-')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1752
+msgid   "Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:1753
+msgid   "Character to show selected articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ×ÙÂÒÁÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:1754
+msgid   "# Character used to show that an art was auto-selected (default '*')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1759
-msgid	"Ask before using MIME viewer"
-msgstr	"óÐÒÏÓÉÔØ ÏÂ ÉÓÐÏÌ. ÐÒÏÓÍÏÔÒ. MIME"
+msgid   "Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
 
 #: src/lang.c:1760
-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:1765
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	"óÐÒÏÓÉÔØ ÏÂ ÏÔÍÅÔËÅ ÇÒÕÐÐ ËÁË ÐÒÏÞÉÔ. ÐÒÉ ×ÙÈÏÄÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
+msgid   "Character to show recent articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:1761
+msgid   "# Character used to show that an art is recent (default 'o')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÏ×ÏÊ ÓÔÁÔØÉ (ÐÏ ÕÍÏÌÞÁÎÉÀ 'o')\n"
+        "# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n"
 
 #: src/lang.c:1766
-msgid	"Catchup read groups when quitting"
-msgstr	""
+msgid   "Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ××ÏÄ, <ESC> ÏÔÍÅÎÁ."
 
 #: src/lang.c:1767
-msgid	"# If ON ask user if read groups should all be marked read\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÓÐÒÏÓÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÏÌÖÎÙ ÌÉ ÂÙÔØ ×ÓÅ ÇÒÕÐÐÙ\n"
-	"# ÐÏÍÅÞÅÎÙ ËÁË ÐÒÏÞÔ£ÎÎÙÅ.\n"
-
-#: src/lang.c:1772
-msgid	"Catchup group using left key"
-msgstr	""
+msgid   "Character to show unread articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÎÅÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:1768
+msgid   "# Character used to show that an art is unread (default '+')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔØÉ ËÁË ÎÅÐÒÏÞÉÔÁÎÎÏÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ '+')\n"
+        "# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n"
 
 #: src/lang.c:1773
-msgid	"# If ON catchup group/thread when leaving with the left arrow key.\n"
-msgstr	""
+msgid   "Enter character to indicate read articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: src/lang.c:1778
-msgid	"Catchup thread by using left key"
-msgstr	""
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	"ëÁËÉÅ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÀÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ"
-
-#: src/lang.c:1785
-msgid	"# What should we ask confirmation for.\n"
-msgstr	"# ëÁËÉÅ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÀÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ.\n"
-
-#: src/lang.c:1790
-msgid	"'Mark article read' ignores tags"
-msgstr	""
-
-#: src/lang.c:1791
-msgid	"# If ON the 'Mark article read' function marks only the current article.\n"
-msgstr	""
+#: src/lang.c:1774
+msgid   "Character to show read articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÐÒÏÞÉÔÁÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:1775
+msgid   "# Character used to show that an art was read (default ' ')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÏÊ (ÐÏ ÕÍÏÌÞÁÎÉÀ ' ')\n"
+        "# _ ÚÁÍÅÎÑÅÔÓÑ ÎÁ ' '\n"
+
+#: src/lang.c:1780
+msgid   "Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:1781
+msgid   "Character to show killed articles"
+msgstr  "óÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÕÎÉÞÔÏÖÅÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:1782
+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:1787
+msgid   "Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1788
+msgid   "Character to show readselected arts"
+msgstr  ""
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  "íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:1795
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	"ðÒÏÇÒÁÍÍÙ ÄÌÑ ÏÔËÒÙÔÉÑ URL. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
+msgid   "Max. length of group names shown"
+msgstr  "íÁËÓ. ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ"
 
 #: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	"ðÒÏÇÒÁÍÍÁ ÄÌÑ ÏÔËÒÙÔÉÑ URL"
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  "# íÁËÓÉÍÁÌØÎÁÑ ÄÌÉÎÁ ÉÍ£Î ÇÒÕÐÐ ÐÒÉ ×Ù×ÏÄÅ\n"
 
-#: src/lang.c:1797
-msgid	"# The program used to open URL's. The actual URL will be appended\n"
-msgstr	"# ðÒÏÇÒÁÍÍÁ ÄÌÑ ÏÔËÒÙÔÉÑ URL. óÁÍ URL ÂÕÄÅÔ ÄÏÂÁ×ÌÅÎ × ËÏÎÅÃ\n"
+#: src/lang.c:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  ""
 
 #: src/lang.c:1802
-msgid	"Use mouse in xterm"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ ÍÙÛØ × xterm"
-
-#: src/lang.c:1803
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÙÛØ × xterm ÔÅÒÍÉÎÁÌÁÈ\n"
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
 
 #: src/lang.c:1809
-msgid	"Use scroll keys on keypad"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÐÒÏËÒÕÔËÉ ÎÁ keypad"
+msgid   "Show lines/score in listings"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÓÔÒÏËÉ/score × ÌÉÓÔÉÎÇÅ"
 
 #: src/lang.c:1810
-msgid	"# If ON enable scroll keys on terminals that support it\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÐÒÏËÒÕÔËÉ ÎÁ ÎÅËÏÔÏÒÙÈ ÔÅÒÍÉÎÁÌÁÈ\n"
-
-#: src/lang.c:1815
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1816
-msgid	"Number of articles to get"
-msgstr	"þÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ"
-
-#: src/lang.c:1817
-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:1822
-msgid	"Enter number of days article is considered recent. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:1823
-msgid	"Article recentness time limit"
-msgstr	"ìÉÍÉÔ ×ÒÅÍÅÎÉ ÄÌÑ ÎÏ×ÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:1824
-msgid	"# Number of days in which article is considered recent, (0=OFF)\n"
-msgstr	"# þÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. (0=OFF)\n"
-
-#: src/lang.c:1828
-msgid	"WILDMAT for normal wildcards, REGEX for full regular expression matching."
-msgstr	"WILDMAT ÄÌÑ ÏÂÙÞÎÙÈ ÛÁÂÌÏÎÏ×, REGEX ÄÌÑ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ"
-
-#: src/lang.c:1829
-msgid	"Wildcard matching"
-msgstr	"ôÉÐ ÛÁÂÌÏÎÁ"
-
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	"# óÏÐÏÓÔÁ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
+msgid   "# What information 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  "# ëÁËÁÑ ÉÎÆÏÒÍÁÃÉÑ ÄÏÌÖÎÁ ×Ù×ÏÄÉÔÓÑ × ÓÐÉÓËÅ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n"
+        "# äÏÐÕÓÔÉÍÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = ÎÉÞÅÇÏ\n"
+        "# * 1 = ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË\n"
+        "#   2 = score\n"
+        "#   3 = ËÏÌÉÞÅÓÔ×Ï ÓÔÒÏË É score\n"
+
+#: src/lang.c:1819
+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:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  "þÉÓÌÏ ÓÔÒÏË ÐÒÏËÒÕÔËÉ × ÐÅÊÄÖÅÒÅ"
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  ""
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  "÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  "÷Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ"
+
+#: src/lang.c:1833
+msgid   "# If OFF don't show signatures when displaying articles\n"
+msgstr  "# åÓÌÉ OFF, ÔÏ ÎÅ ×Ù×ÏÄÉÔØ ÓÉÇÎÁÔÕÒÙ ÐÒÉ ×Ù×ÏÄÅ ÓÔÁÔÅÊ\n"
 
 #: src/lang.c:1837
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	""
+msgid   "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
+msgstr  "÷Ù×ÏÄÉÔØ UUE ÚÁËÏÄÉÒÏ×ÁÎÎÙÅ ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:1838
-msgid	"Score limit (kill)"
-msgstr	""
+msgid   "Display uue data as an attachment"
+msgstr  "÷Ù×ÏÄÉÔØ UUE ÄÁÎÎÙÅ ËÁË ×ÌÏÖÅÎÉÅ"
 
 #: src/lang.c:1839
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	""
-
-#: src/lang.c:1843
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1844
-msgid	"Default score to kill articles"
-msgstr	""
-
-#: src/lang.c:1845
-msgid	"# Default score to kill articles\n"
-msgstr	""
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  ""
 
 #: src/lang.c:1849
-msgid	"Enter minimal score before an article is marked hot. <CR> sets."
-msgstr	""
+msgid   "Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1850
-msgid	"Score limit (select)"
-msgstr	""
+msgid   "Display \"a as Umlaut-a"
+msgstr  "÷Ù×ÏÄÉÔØ \"a ËÁË Umlaut-a"
 
 #: src/lang.c:1851
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	""
-
-#: src/lang.c:1855
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1856
-msgid	"Default score to select articles"
-msgstr	""
+msgid   "# If ON decode German style TeX umlaut codes to ISO and\n"
+        "# show \"a as Umlaut-a, etc.\n"
+msgstr  ""
+
+#: src/lang.c:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  "óÐÉÓÏË ÐÏÌÅÊ ÚÁÇÏÌÏ×ËÁ, ÒÁÚÄÅÌ£ÎÎÙÅ ÐÒÏÂÅÌÁÍÉ"
 
 #: src/lang.c:1857
-msgid	"# Default score to select articles\n"
-msgstr	""
+msgid   "Display these header fields (or *)"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÜÔÉ ÐÏÌÑ ÚÁÇÏÌÏ×ËÁ (ÉÌÉ *)"
 
-#: src/lang.c:1863
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ slrnface ÄÌÑ ÐÏËÁÚÁ X_Face:"
-
-#: src/lang.c:1864
-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"
-	"# ÚÁÇÏÌÏ×ËÁ X-Face. ðÏÌØÚÎÏ ÔÏÌØËÏ ÐÏÄ xterm.\n"
-
-#: src/lang.c:1872
-msgid	"Use ANSI color"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ Ã×ÅÔ ANSI"
-
-#: src/lang.c:1873
-msgid	"# If ON using ANSI-color\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ Ã×ÅÔ ANSI\n"
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  ""
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  "îÅ ÐÏËÁÚÙ×ÁÔØ ÜÔÉ ÐÏÌÑ ÚÁÇÏÌÏ×ËÁ"
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  ""
 
 #: src/lang.c:1878
-msgid	"Standard foreground color"
-msgstr	"óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÓÉÍ×ÏÌÏ×"
+msgid   "Do you want to enable automatic handling of multipart/alternative articles?"
+msgstr  "èÏÔÉÔÅ ×ËÌÀÞÉÔØ Á×ÔÏÍÁÔÉÞÅÓËÕÀ ÏÂÒÁÂÏÔËÕ multipart/alternative ÓÔÁÔÅÊ?"
 
 #: src/lang.c:1879
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÓÉÍ×ÏÌÏ×\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
+msgid   "Skip multipart/alternative parts"
+msgstr  "ðÒÏÐÕÓËÁÔØ multipart/alternative ÞÁÓÔÉ"
+
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  ""
+
+#: src/lang.c:1884
+#, fuzzy
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  "äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:1885
-msgid	"Standard background color"
-msgstr	"óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÆÏÎÁ"
+msgid   "Detection of verbatim blocks"
+msgstr  ""
 
 #: src/lang.c:1886
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÆÏÎÁ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
+#, fuzzy
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÄÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ × ~/dead.articles\n"
+
+#: src/lang.c:1891
+msgid   "A regex used to decide which lines to show in col_quote."
+msgstr  ""
 
 #: src/lang.c:1892
-msgid	"Color for inverse text (background)"
-msgstr	"ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÆÏÎ)"
+msgid   "Regex used to show quoted lines"
+msgstr  "çÅÇ. ×ÙÒ. ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
 
 #: src/lang.c:1893
-msgid	"# Color of background for inverse text\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# ã×ÅÔ ÆÏÎÁ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
+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:1899
-msgid	"Color for inverse text (foreground)"
-msgstr	"ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÓÉÍ×ÏÌÙ)"
+msgid   "A regex used to decide which lines to show in col_quote2."
+msgstr  ""
 
 #: src/lang.c:1900
-msgid	"# Color of foreground for inverse text\n"
-	"# Default: 7 (white)\n"
-msgstr	"# ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÓÉÍ×ÏÌÙ)\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 7 (ÂÅÌÙÊ)\n"
-
-#: src/lang.c:1906
-msgid	"Color of text lines"
-msgstr	"ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË"
+msgid   "Regex used to show twice quoted l."
+msgstr  "òÅÇ. ×ÙÒ. ÄÌÑ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+
+#: src/lang.c:1901
+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:1907
-msgid	"# Color of text lines\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
-
-#: src/lang.c:1913
-msgid	"Color of mini help menu"
-msgstr	"ã×ÅÔ ÔÅËÓÔÁ ÍÅÎÀ ÍÉÎÉ-ÐÏÍÏÝÉ"
-
-#: src/lang.c:1914
-msgid	"# Color of mini help menu\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# ã×ÅÔ ÔÅËÓÔÁ ÍÉÎÉ-ÐÏÍÏÝÉ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ËÏÒÉÞÎÅ×ÙÊ)\n"
-
-#: src/lang.c:1920
-msgid	"Color of help text"
-msgstr	"ã×ÅÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ"
-
-#: src/lang.c:1921
-msgid	"# Color of help pages\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# ã×ÅÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
-
-#: src/lang.c:1927
-msgid	"Color of status messages"
-msgstr	"ã×ÅÔ ÓÔÁÔÕÓÎÙÈ ÓÏÏÂÝÅÎÉÊ"
-
-#: src/lang.c:1928
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	""
+msgid   "A regex used to decide which lines to show in col_quote3."
+msgstr  ""
 
-#: src/lang.c:1934
-msgid	"Color of quoted lines"
-msgstr	"ã×ÅÔ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  "òÅÇ. ×ÙÒ. ÄÌÑ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË >= 3 ÒÁÚ"
+
+#: src/lang.c:1909
+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:1916
+msgid   "A regex used to decide which words to show in col_markslashes."
+msgstr  ""
+
+#: src/lang.c:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/"
+
+#: src/lang.c:1918
+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:1924
+msgid   "A regex used to decide which words to show in col_markstars."
+msgstr  ""
+
+#: src/lang.c:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ *ÔÅËÓÔÁ*"
+
+#: src/lang.c:1926
+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:1932
+msgid   "A regex used to decide which words to show in col_markstroke."
+msgstr  ""
+
+#: src/lang.c:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ -ÔÅËÓÔÁ-"
 
-#: src/lang.c:1935
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# ã×ÅÔ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
+#: src/lang.c:1934
+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:1940
+msgid   "A regex used to decide which words to show in col_markdash."
+msgstr  ""
 
 #: src/lang.c:1941
-msgid	"Color of twice quoted line"
-msgstr	"ã×ÅÔ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+msgid   "Regex used to highlight _underline_"
+msgstr  "òÅÇ. ×ÙÒ. ÄÌÑ ×ÙÄÅÌÅÎÉÑ _ÔÅËÓÔÁ_"
 
 #: src/lang.c:1942
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# ã×ÅÔ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ËÏÒÉÞÎÅ×ÙÊ)\n"
+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:1948
-msgid	"Color of =>3 times quoted line"
-msgstr	"ã×ÅÔ >=3 ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+msgid   "A regex used to find Subject prefixes to remove.  Use '|' as separator."
+msgstr  ""
 
 #: src/lang.c:1949
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# ã×ÅÔ >=3 ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
+msgid   "Regex with Subject prefixes"
+msgstr  ""
+
+#: src/lang.c:1950
+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:1955
-msgid	"Color of article header lines"
-msgstr	"ã×ÅÔ ÓÔÒÏË ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔØÉ"
+msgid   "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr  ""
 
 #: src/lang.c:1956
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# ã×ÅÔ ÓÔÒÏË ÚÁÇÏÌÏ×ËÁ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
+msgid   "Regex with Subject suffixes"
+msgstr  ""
+
+#: src/lang.c:1957
+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:1962
-msgid	"Color of actual news header fields"
-msgstr	"ã×ÅÔ ÓÔÒÏË news ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔÅÊ"
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  ""
 
 #: src/lang.c:1963
-msgid	"# Color of actual news header fields\n"
-	"# Default: 9 (light red)\n"
-msgstr	"# ã×ÅÔ ÓÔÒÏË news ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔÅÊ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 9 (Ó×ÅÔÌÏ-ËÒÁÓÎÙÊ)\n"
+msgid   "Regex for begin of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  ""
 
 #: src/lang.c:1969
-msgid	"Color of article subject lines"
-msgstr	"ã×ÅÔ ÓÔÒÏË Ó ÔÅÍÏÊ ÓÔÁÔØÉ"
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  ""
 
 #: src/lang.c:1970
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# ã×ÅÔ ÓÔÒÏËÉ Ó ÔÅÍÏÊ ÓÔÁÔØÉ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (ÇÏÌÕÂÏÊ)\n"
+msgid   "Regex for end of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  ""
 
 #: src/lang.c:1976
-msgid	"Color of response counter"
-msgstr	"ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×"
+msgid   "Enter name and options for external MIME viewer, --internal for built-in "
+        "viewer"
+msgstr  "÷×ÅÄÉÔÅ ÉÍÑ É ÏÐÃÉÉ ÄÌÑ ×ÎÅÛÎÅÇÏ ÐÒÏÓÍÏÔÒ. MIME, --internal ÄÌÑ ×ÓÔÒÏÅÎÎÏÇÏ "
+        "ÐÒÏÓÍÏÔÒ."
 
 #: src/lang.c:1977
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	"# ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
-
-#: src/lang.c:1983
-msgid	"Color of sender (From:)"
-msgstr	"ã×ÅÔ ÓÔÒÏËÉ ÏÔÐÒÁ×ÉÔÅÌÑ From:"
-
-#: src/lang.c:1984
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	"# ã×ÅÔ ÓÔÒÏËÉ ÏÔÐÒÁ×ÉÔÅÌÑ (From:)\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
-
-#: src/lang.c:1990
-msgid	"Color of help/mail sign"
-msgstr	"ã×ÅÔ ÓÏÏÂÝÅÎÉÑ Ï ×ÙÚÏ×Å ÐÏÍÏÝÉ"
-
-#: src/lang.c:1991
-msgid	"# Color of Help/Mail-Sign\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# ã×ÅÔ Help/Mail-Sign\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
-
-#: src/lang.c:1997
-msgid	"Color of signatures"
-msgstr	"ã×ÅÔ ÓÉÇÎÁÔÕÒ"
-
-#: src/lang.c:1998
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# ã×ÅÔ ÓÉÇÎÁÔÕÒ\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
-
-#: src/lang.c:2004
-msgid	"Color of highlighted URLs"
-msgstr	"ã×ÅÔ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ URL"
+msgid   "MIME binary content viewer"
+msgstr  "ðÒÏÓÍÏÔÏÒÝÉË ÓÏÄÅÒÖÉÍÏÇÏ Ä×ÏÉÞÎÏÇÏ MIME"
+
+#: src/lang.c:1978
+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:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  "ðÏÄÔ×ÅÒÖÄÁÔØ ÓÔÁÒÔ ÐÒÏÓÍÏÔÏÒÝÉËÁ ÎÅÔÅËÓÔÏ×ÏÊ ÉÎÆÏÒÍÁÃÉÉ"
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  "óÐÒÏÓÉÔØ ÏÂ ÉÓÐÏÌ. ÐÒÏÓÍÏÔÒ. MIME"
+
+#: src/lang.c:1987
+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:1992
+msgid   "Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
+msgstr  "óÐÒÏÓÉÔØ ÏÂ ÏÔÍÅÔËÅ ÇÒÕÐÐ ËÁË ÐÒÏÞÉÔ. ÐÒÉ ×ÙÈÏÄÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:1993
+msgid   "Catchup read groups when quitting"
+msgstr  ""
+
+#: src/lang.c:1994
+msgid   "# If ON ask user if read groups should all be marked read\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÓÐÒÏÓÉÔØ ÐÏÌØÚÏ×ÁÔÅÌÑ ÄÏÌÖÎÙ ÌÉ ÂÙÔØ ×ÓÅ ÇÒÕÐÐÙ\n"
+        "# ÐÏÍÅÞÅÎÙ ËÁË ÐÒÏÞÔ£ÎÎÙÅ.\n"
+
+#: src/lang.c:1999
+msgid   "Catchup group using left key"
+msgstr  ""
+
+#: src/lang.c:2000
+msgid   "# If ON catchup group/thread when leaving with the left arrow key.\n"
+msgstr  ""
 
 #: src/lang.c:2005
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# ã×ÅÔ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ URL\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
+msgid   "Catchup thread by using left key"
+msgstr  ""
 
 #: src/lang.c:2011
-msgid	"Color of highlighting with *stars*"
-msgstr	"ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*"
+msgid   "Which actions require confirmation"
+msgstr  "ëÁËÉÅ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÀÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ"
 
 #: src/lang.c:2012
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	"# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 11 (Ö£ÌÔÙÊ)\n"
+msgid   "# What should we ask confirmation for.\n"
+msgstr  "# ëÁËÉÅ ÄÅÊÓÔ×ÉÑ ÔÒÅÂÕÀÔ ÐÏÄÔ×ÅÒÖÄÅÎÉÑ.\n"
+
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  ""
 
 #: src/lang.c:2018
-msgid	"Color of highlighting with _dash_"
-msgstr	"ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_"
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  ""
 
-#: src/lang.c:2019
-msgid	"# Color of word highlighting with _dash_\n"
-	"# Default: 13 (light pink)\n"
-msgstr	"# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 13 (Ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ)\n"
-
-#: src/lang.c:2025
-msgid	"Color of highlighting with /slash/"
-msgstr	"ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ /ÔÅËÓÔÁ/"
-
-#: src/lang.c:2026
-msgid	"# Color of word highlighting with /slash/\n"
-	"# Default: 14 (light cyan)\n"
-msgstr	"# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 14 (Ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ)\n"
-
-#: src/lang.c:2032
-msgid	"Color of highlighting with -stroke-"
-msgstr	"ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-"
-
-#: src/lang.c:2033
-msgid	"# Color of word highlighting with -stroke-\n"
-	"# Default: 12 (light blue)\n"
-msgstr	"# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ -ÔÅËÓÔÁ-\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 12 (Ó×ÅÔÌÏ-ÓÉÎÉÊ)\n"
-
-#: src/lang.c:2040
-msgid	"Attr. of highlighting with *stars*"
-msgstr	"áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*"
-
-#: src/lang.c:2041
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	"# áÔÒÉÂÕÔÙ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ ÓÌÏ× ÎÁ ÍÏÎÏÈÒÏÍÎÙÈ ÔÅÒÍÉÎÁÌÁÈ\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ:\n"
-	"#   0 = îÏÒÍÁÌØÎÙÊ\n"
-	"#   1 = ðÏÄÞ£ÒËÉ×ÁÎÉÅ\n"
-	"#   2 = ìÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ\n"
-	"#   3 = òÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ\n"
-	"#   4 = íÉÇÁÎÉÅ\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# áÔÒÉÂÕÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (bold)\n"
+#: src/lang.c:2022
+#, fuzzy
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  "ðÒÏÇÒÁÍÍÙ ÄÌÑ ÏÔËÒÙÔÉÑ URL. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
+
+#: src/lang.c:2023
+#, fuzzy
+msgid   "Program that opens URLs"
+msgstr  "ðÒÏÇÒÁÍÍÁ ÄÌÑ ÏÔËÒÙÔÉÑ URL"
+
+#: src/lang.c:2024
+#, fuzzy
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  "# ðÒÏÇÒÁÍÍÁ ÄÌÑ ÏÔËÒÙÔÉÑ URL. óÁÍ URL ÂÕÄÅÔ ÄÏÂÁ×ÌÅÎ × ËÏÎÅÃ\n"
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ ÍÙÛØ × xterm"
+
+#: src/lang.c:2030
+msgid   "# If ON enable mouse button support on xterm terminals\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÍÙÛØ × xterm ÔÅÒÍÉÎÁÌÁÈ\n"
+
+#: src/lang.c:2036
+msgid   "Use scroll keys on keypad"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÐÒÏËÒÕÔËÉ ÎÁ keypad"
+
+#: src/lang.c:2037
+msgid   "# If ON enable scroll keys on terminals that support it\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ËÌÁ×ÉÛÉ ÐÒÏËÒÕÔËÉ ÎÁ ÎÅËÏÔÏÒÙÈ ÔÅÒÍÉÎÁÌÁÈ\n"
+
+#: src/lang.c:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ÍÁËÓÉÍÁÌØÎÏÅ ÞÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  "þÉÓÌÏ ÓÔÁÔÅÊ ÄÌÑ ÚÁÇÒÕÚËÉ"
+
+#: src/lang.c:2044
+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:2049
+msgid   "Enter number of days article is considered recent. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2050
+msgid   "Article recentness time limit"
+msgstr  "ìÉÍÉÔ ×ÒÅÍÅÎÉ ÄÌÑ ÎÏ×ÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:2051
+msgid   "# Number of days in which article is considered recent, (0=OFF)\n"
+msgstr  "# þÉÓÌÏ ÄÎÅÊ, ÐÏËÁ ÓÔÁÔØÑ ÓÞÉÔÁÅÔÓÑ ÎÏ×ÏÊ. (0=OFF)\n"
+
+#: src/lang.c:2055
+msgid   "WILDMAT for normal wildcards, REGEX for full regular expression matching."
+msgstr  "WILDMAT ÄÌÑ ÏÂÙÞÎÙÈ ÛÁÂÌÏÎÏ×, REGEX ÄÌÑ ÒÅÇÕÌÑÒÎÙÈ ×ÙÒÁÖÅÎÉÊ"
 
 #: src/lang.c:2056
-msgid	"Attr. of highlighting with _dash_"
-msgstr	"áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_"
+msgid   "Wildcard matching"
+msgstr  "ôÉÐ ÛÁÂÌÏÎÁ"
 
 #: src/lang.c:2057
-msgid	"# Attribute of word highlighting with _dash_\n"
-	"# Default: 2 (best highlighting)\n"
-msgstr	"# áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÌÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ)\n"
-
-#: src/lang.c:2063
-msgid	"Attr. of highlighting with /slash/"
-msgstr	"áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ /ÔÅËÓÔÁ/"
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  "# óÏÐÏÓÔÁ×ÌÅÎÉÅ Ó ÛÁÂÌÏÎÏÍ\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
 
 #: src/lang.c:2064
-msgid	"# Attribute of word highlighting with /slash/\n"
-	"# Default: 5 (half bright)\n"
-msgstr	"# áÔÒÉÂÕÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 5 (half bright)\n"
+msgid   "Enter minimal score before an article is marked killed. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2065
+msgid   "Score limit (kill)"
+msgstr  ""
+
+#: src/lang.c:2066
+msgid   "# Score limit before an article is marked killed\n"
+msgstr  ""
 
 #: src/lang.c:2070
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	"áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-"
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2071
-msgid	"# Attribute of word highlighting with -stroke-\n"
-	"# Default: 3 (reverse video)\n"
-msgstr	"# áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-\n"
-	"# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ÒÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ)\n"
+msgid   "Default score to kill articles"
+msgstr  ""
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  ""
+
+#: src/lang.c:2076
+msgid   "Enter minimal score before an article is marked hot. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2077
-msgid	"URL highlighting in message body"
-msgstr	"ðÏÄÓ×ÅÞÉ×ÁÔØ URL × ÔÅÌÅ ÐÉÓØÍÁ"
+msgid   "Score limit (select)"
+msgstr  ""
 
 #: src/lang.c:2078
-msgid	"# Enable URL highlighting?\n"
-msgstr	"# ÷ËÌÀÞÉÔØ ÐÏÄÓ×ÅÔËÕ URL?\n"
+msgid   "# Score limit before an article is marked hot\n"
+msgstr  ""
+
+#: src/lang.c:2082
+msgid   "Enter default score to select articles. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2083
-msgid	"Word highlighting in message body"
-msgstr	"ðÏÄÓ×ÅÞÉ×ÁÔØ ÓÌÏ×Á × ÔÅÌÅ ÓÏÏÂÝÅÎÉÑ"
+msgid   "Default score to select articles"
+msgstr  ""
 
 #: src/lang.c:2084
-msgid	"# Enable word highlighting?\n"
-msgstr	"# ÷ËÌÀÞÉÔØ ÐÏÄÓ×ÅÔËÕ ÓÌÏ×?\n"
-
-#: src/lang.c:2089
-msgid	"What to display instead of mark"
-msgstr	"÷Ù×ÏÄÉÔØ ×ÍÅÓÔÏ ÏÔÍÅÔËÉ"
+msgid   "# Default score to select articles\n"
+msgstr  ""
 
 #: src/lang.c:2090
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	""
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ slrnface ÄÌÑ ÐÏËÁÚÁ X_Face:"
+
+#: src/lang.c:2091
+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"
+        "# ÚÁÇÏÌÏ×ËÁ X-Face. ðÏÌØÚÎÏ ÔÏÌØËÏ ÐÏÄ xterm.\n"
 
 #: src/lang.c:2099
-msgid	"Enter column number to wrap article lines to in the pager. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÍÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
+msgid   "Use ANSI color"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ Ã×ÅÔ ANSI"
 
 #: src/lang.c:2100
-msgid	"Page line wrap column"
-msgstr	"íÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ"
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ Ã×ÅÔ ANSI\n"
 
-#: src/lang.c:2101
-msgid	"# Wrap article lines at column\n"
-msgstr	""
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  "óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÓÉÍ×ÏÌÏ×"
 
 #: src/lang.c:2106
-msgid	"Wrap around threads on next unread"
-msgstr	""
-
-#: src/lang.c:2107
-msgid	"# If ON wrap around threads on searching next unread article\n"
-msgstr	""
-
-#: src/lang.c:2111
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ). <CR> ÕÓÔÁÎÏ×ÉÔØ."
+msgid   "# Standard foreground color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÓÉÍ×ÏÌÏ×\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
 
 #: src/lang.c:2112
-msgid	"Mail address (and fullname)"
-msgstr	"Email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ)"
+msgid   "Standard background color"
+msgstr  "óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÆÏÎÁ"
 
 #: src/lang.c:2113
-msgid	"# User's mail address (and fullname), if not username@host (fullname)\n"
-msgstr	"# Email ÁÄÒÅÓ ÐÏÌØÚÏ×ÁÔÅÌÑ (É ÐÏÌÎÏÅ ÉÍÑ).\n"
-
-#: src/lang.c:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	"ðÏËÁÚÙ×ÁÔØ ÐÕÓÔÏÊ Followup-To × ÒÅÄÁËÔÏÒÅ"
+msgid   "# Standard background color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# óÔÁÎÄÁÒÔÎÙÊ Ã×ÅÔ ÆÏÎÁ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
 
 #: src/lang.c:2119
-msgid	"# If ON show empty Followup-To header when editing an article\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÐÕÓÔÏÊ Follow-up ×Ï ×ÒÅÍÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÓÔÁÔØÉ\n"
+msgid   "Color for inverse text (background)"
+msgstr  "ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÆÏÎ)"
 
-#: src/lang.c:2123
-msgid	"Enter path/! command/--none to create your default signature. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÐÕÔØ/! ËÏÍÁÎÄÁ/--none ÄÌÑ ÓÏÚÄÁÎÉÑ ×ÁÛÅÊ ÓÉÇÎÁÔÕÒÙ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2124
-msgid	"Create signature from path/command"
-msgstr	"óÏÚÄÁÔØ ÓÉÇÎÁÔÕÒÕ ËÏÍÁÎÄÏÊ"
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	""
-
-#: src/lang.c:2132
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	"îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\" × ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
+#: src/lang.c:2120
+msgid   "# Color of background for inverse text\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# ã×ÅÔ ÆÏÎÁ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
+
+#: src/lang.c:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  "ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÓÉÍ×ÏÌÙ)"
+
+#: src/lang.c:2127
+msgid   "# Color of foreground for inverse text\n"
+        "# Default: 7 (white)\n"
+msgstr  "# ã×ÅÔ ÄÌÑ ÉÎ×ÅÒÓÎÏÇÏ ÔÅËÓÔÁ (ÓÉÍ×ÏÌÙ)\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 7 (ÂÅÌÙÊ)\n"
 
 #: src/lang.c:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	"îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\""
+msgid   "Color of text lines"
+msgstr  "ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË"
 
 #: src/lang.c:2134
-msgid	"# If ON prepend the signature with dashes '\\n-- \\n'\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÎÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó ÄÅÆÉÓÏ× '\\n-- \\n'\n"
-
-#: src/lang.c:2138
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	"äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2139
-msgid	"Add signature when reposting"
-msgstr	"äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ"
+msgid   "# Color of text lines\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
 
 #: src/lang.c:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ\n"
-
-#: src/lang.c:2144
-#, c-format
-msgid	"Enter quotation marks, %s or %S for author's initials."
-msgstr	"÷×ÅÄÉÔÅ ÓÉÍ×ÏÌÙ ÄÌÑ ÎÁÞÁÌÁ ÃÉÔÉÒÏ×ÁÎÉÑ, %s ÉÌÉ %S ÉÎÉÃÉÁÌÙ Á×ÔÏÒÁ."
+msgid   "Color of mini help menu"
+msgstr  "ã×ÅÔ ÔÅËÓÔÁ ÍÅÎÀ ÍÉÎÉ-ÐÏÍÏÝÉ"
 
-#: src/lang.c:2145
-msgid	"Characters used as quote-marks"
-msgstr	"óÉÍ×ÏÌÙ ÉÓÐÏÌØÚÕÅÍÙÅ ÄÌÑ ÎÁÞÁÌÁ ÃÉÔÉÒÏ×ÁÎÉÑ"
-
-#: src/lang.c:2146
-#, 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:2152
-msgid	"Quoting behavior"
-msgstr	"ãÉÔÉÒÏ×ÁÎÉÅ"
-
-#: src/lang.c:2153
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	"# íÅÔÏÄ ÃÉÔÉÒÏ×ÁÎÉÑ ÓÔÁÔÅÊ ÐÒÉ ÏÔ×ÅÔÅ.\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = îÉÞÅÇÏ ÏÓÏÂÅÎÎÏÇÏ\n"
-	"#   1 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ\n"
-	"#   2 = ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ\n"
-	"#   3 = óÖÉÍÁÔØ ÓÉÇÎÁÔÕÒÙ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ\n"
-	"#   4 = ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
-	"# * 5 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
-	"#   6 = ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
-	"#   7 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-msgid	"%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
-msgstr	""
-
-#: src/lang.c:2167
-msgid	"Quote line when following up"
-msgstr	"ãÉÔÉÒÏ×ÁÔØ ÐÒÉ follow-up"
+#: src/lang.c:2141
+msgid   "# Color of mini help menu\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# ã×ÅÔ ÔÅËÓÔÁ ÍÉÎÉ-ÐÏÍÏÝÉ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ËÏÒÉÞÎÅ×ÙÊ)\n"
+
+#: src/lang.c:2147
+msgid   "Color of help text"
+msgstr  "ã×ÅÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ"
+
+#: src/lang.c:2148
+msgid   "# Color of help pages\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# ã×ÅÔ ÔÅËÓÔÁ ÐÏÍÏÝÉ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
+
+#: src/lang.c:2154
+msgid   "Color of status messages"
+msgstr  "ã×ÅÔ ÓÔÁÔÕÓÎÙÈ ÓÏÏÂÝÅÎÉÊ"
+
+#: src/lang.c:2155
+msgid   "# Color of messages in last line\n"
+        "# Default: 6 (cyan)\n"
+msgstr  ""
+
+#: src/lang.c:2161
+msgid   "Color of quoted lines"
+msgstr  "ã×ÅÔ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+
+#: src/lang.c:2162
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# ã×ÅÔ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
 
 #: src/lang.c:2168
-#, 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	""
+msgid   "Color of twice quoted line"
+msgstr  "ã×ÅÔ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
+
+#: src/lang.c:2169
+msgid   "# Color of twice quoted lines\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# ã×ÅÔ Ä×ÁÖÄÙ ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ËÏÒÉÞÎÅ×ÙÊ)\n"
 
 #: src/lang.c:2175
-msgid	"Quote line when cross-posting"
-msgstr	"ãÉÔÉÒÏ×ÁÔØ ÐÒÉ ËÒÏÓÓ-ÐÏÓÔÉÎÇÅ"
+msgid   "Color of =>3 times quoted line"
+msgstr  "ã×ÅÔ >=3 ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË"
 
-#: src/lang.c:2181
-msgid	"Quote line when mailing"
-msgstr	"ãÉÔÉÒÏ×ÁÔØ ÐÒÉ ÏÔÐÒÁ×ËÅ email"
-
-#: src/lang.c:2186
-msgid	"If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
-msgstr	"åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2187
-msgid	"Insert 'User-Agent:'-header"
-msgstr	"äÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:"
-
-#: src/lang.c:2188
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÒÅËÌÁÍÎÙÊ ÚÁÇÏÌÏ×ÏË User-Agent:\n"
-
-#: src/lang.c:2193
-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:2194
-msgid	"MM_CHARSET"
-msgstr	""
-
-#: src/lang.c:2195
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	""
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	""
-
-#: src/lang.c:2206
-msgid	"# Charset used for MIME (Content-Type) header in postings.\n"
-msgstr	"# ëÏÄÉÒÏ×ËÁ × MIME (Content-Type) × ÏÔÐÒÁ×ÌÑÅÍÙÈ ÓÔÁÔØÑÈ.\n"
-
-#: src/lang.c:2212
-msgid	"Mailbox format"
-msgstr	"æÏÒÍÁÔ Mailbox"
-
-#: src/lang.c:2213
-msgid	"# Format of the mailbox.\n"
-msgstr	"# æÏÒÍÁÔ mailbox.\n"
+#: src/lang.c:2176
+msgid   "# Color of >=3 times quoted lines\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# ã×ÅÔ >=3 ÃÉÔÉÒÕÅÍÙÈ ÓÔÒÏË\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
+
+#: src/lang.c:2182
+msgid   "Color of article header lines"
+msgstr  "ã×ÅÔ ÓÔÒÏË ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔØÉ"
+
+#: src/lang.c:2183
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# ã×ÅÔ ÓÔÒÏË ÚÁÇÏÌÏ×ËÁ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
+
+#: src/lang.c:2189
+msgid   "Color of actual news header fields"
+msgstr  "ã×ÅÔ ÓÔÒÏË news ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔÅÊ"
+
+#: src/lang.c:2190
+msgid   "# Color of actual news header fields\n"
+        "# Default: 9 (light red)\n"
+msgstr  "# ã×ÅÔ ÓÔÒÏË news ÚÁÇÏÌÏ×ËÏ× ÓÔÁÔÅÊ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 9 (Ó×ÅÔÌÏ-ËÒÁÓÎÙÊ)\n"
+
+#: src/lang.c:2196
+msgid   "Color of article subject lines"
+msgstr  "ã×ÅÔ ÓÔÒÏË Ó ÔÅÍÏÊ ÓÔÁÔØÉ"
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# ã×ÅÔ ÓÔÒÏËÉ Ó ÔÅÍÏÊ ÓÔÁÔØÉ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (ÇÏÌÕÂÏÊ)\n"
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  "ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×"
+
+#: src/lang.c:2204
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  "# ã×ÅÔ ÓÞÅÔÞÉËÁ ËÏÌÉÞÅÓÔ×Á ÏÔ×ÅÔÏ×\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
+
+#: src/lang.c:2210
+msgid   "Color of sender (From:)"
+msgstr  "ã×ÅÔ ÓÔÒÏËÉ ÏÔÐÒÁ×ÉÔÅÌÑ From:"
+
+#: src/lang.c:2211
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  "# ã×ÅÔ ÓÔÒÏËÉ ÏÔÐÒÁ×ÉÔÅÌÑ (From:)\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÚÅÌ£ÎÙÊ)\n"
+
+#: src/lang.c:2217
+msgid   "Color of help/mail sign"
+msgstr  "ã×ÅÔ ÓÏÏÂÝÅÎÉÑ Ï ×ÙÚÏ×Å ÐÏÍÏÝÉ"
 
 #: src/lang.c:2218
-msgid	"MIME encoding in news messages"
-msgstr	"ëÏÄÉÒÏ×ËÁ MIME × ÓÔÁÔØÑÈ"
-
-#: src/lang.c:2219
-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"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	""
-
-#: src/lang.c:2227 src/lang.c:2248
-msgid	"Don't change unless you know what you are doing. <ESC> cancels."
-msgstr	"îÅ ÉÚÍÅÎÑÊÔÅ, ÅÓÌÉ ÎÅ ÐÏÎÉÍÁÅÔÅ ÞÔÏ ×Ù ÄÅÌÁÅÔÅ. <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:2228
-msgid	"Use 8bit characters in news headers"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:2229
-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	"# åÓÌÉ ON, ÔÏ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ ÎÅ ËÏÄÉÒÕÀÔÓÑ.\n"
-	"# ðÏ ÕÍÏÌÞÎÁÎÉÀ OFF. ôÁËÉÍ ÏÂÒÁÚÏÍ ÐÏ ÕÍÏÌÞÁÎÉÀ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ\n"
-	"# ËÏÄÉÒÕÀÔÓÑ. 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ËÏÄÉÒÕÀÔÓÑ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ\n"
-	"# ÏÔ ÚÎÁÞÅÎÉÑ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ, ÐÏËÁ post_mime_encoding ÔÁËÖÅ\n"
-	"# ÎÅ ÕÓÔÁÎÏ×ÌÅÎ × 8bit.\n"
-
-#: src/lang.c:2236
-msgid	"Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"á×ÔÏÐÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
-	"ÏÔÍÅÎÉÔØ"
-
-#: src/lang.c:2237
-msgid	"View post-processed files"
-msgstr	"ðÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×"
+msgid   "# Color of Help/Mail-Sign\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# ã×ÅÔ Help/Mail-Sign\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
+
+#: src/lang.c:2224
+msgid   "Color of signatures"
+msgstr  "ã×ÅÔ ÓÉÇÎÁÔÕÒ"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# ã×ÅÔ ÓÉÇÎÁÔÕÒ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 4 (ÓÉÎÉÊ)\n"
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  "ã×ÅÔ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ URL"
+
+#: src/lang.c:2232
+msgid   "# Color of highlighted URLs\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# ã×ÅÔ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ URL\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: -1 (Ã×ÅÔ ÐÏ ÕÍÏÌÞÁÎÉÀ)\n"
 
 #: src/lang.c:2238
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	"# åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎ, ÔÏ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÅ ÆÁÊÌÙ ÂÕÄÕÔ ÏÔËÒÙ×ÁÔØÓÑ\n"
-	"# × ÐÒÏÓÍÏÔÏÒÝÉËÅ\n"
-
-#: src/lang.c:2243
-msgid	"MIME encoding in mail messages"
-msgstr	"MIME ËÏÄÉÒÏ×ËÁ × ÐÏÞÔÏ×ÙÈ ÓÏÏÂÝÅÎÉÑÈ"
-
-#: src/lang.c:2249
-msgid	"Use 8bit characters in mail headers"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÐÏÞÔÙ"
-
-#: src/lang.c:2250
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	""
+#, fuzzy
+msgid   "Color of verbatim blocks"
+msgstr  "ã×ÅÔ ÔÅËÓÔÏ×ÙÈ ÓÔÒÏË"
 
-#: src/lang.c:2260
-msgid	"Strip blanks from ends of lines"
-msgstr	"õÂÉÒÁÔØ ÐÒÏÂÅÌÙ × ËÏÎÃÅ ÓÔÒÏËÉ"
+#: src/lang.c:2239
+#, fuzzy
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  "# ã×ÅÔ ÓÔÒÏËÉ Ó ÔÅÍÏÊ ÓÔÁÔØÉ\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (ÇÏÌÕÂÏÊ)\n"
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*"
+
+#: src/lang.c:2246
+msgid   "# Color of word highlighting with *stars*\n"
+        "# Default: 11 (yellow)\n"
+msgstr  "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 11 (Ö£ÌÔÙÊ)\n"
+
+#: src/lang.c:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_"
+
+#: src/lang.c:2253
+msgid   "# Color of word highlighting with _dash_\n"
+        "# Default: 13 (light pink)\n"
+msgstr  "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 13 (Ó×ÅÔÌÏ-ÒÏÚÏ×ÙÊ)\n"
+
+#: src/lang.c:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ /ÔÅËÓÔÁ/"
 
-#: src/lang.c:2261
-msgid	"# If ON strip blanks from ends of lines for faster display on slow "
-	"terminals.\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÕÂÉÒÁÔØ ÐÒÏÂÅÌÙ × ËÏÎÃÅ ÓÔÒÏËÉ ÄÌÑ ÂÏÌÅÅ ÂÙÓÔÒÏÇÏ ×Ù×ÏÄÁ\n"
-	"# ÎÁ ÍÅÄÌÅÎÎÙÈ ÔÅÒÍÉÎÁÌÁÈ.\n"
+#: src/lang.c:2260
+msgid   "# Color of word highlighting with /slash/\n"
+        "# Default: 14 (light cyan)\n"
+msgstr  "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 14 (Ó×ÅÔÌÏ-ÇÏÌÕÂÏÊ)\n"
 
 #: src/lang.c:2266
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	"åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÒÁÎÓÌÉÔÅÒÁÃÉÀ, <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ"
+msgid   "Color of highlighting with -stroke-"
+msgstr  "ã×ÅÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-"
 
 #: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	"ôÒÁÎÓÌÉÔÅÒÁÃÉÑ"
-
-#: src/lang.c:2268
-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	"# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÁÓÛÉÒÅÎÉÅ //TRANSLIT. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ËÏÇÄÁ\n"
-	"# ÓÉÍ×ÏÌ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÅÄÓÔÁ×ÌÅÎ × ÃÅÌÅ×ÏÍ ÎÁÂÏÒÅ ÓÉÍ×ÏÌÏ×, ÔÏ ÏÎ\n"
-	"# ÁÐÐÒÏËÓÉÍÉÒÕÅÔÓÑ ÏÄÎÉÍ ÉÌÉ ÎÅÓËÏÌØËÉÍÉ ÐÏÈÏÖÉÍÉ ÓÉÍ×ÏÌÁÍÉ.\n"
+msgid   "# Color of word highlighting with -stroke-\n"
+        "# Default: 12 (light blue)\n"
+msgstr  "# ã×ÅÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ -ÔÅËÓÔÁ-\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 12 (Ó×ÅÔÌÏ-ÓÉÎÉÊ)\n"
+
+#: src/lang.c:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*"
 
 #: src/lang.c:2275
-msgid	"Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	"ïÔÐÒÁ×ÌÑÔØ ×ÁÍ carbon copy Á×ÔÏÍÁÔÉÞÅÓËÉ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2276
-msgid	"Send you a cc automatically"
-msgstr	"ïÔÐÒÁ×ÌÑÔØ ×ÁÍ Cc Á×ÔÏÍÁÔÉÞÅÓËÉ"
-
-#: src/lang.c:2277
-msgid	"# If ON automatically put your name in the Cc: field when mailing an article\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÒÉ ÏÔÐÒÁ×ËÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÍÅÝÁÔØ ×ÁÛÅ ÉÍÑ × ÐÏÌÅ Cc:\n"
-
-#: src/lang.c:2281
-msgid	"Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2282
-msgid	"Send you a blind cc automatically"
-msgstr	"ïÔÐÒÁ×ÌÑÔØ ×ÁÍ Blind cc Á×ÔÏÍÁÔÉÞÅÓËÉ"
-
-#: src/lang.c:2283
-msgid	"# If ON automatically put your name in the Bcc: field when mailing an "
-	"article\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÒÉ ÏÔÐÒÁ×ËÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÍÅÝÁÔØ ×ÁÛÅ ÉÍÑ × ÐÏÌÅ "
-	"Bcc:\n"
-
-#: src/lang.c:2287
-msgid	"Enter address elements about which you want to be warned. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2288
-msgid	"Spamtrap warning address parts"
-msgstr	""
-
-#: src/lang.c:2289
-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:2294
-msgid	"Enter default number of days a filter entry will be valid. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2295
-msgid	"No. of days a filter entry is valid"
-msgstr	"þÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ"
-
-#: src/lang.c:2296
-msgid	"# Number of days a short term filter will be active\n"
-msgstr	""
-
-#: src/lang.c:2300
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	"äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ, <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ"
-
-#: src/lang.c:2301
-msgid	"Add posted articles to filter"
-msgstr	"äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ"
-
-#: src/lang.c:2302
-msgid	"# If ON add posted articles which start a new thread to filter for\n"
-	"# highlighting follow-ups\n"
-msgstr	""
-
-#: src/lang.c:2306
-msgid	"The directory where articles/threads are to be saved in mailbox format."
-msgstr	"äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ × ÆÏÒÍÁÔÅ mailbox."
-
-#: src/lang.c:2307
-msgid	"Mail directory"
-msgstr	"äÉÒÅËÔÏÒÉÑ ÄÌÑ ÐÏÞÔÙ"
-
-#: src/lang.c:2308
-msgid	"# (-m) directory where articles/threads are saved in mailbox format\n"
-msgstr	"# (-m) ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ × ÆÏÒÍÁÔÅ mailbox\n"
-
-#: src/lang.c:2313
-msgid	"Save articles in batch mode (-S)"
-msgstr	"óÏÈÒÁÎÑÔØ ÓÔÁÔØÉ × ÐÁËÅÔÎÏÍ ÒÅÖÉÍÅ (-S)"
-
-#: src/lang.c:2314
-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:2319
-msgid	"The directory where you want articles/threads saved."
-msgstr	"äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ"
-
-#: src/lang.c:2320
-msgid	"Directory to save arts/threads in"
-msgstr	"äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ"
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	"# äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n"
-
-#: src/lang.c:2325
-msgid	"Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
-msgstr	"á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÑÔØ ÓÔÁÔØÉ/ÄÉÓË. Ó ÚÁÇÏÌÏ×ËÏÍ Archive-name:. <ðòïâåì> "
-	"×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2326
-msgid	"Use Archive-name: header for save"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ ÚÁÇÏÌÏ×ÏË Archive-name: ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ"
-
-#: src/lang.c:2327
-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:2332
-msgid	"Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
-	"cancels."
-msgstr	"ïÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  "# áÔÒÉÂÕÔÙ ÐÏÄÓ×ÅÞÉ×ÁÎÉÑ ÓÌÏ× ÎÁ ÍÏÎÏÈÒÏÍÎÙÈ ÔÅÒÍÉÎÁÌÁÈ\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ:\n"
+        "#   0 = îÏÒÍÁÌØÎÙÊ\n"
+        "#   1 = ðÏÄÞ£ÒËÉ×ÁÎÉÅ\n"
+        "#   2 = ìÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ\n"
+        "#   3 = òÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ\n"
+        "#   4 = íÉÇÁÎÉÅ\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# áÔÒÉÂÕÔ ÄÌÑ ×ÙÄÅÌÅÎÎÏÇÏ *ÔÅËÓÔÁ*\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 6 (bold)\n"
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_"
+
+#: src/lang.c:2291
+msgid   "# Attribute of word highlighting with _dash_\n"
+        "# Default: 2 (best highlighting)\n"
+msgstr  "# áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ _ÔÅËÓÔÁ_\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 2 (ÌÕÞÛÅÅ ÐÏÄÓ×ÅÞÉ×ÁÎÉÅ)\n"
+
+#: src/lang.c:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ /ÔÅËÓÔÁ/"
+
+#: src/lang.c:2298
+msgid   "# Attribute of word highlighting with /slash/\n"
+        "# Default: 5 (half bright)\n"
+msgstr  "# áÔÒÉÂÕÔ ÄÌÑ ×ÙÄÅÌÅÎÉÑ /ÔÅËÓÔÁ/\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 5 (half bright)\n"
+
+#: src/lang.c:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  "áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-"
+
+#: src/lang.c:2305
+msgid   "# Attribute of word highlighting with -stroke-\n"
+        "# Default: 3 (reverse video)\n"
+msgstr  "# áÔÒÉÂÕÔ ×ÙÄÅÌÅÎÎÏÇÏ -ÔÅËÓÔÁ-\n"
+        "# ðÏ ÕÍÏÌÞÁÎÉÀ: 3 (ÒÅ×ÅÒÓÎÏÅ ×ÉÄÅÏ)\n"
+
+#: src/lang.c:2311
+msgid   "URL highlighting in message body"
+msgstr  "ðÏÄÓ×ÅÞÉ×ÁÔØ URL × ÔÅÌÅ ÐÉÓØÍÁ"
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  "# ÷ËÌÀÞÉÔØ ÐÏÄÓ×ÅÔËÕ URL?\n"
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  "ðÏÄÓ×ÅÞÉ×ÁÔØ ÓÌÏ×Á × ÔÅÌÅ ÓÏÏÂÝÅÎÉÑ"
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  "# ÷ËÌÀÞÉÔØ ÐÏÄÓ×ÅÔËÕ ÓÌÏ×?\n"
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  "÷Ù×ÏÄÉÔØ ×ÍÅÓÔÏ ÏÔÍÅÔËÉ"
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  ""
 
 #: src/lang.c:2333
-msgid	"Mark saved articles/threads as read"
-msgstr	"ïÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+msgid   "Enter column number to wrap article lines to in the pager. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ÍÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:2334
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÏÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ\n"
+msgid   "Page line wrap column"
+msgstr  "íÁËÓ. ÞÉÓÌÏ ÓÉÍ×ÏÌÏ× × ÓÔÒÏËÅ × ÐÅÊÄÖÅÒÅ"
 
-#: src/lang.c:2338
-msgid	"Do post processing (eg. extract attachments) for saved articles."
-msgstr	"÷ÙÐÏÌÎÉÔØ ÐÏÓÔ-ÏÂÒÁÂÏÔËÕ (ÎÁÐÒ. ÕÂÒÁÔØ ×ÌÏÖÅÎÉÑ) ÄÌÑ ÓÏÈÒÁÎÑÅÍÙÈ ÓÔÁÔÅÊ"
-
-#: src/lang.c:2339
-msgid	"Post process saved articles"
-msgstr	"ðÏÓÔ-ÏÂÒÁÂÏÔËÁ ÓÏÈÒÁÎ£ÎÎÙÈ ÓÔÁÔÅÊ"
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  ""
 
 #: src/lang.c:2340
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	""
-
-#: src/lang.c:2349
-msgid	"Process only unread articles"
-msgstr	"ïÂÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞ. ÓÔÁÔØÉ"
-
-#: src/lang.c:2350
-msgid	"# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
-msgstr	""
-
-#: src/lang.c:2355
-msgid	"Print all or just part of header. <SPACE> toggles & <CR> sets."
-msgstr	"ðÅÞÁÔÁÔØ ×ÓÅ ÉÌÉ ÔÏÌØËÏ ÞÁÓÔØ ÚÁÇÏÌÏ×ËÏ×. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2356
-msgid	"Print all headers when printing"
-msgstr	"ðÅÞÁÔÁÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ"
+msgid   "Wrap around threads on next unread"
+msgstr  ""
+
+#: src/lang.c:2341
+msgid   "# If ON wrap around threads on searching next unread article\n"
+msgstr  ""
+
+#: src/lang.c:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ). <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  "Email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ)"
+
+#: src/lang.c:2347
+msgid   "# User's mail address (and fullname), if not username@host (fullname)\n"
+msgstr  "# Email ÁÄÒÅÓ ÐÏÌØÚÏ×ÁÔÅÌÑ (É ÐÏÌÎÏÅ ÉÍÑ).\n"
+
+#: src/lang.c:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  "ðÏËÁÚÙ×ÁÔØ ÐÕÓÔÏÊ Followup-To × ÒÅÄÁËÔÏÒÅ"
+
+#: src/lang.c:2353
+msgid   "# If ON show empty Followup-To header when editing an article\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÐÏËÁÚÙ×ÁÔØ ÐÕÓÔÏÊ Follow-up ×Ï ×ÒÅÍÑ ÒÅÄÁËÔÉÒÏ×ÁÎÉÑ ÓÔÁÔØÉ\n"
 
 #: src/lang.c:2357
-msgid	"# If ON print all of article header otherwise just the important lines\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ ÓÔÁÔÅÊ, ÉÎÁÞÅ ÔÏÌØËÏ ×ÁÖÎÙÅ\n"
+msgid   "Enter path/! command/--none to create your default signature. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ÐÕÔØ/! ËÏÍÁÎÄÁ/--none ÄÌÑ ÓÏÚÄÁÎÉÑ ×ÁÛÅÊ ÓÉÇÎÁÔÕÒÙ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
-#: src/lang.c:2361
-msgid	"The printer program with options that is to be used to print articles/threads."
-msgstr	"ëÏÍÁÎÄÁ ÐÅÞÁÔÉ Ó ÐÁÒÁÍÅÔÒÁÍÉ ÄÌÑ ÐÅÞÁÔÉ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ"
-
-#: src/lang.c:2362
-msgid	"Printer program with options"
-msgstr	"ðÒÏÇÒÁÍÍÁ ÐÅÞÁÔÉ Ó ÏÐÃÉÑÍÉ"
-
-#: src/lang.c:2363
-msgid	"# Print program with parameters used to print articles/threads\n"
-msgstr	"# ëÏÍÁÎÄÁ ÐÅÞÁÔÉ Ó ÐÁÒÁÍÅÔÒÁÍÉ ÄÌÑ ÐÅÞÁÔÉ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n"
-
-#: src/lang.c:2369
-msgid	"Force redraw after certain commands"
-msgstr	"ðÅÒÅÒÉÓÏ×Ù×ÁÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ËÏÍÁÎÄ"
-
-#: src/lang.c:2370
-msgid	"# If ON a screen redraw will always be done after certain external commands\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÐÅÒÅÒÉÓÏ×Ù×ÁÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ×ÎÅÛÎÉÈ ËÏÍÁÎÄ\n"
+#: src/lang.c:2358
+msgid   "Create signature from path/command"
+msgstr  "óÏÚÄÁÔØ ÓÉÇÎÁÔÕÒÕ ËÏÍÁÎÄÏÊ"
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  ""
+
+#: src/lang.c:2366
+msgid   "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
+msgstr  "îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\" × ÏÔÄÅÌØÎÏÊ ÓÔÒÏËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  "îÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó \"--\""
+
+#: src/lang.c:2368
+msgid   "# If ON prepend the signature with dashes '\\n-- \\n'\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÎÁÞÉÎÁÔØ ÓÉÇÎÁÔÕÒÕ Ó ÄÅÆÉÓÏ× '\\n-- \\n'\n"
+
+#: src/lang.c:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  "äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  "äÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ"
 
 #: src/lang.c:2374
-msgid	"Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ, "
-	"<ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:2375
-msgid	"Start editor with line offset"
-msgstr	"úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ"
-
-#: src/lang.c:2376
-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:2381
-msgid	"Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
-msgstr	"÷×ÅÄÉÔÅ %E ÄÌÑ ÉÍÅÎÉ ÒÅÄÁËÔÏÒÁ, %F ÄÌÑ ÉÍÅÎÉ ÆÁÊÌÁ, %N ÄÌÑ ÎÏÍÅÒÁ ÓÔÒÏËÉ. "
-	"<CR> ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2382
-msgid	"Invocation of your editor"
-msgstr	"úÁÐÕÓË ×ÁÛÅÇÏ ÒÅÄÁËÔÏÒÁ"
-
-#: src/lang.c:2383
-#, 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:2388
-msgid	"Enter name and options for external-inews, --internal for internal inews"
-msgstr	"÷×ÅÄÉÔÅ ÉÍÑ É ÏÐÃÉÉ ÄÌÑ external-inews, --internal ÄÌÑ internal inews"
-
-#: src/lang.c:2389
-msgid	"External inews"
-msgstr	"÷ÎÅÛÎÉÊ inews"
-
-#: src/lang.c:2390
-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:2394
-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:2395
-msgid	"Invocation of your mail command"
-msgstr	"úÁÐÕÓË ×ÁÛÅÊ ËÏÍÁÎÄÙ ÏÔÐÒÁ×ËÉ ÐÏÞÔÙ"
-
-#: src/lang.c:2396
-#, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	""
-
-#: src/lang.c:2404
-msgid	"Use interactive mail reader"
-msgstr	"éÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ"
-
-#: src/lang.c:2405
-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	"# éÎÔÅÒÁËÔÉ×ÎÁÑ ÐÒÏÇÒÁÍÍÁ ÞÔÅÎÉÑ ÐÏÞÔÙ\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"# * 0 = ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ\n"
-	"#   1 = ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ Ó ÚÁÇÏÌÏ×ËÁÍÉ × "
-	"ÆÁÊÌÅ\n"
-	"#   2 = ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ ÂÅÚ ÚÁÇÏÌÏ×ËÏ× × "
-	"ÆÁÊÌÅ\n"
-
-#: src/lang.c:2414
-msgid	"Remove ~/.article after posting"
-msgstr	"õÂÒÁÔØ ~/.article ÐÏÓÌÅ ÏÔÐÒÁ×ËÉ"
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÓÉÇÎÁÔÕÒÕ ÐÒÉ ÐÏ×ÔÏÒÎÏÊ ÏÔÐÒÁ×ËÅ\n"
 
-#: src/lang.c:2415
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÕÂÒÁÔØ ~/.article ÐÏÓÌÅ ÏÔÐÒÁ×ËÉ.\n"
+#: src/lang.c:2378
+#, c-format
+msgid   "Enter quotation marks, %s or %S for author's initials."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌÙ ÄÌÑ ÎÁÞÁÌÁ ÃÉÔÉÒÏ×ÁÎÉÑ, %s ÉÌÉ %S ÉÎÉÃÉÁÌÙ Á×ÔÏÒÁ."
 
-#: src/lang.c:2419
-msgid	"Filename for all posted articles, <CR> sets, no filename=do not save."
-msgstr	"éÍÑ ÆÁÊÌÁ ÄÌÑ ×ÓÅÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, ÎÅ ÉÍÅÎÉ=ÎÅ "
-	"ÓÏÈÒÁÎÑÔØ."
+#: src/lang.c:2379
+msgid   "Characters used as quote-marks"
+msgstr  "óÉÍ×ÏÌÙ ÉÓÐÏÌØÚÕÅÍÙÅ ÄÌÑ ÎÁÞÁÌÁ ÃÉÔÉÒÏ×ÁÎÉÑ"
+
+#: src/lang.c:2380
+#, 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:2386
+msgid   "Quoting behavior"
+msgstr  "ãÉÔÉÒÏ×ÁÎÉÅ"
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  "# íÅÔÏÄ ÃÉÔÉÒÏ×ÁÎÉÑ ÓÔÁÔÅÊ ÐÒÉ ÏÔ×ÅÔÅ.\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = îÉÞÅÇÏ ÏÓÏÂÅÎÎÏÇÏ\n"
+        "#   1 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ\n"
+        "#   2 = ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ\n"
+        "#   3 = óÖÉÍÁÔØ ÓÉÇÎÁÔÕÒÙ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ\n"
+        "#   4 = ãÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
+        "# * 5 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
+        "#   6 = ãÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
+        "#   7 = óÖÉÍÁÔØ ÃÉÔÉÒÏ×ÁÎÉÅ, ÃÉÔÉÒÏ×ÁÔØ ÓÉÇÎÁÔÕÒÙ É ÐÕÓÔÙÅ ÓÔÒÏËÉ\n"
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+msgid   "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
+msgstr  ""
+
+#: src/lang.c:2401
+msgid   "Quote line when following up"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÐÒÉ follow-up"
+
+#: src/lang.c:2402
+#, 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:2409
+msgid   "Quote line when cross-posting"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÐÒÉ ËÒÏÓÓ-ÐÏÓÔÉÎÇÅ"
+
+#: src/lang.c:2415
+msgid   "Quote line when mailing"
+msgstr  "ãÉÔÉÒÏ×ÁÔØ ÐÒÉ ÏÔÐÒÁ×ËÅ email"
 
 #: src/lang.c:2420
-msgid	"Filename for posted articles"
-msgstr	"éÍÑ ÆÁÊÌÁ ÄÌÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ"
+msgid   "If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
+msgstr  "åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
 
 #: src/lang.c:2421
-msgid	"# Filename where to keep all postings (default posted)\n"
-	"# If no filename is set then postings will not be saved\n"
-msgstr	"# éÍÑ ÆÁÊÌÁ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ.\n"
-	"# åÓÌÉ ÉÍÑ ÆÁÊÌÁ ÎÅ ÕËÁÚÁÎÏ, ÔÏ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ ÎÅ ÂÕÄÕÔ ÓÏÈÒÁÎÑÔÓÑ.\n"
-
-#: src/lang.c:2426
-msgid	"Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
-msgstr	"äÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles. <ðòïâåì> ×ÙÂÏÒ, <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
+#, fuzzy
+msgid   "Insert 'User-Agent:' header"
+msgstr  "äÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:"
+
+#: src/lang.c:2422
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÒÅËÌÁÍÎÙÊ ÚÁÇÏÌÏ×ÏË User-Agent:\n"
 
 #: src/lang.c:2427
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	"äÅÒÖÁÔØ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles"
+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:2428
-msgid	"# If ON keep all failed postings in ~/dead.articles\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÄÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ × ~/dead.articles\n"
+msgid   "MM_CHARSET"
+msgstr  ""
 
-#: src/lang.c:2432
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	"èÏÔÉÔÅ ÕÂÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ .newsrc"
-
-#: src/lang.c:2433
-msgid	"No unsubscribed groups in newsrc"
-msgstr	"õÂÉÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc"
-
-#: src/lang.c:2434
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	"# åÓÌÉ ON, ÔÏ ÕÂÉÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc\n"
+#: src/lang.c:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  ""
 
 #: src/lang.c:2439
-msgid	"Remove bogus groups from newsrc"
-msgstr	"õÂÉÒÁÔØ ÆÉËÔÉ×ÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc"
+msgid   "MM_NETWORK_CHARSET"
+msgstr  ""
 
 #: src/lang.c:2440
-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	"# äÅÊÓÔ×ÉÑ Ó ÆÉËÔÉ×ÎÙÍÉ ÇÒÕÐÐÁÍÉ ÉÚ ÆÁÊÌÁ newsrc\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"# * 0 = ÏÓÔÁ×ÌÑÔØ\n"
-	"#   1 = ÕÎÉÞÔÏÖÁÔØ\n"
-	"#   2 = ÐÏÍÅÞÁÔØ D × ÜËÒÁÎÅ ×ÙÂÏÒÁ\n"
-
-#: src/lang.c:2448
-msgid	"Enter number of seconds until active file will be reread. <CR> sets."
-msgstr	"÷×ÅÄÉÔÅ ËÏÌÉÞÅÓÔ×Ï ÓÅËÕÎÄ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÁËÔÉ×ÎÏÇÏ ÆÁÊÌÁ. <CR> "
-	"ÕÓÔÁÎÏ×ÉÔØ."
-
-#: src/lang.c:2449
-msgid	"Interval in secs to reread active"
-msgstr	"éÎÔÅÒ×ÁÌ × ÓÅËÕÎÄÁÈ ÍÅÖÄÕ ÞÔÅÎÉÅÍ active"
-
-#: src/lang.c:2450
-msgid	"# Time interval in seconds between rereading the active file (0=never)\n"
-msgstr	"# ÷ÒÅÍÅÎÎÏÊ ÉÎÔÅÒ×ÁÌ × ÓÅËÕÎÄÁÈ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÆÁÊÌÁ\n"
-	"# active (0=ÎÉËÏÇÄÁ)\n"
-
-#: src/lang.c:2455
-msgid	"Reconnect to server automatically"
-msgstr	"óÏÅÄÉÎÉÔØÓÑ ÓÎÏ×Á Ó ÓÅÒ×ÅÒÏÍ Á×ÔÏÍÁÔÉÞÅÓËÉ"
-
-#: src/lang.c:2456
-msgid	"# If ON automatically reconnect to NNTP server if the connection is broken\n"
-msgstr	"# åÓÌÉ ON, ÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÅÒÅÐÏÄËÌÀÞÁÔØÓÑ Ë ÓÅÒ×ÅÒÕ NNTP, ÅÓÌÉ ÓÏÅÄÉÎÅÎÉÅ\n"
-	"# ÐÒÅÒ×ÁÌÏÓØ\n"
+msgid   "# Charset used for MIME (Content-Type) header in postings.\n"
+msgstr  "# ëÏÄÉÒÏ×ËÁ × MIME (Content-Type) × ÏÔÐÒÁ×ÌÑÅÍÙÈ ÓÔÁÔØÑÈ.\n"
+
+#: src/lang.c:2444
+#, fuzzy
+msgid   "Enter local charset name (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:2445
+msgid   "MM_LOCAL_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  ""
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  "æÏÒÍÁÔ Mailbox"
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  "# æÏÒÍÁÔ mailbox.\n"
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  "ëÏÄÉÒÏ×ËÁ MIME × ÓÔÁÔØÑÈ"
 
 #: src/lang.c:2460
-msgid	"Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
-msgstr	""
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  ""
+
+#: src/lang.c:2468 src/lang.c:2489
+msgid   "Don't change unless you know what you are doing. <ESC> cancels."
+msgstr  "îÅ ÉÚÍÅÎÑÊÔÅ, ÅÓÌÉ ÎÅ ÐÏÎÉÍÁÅÔÅ ÞÔÏ ×Ù ÄÅÌÁÅÔÅ. <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:2470
+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  "# åÓÌÉ ON, ÔÏ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÓÔÁÔÅÊ ÎÅ ËÏÄÉÒÕÀÔÓÑ.\n"
+        "# ðÏ ÕÍÏÌÞÎÁÎÉÀ OFF. ôÁËÉÍ ÏÂÒÁÚÏÍ ÐÏ ÕÍÏÌÞÁÎÉÀ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ\n"
+        "# ËÏÄÉÒÕÀÔÓÑ. 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ËÏÄÉÒÕÀÔÓÑ ×ÎÅ ÚÁ×ÉÓÉÍÏÓÔÉ\n"
+        "# ÏÔ ÚÎÁÞÅÎÉÑ ÜÔÏÇÏ ÐÁÒÁÍÅÔÒÁ, ÐÏËÁ post_mime_encoding ÔÁËÖÅ\n"
+        "# ÎÅ ÕÓÔÁÎÏ×ÌÅÎ × 8bit.\n"
+
+#: src/lang.c:2477
+msgid   "Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "á×ÔÏÐÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
+        "ÏÔÍÅÎÉÔØ"
+
+#: src/lang.c:2478
+msgid   "View post-processed files"
+msgstr  "ðÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×"
+
+#: src/lang.c:2479
+msgid   "# If set, post processed files will be opened in a viewer\n"
+msgstr  "# åÓÌÉ ÕÓÔÁÎÏ×ÌÅÎ, ÔÏ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÅ ÆÁÊÌÙ ÂÕÄÕÔ ÏÔËÒÙ×ÁÔØÓÑ\n"
+        "# × ÐÒÏÓÍÏÔÏÒÝÉËÅ\n"
+
+#: src/lang.c:2484
+msgid   "MIME encoding in mail messages"
+msgstr  "MIME ËÏÄÉÒÏ×ËÁ × ÐÏÞÔÏ×ÙÈ ÓÏÏÂÝÅÎÉÑÈ"
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ 8 ÂÉÔÎÙÅ ÓÉÍ×ÏÌÙ × ÚÁÇÏÌÏ×ËÁÈ ÐÏÞÔÙ"
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  ""
+
+#: src/lang.c:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  "õÂÉÒÁÔØ ÐÒÏÂÅÌÙ × ËÏÎÃÅ ÓÔÒÏËÉ"
+
+#: src/lang.c:2502
+msgid   "# If ON strip blanks from ends of lines for faster display on slow "
+        "terminals.\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÕÂÉÒÁÔØ ÐÒÏÂÅÌÙ × ËÏÎÃÅ ÓÔÒÏËÉ ÄÌÑ ÂÏÌÅÅ ÂÙÓÔÒÏÇÏ ×Ù×ÏÄÁ\n"
+        "# ÎÁ ÍÅÄÌÅÎÎÙÈ ÔÅÒÍÉÎÁÌÁÈ.\n"
+
+#: src/lang.c:2507
+msgid   "If ON, use transliteration. <SPACE> toggles & <CR> sets."
+msgstr  "åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÔÒÁÎÓÌÉÔÅÒÁÃÉÀ, <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ"
+
+#: src/lang.c:2508
+msgid   "Transliteration"
+msgstr  "ôÒÁÎÓÌÉÔÅÒÁÃÉÑ"
+
+#: src/lang.c:2509
+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  "# åÓÌÉ ON, ÔÏ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÁÓÛÉÒÅÎÉÅ //TRANSLIT. üÔÏ ÏÚÎÁÞÁÅÔ, ÞÔÏ ËÏÇÄÁ\n"
+        "# ÓÉÍ×ÏÌ ÎÅ ÍÏÖÅÔ ÂÙÔØ ÐÒÅÄÓÔÁ×ÌÅÎ × ÃÅÌÅ×ÏÍ ÎÁÂÏÒÅ ÓÉÍ×ÏÌÏ×, ÔÏ ÏÎ\n"
+        "# ÁÐÐÒÏËÓÉÍÉÒÕÅÔÓÑ ÏÄÎÉÍ ÉÌÉ ÎÅÓËÏÌØËÉÍÉ ÐÏÈÏÖÉÍÉ ÓÉÍ×ÏÌÁÍÉ.\n"
+
+#: src/lang.c:2517
+#, fuzzy
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ Cc Á×ÔÏÍÁÔÉÞÅÓËÉ"
+
+#: src/lang.c:2518
+#, fuzzy
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  "# æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = îÉÞÅÇÏ\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+
+#: src/lang.c:2527
+msgid   "Enter address elements about which you want to be warned. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2528
+msgid   "Spamtrap warning address parts"
+msgstr  ""
+
+#: src/lang.c:2529
+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:2534
+msgid   "Enter default number of days a filter entry will be valid. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ÞÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ. <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  "þÉÓÌÏ ÄÎÅÊ ÐÏËÁ ÆÉÌØÔÒ ÉÍÅÅÔ ÓÉÌÕ"
+
+#: src/lang.c:2536
+msgid   "# Number of days a short term filter will be active\n"
+msgstr  ""
+
+#: src/lang.c:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  "äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ, <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ"
+
+#: src/lang.c:2541
+msgid   "Add posted articles to filter"
+msgstr  "äÏÂÁ×ÉÔØ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ × ÆÉÌØÔÒ"
+
+#: src/lang.c:2542
+msgid   "# If ON add posted articles which start a new thread to filter for\n"
+        "# highlighting follow-ups\n"
+msgstr  ""
+
+#: src/lang.c:2546
+msgid   "The directory where articles/threads are to be saved in mailbox format."
+msgstr  "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ × ÆÏÒÍÁÔÅ mailbox."
+
+#: src/lang.c:2547
+msgid   "Mail directory"
+msgstr  "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÐÏÞÔÙ"
+
+#: src/lang.c:2548
+msgid   "# (-m) directory where articles/threads are saved in mailbox format\n"
+msgstr  "# (-m) ÄÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ × ÆÏÒÍÁÔÅ mailbox\n"
+
+#: src/lang.c:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  "óÏÈÒÁÎÑÔØ ÓÔÁÔØÉ × ÐÁËÅÔÎÏÍ ÒÅÖÉÍÅ (-S)"
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ"
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  "äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ"
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  "# äÉÒÅËÔÏÒÉÑ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n"
+
+#: src/lang.c:2565
+msgid   "Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
+msgstr  "á×ÔÏÍÁÔÉÞÅÓËÉ ÓÏÈÒÁÎÑÔØ ÓÔÁÔØÉ/ÄÉÓË. Ó ÚÁÇÏÌÏ×ËÏÍ Archive-name:. <ðòïâåì> "
+        "×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2566
+msgid   "Use Archive-name: header for save"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ ÚÁÇÏÌÏ×ÏË Archive-name: ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ"
+
+#: src/lang.c:2567
+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:2572
+msgid   "Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
+        "cancels."
+msgstr  "ïÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
+
+#: src/lang.c:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  "ïÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓËÕÓÓÉÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ"
+
+#: src/lang.c:2574
+msgid   "# If ON mark articles that are saved as read\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÏÔÍÅÔÉÔØ ÓÏÈÒÁÎ£ÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ\n"
+
+#: src/lang.c:2578
+msgid   "Do post processing (eg. extract attachments) for saved articles."
+msgstr  "÷ÙÐÏÌÎÉÔØ ÐÏÓÔ-ÏÂÒÁÂÏÔËÕ (ÎÁÐÒ. ÕÂÒÁÔØ ×ÌÏÖÅÎÉÑ) ÄÌÑ ÓÏÈÒÁÎÑÅÍÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:2579
+msgid   "Post process saved articles"
+msgstr  "ðÏÓÔ-ÏÂÒÁÂÏÔËÁ ÓÏÈÒÁÎ£ÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  ""
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  "ïÂÒÁÂÏÔÁÔØ ÔÏÌØËÏ ÎÅÐÒÏÞ. ÓÔÁÔØÉ"
+
+#: src/lang.c:2590
+msgid   "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
+msgstr  ""
+
+#: src/lang.c:2595
+msgid   "Print all or just part of header. <SPACE> toggles & <CR> sets."
+msgstr  "ðÅÞÁÔÁÔØ ×ÓÅ ÉÌÉ ÔÏÌØËÏ ÞÁÓÔØ ÚÁÇÏÌÏ×ËÏ×. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2596
+msgid   "Print all headers when printing"
+msgstr  "ðÅÞÁÔÁÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ"
+
+#: src/lang.c:2597
+msgid   "# If ON print all of article header otherwise just the important lines\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ×Ù×ÏÄÉÔØ ×ÓÅ ÚÁÇÏÌÏ×ËÉ ÓÔÁÔÅÊ, ÉÎÁÞÅ ÔÏÌØËÏ ×ÁÖÎÙÅ\n"
+
+#: src/lang.c:2601
+msgid   "The printer program with options that is to be used to print articles/threads."
+msgstr  "ëÏÍÁÎÄÁ ÐÅÞÁÔÉ Ó ÐÁÒÁÍÅÔÒÁÍÉ ÄÌÑ ÐÅÞÁÔÉ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ"
+
+#: src/lang.c:2602
+msgid   "Printer program with options"
+msgstr  "ðÒÏÇÒÁÍÍÁ ÐÅÞÁÔÉ Ó ÏÐÃÉÑÍÉ"
+
+#: src/lang.c:2603
+msgid   "# Print program with parameters used to print articles/threads\n"
+msgstr  "# ëÏÍÁÎÄÁ ÐÅÞÁÔÉ Ó ÐÁÒÁÍÅÔÒÁÍÉ ÄÌÑ ÐÅÞÁÔÉ ÓÔÁÔÅÊ/ÄÉÓËÕÓÓÉÊ\n"
+
+#: src/lang.c:2609
+msgid   "Force redraw after certain commands"
+msgstr  "ðÅÒÅÒÉÓÏ×Ù×ÁÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ËÏÍÁÎÄ"
+
+#: src/lang.c:2610
+msgid   "# If ON a screen redraw will always be done after certain external commands\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÐÅÒÅÒÉÓÏ×Ù×ÁÔØ ÜËÒÁÎ ÐÏÓÌÅ ÎÅËÏÔÏÒÙÈ ×ÎÅÛÎÉÈ ËÏÍÁÎÄ\n"
+
+#: src/lang.c:2614
+msgid   "Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ, "
+        "<ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2615
+msgid   "Start editor with line offset"
+msgstr  "úÁÐÕÓÔÉÔØ ÒÅÄÁËÔÏÒ Ó ÕÓÔÁÎÏ×ËÏÊ ËÕÒÓÏÒÁ"
+
+#: src/lang.c:2616
+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:2621
+msgid   "Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
+msgstr  "÷×ÅÄÉÔÅ %E ÄÌÑ ÉÍÅÎÉ ÒÅÄÁËÔÏÒÁ, %F ÄÌÑ ÉÍÅÎÉ ÆÁÊÌÁ, %N ÄÌÑ ÎÏÍÅÒÁ ÓÔÒÏËÉ. "
+        "<CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2622
+msgid   "Invocation of your editor"
+msgstr  "úÁÐÕÓË ×ÁÛÅÇÏ ÒÅÄÁËÔÏÒÁ"
+
+#: src/lang.c:2623
+#, 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:2628
+msgid   "Enter name and options for external-inews, --internal for internal inews"
+msgstr  "÷×ÅÄÉÔÅ ÉÍÑ É ÏÐÃÉÉ ÄÌÑ external-inews, --internal ÄÌÑ internal inews"
+
+#: src/lang.c:2629
+msgid   "External inews"
+msgstr  "÷ÎÅÛÎÉÊ inews"
+
+#: src/lang.c:2630
+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:2634
+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:2635
+msgid   "Invocation of your mail command"
+msgstr  "úÁÐÕÓË ×ÁÛÅÊ ËÏÍÁÎÄÙ ÏÔÐÒÁ×ËÉ ÐÏÞÔÙ"
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  ""
+
+#: src/lang.c:2644
+msgid   "Use interactive mail reader"
+msgstr  "éÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ"
+
+#: src/lang.c:2645
+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  "# éÎÔÅÒÁËÔÉ×ÎÁÑ ÐÒÏÇÒÁÍÍÁ ÞÔÅÎÉÑ ÐÏÞÔÙ\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "# * 0 = ÎÅ ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ\n"
+        "#   1 = ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ Ó ÚÁÇÏÌÏ×ËÁÍÉ × "
+        "ÆÁÊÌÅ\n"
+        "#   2 = ÉÓÐÏÌØÚÏ×ÁÔØ ÉÎÔÅÒÁËÔÉ×ÎÕÀ ÐÒÏÇÒÁÍÍÕ ÞÔÅÎÉÑ ÐÏÞÔÙ ÂÅÚ ÚÁÇÏÌÏ×ËÏ× × "
+        "ÆÁÊÌÅ\n"
+
+#: src/lang.c:2654
+msgid   "Remove ~/.article after posting"
+msgstr  "õÂÒÁÔØ ~/.article ÐÏÓÌÅ ÏÔÐÒÁ×ËÉ"
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÕÂÒÁÔØ ~/.article ÐÏÓÌÅ ÏÔÐÒÁ×ËÉ.\n"
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+msgid   "Filename for all posted articles, <CR> sets, no filename=do not save."
+msgstr  "éÍÑ ÆÁÊÌÁ ÄÌÑ ×ÓÅÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, ÎÅ ÉÍÅÎÉ=ÎÅ "
+        "ÓÏÈÒÁÎÑÔØ."
+
+#: src/lang.c:2668
+msgid   "Filename for posted articles"
+msgstr  "éÍÑ ÆÁÊÌÁ ÄÌÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ"
+
+#: src/lang.c:2669
+msgid   "# Filename where to keep all postings (default posted)\n"
+        "# If no filename is set then postings will not be saved\n"
+msgstr  "# éÍÑ ÆÁÊÌÁ ÄÌÑ ÓÏÈÒÁÎÅÎÉÑ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ.\n"
+        "# åÓÌÉ ÉÍÑ ÆÁÊÌÁ ÎÅ ÕËÁÚÁÎÏ, ÔÏ ÏÔÐÒÁ×ÌÅÎÎÙÅ ÓÔÁÔØÉ ÎÅ ÂÕÄÕÔ ÓÏÈÒÁÎÑÔÓÑ.\n"
+
+#: src/lang.c:2674
+msgid   "Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
+msgstr  "äÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  "äÅÒÖÁÔØ ÎÅÕÄÁ×ÛÉÅÓÑ ÓÔÁÔØÉ × ~/dead.articles"
+
+#: src/lang.c:2676
+msgid   "# If ON keep all failed postings in ~/dead.articles\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÄÅÒÖÁÔØ ×ÓÅ ÎÅÕÄÁ×ÛÉÅÓÑ ÏÔÐÒÁ×ËÉ ÓÔÁÔÅÊ × ~/dead.articles\n"
+
+#: src/lang.c:2680
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  "èÏÔÉÔÅ ÕÂÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ .newsrc"
+
+#: src/lang.c:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  "õÂÉÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc"
+
+#: src/lang.c:2682
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  "# åÓÌÉ ON, ÔÏ ÕÂÉÒÁÔØ ÎÅÐÏÄÐÉÓÁÎÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc\n"
+
+#: src/lang.c:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  "õÂÉÒÁÔØ ÆÉËÔÉ×ÎÙÅ ÇÒÕÐÐÙ ÉÚ newsrc"
+
+#: src/lang.c:2688
+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  "# äÅÊÓÔ×ÉÑ Ó ÆÉËÔÉ×ÎÙÍÉ ÇÒÕÐÐÁÍÉ ÉÚ ÆÁÊÌÁ newsrc\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "# * 0 = ÏÓÔÁ×ÌÑÔØ\n"
+        "#   1 = ÕÎÉÞÔÏÖÁÔØ\n"
+        "#   2 = ÐÏÍÅÞÁÔØ D × ÜËÒÁÎÅ ×ÙÂÏÒÁ\n"
+
+#: src/lang.c:2696
+msgid   "Enter number of seconds until active file will be reread. <CR> sets."
+msgstr  "÷×ÅÄÉÔÅ ËÏÌÉÞÅÓÔ×Ï ÓÅËÕÎÄ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÁËÔÉ×ÎÏÇÏ ÆÁÊÌÁ. <CR> "
+        "ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2697
+msgid   "Interval in secs to reread active"
+msgstr  "éÎÔÅÒ×ÁÌ × ÓÅËÕÎÄÁÈ ÍÅÖÄÕ ÞÔÅÎÉÅÍ active"
+
+#: src/lang.c:2698
+msgid   "# Time interval in seconds between rereading the active file (0=never)\n"
+msgstr  "# ÷ÒÅÍÅÎÎÏÊ ÉÎÔÅÒ×ÁÌ × ÓÅËÕÎÄÁÈ ÍÅÖÄÕ Á×ÔÏÍÁÔÉÞÅÓËÉÍ ÞÔÅÎÉÅÍ ÆÁÊÌÁ\n"
+        "# active (0=ÎÉËÏÇÄÁ)\n"
+
+#: src/lang.c:2703
+msgid   "Reconnect to server automatically"
+msgstr  "óÏÅÄÉÎÉÔØÓÑ ÓÎÏ×Á Ó ÓÅÒ×ÅÒÏÍ Á×ÔÏÍÁÔÉÞÅÓËÉ"
+
+#: src/lang.c:2704
+msgid   "# If ON automatically reconnect to NNTP server if the connection is broken\n"
+msgstr  "# åÓÌÉ ON, ÔÏ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÅÒÅÐÏÄËÌÀÞÁÔØÓÑ Ë ÓÅÒ×ÅÒÕ NNTP, ÅÓÌÉ ÓÏÅÄÉÎÅÎÉÅ\n"
+        "# ÐÒÅÒ×ÁÌÏÓØ\n"
+
+#: src/lang.c:2708
+msgid   "Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  ""
+
+#: src/lang.c:2710
+msgid   "# If ON, create local copies of NNTP overview files.\n"
+msgstr  ""
+
+#: src/lang.c:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  "æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ×Ù×ÏÄÁ ÄÁÔ"
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  "# æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÄÁÔÙ\n"
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  "æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode"
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  "# æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode\n"
+        "# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
+        "#   0 = îÉÞÅÇÏ\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  "÷ÏÓÐÒÏÉÚ×ÏÄÉÔØ BiDi"
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  "# åÓÌÉ ON, ÔÏ Ä×ÕÎÁÐÒÁ×ÌÅÎÎÙÊ ÔÅËÓÔ ×ÏÓÐÒÏÉÚ×ÏÄÉÔÓÑ tin'ÏÍ\n"
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  ""
+
+#: src/lang.c:2752
+#, fuzzy
+msgid   "Delete post-process files"
+msgstr  "ðÒÏÓÍÏÔÒ ÐÏÓÔ-ÏÂÒÁÂÏÔÁÎÎÙÈ ÆÁÊÌÏ×"
+
+#: src/lang.c:2757
+#, fuzzy
+msgid   "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr  "éÍÑ ÆÁÊÌÁ ÄÌÑ ×ÓÅÈ ÏÔÐÒÁ×ÌÅÎÎÙÈ ÓÔÁÔÅÊ. <CR> ÕÓÔÁÎÏ×ÉÔØ, ÎÅ ÉÍÅÎÉ=ÎÅ "
+        "ÓÏÈÒÁÎÑÔØ."
+
+#: src/lang.c:2758
+msgid   "Mailbox to save sent mails"
+msgstr  ""
+
+#: src/lang.c:2763
+#, fuzzy
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  ""
+
+#: src/lang.c:2769
+#, fuzzy
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ email ÁÄÒÅÓ (É ÐÏÌÎÏÅ ÉÍÑ). <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2776
+#, fuzzy
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  "ðÒÏÇÒÁÍÍÙ ÄÌÑ ÏÔËÒÙÔÉÑ URL. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ"
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  ""
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  ""
+
+#: src/lang.c:2784
+#, fuzzy
+msgid   "Mailing list address"
+msgstr  "ïÔÐÒÁ×ÉÔØ ÌÏÇ-ÓÏÏÂÝÅÎÉÅ %s\n"
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  ""
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  ""
+
+#: src/lang.c:2801
+#, fuzzy
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  ""
+
+#: src/lang.c:2807
+#, fuzzy
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2808
+#, fuzzy
+msgid   "savefile"
+msgstr  "óÏÈÒÁÎÉÔØ × ÆÁÊÌ> "
+
+#: src/lang.c:2813 src/lang.c:2837
+#, fuzzy
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
 
-#: src/lang.c:2461
-msgid	"Cache NNTP overview files locally"
-msgstr	""
-
-#: src/lang.c:2462
-msgid	"# If ON, create local copies of NNTP overview files.\n"
-msgstr	""
-
-#: src/lang.c:2466
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	"÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
-
-#: src/lang.c:2467
-msgid	"Format string for display of dates"
-msgstr	"æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ×Ù×ÏÄÁ ÄÁÔ"
-
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	"# æÏÒÍÁÔ ÓÔÒÏËÉ ÄÌÑ ÐÒÅÄÓÔÁ×ÌÅÎÉÑ ÄÁÔÙ\n"
-
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	"æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode"
-
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	"# æÏÒÍÁ ÎÏÒÍÁÌÉÚÁÃÉÉ Unicode\n"
-	"# ÷ÏÚÍÏÖÎÙÅ ÚÎÁÞÅÎÉÑ (ÐÏ ÕÍÏÌÞÁÎÉÀ ÏÔÍÅÞÅÎÏ *):\n"
-	"#   0 = îÉÞÅÇÏ\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	"÷ÏÓÐÒÏÉÚ×ÏÄÉÔØ BiDi"
-
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	"# åÓÌÉ ON, ÔÏ Ä×ÕÎÁÐÒÁ×ÌÅÎÎÙÊ ÔÅËÓÔ ×ÏÓÐÒÏÉÚ×ÏÄÉÔÓÑ tin'ÏÍ\n"
-
-#: src/misc.c:3750
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	"÷ÅÒÓÉÑ: %s %s ÒÅÌÉÚ %s (\"%s\") %s %s\n"
-
-#: src/misc.c:3753
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	"÷ÅÒÓÉÑ: %s %s ÒÅÌÉÚ %s (\"%s\")\n"
-
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	"îÅÄÏÓÔÉÖÉÍÏ?\n"
-
-#: src/nntplib.c:824
-#, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	"\n"
-	"óÅÒ×ÅÒ ÎÅ ÏÔ×ÅÞÁÅÔ, ÐÏÐÙÔËÁ ÓÏÅÄÉÎÉÔØÓÑ ÓÎÏ×Á # %d\n"
-
-#: src/nntplib.c:842 src/nntplib.c:1630
-msgid	"Rejoin current group\n"
-msgstr	"÷ÓÔÕÐÉÔØ ÓÎÏ×Á × ÔÅËÕÝÕÀ ÇÒÕÐÐÕ\n"
-
-#: src/nntplib.c:849 src/nntplib.c:1637
+#: src/lang.c:2814
+#, fuzzy
+msgid   "Quick (1 key) select filter scope"
+msgstr  "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ×ÙÂÏÒÁ?"
+
+#: src/lang.c:2819 src/lang.c:2843
+#, fuzzy
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
+
+#: src/lang.c:2825 src/lang.c:2849
+#, fuzzy
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2826
+#, fuzzy
+msgid   "Quick (1 key) select filter case"
+msgstr  "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ×ÙÂÏÒÁ?"
+
+#: src/lang.c:2831 src/lang.c:2855
+#, fuzzy
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
+
+#: src/lang.c:2838
+#, fuzzy
+msgid   "Quick (1 key) kill filter scope"
+msgstr  "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ÕÎÉÞÔÏÖÅÎÉÑ?"
+
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
+
+#: src/lang.c:2850
+#, fuzzy
+msgid   "Quick (1 key) kill filter case"
+msgstr  "äÏÂÁ×ÉÔØ ÆÉÌØÔÒ ÂÙÓÔÒÏÇÏ ÕÎÉÞÔÏÖÅÎÉÑ?"
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2863
+msgid   "UNDECLARED_CHARSET"
+msgstr  ""
+
+#: src/lang.c:2869
+#, fuzzy
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÓÉÍ×ÏÌ ÄÌÑ ÏÔÍÅÔËÉ ÓÔÁÔÅÊ × ÄÉÁÐÁÚÏÎÅ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> "
+        "ÏÔÍÅÎÉÔØ."
+
+#: src/lang.c:2870
+msgid   "X_Body"
+msgstr  ""
+
+#: src/lang.c:2875
+#, fuzzy
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  "÷×ÅÄÉÔÅ ÆÏÒÍÁÔ ÓÔÒÏËÉ. <CR> ÕÓÔÁÎÏ×ÉÔØ, <ESC> ÏÔÍÅÎÁ."
+
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  ""
+
+#: src/lang.c:2881
+#, fuzzy
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  "åÓÌÉ ON, ÔÏ ÄÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË User-Agent:. <ðòïâåì> ×ÙÂÏÒ, <CR> ÕÓÔÁÎÏ×ÉÔØ."
+
+#: src/lang.c:2882
+#, fuzzy
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  "äÏÂÁ×ÌÑÔØ ÚÁÇÏÌÏ×ÏË 'X-Comment-To:'"
+
+#: src/misc.c:3754
 #, c-format
-msgid	"Read (%s)\n"
-msgstr	"þÔÅÎÉÅ (%s)\n"
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "÷ÅÒÓÉÑ: %s %s ÒÅÌÉÚ %s (\"%s\") %s %s\n"
 
-#: src/nntplib.c:851
+#: src/misc.c:3757
 #, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	"ðÅÒÅÓÌÁÔØ ÐÏÓÌÅÄÎÀÀ ËÏÍÁÎÄÕ (%s)\n"
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "÷ÅÒÓÉÑ: %s %s ÒÅÌÉÚ %s (\"%s\")\n"
 
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  "îÅÄÏÓÔÉÖÉÍÏ?\n"
+
+#: src/nntplib.c:819
+#, c-format
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  "\n"
+        "óÅÒ×ÅÒ ÎÅ ÏÔ×ÅÞÁÅÔ, ÐÏÐÙÔËÁ ÓÏÅÄÉÎÉÔØÓÑ ÓÎÏ×Á # %d\n"
+
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  "÷ÓÔÕÐÉÔØ ÓÎÏ×Á × ÔÅËÕÝÕÀ ÇÒÕÐÐÕ\n"
+
+#: src/nntplib.c:863 src/nntplib.c:1838
+#, c-format
+msgid   "Read (%s)\n"
+msgstr  "þÔÅÎÉÅ (%s)\n"
+
+#: src/nntplib.c:865
+#, c-format
+msgid   "Resend last command (%s)\n"
+msgstr  "ðÅÒÅÓÌÁÔØ ÐÏÓÌÅÄÎÀÀ ËÏÍÁÎÄÕ (%s)\n"
+
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  ""
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  ""
 
-#: src/nrctbl.c:170
+#: src/nrctbl.c:175
 #, c-format
-msgid	"couldn't expand %s\n"
-msgstr	"ÎÅ ÐÏÌÕÞÉÌÏÓØ ÒÁÓËÒÙÔØ %s\n"
+msgid   "couldn't expand %s\n"
+msgstr  "ÎÅ ÐÏÌÕÞÉÌÏÓØ ÒÁÓËÒÙÔØ %s\n"
 
-#: src/post.c:1171
+#: src/post.c:1307
 #, 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"
+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:1312
 #, 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	"óÔÒÏËÁ %d ÄÌÉÎÎÅÅ 998 ÏËÔÅÔÏ× É ÄÏÌÖÎÁ ÂÙÔØ ÒÁÚÂÉÔÁ ÎÁ ÞÁÓÔÉ,\n"
-	"ÎÏ ËÏÄÉÒÏ×ËÁ ÕÓÔÁÎÏ×ÌÅÎÁ × %s ÂÅÚ ×ËÌÀÞÅÎÉÑ MIME_BREAK_LONG_LINES,\n"
-	"ÉÌÉ ÓÏÏÂÝÅÎÉÅ ÎÅ ÓÏÄÅÒÖÉÔ ÎÉ ÏÄÎÏÇÏ 8-ÂÉÔÎÏÇÏ ÓÉÍ×ÏÌÁ, ÔÁËÉÍ ÏÂÒÁÚÏÍ\n"
-	"ÒÁÚÂÉÔÉÑ ÎÁ ÞÁÓÔÉ ÎÅ ÐÒÏÉÚÏÊÄ£Ô.\n"
+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  "óÔÒÏËÁ %d ÄÌÉÎÎÅÅ 998 ÏËÔÅÔÏ× É ÄÏÌÖÎÁ ÂÙÔØ ÒÁÚÂÉÔÁ ÎÁ ÞÁÓÔÉ,\n"
+        "ÎÏ ËÏÄÉÒÏ×ËÁ ÕÓÔÁÎÏ×ÌÅÎÁ × %s ÂÅÚ ×ËÌÀÞÅÎÉÑ MIME_BREAK_LONG_LINES,\n"
+        "ÉÌÉ ÓÏÏÂÝÅÎÉÅ ÎÅ ÓÏÄÅÒÖÉÔ ÎÉ ÏÄÎÏÇÏ 8-ÂÉÔÎÏÇÏ ÓÉÍ×ÏÌÁ, ÔÁËÉÍ ÏÂÒÁÚÏÍ\n"
+        "ÒÁÚÂÉÔÉÑ ÎÁ ÞÁÓÔÉ ÎÅ ÐÒÏÉÚÏÊÄ£Ô.\n"
 
-#: src/post.c:1178
+#: src/post.c:1314
 #, 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"
+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:2278
 #, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"ïÔÐÒÁ×ÌÅÎÉÅ × ÇÒÕÐÐÕ %.*s ..."
+msgid   "Posting: %.*s ..."
+msgstr  "ïÔÐÒÁ×ÌÅÎÉÅ × ÇÒÕÐÐÕ %.*s ..."
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	"ðÒÅÒÙ×ÁÎÉÅ ÞÔÅÎÉÑ, ÐÏÄÏÖÄÉÔÅ..."
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	"þÔÅÎÉÅ ÐÒÅÒ×ÁÎÏ\n"
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	"ïÓÕÛÅÎÉÅ\n"
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	"ÎÅÉÚÍÅÎÅÎÏ"
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	"[- îÅÄÏÓÔÕÐÎÏ -]"
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "ðÒÅÒÙ×ÁÎÉÅ ÞÔÅÎÉÑ, ÐÏÄÏÖÄÉÔÅ..."
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "þÔÅÎÉÅ ÐÒÅÒ×ÁÎÏ\n"
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  "ïÓÕÛÅÎÉÅ\n"
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  "ÎÅÉÚÍÅÎÅÎÏ"
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  "[- îÅÄÏÓÔÕÐÎÏ -]"
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	"üÔÏ ÓÏÏÂÝÅÎÉÅ ÂÙÌÏ ÓÏÚÄÁÎÏ × 'multipart/mixed' MIME-ÆÏÒÍÁÔÅ. åÓÌÉ ×Ù\n"
-	"×ÉÄÉÔÅ ÜÔÏÔ ÐÒÅÆÉËÓ, ÔÏ ×ÁÛ ÐÏÞÔÏ×ÙÊ ÁÇÅÎÔ ×ÅÒÏÑÔÎÏ ÎÅ ÂÙÌ ÍÏÄÉÆÉÃÉÒÏ×ÁÎ\n"
-	"ÄÌÑ ÒÁÂÏÔÙ Ó ÎÏ×ÙÍ ÆÏÒÍÁÔÏÍ É ÓÌÅÄÕÀÝÉÅ ÄÁÎÎÙÅ ÍÏÇÕÔ ×ÙÇÌÑÄÅÔØ ÓÔÒÁÎÎÏ.\n"
-	"\n"
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	"ÂÁÊÔ"
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	"ÎÅÐÒÏÞÉÔÁÎÎÙÅ"
-
-#: src/select.c:379
-msgid	"all"
-msgstr	"×ÓÅ"
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	""
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	"îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ðÅÒÅÍÅÎÎÁÑ ÏËÒÕÖÅÎÉÑ %s ÎÅ ÎÁÊÄÅÎÁ."
-
-#: src/xface.c:99 src/xface.c:131
-#, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	"îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÏÛÉÂËÁ ÓÏÚÄÁÎÉÑ %s"
-
-#: src/xface.c:109
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	"üÔÁ ÄÉÒÅËÔÏÒÉÑ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ÉÍÅÎÏ×ÁÎÎÙÈ pipe ÄÌÑ Ó×ÑÚÉ ÍÅÖÄÕ\n"
-	"slrnface É ÒÏÄÉÔÅÌØÓËÉÍ ÐÒÏÃÅÓÓÏÍ. ïÎÁ ÏÂÙÞÎÏ ÄÏÌÖÎÁ ÂÙÔØ ÐÕÓÔÏÊ, ÔÁË ËÁË\n"
-	"ÆÁÊÌ pipe ÕÎÉÞÔÏÖÁÅÔÓÑ ÓÒÁÚÕ ÖÅ ÐÏÓÌÅ ÔÏÇÏ, ËÁË ÏÎ ÏÔËÒÙÔ ÄÒÕÍÑ ÐÒÏÃÅÓÓÁÍÉ.\n"
-	"éÍÅÎÁ ÆÁÊÌÏ× ÇÅÎÅÒÉÒÕÅÍÙÅ slrnface ÉÍÅÀÔ ÆÏÒÍÕ \"hostname.pid\". ÷ÅÒÏÑÔÎÏ\n"
-	"ÓÕÝÅÓÔ×ÕÅÔ ÎÅËÏÔÏÒÁÑ ÏÛÉÂËÁ, ÅÓÌÉ ÏÎÉ ÚÁÄÅÒÖÉ×ÁÀÔÓÑ × ÜÔÏÊ ÄÉÒÅËÔÏÒÉÉ\n"
-	"ÂÏÌÅÅ ÞÅÍ ÎÁ ÓÅËÕÎÄÕ.\n"
-	"\n"
-	"ïÄÎÁËÏ, ÅÓÌÉ ÄÉÒÅËÔÏÒÉÑ ÐÏÄÍÏÎÔÉÒÏ×ÁÎÁ ÞÅÒÅÚ NFS ÓÅÒ×ÅÒ, ÔÏ ×Ù ÍÏÖÅÔÅ\n"
-	"×ÉÄÅÔØ ÓÐÅÃÉÁÌØÎÙÅ ÆÁÊÌÙ ÓÏÚÄÁÎÎÙÅ ÄÌÑ ×ÁÓ NFS ÓÅÒ×ÅÒÏÍ ×Ï ×ÒÅÍÑ ÒÁÂÏÔÙ\n"
-	"slrnface.\n"
-
-#: src/xface.c:123
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	"îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÎÅ ÕÄÁ£ÔÓÑ ÓËÏÎÓÔÒÕÉÒÏ×ÁÔØ ÉÍÑ fifo."
-
-#: src/xface.c:162
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  "üÔÏ ÓÏÏÂÝÅÎÉÅ ÂÙÌÏ ÓÏÚÄÁÎÏ × 'multipart/mixed' MIME-ÆÏÒÍÁÔÅ. åÓÌÉ ×Ù\n"
+        "×ÉÄÉÔÅ ÜÔÏÔ ÐÒÅÆÉËÓ, ÔÏ ×ÁÛ ÐÏÞÔÏ×ÙÊ ÁÇÅÎÔ ×ÅÒÏÑÔÎÏ ÎÅ ÂÙÌ ÍÏÄÉÆÉÃÉÒÏ×ÁÎ\n"
+        "ÄÌÑ ÒÁÂÏÔÙ Ó ÎÏ×ÙÍ ÆÏÒÍÁÔÏÍ É ÓÌÅÄÕÀÝÉÅ ÄÁÎÎÙÅ ÍÏÇÕÔ ×ÙÇÌÑÄÅÔØ ÓÔÒÁÎÎÏ.\n"
+        "\n"
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "ÂÁÊÔ"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "ÎÅÐÒÏÞÉÔÁÎÎÙÅ"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "×ÓÅ"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  ""
+
+#: src/xface.c:70
+#, fuzzy
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÎÅ ÕÄÁ£ÔÓÑ ÓËÏÎÓÔÒÕÉÒÏ×ÁÔØ ÉÍÑ fifo."
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
 #, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	"Slrnface ÎÅÐÒÁ×ÉÌØÎÏ ÚÁ×ÅÒÛÅÎÁ Ó ËÏÄÏÍ %d."
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ðÅÒÅÍÅÎÎÁÑ ÏËÒÕÖÅÎÉÑ %s ÎÅ ÎÁÊÄÅÎÁ."
 
-#: src/xface.c:206
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÏÛÉÂËÁ ÓÏÚÄÁÎÉÑ %s"
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  "üÔÁ ÄÉÒÅËÔÏÒÉÑ ÉÓÐÏÌØÚÕÅÔÓÑ ÄÌÑ ÓÏÚÄÁÎÉÑ ÉÍÅÎÏ×ÁÎÎÙÈ pipe ÄÌÑ Ó×ÑÚÉ ÍÅÖÄÕ\n"
+        "slrnface É ÒÏÄÉÔÅÌØÓËÉÍ ÐÒÏÃÅÓÓÏÍ. ïÎÁ ÏÂÙÞÎÏ ÄÏÌÖÎÁ ÂÙÔØ ÐÕÓÔÏÊ, ÔÁË ËÁË\n"
+        "ÆÁÊÌ pipe ÕÎÉÞÔÏÖÁÅÔÓÑ ÓÒÁÚÕ ÖÅ ÐÏÓÌÅ ÔÏÇÏ, ËÁË ÏÎ ÏÔËÒÙÔ ÄÒÕÍÑ ÐÒÏÃÅÓÓÁÍÉ.\n"
+        "éÍÅÎÁ ÆÁÊÌÏ× ÇÅÎÅÒÉÒÕÅÍÙÅ slrnface ÉÍÅÀÔ ÆÏÒÍÕ \"hostname.pid\". ÷ÅÒÏÑÔÎÏ\n"
+        "ÓÕÝÅÓÔ×ÕÅÔ ÎÅËÏÔÏÒÁÑ ÏÛÉÂËÁ, ÅÓÌÉ ÏÎÉ ÚÁÄÅÒÖÉ×ÁÀÔÓÑ × ÜÔÏÊ ÄÉÒÅËÔÏÒÉÉ\n"
+        "ÂÏÌÅÅ ÞÅÍ ÎÁ ÓÅËÕÎÄÕ.\n"
+        "\n"
+        "ïÄÎÁËÏ, ÅÓÌÉ ÄÉÒÅËÔÏÒÉÑ ÐÏÄÍÏÎÔÉÒÏ×ÁÎÁ ÞÅÒÅÚ NFS ÓÅÒ×ÅÒ, ÔÏ ×Ù ÍÏÖÅÔÅ\n"
+        "×ÉÄÅÔØ ÓÐÅÃÉÁÌØÎÙÅ ÆÁÊÌÙ ÓÏÚÄÁÎÎÙÅ ÄÌÑ ×ÁÓ NFS ÓÅÒ×ÅÒÏÍ ×Ï ×ÒÅÍÑ ÒÁÂÏÔÙ\n"
+        "slrnface.\n"
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  "îÅ ÍÏÇÕ ÚÁÐÕÓÔÉÔØ slrnface: ÎÅ ÕÄÁ£ÔÓÑ ÓËÏÎÓÔÒÕÉÒÏ×ÁÔØ ÉÍÑ fifo."
+
+#: src/xface.c:174
 #, c-format
-msgid	"Slrnface failed: %s."
-msgstr	"Slrnface: ÏÛÉÂËÁ ÚÁÐÕÓËÁ: %s."
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  "Slrnface ÎÅÐÒÁ×ÉÌØÎÏ ÚÁ×ÅÒÛÅÎÁ Ó ËÏÄÏÍ %d."
+
+#: src/xface.c:218
+#, c-format
+msgid   "Slrnface failed: %s."
+msgstr  "Slrnface: ÏÛÉÂËÁ ÚÁÐÕÓËÁ: %s."
+
+#, fuzzy
+#~ msgid        "mark selected articles as read"
+#~ msgstr       "ðÏÍÅÔÉÔØ ÎÅÏÔÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ ËÁË ÐÒÏÞÉÔÁÎÎÙÅ?"
+
+#~ msgid        "Mark %s=tagged articles, %s=current article, %s=quit: "
+#~ msgstr       "íÁÒËÉÒÏ×ÁÔØ %s=ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ, %s=ÔÅËÕÝÕÀ ÓÔÁÔØÀ, %s=×ÙÈÏÄ: "
+
+#~ msgid        "Mark %s=tagged articles/threads, %s=current thread, %s=quit: "
+#~ msgstr       "íÁÒËÉÒÏ×ÁÔØ %s=ÐÏÍÅÞÅÎÎÙÅ ÓÔÁÔØÉ/ÄÉÓË., %s=ÔÅËÕÝÕÀ ÄÉÓË., %s=×ÙÈÏÄ: "
+
+#~ msgid        "Thread range"
+#~ msgstr       "äÉÁÐÁÚÏÎ ÄÉÓËÕÓÓÉÉ"
+
+#~ msgid        "Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
+#~ msgstr       "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ carbon copy Á×ÔÏÍÁÔÉÞÅÓËÉ. <ðòïâåì> ×ÙÂÏÒ, <CR> "
+#~      "ÕÓÔÁÎÏ×ÉÔØ."
+
+#~ msgid        "# If ON automatically put your name in the Cc: field when mailing an "
+#~      "article\n"
+#~ msgstr       "# åÓÌÉ ON, ÔÏ ÐÒÉ ÏÔÐÒÁ×ËÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÍÅÝÁÔØ ×ÁÛÅ ÉÍÑ × "
+#~      "ÐÏÌÅ Cc:\n"
+
+#~ msgid        "Send you a blind cc automatically"
+#~ msgstr       "ïÔÐÒÁ×ÌÑÔØ ×ÁÍ Blind cc Á×ÔÏÍÁÔÉÞÅÓËÉ"
+
+#~ msgid        "# If ON automatically put your name in the Bcc: field when mailing an "
+#~      "article\n"
+#~ msgstr       "# åÓÌÉ ON, ÔÏ ÐÒÉ ÏÔÐÒÁ×ËÅ ÓÔÁÔØÉ Á×ÔÏÍÁÔÉÞÅÓËÉ ÐÏÍÅÝÁÔØ ×ÁÛÅ ÉÍÑ × "
+#~      "ÐÏÌÅ Bcc:\n"
+
+#, fuzzy
+#~ msgid        "\n"
+#~      "Warning: %s contains non 7bit chars.\n"
+#~ msgstr       "\n"
+#~      "÷ÎÉÍÁÎÉÅ: \"Subject:\" ÓÏÄÅÒÖÉÔ ÏÄÎÉ ÐÒÏÂÅÌÙ.\n"
Binary files tin-1.8.3/po/rw.gmo and tin-2.0.0/po/rw.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/rw.po tin-2.0.0/po/rw.po
--- tin-1.8.3/po/rw.po	2007-02-01 13:58:04.000000000 +0100
+++ tin-2.0.0/po/rw.po	1970-01-01 01:00:00.000000000 +0100
@@ -1,6964 +0,0 @@
-# translation of tin to Kinyarwanda.
-# Copyright (C) 2005 Free Software Foundation, Inc.
-# This file is distributed under the same license as the tin package.
-# Steve Murphy <murf@e-tools.com>, 2005
-# Steve performed initial rough translation from compendium built from translations provided by the following translators:
-# Philibert Ndandali  <ndandali@yahoo.fr>, 2005.
-# Viateur MUGENZI <muvia1@yahoo.fr>, 2005.
-# Noëlla Mupole <s24211045@tuks.co.za>, 2005.
-# Carole Karema <karemacarole@hotmail.com>, 2005.
-# JEAN BAPTISTE NGENDAHAYO <ngenda_denis@yahoo.co.uk>, 2005.
-# Augustin KIBERWA  <akiberwa@yahoo.co.uk>, 2005.
-# Donatien NSENGIYUMVA <ndonatienuk@yahoo.co.uk>, 2005.
-# Antoine Bigirimana <antoine@e-tools.com>, 2005.
-#
-msgid	""
-msgstr	"Project-Id-Version: tin 1.7.8\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+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"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=ISO-8859-1\n"
-	"Content-Transfer-Encoding: 8bit\n"
-
-#: src/art.c:1534
-#, fuzzy, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	"%d Incamake Icyabitswe Imyanya"
-
-#: src/attrib.c:649
-#, fuzzy, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	"# O YA Guhindura iyi Icyo wongeraho\n"
-	"#\n"
-
-#: src/attrib.c:650
-#, fuzzy, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	"#  Alt. Alt.\n"
-
-#: src/attrib.c:651
-#, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	""
-
-#: src/attrib.c:652
-#, fuzzy, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	"#  Ukoresha:\n"
-
-#: src/attrib.c:653
-#, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	""
-
-#: src/attrib.c:654
-#, fuzzy, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	"#  VAR\n"
-
-#: src/attrib.c:655
-#, fuzzy, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	"#  Ihuzagahunda NIBA Itangiriro Na: Gusoma Bivuye IDOSIYE\n"
-
-#: src/attrib.c:656
-#, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	""
-
-#: src/attrib.c:657
-#, fuzzy, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	"#  Urutonde rwa Imeli Urugero org\n"
-
-#: src/attrib.c:658
-#, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	""
-
-#: src/attrib.c:659
-#, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	""
-
-#: src/attrib.c:660
-#, fuzzy, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	"#  Bivuye Kongeraho... Umurongo Gukoresha\n"
-
-#: src/attrib.c:661
-#, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	""
-
-#: src/attrib.c:662
-#, fuzzy, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	"#  kugirango Izibanza\n"
-
-#: src/attrib.c:663
-#, fuzzy, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	"#  Ishusho Ishusho bmp\n"
-
-#: src/attrib.c:665
-#, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	""
-
-#: src/attrib.c:667
-#, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:668
-#, fuzzy, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	"#  NyaMwishyingura\n"
-
-#: src/attrib.c:669
-#, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:670
-#, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:671
-#, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:672
-#, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	""
-
-#: src/attrib.c:679
-#, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	""
-
-#: src/attrib.c:680
-#, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	""
-
-#: src/attrib.c:686
-#, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	""
-
-#: src/attrib.c:692
-#, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	""
-
-#: src/attrib.c:710
-#, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	""
-
-#: src/attrib.c:715
-#, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	""
-
-#: src/attrib.c:720
-#, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	""
-
-#: src/attrib.c:721
-#, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:722
-#, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:723
-#, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	""
-
-#: src/attrib.c:724 src/attrib.c:731
-#, 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
-#, 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
-#, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	""
-
-#: src/attrib.c:727
-#, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	""
-
-#: src/attrib.c:728
-#, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:729
-#, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:730
-#, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	""
-
-#: src/attrib.c:734
-#, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:735
-#, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	""
-
-#: src/attrib.c:736
-#, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:737
-#, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	""
-
-#: src/attrib.c:739
-#, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	""
-
-#: src/attrib.c:746
-#, fuzzy, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	"#  Mburabuzi ni\n"
-
-#: src/attrib.c:748
-#, 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
-#, 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
-#, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	""
-
-#: src/attrib.c:756
-#, fuzzy, c-format
-msgid	"# include extra headers\n"
-msgstr	"# Gushyiramo Birenga\n"
-
-#: src/attrib.c:764
-#, 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
-#, 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
-#, fuzzy, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	"# Na Gushyiraho\n"
-
-#: src/cook.c:499
-#, fuzzy
-msgid	"(unknown)"
-msgstr	"(Itazwi)"
-
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-#, fuzzy
-msgid	"Removed from the previous rule: "
-msgstr	"Bivuye i Ibanjirije"
-
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	""
-
-#: src/lang.c:42
-#, fuzzy
-msgid	"1 Response"
-msgstr	"1."
-
-#: src/lang.c:46
-#, fuzzy, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%sKirimo Oya Imbuga z'amakuru"
-
-#: src/lang.c:47
-#, fuzzy
-msgid	"all "
-msgstr	"Byose"
-
-#: src/lang.c:48
-msgid	"All groups"
-msgstr	"amatsinda yose"
-
-#: src/lang.c:49
-#, fuzzy, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	"Idosiye Kongeraho... Guhindura Kuvamo"
-
-#: src/lang.c:50
-#, fuzzy
-msgid	"Article cancelled (deleted)."
-msgstr	"Kureka Cyasibwe"
-
-#: src/lang.c:51
-#, fuzzy
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"Kureka Cyasibwe"
-
-#: src/lang.c:52
-#, fuzzy
-msgid	"Article deleted."
-msgstr	"Cyasibwe"
-
-#: src/lang.c:53
-#, fuzzy, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"Ingingo Kuri i"
-
-#: src/lang.c:54
-#, fuzzy
-msgid	"Article not posted!"
-msgstr	"OYA"
-
-#: src/lang.c:55
-#, fuzzy
-msgid	"Article not saved"
-msgstr	"OYA"
-
-#: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	""
-
-#: src/lang.c:57
-#, fuzzy
-msgid	"Article has no parent"
-msgstr	"Oya"
-
-#: src/lang.c:58
-#, fuzzy
-msgid	"Parent article has been killed"
-msgstr	"Ingingo"
-
-#: src/lang.c:59
-#, fuzzy
-msgid	"Parent article is unavailable"
-msgstr	"Ingingo ni"
-
-#: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	""
-
-#: src/lang.c:61
-#, fuzzy, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	"Byanzwe Kuri"
-
-#: src/lang.c:62
-#, fuzzy, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	"%s=Ingingo Urudodo Ishusho Kuvamo"
-
-#: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	""
-
-#: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	""
-
-#: src/lang.c:66
-msgid	"articles"
-msgstr	""
-
-#: src/lang.c:67
-#, fuzzy
-msgid	"This is a repost of the following article:"
-msgstr	"ni a Bya i Ingingo"
-
-#: src/lang.c:68
-#, fuzzy
-msgid	"article"
-msgstr	"Ingingo"
-
-#: src/lang.c:69
-msgid	"Article"
-msgstr	"Ingingo"
-
-#: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	""
-
-# 345
-#: src/lang.c:71
-#, fuzzy, c-format
-msgid	" at %s"
-msgstr	" ku %s"
-
-#: src/lang.c:72
-#, fuzzy, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[--%s/%s,Imisobekere: Imirongo"
-
-#: src/lang.c:73
-msgid	", charset: "
-msgstr	""
-
-#: src/lang.c:74
-#, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	""
-
-#: src/lang.c:75
-#, fuzzy, c-format
-msgid	"%d Authentication failed"
-msgstr	"%dByanze"
-
-#: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	""
-
-#: src/lang.c:77
-#, fuzzy
-msgid	"    Please enter password: "
-msgstr	"Injiza Ijambobanga..."
-
-#: src/lang.c:78
-#, fuzzy
-msgid	"    Please enter username: "
-msgstr	"Injiza Izina ry'ukoresha"
-
-#: src/lang.c:79
-#, fuzzy, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	"Gushaka Inyuma"
-
-#: src/lang.c:80
-#, fuzzy, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	"Gushaka"
-
-#: src/lang.c:81
-#, fuzzy, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"kugirango Ukoresha:"
-
-#: src/lang.c:82
-#, fuzzy, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"Byanze kugirango Ukoresha:"
-
-#: src/lang.c:83
-#, fuzzy, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	"Kuri"
-
-#: src/lang.c:84
-#, fuzzy
-msgid	"Autosubscribing groups...\n"
-msgstr	"Amatsinda"
-
-#: src/lang.c:85
-#, fuzzy, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	"Gukoresha Kuri Byose Bidasomye"
-
-#: src/lang.c:87
-#, fuzzy, c-format
-msgid	"Active file corrupt - %s"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:88
-#, fuzzy, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	"Kuri in Amakosa Iburira Kuvamo Guhindura"
-
-#: src/lang.c:89
-#, fuzzy, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"Ikiranga"
-
-#: src/lang.c:90
-#, fuzzy, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"Komandi: kugirango Ifashayobora"
-
-#: src/lang.c:92
-#, fuzzy
-msgid	"Base article"
-msgstr	"Base Ingingo"
-
-#: src/lang.c:93
-#, fuzzy
-msgid	"Base article range"
-msgstr	"Base Ingingo Urutonde"
-
-#: src/lang.c:94
-#, fuzzy, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	"%s:Bya Umubarendanga Idosiye OYA"
-
-#: src/lang.c:95
-#, fuzzy
-msgid	"*** Beginning of article ***"
-msgstr	"***Bya Ingingo"
-
-#: src/lang.c:97
-#, fuzzy, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	"Gusiba Cyangwa Guhindura Ingingo"
-
-#: src/lang.c:98
-#, fuzzy
-msgid	"Cancelling article..."
-msgstr	"Ingingo"
-
-#: src/lang.c:100
-#, fuzzy, c-format
-msgid	"Cannot create %s"
-msgstr	"Kurema"
-
-#: src/lang.c:101
-#, fuzzy, c-format
-msgid	"Can't find base article %d"
-msgstr	"Gushaka SHINGIRO Ingingo"
-
-#: src/lang.c:102
-#, fuzzy, c-format
-msgid	"Can't open %s"
-msgstr	"Gufungura"
-
-#: src/lang.c:103
-#, fuzzy, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	"Gufungura kugirango Mu kubika"
-
-#: src/lang.c:104
-#, fuzzy
-msgid	"*** Posting not allowed ***"
-msgstr	"***OYA"
-
-#: src/lang.c:105
-#, fuzzy, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	"ni OYA Kuri"
-
-#: src/lang.c:106
-#, c-format
-msgid	"Can't retrieve %s"
-msgstr	""
-
-#: src/lang.c:107
-#, fuzzy, c-format
-msgid	"%s is a directory"
-msgstr	"%sni a bushyinguro"
-
-#: src/lang.c:108
-msgid	"Catchup"
-msgstr	""
-
-#: src/lang.c:109
-#, c-format
-msgid	"Catchup %s..."
-msgstr	""
-
-#: src/lang.c:110
-#, fuzzy
-msgid	"Catchup all groups entered during this session?"
-msgstr	"Byose Amatsinda iyi Umukoro"
-
-#: src/lang.c:111
-#, fuzzy
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	"in iyi Itsinda"
-
-#: src/lang.c:112
-#, fuzzy, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	"%s%d%sin"
-
-#: src/lang.c:113
-msgid	"Caughtup"
-msgstr	""
-
-#: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	""
-
-#: src/lang.c:115
-#, fuzzy
-msgid	"Checking for new groups... "
-msgstr	"kugirango Gishya Amatsinda"
-
-#: src/lang.c:116
-#, fuzzy
-msgid	"Checking for news..."
-msgstr	"kugirango Amakuru"
-
-#: src/lang.c:117
-#, fuzzy, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	"Oya Yego Kuvamo"
-
-#: src/lang.c:119
-#, fuzzy
-msgid	"ANSI color disabled"
-msgstr	"Ibara Yahagaritswe"
-
-#: src/lang.c:120
-#, fuzzy
-msgid	"ANSI color enabled"
-msgstr	"Ibara Bikora"
-
-#: src/lang.c:122
-#, fuzzy, c-format
-msgid	"Command failed: %s"
-msgstr	"Byanze"
-
-#: src/lang.c:123
-#, fuzzy
-msgid	"Mark not selected articles read?"
-msgstr	"OYA Byahiswemo Gusoma"
-
-#: src/lang.c:124
-#, fuzzy, c-format
-msgid	"Connecting to %s..."
-msgstr	"Kwihuza na %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	""
-
-#: src/lang.c:126
-#, fuzzy
-msgid	"Creating active file for saved groups...\n"
-msgstr	"Gikora IDOSIYE kugirango Amatsinda"
-
-#: src/lang.c:127
-#, fuzzy
-msgid	"Creating newsrc file...\n"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"Mburabuzi"
-
-#: src/lang.c:130
-#, fuzzy
-msgid	"Delete saved files that have been post processed?"
-msgstr	"Idosiye Iposita"
-
-#: src/lang.c:131
-#, fuzzy
-msgid	"Deleting temporary files..."
-msgstr	"By'igihe gito Idosiye"
-
-#: src/lang.c:133
-#, fuzzy
-msgid	"*** End of article ***"
-msgstr	"***Impera Bya Ingingo"
-
-#: src/lang.c:134
-#, fuzzy
-msgid	"*** End of articles ***"
-msgstr	"***Impera Bya"
-
-#: src/lang.c:135
-#, fuzzy
-msgid	"*** End of groups ***"
-msgstr	"***Impera Bya Amatsinda"
-
-#: src/lang.c:136
-#, fuzzy
-msgid	"*** End of thread ***"
-msgstr	"***Impera Bya Urudodo"
-
-#: src/lang.c:137
-#, fuzzy
-msgid	"Enter limit of articles to get> "
-msgstr	"Bya Kuri Kubona"
-
-#: src/lang.c:138
-#, fuzzy
-msgid	"Enter Message-ID to go to> "
-msgstr	"Kuri Gyayo Kuri"
-
-#: src/lang.c:139
-#, fuzzy
-msgid	" and enter next unread thread"
-msgstr	"Na Injiza Komeza>> Bidasomye Urudodo"
-
-#: src/lang.c:140
-#, fuzzy
-msgid	" and enter next unread group"
-msgstr	"Na Injiza Komeza>> Bidasomye Itsinda"
-
-#: src/lang.c:141
-#, fuzzy
-msgid	"Enter option number> "
-msgstr	"Ihitamo Umubare"
-
-#: src/lang.c:142
-#, fuzzy, c-format
-msgid	"Enter range [%s]> "
-msgstr	"Urutonde"
-
-#: src/lang.c:143
-#, fuzzy
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	"Umutwempangano"
-
-#: src/lang.c:145
-#, fuzzy
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	"Aderesi in Umutwempangano"
-
-#: src/lang.c:146
-#, fuzzy
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	"Aderesi in Umutwempangano"
-
-#: src/lang.c:147
-#, fuzzy
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	"Aderesi in Umutwempangano"
-
-#: src/lang.c:148
-#, fuzzy
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	"in Umutwempangano"
-
-#: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	""
-
-#: src/lang.c:151
-#, fuzzy, c-format
-msgid	"Corrupted file %s"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:152
-#, fuzzy, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	"Ingingo OYA"
-
-#: src/lang.c:153
-#, fuzzy, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	"Ingingo OYA"
-
-#: src/lang.c:155
-#, fuzzy
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	"Ikosa in Kohereza Icyegeranyo"
-
-#: src/lang.c:156
-#, fuzzy
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	"Imfuruka Ibuze in Aderesi"
-
-#: src/lang.c:157
-#, fuzzy
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	"Ibuze in ki/ bishaje IMISUSIRE Aderesi"
-
-#: src/lang.c:158
-#, fuzzy
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	"Ibuze in ki/ bishaje IMISUSIRE Aderesi"
-
-#: src/lang.c:159
-#, fuzzy
-msgid	"At-sign missing in mail address.\n"
-msgstr	"IKIMENYETSO Ibuze in Ubutumwa Aderesi"
-
-#: src/lang.c:160
-#, fuzzy
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	"ni OYA Urwego"
-
-#: src/lang.c:161
-#, fuzzy
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Urwego Icyegeranyo NIBA Hejuru: urwego Urwego Sibyo Nka Hejuru: urwego Urwego "
-	"kugirango Amaderesi"
-
-#: src/lang.c:162
-#, fuzzy
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Urwego Icyegeranyo NIBA Hejuru: urwego Urwego Sibyo Nka Hejuru: urwego Urwego "
-	"kugirango Amaderesi"
-
-#: src/lang.c:163
-#, fuzzy
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Urwego Icyegeranyo NIBA Hejuru: urwego Urwego Sibyo Nka Hejuru: urwego Urwego "
-	"kugirango Amaderesi"
-
-#: src/lang.c:164
-#, fuzzy
-msgid	"Illegal character in FQDN.\n"
-msgstr	"Inyuguti in"
-
-#: src/lang.c:165
-#, fuzzy
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	"Uburebure OYA"
-
-#: src/lang.c:166
-#, fuzzy
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	"Kinini Uburebure"
-
-#: src/lang.c:167
-#, fuzzy
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	"Gicurasi OYA Gutangira Cyangwa Impera Na:"
-
-#: src/lang.c:168
-#, fuzzy
-msgid	"FQDN component may not start with digit.\n"
-msgstr	"Gicurasi OYA Gutangira Na:"
-
-#: src/lang.c:169
-#, fuzzy
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	"Bikurikije umubare Agaciro"
-
-#: src/lang.c:170
-#, fuzzy
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	"ni kugirango By'umwihariko Gukoresha Na OYA kugirango Gukoresha"
-
-#: src/lang.c:171
-#, fuzzy
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	"Ibuze in Urwego"
-
-#: src/lang.c:172
-#, fuzzy
-msgid	"Missing localpart of mail address.\n"
-msgstr	"Bya Ubutumwa Aderesi"
-
-#: src/lang.c:173
-#, fuzzy
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	"Inyuguti in Bya Ubutumwa Aderesi"
-
-#: src/lang.c:174
-#, fuzzy
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	"Uburebure OYA"
-
-#: src/lang.c:175
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	"Inyuguti in Amagambo Gicurasi OYA in Amaderesi"
-
-#: src/lang.c:176
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	"Inyuguti in Amagambo Gicurasi OYA"
-
-#: src/lang.c:177
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	"Inyuguti in Amagambo Gicurasi OYA in"
-
-#: src/lang.c:178
-#, fuzzy
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	"in ijambo in"
-
-#: src/lang.c:179
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	"Inyuguti in Amagambo Gicurasi OYA in ki/ bishaje IMISUSIRE Amaderesi"
-
-#: src/lang.c:180
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	"Inyuguti in Inyuguti Na Inyuguti OYA"
-
-#: src/lang.c:181
-#, fuzzy
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	"Ahatanditseho Umurongo Byabonetse Nyuma Umutwempangano"
-
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
-#: src/lang.c:183
-#, fuzzy
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	"Kirimo Inyuguti ni Gushyiraho Guhindura>> iyi Igenamiterere Kuri a Agaciro "
-	"Ururimi ikoresha i Bya Amahitamo Cyangwa"
-
-#: src/lang.c:188
-#, fuzzy
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	"Kirimo Inyuguti i kugirango Amakuru Ubutumwa ni Gushyiraho Kuri Guhindura>> "
-	"Igenamiterere Kuri Cyangwa Gicapika ku ni Birenzeho in Bya i ikoresha i Bya "
-	"Amahitamo Cyangwa ku"
-
-#: src/lang.c:194
-#, fuzzy
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	"Na: Ahatanditseho Umurongo Bya"
-
-#: src/lang.c:195
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	"ku Umurongo OYA a Nyuma i Umutwempangano Izina:"
-
-#: src/lang.c:196
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	"Umurongo ni ubusa"
-
-#: src/lang.c:197
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	"Umurongo ni Ibuze Bivuye i Ingingo Umutwempangano"
-
-#: src/lang.c:198
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	"ku Umurongo OYA a Umwanya Nyuma i"
-
-#: src/lang.c:199
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	"Igikubo Imirongo in i Umutwempangano"
-
-#: src/lang.c:200
-#, fuzzy, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	"Uruhushya Bya"
-
-#: src/lang.c:201
-#, fuzzy, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	"Kuri Komandi:"
-
-#: src/lang.c:203
-#, fuzzy, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	"Ikosa Impera Bya Ingingo"
-
-#: src/lang.c:204
-#, fuzzy
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	"Ikosa Gutangira Imitwe"
-
-#: src/lang.c:205
-#, fuzzy
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	"Kubona a Urwego Izina:"
-
-#: src/lang.c:206
-#, fuzzy, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"Uruhushya Kuri Gyayo"
-
-#: src/lang.c:207
-#, fuzzy
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	"Umurongo Ibuze"
-
-#: src/lang.c:208
-#, fuzzy, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"Gusoma Uruhushya kugirango"
-
-#: src/lang.c:209
-#, fuzzy, c-format
-msgid	"File %s does not exist\n"
-msgstr	"Idosiye OYA"
-
-#: src/lang.c:210
-#, fuzzy, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"Kwandika Uruhushya kugirango"
-
-#: src/lang.c:211
-#, fuzzy
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	"Kubona Ukoresha: Ibisobanuro Ibuze"
-
-#: src/lang.c:212
-#, fuzzy
-msgid	"errors"
-msgstr	"Amakosa"
-
-#: src/lang.c:213
-#, fuzzy, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	"ku Umurongo Umutwempangano OYA Kyongewe kugirango"
-
-#: src/lang.c:214
-#, fuzzy, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	"Bya i Amatsinda in"
-
-#: src/lang.c:215
-#, fuzzy
-msgid	"error"
-msgstr	"Ikosa"
-
-#: src/lang.c:216
-#, fuzzy
-msgid	"Unknown display level"
-msgstr	"Kugaragaza urwego"
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	""
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	""
-
-#: src/lang.c:219
-#, fuzzy
-msgid	"leaving external mail-reader"
-msgstr	"external Ubutumwa"
-
-#: src/lang.c:220
-#, c-format
-msgid	"Extracting %s..."
-msgstr	""
-
-#: src/lang.c:222
-#, fuzzy, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	"IDOSIYE Idosiye Kugarura Kuri Ibanjirije Leta"
-
-#: src/lang.c:223
-#, fuzzy, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	"Inyibutsa Bya IDOSIYE"
-
-#: src/lang.c:224
-#, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	""
-
-#: src/lang.c:225
-#, fuzzy
-msgid	"Rule created by: "
-msgstr	"Byaremwe ku"
-
-#: src/lang.c:226
-#, fuzzy, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"Ishusho"
-
-#: src/lang.c:227
-#, fuzzy, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	"Kuri Ingingo Kuri Gyayo Kuri i"
-
-#: src/lang.c:228
-#, fuzzy, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	"%sKuri ku Ubutumwa"
-
-#: src/lang.c:229
-#, fuzzy
-msgid	"-- forwarded message --\n"
-msgstr	"--Ubutumwa"
-
-#: src/lang.c:230
-#, fuzzy
-msgid	"-- end of forwarded message --\n"
-msgstr	"--Impera Bya Ubutumwa"
-
-#: src/lang.c:231
-#, fuzzy
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	"#g. g. g. g. g. g. g. Alt."
-
-#: src/lang.c:252
-#, fuzzy, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	"kugirango Mburabuzi"
-
-#: src/lang.c:253
-#, fuzzy, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	"i Uburemere Urutonde 0"
-
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	""
-
-#: src/lang.c:255
-#, fuzzy
-msgid	"Comment (optional)  : "
-msgstr	"Bitari ngombwa"
-
-#: src/lang.c:256
-#, fuzzy
-msgid	"Apply pattern to    : "
-msgstr	"Ishusho Kuri"
-
-#: src/lang.c:257
-#, fuzzy
-msgid	"From: line (ignore case)      "
-msgstr	"Umurongo Kwirengagiza"
-
-#: src/lang.c:258
-#, fuzzy
-msgid	"From: line (case sensitive)   "
-msgstr	"Umurongo"
-
-#: src/lang.c:260
-#, fuzzy, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s:Ubuturo"
-
-#: src/lang.c:261
-msgid	"global "
-msgstr	""
-
-#: src/lang.c:262
-#, fuzzy, c-format
-msgid	"Please use %.100s instead"
-msgstr	"Gukoresha"
-
-#: src/lang.c:263
-#, fuzzy, c-format
-msgid	"%s is bogus"
-msgstr	"%sni"
-
-#: src/lang.c:264
-#, fuzzy, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"Dukomeza."
-
-#: src/lang.c:265
-#, fuzzy
-msgid	"groups"
-msgstr	"Amatsinda"
-
-#: src/lang.c:266
-#, c-format
-msgid	"Rereading %s..."
-msgstr	""
-
-#: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	""
-
-#: src/lang.c:268
-msgid	"Group Selection"
-msgstr	""
-
-#: src/lang.c:269
-#, fuzzy
-msgid	"group"
-msgstr	"Itsinda"
-
-#: src/lang.c:271
-#, fuzzy
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	"Cyangwa Birenzeho Imirongo Bya Icyo wongeraho Kuri Kongeramo a Umurongo "
-	"Cyangwa NIBA Umurongo ni ubusa"
-
-#: src/lang.c:272
-#, fuzzy
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Umurongo Kuri Kongeramo Kuri Muyunguruzi... IDOSIYE"
-
-#: src/lang.c:273
-#, fuzzy
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	"Bya Kuri kugirango Birutwa kugirango Birenzeho kugirango bingana"
-
-#: src/lang.c:274
-#, fuzzy
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Umurongo Kuri Kongeramo Kuri Muyunguruzi... IDOSIYE"
-
-#: src/lang.c:275
-#, fuzzy
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Umurongo Kuri Kongeramo Kuri Muyunguruzi... IDOSIYE"
-
-#: src/lang.c:276
-#, fuzzy
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	"Umwandiko Ishusho Kuri Muyunguruzi... NIBA Imirongo OYA"
-
-#: src/lang.c:277
-#, fuzzy
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	"Umwandiko Ishusho Byashyizweho"
-
-#: src/lang.c:278
-#, fuzzy
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	"Igihe in Iminsi kugirango i Muyunguruzi..."
-
-#: src/lang.c:279
-#, fuzzy
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Kuri KIGEZWEHO Itsinda Cyangwa Byose Amatsinda"
-
-#: src/lang.c:280
-#, fuzzy
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Guhitamo Kuri KIGEZWEHO Itsinda Cyangwa Byose Amatsinda"
-
-#: src/lang.c:281
-#, fuzzy
-msgid	"kill an article via a menu"
-msgstr	"Ingingo Biturutse a Ibikubiyemo"
-
-#: src/lang.c:282
-#, fuzzy
-msgid	"auto-select (hot) an article via a menu"
-msgstr	"Ikiyega Guhitamo Ingingo Biturutse a Ibikubiyemo"
-
-#: src/lang.c:283
-#, fuzzy
-msgid	"Browse URLs in article"
-msgstr	"in Ingingo"
-
-#: src/lang.c:284
-#, fuzzy
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	"0 Kugaragaza Ingingo ku Umubare in KIGEZWEHO Urudodo"
-
-#: src/lang.c:285
-#, fuzzy
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	"Kureka Gusiba Cyangwa Guhindura KIGEZWEHO Ingingo"
-
-#: src/lang.c:286
-#, fuzzy
-msgid	"edit article (mail-groups only)"
-msgstr	"Guhindura Ingingo Ubutumwa Amatsinda"
-
-#: src/lang.c:287
-#, fuzzy
-msgid	"display first article in current thread"
-msgstr	"Kugaragaza Itangira Ingingo in KIGEZWEHO Urudodo"
-
-#: src/lang.c:288
-#, fuzzy
-msgid	"display first page of article"
-msgstr	"Kugaragaza Itangira Ipaji Bya Ingingo"
-
-#: src/lang.c:289
-#, fuzzy
-msgid	"post followup to current article"
-msgstr	"Iposita Kuri KIGEZWEHO Ingingo"
-
-#: src/lang.c:290
-#, fuzzy
-msgid	"post followup (don't copy text) to current article"
-msgstr	"Iposita Gukoporora Umwandiko Kuri KIGEZWEHO Ingingo"
-
-#: src/lang.c:291
-#, fuzzy
-msgid	"post followup to current article quoting complete headers"
-msgstr	"Iposita Kuri KIGEZWEHO Ingingo Byuzuye Imitwe"
-
-#: src/lang.c:292
-#, fuzzy
-msgid	"display last article in current thread"
-msgstr	"Kugaragaza Iheruka Ingingo in KIGEZWEHO Urudodo"
-
-#: src/lang.c:293
-#, fuzzy
-msgid	"display last page of article"
-msgstr	"Kugaragaza Iheruka Ipaji Bya Ingingo"
-
-#: src/lang.c:294
-#, fuzzy
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	"Ikimenyetso Bya Urudodo Nka Gusoma Na Kuri Komeza>> Bidasomye"
-
-#: src/lang.c:295
-#, fuzzy
-msgid	"display next article"
-msgstr	"Kugaragaza Komeza>> Ingingo"
-
-#: src/lang.c:296
-#, fuzzy
-msgid	"display first article in next thread"
-msgstr	"Kugaragaza Itangira Ingingo in Komeza>> Urudodo"
-
-#: src/lang.c:297
-#, fuzzy
-msgid	"display next unread article"
-msgstr	"Kugaragaza Komeza>> Bidasomye Ingingo"
-
-#: src/lang.c:298
-#, fuzzy
-msgid	"go to the article that this one followed up"
-msgstr	"Gyayo Kuri i Ingingo iyi Hejuru"
-
-#: src/lang.c:299
-#, fuzzy
-msgid	"display previous article"
-msgstr	"Kugaragaza Ibanjirije Ingingo"
-
-#: src/lang.c:300
-#, fuzzy
-msgid	"display previous unread article"
-msgstr	"Kugaragaza Ibanjirije Bidasomye Ingingo"
-
-#: src/lang.c:301
-#, fuzzy
-msgid	"quickly kill an article using defaults"
-msgstr	"Ingingo ikoresha"
-
-#: src/lang.c:302
-#, fuzzy
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	"Ikiyega Guhitamo Ingingo ikoresha"
-
-#: src/lang.c:303
-#, fuzzy
-msgid	"return to group selection level"
-msgstr	"Garuka Kuri Itsinda Ihitamo urwego"
-
-#: src/lang.c:304
-#, fuzzy
-msgid	"reply through mail to author"
-msgstr	"Subiza Gihinguranya Ubutumwa Kuri Umwanditsi"
-
-#: src/lang.c:305
-#, fuzzy
-msgid	"reply through mail (don't copy text) to author"
-msgstr	"Subiza Gihinguranya Ubutumwa Gukoporora Umwandiko Kuri Umwanditsi"
-
-#: src/lang.c:306
-#, fuzzy
-msgid	"reply through mail to author quoting complete headers"
-msgstr	"Subiza Gihinguranya Ubutumwa Kuri Umwanditsi Byuzuye Imitwe"
-
-#: src/lang.c:307
-#, fuzzy
-msgid	"repost chosen article to another group"
-msgstr	"Ingingo Kuri Itsinda"
-
-#: src/lang.c:308
-#, fuzzy
-msgid	"search backwards within this article"
-msgstr	"Gushaka Inyuma muri iyi Ingingo"
-
-#: src/lang.c:309
-#, fuzzy
-msgid	"search forwards within this article"
-msgstr	"Gushaka muri iyi Ingingo"
-
-#: src/lang.c:310
-#, fuzzy
-msgid	"show article in raw-mode (including all headers)"
-msgstr	"Garagaza Ingingo in Ubwoko Byose Imitwe"
-
-#: src/lang.c:311
-#, fuzzy
-msgid	"skip next block of included text"
-msgstr	"Komeza>> Funga Bya Umwandiko"
-
-#: src/lang.c:312
-#, fuzzy
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	"Mukomatanya Kugaragaza Bya Ibyatoranyijwe gihishwe ku a Ifishi ku Bidakora"
-
-#: src/lang.c:313
-#, fuzzy
-msgid	"toggle word highlighting on/off"
-msgstr	"Mukomatanya ijambo Igaragaza cyane ku Bidakora"
-
-#: src/lang.c:314
-#, fuzzy
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	"Mukomatanya BASIC kugirango KIGEZWEHO Ingingo"
-
-#: src/lang.c:315
-#, fuzzy
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	"Mukomatanya 4. 8"
-
-#: src/lang.c:316
-#, fuzzy
-msgid	"toggle german TeX style decoding for current article"
-msgstr	"Mukomatanya Ikidage IMISUSIRE kugirango KIGEZWEHO Ingingo"
-
-#: src/lang.c:317
-#, fuzzy
-msgid	"toggle display of uuencoded sections"
-msgstr	"Mukomatanya Kugaragaza Bya Ibyatoranyijwe"
-
-#: src/lang.c:318
-#, fuzzy
-msgid	"View/save multimedia attachments"
-msgstr	"Kubika Imigereka"
-
-#: src/lang.c:319
-#, fuzzy, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"Icyegeranyo Cyangwa Icyo wongeraho Biturutse Ubutumwa Kuri"
-
-#: src/lang.c:320
-#, fuzzy
-msgid	"choose range of articles to be affected by next command"
-msgstr	"Guhitamo Urutonde Bya Kuri ku Komeza>> Komandi:"
-
-#: src/lang.c:321
-#, fuzzy
-msgid	"escape from command prompt"
-msgstr	"Bivuye Komandi: Urwinjiriro"
-
-#: src/lang.c:322
-#, fuzzy
-msgid	"edit filter file"
-msgstr	"Guhindura Muyunguruzi... IDOSIYE"
-
-#: src/lang.c:323
-#, fuzzy
-msgid	"get help"
-msgstr	"Kubona Ifashayobora"
-
-#: src/lang.c:324
-#, fuzzy
-msgid	"display last article viewed"
-msgstr	"Kugaragaza Iheruka Ingingo"
-
-#: src/lang.c:325
-#, fuzzy
-msgid	"down one line"
-msgstr	"Hasi Umurongo"
-
-#: src/lang.c:326
-#, fuzzy
-msgid	"up one line"
-msgstr	"Hejuru Umurongo"
-
-#: src/lang.c:327
-#, fuzzy
-msgid	"go to article chosen by Message-ID"
-msgstr	"Gyayo Kuri Ingingo ku"
-
-#: src/lang.c:328
-#, fuzzy
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	"Ubutumwa Ingingo Urudodo Ishusho Kuri"
-
-#: src/lang.c:329
-#, fuzzy
-msgid	"menu of configurable options"
-msgstr	"Ibikubiyemo Bya Amahitamo"
-
-#: src/lang.c:330
-#, fuzzy
-msgid	"down one page"
-msgstr	"Hasi Ipaji"
-
-#: src/lang.c:331
-#, fuzzy
-msgid	"up one page"
-msgstr	"Hejuru Ipaji"
-
-#: src/lang.c:332
-#, fuzzy
-msgid	"post (write) article to current group"
-msgstr	"Iposita Kwandika Ingingo Kuri KIGEZWEHO Itsinda"
-
-#: src/lang.c:333
-#, fuzzy
-msgid	"post postponed articles"
-msgstr	"Iposita"
-
-#: src/lang.c:334
-#, fuzzy
-msgid	"list articles posted by you (from posted file)"
-msgstr	"Urutonde ku Bivuye IDOSIYE"
-
-#: src/lang.c:335
-#, fuzzy
-msgid	"return to previous menu"
-msgstr	"Garuka Kuri Ibanjirije Ibikubiyemo"
-
-#: src/lang.c:336
-#, fuzzy
-msgid	"quit tin immediately"
-msgstr	"Kuvamo Ako kanya"
-
-#: src/lang.c:337
-#, fuzzy
-msgid	"redraw page"
-msgstr	"Kongera Gushushanya Ipaji"
-
-#: src/lang.c:338
-#, fuzzy
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	"Kubika Ingingo Urudodo Ishusho Kuri IDOSIYE"
-
-#: src/lang.c:339
-#, fuzzy
-msgid	"save marked articles automatically without user prompts"
-msgstr	"Kubika cy/ byagarajwe ku buryo bwikora Ukoresha:"
-
-#: src/lang.c:340
-#, fuzzy
-msgid	"scroll the screen one line down"
-msgstr	"i Mugaragaza Umurongo Hasi"
-
-#: src/lang.c:341
-#, fuzzy
-msgid	"scroll the screen one line up"
-msgstr	"i Mugaragaza Umurongo Hejuru"
-
-#: src/lang.c:342
-#, fuzzy
-msgid	"search for articles by author backwards"
-msgstr	"Gushaka kugirango ku Umwanditsi Inyuma"
-
-#: src/lang.c:343
-#, fuzzy
-msgid	"search for articles by author forwards"
-msgstr	"Gushaka kugirango ku Umwanditsi"
-
-#: src/lang.c:344
-#, fuzzy
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	"Gushaka Byose kugirango a Ikurikiranyanyuguti iyi Gicurasi Igihe"
-
-#: src/lang.c:345
-#, fuzzy
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	"(Na Gufunika Kuri Byose"
-
-#: src/lang.c:346
-#, fuzzy
-msgid	"search for articles by Subject line backwards"
-msgstr	"Gushaka kugirango ku Umurongo Inyuma"
-
-#: src/lang.c:347
-#, fuzzy
-msgid	"search for articles by Subject line forwards"
-msgstr	"Gushaka kugirango ku Umurongo"
-
-#: src/lang.c:348
-#, fuzzy
-msgid	"repeat last search"
-msgstr	"Gusubiramo Iheruka Gushaka"
-
-#: src/lang.c:349
-#, fuzzy
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	"Itagi: KIGEZWEHO Ingingo kugirango Icapa... Mu kubika"
-
-#: src/lang.c:350
-#, fuzzy
-msgid	"toggle info message in last line (subject/description)"
-msgstr	"Mukomatanya Ibisobanuro Ubutumwa in Iheruka Umurongo Ikivugwaho "
-	"Isobanuramiterere"
-
-#: src/lang.c:351
-#, fuzzy
-msgid	"toggle inverse video"
-msgstr	"Mukomatanya Videwo..."
-
-#: src/lang.c:352
-#, fuzzy
-msgid	"toggle mini help menu display"
-msgstr	"Mukomatanya Ifashayobora Ibikubiyemo Kugaragaza"
-
-#: src/lang.c:353
-#, fuzzy
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	"Uruziga i Kugaragaza Bya Abahanzi imeli Aderesi Izina: Byombi Cyangwa"
-
-#: src/lang.c:354
-#, fuzzy
-msgid	"show version information"
-msgstr	"Garagaza Verisiyo Ibisobanuro"
-
-#: src/lang.c:355
-#, fuzzy
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	"Ikimenyetso Byose Nka Gusoma Na Garuka Kuri Itsinda Ihitamo Ibikubiyemo"
-
-#: src/lang.c:356
-#, fuzzy
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	"Ikimenyetso Byose Nka Gusoma Na Injiza Komeza>> Itsinda Na: Bidasomye"
-
-#: src/lang.c:357
-#, fuzzy
-msgid	"choose first thread in list"
-msgstr	"Guhitamo Itangira Urudodo in Urutonde"
-
-#: src/lang.c:358
-#, fuzzy
-msgid	"choose last thread in list"
-msgstr	"Guhitamo Iheruka Urudodo in Urutonde"
-
-#: src/lang.c:359
-#, fuzzy
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	"Urutonde muri KIGEZWEHO Urudodo Hejuru Ibikubiyemo"
-
-#: src/lang.c:360
-#, fuzzy
-msgid	"mark article as unread"
-msgstr	"Ikimenyetso Ingingo Nka Bidasomye"
-
-#: src/lang.c:361
-#, fuzzy
-msgid	"mark current thread or tagged threads as read"
-msgstr	"Ikimenyetso KIGEZWEHO Urudodo Cyangwa Nka Gusoma"
-
-#: src/lang.c:362
-#, fuzzy
-msgid	"mark thread as unread"
-msgstr	"Ikimenyetso Urudodo Nka Bidasomye"
-
-#: src/lang.c:363
-#, fuzzy
-msgid	"toggle display of all/selected articles"
-msgstr	"Mukomatanya Kugaragaza Bya Byose Byahiswemo"
-
-#: src/lang.c:364
-#, fuzzy
-msgid	"display next group"
-msgstr	"Kugaragaza Komeza>> Itsinda"
-
-#: src/lang.c:365
-#, fuzzy
-msgid	"display previous group"
-msgstr	"Kugaragaza Ibanjirije Itsinda"
-
-#: src/lang.c:366
-#, fuzzy
-msgid	"toggle all selections (all articles)"
-msgstr	"Mukomatanya Byose Byose"
-
-#: src/lang.c:367
-#, fuzzy
-msgid	"select group (make \"hot\")"
-msgstr	"Guhitamo Itsinda Ubwoko"
-
-#: src/lang.c:368
-#, fuzzy
-msgid	"select thread"
-msgstr	"Guhitamo Urudodo"
-
-#: src/lang.c:369
-#, fuzzy
-msgid	"select threads if at least one unread article is selected"
-msgstr	"Guhitamo NIBA ku Bidasomye Ingingo ni Byahiswemo"
-
-#: src/lang.c:370
-#, fuzzy
-msgid	"select threads that match user specified pattern"
-msgstr	"Guhitamo BIHUYE Ukoresha: Ishusho"
-
-#: src/lang.c:371
-#, fuzzy
-msgid	"tag all parts of current multipart-message in order"
-msgstr	"Itagi: Byose Bya KIGEZWEHO Ubutumwa in Itondekanya"
-
-#: src/lang.c:372
-#, fuzzy
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 Guhitamo Urudodo ku Umubare"
-
-#: src/lang.c:373
-#, fuzzy
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	"Mukomatanya Umubare Bya Kuri Kubona Na Kongera Gutangiza"
-
-#: src/lang.c:374
-#, fuzzy
-msgid	"toggle display of all/unread articles"
-msgstr	"Mukomatanya Kugaragaza Bya Byose Bidasomye"
-
-#: src/lang.c:375
-#, fuzzy
-msgid	"toggle selection of thread"
-msgstr	"Mukomatanya Ihitamo Bya Urudodo"
-
-#: src/lang.c:376
-#, fuzzy
-msgid	"cycle through threading options available"
-msgstr	"Uruziga Gihinguranya Amahitamo Bihari"
-
-#: src/lang.c:377
-#, fuzzy
-msgid	"undo all selections (all articles)"
-msgstr	"Isubiranyuma Byose Byose"
-
-#: src/lang.c:378
-#, fuzzy
-msgid	"untag all tagged threads"
-msgstr	"Byose"
-
-#: src/lang.c:379
-#, fuzzy
-msgid	"mark all articles in group as read"
-msgstr	"Ikimenyetso Byose in Itsinda Nka Gusoma"
-
-#: src/lang.c:380
-#, fuzzy
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	"Ikimenyetso Byose in Itsinda Nka Gusoma Na Kwimura Kuri Komeza>> Bidasomye "
-	"Itsinda"
-
-#: src/lang.c:381
-#, fuzzy
-msgid	"choose first group in list"
-msgstr	"Guhitamo Itangira Itsinda in Urutonde"
-
-#: src/lang.c:382
-#, fuzzy
-msgid	"choose group by name"
-msgstr	"Guhitamo Itsinda ku Izina:"
-
-#: src/lang.c:383
-#, fuzzy
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 Guhitamo Itsinda ku Umubare"
-
-#: src/lang.c:384
-#, fuzzy
-msgid	"choose range of groups to be affected by next command"
-msgstr	"Guhitamo Urutonde Bya Amatsinda Kuri ku Komeza>> Komandi:"
-
-#: src/lang.c:385
-#, fuzzy
-msgid	"choose last group in list"
-msgstr	"Guhitamo Iheruka Itsinda in Urutonde"
-
-#: src/lang.c:386
-#, fuzzy
-msgid	"mark all articles in chosen group unread"
-msgstr	"Ikimenyetso Byose in Itsinda Bidasomye"
-
-#: src/lang.c:387
-#, fuzzy
-msgid	"move chosen group within list"
-msgstr	"Kwimura Itsinda muri Urutonde"
-
-#: src/lang.c:388
-#, fuzzy
-msgid	"choose next group with unread news"
-msgstr	"Guhitamo Komeza>> Itsinda Na: Bidasomye Amakuru"
-
-#: src/lang.c:389 src/lang.c:1197
-#, fuzzy
-msgid	"quit"
-msgstr	"Kuvamo"
-
-#: src/lang.c:390
-#, fuzzy
-msgid	"quit without saving configuration changes"
-msgstr	"Kuvamo Mu kubika Iboneza Amahinduka"
-
-#: src/lang.c:391
-#, fuzzy
-msgid	"read chosen group"
-msgstr	"Gusoma Itsinda"
-
-#: src/lang.c:392
-#, fuzzy
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	"Kugarura."
-
-#: src/lang.c:393
-#, fuzzy
-msgid	"search backwards for a group name"
-msgstr	"Gushaka Inyuma kugirango a Itsinda Izina:"
-
-#: src/lang.c:394
-#, fuzzy
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	"(Byose Na Gufunika"
-
-#: src/lang.c:395
-#, fuzzy
-msgid	"search forwards for a group name"
-msgstr	"Gushaka kugirango a Itsinda Izina:"
-
-#: src/lang.c:396
-#, fuzzy
-msgid	"subscribe to chosen group"
-msgstr	"Kwiyandikisha Kuri Itsinda"
-
-#: src/lang.c:397
-#, fuzzy
-msgid	"subscribe to groups that match pattern"
-msgstr	"Kwiyandikisha Kuri Amatsinda BIHUYE Ishusho"
-
-#: src/lang.c:398
-#, fuzzy
-msgid	"reread active file to check for any new news"
-msgstr	"Gikora IDOSIYE Kuri Kugenzura... kugirango Gishya Amakuru"
-
-#: src/lang.c:399
-#, fuzzy
-msgid	"toggle display of group name only or group name plus description"
-msgstr	"Mukomatanya Kugaragaza Bya Itsinda Izina: Cyangwa Itsinda Izina: Guteranya "
-	"Isobanuramiterere"
-
-#: src/lang.c:400
-#, fuzzy
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	"Mukomatanya Kugaragaza Kuri Garagaza Byose Bidasomye yanditswe/ byemewe "
-	"Amatsinda"
-
-#: src/lang.c:401
-#, fuzzy
-msgid	"unsubscribe from chosen group"
-msgstr	"Kwivana aho wiyandikishe Bivuye Itsinda"
-
-#: src/lang.c:402
-#, fuzzy
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"Kwivana aho wiyandikishe Bivuye Amatsinda BIHUYE Ishusho"
-
-#: src/lang.c:403
-#, fuzzy
-msgid	"sort the list of groups"
-msgstr	"Ishungura i Urutonde Bya Amatsinda"
-
-#: src/lang.c:404
-#, fuzzy
-msgid	"toggle display to show all/subscribed groups"
-msgstr	"Mukomatanya Kugaragaza Kuri Garagaza Byose yanditswe/ byemewe Amatsinda"
-
-#: src/lang.c:405
-#, fuzzy
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 Guhitamo Ingingo ku Umubare"
-
-#: src/lang.c:406
-#, fuzzy
-msgid	"mark thread as read and return to group index page"
-msgstr	"Ikimenyetso Urudodo Nka Gusoma Na Garuka Kuri Itsinda Umubarendanga Ipaji"
-
-#: src/lang.c:407
-#, fuzzy
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	"Ikimenyetso Urudodo Nka Gusoma Na Injiza Komeza>> Bidasomye Urudodo Cyangwa "
-	"Itsinda"
-
-#: src/lang.c:408
-#, fuzzy
-msgid	"choose first article in list"
-msgstr	"Guhitamo Itangira Ingingo in Urutonde"
-
-#: src/lang.c:409
-#, fuzzy
-msgid	"choose last article in list"
-msgstr	"Guhitamo Iheruka Ingingo in Urutonde"
-
-#: src/lang.c:410
-#, fuzzy
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	"Ikimenyetso Ingingo Cyangwa Nka Gusoma Na Kwimura indanga Kuri Komeza>> "
-	"Bidasomye Ingingo"
-
-#: src/lang.c:411
-#, fuzzy
-msgid	"read chosen article"
-msgstr	"Gusoma Ingingo"
-
-#: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	""
-
-#: src/lang.c:413
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	""
-
-#: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	""
-
-#: src/lang.c:415
-#, fuzzy
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"Urudodo Ingingo"
-
-#: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	""
-
-#: src/lang.c:418
-#, fuzzy
-msgid	"Kill filter added"
-msgstr	"Muyunguruzi... Kyongewe"
-
-#: src/lang.c:419
-#, fuzzy
-msgid	"Auto-selection filter added"
-msgstr	"Ihitamo Muyunguruzi... Kyongewe"
-
-#: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	""
-
-#: src/lang.c:421
-#, fuzzy
-msgid	"Storing article for later posting"
-msgstr	"Ingingo kugirango"
-
-#: src/lang.c:422
-#, fuzzy
-msgid	"Please enter a valid character"
-msgstr	"Injiza a Byemewe Inyuguti"
-
-#: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	""
-
-#: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	""
-
-#: src/lang.c:425
-#, fuzzy
-msgid	"Not a multi-part message"
-msgstr	"a Ubutumwa"
-
-#: src/lang.c:426
-#, fuzzy
-msgid	"You are not subscribed to this group"
-msgstr	"OYA yanditswe/ byemewe Kuri iyi Itsinda"
-
-#: src/lang.c:427
-#, fuzzy
-msgid	"No previous expression"
-msgstr	"Ibanjirije imvugo"
-
-#: src/lang.c:428
-#, fuzzy
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	"Yahagaritswe in Oya Guhindura Ubwoko"
-
-#. TODO: replace hardcoded key-name in txt_info_postponed
-#: src/lang.c:430
-#, fuzzy, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	"%dNa:"
-
-#: src/lang.c:431
-#, fuzzy
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	"Ibigize Cyavanyweho Kubona i Ingingo in i"
-
-#: src/lang.c:433
-#, fuzzy, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	"Kubika Izina ry'idosiye: kugirango ni a OYA"
-
-#: src/lang.c:434
-#, fuzzy
-msgid	"TeX2Iso encoded article"
-msgstr	"Ingingo"
-
-#: src/lang.c:435
-msgid	"incomplete "
-msgstr	""
-
-#. TODO: replace hardcoded key-names
-#: src/lang.c:437
-#, fuzzy, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	"Kuri a Mugaragaza Gusoma Amakuru Amakuru Cyangwa R Ihitamo Bivuye a Seriveri "
-	"h Intonde i Bihari Komandi: Umurongo Amahitamo Intera i Urubuga rw'amakuru "
-	"Ihitamo Ipaji i Itsinda i Urudodo Ipaji Na i Ingingo ni Bihari ku ku i "
-	"Komandi: Hejuru Hasi ku ikoresha i Akambi Utubuto Cyangwa Na U Na Kuri Ipaji "
-	"Hejuru Hasi a Urubuga rw'amakuru ku Cyangwa a Ishusho Komandi: Byacapwe "
-	"Komandi: Komandi: Komandi: i Komandi: Kuri Iposita a Amakuru Ingingo i "
-	"Amabwiriza Kuri Iposita Hejuru Kuri Amakuru Ingingo Na i Amabwiriza Kuri "
-	"Subiza Kuri Amakuru Ingingo Umwanditsi Komandi: i Kuri Biturutse a "
-	"Ibikubiyemo Birenzeho Ibisobanuro Gusoma i Bikorwa Ipaji Na Idosiye Kohereza "
-	"Raporo Ibisobanuro Kuri Na: i Komandi:"
-
-#: src/lang.c:453
-#, fuzzy, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	"Umurongo i IDOSIYE"
-
-#: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	""
-
-#: src/lang.c:457
-#, fuzzy, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	"Umutwempangano"
-
-#: src/lang.c:458
-#, fuzzy
-msgid	"Inverse video disabled"
-msgstr	"Videwo... Yahagaritswe"
-
-#: src/lang.c:459
-#, fuzzy
-msgid	"Inverse video enabled"
-msgstr	"Videwo... Bikora"
-
-#: src/lang.c:461
-#, fuzzy, c-format
-msgid	"Missing definition for %s\n"
-msgstr	"Insobanuro kugirango"
-
-#: src/lang.c:462
-#, fuzzy, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	"Urufunguzo Insobanuro"
-
-#: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	""
-
-#: src/lang.c:464
-#, fuzzy, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	"IDOSIYE Kuri Verisiyo"
-
-#: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	""
-
-#: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	""
-
-#: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	""
-
-#: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	""
-
-#: src/lang.c:469
-#, fuzzy
-msgid	"Kill pattern scope  : "
-msgstr	"Ishusho Ingano:"
-
-#: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	""
-
-#: src/lang.c:471
-#, fuzzy
-msgid	"Kill text pattern   : "
-msgstr	"Umwandiko Ishusho"
-
-#: src/lang.c:472
-#, fuzzy
-msgid	"Kill time in days   : "
-msgstr	"Igihe in Iminsi"
-
-#: src/lang.c:474
-msgid	"Last"
-msgstr	"Iheruka"
-
-#: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	""
-
-#: src/lang.c:476
-#, fuzzy, c-format
-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
-msgid	"Mail"
-msgstr	"Ubutumwa"
-
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	""
-
-#: src/lang.c:481
-#, fuzzy, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"Ingingo S Kuri S"
-
-#: src/lang.c:482
-#, fuzzy, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"LOG Kuri %s\n"
-
-#: src/lang.c:483
-#, fuzzy
-msgid	"Mail bug report..."
-msgstr	"Icyegeranyo"
-
-#: src/lang.c:484
-#, fuzzy, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"Kuri"
-
-#: src/lang.c:485
-msgid	"Mailed"
-msgstr	""
-
-#: src/lang.c:486
-#, fuzzy, c-format
-msgid	"Mailing to %s..."
-msgstr	"Kuri %s"
-
-#: src/lang.c:487
-#, fuzzy
-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	"#[Kubika Gikora IDOSIYE ni nka Amakuru Gikora IDOSIYE KININI GITO Umwanya ni "
-	"i Cyangwa"
-
-#: src/lang.c:490
-#, fuzzy, c-format
-msgid	"%s marked as unread"
-msgstr	"%scy/ byagarajwe Nka Bidasomye"
-
-#: src/lang.c:491
-#, fuzzy, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	"Bya Nka Gusoma"
-
-#: src/lang.c:492
-#, fuzzy, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"Byose Nka Gusoma"
-
-#: src/lang.c:493
-#, fuzzy, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	"KIGEZWEHO Ingingo Kuvamo"
-
-#: src/lang.c:494
-#, fuzzy, c-format
-msgid	"Mark group %s as read?"
-msgstr	"Itsinda Nka Gusoma"
-
-#: src/lang.c:495
-#, fuzzy, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"Urudodo Nka Gusoma"
-
-#: src/lang.c:496
-#, fuzzy, c-format
-msgid	"Mark %s=tagged articles/threads, %s=current thread, %s=quit: "
-msgstr	"KIGEZWEHO Urudodo Kuvamo"
-
-#: src/lang.c:497
-#, fuzzy, c-format
-msgid	"Matching %s groups..."
-msgstr	"Amatsinda"
-
-#: src/lang.c:498 src/lang.c:502
-#, 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
-#, 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
-#, 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
-#, fuzzy, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	"%s=Gushaka Gushaka Inyuma Kuvamo"
-
-#: src/lang.c:503
-#, 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
-#, 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
-#, 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
-#, 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
-#, 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
-#, 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
-msgid	"--More--"
-msgstr	""
-
-#: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	""
-
-#: src/lang.c:512
-#, fuzzy
-msgid	", name: "
-msgstr	",IZINA! "
-
-#: src/lang.c:513
-#, 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
-#, fuzzy
-msgid	"newsgroups"
-msgstr	"Imbuga z'amakuru"
-
-#: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	""
-
-#: src/lang.c:516
-#, fuzzy
-msgid	"newsgroup"
-msgstr	"Urubuga rw'amakuru"
-
-#: src/lang.c:517
-#, fuzzy
-msgid	"Try and save newsrc file again?"
-msgstr	"Na Kubika IDOSIYE"
-
-#: src/lang.c:518
-#, fuzzy
-msgid	"Warning: No newsgroups were written to your newsrc file. Save aborted."
-msgstr	"Imbuga z'amakuru Kuri IDOSIYE Kubika"
-
-#: src/lang.c:519
-#, fuzzy
-msgid	"newsrc file saved successfully.\n"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	""
-
-#: src/lang.c:521
-#, fuzzy, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"Ijambobanga... OYA Byabonetse kugirango"
-
-#: src/lang.c:522
-#, fuzzy
-msgid	"No  "
-msgstr	"Oya"
-
-#: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	""
-
-#: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	""
-
-#: src/lang.c:525
-#, fuzzy
-msgid	"*** No description ***"
-msgstr	"*** Isobanuramiterere ***"
-
-#: src/lang.c:526
-#, fuzzy
-msgid	"No filename"
-msgstr	"Izina ry'idosiye:"
-
-#: src/lang.c:527
-#, fuzzy
-msgid	"No group"
-msgstr	"Itsinda"
-
-#: src/lang.c:528
-#, fuzzy
-msgid	"*** No groups ***"
-msgstr	"*** Amatsinda ***"
-
-#: src/lang.c:529
-#, fuzzy
-msgid	"No more groups to read"
-msgstr	"Birenzeho Amatsinda Kuri Gusoma"
-
-#: src/lang.c:530
-#, fuzzy
-msgid	"No last message"
-msgstr	"Iheruka Ubutumwa"
-
-#: src/lang.c:531
-#, fuzzy
-msgid	"No mail address"
-msgstr	"Ubutumwa Aderesi"
-
-#: src/lang.c:532
-#, fuzzy
-msgid	"No articles marked for saving"
-msgstr	"cy/ byagarajwe kugirango Mu kubika"
-
-#: src/lang.c:533
-#, fuzzy
-msgid	"No match"
-msgstr	"BIHUYE"
-
-#: src/lang.c:534
-#, fuzzy
-msgid	"No more groups"
-msgstr	"Birenzeho Amatsinda"
-
-#: src/lang.c:535
-#, fuzzy
-msgid	"No newsgroups"
-msgstr	"Imbuga z'amakuru"
-
-#: src/lang.c:536
-#, fuzzy
-msgid	"No next unread article"
-msgstr	"Komeza>> Bidasomye Ingingo"
-
-#: src/lang.c:537
-#, fuzzy
-msgid	"No previous group"
-msgstr	"Ibanjirije Itsinda"
-
-#: src/lang.c:538
-#, fuzzy
-msgid	"No previous unread article"
-msgstr	"Ibanjirije Bidasomye Ingingo"
-
-#: src/lang.c:539
-msgid	"No responses"
-msgstr	""
-
-#: src/lang.c:540
-#, fuzzy
-msgid	"No responses to list in current thread"
-msgstr	"Kuri Urutonde in KIGEZWEHO Urudodo"
-
-#: src/lang.c:541
-#, fuzzy
-msgid	"No search string"
-msgstr	"Gushaka Ikurikiranyanyuguti"
-
-#: src/lang.c:542
-msgid	"No subject"
-msgstr	"Nta kivugwaho"
-
-#: src/lang.c:544
-#, 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
-#, 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
-#, c-format
-msgid	"%s: Terminal must have clearscreen (cl) capability\n"
-msgstr	""
-
-#: src/lang.c:547
-#, fuzzy, c-format
-msgid	"%s: Terminal must have cursor motion (cm)\n"
-msgstr	"%s:indanga cm"
-
-#: src/lang.c:548
-#, 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
-#, fuzzy, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	"Byabonetse kugirango"
-
-#: src/lang.c:551
-#, fuzzy
-msgid	"Newsgroup does not exist on this server"
-msgstr	"OYA ku iyi Seriveri"
-
-#: src/lang.c:552
-#, fuzzy, c-format
-msgid	"Group %s not found in active file"
-msgstr	"OYA Byabonetse in Gikora IDOSIYE"
-
-#: src/lang.c:553
-#, 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
-#, fuzzy
-msgid	"use a)lternative name, use d)efault .newsrc, q)uit tin: "
-msgstr	"Gukoresha a Izina: Gukoresha D Q"
-
-#: src/lang.c:555
-#, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	""
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	""
-
-#: src/lang.c:563
-#, fuzzy, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"OYA Bikora Na:"
-
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	""
-
-#: src/lang.c:567
-#, fuzzy, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	"in ku"
-
-#: src/lang.c:568
-#, fuzzy, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	"in By'imbere Ikosa"
-
-#: src/lang.c:569
-#, fuzzy, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	"in By'imbere Ikosa"
-
-#: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	""
-
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
-#: src/lang.c:572
-#, 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
-#, fuzzy
-msgid	"Posted articles history"
-msgstr	"Urutonde"
-
-#: src/lang.c:576
-#, fuzzy, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"Kuri Urubuga rw'amakuru S"
-
-#: src/lang.c:577
-#, fuzzy
-msgid	"-- post processing started --"
-msgstr	"--Iposita Inonosora--"
-
-#: src/lang.c:578
-#, fuzzy
-msgid	"-- post processing completed --"
-msgstr	"--Iposita Inonosora--"
-
-#: src/lang.c:579
-#, fuzzy, c-format
-msgid	"Post subject [%s]> "
-msgstr	"Ikivugwaho"
-
-#: src/lang.c:580
-#, 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
-#, fuzzy
-msgid	"Posting article..."
-msgstr	"Ingingo"
-
-#: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	""
-
-#: src/lang.c:583
-#, c-format
-msgid	"Hot %s"
-msgstr	""
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	""
-
-#: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	""
-
-#: src/lang.c:586
-#, fuzzy
-msgid	"Processing mail messages marked for deletion."
-msgstr	"Ubutumwa Ubutumwa cy/ byagarajwe kugirango Isibwa"
-
-#: src/lang.c:587
-#, fuzzy
-msgid	"Processing saved articles marked for deletion."
-msgstr	"cy/ byagarajwe kugirango Isibwa"
-
-#: src/lang.c:588
-#, fuzzy, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	"Iposita Kwirengagiza Kuvamo"
-
-#: src/lang.c:589
-#, fuzzy
-msgid	"Article unchanged, abort mailing?"
-msgstr	"Kureka"
-
-#: src/lang.c:590
-#, fuzzy, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	"Kuri"
-
-#: src/lang.c:592
-#, fuzzy
-msgid	"Add quick kill filter?"
-msgstr	"Muyunguruzi..."
-
-#: src/lang.c:593
-#, fuzzy
-msgid	"Add quick selection filter?"
-msgstr	"Ihitamo Muyunguruzi..."
-
-#: src/lang.c:594
-#, fuzzy
-msgid	"Do you really want to quit?"
-msgstr	"Kuri Kuvamo"
-
-#: src/lang.c:595
-#, 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
-#, fuzzy
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	"in iyi Itsinda Kuvamo"
-
-#: src/lang.c:597
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	"%s=Kuvamo Guhindura"
-
-#: src/lang.c:598
-#, fuzzy, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	"%s=Kuvamo Guhindura Kubika Isobanuramiterere"
-
-#: src/lang.c:599
-#, fuzzy, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	"%s=Kuvamo Guhindura Kubika Guhitamo Isobanuramiterere"
-
-#: src/lang.c:600
-#, fuzzy
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"Kuri Kuvamo Mu kubika Iboneza"
-
-#: src/lang.c:603
-#, fuzzy
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	"Urutonde Byemewe 0 9 1."
-
-#: src/lang.c:604
-#, fuzzy
-msgid	"Do you want to abort this operation?"
-msgstr	"Kuri Kureka iyi"
-
-#: src/lang.c:605
-#, fuzzy
-msgid	"Do you want to exit tin immediately?"
-msgstr	"Kuri Gusohoka Ako kanya"
-
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	""
-
-#: src/lang.c:607
-#, fuzzy
-msgid	"Reading ('q' to quit)..."
-msgstr	"Kuri Kuvamo"
-
-#: src/lang.c:608
-#, c-format
-msgid	"Reading %sarticles..."
-msgstr	""
-
-#: src/lang.c:609
-#, fuzzy, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:610
-#, fuzzy, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:611
-#, fuzzy
-msgid	"Reading filter file...\n"
-msgstr	"Muyunguruzi... IDOSIYE"
-
-#: src/lang.c:612
-#, fuzzy, c-format
-msgid	"Reading %s groups..."
-msgstr	"Amatsinda"
-
-#: src/lang.c:613
-#, fuzzy
-msgid	"Reading input history file...\n"
-msgstr	"Iyinjiza Urutonde IDOSIYE"
-
-#: src/lang.c:614
-#, fuzzy
-msgid	"Reading keymap file...\n"
-msgstr	"IDOSIYE"
-
-#: src/lang.c:615
-#, fuzzy
-msgid	"Reading groups from active file... "
-msgstr	"Amatsinda Bivuye Gikora IDOSIYE"
-
-#: src/lang.c:616
-#, fuzzy
-msgid	"Reading groups from newsrc file... "
-msgstr	"Amatsinda Bivuye IDOSIYE"
-
-#: src/lang.c:617
-#, fuzzy
-msgid	"Reading newsgroups file... "
-msgstr	"Imbuga z'amakuru IDOSIYE"
-
-#: src/lang.c:618
-#, fuzzy
-msgid	"Reading newsrc file..."
-msgstr	"IDOSIYE"
-
-#: src/lang.c:620
-#, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	""
-
-#: src/lang.c:622
-#, fuzzy, c-format
-msgid	"Bogus group %s removed."
-msgstr	"Itsinda Cyavanyweho"
-
-#: src/lang.c:623
-#, fuzzy, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"Guhindura izina Kuri"
-
-#: src/lang.c:624
-#, fuzzy
-msgid	"Reply to author..."
-msgstr	"Kuri Umwanditsi"
-
-#: src/lang.c:625
-msgid	"Repost"
-msgstr	""
-
-#: src/lang.c:626
-#, fuzzy
-msgid	"Reposting article..."
-msgstr	"Ingingo"
-
-#: src/lang.c:627
-#, fuzzy, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	"Ingingo S Kuri Itsinda S"
-
-#: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	""
-
-#: src/lang.c:629
-#, fuzzy
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	"Kuri i Imbuga z'amakuru"
-
-#: src/lang.c:630
-#, 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
-#, fuzzy, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	"Bya"
-
-#: src/lang.c:632
-#, fuzzy
-msgid	"Press <RETURN> to continue..."
-msgstr	"Kuri urifuzagukomeza"
-
-#: src/lang.c:634
-#, fuzzy, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	"Y N"
-
-#: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	""
-
-#: src/lang.c:636
-#, fuzzy
-msgid	"Auto-select Article Menu"
-msgstr	"Guhitamo"
-
-#: src/lang.c:637
-#, fuzzy, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	"F L o N"
-
-#: src/lang.c:638
-#, fuzzy
-msgid	"Select pattern scope: "
-msgstr	"Ishusho Ingano:"
-
-#: src/lang.c:639
-#, fuzzy, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	"Y N"
-
-#: src/lang.c:640
-#, fuzzy
-msgid	"Select text pattern : "
-msgstr	"Umwandiko Ishusho"
-
-#: src/lang.c:641
-#, fuzzy
-msgid	"Select time in days   : "
-msgstr	"Igihe in Iminsi"
-
-#: src/lang.c:642
-#, fuzzy, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\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
-#, fuzzy
-msgid	"Showing unread groups only"
-msgstr	"Bidasomye Amatsinda"
-
-#: src/lang.c:649
-#, fuzzy
-msgid	"Subject: line (ignore case)   "
-msgstr	"Umurongo Kwirengagiza"
-
-#: src/lang.c:650
-#, fuzzy
-msgid	"Subject: line (case sensitive)"
-msgstr	"Umurongo"
-
-#: src/lang.c:651
-msgid	"Save"
-msgstr	"Kubika"
-
-#: src/lang.c:652
-#, fuzzy, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"Kubika"
-
-#: src/lang.c:653
-#, fuzzy
-msgid	"Save configuration before continuing?"
-msgstr	"Kubika Iboneza Mbere"
-
-#: src/lang.c:654
-#, fuzzy
-msgid	"Save filename> "
-msgstr	"Kubika Izina ry'idosiye:"
-
-#: src/lang.c:655
-msgid	"Saved"
-msgstr	""
-
-#: src/lang.c:656
-#, fuzzy, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	"%4dBidasomye in"
-
-#: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	""
-
-#: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	""
-
-#: src/lang.c:659
-#, fuzzy, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"%s%d%sBivuye"
-
-#: src/lang.c:660
-#, fuzzy, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"--%sKuri"
-
-#: src/lang.c:661
-#, fuzzy, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"--%sKuri"
-
-#: src/lang.c:662
-#, fuzzy
-msgid	"Saving..."
-msgstr	"Kubika%S"
-
-#: src/lang.c:663
-#, fuzzy, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s:Byanze"
-
-#: src/lang.c:665
-#, fuzzy, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s:Mugaragaza ni"
-
-#: src/lang.c:667
-#, 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
-#, fuzzy, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"Gushakisha inyuma"
-
-#: src/lang.c:669
-#, fuzzy, c-format
-msgid	"Search body [%s]> "
-msgstr	"Umubiri"
-
-#: src/lang.c:670
-#, c-format
-msgid	"Search forwards [%s]> "
-msgstr	""
-
-# 5374
-#: src/lang.c:671
-msgid	"Searching..."
-msgstr	"Gushakisha..."
-
-#: src/lang.c:672
-#, fuzzy, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	"Ingingo Bya Kuri Kureka"
-
-#: src/lang.c:673
-#, fuzzy
-msgid	"Select article> "
-msgstr	"Ingingo"
-
-#: src/lang.c:674
-#, 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
-#, fuzzy
-msgid	"Select group> "
-msgstr	"Itsinda"
-
-#: src/lang.c:676
-#, fuzzy, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	"Ihitamo Ishusho"
-
-#: src/lang.c:677
-#, fuzzy
-msgid	"Select thread > "
-msgstr	"Urudodo"
-
-#: src/lang.c:678
-#, 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
-#, fuzzy
-msgid	"servers active-file"
-msgstr	"Gikora IDOSIYE"
-
-#: src/lang.c:680
-#, fuzzy
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	"Kwimura Gishya Imbuga z'amakuru Itangira"
-
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	""
-
-#: src/lang.c:682
-#, c-format
-msgid	"Starting: (%s)"
-msgstr	""
-
-#: src/lang.c:683
-#, fuzzy, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"Bya"
-
-#: src/lang.c:684
-#, fuzzy, c-format
-msgid	"Thread (%.*s)"
-msgstr	"S"
-
-#: src/lang.c:685
-#, fuzzy
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	"Kwiyandikisha Ishusho"
-
-#: src/lang.c:686
-#, fuzzy, c-format
-msgid	"subscribed to %d groups"
-msgstr	"yanditswe/ byemewe Kuri Amatsinda"
-
-#: src/lang.c:687
-#, fuzzy, c-format
-msgid	"Subscribed to %s"
-msgstr	"Kuri"
-
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	""
-
-#: src/lang.c:689
-#, fuzzy, c-format
-msgid	"Repost or supersede article(s) [%%s]? (%s/%s/%s): "
-msgstr	"Cyangwa Ingingo S"
-
-#: src/lang.c:690
-#, fuzzy, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	"Ingingo S Kuri Itsinda S"
-
-#: src/lang.c:691
-#, fuzzy
-msgid	"Superseding article ..."
-msgstr	"Ingingo"
-
-#: src/lang.c:692
-#, fuzzy, c-format
-msgid	"\n"
-	"Stopped. Type 'fg' to restart %s\n"
-msgstr	"Kuri Ongera utangire"
-
-#: src/lang.c:694
-#, fuzzy, c-format
-msgid	"%d days"
-msgstr	"%dIminsi"
-
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	""
-
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	""
-
-#: src/lang.c:697
-#, fuzzy
-msgid	"# Default action/prompt strings\n"
-msgstr	"#Igikorwa Urwinjiriro"
-
-#: src/lang.c:698
-#, 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"
-	"#             5=Message-ID: & last References: entry only\n"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	"#kugirango 1. Urufunguzo Ikiyega Ihitamo Umutwempangano 0 1. 2. 3. 4. 5 "
-	"Iheruka Icyinjijwe 6 Icyinjijwe 7 Gukurikiza Kuri Byose Amatsinda Gukurikiza "
-	"Kuri KIGEZWEHO Muyunguruzi... Kwirengagiza Kuri"
-
-#: src/lang.c:711
-#, 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
-#, fuzzy
-msgid	"# Host & time info used for detecting new groups (don't touch)\n"
-msgstr	"#Igihe Ibisobanuro kugirango Gishya Amatsinda"
-
-#: src/lang.c:713
-#, fuzzy
-msgid	"There is no news\n"
-msgstr	"ni Oya"
-
-#: src/lang.c:714
-msgid	"Thread"
-msgstr	"Urudodo"
-
-#: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	""
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	""
-
-#: src/lang.c:717
-#, fuzzy
-msgid	"Thread selected"
-msgstr	"Byahiswemo"
-
-#: src/lang.c:719
-msgid	"threads"
-msgstr	""
-
-#: src/lang.c:721
-#, fuzzy
-msgid	"Thread range"
-msgstr	"Urutonde"
-
-#: src/lang.c:722
-#, fuzzy
-msgid	"thread"
-msgstr	"Urudodo"
-
-#: src/lang.c:723
-#, fuzzy, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"Bya"
-
-#: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	""
-
-#: src/lang.c:725
-#, fuzzy, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	"ijambo Igaragaza cyane"
-
-#: src/lang.c:726
-#, fuzzy
-msgid	"Toggled rot13 encoding"
-msgstr	"ROT13 Imisobekere:"
-
-#: src/lang.c:727
-#, fuzzy, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	"Ikidage Imisobekere:"
-
-#: src/lang.c:728
-#, fuzzy, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	"Isunika Ubugari Kuri"
-
-#: src/lang.c:729
-#, fuzzy, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	"%dKuri"
-
-#: src/lang.c:730
-#, fuzzy, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%dKuri"
-
-#: src/lang.c:731
-#, fuzzy
-msgid	"           h=help\n"
-msgstr	"h"
-
-#: src/lang.c:733
-msgid	"Unlimited"
-msgstr	""
-
-#: src/lang.c:734
-#, fuzzy
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	"Kwivana aho wiyandikishe Ishusho"
-
-#: src/lang.c:735
-#, c-format
-msgid	"Error decoding %s : %s"
-msgstr	""
-
-#: src/lang.c:736
-#, fuzzy
-msgid	"No end."
-msgstr	"Impera"
-
-#: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	""
-
-#: src/lang.c:738
-#, 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
-#, fuzzy
-msgid	"unread "
-msgstr	"Bidasomye"
-
-#: src/lang.c:740
-#, fuzzy, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	"Bivuye Amatsinda"
-
-#: src/lang.c:741
-#, fuzzy, c-format
-msgid	"Unsubscribed from %s"
-msgstr	"Bivuye"
-
-#: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	""
-
-#: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	""
-
-#: src/lang.c:744
-msgid	"Updated"
-msgstr	""
-
-#: src/lang.c:745
-msgid	"Updating"
-msgstr	"Ivugurura"
-
-#: src/lang.c:746
-#, fuzzy, c-format
-msgid	"Opening %s\n"
-msgstr	"Gufungura %s%S"
-
-#: src/lang.c:747
-#, fuzzy
-msgid	"No more URL's in this article"
-msgstr	"Birenzeho in iyi Ingingo"
-
-#: src/lang.c:748
-#, fuzzy
-msgid	"Use MIME display program for this message?"
-msgstr	"Kugaragaza Porogaramu kugirango iyi Ubutumwa"
-
-#: src/lang.c:749
-#, 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
-#, fuzzy
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	"-Garuka Imimerere NIBA Bidasomye Amakuru Ubwoko"
-
-#: src/lang.c:751
-#, fuzzy
-msgid	"  -q       don't check for new newsgroups"
-msgstr	"-Q Kugenzura... kugirango Gishya Imbuga z'amakuru"
-
-#: src/lang.c:752
-#, fuzzy
-msgid	"  -X       don't save any files on quit"
-msgstr	"-Kubika Idosiye ku Kuvamo"
-
-#: src/lang.c:753
-#, fuzzy
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	"-D Garagaza Urubuga rw'amakuru"
-
-#: src/lang.c:754
-#, fuzzy
-msgid	"  -G limit get only limit articles/group"
-msgstr	"-Kubona Itsinda"
-
-#: src/lang.c:755
-#, fuzzy, c-format
-msgid	"  -H       help information about %s"
-msgstr	"-H Ifashayobora Ibisobanuro Ibyerekeye"
-
-#: src/lang.c:756
-#, fuzzy
-msgid	"  -h       this help message"
-msgstr	"-h iyi Ifashayobora Ubutumwa"
-
-#: src/lang.c:757
-#, fuzzy, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	"-Amakuru Umubarendanga IDOSIYE bushyinguro Mburabuzi"
-
-#: src/lang.c:758
-#, fuzzy
-msgid	"  -u       update index files (batch mode)"
-msgstr	"-u Kuvugurura Umubarendanga Idosiye Ubwoko"
-
-#: src/lang.c:759
-#, fuzzy, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	"-M bushyinguro Mburabuzi"
-
-#: src/lang.c:760
-#, fuzzy, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	"Raporo Ibisobanuro Kuri"
-
-#: src/lang.c:761
-#, fuzzy
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	"-Ubutumwa Gishya Amakuru Kuri Ubwoko"
-
-#: src/lang.c:762
-#, fuzzy
-msgid	"  -M user  mail new news to specified user (batch mode)"
-msgstr	"-Ukoresha: Ubutumwa Gishya Amakuru Kuri Ukoresha: Ubwoko"
-
-#: src/lang.c:763
-#, 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
-#, fuzzy
-msgid	"  -x       no posting mode"
-msgstr	"-X Oya Ubwoko"
-
-#: src/lang.c:765
-#, fuzzy
-msgid	"  -w       post an article and exit"
-msgstr	"-W Iposita Ingingo Na Gusohoka"
-
-#: src/lang.c:766
-#, fuzzy
-msgid	"  -o       post all postponed articles and exit"
-msgstr	"-o Iposita Byose Na Gusohoka"
-
-#: src/lang.c:767
-#, fuzzy
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	"-R Gusoma Amakuru Bivuye Mburabuzi Seriveri"
-
-#: src/lang.c:768
-#, fuzzy
-msgid	"  -R       read news saved by -S option"
-msgstr	"-Gusoma Amakuru ku Ihitamo"
-
-#: src/lang.c:769
-#, fuzzy, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	"-S Kubika Amakuru bushyinguro Mburabuzi"
-
-#: src/lang.c:770
-#, fuzzy
-msgid	"  -S       save new news for later reading (batch mode)"
-msgstr	"-Kubika Gishya Amakuru kugirango Ubwoko"
-
-#: src/lang.c:771
-#, fuzzy
-msgid	"  -z       start if any unread news"
-msgstr	"-Z Gutangira NIBA Bidasomye Amakuru"
-
-#: src/lang.c:772
-#, fuzzy, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"A Amahitamo Urubuga rw'amakuru"
-
-#: src/lang.c:773
-#, fuzzy
-msgid	"  -v       verbose output for batch mode options"
-msgstr	"-v Ibisohoka kugirango Ubwoko Amahitamo"
-
-#: src/lang.c:774
-#, fuzzy
-msgid	"  -V       print version & date information"
-msgstr	"-V Gucapa Verisiyo Itariki Ibisobanuro"
-
-#: src/lang.c:775
-#, fuzzy, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	"%sUbwoko"
-
-#: src/lang.c:776
-#, fuzzy, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	"%skugirango Ubwoko"
-
-#: src/lang.c:778
-#, 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
-#, fuzzy, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"Kureba"
-
-#: src/lang.c:781
-#, 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
-#, fuzzy
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	"Ingingo Nyuma"
-
-#: src/lang.c:783
-#, fuzzy
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	"Kirimo"
-
-#: src/lang.c:784
-#, fuzzy
-msgid	"\n"
-	"Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
-msgstr	"Na: Oya"
-
-#: src/lang.c:786
-#, 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
-#, fuzzy
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Ibyerekeye Kuri Kureka Ingingo ku i Ingingo Bivuye Amakuru i ni Akazi ni i "
-	"Ingingo Ibyerekeye Kuri Kureka"
-
-#: src/lang.c:793
-#, fuzzy
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	"ikoresha a Byuzuye Imisobekere: Nka Gicapika Na external Porogaramu Kuri "
-	"Tanga Ingingo a Isinya ni ku Porogaramu OYA"
-
-#: src/lang.c:798
-#, fuzzy, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	"Kuri Bivuye Verisiyo Uduciro in IDOSIYE Byahinduwe"
-
-#: src/lang.c:800
-#, fuzzy, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\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
-#, fuzzy, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	"Bike Amatsinda Kuri Gusoma ku Kwivana aho wiyandikishe Bivuye Umukoro iyi "
-	"Ikosa Na Inyibutsa Mbere Gutangira Rimwe"
-
-#: src/lang.c:807
-#, 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
-#, fuzzy, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	"Inyuma Bya"
-
-#: src/lang.c:809
-#, fuzzy, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	"Isinya ni Imirongo OYA Ibisobanuro Nka"
-
-#: src/lang.c:813
-#, 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
-#, fuzzy
-msgid	"\n"
-	"Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
-msgstr	"Gutangira Na: OYA Na:"
-
-#: src/lang.c:815
-#, fuzzy
-msgid	"Writing attributes file..."
-msgstr	"Ibiranga IDOSIYE"
-
-#: src/lang.c:817
-#, c-format
-msgid	"%d Responses"
-msgstr	""
-
-#: src/lang.c:819
-#, fuzzy, c-format
-msgid	"Added %d %s"
-msgstr	"Kyongewe"
-
-#: src/lang.c:820
-#, fuzzy
-msgid	"No unsubscribed groups to show"
-msgstr	"Amatsinda Kuri Garagaza"
-
-#: src/lang.c:821
-#, fuzzy
-msgid	"Showing subscribed to groups only"
-msgstr	"yanditswe/ byemewe Kuri Amatsinda"
-
-#: src/lang.c:822
-#, fuzzy
-msgid	"Yes "
-msgstr	"Yego"
-
-#: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	""
-
-#: src/lang.c:828
-#, fuzzy, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	"ni in Na Kirimo Inyuguti in Byahiswemo Inyuguti ku NIBA Iposita Ingingo "
-	"Ingingo Guhindura Na Gukuraho... Inyuguti Cyangwa Guhindura>> i Igenamiterere "
-	"Kuri a Agaciro kugirango Biturutse Ihitamo"
-
-#: src/lang.c:839
-#, fuzzy
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"-Kosora amakosa Ubwoko 1. 2."
-
-#: src/lang.c:843
-#, fuzzy
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\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
-#, fuzzy
-msgid	"toggle color"
-msgstr	"Mukomatanya Ibara"
-
-#: src/lang.c:853
-#, fuzzy
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	"#Amabara Bya Mugaragaza Uduciro 1. Mburabuzi Umweru kugirango Na umukara "
-	"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
-#, fuzzy
-msgid	"  -a       toggle color flag"
-msgstr	"-a Mukomatanya Ibara Ibendera"
-
-#: src/lang.c:877
-#, fuzzy
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	"Gushyiraho Kuri Birenzeho Urubuga rw'amakuru"
-
-#: src/lang.c:878
-#, 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
-#, 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
-#, fuzzy
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	"Gushyiraho Kuri Birenzeho Urubuga rw'amakuru"
-
-#: src/lang.c:882
-#, 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
-#, 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
-#, 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
-#, fuzzy, c-format
-msgid	"%d files successfully written from %d articles. %d %s occurred."
-msgstr	"%dIdosiye Bivuye"
-
-#: src/lang.c:889
-msgid	"Missing parts."
-msgstr	""
-
-#: src/lang.c:890
-#, fuzzy
-msgid	"No beginning."
-msgstr	"Itangiriro"
-
-#: src/lang.c:891
-#, fuzzy
-msgid	"No data."
-msgstr	"Ibyatanzwe"
-
-# # @name OTHER
-# # @loc none
-#: src/lang.c:892
-#, fuzzy
-msgid	"Unknown error."
-msgstr	"Ikosa itazwi"
-
-#: src/lang.c:895
-#, fuzzy, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"Bya"
-
-#: src/lang.c:900
-#, fuzzy
-msgid	"Reading mail active file... "
-msgstr	"Ubutumwa Gikora IDOSIYE"
-
-#: src/lang.c:901
-#, fuzzy
-msgid	"Reading mailgroups file... "
-msgstr	"IDOSIYE"
-
-#: src/lang.c:905
-#, fuzzy
-msgid	"perform PGP operations on article"
-msgstr	"Ibikorwa: ku Ingingo"
-
-#: src/lang.c:906
-#, fuzzy
-msgid	"Add key(s) to public keyring?"
-msgstr	"Urufunguzo S Kuri Rusange"
-
-#: src/lang.c:907
-#, fuzzy, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	"%s=Shyiraho Umutekano IKIMENYETSO Byombi Kuvamo"
-
-#: src/lang.c:908
-#, 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
-#, fuzzy, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	"OYA Gushyiraho Hejuru Gufungura"
-
-#: src/lang.c:910
-#, fuzzy
-msgid	"Article not signed and no public keys found"
-msgstr	"OYA Na Oya Rusange Utubuto Byabonetse"
-
-#: src/lang.c:912
-#, 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
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=Kuvamo Guhindura Kohereza"
-
-#: src/lang.c:914
-#, 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
-#, 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
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	"%s=Kuvamo Guhindura Kohereza"
-
-#: src/lang.c:918
-#, 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
-#, 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
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	"%s=Kuvamo Guhindura Kohereza"
-
-#: src/lang.c:924
-#, 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
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
-msgstr	"%s=Kuvamo Guhindura Ibikubiyemo Iposita"
-
-#: src/lang.c:927
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	"%s=Kuvamo Guhindura Kohereza"
-
-#: src/lang.c:928
-#, 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
-#, fuzzy
-msgid	"Try cache_overview_files to speed up things.\n"
-msgstr	"Kuri Umuvuduko Hejuru"
-
-#: src/lang.c:938
-#, fuzzy
-msgid	"Tin will use local index files instead.\n"
-msgstr	"Gukoresha Umubarendanga Idosiye"
-
-#: src/lang.c:939
-#, fuzzy
-msgid	"Cannot find NNTP server name"
-msgstr	"Gushaka Seriveri Izina:"
-
-#: src/lang.c:940
-#, fuzzy, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"Kwihuza na\"\"..."
-
-#: src/lang.c:941
-#, fuzzy
-msgid	"Disconnecting from server...\n"
-msgstr	"Bivuye Seriveri"
-
-#: src/lang.c:942
-#, 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
-#, fuzzy, c-format
-msgid	"Failed to connect to NNTP server %s. Exiting..."
-msgstr	"Kuri Kwihuza Kuri Seriveri"
-
-#: src/lang.c:944
-#, fuzzy
-msgid	"205  Closing connection"
-msgstr	"Ukwihuza"
-
-#: src/lang.c:945
-#, 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
-#, fuzzy
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	"Kongerakwihuza."
-
-#: src/lang.c:947
-#, 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
-#, fuzzy
-msgid	"  -A       force authentication on connect"
-msgstr	"-A ku Kwihuza"
-
-#: src/lang.c:949
-#, 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
-#, 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
-#, fuzzy
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"-Gutangira Nka"
-
-#: src/lang.c:952
-#, fuzzy
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	"-L Gukoresha Bya N Komandi:"
-
-#: src/lang.c:953
-#, fuzzy
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	"-N Gusoma yanditswe/ byemewe Amatsinda Bivuye Seriveri"
-
-#: src/lang.c:955
-#, fuzzy, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/Serivisi"
-
-#: src/lang.c:958
-#, fuzzy
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	"Cyangwa Kwihuza"
-
-#: src/lang.c:960
-#, fuzzy, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"Kuri"
-
-#: src/lang.c:961
-#, fuzzy
-msgid	"Giving up...\n"
-msgstr	"Hejuru"
-
-#: src/lang.c:964
-#, 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
-#, fuzzy
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	"Seriveri OYA in Ibisobanuro"
-
-#: src/lang.c:970
-#, 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
-#, fuzzy
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"-Gutangira Nka"
-
-#: src/lang.c:974
-#, 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
-#, fuzzy
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	"-N Gusoma yanditswe/ byemewe Amatsinda Bivuye"
-
-#: src/lang.c:976
-#, fuzzy
-msgid	"Your server does not have Xref: in its NOV-files.\n"
-msgstr	"Seriveri OYA in Idosiye"
-
-#: src/lang.c:980
-#, fuzzy
-msgid	"Posting using external inews failed. Use built in inews instead?"
-msgstr	"ikoresha external Byanze in"
-
-#: src/lang.c:981
-#, 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:989
-#, fuzzy, c-format
-msgid	"%d %s printed"
-msgstr	"%d%sByacapwe"
-
-#: 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:991
-msgid	"Print"
-msgstr	"Gucapa"
-
-#: src/lang.c:992
-msgid	"Printing..."
-msgstr	"Icapa..."
-
-#: src/lang.c:996
-#, fuzzy
-msgid	"pipe article/thread/hot/pattern/tagged articles into command"
-msgstr	"Ingingo Urudodo Ishusho Komandi:"
-
-#: src/lang.c:997
-#, fuzzy
-msgid	"No command"
-msgstr	"Komandi:"
-
-#: src/lang.c:998
-msgid	"Pipe"
-msgstr	""
-
-#: src/lang.c:999
-#, fuzzy, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Kuri Komandi: S"
-
-#: src/lang.c:1000
-msgid	"Piping..."
-msgstr	""
-
-#: src/lang.c:1002
-#, fuzzy
-msgid	"Piping not enabled."
-msgstr	"OYA Bikora"
-
-#: src/lang.c:1006
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	"Umurongo Imyanya in Cyavanyweho Umwanya ni i i Bivuye i Ibigize a Akitso Kuri "
-	"Urubuga rw'amakuru Amazina"
-
-#: src/lang.c:1011
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\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:1016
-#, fuzzy, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\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: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:1025
-#, fuzzy
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	"Ingingo Kirimo Umwandiko Igihe Kuri Kuri i Urufunguzo Utudomo Kuri Cyangwa "
-	"Abantu a Abantu i Bya Gusimbuka:%s Ingingo Itangira Ipaji ni Ibikoresho "
-	"Ingingo Kuri in Hanyuma guhera i Ingano ni a i Imirongo Gufunika Na Abantu "
-	"Gusoma Kwandika Na in Ihinduramiterere Abantu Kuri Kwirengagiza a Cyuzuye "
-	"Inyuma"
-
-#: src/lang.c:1038
-#, fuzzy
-msgid	"shell escape"
-msgstr	"Igikonoshwa"
-
-#: src/lang.c:1039
-#, c-format
-msgid	"Shell Command (%s)"
-msgstr	""
-
-#: src/lang.c:1040
-#, fuzzy, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"Igikonoshwa Komandi:"
-
-#: src/lang.c:1044
-#, fuzzy, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	"%s:Kubona Icyinjijwe kugirango"
-
-#: src/lang.c:1048
-#, fuzzy, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"S Kuri Kuvamo"
-
-#: src/lang.c:1050
-#, fuzzy, c-format
-msgid	"Group %.*s..."
-msgstr	"S"
-
-#: src/lang.c:1054
-msgid	"Server unavailable\n"
-msgstr	""
-
-#: 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: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: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: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: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: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: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: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:1078
-#, fuzzy
-msgid	"Terminal does not support color"
-msgstr	"OYA Gushigikira Ibara"
-
-#: 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:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	"Nta na kimwe"
-
-#: src/lang.c:1098
-msgid	"Subject"
-msgstr	"Ikivugwaho"
-
-#: src/lang.c:1099
-msgid	"References"
-msgstr	"Indango"
-
-#: src/lang.c:1100
-#, fuzzy
-msgid	"Both Subject and References"
-msgstr	"Na"
-
-#: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	""
-
-#: src/lang.c:1102
-msgid	"Percentage Match"
-msgstr	""
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	"Oya"
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	"Yego"
-
-#: src/lang.c:1116
-#, fuzzy
-msgid	"Hide All"
-msgstr	"Guhisha byose"
-
-#: src/lang.c:1124
-msgid	"Address"
-msgstr	"Aderesi"
-
-#: src/lang.c:1125
-msgid	"Full Name"
-msgstr	""
-
-#: src/lang.c:1126
-#, fuzzy
-msgid	"Address and Name"
-msgstr	"Na"
-
-#: src/lang.c:1133
-msgid	"Max"
-msgstr	"Kinini"
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	"Igiteranyo"
-
-#: src/lang.c:1135
-msgid	"Average"
-msgstr	"Impuzandengo"
-
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	"Imirongo"
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	""
-
-#: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	""
-
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	"Umukara"
-
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	"Umutuku"
-
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	"Icyatsi"
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	"Igihogo"
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	"Ubururu"
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	""
-
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	"Ubururu bukeye"
-
-#: src/lang.c:1158
-msgid	"White"
-msgstr	"Umweru"
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"Ikigina"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	"Umutuku Werurutse"
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	"Icyatsi Cyerurutse"
-
-#: src/lang.c:1162
-msgid	"Yellow"
-msgstr	"Umuhondo"
-
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	"Ubururu Bwerurutse"
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	""
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	"Ubururu Bwerurutse"
-
-#: src/lang.c:1166
-msgid	"Light White"
-msgstr	""
-
-#: src/lang.c:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	""
-
-# 3737
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	"garagaza"
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	"Umwanya"
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	"Bisanzwe"
-
-#: src/lang.c:1184
-#, fuzzy
-msgid	"Best highlighting"
-msgstr	"Igaragaza cyane"
-
-#: src/lang.c:1185
-msgid	"Underline"
-msgstr	"Gucaho umurongo"
-
-#: src/lang.c:1186
-#, fuzzy
-msgid	"Reverse video"
-msgstr	"Videwo..."
-
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	"Kinyoteera"
-
-#: src/lang.c:1188
-#, fuzzy
-msgid	"Half bright"
-msgstr	"Bibonerana"
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	"Bitsindagiye"
-
-#: src/lang.c:1194
-msgid	"none"
-msgstr	"ntacyo"
-
-# sfx2/source\doc\docvor.src:DLG_ORGANIZE.BTN_EDIT.text
-#: src/lang.c:1195
-#, fuzzy
-msgid	"commands"
-msgstr	"Amabwiriza"
-
-#: src/lang.c:1196
-msgid	"select"
-msgstr	"guhitamo"
-
-#: src/lang.c:1198
-#, fuzzy
-msgid	"commands & quit"
-msgstr	"Amabwiriza Kuvamo"
-
-#: src/lang.c:1199
-#, fuzzy
-msgid	"commands & select"
-msgstr	"Amabwiriza Guhitamo"
-
-#: src/lang.c:1200
-#, fuzzy
-msgid	"quit & select"
-msgstr	"Kuvamo Guhitamo"
-
-#: src/lang.c:1201
-#, fuzzy
-msgid	"commands & quit & select"
-msgstr	"Amabwiriza Kuvamo Guhitamo"
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	""
-
-#: src/lang.c:1232
-#, fuzzy
-msgid	"Subject: (descending)"
-msgstr	"Ubujyesi"
-
-#: src/lang.c:1233
-#, fuzzy
-msgid	"Subject: (ascending)"
-msgstr	"Ubujyejuru"
-
-#: src/lang.c:1234
-#, fuzzy
-msgid	"From: (descending)"
-msgstr	"Ubujyesi"
-
-#: src/lang.c:1235
-#, fuzzy
-msgid	"From: (ascending)"
-msgstr	"Ubujyejuru"
-
-#: src/lang.c:1236
-#, fuzzy
-msgid	"Date: (descending)"
-msgstr	"Ubujyesi"
-
-#: src/lang.c:1237
-#, fuzzy
-msgid	"Date: (ascending)"
-msgstr	"Ubujyejuru"
-
-#: src/lang.c:1238 src/lang.c:1246
-#, fuzzy
-msgid	"Score (descending)"
-msgstr	"Ubujyesi"
-
-#: src/lang.c:1239 src/lang.c:1247
-#, fuzzy
-msgid	"Score (ascending)"
-msgstr	"Ubujyejuru"
-
-#: src/lang.c:1240
-#, fuzzy
-msgid	"Lines: (descending)"
-msgstr	"Ubujyesi"
-
-#: src/lang.c:1241
-#, fuzzy
-msgid	"Lines: (ascending)"
-msgstr	"Ubujyejuru"
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	""
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	""
-
-#: src/lang.c:1254
-#, fuzzy
-msgid	"Mark with D on selection screen"
-msgstr	"Na: ku Ihitamo Mugaragaza"
-
-#: src/lang.c:1259
-#, fuzzy
-msgid	"Kill only unread arts"
-msgstr	"Bidasomye"
-
-#: src/lang.c:1260
-#, fuzzy
-msgid	"Kill all arts & show with K"
-msgstr	"Byose Garagaza Na:"
-
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-#, fuzzy
-msgid	"Kill all arts and never show"
-msgstr	"Byose Na Nta narimwe Garagaza"
-
-#: src/lang.c:1266
-#, fuzzy
-msgid	"Nothing special"
-msgstr	"Bidasanzwe"
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	""
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	""
-
-#: src/lang.c:1269
-#, fuzzy
-msgid	"Compress quotes, quote sigs"
-msgstr	"Gushyiraho akugarizo"
-
-#: src/lang.c:1270
-#, fuzzy
-msgid	"Quote empty lines"
-msgstr	"ubusa Imirongo"
-
-#: src/lang.c:1271
-#, fuzzy
-msgid	"Compress quotes, quote empty lines"
-msgstr	"Gushyiraho akugarizo ubusa Imirongo"
-
-#: src/lang.c:1272
-#, fuzzy
-msgid	"Quote sigs & empty lines"
-msgstr	"ubusa Imirongo"
-
-#: src/lang.c:1273
-#, fuzzy
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	"Q."
-
-#: src/lang.c:1311
-#, fuzzy
-msgid	"no"
-msgstr	"Oya"
-
-#: src/lang.c:1312
-#, fuzzy
-msgid	"with headers"
-msgstr	"Na: Imitwe"
-
-#: src/lang.c:1313
-#, fuzzy
-msgid	"without headers"
-msgstr	"Imitwe"
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	""
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	""
-
-#: src/lang.c:1322
-msgid	"NFC"
-msgstr	""
-
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	""
-
-#: src/lang.c:1334
-msgid	"Display Options"
-msgstr	""
-
-#: src/lang.c:1341
-msgid	"Color Options"
-msgstr	""
-
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	""
-
-#: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	""
-
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	""
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	""
-
-#: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	""
-
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1378
-#, fuzzy
-msgid	"Show mini menu & posting etiquette"
-msgstr	"Ibikubiyemo"
-
-#: src/lang.c:1379
-#, 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:1384
-#, fuzzy
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	"Isobanuramiterere kugirango Urubuga rw'amakuru"
-
-#: src/lang.c:1385
-#, fuzzy
-msgid	"Show description of each newsgroup"
-msgstr	"Isobanuramiterere Bya Urubuga rw'amakuru"
-
-#: src/lang.c:1386
-#, 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:1391
-#, fuzzy
-msgid	"Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
-	"sets."
-msgstr	"Umwanditsi Imyanya in Itsinda Ibikubiyemo"
-
-#: src/lang.c:1392
-#, fuzzy
-msgid	"In group menu, show author by"
-msgstr	"Itsinda Ibikubiyemo Garagaza Umwanditsi ku"
-
-#: src/lang.c:1393
-#, fuzzy
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	"#Bya Bivuye Umwanya Kuri Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3."
-
-#: src/lang.c:1402
-#, fuzzy
-msgid	"Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
-msgstr	"Cyangwa kugirango Ihitamo"
-
-#: src/lang.c:1403
-#, fuzzy
-msgid	"Draw -> instead of highlighted bar"
-msgstr	"Bya"
-
-#: src/lang.c:1404
-#, fuzzy
-msgid	"# If ON use -> otherwise highlighted bar for selection\n"
-msgstr	"#Gukoresha kugirango"
-
-#: src/lang.c:1409
-#, fuzzy
-msgid	"Use inverse video for page headers"
-msgstr	"Videwo... kugirango Ipaji Imitwe"
-
-#: src/lang.c:1410
-#, fuzzy
-msgid	"# If ON use inverse video for page headers at different levels\n"
-msgstr	"#Gukoresha Videwo... kugirango Ipaji Imitwe ku"
-
-#: src/lang.c:1415
-#, fuzzy
-msgid	"Thread articles by"
-msgstr	"ku"
-
-#: src/lang.c:1416
-#, fuzzy
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	"# ku Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. Na 4."
-
-#: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	""
-
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
-
-#: src/lang.c:1441
-#, fuzzy
-msgid	"Score of a thread"
-msgstr	"Bya a Urudodo"
-
-#: src/lang.c:1442
-#, fuzzy
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	"#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2."
-
-#: src/lang.c:1450
-#, fuzzy
-msgid	"Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
-msgstr	"ku Cyangwa"
-
-#: src/lang.c:1451
-#, fuzzy
-msgid	"Sort articles by"
-msgstr	"ku"
-
-#: src/lang.c:1452
-#, fuzzy
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\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:1468
-#, fuzzy
-msgid	"Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
-msgstr	"ku Cyangwa"
-
-#: src/lang.c:1469
-#, fuzzy
-msgid	"Sort threads by"
-msgstr	"ku"
-
-#: src/lang.c:1470
-#, 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	"#Urudodo ku Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2."
-
-#: src/lang.c:1478
-#, 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:1479
-#, fuzzy
-msgid	"Goto first unread article in group"
-msgstr	"Itangira Bidasomye Ingingo in Itsinda"
-
-#: src/lang.c:1480
-#, 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:1484
-#, fuzzy
-msgid	"Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
-msgstr	"Byose Cyangwa Bidasomye"
-
-#: src/lang.c:1485
-#, fuzzy
-msgid	"Show only unread articles"
-msgstr	"Bidasomye"
-
-#: src/lang.c:1486
-#, fuzzy
-msgid	"# If ON show only new/unread articles otherwise show all.\n"
-msgstr	"#Garagaza Gishya Bidasomye Garagaza Byose"
-
-#: src/lang.c:1491
-#, fuzzy
-msgid	"Show only groups with unread arts"
-msgstr	"Amatsinda Na: Bidasomye"
-
-#: src/lang.c:1492
-#, fuzzy
-msgid	"# If ON show only subscribed to groups that contain unread articles.\n"
-msgstr	"#Garagaza yanditswe/ byemewe Kuri Amatsinda Bidasomye"
-
-#: src/lang.c:1497
-msgid	"Filter which articles"
-msgstr	""
-
-#: src/lang.c:1498
-#, fuzzy
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\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:1507
-#, fuzzy
-msgid	"Tab goes to next unread article"
-msgstr	"Kuri Komeza>> Bidasomye Ingingo"
-
-#: src/lang.c:1508
-#, 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:1512
-#, 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:1513
-#, fuzzy
-msgid	"Space goes to next unread article"
-msgstr	"Kuri Komeza>> Bidasomye Ingingo"
-
-#: src/lang.c:1514
-#, 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:1519
-#, 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:1520
-#, fuzzy
-msgid	"PgDn goes to next unread article"
-msgstr	"Kuri Komeza>> Bidasomye Ingingo"
-
-#: src/lang.c:1521
-#, 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"
-
-#: src/lang.c:1527
-#, fuzzy
-msgid	"List thread using right arrow key"
-msgstr	"Urudodo ikoresha Iburyo: Akambi Urufunguzo"
-
-#: src/lang.c:1528
-#, 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:1532
-#, fuzzy
-msgid	"Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri Cyasibwe"
-
-#: src/lang.c:1533
-#, fuzzy
-msgid	"Character to show deleted articles"
-msgstr	"Kuri Garagaza Cyasibwe"
-
-#: src/lang.c:1534
-#, 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:1539
-#, fuzzy
-msgid	"Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri in a Urutonde"
-
-#: src/lang.c:1540
-#, fuzzy
-msgid	"Character to show inrange articles"
-msgstr	"Kuri Garagaza"
-
-#: src/lang.c:1541
-#, 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:1546
-#, fuzzy
-msgid	"Enter character to indicate that article will return. <CR> sets, <ESC> "
-	"cancels."
-msgstr	"Inyuguti Kuri Ingingo Garuka"
-
-#: src/lang.c:1547
-#, fuzzy
-msgid	"Character to show returning arts"
-msgstr	"Kuri Garagaza"
-
-#: src/lang.c:1548
-#, 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:1553
-#, fuzzy
-msgid	"Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri Byahiswemo"
-
-#: src/lang.c:1554
-#, fuzzy
-msgid	"Character to show selected articles"
-msgstr	"Kuri Garagaza Byahiswemo"
-
-#: src/lang.c:1555
-#, 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:1560
-#, fuzzy
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri"
-
-#: src/lang.c:1561
-#, fuzzy
-msgid	"Character to show recent articles"
-msgstr	"Kuri Garagaza"
-
-#: src/lang.c:1562
-#, 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:1567
-#, fuzzy
-msgid	"Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri Bidasomye"
-
-#: src/lang.c:1568
-#, fuzzy
-msgid	"Character to show unread articles"
-msgstr	"Kuri Garagaza Bidasomye"
-
-#: src/lang.c:1569
-#, 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:1574
-#, fuzzy
-msgid	"Enter character to indicate read articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri Gusoma"
-
-#: src/lang.c:1575
-#, fuzzy
-msgid	"Character to show read articles"
-msgstr	"Kuri Garagaza Gusoma"
-
-#: src/lang.c:1576
-#, 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:1581
-#, fuzzy
-msgid	"Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri"
-
-#: src/lang.c:1582
-#, fuzzy
-msgid	"Character to show killed articles"
-msgstr	"Kuri Garagaza"
-
-#: src/lang.c:1583
-#, 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:1588
-#, fuzzy
-msgid	"Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
-msgstr	"Inyuguti Kuri Gusoma Byahiswemo"
-
-#: src/lang.c:1589
-#, fuzzy
-msgid	"Character to show readselected arts"
-msgstr	"Kuri Garagaza"
-
-#: src/lang.c:1590
-#, 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:1595
-#, fuzzy
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	"Kinini Uburebure Bya Urubuga rw'amakuru Amazina"
-
-#: src/lang.c:1596
-#, fuzzy
-msgid	"Max. length of group names shown"
-msgstr	"Uburebure Bya Itsinda Amazina"
-
-#: src/lang.c:1597
-#, fuzzy
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	"#Uburebure Bya i Amazina Bya Imbuga z'amakuru"
-
-#: src/lang.c:1602
-#, fuzzy
-msgid	"Show lines/score in listings"
-msgstr	"Imirongo in"
-
-#: src/lang.c:1603
-#, fuzzy
-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	"#in Ingingo Urudodo Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. "
-	"Imirongo"
-
-#: src/lang.c:1612
-#, 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:1613
-#, fuzzy
-msgid	"Number of lines to scroll in pager"
-msgstr	"Bya Imirongo Kuri in Peja"
-
-#: src/lang.c:1614
-#, fuzzy
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	"#Bya Imirongo indanga Hejuru Hasi in Ingingo Uduciro i Mburabuzi ni cy/ "
-	"byagarajwe Na: 2. Ipaji 1. i Hejuru: Hasi: Umurongo ni KURI i Komeza>> 0 "
-	"Ipaji ku Ipaji imyitwarire 1. Umurongo ku 2. Cyangwa Biruta ku 2. Cyangwa "
-	"Birenzeho Imirongo in i Peja"
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	""
-
-#: src/lang.c:1626
-#, fuzzy
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	"#Garagaza Ryari:"
-
-#: src/lang.c:1630
-#, fuzzy
-msgid	"Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
-msgstr	"Ibyatanzwe Nka Imigereka"
-
-#: src/lang.c:1631
-#, fuzzy
-msgid	"Display uue data as an attachment"
-msgstr	"Ibyatanzwe Nka umugereka"
-
-#: src/lang.c:1632
-#, fuzzy
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	"#Bya Ibyatanzwe in i Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 Oya "
-	"Kugaragaza 1. Yego Ibyatanzwe Cyegeranye Kuri a UMWE Itagi: Umurongo Ingano "
-	"Na Izina ry'idosiye: Kuri Imigereka 2. Gushisha Byose Nka kugirango 1. "
-	"Umurongo nka Ibyatanzwe a Itagi: Umurongo"
-
-#: src/lang.c:1642
-#, fuzzy
-msgid	"Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
-msgstr	"IMISUSIRE Kuri"
-
-#: src/lang.c:1643
-#, fuzzy
-msgid	"Display \"a as Umlaut-a"
-msgstr	"a Nka a"
-
-#: src/lang.c:1644
-#, 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:1649 src/lang.c:1659
-#, fuzzy
-msgid	"Space separated list of header fields"
-msgstr	"Urutonde Bya Umutwempangano Imyanya"
-
-#: src/lang.c:1650
-#, fuzzy
-msgid	"Display these header fields (or *)"
-msgstr	"Umutwempangano Imyanya Cyangwa"
-
-#: src/lang.c:1651
-#, 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"
-	"# If you enter 'X-' as the value, you will see all headers beginning with\n"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	"#Amakuru Imitwe Kuri Kuri Byose i Imitwe Nka iyi Agaciro ni i a Injiza Nka i "
-	"Agaciro Byose Imitwe Itangiriro nka Cyangwa Urutonde Birenzeho ku Imyanya "
-	"Bidakora iyi Ihitamo"
-
-#: src/lang.c:1660
-#, fuzzy
-msgid	"Do not display these header fields"
-msgstr	"OYA Kugaragaza Umutwempangano Imyanya"
-
-#: src/lang.c:1661
-#, 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"
-	"# A Good Thing(tm), but thought Alan and Pape were miscreants...well then "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	"#Nka i Urugero Bya ikoresha Byombi Amahitamo NIBA Imitwe A Na Hanyuma nka iyi "
-	"Bidakora iyi Ihitamo"
-
-#: src/lang.c:1671
-#, fuzzy
-msgid	"Do you want to enable automatic handling of multipart/alternative articles?"
-msgstr	"Kuri Gushoboza Byikoresha Bya"
-
-#: src/lang.c:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	""
-
-#: src/lang.c:1673
-#, fuzzy
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	"#Ubutumwa"
-
-#: src/lang.c:1678
-#, fuzzy
-msgid	"A regex used to decide which lines to show in col_quote."
-msgstr	"A Kuri Imirongo Kuri Garagaza in"
-
-#: src/lang.c:1679
-#, fuzzy
-msgid	"Regex used to show quoted lines"
-msgstr	"Kuri Garagaza Imirongo"
-
-#: src/lang.c:1680
-#, 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"
-	"# If you leave this blank, tin will use a built in default.\n"
-msgstr	"#A Ibisanzwe imvugo Gukoresha Kuri Imirongo Ryari: Imirongo in iyi "
-	"Ahatanditseho Gukoresha a in Mburabuzi"
-
-#: src/lang.c:1686
-#, fuzzy
-msgid	"A regex used to decide which lines to show in col_quote2."
-msgstr	"A Kuri Imirongo Kuri Garagaza in"
-
-#: src/lang.c:1687
-#, fuzzy
-msgid	"Regex used to show twice quoted l."
-msgstr	"Kuri Garagaza L"
-
-#: src/lang.c:1688
-#, 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"
-	"# If you leave this blank, tin will use a built in default.\n"
-msgstr	"#A Ibisanzwe imvugo Gukoresha Kuri Imirongo Imirongo in iyi Ahatanditseho "
-	"Gukoresha a in Mburabuzi"
-
-#: src/lang.c:1694
-#, fuzzy
-msgid	"A regex used to decide which lines to show in col_quote3."
-msgstr	"A Kuri Imirongo Kuri Garagaza in"
-
-#: src/lang.c:1695
-#, fuzzy
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	"L."
-
-#: src/lang.c:1696
-#, 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"
-	"# If you leave this blank, tin will use a built in default.\n"
-msgstr	"#A Ibisanzwe imvugo Gukoresha Kuri Imirongo 3. Times 3. Times Imirongo in iyi "
-	"Ahatanditseho Gukoresha a in Mburabuzi"
-
-#: src/lang.c:1703
-#, fuzzy
-msgid	"A regex used to decide which words to show in col_markslashes."
-msgstr	"A Kuri Amagambo Kuri Garagaza in"
-
-#: src/lang.c:1704
-#, fuzzy
-msgid	"Regex used to highlight /slashes/"
-msgstr	"Kuri garagaza cyane"
-
-#: src/lang.c:1705
-#, fuzzy
-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	"#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a "
-	"in Mburabuzi"
-
-#: src/lang.c:1711
-#, fuzzy
-msgid	"A regex used to decide which words to show in col_markstars."
-msgstr	"A Kuri Amagambo Kuri Garagaza in"
-
-#: src/lang.c:1712
-#, fuzzy
-msgid	"Regex used to highlight *stars*"
-msgstr	"Kuri garagaza cyane Inyenyeri"
-
-#: src/lang.c:1713
-#, fuzzy
-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	"#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a "
-	"in Mburabuzi"
-
-#: src/lang.c:1719
-#, fuzzy
-msgid	"A regex used to decide which words to show in col_markstroke."
-msgstr	"A Kuri Amagambo Kuri Garagaza in"
-
-#: src/lang.c:1720
-#, fuzzy
-msgid	"Regex used to highlight -strokes-"
-msgstr	"Kuri garagaza cyane"
-
-#: src/lang.c:1721
-#, fuzzy
-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	"#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a "
-	"in Mburabuzi"
-
-#: src/lang.c:1727
-#, fuzzy
-msgid	"A regex used to decide which words to show in col_markdash."
-msgstr	"A Kuri Amagambo Kuri Garagaza in"
-
-#: src/lang.c:1728
-#, fuzzy
-msgid	"Regex used to highlight _underline_"
-msgstr	"Kuri garagaza cyane Gucaho umurongo"
-
-#: src/lang.c:1729
-#, fuzzy
-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	"#A Ibisanzwe imvugo Gukoresha Kuri ku Kuri in iyi Ahatanditseho Gukoresha a "
-	"in Mburabuzi"
-
-#: src/lang.c:1735
-#, 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:1736
-#, fuzzy
-msgid	"Regex with Subject prefixes"
-msgstr	"Na:"
-
-#: src/lang.c:1737
-#, 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:1742
-#, 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:1743
-#, fuzzy
-msgid	"Regex with Subject suffixes"
-msgstr	"Na: Imigereka"
-
-#: src/lang.c:1744
-#, 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:1749
-#, 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:1750
-#, fuzzy
-msgid	"MIME binary content viewer"
-msgstr	"Nyabibiri Ibikubiyemo"
-
-#: src/lang.c:1751
-#, fuzzy
-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	"#By'imbere ku buryo bwikora Gukoresha i in kugirango Bya external Porogaramu "
-	"Cyangwa kugirango Oya Byikoresha"
-
-#: src/lang.c:1758
-#, fuzzy
-msgid	"Confirm before starting non-text viewing program"
-msgstr	"Mbere Umwandiko Porogaramu"
-
-#: src/lang.c:1759
-#, fuzzy
-msgid	"Ask before using MIME viewer"
-msgstr	"Mbere ikoresha"
-
-#: src/lang.c:1760
-#, 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:1765
-#, fuzzy
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	"Kuri Ikimenyetso Amatsinda Gusoma Ryari:"
-
-#: src/lang.c:1766
-#, fuzzy
-msgid	"Catchup read groups when quitting"
-msgstr	"Gusoma Amatsinda Ryari:"
-
-#: src/lang.c:1767
-#, 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:1772
-#, fuzzy
-msgid	"Catchup group using left key"
-msgstr	"Itsinda ikoresha Ibumoso: Urufunguzo"
-
-#: src/lang.c:1773
-#, 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:1778
-#, fuzzy
-msgid	"Catchup thread by using left key"
-msgstr	"Urudodo ku ikoresha Ibumoso: Urufunguzo"
-
-#: src/lang.c:1784
-#, fuzzy
-msgid	"Which actions require confirmation"
-msgstr	"Iyemeza"
-
-#: src/lang.c:1785
-#, fuzzy
-msgid	"# What should we ask confirmation for.\n"
-msgstr	"#Twebwe Iyemeza kugirango"
-
-#: src/lang.c:1790
-#, fuzzy
-msgid	"'Mark article read' ignores tags"
-msgstr	"'Ingingo"
-
-#: src/lang.c:1791
-#, 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:1795
-#, fuzzy
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	"Kuri Gukoresha Kuri Gufungura"
-
-#: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	""
-
-#: src/lang.c:1797
-#, fuzzy
-msgid	"# The program used to open URL's. The actual URL will be appended\n"
-msgstr	"#Porogaramu Kuri Gufungura"
-
-#: src/lang.c:1802
-#, fuzzy
-msgid	"Use mouse in xterm"
-msgstr	"Imbeba in"
-
-#: src/lang.c:1803
-#, fuzzy
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	"#Gushoboza Imbeba Urufunguzo Gushigikira ku"
-
-#: src/lang.c:1809
-#, fuzzy
-msgid	"Use scroll keys on keypad"
-msgstr	"Utubuto ku"
-
-#: src/lang.c:1810
-#, fuzzy
-msgid	"# If ON enable scroll keys on terminals that support it\n"
-msgstr	"#Gushoboza Utubuto ku Gushigikira"
-
-#: src/lang.c:1815
-#, fuzzy
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	"Kinini Umubare Bya Ingingo Kuri Kubona"
-
-#: src/lang.c:1816
-#, fuzzy
-msgid	"Number of articles to get"
-msgstr	"Bya Kuri Kubona"
-
-#: src/lang.c:1817
-#, 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:1822
-#, fuzzy
-msgid	"Enter number of days article is considered recent. <CR> sets."
-msgstr	"Umubare Bya Iminsi Ingingo ni"
-
-#: src/lang.c:1823
-#, fuzzy
-msgid	"Article recentness time limit"
-msgstr	"Igihe"
-
-#: src/lang.c:1824
-#, fuzzy
-msgid	"# Number of days in which article is considered recent, (0=OFF)\n"
-msgstr	"#Bya Iminsi in Ingingo ni 0"
-
-#: src/lang.c:1828
-#, fuzzy
-msgid	"WILDMAT for normal wildcards, REGEX for full regular expression matching."
-msgstr	"kugirango Bisanzwe kugirango Ibisanzwe imvugo"
-
-#: src/lang.c:1829
-msgid	"Wildcard matching"
-msgstr	""
-
-#: src/lang.c:1830
-#, fuzzy
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	"#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1."
-
-#: src/lang.c:1837
-#, fuzzy
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	"Mbere Ingingo ni cy/ byagarajwe"
-
-#: src/lang.c:1838
-msgid	"Score limit (kill)"
-msgstr	""
-
-#: src/lang.c:1839
-#, fuzzy
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	"#Mbere Ingingo ni cy/ byagarajwe"
-
-#: src/lang.c:1843
-#, fuzzy
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	"Mburabuzi Kuri"
-
-#: src/lang.c:1844
-#, fuzzy
-msgid	"Default score to kill articles"
-msgstr	"Kuri"
-
-#: src/lang.c:1845
-#, fuzzy
-msgid	"# Default score to kill articles\n"
-msgstr	"#Kuri"
-
-#: src/lang.c:1849
-#, fuzzy
-msgid	"Enter minimal score before an article is marked hot. <CR> sets."
-msgstr	"Mbere Ingingo ni cy/ byagarajwe"
-
-#: src/lang.c:1850
-#, fuzzy
-msgid	"Score limit (select)"
-msgstr	"Guhitamo"
-
-#: src/lang.c:1851
-#, fuzzy
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	"#Mbere Ingingo ni cy/ byagarajwe"
-
-#: src/lang.c:1855
-#, fuzzy
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	"Mburabuzi Kuri Guhitamo"
-
-#: src/lang.c:1856
-#, fuzzy
-msgid	"Default score to select articles"
-msgstr	"Kuri Guhitamo"
-
-#: src/lang.c:1857
-#, fuzzy
-msgid	"# Default score to select articles\n"
-msgstr	"#Kuri Guhitamo"
-
-#: src/lang.c:1863
-#, fuzzy
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	"Kuri Garagaza S"
-
-#: src/lang.c:1864
-#, 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:1872
-#, fuzzy
-msgid	"Use ANSI color"
-msgstr	"Ibara"
-
-#: src/lang.c:1873
-#, fuzzy
-msgid	"# If ON using ANSI-color\n"
-msgstr	"#ikoresha"
-
-#: src/lang.c:1878
-#, fuzzy
-msgid	"Standard foreground color"
-msgstr	"Ibara"
-
-#: src/lang.c:1879
-#, fuzzy
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"#1. Mburabuzi Ibara"
-
-#: src/lang.c:1885
-#, fuzzy
-msgid	"Standard background color"
-msgstr	"Mbuganyuma Ibara"
-
-#: src/lang.c:1886
-#, fuzzy
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"#Mbuganyuma 1. Mburabuzi Ibara"
-
-#: src/lang.c:1892
-#, fuzzy
-msgid	"Color for inverse text (background)"
-msgstr	"kugirango Umwandiko Mbuganyuma"
-
-#: src/lang.c:1893
-#, fuzzy
-msgid	"# Color of background for inverse text\n"
-	"# Default: 4 (blue)\n"
-msgstr	"#Bya Mbuganyuma kugirango 4. Ubururu"
-
-#: src/lang.c:1899
-#, fuzzy
-msgid	"Color for inverse text (foreground)"
-msgstr	"kugirango Umwandiko"
-
-#: src/lang.c:1900
-#, fuzzy
-msgid	"# Color of foreground for inverse text\n"
-	"# Default: 7 (white)\n"
-msgstr	"#Bya kugirango 7 Umweru"
-
-#: src/lang.c:1906
-#, fuzzy
-msgid	"Color of text lines"
-msgstr	"Bya Umwandiko Imirongo"
-
-#: src/lang.c:1907
-#, fuzzy
-msgid	"# Color of text lines\n"
-	"# Default: -1 (default color)\n"
-msgstr	"#Bya Umwandiko 1. Mburabuzi Ibara"
-
-#: src/lang.c:1913
-#, fuzzy
-msgid	"Color of mini help menu"
-msgstr	"Bya Ifashayobora Ibikubiyemo"
-
-#: src/lang.c:1914
-#, fuzzy
-msgid	"# Color of mini help menu\n"
-	"# Default: 3 (brown)\n"
-msgstr	"#Bya Ifashayobora 3. Igihogo"
-
-#: src/lang.c:1920
-#, fuzzy
-msgid	"Color of help text"
-msgstr	"Bya Ifashayobora Umwandiko"
-
-#: src/lang.c:1921
-#, fuzzy
-msgid	"# Color of help pages\n"
-	"# Default: -1 (default color)\n"
-msgstr	"#Bya Ifashayobora 1. Mburabuzi Ibara"
-
-#: src/lang.c:1927
-#, fuzzy
-msgid	"Color of status messages"
-msgstr	"Bya Imimerere Ubutumwa"
-
-#: src/lang.c:1928
-#, fuzzy
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"#Bya Ubutumwa in Iheruka 6 Ubururu bukeye"
-
-#: src/lang.c:1934
-#, fuzzy
-msgid	"Color of quoted lines"
-msgstr	"Bya Imirongo"
-
-#: src/lang.c:1935
-#, fuzzy
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"#Bya Gushyiraho akugarizo 2. Icyatsi"
-
-#: src/lang.c:1941
-#, fuzzy
-msgid	"Color of twice quoted line"
-msgstr	"Bya Umurongo"
-
-#: src/lang.c:1942
-#, fuzzy
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"#Bya 3. Igihogo"
-
-#: src/lang.c:1948
-#, fuzzy
-msgid	"Color of =>3 times quoted line"
-msgstr	"Bya 3. Times Umurongo"
-
-#: src/lang.c:1949
-#, fuzzy
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	"#Bya 3. Times 4. Ubururu"
-
-#: src/lang.c:1955
-#, fuzzy
-msgid	"Color of article header lines"
-msgstr	"Bya Ingingo Umutwempangano Imirongo"
-
-#: src/lang.c:1956
-#, fuzzy
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"#Bya Umutwempangano 2. Icyatsi"
-
-#: src/lang.c:1962
-#, fuzzy
-msgid	"Color of actual news header fields"
-msgstr	"Bya Amakuru Umutwempangano Imyanya"
-
-#: src/lang.c:1963
-#, fuzzy
-msgid	"# Color of actual news header fields\n"
-	"# Default: 9 (light red)\n"
-msgstr	"#Bya Amakuru Umutwempangano 9 kimurika Umutuku"
-
-#: src/lang.c:1969
-#, fuzzy
-msgid	"Color of article subject lines"
-msgstr	"Bya Ingingo Ikivugwaho Imirongo"
-
-#: src/lang.c:1970
-#, fuzzy
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"#Bya Ingingo 6 Ubururu bukeye"
-
-#: src/lang.c:1976
-#, fuzzy
-msgid	"Color of response counter"
-msgstr	"Bya"
-
-#: src/lang.c:1977
-#, fuzzy
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	"#Bya 2. Icyatsi"
-
-#: src/lang.c:1983
-#, fuzzy
-msgid	"Color of sender (From:)"
-msgstr	"Bya Uwohereza"
-
-#: src/lang.c:1984
-#, fuzzy
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	"#Bya Uwohereza 2. Icyatsi"
-
-#: src/lang.c:1990
-#, fuzzy
-msgid	"Color of help/mail sign"
-msgstr	"Bya Ifashayobora Ubutumwa IKIMENYETSO"
-
-#: src/lang.c:1991
-#, fuzzy
-msgid	"# Color of Help/Mail-Sign\n"
-	"# Default: 4 (blue)\n"
-msgstr	"#Bya 4. Ubururu"
-
-#: src/lang.c:1997
-#, fuzzy
-msgid	"Color of signatures"
-msgstr	"Bya"
-
-#: src/lang.c:1998
-#, fuzzy
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"#Bya 4. Ubururu"
-
-#: src/lang.c:2004
-#, fuzzy
-msgid	"Color of highlighted URLs"
-msgstr	"Bya"
-
-#: src/lang.c:2005
-#, fuzzy
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	"#Bya 1. Mburabuzi Ibara"
-
-#: src/lang.c:2011
-#, fuzzy
-msgid	"Color of highlighting with *stars*"
-msgstr	"Bya Igaragaza cyane Na: Inyenyeri"
-
-#: src/lang.c:2012
-#, fuzzy
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	"#Bya ijambo Igaragaza cyane Na: Inyenyeri Umuhondo"
-
-#: src/lang.c:2018
-#, fuzzy
-msgid	"Color of highlighting with _dash_"
-msgstr	"Bya Igaragaza cyane Na: AKANYEREZO"
-
-#: src/lang.c:2019
-#, fuzzy
-msgid	"# Color of word highlighting with _dash_\n"
-	"# Default: 13 (light pink)\n"
-msgstr	"#Bya ijambo Igaragaza cyane Na: kimurika"
-
-#: src/lang.c:2025
-#, fuzzy
-msgid	"Color of highlighting with /slash/"
-msgstr	"Bya Igaragaza cyane Na: AKARONGOKABERAMYE"
-
-#: src/lang.c:2026
-#, 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:2032
-#, fuzzy
-msgid	"Color of highlighting with -stroke-"
-msgstr	"Bya Igaragaza cyane Na: Akarongo"
-
-#: src/lang.c:2033
-#, 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:2040
-#, fuzzy
-msgid	"Attr. of highlighting with *stars*"
-msgstr	"Bya Igaragaza cyane Na: Inyenyeri"
-
-#: src/lang.c:2041
-#, fuzzy
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-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:2056
-#, fuzzy
-msgid	"Attr. of highlighting with _dash_"
-msgstr	"Bya Igaragaza cyane Na: AKANYEREZO"
-
-#: src/lang.c:2057
-#, 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:2063
-#, fuzzy
-msgid	"Attr. of highlighting with /slash/"
-msgstr	"Bya Igaragaza cyane Na: AKARONGOKABERAMYE"
-
-#: src/lang.c:2064
-#, 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:2070
-#, fuzzy
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	"Bya Igaragaza cyane Na: Akarongo"
-
-#: src/lang.c:2071
-#, 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:2077
-#, fuzzy
-msgid	"URL highlighting in message body"
-msgstr	"Igaragaza cyane in Ubutumwa Umubiri"
-
-#: src/lang.c:2078
-#, fuzzy
-msgid	"# Enable URL highlighting?\n"
-msgstr	"#Igaragaza cyane"
-
-#: src/lang.c:2083
-#, fuzzy
-msgid	"Word highlighting in message body"
-msgstr	"Igaragaza cyane in Ubutumwa Umubiri"
-
-#: src/lang.c:2084
-#, fuzzy
-msgid	"# Enable word highlighting?\n"
-msgstr	"#ijambo Igaragaza cyane"
-
-#: src/lang.c:2089
-#, fuzzy
-msgid	"What to display instead of mark"
-msgstr	"Kuri Kugaragaza Bya Ikimenyetso"
-
-#: src/lang.c:2090
-#, fuzzy
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	"#i Nyobora Na Inyenyeri Na Utunyerezo ATARIIGIHARWE Ryari: Igaragaza cyane "
-	"Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. Yego Kugaragaza 2. Gucapa a "
-	"Umwanya"
-
-#: src/lang.c:2099
-#, 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:2100
-#, fuzzy
-msgid	"Page line wrap column"
-msgstr	"Umurongo Gufunika Inkingi"
-
-#: src/lang.c:2101
-#, fuzzy
-msgid	"# Wrap article lines at column\n"
-msgstr	"#Ingingo Imirongo ku"
-
-#: src/lang.c:2106
-#, fuzzy
-msgid	"Wrap around threads on next unread"
-msgstr	"ku Komeza>> Bidasomye"
-
-#: src/lang.c:2107
-#, fuzzy
-msgid	"# If ON wrap around threads on searching next unread article\n"
-msgstr	"#Gufunika ku Ishakisha Komeza>> Bidasomye"
-
-#: src/lang.c:2111
-#, fuzzy
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	"Mburabuzi Ubutumwa Aderesi Na"
-
-#: src/lang.c:2112
-#, fuzzy
-msgid	"Mail address (and fullname)"
-msgstr	"Aderesi Na"
-
-#: src/lang.c:2113
-#, 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:2118
-#, fuzzy
-msgid	"Show empty Followup-To in editor"
-msgstr	"ubusa in Muhinduzi"
-
-#: src/lang.c:2119
-#, fuzzy
-msgid	"# If ON show empty Followup-To header when editing an article\n"
-msgstr	"#Garagaza ubusa Umutwempangano Ryari:"
-
-#: src/lang.c:2123
-#, fuzzy
-msgid	"Enter path/! command/--none to create your default signature. <CR> sets."
-msgstr	"Inzira Komandi: Ntacyo Kuri Kurema Mburabuzi Isinya"
-
-#: src/lang.c:2124
-#, fuzzy
-msgid	"Create signature from path/command"
-msgstr	"Isinya Bivuye Inzira Komandi:"
-
-#: src/lang.c:2125
-#, fuzzy
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	"#Inzira IDOSIYE Kuri Ryari: IDOSIYE IDOSIYE Nka Komandi: external Komandi: "
-	"Kuri a Ntacyo Kongeraho... a"
-
-#: src/lang.c:2132
-#, fuzzy
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	"Isinya Na: ku Umurongo"
-
-#: src/lang.c:2133
-#, fuzzy
-msgid	"Prepend signature with \"-- \""
-msgstr	"Isinya Na:"
-
-#: src/lang.c:2134
-#, fuzzy
-msgid	"# If ON prepend the signature with dashes '\\n-- \\n'\n"
-msgstr	"#i Isinya Na: Utunyerezo N"
-
-#: src/lang.c:2138
-#, fuzzy
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	"Isinya Ryari:"
-
-#: src/lang.c:2139
-#, fuzzy
-msgid	"Add signature when reposting"
-msgstr	"Isinya Ryari:"
-
-#: src/lang.c:2140
-#, fuzzy
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	"#Kongeramo Isinya Kuri"
-
-#: src/lang.c:2144
-#, fuzzy, c-format
-msgid	"Enter quotation marks, %s or %S for author's initials."
-msgstr	"Gusubiramo ibyavuzwe Cyangwa kugirango Izibanza"
-
-#: src/lang.c:2145
-#, fuzzy
-msgid	"Characters used as quote-marks"
-msgstr	"Nka Gushyiraho akugarizo"
-
-#: src/lang.c:2146
-#, 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:2152
-#, fuzzy
-msgid	"Quoting behavior"
-msgstr	"imyitwarire"
-
-#: src/lang.c:2153
-#, fuzzy
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	"#Ryari: Hejuru Cyangwa Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. "
-	"Gushyiraho akugarizo 4. ubusa 5 Gushyiraho akugarizo ubusa 6 Gushyiraho "
-	"akugarizo ubusa 7 Gushyiraho akugarizo Gushyiraho akugarizo ubusa"
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-msgid	"%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
-msgstr	""
-
-#: src/lang.c:2167
-#, fuzzy
-msgid	"Quote line when following up"
-msgstr	"Umurongo Ryari: Hejuru"
-
-#: src/lang.c:2168
-#, 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:2175
-#, fuzzy
-msgid	"Quote line when cross-posting"
-msgstr	"Umurongo Ryari: Kwambukiranya"
-
-#: src/lang.c:2181
-#, fuzzy
-msgid	"Quote line when mailing"
-msgstr	"Umurongo Ryari:"
-
-#: src/lang.c:2186
-#, fuzzy
-msgid	"If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
-msgstr	"Gushyiramo Umutwempangano"
-
-#: src/lang.c:2187
-#, fuzzy
-msgid	"Insert 'User-Agent:'-header"
-msgstr	"Umutwempangano"
-
-#: src/lang.c:2188
-#, fuzzy
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	"#Gushyiramo"
-
-#: src/lang.c:2193
-#, fuzzy
-msgid	"Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
-msgstr	"g."
-
-#: src/lang.c:2194
-msgid	"MM_CHARSET"
-msgstr	""
-
-#: src/lang.c:2195
-#, fuzzy
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	"#Project- Id- Version: basctl\n"
-	"POT- Creation- Date: 2003- 12- 07 17: 13+ 02\n"
-	"PO- Revision- Date: 2004- 11- 04 10: 13- 0700\n"
-	"Last- Translator: Language- Team:< en@ li. org> MIME- Version: 1. 0\n"
-	"Content- Type: text/ plain; charset= UTF- 8\n"
-	"Content- Transfer- Encoding: 8bit\n"
-	"X- Generator: KBabel 1. 0\n"
-	"."
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	""
-
-#: src/lang.c:2206
-#, fuzzy
-msgid	"# Charset used for MIME (Content-Type) header in postings.\n"
-msgstr	"#kugirango Umutwempangano in"
-
-#: src/lang.c:2212
-#, fuzzy
-msgid	"Mailbox format"
-msgstr	"Imiterere"
-
-#: src/lang.c:2213
-#, fuzzy
-msgid	"# Format of the mailbox.\n"
-msgstr	"#Bya i"
-
-#: src/lang.c:2218
-#, fuzzy
-msgid	"MIME encoding in news messages"
-msgstr	"Imisobekere: in Amakuru Ubutumwa"
-
-#: src/lang.c:2219
-#, 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"
-	"# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-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:2227 src/lang.c:2248
-#, fuzzy
-msgid	"Don't change unless you know what you are doing. <ESC> cancels."
-msgstr	"Guhindura>>"
-
-#: src/lang.c:2228
-#, fuzzy
-msgid	"Use 8bit characters in news headers"
-msgstr	"Inyuguti in Amakuru Imitwe"
-
-#: src/lang.c:2229
-#, fuzzy
-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	"#Inyuguti in Amakuru Imitwe Mburabuzi ni Inyuguti ku Mburabuzi in "
-	"Umutwempangano Bya i Agaciro Bya ni Nka"
-
-#: src/lang.c:2236
-#, fuzzy
-msgid	"Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"Kureba Iposita Idosiye"
-
-#: src/lang.c:2237
-#, fuzzy
-msgid	"View post-processed files"
-msgstr	"Iposita Idosiye"
-
-#: src/lang.c:2238
-#, fuzzy
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	"#Gushyiraho Iposita Idosiye in a"
-
-#: src/lang.c:2243
-#, fuzzy
-msgid	"MIME encoding in mail messages"
-msgstr	"Imisobekere: in Ubutumwa Ubutumwa"
-
-#: src/lang.c:2249
-#, fuzzy
-msgid	"Use 8bit characters in mail headers"
-msgstr	"Inyuguti in Ubutumwa Imitwe"
-
-#: src/lang.c:2250
-#, fuzzy
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-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:2260
-#, fuzzy
-msgid	"Strip blanks from ends of lines"
-msgstr	"Bivuye Bya Imirongo"
-
-#: src/lang.c:2261
-#, 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:2266
-#, fuzzy
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	"Gukoresha"
-
-#: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	""
-
-#: src/lang.c:2268
-#, 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"
-	"# through one or several similarly looking characters.\n"
-msgstr	"#Gukoresha Umugereka Ryari: a Inyuguti in i in i Intego Inyuguti Gushyiraho "
-	"Gihinguranya Cyangwa Inyuguti"
-
-#: src/lang.c:2275
-#, fuzzy
-msgid	"Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	"a Gukoporora ku buryo bwikora"
-
-#: src/lang.c:2276
-#, fuzzy
-msgid	"Send you a cc automatically"
-msgstr	"a KopiKubandi ku buryo bwikora"
-
-#: src/lang.c:2277
-#, 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:2281
-#, fuzzy
-msgid	"Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	"a Gukoporora ku buryo bwikora"
-
-#: src/lang.c:2282
-#, fuzzy
-msgid	"Send you a blind cc automatically"
-msgstr	"a KopiKubandi ku buryo bwikora"
-
-#: src/lang.c:2283
-#, 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:2287
-#, fuzzy
-msgid	"Enter address elements about which you want to be warned. <CR> sets."
-msgstr	"Aderesi Ibintu Ibyerekeye Kuri"
-
-#: src/lang.c:2288
-#, fuzzy
-msgid	"Spamtrap warning address parts"
-msgstr	"Iburira Aderesi"
-
-#: src/lang.c:2289
-#, 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:2294
-#, 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:2295
-#, fuzzy
-msgid	"No. of days a filter entry is valid"
-msgstr	"Bya Iminsi a Muyunguruzi... Icyinjijwe ni Byemewe"
-
-#: src/lang.c:2296
-#, fuzzy
-msgid	"# Number of days a short term filter will be active\n"
-msgstr	"#Bya Iminsi a Ijambo Muyunguruzi..."
-
-#: src/lang.c:2300
-#, fuzzy
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	"Kuri Muyunguruzi..."
-
-#: src/lang.c:2301
-#, fuzzy
-msgid	"Add posted articles to filter"
-msgstr	"Kuri Muyunguruzi..."
-
-#: src/lang.c:2302
-#, 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:2306
-#, fuzzy
-msgid	"The directory where articles/threads are to be saved in mailbox format."
-msgstr	"bushyinguro Kuri in Imiterere"
-
-#: src/lang.c:2307
-#, fuzzy
-msgid	"Mail directory"
-msgstr	"bushyinguro"
-
-#: src/lang.c:2308
-#, fuzzy
-msgid	"# (-m) directory where articles/threads are saved in mailbox format\n"
-msgstr	"#(-M bushyinguro in"
-
-#: src/lang.c:2313
-#, fuzzy
-msgid	"Save articles in batch mode (-S)"
-msgstr	"Kubika in Ubwoko"
-
-#: src/lang.c:2314
-#, 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:2319
-#, fuzzy
-msgid	"The directory where you want articles/threads saved."
-msgstr	"bushyinguro"
-
-#: src/lang.c:2320
-#, fuzzy
-msgid	"Directory to save arts/threads in"
-msgstr	"Kuri Kubika in"
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	""
-
-#: src/lang.c:2325
-#, fuzzy
-msgid	"Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
-msgstr	"Kubika Ingingo Urudodo ku Izina: Umutwempangano"
-
-#: src/lang.c:2326
-#, fuzzy
-msgid	"Use Archive-name: header for save"
-msgstr	"Izina: Umutwempangano kugirango Kubika"
-
-#: src/lang.c:2327
-#, 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:2332
-#, fuzzy
-msgid	"Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
-	"cancels."
-msgstr	"Nka Gusoma"
-
-#: src/lang.c:2333
-#, fuzzy
-msgid	"Mark saved articles/threads as read"
-msgstr	"Nka Gusoma"
-
-#: src/lang.c:2334
-#, fuzzy
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	"#Ikimenyetso Nka"
-
-#: src/lang.c:2338
-#, fuzzy
-msgid	"Do post processing (eg. extract attachments) for saved articles."
-msgstr	"Iposita Inonosora Imigereka kugirango"
-
-#: src/lang.c:2339
-msgid	"Post process saved articles"
-msgstr	""
-
-#: src/lang.c:2340
-#, fuzzy
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	"#Iposita Inonosora Mu kubika Nyabibiri Imigereka Bivuye Uduciro i Mburabuzi "
-	"ni cy/ byagarajwe Na: 0 1. Igikonoshwa Ubushyinguro 2."
-
-#: src/lang.c:2349
-#, fuzzy
-msgid	"Process only unread articles"
-msgstr	"Bidasomye"
-
-#: src/lang.c:2350
-#, fuzzy
-msgid	"# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
-msgstr	"#Kubika Gucapa Ubutumwa Bidasomye"
-
-#: src/lang.c:2355
-#, fuzzy
-msgid	"Print all or just part of header. <SPACE> toggles & <CR> sets."
-msgstr	"Byose Cyangwa Bya Umutwempangano"
-
-#: src/lang.c:2356
-#, fuzzy
-msgid	"Print all headers when printing"
-msgstr	"Byose Imitwe Ryari: Icapa..."
-
-#: src/lang.c:2357
-#, 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:2361
-#, 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:2362
-#, fuzzy
-msgid	"Printer program with options"
-msgstr	"Porogaramu Na: Amahitamo"
-
-#: src/lang.c:2363
-#, fuzzy
-msgid	"# Print program with parameters used to print articles/threads\n"
-msgstr	"#Porogaramu Na: Ibigenga Kuri Gucapa"
-
-#: src/lang.c:2369
-#, fuzzy
-msgid	"Force redraw after certain commands"
-msgstr	"Kongera Gushushanya Nyuma Amabwiriza"
-
-#: src/lang.c:2370
-#, 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:2374
-#, fuzzy
-msgid	"Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"Gutangira Muhinduzi Na: Umurongo Nta- boneza"
-
-#: src/lang.c:2375
-#, fuzzy
-msgid	"Start editor with line offset"
-msgstr	"Gutangira Muhinduzi Na: Umurongo Nta- boneza"
-
-#: src/lang.c:2376
-#, 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:2381
-#, 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:2382
-#, fuzzy
-msgid	"Invocation of your editor"
-msgstr	"Bya Muhinduzi"
-
-#: src/lang.c:2383
-#, 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:2388
-#, 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:2389
-msgid	"External inews"
-msgstr	""
-
-#: src/lang.c:2390
-#, 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:2394
-#, 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:2395
-#, fuzzy
-msgid	"Invocation of your mail command"
-msgstr	"Bya Ubutumwa Komandi:"
-
-#: src/lang.c:2396
-#, fuzzy, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# 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:2404
-#, fuzzy
-msgid	"Use interactive mail reader"
-msgstr	"Biganira Ubutumwa"
-
-#: src/lang.c:2405
-#, fuzzy
-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	"#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 Oya Biganira 1. Gukoresha "
-	"Biganira Na: Imitwe in 2. Gukoresha Biganira Imitwe in"
-
-#: src/lang.c:2414
-#, fuzzy
-msgid	"Remove ~/.article after posting"
-msgstr	"Ingingo Nyuma"
-
-#: src/lang.c:2415
-#, fuzzy
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	"#Gukuraho... Ingingo Nyuma"
-
-#: src/lang.c:2419
-#, 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:2420
-#, fuzzy
-msgid	"Filename for posted articles"
-msgstr	"kugirango"
-
-#: src/lang.c:2421
-#, 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:2426
-#, fuzzy
-msgid	"Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
-msgstr	"Byose Byanze in"
-
-#: src/lang.c:2427
-#, fuzzy
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	"Byanze in"
-
-#: src/lang.c:2428
-#, fuzzy
-msgid	"# If ON keep all failed postings in ~/dead.articles\n"
-msgstr	"#Gumana: Byose Byanze in"
-
-#: src/lang.c:2432
-#, fuzzy
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	"Kuri Amatsinda Bivuye"
-
-#: src/lang.c:2433
-#, fuzzy
-msgid	"No unsubscribed groups in newsrc"
-msgstr	"Amatsinda in"
-
-#: src/lang.c:2434
-#, fuzzy
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	"#Amatsinda Bivuye"
-
-#: src/lang.c:2439
-#, fuzzy
-msgid	"Remove bogus groups from newsrc"
-msgstr	"Amatsinda Bivuye"
-
-#: src/lang.c:2440
-#, fuzzy
-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	"#Kuri Na: Amatsinda in Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. "
-	"garagaza cyane Na: ku Ihitamo"
-
-#: src/lang.c:2448
-#, fuzzy
-msgid	"Enter number of seconds until active file will be reread. <CR> sets."
-msgstr	"Umubare Bya amasogonda Gikora IDOSIYE"
-
-#: src/lang.c:2449
-#, fuzzy
-msgid	"Interval in secs to reread active"
-msgstr	"in Kuri Gikora"
-
-#: src/lang.c:2450
-#, 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:2455
-#, fuzzy
-msgid	"Reconnect to server automatically"
-msgstr	"Kongerakwihuza Kuri Seriveri ku buryo bwikora"
-
-#: src/lang.c:2456
-#, 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:2460
-#, fuzzy
-msgid	"Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
-msgstr	"Amakopi Bya Incamake Idosiye"
-
-#: src/lang.c:2461
-#, fuzzy
-msgid	"Cache NNTP overview files locally"
-msgstr	"Incamake Idosiye"
-
-#: src/lang.c:2462
-#, fuzzy
-msgid	"# If ON, create local copies of NNTP overview files.\n"
-msgstr	"#Kurema Amakopi Bya Incamake Idosiye"
-
-#: src/lang.c:2466
-#, fuzzy
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	"Imiterere Ikurikiranyanyuguti"
-
-#: src/lang.c:2467
-#, fuzzy
-msgid	"Format string for display of dates"
-msgstr	"Ikurikiranyanyuguti kugirango Kugaragaza Bya Amatariki"
-
-#: src/lang.c:2468
-#, fuzzy
-msgid	"# Format string for date representation\n"
-msgstr	"#Ikurikiranyanyuguti kugirango Itariki"
-
-#: src/lang.c:2474
-#, fuzzy
-msgid	"Unicode normalization form"
-msgstr	"Ifishi"
-
-#: src/lang.c:2475
-#, fuzzy
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	"#Uduciro i Mburabuzi ni cy/ byagarajwe Na: 0 1. 2. 3. 4."
-
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	""
-
-#: src/lang.c:2488
-#, fuzzy
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	"#Umwandiko ni ku"
-
-#: src/misc.c:3750
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	""
-
-#: src/misc.c:3753
-#, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	""
-
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	""
-
-#: src/nntplib.c:824
-#, fuzzy, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	"Inyuma"
-
-#: src/nntplib.c:842 src/nntplib.c:1630
-#, fuzzy
-msgid	"Rejoin current group\n"
-msgstr	"KIGEZWEHO"
-
-# svx/inc\globlmn.hrc:ITEM_FILE_MAIL_INBOX.text
-#: src/nntplib.c:849 src/nntplib.c:1637
-#, fuzzy, c-format
-msgid	"Read (%s)\n"
-msgstr	"Gusoma"
-
-#: src/nntplib.c:851
-#, fuzzy, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	"Iheruka Komandi:"
-
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
-
-#: src/nrctbl.c:170
-#, fuzzy, c-format
-msgid	"couldn't expand %s\n"
-msgstr	"Kwagura"
-
-#: src/post.c:1171
-#, 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
-#, 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
-#, 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
-#, fuzzy, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"S"
-
-#. Check if okay to read
-#: src/read.c:211
-#, fuzzy
-msgid	"Aborting read, please wait..."
-msgstr	"Gusoma Tegereza"
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	""
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	""
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	""
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	""
-
-#.
-#. * preamble
-#. * TODO: -> lang.c
-#.
-#: src/rfc2047.c:1201
-#, fuzzy, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	"Ubutumwa in i Imiterere iyi Imbanziriza Ubutumwa OYA i Gishya Imiterere Na "
-	"Bya Gicurasi"
-
-#: src/save.c:972
-#, fuzzy
-msgid	"bytes"
-msgstr	"Bayite"
-
-#: src/select.c:379
-#, fuzzy
-msgid	"unread"
-msgstr	"Bidasomye"
-
-#: src/select.c:379
-#, fuzzy
-msgid	"all"
-msgstr	"Byose"
-
-#: src/select.c:549 src/select.c:551
-#, fuzzy
-msgid	" R"
-msgstr	" R"
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, fuzzy, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	"Gukoresha IMPINDURAGACIRO OYA Byabonetse"
-
-#: src/xface.c:99 src/xface.c:131
-#, fuzzy, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	"Gukoresha Byanze Kuri Kurema"
-
-#: src/xface.c:109
-#, fuzzy
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	"bushyinguro ni Kuri Kurema kugirango Itumanaho Na ubusa ni Cyasibwe Iburyo: "
-	"Nyuma ku Byombi Idosiye Amazina ku i Ifishi Izina ry'inturo: Ikosa NIBA a "
-	"Imigabane Bya a ISEGONDA NIBA i bushyinguro ni Bivuye Seriveri Idosiye "
-	"Byaremwe ku Seriveri ni OYA Kuri Gukuraho..."
-
-#: src/xface.c:123
-#, fuzzy
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	"Gukoresha Izina:"
-
-#: src/xface.c:162
-#, fuzzy, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	"ITEGEKONGENGA"
-
-#: src/xface.c:206
-#, fuzzy, c-format
-msgid	"Slrnface failed: %s."
-msgstr	"Byanze"
Binary files tin-1.8.3/po/sv.gmo and tin-2.0.0/po/sv.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/sv.po tin-2.0.0/po/sv.po
--- tin-1.8.3/po/sv.po	2007-02-01 13:58:04.000000000 +0100
+++ tin-2.0.0/po/sv.po	2011-08-22 18:32:42.815491724 +0200
@@ -3,6053 +3,7102 @@
 # This file is distributed under the same license as the tin package.
 # Daniel Nylander <po@danielnylander.se>, 2006.
 #
-msgid	""
-msgstr	"Project-Id-Version: tin 1.8.0\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+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"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=iso-8859-1\n"
-	"Content-Transfer-Encoding: 8bit\n"
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.8.0\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\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"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=iso-8859-1\n"
+        "Content-Transfer-Encoding: 8bit\n"
+
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
+#, c-format
+msgid   "attribute with no scope: %s"
+msgstr  ""
+
+#: src/attrib.c:884
+#, fuzzy
+msgid   "Processing attributes... "
+msgstr  "Skriver attributfil... "
+
+#: src/attrib.c:1102
+#, c-format
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  ""
 
-#: src/art.c:1534
+#: src/attrib.c:1103
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	""
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  ""
 
-#: src/attrib.c:649
+#: src/attrib.c:1104
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	""
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:650
+#: src/attrib.c:1105
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	""
+msgid   "#  advertising=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:651
+#: src/attrib.c:1106
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	""
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:652
+#: src/attrib.c:1107
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	""
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:653
+#: src/attrib.c:1108
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	""
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:654
+#: src/attrib.c:1109
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	""
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  ""
 
-#: src/attrib.c:655
+#: src/attrib.c:1110
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	""
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:656
+#: src/attrib.c:1111
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	""
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:657
+#: src/attrib.c:1112
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	""
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:658
+#: src/attrib.c:1113
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	""
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:659
+#: src/attrib.c:1114
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	""
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  ""
 
-#: src/attrib.c:660
+#: src/attrib.c:1115
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	""
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:661
+#: src/attrib.c:1116
 #, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	""
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  ""
 
-#: src/attrib.c:662
+#: src/attrib.c:1117
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	""
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  ""
 
-#: src/attrib.c:663
+#: src/attrib.c:1118
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	""
+msgid   "#  followup_to=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:665
+#: src/attrib.c:1119
 #, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	""
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  ""
 
-#: src/attrib.c:667
+#: src/attrib.c:1120
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	""
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:668
+#: src/attrib.c:1121
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	""
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:669
+#: src/attrib.c:1122
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	""
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  ""
 
-#: src/attrib.c:670
+#: src/attrib.c:1130
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	""
+msgid   "#  ispell=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:671
+#: src/attrib.c:1132
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	""
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  ""
 
-#: src/attrib.c:672
+#: src/attrib.c:1133
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	""
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  ""
 
-#: src/attrib.c:679
+#: src/attrib.c:1134
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	""
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  ""
 
-#: src/attrib.c:680
+#: src/attrib.c:1135
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	""
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:686
+#: src/attrib.c:1136
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	""
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:692
+#: src/attrib.c:1137
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	""
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:710
+#: src/attrib.c:1139
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	""
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  ""
 
-#: src/attrib.c:715
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	""
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  ""
 
-#: src/attrib.c:720
+#: src/attrib.c:1148
 #, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	""
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:721
+#: src/attrib.c:1149
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:722
+#: src/attrib.c:1150
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	""
+msgid   "#  news_quote_format=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:723
+#: src/attrib.c:1151
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	""
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  ""
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1152
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	""
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1153
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	""
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1154
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	""
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  ""
 
-#: src/attrib.c:727
+#: src/attrib.c:1161
 #, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	""
+msgid   "#  post_process_type=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:728
+#: src/attrib.c:1166
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:729
+#: src/attrib.c:1167
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  ""
 
-#: src/attrib.c:730
+#: src/attrib.c:1168
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	""
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:734
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:735
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	""
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:736
+#: src/attrib.c:1171 src/attrib.c:1180
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	""
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  ""
 
-#: src/attrib.c:737
+#: src/attrib.c:1172 src/attrib.c:1181
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	""
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  ""
 
-#: src/attrib.c:739
+#: src/attrib.c:1173 src/attrib.c:1182
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	""
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  ""
 
-#: src/attrib.c:746
+#: src/attrib.c:1174 src/attrib.c:1183
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	""
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  ""
 
-#: src/attrib.c:748
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"#\n"
-	"# Note that it is best to put general (global scoping)\n"
-msgstr	""
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  ""
 
-#: src/attrib.c:749
+#: src/attrib.c:1176
 #, c-format
-msgid	"# entries first followed by group specific entries.\n"
-	"#\n"
-msgstr	""
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  ""
 
-#: src/attrib.c:750
+#: src/attrib.c:1177
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	""
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:756
+#: src/attrib.c:1178
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	""
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:764
+#: src/attrib.c:1179
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	""
+msgid   "#  quick_select_header=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:768
+#: src/attrib.c:1185
 #, c-format
-msgid	"# in *binaries* do full post processing but no TeX2ISO conversion,\n"
-msgstr	""
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  ""
 
-#: src/attrib.c:769
+#: src/attrib.c:1187
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	""
+msgid   "#  print_header=ON/OFF\n"
+msgstr  ""
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	"(okänd)"
+#: src/attrib.c:1189
+#, c-format
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  ""
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	""
-
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	"NOLL"
+#: src/attrib.c:1190
+#, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1191
+#, c-format
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  ""
+
+#: src/attrib.c:1192
+#, c-format
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  ""
+
+#: src/attrib.c:1193
+#, c-format
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  ""
+
+#: src/attrib.c:1194
+#, c-format
+msgid   "#  show_author=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1200
+#, c-format
+msgid   "#  show_info=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1206
+#, c-format
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1207
+#, c-format
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1208
+#, c-format
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1209
+#, c-format
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1210
+#, c-format
+msgid   "#  sort_article_type=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1228
+#, c-format
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1237
+#, c-format
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1239
+#, c-format
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1240
+#, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  ""
+
+#: src/attrib.c:1247
+#, c-format
+msgid   "#  thread_perc=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1248
+#, c-format
+msgid   "#  trim_article_body=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1249
+#, c-format
+msgid   "#    0 = Don't trim article body\n"
+msgstr  ""
+
+#: src/attrib.c:1250
+#, c-format
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1251
+#, c-format
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1252
+#, c-format
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1253
+#, c-format
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  ""
+
+#: src/attrib.c:1254
+#, c-format
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1258
+#, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1259
+#, c-format
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  ""
+
+#: src/attrib.c:1260
+#, c-format
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1261
+#, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  ""
+
+#: src/attrib.c:1262
+#, c-format
+msgid   "#\n"
+        "# Note that it is best to put general (global scoping)\n"
+msgstr  ""
+
+#: src/attrib.c:1263
+#, c-format
+msgid   "# entries first followed by group specific entries.\n"
+        "#\n"
+msgstr  ""
+
+#: src/attrib.c:1264
+#, c-format
+msgid   "############################################################################\n"
+msgstr  ""
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(okänd)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  "NOLL"
 
 #: src/lang.c:42
-msgid	"1 Response"
-msgstr	"1 svar"
+msgid   "1 Response"
+msgstr  "1 svar"
 
 #: src/lang.c:46
 #, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%s innehåller inga nyhetsgrupper. Avslutar."
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s innehåller inga nyhetsgrupper. Avslutar."
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	"alla"
+msgid   "all "
+msgstr  "alla"
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	"Alla grupper"
+msgid   "All groups"
+msgstr  "Alla grupper"
 
 #: src/lang.c:49
 #, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	""
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	"Artikel avbruten (borttagen)."
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"Artikel kan inte avbrytas (tas bort)."
+msgid   "Article cancelled (deleted)."
+msgstr  "Artikel avbruten (borttagen)."
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	"Artikel borttagen."
-
-#: src/lang.c:53
-#, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"\n"
-	"Din artikel:\n"
-	"  \"%s\"\n"
-	"kommer att postas till följande %s:\n"
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "Artikel kan inte avbrytas (tas bort)."
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	"Artikel inte postad!"
+msgid   "Article deleted."
+msgstr  "Artikel borttagen."
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "Din artikel:\n"
+        "  \"%s\"\n"
+        "kommer att postas till följande %s:\n"
 
 #: src/lang.c:56
-msgid	"Article Level Commands"
-msgstr	""
+msgid   "Article not posted!"
+msgstr  "Artikel inte postad!"
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	""
+msgid   "Article not saved"
+msgstr  ""
 
 #: src/lang.c:58
-msgid	"Parent article has been killed"
-msgstr	""
+msgid   "Article Level Commands"
+msgstr  ""
 
 #: src/lang.c:59
-msgid	"Parent article is unavailable"
-msgstr	""
+msgid   "Article has no parent"
+msgstr  ""
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	""
+msgid   "Parent article has been killed"
+msgstr  ""
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	""
+msgid   "Parent article is unavailable"
+msgstr  ""
 
 #: src/lang.c:62
 #, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	""
+msgid   "Article posted: %s"
+msgstr  ""
 
 #: src/lang.c:63
-msgid	"Article unavailable"
-msgstr	"Artikel ej tillgänglig"
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  ""
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	""
+#, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  ""
+
+#: src/lang.c:65
+msgid   "Article unavailable"
+msgstr  "Artikel ej tillgänglig"
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	"artiklar"
+msgid   "Article undeleted."
+msgstr  ""
 
 #: src/lang.c:67
-msgid	"This is a repost of the following article:"
-msgstr	""
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	"artikel"
+#, fuzzy, c-format
+msgid   "Article %4d of %4d"
+msgstr  "Artikel %4d av %4d"
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	"Artikel"
+msgid   "articles"
+msgstr  "artiklar"
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	""
+msgid   "This is a repost of the following article:"
+msgstr  ""
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	" den %s"
+msgid   "article"
+msgstr  "artikel"
 
 #: src/lang.c:72
-#, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[-- %s/%s, kodar %s%s%s, %d rader%s%s --]\n"
+msgid   "Article"
+msgstr  "Artikel"
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	", teckenuppsättning: "
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  ""
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	"%*s[-- Beskrivning: %s --]\n"
+msgid   " at %s"
+msgstr  " den %s"
 
 #: src/lang.c:75
 #, c-format
-msgid	"%d Authentication failed"
-msgstr	"%d Autentisering misslyckades"
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  "%*s[-- %s/%s, kodar %s%s%s, %d rader%s%s --]\n"
 
 #: src/lang.c:76
-msgid	"Server expects authentication.\n"
-msgstr	""
+msgid   ", charset: "
+msgstr  ", teckenuppsättning: "
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	"    Ange lösenord: "
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  ""
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	"    Vänligen ange användarnamn: "
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- Beskrivning: %s --]\n"
 
 #: src/lang.c:79
 #, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	""
+msgid   "%d lines"
+msgstr  ""
 
 #: src/lang.c:80
-#, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	""
+msgid   "Attachment Menu"
+msgstr  ""
 
 #: src/lang.c:81
-#, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	""
+#, fuzzy
+msgid   "Attachment Menu Commands"
+msgstr  "Toppnivåkommandon"
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	""
+#, fuzzy
+msgid   "<no name>"
+msgstr  "ingen"
 
 #: src/lang.c:83
 #, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	""
+msgid   "Attachment saved successfully. (%s)"
+msgstr  ""
 
 #: src/lang.c:84
-msgid	"Autosubscribing groups...\n"
-msgstr	""
+#, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  ""
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	""
+#, fuzzy
+msgid   "Select attachment> "
+msgstr  "Välj artikel> "
+
+#: src/lang.c:86
+#, fuzzy
+msgid   "Tagged attachment"
+msgstr  "Välj artikel> "
 
 #: src/lang.c:87
-#, c-format
-msgid	"Active file corrupt - %s"
-msgstr	""
+#, fuzzy, c-format
+msgid   "%d attachments tagged"
+msgstr  "Välj artikel> "
 
 #: src/lang.c:88
-#, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	""
+#, fuzzy
+msgid   "Untagged attachment"
+msgstr  "Välj artikel> "
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	""
+msgid   "Attributes Menu Commands"
+msgstr  ""
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"Felaktigt kommando. Skriv \"%s\" för hjälp."
+msgid   "%d Authentication failed"
+msgstr  "%d Autentisering misslyckades"
 
 #: src/lang.c:92
-msgid	"Base article"
-msgstr	""
+#, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  ""
 
 #: src/lang.c:93
-msgid	"Base article range"
-msgstr	""
+msgid   "Server expects authentication.\n"
+msgstr  ""
 
 #: src/lang.c:94
-#, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	""
+msgid   "    Please enter password: "
+msgstr  "    Ange lösenord: "
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	"*** Början av artikel ***"
+msgid   "    Please enter username: "
+msgstr  "    Vänligen ange användarnamn: "
+
+#: src/lang.c:96
+#, c-format
+msgid   "Authorized for user: %s\n"
+msgstr  ""
 
 #: src/lang.c:97
 #, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	""
+msgid   "Authorization failed for user: %s\n"
+msgstr  ""
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	""
+#: src/lang.c:99
+#, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  ""
 
 #: src/lang.c:100
 #, c-format
-msgid	"Cannot create %s"
-msgstr	"Kan inte skapa %s"
+msgid   "Author search forwards [%s]> "
+msgstr  ""
 
 #: src/lang.c:101
 #, c-format
-msgid	"Can't find base article %d"
-msgstr	""
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  ""
 
 #: src/lang.c:102
-#, c-format
-msgid	"Can't open %s"
-msgstr	"Kan inte öppna %s"
+msgid   "Autosubscribing groups...\n"
+msgstr  ""
 
 #: src/lang.c:103
 #, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	""
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	"*** Postning inte tillåten ***"
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  ""
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	""
+msgid   "Active file corrupt - %s"
+msgstr  ""
 
 #: src/lang.c:106
 #, c-format
-msgid	"Can't retrieve %s"
-msgstr	""
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  ""
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	"%s är en katalog"
+msgid   "Unrecognized attribute: %s"
+msgstr  ""
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	""
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	""
+msgid   "Bad command. Type '%s' for help."
+msgstr  "Felaktigt kommando. Skriv \"%s\" för hjälp."
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	""
+msgid   "Base article"
+msgstr  ""
 
 #: src/lang.c:111
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	""
+msgid   "Base article range"
+msgstr  ""
 
 #: src/lang.c:112
 #, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	""
+msgid   "%s: Updating of index files not supported\n"
+msgstr  ""
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	""
+msgid   "*** Beginning of article ***"
+msgstr  "*** Början av artikel ***"
 
 #: src/lang.c:114
-msgid	"Check Prepared Article"
-msgstr	""
-
-#: src/lang.c:115
-msgid	"Checking for new groups... "
-msgstr	"Letar efter nya grupper..."
+#, fuzzy
+msgid   "*** Beginning of page ***"
+msgstr  "*** Början av artikel ***"
 
 #: src/lang.c:116
-msgid	"Checking for news..."
-msgstr	""
+#, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  ""
 
 #: src/lang.c:117
-#, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	""
+msgid   "Cancelling article..."
+msgstr  ""
 
 #: src/lang.c:119
-msgid	"ANSI color disabled"
-msgstr	""
+#, c-format
+msgid   "Cannot create %s"
+msgstr  "Kan inte skapa %s"
 
 #: src/lang.c:120
-msgid	"ANSI color enabled"
-msgstr	""
+#, c-format
+msgid   "Can't find base article %d"
+msgstr  ""
+
+#: src/lang.c:121
+#, c-format
+msgid   "Can't open %s"
+msgstr  "Kan inte öppna %s"
 
 #: src/lang.c:122
 #, c-format
-msgid	"Command failed: %s"
-msgstr	"Kommando misslyckades: %s"
+msgid   "Couldn't open %s for saving"
+msgstr  ""
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	""
+msgid   "*** Posting not allowed ***"
+msgstr  "*** Postning inte tillåten ***"
 
 #: src/lang.c:124
 #, c-format
-msgid	"Connecting to %s..."
-msgstr	"Ansluter till %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	""
+msgid   "Posting is not allowed to %s"
+msgstr  ""
 
 #: src/lang.c:126
-msgid	"Creating active file for saved groups...\n"
-msgstr	""
+#, c-format
+msgid   "Can't retrieve %s"
+msgstr  ""
+
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s är en katalog"
 
-#: src/lang.c:127
-msgid	"Creating newsrc file...\n"
-msgstr	""
-
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"Förvald"
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  ""
 
 #: src/lang.c:130
-msgid	"Delete saved files that have been post processed?"
-msgstr	""
+#, c-format
+msgid   "Catchup %s..."
+msgstr  ""
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	""
+msgid   "Catchup all groups entered during this session?"
+msgstr  ""
+
+#: src/lang.c:132
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  ""
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	"*** Slut på artikel ***"
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  ""
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	"*** Slut på artiklar ***"
+msgid   "Caughtup"
+msgstr  ""
 
 #: src/lang.c:135
-msgid	"*** End of groups ***"
-msgstr	"*** Slut på grupper ***"
+msgid   "Check Prepared Article"
+msgstr  ""
 
 #: src/lang.c:136
-msgid	"*** End of thread ***"
-msgstr	"*** Slut på tråd ***"
+msgid   "Checking for new groups... "
+msgstr  "Letar efter nya grupper..."
 
 #: src/lang.c:137
-msgid	"Enter limit of articles to get> "
-msgstr	""
+msgid   "Checking for news..."
+msgstr  ""
 
 #: src/lang.c:138
-msgid	"Enter Message-ID to go to> "
-msgstr	""
-
-#: src/lang.c:139
-msgid	" and enter next unread thread"
-msgstr	""
+#, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:140
-msgid	" and enter next unread group"
-msgstr	""
+msgid   "ANSI color disabled"
+msgstr  ""
 
 #: src/lang.c:141
-msgid	"Enter option number> "
-msgstr	""
+msgid   "ANSI color enabled"
+msgstr  ""
 
-#: src/lang.c:142
+#: src/lang.c:143
 #, c-format
-msgid	"Enter range [%s]> "
-msgstr	""
+msgid   "Command failed: %s"
+msgstr  "Kommando misslyckades: %s"
 
-#: src/lang.c:143
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	""
-
-#: src/lang.c:145
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	""
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  ""
 
 #: src/lang.c:146
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	""
-
-#: src/lang.c:147
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	""
+#, c-format
+msgid   "Connecting to %s..."
+msgstr  "Ansluter till %s..."
 
 #: src/lang.c:148
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	""
+msgid   "<CR>"
+msgstr  ""
 
 #: src/lang.c:149
-#, c-format
-msgid	"Can't unlock %s"
-msgstr	"Kan inte låsa upp %s"
-
-#: src/lang.c:151
-#, c-format
-msgid	"Corrupted file %s"
-msgstr	"Skadad fil %s"
+msgid   "Creating active file for saved groups...\n"
+msgstr  ""
 
-#: src/lang.c:152
-#, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	""
+#: src/lang.c:150
+msgid   "Creating newsrc file...\n"
+msgstr  ""
+
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "Förvald"
 
 #: src/lang.c:153
-#, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	""
+msgid   "Delete saved files that have been post processed?"
+msgstr  ""
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	""
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  ""
 
 #: src/lang.c:156
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	""
+msgid   "*** End of article ***"
+msgstr  "*** Slut på artikel ***"
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	""
+msgid   "*** End of articles ***"
+msgstr  "*** Slut på artiklar ***"
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	""
+#, fuzzy
+msgid   "*** End of attachments ***"
+msgstr  "*** Slut på artiklar ***"
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	""
+msgid   "*** End of groups ***"
+msgstr  "*** Slut på grupper ***"
 
 #: src/lang.c:160
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	""
+#, fuzzy
+msgid   "*** End of page ***"
+msgstr  "*** Slut på artikel ***"
 
 #: src/lang.c:161
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	""
+#, fuzzy
+msgid   "*** End of scopes ***"
+msgstr  "*** Slut på grupper ***"
 
 #: src/lang.c:162
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	""
+msgid   "*** End of thread ***"
+msgstr  "*** Slut på tråd ***"
 
 #: src/lang.c:163
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	""
+#, fuzzy
+msgid   "*** End of URLs ***"
+msgstr  "*** Slut på grupper ***"
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	""
+msgid   "Enter limit of articles to get> "
+msgstr  ""
 
 #: src/lang.c:165
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	""
+msgid   "Enter Message-ID to go to> "
+msgstr  ""
 
 #: src/lang.c:166
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	""
+msgid   " and enter next unread thread"
+msgstr  ""
 
 #: src/lang.c:167
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	""
+#, fuzzy
+msgid   " and enter next unread article"
+msgstr  "Slut på olästa artiklar"
 
 #: src/lang.c:168
-msgid	"FQDN component may not start with digit.\n"
-msgstr	""
+msgid   " and enter next unread group"
+msgstr  ""
 
 #: src/lang.c:169
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	""
+msgid   "Enter option number> "
+msgstr  ""
 
 #: src/lang.c:170
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	""
+#, c-format
+msgid   "Enter range [%s]> "
+msgstr  ""
 
 #: src/lang.c:171
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	""
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	""
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  ""
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  ""
 
 #: src/lang.c:174
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  ""
 
 #: src/lang.c:175
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  ""
 
 #: src/lang.c:176
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	""
-
-#: src/lang.c:177
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	""
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  ""
 
 #: src/lang.c:178
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	""
+#, c-format
+msgid   "Can't unlock %s"
+msgstr  "Kan inte låsa upp %s"
 
 #: src/lang.c:179
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	""
+#, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  ""
 
 #: src/lang.c:180
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	""
-
-#: src/lang.c:181
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	""
+#, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  ""
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	""
+#, c-format
+msgid   "Corrupted file %s"
+msgstr  "Skadad fil %s"
+
+#: src/lang.c:185
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  ""
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  ""
+
+#: src/lang.c:187
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  ""
 
 #: src/lang.c:188
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	""
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  ""
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  ""
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  ""
+
+#: src/lang.c:191
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  ""
+
+#: src/lang.c:192
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
+
+#: src/lang.c:193
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
 
 #: src/lang.c:194
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	""
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  ""
 
 #: src/lang.c:195
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	""
+msgid   "Illegal character in FQDN.\n"
+msgstr  ""
 
 #: src/lang.c:196
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	""
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  ""
 
 #: src/lang.c:197
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	""
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  ""
 
 #: src/lang.c:198
-#, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	""
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  ""
 
 #: src/lang.c:199
-#, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	""
+msgid   "FQDN component may not start with digit.\n"
+msgstr  ""
 
 #: src/lang.c:200
-#, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	""
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  ""
 
 #: src/lang.c:201
-#, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	""
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  ""
+
+#: src/lang.c:202
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  ""
 
 #: src/lang.c:203
-#, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	""
+msgid   "Missing localpart of mail address.\n"
+msgstr  ""
 
 #: src/lang.c:204
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	""
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  ""
 
 #: src/lang.c:205
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	""
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  ""
 
 #: src/lang.c:206
-#, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"Inga rättigheter att gå in i %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  ""
 
 #: src/lang.c:207
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  ""
 
 #: src/lang.c:208
-#, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"Inga läsrättigheter för %s\n"
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  ""
 
 #: src/lang.c:209
-#, c-format
-msgid	"File %s does not exist\n"
-msgstr	"Filen %s existerar inte\n"
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  ""
 
 #: src/lang.c:210
-#, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"Inga skrivrättigheter för %s\n"
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  ""
 
 #: src/lang.c:211
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	""
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  ""
 
 #: src/lang.c:212
-msgid	"errors"
-msgstr	"fel"
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  ""
 
 #: src/lang.c:213
 #, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	""
-
-#: src/lang.c:214
-#, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	""
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  ""
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
-msgid	"error"
-msgstr	"fel"
-
-#: src/lang.c:216
-msgid	"Unknown display level"
-msgstr	""
-
-#: src/lang.c:217
-msgid	"<ESC>"
-msgstr	"<ESC>"
-
-#: src/lang.c:218
-msgid	"Exiting..."
-msgstr	"Avslutar..."
-
-#: src/lang.c:219
-msgid	"leaving external mail-reader"
-msgstr	""
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  ""
 
 #: src/lang.c:220
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  ""
+
+#: src/lang.c:226
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  ""
+
+#: src/lang.c:227
 #, c-format
-msgid	"Extracting %s..."
-msgstr	"extraherar %s..."
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  ""
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	""
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  ""
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	""
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  ""
 
-#: src/lang.c:224
+#: src/lang.c:230
 #, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	""
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  ""
 
-#: src/lang.c:225
-msgid	"Rule created by: "
-msgstr	""
+#: src/lang.c:231
+#, c-format
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  ""
 
-#: src/lang.c:226
+#: src/lang.c:232
 #, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"Ange mönster [%s]> "
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  ""
 
-#: src/lang.c:227
+#: src/lang.c:233
 #, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	""
+msgid   "Insecure permissions of %s (%o)"
+msgstr  ""
 
-#: src/lang.c:228
+#: src/lang.c:235
 #, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	""
+msgid   "Invalid response to GROUP command, %s"
+msgstr  ""
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	"-- vidarebefordrat meddelande --\n"
+#: src/lang.c:240
+#, c-format
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  ""
 
-#: src/lang.c:230
-#, fuzzy
-msgid	"-- end of forwarded message --\n"
-msgstr	"Vidarebefordrat meddelande (slut)\n"
+#: src/lang.c:241
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  ""
 
-#: src/lang.c:231
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	""
+#: src/lang.c:242
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  ""
 
-#: src/lang.c:252
+#: src/lang.c:243
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  ""
+
+#: src/lang.c:244
 #, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	""
+msgid   "No permissions to go into %s\n"
+msgstr  "Inga rättigheter att gå in i %s\n"
 
-#: src/lang.c:253
+#: src/lang.c:246
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  ""
+
+#: src/lang.c:248
 #, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	""
+msgid   "No read permissions for %s\n"
+msgstr  "Inga läsrättigheter för %s\n"
 
-#. SCORE_MAX
-#: src/lang.c:254
-msgid	"Full"
-msgstr	"Fullständig"
+#: src/lang.c:249
+#, c-format
+msgid   "File %s does not exist\n"
+msgstr  "Filen %s existerar inte\n"
+
+#: src/lang.c:250
+#, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "Inga skrivrättigheter för %s\n"
+
+#: src/lang.c:251
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  ""
+
+#: src/lang.c:252
+msgid   "errors"
+msgstr  "fel"
 
-#: src/lang.c:255
-msgid	"Comment (optional)  : "
-msgstr	"Kommentar (valfri)  : "
+#: src/lang.c:254
+#, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  ""
 
 #: src/lang.c:256
-msgid	"Apply pattern to    : "
-msgstr	""
+#, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  ""
 
 #: src/lang.c:257
-msgid	"From: line (ignore case)      "
-msgstr	""
+msgid   "error"
+msgstr  "fel"
 
 #: src/lang.c:258
-msgid	"From: line (case sensitive)   "
-msgstr	""
+msgid   "Unknown display level"
+msgstr  ""
+
+#: src/lang.c:259
+msgid   "<ESC>"
+msgstr  "<ESC>"
 
 #: src/lang.c:260
-#, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s: Okänd värd.\n"
+msgid   "Exiting..."
+msgstr  "Avslutar..."
 
 #: src/lang.c:261
-msgid	"global "
-msgstr	"global "
+msgid   "leaving external mail-reader"
+msgstr  ""
 
 #: src/lang.c:262
 #, c-format
-msgid	"Please use %.100s instead"
-msgstr	"Vänligen använd %.100s istället"
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	""
+msgid   "Extracting %s..."
+msgstr  "extraherar %s..."
 
 #: src/lang.c:264
 #, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"Grupp %s är modererad. Fortsätta?"
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  ""
 
 #: src/lang.c:265
-msgid	"groups"
-msgstr	"grupper"
+#, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  ""
 
 #: src/lang.c:266
 #, c-format
-msgid	"Rereading %s..."
-msgstr	"Läser om %s..."
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  ""
 
 #: src/lang.c:267
-msgid	"Top Level Commands"
-msgstr	"Toppnivåkommandon"
+msgid   "Rule created by: "
+msgstr  ""
 
 #: src/lang.c:268
-msgid	"Group Selection"
-msgstr	"Gruppval"
+#, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "Ange mönster [%s]> "
 
 #: src/lang.c:269
-msgid	"group"
-msgstr	"grupp"
+#, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  ""
+
+#: src/lang.c:270
+#, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  ""
 
 #: src/lang.c:271
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	""
+msgid   "-- forwarded message --\n"
+msgstr  "-- vidarebefordrat meddelande --\n"
 
 #: src/lang.c:272
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	""
+#, fuzzy
+msgid   "-- end of forwarded message --\n"
+msgstr  "Vidarebefordrat meddelande (slut)\n"
 
 #: src/lang.c:273
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	""
-
-#: src/lang.c:274
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:275
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:276
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	""
-
-#: src/lang.c:277
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:278
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:279
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:280
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:281
-msgid	"kill an article via a menu"
-msgstr	""
-
-#: src/lang.c:282
-msgid	"auto-select (hot) an article via a menu"
-msgstr	""
-
-#: src/lang.c:283
-msgid	"Browse URLs in article"
-msgstr	"Bläddra URL:er i artikel"
-
-#: src/lang.c:284
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	""
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	""
-
-#: src/lang.c:286
-msgid	"edit article (mail-groups only)"
-msgstr	""
-
-#: src/lang.c:287
-msgid	"display first article in current thread"
-msgstr	""
-
-#: src/lang.c:288
-msgid	"display first page of article"
-msgstr	""
-
-#: src/lang.c:289
-msgid	"post followup to current article"
-msgstr	""
-
-#: src/lang.c:290
-msgid	"post followup (don't copy text) to current article"
-msgstr	""
-
-#: src/lang.c:291
-msgid	"post followup to current article quoting complete headers"
-msgstr	""
-
-#: src/lang.c:292
-msgid	"display last article in current thread"
-msgstr	""
-
-#: src/lang.c:293
-msgid	"display last page of article"
-msgstr	"visa sista sidan av artikel"
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  ""
 
 #: src/lang.c:294
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	""
+#, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  ""
 
 #: src/lang.c:295
-msgid	"display next article"
-msgstr	"visa nästa artikel"
+#, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  ""
 
+#. SCORE_MAX
 #: src/lang.c:296
-msgid	"display first article in next thread"
-msgstr	"visa första artikel i nästa tråd"
+msgid   "Full"
+msgstr  "Fullständig"
 
 #: src/lang.c:297
-msgid	"display next unread article"
-msgstr	"visa nästa olästa artikel"
+msgid   "Comment (optional)  : "
+msgstr  "Kommentar (valfri)  : "
 
 #: src/lang.c:298
-msgid	"go to the article that this one followed up"
-msgstr	""
+msgid   "Apply pattern to    : "
+msgstr  ""
 
 #: src/lang.c:299
-msgid	"display previous article"
-msgstr	"visa föregående artikel"
+msgid   "From: line (ignore case)      "
+msgstr  ""
 
 #: src/lang.c:300
-msgid	"display previous unread article"
-msgstr	"visa föregående olästa artikel"
-
-#: src/lang.c:301
-msgid	"quickly kill an article using defaults"
-msgstr	""
+msgid   "From: line (case sensitive)   "
+msgstr  ""
 
 #: src/lang.c:302
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	""
-
-#: src/lang.c:303
-msgid	"return to group selection level"
-msgstr	"återgå till gruppvalsnivå"
+#, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s: Okänd värd.\n"
 
 #: src/lang.c:304
-msgid	"reply through mail to author"
-msgstr	""
+msgid   "global "
+msgstr  "global "
 
 #: src/lang.c:305
-msgid	"reply through mail (don't copy text) to author"
-msgstr	""
+#, c-format
+msgid   "Please use %.100s instead"
+msgstr  "Vänligen använd %.100s istället"
 
 #: src/lang.c:306
-msgid	"reply through mail to author quoting complete headers"
-msgstr	""
+#, c-format
+msgid   "%s is bogus"
+msgstr  ""
 
 #: src/lang.c:307
-msgid	"repost chosen article to another group"
-msgstr	""
+#, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  "Grupp %s är modererad. Fortsätta?"
 
 #: src/lang.c:308
-msgid	"search backwards within this article"
-msgstr	""
+msgid   "groups"
+msgstr  "grupper"
 
 #: src/lang.c:309
-msgid	"search forwards within this article"
-msgstr	"sök framåt inom denna artikel"
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "Läser om %s..."
 
 #: src/lang.c:310
-msgid	"show article in raw-mode (including all headers)"
-msgstr	""
+msgid   "Top Level Commands"
+msgstr  "Toppnivåkommandon"
 
 #: src/lang.c:311
-msgid	"skip next block of included text"
-msgstr	""
+msgid   "Group Selection"
+msgstr  "Gruppval"
 
 #: src/lang.c:312
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	""
-
-#: src/lang.c:313
-msgid	"toggle word highlighting on/off"
-msgstr	""
+msgid   "group"
+msgstr  "grupp"
 
 #: src/lang.c:314
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	""
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  ""
 
 #: src/lang.c:315
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	""
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:316
-msgid	"toggle german TeX style decoding for current article"
-msgstr	""
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  ""
 
 #: src/lang.c:317
-msgid	"toggle display of uuencoded sections"
-msgstr	""
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:318
-msgid	"View/save multimedia attachments"
-msgstr	""
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:319
-#, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"rapportera fel eller kommentar via e-post till %s"
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  ""
 
 #: src/lang.c:320
-msgid	"choose range of articles to be affected by next command"
-msgstr	""
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:321
-msgid	"escape from command prompt"
-msgstr	""
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:322
-msgid	"edit filter file"
-msgstr	"redigera filterfil"
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:323
-msgid	"get help"
-msgstr	"få hjälp"
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:324
-msgid	"display last article viewed"
-msgstr	""
+msgid   "kill an article via a menu"
+msgstr  ""
 
 #: src/lang.c:325
-msgid	"down one line"
-msgstr	"en rad ner"
+msgid   "auto-select (hot) an article via a menu"
+msgstr  ""
 
 #: src/lang.c:326
-msgid	"up one line"
-msgstr	"upp en rad"
+msgid   "Browse URLs in article"
+msgstr  "Bläddra URL:er i artikel"
 
 #: src/lang.c:327
-msgid	"go to article chosen by Message-ID"
-msgstr	""
-
-#: src/lang.c:328
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	""
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  ""
 
 #: src/lang.c:329
-msgid	"menu of configurable options"
-msgstr	""
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  ""
 
 #: src/lang.c:330
-msgid	"down one page"
-msgstr	"ner en sida"
+msgid   "post followup to current article"
+msgstr  ""
 
 #: src/lang.c:331
-msgid	"up one page"
-msgstr	"upp en sida"
+msgid   "post followup (don't copy text) to current article"
+msgstr  ""
 
 #: src/lang.c:332
-msgid	"post (write) article to current group"
-msgstr	""
+msgid   "post followup to current article quoting complete headers"
+msgstr  ""
 
 #: src/lang.c:333
-msgid	"post postponed articles"
-msgstr	""
-
-#: src/lang.c:334
-msgid	"list articles posted by you (from posted file)"
-msgstr	""
+msgid   "repost chosen article to another group"
+msgstr  ""
 
 #: src/lang.c:335
-msgid	"return to previous menu"
-msgstr	"återgå till föregående meny"
+msgid   "edit article (mail-groups only)"
+msgstr  ""
 
 #: src/lang.c:336
-msgid	"quit tin immediately"
-msgstr	"avsluta tin omedelbart"
+msgid   "display first article in current thread"
+msgstr  ""
 
 #: src/lang.c:337
-msgid	"redraw page"
-msgstr	"rita om sida"
+msgid   "display first page of article"
+msgstr  ""
 
 #: src/lang.c:338
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	""
+msgid   "display last article in current thread"
+msgstr  ""
 
 #: src/lang.c:339
-msgid	"save marked articles automatically without user prompts"
-msgstr	""
+msgid   "display last page of article"
+msgstr  "visa sista sidan av artikel"
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	""
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  ""
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	""
+msgid   "display next article"
+msgstr  "visa nästa artikel"
 
 #: src/lang.c:342
-msgid	"search for articles by author backwards"
-msgstr	""
+msgid   "display first article in next thread"
+msgstr  "visa första artikel i nästa tråd"
 
 #: src/lang.c:343
-msgid	"search for articles by author forwards"
-msgstr	""
+msgid   "display next unread article"
+msgstr  "visa nästa olästa artikel"
 
 #: src/lang.c:344
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	""
+msgid   "go to the article that this one followed up"
+msgstr  ""
 
 #: src/lang.c:345
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	""
+msgid   "display previous article"
+msgstr  "visa föregående artikel"
 
 #: src/lang.c:346
-msgid	"search for articles by Subject line backwards"
-msgstr	""
+msgid   "display previous unread article"
+msgstr  "visa föregående olästa artikel"
 
 #: src/lang.c:347
-msgid	"search for articles by Subject line forwards"
-msgstr	""
+msgid   "quickly kill an article using defaults"
+msgstr  ""
 
 #: src/lang.c:348
-msgid	"repeat last search"
-msgstr	"repetera senaste sökning"
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  ""
 
 #: src/lang.c:349
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	""
+msgid   "return to group selection level"
+msgstr  "återgå till gruppvalsnivå"
 
 #: src/lang.c:350
-msgid	"toggle info message in last line (subject/description)"
-msgstr	""
+msgid   "reply through mail to author"
+msgstr  ""
 
 #: src/lang.c:351
-msgid	"toggle inverse video"
-msgstr	""
+msgid   "reply through mail (don't copy text) to author"
+msgstr  ""
 
 #: src/lang.c:352
-msgid	"toggle mini help menu display"
-msgstr	""
+msgid   "reply through mail to author quoting complete headers"
+msgstr  ""
 
 #: src/lang.c:353
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	""
+msgid   "search backwards within this article"
+msgstr  ""
 
 #: src/lang.c:354
-msgid	"show version information"
-msgstr	"visa versionsinformation"
+msgid   "search forwards within this article"
+msgstr  "sök framåt inom denna artikel"
 
 #: src/lang.c:355
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	""
+msgid   "show article in raw-mode (including all headers)"
+msgstr  ""
 
 #: src/lang.c:356
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	""
+msgid   "skip next block of included text"
+msgstr  ""
 
 #: src/lang.c:357
-msgid	"choose first thread in list"
-msgstr	"välj första tråd i lista"
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  ""
 
 #: src/lang.c:358
-msgid	"choose last thread in list"
-msgstr	"välj sista tråd i lista"
+#, fuzzy
+msgid   "toggle display of all headers"
+msgstr  "växla val av tråd"
 
 #: src/lang.c:359
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	""
+msgid   "toggle word highlighting on/off"
+msgstr  ""
 
 #: src/lang.c:360
-msgid	"mark article as unread"
-msgstr	"markera artikel som oläst"
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  ""
 
 #: src/lang.c:361
-msgid	"mark current thread or tagged threads as read"
-msgstr	""
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  ""
 
 #: src/lang.c:362
-msgid	"mark thread as unread"
-msgstr	"markera tråd som oläst"
+msgid   "toggle german TeX style decoding for current article"
+msgstr  ""
 
 #: src/lang.c:363
-msgid	"toggle display of all/selected articles"
-msgstr	""
+msgid   "toggle display of uuencoded sections"
+msgstr  ""
 
 #: src/lang.c:364
-msgid	"display next group"
-msgstr	"visa nästa grupp"
+msgid   "View/pipe/save multimedia attachments"
+msgstr  ""
 
 #: src/lang.c:365
-msgid	"display previous group"
-msgstr	"visa föregående grupp"
+#, fuzzy
+msgid   "choose first attachment in list"
+msgstr  "välj första artikel i lista"
 
 #: src/lang.c:366
-msgid	"toggle all selections (all articles)"
-msgstr	""
+#, fuzzy
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  välj artikel efter nummer"
 
 #: src/lang.c:367
-msgid	"select group (make \"hot\")"
-msgstr	"välj grupp (gör \"het\")"
-
-#: src/lang.c:368
-msgid	"select thread"
-msgstr	"välj tråd"
+#, fuzzy
+msgid   "choose last attachment in list"
+msgstr  "välj sista artikel i lista"
 
 #: src/lang.c:369
-msgid	"select threads if at least one unread article is selected"
-msgstr	""
+msgid   "pipe attachment into command"
+msgstr  ""
 
 #: src/lang.c:370
-msgid	"select threads that match user specified pattern"
-msgstr	""
-
-#: src/lang.c:371
-msgid	"tag all parts of current multipart-message in order"
-msgstr	""
+#, fuzzy
+msgid   "pipe raw attachment into command"
+msgstr  "Toppnivåkommandon"
 
 #: src/lang.c:372
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 - 9\t  välj tråd efter nummer"
+msgid   "save attachment to disk"
+msgstr  ""
 
 #: src/lang.c:373
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	""
+msgid   "search for attachments forwards"
+msgstr  ""
 
 #: src/lang.c:374
-msgid	"toggle display of all/unread articles"
-msgstr	""
+#, fuzzy
+msgid   "search for attachments backwards"
+msgstr  "%s=sök framåt; %s=sök bakåt; %s=avsluta"
 
 #: src/lang.c:375
-msgid	"toggle selection of thread"
-msgstr	"växla val av tråd"
+msgid   "view attachment"
+msgstr  ""
 
 #: src/lang.c:376
-msgid	"cycle through threading options available"
-msgstr	""
+#, fuzzy
+msgid   "tag attachment"
+msgstr  "Välj artikel> "
 
 #: src/lang.c:377
-msgid	"undo all selections (all articles)"
-msgstr	""
+msgid   "tag attachments that match user specified pattern"
+msgstr  ""
 
 #: src/lang.c:378
-msgid	"untag all tagged threads"
-msgstr	""
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
 
 #: src/lang.c:379
-msgid	"mark all articles in group as read"
-msgstr	""
+#, fuzzy
+msgid   "untag all tagged attachments"
+msgstr  "Välj artikel> "
 
 #: src/lang.c:380
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	""
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  ""
 
 #: src/lang.c:381
-msgid	"choose first group in list"
-msgstr	"välj första grupp i lista"
+#, fuzzy
+msgid   "choose first attribute in list"
+msgstr  "välj första artikel i lista"
 
 #: src/lang.c:382
-msgid	"choose group by name"
-msgstr	"välj grupp efter namn"
+#, fuzzy
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  välj artikel efter nummer"
 
 #: src/lang.c:383
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 - 9\t  välj grupp efter nummer"
+#, fuzzy
+msgid   "choose last attribute in list"
+msgstr  "välj sista artikel i lista"
 
 #: src/lang.c:384
-msgid	"choose range of groups to be affected by next command"
-msgstr	""
+msgid   "reset attribute to a default value"
+msgstr  ""
 
 #: src/lang.c:385
-msgid	"choose last group in list"
-msgstr	"välj sista grupp i lista"
+#, fuzzy
+msgid   "search forwards for an attribute"
+msgstr  "sök framåt efter ett gruppnamn"
 
 #: src/lang.c:386
-msgid	"mark all articles in chosen group unread"
-msgstr	""
+#, fuzzy
+msgid   "search backwards for an attribute"
+msgstr  "sök framåt efter ett gruppnamn"
 
 #: src/lang.c:387
-msgid	"move chosen group within list"
-msgstr	""
+#, fuzzy
+msgid   "select attribute"
+msgstr  "välj tråd"
 
 #: src/lang.c:388
-msgid	"choose next group with unread news"
-msgstr	""
+msgid   "toggle back to options menu when invoked from there"
+msgstr  ""
 
-#: src/lang.c:389 src/lang.c:1197
-msgid	"quit"
-msgstr	"avsluta"
+#: src/lang.c:389
+#, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  "rapportera fel eller kommentar via e-post till %s"
 
 #: src/lang.c:390
-msgid	"quit without saving configuration changes"
-msgstr	"avsluta utan att spara konfigurationsändringar"
+#, fuzzy
+msgid   "choose first option in list"
+msgstr  "välj första grupp i lista"
 
 #: src/lang.c:391
-msgid	"read chosen group"
-msgstr	"läs vald grupp"
+#, fuzzy
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  välj grupp efter nummer"
 
 #: src/lang.c:392
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	""
+#, fuzzy
+msgid   "choose last option in list"
+msgstr  "välj sista grupp i lista"
 
 #: src/lang.c:393
-msgid	"search backwards for a group name"
-msgstr	""
+#, fuzzy
+msgid   "start scopes menu"
+msgstr  "återgå till föregående meny"
 
 #: src/lang.c:394
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	""
+#, fuzzy
+msgid   "search forwards for an option"
+msgstr  "sök framåt efter ett gruppnamn"
 
 #: src/lang.c:395
-msgid	"search forwards for a group name"
-msgstr	"sök framåt efter ett gruppnamn"
+#, fuzzy
+msgid   "search backwards for an option"
+msgstr  "sök framåt efter ett gruppnamn"
 
 #: src/lang.c:396
-msgid	"subscribe to chosen group"
-msgstr	"prenumerera på vald grupp"
+#, fuzzy
+msgid   "select option"
+msgstr  "välj"
 
 #: src/lang.c:397
-msgid	"subscribe to groups that match pattern"
-msgstr	""
+msgid   "toggle to attributes menu"
+msgstr  ""
 
 #: src/lang.c:398
-msgid	"reread active file to check for any new news"
-msgstr	""
+msgid   "choose range of articles to be affected by next command"
+msgstr  ""
 
 #: src/lang.c:399
-msgid	"toggle display of group name only or group name plus description"
-msgstr	""
+msgid   "escape from command prompt"
+msgstr  ""
 
 #: src/lang.c:400
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	""
+msgid   "edit filter file"
+msgstr  "redigera filterfil"
 
 #: src/lang.c:401
-msgid	"unsubscribe from chosen group"
-msgstr	"säg upp prenumeration av vald grupp"
+msgid   "get help"
+msgstr  "få hjälp"
 
 #: src/lang.c:402
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"säg upp prenumeration av grupper som matchar mönster"
+msgid   "display last article viewed"
+msgstr  ""
 
 #: src/lang.c:403
-msgid	"sort the list of groups"
-msgstr	"sortera listan av grupper"
+msgid   "down one line"
+msgstr  "en rad ner"
 
 #: src/lang.c:404
-msgid	"toggle display to show all/subscribed groups"
-msgstr	""
+msgid   "up one line"
+msgstr  "upp en rad"
 
 #: src/lang.c:405
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 - 9\t  välj artikel efter nummer"
+msgid   "go to article chosen by Message-ID"
+msgstr  ""
 
 #: src/lang.c:406
-msgid	"mark thread as read and return to group index page"
-msgstr	""
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  ""
 
 #: src/lang.c:407
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	""
+msgid   "menu of configurable options"
+msgstr  ""
 
 #: src/lang.c:408
-msgid	"choose first article in list"
-msgstr	"välj första artikel i lista"
+msgid   "down one page"
+msgstr  "ner en sida"
 
 #: src/lang.c:409
-msgid	"choose last article in list"
-msgstr	"välj sista artikel i lista"
-
-#: src/lang.c:410
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	""
+msgid   "up one page"
+msgstr  "upp en sida"
 
 #: src/lang.c:411
-msgid	"read chosen article"
-msgstr	"läs vald artikel"
+msgid   "post (write) article to current group"
+msgstr  ""
 
 #: src/lang.c:412
-msgid	"Display properties\n"
-	"------------------"
-msgstr	"Visa egenskaper\n"
-	"---------------"
-
-#: src/lang.c:413
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	"Diverse\n"
-	"-------"
+msgid   "post postponed articles"
+msgstr  ""
 
 #: src/lang.c:414
-msgid	"Moving around\n"
-	"-------------"
-msgstr	"Flytta runt\n"
-	"-----------"
+msgid   "list articles posted by you (from posted file)"
+msgstr  ""
 
 #: src/lang.c:415
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"Operationer för grupp/tråd/artikel\n"
-	"----------------------------------"
+msgid   "return to previous menu"
+msgstr  "återgå till föregående meny"
+
+#: src/lang.c:416
+msgid   "quit tin immediately"
+msgstr  "avsluta tin omedelbart"
 
 #: src/lang.c:417
-msgid	"Group Level Commands"
-msgstr	"Gruppnivåkommandon"
+msgid   "redraw page"
+msgstr  "rita om sida"
 
 #: src/lang.c:418
-msgid	"Kill filter added"
-msgstr	""
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  ""
 
 #: src/lang.c:419
-msgid	"Auto-selection filter added"
-msgstr	""
+msgid   "save marked articles automatically without user prompts"
+msgstr  ""
 
 #: src/lang.c:420
-msgid	"All parts tagged"
-msgstr	""
+msgid   "scroll the screen one line down"
+msgstr  ""
 
 #: src/lang.c:421
-msgid	"Storing article for later posting"
-msgstr	""
+msgid   "scroll the screen one line up"
+msgstr  ""
 
 #: src/lang.c:422
-msgid	"Please enter a valid character"
-msgstr	"Vänligen ange ett giltigt tecken"
+msgid   "search for articles by author backwards"
+msgstr  ""
 
 #: src/lang.c:423
-#, c-format
-msgid	"Missing part #%d"
-msgstr	""
+msgid   "search for articles by author forwards"
+msgstr  ""
 
 #: src/lang.c:424
-msgid	"*** No postponed articles ***"
-msgstr	"*** Inga uppskjutna artiklar ***"
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  ""
 
 #: src/lang.c:425
-msgid	"Not a multi-part message"
-msgstr	""
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  ""
 
 #: src/lang.c:426
-msgid	"You are not subscribed to this group"
-msgstr	"Du är inte prenumerant av denna grupp"
+msgid   "search for articles by Subject line backwards"
+msgstr  ""
 
 #: src/lang.c:427
-msgid	"No previous expression"
-msgstr	"Inget tidigare uttryck"
+msgid   "search for articles by Subject line forwards"
+msgstr  ""
 
 #: src/lang.c:428
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	""
+msgid   "repeat last search"
+msgstr  "repetera senaste sökning"
+
+#: src/lang.c:429
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  ""
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	""
+msgid   "toggle info message in last line (subject/description)"
+msgstr  ""
 
 #: src/lang.c:431
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	""
+msgid   "toggle inverse video"
+msgstr  ""
+
+#: src/lang.c:432
+msgid   "toggle mini help menu display"
+msgstr  ""
 
 #: src/lang.c:433
-#, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	""
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  ""
 
 #: src/lang.c:434
-msgid	"TeX2Iso encoded article"
-msgstr	""
+msgid   "show version information"
+msgstr  "visa versionsinformation"
 
 #: src/lang.c:435
-msgid	"incomplete "
-msgstr	"ej komplett "
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  ""
+
+#: src/lang.c:436
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  ""
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	""
+msgid   "choose first thread in list"
+msgstr  "välj första tråd i lista"
+
+#: src/lang.c:438
+msgid   "choose last thread in list"
+msgstr  "välj sista tråd i lista"
+
+#: src/lang.c:439
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  ""
+
+#: src/lang.c:440
+msgid   "mark article as unread"
+msgstr  "markera artikel som oläst"
+
+#: src/lang.c:441
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  ""
+
+#: src/lang.c:442
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  ""
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  ""
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  ""
+
+#: src/lang.c:445
+msgid   "toggle display of all/selected articles"
+msgstr  ""
+
+#: src/lang.c:446
+msgid   "display next group"
+msgstr  "visa nästa grupp"
+
+#: src/lang.c:447
+msgid   "display previous group"
+msgstr  "visa föregående grupp"
+
+#: src/lang.c:448
+msgid   "toggle all selections (all articles)"
+msgstr  ""
+
+#: src/lang.c:449
+msgid   "select group (make \"hot\")"
+msgstr  "välj grupp (gör \"het\")"
+
+#: src/lang.c:450
+msgid   "select thread"
+msgstr  "välj tråd"
+
+#: src/lang.c:451
+msgid   "select threads if at least one unread article is selected"
+msgstr  ""
+
+#: src/lang.c:452
+msgid   "select threads that match user specified pattern"
+msgstr  ""
 
 #: src/lang.c:453
-#, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	""
+msgid   "tag all parts of current multipart-message in order"
+msgstr  ""
+
+#: src/lang.c:454
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  välj tråd efter nummer"
 
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	""
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  ""
+
+#: src/lang.c:456
+msgid   "toggle display of all/unread articles"
+msgstr  ""
 
 #: src/lang.c:457
-#, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	""
+msgid   "toggle selection of thread"
+msgstr  "växla val av tråd"
 
 #: src/lang.c:458
-msgid	"Inverse video disabled"
-msgstr	""
+msgid   "cycle through threading options available"
+msgstr  ""
 
 #: src/lang.c:459
-msgid	"Inverse video enabled"
-msgstr	""
+msgid   "undo all selections (all articles)"
+msgstr  ""
+
+#: src/lang.c:460
+msgid   "untag all tagged threads"
+msgstr  ""
 
 #: src/lang.c:461
-#, c-format
-msgid	"Missing definition for %s\n"
-msgstr	""
+msgid   "add new scope"
+msgstr  ""
 
 #: src/lang.c:462
-#, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	""
+msgid   "delete scope"
+msgstr  ""
 
 #: src/lang.c:463
-#, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	""
+#, fuzzy
+msgid   "edit attributes file"
+msgstr  "Skriver attributfil..."
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	""
+#, fuzzy
+msgid   "choose first scope in list"
+msgstr  "välj första grupp i lista"
 
 #: src/lang.c:465
-#, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	""
+#, fuzzy
+msgid   "0 - 9\t  choose scope by number"
+msgstr  "0 - 9\t  välj grupp efter nummer"
 
 #: src/lang.c:466
-msgid	"Kill Lines: (</>num): "
-msgstr	""
+#, fuzzy
+msgid   "choose last scope in list"
+msgstr  "välj sista grupp i lista"
 
 #: src/lang.c:467
-msgid	"Kill Article Menu"
-msgstr	""
+msgid   "move scope"
+msgstr  ""
 
 #: src/lang.c:468
-#, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	""
+msgid   "rename scope"
+msgstr  ""
 
 #: src/lang.c:469
-msgid	"Kill pattern scope  : "
-msgstr	""
+#, fuzzy
+msgid   "select scope"
+msgstr  "välj"
 
 #: src/lang.c:470
-#, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	""
+msgid   "mark all articles in group as read"
+msgstr  ""
 
 #: src/lang.c:471
-msgid	"Kill text pattern   : "
-msgstr	""
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  ""
 
 #: src/lang.c:472
-msgid	"Kill time in days   : "
-msgstr	""
+msgid   "choose first group in list"
+msgstr  "välj första grupp i lista"
+
+#: src/lang.c:473
+msgid   "choose group by name"
+msgstr  "välj grupp efter namn"
 
 #: src/lang.c:474
-msgid	"Last"
-msgstr	"Sista"
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  välj grupp efter nummer"
 
 #: src/lang.c:475
-msgid	"-- Last response --"
-msgstr	"-- Sista svaret --"
+msgid   "choose range of groups to be affected by next command"
+msgstr  ""
 
 #: src/lang.c:476
-#, c-format
-msgid	"Lines %s  "
-msgstr	"Rader %s  "
+msgid   "choose last group in list"
+msgstr  "välj sista grupp i lista"
+
+#: src/lang.c:477
+msgid   "mark all articles in chosen group unread"
+msgstr  ""
 
 #: src/lang.c:478
-msgid	"Message-ID: line              "
-msgstr	""
+msgid   "move chosen group within list"
+msgstr  ""
 
 #: src/lang.c:479
-msgid	"Mail"
-msgstr	"Post"
+msgid   "choose next group with unread news"
+msgstr  ""
 
-#: src/lang.c:480
-msgid	"mailbox "
-msgstr	"postlåda "
+#: src/lang.c:480 src/lang.c:1351
+msgid   "quit"
+msgstr  "avsluta"
 
 #: src/lang.c:481
-#, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"Skicka artikel(ar) till [%.*s]> "
+msgid   "quit without saving configuration changes"
+msgstr  "avsluta utan att spara konfigurationsändringar"
 
 #: src/lang.c:482
-#, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"Skickar logg till %s\n"
+msgid   "read chosen group"
+msgstr  "läs vald grupp"
 
 #: src/lang.c:483
-msgid	"Mail bug report..."
-msgstr	""
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  ""
 
 #: src/lang.c:484
-#, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"Skicka FELRAPPORT till %s?"
+msgid   "search backwards for a group name"
+msgstr  ""
 
 #: src/lang.c:485
-msgid	"Mailed"
-msgstr	"Skickad"
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  ""
 
 #: src/lang.c:486
-#, c-format
-msgid	"Mailing to %s..."
-msgstr	"Skickar till %s..."
+msgid   "search forwards for a group name"
+msgstr  "sök framåt efter ett gruppnamn"
 
 #: src/lang.c:487
-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	""
+msgid   "subscribe to chosen group"
+msgstr  "prenumerera på vald grupp"
+
+#: src/lang.c:488
+msgid   "subscribe to groups that match pattern"
+msgstr  ""
+
+#: src/lang.c:489
+msgid   "reread active file to check for any new news"
+msgstr  ""
 
 #: src/lang.c:490
-#, c-format
-msgid	"%s marked as unread"
-msgstr	"%s markerad som oläst"
+msgid   "toggle display of group name only or group name plus description"
+msgstr  ""
 
 #: src/lang.c:491
-#, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	""
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  ""
 
 #: src/lang.c:492
-#, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"Markera alla artiklar som lästa%s?"
+msgid   "unsubscribe from chosen group"
+msgstr  "säg upp prenumeration av vald grupp"
 
 #: src/lang.c:493
-#, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	""
+msgid   "unsubscribe from groups that match pattern"
+msgstr  "säg upp prenumeration av grupper som matchar mönster"
 
 #: src/lang.c:494
-#, c-format
-msgid	"Mark group %s as read?"
-msgstr	"Markera grupp %s som läst?"
+msgid   "sort the list of groups"
+msgstr  "sortera listan av grupper"
 
 #: src/lang.c:495
-#, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"Markera tråd som läst%s?"
+msgid   "toggle display to show all/subscribed groups"
+msgstr  ""
 
 #: src/lang.c:496
-#, c-format
-msgid	"Mark %s=tagged articles/threads, %s=current thread, %s=quit: "
-msgstr	""
+msgid   "0 - 9\t  choose article by number"
+msgstr  "0 - 9\t  välj artikel efter nummer"
 
 #: src/lang.c:497
-#, c-format
-msgid	"Matching %s groups..."
-msgstr	"Matchar %s grupper..."
+msgid   "mark thread as read and return to group index page"
+msgstr  ""
 
-#: src/lang.c:498 src/lang.c:502
-#, 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:498
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  ""
 
 #: src/lang.c:499
-#, c-format
-msgid	"%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list "
-	"thread"
-msgstr	""
+msgid   "choose first article in list"
+msgstr  "välj första artikel i lista"
 
 #: src/lang.c:500
-#, 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"
+msgid   "choose last article in list"
+msgstr  "välj sista artikel i lista"
 
 #: src/lang.c:501
-#, c-format
-msgid	"%s=search forwards; %s=search backwards; %s=quit"
-msgstr	"%s=sök framåt; %s=sök bakåt; %s=avsluta"
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  ""
+
+#: src/lang.c:502
+#, fuzzy
+msgid   "mark article, range or tagged articles as unread"
+msgstr  "markera artikel som oläst"
 
 #: src/lang.c:503
-#, c-format
-msgid	"%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
-msgstr	""
+#, fuzzy
+msgid   "mark current thread as unread"
+msgstr  "markera tråd som oläst"
 
 #: src/lang.c:504
-#, c-format
-msgid	"<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
-msgstr	""
+msgid   "read chosen article"
+msgstr  "läs vald artikel"
 
 #: src/lang.c:505
-#, 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"
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "Visa egenskaper\n"
+        "---------------"
 
 #: src/lang.c:506
-#, c-format
-msgid	"%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out"
-msgstr	""
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "Diverse\n"
+        "-------"
 
 #: src/lang.c:507
-#, c-format
-msgid	"<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
-msgstr	""
+msgid   "Moving around\n"
+        "-------------"
+msgstr  "Flytta runt\n"
+        "-----------"
 
 #: src/lang.c:508
-#, 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"
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  "Operationer för grupp/tråd/artikel\n"
+        "----------------------------------"
 
 #: src/lang.c:509
-msgid	"--More--"
-msgstr	"--Mer--"
+#, fuzzy
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  "Visa egenskaper\n"
+        "---------------"
 
 #: src/lang.c:510
-#, c-format
-msgid	"Moving %s..."
-msgstr	"Flyttar %s..."
+#, fuzzy
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  "Visa egenskaper\n"
+        "---------------"
+
+#: src/lang.c:511
+#, fuzzy
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  "Visa egenskaper\n"
+        "---------------"
 
 #: src/lang.c:512
-msgid	", name: "
-msgstr	", namn: "
+#, fuzzy
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  "Visa egenskaper\n"
+        "---------------"
 
 #: src/lang.c:513
-#, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	"Gå till diskussionsgrupp [%s]> "
+#, fuzzy
+msgid   "URL operations\n"
+        "--------------"
+msgstr  "Visa egenskaper\n"
+        "---------------"
 
 #: src/lang.c:514
-msgid	"newsgroups"
-msgstr	"diskussionsgrupper"
+#, fuzzy
+msgid   "choose first URL in list"
+msgstr  "välj första grupp i lista"
 
 #: src/lang.c:515
-#, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	""
+#, fuzzy
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  välj grupp efter nummer"
 
 #: src/lang.c:516
-msgid	"newsgroup"
-msgstr	"diskussionsgrupp"
+#, fuzzy
+msgid   "choose last URL in list"
+msgstr  "välj sista grupp i lista"
 
 #: src/lang.c:517
-msgid	"Try and save newsrc file again?"
-msgstr	"Försöka att spara filen newsrc igen?"
+#, fuzzy
+msgid   "search for URLs forwards"
+msgstr  "Sök framåt [%s]> "
 
 #: src/lang.c:518
-msgid	"Warning: No newsgroups were written to your newsrc file. Save aborted."
-msgstr	""
+#, fuzzy
+msgid   "search for URLs backwards"
+msgstr  "Sök bakåt [%s]> "
 
 #: src/lang.c:519
-msgid	"newsrc file saved successfully.\n"
-msgstr	""
+msgid   "Open URL in browser"
+msgstr  ""
 
 #: src/lang.c:520
-msgid	"-- Next response --"
-msgstr	"-- Nästa svar --"
-
-#: src/lang.c:521
-#, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	""
+msgid   "toggle info message in last line (URL)"
+msgstr  ""
 
 #: src/lang.c:522
-msgid	"No  "
-msgstr	"Nej "
+msgid   "Group Level Commands"
+msgstr  "Gruppnivåkommandon"
 
 #: src/lang.c:523
-msgid	"*** No articles ***"
-msgstr	"*** Inga artiklar ***"
+msgid   "Kill filter added"
+msgstr  ""
 
 #: src/lang.c:524
-msgid	"No articles have been posted"
-msgstr	"Inga artiklar har postats"
+msgid   "Auto-selection filter added"
+msgstr  ""
 
 #: src/lang.c:525
-msgid	"*** No description ***"
-msgstr	"*** Ingen beskrivning ***"
+msgid   "All parts tagged"
+msgstr  ""
 
 #: src/lang.c:526
-msgid	"No filename"
-msgstr	"Inget filnamn"
+msgid   "Storing article for later posting"
+msgstr  ""
 
 #: src/lang.c:527
-msgid	"No group"
-msgstr	"Ingen grupp"
+msgid   "Please enter a valid character"
+msgstr  "Vänligen ange ett giltigt tecken"
 
 #: src/lang.c:528
-msgid	"*** No groups ***"
-msgstr	"*** Inga grupper ***"
+#, c-format
+msgid   "Missing part #%d"
+msgstr  ""
 
 #: src/lang.c:529
-msgid	"No more groups to read"
-msgstr	"Inga fler grupper att läsa"
+msgid   "*** No postponed articles ***"
+msgstr  "*** Inga uppskjutna artiklar ***"
 
 #: src/lang.c:530
-msgid	"No last message"
-msgstr	"Inget sista meddelande"
+msgid   "Not a multi-part message"
+msgstr  ""
 
 #: src/lang.c:531
-msgid	"No mail address"
-msgstr	"Ingen e-postadress"
+msgid   "You are not subscribed to this group"
+msgstr  "Du är inte prenumerant av denna grupp"
 
 #: src/lang.c:532
-msgid	"No articles marked for saving"
-msgstr	""
+msgid   "No previous expression"
+msgstr  "Inget tidigare uttryck"
 
 #: src/lang.c:533
-msgid	"No match"
-msgstr	"Ingen match"
-
-#: src/lang.c:534
-msgid	"No more groups"
-msgstr	"Inga fler grupper"
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  ""
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-msgid	"No newsgroups"
-msgstr	"Inga diskussionsgrupper"
+#, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  ""
 
 #: src/lang.c:536
-msgid	"No next unread article"
-msgstr	"Slut på olästa artiklar"
-
-#: src/lang.c:537
-msgid	"No previous group"
-msgstr	"Ingen föregående grupp"
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  ""
 
 #: src/lang.c:538
-msgid	"No previous unread article"
-msgstr	"Ingen föregående oläst artikel"
+#, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  ""
 
 #: src/lang.c:539
-msgid	"No responses"
-msgstr	"Inga svar"
+msgid   "TeX2Iso encoded article"
+msgstr  ""
 
 #: src/lang.c:540
-msgid	"No responses to list in current thread"
-msgstr	""
-
-#: src/lang.c:541
-msgid	"No search string"
-msgstr	"Ingen söksträng"
+msgid   "incomplete "
+msgstr  "ej komplett "
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-msgid	"No subject"
-msgstr	"Inget ämne"
-
-#: src/lang.c:544
-#, c-format
-msgid	"%s: Terminal must have clear to end-of-line (ce)\n"
-msgstr	""
-
-#: src/lang.c:545
 #, c-format
-msgid	"%s: Terminal must have clear to end-of-screen (cd)\n"
-msgstr	""
-
-#: src/lang.c:546
-#, c-format
-msgid	"%s: Terminal must have clearscreen (cl) capability\n"
-msgstr	""
-
-#: src/lang.c:547
-#, c-format
-msgid	"%s: Terminal must have cursor motion (cm)\n"
-msgstr	""
-
-#: src/lang.c:548
-#, c-format
-msgid	"%s: TERM variable must be set to use screen capabilities\n"
-msgstr	""
-
-#: src/lang.c:550
-#, c-format
-msgid	"No viewer found for %s/%s\n"
-msgstr	""
-
-#: src/lang.c:551
-msgid	"Newsgroup does not exist on this server"
-msgstr	""
-
-#: src/lang.c:552
-#, c-format
-msgid	"Group %s not found in active file"
-msgstr	""
-
-#: src/lang.c:553
-msgid	"c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: "
-msgstr	""
-
-#: src/lang.c:554
-msgid	"use a)lternative name, use d)efault .newsrc, q)uit tin: "
-msgstr	""
-
-#: src/lang.c:555
-#, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	""
-
-#: src/lang.c:562
-msgid	"Only"
-msgstr	"Endast"
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  ""
+
+#: src/lang.c:558
+#, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  ""
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  ""
 
 #: src/lang.c:563
 #, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"Flagga inte aktiverad. Bygg om med %s."
+msgid   "Invalid  Sender:-header %s"
+msgstr  ""
 
-#: src/lang.c:564
-msgid	"Options Menu"
-msgstr	"Alternativmenyn"
-
-#: src/lang.c:567
-#, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	""
+#: src/lang.c:565
+msgid   "Inverse video disabled"
+msgstr  ""
+
+#: src/lang.c:566
+msgid   "Inverse video enabled"
+msgstr  ""
 
 #: src/lang.c:568
 #, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	""
+msgid   "Missing definition for %s\n"
+msgstr  ""
 
 #: src/lang.c:569
 #, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	""
+msgid   "Invalid key definition '%s'\n"
+msgstr  ""
 
 #: src/lang.c:570
-msgid	"Post a followup..."
-msgstr	"Posta en uppföljning..."
+#, c-format
+msgid   "Invalid keyname '%s'\n"
+msgstr  ""
+
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  ""
 
-#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
 #: src/lang.c:572
-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	""
+#, c-format
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  ""
+
+#: src/lang.c:573
+msgid   "Kill Lines: (</>num): "
+msgstr  ""
+
+#: src/lang.c:574
+msgid   "Kill Article Menu"
+msgstr  ""
 
 #: src/lang.c:575
-msgid	"Posted articles history"
-msgstr	""
+#, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  ""
 
 #: src/lang.c:576
-#, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"Posta till diskussionsgrupp(er) [%s]> "
+msgid   "Kill pattern scope  : "
+msgstr  ""
 
 #: src/lang.c:577
-msgid	"-- post processing started --"
-msgstr	""
+#, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:578
-msgid	"-- post processing completed --"
-msgstr	""
+msgid   "Kill text pattern   : "
+msgstr  ""
 
 #: src/lang.c:579
-#, c-format
-msgid	"Post subject [%s]> "
-msgstr	""
-
-#: src/lang.c:580
-msgid	"# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
-msgstr	""
+msgid   "Kill time in days   : "
+msgstr  ""
 
 #: src/lang.c:581
-msgid	"Posting article..."
-msgstr	"Postar artikel..."
+msgid   "Last"
+msgstr  "Sista"
 
 #: src/lang.c:582
-#, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	""
+msgid   "-- Last response --"
+msgstr  "-- Sista svaret --"
 
 #: src/lang.c:583
 #, c-format
-msgid	"Hot %s"
-msgstr	"Hetta %s"
-
-#: src/lang.c:584
-#, c-format
-msgid	"Tagged %s"
-msgstr	"Märkt %s"
+msgid   "Lines %s  "
+msgstr  "Rader %s  "
 
 #: src/lang.c:585
-#, c-format
-msgid	"Untagged %s"
-msgstr	""
+msgid   "Mail"
+msgstr  "Post"
 
 #: src/lang.c:586
-msgid	"Processing mail messages marked for deletion."
-msgstr	""
+msgid   "mailbox "
+msgstr  "postlåda "
 
 #: src/lang.c:587
-msgid	"Processing saved articles marked for deletion."
-msgstr	""
+#, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "Skicka artikel(ar) till [%.*s]> "
 
 #: src/lang.c:588
 #, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	""
+msgid   "Mailing log to %s\n"
+msgstr  "Skickar logg till %s\n"
 
 #: src/lang.c:589
-msgid	"Article unchanged, abort mailing?"
-msgstr	""
+msgid   "Mail bug report..."
+msgstr  ""
 
 #: src/lang.c:590
 #, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	""
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "Skicka FELRAPPORT till %s?"
+
+#: src/lang.c:591
+msgid   "Mailed"
+msgstr  "Skickad"
 
 #: src/lang.c:592
-msgid	"Add quick kill filter?"
-msgstr	""
+#, c-format
+msgid   "Mailing to %s..."
+msgstr  "Skickar till %s..."
 
 #: src/lang.c:593
-msgid	"Add quick selection filter?"
-msgstr	""
-
-#: src/lang.c:594
-msgid	"Do you really want to quit?"
-msgstr	"Vill du verkligen avsluta?"
-
-#: src/lang.c:595
-#, c-format
-msgid	"%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
-msgstr	""
+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:596
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	""
+#, fuzzy, c-format
+msgid   "%s marked as read"
+msgstr  "%s markerad som oläst"
 
 #: src/lang.c:597
 #, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	""
+msgid   "%s marked as unread"
+msgstr  "%s markerad som oläst"
 
 #: src/lang.c:598
-#, c-format
-msgid	"%s=quit %s=edit %s=save kill description: "
-msgstr	""
+#, fuzzy, c-format
+msgid   "Marked %d of %d %s as read"
+msgstr  "Markera grupp %s som läst?"
 
 #: src/lang.c:599
+#, fuzzy, c-format
+msgid   "Marked %d of %d %s as unread"
+msgstr  "Markera grupp %s som läst?"
+
+#: src/lang.c:600 src/lang.c:1321
+msgid   "Mark"
+msgstr  "Markera"
+
+#: src/lang.c:601
 #, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	""
+msgid   "Mark all articles as read%s?"
+msgstr  "Markera alla artiklar som lästa%s?"
 
-#: src/lang.c:600
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"Vill du verkligen avsluta utan att spara din konfiguration?"
+#: src/lang.c:602
+#, fuzzy, c-format
+msgid   "Mark article as read%s?"
+msgstr  "Markera alla artiklar som lästa%s?"
 
 #: src/lang.c:603
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	""
+#, c-format
+msgid   "Mark group %s as read?"
+msgstr  "Markera grupp %s som läst?"
 
 #: src/lang.c:604
-msgid	"Do you want to abort this operation?"
-msgstr	"Vill du avbryta denna operation?"
+#, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "Markera tråd som läst%s?"
 
 #: src/lang.c:605
-msgid	"Do you want to exit tin immediately?"
-msgstr	"Vill du avsluta tin omedelbart?"
+#, c-format
+msgid   "Matching %s groups..."
+msgstr  "Matchar %s grupper..."
 
-#: src/lang.c:606
-msgid	"Read response> "
-msgstr	"Läsa svar> "
-
-#: src/lang.c:607
-msgid	"Reading ('q' to quit)..."
-msgstr	"Läser (\"q\" för att avsluta)..."
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
+#, fuzzy, c-format
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  "<n>=sätt nuvarande till n; %s=nästa olästa; %s=sökmönster; %s=döda/välj"
 
 #: src/lang.c:608
-#, c-format
-msgid	"Reading %sarticles..."
-msgstr	"Läser %sarticles..."
-
-#: src/lang.c:609
-#, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"Läser %sattributfil...\n"
+#, fuzzy, c-format
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=rad ner; %s=rad upp; %s=hjälp; %s=flytta; %s=avsluta; %s=växla alla/olästa"
 
 #: src/lang.c:610
-#, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"Läser %skonfigurationsfil...\n"
-
-#: src/lang.c:611
-msgid	"Reading filter file...\n"
-msgstr	"Läser filterfil...\n"
+#, fuzzy, c-format
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=rad ner; %s=rad upp; %s=hjälp; %s=flytta; %s=avsluta; %s=växla alla/olästa"
 
 #: src/lang.c:612
-#, c-format
-msgid	"Reading %s groups..."
-msgstr	"Läser %s grupper..."
+#, fuzzy, c-format
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=sök framåt; %s=sök bakåt; %s=avsluta"
 
-#: src/lang.c:613
-msgid	"Reading input history file...\n"
-msgstr	""
+#: src/lang.c:613 src/lang.c:617
+#, 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:614
-msgid	"Reading keymap file...\n"
-msgstr	""
+#, c-format
+msgid   "%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list "
+        "thread"
+msgstr  ""
 
 #: src/lang.c:615
-msgid	"Reading groups from active file... "
-msgstr	"Läser grupper från aktiv fil..."
+#, 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:616
-msgid	"Reading groups from newsrc file... "
-msgstr	""
-
-#: src/lang.c:617
-msgid	"Reading newsgroups file... "
-msgstr	""
+#, 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:618
-msgid	"Reading newsrc file..."
-msgstr	""
+#, c-format
+msgid   "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
+msgstr  ""
+
+#: src/lang.c:619
+#, c-format
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  ""
 
-#: src/lang.c:620
+#: src/lang.c:621
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	"(%d:%02d återstår)"
+msgid   "<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup"
+msgstr  ""
 
 #: src/lang.c:622
 #, c-format
-msgid	"Bogus group %s removed."
-msgstr	""
+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:623
 #, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"Fel: byt namn på %s till %s"
+msgid   "%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out"
+msgstr  ""
 
 #: src/lang.c:624
-msgid	"Reply to author..."
-msgstr	""
+#, c-format
+msgid   "<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
+msgstr  ""
 
 #: src/lang.c:625
-msgid	"Repost"
-msgstr	""
-
-#: src/lang.c:626
-msgid	"Reposting article..."
-msgstr	""
+#, 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:627
-#, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	""
+#, fuzzy, c-format
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=sök framåt; %s=sök bakåt; %s=avsluta"
 
 #: src/lang.c:628
-msgid	"Reset newsrc?"
-msgstr	"Återställ newsrc?"
+msgid   "--More--"
+msgstr  "--Mer--"
 
 #: src/lang.c:629
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	""
+#, c-format
+msgid   "Moving %s..."
+msgstr  "Flyttar %s..."
 
 #: src/lang.c:630
-#, c-format
-msgid	"Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
-msgstr	""
+msgid   "Message-ID: & last Reference  "
+msgstr  ""
 
 #: src/lang.c:631
-#, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	""
+msgid   "Message-ID: line              "
+msgstr  ""
 
 #: src/lang.c:632
-msgid	"Press <RETURN> to continue..."
-msgstr	"Tryck <RETURN> för att fortsätta..."
+msgid   "Message-ID: & References: line"
+msgstr  ""
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	""
+msgid   ", name: "
+msgstr  ", namn: "
 
 #: src/lang.c:635
-msgid	"Select Lines: (</>num): "
-msgstr	"Välj rader: (</>num): "
+#, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "Gå till diskussionsgrupp [%s]> "
 
 #: src/lang.c:636
-msgid	"Auto-select Article Menu"
-msgstr	""
+msgid   "newsgroups"
+msgstr  "diskussionsgrupper"
 
 #: src/lang.c:637
 #, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	""
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  ""
 
 #: src/lang.c:638
-msgid	"Select pattern scope: "
-msgstr	""
+msgid   "newsgroup"
+msgstr  "diskussionsgrupp"
 
 #: src/lang.c:639
-#, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	""
+msgid   "Try and save newsrc file again?"
+msgstr  "Försöka att spara filen newsrc igen?"
 
 #: src/lang.c:640
-msgid	"Select text pattern : "
-msgstr	""
+msgid   "Warning: No newsgroups were written to your newsrc file. Save aborted."
+msgstr  ""
 
 #: src/lang.c:641
-msgid	"Select time in days   : "
-msgstr	"Välj tid i dagar   : "
+msgid   "newsrc file saved successfully.\n"
+msgstr  ""
 
 #: src/lang.c:642
-#, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	""
+msgid   "-- Next response --"
+msgstr  "-- Nästa svar --"
+
+#: src/lang.c:643
+msgid   "No  "
+msgstr  "Nej "
+
+#: src/lang.c:644
+msgid   "*** No articles ***"
+msgstr  "*** Inga artiklar ***"
+
+#: src/lang.c:645
+msgid   "No articles have been posted"
+msgstr  "Inga artiklar har postats"
+
+#: src/lang.c:646
+#, fuzzy
+msgid   "*** No attachments ***"
+msgstr  "*** Inga artiklar ***"
+
+#: src/lang.c:647
+msgid   "*** No description ***"
+msgstr  "*** Ingen beskrivning ***"
 
 #: src/lang.c:648
-msgid	"Showing unread groups only"
-msgstr	"Visar endast olästa grupper"
+msgid   "No filename"
+msgstr  "Inget filnamn"
 
 #: src/lang.c:649
-msgid	"Subject: line (ignore case)   "
-msgstr	""
+msgid   "No group"
+msgstr  "Ingen grupp"
 
 #: src/lang.c:650
-msgid	"Subject: line (case sensitive)"
-msgstr	""
+msgid   "*** No groups ***"
+msgstr  "*** Inga grupper ***"
 
 #: src/lang.c:651
-msgid	"Save"
-msgstr	"Spara"
+msgid   "No more groups to read"
+msgstr  "Inga fler grupper att läsa"
 
 #: src/lang.c:652
-#, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"Spara \"%s\" (%s/%s)?"
+msgid   "No last message"
+msgstr  "Inget sista meddelande"
 
 #: src/lang.c:653
-msgid	"Save configuration before continuing?"
-msgstr	"Spara konfiguration före du fortsätter?"
+msgid   "No mail address"
+msgstr  "Ingen e-postadress"
 
 #: src/lang.c:654
-msgid	"Save filename> "
-msgstr	"Spara filnamn> "
+msgid   "No articles marked for saving"
+msgstr  ""
 
 #: src/lang.c:655
-msgid	"Saved"
-msgstr	"Sparad"
+msgid   "No match"
+msgstr  "Ingen match"
 
 #: src/lang.c:656
-#, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	""
+msgid   "No more groups"
+msgstr  "Inga fler grupper"
 
 #: src/lang.c:657
-#, c-format
-msgid	"Saved %s...\n"
-msgstr	"Sparade %s...\n"
+msgid   "No newsgroups"
+msgstr  "Inga diskussionsgrupper"
 
 #: src/lang.c:658
-msgid	"Nothing was saved"
-msgstr	"Ingenting sparades"
+msgid   "No next unread article"
+msgstr  "Slut på olästa artiklar"
 
 #: src/lang.c:659
-#, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"\n"
-	"%s %d %s från %d %s\n"
+msgid   "No previous group"
+msgstr  "Ingen föregående grupp"
 
 #: src/lang.c:660
-#, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"-- %s sparad till %s%s --"
+msgid   "No previous search, nothing to repeat"
+msgstr  ""
 
 #: src/lang.c:661
-#, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"-- %s sparad till %s - %s --"
+msgid   "No previous unread article"
+msgstr  "Ingen föregående oläst artikel"
 
 #: src/lang.c:662
-msgid	"Saving..."
-msgstr	"Sparar..."
+msgid   "No responses"
+msgstr  "Inga svar"
 
 #: src/lang.c:663
-#, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	""
+msgid   "No responses to list in current thread"
+msgstr  ""
+
+#: src/lang.c:664
+#, fuzzy
+msgid   "*** No scopes ***"
+msgstr  "*** Inga grupper ***"
 
 #: src/lang.c:665
-#, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s: skärm är för liten\n"
+msgid   "No search string"
+msgstr  "Ingen söksträng"
 
-#: src/lang.c:667
-#, c-format
-msgid	"screen is too small, %s is exiting\n"
-msgstr	"skärm är för liten, %s avslutas\n"
+#: src/lang.c:666
+msgid   "No subject"
+msgstr  "Inget ämne"
 
 #: src/lang.c:668
 #, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"Sök bakåt [%s]> "
+msgid   "%s: Terminal must have clear to end-of-line (ce)\n"
+msgstr  ""
 
 #: src/lang.c:669
 #, c-format
-msgid	"Search body [%s]> "
-msgstr	""
+msgid   "%s: Terminal must have clear to end-of-screen (cd)\n"
+msgstr  ""
 
 #: src/lang.c:670
 #, c-format
-msgid	"Search forwards [%s]> "
-msgstr	"Sök framåt [%s]> "
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  ""
 
 #: src/lang.c:671
-msgid	"Searching..."
-msgstr	"Söker..."
+#, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  ""
 
 #: src/lang.c:672
 #, c-format
-msgid	"Searching article %d of %d ('q' to abort)..."
-msgstr	""
-
-#: src/lang.c:673
-msgid	"Select article> "
-msgstr	"Välj artikel> "
+msgid   "%s: TERM variable must be set to use screen capabilities\n"
+msgstr  ""
 
 #: src/lang.c:674
-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."
+#, c-format
+msgid   "No viewer found for %s/%s\n"
+msgstr  ""
 
 #: src/lang.c:675
-msgid	"Select group> "
-msgstr	"Välj grupp> "
+msgid   "Newsgroup does not exist on this server"
+msgstr  ""
 
 #: src/lang.c:676
 #, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	""
+msgid   "Group %s not found in active file"
+msgstr  ""
 
 #: src/lang.c:677
-msgid	"Select thread > "
-msgstr	"Välj tråd > "
+msgid   "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  ""
 
 #: src/lang.c:678
-#, c-format
-msgid	"%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
-msgstr	""
+msgid   "use a)lternative name, use d)efault .newsrc, q)uit tin: "
+msgstr  ""
 
 #: src/lang.c:679
-msgid	"servers active-file"
-msgstr	""
+#, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  ""
 
-#: src/lang.c:680
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	""
+#: src/lang.c:686
+msgid   "Only"
+msgstr  "Endast"
 
-#: src/lang.c:681
-msgid	"<SPACE>"
-msgstr	"<BLANKSTEG>"
+#: src/lang.c:687
+#, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "Flagga inte aktiverad. Bygg om med %s."
 
-#: src/lang.c:682
+#: src/lang.c:688
+msgid   "Options Menu"
+msgstr  "Alternativmenyn"
+
+#: src/lang.c:689
+#, fuzzy
+msgid   "Options Menu Commands"
+msgstr  "Alternativmenyn"
+
+#: src/lang.c:692
 #, c-format
-msgid	"Starting: (%s)"
-msgstr	"Startar: (%s)"
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  ""
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"Lista tråd (%d av %d)"
+msgid   "Error in regex: pcre internal error %d"
+msgstr  ""
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, c-format
-msgid	"Thread (%.*s)"
-msgstr	"Tråd (%.*s)"
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  ""
 
-#: src/lang.c:685
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	""
+#: src/lang.c:695
+msgid   "Post a followup..."
+msgstr  "Posta en uppföljning..."
 
-#: src/lang.c:686
-#, c-format
-msgid	"subscribed to %d groups"
-msgstr	""
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+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:687
+#: src/lang.c:700
+msgid   "Posted articles history"
+msgstr  ""
+
+#: src/lang.c:701
 #, c-format
-msgid	"Subscribed to %s"
-msgstr	""
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "Posta till diskussionsgrupp(er) [%s]> "
 
-#: src/lang.c:688
-msgid	"Subscribing... "
-msgstr	""
+#: src/lang.c:702
+msgid   "-- post processing started --"
+msgstr  ""
 
-#: src/lang.c:689
-#, c-format
-msgid	"Repost or supersede article(s) [%%s]? (%s/%s/%s): "
-msgstr	""
+#: src/lang.c:703
+msgid   "-- post processing completed --"
+msgstr  ""
 
-#: src/lang.c:690
+#: src/lang.c:704
 #, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	""
+msgid   "Post subject [%s]> "
+msgstr  ""
 
-#: src/lang.c:691
-msgid	"Superseding article ..."
-msgstr	""
+#: src/lang.c:705
+msgid   "# Summary of mailed/posted messages viewable by 'W' command from within tin.\n"
+msgstr  ""
 
-#: src/lang.c:692
-#, c-format
-msgid	"\n"
-	"Stopped. Type 'fg' to restart %s\n"
-msgstr	""
+#: src/lang.c:706
+msgid   "Posting article..."
+msgstr  "Postar artikel..."
 
-#: src/lang.c:694
+#: src/lang.c:707
 #, c-format
-msgid	"%d days"
-msgstr	"%d dagar"
-
-#: src/lang.c:695
-msgid	"<TAB>"
-msgstr	"<TAB>"
+msgid   "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
+msgstr  ""
 
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	"TeX "
+#: src/lang.c:708
+#, c-format
+msgid   "Hot %s"
+msgstr  "Hetta %s"
 
-#: src/lang.c:697
-msgid	"# Default action/prompt strings\n"
-msgstr	""
+#: src/lang.c:709
+#, c-format
+msgid   "Tagged %s"
+msgstr  "Märkt %s"
 
-#: src/lang.c:698
-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"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	""
+#: src/lang.c:710
+#, c-format
+msgid   "Untagged %s"
+msgstr  ""
 
 #: src/lang.c:711
-msgid	"# If ON use print current subject or newsgroup description in the last line\n"
-msgstr	""
+msgid   "Processing mail messages marked for deletion."
+msgstr  ""
 
 #: src/lang.c:712
-msgid	"# Host & time info used for detecting new groups (don't touch)\n"
-msgstr	""
+msgid   "Processing saved articles marked for deletion."
+msgstr  ""
 
 #: src/lang.c:713
-msgid	"There is no news\n"
-msgstr	""
+#, c-format
+msgid   "Accept Followup-To? %s=post, %s=ignore, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:714
-msgid	"Thread"
-msgstr	"Tråd"
+msgid   "Article unchanged, abort mailing?"
+msgstr  ""
 
 #: src/lang.c:715
-msgid	"Thread Level Commands"
-msgstr	""
-
-#: src/lang.c:716
-msgid	"Thread deselected"
-msgstr	""
+#, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  ""
 
 #: src/lang.c:717
-msgid	"Thread selected"
-msgstr	""
+msgid   "Add quick kill filter?"
+msgstr  ""
+
+#: src/lang.c:718
+msgid   "Add quick selection filter?"
+msgstr  ""
 
 #: src/lang.c:719
-msgid	"threads"
-msgstr	"trådar"
+msgid   "Do you really want to quit?"
+msgstr  "Vill du verkligen avsluta?"
+
+#: src/lang.c:720
+#, c-format
+msgid   "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
+msgstr  ""
 
 #: src/lang.c:721
-msgid	"Thread range"
-msgstr	""
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  ""
 
 #: src/lang.c:722
-msgid	"thread"
-msgstr	"tråd"
+#, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  ""
 
 #: src/lang.c:723
 #, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"Tråd %4s av %4s"
+msgid   "%s=quit %s=edit %s=save kill description: "
+msgstr  ""
 
 #: src/lang.c:724
-msgid	"Threading articles..."
-msgstr	"Trådar artiklar..."
-
-#: src/lang.c:725
 #, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	""
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  ""
 
-#: src/lang.c:726
-msgid	"Toggled rot13 encoding"
-msgstr	""
-
-#: src/lang.c:727
-#, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	""
+#: src/lang.c:725
+msgid   "Do you really want to quit without saving your configuration?"
+msgstr  "Vill du verkligen avsluta utan att spara din konfiguration?"
 
 #: src/lang.c:728
-#, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	""
-
-#: src/lang.c:729
-#, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	""
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  ""
 
 #: src/lang.c:730
-#, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%d Försöker att låsa %s"
+msgid   "Do you want to abort this operation?"
+msgstr  "Vill du avbryta denna operation?"
 
 #: src/lang.c:731
-msgid	"           h=help\n"
-msgstr	"           h=hjälp\n"
+msgid   "Do you want to exit tin immediately?"
+msgstr  "Vill du avsluta tin omedelbart?"
 
 #: src/lang.c:733
-msgid	"Unlimited"
-msgstr	"Obegränsad"
+msgid   "Reading ('q' to quit)..."
+msgstr  "Läser (\"q\" för att avsluta)..."
 
 #: src/lang.c:734
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	""
+#, c-format
+msgid   "Reading %sarticles..."
+msgstr  "Läser %sarticles..."
 
 #: src/lang.c:735
 #, c-format
-msgid	"Error decoding %s : %s"
-msgstr	"Fel vid avkodning av %s : %s"
+msgid   "Reading %sattributes file...\n"
+msgstr  "Läser %sattributfil...\n"
 
 #: src/lang.c:736
-msgid	"No end."
-msgstr	"Inget slut."
+#, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  "Läser %skonfigurationsfil...\n"
 
 #: src/lang.c:737
-#, c-format
-msgid	"%s successfully decoded."
-msgstr	"%s lyckades avkodas."
+msgid   "Reading filter file...\n"
+msgstr  "Läser filterfil...\n"
 
 #: src/lang.c:738
 #, c-format
-msgid	"%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
-	"\n"
-msgstr	""
+msgid   "Reading %s groups..."
+msgstr  "Läser %s grupper..."
 
 #: src/lang.c:739
-msgid	"unread "
-msgstr	"oläst "
+msgid   "Reading input history file...\n"
+msgstr  ""
 
 #: src/lang.c:740
-#, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	""
+msgid   "Reading keymap file...\n"
+msgstr  ""
 
 #: src/lang.c:741
-#, c-format
-msgid	"Unsubscribed from %s"
-msgstr	""
+msgid   "Reading groups from active file... "
+msgstr  "Läser grupper från aktiv fil..."
 
 #: src/lang.c:742
-msgid	"Unsubscribing... "
-msgstr	""
+msgid   "Reading groups from newsrc file... "
+msgstr  ""
 
 #: src/lang.c:743
-msgid	"Unthreading articles..."
-msgstr	""
+msgid   "Reading newsgroups file... "
+msgstr  ""
 
 #: src/lang.c:744
-msgid	"Updated"
-msgstr	"Uppdaterad"
+msgid   "Reading newsrc file..."
+msgstr  ""
 
 #: src/lang.c:745
-msgid	"Updating"
-msgstr	"Uppdaterar"
-
-#: src/lang.c:746
-#, c-format
-msgid	"Opening %s\n"
-msgstr	"Öppnar %s\n"
+msgid   "References: line              "
+msgstr  ""
 
 #: src/lang.c:747
-msgid	"No more URL's in this article"
-msgstr	"Inga fler URL:er i denna artikel"
-
-#: src/lang.c:748
-msgid	"Use MIME display program for this message?"
-msgstr	""
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  "(%d:%02d återstår)"
 
 #: src/lang.c:749
-msgid	"  -c       mark all news as read in subscribed newsgroups (batch mode)"
-msgstr	""
+#, c-format
+msgid   "Bogus group %s removed."
+msgstr  ""
 
 #: src/lang.c:750
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	""
+msgid   "Removed from the previous rule: "
+msgstr  ""
 
 #: src/lang.c:751
-msgid	"  -q       don't check for new newsgroups"
-msgstr	""
+#, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "Fel: byt namn på %s till %s"
 
 #: src/lang.c:752
-msgid	"  -X       don't save any files on quit"
-msgstr	""
+msgid   "Reply to author..."
+msgstr  ""
 
 #: src/lang.c:753
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	""
+msgid   "Repost"
+msgstr  ""
 
 #: src/lang.c:754
-msgid	"  -G limit get only limit articles/group"
-msgstr	""
+msgid   "Reposting article..."
+msgstr  ""
 
 #: src/lang.c:755
 #, c-format
-msgid	"  -H       help information about %s"
-msgstr	""
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  ""
 
 #: src/lang.c:756
-msgid	"  -h       this help message"
-msgstr	"  -h       detta hjälpmeddelande"
+msgid   "Reset newsrc?"
+msgstr  "Återställ newsrc?"
 
 #: src/lang.c:757
-#, c-format
-msgid	"  -I dir   news index file directory [default=%s]"
-msgstr	""
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  ""
 
 #: src/lang.c:758
-msgid	"  -u       update index files (batch mode)"
-msgstr	""
-
-#: src/lang.c:759
 #, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	""
+msgid   "Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
+msgstr  ""
 
 #: src/lang.c:760
-#, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	"\n"
-	"Skicka felrapporter/kommentarer till %s\n"
-	"Rapportera synpunkter på översättningen till <tp-sv@listor.tp-sv.se>."
-
-#: src/lang.c:761
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	""
+msgid   "Press <RETURN> to continue..."
+msgstr  "Tryck <RETURN> för att fortsätta..."
 
 #: src/lang.c:762
-msgid	"  -M user  mail new news to specified user (batch mode)"
-msgstr	""
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:763
-#, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	""
+msgid   "Select Lines: (</>num): "
+msgstr  "Välj rader: (</>num): "
 
 #: src/lang.c:764
-msgid	"  -x       no posting mode"
-msgstr	""
+msgid   "Auto-select Article Menu"
+msgstr  ""
 
 #: src/lang.c:765
-msgid	"  -w       post an article and exit"
-msgstr	"  -w       posta en artikel och avsluta"
+#, c-format
+msgid   "Select Msg-Id  [%s] (f/l/o/n): "
+msgstr  ""
 
 #: src/lang.c:766
-msgid	"  -o       post all postponed articles and exit"
-msgstr	""
+msgid   "Select pattern scope: "
+msgstr  ""
 
 #: src/lang.c:767
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	""
+#, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:768
-msgid	"  -R       read news saved by -S option"
-msgstr	""
+msgid   "Select text pattern : "
+msgstr  ""
 
 #: src/lang.c:769
-#, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	""
+msgid   "Select time in days   : "
+msgstr  "Välj tid i dagar   : "
 
 #: src/lang.c:770
-msgid	"  -S       save new news for later reading (batch mode)"
-msgstr	""
-
-#: src/lang.c:771
-msgid	"  -z       start if any unread news"
-msgstr	"  -z       starta om det finns olästa diskussioner"
-
-#: src/lang.c:772
-#, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"En applikation för att läsa diskussionsgrupper.\n"
-	"\n"
-	"Användning: %s [flaggor] [diskussionsgrupp[,...]]"
-
-#: src/lang.c:773
-msgid	"  -v       verbose output for batch mode options"
-msgstr	""
-
-#: src/lang.c:774
-msgid	"  -V       print version & date information"
-msgstr	"  -V       skriv ut version & datuminformation"
-
-#: src/lang.c:775
 #, c-format
-msgid	"%s only useful without batch mode operations\n"
-msgstr	""
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:776
-#, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	""
+msgid   "Showing unread groups only"
+msgstr  "Visar endast olästa grupper"
+
+#: src/lang.c:777
+msgid   "Subject: line (ignore case)   "
+msgstr  ""
 
 #: src/lang.c:778
-#, c-format
-msgid	"\n"
-	"%s%d out of range (0 - %d). Reset to 0"
-msgstr	""
+msgid   "Subject: line (case sensitive)"
+msgstr  ""
 
 #: src/lang.c:779
+msgid   "Save"
+msgstr  "Spara"
+
+#: src/lang.c:780
 #, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"Visa \"%s\" (%s/%s)?"
+msgid   "Save '%s' (%s/%s)?"
+msgstr  "Spara \"%s\" (%s/%s)?"
 
 #: src/lang.c:781
-#, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	""
+msgid   "Save configuration before continuing?"
+msgstr  "Spara konfiguration före du fortsätter?"
 
 #: src/lang.c:782
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	""
+msgid   "Save filename> "
+msgstr  "Spara filnamn> "
 
 #: src/lang.c:783
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	""
+msgid   "Saved"
+msgstr  "Sparad"
 
 #: src/lang.c:784
-msgid	"\n"
-	"Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
-msgstr	""
+#, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  ""
+
+#: src/lang.c:785
+#, c-format
+msgid   "Saved %s...\n"
+msgstr  "Sparade %s...\n"
 
 #: src/lang.c:786
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	""
+msgid   "Nothing was saved"
+msgstr  "Ingenting sparades"
+
+#: src/lang.c:787
+#, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s från %d %s\n"
+
+#: src/lang.c:788
+#, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s sparad till %s%s --"
 
 #: src/lang.c:789
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	""
+#, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s sparad till %s - %s --"
+
+#: src/lang.c:790
+msgid   "Saving..."
+msgstr  "Sparar..."
+
+#: src/lang.c:791
+#, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  ""
 
 #: src/lang.c:793
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	""
+#, c-format
+msgid   "%s: screen is too small\n"
+msgstr  "%s: skärm är för liten\n"
 
-#: src/lang.c:798
+#: src/lang.c:795
 #, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	""
+msgid   "screen is too small, %s is exiting\n"
+msgstr  "skärm är för liten, %s avslutas\n"
+
+#: src/lang.c:796
+msgid   "Delete scope?"
+msgstr  ""
+
+#: src/lang.c:797
+#, fuzzy
+msgid   "Enter scope> "
+msgstr  "Ange mönster [%s]> "
+
+#: src/lang.c:798
+msgid   "Select new position> "
+msgstr  ""
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  ""
 
 #: src/lang.c:800
-#, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	""
+msgid   "Global scope, operation not allowed"
+msgstr  ""
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  ""
+
+#: src/lang.c:802
+#, fuzzy
+msgid   "Select scope> "
+msgstr  "Välj grupp> "
 
 #: src/lang.c:803
+#, fuzzy
+msgid   "Scopes Menu"
+msgstr  "Alternativmenyn"
+
+#: src/lang.c:804
+#, fuzzy
+msgid   "Scopes Menu Commands"
+msgstr  "Toppnivåkommandon"
+
+#: src/lang.c:805
 #, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	""
+msgid   "Search backwards [%s]> "
+msgstr  "Sök bakåt [%s]> "
+
+#: src/lang.c:806
+#, c-format
+msgid   "Search body [%s]> "
+msgstr  ""
 
 #: src/lang.c:807
 #, c-format
-msgid	"\n"
-	"Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
-msgstr	""
+msgid   "Search forwards [%s]> "
+msgstr  "Sök framåt [%s]> "
 
 #: src/lang.c:808
+msgid   "Searching..."
+msgstr  "Söker..."
+
+#: src/lang.c:809
+#, c-format
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  ""
+
+#: src/lang.c:810
+msgid   "Select article> "
+msgstr  "Välj artikel> "
+
+#: src/lang.c:811
+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:812
+msgid   "Select group> "
+msgstr  "Välj grupp> "
+
+#: src/lang.c:813
 #, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	""
+msgid   "Enter selection pattern [%s]> "
+msgstr  ""
+
+#: src/lang.c:814
+msgid   "Select thread > "
+msgstr  "Välj tråd > "
+
+#: src/lang.c:815
+#, c-format
+msgid   "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
+msgstr  ""
+
+#: src/lang.c:816
+msgid   "servers active-file"
+msgstr  ""
+
+#: src/lang.c:817
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  ""
+
+#: src/lang.c:818
+msgid   "<SPACE>"
+msgstr  "<BLANKSTEG>"
+
+#: src/lang.c:819
+#, c-format
+msgid   "Starting: (%s)"
+msgstr  "Startar: (%s)"
+
+#: src/lang.c:820
+#, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  "Lista tråd (%d av %d)"
+
+#: src/lang.c:821
+#, c-format
+msgid   "Thread (%.*s)"
+msgstr  "Tråd (%.*s)"
+
+#: src/lang.c:822
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  ""
+
+#: src/lang.c:823
+#, c-format
+msgid   "subscribed to %d groups"
+msgstr  ""
+
+#: src/lang.c:824
+#, c-format
+msgid   "Subscribed to %s"
+msgstr  ""
+
+#: src/lang.c:825
+msgid   "Subscribing... "
+msgstr  ""
+
+#: src/lang.c:826
+#, c-format
+msgid   "Repost or supersede article(s) [%%s]? (%s/%s/%s): "
+msgstr  ""
+
+#: src/lang.c:827
+#, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  ""
+
+#: src/lang.c:828
+msgid   "Superseding article ..."
+msgstr  ""
+
+#: src/lang.c:829
+#, c-format
+msgid   "\n"
+        "Stopped. Type 'fg' to restart %s\n"
+msgstr  ""
+
+#: src/lang.c:831
+#, c-format
+msgid   "%d days"
+msgstr  "%d dagar"
+
+#: src/lang.c:832
+msgid   "<TAB>"
+msgstr  "<TAB>"
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  "TeX "
+
+#: src/lang.c:834
+msgid   "# Default action/prompt strings\n"
+msgstr  ""
+
+#: src/lang.c:835
+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"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  ""
+
+#: src/lang.c:848
+msgid   "# If ON use print current subject or newsgroup description in the last line\n"
+msgstr  ""
+
+#: src/lang.c:849
+msgid   "# Host & time info used for detecting new groups (don't touch)\n"
+msgstr  ""
+
+#: src/lang.c:850
+msgid   "There is no news\n"
+msgstr  ""
+
+#: src/lang.c:851
+msgid   "Thread"
+msgstr  "Tråd"
+
+#: src/lang.c:852
+msgid   "Thread Level Commands"
+msgstr  ""
+
+#: src/lang.c:853
+msgid   "Thread deselected"
+msgstr  ""
+
+#: src/lang.c:854
+msgid   "Thread selected"
+msgstr  ""
+
+#: src/lang.c:856
+msgid   "threads"
+msgstr  "trådar"
+
+#: src/lang.c:858
+msgid   "thread"
+msgstr  "tråd"
 
-#: src/lang.c:809
+#: src/lang.c:859
 #, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	""
+msgid   "Thread %4s of %4s"
+msgstr  "Tråd %4s av %4s"
 
-#: src/lang.c:813
+#: src/lang.c:860
+msgid   "Threading articles..."
+msgstr  "Trådar artiklar..."
+
+#: src/lang.c:861
 #, c-format
-msgid	"Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
-msgstr	""
+msgid   "Toggled word highlighting %s"
+msgstr  ""
 
-#: src/lang.c:814
-msgid	"\n"
-	"Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
-msgstr	""
+#: src/lang.c:862
+msgid   "Toggled rot13 encoding"
+msgstr  ""
 
-#: src/lang.c:815
-msgid	"Writing attributes file..."
-msgstr	"Skriver attributfil..."
+#: src/lang.c:863
+#, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  ""
 
-#: src/lang.c:817
+#: src/lang.c:864
 #, c-format
-msgid	"%d Responses"
-msgstr	"%d svar"
+msgid   "Toggled tab-width to %d"
+msgstr  ""
 
-#: src/lang.c:819
+#: src/lang.c:866
 #, c-format
-msgid	"Added %d %s"
-msgstr	"Lade till %d %s"
+msgid   "%d Trying to dotlock %s"
+msgstr  ""
 
-#: src/lang.c:820
-msgid	"No unsubscribed groups to show"
-msgstr	""
+#: src/lang.c:867
+#, c-format
+msgid   "%d Trying to lock %s"
+msgstr  "%d Försöker att låsa %s"
 
-#: src/lang.c:821
-msgid	"Showing subscribed to groups only"
-msgstr	""
+#: src/lang.c:869
+msgid   "           h=help"
+msgstr  "           h=hjälp"
 
-#: src/lang.c:822
-msgid	"Yes "
-msgstr	"Ja "
+#: src/lang.c:871
+msgid   "Unlimited"
+msgstr  "Obegränsad"
 
-#: src/lang.c:823
-msgid	"    You have mail\n"
-msgstr	"    Du har post\n"
+#: src/lang.c:872
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  ""
 
-#: src/lang.c:828
+#: src/lang.c:873
 #, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	""
-
-#: src/lang.c:839
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"  -D       felsökningsläge 1=NNTP 2=ALLA"
-
-#: src/lang.c:843
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	""
+msgid   "Error decoding %s : %s"
+msgstr  "Fel vid avkodning av %s : %s"
 
-#: src/lang.c:852
-msgid	"toggle color"
-msgstr	"växla färg"
+#: src/lang.c:874
+msgid   "No end."
+msgstr  "Inget slut."
 
-#: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	""
+#: src/lang.c:875
+#, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s lyckades avkodas."
 
-#: src/lang.c:873
-msgid	"  -a       toggle color flag"
-msgstr	""
+#: src/lang.c:876
+#, c-format
+msgid   "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:877
-msgid	"\n"
-	"Error: Followup-To set to more than one newsgroup!\n"
-msgstr	""
+msgid   "unread "
+msgstr  "oläst "
 
 #: src/lang.c:878
 #, c-format
-msgid	"\n"
-	"Error: cross-posting to %d newsgroups and no Followup-To line!\n"
-msgstr	""
+msgid   "unsubscribed from %d groups"
+msgstr  ""
 
 #: src/lang.c:879
 #, c-format
-msgid	"\n"
-	"Error: \"%s\" is not a valid newsgroup!\n"
-msgstr	""
+msgid   "Unsubscribed from %s"
+msgstr  ""
+
+#: src/lang.c:880
+msgid   "Unsubscribing... "
+msgstr  ""
 
 #: src/lang.c:881
-msgid	"\n"
-	"Warning: Followup-To set to more than one newsgroup!\n"
-msgstr	""
+msgid   "Unthreading articles..."
+msgstr  ""
 
 #: src/lang.c:882
-#, c-format
-msgid	"\n"
-	"Warning: cross-posting to %d newsgroups and no Followup-To line!\n"
-msgstr	""
-
-#: src/lang.c:883
-#, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
-msgstr	""
+msgid   "Updated"
+msgstr  "Uppdaterad"
 
 #: src/lang.c:884
 #, c-format
-msgid	"\n"
-	"Warning: \"%s\" is not a valid newsgroup at this site!\n"
-msgstr	""
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  ""
+
+#: src/lang.c:886
+msgid   "Updating"
+msgstr  "Uppdaterar"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  ""
 
 #: src/lang.c:888
-#, c-format
-msgid	"%d files successfully written from %d articles. %d %s occurred."
-msgstr	""
+#, fuzzy
+msgid   "URL Menu Commands"
+msgstr  "Toppnivåkommandon"
 
 #: src/lang.c:889
-msgid	"Missing parts."
-msgstr	""
+#, fuzzy, c-format
+msgid   "Opening %s"
+msgstr  "Öppnar %s\n"
 
 #: src/lang.c:890
-msgid	"No beginning."
-msgstr	"Ingen början."
+#, fuzzy
+msgid   "Select URL> "
+msgstr  "Välj grupp> "
 
 #: src/lang.c:891
-msgid	"No data."
-msgstr	"Inget data."
+#, fuzzy
+msgid   "No URLs in this article"
+msgstr  "Inga fler URL:er i denna artikel"
 
 #: src/lang.c:892
-msgid	"Unknown error."
-msgstr	"Okänt fel."
+msgid   "Use MIME display program for this message?"
+msgstr  ""
+
+#: src/lang.c:893
+msgid   "  -c       mark all news as read in subscribed newsgroups (batch mode)"
+msgstr  ""
+
+#: src/lang.c:894
+msgid   "  -Z       return status indicating if any unread news (batch mode)"
+msgstr  ""
 
 #: src/lang.c:895
+msgid   "  -q       don't check for new newsgroups"
+msgstr  ""
+
+#: src/lang.c:896
+msgid   "  -X       don't save any files on quit"
+msgstr  ""
+
+#: src/lang.c:897
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  ""
+
+#: src/lang.c:898
+msgid   "  -G limit get only limit articles/group"
+msgstr  ""
+
+#: src/lang.c:899
 #, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"\tKontrollsumma för %s (%ld %s)"
+msgid   "  -H       help information about %s"
+msgstr  ""
 
 #: src/lang.c:900
-msgid	"Reading mail active file... "
-msgstr	""
+msgid   "  -h       this help message"
+msgstr  "  -h       detta hjälpmeddelande"
 
 #: src/lang.c:901
-msgid	"Reading mailgroups file... "
-msgstr	""
+#, c-format
+msgid   "  -I dir   news index file directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:902
+msgid   "  -u       update index files (batch mode)"
+msgstr  ""
+
+#: src/lang.c:903
+#, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  ""
+
+#: src/lang.c:904
+#, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "Skicka felrapporter/kommentarer till %s\n"
+        "Rapportera synpunkter på översättningen till <tp-sv@listor.tp-sv.se>."
 
 #: src/lang.c:905
-msgid	"perform PGP operations on article"
-msgstr	"genomför PGP-operationer på artikel"
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  ""
 
 #: src/lang.c:906
-msgid	"Add key(s) to public keyring?"
-msgstr	""
+msgid   "  -M user  mail new news to specified user (batch mode)"
+msgstr  ""
 
 #: src/lang.c:907
 #, c-format
-msgid	"%s=encrypt, %s=sign, %s=both, %s=quit: "
-msgstr	"%s=kryptera, %s=signera, %s=båda, %s=avsluta: "
+msgid   "  -f file  subscribed to newsgroups file [default=%s]"
+msgstr  ""
 
 #: src/lang.c:908
-#, c-format
-msgid	"%s=sign, %s=sign & include public key, %s=quit: "
-msgstr	"%s=signera, %s=signera & inkludera publik nyckel, %s=avsluta: "
+msgid   "  -x       no posting mode"
+msgstr  ""
 
 #: src/lang.c:909
-#, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	""
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       posta en artikel och avsluta"
 
 #: src/lang.c:910
-msgid	"Article not signed and no public keys found"
-msgstr	""
+msgid   "  -o       post all postponed articles and exit"
+msgstr  ""
+
+#: src/lang.c:911
+msgid   "  -R       read news saved by -S option"
+msgstr  ""
 
 #: src/lang.c:912
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  ""
 
 #: src/lang.c:913
-#, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
-msgstr	""
+msgid   "  -S       save new news for later reading (batch mode)"
+msgstr  ""
 
 #: src/lang.c:914
+msgid   "  -z       start if any unread news"
+msgstr  "  -z       starta om det finns olästa diskussioner"
+
+#: src/lang.c:915
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  "En applikation för att läsa diskussionsgrupper.\n"
+        "\n"
+        "Användning: %s [flaggor] [diskussionsgrupp[,...]]"
 
 #: src/lang.c:916
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "  -v       verbose output for batch mode options"
+msgstr  ""
 
 #: src/lang.c:917
-#, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
-msgstr	""
+msgid   "  -V       print version & date information"
+msgstr  "  -V       skriv ut version & datuminformation"
 
 #: src/lang.c:918
 #, c-format
-msgid	"%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "%s only useful without batch mode operations\n"
+msgstr  ""
+
+#: src/lang.c:919
+#, c-format
+msgid   "%s only useful for batch mode operations\n"
+msgstr  ""
+
+#: src/lang.c:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  ""
 
 #: src/lang.c:922
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "\n"
+        "%s%d out of range (0 - %d). Reset to 0"
+msgstr  ""
 
 #: src/lang.c:923
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
-msgstr	""
+msgid   "View '%s' (%s/%s)?"
+msgstr  "Visa \"%s\" (%s/%s)?"
 
-#: src/lang.c:924
+#: src/lang.c:925
 #, c-format
-msgid	"%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  ""
 
 #: src/lang.c:926
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
-msgstr	""
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  ""
 
 #: src/lang.c:927
-#, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	""
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  ""
 
 #: src/lang.c:928
-#, c-format
-msgid	"%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
-msgstr	""
+msgid   "\n"
+        "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:\".\n"
+msgstr  ""
+
+#: src/lang.c:930
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  ""
+
+#: src/lang.c:933
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  ""
 
 #: src/lang.c:937
-msgid	"Try cache_overview_files to speed up things.\n"
-msgstr	""
-
-#: src/lang.c:938
-msgid	"Tin will use local index files instead.\n"
-msgstr	""
-
-#: src/lang.c:939
-msgid	"Cannot find NNTP server name"
-msgstr	""
-
-#: src/lang.c:940
-#, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"Ansluter till %s:%d..."
-
-#: src/lang.c:941
-msgid	"Disconnecting from server...\n"
-msgstr	"Kopplar ner från server...\n"
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  ""
 
 #: src/lang.c:942
-#, c-format
-msgid	"Wrong newsgroup name in response of GROUP command, %s for %s"
-msgstr	""
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  ""
 
 #: src/lang.c:943
 #, c-format
-msgid	"Failed to connect to NNTP server %s. Exiting..."
-msgstr	""
-
-#: src/lang.c:944
-msgid	"205  Closing connection"
-msgstr	"205  Stänger anslutning"
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  ""
 
 #: src/lang.c:945
-msgid	"Your server does not support the NNTP XOVER or OVER command.\n"
-msgstr	""
-
-#: src/lang.c:946
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	""
-
-#: src/lang.c:947
-#, c-format
-msgid	"Put the server name in the file %s,\n"
-	"or set the environment variable NNTPSERVER"
-msgstr	""
-
-#: src/lang.c:948
-msgid	"  -A       force authentication on connect"
-msgstr	"  -A       tvinga autentisering vid anslutning"
-
-#: src/lang.c:949
 #, c-format
-msgid	"  -g serv  read news from NNTP server serv [default=%s]"
-msgstr	""
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  ""
 
-#: src/lang.c:950
+#: src/lang.c:948
 #, c-format
-msgid	"  -p port  use port as NNTP port [default=%d]"
-msgstr	""
-
-#: src/lang.c:951
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"  -Q       snabbstart. Samma som -nqd"
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  ""
 
 #: src/lang.c:952
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	""
+#, c-format
+msgid   "\n"
+        "Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
+msgstr  ""
 
 #: src/lang.c:953
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	""
+#, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  ""
 
-#: src/lang.c:955
+#: src/lang.c:954
 #, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/tcp: Okänd tjänst.\n"
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  ""
 
 #: src/lang.c:958
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	""
+#, c-format
+msgid   "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
+msgstr  ""
+
+#: src/lang.c:959
+msgid   "\n"
+        "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
+msgstr  ""
 
 #: src/lang.c:960
+msgid   "Writing attributes file..."
+msgstr  "Skriver attributfil..."
+
+#: src/lang.c:962
 #, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"\n"
-	"Anslutning till %s: "
-
-#: src/lang.c:961
-msgid	"Giving up...\n"
-msgstr	"Ger upp...\n"
+msgid   "%d Responses"
+msgstr  "%d svar"
 
 #: src/lang.c:964
-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	""
+#, c-format
+msgid   "Added %d %s"
+msgstr  "Lade till %d %s"
+
+#: src/lang.c:965
+msgid   "No unsubscribed groups to show"
+msgstr  ""
+
+#: src/lang.c:966
+msgid   "Showing subscribed to groups only"
+msgstr  ""
 
 #: src/lang.c:967
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	""
+msgid   "Yes "
+msgstr  "Ja "
 
-#: src/lang.c:970
-#, 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:968
+msgid   "    You have mail"
+msgstr  "    Du har post"
 
 #: src/lang.c:973
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"  -Q       snabbstart. Samma som -qd"
+#, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  ""
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  ""
+
+#: src/lang.c:988
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  ""
 
-#: src/lang.c:974
-msgid	"  -l       read only active file instead of scanning spool (-n) command"
-msgstr	""
+#: src/lang.c:997
+msgid   "toggle color"
+msgstr  "växla färg"
 
-#: src/lang.c:975
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	""
+#: src/lang.c:998
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:1018
+msgid   "  -a       toggle color flag"
+msgstr  ""
+
+#: src/lang.c:1022
+msgid   "\n"
+        "Error: Followup-To set to more than one newsgroup!\n"
+msgstr  ""
+
+#: src/lang.c:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  ""
+
+#: src/lang.c:1024
+#, c-format
+msgid   "\n"
+        "Error: cross-posting to %d newsgroups and no Followup-To line!\n"
+msgstr  ""
 
-#: src/lang.c:976
-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:1025
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is not a valid newsgroup!\n"
+msgstr  ""
 
-#: src/lang.c:980
-msgid	"Posting using external inews failed. Use built in inews instead?"
-msgstr	""
+#: src/lang.c:1027
+msgid   "\n"
+        "Warning: Followup-To set to more than one newsgroup!\n"
+msgstr  ""
 
-#: src/lang.c:981
-msgid	"It worked! Should I always use my built in inews from now on?"
-msgstr	""
+#: src/lang.c:1028
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  ""
 
-#: src/lang.c:989
+#: src/lang.c:1029
 #, c-format
-msgid	"%d %s printed"
-msgstr	"%d %s utskriven"
+msgid   "\n"
+        "Warning: cross-posting to %d newsgroups and no Followup-To line!\n"
+msgstr  ""
 
-#: src/lang.c:990
-msgid	"output article/thread/hot/pattern/tagged articles to printer"
-msgstr	""
+#: src/lang.c:1030
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not in your newsrc, it may be invalid at this site!\n"
+msgstr  ""
 
-#: src/lang.c:991
-msgid	"Print"
-msgstr	"Skriv ut"
+#: src/lang.c:1031
+#, c-format
+msgid   "\n"
+        "Warning: \"%s\" is not a valid newsgroup at this site!\n"
+msgstr  ""
 
-#: src/lang.c:992
-msgid	"Printing..."
-msgstr	"Skriver ut..."
+#: src/lang.c:1035
+#, c-format
+msgid   "%d files successfully written from %d articles. %d %s occurred."
+msgstr  ""
 
-#: src/lang.c:996
-msgid	"pipe article/thread/hot/pattern/tagged articles into command"
-msgstr	""
+#: src/lang.c:1036
+msgid   "Missing parts."
+msgstr  ""
 
-#: src/lang.c:997
-msgid	"No command"
-msgstr	"Inget kommando"
+#: src/lang.c:1037
+msgid   "No beginning."
+msgstr  "Ingen början."
 
-#: src/lang.c:998
-msgid	"Pipe"
-msgstr	"Rör"
+#: src/lang.c:1038
+msgid   "No data."
+msgstr  "Inget data."
 
-#: src/lang.c:999
-#, fuzzy, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Öppna rör till kommando [%.*s]> "
+#: src/lang.c:1039
+msgid   "Unknown error."
+msgstr  "Okänt fel."
 
-#: src/lang.c:1000
-msgid	"Piping..."
-msgstr	""
-
-#: src/lang.c:1002
-msgid	"Piping not enabled."
-msgstr	""
-
-#: src/lang.c:1006
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	""
-
-#: src/lang.c:1011
-#, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	""
-
-#: src/lang.c:1016
-#, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	""
-
-#: 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:1042
+#, c-format
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  "\tKontrollsumma för %s (%ld %s)"
 
-#: src/lang.c:1025
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	""
+#: src/lang.c:1047
+msgid   "Reading mail active file... "
+msgstr  ""
 
-#: src/lang.c:1038
-msgid	"shell escape"
-msgstr	""
+#: src/lang.c:1048
+msgid   "Reading mailgroups file... "
+msgstr  ""
 
-#: src/lang.c:1039
-#, c-format
-msgid	"Shell Command (%s)"
-msgstr	"Skalkommando (%s)"
+#: src/lang.c:1052
+msgid   "perform PGP operations on article"
+msgstr  "genomför PGP-operationer på artikel"
+
+#: src/lang.c:1053
+msgid   "Add key(s) to public keyring?"
+msgstr  ""
 
-#: src/lang.c:1040
+#: src/lang.c:1054
 #, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"Ange skalkommando [%s]> "
+msgid   "%s=encrypt, %s=sign, %s=both, %s=quit: "
+msgstr  "%s=kryptera, %s=signera, %s=båda, %s=avsluta: "
 
-#: src/lang.c:1044
+#: src/lang.c:1055
 #, c-format
-msgid	"%s: Can't get entry for TERM\n"
-msgstr	""
+msgid   "%s=sign, %s=sign & include public key, %s=quit: "
+msgstr  "%s=signera, %s=signera & inkludera publik nyckel, %s=avsluta: "
 
-#: src/lang.c:1048
+#: src/lang.c:1056
 #, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"Grupp %.*s (\"q\" för att avsluta)..."
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  ""
 
-#: src/lang.c:1050
-#, c-format
-msgid	"Group %.*s..."
-msgstr	"Grupp %.*s..."
+#: src/lang.c:1057
+msgid   "Article not signed and no public keys found"
+msgstr  ""
 
-#: src/lang.c:1054
-msgid	"Server unavailable\n"
-msgstr	"Server ej tillgänglig\n"
+#: src/lang.c:1059
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
 
 #: 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	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
+msgstr  ""
 
 #: 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	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
 
 #: src/lang.c:1063
 #, c-format
-msgid	"%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
 
 #: src/lang.c:1064
 #, c-format
-msgid	"%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
+msgstr  ""
 
-#: src/lang.c:1068
+#: src/lang.c:1065
 #, c-format
-msgid	"%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
 
 #: src/lang.c:1069
 #, c-format
-msgid	"%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1070
+#, c-format
+msgid   "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
+msgstr  ""
 
 #: src/lang.c:1071
 #, c-format
-msgid	"%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1073
+#, c-format
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
+msgstr  ""
+
+#: src/lang.c:1074
+#, c-format
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1075
+#, c-format
+msgid   "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
+msgstr  ""
+
+#: src/lang.c:1084
+msgid   "Try cache_overview_files to speed up things.\n"
+msgstr  ""
+
+#: src/lang.c:1085
+msgid   "Tin will use local index files instead.\n"
+msgstr  ""
+
+#: src/lang.c:1086
+msgid   "Cannot find NNTP server name"
+msgstr  ""
+
+#: src/lang.c:1087
+#, c-format
+msgid   "Connecting to %s:%u..."
+msgstr  "Ansluter till %s:%u..."
 
-#: src/lang.c:1072
+#: src/lang.c:1088
+msgid   "Disconnecting from server...\n"
+msgstr  "Kopplar ner från server...\n"
+
+#: src/lang.c:1089
+#, c-format
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  ""
+
+#: src/lang.c:1090
+#, c-format
+msgid   "Failed to connect to NNTP server %s. Exiting..."
+msgstr  ""
+
+#: src/lang.c:1091
+msgid   "205  Closing connection"
+msgstr  "205  Stänger anslutning"
+
+#: src/lang.c:1092
+msgid   "Your server does not support the NNTP XOVER or OVER command.\n"
+msgstr  ""
+
+#: src/lang.c:1093
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  ""
+
+#: src/lang.c:1094
 #, c-format
-msgid	"%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
-msgstr	""
+msgid   "Put the server name in the file %s,\n"
+        "or set the environment variable NNTPSERVER"
+msgstr  ""
 
-#: src/lang.c:1078
-msgid	"Terminal does not support color"
-msgstr	""
+#: src/lang.c:1095
+msgid   "  -A       force authentication on connect"
+msgstr  "  -A       tvinga autentisering vid anslutning"
 
-#: src/lang.c:1083
+#: src/lang.c:1096
 #, c-format
-msgid	"Trying %s"
-msgstr	"Försöker med %s"
+msgid   "  -g serv  read news from NNTP server serv [default=%s]"
+msgstr  ""
 
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
-msgid	"None"
-msgstr	"Ingen"
+#: src/lang.c:1097
+#, c-format
+msgid   "  -p port  use port as NNTP port [default=%d]"
+msgstr  ""
 
 #: src/lang.c:1098
-msgid	"Subject"
-msgstr	"Ämne"
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  "  -Q       snabbstart. Samma som -nqd"
 
 #: src/lang.c:1099
-msgid	"References"
-msgstr	"Referenser"
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  ""
 
 #: src/lang.c:1100
-msgid	"Both Subject and References"
-msgstr	""
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  ""
 
 #: src/lang.c:1101
-msgid	"Multipart Subject"
-msgstr	""
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  ""
+
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  ""
+
+#: src/lang.c:1107
+#, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "Anslutning till %s: "
+
+#: src/lang.c:1108
+msgid   "Giving up...\n"
+msgstr  "Ger upp...\n"
+
+#: src/lang.c:1110
+#, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp: Okänd tjänst.\n"
+
+#: src/lang.c:1114
+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:1117
+msgid   "Your server does not have Xref: in its XOVER information.\n"
+msgstr  ""
+
+#: src/lang.c:1120
+#, 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:1102
-msgid	"Percentage Match"
-msgstr	""
-
-#: src/lang.c:1114 src/lang.c:1225
-msgid	"No"
-msgstr	"Nej"
-
-#: src/lang.c:1115 src/lang.c:1227
-msgid	"Yes"
-msgstr	"Ja"
-
-#: src/lang.c:1116
-msgid	"Hide All"
-msgstr	"Göm alla"
+#: src/lang.c:1123
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  "  -Q       snabbstart. Samma som -qd"
 
 #: src/lang.c:1124
-msgid	"Address"
-msgstr	"Adress"
+msgid   "  -l       read only active file instead of scanning spool (-n) command"
+msgstr  ""
 
 #: src/lang.c:1125
-msgid	"Full Name"
-msgstr	"Hela namnet"
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  ""
 
 #: src/lang.c:1126
-msgid	"Address and Name"
-msgstr	"Adress och namn"
+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:1133
-msgid	"Max"
-msgstr	"Max"
-
-#: src/lang.c:1134
-msgid	"Sum"
-msgstr	"Summa"
+#: src/lang.c:1130
+msgid   "Posting using external inews failed. Use built in inews instead?"
+msgstr  ""
+
+#: src/lang.c:1131
+msgid   "It worked! Should I always use my built in inews from now on?"
+msgstr  ""
 
 #: src/lang.c:1135
-msgid	"Average"
-msgstr	"Medelvärde"
+#, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s utskriven"
 
-#: src/lang.c:1140
-msgid	"Lines"
-msgstr	"Rader"
-
-#: src/lang.c:1141
-msgid	"Score"
-msgstr	"Poäng"
+#: src/lang.c:1136
+msgid   "output article/thread/hot/pattern/tagged articles to printer"
+msgstr  ""
+
+#: src/lang.c:1137
+msgid   "Print"
+msgstr  "Skriv ut"
+
+#: src/lang.c:1138
+msgid   "Printing..."
+msgstr  "Skriver ut..."
 
 #: src/lang.c:1142
-msgid	"Lines & Score"
-msgstr	"Rader & poäng"
+msgid   "pipe article/thread/hot/pattern/tagged articles into command"
+msgstr  ""
 
-#: src/lang.c:1151
-msgid	"Black"
-msgstr	"Svart"
+#: src/lang.c:1143
+msgid   "No command"
+msgstr  "Inget kommando"
+
+#: src/lang.c:1144
+msgid   "Pipe"
+msgstr  "Rör"
 
-#: src/lang.c:1152
-msgid	"Red"
-msgstr	"Röd"
+#: src/lang.c:1145
+#, fuzzy, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  "Öppna rör till kommando [%.*s]> "
 
-#: src/lang.c:1153
-msgid	"Green"
-msgstr	"Grön"
-
-#: src/lang.c:1154
-msgid	"Brown"
-msgstr	"Brun"
-
-#: src/lang.c:1155
-msgid	"Blue"
-msgstr	"Blå"
-
-#: src/lang.c:1156
-msgid	"Pink"
-msgstr	"Rosa"
+#: src/lang.c:1146
+msgid   "Piping..."
+msgstr  ""
+
+#: src/lang.c:1148
+msgid   "Piping not enabled."
+msgstr  ""
 
-#: src/lang.c:1157
-msgid	"Cyan"
-msgstr	"Turkos"
+#: src/lang.c:1152
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  ""
 
-#: src/lang.c:1158
-msgid	"White"
-msgstr	"Vit"
-
-#: src/lang.c:1159
-msgid	"Gray"
-msgstr	"Grå"
-
-#: src/lang.c:1160
-msgid	"Light Red"
-msgstr	"Ljusröd"
-
-#: src/lang.c:1161
-msgid	"Light Green"
-msgstr	"Ljusgrön"
+#: src/lang.c:1157
+#, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  ""
 
 #: src/lang.c:1162
-msgid	"Yellow"
-msgstr	"Gul"
-
-#: src/lang.c:1163
-msgid	"Light Blue"
-msgstr	"Ljusblå"
-
-#: src/lang.c:1164
-msgid	"Light Pink"
-msgstr	"Ljusrosa"
-
-#: src/lang.c:1165
-msgid	"Light Cyan"
-msgstr	"Ljusturkos"
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  ""
 
 #: src/lang.c:1166
-msgid	"Light White"
-msgstr	"Ljusvit"
-
-#: src/lang.c:1174 src/lang.c:1231 src/lang.c:1245
-msgid	"Nothing"
-msgstr	"Ingenting"
-
-#: src/lang.c:1175
-msgid	"Mark"
-msgstr	"Markera"
-
-#: src/lang.c:1176
-msgid	"Space"
-msgstr	"Blanksteg"
-
-#: src/lang.c:1183
-msgid	"Normal"
-msgstr	"Normal"
+#, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
+msgstr  ""
+
+#: src/lang.c:1171
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  ""
 
 #: src/lang.c:1184
-msgid	"Best highlighting"
-msgstr	""
+msgid   "shell escape"
+msgstr  ""
 
 #: src/lang.c:1185
-msgid	"Underline"
-msgstr	"Understruken"
+#, c-format
+msgid   "Shell Command (%s)"
+msgstr  "Skalkommando (%s)"
 
 #: src/lang.c:1186
-msgid	"Reverse video"
-msgstr	""
+#, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "Ange skalkommando [%s]> "
 
-#: src/lang.c:1187
-msgid	"Blinking"
-msgstr	"Blinkande"
-
-#: src/lang.c:1188
-msgid	"Half bright"
-msgstr	""
-
-#: src/lang.c:1189
-msgid	"Bold"
-msgstr	"Fet"
+#: src/lang.c:1190
+#, c-format
+msgid   "%s: Can't get entry for TERM\n"
+msgstr  ""
 
 #: src/lang.c:1194
-msgid	"none"
-msgstr	"ingen"
-
-#: src/lang.c:1195
-msgid	"commands"
-msgstr	"kommandon"
+#, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "Grupp %.*s (\"q\" för att avsluta)..."
 
 #: src/lang.c:1196
-msgid	"select"
-msgstr	"välj"
-
-#: src/lang.c:1198
-msgid	"commands & quit"
-msgstr	""
-
-#: src/lang.c:1199
-msgid	"commands & select"
-msgstr	""
+#, c-format
+msgid   "Group %.*s..."
+msgstr  "Grupp %.*s..."
 
 #: src/lang.c:1200
-msgid	"quit & select"
-msgstr	""
+msgid   "Server unavailable\n"
+msgstr  "Server ej tillgänglig\n"
 
-#: src/lang.c:1201
-msgid	"commands & quit & select"
-msgstr	""
-
-#: src/lang.c:1226
-msgid	"Shell archive"
-msgstr	"Skalarkiv"
-
-#: src/lang.c:1232
-msgid	"Subject: (descending)"
-msgstr	"Ämne: (fallande)"
-
-#: src/lang.c:1233
-msgid	"Subject: (ascending)"
-msgstr	"Ämne: (stigande)"
-
-#: src/lang.c:1234
-msgid	"From: (descending)"
-msgstr	"Från: (fallande)"
-
-#: src/lang.c:1235
-msgid	"From: (ascending)"
-msgstr	"Från: (stigande)"
-
-#: src/lang.c:1236
-msgid	"Date: (descending)"
-msgstr	"Datum: (fallande)"
-
-#: src/lang.c:1237
-msgid	"Date: (ascending)"
-msgstr	"Datum: (stigande)"
-
-#: src/lang.c:1238 src/lang.c:1246
-msgid	"Score (descending)"
-msgstr	"Poäng (fallande)"
-
-#: src/lang.c:1239 src/lang.c:1247
-msgid	"Score (ascending)"
-msgstr	"Poäng (stigande)"
-
-#: src/lang.c:1240
-msgid	"Lines: (descending)"
-msgstr	"Rader: (fallande)"
-
-#: src/lang.c:1241
-msgid	"Lines: (ascending)"
-msgstr	"Rader: (stigande)"
-
-#: src/lang.c:1252
-msgid	"Always Keep"
-msgstr	"Behåll alltid"
-
-#: src/lang.c:1253
-msgid	"Always Remove"
-msgstr	"Ta alltid bort"
-
-#: src/lang.c:1254
-msgid	"Mark with D on selection screen"
-msgstr	""
-
-#: src/lang.c:1259
-msgid	"Kill only unread arts"
-msgstr	""
-
-#: src/lang.c:1260
-msgid	"Kill all arts & show with K"
-msgstr	""
+#: src/lang.c:1206
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %"
+        "s=post"
+msgstr  ""
 
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
-msgid	"Kill all arts and never show"
-msgstr	""
-
-#: src/lang.c:1266
-msgid	"Nothing special"
-msgstr	"Ingenting speciellt"
-
-#: src/lang.c:1267
-msgid	"Compress quotes"
-msgstr	""
-
-#: src/lang.c:1268
-msgid	"Quote signatures"
-msgstr	""
-
-#: src/lang.c:1269
-msgid	"Compress quotes, quote sigs"
-msgstr	""
+#: src/lang.c:1207
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1209
+#, c-format
+msgid   "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1210
+#, c-format
+msgid   "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1214
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1215
+#, c-format
+msgid   "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1217
+#, c-format
+msgid   "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1218
+#, c-format
+msgid   "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
+msgstr  ""
+
+#: src/lang.c:1224
+msgid   "Terminal does not support color"
+msgstr  ""
+
+#: src/lang.c:1229
+#, c-format
+msgid   "Trying %s"
+msgstr  "Försöker med %s"
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+msgid   "None"
+msgstr  "Ingen"
+
+#: src/lang.c:1244
+msgid   "Subject"
+msgstr  "Ämne"
+
+#: src/lang.c:1245
+msgid   "References"
+msgstr  "Referenser"
+
+#: src/lang.c:1246
+msgid   "Both Subject and References"
+msgstr  ""
+
+#: src/lang.c:1247
+msgid   "Multipart Subject"
+msgstr  ""
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  ""
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+msgid   "No"
+msgstr  "Nej"
+
+#: src/lang.c:1261 src/lang.c:1413
+msgid   "Yes"
+msgstr  "Ja"
+
+#: src/lang.c:1262
+msgid   "Hide All"
+msgstr  "Göm alla"
 
 #: src/lang.c:1270
-msgid	"Quote empty lines"
-msgstr	""
+msgid   "Address"
+msgstr  "Adress"
 
 #: src/lang.c:1271
-msgid	"Compress quotes, quote empty lines"
-msgstr	""
+msgid   "Full Name"
+msgstr  "Hela namnet"
 
 #: src/lang.c:1272
-msgid	"Quote sigs & empty lines"
-msgstr	""
+msgid   "Address and Name"
+msgstr  "Adress och namn"
 
-#: src/lang.c:1273
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	""
+#: src/lang.c:1279
+msgid   "Max"
+msgstr  "Max"
+
+#: src/lang.c:1280
+msgid   "Sum"
+msgstr  "Summa"
+
+#: src/lang.c:1281
+msgid   "Average"
+msgstr  "Medelvärde"
+
+#: src/lang.c:1286
+msgid   "Lines"
+msgstr  "Rader"
+
+#: src/lang.c:1287
+msgid   "Score"
+msgstr  "Poäng"
+
+#: src/lang.c:1288
+msgid   "Lines & Score"
+msgstr  "Rader & poäng"
+
+#: src/lang.c:1297
+msgid   "Black"
+msgstr  "Svart"
+
+#: src/lang.c:1298
+msgid   "Red"
+msgstr  "Röd"
+
+#: src/lang.c:1299
+msgid   "Green"
+msgstr  "Grön"
+
+#: src/lang.c:1300
+msgid   "Brown"
+msgstr  "Brun"
+
+#: src/lang.c:1301
+msgid   "Blue"
+msgstr  "Blå"
+
+#: src/lang.c:1302
+msgid   "Pink"
+msgstr  "Rosa"
+
+#: src/lang.c:1303
+msgid   "Cyan"
+msgstr  "Turkos"
+
+#: src/lang.c:1304
+msgid   "White"
+msgstr  "Vit"
+
+#: src/lang.c:1305
+msgid   "Gray"
+msgstr  "Grå"
+
+#: src/lang.c:1306
+msgid   "Light Red"
+msgstr  "Ljusröd"
+
+#: src/lang.c:1307
+msgid   "Light Green"
+msgstr  "Ljusgrön"
+
+#: src/lang.c:1308
+msgid   "Yellow"
+msgstr  "Gul"
+
+#: src/lang.c:1309
+msgid   "Light Blue"
+msgstr  "Ljusblå"
+
+#: src/lang.c:1310
+msgid   "Light Pink"
+msgstr  "Ljusrosa"
 
 #: src/lang.c:1311
-msgid	"no"
-msgstr	"nej"
+msgid   "Light Cyan"
+msgstr  "Ljusturkos"
 
 #: src/lang.c:1312
-msgid	"with headers"
-msgstr	""
+msgid   "Light White"
+msgstr  "Ljusvit"
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	""
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	""
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	""
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+msgid   "Nothing"
+msgstr  "Ingenting"
 
 #: src/lang.c:1322
-msgid	"NFC"
-msgstr	""
+msgid   "Space"
+msgstr  "Blanksteg"
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	""
+#: src/lang.c:1329
+msgid   "Normal"
+msgstr  "Normal"
+
+#: src/lang.c:1330
+msgid   "Best highlighting"
+msgstr  ""
+
+#: src/lang.c:1331
+msgid   "Underline"
+msgstr  "Understruken"
+
+#: src/lang.c:1332
+msgid   "Reverse video"
+msgstr  ""
+
+#: src/lang.c:1333
+msgid   "Blinking"
+msgstr  "Blinkande"
 
 #: src/lang.c:1334
-msgid	"Display Options"
-msgstr	"Visningsalternativ"
+msgid   "Half bright"
+msgstr  ""
+
+#: src/lang.c:1335
+msgid   "Bold"
+msgstr  "Fet"
 
 #: src/lang.c:1341
-msgid	"Color Options"
-msgstr	""
+msgid   "Cc"
+msgstr  ""
 
-#: src/lang.c:1348
-msgid	"Article-Limiting Options"
-msgstr	""
+#: src/lang.c:1342
+msgid   "Bcc"
+msgstr  ""
+
+#: src/lang.c:1343
+msgid   "Cc and Bcc"
+msgstr  ""
+
+#: src/lang.c:1348 src/lang.c:1360
+msgid   "none"
+msgstr  "ingen"
+
+#: src/lang.c:1349
+msgid   "commands"
+msgstr  "kommandon"
+
+#: src/lang.c:1350
+msgid   "select"
+msgstr  "välj"
+
+#: src/lang.c:1352
+msgid   "commands & quit"
+msgstr  ""
+
+#: src/lang.c:1353
+msgid   "commands & select"
+msgstr  ""
 
 #: src/lang.c:1354
-msgid	"Posting/Mailing Options"
-msgstr	""
+msgid   "quit & select"
+msgstr  ""
+
+#: src/lang.c:1355
+msgid   "commands & quit & select"
+msgstr  ""
+
+#: src/lang.c:1361
+msgid   "PageDown"
+msgstr  ""
+
+#: src/lang.c:1362
+msgid   "PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  ""
+
+#: src/lang.c:1368
+#, fuzzy
+msgid   "Subject: (case sensitive)"
+msgstr  "Ämne: (stigande)"
+
+#: src/lang.c:1369
+#, fuzzy
+msgid   "Subject: (ignore case)"
+msgstr  "Ämne: (stigande)"
+
+#: src/lang.c:1370
+#, fuzzy
+msgid   "From: (case sensitive)"
+msgstr  "Från: (stigande)"
 
-#: src/lang.c:1360
-msgid	"Saving/Printing Options"
-msgstr	""
-
-#: src/lang.c:1366
-msgid	"Expert Options"
-msgstr	""
+#: src/lang.c:1371
+#, fuzzy
+msgid   "From: (ignore case)"
+msgstr  "Från: (stigande)"
 
 #: src/lang.c:1372
-msgid	"Filtering Options"
-msgstr	""
+msgid   "Msg-ID: & full References: line"
+msgstr  ""
+
+#: src/lang.c:1373
+msgid   "Msg-ID: & last References: only"
+msgstr  ""
+
+#: src/lang.c:1374
+msgid   "Message-ID: entry only"
+msgstr  ""
+
+#: src/lang.c:1375
+#, fuzzy
+msgid   "Lines:"
+msgstr  "Rader"
+
+#: src/lang.c:1380
+#, fuzzy
+msgid   "Don't trim article body"
+msgstr  "Sortera artiklar efter"
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1378
-msgid	"Show mini menu & posting etiquette"
-msgstr	""
-
-#: src/lang.c:1379
-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:1381
+msgid   "Skip leading blank lines"
+msgstr  ""
+
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  ""
+
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  ""
 
 #: src/lang.c:1384
-msgid	"Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Compact multiple between text"
+msgstr  ""
 
 #: src/lang.c:1385
-msgid	"Show description of each newsgroup"
-msgstr	""
+msgid   "Compact multiple and skip leading"
+msgstr  ""
 
 #: src/lang.c:1386
-msgid	"# If ON show group description text after newsgroup name at\n"
-	"# group selection level\n"
-msgstr	""
-
-#: src/lang.c:1391
-msgid	"Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
-	"sets."
-msgstr	""
-
-#: src/lang.c:1392
-msgid	"In group menu, show author by"
-msgstr	""
-
-#: src/lang.c:1393
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	""
-
-#: src/lang.c:1402
-msgid	"Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1403
-msgid	"Draw -> instead of highlighted bar"
-msgstr	""
-
-#: src/lang.c:1404
-msgid	"# If ON use -> otherwise highlighted bar for selection\n"
-msgstr	""
-
-#: src/lang.c:1409
-msgid	"Use inverse video for page headers"
-msgstr	""
-
-#: src/lang.c:1410
-msgid	"# If ON use inverse video for page headers at different levels\n"
-msgstr	""
-
-#: src/lang.c:1415
-msgid	"Thread articles by"
-msgstr	"Tråda artiklar efter"
-
-#: src/lang.c:1416
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	""
+msgid   "Compact multiple and skip trailing"
+msgstr  ""
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  ""
+
+#: src/lang.c:1412
+msgid   "Shell archive"
+msgstr  "Skalarkiv"
+
+#: src/lang.c:1418
+msgid   "Subject: (descending)"
+msgstr  "Ämne: (fallande)"
+
+#: src/lang.c:1419
+msgid   "Subject: (ascending)"
+msgstr  "Ämne: (stigande)"
+
+#: src/lang.c:1420
+msgid   "From: (descending)"
+msgstr  "Från: (fallande)"
+
+#: src/lang.c:1421
+msgid   "From: (ascending)"
+msgstr  "Från: (stigande)"
+
+#: src/lang.c:1422
+msgid   "Date: (descending)"
+msgstr  "Datum: (fallande)"
+
+#: src/lang.c:1423
+msgid   "Date: (ascending)"
+msgstr  "Datum: (stigande)"
+
+#: src/lang.c:1424 src/lang.c:1432
+msgid   "Score (descending)"
+msgstr  "Poäng (fallande)"
+
+#: src/lang.c:1425 src/lang.c:1433
+msgid   "Score (ascending)"
+msgstr  "Poäng (stigande)"
+
+#: src/lang.c:1426
+msgid   "Lines: (descending)"
+msgstr  "Rader: (fallande)"
 
 #: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	""
+msgid   "Lines: (ascending)"
+msgstr  "Rader: (stigande)"
 
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	""
-
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
+#: src/lang.c:1434
+msgid   "Last posting date (descending)"
+msgstr  ""
+
+#: src/lang.c:1435
+msgid   "Last posting date (ascending)"
+msgstr  ""
+
+#: src/lang.c:1440
+msgid   "Always Keep"
+msgstr  "Behåll alltid"
 
 #: src/lang.c:1441
-msgid	"Score of a thread"
-msgstr	""
+msgid   "Always Remove"
+msgstr  "Ta alltid bort"
 
 #: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	""
-
-#: src/lang.c:1450
-msgid	"Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1451
-msgid	"Sort articles by"
-msgstr	"Sortera artiklar efter"
-
-#: src/lang.c:1452
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines ascending\n"
-msgstr	""
-
-#: src/lang.c:1468
-msgid	"Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1469
-msgid	"Sort threads by"
-msgstr	"Sortera trådar efter"
-
-#: src/lang.c:1470
-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	""
-
-#: src/lang.c:1478
-msgid	"Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1479
-msgid	"Goto first unread article in group"
-msgstr	""
-
-#: src/lang.c:1480
-msgid	"# If ON put cursor at first unread art in group otherwise last art\n"
-msgstr	""
-
-#: src/lang.c:1484
-msgid	"Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1485
-msgid	"Show only unread articles"
-msgstr	"Visa endast olästa artiklar"
-
-#: src/lang.c:1486
-msgid	"# If ON show only new/unread articles otherwise show all.\n"
-msgstr	""
-
-#: src/lang.c:1491
-msgid	"Show only groups with unread arts"
-msgstr	""
-
-#: src/lang.c:1492
-msgid	"# If ON show only subscribed to groups that contain unread articles.\n"
-msgstr	""
-
-#: src/lang.c:1497
-msgid	"Filter which articles"
-msgstr	"Filtrera vilka artiklar"
-
-#: src/lang.c:1498
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	""
-
-#: src/lang.c:1507
-msgid	"Tab goes to next unread article"
-msgstr	""
-
-#: src/lang.c:1508
-msgid	"# If ON the TAB command will go to next unread article at article viewer "
-	"level\n"
-msgstr	""
-
-#: src/lang.c:1512
-msgid	"Scrolling with <SPACE> past the end of an art. jumps to the next unread one."
-msgstr	""
-
-#: src/lang.c:1513
-msgid	"Space goes to next unread article"
-msgstr	""
-
-#: src/lang.c:1514
-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:1519
-msgid	"Scrolling with <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
-msgstr	""
-
-#: src/lang.c:1520
-msgid	"PgDn goes to next unread article"
-msgstr	""
-
-#: src/lang.c:1521
-msgid	"# If ON the PGDN or DOWN command will go to next unread article when\n"
-	"# pressed at end of message\n"
-msgstr	""
-
-#: src/lang.c:1527
-msgid	"List thread using right arrow key"
-msgstr	""
-
-#: src/lang.c:1528
-msgid	"# If ON automatically list thread when entering it using right arrow key.\n"
-msgstr	""
-
-#: src/lang.c:1532
-msgid	"Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1533
-msgid	"Character to show deleted articles"
-msgstr	""
-
-#: src/lang.c:1534
-msgid	"# Character used to show that an art was deleted (default 'D')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1539
-msgid	"Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1540
-msgid	"Character to show inrange articles"
-msgstr	""
-
-#: src/lang.c:1541
-msgid	"# Character used to show that an art is in a range (default '#')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1546
-msgid	"Enter character to indicate that article will return. <CR> sets, <ESC> "
-	"cancels."
-msgstr	""
-
-#: src/lang.c:1547
-msgid	"Character to show returning arts"
-msgstr	""
+msgid   "Mark with D on selection screen"
+msgstr  ""
+
+#: src/lang.c:1447
+msgid   "Kill only unread arts"
+msgstr  ""
+
+#: src/lang.c:1448
+msgid   "Kill all arts & show with K"
+msgstr  ""
+
+#. TODO: s/K/art_marked_killed/
+#: src/lang.c:1449
+msgid   "Kill all arts and never show"
+msgstr  ""
+
+#: src/lang.c:1454
+msgid   "Nothing special"
+msgstr  "Ingenting speciellt"
+
+#: src/lang.c:1455
+msgid   "Compress quotes"
+msgstr  ""
+
+#: src/lang.c:1456
+msgid   "Quote signatures"
+msgstr  ""
+
+#: src/lang.c:1457
+msgid   "Compress quotes, quote sigs"
+msgstr  ""
+
+#: src/lang.c:1458
+msgid   "Quote empty lines"
+msgstr  ""
+
+#: src/lang.c:1459
+msgid   "Compress quotes, quote empty lines"
+msgstr  ""
+
+#: src/lang.c:1460
+msgid   "Quote sigs & empty lines"
+msgstr  ""
+
+#: src/lang.c:1461
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  ""
+
+#: src/lang.c:1499
+msgid   "no"
+msgstr  "nej"
+
+#: src/lang.c:1500
+msgid   "with headers"
+msgstr  ""
+
+#: src/lang.c:1501
+msgid   "without headers"
+msgstr  ""
+
+#: src/lang.c:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  ""
+
+#: src/lang.c:1509
+msgid   "NFKD"
+msgstr  ""
+
+#: src/lang.c:1510
+msgid   "NFC"
+msgstr  ""
+
+#: src/lang.c:1511
+msgid   "NFD"
+msgstr  ""
+
+#: src/lang.c:1522
+msgid   "Display Options"
+msgstr  "Visningsalternativ"
+
+#: src/lang.c:1529
+msgid   "Color Options"
+msgstr  ""
+
+#: src/lang.c:1536
+msgid   "Article-Limiting Options"
+msgstr  ""
+
+#: src/lang.c:1542
+msgid   "Posting/Mailing Options"
+msgstr  ""
 
 #: src/lang.c:1548
-msgid	"# Character used to show that an art will return (default '-')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
-
-#: src/lang.c:1553
-msgid	"Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "Saving/Printing Options"
+msgstr  ""
 
 #: src/lang.c:1554
-msgid	"Character to show selected articles"
-msgstr	""
-
-#: src/lang.c:1555
-msgid	"# Character used to show that an art was auto-selected (default '*')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+msgid   "Expert Options"
+msgstr  ""
 
 #: src/lang.c:1560
-msgid	"Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "Filtering Options"
+msgstr  ""
 
-#: src/lang.c:1561
-msgid	"Character to show recent articles"
-msgstr	""
-
-#: src/lang.c:1562
-msgid	"# Character used to show that an art is recent (default 'o')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+#: src/lang.c:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1566
+msgid   "Show mini menu & posting etiquette"
+msgstr  ""
 
 #: src/lang.c:1567
-msgid	"Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1568
-msgid	"Character to show unread articles"
-msgstr	""
-
-#: src/lang.c:1569
-msgid	"# Character used to show that an art is unread (default '+')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+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:1572
+msgid   "Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1573
+msgid   "Show description of each newsgroup"
+msgstr  ""
 
 #: src/lang.c:1574
-msgid	"Enter character to indicate read articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1575
-msgid	"Character to show read articles"
-msgstr	""
-
-#: src/lang.c:1576
-msgid	"# Character used to show that an art was read (default ' ')\n"
-	"# _ is turned into ' '\n"
-msgstr	""
+msgid   "# If ON show group description text after newsgroup name at\n"
+        "# group selection level\n"
+msgstr  ""
+
+#: src/lang.c:1579
+msgid   "Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
+        "sets."
+msgstr  ""
+
+#: src/lang.c:1580
+msgid   "In group menu, show author by"
+msgstr  ""
 
 #: src/lang.c:1581
-msgid	"Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1582
-msgid	"Character to show killed articles"
-msgstr	""
-
-#: src/lang.c:1583
-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:1588
-msgid	"Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:1589
-msgid	"Character to show readselected arts"
-msgstr	""
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\n"
+        "#   3 = both\n"
+msgstr  ""
 
 #: src/lang.c:1590
-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:1595
-msgid	"Enter maximum length of newsgroup names displayed. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1596
-msgid	"Max. length of group names shown"
-msgstr	""
+msgid   "Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1591
+msgid   "Draw -> instead of highlighted bar"
+msgstr  ""
+
+#: src/lang.c:1592
+msgid   "# If ON use -> otherwise highlighted bar for selection\n"
+msgstr  ""
 
 #: src/lang.c:1597
-msgid	"# Maximum length of the names of newsgroups displayed\n"
-msgstr	""
+msgid   "Use inverse video for page headers"
+msgstr  ""
 
-#: src/lang.c:1602
-msgid	"Show lines/score in listings"
-msgstr	""
+#: src/lang.c:1598
+msgid   "# If ON use inverse video for page headers at different levels\n"
+msgstr  ""
 
 #: src/lang.c:1603
-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	""
-
-#: src/lang.c:1612
-msgid	"0 = full page scrolling, -1 = show previous last line as first on next page, -"
-	"2 = half page"
-msgstr	""
-
-#: src/lang.c:1613
-msgid	"Number of lines to scroll in pager"
-msgstr	""
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	""
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1625
-msgid	"Display signatures"
-msgstr	"Visa signaturer"
-
-#: src/lang.c:1626
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	""
+msgid   "Thread articles by"
+msgstr  "Tråda artiklar efter"
 
-#: src/lang.c:1630
-msgid	"Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
-msgstr	""
+#: src/lang.c:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  ""
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  ""
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  ""
+
+#: src/lang.c:1629
+msgid   "Score of a thread"
+msgstr  ""
 
-#: src/lang.c:1631
-msgid	"Display uue data as an attachment"
-msgstr	""
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	""
-
-#: src/lang.c:1642
-msgid	"Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	"Visa \"a som Umlaut-a"
-
-#: src/lang.c:1644
-msgid	"# If ON decode German style TeX umlaut codes to ISO and\n"
-	"# show \"a as Umlaut-a, etc.\n"
-msgstr	""
-
-#: src/lang.c:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	""
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	""
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1660
-msgid	"Do not display these header fields"
-msgstr	""
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1671
-msgid	"Do you want to enable automatic handling of multipart/alternative articles?"
-msgstr	""
-
-#: src/lang.c:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	""
-
-#: src/lang.c:1673
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	""
-
-#: src/lang.c:1678
-msgid	"A regex used to decide which lines to show in col_quote."
-msgstr	""
-
-#: src/lang.c:1679
-msgid	"Regex used to show quoted lines"
-msgstr	""
-
-#: src/lang.c:1680
-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:1686
-msgid	"A regex used to decide which lines to show in col_quote2."
-msgstr	""
+#: src/lang.c:1630
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  ""
+
+#: src/lang.c:1638
+msgid   "Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1639
+msgid   "Sort articles by"
+msgstr  "Sortera artiklar efter"
+
+#: src/lang.c:1640
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines ascending\n"
+msgstr  ""
+
+#: src/lang.c:1656
+msgid   "Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1657
+msgid   "Sort threads by"
+msgstr  "Sortera trådar efter"
+
+#: src/lang.c:1658
+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:1668
+msgid   "Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1669
+msgid   "Go to first unread article in group"
+msgstr  "välj första artikel i lista"
+
+#: src/lang.c:1670
+msgid   "# If ON put cursor at first unread art in group otherwise last art\n"
+msgstr  ""
+
+#: src/lang.c:1674
+msgid   "Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1675
+msgid   "Show only unread articles"
+msgstr  "Visa endast olästa artiklar"
+
+#: src/lang.c:1676
+msgid   "# If ON show only new/unread articles otherwise show all.\n"
+msgstr  ""
+
+#: src/lang.c:1681
+msgid   "Show only groups with unread arts"
+msgstr  ""
+
+#: src/lang.c:1682
+msgid   "# If ON show only subscribed to groups that contain unread articles.\n"
+msgstr  ""
 
 #: src/lang.c:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	""
+msgid   "Filter which articles"
+msgstr  "Filtrera vilka artiklar"
 
 #: src/lang.c:1688
-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:1694
-msgid	"A regex used to decide which lines to show in col_quote3."
-msgstr	""
-
-#: src/lang.c:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	""
-
-#: src/lang.c:1696
-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:1703
-msgid	"A regex used to decide which words to show in col_markslashes."
-msgstr	""
-
-#: src/lang.c:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	""
-
-#: src/lang.c:1705
-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:1711
-msgid	"A regex used to decide which words to show in col_markstars."
-msgstr	""
-
-#: src/lang.c:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	""
-
-#: src/lang.c:1713
-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:1719
-msgid	"A regex used to decide which words to show in col_markstroke."
-msgstr	""
-
-#: src/lang.c:1720
-msgid	"Regex used to highlight -strokes-"
-msgstr	""
-
-#: src/lang.c:1721
-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	""
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  ""
+
+#: src/lang.c:1697
+msgid   "Go to the next unread article with"
+msgstr  ""
+
+#: src/lang.c:1698
+msgid   "# Go to the unread article with following 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:1708
+msgid   "How to treat blank lines"
+msgstr  ""
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/lang.c:1726
+msgid   "List thread using right arrow key"
+msgstr  ""
 
 #: src/lang.c:1727
-msgid	"A regex used to decide which words to show in col_markdash."
-msgstr	""
+msgid   "# If ON automatically list thread when entering it using right arrow key.\n"
+msgstr  ""
 
-#: src/lang.c:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	""
-
-#: src/lang.c:1729
-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:1735
-msgid	"A regex used to find Subject prefixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1736
-msgid	"Regex with Subject prefixes"
-msgstr	""
-
-#: src/lang.c:1737
-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:1742
-msgid	"A regex used to find Subject suffixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1743
-msgid	"Regex with Subject suffixes"
-msgstr	""
-
-#: src/lang.c:1744
-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:1749
-msgid	"Enter name and options for external MIME viewer, --internal for built-in "
-	"viewer"
-msgstr	""
-
-#: src/lang.c:1750
-msgid	"MIME binary content viewer"
-msgstr	""
-
-#: src/lang.c:1751
-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:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	""
+#: src/lang.c:1731
+msgid   "Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1732
+msgid   "Character to show deleted articles"
+msgstr  ""
+
+#: src/lang.c:1733
+msgid   "# Character used to show that an art was deleted (default 'D')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1738
+msgid   "Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1739
+msgid   "Character to show inrange articles"
+msgstr  ""
+
+#: src/lang.c:1740
+msgid   "# Character used to show that an art is in a range (default '#')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1745
+msgid   "Enter character to indicate that article will return. <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:1746
+msgid   "Character to show returning arts"
+msgstr  ""
+
+#: src/lang.c:1747
+msgid   "# Character used to show that an art will return (default '-')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1752
+msgid   "Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1753
+msgid   "Character to show selected articles"
+msgstr  ""
+
+#: src/lang.c:1754
+msgid   "# Character used to show that an art was auto-selected (default '*')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1759
-msgid	"Ask before using MIME viewer"
-msgstr	""
+msgid   "Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
 #: src/lang.c:1760
-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:1765
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Character to show recent articles"
+msgstr  ""
+
+#: src/lang.c:1761
+msgid   "# Character used to show that an art is recent (default 'o')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1766
-msgid	"Catchup read groups when quitting"
-msgstr	""
+msgid   "Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
 #: src/lang.c:1767
-msgid	"# If ON ask user if read groups should all be marked read\n"
-msgstr	""
+msgid   "Character to show unread articles"
+msgstr  ""
 
-#: src/lang.c:1772
-msgid	"Catchup group using left key"
-msgstr	""
+#: src/lang.c:1768
+msgid   "# Character used to show that an art is unread (default '+')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
 
 #: src/lang.c:1773
-msgid	"# If ON catchup group/thread when leaving with the left arrow key.\n"
-msgstr	""
+msgid   "Enter character to indicate read articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
-#: src/lang.c:1778
-msgid	"Catchup thread by using left key"
-msgstr	""
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	""
-
-#: src/lang.c:1785
-msgid	"# What should we ask confirmation for.\n"
-msgstr	""
-
-#: src/lang.c:1790
-msgid	"'Mark article read' ignores tags"
-msgstr	""
-
-#: src/lang.c:1791
-msgid	"# If ON the 'Mark article read' function marks only the current article.\n"
-msgstr	""
+#: src/lang.c:1774
+msgid   "Character to show read articles"
+msgstr  ""
+
+#: src/lang.c:1775
+msgid   "# Character used to show that an art was read (default ' ')\n"
+        "# _ is turned into ' '\n"
+msgstr  ""
+
+#: src/lang.c:1780
+msgid   "Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1781
+msgid   "Character to show killed articles"
+msgstr  ""
+
+#: src/lang.c:1782
+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:1787
+msgid   "Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:1788
+msgid   "Character to show readselected arts"
+msgstr  ""
+
+#: src/lang.c:1789
+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:1794
+msgid   "Enter maximum length of newsgroup names displayed. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1795
-msgid	"Program to run to open URL's, <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "Max. length of group names shown"
+msgstr  ""
 
 #: src/lang.c:1796
-msgid	"Program that opens URL's"
-msgstr	""
+msgid   "# Maximum length of the names of newsgroups displayed\n"
+msgstr  ""
 
-#: src/lang.c:1797
-msgid	"# The program used to open URL's. The actual URL will be appended\n"
-msgstr	""
+#: src/lang.c:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  ""
 
 #: src/lang.c:1802
-msgid	"Use mouse in xterm"
-msgstr	""
-
-#: src/lang.c:1803
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	""
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
 
 #: src/lang.c:1809
-msgid	"Use scroll keys on keypad"
-msgstr	""
+msgid   "Show lines/score in listings"
+msgstr  ""
 
 #: src/lang.c:1810
-msgid	"# If ON enable scroll keys on terminals that support it\n"
-msgstr	""
-
-#: src/lang.c:1815
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1816
-msgid	"Number of articles to get"
-msgstr	""
-
-#: src/lang.c:1817
-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:1822
-msgid	"Enter number of days article is considered recent. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1823
-msgid	"Article recentness time limit"
-msgstr	""
-
-#: src/lang.c:1824
-msgid	"# Number of days in which article is considered recent, (0=OFF)\n"
-msgstr	""
-
-#: src/lang.c:1828
-msgid	"WILDMAT for normal wildcards, REGEX for full regular expression matching."
-msgstr	""
-
-#: src/lang.c:1829
-msgid	"Wildcard matching"
-msgstr	""
-
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	""
+msgid   "# What information 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  ""
+
+#: src/lang.c:1819
+msgid   "0 = full page scrolling, -1 = show previous last line as first on next page, -"
+        "2 = half page"
+msgstr  ""
+
+#: src/lang.c:1820
+msgid   "Number of lines to scroll in pager"
+msgstr  ""
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  ""
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1832
+msgid   "Display signatures"
+msgstr  "Visa signaturer"
+
+#: src/lang.c:1833
+msgid   "# If OFF don't show signatures when displaying articles\n"
+msgstr  ""
 
 #: src/lang.c:1837
-msgid	"Enter minimal score before an article is marked killed. <CR> sets."
-msgstr	""
+msgid   "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1838
-msgid	"Score limit (kill)"
-msgstr	""
+msgid   "Display uue data as an attachment"
+msgstr  ""
 
 #: src/lang.c:1839
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	""
-
-#: src/lang.c:1843
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1844
-msgid	"Default score to kill articles"
-msgstr	""
-
-#: src/lang.c:1845
-msgid	"# Default score to kill articles\n"
-msgstr	""
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  ""
 
 #: src/lang.c:1849
-msgid	"Enter minimal score before an article is marked hot. <CR> sets."
-msgstr	""
+msgid   "Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1850
-msgid	"Score limit (select)"
-msgstr	""
+msgid   "Display \"a as Umlaut-a"
+msgstr  "Visa \"a som Umlaut-a"
 
 #: src/lang.c:1851
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	""
-
-#: src/lang.c:1855
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1856
-msgid	"Default score to select articles"
-msgstr	""
+msgid   "# If ON decode German style TeX umlaut codes to ISO and\n"
+        "# show \"a as Umlaut-a, etc.\n"
+msgstr  ""
+
+#: src/lang.c:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  ""
 
 #: src/lang.c:1857
-msgid	"# Default score to select articles\n"
-msgstr	""
+msgid   "Display these header fields (or *)"
+msgstr  ""
 
-#: src/lang.c:1863
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	""
-
-#: src/lang.c:1864
-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:1872
-msgid	"Use ANSI color"
-msgstr	"Använd ANSI-färg"
-
-#: src/lang.c:1873
-msgid	"# If ON using ANSI-color\n"
-msgstr	""
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  ""
+
+#: src/lang.c:1867
+msgid   "Do not display these header fields"
+msgstr  ""
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  ""
 
 #: src/lang.c:1878
-msgid	"Standard foreground color"
-msgstr	""
+msgid   "Do you want to enable automatic handling of multipart/alternative articles?"
+msgstr  ""
 
 #: src/lang.c:1879
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
+msgid   "Skip multipart/alternative parts"
+msgstr  ""
+
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  ""
+
+#: src/lang.c:1884
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:1885
-msgid	"Standard background color"
-msgstr	""
+msgid   "Detection of verbatim blocks"
+msgstr  ""
 
 #: src/lang.c:1886
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  ""
+
+#: src/lang.c:1891
+msgid   "A regex used to decide which lines to show in col_quote."
+msgstr  ""
 
 #: src/lang.c:1892
-msgid	"Color for inverse text (background)"
-msgstr	""
+msgid   "Regex used to show quoted lines"
+msgstr  ""
 
 #: src/lang.c:1893
-msgid	"# Color of background for inverse text\n"
-	"# Default: 4 (blue)\n"
-msgstr	""
+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:1899
-msgid	"Color for inverse text (foreground)"
-msgstr	""
+msgid   "A regex used to decide which lines to show in col_quote2."
+msgstr  ""
 
 #: src/lang.c:1900
-msgid	"# Color of foreground for inverse text\n"
-	"# Default: 7 (white)\n"
-msgstr	""
-
-#: src/lang.c:1906
-msgid	"Color of text lines"
-msgstr	""
+msgid   "Regex used to show twice quoted l."
+msgstr  ""
+
+#: src/lang.c:1901
+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:1907
-msgid	"# Color of text lines\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
-
-#: src/lang.c:1913
-msgid	"Color of mini help menu"
-msgstr	""
-
-#: src/lang.c:1914
-msgid	"# Color of mini help menu\n"
-	"# Default: 3 (brown)\n"
-msgstr	""
-
-#: src/lang.c:1920
-msgid	"Color of help text"
-msgstr	""
-
-#: src/lang.c:1921
-msgid	"# Color of help pages\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
-
-#: src/lang.c:1927
-msgid	"Color of status messages"
-msgstr	""
-
-#: src/lang.c:1928
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	""
+msgid   "A regex used to decide which lines to show in col_quote3."
+msgstr  ""
 
-#: src/lang.c:1934
-msgid	"Color of quoted lines"
-msgstr	""
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  ""
+
+#: src/lang.c:1909
+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:1916
+msgid   "A regex used to decide which words to show in col_markslashes."
+msgstr  ""
+
+#: src/lang.c:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  ""
+
+#: src/lang.c:1918
+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:1924
+msgid   "A regex used to decide which words to show in col_markstars."
+msgstr  ""
+
+#: src/lang.c:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  ""
+
+#: src/lang.c:1926
+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:1932
+msgid   "A regex used to decide which words to show in col_markstroke."
+msgstr  ""
+
+#: src/lang.c:1933
+msgid   "Regex used to highlight -strokes-"
+msgstr  ""
 
-#: src/lang.c:1935
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	""
+#: src/lang.c:1934
+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:1940
+msgid   "A regex used to decide which words to show in col_markdash."
+msgstr  ""
 
 #: src/lang.c:1941
-msgid	"Color of twice quoted line"
-msgstr	""
+msgid   "Regex used to highlight _underline_"
+msgstr  ""
 
 #: src/lang.c:1942
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	""
+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:1948
-msgid	"Color of =>3 times quoted line"
-msgstr	""
+msgid   "A regex used to find Subject prefixes to remove.  Use '|' as separator."
+msgstr  ""
 
 #: src/lang.c:1949
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	""
+msgid   "Regex with Subject prefixes"
+msgstr  ""
+
+#: src/lang.c:1950
+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:1955
-msgid	"Color of article header lines"
-msgstr	""
+msgid   "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr  ""
 
 #: src/lang.c:1956
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	""
+msgid   "Regex with Subject suffixes"
+msgstr  ""
+
+#: src/lang.c:1957
+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:1962
-msgid	"Color of actual news header fields"
-msgstr	""
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  ""
 
 #: src/lang.c:1963
-msgid	"# Color of actual news header fields\n"
-	"# Default: 9 (light red)\n"
-msgstr	""
+msgid   "Regex for begin of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  ""
 
 #: src/lang.c:1969
-msgid	"Color of article subject lines"
-msgstr	""
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  ""
 
 #: src/lang.c:1970
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	""
+msgid   "Regex for end of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  ""
 
 #: src/lang.c:1976
-msgid	"Color of response counter"
-msgstr	""
+msgid   "Enter name and options for external MIME viewer, --internal for built-in "
+        "viewer"
+msgstr  ""
 
 #: src/lang.c:1977
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	""
-
-#: src/lang.c:1983
-msgid	"Color of sender (From:)"
-msgstr	""
-
-#: src/lang.c:1984
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	""
-
-#: src/lang.c:1990
-msgid	"Color of help/mail sign"
-msgstr	""
-
-#: src/lang.c:1991
-msgid	"# Color of Help/Mail-Sign\n"
-	"# Default: 4 (blue)\n"
-msgstr	""
-
-#: src/lang.c:1997
-msgid	"Color of signatures"
-msgstr	"Färg för signaturer"
-
-#: src/lang.c:1998
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	""
-
-#: src/lang.c:2004
-msgid	"Color of highlighted URLs"
-msgstr	""
+msgid   "MIME binary content viewer"
+msgstr  ""
+
+#: src/lang.c:1978
+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:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  ""
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  ""
+
+#: src/lang.c:1987
+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:1992
+msgid   "Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1993
+msgid   "Catchup read groups when quitting"
+msgstr  ""
+
+#: src/lang.c:1994
+msgid   "# If ON ask user if read groups should all be marked read\n"
+msgstr  ""
+
+#: src/lang.c:1999
+msgid   "Catchup group using left key"
+msgstr  ""
+
+#: src/lang.c:2000
+msgid   "# If ON catchup group/thread when leaving with the left arrow key.\n"
+msgstr  ""
 
 #: src/lang.c:2005
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
+msgid   "Catchup thread by using left key"
+msgstr  ""
 
 #: src/lang.c:2011
-msgid	"Color of highlighting with *stars*"
-msgstr	""
+msgid   "Which actions require confirmation"
+msgstr  ""
 
 #: src/lang.c:2012
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	""
+msgid   "# What should we ask confirmation for.\n"
+msgstr  ""
+
+#: src/lang.c:2017
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  ""
 
 #: src/lang.c:2018
-msgid	"Color of highlighting with _dash_"
-msgstr	""
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  ""
 
-#: src/lang.c:2019
-msgid	"# Color of word highlighting with _dash_\n"
-	"# Default: 13 (light pink)\n"
-msgstr	""
-
-#: src/lang.c:2025
-msgid	"Color of highlighting with /slash/"
-msgstr	""
-
-#: src/lang.c:2026
-msgid	"# Color of word highlighting with /slash/\n"
-	"# Default: 14 (light cyan)\n"
-msgstr	""
-
-#: src/lang.c:2032
-msgid	"Color of highlighting with -stroke-"
-msgstr	""
-
-#: src/lang.c:2033
-msgid	"# Color of word highlighting with -stroke-\n"
-	"# Default: 12 (light blue)\n"
-msgstr	""
-
-#: src/lang.c:2040
-msgid	"Attr. of highlighting with *stars*"
-msgstr	""
-
-#: src/lang.c:2041
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	""
+#: src/lang.c:2022
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2023
+msgid   "Program that opens URLs"
+msgstr  ""
+
+#: src/lang.c:2024
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  ""
+
+#: src/lang.c:2029
+msgid   "Use mouse in xterm"
+msgstr  ""
+
+#: src/lang.c:2030
+msgid   "# If ON enable mouse button support on xterm terminals\n"
+msgstr  ""
+
+#: src/lang.c:2036
+msgid   "Use scroll keys on keypad"
+msgstr  ""
+
+#: src/lang.c:2037
+msgid   "# If ON enable scroll keys on terminals that support it\n"
+msgstr  ""
+
+#: src/lang.c:2042
+msgid   "Enter maximum number of article to get. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2043
+msgid   "Number of articles to get"
+msgstr  ""
+
+#: src/lang.c:2044
+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:2049
+msgid   "Enter number of days article is considered recent. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2050
+msgid   "Article recentness time limit"
+msgstr  ""
+
+#: src/lang.c:2051
+msgid   "# Number of days in which article is considered recent, (0=OFF)\n"
+msgstr  ""
+
+#: src/lang.c:2055
+msgid   "WILDMAT for normal wildcards, REGEX for full regular expression matching."
+msgstr  ""
 
 #: src/lang.c:2056
-msgid	"Attr. of highlighting with _dash_"
-msgstr	""
+msgid   "Wildcard matching"
+msgstr  ""
 
 #: src/lang.c:2057
-msgid	"# Attribute of word highlighting with _dash_\n"
-	"# Default: 2 (best highlighting)\n"
-msgstr	""
-
-#: src/lang.c:2063
-msgid	"Attr. of highlighting with /slash/"
-msgstr	""
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  ""
 
 #: src/lang.c:2064
-msgid	"# Attribute of word highlighting with /slash/\n"
-	"# Default: 5 (half bright)\n"
-msgstr	""
+msgid   "Enter minimal score before an article is marked killed. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2065
+msgid   "Score limit (kill)"
+msgstr  ""
+
+#: src/lang.c:2066
+msgid   "# Score limit before an article is marked killed\n"
+msgstr  ""
 
 #: src/lang.c:2070
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	""
+msgid   "Enter default score to kill articles. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2071
-msgid	"# Attribute of word highlighting with -stroke-\n"
-	"# Default: 3 (reverse video)\n"
-msgstr	""
+msgid   "Default score to kill articles"
+msgstr  ""
+
+#: src/lang.c:2072
+msgid   "# Default score to kill articles\n"
+msgstr  ""
+
+#: src/lang.c:2076
+msgid   "Enter minimal score before an article is marked hot. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2077
-msgid	"URL highlighting in message body"
-msgstr	""
+msgid   "Score limit (select)"
+msgstr  ""
 
 #: src/lang.c:2078
-msgid	"# Enable URL highlighting?\n"
-msgstr	""
+msgid   "# Score limit before an article is marked hot\n"
+msgstr  ""
+
+#: src/lang.c:2082
+msgid   "Enter default score to select articles. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2083
-msgid	"Word highlighting in message body"
-msgstr	""
+msgid   "Default score to select articles"
+msgstr  ""
 
 #: src/lang.c:2084
-msgid	"# Enable word highlighting?\n"
-msgstr	""
-
-#: src/lang.c:2089
-msgid	"What to display instead of mark"
-msgstr	""
+msgid   "# Default score to select articles\n"
+msgstr  ""
 
 #: src/lang.c:2090
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	""
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  ""
+
+#: src/lang.c:2091
+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:2099
-msgid	"Enter column number to wrap article lines to in the pager. <CR> sets."
-msgstr	""
+msgid   "Use ANSI color"
+msgstr  "Använd ANSI-färg"
 
 #: src/lang.c:2100
-msgid	"Page line wrap column"
-msgstr	""
+msgid   "# If ON using ANSI-color\n"
+msgstr  ""
 
-#: src/lang.c:2101
-msgid	"# Wrap article lines at column\n"
-msgstr	""
+#: src/lang.c:2105
+msgid   "Standard foreground color"
+msgstr  ""
 
 #: src/lang.c:2106
-msgid	"Wrap around threads on next unread"
-msgstr	""
-
-#: src/lang.c:2107
-msgid	"# If ON wrap around threads on searching next unread article\n"
-msgstr	""
-
-#: src/lang.c:2111
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	""
+msgid   "# Standard foreground color\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
 
 #: src/lang.c:2112
-msgid	"Mail address (and fullname)"
-msgstr	"E-postadress (och hela namnet)"
+msgid   "Standard background color"
+msgstr  ""
 
 #: src/lang.c:2113
-msgid	"# User's mail address (and fullname), if not username@host (fullname)\n"
-msgstr	""
-
-#: src/lang.c:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	""
+msgid   "# Standard background color\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
 
 #: src/lang.c:2119
-msgid	"# If ON show empty Followup-To header when editing an article\n"
-msgstr	""
+msgid   "Color for inverse text (background)"
+msgstr  ""
 
-#: src/lang.c:2123
-msgid	"Enter path/! command/--none to create your default signature. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2124
-msgid	"Create signature from path/command"
-msgstr	""
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	""
-
-#: src/lang.c:2132
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	""
+#: src/lang.c:2120
+msgid   "# Color of background for inverse text\n"
+        "# Default: 4 (blue)\n"
+msgstr  ""
+
+#: src/lang.c:2126
+msgid   "Color for inverse text (foreground)"
+msgstr  ""
+
+#: src/lang.c:2127
+msgid   "# Color of foreground for inverse text\n"
+        "# Default: 7 (white)\n"
+msgstr  ""
 
 #: src/lang.c:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	""
+msgid   "Color of text lines"
+msgstr  ""
 
 #: src/lang.c:2134
-msgid	"# If ON prepend the signature with dashes '\\n-- \\n'\n"
-msgstr	""
-
-#: src/lang.c:2138
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2139
-msgid	"Add signature when reposting"
-msgstr	""
+msgid   "# Color of text lines\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
 
 #: src/lang.c:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	""
+msgid   "Color of mini help menu"
+msgstr  ""
 
-#: src/lang.c:2144
-#, c-format
-msgid	"Enter quotation marks, %s or %S for author's initials."
-msgstr	""
-
-#: src/lang.c:2145
-msgid	"Characters used as quote-marks"
-msgstr	""
-
-#: src/lang.c:2146
-#, 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:2152
-msgid	"Quoting behavior"
-msgstr	""
-
-#: src/lang.c:2153
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	""
-
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
-msgid	"%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
-msgstr	""
-
-#: src/lang.c:2167
-msgid	"Quote line when following up"
-msgstr	""
+#: src/lang.c:2141
+msgid   "# Color of mini help menu\n"
+        "# Default: 3 (brown)\n"
+msgstr  ""
+
+#: src/lang.c:2147
+msgid   "Color of help text"
+msgstr  ""
+
+#: src/lang.c:2148
+msgid   "# Color of help pages\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
+
+#: src/lang.c:2154
+msgid   "Color of status messages"
+msgstr  ""
+
+#: src/lang.c:2155
+msgid   "# Color of messages in last line\n"
+        "# Default: 6 (cyan)\n"
+msgstr  ""
+
+#: src/lang.c:2161
+msgid   "Color of quoted lines"
+msgstr  ""
+
+#: src/lang.c:2162
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  ""
 
 #: src/lang.c:2168
-#, 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	""
+msgid   "Color of twice quoted line"
+msgstr  ""
+
+#: src/lang.c:2169
+msgid   "# Color of twice quoted lines\n"
+        "# Default: 3 (brown)\n"
+msgstr  ""
 
 #: src/lang.c:2175
-msgid	"Quote line when cross-posting"
-msgstr	""
+msgid   "Color of =>3 times quoted line"
+msgstr  ""
 
-#: src/lang.c:2181
-msgid	"Quote line when mailing"
-msgstr	""
-
-#: src/lang.c:2186
-msgid	"If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2187
-msgid	"Insert 'User-Agent:'-header"
-msgstr	""
-
-#: src/lang.c:2188
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	""
-
-#: src/lang.c:2193
-msgid	"Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
-msgstr	""
-
-#: src/lang.c:2194
-msgid	"MM_CHARSET"
-msgstr	"MM_CHARSET"
-
-#: src/lang.c:2195
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	""
-
-#: src/lang.c:2205
-msgid	"MM_NETWORK_CHARSET"
-msgstr	"MM_NETWORK_CHARSET"
-
-#: src/lang.c:2206
-msgid	"# Charset used for MIME (Content-Type) header in postings.\n"
-msgstr	""
-
-#: src/lang.c:2212
-msgid	"Mailbox format"
-msgstr	"Format på postlåda"
-
-#: src/lang.c:2213
-msgid	"# Format of the mailbox.\n"
-msgstr	"# Format på postlåda.\n"
+#: src/lang.c:2176
+msgid   "# Color of >=3 times quoted lines\n"
+        "# Default: 4 (blue)\n"
+msgstr  ""
+
+#: src/lang.c:2182
+msgid   "Color of article header lines"
+msgstr  ""
+
+#: src/lang.c:2183
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  ""
+
+#: src/lang.c:2189
+msgid   "Color of actual news header fields"
+msgstr  ""
+
+#: src/lang.c:2190
+msgid   "# Color of actual news header fields\n"
+        "# Default: 9 (light red)\n"
+msgstr  ""
+
+#: src/lang.c:2196
+msgid   "Color of article subject lines"
+msgstr  ""
+
+#: src/lang.c:2197
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  ""
+
+#: src/lang.c:2203
+msgid   "Color of response counter"
+msgstr  ""
+
+#: src/lang.c:2204
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  ""
+
+#: src/lang.c:2210
+msgid   "Color of sender (From:)"
+msgstr  ""
+
+#: src/lang.c:2211
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  ""
+
+#: src/lang.c:2217
+msgid   "Color of help/mail sign"
+msgstr  ""
 
 #: src/lang.c:2218
-msgid	"MIME encoding in news messages"
-msgstr	""
-
-#: src/lang.c:2219
-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"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	""
-
-#: src/lang.c:2227 src/lang.c:2248
-msgid	"Don't change unless you know what you are doing. <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:2228
-msgid	"Use 8bit characters in news headers"
-msgstr	""
-
-#: src/lang.c:2229
-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:2236
-msgid	"Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
-
-#: src/lang.c:2237
-msgid	"View post-processed files"
-msgstr	""
+msgid   "# Color of Help/Mail-Sign\n"
+        "# Default: 4 (blue)\n"
+msgstr  ""
+
+#: src/lang.c:2224
+msgid   "Color of signatures"
+msgstr  "Färg för signaturer"
+
+#: src/lang.c:2225
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  ""
+
+#: src/lang.c:2231
+msgid   "Color of highlighted URLs"
+msgstr  ""
+
+#: src/lang.c:2232
+msgid   "# Color of highlighted URLs\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
 
 #: src/lang.c:2238
-msgid	"# If set, post processed files will be opened in a viewer\n"
-msgstr	""
+msgid   "Color of verbatim blocks"
+msgstr  ""
 
-#: src/lang.c:2243
-msgid	"MIME encoding in mail messages"
-msgstr	""
-
-#: src/lang.c:2249
-msgid	"Use 8bit characters in mail headers"
-msgstr	""
-
-#: src/lang.c:2250
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	""
+#: src/lang.c:2239
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  ""
+
+#: src/lang.c:2245
+msgid   "Color of highlighting with *stars*"
+msgstr  ""
+
+#: src/lang.c:2246
+msgid   "# Color of word highlighting with *stars*\n"
+        "# Default: 11 (yellow)\n"
+msgstr  ""
+
+#: src/lang.c:2252
+msgid   "Color of highlighting with _dash_"
+msgstr  ""
+
+#: src/lang.c:2253
+msgid   "# Color of word highlighting with _dash_\n"
+        "# Default: 13 (light pink)\n"
+msgstr  ""
+
+#: src/lang.c:2259
+msgid   "Color of highlighting with /slash/"
+msgstr  ""
 
 #: src/lang.c:2260
-msgid	"Strip blanks from ends of lines"
-msgstr	""
-
-#: src/lang.c:2261
-msgid	"# If ON strip blanks from ends of lines for faster display on slow "
-	"terminals.\n"
-msgstr	""
+msgid   "# Color of word highlighting with /slash/\n"
+        "# Default: 14 (light cyan)\n"
+msgstr  ""
 
 #: src/lang.c:2266
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Color of highlighting with -stroke-"
+msgstr  ""
 
 #: src/lang.c:2267
-msgid	"Transliteration"
-msgstr	""
-
-#: src/lang.c:2268
-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	""
+msgid   "# Color of word highlighting with -stroke-\n"
+        "# Default: 12 (light blue)\n"
+msgstr  ""
+
+#: src/lang.c:2274
+msgid   "Attr. of highlighting with *stars*"
+msgstr  ""
 
 #: src/lang.c:2275
-msgid	"Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2276
-msgid	"Send you a cc automatically"
-msgstr	""
-
-#: src/lang.c:2277
-msgid	"# If ON automatically put your name in the Cc: field when mailing an article\n"
-msgstr	""
-
-#: src/lang.c:2281
-msgid	"Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2282
-msgid	"Send you a blind cc automatically"
-msgstr	""
-
-#: src/lang.c:2283
-msgid	"# If ON automatically put your name in the Bcc: field when mailing an "
-	"article\n"
-msgstr	""
-
-#: src/lang.c:2287
-msgid	"Enter address elements about which you want to be warned. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2288
-msgid	"Spamtrap warning address parts"
-msgstr	""
-
-#: src/lang.c:2289
-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:2294
-msgid	"Enter default number of days a filter entry will be valid. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2295
-msgid	"No. of days a filter entry is valid"
-msgstr	""
-
-#: src/lang.c:2296
-msgid	"# Number of days a short term filter will be active\n"
-msgstr	""
-
-#: src/lang.c:2300
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2301
-msgid	"Add posted articles to filter"
-msgstr	""
-
-#: src/lang.c:2302
-msgid	"# If ON add posted articles which start a new thread to filter for\n"
-	"# highlighting follow-ups\n"
-msgstr	""
-
-#: src/lang.c:2306
-msgid	"The directory where articles/threads are to be saved in mailbox format."
-msgstr	""
-
-#: src/lang.c:2307
-msgid	"Mail directory"
-msgstr	"Postkatalog"
-
-#: src/lang.c:2308
-msgid	"# (-m) directory where articles/threads are saved in mailbox format\n"
-msgstr	""
-
-#: src/lang.c:2313
-msgid	"Save articles in batch mode (-S)"
-msgstr	""
-
-#: src/lang.c:2314
-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:2319
-msgid	"The directory where you want articles/threads saved."
-msgstr	""
-
-#: src/lang.c:2320
-msgid	"Directory to save arts/threads in"
-msgstr	""
-
-#: src/lang.c:2321
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	""
-
-#: src/lang.c:2325
-msgid	"Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2326
-msgid	"Use Archive-name: header for save"
-msgstr	""
-
-#: src/lang.c:2327
-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:2332
-msgid	"Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
-	"cancels."
-msgstr	""
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  ""
+
+#: src/lang.c:2290
+msgid   "Attr. of highlighting with _dash_"
+msgstr  ""
+
+#: src/lang.c:2291
+msgid   "# Attribute of word highlighting with _dash_\n"
+        "# Default: 2 (best highlighting)\n"
+msgstr  ""
+
+#: src/lang.c:2297
+msgid   "Attr. of highlighting with /slash/"
+msgstr  ""
+
+#: src/lang.c:2298
+msgid   "# Attribute of word highlighting with /slash/\n"
+        "# Default: 5 (half bright)\n"
+msgstr  ""
+
+#: src/lang.c:2304
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  ""
+
+#: src/lang.c:2305
+msgid   "# Attribute of word highlighting with -stroke-\n"
+        "# Default: 3 (reverse video)\n"
+msgstr  ""
+
+#: src/lang.c:2311
+msgid   "URL highlighting in message body"
+msgstr  ""
+
+#: src/lang.c:2312
+msgid   "# Enable URL highlighting?\n"
+msgstr  ""
+
+#: src/lang.c:2317
+msgid   "Word highlighting in message body"
+msgstr  ""
+
+#: src/lang.c:2318
+msgid   "# Enable word highlighting?\n"
+msgstr  ""
+
+#: src/lang.c:2323
+msgid   "What to display instead of mark"
+msgstr  ""
+
+#: src/lang.c:2324
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  ""
 
 #: src/lang.c:2333
-msgid	"Mark saved articles/threads as read"
-msgstr	""
+msgid   "Enter column number to wrap article lines to in the pager. <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2334
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	""
+msgid   "Page line wrap column"
+msgstr  ""
 
-#: src/lang.c:2338
-msgid	"Do post processing (eg. extract attachments) for saved articles."
-msgstr	""
-
-#: src/lang.c:2339
-msgid	"Post process saved articles"
-msgstr	""
+#: src/lang.c:2335
+msgid   "# Wrap article lines at column\n"
+msgstr  ""
 
 #: src/lang.c:2340
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	""
-
-#: src/lang.c:2349
-msgid	"Process only unread articles"
-msgstr	""
-
-#: src/lang.c:2350
-msgid	"# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
-msgstr	""
-
-#: src/lang.c:2355
-msgid	"Print all or just part of header. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2356
-msgid	"Print all headers when printing"
-msgstr	""
+msgid   "Wrap around threads on next unread"
+msgstr  ""
+
+#: src/lang.c:2341
+msgid   "# If ON wrap around threads on searching next unread article\n"
+msgstr  ""
+
+#: src/lang.c:2345
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2346 src/lang.c:2770
+msgid   "Mail address (and fullname)"
+msgstr  "E-postadress (och hela namnet)"
+
+#: src/lang.c:2347
+msgid   "# User's mail address (and fullname), if not username@host (fullname)\n"
+msgstr  ""
+
+#: src/lang.c:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  ""
+
+#: src/lang.c:2353
+msgid   "# If ON show empty Followup-To header when editing an article\n"
+msgstr  ""
 
 #: src/lang.c:2357
-msgid	"# If ON print all of article header otherwise just the important lines\n"
-msgstr	""
+msgid   "Enter path/! command/--none to create your default signature. <CR> sets."
+msgstr  ""
 
-#: src/lang.c:2361
-msgid	"The printer program with options that is to be used to print articles/threads."
-msgstr	""
-
-#: src/lang.c:2362
-msgid	"Printer program with options"
-msgstr	""
-
-#: src/lang.c:2363
-msgid	"# Print program with parameters used to print articles/threads\n"
-msgstr	""
-
-#: src/lang.c:2369
-msgid	"Force redraw after certain commands"
-msgstr	""
-
-#: src/lang.c:2370
-msgid	"# If ON a screen redraw will always be done after certain external commands\n"
-msgstr	""
+#: src/lang.c:2358
+msgid   "Create signature from path/command"
+msgstr  ""
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  ""
+
+#: src/lang.c:2366
+msgid   "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  ""
+
+#: src/lang.c:2368
+msgid   "# If ON prepend the signature with dashes '\\n-- \\n'\n"
+msgstr  ""
+
+#: src/lang.c:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  ""
 
 #: src/lang.c:2374
-msgid	"Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	""
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  ""
+
+#: src/lang.c:2378
+#, c-format
+msgid   "Enter quotation marks, %s or %S for author's initials."
+msgstr  ""
 
-#: src/lang.c:2375
-msgid	"Start editor with line offset"
-msgstr	""
-
-#: src/lang.c:2376
-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:2381
-msgid	"Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
-msgstr	""
-
-#: src/lang.c:2382
-msgid	"Invocation of your editor"
-msgstr	""
-
-#: src/lang.c:2383
-#, c-format
-msgid	"# Format of editor line including parameters\n"
-	"# %%E Editor  %%F Filename  %%N Linenumber\n"
-msgstr	""
-
-#: src/lang.c:2388
-msgid	"Enter name and options for external-inews, --internal for internal inews"
-msgstr	""
-
-#: src/lang.c:2389
-msgid	"External inews"
-msgstr	"Extern inews"
-
-#: src/lang.c:2390
-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:2394
-msgid	"Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."
-msgstr	""
-
-#: src/lang.c:2395
-msgid	"Invocation of your mail command"
-msgstr	""
-
-#: src/lang.c:2396
-#, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	""
-
-#: src/lang.c:2404
-msgid	"Use interactive mail reader"
-msgstr	""
-
-#: src/lang.c:2405
-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	""
-
-#: src/lang.c:2414
-msgid	"Remove ~/.article after posting"
-msgstr	"Ta bort ~/.article efter postning"
+#: src/lang.c:2379
+msgid   "Characters used as quote-marks"
+msgstr  ""
+
+#: src/lang.c:2380
+#, 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:2386
+msgid   "Quoting behavior"
+msgstr  ""
+
+#: src/lang.c:2387
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  ""
+
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
+msgid   "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
+msgstr  ""
+
+#: src/lang.c:2401
+msgid   "Quote line when following up"
+msgstr  ""
+
+#: src/lang.c:2402
+#, 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:2409
+msgid   "Quote line when cross-posting"
+msgstr  ""
 
 #: src/lang.c:2415
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	""
-
-#: src/lang.c:2419
-msgid	"Filename for all posted articles, <CR> sets, no filename=do not save."
-msgstr	""
+msgid   "Quote line when mailing"
+msgstr  ""
 
 #: src/lang.c:2420
-msgid	"Filename for posted articles"
-msgstr	""
+msgid   "If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
 #: src/lang.c:2421
-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:2426
-msgid	"Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "Insert 'User-Agent:' header"
+msgstr  ""
+
+#: src/lang.c:2422
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  ""
 
 #: src/lang.c:2427
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	""
+msgid   "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  ""
 
 #: src/lang.c:2428
-msgid	"# If ON keep all failed postings in ~/dead.articles\n"
-msgstr	""
+msgid   "MM_CHARSET"
+msgstr  "MM_CHARSET"
 
-#: src/lang.c:2432
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	""
-
-#: src/lang.c:2433
-msgid	"No unsubscribed groups in newsrc"
-msgstr	""
-
-#: src/lang.c:2434
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	""
+#: src/lang.c:2429
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  ""
 
 #: src/lang.c:2439
-msgid	"Remove bogus groups from newsrc"
-msgstr	""
+msgid   "MM_NETWORK_CHARSET"
+msgstr  "MM_NETWORK_CHARSET"
 
 #: src/lang.c:2440
-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	""
-
-#: src/lang.c:2448
-msgid	"Enter number of seconds until active file will be reread. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2449
-msgid	"Interval in secs to reread active"
-msgstr	""
-
-#: src/lang.c:2450
-msgid	"# Time interval in seconds between rereading the active file (0=never)\n"
-msgstr	""
-
-#: src/lang.c:2455
-msgid	"Reconnect to server automatically"
-msgstr	""
-
-#: src/lang.c:2456
-msgid	"# If ON automatically reconnect to NNTP server if the connection is broken\n"
-msgstr	""
+msgid   "# Charset used for MIME (Content-Type) header in postings.\n"
+msgstr  ""
+
+#: src/lang.c:2444
+msgid   "Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2445
+#, fuzzy
+msgid   "MM_LOCAL_CHARSET"
+msgstr  "MM_CHARSET"
+
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  ""
+
+#: src/lang.c:2453
+msgid   "Mailbox format"
+msgstr  "Format på postlåda"
+
+#: src/lang.c:2454
+msgid   "# Format of the mailbox.\n"
+msgstr  "# Format på postlåda.\n"
+
+#: src/lang.c:2459
+msgid   "MIME encoding in news messages"
+msgstr  ""
 
 #: src/lang.c:2460
-msgid	"Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
-msgstr	""
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  ""
+
+#: src/lang.c:2468 src/lang.c:2489
+msgid   "Don't change unless you know what you are doing. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2469
+msgid   "Use 8bit characters in news headers"
+msgstr  ""
+
+#: src/lang.c:2470
+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:2477
+msgid   "Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2478
+msgid   "View post-processed files"
+msgstr  ""
+
+#: src/lang.c:2479
+msgid   "# If set, post processed files will be opened in a viewer\n"
+msgstr  ""
+
+#: src/lang.c:2484
+msgid   "MIME encoding in mail messages"
+msgstr  ""
+
+#: src/lang.c:2490
+msgid   "Use 8bit characters in mail headers"
+msgstr  ""
+
+#: src/lang.c:2491
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  ""
+
+#: src/lang.c:2501
+msgid   "Strip blanks from ends of lines"
+msgstr  ""
+
+#: src/lang.c:2502
+msgid   "# If ON strip blanks from ends of lines for faster display on slow "
+        "terminals.\n"
+msgstr  ""
+
+#: src/lang.c:2507
+msgid   "If ON, use transliteration. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2508
+msgid   "Transliteration"
+msgstr  ""
+
+#: src/lang.c:2509
+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:2517
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  ""
+
+#: src/lang.c:2518
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\n"
+msgstr  ""
+
+#: src/lang.c:2527
+msgid   "Enter address elements about which you want to be warned. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2528
+msgid   "Spamtrap warning address parts"
+msgstr  ""
+
+#: src/lang.c:2529
+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:2534
+msgid   "Enter default number of days a filter entry will be valid. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2535
+msgid   "No. of days a filter entry is valid"
+msgstr  ""
+
+#: src/lang.c:2536
+msgid   "# Number of days a short term filter will be active\n"
+msgstr  ""
+
+#: src/lang.c:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2541
+msgid   "Add posted articles to filter"
+msgstr  ""
+
+#: src/lang.c:2542
+msgid   "# If ON add posted articles which start a new thread to filter for\n"
+        "# highlighting follow-ups\n"
+msgstr  ""
+
+#: src/lang.c:2546
+msgid   "The directory where articles/threads are to be saved in mailbox format."
+msgstr  ""
+
+#: src/lang.c:2547
+msgid   "Mail directory"
+msgstr  "Postkatalog"
+
+#: src/lang.c:2548
+msgid   "# (-m) directory where articles/threads are saved in mailbox format\n"
+msgstr  ""
+
+#: src/lang.c:2553
+msgid   "Save articles in batch mode (-S)"
+msgstr  ""
+
+#: src/lang.c:2554
+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:2559
+msgid   "The directory where you want articles/threads saved."
+msgstr  ""
+
+#: src/lang.c:2560
+msgid   "Directory to save arts/threads in"
+msgstr  ""
+
+#: src/lang.c:2561
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  ""
+
+#: src/lang.c:2565
+msgid   "Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2566
+msgid   "Use Archive-name: header for save"
+msgstr  ""
+
+#: src/lang.c:2567
+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:2572
+msgid   "Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
+        "cancels."
+msgstr  ""
+
+#: src/lang.c:2573
+msgid   "Mark saved articles/threads as read"
+msgstr  ""
+
+#: src/lang.c:2574
+msgid   "# If ON mark articles that are saved as read\n"
+msgstr  ""
+
+#: src/lang.c:2578
+msgid   "Do post processing (eg. extract attachments) for saved articles."
+msgstr  ""
+
+#: src/lang.c:2579
+msgid   "Post process saved articles"
+msgstr  ""
+
+#: src/lang.c:2580
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+msgstr  ""
+
+#: src/lang.c:2589
+msgid   "Process only unread articles"
+msgstr  ""
+
+#: src/lang.c:2590
+msgid   "# If ON only save/print/pipe/mail unread articles (tagged articles excepted)\n"
+msgstr  ""
+
+#: src/lang.c:2595
+msgid   "Print all or just part of header. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2596
+msgid   "Print all headers when printing"
+msgstr  ""
+
+#: src/lang.c:2597
+msgid   "# If ON print all of article header otherwise just the important lines\n"
+msgstr  ""
+
+#: src/lang.c:2601
+msgid   "The printer program with options that is to be used to print articles/threads."
+msgstr  ""
+
+#: src/lang.c:2602
+msgid   "Printer program with options"
+msgstr  ""
+
+#: src/lang.c:2603
+msgid   "# Print program with parameters used to print articles/threads\n"
+msgstr  ""
+
+#: src/lang.c:2609
+msgid   "Force redraw after certain commands"
+msgstr  ""
+
+#: src/lang.c:2610
+msgid   "# If ON a screen redraw will always be done after certain external commands\n"
+msgstr  ""
+
+#: src/lang.c:2614
+msgid   "Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2615
+msgid   "Start editor with line offset"
+msgstr  ""
+
+#: src/lang.c:2616
+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:2621
+msgid   "Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2622
+msgid   "Invocation of your editor"
+msgstr  ""
+
+#: src/lang.c:2623
+#, c-format
+msgid   "# Format of editor line including parameters\n"
+        "# %%E Editor  %%F Filename  %%N Linenumber\n"
+msgstr  ""
+
+#: src/lang.c:2628
+msgid   "Enter name and options for external-inews, --internal for internal inews"
+msgstr  ""
+
+#: src/lang.c:2629
+msgid   "External inews"
+msgstr  "Extern inews"
+
+#: src/lang.c:2630
+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:2634
+msgid   "Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."
+msgstr  ""
+
+#: src/lang.c:2635
+msgid   "Invocation of your mail command"
+msgstr  ""
+
+#: src/lang.c:2636
+#, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  ""
+
+#: src/lang.c:2644
+msgid   "Use interactive mail reader"
+msgstr  ""
+
+#: src/lang.c:2645
+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  ""
+
+#: src/lang.c:2654
+msgid   "Remove ~/.article after posting"
+msgstr  "Ta bort ~/.article efter postning"
+
+#: src/lang.c:2655
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  ""
+
+#: src/lang.c:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
+
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
+
+#: src/lang.c:2667
+msgid   "Filename for all posted articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2668
+msgid   "Filename for posted articles"
+msgstr  ""
+
+#: src/lang.c:2669
+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:2674
+msgid   "Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2675
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  ""
+
+#: src/lang.c:2676
+msgid   "# If ON keep all failed postings in ~/dead.articles\n"
+msgstr  ""
+
+#: src/lang.c:2680
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  ""
+
+#: src/lang.c:2681
+msgid   "No unsubscribed groups in newsrc"
+msgstr  ""
+
+#: src/lang.c:2682
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  ""
+
+#: src/lang.c:2687
+msgid   "Remove bogus groups from newsrc"
+msgstr  ""
+
+#: src/lang.c:2688
+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  ""
+
+#: src/lang.c:2696
+msgid   "Enter number of seconds until active file will be reread. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2697
+msgid   "Interval in secs to reread active"
+msgstr  ""
+
+#: src/lang.c:2698
+msgid   "# Time interval in seconds between rereading the active file (0=never)\n"
+msgstr  ""
+
+#: src/lang.c:2703
+msgid   "Reconnect to server automatically"
+msgstr  ""
+
+#: src/lang.c:2704
+msgid   "# If ON automatically reconnect to NNTP server if the connection is broken\n"
+msgstr  ""
+
+#: src/lang.c:2708
+msgid   "Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2709
+msgid   "Cache NNTP overview files locally"
+msgstr  ""
+
+#: src/lang.c:2710
+msgid   "# If ON, create local copies of NNTP overview files.\n"
+msgstr  ""
+
+#: src/lang.c:2714
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2715
+msgid   "Format string for display of dates"
+msgstr  ""
+
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  ""
+
+#: src/lang.c:2722
+msgid   "Unicode normalization form"
+msgstr  ""
+
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  ""
+
+#: src/lang.c:2735
+msgid   "Render BiDi"
+msgstr  ""
+
+#: src/lang.c:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  ""
+
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  ""
+
+#: src/lang.c:2752
+msgid   "Delete post-process files"
+msgstr  ""
+
+#: src/lang.c:2757
+msgid   "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr  ""
+
+#: src/lang.c:2758
+msgid   "Mailbox to save sent mails"
+msgstr  ""
+
+#: src/lang.c:2763
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2764
+msgid   "Followup-To: header"
+msgstr  ""
+
+#: src/lang.c:2769
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2776
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  ""
+
+#: src/lang.c:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  ""
+
+#: src/lang.c:2784
+#, fuzzy
+msgid   "Mailing list address"
+msgstr  "Skickar logg till %s\n"
+
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  ""
+
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  ""
+
+#: src/lang.c:2801
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  ""
+
+#: src/lang.c:2807
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  ""
 
-#: src/lang.c:2461
-msgid	"Cache NNTP overview files locally"
-msgstr	""
+#: src/lang.c:2808
+#, fuzzy
+msgid   "savefile"
+msgstr  "Spara filnamn> "
 
-#: src/lang.c:2462
-msgid	"# If ON, create local copies of NNTP overview files.\n"
-msgstr	""
+#: src/lang.c:2813 src/lang.c:2837
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2814
+msgid   "Quick (1 key) select filter scope"
+msgstr  ""
+
+#: src/lang.c:2819 src/lang.c:2843
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
+
+#: src/lang.c:2825 src/lang.c:2849
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2826
+msgid   "Quick (1 key) select filter case"
+msgstr  ""
+
+#: src/lang.c:2831 src/lang.c:2855
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  ""
+
+#: src/lang.c:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
+
+#: src/lang.c:2838
+msgid   "Quick (1 key) kill filter scope"
+msgstr  ""
+
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
+
+#: src/lang.c:2850
+msgid   "Quick (1 key) kill filter case"
+msgstr  ""
+
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
+
+#: src/lang.c:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  ""
 
-#: src/lang.c:2466
-msgid	"Enter format string. <CR> sets, <ESC> cancels."
-msgstr	""
+#: src/lang.c:2863
+#, fuzzy
+msgid   "UNDECLARED_CHARSET"
+msgstr  "MM_NETWORK_CHARSET"
 
-#: src/lang.c:2467
-msgid	"Format string for display of dates"
-msgstr	""
+#: src/lang.c:2869
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  ""
 
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	""
+#: src/lang.c:2870
+#, fuzzy
+msgid   "X_Body"
+msgstr  "Fet"
 
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	""
+#: src/lang.c:2875
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  ""
 
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	""
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  ""
 
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	""
+#: src/lang.c:2881
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  ""
 
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	""
+#: src/lang.c:2882
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  ""
 
-#: src/misc.c:3750
+#: src/misc.c:3754
 #, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	"Version: %s %s utgåva %s (\"%s\") %s %s\n"
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "Version: %s %s utgåva %s (\"%s\") %s %s\n"
 
-#: src/misc.c:3753
+#: src/misc.c:3757
 #, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	"Version: %s %s utgåva %s (\"%s\")\n"
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "Version: %s %s utgåva %s (\"%s\")\n"
 
-#: src/newsrc.c:430
-msgid	"Unreachable?\n"
-msgstr	"Ej nåbar?\n"
+#: src/newsrc.c:453
+msgid   "Unreachable?\n"
+msgstr  "Ej nåbar?\n"
 
-#: src/nntplib.c:824
+#: src/nntplib.c:819
 #, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	""
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  ""
 
-#: src/nntplib.c:842 src/nntplib.c:1630
-msgid	"Rejoin current group\n"
-msgstr	""
+#: src/nntplib.c:855 src/nntplib.c:1830
+msgid   "Rejoin current group\n"
+msgstr  ""
 
-#: src/nntplib.c:849 src/nntplib.c:1637
+#: src/nntplib.c:863 src/nntplib.c:1838
 #, c-format
-msgid	"Read (%s)\n"
-msgstr	"Läs (%s)\n"
+msgid   "Read (%s)\n"
+msgstr  "Läs (%s)\n"
 
-#: src/nntplib.c:851
+#: src/nntplib.c:865
 #, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	""
+msgid   "Resend last command (%s)\n"
+msgstr  ""
 
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  ""
+
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  ""
 
-#: src/nrctbl.c:170
+#: src/nrctbl.c:175
 #, c-format
-msgid	"couldn't expand %s\n"
-msgstr	""
+msgid   "couldn't expand %s\n"
+msgstr  ""
 
-#: src/post.c:1171
+#: src/post.c:1307
 #, 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	""
+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:1312
 #, 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	""
+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:1314
 #, c-format
-msgid	"Line %d is longer than 998 octets, and should be folded, but\n"
-	"encoding is not set to %s\n"
-msgstr	""
+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:2278
 #, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"Postar: %.*s ..."
+msgid   "Posting: %.*s ..."
+msgstr  "Postar: %.*s ..."
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	"Avbryter läsning, var god vänta..."
-
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	"Avbröt läsning\n"
-
-#: src/read.c:414
-msgid	"Draining\n"
-msgstr	""
-
-#. Don't hash the initial '<'
-#: src/refs.c:251
-msgid	"unchanged"
-msgstr	"oförändrad"
-
-#: src/refs.c:609
-msgid	"[- Unavailable -]"
-msgstr	"[- Ej tillgänglig -]"
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "Avbryter läsning, var god vänta..."
+
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "Avbröt läsning\n"
+
+#: src/read.c:399
+msgid   "Draining\n"
+msgstr  ""
+
+#: src/refs.c:232
+msgid   "unchanged"
+msgstr  "oförändrad"
+
+#: src/refs.c:599
+msgid   "[- Unavailable -]"
+msgstr  "[- Ej tillgänglig -]"
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	""
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	"byte"
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	"oläst"
-
-#: src/select.c:379
-msgid	"all"
-msgstr	"alla"
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	""
-
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
-#, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	""
-
-#: src/xface.c:99 src/xface.c:131
-#, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	""
-
-#: src/xface.c:109
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	""
-
-#: src/xface.c:123
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	""
-
-#: src/xface.c:162
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  ""
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "byte"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "oläst"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "alla"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  ""
+
+#: src/xface.c:70
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  ""
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
+#, c-format
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  ""
+
+#: src/xface.c:111 src/xface.c:143
+#, c-format
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  ""
+
+#: src/xface.c:121
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  ""
+
+#: src/xface.c:135
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  ""
+
+#: src/xface.c:174
 #, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	""
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  ""
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, c-format
-msgid	"Slrnface failed: %s."
-msgstr	""
+msgid   "Slrnface failed: %s."
+msgstr  ""
+
+#, fuzzy
+#~ msgid        "mark selected articles as read"
+#~ msgstr       "markera artikel som oläst"
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/tin.pot tin-2.0.0/po/tin.pot
--- tin-1.8.3/po/tin.pot	2007-02-01 13:58:13.000000000 +0100
+++ tin-2.0.0/po/tin.pot	2011-08-22 18:32:48.016299355 +0200
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2007-02-01 13:57+0100\n"
+"POT-Creation-Date: 2011-08-22 18:32+0200\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,291 +15,479 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: src/art.c:1534
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
 #, c-format
-msgid "%d Bad overview record (%d fields) '%s'"
+msgid "attribute with no scope: %s"
 msgstr ""
 
-#: src/attrib.c:649
+#: src/attrib.c:884
+msgid "Processing attributes... "
+msgstr ""
+
+#: src/attrib.c:1102
 #, c-format
 msgid ""
 "# Do not edit this comment block\n"
 "#\n"
 msgstr ""
 
-#: src/attrib.c:650
+#: src/attrib.c:1103
 #, c-format
-msgid "#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
+msgid "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
 msgstr ""
 
-#: src/attrib.c:651
+#: src/attrib.c:1104
 #, c-format
-msgid "#  maildir=STRING (ie. ~/Mail)\n"
+msgid "#  add_posted_to_filter=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:652
+#: src/attrib.c:1105
 #, c-format
-msgid "#  savedir=STRING (ie. ~user/News)\n"
+msgid "#  advertising=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:653
+#: src/attrib.c:1106
 #, c-format
-msgid "#  savefile=STRING (ie. =linux)\n"
+msgid "#  alternative_handling=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:654
+#: src/attrib.c:1107
 #, c-format
-msgid "#  sigfile=STRING (ie. $var/sig)\n"
+msgid "#  ask_for_metamail=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:655
+#: src/attrib.c:1108
 #, c-format
-msgid "#  organization=STRING (if beginning with '/' read from file)\n"
+msgid "#  auto_cc_bcc=NUM\n"
 msgstr ""
 
-#: src/attrib.c:656
+#: src/attrib.c:1109
 #, c-format
-msgid "#  followup_to=STRING\n"
+msgid "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr ""
+
+#: src/attrib.c:1110
+#, c-format
+msgid "#  auto_list_thread=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1111
+#, c-format
+msgid "#  auto_save=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1112
+#, c-format
+msgid "#  auto_select=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1113
+#, c-format
+msgid "#  batch_save=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1114
+#, c-format
+msgid "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr ""
+
+#: src/attrib.c:1115
+#, c-format
+msgid "#  delete_tmp_files=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:657
+#: src/attrib.c:1116
 #, c-format
-msgid "#  mailing_list=STRING (ie. majordomo@example.org)\n"
+msgid "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
 msgstr ""
 
-#: src/attrib.c:658
+#: src/attrib.c:1117
 #, c-format
-msgid "#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
+msgid "#  fcc=STRING (eg. =mailbox)\n"
 msgstr ""
 
-#: src/attrib.c:659
+#: src/attrib.c:1118
 #, c-format
-msgid "#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
+msgid "#  followup_to=STRING\n"
 msgstr ""
 
-#: src/attrib.c:660
+#: src/attrib.c:1119
 #, c-format
 msgid "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
 msgstr ""
 
-#: src/attrib.c:661
+#: src/attrib.c:1120
 #, c-format
-msgid "#  news_quote_format=STRING\n"
+msgid "#  group_catchup_on_exit=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:662
+#: src/attrib.c:1121
 #, c-format
-msgid "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgid "#  mail_8bit_header=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:663
+#: src/attrib.c:1122
 #, c-format
-msgid "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgid "#  mail_mime_encoding=supported_encoding"
 msgstr ""
 
-#: src/attrib.c:665
+#: src/attrib.c:1130
 #, c-format
 msgid "#  ispell=STRING\n"
 msgstr ""
 
-#: src/attrib.c:667
+#: src/attrib.c:1132
 #, c-format
-msgid "#  auto_select=ON/OFF\n"
+msgid "#  maildir=STRING (eg. ~/Mail)\n"
 msgstr ""
 
-#: src/attrib.c:668
+#: src/attrib.c:1133
 #, c-format
-msgid "#  auto_save=ON/OFF\n"
+msgid "#  mailing_list=STRING (eg. majordomo@example.org)\n"
 msgstr ""
 
-#: src/attrib.c:669
+#: src/attrib.c:1134
 #, c-format
-msgid "#  batch_save=ON/OFF\n"
+msgid "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
 msgstr ""
 
-#: src/attrib.c:670
+#: src/attrib.c:1135
 #, c-format
-msgid "#  delete_tmp_files=ON/OFF\n"
+msgid "#  mark_ignore_tags=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:671
+#: src/attrib.c:1136
 #, c-format
-msgid "#  show_only_unread=ON/OFF\n"
+msgid "#  mark_saved_read=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:672
+#: src/attrib.c:1137
 #, c-format
-msgid "#  thread_arts=NUM"
+msgid "#  mime_forward=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:679
+#: src/attrib.c:1139
 #, c-format
-msgid "#  thread_perc=NUM\n"
+msgid "#  mm_network_charset=supported_charset"
 msgstr ""
 
-#: src/attrib.c:680
+#: src/attrib.c:1146
 #, c-format
-msgid "#  show_author=NUM\n"
+msgid "#  undeclared_charset=STRING (default is US-ASCII)\n"
 msgstr ""
 
-#: src/attrib.c:686
+#: src/attrib.c:1148
 #, c-format
-msgid "#  show_info=NUM\n"
+msgid "#  news_headers_to_display=STRING\n"
 msgstr ""
 
-#: src/attrib.c:692
+#: src/attrib.c:1149
 #, c-format
-msgid "#  sort_art_type=NUM\n"
+msgid "#  news_headers_to_not_display=STRING\n"
 msgstr ""
 
-#: src/attrib.c:710
+#: src/attrib.c:1150
 #, c-format
-msgid "#  sort_threads_type=NUM\n"
+msgid "#  news_quote_format=STRING\n"
+msgstr ""
+
+#: src/attrib.c:1151
+#, c-format
+msgid "#  organization=STRING (if beginning with '/' read from file)\n"
 msgstr ""
 
-#: src/attrib.c:715
+#: src/attrib.c:1152
 #, c-format
-msgid "#  post_proc_type=NUM\n"
+msgid "#  pos_first_unread=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:720
+#: src/attrib.c:1153
+#, c-format
+msgid "#  post_8bit_header=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1154
+#, c-format
+msgid "#  post_mime_encoding=supported_encoding"
+msgstr ""
+
+#: src/attrib.c:1161
+#, c-format
+msgid "#  post_process_type=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1166
+#, c-format
+msgid "#  post_process_view=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1167
 #, c-format
 msgid "#  quick_kill_scope=STRING (ie. talk.*)\n"
 msgstr ""
 
-#: src/attrib.c:721
+#: src/attrib.c:1168
 #, c-format
 msgid "#  quick_kill_expire=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:722
+#: src/attrib.c:1169
 #, c-format
 msgid "#  quick_kill_case=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:723
+#: src/attrib.c:1170
 #, c-format
 msgid "#  quick_kill_header=NUM\n"
 msgstr ""
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1171 src/attrib.c:1180
+#, c-format
+msgid "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr ""
+
+#: src/attrib.c:1172 src/attrib.c:1181
+#, c-format
+msgid "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr ""
+
+#: src/attrib.c:1173 src/attrib.c:1182
 #, c-format
-msgid "#    0=subj (case sensitive) 1=subj (ignore case)\n"
+msgid "#    4=Message-ID: & full References: line\n"
 msgstr ""
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1174 src/attrib.c:1183
 #, c-format
-msgid "#    2=from (case sensitive) 3=from (ignore case)\n"
+msgid "#    5=Message-ID: & last References: entry only\n"
 msgstr ""
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid "#    4=msgid 5=lines\n"
+msgid "#    6=Message-ID: entry only     7=Lines:\n"
 msgstr ""
 
-#: src/attrib.c:727
+#: src/attrib.c:1176
 #, c-format
 msgid "#  quick_select_scope=STRING\n"
 msgstr ""
 
-#: src/attrib.c:728
+#: src/attrib.c:1177
 #, c-format
 msgid "#  quick_select_expire=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:729
+#: src/attrib.c:1178
 #, c-format
 msgid "#  quick_select_case=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:730
+#: src/attrib.c:1179
 #, c-format
 msgid "#  quick_select_header=NUM\n"
 msgstr ""
 
-#: src/attrib.c:734
+#: src/attrib.c:1185
 #, c-format
-msgid "#  x_comment_to=ON/OFF\n"
+msgid "#  quote_chars=STRING (%%s, %%S for initials)\n"
 msgstr ""
 
-#: src/attrib.c:735
+#: src/attrib.c:1187
 #, c-format
-msgid "#  fcc=STRING (eg. =mailbox)\n"
+msgid "#  print_header=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1189
+#, c-format
+msgid "#  process_only_unread=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1190
+#, c-format
+msgid "#  prompt_followupto=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1191
+#, c-format
+msgid "#  savedir=STRING (eg. ~user/News)\n"
+msgstr ""
+
+#: src/attrib.c:1192
+#, c-format
+msgid "#  savefile=STRING (eg. =linux)\n"
+msgstr ""
+
+#: src/attrib.c:1193
+#, c-format
+msgid "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr ""
+
+#: src/attrib.c:1194
+#, c-format
+msgid "#  show_author=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1200
+#, c-format
+msgid "#  show_info=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1206
+#, c-format
+msgid "#  show_signatures=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1207
+#, c-format
+msgid "#  show_only_unread_arts=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1208
+#, c-format
+msgid "#  sigdashes=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1209
+#, c-format
+msgid "#  signature_repost=ON/OFF\n"
+msgstr ""
+
+#: src/attrib.c:1210
+#, c-format
+msgid "#  sort_article_type=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1228
+#, c-format
+msgid "#  sort_threads_type=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1237
+#, c-format
+msgid "#  start_editor_offset=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:736
+#: src/attrib.c:1238
 #, c-format
 msgid "#  tex2iso_conv=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:737
+#: src/attrib.c:1239
 #, c-format
-msgid "#  mime_forward=ON/OFF\n"
+msgid "#  thread_catchup_on_exit=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:739
+#: src/attrib.c:1240
 #, c-format
-msgid "#  mm_network_charset=supported_charset"
+msgid "#  thread_articles=NUM"
 msgstr ""
 
-#: src/attrib.c:746
+#: src/attrib.c:1247
 #, c-format
-msgid "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgid "#  thread_perc=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1248
+#, c-format
+msgid "#  trim_article_body=NUM\n"
+msgstr ""
+
+#: src/attrib.c:1249
+#, c-format
+msgid "#    0 = Don't trim article body\n"
+msgstr ""
+
+#: src/attrib.c:1250
+#, c-format
+msgid "#    1 = Skip leading blank lines\n"
+msgstr ""
+
+#: src/attrib.c:1251
+#, c-format
+msgid "#    2 = Skip trailing blank lines\n"
+msgstr ""
+
+#: src/attrib.c:1252
+#, c-format
+msgid "#    3 = Skip leading and trailing blank lines\n"
+msgstr ""
+
+#: src/attrib.c:1253
+#, c-format
+msgid "#    4 = Compact multiple blank lines between text blocks\n"
 msgstr ""
 
-#: src/attrib.c:748
+#: src/attrib.c:1254
 #, c-format
 msgid ""
-"#\n"
-"# Note that it is best to put general (global scoping)\n"
+"#    5 = Compact multiple blank lines between text blocks and skip\n"
+"#        leading blank lines\n"
 msgstr ""
 
-#: src/attrib.c:749
+#: src/attrib.c:1255
 #, c-format
 msgid ""
-"# entries first followed by group specific entries.\n"
-"#\n"
+"#    6 = Compact multiple blank lines between text blocks and skip\n"
+"#        trailing blank lines\n"
 msgstr ""
 
-#: src/attrib.c:750
+#: src/attrib.c:1256
 #, c-format
 msgid ""
-"############################################################################\n"
-"\n"
+"#    7 = Compact multiple blank lines between text blocks and skip\n"
+"#        leading and trailing blank lines\n"
 msgstr ""
 
-#: src/attrib.c:756
+#: src/attrib.c:1257
 #, c-format
-msgid "# include extra headers\n"
+msgid "#  verbatim_handling=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:764
+#: src/attrib.c:1258
 #, c-format
-msgid "# in *sources* set post process type to shar only\n"
+msgid "#  wrap_on_next_unread=ON/OFF\n"
 msgstr ""
 
-#: src/attrib.c:768
+#: src/attrib.c:1259
 #, c-format
-msgid "# in *binaries* do full post processing but no TeX2ISO conversion,\n"
+msgid "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
 msgstr ""
 
-#: src/attrib.c:769
+#: src/attrib.c:1260
 #, c-format
-msgid "# remove tmp files and set Followup-To: poster\n"
+msgid "#  x_comment_to=ON/OFF\n"
 msgstr ""
 
-#: src/cook.c:499
-msgid "(unknown)"
+#: src/attrib.c:1261
+#, c-format
+msgid "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
 msgstr ""
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid "Removed from the previous rule: "
+#: src/attrib.c:1262
+#, c-format
+msgid ""
+"#\n"
+"# Note that it is best to put general (global scoping)\n"
+msgstr ""
+
+#: src/attrib.c:1263
+#, c-format
+msgid ""
+"# entries first followed by group specific entries.\n"
+"#\n"
+msgstr ""
+
+#: src/attrib.c:1264
+#, c-format
+msgid "############################################################################\n"
+msgstr ""
+
+#: src/cook.c:625
+msgid "(unknown)"
 msgstr ""
 
-#: src/keymap.c:271
+#: src/keymap.c:277
 msgid "NULL"
 msgstr ""
 
@@ -331,15 +519,15 @@ msgstr ""
 msgid "Article cancelled (deleted)."
 msgstr ""
 
-#: src/lang.c:51
+#: src/lang.c:52
 msgid "Article cannot be cancelled (deleted)."
 msgstr ""
 
-#: src/lang.c:52
+#: src/lang.c:54
 msgid "Article deleted."
 msgstr ""
 
-#: src/lang.c:53
+#: src/lang.c:55
 #, c-format
 msgid ""
 "\n"
@@ -348,542 +536,642 @@ msgid ""
 "will be posted to the following %s:\n"
 msgstr ""
 
-#: src/lang.c:54
+#: src/lang.c:56
 msgid "Article not posted!"
 msgstr ""
 
-#: src/lang.c:55
+#: src/lang.c:57
 msgid "Article not saved"
 msgstr ""
 
-#: src/lang.c:56
+#: src/lang.c:58
 msgid "Article Level Commands"
 msgstr ""
 
-#: src/lang.c:57
+#: src/lang.c:59
 msgid "Article has no parent"
 msgstr ""
 
-#: src/lang.c:58
+#: src/lang.c:60
 msgid "Parent article has been killed"
 msgstr ""
 
-#: src/lang.c:59
+#: src/lang.c:61
 msgid "Parent article is unavailable"
 msgstr ""
 
-#: src/lang.c:60
+#: src/lang.c:62
 #, c-format
 msgid "Article posted: %s"
 msgstr ""
 
-#: src/lang.c:61
+#: src/lang.c:63
 #, c-format
 msgid "Article rejected (saved to %s)"
 msgstr ""
 
-#: src/lang.c:62
+#: src/lang.c:64
 #, c-format
 msgid ""
-"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
+"%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
 msgstr ""
 
-#: src/lang.c:63
+#: src/lang.c:65
 msgid "Article unavailable"
 msgstr ""
 
-#: src/lang.c:64
-msgid "Article undeleted."
-msgstr ""
-
 #: src/lang.c:66
-msgid "articles"
+msgid "Article undeleted."
 msgstr ""
 
 #: src/lang.c:67
-msgid "This is a repost of the following article:"
-msgstr ""
-
-#: src/lang.c:68
-msgid "article"
+#, c-format
+msgid "Article %4d of %4d"
 msgstr ""
 
 #: src/lang.c:69
-msgid "Article"
+msgid "articles"
 msgstr ""
 
 #: src/lang.c:70
-#, c-format
-msgid "-- %d %s mailed --"
+msgid "This is a repost of the following article:"
 msgstr ""
 
 #: src/lang.c:71
-#, c-format
-msgid " at %s"
+msgid "article"
 msgstr ""
 
 #: src/lang.c:72
-#, c-format
-msgid "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgid "Article"
 msgstr ""
 
 #: src/lang.c:73
-msgid ", charset: "
+#, c-format
+msgid "-- %d %s mailed --"
 msgstr ""
 
 #: src/lang.c:74
 #, c-format
-msgid "%*s[-- Description: %s --]\n"
+msgid " at %s"
 msgstr ""
 
 #: src/lang.c:75
 #, c-format
-msgid "%d Authentication failed"
+msgid "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
 msgstr ""
 
 #: src/lang.c:76
-msgid "Server expects authentication.\n"
+msgid ", charset: "
 msgstr ""
 
 #: src/lang.c:77
-msgid "    Please enter password: "
+#, c-format
+msgid "%*s[-- charset %s not supported --]\n"
 msgstr ""
 
 #: src/lang.c:78
-msgid "    Please enter username: "
+#, c-format
+msgid "%*s[-- Description: %s --]\n"
 msgstr ""
 
 #: src/lang.c:79
 #, c-format
-msgid "Author search backwards [%s]> "
+msgid "%d lines"
 msgstr ""
 
 #: src/lang.c:80
-#, c-format
-msgid "Author search forwards [%s]> "
+msgid "Attachment Menu"
 msgstr ""
 
 #: src/lang.c:81
-#, c-format
-msgid "Authorized for user: %s\n"
+msgid "Attachment Menu Commands"
 msgstr ""
 
 #: src/lang.c:82
-#, c-format
-msgid "Authorization failed for user: %s\n"
+msgid "<no name>"
 msgstr ""
 
 #: src/lang.c:83
 #, c-format
-msgid ""
-"\n"
-"Autosubscribed to %s"
+msgid "Attachment saved successfully. (%s)"
 msgstr ""
 
 #: src/lang.c:84
-msgid "Autosubscribing groups...\n"
+#, c-format
+msgid "%d of %d attachments saved successfully."
 msgstr ""
 
 #: src/lang.c:85
-#, c-format
-msgid "Autoselecting articles (use '%s' to see all unread) ..."
+msgid "Select attachment> "
+msgstr ""
+
+#: src/lang.c:86
+msgid "Tagged attachment"
 msgstr ""
 
 #: src/lang.c:87
 #, c-format
-msgid "Active file corrupt - %s"
+msgid "%d attachments tagged"
 msgstr ""
 
 #: src/lang.c:88
-#, c-format
-msgid ""
-"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgid "Untagged attachment"
 msgstr ""
 
 #: src/lang.c:89
-#, c-format
-msgid "Unrecognized attribute: %s"
+msgid "Attributes Menu Commands"
 msgstr ""
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid "Bad command. Type '%s' for help."
+msgid "%d Authentication failed"
 msgstr ""
 
 #: src/lang.c:92
-msgid "Base article"
+#, c-format
+msgid "NNTP authorization password not found for %s"
 msgstr ""
 
 #: src/lang.c:93
-msgid "Base article range"
+msgid "Server expects authentication.\n"
 msgstr ""
 
 #: src/lang.c:94
-#, c-format
-msgid "%s: Updating of index files not supported\n"
+msgid "    Please enter password: "
 msgstr ""
 
 #: src/lang.c:95
-msgid "*** Beginning of article ***"
+msgid "    Please enter username: "
+msgstr ""
+
+#: src/lang.c:96
+#, c-format
+msgid "Authorized for user: %s\n"
 msgstr ""
 
 #: src/lang.c:97
 #, c-format
+msgid "Authorization failed for user: %s\n"
+msgstr ""
+
+#: src/lang.c:99
+#, c-format
+msgid "Author search backwards [%s]> "
+msgstr ""
+
+#: src/lang.c:100
+#, c-format
+msgid "Author search forwards [%s]> "
+msgstr ""
+
+#: src/lang.c:101
+#, c-format
+msgid ""
+"\n"
+"Autosubscribed to %s"
+msgstr ""
+
+#: src/lang.c:102
+msgid "Autosubscribing groups...\n"
+msgstr ""
+
+#: src/lang.c:103
+#, c-format
+msgid "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr ""
+
+#: src/lang.c:105
+#, c-format
+msgid "Active file corrupt - %s"
+msgstr ""
+
+#: src/lang.c:106
+#, c-format
+msgid ""
+"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr ""
+
+#: src/lang.c:107
+#, c-format
+msgid "Unrecognized attribute: %s"
+msgstr ""
+
+#: src/lang.c:108
+#, c-format
+msgid "Bad command. Type '%s' for help."
+msgstr ""
+
+#: src/lang.c:110
+msgid "Base article"
+msgstr ""
+
+#: src/lang.c:111
+msgid "Base article range"
+msgstr ""
+
+#: src/lang.c:112
+#, c-format
+msgid "%s: Updating of index files not supported\n"
+msgstr ""
+
+#: src/lang.c:113
+msgid "*** Beginning of article ***"
+msgstr ""
+
+#: src/lang.c:114
+msgid "*** Beginning of page ***"
+msgstr ""
+
+#: src/lang.c:116
+#, c-format
 msgid "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
 msgstr ""
 
-#: src/lang.c:98
+#: src/lang.c:117
 msgid "Cancelling article..."
 msgstr ""
 
-#: src/lang.c:100
+#: src/lang.c:119
 #, c-format
 msgid "Cannot create %s"
 msgstr ""
 
-#: src/lang.c:101
+#: src/lang.c:120
 #, c-format
 msgid "Can't find base article %d"
 msgstr ""
 
-#: src/lang.c:102
+#: src/lang.c:121
 #, c-format
 msgid "Can't open %s"
 msgstr ""
 
-#: src/lang.c:103
+#: src/lang.c:122
 #, c-format
 msgid "Couldn't open %s for saving"
 msgstr ""
 
-#: src/lang.c:104
+#: src/lang.c:123
 msgid "*** Posting not allowed ***"
 msgstr ""
 
-#: src/lang.c:105
+#: src/lang.c:124
 #, c-format
 msgid "Posting is not allowed to %s"
 msgstr ""
 
-#: src/lang.c:106
+#: src/lang.c:126
 #, c-format
 msgid "Can't retrieve %s"
 msgstr ""
 
-#: src/lang.c:107
+#: src/lang.c:128
 #, c-format
 msgid "%s is a directory"
 msgstr ""
 
-#: src/lang.c:108
+#: src/lang.c:129
 msgid "Catchup"
 msgstr ""
 
-#: src/lang.c:109
+#: src/lang.c:130
 #, c-format
 msgid "Catchup %s..."
 msgstr ""
 
-#: src/lang.c:110
+#: src/lang.c:131
 msgid "Catchup all groups entered during this session?"
 msgstr ""
 
-#: src/lang.c:111
+#: src/lang.c:132
 msgid "You have tagged articles in this group - catchup anyway?"
 msgstr ""
 
-#: src/lang.c:112
+#: src/lang.c:133
 #, c-format
 msgid "%s %d %s in %lu seconds\n"
 msgstr ""
 
-#: src/lang.c:113
+#: src/lang.c:134
 msgid "Caughtup"
 msgstr ""
 
-#: src/lang.c:114
+#: src/lang.c:135
 msgid "Check Prepared Article"
 msgstr ""
 
-#: src/lang.c:115
+#: src/lang.c:136
 msgid "Checking for new groups... "
 msgstr ""
 
-#: src/lang.c:116
+#: src/lang.c:137
 msgid "Checking for news..."
 msgstr ""
 
-#: src/lang.c:117
+#: src/lang.c:138
 #, c-format
 msgid "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
 msgstr ""
 
-#: src/lang.c:119
+#: src/lang.c:140
 msgid "ANSI color disabled"
 msgstr ""
 
-#: src/lang.c:120
+#: src/lang.c:141
 msgid "ANSI color enabled"
 msgstr ""
 
-#: src/lang.c:122
+#: src/lang.c:143
 #, c-format
 msgid "Command failed: %s"
 msgstr ""
 
-#: src/lang.c:123
+#: src/lang.c:144
 msgid "Mark not selected articles read?"
 msgstr ""
 
-#: src/lang.c:124
+#: src/lang.c:146
 #, c-format
 msgid "Connecting to %s..."
 msgstr ""
 
-#: src/lang.c:125
+#: src/lang.c:148
 msgid "<CR>"
 msgstr ""
 
-#: src/lang.c:126
+#: src/lang.c:149
 msgid "Creating active file for saved groups...\n"
 msgstr ""
 
-#: src/lang.c:127
+#: src/lang.c:150
 msgid "Creating newsrc file...\n"
 msgstr ""
 
-#: src/lang.c:129 src/lang.c:1150
+#: src/lang.c:152 src/lang.c:1296
 msgid "Default"
 msgstr ""
 
-#: src/lang.c:130
+#: src/lang.c:153
 msgid "Delete saved files that have been post processed?"
 msgstr ""
 
-#: src/lang.c:131
+#: src/lang.c:154
 msgid "Deleting temporary files..."
 msgstr ""
 
-#: src/lang.c:133
+#: src/lang.c:156
 msgid "*** End of article ***"
 msgstr ""
 
-#: src/lang.c:134
+#: src/lang.c:157
 msgid "*** End of articles ***"
 msgstr ""
 
-#: src/lang.c:135
+#: src/lang.c:158
+msgid "*** End of attachments ***"
+msgstr ""
+
+#: src/lang.c:159
 msgid "*** End of groups ***"
 msgstr ""
 
-#: src/lang.c:136
+#: src/lang.c:160
+msgid "*** End of page ***"
+msgstr ""
+
+#: src/lang.c:161
+msgid "*** End of scopes ***"
+msgstr ""
+
+#: src/lang.c:162
 msgid "*** End of thread ***"
 msgstr ""
 
-#: src/lang.c:137
+#: src/lang.c:163
+msgid "*** End of URLs ***"
+msgstr ""
+
+#: src/lang.c:164
 msgid "Enter limit of articles to get> "
 msgstr ""
 
-#: src/lang.c:138
+#: src/lang.c:165
 msgid "Enter Message-ID to go to> "
 msgstr ""
 
-#: src/lang.c:139
+#: src/lang.c:166
 msgid " and enter next unread thread"
 msgstr ""
 
-#: src/lang.c:140
+#: src/lang.c:167
+msgid " and enter next unread article"
+msgstr ""
+
+#: src/lang.c:168
 msgid " and enter next unread group"
 msgstr ""
 
-#: src/lang.c:141
+#: src/lang.c:169
 msgid "Enter option number> "
 msgstr ""
 
-#: src/lang.c:142
+#: src/lang.c:170
 #, c-format
 msgid "Enter range [%s]> "
 msgstr ""
 
-#: src/lang.c:143
+#: src/lang.c:171
 msgid ""
 "\n"
 "Warning: Approved: header used.\n"
 msgstr ""
 
-#: src/lang.c:145
+#: src/lang.c:173
 msgid ""
 "\n"
 "Error: Bad address in Approved: header.\n"
 msgstr ""
 
-#: src/lang.c:146
+#: src/lang.c:174
 msgid ""
 "\n"
 "Error: Bad address in From: header.\n"
 msgstr ""
 
-#: src/lang.c:147
+#: src/lang.c:175
 msgid ""
 "\n"
 "Error: Bad address in Reply-To: header.\n"
 msgstr ""
 
-#: src/lang.c:148
+#: src/lang.c:176
 msgid ""
 "\n"
 "Error: Bad FQDN in Message-ID: header.\n"
 msgstr ""
 
-#: src/lang.c:149
+#: src/lang.c:178
 #, c-format
 msgid "Can't unlock %s"
 msgstr ""
 
-#: src/lang.c:151
+#: src/lang.c:179
 #, c-format
-msgid "Corrupted file %s"
+msgid "Couldn't dotlock %s - article not appended!"
 msgstr ""
 
-#: src/lang.c:152
+#: src/lang.c:180
 #, c-format
-msgid "Couldn't dotlock %s - article not appended!"
+msgid "Couldn't lock %s - article not appended!"
 msgstr ""
 
-#: src/lang.c:153
+#: src/lang.c:183
 #, c-format
-msgid "Couldn't lock %s - article not appended!"
+msgid "Corrupted file %s"
+msgstr ""
+
+#: src/lang.c:185
+msgid ""
+"\n"
+"Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
 msgstr ""
 
-#: src/lang.c:155
+#: src/lang.c:186
 msgid "Internal error in GNKSA routine - send bug report.\n"
 msgstr ""
 
-#: src/lang.c:156
+#: src/lang.c:187
 msgid "Left angle bracket missing in route address.\n"
 msgstr ""
 
-#: src/lang.c:157
+#: src/lang.c:188
 msgid "Left parenthesis missing in old-style address.\n"
 msgstr ""
 
-#: src/lang.c:158
+#: src/lang.c:189
 msgid "Right parenthesis missing in old-style address.\n"
 msgstr ""
 
-#: src/lang.c:159
+#: src/lang.c:190
 msgid "At-sign missing in mail address.\n"
 msgstr ""
 
-#: src/lang.c:160
+#: src/lang.c:191
 msgid "Single component FQDN is not allowed. Add your domain.\n"
 msgstr ""
 
-#: src/lang.c:161
+#: src/lang.c:192
 msgid ""
 "Invalid domain. Send bug report if your top level domain really exists.\n"
 "Use .invalid as top level domain for munged addresses.\n"
 msgstr ""
 
-#: src/lang.c:162
+#: src/lang.c:193
 msgid ""
 "Illegal domain. Send bug report if your top level domain really exists.\n"
 "Use .invalid as top level domain for munged addresses.\n"
 msgstr ""
 
-#: src/lang.c:163
+#: src/lang.c:194
 msgid ""
 "Unknown domain. Send bug report if your top level domain really exists.\n"
 "Use .invalid as top level domain for munged addresses.\n"
 msgstr ""
 
-#: src/lang.c:164
+#: src/lang.c:195
 msgid "Illegal character in FQDN.\n"
 msgstr ""
 
-#: src/lang.c:165
+#: src/lang.c:196
 msgid "Zero length FQDN component not allowed.\n"
 msgstr ""
 
-#: src/lang.c:166
+#: src/lang.c:197
 msgid "FQDN component exceeds maximum allowed length (63 chars).\n"
 msgstr ""
 
-#: src/lang.c:167
+#: src/lang.c:198
 msgid "FQDN component may not start or end with hyphen.\n"
 msgstr ""
 
-#: src/lang.c:168
+#: src/lang.c:199
 msgid "FQDN component may not start with digit.\n"
 msgstr ""
 
-#: src/lang.c:169
+#: src/lang.c:200
 msgid "Domain literal has impossible numeric value.\n"
 msgstr ""
 
-#: src/lang.c:170
+#: src/lang.c:201
 msgid ""
 "Domain literal is for private use only and not allowed for global use.\n"
 msgstr ""
 
-#: src/lang.c:171
+#: src/lang.c:202
 msgid "Right bracket missing in domain literal.\n"
 msgstr ""
 
-#: src/lang.c:172
+#: src/lang.c:203
 msgid "Missing localpart of mail address.\n"
 msgstr ""
 
-#: src/lang.c:173
+#: src/lang.c:204
 msgid "Illegal character in localpart of mail address.\n"
 msgstr ""
 
-#: src/lang.c:174
+#: src/lang.c:205
 msgid "Zero length localpart component not allowed.\n"
 msgstr ""
 
-#: src/lang.c:175
+#: src/lang.c:206
 msgid ""
 "Illegal character in realname.\n"
 "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
 msgstr ""
 
-#: src/lang.c:176
+#: src/lang.c:207
 msgid ""
 "Illegal character in realname.\n"
 "Quoted words may not contain '()<>\\'.\n"
 msgstr ""
 
-#: src/lang.c:177
+#: src/lang.c:208
 msgid ""
 "Illegal character in realname.\n"
 "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
 msgstr ""
 
-#: src/lang.c:178
+#: src/lang.c:209
 msgid "Bad syntax in encoded word used in realname.\n"
 msgstr ""
 
-#: src/lang.c:179
+#: src/lang.c:210
 msgid ""
 "Illegal character in realname.\n"
 "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
 msgstr ""
 
-#: src/lang.c:180
+#: src/lang.c:211
 msgid ""
 "Illegal character in realname.\n"
 "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
 msgstr ""
 
-#: src/lang.c:181
+#: src/lang.c:212
 msgid ""
 "\n"
 "Error: No blank line found after header.\n"
 msgstr ""
 
+#: src/lang.c:213
+#, c-format
+msgid ""
+"\n"
+"Error: Illegal formatted %s.\n"
+msgstr ""
+
 #. TODO: fixme, US-ASCII is not the only 7bit charset we know about
-#: src/lang.c:183
+#: src/lang.c:215
 msgid ""
 "\n"
 "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
@@ -892,7 +1180,7 @@ msgid ""
 "       editing tinrc.\n"
 msgstr ""
 
-#: src/lang.c:188
+#: src/lang.c:220
 msgid ""
 "\n"
 "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
@@ -902,13 +1190,13 @@ msgid ""
 "       using the M)enu of configurable options or by editing tinrc.\n"
 msgstr ""
 
-#: src/lang.c:194
+#: src/lang.c:226
 msgid ""
 "\n"
 "Error: Article starts with blank line instead of header\n"
 msgstr ""
 
-#: src/lang.c:195
+#: src/lang.c:227
 #, c-format
 msgid ""
 "\n"
@@ -916,21 +1204,28 @@ msgid ""
 "%s\n"
 msgstr ""
 
-#: src/lang.c:196
+#: src/lang.c:228
 #, c-format
 msgid ""
 "\n"
 "Error: The \"%s:\" line is empty.\n"
 msgstr ""
 
-#: src/lang.c:197
+#: src/lang.c:229
 #, c-format
 msgid ""
 "\n"
 "Error: The \"%s:\" line is missing from the article header.\n"
 msgstr ""
 
-#: src/lang.c:198
+#: src/lang.c:230
+#, c-format
+msgid ""
+"\n"
+"Error: %s contains non 7bit chars.\n"
+msgstr ""
+
+#: src/lang.c:231
 #, c-format
 msgid ""
 "\n"
@@ -938,152 +1233,158 @@ msgid ""
 "%s\n"
 msgstr ""
 
-#: src/lang.c:199
+#: src/lang.c:232
 #, c-format
 msgid ""
 "\n"
 "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
 msgstr ""
 
-#: src/lang.c:200
+#: src/lang.c:233
 #, c-format
 msgid "Insecure permissions of %s (%o)"
 msgstr ""
 
-#: src/lang.c:201
+#: src/lang.c:235
 #, c-format
 msgid "Invalid response to GROUP command, %s"
 msgstr ""
 
-#: src/lang.c:203
+#: src/lang.c:240
 #, c-format
 msgid "MIME parse error: Unexpected end of %s/%s article"
 msgstr ""
 
-#: src/lang.c:204
+#: src/lang.c:241
 msgid "MIME parse error: Start boundary whilst reading headers"
 msgstr ""
 
-#: src/lang.c:205
+#: src/lang.c:242
+msgid ""
+"\n"
+"Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr ""
+
+#: src/lang.c:243
 msgid "Can't get a (fully-qualified) domain-name!"
 msgstr ""
 
-#: src/lang.c:206
+#: src/lang.c:244
 #, c-format
 msgid "No permissions to go into %s\n"
 msgstr ""
 
-#: src/lang.c:207
+#: src/lang.c:246
 msgid ""
 "\n"
 "Error: From: line missing.\n"
 msgstr ""
 
-#: src/lang.c:208
+#: src/lang.c:248
 #, c-format
 msgid "No read permissions for %s\n"
 msgstr ""
 
-#: src/lang.c:209
+#: src/lang.c:249
 #, c-format
 msgid "File %s does not exist\n"
 msgstr ""
 
-#: src/lang.c:210
+#: src/lang.c:250
 #, c-format
 msgid "No write permissions for %s\n"
 msgstr ""
 
-#: src/lang.c:211
+#: src/lang.c:251
 msgid "Can't get user information (/etc/passwd missing?)"
 msgstr ""
 
-#: src/lang.c:212
+#: src/lang.c:252
 msgid "errors"
 msgstr ""
 
-#: src/lang.c:213
+#: src/lang.c:254
 #, c-format
 msgid ""
 "\n"
 "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
 msgstr ""
 
-#: src/lang.c:214
+#: src/lang.c:256
 #, c-format
 msgid "Server has non of the groups listed in %s"
 msgstr ""
 
-#: src/lang.c:215
+#: src/lang.c:257
 msgid "error"
 msgstr ""
 
-#: src/lang.c:216
+#: src/lang.c:258
 msgid "Unknown display level"
 msgstr ""
 
-#: src/lang.c:217
+#: src/lang.c:259
 msgid "<ESC>"
 msgstr ""
 
-#: src/lang.c:218
+#: src/lang.c:260
 msgid "Exiting..."
 msgstr ""
 
-#: src/lang.c:219
+#: src/lang.c:261
 msgid "leaving external mail-reader"
 msgstr ""
 
-#: src/lang.c:220
+#: src/lang.c:262
 #, c-format
 msgid "Extracting %s..."
 msgstr ""
 
-#: src/lang.c:222
+#: src/lang.c:264
 #, c-format
 msgid "Error writing %s file. Filesystem full? File reset to previous state."
 msgstr ""
 
-#: src/lang.c:223
+#: src/lang.c:265
 #, c-format
 msgid "Error making backup of %s file. Filesystem full?"
 msgstr ""
 
-#: src/lang.c:224
+#: src/lang.c:266
 #, c-format
 msgid "Filtering global rules (%d/%d)..."
 msgstr ""
 
-#: src/lang.c:225
+#: src/lang.c:267
 msgid "Rule created by: "
 msgstr ""
 
-#: src/lang.c:226
+#: src/lang.c:268
 #, c-format
 msgid "Enter pattern [%s]> "
 msgstr ""
 
-#: src/lang.c:227
+#: src/lang.c:269
 #, c-format
 msgid ""
 "\n"
 "You requested followups to your article to go to the following %s:\n"
 msgstr ""
 
-#: src/lang.c:228
+#: src/lang.c:270
 #, c-format
 msgid "  %s\t Answers will be directed to you by mail.\n"
 msgstr ""
 
-#: src/lang.c:229
+#: src/lang.c:271
 msgid "-- forwarded message --\n"
 msgstr ""
 
-#: src/lang.c:230
+#: src/lang.c:272
 msgid "-- end of forwarded message --\n"
 msgstr ""
 
-#: src/lang.c:231
+#: src/lang.c:273
 msgid ""
 "# Format:\n"
 "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
@@ -1114,757 +1415,989 @@ msgid ""
 "#\n"
 msgstr ""
 
-#: src/lang.c:252
+#: src/lang.c:294
 #, c-format
 msgid "Enter score for rule (default=%d): "
 msgstr ""
 
-#: src/lang.c:253
+#: src/lang.c:295
 #, c-format
 msgid "Enter the score weight (range 0 < score <= %d)"
 msgstr ""
 
 #. SCORE_MAX
-#: src/lang.c:254
+#: src/lang.c:296
 msgid "Full"
 msgstr ""
 
-#: src/lang.c:255
+#: src/lang.c:297
 msgid "Comment (optional)  : "
 msgstr ""
 
-#: src/lang.c:256
+#: src/lang.c:298
 msgid "Apply pattern to    : "
 msgstr ""
 
-#: src/lang.c:257
+#: src/lang.c:299
 msgid "From: line (ignore case)      "
 msgstr ""
 
-#: src/lang.c:258
+#: src/lang.c:300
 msgid "From: line (case sensitive)   "
 msgstr ""
 
-#: src/lang.c:260
+#: src/lang.c:302
 #, c-format
 msgid "%s%s: Unknown host.\n"
 msgstr ""
 
-#: src/lang.c:261
+#: src/lang.c:304
 msgid "global "
 msgstr ""
 
-#: src/lang.c:262
+#: src/lang.c:305
 #, c-format
 msgid "Please use %.100s instead"
 msgstr ""
 
-#: src/lang.c:263
+#: src/lang.c:306
 #, c-format
 msgid "%s is bogus"
 msgstr ""
 
-#: src/lang.c:264
+#: src/lang.c:307
 #, c-format
 msgid "Group %s is moderated. Continue?"
 msgstr ""
 
-#: src/lang.c:265
+#: src/lang.c:308
 msgid "groups"
 msgstr ""
 
-#: src/lang.c:266
+#: src/lang.c:309
 #, c-format
 msgid "Rereading %s..."
 msgstr ""
 
-#: src/lang.c:267
+#: src/lang.c:310
 msgid "Top Level Commands"
 msgstr ""
 
-#: src/lang.c:268
+#: src/lang.c:311
 msgid "Group Selection"
 msgstr ""
 
-#: src/lang.c:269
+#: src/lang.c:312
 msgid "group"
 msgstr ""
 
-#: src/lang.c:271
+#: src/lang.c:314
 msgid ""
 "One or more lines of comment. <CR> to add a line or proceed if line is empty."
 msgstr ""
 
-#: src/lang.c:272
+#: src/lang.c:315
 msgid "From: line to add to filter file. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:273
+#: src/lang.c:316
 msgid ""
 "Linecount of articles to be filtered. < for less, > for more, = for equal."
 msgstr ""
 
-#: src/lang.c:274
+#: src/lang.c:317
 msgid "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:275
+#: src/lang.c:318
 msgid "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:276
+#: src/lang.c:319
 msgid ""
 "Enter text pattern to filter if Subject: & From: lines are not what you want."
 msgstr ""
 
-#: src/lang.c:277
+#: src/lang.c:320
 msgid ""
 "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:278
+#: src/lang.c:321
 msgid ""
 "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:279
+#: src/lang.c:322
 msgid ""
 "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:280
+#: src/lang.c:323
 msgid ""
 "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:281
+#: src/lang.c:324
 msgid "kill an article via a menu"
 msgstr ""
 
-#: src/lang.c:282
+#: src/lang.c:325
 msgid "auto-select (hot) an article via a menu"
 msgstr ""
 
-#: src/lang.c:283
+#: src/lang.c:326
 msgid "Browse URLs in article"
 msgstr ""
 
-#: src/lang.c:284
+#: src/lang.c:327
 msgid "0 - 9\t  display article by number in current thread"
 msgstr ""
 
-#: src/lang.c:285
+#: src/lang.c:329
 msgid "cancel (delete) or supersede (overwrite) current article"
 msgstr ""
 
-#: src/lang.c:286
-msgid "edit article (mail-groups only)"
+#: src/lang.c:330
+msgid "post followup to current article"
 msgstr ""
 
-#: src/lang.c:287
-msgid "display first article in current thread"
+#: src/lang.c:331
+msgid "post followup (don't copy text) to current article"
 msgstr ""
 
-#: src/lang.c:288
-msgid "display first page of article"
+#: src/lang.c:332
+msgid "post followup to current article quoting complete headers"
 msgstr ""
 
-#: src/lang.c:289
-msgid "post followup to current article"
+#: src/lang.c:333
+msgid "repost chosen article to another group"
 msgstr ""
 
-#: src/lang.c:290
-msgid "post followup (don't copy text) to current article"
+#: src/lang.c:335
+msgid "edit article (mail-groups only)"
 msgstr ""
 
-#: src/lang.c:291
-msgid "post followup to current article quoting complete headers"
+#: src/lang.c:336
+msgid "display first article in current thread"
 msgstr ""
 
-#: src/lang.c:292
+#: src/lang.c:337
+msgid "display first page of article"
+msgstr ""
+
+#: src/lang.c:338
 msgid "display last article in current thread"
 msgstr ""
 
-#: src/lang.c:293
+#: src/lang.c:339
 msgid "display last page of article"
 msgstr ""
 
-#: src/lang.c:294
+#: src/lang.c:340
 msgid "mark rest of thread as read and advance to next unread"
 msgstr ""
 
-#: src/lang.c:295
+#: src/lang.c:341
 msgid "display next article"
 msgstr ""
 
-#: src/lang.c:296
+#: src/lang.c:342
 msgid "display first article in next thread"
 msgstr ""
 
-#: src/lang.c:297
+#: src/lang.c:343
 msgid "display next unread article"
 msgstr ""
 
-#: src/lang.c:298
+#: src/lang.c:344
 msgid "go to the article that this one followed up"
 msgstr ""
 
-#: src/lang.c:299
+#: src/lang.c:345
 msgid "display previous article"
 msgstr ""
 
-#: src/lang.c:300
+#: src/lang.c:346
 msgid "display previous unread article"
 msgstr ""
 
-#: src/lang.c:301
+#: src/lang.c:347
 msgid "quickly kill an article using defaults"
 msgstr ""
 
-#: src/lang.c:302
+#: src/lang.c:348
 msgid "quickly auto-select (hot) an article using defaults"
 msgstr ""
 
-#: src/lang.c:303
+#: src/lang.c:349
 msgid "return to group selection level"
 msgstr ""
 
-#: src/lang.c:304
+#: src/lang.c:350
 msgid "reply through mail to author"
 msgstr ""
 
-#: src/lang.c:305
+#: src/lang.c:351
 msgid "reply through mail (don't copy text) to author"
 msgstr ""
 
-#: src/lang.c:306
+#: src/lang.c:352
 msgid "reply through mail to author quoting complete headers"
 msgstr ""
 
-#: src/lang.c:307
-msgid "repost chosen article to another group"
-msgstr ""
-
-#: src/lang.c:308
+#: src/lang.c:353
 msgid "search backwards within this article"
 msgstr ""
 
-#: src/lang.c:309
+#: src/lang.c:354
 msgid "search forwards within this article"
 msgstr ""
 
-#: src/lang.c:310
+#: src/lang.c:355
 msgid "show article in raw-mode (including all headers)"
 msgstr ""
 
-#: src/lang.c:311
+#: src/lang.c:356
 msgid "skip next block of included text"
 msgstr ""
 
-#: src/lang.c:312
+#: src/lang.c:357
 msgid "toggle display of sections hidden by a form-feed (^L) on/off"
 msgstr ""
 
-#: src/lang.c:313
+#: src/lang.c:358
+msgid "toggle display of all headers"
+msgstr ""
+
+#: src/lang.c:359
 msgid "toggle word highlighting on/off"
 msgstr ""
 
-#: src/lang.c:314
+#: src/lang.c:360
 msgid "toggle ROT-13 (basic decode) for current article"
 msgstr ""
 
-#: src/lang.c:315
+#: src/lang.c:361
 msgid "toggle tabwidth 4 <-> 8"
 msgstr ""
 
-#: src/lang.c:316
+#: src/lang.c:362
 msgid "toggle german TeX style decoding for current article"
 msgstr ""
 
-#: src/lang.c:317
+#: src/lang.c:363
 msgid "toggle display of uuencoded sections"
 msgstr ""
 
-#: src/lang.c:318
-msgid "View/save multimedia attachments"
+#: src/lang.c:364
+msgid "View/pipe/save multimedia attachments"
 msgstr ""
 
-#: src/lang.c:319
+#: src/lang.c:365
+msgid "choose first attachment in list"
+msgstr ""
+
+#: src/lang.c:366
+msgid "0 - 9\t  choose attachment by number"
+msgstr ""
+
+#: src/lang.c:367
+msgid "choose last attachment in list"
+msgstr ""
+
+#: src/lang.c:369
+msgid "pipe attachment into command"
+msgstr ""
+
+#: src/lang.c:370
+msgid "pipe raw attachment into command"
+msgstr ""
+
+#: src/lang.c:372
+msgid "save attachment to disk"
+msgstr ""
+
+#: src/lang.c:373
+msgid "search for attachments forwards"
+msgstr ""
+
+#: src/lang.c:374
+msgid "search for attachments backwards"
+msgstr ""
+
+#: src/lang.c:375
+msgid "view attachment"
+msgstr ""
+
+#: src/lang.c:376
+msgid "tag attachment"
+msgstr ""
+
+#: src/lang.c:377
+msgid "tag attachments that match user specified pattern"
+msgstr ""
+
+#: src/lang.c:378
+msgid "reverse tagging on all attachments (toggle)"
+msgstr ""
+
+#: src/lang.c:379
+msgid "untag all tagged attachments"
+msgstr ""
+
+#: src/lang.c:380
+msgid "toggle info message in last line (name/description of attachment)"
+msgstr ""
+
+#: src/lang.c:381
+msgid "choose first attribute in list"
+msgstr ""
+
+#: src/lang.c:382
+msgid "0 - 9\t  choose attribute by number"
+msgstr ""
+
+#: src/lang.c:383
+msgid "choose last attribute in list"
+msgstr ""
+
+#: src/lang.c:384
+msgid "reset attribute to a default value"
+msgstr ""
+
+#: src/lang.c:385
+msgid "search forwards for an attribute"
+msgstr ""
+
+#: src/lang.c:386
+msgid "search backwards for an attribute"
+msgstr ""
+
+#: src/lang.c:387
+msgid "select attribute"
+msgstr ""
+
+#: src/lang.c:388
+msgid "toggle back to options menu when invoked from there"
+msgstr ""
+
+#: src/lang.c:389
 #, c-format
 msgid "report bug or comment via mail to %s"
 msgstr ""
 
-#: src/lang.c:320
+#: src/lang.c:390
+msgid "choose first option in list"
+msgstr ""
+
+#: src/lang.c:391
+msgid "0 - 9\t  choose option by number"
+msgstr ""
+
+#: src/lang.c:392
+msgid "choose last option in list"
+msgstr ""
+
+#: src/lang.c:393
+msgid "start scopes menu"
+msgstr ""
+
+#: src/lang.c:394
+msgid "search forwards for an option"
+msgstr ""
+
+#: src/lang.c:395
+msgid "search backwards for an option"
+msgstr ""
+
+#: src/lang.c:396
+msgid "select option"
+msgstr ""
+
+#: src/lang.c:397
+msgid "toggle to attributes menu"
+msgstr ""
+
+#: src/lang.c:398
 msgid "choose range of articles to be affected by next command"
 msgstr ""
 
-#: src/lang.c:321
+#: src/lang.c:399
 msgid "escape from command prompt"
 msgstr ""
 
-#: src/lang.c:322
+#: src/lang.c:400
 msgid "edit filter file"
 msgstr ""
 
-#: src/lang.c:323
+#: src/lang.c:401
 msgid "get help"
 msgstr ""
 
-#: src/lang.c:324
+#: src/lang.c:402
 msgid "display last article viewed"
 msgstr ""
 
-#: src/lang.c:325
+#: src/lang.c:403
 msgid "down one line"
 msgstr ""
 
-#: src/lang.c:326
+#: src/lang.c:404
 msgid "up one line"
 msgstr ""
 
-#: src/lang.c:327
+#: src/lang.c:405
 msgid "go to article chosen by Message-ID"
 msgstr ""
 
-#: src/lang.c:328
+#: src/lang.c:406
 msgid "mail article/thread/hot/pattern/tagged articles to someone"
 msgstr ""
 
-#: src/lang.c:329
+#: src/lang.c:407
 msgid "menu of configurable options"
 msgstr ""
 
-#: src/lang.c:330
+#: src/lang.c:408
 msgid "down one page"
 msgstr ""
 
-#: src/lang.c:331
+#: src/lang.c:409
 msgid "up one page"
 msgstr ""
 
-#: src/lang.c:332
+#: src/lang.c:411
 msgid "post (write) article to current group"
 msgstr ""
 
-#: src/lang.c:333
+#: src/lang.c:412
 msgid "post postponed articles"
 msgstr ""
 
-#: src/lang.c:334
+#: src/lang.c:414
 msgid "list articles posted by you (from posted file)"
 msgstr ""
 
-#: src/lang.c:335
+#: src/lang.c:415
 msgid "return to previous menu"
 msgstr ""
 
-#: src/lang.c:336
+#: src/lang.c:416
 msgid "quit tin immediately"
 msgstr ""
 
-#: src/lang.c:337
+#: src/lang.c:417
 msgid "redraw page"
 msgstr ""
 
-#: src/lang.c:338
+#: src/lang.c:418
 msgid "save article/thread/hot/pattern/tagged articles to file"
 msgstr ""
 
-#: src/lang.c:339
+#: src/lang.c:419
 msgid "save marked articles automatically without user prompts"
 msgstr ""
 
-#: src/lang.c:340
+#: src/lang.c:420
 msgid "scroll the screen one line down"
 msgstr ""
 
-#: src/lang.c:341
+#: src/lang.c:421
 msgid "scroll the screen one line up"
 msgstr ""
 
-#: src/lang.c:342
+#: src/lang.c:422
 msgid "search for articles by author backwards"
 msgstr ""
 
-#: src/lang.c:343
+#: src/lang.c:423
 msgid "search for articles by author forwards"
 msgstr ""
 
-#: src/lang.c:344
+#: src/lang.c:424
 msgid "search all articles for a given string (this may take some time)"
 msgstr ""
 
-#: src/lang.c:345
+#: src/lang.c:425
 msgid " \t  (searches are case-insensitive and wrap around to all articles)"
 msgstr ""
 
-#: src/lang.c:346
+#: src/lang.c:426
 msgid "search for articles by Subject line backwards"
 msgstr ""
 
-#: src/lang.c:347
+#: src/lang.c:427
 msgid "search for articles by Subject line forwards"
 msgstr ""
 
-#: src/lang.c:348
+#: src/lang.c:428
 msgid "repeat last search"
 msgstr ""
 
-#: src/lang.c:349
+#: src/lang.c:429
 msgid "tag current article for reposting/mailing/piping/printing/saving"
 msgstr ""
 
-#: src/lang.c:350
+#: src/lang.c:430
 msgid "toggle info message in last line (subject/description)"
 msgstr ""
 
-#: src/lang.c:351
+#: src/lang.c:431
 msgid "toggle inverse video"
 msgstr ""
 
-#: src/lang.c:352
+#: src/lang.c:432
 msgid "toggle mini help menu display"
 msgstr ""
 
-#: src/lang.c:353
+#: src/lang.c:433
 msgid "cycle the display of authors email address, real name, both or neither"
 msgstr ""
 
-#: src/lang.c:354
+#: src/lang.c:434
 msgid "show version information"
 msgstr ""
 
-#: src/lang.c:355
+#: src/lang.c:435
 msgid "mark all articles as read and return to group selection menu"
 msgstr ""
 
-#: src/lang.c:356
+#: src/lang.c:436
 msgid "mark all articles as read and enter next group with unread articles"
 msgstr ""
 
-#: src/lang.c:357
+#: src/lang.c:437
 msgid "choose first thread in list"
 msgstr ""
 
-#: src/lang.c:358
+#: src/lang.c:438
 msgid "choose last thread in list"
 msgstr ""
 
-#: src/lang.c:359
+#: src/lang.c:439
 msgid "list articles within current thread (bring up Thread sub-menu)"
 msgstr ""
 
-#: src/lang.c:360
+#: src/lang.c:440
 msgid "mark article as unread"
 msgstr ""
 
-#: src/lang.c:361
-msgid "mark current thread or tagged threads as read"
+#: src/lang.c:441
+msgid "mark current thread, range or tagged threads as read"
 msgstr ""
 
-#: src/lang.c:362
-msgid "mark thread as unread"
+#: src/lang.c:442
+msgid "mark current thread, range or tagged threads as unread"
 msgstr ""
 
-#: src/lang.c:363
+#: src/lang.c:443
+msgid "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr ""
+
+#: src/lang.c:444
+msgid "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr ""
+
+#: src/lang.c:445
 msgid "toggle display of all/selected articles"
 msgstr ""
 
-#: src/lang.c:364
+#: src/lang.c:446
 msgid "display next group"
 msgstr ""
 
-#: src/lang.c:365
+#: src/lang.c:447
 msgid "display previous group"
 msgstr ""
 
-#: src/lang.c:366
+#: src/lang.c:448
 msgid "toggle all selections (all articles)"
 msgstr ""
 
-#: src/lang.c:367
+#: src/lang.c:449
 msgid "select group (make \"hot\")"
 msgstr ""
 
-#: src/lang.c:368
+#: src/lang.c:450
 msgid "select thread"
 msgstr ""
 
-#: src/lang.c:369
+#: src/lang.c:451
 msgid "select threads if at least one unread article is selected"
 msgstr ""
 
-#: src/lang.c:370
+#: src/lang.c:452
 msgid "select threads that match user specified pattern"
 msgstr ""
 
-#: src/lang.c:371
+#: src/lang.c:453
 msgid "tag all parts of current multipart-message in order"
 msgstr ""
 
-#: src/lang.c:372
+#: src/lang.c:454
 msgid "0 - 9\t  choose thread by number"
 msgstr ""
 
-#: src/lang.c:373
+#: src/lang.c:455
 msgid "toggle limit number of articles to get, and reload"
 msgstr ""
 
-#: src/lang.c:374
+#: src/lang.c:456
 msgid "toggle display of all/unread articles"
 msgstr ""
 
-#: src/lang.c:375
+#: src/lang.c:457
 msgid "toggle selection of thread"
 msgstr ""
 
-#: src/lang.c:376
+#: src/lang.c:458
 msgid "cycle through threading options available"
 msgstr ""
 
-#: src/lang.c:377
+#: src/lang.c:459
 msgid "undo all selections (all articles)"
 msgstr ""
 
-#: src/lang.c:378
+#: src/lang.c:460
 msgid "untag all tagged threads"
 msgstr ""
 
-#: src/lang.c:379
+#: src/lang.c:461
+msgid "add new scope"
+msgstr ""
+
+#: src/lang.c:462
+msgid "delete scope"
+msgstr ""
+
+#: src/lang.c:463
+msgid "edit attributes file"
+msgstr ""
+
+#: src/lang.c:464
+msgid "choose first scope in list"
+msgstr ""
+
+#: src/lang.c:465
+msgid "0 - 9\t  choose scope by number"
+msgstr ""
+
+#: src/lang.c:466
+msgid "choose last scope in list"
+msgstr ""
+
+#: src/lang.c:467
+msgid "move scope"
+msgstr ""
+
+#: src/lang.c:468
+msgid "rename scope"
+msgstr ""
+
+#: src/lang.c:469
+msgid "select scope"
+msgstr ""
+
+#: src/lang.c:470
 msgid "mark all articles in group as read"
 msgstr ""
 
-#: src/lang.c:380
+#: src/lang.c:471
 msgid "mark all articles in group as read and move to next unread group"
 msgstr ""
 
-#: src/lang.c:381
+#: src/lang.c:472
 msgid "choose first group in list"
 msgstr ""
 
-#: src/lang.c:382
+#: src/lang.c:473
 msgid "choose group by name"
 msgstr ""
 
-#: src/lang.c:383
+#: src/lang.c:474
 msgid "0 - 9\t  choose group by number"
 msgstr ""
 
-#: src/lang.c:384
+#: src/lang.c:475
 msgid "choose range of groups to be affected by next command"
 msgstr ""
 
-#: src/lang.c:385
+#: src/lang.c:476
 msgid "choose last group in list"
 msgstr ""
 
-#: src/lang.c:386
+#: src/lang.c:477
 msgid "mark all articles in chosen group unread"
 msgstr ""
 
-#: src/lang.c:387
+#: src/lang.c:478
 msgid "move chosen group within list"
 msgstr ""
 
-#: src/lang.c:388
+#: src/lang.c:479
 msgid "choose next group with unread news"
 msgstr ""
 
-#: src/lang.c:389 src/lang.c:1197
+#: src/lang.c:480 src/lang.c:1351
 msgid "quit"
 msgstr ""
 
-#: src/lang.c:390
+#: src/lang.c:481
 msgid "quit without saving configuration changes"
 msgstr ""
 
-#: src/lang.c:391
+#: src/lang.c:482
 msgid "read chosen group"
 msgstr ""
 
-#: src/lang.c:392
+#: src/lang.c:483
 msgid "reset .newsrc (all available articles in groups marked unread)"
 msgstr ""
 
-#: src/lang.c:393
+#: src/lang.c:484
 msgid "search backwards for a group name"
 msgstr ""
 
-#: src/lang.c:394
+#: src/lang.c:485
 msgid " \t  (all searches are case-insensitive and wrap around)"
 msgstr ""
 
-#: src/lang.c:395
+#: src/lang.c:486
 msgid "search forwards for a group name"
 msgstr ""
 
-#: src/lang.c:396
+#: src/lang.c:487
 msgid "subscribe to chosen group"
 msgstr ""
 
-#: src/lang.c:397
+#: src/lang.c:488
 msgid "subscribe to groups that match pattern"
 msgstr ""
 
-#: src/lang.c:398
+#: src/lang.c:489
 msgid "reread active file to check for any new news"
 msgstr ""
 
-#: src/lang.c:399
+#: src/lang.c:490
 msgid "toggle display of group name only or group name plus description"
 msgstr ""
 
-#: src/lang.c:400
+#: src/lang.c:491
 msgid "toggle display to show all/unread subscribed groups"
 msgstr ""
 
-#: src/lang.c:401
+#: src/lang.c:492
 msgid "unsubscribe from chosen group"
 msgstr ""
 
-#: src/lang.c:402
+#: src/lang.c:493
 msgid "unsubscribe from groups that match pattern"
 msgstr ""
 
-#: src/lang.c:403
+#: src/lang.c:494
 msgid "sort the list of groups"
 msgstr ""
 
-#: src/lang.c:404
+#: src/lang.c:495
 msgid "toggle display to show all/subscribed groups"
 msgstr ""
 
-#: src/lang.c:405
+#: src/lang.c:496
 msgid "0 - 9\t  choose article by number"
 msgstr ""
 
-#: src/lang.c:406
+#: src/lang.c:497
 msgid "mark thread as read and return to group index page"
 msgstr ""
 
-#: src/lang.c:407
+#: src/lang.c:498
 msgid "mark thread as read and enter next unread thread or group"
 msgstr ""
 
-#: src/lang.c:408
+#: src/lang.c:499
 msgid "choose first article in list"
 msgstr ""
 
-#: src/lang.c:409
+#: src/lang.c:500
 msgid "choose last article in list"
 msgstr ""
 
-#: src/lang.c:410
-msgid ""
-"mark article or tagged articles as read and move cursor to next unread "
-"article"
+#: src/lang.c:501
+msgid "mark art, range or tagged arts as read; move crsr to next unread art"
 msgstr ""
 
-#: src/lang.c:411
+#: src/lang.c:502
+msgid "mark article, range or tagged articles as unread"
+msgstr ""
+
+#: src/lang.c:503
+msgid "mark current thread as unread"
+msgstr ""
+
+#: src/lang.c:504
 msgid "read chosen article"
 msgstr ""
 
-#: src/lang.c:412
+#: src/lang.c:505
 msgid ""
 "Display properties\n"
 "------------------"
 msgstr ""
 
-#: src/lang.c:413
+#: src/lang.c:506
 msgid ""
 "Miscellaneous\n"
 "-------------"
 msgstr ""
 
-#: src/lang.c:414
+#: src/lang.c:507
 msgid ""
 "Moving around\n"
 "-------------"
 msgstr ""
 
-#: src/lang.c:415
+#: src/lang.c:508
 msgid ""
 "Group/thread/article operations\n"
 "-------------------------------"
 msgstr ""
 
-#: src/lang.c:417
+#: src/lang.c:509
+msgid ""
+"Attachment operations\n"
+"---------------------"
+msgstr ""
+
+#: src/lang.c:510
+msgid ""
+"Attribute operations\n"
+"--------------------"
+msgstr ""
+
+#: src/lang.c:511
+msgid ""
+"Option operations\n"
+"-----------------"
+msgstr ""
+
+#: src/lang.c:512
+msgid ""
+"Scope operations\n"
+"----------------"
+msgstr ""
+
+#: src/lang.c:513
+msgid ""
+"URL operations\n"
+"--------------"
+msgstr ""
+
+#: src/lang.c:514
+msgid "choose first URL in list"
+msgstr ""
+
+#: src/lang.c:515
+msgid "0 - 9\t  choose URL by number"
+msgstr ""
+
+#: src/lang.c:516
+msgid "choose last URL in list"
+msgstr ""
+
+#: src/lang.c:517
+msgid "search for URLs forwards"
+msgstr ""
+
+#: src/lang.c:518
+msgid "search for URLs backwards"
+msgstr ""
+
+#: src/lang.c:519
+msgid "Open URL in browser"
+msgstr ""
+
+#: src/lang.c:520
+msgid "toggle info message in last line (URL)"
+msgstr ""
+
+#: src/lang.c:522
 msgid "Group Level Commands"
 msgstr ""
 
-#: src/lang.c:418
+#: src/lang.c:523
 msgid "Kill filter added"
 msgstr ""
 
-#: src/lang.c:419
+#: src/lang.c:524
 msgid "Auto-selection filter added"
 msgstr ""
 
-#: src/lang.c:420
+#: src/lang.c:525
 msgid "All parts tagged"
 msgstr ""
 
-#: src/lang.c:421
+#: src/lang.c:526
 msgid "Storing article for later posting"
 msgstr ""
 
-#: src/lang.c:422
+#: src/lang.c:527
 msgid "Please enter a valid character"
 msgstr ""
 
-#: src/lang.c:423
+#: src/lang.c:528
 #, c-format
 msgid "Missing part #%d"
 msgstr ""
 
-#: src/lang.c:424
+#: src/lang.c:529
 msgid "*** No postponed articles ***"
 msgstr ""
 
-#: src/lang.c:425
+#: src/lang.c:530
 msgid "Not a multi-part message"
 msgstr ""
 
-#: src/lang.c:426
+#: src/lang.c:531
 msgid "You are not subscribed to this group"
 msgstr ""
 
-#: src/lang.c:427
+#: src/lang.c:532
 msgid "No previous expression"
 msgstr ""
 
-#: src/lang.c:428
+#: src/lang.c:533
 msgid "Operation disabled in no-overwrite mode"
 msgstr ""
 
 #. TODO: replace hardcoded key-name in txt_info_postponed
-#: src/lang.c:430
+#: src/lang.c:535
 #, c-format
 msgid "%d postponed %s, reuse with ^O...\n"
 msgstr ""
 
-#: src/lang.c:431
+#: src/lang.c:536
 msgid ""
 "X-Conversion-Note: multipart/alternative contents have been removed.\n"
 "  To get the whole article, turn alternative handling OFF in the Option "
 "Menu\n"
 msgstr ""
 
-#: src/lang.c:433
+#: src/lang.c:538
 #, c-format
 msgid "Save filename for %s/%s is a mailbox. Attachment not saved"
 msgstr ""
 
-#: src/lang.c:434
+#: src/lang.c:539
 msgid "TeX2Iso encoded article"
 msgstr ""
 
-#: src/lang.c:435
+#: src/lang.c:540
 msgid "incomplete "
 msgstr ""
 
 #. TODO: replace hardcoded key-names
-#: src/lang.c:437
+#: src/lang.c:542
 #, c-format
 msgid ""
 "\n"
@@ -1902,137 +2435,133 @@ msgid ""
 "Please send bug-reports/comments to %s with the 'R' command.\n"
 msgstr ""
 
-#: src/lang.c:453
+#: src/lang.c:558
 #, c-format
 msgid "Invalid  From: %s  line. Read the INSTALL file again."
 msgstr ""
 
-#: src/lang.c:455
+#: src/lang.c:560
 msgid "Invalid multibyte sequence found\n"
 msgstr ""
 
-#: src/lang.c:457
+#: src/lang.c:563
 #, c-format
 msgid "Invalid  Sender:-header %s"
 msgstr ""
 
-#: src/lang.c:458
+#: src/lang.c:565
 msgid "Inverse video disabled"
 msgstr ""
 
-#: src/lang.c:459
+#: src/lang.c:566
 msgid "Inverse video enabled"
 msgstr ""
 
-#: src/lang.c:461
+#: src/lang.c:568
 #, c-format
 msgid "Missing definition for %s\n"
 msgstr ""
 
-#: src/lang.c:462
+#: src/lang.c:569
 #, c-format
 msgid "Invalid key definition '%s'\n"
 msgstr ""
 
-#: src/lang.c:463
+#: src/lang.c:570
 #, c-format
 msgid "Invalid keyname '%s'\n"
 msgstr ""
 
-#: src/lang.c:464
+#: src/lang.c:571
 #, c-format
 msgid "Keymap file was upgraded to version %s\n"
 msgstr ""
 
-#: src/lang.c:465
+#: src/lang.c:572
 #, c-format
 msgid "Kill From:     [%s] (y/n): "
 msgstr ""
 
-#: src/lang.c:466
+#: src/lang.c:573
 msgid "Kill Lines: (</>num): "
 msgstr ""
 
-#: src/lang.c:467
+#: src/lang.c:574
 msgid "Kill Article Menu"
 msgstr ""
 
-#: src/lang.c:468
+#: src/lang.c:575
 #, c-format
 msgid "Kill Msg-Id:   [%s] (f/l/o/n): "
 msgstr ""
 
-#: src/lang.c:469
+#: src/lang.c:576
 msgid "Kill pattern scope  : "
 msgstr ""
 
-#: src/lang.c:470
+#: src/lang.c:577
 #, c-format
 msgid "Kill Subject:  [%s] (y/n): "
 msgstr ""
 
-#: src/lang.c:471
+#: src/lang.c:578
 msgid "Kill text pattern   : "
 msgstr ""
 
-#: src/lang.c:472
+#: src/lang.c:579
 msgid "Kill time in days   : "
 msgstr ""
 
-#: src/lang.c:474
+#: src/lang.c:581
 msgid "Last"
 msgstr ""
 
-#: src/lang.c:475
+#: src/lang.c:582
 msgid "-- Last response --"
 msgstr ""
 
-#: src/lang.c:476
+#: src/lang.c:583
 #, c-format
 msgid "Lines %s  "
 msgstr ""
 
-#: src/lang.c:478
-msgid "Message-ID: line              "
-msgstr ""
-
-#: src/lang.c:479
+#: src/lang.c:585
 msgid "Mail"
 msgstr ""
 
-#: src/lang.c:480
+#: src/lang.c:586
 msgid "mailbox "
 msgstr ""
 
-#: src/lang.c:481
+#: src/lang.c:587
 #, c-format
 msgid "Mail article(s) to [%.*s]> "
 msgstr ""
 
-#: src/lang.c:482
+#: src/lang.c:588
 #, c-format
 msgid "Mailing log to %s\n"
 msgstr ""
 
-#: src/lang.c:483
+#: src/lang.c:589
 msgid "Mail bug report..."
 msgstr ""
 
-#: src/lang.c:484
+#: src/lang.c:590
 #, c-format
 msgid "Mail BUG REPORT to %s?"
 msgstr ""
 
-#: src/lang.c:485
+#: src/lang.c:591
 msgid "Mailed"
 msgstr ""
 
-#: src/lang.c:486
+#: src/lang.c:592
 #, c-format
 msgid "Mailing to %s..."
 msgstr ""
 
-#: src/lang.c:487
+#: src/lang.c:593
 msgid ""
 "# [Mail/Save] active file. Format is like news active file:\n"
 "#   groupname  max.artnum  min.artnum  /dir\n"
@@ -2040,285 +2569,345 @@ msgid ""
 "#\n"
 msgstr ""
 
-#: src/lang.c:490
+#: src/lang.c:596
+#, c-format
+msgid "%s marked as read"
+msgstr ""
+
+#: src/lang.c:597
 #, c-format
 msgid "%s marked as unread"
 msgstr ""
 
-#: src/lang.c:491
+#: src/lang.c:598
 #, c-format
-msgid "Marked %d of %d tagged %s as read"
+msgid "Marked %d of %d %s as read"
 msgstr ""
 
-#: src/lang.c:492
+#: src/lang.c:599
+#, c-format
+msgid "Marked %d of %d %s as unread"
+msgstr ""
+
+#: src/lang.c:600 src/lang.c:1321
+msgid "Mark"
+msgstr ""
+
+#: src/lang.c:601
 #, c-format
 msgid "Mark all articles as read%s?"
 msgstr ""
 
-#: src/lang.c:493
+#: src/lang.c:602
 #, c-format
-msgid "Mark %s=tagged articles, %s=current article, %s=quit: "
+msgid "Mark article as read%s?"
 msgstr ""
 
-#: src/lang.c:494
+#: src/lang.c:603
 #, c-format
 msgid "Mark group %s as read?"
 msgstr ""
 
-#: src/lang.c:495
+#: src/lang.c:604
 #, c-format
 msgid "Mark thread as read%s?"
 msgstr ""
 
-#: src/lang.c:496
+#: src/lang.c:605
 #, c-format
-msgid "Mark %s=tagged articles/threads, %s=current thread, %s=quit: "
+msgid "Matching %s groups..."
 msgstr ""
 
-#: src/lang.c:497
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
 #, c-format
-msgid "Matching %s groups..."
+msgid "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr ""
+
+#: src/lang.c:608
+#, c-format
+msgid ""
+"%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr ""
+
+#: src/lang.c:610
+#, c-format
+msgid "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
 msgstr ""
 
-#: src/lang.c:498 src/lang.c:502
+#: src/lang.c:612
+#, c-format
+msgid ""
+"%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr ""
+
+#: src/lang.c:613 src/lang.c:617
 #, 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:614
 #, 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:615
 #, 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:616
 #, c-format
 msgid "%s=search forwards; %s=search backwards; %s=quit"
 msgstr ""
 
-#: src/lang.c:503
+#: src/lang.c:618
 #, c-format
 msgid "%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read"
 msgstr ""
 
-#: src/lang.c:504
+#: src/lang.c:619
+#, c-format
+msgid "%s=add; %s=move; %s=rename; %s=delete"
+msgstr ""
+
+#: src/lang.c:621
 #, 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:622
 #, 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:623
 #, 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:624
 #, c-format
 msgid "<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle"
 msgstr ""
 
-#: src/lang.c:508
+#: src/lang.c:625
 #, c-format
 msgid "%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread"
 msgstr ""
 
-#: src/lang.c:509
-msgid "--More--"
+#: src/lang.c:627
+#, c-format
+msgid "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr ""
+
+#: src/lang.c:628
+msgid "--More--"
+msgstr ""
+
+#: src/lang.c:629
+#, c-format
+msgid "Moving %s..."
+msgstr ""
+
+#: src/lang.c:630
+msgid "Message-ID: & last Reference  "
+msgstr ""
+
+#: src/lang.c:631
+msgid "Message-ID: line              "
 msgstr ""
 
-#: src/lang.c:510
-#, c-format
-msgid "Moving %s..."
+#: src/lang.c:632
+msgid "Message-ID: & References: line"
 msgstr ""
 
-#: src/lang.c:512
+#: src/lang.c:634
 msgid ", name: "
 msgstr ""
 
-#: src/lang.c:513
+#: src/lang.c:635
 #, c-format
-msgid "Goto newsgroup [%s]> "
+msgid "Go to newsgroup [%s]> "
 msgstr ""
 
-#: src/lang.c:514
+#: src/lang.c:636
 msgid "newsgroups"
 msgstr ""
 
-#: src/lang.c:515
+#: src/lang.c:637
 #, c-format
 msgid "Position %s in group list (1,2,..,$) [%d]> "
 msgstr ""
 
-#: src/lang.c:516
+#: src/lang.c:638
 msgid "newsgroup"
 msgstr ""
 
-#: src/lang.c:517
+#: src/lang.c:639
 msgid "Try and save newsrc file again?"
 msgstr ""
 
-#: src/lang.c:518
+#: src/lang.c:640
 msgid "Warning: No newsgroups were written to your newsrc file. Save aborted."
 msgstr ""
 
-#: src/lang.c:519
+#: src/lang.c:641
 msgid "newsrc file saved successfully.\n"
 msgstr ""
 
-#: src/lang.c:520
+#: src/lang.c:642
 msgid "-- Next response --"
 msgstr ""
 
-#: src/lang.c:521
-#, c-format
-msgid "NNTP authorization password not found for %s"
-msgstr ""
-
-#: src/lang.c:522
+#: src/lang.c:643
 msgid "No  "
 msgstr ""
 
-#: src/lang.c:523
+#: src/lang.c:644
 msgid "*** No articles ***"
 msgstr ""
 
-#: src/lang.c:524
+#: src/lang.c:645
 msgid "No articles have been posted"
 msgstr ""
 
-#: src/lang.c:525
+#: src/lang.c:646
+msgid "*** No attachments ***"
+msgstr ""
+
+#: src/lang.c:647
 msgid "*** No description ***"
 msgstr ""
 
-#: src/lang.c:526
+#: src/lang.c:648
 msgid "No filename"
 msgstr ""
 
-#: src/lang.c:527
+#: src/lang.c:649
 msgid "No group"
 msgstr ""
 
-#: src/lang.c:528
+#: src/lang.c:650
 msgid "*** No groups ***"
 msgstr ""
 
-#: src/lang.c:529
+#: src/lang.c:651
 msgid "No more groups to read"
 msgstr ""
 
-#: src/lang.c:530
+#: src/lang.c:652
 msgid "No last message"
 msgstr ""
 
-#: src/lang.c:531
+#: src/lang.c:653
 msgid "No mail address"
 msgstr ""
 
-#: src/lang.c:532
+#: src/lang.c:654
 msgid "No articles marked for saving"
 msgstr ""
 
-#: src/lang.c:533
+#: src/lang.c:655
 msgid "No match"
 msgstr ""
 
-#: src/lang.c:534
+#: src/lang.c:656
 msgid "No more groups"
 msgstr ""
 
-#: src/lang.c:535
+#: src/lang.c:657
 msgid "No newsgroups"
 msgstr ""
 
-#: src/lang.c:536
+#: src/lang.c:658
 msgid "No next unread article"
 msgstr ""
 
-#: src/lang.c:537
+#: src/lang.c:659
 msgid "No previous group"
 msgstr ""
 
-#: src/lang.c:538
+#: src/lang.c:660
+msgid "No previous search, nothing to repeat"
+msgstr ""
+
+#: src/lang.c:661
 msgid "No previous unread article"
 msgstr ""
 
-#: src/lang.c:539
+#: src/lang.c:662
 msgid "No responses"
 msgstr ""
 
-#: src/lang.c:540
+#: src/lang.c:663
 msgid "No responses to list in current thread"
 msgstr ""
 
-#: src/lang.c:541
+#: src/lang.c:664
+msgid "*** No scopes ***"
+msgstr ""
+
+#: src/lang.c:665
 msgid "No search string"
 msgstr ""
 
-#: src/lang.c:542
+#: src/lang.c:666
 msgid "No subject"
 msgstr ""
 
-#: src/lang.c:544
+#: src/lang.c:668
 #, c-format
 msgid "%s: Terminal must have clear to end-of-line (ce)\n"
 msgstr ""
 
-#: src/lang.c:545
+#: src/lang.c:669
 #, c-format
 msgid "%s: Terminal must have clear to end-of-screen (cd)\n"
 msgstr ""
 
-#: src/lang.c:546
+#: src/lang.c:670
 #, c-format
 msgid "%s: Terminal must have clearscreen (cl) capability\n"
 msgstr ""
 
-#: src/lang.c:547
+#: src/lang.c:671
 #, c-format
 msgid "%s: Terminal must have cursor motion (cm)\n"
 msgstr ""
 
-#: src/lang.c:548
+#: src/lang.c:672
 #, c-format
 msgid "%s: TERM variable must be set to use screen capabilities\n"
 msgstr ""
 
-#: src/lang.c:550
+#: src/lang.c:674
 #, c-format
 msgid "No viewer found for %s/%s\n"
 msgstr ""
 
-#: src/lang.c:551
+#: src/lang.c:675
 msgid "Newsgroup does not exist on this server"
 msgstr ""
 
-#: src/lang.c:552
+#: src/lang.c:676
 #, c-format
 msgid "Group %s not found in active file"
 msgstr ""
 
-#: src/lang.c:553
+#: src/lang.c:677
 msgid "c)reate it, use a)lternative name, use d)efault .newsrc, q)uit tin: "
 msgstr ""
 
-#: src/lang.c:554
+#: src/lang.c:678
 msgid "use a)lternative name, use d)efault .newsrc, q)uit tin: "
 msgstr ""
 
-#: src/lang.c:555
+#: src/lang.c:679
 #, c-format
 msgid ""
 "# NNTP-server -> newsrc translation table and NNTP-server\n"
@@ -2330,323 +2919,326 @@ msgid ""
 "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
 "#\n"
 "# examples:\n"
-"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
+"#   news.tin.org      .newsrc-tin.org  tinorg\n"
+"#   news.example.org  /tmp/nrc-ex      example    ex\n"
 "#\n"
 msgstr ""
 
-#: src/lang.c:562
+#: src/lang.c:686
 msgid "Only"
 msgstr ""
 
-#: src/lang.c:563
+#: src/lang.c:687
 #, c-format
 msgid "Option not enabled. Recompile with %s."
 msgstr ""
 
-#: src/lang.c:564
+#: src/lang.c:688
 msgid "Options Menu"
 msgstr ""
 
-#: src/lang.c:567
+#: src/lang.c:689
+msgid "Options Menu Commands"
+msgstr ""
+
+#: src/lang.c:692
 #, c-format
 msgid "Error in regex: %s at pos. %d '%s'"
 msgstr ""
 
-#: src/lang.c:568
+#: src/lang.c:693
 #, c-format
 msgid "Error in regex: pcre internal error %d"
 msgstr ""
 
-#: src/lang.c:569
+#: src/lang.c:694
 #, c-format
 msgid "Error in regex: study - pcre internal error %s"
 msgstr ""
 
-#: src/lang.c:570
+#: src/lang.c:695
 msgid "Post a followup..."
 msgstr ""
 
 #. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
-#: src/lang.c:572
+#: src/lang.c:697
 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:700
 msgid "Posted articles history"
 msgstr ""
 
-#: src/lang.c:576
+#: src/lang.c:701
 #, c-format
 msgid "Post to newsgroup(s) [%s]> "
 msgstr ""
 
-#: src/lang.c:577
+#: src/lang.c:702
 msgid "-- post processing started --"
 msgstr ""
 
-#: src/lang.c:578
+#: src/lang.c:703
 msgid "-- post processing completed --"
 msgstr ""
 
-#: src/lang.c:579
+#: src/lang.c:704
 #, c-format
 msgid "Post subject [%s]> "
 msgstr ""
 
-#: src/lang.c:580
+#: src/lang.c:705
 msgid ""
 "# Summary of mailed/posted messages viewable by 'W' command from within "
 "tin.\n"
 msgstr ""
 
-#: src/lang.c:581
+#: src/lang.c:706
 msgid "Posting article..."
 msgstr ""
 
-#: src/lang.c:582
+#: src/lang.c:707
 #, c-format
 msgid "Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
 msgstr ""
 
-#: src/lang.c:583
+#: src/lang.c:708
 #, c-format
 msgid "Hot %s"
 msgstr ""
 
-#: src/lang.c:584
+#: src/lang.c:709
 #, c-format
 msgid "Tagged %s"
 msgstr ""
 
-#: src/lang.c:585
+#: src/lang.c:710
 #, c-format
 msgid "Untagged %s"
 msgstr ""
 
-#: src/lang.c:586
+#: src/lang.c:711
 msgid "Processing mail messages marked for deletion."
 msgstr ""
 
-#: src/lang.c:587
+#: src/lang.c:712
 msgid "Processing saved articles marked for deletion."
 msgstr ""
 
-#: src/lang.c:588
+#: src/lang.c:713
 #, c-format
 msgid "Accept Followup-To? %s=post, %s=ignore, %s=quit: "
 msgstr ""
 
-#: src/lang.c:589
+#: src/lang.c:714
 msgid "Article unchanged, abort mailing?"
 msgstr ""
 
-#: src/lang.c:590
+#: src/lang.c:715
 #, c-format
 msgid "Do you want to see postponed articles (%d)?"
 msgstr ""
 
-#: src/lang.c:592
+#: src/lang.c:717
 msgid "Add quick kill filter?"
 msgstr ""
 
-#: src/lang.c:593
+#: src/lang.c:718
 msgid "Add quick selection filter?"
 msgstr ""
 
-#: src/lang.c:594
+#: src/lang.c:719
 msgid "Do you really want to quit?"
 msgstr ""
 
-#: src/lang.c:595
+#: src/lang.c:720
 #, c-format
 msgid "%s=edit cancel message, %s=quit, %s=delete (cancel) [%%s]: "
 msgstr ""
 
-#: src/lang.c:596
+#: src/lang.c:721
 msgid "You have tagged articles in this group - quit anyway?"
 msgstr ""
 
-#: src/lang.c:597
+#: src/lang.c:722
 #, c-format
 msgid "%s=quit, %s=edit, %s=postpone: "
 msgstr ""
 
-#: src/lang.c:598
+#: src/lang.c:723
 #, c-format
 msgid "%s=quit %s=edit %s=save kill description: "
 msgstr ""
 
-#: src/lang.c:599
+#: src/lang.c:724
 #, c-format
 msgid "%s=quit %s=edit %s=save select description: "
 msgstr ""
 
-#: src/lang.c:600
+#: src/lang.c:725
 msgid "Do you really want to quit without saving your configuration?"
 msgstr ""
 
-#: src/lang.c:603
+#: src/lang.c:728
 msgid "Invalid range - valid are '0-9.$' eg. 1-$"
 msgstr ""
 
-#: src/lang.c:604
+#: src/lang.c:730
 msgid "Do you want to abort this operation?"
 msgstr ""
 
-#: src/lang.c:605
+#: src/lang.c:731
 msgid "Do you want to exit tin immediately?"
 msgstr ""
 
-#: src/lang.c:606
-msgid "Read response> "
-msgstr ""
-
-#: src/lang.c:607
+#: src/lang.c:733
 msgid "Reading ('q' to quit)..."
 msgstr ""
 
-#: src/lang.c:608
+#: src/lang.c:734
 #, c-format
 msgid "Reading %sarticles..."
 msgstr ""
 
-#: src/lang.c:609
+#: src/lang.c:735
 #, c-format
 msgid "Reading %sattributes file...\n"
 msgstr ""
 
-#: src/lang.c:610
+#: src/lang.c:736
 #, c-format
 msgid "Reading %sconfig file...\n"
 msgstr ""
 
-#: src/lang.c:611
+#: src/lang.c:737
 msgid "Reading filter file...\n"
 msgstr ""
 
-#: src/lang.c:612
+#: src/lang.c:738
 #, c-format
 msgid "Reading %s groups..."
 msgstr ""
 
-#: src/lang.c:613
+#: src/lang.c:739
 msgid "Reading input history file...\n"
 msgstr ""
 
-#: src/lang.c:614
+#: src/lang.c:740
 msgid "Reading keymap file...\n"
 msgstr ""
 
-#: src/lang.c:615
+#: src/lang.c:741
 msgid "Reading groups from active file... "
 msgstr ""
 
-#: src/lang.c:616
+#: src/lang.c:742
 msgid "Reading groups from newsrc file... "
 msgstr ""
 
-#: src/lang.c:617
+#: src/lang.c:743
 msgid "Reading newsgroups file... "
 msgstr ""
 
-#: src/lang.c:618
+#: src/lang.c:744
 msgid "Reading newsrc file..."
 msgstr ""
 
-#: src/lang.c:620
+#: src/lang.c:745
+msgid "References: line              "
+msgstr ""
+
+#: src/lang.c:747
 #, c-format
 msgid "(%d:%02d remaining)"
 msgstr ""
 
-#: src/lang.c:622
+#: src/lang.c:749
 #, c-format
 msgid "Bogus group %s removed."
 msgstr ""
 
-#: src/lang.c:623
+#: src/lang.c:750
+msgid "Removed from the previous rule: "
+msgstr ""
+
+#: src/lang.c:751
 #, c-format
 msgid "Error: rename %s to %s"
 msgstr ""
 
-#: src/lang.c:624
+#: src/lang.c:752
 msgid "Reply to author..."
 msgstr ""
 
-#: src/lang.c:625
+#: src/lang.c:753
 msgid "Repost"
 msgstr ""
 
-#: src/lang.c:626
+#: src/lang.c:754
 msgid "Reposting article..."
 msgstr ""
 
-#: src/lang.c:627
+#: src/lang.c:755
 #, c-format
 msgid "Repost article(s) to group(s) [%s]> "
 msgstr ""
 
-#: src/lang.c:628
+#: src/lang.c:756
 msgid "Reset newsrc?"
 msgstr ""
 
-#: src/lang.c:629
+#: src/lang.c:757
 msgid "Responses have been directed to the following newsgroups"
 msgstr ""
 
-#: src/lang.c:630
+#: src/lang.c:758
 #, c-format
 msgid "Responses have been directed to poster. %s=mail, %s=post, %s=quit: "
 msgstr ""
 
-#: src/lang.c:631
-#, c-format
-msgid "RespNo %4d of %4d"
-msgstr ""
-
-#: src/lang.c:632
+#: src/lang.c:760
 msgid "Press <RETURN> to continue..."
 msgstr ""
 
-#: src/lang.c:634
+#: src/lang.c:762
 #, c-format
 msgid "Select From    [%s] (y/n): "
 msgstr ""
 
-#: src/lang.c:635
+#: src/lang.c:763
 msgid "Select Lines: (</>num): "
 msgstr ""
 
-#: src/lang.c:636
+#: src/lang.c:764
 msgid "Auto-select Article Menu"
 msgstr ""
 
-#: src/lang.c:637
+#: src/lang.c:765
 #, c-format
 msgid "Select Msg-Id  [%s] (f/l/o/n): "
 msgstr ""
 
-#: src/lang.c:638
+#: src/lang.c:766
 msgid "Select pattern scope: "
 msgstr ""
 
-#: src/lang.c:639
+#: src/lang.c:767
 #, c-format
 msgid "Select Subject [%s] (y/n): "
 msgstr ""
 
-#: src/lang.c:640
+#: src/lang.c:768
 msgid "Select text pattern : "
 msgstr ""
 
-#: src/lang.c:641
+#: src/lang.c:769
 msgid "Select time in days   : "
 msgstr ""
 
-#: src/lang.c:642
+#: src/lang.c:770
 #, c-format
 msgid ""
 "# %s server configuration file\n"
@@ -2659,224 +3251,260 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/lang.c:648
+#: src/lang.c:776
 msgid "Showing unread groups only"
 msgstr ""
 
-#: src/lang.c:649
+#: src/lang.c:777
 msgid "Subject: line (ignore case)   "
 msgstr ""
 
-#: src/lang.c:650
+#: src/lang.c:778
 msgid "Subject: line (case sensitive)"
 msgstr ""
 
-#: src/lang.c:651
+#: src/lang.c:779
 msgid "Save"
 msgstr ""
 
-#: src/lang.c:652
+#: src/lang.c:780
 #, c-format
 msgid "Save '%s' (%s/%s)?"
 msgstr ""
 
-#: src/lang.c:653
+#: src/lang.c:781
 msgid "Save configuration before continuing?"
 msgstr ""
 
-#: src/lang.c:654
+#: src/lang.c:782
 msgid "Save filename> "
 msgstr ""
 
-#: src/lang.c:655
+#: src/lang.c:783
 msgid "Saved"
 msgstr ""
 
-#: src/lang.c:656
+#: src/lang.c:784
 #, c-format
 msgid "%4d unread (%4d hot) %s in %s\n"
 msgstr ""
 
-#: src/lang.c:657
+#: src/lang.c:785
 #, c-format
 msgid "Saved %s...\n"
 msgstr ""
 
-#: src/lang.c:658
+#: src/lang.c:786
 msgid "Nothing was saved"
 msgstr ""
 
-#: src/lang.c:659
+#: src/lang.c:787
 #, c-format
 msgid ""
 "\n"
 "%s %d %s from %d %s\n"
 msgstr ""
 
-#: src/lang.c:660
+#: src/lang.c:788
 #, c-format
 msgid "-- %s saved to %s%s --"
 msgstr ""
 
-#: src/lang.c:661
-#, c-format
-msgid "-- %s saved to %s - %s --"
+#: src/lang.c:789
+#, c-format
+msgid "-- %s saved to %s - %s --"
+msgstr ""
+
+#: src/lang.c:790
+msgid "Saving..."
+msgstr ""
+
+#: src/lang.c:791
+#, c-format
+msgid "%s: Screen initialization failed"
+msgstr ""
+
+#: src/lang.c:793
+#, c-format
+msgid "%s: screen is too small\n"
+msgstr ""
+
+#: src/lang.c:795
+#, c-format
+msgid "screen is too small, %s is exiting\n"
+msgstr ""
+
+#: src/lang.c:796
+msgid "Delete scope?"
+msgstr ""
+
+#: src/lang.c:797
+msgid "Enter scope> "
+msgstr ""
+
+#: src/lang.c:798
+msgid "Select new position> "
+msgstr ""
+
+#: src/lang.c:799
+msgid "New position cannot be a global scope"
+msgstr ""
+
+#: src/lang.c:800
+msgid "Global scope, operation not allowed"
 msgstr ""
 
-#: src/lang.c:662
-msgid "Saving..."
+#: src/lang.c:801
+msgid "Rename scope> "
 msgstr ""
 
-#: src/lang.c:663
-#, c-format
-msgid "%s: Screen initialization failed"
+#: src/lang.c:802
+msgid "Select scope> "
 msgstr ""
 
-#: src/lang.c:665
-#, c-format
-msgid "%s: screen is too small\n"
+#: src/lang.c:803
+msgid "Scopes Menu"
 msgstr ""
 
-#: src/lang.c:667
-#, c-format
-msgid "screen is too small, %s is exiting\n"
+#: src/lang.c:804
+msgid "Scopes Menu Commands"
 msgstr ""
 
-#: src/lang.c:668
+#: src/lang.c:805
 #, c-format
 msgid "Search backwards [%s]> "
 msgstr ""
 
-#: src/lang.c:669
+#: src/lang.c:806
 #, c-format
 msgid "Search body [%s]> "
 msgstr ""
 
-#: src/lang.c:670
+#: src/lang.c:807
 #, c-format
 msgid "Search forwards [%s]> "
 msgstr ""
 
-#: src/lang.c:671
+#: src/lang.c:808
 msgid "Searching..."
 msgstr ""
 
-#: src/lang.c:672
+#: src/lang.c:809
 #, c-format
 msgid "Searching article %d of %d ('q' to abort)..."
 msgstr ""
 
-#: src/lang.c:673
+#: src/lang.c:810
 msgid "Select article> "
 msgstr ""
 
-#: src/lang.c:674
+#: src/lang.c:811
 msgid ""
 "Select option number before text or use arrow keys and <CR>. 'q' to quit."
 msgstr ""
 
-#: src/lang.c:675
+#: src/lang.c:812
 msgid "Select group> "
 msgstr ""
 
-#: src/lang.c:676
+#: src/lang.c:813
 #, c-format
 msgid "Enter selection pattern [%s]> "
 msgstr ""
 
-#: src/lang.c:677
+#: src/lang.c:814
 msgid "Select thread > "
 msgstr ""
 
-#: src/lang.c:678
+#: src/lang.c:815
 #, c-format
 msgid "%s %s %s (\"%s\") [%s]: send a DETAILED bug report to %s\n"
 msgstr ""
 
-#: src/lang.c:679
+#: src/lang.c:816
 msgid "servers active-file"
 msgstr ""
 
-#: src/lang.c:680
+#: src/lang.c:817
 msgid "Cannot move into new newsgroups. Subscribe first..."
 msgstr ""
 
-#: src/lang.c:681
+#: src/lang.c:818
 msgid "<SPACE>"
 msgstr ""
 
-#: src/lang.c:682
+#: src/lang.c:819
 #, c-format
 msgid "Starting: (%s)"
 msgstr ""
 
-#: src/lang.c:683
+#: src/lang.c:820
 #, c-format
 msgid "List Thread (%d of %d)"
 msgstr ""
 
-#: src/lang.c:684
+#: src/lang.c:821
 #, c-format
 msgid "Thread (%.*s)"
 msgstr ""
 
-#: src/lang.c:685
+#: src/lang.c:822
 msgid "Enter wildcard subscribe pattern> "
 msgstr ""
 
-#: src/lang.c:686
+#: src/lang.c:823
 #, c-format
 msgid "subscribed to %d groups"
 msgstr ""
 
-#: src/lang.c:687
+#: src/lang.c:824
 #, c-format
 msgid "Subscribed to %s"
 msgstr ""
 
-#: src/lang.c:688
+#: src/lang.c:825
 msgid "Subscribing... "
 msgstr ""
 
-#: src/lang.c:689
+#: src/lang.c:826
 #, c-format
 msgid "Repost or supersede article(s) [%%s]? (%s/%s/%s): "
 msgstr ""
 
-#: src/lang.c:690
+#: src/lang.c:827
 #, c-format
 msgid "Supersede article(s) to group(s) [%s]> "
 msgstr ""
 
-#: src/lang.c:691
+#: src/lang.c:828
 msgid "Superseding article ..."
 msgstr ""
 
-#: src/lang.c:692
+#: src/lang.c:829
 #, c-format
 msgid ""
 "\n"
 "Stopped. Type 'fg' to restart %s\n"
 msgstr ""
 
-#: src/lang.c:694
+#: src/lang.c:831
 #, c-format
 msgid "%d days"
 msgstr ""
 
-#: src/lang.c:695
+#: src/lang.c:832
 msgid "<TAB>"
 msgstr ""
 
-#: src/lang.c:696
+#: src/lang.c:833
 msgid "TeX "
 msgstr ""
 
-#: src/lang.c:697
+#: src/lang.c:834
 msgid "# Default action/prompt strings\n"
 msgstr ""
 
-#: src/lang.c:698
+#: src/lang.c:835
 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 +3515,271 @@ msgid ""
 "# expire=ON/OFF  ON=limit to default_filter_days OFF=don't ever expire\n"
 msgstr ""
 
-#: src/lang.c:711
+#: src/lang.c:848
 msgid ""
 "# If ON use print current subject or newsgroup description in the last line\n"
 msgstr ""
 
-#: src/lang.c:712
+#: src/lang.c:849
 msgid "# Host & time info used for detecting new groups (don't touch)\n"
 msgstr ""
 
-#: src/lang.c:713
+#: src/lang.c:850
 msgid "There is no news\n"
 msgstr ""
 
-#: src/lang.c:714
+#: src/lang.c:851
 msgid "Thread"
 msgstr ""
 
-#: src/lang.c:715
+#: src/lang.c:852
 msgid "Thread Level Commands"
 msgstr ""
 
-#: src/lang.c:716
+#: src/lang.c:853
 msgid "Thread deselected"
 msgstr ""
 
-#: src/lang.c:717
+#: src/lang.c:854
 msgid "Thread selected"
 msgstr ""
 
-#: src/lang.c:719
+#: src/lang.c:856
 msgid "threads"
 msgstr ""
 
-#: src/lang.c:721
-msgid "Thread range"
-msgstr ""
-
-#: src/lang.c:722
+#: src/lang.c:858
 msgid "thread"
 msgstr ""
 
-#: src/lang.c:723
+#: src/lang.c:859
 #, c-format
 msgid "Thread %4s of %4s"
 msgstr ""
 
-#: src/lang.c:724
+#: src/lang.c:860
 msgid "Threading articles..."
 msgstr ""
 
-#: src/lang.c:725
+#: src/lang.c:861
 #, c-format
 msgid "Toggled word highlighting %s"
 msgstr ""
 
-#: src/lang.c:726
+#: src/lang.c:862
 msgid "Toggled rot13 encoding"
 msgstr ""
 
-#: src/lang.c:727
+#: src/lang.c:863
 #, c-format
 msgid "Toggled german TeX encoding %s"
 msgstr ""
 
-#: src/lang.c:728
+#: src/lang.c:864
 #, c-format
 msgid "Toggled tab-width to %d"
 msgstr ""
 
-#: src/lang.c:729
+#: src/lang.c:866
 #, c-format
 msgid "%d Trying to dotlock %s"
 msgstr ""
 
-#: src/lang.c:730
+#: src/lang.c:867
 #, c-format
 msgid "%d Trying to lock %s"
 msgstr ""
 
-#: src/lang.c:731
-msgid "           h=help\n"
+#: src/lang.c:869
+msgid "           h=help"
 msgstr ""
 
-#: src/lang.c:733
+#: src/lang.c:871
 msgid "Unlimited"
 msgstr ""
 
-#: src/lang.c:734
+#: src/lang.c:872
 msgid "Enter wildcard unsubscribe pattern> "
 msgstr ""
 
-#: src/lang.c:735
+#: src/lang.c:873
 #, c-format
 msgid "Error decoding %s : %s"
 msgstr ""
 
-#: src/lang.c:736
+#: src/lang.c:874
 msgid "No end."
 msgstr ""
 
-#: src/lang.c:737
+#: src/lang.c:875
 #, c-format
 msgid "%s successfully decoded."
 msgstr ""
 
-#: src/lang.c:738
+#: src/lang.c:876
 #, c-format
 msgid ""
 "%*s[-- %s/%s, %suuencoded file, %d lines, name: %s --]\n"
 "\n"
 msgstr ""
 
-#: src/lang.c:739
+#: src/lang.c:877
 msgid "unread "
 msgstr ""
 
-#: src/lang.c:740
+#: src/lang.c:878
 #, c-format
 msgid "unsubscribed from %d groups"
 msgstr ""
 
-#: src/lang.c:741
+#: src/lang.c:879
 #, c-format
 msgid "Unsubscribed from %s"
 msgstr ""
 
-#: src/lang.c:742
+#: src/lang.c:880
 msgid "Unsubscribing... "
 msgstr ""
 
-#: src/lang.c:743
+#: src/lang.c:881
 msgid "Unthreading articles..."
 msgstr ""
 
-#: src/lang.c:744
+#: src/lang.c:882
 msgid "Updated"
 msgstr ""
 
-#: src/lang.c:745
+#: src/lang.c:884
+#, c-format
+msgid "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr ""
+
+#: src/lang.c:886
 msgid "Updating"
 msgstr ""
 
-#: src/lang.c:746
+#: src/lang.c:887
+msgid "URL Menu"
+msgstr ""
+
+#: src/lang.c:888
+msgid "URL Menu Commands"
+msgstr ""
+
+#: src/lang.c:889
 #, c-format
-msgid "Opening %s\n"
+msgid "Opening %s"
 msgstr ""
 
-#: src/lang.c:747
-msgid "No more URL's in this article"
+#: src/lang.c:890
+msgid "Select URL> "
+msgstr ""
+
+#: src/lang.c:891
+msgid "No URLs in this article"
 msgstr ""
 
-#: src/lang.c:748
+#: src/lang.c:892
 msgid "Use MIME display program for this message?"
 msgstr ""
 
-#: src/lang.c:749
+#: src/lang.c:893
 msgid "  -c       mark all news as read in subscribed newsgroups (batch mode)"
 msgstr ""
 
-#: src/lang.c:750
+#: src/lang.c:894
 msgid "  -Z       return status indicating if any unread news (batch mode)"
 msgstr ""
 
-#: src/lang.c:751
+#: src/lang.c:895
 msgid "  -q       don't check for new newsgroups"
 msgstr ""
 
-#: src/lang.c:752
+#: src/lang.c:896
 msgid "  -X       don't save any files on quit"
 msgstr ""
 
-#: src/lang.c:753
+#: src/lang.c:897
 msgid "  -d       don't show newsgroup descriptions"
 msgstr ""
 
-#: src/lang.c:754
+#: src/lang.c:898
 msgid "  -G limit get only limit articles/group"
 msgstr ""
 
-#: src/lang.c:755
+#: src/lang.c:899
 #, c-format
 msgid "  -H       help information about %s"
 msgstr ""
 
-#: src/lang.c:756
+#: src/lang.c:900
 msgid "  -h       this help message"
 msgstr ""
 
-#: src/lang.c:757
+#: src/lang.c:901
 #, c-format
 msgid "  -I dir   news index file directory [default=%s]"
 msgstr ""
 
-#: src/lang.c:758
+#: src/lang.c:902
 msgid "  -u       update index files (batch mode)"
 msgstr ""
 
-#: src/lang.c:759
+#: src/lang.c:903
 #, c-format
 msgid "  -m dir   mailbox directory [default=%s]"
 msgstr ""
 
-#: src/lang.c:760
+#: src/lang.c:904
 #, c-format
 msgid ""
 "\n"
 "Mail bug reports/comments to %s"
 msgstr ""
 
-#: src/lang.c:761
+#: src/lang.c:905
 msgid "  -N       mail new news to your posts (batch mode)"
 msgstr ""
 
-#: src/lang.c:762
+#: src/lang.c:906
 msgid "  -M user  mail new news to specified user (batch mode)"
 msgstr ""
 
-#: src/lang.c:763
+#: src/lang.c:907
 #, c-format
 msgid "  -f file  subscribed to newsgroups file [default=%s]"
 msgstr ""
 
-#: src/lang.c:764
+#: src/lang.c:908
 msgid "  -x       no posting mode"
 msgstr ""
 
-#: src/lang.c:765
+#: src/lang.c:909
 msgid "  -w       post an article and exit"
 msgstr ""
 
-#: src/lang.c:766
+#: src/lang.c:910
 msgid "  -o       post all postponed articles and exit"
 msgstr ""
 
-#: src/lang.c:767
-msgid "  -r       read news remotely from default NNTP server"
-msgstr ""
-
-#: src/lang.c:768
+#: src/lang.c:911
 msgid "  -R       read news saved by -S option"
 msgstr ""
 
-#: src/lang.c:769
+#: src/lang.c:912
 #, c-format
 msgid "  -s dir   save news directory [default=%s]"
 msgstr ""
 
-#: src/lang.c:770
+#: src/lang.c:913
 msgid "  -S       save new news for later reading (batch mode)"
 msgstr ""
 
-#: src/lang.c:771
+#: src/lang.c:914
 msgid "  -z       start if any unread news"
 msgstr ""
 
-#: src/lang.c:772
+#: src/lang.c:915
 #, c-format
 msgid ""
 "A Usenet reader.\n"
@@ -3150,37 +3787,42 @@ msgid ""
 "Usage: %s [options] [newsgroup[,...]]"
 msgstr ""
 
-#: src/lang.c:773
+#: src/lang.c:916
 msgid "  -v       verbose output for batch mode options"
 msgstr ""
 
-#: src/lang.c:774
+#: src/lang.c:917
 msgid "  -V       print version & date information"
 msgstr ""
 
-#: src/lang.c:775
+#: src/lang.c:918
 #, c-format
 msgid "%s only useful without batch mode operations\n"
 msgstr ""
 
-#: src/lang.c:776
+#: src/lang.c:919
 #, c-format
 msgid "%s only useful for batch mode operations\n"
 msgstr ""
 
-#: src/lang.c:778
+#: src/lang.c:920
+#, c-format
+msgid "Useless combination %s and %s. Ignoring %s.\n"
+msgstr ""
+
+#: src/lang.c:922
 #, c-format
 msgid ""
 "\n"
 "%s%d out of range (0 - %d). Reset to 0"
 msgstr ""
 
-#: src/lang.c:779
+#: src/lang.c:923
 #, c-format
 msgid "View '%s' (%s/%s)?"
 msgstr ""
 
-#: src/lang.c:781
+#: src/lang.c:925
 #, c-format
 msgid ""
 "\n"
@@ -3188,33 +3830,33 @@ msgid ""
 "%-100s\n"
 msgstr ""
 
-#: src/lang.c:782
+#: src/lang.c:926
 msgid ""
 "\n"
 "Warning: article unchanged after editing\n"
 msgstr ""
 
-#: src/lang.c:783
+#: src/lang.c:927
 msgid ""
 "\n"
 "Warning: \"Subject:\" contains only whitespaces.\n"
 msgstr ""
 
-#: src/lang.c:784
+#: src/lang.c:928
 msgid ""
 "\n"
 "Warning: \"Subject:\" begins with \"Re: \" but there are no \"References:"
 "\".\n"
 msgstr ""
 
-#: src/lang.c:786
+#: src/lang.c:930
 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:933
 msgid ""
 "Read carefully!\n"
 "\n"
@@ -3228,7 +3870,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/lang.c:793
+#: src/lang.c:937
 msgid ""
 "\n"
 "Warning: You are using a non-plain transfer encoding (such as base64 or\n"
@@ -3237,7 +3879,13 @@ msgid ""
 "         not be encoded properly.\n"
 msgstr ""
 
-#: src/lang.c:798
+#: src/lang.c:942
+msgid ""
+"\n"
+"Warning: \"example\" is a reserved hierarchy!\n"
+msgstr ""
+
+#: src/lang.c:943
 #, c-format
 msgid ""
 "\n"
@@ -3247,7 +3895,7 @@ msgid ""
 "Read WHATSNEW, etc...\n"
 msgstr ""
 
-#: src/lang.c:800
+#: src/lang.c:945
 #, c-format
 msgid ""
 "\n"
@@ -3256,7 +3904,7 @@ msgid ""
 "Some values in your %s file may be ignored, others might have changed!\n"
 msgstr ""
 
-#: src/lang.c:803
+#: src/lang.c:948
 #, c-format
 msgid ""
 "Warning: tin wrote fewer groups to your\n"
@@ -3266,19 +3914,19 @@ msgid ""
 "before you start tin once again!\n"
 msgstr ""
 
-#: src/lang.c:807
+#: src/lang.c:952
 #, c-format
 msgid ""
 "\n"
 "Warning: Found %d '-- \\n' lines, this may confuse some people.\n"
 msgstr ""
 
-#: src/lang.c:808
+#: src/lang.c:953
 #, c-format
 msgid "Warning: Only %d out of %d articles were saved"
 msgstr ""
 
-#: src/lang.c:809
+#: src/lang.c:954
 #, c-format
 msgid ""
 "\n"
@@ -3289,49 +3937,49 @@ msgid ""
 "         possible.\n"
 msgstr ""
 
-#: src/lang.c:813
+#: src/lang.c:958
 #, c-format
 msgid ""
 "Warning: this mail address may contain a spamtrap. %s=continue, %s=abort? "
 msgstr ""
 
-#: src/lang.c:814
+#: src/lang.c:959
 msgid ""
 "\n"
 "Warning: Signatures should start with '-- \\n' not with '--\\n'.\n"
 msgstr ""
 
-#: src/lang.c:815
+#: src/lang.c:960
 msgid "Writing attributes file..."
 msgstr ""
 
-#: src/lang.c:817
+#: src/lang.c:962
 #, c-format
 msgid "%d Responses"
 msgstr ""
 
-#: src/lang.c:819
+#: src/lang.c:964
 #, c-format
 msgid "Added %d %s"
 msgstr ""
 
-#: src/lang.c:820
+#: src/lang.c:965
 msgid "No unsubscribed groups to show"
 msgstr ""
 
-#: src/lang.c:821
+#: src/lang.c:966
 msgid "Showing subscribed to groups only"
 msgstr ""
 
-#: src/lang.c:822
+#: src/lang.c:967
 msgid "Yes "
 msgstr ""
 
-#: src/lang.c:823
-msgid "    You have mail\n"
+#: src/lang.c:968
+msgid "    You have mail"
 msgstr ""
 
-#: src/lang.c:828
+#: src/lang.c:973
 #, c-format
 msgid ""
 "\n"
@@ -3344,11 +3992,11 @@ msgid ""
 "         M)enu option.\n"
 msgstr ""
 
-#: src/lang.c:839
-msgid "  -D       debug mode 1=NNTP 2=ALL"
+#: src/lang.c:984
+msgid "  -D mode  debug mode"
 msgstr ""
 
-#: src/lang.c:843
+#: src/lang.c:988
 msgid ""
 "Read carefully!\n"
 "\n"
@@ -3365,11 +4013,11 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/lang.c:852
+#: src/lang.c:997
 msgid "toggle color"
 msgstr ""
 
-#: src/lang.c:853
+#: src/lang.c:998
 msgid ""
 "# Changing colors of several screen parts\n"
 "# Possible values are:\n"
@@ -3394,359 +4042,386 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/lang.c:873
+#: src/lang.c:1018
 msgid "  -a       toggle color flag"
 msgstr ""
 
-#: src/lang.c:877
+#: src/lang.c:1022
 msgid ""
 "\n"
 "Error: Followup-To set to more than one newsgroup!\n"
 msgstr ""
 
-#: src/lang.c:878
+#: src/lang.c:1023
+#, c-format
+msgid ""
+"\n"
+"Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr ""
+
+#: src/lang.c:1024
 #, c-format
 msgid ""
 "\n"
 "Error: cross-posting to %d newsgroups and no Followup-To line!\n"
 msgstr ""
 
-#: src/lang.c:879
+#: src/lang.c:1025
 #, c-format
 msgid ""
 "\n"
 "Error: \"%s\" is not a valid newsgroup!\n"
 msgstr ""
 
-#: src/lang.c:881
+#: src/lang.c:1027
 msgid ""
 "\n"
 "Warning: Followup-To set to more than one newsgroup!\n"
 msgstr ""
 
-#: src/lang.c:882
+#: src/lang.c:1028
+#, c-format
+msgid ""
+"\n"
+"Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr ""
+
+#: src/lang.c:1029
 #, c-format
 msgid ""
 "\n"
 "Warning: cross-posting to %d newsgroups and no Followup-To line!\n"
 msgstr ""
 
-#: src/lang.c:883
+#: src/lang.c:1030
 #, 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:1031
 #, c-format
 msgid ""
 "\n"
 "Warning: \"%s\" is not a valid newsgroup at this site!\n"
 msgstr ""
 
-#: src/lang.c:888
+#: src/lang.c:1035
 #, c-format
 msgid "%d files successfully written from %d articles. %d %s occurred."
 msgstr ""
 
-#: src/lang.c:889
+#: src/lang.c:1036
 msgid "Missing parts."
 msgstr ""
 
-#: src/lang.c:890
+#: src/lang.c:1037
 msgid "No beginning."
 msgstr ""
 
-#: src/lang.c:891
+#: src/lang.c:1038
 msgid "No data."
 msgstr ""
 
-#: src/lang.c:892
+#: src/lang.c:1039
 msgid "Unknown error."
 msgstr ""
 
-#: src/lang.c:895
+#: src/lang.c:1042
 #, c-format
 msgid "\tChecksum of %s (%ld %s)"
 msgstr ""
 
-#: src/lang.c:900
+#: src/lang.c:1047
 msgid "Reading mail active file... "
 msgstr ""
 
-#: src/lang.c:901
+#: src/lang.c:1048
 msgid "Reading mailgroups file... "
 msgstr ""
 
-#: src/lang.c:905
+#: src/lang.c:1052
 msgid "perform PGP operations on article"
 msgstr ""
 
-#: src/lang.c:906
+#: src/lang.c:1053
 msgid "Add key(s) to public keyring?"
 msgstr ""
 
-#: src/lang.c:907
+#: src/lang.c:1054
 #, c-format
 msgid "%s=encrypt, %s=sign, %s=both, %s=quit: "
 msgstr ""
 
-#: src/lang.c:908
+#: src/lang.c:1055
 #, c-format
 msgid "%s=sign, %s=sign & include public key, %s=quit: "
 msgstr ""
 
-#: src/lang.c:909
+#: src/lang.c:1056
 #, c-format
 msgid "PGP has not been set up (can't open %s)"
 msgstr ""
 
-#: src/lang.c:910
+#: src/lang.c:1057
 msgid "Article not signed and no public keys found"
 msgstr ""
 
-#: src/lang.c:912
+#: src/lang.c:1059
 #, 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:1060
 #, c-format
 msgid "%s=quit, %s=edit, %s=ispell, %s=pgp, %s=send [%%s]: "
 msgstr ""
 
-#: src/lang.c:914
+#: src/lang.c:1061
 #, 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:1063
 #, c-format
 msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone: "
 msgstr ""
 
-#: src/lang.c:917
+#: src/lang.c:1064
 #, c-format
 msgid "%s=quit, %s=edit, %s=pgp, %s=send [%%s]: "
 msgstr ""
 
-#: src/lang.c:918
+#: src/lang.c:1065
 #, c-format
 msgid "%s=quit, %s=edit, %s=pgp, %s=menu, %s=post, %s=postpone [%%s]: "
 msgstr ""
 
-#: src/lang.c:922
+#: src/lang.c:1069
 #, c-format
 msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone: "
 msgstr ""
 
-#: src/lang.c:923
+#: src/lang.c:1070
 #, c-format
 msgid "%s=quit, %s=edit, %s=ispell, %s=send [%%s]: "
 msgstr ""
 
-#: src/lang.c:924
+#: src/lang.c:1071
 #, c-format
 msgid "%s=quit, %s=edit, %s=ispell, %s=menu, %s=post, %s=postpone [%%s]: "
 msgstr ""
 
-#: src/lang.c:926
+#: src/lang.c:1073
 #, c-format
 msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone: "
 msgstr ""
 
-#: src/lang.c:927
+#: src/lang.c:1074
 #, c-format
 msgid "%s=quit, %s=edit, %s=send [%%s]: "
 msgstr ""
 
-#: src/lang.c:928
+#: src/lang.c:1075
 #, c-format
 msgid "%s=quit, %s=edit, %s=menu, %s=post, %s=postpone [%%s]: "
 msgstr ""
 
-#: src/lang.c:937
+#: src/lang.c:1084
 msgid "Try cache_overview_files to speed up things.\n"
 msgstr ""
 
-#: src/lang.c:938
+#: src/lang.c:1085
 msgid "Tin will use local index files instead.\n"
 msgstr ""
 
-#: src/lang.c:939
+#: src/lang.c:1086
 msgid "Cannot find NNTP server name"
 msgstr ""
 
-#: src/lang.c:940
+#: src/lang.c:1087
 #, c-format
-msgid "Connecting to %s:%d..."
+msgid "Connecting to %s:%u..."
 msgstr ""
 
-#: src/lang.c:941
+#: src/lang.c:1088
 msgid "Disconnecting from server...\n"
 msgstr ""
 
-#: src/lang.c:942
+#: src/lang.c:1089
 #, c-format
-msgid "Wrong newsgroup name in response of GROUP command, %s for %s"
+msgid ""
+"Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
 msgstr ""
 
-#: src/lang.c:943
+#: src/lang.c:1090
 #, c-format
 msgid "Failed to connect to NNTP server %s. Exiting..."
 msgstr ""
 
-#: src/lang.c:944
+#: src/lang.c:1091
 msgid "205  Closing connection"
 msgstr ""
 
-#: src/lang.c:945
+#: src/lang.c:1092
 msgid "Your server does not support the NNTP XOVER or OVER command.\n"
 msgstr ""
 
-#: src/lang.c:946
+#: src/lang.c:1093
 msgid "Connection to news server has timed out. Reconnect?"
 msgstr ""
 
-#: src/lang.c:947
+#: src/lang.c:1094
 #, 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:1095
 msgid "  -A       force authentication on connect"
 msgstr ""
 
-#: src/lang.c:949
+#: src/lang.c:1096
 #, c-format
 msgid "  -g serv  read news from NNTP server serv [default=%s]"
 msgstr ""
 
-#: src/lang.c:950
+#: src/lang.c:1097
 #, c-format
 msgid "  -p port  use port as NNTP port [default=%d]"
 msgstr ""
 
-#: src/lang.c:951
-msgid "  -Q       quick start. Same as -nqd"
+#: src/lang.c:1098
+msgid "  -Q       quick start. Same as -nqd"
+msgstr ""
+
+#: src/lang.c:1099
+msgid "  -r       read news remotely from default NNTP server"
 msgstr ""
 
-#: src/lang.c:952
+#: src/lang.c:1100
 msgid "  -l       use only LIST instead of GROUP (-n) command"
 msgstr ""
 
-#: src/lang.c:953
+#: src/lang.c:1101
 msgid "  -n       only read subscribed .newsrc groups from NNTP server"
 msgstr ""
 
-#: src/lang.c:955
-#, c-format
-msgid "%s/tcp: Unknown service.\n"
+#: src/lang.c:1103
+msgid "  -4       force connecting via IPv4"
 msgstr ""
 
-#: src/lang.c:958
+#: src/lang.c:1104
+msgid "  -6       force connecting via IPv6"
+msgstr ""
+
+#: src/lang.c:1105
 msgid ""
 "\n"
 "socket or connect problem\n"
 msgstr ""
 
-#: src/lang.c:960
+#: src/lang.c:1107
 #, c-format
 msgid ""
 "\n"
 "Connection to %s: "
 msgstr ""
 
-#: src/lang.c:961
+#: src/lang.c:1108
 msgid "Giving up...\n"
 msgstr ""
 
-#: src/lang.c:964
+#: src/lang.c:1110
+#, c-format
+msgid "%s/tcp: Unknown service.\n"
+msgstr ""
+
+#: src/lang.c:1114
 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:1117
 msgid "Your server does not have Xref: in its XOVER information.\n"
 msgstr ""
 
-#: src/lang.c:970
+#: src/lang.c:1120
 #, c-format
 msgid "Can't open %s. Try %s -r to read news via NNTP.\n"
 msgstr ""
 
-#: src/lang.c:973
+#: src/lang.c:1123
 msgid "  -Q       quick start. Same as -qd"
 msgstr ""
 
-#: src/lang.c:974
+#: src/lang.c:1124
 msgid "  -l       read only active file instead of scanning spool (-n) command"
 msgstr ""
 
-#: src/lang.c:975
+#: src/lang.c:1125
 msgid "  -n       only read subscribed .newsrc groups from spool"
 msgstr ""
 
-#: src/lang.c:976
+#: src/lang.c:1126
 msgid "Your server does not have Xref: in its NOV-files.\n"
 msgstr ""
 
-#: src/lang.c:980
+#: src/lang.c:1130
 msgid "Posting using external inews failed. Use built in inews instead?"
 msgstr ""
 
-#: src/lang.c:981
+#: src/lang.c:1131
 msgid "It worked! Should I always use my built in inews from now on?"
 msgstr ""
 
-#: src/lang.c:989
+#: src/lang.c:1135
 #, c-format
 msgid "%d %s printed"
 msgstr ""
 
-#: src/lang.c:990
+#: src/lang.c:1136
 msgid "output article/thread/hot/pattern/tagged articles to printer"
 msgstr ""
 
-#: src/lang.c:991
+#: src/lang.c:1137
 msgid "Print"
 msgstr ""
 
-#: src/lang.c:992
+#: src/lang.c:1138
 msgid "Printing..."
 msgstr ""
 
-#: src/lang.c:996
+#: src/lang.c:1142
 msgid "pipe article/thread/hot/pattern/tagged articles into command"
 msgstr ""
 
-#: src/lang.c:997
+#: src/lang.c:1143
 msgid "No command"
 msgstr ""
 
-#: src/lang.c:998
+#: src/lang.c:1144
 msgid "Pipe"
 msgstr ""
 
-#: src/lang.c:999
+#: src/lang.c:1145
 #, c-format
 msgid "Pipe to command [%.*s]> "
 msgstr ""
 
-#: src/lang.c:1000
+#: src/lang.c:1146
 msgid "Piping..."
 msgstr ""
 
-#: src/lang.c:1002
+#: src/lang.c:1148
 msgid "Piping not enabled."
 msgstr ""
 
-#: src/lang.c:1006
+#: src/lang.c:1152
 #, c-format
 msgid ""
 "\n"
@@ -3756,7 +4431,7 @@ msgid ""
 "       newsgroup names.\n"
 msgstr ""
 
-#: src/lang.c:1011
+#: src/lang.c:1157
 #, c-format
 msgid ""
 "\n"
@@ -3765,7 +4440,7 @@ msgid ""
 "       Please write all newsgroups into a single line.\n"
 msgstr ""
 
-#: src/lang.c:1016
+#: src/lang.c:1162
 #, c-format
 msgid ""
 "\n"
@@ -3774,14 +4449,14 @@ msgid ""
 "         To avoid trouble please write all newsgroups into a single line.\n"
 msgstr ""
 
-#: src/lang.c:1020
+#: src/lang.c:1166
 #, c-format
 msgid ""
 "\n"
 "Warning: The \"%s:\" line has spaces in it that SHOULD be removed.\n"
 msgstr ""
 
-#: src/lang.c:1025
+#: src/lang.c:1171
 msgid ""
 "\n"
 "  If your article contains quoted text  please take some time to pare it "
@@ -3803,509 +4478,603 @@ msgid ""
 "  likely to ignore it completely.  It's a crowded net out there.\n"
 msgstr ""
 
-#: src/lang.c:1038
+#: src/lang.c:1184
 msgid "shell escape"
 msgstr ""
 
-#: src/lang.c:1039
+#: src/lang.c:1185
 #, c-format
 msgid "Shell Command (%s)"
 msgstr ""
 
-#: src/lang.c:1040
+#: src/lang.c:1186
 #, c-format
 msgid "Enter shell command [%s]> "
 msgstr ""
 
-#: src/lang.c:1044
+#: src/lang.c:1190
 #, c-format
 msgid "%s: Can't get entry for TERM\n"
 msgstr ""
 
-#: src/lang.c:1048
+#: src/lang.c:1194
 #, c-format
 msgid "Group %.*s ('q' to quit)..."
 msgstr ""
 
-#: src/lang.c:1050
+#: src/lang.c:1196
 #, c-format
 msgid "Group %.*s..."
 msgstr ""
 
-#: src/lang.c:1054
+#: src/lang.c:1200
 msgid "Server unavailable\n"
 msgstr ""
 
-#: src/lang.c:1060
+#: src/lang.c:1206
 #, 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:1061
+#: src/lang.c:1207
 #, c-format
 msgid ""
 "%s=pipe; %s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1063
+#: src/lang.c:1209
 #, c-format
 msgid ""
 "%s=mail; %s=print; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1064
+#: src/lang.c:1210
 #, c-format
 msgid "%s=mail; %s=print; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1068
+#: src/lang.c:1214
 #, c-format
 msgid ""
 "%s=pipe; %s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1069
+#: src/lang.c:1215
 #, c-format
 msgid "%s=pipe; %s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1071
+#: src/lang.c:1217
 #, c-format
 msgid "%s=mail; %s=quit; %s=toggle all/unread; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1072
+#: src/lang.c:1218
 #, c-format
 msgid "%s=mail; %s=quit; %s=reply mail; %s=save; %s=tag; %s=post"
 msgstr ""
 
-#: src/lang.c:1078
+#: src/lang.c:1224
 msgid "Terminal does not support color"
 msgstr ""
 
-#: src/lang.c:1083
+#: src/lang.c:1229
 #, c-format
 msgid "Trying %s"
 msgstr ""
 
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318
-#: src/refs.c:296
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506
+#: src/refs.c:288
 msgid "None"
 msgstr ""
 
-#: src/lang.c:1098
+#: src/lang.c:1244
 msgid "Subject"
 msgstr ""
 
-#: src/lang.c:1099
+#: src/lang.c:1245
 msgid "References"
 msgstr ""
 
-#: src/lang.c:1100
+#: src/lang.c:1246
 msgid "Both Subject and References"
 msgstr ""
 
-#: src/lang.c:1101
+#: src/lang.c:1247
 msgid "Multipart Subject"
 msgstr ""
 
-#: src/lang.c:1102
+#: src/lang.c:1248
 msgid "Percentage Match"
 msgstr ""
 
-#: src/lang.c:1114 src/lang.c:1225
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
 msgid "No"
 msgstr ""
 
-#: src/lang.c:1115 src/lang.c:1227
+#: src/lang.c:1261 src/lang.c:1413
 msgid "Yes"
 msgstr ""
 
-#: src/lang.c:1116
+#: src/lang.c:1262
 msgid "Hide All"
 msgstr ""
 
-#: src/lang.c:1124
+#: src/lang.c:1270
 msgid "Address"
 msgstr ""
 
-#: src/lang.c:1125
+#: src/lang.c:1271
 msgid "Full Name"
 msgstr ""
 
-#: src/lang.c:1126
+#: src/lang.c:1272
 msgid "Address and Name"
 msgstr ""
 
-#: src/lang.c:1133
+#: src/lang.c:1279
 msgid "Max"
 msgstr ""
 
-#: src/lang.c:1134
+#: src/lang.c:1280
 msgid "Sum"
 msgstr ""
 
-#: src/lang.c:1135
+#: src/lang.c:1281
 msgid "Average"
 msgstr ""
 
-#: src/lang.c:1140
+#: src/lang.c:1286
 msgid "Lines"
 msgstr ""
 
-#: src/lang.c:1141
+#: src/lang.c:1287
 msgid "Score"
 msgstr ""
 
-#: src/lang.c:1142
+#: src/lang.c:1288
 msgid "Lines & Score"
 msgstr ""
 
-#: src/lang.c:1151
+#: src/lang.c:1297
 msgid "Black"
 msgstr ""
 
-#: src/lang.c:1152
+#: src/lang.c:1298
 msgid "Red"
 msgstr ""
 
-#: src/lang.c:1153
+#: src/lang.c:1299
 msgid "Green"
 msgstr ""
 
-#: src/lang.c:1154
+#: src/lang.c:1300
 msgid "Brown"
 msgstr ""
 
-#: src/lang.c:1155
+#: src/lang.c:1301
 msgid "Blue"
 msgstr ""
 
-#: src/lang.c:1156
+#: src/lang.c:1302
 msgid "Pink"
 msgstr ""
 
-#: src/lang.c:1157
+#: src/lang.c:1303
 msgid "Cyan"
 msgstr ""
 
-#: src/lang.c:1158
+#: src/lang.c:1304
 msgid "White"
 msgstr ""
 
-#: src/lang.c:1159
+#: src/lang.c:1305
 msgid "Gray"
 msgstr ""
 
-#: src/lang.c:1160
+#: src/lang.c:1306
 msgid "Light Red"
 msgstr ""
 
-#: src/lang.c:1161
+#: src/lang.c:1307
 msgid "Light Green"
 msgstr ""
 
-#: src/lang.c:1162
+#: src/lang.c:1308
 msgid "Yellow"
 msgstr ""
 
-#: src/lang.c:1163
+#: src/lang.c:1309
 msgid "Light Blue"
 msgstr ""
 
-#: src/lang.c:1164
+#: src/lang.c:1310
 msgid "Light Pink"
 msgstr ""
 
-#: src/lang.c:1165
+#: src/lang.c:1311
 msgid "Light Cyan"
 msgstr ""
 
-#: src/lang.c:1166
+#: src/lang.c:1312
 msgid "Light White"
 msgstr ""
 
-#: src/lang.c:1174 src/lang.c:1231 src/lang.c:1245
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
 msgid "Nothing"
 msgstr ""
 
-#: src/lang.c:1175
-msgid "Mark"
-msgstr ""
-
-#: src/lang.c:1176
+#: src/lang.c:1322
 msgid "Space"
 msgstr ""
 
-#: src/lang.c:1183
+#: src/lang.c:1329
 msgid "Normal"
 msgstr ""
 
-#: src/lang.c:1184
+#: src/lang.c:1330
 msgid "Best highlighting"
 msgstr ""
 
-#: src/lang.c:1185
+#: src/lang.c:1331
 msgid "Underline"
 msgstr ""
 
-#: src/lang.c:1186
+#: src/lang.c:1332
 msgid "Reverse video"
 msgstr ""
 
-#: src/lang.c:1187
+#: src/lang.c:1333
 msgid "Blinking"
 msgstr ""
 
-#: src/lang.c:1188
+#: src/lang.c:1334
 msgid "Half bright"
 msgstr ""
 
-#: src/lang.c:1189
+#: src/lang.c:1335
 msgid "Bold"
 msgstr ""
 
-#: src/lang.c:1194
+#: src/lang.c:1341
+msgid "Cc"
+msgstr ""
+
+#: src/lang.c:1342
+msgid "Bcc"
+msgstr ""
+
+#: src/lang.c:1343
+msgid "Cc and Bcc"
+msgstr ""
+
+#: src/lang.c:1348 src/lang.c:1360
 msgid "none"
 msgstr ""
 
-#: src/lang.c:1195
+#: src/lang.c:1349
 msgid "commands"
 msgstr ""
 
-#: src/lang.c:1196
+#: src/lang.c:1350
 msgid "select"
 msgstr ""
 
-#: src/lang.c:1198
+#: src/lang.c:1352
 msgid "commands & quit"
 msgstr ""
 
-#: src/lang.c:1199
+#: src/lang.c:1353
 msgid "commands & select"
 msgstr ""
 
-#: src/lang.c:1200
+#: src/lang.c:1354
 msgid "quit & select"
 msgstr ""
 
-#: src/lang.c:1201
+#: src/lang.c:1355
 msgid "commands & quit & select"
 msgstr ""
 
-#: src/lang.c:1226
+#: src/lang.c:1361
+msgid "PageDown"
+msgstr ""
+
+#: src/lang.c:1362
+msgid "PageNextUnread"
+msgstr ""
+
+#: src/lang.c:1363
+msgid "PageDown or PageNextUnread"
+msgstr ""
+
+#: src/lang.c:1368
+msgid "Subject: (case sensitive)"
+msgstr ""
+
+#: src/lang.c:1369
+msgid "Subject: (ignore case)"
+msgstr ""
+
+#: src/lang.c:1370
+msgid "From: (case sensitive)"
+msgstr ""
+
+#: src/lang.c:1371
+msgid "From: (ignore case)"
+msgstr ""
+
+#: src/lang.c:1372
+msgid "Msg-ID: & full References: line"
+msgstr ""
+
+#: src/lang.c:1373
+msgid "Msg-ID: & last References: only"
+msgstr ""
+
+#: src/lang.c:1374
+msgid "Message-ID: entry only"
+msgstr ""
+
+#: src/lang.c:1375
+msgid "Lines:"
+msgstr ""
+
+#: src/lang.c:1380
+msgid "Don't trim article body"
+msgstr ""
+
+#: src/lang.c:1381
+msgid "Skip leading blank lines"
+msgstr ""
+
+#: src/lang.c:1382
+msgid "Skip trailing blank lines"
+msgstr ""
+
+#: src/lang.c:1383
+msgid "Skip leading and trailing blank l."
+msgstr ""
+
+#: src/lang.c:1384
+msgid "Compact multiple between text"
+msgstr ""
+
+#: src/lang.c:1385
+msgid "Compact multiple and skip leading"
+msgstr ""
+
+#: src/lang.c:1386
+msgid "Compact multiple and skip trailing"
+msgstr ""
+
+#: src/lang.c:1387
+msgid "Compact mltpl., skip lead. & trai."
+msgstr ""
+
+#: src/lang.c:1412
 msgid "Shell archive"
 msgstr ""
 
-#: src/lang.c:1232
+#: src/lang.c:1418
 msgid "Subject: (descending)"
 msgstr ""
 
-#: src/lang.c:1233
+#: src/lang.c:1419
 msgid "Subject: (ascending)"
 msgstr ""
 
-#: src/lang.c:1234
+#: src/lang.c:1420
 msgid "From: (descending)"
 msgstr ""
 
-#: src/lang.c:1235
+#: src/lang.c:1421
 msgid "From: (ascending)"
 msgstr ""
 
-#: src/lang.c:1236
+#: src/lang.c:1422
 msgid "Date: (descending)"
 msgstr ""
 
-#: src/lang.c:1237
+#: src/lang.c:1423
 msgid "Date: (ascending)"
 msgstr ""
 
-#: src/lang.c:1238 src/lang.c:1246
+#: src/lang.c:1424 src/lang.c:1432
 msgid "Score (descending)"
 msgstr ""
 
-#: src/lang.c:1239 src/lang.c:1247
+#: src/lang.c:1425 src/lang.c:1433
 msgid "Score (ascending)"
 msgstr ""
 
-#: src/lang.c:1240
+#: src/lang.c:1426
 msgid "Lines: (descending)"
 msgstr ""
 
-#: src/lang.c:1241
+#: src/lang.c:1427
 msgid "Lines: (ascending)"
 msgstr ""
 
-#: src/lang.c:1252
+#: src/lang.c:1434
+msgid "Last posting date (descending)"
+msgstr ""
+
+#: src/lang.c:1435
+msgid "Last posting date (ascending)"
+msgstr ""
+
+#: src/lang.c:1440
 msgid "Always Keep"
 msgstr ""
 
-#: src/lang.c:1253
+#: src/lang.c:1441
 msgid "Always Remove"
 msgstr ""
 
-#: src/lang.c:1254
+#: src/lang.c:1442
 msgid "Mark with D on selection screen"
 msgstr ""
 
-#: src/lang.c:1259
+#: src/lang.c:1447
 msgid "Kill only unread arts"
 msgstr ""
 
-#: src/lang.c:1260
+#: src/lang.c:1448
 msgid "Kill all arts & show with K"
 msgstr ""
 
 #. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
+#: src/lang.c:1449
 msgid "Kill all arts and never show"
 msgstr ""
 
-#: src/lang.c:1266
+#: src/lang.c:1454
 msgid "Nothing special"
 msgstr ""
 
-#: src/lang.c:1267
+#: src/lang.c:1455
 msgid "Compress quotes"
 msgstr ""
 
-#: src/lang.c:1268
+#: src/lang.c:1456
 msgid "Quote signatures"
 msgstr ""
 
-#: src/lang.c:1269
+#: src/lang.c:1457
 msgid "Compress quotes, quote sigs"
 msgstr ""
 
-#: src/lang.c:1270
+#: src/lang.c:1458
 msgid "Quote empty lines"
 msgstr ""
 
-#: src/lang.c:1271
+#: src/lang.c:1459
 msgid "Compress quotes, quote empty lines"
 msgstr ""
 
-#: src/lang.c:1272
+#: src/lang.c:1460
 msgid "Quote sigs & empty lines"
 msgstr ""
 
-#: src/lang.c:1273
+#: src/lang.c:1461
 msgid "Comp. q., quote sigs & empty lines"
 msgstr ""
 
-#: src/lang.c:1311
+#: src/lang.c:1499
 msgid "no"
 msgstr ""
 
-#: src/lang.c:1312
+#: src/lang.c:1500
 msgid "with headers"
 msgstr ""
 
-#: src/lang.c:1313
+#: src/lang.c:1501
 msgid "without headers"
 msgstr ""
 
-#: src/lang.c:1320 src/lang.c:1326
+#: src/lang.c:1508 src/lang.c:1514
 msgid "NFKC"
 msgstr ""
 
-#: src/lang.c:1321
+#: src/lang.c:1509
 msgid "NFKD"
 msgstr ""
 
-#: src/lang.c:1322
+#: src/lang.c:1510
 msgid "NFC"
 msgstr ""
 
-#: src/lang.c:1323
+#: src/lang.c:1511
 msgid "NFD"
 msgstr ""
 
-#: src/lang.c:1334
+#: src/lang.c:1522
 msgid "Display Options"
 msgstr ""
 
-#: src/lang.c:1341
+#: src/lang.c:1529
 msgid "Color Options"
 msgstr ""
 
-#: src/lang.c:1348
+#: src/lang.c:1536
 msgid "Article-Limiting Options"
 msgstr ""
 
-#: src/lang.c:1354
+#: src/lang.c:1542
 msgid "Posting/Mailing Options"
 msgstr ""
 
-#: src/lang.c:1360
+#: src/lang.c:1548
 msgid "Saving/Printing Options"
 msgstr ""
 
-#: src/lang.c:1366
+#: src/lang.c:1554
 msgid "Expert Options"
 msgstr ""
 
-#: src/lang.c:1372
+#: src/lang.c:1560
 msgid "Filtering Options"
 msgstr ""
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440
-#: src/lang.c:1490 src/lang.c:1496 src/lang.c:1506 src/lang.c:1526
-#: src/lang.c:1601 src/lang.c:1771 src/lang.c:1777 src/lang.c:1783
-#: src/lang.c:1789 src/lang.c:1801 src/lang.c:1808 src/lang.c:1862
-#: src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919
-#: src/lang.c:1926 src/lang.c:1933 src/lang.c:1940 src/lang.c:1947
-#: src/lang.c:1954 src/lang.c:1961 src/lang.c:1968 src/lang.c:1975
-#: src/lang.c:1982 src/lang.c:1989 src/lang.c:1996 src/lang.c:2003
-#: src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069
-#: src/lang.c:2076 src/lang.c:2082 src/lang.c:2088 src/lang.c:2105
-#: src/lang.c:2117 src/lang.c:2151 src/lang.c:2204 src/lang.c:2211
-#: src/lang.c:2217 src/lang.c:2242 src/lang.c:2259 src/lang.c:2312
-#: src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
+#: src/lang.c:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628
+#: src/lang.c:1680 src/lang.c:1686 src/lang.c:1696 src/lang.c:1707
+#: src/lang.c:1725 src/lang.c:1800 src/lang.c:1808 src/lang.c:1998
+#: src/lang.c:2004 src/lang.c:2010 src/lang.c:2016 src/lang.c:2028
+#: src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132
+#: src/lang.c:2139 src/lang.c:2146 src/lang.c:2153 src/lang.c:2160
+#: src/lang.c:2167 src/lang.c:2174 src/lang.c:2181 src/lang.c:2188
+#: src/lang.c:2195 src/lang.c:2202 src/lang.c:2209 src/lang.c:2216
+#: src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273
+#: src/lang.c:2289 src/lang.c:2296 src/lang.c:2303 src/lang.c:2310
+#: src/lang.c:2316 src/lang.c:2322 src/lang.c:2339 src/lang.c:2351
+#: src/lang.c:2385 src/lang.c:2438 src/lang.c:2452 src/lang.c:2458
+#: src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653
+#: src/lang.c:2660 src/lang.c:2686 src/lang.c:2702 src/lang.c:2721
+#: src/lang.c:2734 src/lang.c:2745 src/lang.c:2751 src/lang.c:2789
 msgid "<SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1378
+#: src/lang.c:1566
 msgid "Show mini menu & posting etiquette"
 msgstr ""
 
-#: src/lang.c:1379
+#: src/lang.c:1567
 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:1384
+#: src/lang.c:1572
 msgid "Show short description for each newsgroup. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1385
+#: src/lang.c:1573
 msgid "Show description of each newsgroup"
 msgstr ""
 
-#: src/lang.c:1386
+#: src/lang.c:1574
 msgid ""
 "# If ON show group description text after newsgroup name at\n"
 "# group selection level\n"
 msgstr ""
 
-#: src/lang.c:1391
+#: src/lang.c:1579
 msgid ""
 "Show Subject & From (author) fields in group menu. <SPACE> toggles & <CR> "
 "sets."
 msgstr ""
 
-#: src/lang.c:1392
+#: src/lang.c:1580
 msgid "In group menu, show author by"
 msgstr ""
 
-#: src/lang.c:1393
+#: src/lang.c:1581
 msgid ""
 "# Part of from field to display\n"
 "# Possible values are (the default is marked with *):\n"
@@ -4315,31 +5084,31 @@ msgid ""
 "#   3 = both\n"
 msgstr ""
 
-#: src/lang.c:1402
+#: src/lang.c:1590
 msgid "Draw -> or highlighted bar for selection. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1403
+#: src/lang.c:1591
 msgid "Draw -> instead of highlighted bar"
 msgstr ""
 
-#: src/lang.c:1404
+#: src/lang.c:1592
 msgid "# If ON use -> otherwise highlighted bar for selection\n"
 msgstr ""
 
-#: src/lang.c:1409
+#: src/lang.c:1597
 msgid "Use inverse video for page headers"
 msgstr ""
 
-#: src/lang.c:1410
+#: src/lang.c:1598
 msgid "# If ON use inverse video for page headers at different levels\n"
 msgstr ""
 
-#: src/lang.c:1415
+#: src/lang.c:1603
 msgid "Thread articles by"
 msgstr ""
 
-#: src/lang.c:1416
+#: src/lang.c:1604
 msgid ""
 "# Thread articles by ...\n"
 "# Possible values are (the default is marked with *):\n"
@@ -4351,15 +5120,15 @@ msgid ""
 "#   5 = Percentage Match\n"
 msgstr ""
 
-#: src/lang.c:1427
+#: src/lang.c:1615
 msgid "Enter percentage match required to thread together. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1428
+#: src/lang.c:1616
 msgid "Thread percentage match"
 msgstr ""
 
-#: src/lang.c:1429
+#: src/lang.c:1617
 #, c-format
 msgid ""
 "# Thread percentage match...\n"
@@ -4374,11 +5143,11 @@ msgid ""
 "# 'harppy' would be threaded separately from 'happy'\n"
 msgstr ""
 
-#: src/lang.c:1441
+#: src/lang.c:1629
 msgid "Score of a thread"
 msgstr ""
 
-#: src/lang.c:1442
+#: src/lang.c:1630
 msgid ""
 "# Thread score\n"
 "# Possible values are (the default is marked with *):\n"
@@ -4387,16 +5156,16 @@ msgid ""
 "#   2 = average\n"
 msgstr ""
 
-#: src/lang.c:1450
+#: src/lang.c:1638
 msgid ""
 "Sort articles by Subject, From, Date or Score. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1451
+#: src/lang.c:1639
 msgid "Sort articles by"
 msgstr ""
 
-#: src/lang.c:1452
+#: src/lang.c:1640
 msgid ""
 "# Sort articles by ...\n"
 "# Possible values are (the default is marked with *):\n"
@@ -4413,61 +5182,63 @@ msgid ""
 "#  10 = Lines ascending\n"
 msgstr ""
 
-#: src/lang.c:1468
+#: src/lang.c:1656
 msgid "Sort threads by Nothing or Score. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1469
+#: src/lang.c:1657
 msgid "Sort threads by"
 msgstr ""
 
-#: src/lang.c:1470
+#: src/lang.c:1658
 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:1478
+#: src/lang.c:1668
 msgid ""
 "Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1479
-msgid "Goto first unread article in group"
+#: src/lang.c:1669
+msgid "Go to first unread article in group"
 msgstr ""
 
-#: src/lang.c:1480
+#: src/lang.c:1670
 msgid "# If ON put cursor at first unread art in group otherwise last art\n"
 msgstr ""
 
-#: src/lang.c:1484
+#: src/lang.c:1674
 msgid "Show all articles or only unread articles. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1485
+#: src/lang.c:1675
 msgid "Show only unread articles"
 msgstr ""
 
-#: src/lang.c:1486
+#: src/lang.c:1676
 msgid "# If ON show only new/unread articles otherwise show all.\n"
 msgstr ""
 
-#: src/lang.c:1491
+#: src/lang.c:1681
 msgid "Show only groups with unread arts"
 msgstr ""
 
-#: src/lang.c:1492
+#: src/lang.c:1682
 msgid "# If ON show only subscribed to groups that contain unread articles.\n"
 msgstr ""
 
-#: src/lang.c:1497
+#: src/lang.c:1687
 msgid "Filter which articles"
 msgstr ""
 
-#: src/lang.c:1498
+#: src/lang.c:1688
 msgid ""
 "# Filter which articles\n"
 "# Possible values are (the default is marked with *):\n"
@@ -4476,205 +5247,211 @@ msgid ""
 "#   2 = kill all articles and never show them\n"
 msgstr ""
 
-#: src/lang.c:1507
-msgid "Tab goes to next unread article"
-msgstr ""
-
-#: src/lang.c:1508
-msgid ""
-"# If ON the TAB command will go to next unread article at article viewer "
-"level\n"
-msgstr ""
-
-#: src/lang.c:1512
-msgid ""
-"Scrolling with <SPACE> past the end of an art. jumps to the next unread one."
-msgstr ""
-
-#: src/lang.c:1513
-msgid "Space goes to next unread article"
-msgstr ""
-
-#: src/lang.c:1514
-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:1697
+msgid "Go to the next unread article with"
 msgstr ""
 
-#: src/lang.c:1519
+#: src/lang.c:1698
 msgid ""
-"Scrolling with <PGDN>/<DOWN> past the end of an art. jumps to the unread one."
+"# Go to the unread article with following 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:1520
-msgid "PgDn goes to next unread article"
+#: src/lang.c:1708
+msgid "How to treat blank lines"
 msgstr ""
 
-#: src/lang.c:1521
+#: src/lang.c:1709
 msgid ""
-"# If ON the PGDN or DOWN command will go to next unread article when\n"
-"# pressed at end of message\n"
+"# Trim the article body, remove unnecessary blank lines.\n"
+"# Possible values are (the default is marked with *):\n"
+"# * 0 = Nothing special\n"
+"#   1 = Skip leading blank lines\n"
+"#   2 = Skip trailing blank lines\n"
+"#   3 = Skip leading and trailing blank lines\n"
+"#   4 = Compact multiple blank lines between text blocks\n"
+"#   5 = Compact multiple blank lines between text blocks and skip\n"
+"#       leading blank lines\n"
+"#   6 = Compact multiple blank lines between text blocks and skip\n"
+"#       trailing blank lines\n"
+"#   7 = Compact multiple blank lines between text blocks and skip\n"
+"#       leading and trailing blank lines\n"
 msgstr ""
 
-#: src/lang.c:1527
+#: src/lang.c:1726
 msgid "List thread using right arrow key"
 msgstr ""
 
-#: src/lang.c:1528
+#: src/lang.c:1727
 msgid ""
 "# If ON automatically list thread when entering it using right arrow key.\n"
 msgstr ""
 
-#: src/lang.c:1532
+#: src/lang.c:1731
 msgid "Enter character to indicate deleted articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1533
+#: src/lang.c:1732
 msgid "Character to show deleted articles"
 msgstr ""
 
-#: src/lang.c:1534
+#: src/lang.c:1733
 msgid ""
 "# Character used to show that an art was deleted (default 'D')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1539
+#: src/lang.c:1738
 msgid ""
 "Enter character to indicate articles in a range. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1540
+#: src/lang.c:1739
 msgid "Character to show inrange articles"
 msgstr ""
 
-#: src/lang.c:1541
+#: src/lang.c:1740
 msgid ""
 "# Character used to show that an art is in a range (default '#')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1546
+#: src/lang.c:1745
 msgid ""
 "Enter character to indicate that article will return. <CR> sets, <ESC> "
 "cancels."
 msgstr ""
 
-#: src/lang.c:1547
+#: src/lang.c:1746
 msgid "Character to show returning arts"
 msgstr ""
 
-#: src/lang.c:1548
+#: src/lang.c:1747
 msgid ""
 "# Character used to show that an art will return (default '-')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1553
+#: src/lang.c:1752
 msgid ""
 "Enter character to indicate selected articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1554
+#: src/lang.c:1753
 msgid "Character to show selected articles"
 msgstr ""
 
-#: src/lang.c:1555
+#: src/lang.c:1754
 msgid ""
 "# Character used to show that an art was auto-selected (default '*')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1560
+#: src/lang.c:1759
 msgid "Enter character to indicate recent articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1561
+#: src/lang.c:1760
 msgid "Character to show recent articles"
 msgstr ""
 
-#: src/lang.c:1562
+#: src/lang.c:1761
 msgid ""
 "# Character used to show that an art is recent (default 'o')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1567
+#: src/lang.c:1766
 msgid "Enter character to indicate unread articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1568
+#: src/lang.c:1767
 msgid "Character to show unread articles"
 msgstr ""
 
-#: src/lang.c:1569
+#: src/lang.c:1768
 msgid ""
 "# Character used to show that an art is unread (default '+')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1574
+#: src/lang.c:1773
 msgid "Enter character to indicate read articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1575
+#: src/lang.c:1774
 msgid "Character to show read articles"
 msgstr ""
 
-#: src/lang.c:1576
+#: src/lang.c:1775
 msgid ""
 "# Character used to show that an art was read (default ' ')\n"
 "# _ is turned into ' '\n"
 msgstr ""
 
-#: src/lang.c:1581
+#: src/lang.c:1780
 msgid "Enter character to indicate killed articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1582
+#: src/lang.c:1781
 msgid "Character to show killed articles"
 msgstr ""
 
-#: src/lang.c:1583
+#: src/lang.c:1782
 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:1588
+#: src/lang.c:1787
 msgid ""
 "Enter character to indicate read selected articles. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1589
+#: src/lang.c:1788
 msgid "Character to show readselected arts"
 msgstr ""
 
-#: src/lang.c:1590
+#: src/lang.c:1789
 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:1595
+#: src/lang.c:1794
 msgid "Enter maximum length of newsgroup names displayed. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1596
+#: src/lang.c:1795
 msgid "Max. length of group names shown"
 msgstr ""
 
-#: src/lang.c:1597
+#: src/lang.c:1796
 msgid "# Maximum length of the names of newsgroups displayed\n"
 msgstr ""
 
-#: src/lang.c:1602
+#: src/lang.c:1801
+msgid "Abbreviate long newsgroup names"
+msgstr ""
+
+#: src/lang.c:1802
+msgid ""
+"# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+"# level and article level like this:\n"
+"#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr ""
+
+#: src/lang.c:1809
 msgid "Show lines/score in listings"
 msgstr ""
 
-#: src/lang.c:1603
+#: src/lang.c:1810
 msgid ""
-"# What informations should be displayed in article/thread listing\n"
+"# What information should be displayed in article/thread listing\n"
 "# Possible values are (the default is marked with *):\n"
 "#   0 = nothing\n"
 "# * 1 = lines\n"
@@ -4682,17 +5459,17 @@ msgid ""
 "#   3 = lines & score\n"
 msgstr ""
 
-#: src/lang.c:1612
+#: src/lang.c:1819
 msgid ""
 "0 = full page scrolling, -1 = show previous last line as first on next page, "
 "-2 = half page"
 msgstr ""
 
-#: src/lang.c:1613
+#: src/lang.c:1820
 msgid "Number of lines to scroll in pager"
 msgstr ""
 
-#: src/lang.c:1614
+#: src/lang.c:1821
 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 +5480,28 @@ msgid ""
 "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
 msgstr ""
 
-#: src/lang.c:1624
+#: src/lang.c:1831
 msgid "Display signatures. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1625
+#: src/lang.c:1832
 msgid "Display signatures"
 msgstr ""
 
-#: src/lang.c:1626
+#: src/lang.c:1833
 msgid "# If OFF don't show signatures when displaying articles\n"
 msgstr ""
 
-#: src/lang.c:1630
+#: src/lang.c:1837
 msgid ""
 "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1631
+#: src/lang.c:1838
 msgid "Display uue data as an attachment"
 msgstr ""
 
-#: src/lang.c:1632
+#: src/lang.c:1839
 msgid ""
 "# Handling of uuencoded data in the pager\n"
 "# Possible values are (the default is marked with *):\n"
@@ -4736,30 +5513,30 @@ msgid ""
 "#       be folded into a tag line.\n"
 msgstr ""
 
-#: src/lang.c:1642
+#: src/lang.c:1849
 msgid ""
 "Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1643
+#: src/lang.c:1850
 msgid "Display \"a as Umlaut-a"
 msgstr ""
 
-#: src/lang.c:1644
+#: src/lang.c:1851
 msgid ""
 "# If ON decode German style TeX umlaut codes to ISO and\n"
 "# show \"a as Umlaut-a, etc.\n"
 msgstr ""
 
-#: src/lang.c:1649 src/lang.c:1659
+#: src/lang.c:1856 src/lang.c:1866
 msgid "Space separated list of header fields"
 msgstr ""
 
-#: src/lang.c:1650
+#: src/lang.c:1857
 msgid "Display these header fields (or *)"
 msgstr ""
 
-#: src/lang.c:1651
+#: src/lang.c:1858
 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 +5546,11 @@ msgid ""
 "# spaces. Not defining anything turns off this option.\n"
 msgstr ""
 
-#: src/lang.c:1660
+#: src/lang.c:1867
 msgid "Do not display these header fields"
 msgstr ""
 
-#: src/lang.c:1661
+#: src/lang.c:1868
 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 +5562,203 @@ msgid ""
 "# Not defining anything turns off this option.\n"
 msgstr ""
 
-#: src/lang.c:1671
+#: src/lang.c:1878
 msgid ""
 "Do you want to enable automatic handling of multipart/alternative articles?"
 msgstr ""
 
-#: src/lang.c:1672
+#: src/lang.c:1879
 msgid "Skip multipart/alternative parts"
 msgstr ""
 
-#: src/lang.c:1673
+#: src/lang.c:1880
 msgid "# If ON strip multipart/alternative messages automatically\n"
 msgstr ""
 
-#: src/lang.c:1678
+#: src/lang.c:1884
+msgid "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr ""
+
+#: src/lang.c:1885
+msgid "Detection of verbatim blocks"
+msgstr ""
+
+#: src/lang.c:1886
+msgid "# If ON detect verbatim blocks in articles\n"
+msgstr ""
+
+#: src/lang.c:1891
 msgid "A regex used to decide which lines to show in col_quote."
 msgstr ""
 
-#: src/lang.c:1679
+#: src/lang.c:1892
 msgid "Regex used to show quoted lines"
 msgstr ""
 
-#: src/lang.c:1680
+#: src/lang.c:1893
 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:1686
+#: src/lang.c:1899
 msgid "A regex used to decide which lines to show in col_quote2."
 msgstr ""
 
-#: src/lang.c:1687
+#: src/lang.c:1900
 msgid "Regex used to show twice quoted l."
 msgstr ""
 
-#: src/lang.c:1688
+#: src/lang.c:1901
 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:1694
+#: src/lang.c:1907
 msgid "A regex used to decide which lines to show in col_quote3."
 msgstr ""
 
-#: src/lang.c:1695
+#: src/lang.c:1908
 msgid "Regex used to show >= 3 times q.l."
 msgstr ""
 
-#: src/lang.c:1696
+#: src/lang.c:1909
 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:1703
+#: src/lang.c:1916
 msgid "A regex used to decide which words to show in col_markslashes."
 msgstr ""
 
-#: src/lang.c:1704
+#: src/lang.c:1917
 msgid "Regex used to highlight /slashes/"
 msgstr ""
 
-#: src/lang.c:1705
+#: src/lang.c:1918
 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:1711
+#: src/lang.c:1924
 msgid "A regex used to decide which words to show in col_markstars."
 msgstr ""
 
-#: src/lang.c:1712
+#: src/lang.c:1925
 msgid "Regex used to highlight *stars*"
 msgstr ""
 
-#: src/lang.c:1713
+#: src/lang.c:1926
 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:1719
+#: src/lang.c:1932
 msgid "A regex used to decide which words to show in col_markstroke."
 msgstr ""
 
-#: src/lang.c:1720
+#: src/lang.c:1933
 msgid "Regex used to highlight -strokes-"
 msgstr ""
 
-#: src/lang.c:1721
+#: src/lang.c:1934
 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:1727
+#: src/lang.c:1940
 msgid "A regex used to decide which words to show in col_markdash."
 msgstr ""
 
-#: src/lang.c:1728
+#: src/lang.c:1941
 msgid "Regex used to highlight _underline_"
 msgstr ""
 
-#: src/lang.c:1729
+#: src/lang.c:1942
 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:1735
+#: src/lang.c:1948
 msgid "A regex used to find Subject prefixes to remove.  Use '|' as separator."
 msgstr ""
 
-#: src/lang.c:1736
-msgid "Regex with Subject prefixes"
+#: src/lang.c:1949
+msgid "Regex with Subject prefixes"
+msgstr ""
+
+#: src/lang.c:1950
+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:1955
+msgid "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr ""
+
+#: src/lang.c:1956
+msgid "Regex with Subject suffixes"
+msgstr ""
+
+#: src/lang.c:1957
+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:1962
+msgid "A regex used to find the begin of a verbatim block."
+msgstr ""
+
+#: src/lang.c:1963
+msgid "Regex for begin of a verbatim block"
 msgstr ""
 
-#: src/lang.c:1737
+#: src/lang.c:1964
 msgid ""
-"# A regular expression that tin will use to find Subject prefixes\n"
-"# which will be removed before showing the header.\n"
+"# A regular expression that tin will use to find the begin of\n"
+"# a verbatim block.\n"
 msgstr ""
 
-#: src/lang.c:1742
-msgid "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+#: src/lang.c:1969
+msgid "A regex used to find the end of a verbatim block."
 msgstr ""
 
-#: src/lang.c:1743
-msgid "Regex with Subject suffixes"
+#: src/lang.c:1970
+msgid "Regex for end of a verbatim block"
 msgstr ""
 
-#: src/lang.c:1744
+#: src/lang.c:1971
 msgid ""
-"# A regular expression that tin will use to find Subject suffixes\n"
-"# which will be removed when replying or posting followup.\n"
+"# A regular expression that tin will use to find the end of\n"
+"# a verbatim block.\n"
 msgstr ""
 
-#: src/lang.c:1749
+#: src/lang.c:1976
 msgid ""
 "Enter name and options for external MIME viewer, --internal for built-in "
 "viewer"
 msgstr ""
 
-#: src/lang.c:1750
+#: src/lang.c:1977
 msgid "MIME binary content viewer"
 msgstr ""
 
-#: src/lang.c:1751
+#: src/lang.c:1978
 msgid ""
 "# If --internal automatically use the built in MIME viewer for non-text\n"
 "# parts of articles.\n"
@@ -4950,125 +5767,125 @@ msgid ""
 "# for no automatic viewing\n"
 msgstr ""
 
-#: src/lang.c:1758
+#: src/lang.c:1985
 msgid "Confirm before starting non-text viewing program"
 msgstr ""
 
-#: src/lang.c:1759
+#: src/lang.c:1986
 msgid "Ask before using MIME viewer"
 msgstr ""
 
-#: src/lang.c:1760
+#: src/lang.c:1987
 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:1765
+#: src/lang.c:1992
 msgid "Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:1766
+#: src/lang.c:1993
 msgid "Catchup read groups when quitting"
 msgstr ""
 
-#: src/lang.c:1767
+#: src/lang.c:1994
 msgid "# If ON ask user if read groups should all be marked read\n"
 msgstr ""
 
-#: src/lang.c:1772
+#: src/lang.c:1999
 msgid "Catchup group using left key"
 msgstr ""
 
-#: src/lang.c:1773
+#: src/lang.c:2000
 msgid "# If ON catchup group/thread when leaving with the left arrow key.\n"
 msgstr ""
 
-#: src/lang.c:1778
+#: src/lang.c:2005
 msgid "Catchup thread by using left key"
 msgstr ""
 
-#: src/lang.c:1784
+#: src/lang.c:2011
 msgid "Which actions require confirmation"
 msgstr ""
 
-#: src/lang.c:1785
+#: src/lang.c:2012
 msgid "# What should we ask confirmation for.\n"
 msgstr ""
 
-#: src/lang.c:1790
-msgid "'Mark article read' ignores tags"
+#: src/lang.c:2017
+msgid "'Mark as (un)read' ignores tags"
 msgstr ""
 
-#: src/lang.c:1791
+#: src/lang.c:2018
 msgid ""
-"# If ON the 'Mark article read' function marks only the current article.\n"
+"# If ON the 'Mark as (un)read' function marks only the current article.\n"
 msgstr ""
 
-#: src/lang.c:1795
-msgid "Program to run to open URL's, <CR> sets, <ESC> cancels."
+#: src/lang.c:2022
+msgid "Program to run to open URLs, <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:1796
-msgid "Program that opens URL's"
+#: src/lang.c:2023
+msgid "Program that opens URLs"
 msgstr ""
 
-#: src/lang.c:1797
-msgid "# The program used to open URL's. The actual URL will be appended\n"
+#: src/lang.c:2024
+msgid "# The program used to open URLs. The actual URL will be appended\n"
 msgstr ""
 
-#: src/lang.c:1802
+#: src/lang.c:2029
 msgid "Use mouse in xterm"
 msgstr ""
 
-#: src/lang.c:1803
-msgid "# If ON enable mouse key support on xterm terminals\n"
+#: src/lang.c:2030
+msgid "# If ON enable mouse button support on xterm terminals\n"
 msgstr ""
 
-#: src/lang.c:1809
+#: src/lang.c:2036
 msgid "Use scroll keys on keypad"
 msgstr ""
 
-#: src/lang.c:1810
+#: src/lang.c:2037
 msgid "# If ON enable scroll keys on terminals that support it\n"
 msgstr ""
 
-#: src/lang.c:1815
+#: src/lang.c:2042
 msgid "Enter maximum number of article to get. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1816
+#: src/lang.c:2043
 msgid "Number of articles to get"
 msgstr ""
 
-#: src/lang.c:1817
+#: src/lang.c:2044
 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:1822
+#: src/lang.c:2049
 msgid "Enter number of days article is considered recent. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1823
+#: src/lang.c:2050
 msgid "Article recentness time limit"
 msgstr ""
 
-#: src/lang.c:1824
+#: src/lang.c:2051
 msgid "# Number of days in which article is considered recent, (0=OFF)\n"
 msgstr ""
 
-#: src/lang.c:1828
+#: src/lang.c:2055
 msgid ""
 "WILDMAT for normal wildcards, REGEX for full regular expression matching."
 msgstr ""
 
-#: src/lang.c:1829
+#: src/lang.c:2056
 msgid "Wildcard matching"
 msgstr ""
 
-#: src/lang.c:1830
+#: src/lang.c:2057
 msgid ""
 "# Wildcard matching\n"
 "# Possible values are (the default is marked with *):\n"
@@ -5076,307 +5893,317 @@ msgid ""
 "#   1 = regex\n"
 msgstr ""
 
-#: src/lang.c:1837
+#: src/lang.c:2064
 msgid "Enter minimal score before an article is marked killed. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1838
+#: src/lang.c:2065
 msgid "Score limit (kill)"
 msgstr ""
 
-#: src/lang.c:1839
+#: src/lang.c:2066
 msgid "# Score limit before an article is marked killed\n"
 msgstr ""
 
-#: src/lang.c:1843
+#: src/lang.c:2070
 msgid "Enter default score to kill articles. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1844
+#: src/lang.c:2071
 msgid "Default score to kill articles"
 msgstr ""
 
-#: src/lang.c:1845
+#: src/lang.c:2072
 msgid "# Default score to kill articles\n"
 msgstr ""
 
-#: src/lang.c:1849
+#: src/lang.c:2076
 msgid "Enter minimal score before an article is marked hot. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1850
+#: src/lang.c:2077
 msgid "Score limit (select)"
 msgstr ""
 
-#: src/lang.c:1851
+#: src/lang.c:2078
 msgid "# Score limit before an article is marked hot\n"
 msgstr ""
 
-#: src/lang.c:1855
+#: src/lang.c:2082
 msgid "Enter default score to select articles. <CR> sets."
 msgstr ""
 
-#: src/lang.c:1856
+#: src/lang.c:2083
 msgid "Default score to select articles"
 msgstr ""
 
-#: src/lang.c:1857
+#: src/lang.c:2084
 msgid "# Default score to select articles\n"
 msgstr ""
 
-#: src/lang.c:1863
+#: src/lang.c:2090
 msgid "Use slrnface to show ''X-Face:''s"
 msgstr ""
 
-#: src/lang.c:1864
+#: src/lang.c:2091
 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:1872
+#: src/lang.c:2099
 msgid "Use ANSI color"
 msgstr ""
 
-#: src/lang.c:1873
+#: src/lang.c:2100
 msgid "# If ON using ANSI-color\n"
 msgstr ""
 
-#: src/lang.c:1878
+#: src/lang.c:2105
 msgid "Standard foreground color"
 msgstr ""
 
-#: src/lang.c:1879
+#: src/lang.c:2106
 msgid ""
 "# Standard foreground color\n"
 "# Default: -1 (default color)\n"
 msgstr ""
 
-#: src/lang.c:1885
+#: src/lang.c:2112
 msgid "Standard background color"
 msgstr ""
 
-#: src/lang.c:1886
+#: src/lang.c:2113
 msgid ""
 "# Standard background color\n"
 "# Default: -1 (default color)\n"
 msgstr ""
 
-#: src/lang.c:1892
+#: src/lang.c:2119
 msgid "Color for inverse text (background)"
 msgstr ""
 
-#: src/lang.c:1893
+#: src/lang.c:2120
 msgid ""
 "# Color of background for inverse text\n"
 "# Default: 4 (blue)\n"
 msgstr ""
 
-#: src/lang.c:1899
+#: src/lang.c:2126
 msgid "Color for inverse text (foreground)"
 msgstr ""
 
-#: src/lang.c:1900
+#: src/lang.c:2127
 msgid ""
 "# Color of foreground for inverse text\n"
 "# Default: 7 (white)\n"
 msgstr ""
 
-#: src/lang.c:1906
+#: src/lang.c:2133
 msgid "Color of text lines"
 msgstr ""
 
-#: src/lang.c:1907
+#: src/lang.c:2134
 msgid ""
 "# Color of text lines\n"
 "# Default: -1 (default color)\n"
 msgstr ""
 
-#: src/lang.c:1913
+#: src/lang.c:2140
 msgid "Color of mini help menu"
 msgstr ""
 
-#: src/lang.c:1914
+#: src/lang.c:2141
 msgid ""
 "# Color of mini help menu\n"
 "# Default: 3 (brown)\n"
 msgstr ""
 
-#: src/lang.c:1920
+#: src/lang.c:2147
 msgid "Color of help text"
 msgstr ""
 
-#: src/lang.c:1921
+#: src/lang.c:2148
 msgid ""
 "# Color of help pages\n"
 "# Default: -1 (default color)\n"
 msgstr ""
 
-#: src/lang.c:1927
+#: src/lang.c:2154
 msgid "Color of status messages"
 msgstr ""
 
-#: src/lang.c:1928
+#: src/lang.c:2155
 msgid ""
 "# Color of messages in last line\n"
 "# Default: 6 (cyan)\n"
 msgstr ""
 
-#: src/lang.c:1934
+#: src/lang.c:2161
 msgid "Color of quoted lines"
 msgstr ""
 
-#: src/lang.c:1935
+#: src/lang.c:2162
 msgid ""
 "# Color of quote-lines\n"
 "# Default: 2 (green)\n"
 msgstr ""
 
-#: src/lang.c:1941
+#: src/lang.c:2168
 msgid "Color of twice quoted line"
 msgstr ""
 
-#: src/lang.c:1942
+#: src/lang.c:2169
 msgid ""
 "# Color of twice quoted lines\n"
 "# Default: 3 (brown)\n"
 msgstr ""
 
-#: src/lang.c:1948
+#: src/lang.c:2175
 msgid "Color of =>3 times quoted line"
 msgstr ""
 
-#: src/lang.c:1949
+#: src/lang.c:2176
 msgid ""
 "# Color of >=3 times quoted lines\n"
 "# Default: 4 (blue)\n"
 msgstr ""
 
-#: src/lang.c:1955
+#: src/lang.c:2182
 msgid "Color of article header lines"
 msgstr ""
 
-#: src/lang.c:1956
+#: src/lang.c:2183
 msgid ""
 "# Color of header-lines\n"
 "# Default: 2 (green)\n"
 msgstr ""
 
-#: src/lang.c:1962
+#: src/lang.c:2189
 msgid "Color of actual news header fields"
 msgstr ""
 
-#: src/lang.c:1963
+#: src/lang.c:2190
 msgid ""
 "# Color of actual news header fields\n"
 "# Default: 9 (light red)\n"
 msgstr ""
 
-#: src/lang.c:1969
+#: src/lang.c:2196
 msgid "Color of article subject lines"
 msgstr ""
 
-#: src/lang.c:1970
+#: src/lang.c:2197
 msgid ""
 "# Color of article subject\n"
 "# Default: 6 (cyan)\n"
 msgstr ""
 
-#: src/lang.c:1976
+#: src/lang.c:2203
 msgid "Color of response counter"
 msgstr ""
 
-#: src/lang.c:1977
+#: src/lang.c:2204
 msgid ""
 "# Color of response counter\n"
 "# Default: 2 (green)\n"
 msgstr ""
 
-#: src/lang.c:1983
+#: src/lang.c:2210
 msgid "Color of sender (From:)"
 msgstr ""
 
-#: src/lang.c:1984
+#: src/lang.c:2211
 msgid ""
 "# Color of sender (From:)\n"
 "# Default: 2 (green)\n"
 msgstr ""
 
-#: src/lang.c:1990
+#: src/lang.c:2217
 msgid "Color of help/mail sign"
 msgstr ""
 
-#: src/lang.c:1991
+#: src/lang.c:2218
 msgid ""
 "# Color of Help/Mail-Sign\n"
 "# Default: 4 (blue)\n"
 msgstr ""
 
-#: src/lang.c:1997
+#: src/lang.c:2224
 msgid "Color of signatures"
 msgstr ""
 
-#: src/lang.c:1998
+#: src/lang.c:2225
 msgid ""
 "# Color of signature\n"
 "# Default: 4 (blue)\n"
 msgstr ""
 
-#: src/lang.c:2004
+#: src/lang.c:2231
 msgid "Color of highlighted URLs"
 msgstr ""
 
-#: src/lang.c:2005
+#: src/lang.c:2232
 msgid ""
 "# Color of highlighted URLs\n"
 "# Default: -1 (default color)\n"
 msgstr ""
 
-#: src/lang.c:2011
+#: src/lang.c:2238
+msgid "Color of verbatim blocks"
+msgstr ""
+
+#: src/lang.c:2239
+msgid ""
+"# Color of verbatim blocks\n"
+"# Default: 5 (pink)\n"
+msgstr ""
+
+#: src/lang.c:2245
 msgid "Color of highlighting with *stars*"
 msgstr ""
 
-#: src/lang.c:2012
+#: src/lang.c:2246
 msgid ""
 "# Color of word highlighting with *stars*\n"
 "# Default: 11 (yellow)\n"
 msgstr ""
 
-#: src/lang.c:2018
+#: src/lang.c:2252
 msgid "Color of highlighting with _dash_"
 msgstr ""
 
-#: src/lang.c:2019
+#: src/lang.c:2253
 msgid ""
 "# Color of word highlighting with _dash_\n"
 "# Default: 13 (light pink)\n"
 msgstr ""
 
-#: src/lang.c:2025
+#: src/lang.c:2259
 msgid "Color of highlighting with /slash/"
 msgstr ""
 
-#: src/lang.c:2026
+#: src/lang.c:2260
 msgid ""
 "# Color of word highlighting with /slash/\n"
 "# Default: 14 (light cyan)\n"
 msgstr ""
 
-#: src/lang.c:2032
+#: src/lang.c:2266
 msgid "Color of highlighting with -stroke-"
 msgstr ""
 
-#: src/lang.c:2033
+#: src/lang.c:2267
 msgid ""
 "# Color of word highlighting with -stroke-\n"
 "# Default: 12 (light blue)\n"
 msgstr ""
 
-#: src/lang.c:2040
+#: src/lang.c:2274
 msgid "Attr. of highlighting with *stars*"
 msgstr ""
 
-#: src/lang.c:2041
+#: src/lang.c:2275
 msgid ""
 "# Attributes of word highlighting on mono terminals\n"
 "# Possible values are:\n"
@@ -5392,57 +6219,57 @@ msgid ""
 "# Default: 6 (bold)\n"
 msgstr ""
 
-#: src/lang.c:2056
+#: src/lang.c:2290
 msgid "Attr. of highlighting with _dash_"
 msgstr ""
 
-#: src/lang.c:2057
+#: src/lang.c:2291
 msgid ""
 "# Attribute of word highlighting with _dash_\n"
 "# Default: 2 (best highlighting)\n"
 msgstr ""
 
-#: src/lang.c:2063
+#: src/lang.c:2297
 msgid "Attr. of highlighting with /slash/"
 msgstr ""
 
-#: src/lang.c:2064
+#: src/lang.c:2298
 msgid ""
 "# Attribute of word highlighting with /slash/\n"
 "# Default: 5 (half bright)\n"
 msgstr ""
 
-#: src/lang.c:2070
+#: src/lang.c:2304
 msgid "Attr. of highlighting with -stroke-"
 msgstr ""
 
-#: src/lang.c:2071
+#: src/lang.c:2305
 msgid ""
 "# Attribute of word highlighting with -stroke-\n"
 "# Default: 3 (reverse video)\n"
 msgstr ""
 
-#: src/lang.c:2077
+#: src/lang.c:2311
 msgid "URL highlighting in message body"
 msgstr ""
 
-#: src/lang.c:2078
+#: src/lang.c:2312
 msgid "# Enable URL highlighting?\n"
 msgstr ""
 
-#: src/lang.c:2083
+#: src/lang.c:2317
 msgid "Word highlighting in message body"
 msgstr ""
 
-#: src/lang.c:2084
+#: src/lang.c:2318
 msgid "# Enable word highlighting?\n"
 msgstr ""
 
-#: src/lang.c:2089
+#: src/lang.c:2323
 msgid "What to display instead of mark"
 msgstr ""
 
-#: src/lang.c:2090
+#: src/lang.c:2324
 msgid ""
 "# Should the leading and ending stars and dashes also be displayed,\n"
 "# even when they are highlighting marks?\n"
@@ -5452,110 +6279,109 @@ msgid ""
 "# * 2 = print a space instead\n"
 msgstr ""
 
-#: src/lang.c:2099
+#: src/lang.c:2333
 msgid "Enter column number to wrap article lines to in the pager. <CR> sets."
 msgstr ""
 
-#: src/lang.c:2100
+#: src/lang.c:2334
 msgid "Page line wrap column"
 msgstr ""
 
-#: src/lang.c:2101
+#: src/lang.c:2335
 msgid "# Wrap article lines at column\n"
 msgstr ""
 
-#: src/lang.c:2106
+#: src/lang.c:2340
 msgid "Wrap around threads on next unread"
 msgstr ""
 
-#: src/lang.c:2107
+#: src/lang.c:2341
 msgid "# If ON wrap around threads on searching next unread article\n"
 msgstr ""
 
-#: src/lang.c:2111
+#: src/lang.c:2345
 msgid "Enter default mail address (and fullname). <CR> sets."
 msgstr ""
 
-#: src/lang.c:2112
+#: src/lang.c:2346 src/lang.c:2770
 msgid "Mail address (and fullname)"
 msgstr ""
 
-#: src/lang.c:2113
+#: src/lang.c:2347
 msgid "# User's mail address (and fullname), if not username@host (fullname)\n"
 msgstr ""
 
-#: src/lang.c:2118
+#: src/lang.c:2352
 msgid "Show empty Followup-To in editor"
 msgstr ""
 
-#: src/lang.c:2119
+#: src/lang.c:2353
 msgid "# If ON show empty Followup-To header when editing an article\n"
 msgstr ""
 
-#: src/lang.c:2123
+#: src/lang.c:2357
 msgid ""
 "Enter path/! command/--none to create your default signature. <CR> sets."
 msgstr ""
 
-#: src/lang.c:2124
+#: src/lang.c:2358
 msgid "Create signature from path/command"
 msgstr ""
 
-#: src/lang.c:2125
+#: src/lang.c:2359
 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 "
-"signature\n"
-"# default_sigfile=--none     don't append a signature\n"
+"# sigfile=file       appends file as signature\n"
+"# sigfile=!command   executes external command to generate a signature\n"
+"# sigfile=--none     don't append a signature\n"
 msgstr ""
 
-#: src/lang.c:2132
+#: src/lang.c:2366
 msgid ""
 "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2133
+#: src/lang.c:2367
 msgid "Prepend signature with \"-- \""
 msgstr ""
 
-#: src/lang.c:2134
+#: src/lang.c:2368
 msgid "# If ON prepend the signature with dashes '\\n-- \\n'\n"
 msgstr ""
 
-#: src/lang.c:2138
+#: src/lang.c:2372
 msgid "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2139
+#: src/lang.c:2373
 msgid "Add signature when reposting"
 msgstr ""
 
-#: src/lang.c:2140
+#: src/lang.c:2374
 msgid "# If ON add signature to reposted articles\n"
 msgstr ""
 
-#: src/lang.c:2144
+#: src/lang.c:2378
 #, c-format
 msgid "Enter quotation marks, %s or %S for author's initials."
 msgstr ""
 
-#: src/lang.c:2145
+#: src/lang.c:2379
 msgid "Characters used as quote-marks"
 msgstr ""
 
-#: src/lang.c:2146
+#: src/lang.c:2380
 #, 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:2152
+#: src/lang.c:2386
 msgid "Quoting behavior"
 msgstr ""
 
-#: src/lang.c:2153
+#: src/lang.c:2387
 msgid ""
 "# How quoting should be handled when following up or replying.\n"
 "# Possible values are (the default is marked with *):\n"
@@ -5569,16 +6395,16 @@ msgid ""
 "#   7 = Compress quotes, quote signatures, quote empty lines\n"
 msgstr ""
 
-#: src/lang.c:2166 src/lang.c:2174 src/lang.c:2180
+#: src/lang.c:2400 src/lang.c:2408 src/lang.c:2414
 msgid ""
 "%A Addr %D Date %F Addr+Name %G Groupname %M Message-ID %N Name %C First Name"
 msgstr ""
 
-#: src/lang.c:2167
+#: src/lang.c:2401
 msgid "Quote line when following up"
 msgstr ""
 
-#: src/lang.c:2168
+#: src/lang.c:2402
 #, c-format
 msgid ""
 "# Format of quote line when mailing/posting/following-up an article\n"
@@ -5586,36 +6412,36 @@ msgid ""
 "# %%N Full Name  %%C First Name   %%I Initials\n"
 msgstr ""
 
-#: src/lang.c:2175
+#: src/lang.c:2409
 msgid "Quote line when cross-posting"
 msgstr ""
 
-#: src/lang.c:2181
+#: src/lang.c:2415
 msgid "Quote line when mailing"
 msgstr ""
 
-#: src/lang.c:2186
+#: src/lang.c:2420
 msgid "If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2187
-msgid "Insert 'User-Agent:'-header"
+#: src/lang.c:2421
+msgid "Insert 'User-Agent:' header"
 msgstr ""
 
-#: src/lang.c:2188
+#: src/lang.c:2422
 msgid "# If ON include advertising User-Agent: header\n"
 msgstr ""
 
-#: src/lang.c:2193
+#: src/lang.c:2427
 msgid ""
 "Enter charset name for MIME (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
 msgstr ""
 
-#: src/lang.c:2194
+#: src/lang.c:2428
 msgid "MM_CHARSET"
 msgstr ""
 
-#: src/lang.c:2195
+#: src/lang.c:2429
 msgid ""
 "# Charset supported locally which is also used for MIME header and\n"
 "# Content-Type header.\n"
@@ -5625,27 +6451,40 @@ msgid ""
 "# mm_charset is considered not displayable and represented as '?'.\n"
 msgstr ""
 
-#: src/lang.c:2205
+#: src/lang.c:2439
 msgid "MM_NETWORK_CHARSET"
 msgstr ""
 
-#: src/lang.c:2206
+#: src/lang.c:2440
 msgid "# Charset used for MIME (Content-Type) header in postings.\n"
 msgstr ""
 
-#: src/lang.c:2212
+#: src/lang.c:2444
+msgid ""
+"Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."
+msgstr ""
+
+#: src/lang.c:2445
+msgid "MM_LOCAL_CHARSET"
+msgstr ""
+
+#: src/lang.c:2446
+msgid "# Charset supported locally.\n"
+msgstr ""
+
+#: src/lang.c:2453
 msgid "Mailbox format"
 msgstr ""
 
-#: src/lang.c:2213
+#: src/lang.c:2454
 msgid "# Format of the mailbox.\n"
 msgstr ""
 
-#: src/lang.c:2218
+#: src/lang.c:2459
 msgid "MIME encoding in news messages"
 msgstr ""
 
-#: src/lang.c:2219
+#: src/lang.c:2460
 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 +6493,15 @@ msgid ""
 "# Russian charsets with a lot of 8bit characters.\n"
 msgstr ""
 
-#: src/lang.c:2227 src/lang.c:2248
+#: src/lang.c:2468 src/lang.c:2489
 msgid "Don't change unless you know what you are doing. <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:2228
+#: src/lang.c:2469
 msgid "Use 8bit characters in news headers"
 msgstr ""
 
-#: src/lang.c:2229
+#: src/lang.c:2470
 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 +6509,28 @@ msgid ""
 "# parameter unless post_mime_encoding is 8bit as well.\n"
 msgstr ""
 
-#: src/lang.c:2236
+#: src/lang.c:2477
 msgid ""
 "Auto-view post-processed files <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:2237
+#: src/lang.c:2478
 msgid "View post-processed files"
 msgstr ""
 
-#: src/lang.c:2238
+#: src/lang.c:2479
 msgid "# If set, post processed files will be opened in a viewer\n"
 msgstr ""
 
-#: src/lang.c:2243
+#: src/lang.c:2484
 msgid "MIME encoding in mail messages"
 msgstr ""
 
-#: src/lang.c:2249
+#: src/lang.c:2490
 msgid "Use 8bit characters in mail headers"
 msgstr ""
 
-#: src/lang.c:2250
+#: src/lang.c:2491
 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 +6541,158 @@ msgid ""
 "# turn it ON unless you have some compelling reason.\n"
 msgstr ""
 
-#: src/lang.c:2260
+#: src/lang.c:2501
 msgid "Strip blanks from ends of lines"
 msgstr ""
 
-#: src/lang.c:2261
+#: src/lang.c:2502
 msgid ""
 "# If ON strip blanks from ends of lines for faster display on slow "
 "terminals.\n"
 msgstr ""
 
-#: src/lang.c:2266
+#: src/lang.c:2507
 msgid "If ON, use transliteration. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2267
+#: src/lang.c:2508
 msgid "Transliteration"
 msgstr ""
 
-#: src/lang.c:2268
+#: src/lang.c:2509
 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:2275
-msgid "Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr ""
-
-#: src/lang.c:2276
-msgid "Send you a cc automatically"
-msgstr ""
-
-#: src/lang.c:2277
-msgid ""
-"# If ON automatically put your name in the Cc: field when mailing an "
-"article\n"
-msgstr ""
-
-#: src/lang.c:2281
-msgid ""
-"Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr ""
-
-#: src/lang.c:2282
-msgid "Send you a blind cc automatically"
+#: src/lang.c:2517
+msgid "Send you a Cc/Bcc automatically"
 msgstr ""
 
-#: src/lang.c:2283
+#: src/lang.c:2518
 msgid ""
-"# If ON automatically put your name in the Bcc: field when mailing an "
-"article\n"
+"# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+"# Possible values are (the default is marked with *):\n"
+"# * 0 = No\n"
+"#   1 = Cc\n"
+"#   2 = Bcc\n"
+"#   3 = Cc and Bcc\n"
 msgstr ""
 
-#: src/lang.c:2287
+#: src/lang.c:2527
 msgid "Enter address elements about which you want to be warned. <CR> sets."
 msgstr ""
 
-#: src/lang.c:2288
+#: src/lang.c:2528
 msgid "Spamtrap warning address parts"
 msgstr ""
 
-#: src/lang.c:2289
+#: src/lang.c:2529
 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:2294
+#: src/lang.c:2534
 msgid "Enter default number of days a filter entry will be valid. <CR> sets."
 msgstr ""
 
-#: src/lang.c:2295
+#: src/lang.c:2535
 msgid "No. of days a filter entry is valid"
 msgstr ""
 
-#: src/lang.c:2296
+#: src/lang.c:2536
 msgid "# Number of days a short term filter will be active\n"
 msgstr ""
 
-#: src/lang.c:2300
+#: src/lang.c:2540
 msgid "Add posted articles to filter. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2301
+#: src/lang.c:2541
 msgid "Add posted articles to filter"
 msgstr ""
 
-#: src/lang.c:2302
+#: src/lang.c:2542
 msgid ""
 "# If ON add posted articles which start a new thread to filter for\n"
 "# highlighting follow-ups\n"
 msgstr ""
 
-#: src/lang.c:2306
+#: src/lang.c:2546
 msgid "The directory where articles/threads are to be saved in mailbox format."
 msgstr ""
 
-#: src/lang.c:2307
+#: src/lang.c:2547
 msgid "Mail directory"
 msgstr ""
 
-#: src/lang.c:2308
+#: src/lang.c:2548
 msgid "# (-m) directory where articles/threads are saved in mailbox format\n"
 msgstr ""
 
-#: src/lang.c:2313
+#: src/lang.c:2553
 msgid "Save articles in batch mode (-S)"
 msgstr ""
 
-#: src/lang.c:2314
+#: src/lang.c:2554
 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:2319
+#: src/lang.c:2559
 msgid "The directory where you want articles/threads saved."
 msgstr ""
 
-#: src/lang.c:2320
+#: src/lang.c:2560
 msgid "Directory to save arts/threads in"
 msgstr ""
 
-#: src/lang.c:2321
+#: src/lang.c:2561
 msgid "# Directory where articles/threads are saved\n"
 msgstr ""
 
-#: src/lang.c:2325
+#: src/lang.c:2565
 msgid ""
 "Auto save article/thread by Archive-name: header. <SPACE> toggles & <CR> "
 "sets."
 msgstr ""
 
-#: src/lang.c:2326
+#: src/lang.c:2566
 msgid "Use Archive-name: header for save"
 msgstr ""
 
-#: src/lang.c:2327
+#: src/lang.c:2567
 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:2332
+#: src/lang.c:2572
 msgid ""
 "Mark saved articles/threads as read. <SPACE> toggles, <CR> sets, <ESC> "
 "cancels."
 msgstr ""
 
-#: src/lang.c:2333
+#: src/lang.c:2573
 msgid "Mark saved articles/threads as read"
 msgstr ""
 
-#: src/lang.c:2334
+#: src/lang.c:2574
 msgid "# If ON mark articles that are saved as read\n"
 msgstr ""
 
-#: src/lang.c:2338
+#: src/lang.c:2578
 msgid "Do post processing (eg. extract attachments) for saved articles."
 msgstr ""
 
-#: src/lang.c:2339
+#: src/lang.c:2579
 msgid "Post process saved articles"
 msgstr ""
 
-#: src/lang.c:2340
+#: src/lang.c:2580
 msgid ""
 "# Perform post processing (saving binary attachments) from saved articles.\n"
 "# Possible values are (the default is marked with *):\n"
@@ -5877,107 +6701,107 @@ msgid ""
 "#   2 = yes\n"
 msgstr ""
 
-#: src/lang.c:2349
+#: src/lang.c:2589
 msgid "Process only unread articles"
 msgstr ""
 
-#: src/lang.c:2350
+#: src/lang.c:2590
 msgid ""
 "# If ON only save/print/pipe/mail unread articles (tagged articles "
 "excepted)\n"
 msgstr ""
 
-#: src/lang.c:2355
+#: src/lang.c:2595
 msgid "Print all or just part of header. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2356
+#: src/lang.c:2596
 msgid "Print all headers when printing"
 msgstr ""
 
-#: src/lang.c:2357
+#: src/lang.c:2597
 msgid ""
 "# If ON print all of article header otherwise just the important lines\n"
 msgstr ""
 
-#: src/lang.c:2361
+#: src/lang.c:2601
 msgid ""
 "The printer program with options that is to be used to print articles/"
 "threads."
 msgstr ""
 
-#: src/lang.c:2362
+#: src/lang.c:2602
 msgid "Printer program with options"
 msgstr ""
 
-#: src/lang.c:2363
+#: src/lang.c:2603
 msgid "# Print program with parameters used to print articles/threads\n"
 msgstr ""
 
-#: src/lang.c:2369
+#: src/lang.c:2609
 msgid "Force redraw after certain commands"
 msgstr ""
 
-#: src/lang.c:2370
+#: src/lang.c:2610
 msgid ""
 "# If ON a screen redraw will always be done after certain external commands\n"
 msgstr ""
 
-#: src/lang.c:2374
+#: src/lang.c:2614
 msgid ""
 "Start editor with line offset. <SPACE> toggles, <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:2375
+#: src/lang.c:2615
 msgid "Start editor with line offset"
 msgstr ""
 
-#: src/lang.c:2376
+#: src/lang.c:2616
 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:2381
+#: src/lang.c:2621
 msgid "Enter %E for editor, %F for filename, %N for line-number, <CR> to set."
 msgstr ""
 
-#: src/lang.c:2382
+#: src/lang.c:2622
 msgid "Invocation of your editor"
 msgstr ""
 
-#: src/lang.c:2383
+#: src/lang.c:2623
 #, c-format
 msgid ""
 "# Format of editor line including parameters\n"
 "# %%E Editor  %%F Filename  %%N Linenumber\n"
 msgstr ""
 
-#: src/lang.c:2388
+#: src/lang.c:2628
 msgid ""
 "Enter name and options for external-inews, --internal for internal inews"
 msgstr ""
 
-#: src/lang.c:2389
+#: src/lang.c:2629
 msgid "External inews"
 msgstr ""
 
-#: src/lang.c:2390
+#: src/lang.c:2630
 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:2394
+#: src/lang.c:2634
 msgid ""
 "Enter %M for mailer, %S for subject, %T for to, %F for filename, <CR> to set."
 msgstr ""
 
-#: src/lang.c:2395
+#: src/lang.c:2635
 msgid "Invocation of your mail command"
 msgstr ""
 
-#: src/lang.c:2396
+#: src/lang.c:2636
 #, c-format
 msgid ""
 "# Format of mailer line including parameters\n"
@@ -5986,11 +6810,11 @@ msgid ""
 "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
 msgstr ""
 
-#: src/lang.c:2404
+#: src/lang.c:2644
 msgid "Use interactive mail reader"
 msgstr ""
 
-#: src/lang.c:2405
+#: src/lang.c:2645
 msgid ""
 "# Interactive mailreader\n"
 "# Possible values are (the default is marked with *):\n"
@@ -5999,58 +6823,67 @@ msgid ""
 "#   2 = use interactive mailreader without headers in file\n"
 msgstr ""
 
-#: src/lang.c:2414
+#: src/lang.c:2654
 msgid "Remove ~/.article after posting"
 msgstr ""
 
-#: src/lang.c:2415
+#: src/lang.c:2655
 msgid "# If ON remove ~/.article after posting.\n"
 msgstr ""
 
-#: src/lang.c:2419
+#: src/lang.c:2661
+msgid "Use UTF-8 graphics (thrd tree etc.)"
+msgstr ""
+
+#: src/lang.c:2662
+msgid ""
+"# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr ""
+
+#: src/lang.c:2667
 msgid "Filename for all posted articles, <CR> sets, no filename=do not save."
 msgstr ""
 
-#: src/lang.c:2420
+#: src/lang.c:2668
 msgid "Filename for posted articles"
 msgstr ""
 
-#: src/lang.c:2421
+#: src/lang.c:2669
 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:2426
+#: src/lang.c:2674
 msgid ""
 "Keep all failed articles in ~/dead.articles. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2427
+#: src/lang.c:2675
 msgid "Keep failed arts in ~/dead.articles"
 msgstr ""
 
-#: src/lang.c:2428
+#: src/lang.c:2676
 msgid "# If ON keep all failed postings in ~/dead.articles\n"
 msgstr ""
 
-#: src/lang.c:2432
+#: src/lang.c:2680
 msgid "Do you want to strip unsubscribed groups from .newsrc"
 msgstr ""
 
-#: src/lang.c:2433
+#: src/lang.c:2681
 msgid "No unsubscribed groups in newsrc"
 msgstr ""
 
-#: src/lang.c:2434
+#: src/lang.c:2682
 msgid "# If ON strip unsubscribed groups from newsrc\n"
 msgstr ""
 
-#: src/lang.c:2439
+#: src/lang.c:2687
 msgid "Remove bogus groups from newsrc"
 msgstr ""
 
-#: src/lang.c:2440
+#: src/lang.c:2688
 msgid ""
 "# What to do with bogus groups in newsrc file\n"
 "# Possible values are (the default is marked with *):\n"
@@ -6059,58 +6892,58 @@ msgid ""
 "#   2 = highlight with D on selection screen\n"
 msgstr ""
 
-#: src/lang.c:2448
+#: src/lang.c:2696
 msgid "Enter number of seconds until active file will be reread. <CR> sets."
 msgstr ""
 
-#: src/lang.c:2449
+#: src/lang.c:2697
 msgid "Interval in secs to reread active"
 msgstr ""
 
-#: src/lang.c:2450
+#: src/lang.c:2698
 msgid ""
 "# Time interval in seconds between rereading the active file (0=never)\n"
 msgstr ""
 
-#: src/lang.c:2455
+#: src/lang.c:2703
 msgid "Reconnect to server automatically"
 msgstr ""
 
-#: src/lang.c:2456
+#: src/lang.c:2704
 msgid ""
 "# If ON automatically reconnect to NNTP server if the connection is broken\n"
 msgstr ""
 
-#: src/lang.c:2460
+#: src/lang.c:2708
 msgid ""
 "Create local copies of NNTP overview files. <SPACE> toggles & <CR> sets."
 msgstr ""
 
-#: src/lang.c:2461
+#: src/lang.c:2709
 msgid "Cache NNTP overview files locally"
 msgstr ""
 
-#: src/lang.c:2462
+#: src/lang.c:2710
 msgid "# If ON, create local copies of NNTP overview files.\n"
 msgstr ""
 
-#: src/lang.c:2466
+#: src/lang.c:2714
 msgid "Enter format string. <CR> sets, <ESC> cancels."
 msgstr ""
 
-#: src/lang.c:2467
+#: src/lang.c:2715
 msgid "Format string for display of dates"
 msgstr ""
 
-#: src/lang.c:2468
+#: src/lang.c:2716
 msgid "# Format string for date representation\n"
 msgstr ""
 
-#: src/lang.c:2474
+#: src/lang.c:2722
 msgid "Unicode normalization form"
 msgstr ""
 
-#: src/lang.c:2475
+#: src/lang.c:2723
 msgid ""
 "# Unicode normalization form\n"
 "# Possible values are (the default is marked with *):\n"
@@ -6121,111 +6954,263 @@ msgid ""
 "#   4 = NFD\n"
 msgstr ""
 
-#: src/lang.c:2487
+#: src/lang.c:2735
 msgid "Render BiDi"
 msgstr ""
 
-#: src/lang.c:2488
+#: src/lang.c:2736
 msgid "# If ON, bi-directional text is rendered by tin\n"
 msgstr ""
 
-#: src/misc.c:3750
+#: src/lang.c:2746
+msgid "Automatically GroupMarkUnselArtRead"
+msgstr ""
+
+#: src/lang.c:2752
+msgid "Delete post-process files"
+msgstr ""
+
+#: src/lang.c:2757
+msgid "Filename for all mailed articles, <CR> sets, no filename=do not save."
+msgstr ""
+
+#: src/lang.c:2758
+msgid "Mailbox to save sent mails"
+msgstr ""
+
+#: src/lang.c:2763
+msgid "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2764
+msgid "Followup-To: header"
+msgstr ""
+
+#: src/lang.c:2769
+msgid "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2776
+msgid ""
+"Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2777
+msgid "Ispell program"
+msgstr ""
+
+#: src/lang.c:2783
+msgid "When group is a mailing list, send responses to this email address."
+msgstr ""
+
+#: src/lang.c:2784
+msgid "Mailing list address"
+msgstr ""
+
+#: src/lang.c:2790
+msgid "Forward articles as attachement"
+msgstr ""
+
+#: src/lang.c:2795
+msgid ""
+"A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2796
+msgid "Which MIME types will be saved"
+msgstr ""
+
+#: src/lang.c:2801
+msgid "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2802
+msgid "Organization: header"
+msgstr ""
+
+#: src/lang.c:2807
+msgid "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2808
+msgid "savefile"
+msgstr ""
+
+#: src/lang.c:2813 src/lang.c:2837
+msgid "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2814
+msgid "Quick (1 key) select filter scope"
+msgstr ""
+
+#: src/lang.c:2819 src/lang.c:2843
+msgid "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2820
+msgid "Quick (1 key) select filter header"
+msgstr ""
+
+#: src/lang.c:2825 src/lang.c:2849
+msgid "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2826
+msgid "Quick (1 key) select filter case"
+msgstr ""
+
+#: src/lang.c:2831 src/lang.c:2855
+msgid "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2832
+msgid "Quick (1 key) select filter expire"
+msgstr ""
+
+#: src/lang.c:2838
+msgid "Quick (1 key) kill filter scope"
+msgstr ""
+
+#: src/lang.c:2844
+msgid "Quick (1 key) kill filter header"
+msgstr ""
+
+#: src/lang.c:2850
+msgid "Quick (1 key) kill filter case"
+msgstr ""
+
+#: src/lang.c:2856
+msgid "Quick (1 key) kill filter expire"
+msgstr ""
+
+#: src/lang.c:2862
+msgid "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr ""
+
+#: src/lang.c:2863
+msgid "UNDECLARED_CHARSET"
+msgstr ""
+
+#: src/lang.c:2869
+msgid ""
+"Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2870
+msgid "X_Body"
+msgstr ""
+
+#: src/lang.c:2875
+msgid "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr ""
+
+#: src/lang.c:2876
+msgid "X_Headers"
+msgstr ""
+
+#: src/lang.c:2881
+msgid ""
+"Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr ""
+
+#: src/lang.c:2882
+msgid "Insert 'X-Comment-To:' header"
+msgstr ""
+
+#: src/misc.c:3754
 #, c-format
 msgid "Version: %s %s release %s (\"%s\") %s %s\n"
 msgstr ""
 
-#: src/misc.c:3753
+#: src/misc.c:3757
 #, c-format
 msgid "Version: %s %s release %s (\"%s\")\n"
 msgstr ""
 
-#: src/newsrc.c:430
+#: src/newsrc.c:453
 msgid "Unreachable?\n"
 msgstr ""
 
-#: src/nntplib.c:824
+#: src/nntplib.c:819
 #, c-format
 msgid ""
 "\n"
 "Server timed out, trying reconnect # %d\n"
 msgstr ""
 
-#: src/nntplib.c:842 src/nntplib.c:1630
+#: src/nntplib.c:855 src/nntplib.c:1830
 msgid "Rejoin current group\n"
 msgstr ""
 
-#: src/nntplib.c:849 src/nntplib.c:1637
+#: src/nntplib.c:863 src/nntplib.c:1838
 #, c-format
 msgid "Read (%s)\n"
 msgstr ""
 
-#: src/nntplib.c:851
+#: src/nntplib.c:865
 #, c-format
 msgid "Resend last command (%s)\n"
 msgstr ""
 
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
+#: src/nntplib.c:1494
+msgid "CAPABILITIES did not announce READER"
+msgstr ""
+
+#: src/nntplib.c:1979
 msgid "MOTD: "
 msgstr ""
 
-#: src/nrctbl.c:170
+#: src/nrctbl.c:175
 #, c-format
 msgid "couldn't expand %s\n"
 msgstr ""
 
-#: src/post.c:1171
+#: src/post.c:1307
 #, 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:1312
 #, c-format
 msgid ""
-"Line %d is longer than 998 octets, and should be folded, but\n"
+"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:1314
 #, c-format
 msgid ""
-"Line %d is longer than 998 octets, and should be folded, but\n"
+"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:2278
 #, c-format
 msgid "Posting: %.*s ..."
 msgstr ""
 
 #. Check if okay to read
-#: src/read.c:211
+#: src/read.c:197
 msgid "Aborting read, please wait..."
 msgstr ""
 
-#: src/read.c:358
+#: src/read.c:344
 msgid "Aborted read\n"
 msgstr ""
 
-#: src/read.c:414
+#: src/read.c:399
 msgid "Draining\n"
 msgstr ""
 
-#. Don't hash the initial '<'
-#: src/refs.c:251
+#: src/refs.c:232
 msgid "unchanged"
 msgstr ""
 
-#: src/refs.c:609
+#: src/refs.c:599
 msgid "[- Unavailable -]"
 msgstr ""
 
@@ -6233,7 +7218,7 @@ msgstr ""
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
 msgid ""
 "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
@@ -6243,34 +7228,37 @@ msgid ""
 "\n"
 msgstr ""
 
-#: src/save.c:972
+#: src/save.c:1045
 msgid "bytes"
 msgstr ""
 
-#: src/select.c:379
+#: src/select.c:378
 msgid "unread"
 msgstr ""
 
-#: src/select.c:379
+#: src/select.c:378
 msgid "all"
 msgstr ""
 
-#: src/select.c:549 src/select.c:551
+#: src/select.c:554 src/select.c:556
 msgid " R"
 msgstr ""
 
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
+#: src/xface.c:70
+msgid "Can't run slrnface: Not running in a xterm."
+msgstr ""
+
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
 #, c-format
 msgid "Can't run slrnface: Environment variable %s not found."
 msgstr ""
 
-#: src/xface.c:99 src/xface.c:131
+#: src/xface.c:111 src/xface.c:143
 #, c-format
 msgid "Can't run slrnface: failed to create %s"
 msgstr ""
 
-#: src/xface.c:109
+#: src/xface.c:121
 msgid ""
 "This directory is used to create named pipes for communication between\n"
 "slrnface and its parent process. It should normally be empty because\n"
@@ -6284,16 +7272,16 @@ msgid ""
 "Do not try to remove them.\n"
 msgstr ""
 
-#: src/xface.c:123
+#: src/xface.c:135
 msgid "Can't run slrnface: couldn't construct fifo name."
 msgstr ""
 
-#: src/xface.c:162
+#: src/xface.c:174
 #, c-format
 msgid "Slrnface abnormally exited, code %d."
 msgstr ""
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, c-format
 msgid "Slrnface failed: %s."
 msgstr ""
Binary files tin-1.8.3/po/tr.gmo and tin-2.0.0/po/tr.gmo differ
diff -Nurp --exclude='.bzr*' tin-1.8.3/po/tr.po tin-2.0.0/po/tr.po
--- tin-1.8.3/po/tr.po	2007-02-01 13:58:05.000000000 +0100
+++ tin-2.0.0/po/tr.po	2011-08-22 18:32:43.163545773 +0200
@@ -4,7258 +4,8379 @@
 # Ali Ibraimi <liloib@yahoo.com>, 2005.
 # Özge Sevinç <ozge_se@yahoo.com>, 2005.
 #
-msgid	""
-msgstr	"Project-Id-Version: tin 1.7.7\n"
-	"Report-Msgid-Bugs-To: \n"
-	"POT-Creation-Date: 2007-02-01 13:57+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"
-	"MIME-Version: 1.0\n"
-	"Content-Type: text/plain; charset=ISO-8859-9\n"
-	"Content-Transfer-Encoding: 8bit\n"
+msgid   ""
+msgstr  "Project-Id-Version: tin 1.7.7\n"
+        "Report-Msgid-Bugs-To: \n"
+        "POT-Creation-Date: 2011-08-22 18:32+0200\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"
+        "MIME-Version: 1.0\n"
+        "Content-Type: text/plain; charset=ISO-8859-9\n"
+        "Content-Transfer-Encoding: 8bit\n"
 
-#: src/art.c:1534
+#. No active scope set yet
+#. TODO: include full line in error-message
+#: src/attrib.c:598
 #, c-format
-msgid	"%d Bad overview record (%d fields) '%s'"
-msgstr	""
+msgid   "attribute with no scope: %s"
+msgstr  ""
 
-#: src/attrib.c:649
+#: src/attrib.c:884
+#, fuzzy
+msgid   "Processing attributes... "
+msgstr  "Öznitelikler dosylasýný yazýyor..."
+
+#: src/attrib.c:1102
+#, c-format
+msgid   "# Do not edit this comment block\n"
+        "#\n"
+msgstr  "# Bu açýklama bloðunu düzenlemeyin\n"
+        "#\n"
+
+#: src/attrib.c:1103
+#, fuzzy, c-format
+msgid   "#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"
+msgstr  "#  scope=DÝZGE (kapsam, örn. alt.*,!alt.bin*) [zorunlu]\n"
+
+#: src/attrib.c:1104
+#, c-format
+msgid   "#  add_posted_to_filter=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1105
+#, c-format
+msgid   "#  advertising=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1106
+#, c-format
+msgid   "#  alternative_handling=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1107
+#, c-format
+msgid   "#  ask_for_metamail=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1108
+#, c-format
+msgid   "#  auto_cc_bcc=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1109
 #, c-format
-msgid	"# Do not edit this comment block\n"
-	"#\n"
-msgstr	"# Bu açýklama bloðunu düzenlemeyin\n"
-	"#\n"
+msgid   "#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"
+msgstr  ""
 
-#: src/attrib.c:650
+#: src/attrib.c:1110
 #, c-format
-msgid	"#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"
-msgstr	"#  scope=DÝZGE (kapsam, örn. alt.*,!alt.bin*) [zorunlu]\n"
+msgid   "#  auto_list_thread=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:651
+#: src/attrib.c:1111
 #, c-format
-msgid	"#  maildir=STRING (ie. ~/Mail)\n"
-msgstr	"#  maildir=DÝZGE (posta dizini, örn. ~/Mail)\n"
+msgid   "#  auto_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:652
+#: src/attrib.c:1112
 #, c-format
-msgid	"#  savedir=STRING (ie. ~user/News)\n"
-msgstr	"#  savedir=DÝZGE (saklama dizini, örn. ~user/News)\n"
+msgid   "#  auto_select=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:653
+#: src/attrib.c:1113
 #, c-format
-msgid	"#  savefile=STRING (ie. =linux)\n"
-msgstr	"#  savefile=DÝZGE (saklama dosyasý, örn. =linux)\n"
+msgid   "#  batch_save=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:654
+#: src/attrib.c:1114
 #, c-format
-msgid	"#  sigfile=STRING (ie. $var/sig)\n"
-msgstr	"#  sigfile=DÝZGE (imza dosyasý, örn. $var/sig)\n"
+msgid   "#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"
+msgstr  ""
 
-#: src/attrib.c:655
+#: src/attrib.c:1115
 #, c-format
-msgid	"#  organization=STRING (if beginning with '/' read from file)\n"
-msgstr	"#  organization=DÝZGE (kurum; eðer / ile baþlýyor ise, dosyadan okunur)\n"
+msgid   "#  delete_tmp_files=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:656
+#: src/attrib.c:1116
 #, c-format
-msgid	"#  followup_to=STRING\n"
-msgstr	"#  followup_to=DÝZGE (cevap yönlendirmesi)\n"
+msgid   "#  editor_format=STRING (eg. %%E +%%N %%F)\n"
+msgstr  ""
 
-#: src/attrib.c:657
+#: src/attrib.c:1117
 #, c-format
-msgid	"#  mailing_list=STRING (ie. majordomo@example.org)\n"
-msgstr	"#  mailing_list=DÝZGE (posta listesi, örn. majordomo@example.org)\n"
+msgid   "#  fcc=STRING (eg. =mailbox)\n"
+msgstr  ""
 
-#: src/attrib.c:658
+#: src/attrib.c:1118
 #, c-format
-msgid	"#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"
-msgstr	"#  x_headers=DÝZGE (ekstra baþlýk dosyasý, örn. ~/.tin/extra-headers)\n"
+msgid   "#  followup_to=STRING\n"
+msgstr  "#  followup_to=DÝZGE (cevap yönlendirmesi)\n"
 
-#: src/attrib.c:659
+#: src/attrib.c:1119
 #, c-format
-msgid	"#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"
-msgstr	"#  x_body=DÝZGE (extra gövde dosyasý, örn. ~/.tin/extra-body-text)\n"
+msgid   "#  from=STRING (just append wanted From:-line, don't use quotes)\n"
+msgstr  ""
 
-#: src/attrib.c:660
+#: src/attrib.c:1120
 #, c-format
-msgid	"#  from=STRING (just append wanted From:-line, don't use quotes)\n"
-msgstr	""
+msgid   "#  group_catchup_on_exit=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:661
+#: src/attrib.c:1121
+#, c-format
+msgid   "#  mail_8bit_header=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1122
+#, c-format
+msgid   "#  mail_mime_encoding=supported_encoding"
+msgstr  ""
+
+#: src/attrib.c:1130
+#, fuzzy, c-format
+msgid   "#  ispell=STRING\n"
+msgstr  "#  ispell=DÝZGE\n"
+
+#: src/attrib.c:1132
+#, fuzzy, c-format
+msgid   "#  maildir=STRING (eg. ~/Mail)\n"
+msgstr  "#  maildir=DÝZGE (posta dizini, örn. ~/Mail)\n"
+
+#: src/attrib.c:1133
 #, fuzzy, c-format
-msgid	"#  news_quote_format=STRING\n"
-msgstr	"#  news_quote_format=DÝZGE\n"
+msgid   "#  mailing_list=STRING (eg. majordomo@example.org)\n"
+msgstr  "#  mailing_list=DÝZGE (posta listesi, örn. majordomo@example.org)\n"
+
+#: src/attrib.c:1134
+#, c-format
+msgid   "#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
+msgstr  ""
+
+#: src/attrib.c:1135
+#, c-format
+msgid   "#  mark_ignore_tags=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1136
+#, c-format
+msgid   "#  mark_saved_read=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1137
+#, c-format
+msgid   "#  mime_forward=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:662
+#: src/attrib.c:1139
 #, c-format
-msgid	"#  quote_chars=STRING (%%s, %%S for initials)\n"
-msgstr	""
+msgid   "#  mm_network_charset=supported_charset"
+msgstr  ""
 
-#: src/attrib.c:663
+#: src/attrib.c:1146
 #, c-format
-msgid	"#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"
-msgstr	""
+msgid   "#  undeclared_charset=STRING (default is US-ASCII)\n"
+msgstr  ""
 
-#: src/attrib.c:665
+#: src/attrib.c:1148
 #, fuzzy, c-format
-msgid	"#  ispell=STRING\n"
-msgstr	"#  ispell=DÝZGE\n"
+msgid   "#  news_headers_to_display=STRING\n"
+msgstr  "#  news_quote_format=DÝZGE\n"
 
-#: src/attrib.c:667
+#: src/attrib.c:1149
+#, fuzzy, c-format
+msgid   "#  news_headers_to_not_display=STRING\n"
+msgstr  "#  news_quote_format=DÝZGE\n"
+
+#: src/attrib.c:1150
+#, fuzzy, c-format
+msgid   "#  news_quote_format=STRING\n"
+msgstr  "#  news_quote_format=DÝZGE\n"
+
+#: src/attrib.c:1151
+#, c-format
+msgid   "#  organization=STRING (if beginning with '/' read from file)\n"
+msgstr  "#  organization=DÝZGE (kurum; eðer / ile baþlýyor ise, dosyadan okunur)\n"
+
+#: src/attrib.c:1152
+#, c-format
+msgid   "#  pos_first_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1153
 #, c-format
-msgid	"#  auto_select=ON/OFF\n"
-msgstr	""
+msgid   "#  post_8bit_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:668
+#: src/attrib.c:1154
 #, c-format
-msgid	"#  auto_save=ON/OFF\n"
-msgstr	""
+msgid   "#  post_mime_encoding=supported_encoding"
+msgstr  ""
 
-#: src/attrib.c:669
+#: src/attrib.c:1161
 #, c-format
-msgid	"#  batch_save=ON/OFF\n"
-msgstr	""
+msgid   "#  post_process_type=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:670
+#: src/attrib.c:1166
 #, c-format
-msgid	"#  delete_tmp_files=ON/OFF\n"
-msgstr	""
+msgid   "#  post_process_view=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:671
+#: src/attrib.c:1167
 #, c-format
-msgid	"#  show_only_unread=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_kill_scope=STRING (ie. talk.*)\n"
+msgstr  ""
 
-#: src/attrib.c:672
+#: src/attrib.c:1168
 #, c-format
-msgid	"#  thread_arts=NUM"
-msgstr	""
+msgid   "#  quick_kill_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:679
+#: src/attrib.c:1169
 #, c-format
-msgid	"#  thread_perc=NUM\n"
-msgstr	""
+msgid   "#  quick_kill_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:680
+#: src/attrib.c:1170
 #, c-format
-msgid	"#  show_author=NUM\n"
-msgstr	""
+msgid   "#  quick_kill_header=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:686
+#: src/attrib.c:1171 src/attrib.c:1180
 #, c-format
-msgid	"#  show_info=NUM\n"
-msgstr	""
+msgid   "#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"
+msgstr  ""
 
-#: src/attrib.c:692
+#: src/attrib.c:1172 src/attrib.c:1181
 #, c-format
-msgid	"#  sort_art_type=NUM\n"
-msgstr	""
+msgid   "#    2=From: (case sensitive)     3=From: (ignore case)\n"
+msgstr  ""
 
-#: src/attrib.c:710
+#: src/attrib.c:1173 src/attrib.c:1182
 #, c-format
-msgid	"#  sort_threads_type=NUM\n"
-msgstr	""
+msgid   "#    4=Message-ID: & full References: line\n"
+msgstr  ""
 
-#: src/attrib.c:715
+#: src/attrib.c:1174 src/attrib.c:1183
 #, c-format
-msgid	"#  post_proc_type=NUM\n"
-msgstr	""
+msgid   "#    5=Message-ID: & last References: entry only\n"
+msgstr  ""
 
-#: src/attrib.c:720
+#: src/attrib.c:1175 src/attrib.c:1184
 #, c-format
-msgid	"#  quick_kill_scope=STRING (ie. talk.*)\n"
-msgstr	""
+msgid   "#    6=Message-ID: entry only     7=Lines:\n"
+msgstr  ""
 
-#: src/attrib.c:721
+#: src/attrib.c:1176
+#, fuzzy, c-format
+msgid   "#  quick_select_scope=STRING\n"
+msgstr  "#  quick_select_scope=DÝZGE\n"
+
+#: src/attrib.c:1177
 #, c-format
-msgid	"#  quick_kill_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_select_expire=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:722
+#: src/attrib.c:1178
 #, c-format
-msgid	"#  quick_kill_case=ON/OFF\n"
-msgstr	""
+msgid   "#  quick_select_case=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:723
+#: src/attrib.c:1179
 #, c-format
-msgid	"#  quick_kill_header=NUM\n"
-msgstr	""
+msgid   "#  quick_select_header=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:724 src/attrib.c:731
+#: src/attrib.c:1185
 #, c-format
-msgid	"#    0=subj (case sensitive) 1=subj (ignore case)\n"
-msgstr	""
+msgid   "#  quote_chars=STRING (%%s, %%S for initials)\n"
+msgstr  ""
 
-#: src/attrib.c:725 src/attrib.c:732
+#: src/attrib.c:1187
 #, c-format
-msgid	"#    2=from (case sensitive) 3=from (ignore case)\n"
-msgstr	""
+msgid   "#  print_header=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:726 src/attrib.c:733
+#: src/attrib.c:1189
 #, c-format
-msgid	"#    4=msgid 5=lines\n"
-msgstr	""
+msgid   "#  process_only_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1190
+#, fuzzy, c-format
+msgid   "#  prompt_followupto=ON/OFF\n"
+msgstr  "#  followup_to=DÝZGE (cevap yönlendirmesi)\n"
+
+#: src/attrib.c:1191
+#, fuzzy, c-format
+msgid   "#  savedir=STRING (eg. ~user/News)\n"
+msgstr  "#  savedir=DÝZGE (saklama dizini, örn. ~user/News)\n"
+
+#: src/attrib.c:1192
+#, fuzzy, c-format
+msgid   "#  savefile=STRING (eg. =linux)\n"
+msgstr  "#  savefile=DÝZGE (saklama dosyasý, örn. =linux)\n"
 
-#: src/attrib.c:727
+#: src/attrib.c:1193
 #, fuzzy, c-format
-msgid	"#  quick_select_scope=STRING\n"
-msgstr	"#  quick_select_scope=DÝZGE\n"
+msgid   "#  sigfile=STRING (eg. $var/sig)\n"
+msgstr  "#  sigfile=DÝZGE (imza dosyasý, örn. $var/sig)\n"
 
-#: src/attrib.c:728
+#: src/attrib.c:1194
 #, c-format
-msgid	"#  quick_select_expire=ON/OFF\n"
-msgstr	""
+msgid   "#  show_author=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:729
+#: src/attrib.c:1200
 #, c-format
-msgid	"#  quick_select_case=ON/OFF\n"
-msgstr	""
+msgid   "#  show_info=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:730
+#: src/attrib.c:1206
 #, c-format
-msgid	"#  quick_select_header=NUM\n"
-msgstr	""
+msgid   "#  show_signatures=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:734
+#: src/attrib.c:1207
 #, c-format
-msgid	"#  x_comment_to=ON/OFF\n"
-msgstr	""
+msgid   "#  show_only_unread_arts=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:735
+#: src/attrib.c:1208
 #, c-format
-msgid	"#  fcc=STRING (eg. =mailbox)\n"
-msgstr	""
+msgid   "#  sigdashes=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:736
+#: src/attrib.c:1209
 #, c-format
-msgid	"#  tex2iso_conv=ON/OFF\n"
-msgstr	""
+msgid   "#  signature_repost=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:737
+#: src/attrib.c:1210
 #, c-format
-msgid	"#  mime_forward=ON/OFF\n"
-msgstr	""
+msgid   "#  sort_article_type=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:739
+#: src/attrib.c:1228
 #, c-format
-msgid	"#  mm_network_charset=supported_charset"
-msgstr	""
+msgid   "#  sort_threads_type=NUM\n"
+msgstr  ""
 
-#: src/attrib.c:746
+#: src/attrib.c:1237
 #, c-format
-msgid	"#  undeclared_charset=STRING (default is US-ASCII)\n"
-msgstr	""
+msgid   "#  start_editor_offset=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:748
-#, 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:1238
+#, c-format
+msgid   "#  tex2iso_conv=ON/OFF\n"
+msgstr  ""
 
-#: src/attrib.c:749
-#, 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:1239
+#, c-format
+msgid   "#  thread_catchup_on_exit=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1240
+#, c-format
+msgid   "#  thread_articles=NUM"
+msgstr  ""
+
+#: src/attrib.c:1247
+#, c-format
+msgid   "#  thread_perc=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1248
+#, c-format
+msgid   "#  trim_article_body=NUM\n"
+msgstr  ""
+
+#: src/attrib.c:1249
+#, c-format
+msgid   "#    0 = Don't trim article body\n"
+msgstr  ""
+
+#: src/attrib.c:1250
+#, c-format
+msgid   "#    1 = Skip leading blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1251
+#, c-format
+msgid   "#    2 = Skip trailing blank lines\n"
+msgstr  ""
 
-#: src/attrib.c:750
+#: src/attrib.c:1252
 #, c-format
-msgid	"############################################################################\n"
-	"\n"
-msgstr	"############################################################################\n"
-	"\n"
+msgid   "#    3 = Skip leading and trailing blank lines\n"
+msgstr  ""
 
-#: src/attrib.c:756
+#: src/attrib.c:1253
 #, c-format
-msgid	"# include extra headers\n"
-msgstr	"# extra baþlýklarý içerir\n"
+msgid   "#    4 = Compact multiple blank lines between text blocks\n"
+msgstr  ""
 
-#: src/attrib.c:764
+#: src/attrib.c:1254
 #, c-format
-msgid	"# in *sources* set post process type to shar only\n"
-msgstr	""
+msgid   "#    5 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading blank lines\n"
+msgstr  ""
 
-#: src/attrib.c:768
+#: src/attrib.c:1255
+#, c-format
+msgid   "#    6 = Compact multiple blank lines between text blocks and skip\n"
+        "#        trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1256
+#, c-format
+msgid   "#    7 = Compact multiple blank lines between text blocks and skip\n"
+        "#        leading and trailing blank lines\n"
+msgstr  ""
+
+#: src/attrib.c:1257
+#, c-format
+msgid   "#  verbatim_handling=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1258
+#, c-format
+msgid   "#  wrap_on_next_unread=ON/OFF\n"
+msgstr  ""
+
+#: src/attrib.c:1259
 #, 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"
+msgid   "#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"
+msgstr  "#  x_body=DÝZGE (extra gövde dosyasý, örn. ~/.tin/extra-body-text)\n"
 
-#: src/attrib.c:769
+#: src/attrib.c:1260
 #, c-format
-msgid	"# remove tmp files and set Followup-To: poster\n"
-msgstr	""
+msgid   "#  x_comment_to=ON/OFF\n"
+msgstr  ""
 
-#: src/cook.c:499
-msgid	"(unknown)"
-msgstr	"(bilinmiyor)"
+#: src/attrib.c:1261
+#, fuzzy, c-format
+msgid   "#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"
+msgstr  "#  x_headers=DÝZGE (ekstra baþlýk dosyasý, örn. ~/.tin/extra-headers)\n"
 
-#.
-#. * TODO: add to the right rule, give better explanation, -> lang.c
-#.
-#: src/filter.c:597 src/filter.c:605
-msgid	"Removed from the previous rule: "
-msgstr	"Önceki kuraldan kaldýrýldý: "
-
-#: src/keymap.c:271
-msgid	"NULL"
-msgstr	""
+#: src/attrib.c:1262
+#, 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:1263
+#, 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:1264
+#, fuzzy, c-format
+msgid   "############################################################################\n"
+msgstr  "############################################################################\n"
+
+#: src/cook.c:625
+msgid   "(unknown)"
+msgstr  "(bilinmiyor)"
+
+#: src/keymap.c:277
+msgid   "NULL"
+msgstr  ""
 
 #: src/lang.c:42
 #, fuzzy
-msgid	"1 Response"
-msgstr	"1 Yanýt"
+msgid   "1 Response"
+msgstr  "1 Yanýt"
 
 #: src/lang.c:46
 #, fuzzy, c-format
-msgid	"\n"
-	"%s contains no newsgroups. Exiting."
-msgstr	"\n"
-	"%s haber gruplarýný içermez. Çýkýyor."
+msgid   "\n"
+        "%s contains no newsgroups. Exiting."
+msgstr  "\n"
+        "%s haber gruplarýný içermez. Çýkýyor."
 
 #: src/lang.c:47
-msgid	"all "
-msgstr	"tümü"
+msgid   "all "
+msgstr  "tümü"
 
 #: src/lang.c:48
-msgid	"All groups"
-msgstr	"Tüm gruplar"
+msgid   "All groups"
+msgstr  "Tüm gruplar"
 
 #: src/lang.c:49
 #, fuzzy, c-format
-msgid	"File %s exists. %s=append, %s=overwrite, %s=quit: "
-msgstr	"%s dosyasý var. %s=ekle, %s=üstüne yazý., %s=çýk: "
+msgid   "File %s exists. %s=append, %s=overwrite, %s=quit: "
+msgstr  "%s dosyasý var. %s=ekle, %s=üstüne yazý., %s=çýk: "
 
 #: src/lang.c:50
-msgid	"Article cancelled (deleted)."
-msgstr	"Makale iptal edildi (silinmiþ)."
-
-#: src/lang.c:51
-msgid	"Article cannot be cancelled (deleted)."
-msgstr	"Makale iptal edilemedi (silinemedi)."
+msgid   "Article cancelled (deleted)."
+msgstr  "Makale iptal edildi (silinmiþ)."
 
 #: src/lang.c:52
-msgid	"Article deleted."
-msgstr	"Makale silindi."
-
-#: src/lang.c:53
-#, fuzzy, c-format
-msgid	"\n"
-	"Your article:\n"
-	"  \"%s\"\n"
-	"will be posted to the following %s:\n"
-msgstr	"\n"
-	"Makaleniz:\n"
-	"  \"%s\"\n"
-	"buna gönderilecektir %s:\n"
+msgid   "Article cannot be cancelled (deleted)."
+msgstr  "Makale iptal edilemedi (silinemedi)."
 
 #: src/lang.c:54
-msgid	"Article not posted!"
-msgstr	"Makale gönderilmedi!"
+msgid   "Article deleted."
+msgstr  "Makale silindi."
 
 #: src/lang.c:55
-msgid	"Article not saved"
-msgstr	"Makale kaydedilmedi"
+#, fuzzy, c-format
+msgid   "\n"
+        "Your article:\n"
+        "  \"%s\"\n"
+        "will be posted to the following %s:\n"
+msgstr  "\n"
+        "Makaleniz:\n"
+        "  \"%s\"\n"
+        "buna gönderilecektir %s:\n"
 
 #: src/lang.c:56
-#, fuzzy
-msgid	"Article Level Commands"
-msgstr	"Makale Düzey Komutlarý"
+msgid   "Article not posted!"
+msgstr  "Makale gönderilmedi!"
 
 #: src/lang.c:57
-msgid	"Article has no parent"
-msgstr	"Makalenin üstü yok"
+msgid   "Article not saved"
+msgstr  "Makale kaydedilmedi"
 
 #: src/lang.c:58
 #, fuzzy
-msgid	"Parent article has been killed"
-msgstr	"Ana makale öldürüldü"
+msgid   "Article Level Commands"
+msgstr  "Makale Düzey Komutlarý"
 
 #: src/lang.c:59
-#, fuzzy
-msgid	"Parent article is unavailable"
-msgstr	"Ana makale kullanlamýyor."
+msgid   "Article has no parent"
+msgstr  "Makalenin üstü yok"
 
 #: src/lang.c:60
-#, c-format
-msgid	"Article posted: %s"
-msgstr	"Makale gönderildi: %s"
+#, fuzzy
+msgid   "Parent article has been killed"
+msgstr  "Ana makale öldürüldü"
 
 #: src/lang.c:61
-#, c-format
-msgid	"Article rejected (saved to %s)"
-msgstr	"Makale reddedildi (%s dosyasýna kaydedildi)"
+#, fuzzy
+msgid   "Parent article is unavailable"
+msgstr  "Ana makale kullanlamýyor."
 
 #: src/lang.c:62
-#, fuzzy, c-format
-msgid	"%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: "
-msgstr	"%s=makale, %s=parçacýk, %s=otomatik, %s=kalýp, %s=imlenmiþ makaleler, %s=çýk: "
+#, c-format
+msgid   "Article posted: %s"
+msgstr  "Makale gönderildi: %s"
 
 #: src/lang.c:63
-#, fuzzy
-msgid	"Article unavailable"
-msgstr	"Makale kullanýlamýyor."
+#, c-format
+msgid   "Article rejected (saved to %s)"
+msgstr  "Makale reddedildi (%s dosyasýna kaydedildi)"
 
 #: src/lang.c:64
-msgid	"Article undeleted."
-msgstr	"Makale silinmeden geri alýndý."
+#, fuzzy, c-format
+msgid   "%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: "
+msgstr  "%s=makale, %s=parçacýk, %s=otomatik, %s=kalýp, %s=imlenmiþ makaleler, %s=çýk: "
+
+#: src/lang.c:65
+#, fuzzy
+msgid   "Article unavailable"
+msgstr  "Makale kullanýlamýyor."
 
 #: src/lang.c:66
-msgid	"articles"
-msgstr	"makaleler"
+msgid   "Article undeleted."
+msgstr  "Makale silinmeden geri alýndý."
 
 #: src/lang.c:67
-#, fuzzy
-msgid	"This is a repost of the following article:"
-msgstr	"Bu dosyanýn yeniden gönderimi dieðildir:"
-
-#: src/lang.c:68
-msgid	"article"
-msgstr	"makale"
+#, fuzzy, c-format
+msgid   "Article %4d of %4d"
+msgstr  "Makale %4d of %4d"
 
 #: src/lang.c:69
-msgid	"Article"
-msgstr	"Makale"
+msgid   "articles"
+msgstr  "makaleler"
 
 #: src/lang.c:70
-#, c-format
-msgid	"-- %d %s mailed --"
-msgstr	"-- %d %s postalandý --"
+#, fuzzy
+msgid   "This is a repost of the following article:"
+msgstr  "Bu dosyanýn yeniden gönderimi dieðildir:"
 
 #: src/lang.c:71
-#, c-format
-msgid	" at %s"
-msgstr	" %s de"
+msgid   "article"
+msgstr  "makale"
 
 #: src/lang.c:72
-#, fuzzy, c-format
-msgid	"%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
-msgstr	"%*s[-- %s/%s, kodluyor %s%s%s, %d satýr%s%s --]\n"
+msgid   "Article"
+msgstr  "Makale"
 
 #: src/lang.c:73
-msgid	", charset: "
-msgstr	""
+#, c-format
+msgid   "-- %d %s mailed --"
+msgstr  "-- %d %s postalandý --"
 
 #: src/lang.c:74
 #, c-format
-msgid	"%*s[-- Description: %s --]\n"
-msgstr	"%*s[-- Taným: %s --]\n"
+msgid   " at %s"
+msgstr  " %s de"
 
 #: src/lang.c:75
-#, c-format
-msgid	"%d Authentication failed"
-msgstr	"%d Kimlik denetimi baþarýsýz"
+#, fuzzy, c-format
+msgid   "%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n"
+msgstr  "%*s[-- %s/%s, kodluyor %s%s%s, %d satýr%s%s --]\n"
 
 #: src/lang.c:76
-#, fuzzy
-msgid	"Server expects authentication.\n"
-msgstr	"Sunucu doðrulama bekliyor.\n"
+msgid   ", charset: "
+msgstr  ""
 
 #: src/lang.c:77
-msgid	"    Please enter password: "
-msgstr	"    Lütfen parola girin: "
+#, c-format
+msgid   "%*s[-- charset %s not supported --]\n"
+msgstr  ""
 
 #: src/lang.c:78
-msgid	"    Please enter username: "
-msgstr	"    Lütfen kullanýcý adý girin: "
+#, c-format
+msgid   "%*s[-- Description: %s --]\n"
+msgstr  "%*s[-- Taným: %s --]\n"
 
 #: src/lang.c:79
 #, fuzzy, c-format
-msgid	"Author search backwards [%s]> "
-msgstr	"Yazar geriye doðru arýyor[%s]> "
+msgid   "%d lines"
+msgstr  "Çizgiler"
 
 #: src/lang.c:80
-#, fuzzy, c-format
-msgid	"Author search forwards [%s]> "
-msgstr	"Yazar ileriye doðru arýyor [%s]> "
+msgid   "Attachment Menu"
+msgstr  ""
 
 #: src/lang.c:81
-#, fuzzy, c-format
-msgid	"Authorized for user: %s\n"
-msgstr	"Kullanýcý için yetkilendirlmiþ: %s\n"
+#, fuzzy
+msgid   "Attachment Menu Commands"
+msgstr  "Makale Düzey Komutlarý"
 
 #: src/lang.c:82
-#, c-format
-msgid	"Authorization failed for user: %s\n"
-msgstr	"Kullanýcý için yetkilendirme baþarýsýz: %s\n"
+#, fuzzy
+msgid   "<no name>"
+msgstr  "hiçbiri"
 
 #: src/lang.c:83
 #, fuzzy, c-format
-msgid	"\n"
-	"Autosubscribed to %s"
-msgstr	"\n"
-	"Otomatik abone %s"
+msgid   "Attachment saved successfully. (%s)"
+msgstr  "newsrc dosyasý baþarýyla kaydedildi.\n"
 
 #: src/lang.c:84
-#, fuzzy
-msgid	"Autosubscribing groups...\n"
-msgstr	"Gruplar otomatik abone ediliyor...\n"
+#, fuzzy, c-format
+msgid   "%d of %d attachments saved successfully."
+msgstr  "newsrc dosyasý baþarýyla kaydedildi.\n"
 
 #: src/lang.c:85
-#, c-format
-msgid	"Autoselecting articles (use '%s' to see all unread) ..."
-msgstr	"Makaleler otomatik seçiliyor (tüm okunmamýþlarý görmek için '%s' kullanýn) ..."
+#, fuzzy
+msgid   "Select attachment> "
+msgstr  "Makale seç> "
+
+#: src/lang.c:86
+#, fuzzy
+msgid   "Tagged attachment"
+msgstr  "Makale seç> "
 
 #: src/lang.c:87
-#, c-format
-msgid	"Active file corrupt - %s"
-msgstr	"Aktif dosya bozuk - %s"
+#, fuzzy, c-format
+msgid   "%d attachments tagged"
+msgstr  "Makale seç> "
 
 #: src/lang.c:88
-#, fuzzy, c-format
-msgid	"Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
-msgstr	"Gönderilecek dosyada hatalar/uyarýlar çýktý. %s=çýk, %s=Menü, %s=düzelt: "
+#, fuzzy
+msgid   "Untagged attachment"
+msgstr  "Makale seç> "
 
 #: src/lang.c:89
-#, c-format
-msgid	"Unrecognized attribute: %s"
-msgstr	"Tanýnmayan öznitelik: %s"
+#, fuzzy
+msgid   "Attributes Menu Commands"
+msgstr  "Makale Düzey Komutlarý"
 
-#: src/lang.c:90
+#: src/lang.c:91
 #, c-format
-msgid	"Bad command. Type '%s' for help."
-msgstr	"Bozuk komut. Yardým için '%s' yazýn."
+msgid   "%d Authentication failed"
+msgstr  "%d Kimlik denetimi baþarýsýz"
 
 #: src/lang.c:92
-#, fuzzy
-msgid	"Base article"
-msgstr	"Temel makale"
+#, fuzzy, c-format
+msgid   "NNTP authorization password not found for %s"
+msgstr  "NNTP yetki þifresi %s için bulunamadý"
 
 #: src/lang.c:93
 #, fuzzy
-msgid	"Base article range"
-msgstr	"Temel makale aralýðý"
+msgid   "Server expects authentication.\n"
+msgstr  "Sunucu doðrulama bekliyor.\n"
 
 #: src/lang.c:94
-#, fuzzy, c-format
-msgid	"%s: Updating of index files not supported\n"
-msgstr	"%s: Desteklenmeyen dizin dosyalarý güncelleniyor\n"
+msgid   "    Please enter password: "
+msgstr  "    Lütfen parola girin: "
 
 #: src/lang.c:95
-msgid	"*** Beginning of article ***"
-msgstr	"*** Makalenin baþý ***"
+msgid   "    Please enter username: "
+msgstr  "    Lütfen kullanýcý adý girin: "
 
-#: src/lang.c:97
+#: src/lang.c:96
 #, fuzzy, c-format
-msgid	"Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
-msgstr	"Dosyayý Ýptal et(sil) veya dosyanýn yerini al(üstüne yaz)[%%s]? (%s/%s/%s): "
+msgid   "Authorized for user: %s\n"
+msgstr  "Kullanýcý için yetkilendirlmiþ: %s\n"
+
+#: src/lang.c:97
+#, c-format
+msgid   "Authorization failed for user: %s\n"
+msgstr  "Kullanýcý için yetkilendirme baþarýsýz: %s\n"
 
-#: src/lang.c:98
-msgid	"Cancelling article..."
-msgstr	"Makale iptal ediliyor..."
+#: src/lang.c:99
+#, fuzzy, c-format
+msgid   "Author search backwards [%s]> "
+msgstr  "Yazar geriye doðru arýyor[%s]> "
 
 #: src/lang.c:100
 #, fuzzy, c-format
-msgid	"Cannot create %s"
-msgstr	"Yaratýlmaýyor %s"
+msgid   "Author search forwards [%s]> "
+msgstr  "Yazar ileriye doðru arýyor [%s]> "
 
 #: src/lang.c:101
 #, fuzzy, c-format
-msgid	"Can't find base article %d"
-msgstr	"Temel makale bulunamýyor %d"
+msgid   "\n"
+        "Autosubscribed to %s"
+msgstr  "\n"
+        "Otomatik abone %s"
 
 #: src/lang.c:102
-#, fuzzy, c-format
-msgid	"Can't open %s"
-msgstr	"Açýlamýyor %s"
+#, fuzzy
+msgid   "Autosubscribing groups...\n"
+msgstr  "Gruplar otomatik abone ediliyor...\n"
 
 #: src/lang.c:103
-#, fuzzy, c-format
-msgid	"Couldn't open %s for saving"
-msgstr	"Kaydetmek için %s açýlmadý"
-
-#: src/lang.c:104
-msgid	"*** Posting not allowed ***"
-msgstr	"*** Gönderim izni yok ***"
+#, c-format
+msgid   "Autoselecting articles (use '%s' to see all unread) ..."
+msgstr  "Makaleler otomatik seçiliyor (tüm okunmamýþlarý görmek için '%s' kullanýn) ..."
 
 #: src/lang.c:105
 #, c-format
-msgid	"Posting is not allowed to %s"
-msgstr	"%s için gönderim izni yok"
+msgid   "Active file corrupt - %s"
+msgstr  "Aktif dosya bozuk - %s"
 
 #: src/lang.c:106
 #, fuzzy, c-format
-msgid	"Can't retrieve %s"
-msgstr	"Alýnamýyor %s"
+msgid   "Article to be posted resulted in errors/warnings. %s=quit, %s=Menu, %s=edit: "
+msgstr  "Gönderilecek dosyada hatalar/uyarýlar çýktý. %s=çýk, %s=Menü, %s=düzelt: "
 
 #: src/lang.c:107
 #, c-format
-msgid	"%s is a directory"
-msgstr	"%s bir dizindir"
+msgid   "Unrecognized attribute: %s"
+msgstr  "Tanýnmayan öznitelik: %s"
 
 #: src/lang.c:108
-msgid	"Catchup"
-msgstr	""
-
-#: src/lang.c:109
 #, c-format
-msgid	"Catchup %s..."
-msgstr	""
+msgid   "Bad command. Type '%s' for help."
+msgstr  "Bozuk komut. Yardým için '%s' yazýn."
 
 #: src/lang.c:110
-msgid	"Catchup all groups entered during this session?"
-msgstr	""
+#, fuzzy
+msgid   "Base article"
+msgstr  "Temel makale"
 
 #: src/lang.c:111
 #, fuzzy
-msgid	"You have tagged articles in this group - catchup anyway?"
-msgstr	"Bu makalede imlenmiþ makaleler var - catchup anyway?"
+msgid   "Base article range"
+msgstr  "Temel makale aralýðý"
 
 #: src/lang.c:112
-#, c-format
-msgid	"%s %d %s in %lu seconds\n"
-msgstr	"%4$lu saniyede %1$s %2$d %3$s\n"
+#, fuzzy, c-format
+msgid   "%s: Updating of index files not supported\n"
+msgstr  "%s: Desteklenmeyen dizin dosyalarý güncelleniyor\n"
 
 #: src/lang.c:113
-msgid	"Caughtup"
-msgstr	""
+msgid   "*** Beginning of article ***"
+msgstr  "*** Makalenin baþý ***"
 
 #: src/lang.c:114
 #, fuzzy
-msgid	"Check Prepared Article"
-msgstr	"Hazýr Makaleyi Denetle"
-
-#: src/lang.c:115
-#, fuzzy
-msgid	"Checking for new groups... "
-msgstr	"Yeni gruplar denetleniyor... "
+msgid   "*** Beginning of page ***"
+msgstr  "*** Makalenin baþý ***"
 
 #: src/lang.c:116
-#, fuzzy
-msgid	"Checking for news..."
-msgstr	"Haberler denetleniyor..."
+#, fuzzy, c-format
+msgid   "Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): "
+msgstr  "Dosyayý Ýptal et(sil) veya dosyanýn yerini al(üstüne yaz)[%%s]? (%s/%s/%s): "
 
 #: src/lang.c:117
-#, fuzzy, c-format
-msgid	"Post-process %s=no, %s=yes, %s=shar, %s=quit: "
-msgstr	"Son-iþlem %s=hayýr, %s=evet, %s=ortak, %s=çýk: "
+msgid   "Cancelling article..."
+msgstr  "Makale iptal ediliyor..."
 
 #: src/lang.c:119
-#, fuzzy
-msgid	"ANSI color disabled"
-msgstr	"ANSI renk geçersiz"
+#, fuzzy, c-format
+msgid   "Cannot create %s"
+msgstr  "Yaratýlmaýyor %s"
 
 #: src/lang.c:120
-#, fuzzy
-msgid	"ANSI color enabled"
-msgstr	"ANSI renk geçerli"
+#, fuzzy, c-format
+msgid   "Can't find base article %d"
+msgstr  "Temel makale bulunamýyor %d"
+
+#: src/lang.c:121
+#, fuzzy, c-format
+msgid   "Can't open %s"
+msgstr  "Açýlamýyor %s"
 
 #: src/lang.c:122
-#, c-format
-msgid	"Command failed: %s"
-msgstr	"Komut baþarýsýz: %s"
+#, fuzzy, c-format
+msgid   "Couldn't open %s for saving"
+msgstr  "Kaydetmek için %s açýlmadý"
 
 #: src/lang.c:123
-msgid	"Mark not selected articles read?"
-msgstr	""
+msgid   "*** Posting not allowed ***"
+msgstr  "*** Gönderim izni yok ***"
 
 #: src/lang.c:124
-#, fuzzy, c-format
-msgid	"Connecting to %s..."
-msgstr	"Baðlanýyor %s..."
-
-#: src/lang.c:125
-msgid	"<CR>"
-msgstr	"<CR>"
+#, c-format
+msgid   "Posting is not allowed to %s"
+msgstr  "%s için gönderim izni yok"
 
 #: src/lang.c:126
-#, fuzzy
-msgid	"Creating active file for saved groups...\n"
-msgstr	"Kaydedilen kümeler için aktif dosya oluþturuyor...\n"
+#, fuzzy, c-format
+msgid   "Can't retrieve %s"
+msgstr  "Alýnamýyor %s"
 
-#: src/lang.c:127
-#, fuzzy
-msgid	"Creating newsrc file...\n"
-msgstr	"Newsrc dosyasý oluþturuluyor...\n"
+#: src/lang.c:128
+#, c-format
+msgid   "%s is a directory"
+msgstr  "%s bir dizindir"
 
-#: src/lang.c:129 src/lang.c:1150
-msgid	"Default"
-msgstr	"Öntanýmlý"
+#: src/lang.c:129
+msgid   "Catchup"
+msgstr  ""
 
 #: src/lang.c:130
-#, fuzzy
-msgid	"Delete saved files that have been post processed?"
-msgstr	"Son iþlenen kaydedilmiþ dosyalarý sil?"
+#, c-format
+msgid   "Catchup %s..."
+msgstr  ""
 
 #: src/lang.c:131
-msgid	"Deleting temporary files..."
-msgstr	"Geçici dosyalar siliniyor..."
+msgid   "Catchup all groups entered during this session?"
+msgstr  ""
+
+#: src/lang.c:132
+#, fuzzy
+msgid   "You have tagged articles in this group - catchup anyway?"
+msgstr  "Bu makalede imlenmiþ makaleler var - catchup anyway?"
 
 #: src/lang.c:133
-msgid	"*** End of article ***"
-msgstr	"*** Makalenin sonu ***"
+#, c-format
+msgid   "%s %d %s in %lu seconds\n"
+msgstr  "%4$lu saniyede %1$s %2$d %3$s\n"
 
 #: src/lang.c:134
-msgid	"*** End of articles ***"
-msgstr	"*** Makalelerin sonu ***"
+msgid   "Caughtup"
+msgstr  ""
 
 #: src/lang.c:135
 #, fuzzy
-msgid	"*** End of groups ***"
-msgstr	"*** Kümelerin sonu ***"
+msgid   "Check Prepared Article"
+msgstr  "Hazýr Makaleyi Denetle"
 
 #: src/lang.c:136
 #, fuzzy
-msgid	"*** End of thread ***"
-msgstr	"*** Parçacýklarýn sonu ***"
+msgid   "Checking for new groups... "
+msgstr  "Yeni gruplar denetleniyor... "
 
 #: src/lang.c:137
 #, fuzzy
-msgid	"Enter limit of articles to get> "
-msgstr	"Alýnacak makalelerin limitini girin> "
+msgid   "Checking for news..."
+msgstr  "Haberler denetleniyor..."
 
 #: src/lang.c:138
-#, fuzzy
-msgid	"Enter Message-ID to go to> "
-msgstr	"Gitmek için kimlik mesajýný girin> "
-
-#: src/lang.c:139
-#, fuzzy
-msgid	" and enter next unread thread"
-msgstr	" ve sonraki okuma parçacýðýný yazýn"
+#, fuzzy, c-format
+msgid   "Post-process %s=no, %s=yes, %s=shar, %s=quit: "
+msgstr  "Son-iþlem %s=hayýr, %s=evet, %s=ortak, %s=çýk: "
 
 #: src/lang.c:140
 #, fuzzy
-msgid	" and enter next unread group"
-msgstr	" ve sonraki okuma kümesini yazýn"
+msgid   "ANSI color disabled"
+msgstr  "ANSI renk geçersiz"
 
 #: src/lang.c:141
 #, fuzzy
-msgid	"Enter option number> "
-msgstr	"Seçenek numarasýný yazýn> "
-
-#: src/lang.c:142
-#, fuzzy, c-format
-msgid	"Enter range [%s]> "
-msgstr	"Aralýðý yazýn [%s]> "
+msgid   "ANSI color enabled"
+msgstr  "ANSI renk geçerli"
 
 #: src/lang.c:143
-#, fuzzy
-msgid	"\n"
-	"Warning: Approved: header used.\n"
-msgstr	"\n"
-	"Uyarý: Onaylandý: baþlýk kullanýldý.\n"
-
-#: src/lang.c:145
-#, fuzzy
-msgid	"\n"
-	"Error: Bad address in Approved: header.\n"
-msgstr	"\n"
-	"Hata: Onaylananda bozuk adres: baþlýk.\n"
+#, c-format
+msgid   "Command failed: %s"
+msgstr  "Komut baþarýsýz: %s"
+
+#: src/lang.c:144
+msgid   "Mark not selected articles read?"
+msgstr  ""
 
 #: src/lang.c:146
-#, fuzzy
-msgid	"\n"
-	"Error: Bad address in From: header.\n"
-msgstr	"\n"
-	"Hata: Gönderende bozuk adres: baþlýk.\n"
-
-#: src/lang.c:147
-#, fuzzy
-msgid	"\n"
-	"Error: Bad address in Reply-To: header.\n"
-msgstr	"\n"
-	"Hata: Yanýtta bozuk adres: baþlýk\n"
+#, fuzzy, c-format
+msgid   "Connecting to %s..."
+msgstr  "Baðlanýyor %s..."
 
 #: src/lang.c:148
-#, fuzzy
-msgid	"\n"
-	"Error: Bad FQDN in Message-ID: header.\n"
-msgstr	"\n"
-	"Hata: Kimilk mesajýnda bozuk FQDN: baþlýk.\n"
+msgid   "<CR>"
+msgstr  "<CR>"
 
 #: src/lang.c:149
-#, fuzzy, c-format
-msgid	"Can't unlock %s"
-msgstr	"Açýlamýyor %s"
+#, fuzzy
+msgid   "Creating active file for saved groups...\n"
+msgstr  "Kaydedilen kümeler için aktif dosya oluþturuyor...\n"
 
-#: src/lang.c:151
-#, fuzzy, c-format
-msgid	"Corrupted file %s"
-msgstr	"Virüslü dosya %s"
+#: src/lang.c:150
+#, fuzzy
+msgid   "Creating newsrc file...\n"
+msgstr  "Newsrc dosyasý oluþturuluyor...\n"
 
-#: src/lang.c:152
-#, fuzzy, c-format
-msgid	"Couldn't dotlock %s - article not appended!"
-msgstr	"Açýlamadý %s - makale eklenmedi!"
+#: src/lang.c:152 src/lang.c:1296
+msgid   "Default"
+msgstr  "Öntanýmlý"
 
 #: src/lang.c:153
-#, fuzzy, c-format
-msgid	"Couldn't lock %s - article not appended!"
-msgstr	"Kapatýlamadý %s - makale eklenmedi!"
+#, fuzzy
+msgid   "Delete saved files that have been post processed?"
+msgstr  "Son iþlenen kaydedilmiþ dosyalarý sil?"
 
-#: src/lang.c:155
-msgid	"Internal error in GNKSA routine - send bug report.\n"
-msgstr	"GNKSA yordamýnda iç hata - hata raporu gönder.\n"
+#: src/lang.c:154
+msgid   "Deleting temporary files..."
+msgstr  "Geçici dosyalar siliniyor..."
 
 #: src/lang.c:156
-#, fuzzy
-msgid	"Left angle bracket missing in route address.\n"
-msgstr	"Yordam adresinde sol açýlý ayraç eksik.\n"
+msgid   "*** End of article ***"
+msgstr  "*** Makalenin sonu ***"
 
 #: src/lang.c:157
-msgid	"Left parenthesis missing in old-style address.\n"
-msgstr	"Eski-biçemli adreste sol ayraç eksik.\n"
+msgid   "*** End of articles ***"
+msgstr  "*** Makalelerin sonu ***"
 
 #: src/lang.c:158
-msgid	"Right parenthesis missing in old-style address.\n"
-msgstr	"Eski-biçemli adreste sað ayraç eksik.\n"
+#, fuzzy
+msgid   "*** End of attachments ***"
+msgstr  "*** Makalelerin sonu ***"
 
 #: src/lang.c:159
-msgid	"At-sign missing in mail address.\n"
-msgstr	"Posta adresinde @ iþareti eksik.\n"
+#, fuzzy
+msgid   "*** End of groups ***"
+msgstr  "*** Kümelerin sonu ***"
 
 #: src/lang.c:160
 #, fuzzy
-msgid	"Single component FQDN is not allowed. Add your domain.\n"
-msgstr	"FQDN tekli bileþenine izin verilmedi. Taným kümesi ekleyin.\n"
+msgid   "*** End of page ***"
+msgstr  "*** Makalenin sonu ***"
 
 #: src/lang.c:161
 #, fuzzy
-msgid	"Invalid domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Geçersiz etki alaný. Üst düzey etki alaný varsa hata raporu gönderin.\n"
-	"Kullan . munged adresler için geçersiz üst düzey etki alaný.\n"
+msgid   "*** End of scopes ***"
+msgstr  "*** Kümelerin sonu ***"
 
 #: src/lang.c:162
 #, fuzzy
-msgid	"Illegal domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Kuraldýþý etki alaný. Üst düzey etki alaný varsa hata raporu gönderin.\n"
-	"Kuulan . munged adresler için geçersiz üst düzey etki alaný.\n"
+msgid   "*** End of thread ***"
+msgstr  "*** Parçacýklarýn sonu ***"
 
 #: src/lang.c:163
 #, fuzzy
-msgid	"Unknown domain. Send bug report if your top level domain really exists.\n"
-	"Use .invalid as top level domain for munged addresses.\n"
-msgstr	"Bilinmeyen etki alaný. Üst düzey etki alalný varsa hata raporu gönderin.\n"
-	"Kullan. munged adresler geçersiz üst düzey etki alaný.\n"
+msgid   "*** End of URLs ***"
+msgstr  "*** Kümelerin sonu ***"
 
 #: src/lang.c:164
-msgid	"Illegal character in FQDN.\n"
-msgstr	"FQDN'de kuraldýþý karakter.\n"
+#, fuzzy
+msgid   "Enter limit of articles to get> "
+msgstr  "Alýnacak makalelerin limitini girin> "
 
 #: src/lang.c:165
 #, fuzzy
-msgid	"Zero length FQDN component not allowed.\n"
-msgstr	"Sýfýr unzunluklu FQDN bileþenine izin verilmedi.\n"
+msgid   "Enter Message-ID to go to> "
+msgstr  "Gitmek için kimlik mesajýný girin> "
 
 #: src/lang.c:166
 #, fuzzy
-msgid	"FQDN component exceeds maximum allowed length (63 chars).\n"
-msgstr	"FQDN bileþeni izin verilen maximum uzunluðu aþýyor.(63 kar.).\n"
+msgid   " and enter next unread thread"
+msgstr  " ve sonraki okuma parçacýðýný yazýn"
 
 #: src/lang.c:167
 #, fuzzy
-msgid	"FQDN component may not start or end with hyphen.\n"
-msgstr	"FQDN bileþeni tire ile baþlamayabilir veya bitmeyebilir.\n"
+msgid   " and enter next unread article"
+msgstr  " ve sonraki okuma parçacýðýný yazýn"
 
 #: src/lang.c:168
 #, fuzzy
-msgid	"FQDN component may not start with digit.\n"
-msgstr	"FQDN bileþeni basamak ile baþlamayabilir.\n"
+msgid   " and enter next unread group"
+msgstr  " ve sonraki okuma kümesini yazýn"
 
 #: src/lang.c:169
 #, fuzzy
-msgid	"Domain literal has impossible numeric value.\n"
-msgstr	"Deðiþmez etki alaný imkansýz sayýsal deðere sahip.\n"
+msgid   "Enter option number> "
+msgstr  "Seçenek numarasýný yazýn> "
 
 #: src/lang.c:170
-#, fuzzy
-msgid	"Domain literal is for private use only and not allowed for global use.\n"
-msgstr	"Deðiþmez etki alaný sadece özel kullaným içindir ve küresel kullanýma izin "
-	"verilmez.\n"
+#, fuzzy, c-format
+msgid   "Enter range [%s]> "
+msgstr  "Aralýðý yazýn [%s]> "
 
 #: src/lang.c:171
 #, fuzzy
-msgid	"Right bracket missing in domain literal.\n"
-msgstr	"Deðiþmez etki alanýnda sað köþeli ayraç eksik.\n"
-
-#: src/lang.c:172
-msgid	"Missing localpart of mail address.\n"
-msgstr	"Posta adresinin yerel kýsmý eksik.\n"
+msgid   "\n"
+        "Warning: Approved: header used.\n"
+msgstr  "\n"
+        "Uyarý: Onaylandý: baþlýk kullanýldý.\n"
 
 #: src/lang.c:173
-msgid	"Illegal character in localpart of mail address.\n"
-msgstr	"Posta adresinin yerel kýsmýnda kuraldýþý karakter.\n"
+#, fuzzy
+msgid   "\n"
+        "Error: Bad address in Approved: header.\n"
+msgstr  "\n"
+        "Hata: Onaylananda bozuk adres: baþlýk.\n"
 
 #: src/lang.c:174
 #, fuzzy
-msgid	"Zero length localpart component not allowed.\n"
-msgstr	"Sýfýr uzunluklu yerel kýsým bileþenine izin verilmedi.\n"
+msgid   "\n"
+        "Error: Bad address in From: header.\n"
+msgstr  "\n"
+        "Hata: Gönderende bozuk adres: baþlýk.\n"
 
 #: src/lang.c:175
 #, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
-msgstr	"Gerçek isimde kuraldýþý karakter.\n"
-	"Ýmlenmemiþ sözcükler yordam adreslerinde '!()<>@,;:\\.[]' içermeyebilir.\n"
+msgid   "\n"
+        "Error: Bad address in Reply-To: header.\n"
+msgstr  "\n"
+        "Hata: Yanýtta bozuk adres: baþlýk\n"
 
 #: src/lang.c:176
 #, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Quoted words may not contain '()<>\\'.\n"
-msgstr	"Gerçek isimde kuraldýþý karakter.\n"
-	"Ýmlenmil sözcükler '()<>\\' içermeyebilir.\n"
-
-#: src/lang.c:177
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
-msgstr	"Gerçek isimde kuraldýþý karakter.\n"
-	"Kodlanmýþ sözcükler parametrelerde '!()<>@,;:\"\\.[]/= içermeyebilir.\n"
+msgid   "\n"
+        "Error: Bad FQDN in Message-ID: header.\n"
+msgstr  "\n"
+        "Hata: Kimilk mesajýnda bozuk FQDN: baþlýk.\n"
 
 #: src/lang.c:178
-#, fuzzy
-msgid	"Bad syntax in encoded word used in realname.\n"
-msgstr	"Gerçek isimde kullanýlan kodlanmýþ sözkükte bozuk sözdizimi.\n"
+#, fuzzy, c-format
+msgid   "Can't unlock %s"
+msgstr  "Açýlamýyor %s"
 
 #: src/lang.c:179
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Unquoted words may not contain '()<>\\' in old-style addresses.\n"
-msgstr	"Gerçek isimde kuraldýþý karakter.\n"
-	"Ýmlenmemiþ sözcükler eski-biçemli adreslerde '()<>\\' içermeyebilir.\n"
+#, fuzzy, c-format
+msgid   "Couldn't dotlock %s - article not appended!"
+msgstr  "Açýlamadý %s - makale eklenmedi!"
 
 #: src/lang.c:180
-#, fuzzy
-msgid	"Illegal character in realname.\n"
-	"Control characters and unencoded 8bit characters > 127 are not allowed.\n"
-msgstr	"Gerçek isimde kuraldýþý karakter. Denetim karakterlerine ve kodlanmamýþ 8bit "
-	"karakterlerine > 127 izin verilmedi.\n"
-
-#: src/lang.c:181
-#, fuzzy
-msgid	"\n"
-	"Error: No blank line found after header.\n"
-msgstr	"\n"
-	"Hata: Baþlýktan sonra boþ satýr bulunamadý.\n"
+#, fuzzy, c-format
+msgid   "Couldn't lock %s - article not appended!"
+msgstr  "Kapatýlamadý %s - makale eklenmedi!"
 
-#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:183
+#, fuzzy, c-format
+msgid   "Corrupted file %s"
+msgstr  "Virüslü dosya %s"
+
+#: src/lang.c:185
+#, fuzzy
+msgid   "\n"
+        "Error: Followup-To \"poster\" and a newsgroup is not allowed!\n"
+msgstr  "\n"
+        "Hata: Birden fazla haber grubu için Takip-Et ayarlandý!\n"
+
+#: src/lang.c:186
+msgid   "Internal error in GNKSA routine - send bug report.\n"
+msgstr  "GNKSA yordamýnda iç hata - hata raporu gönder.\n"
+
+#: src/lang.c:187
 #, fuzzy
-msgid	"\n"
-	"Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
-	"       US-ASCII  - please change this setting to a suitable value for\n"
-	"       your language  using the  M)enu of configurable  options or by\n"
-	"       editing tinrc.\n"
-msgstr	"\n"
-	"Hata: Gönderim ASCII olmayan karakterler içeriyor ama MM_CHARSET ayarlandý.\n"
-	" US-ASCII - lütfen bu ayarlarý uygun deðerlere dönüþtürün\n"
-	" diliniz için yapýlandýrabilen seçenekler M)enüsünü kullanarak ya da\n"
-	" tinric düzenleyerek.\n"
+msgid   "Left angle bracket missing in route address.\n"
+msgstr  "Yordam adresinde sol açýlý ayraç eksik.\n"
 
 #: src/lang.c:188
+msgid   "Left parenthesis missing in old-style address.\n"
+msgstr  "Eski-biçemli adreste sol ayraç eksik.\n"
+
+#: src/lang.c:189
+msgid   "Right parenthesis missing in old-style address.\n"
+msgstr  "Eski-biçemli adreste sað ayraç eksik.\n"
+
+#: src/lang.c:190
+msgid   "At-sign missing in mail address.\n"
+msgstr  "Posta adresinde @ iþareti eksik.\n"
+
+#: src/lang.c:191
+#, fuzzy
+msgid   "Single component FQDN is not allowed. Add your domain.\n"
+msgstr  "FQDN tekli bileþenine izin verilmedi. Taným kümesi ekleyin.\n"
+
+#: src/lang.c:192
+#, fuzzy
+msgid   "Invalid domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Geçersiz etki alaný. Üst düzey etki alaný varsa hata raporu gönderin.\n"
+        "Kullan . munged adresler için geçersiz üst düzey etki alaný.\n"
+
+#: src/lang.c:193
 #, fuzzy
-msgid	"\n"
-	"Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
-	"       for news  messages  is set  to \"7bit\"  -  please change this\n"
-	"       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
-	"       is more common  in your part  of the world.  This can  be done\n"
-	"       using the M)enu of configurable options or by editing tinrc.\n"
-msgstr	"\n"
-	"Hata: Gönderim ASCIII olmayan karakterler içeriyor ama MIME kodlanýyor\n"
-	" haber iletileri için  \"7bit\" ayarlandý - lütfen deðiþtirin\n"
-	" ayarlarý \"8bit\" ya da  \"quoted-printable\" baðlý olarak\n"
-	" yaþadýðýnýz bölgede daha yaygýn olana. Bu yapýlabilir\n"
-	" yapýlandýrabilen seçenekler  M)enüsü kullanýlarak veya tinrc düzenlenerek.\n"
+msgid   "Illegal domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Kuraldýþý etki alaný. Üst düzey etki alaný varsa hata raporu gönderin.\n"
+        "Kuulan . munged adresler için geçersiz üst düzey etki alaný.\n"
 
 #: src/lang.c:194
 #, fuzzy
-msgid	"\n"
-	"Error: Article starts with blank line instead of header\n"
-msgstr	"\n"
-	"Hata: Makale baþlýk yerine boþ satýrla baþlýyor\n"
+msgid   "Unknown domain. Send bug report if your top level domain really exists.\n"
+        "Use .invalid as top level domain for munged addresses.\n"
+msgstr  "Bilinmeyen etki alaný. Üst düzey etki alalný varsa hata raporu gönderin.\n"
+        "Kullan. munged adresler geçersiz üst düzey etki alaný.\n"
 
 #: src/lang.c:195
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a colon after the header name:\n"
-	"%s\n"
-msgstr	"\n"
-	"Hata: Satýrdaki baþlýkta %d baþlýk isminden sonra iki nokta yok:\n"
-	"%s\n"
+msgid   "Illegal character in FQDN.\n"
+msgstr  "FQDN'de kuraldýþý karakter.\n"
 
 #: src/lang.c:196
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is empty.\n"
-msgstr	"\n"
-	"Hata: \"%s:\"satýrý boþ.\n"
+#, fuzzy
+msgid   "Zero length FQDN component not allowed.\n"
+msgstr  "Sýfýr unzunluklu FQDN bileþenine izin verilmedi.\n"
 
 #: src/lang.c:197
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is missing from the article header.\n"
-msgstr	"\n"
-	"Hata: Makale baþlýðýnda \"%s:\" satýrý eksik.\n"
+#, fuzzy
+msgid   "FQDN component exceeds maximum allowed length (63 chars).\n"
+msgstr  "FQDN bileþeni izin verilen maximum uzunluðu aþýyor.(63 kar.).\n"
 
 #: src/lang.c:198
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: Header on line %d does not have a space after the colon:\n"
-	"%s\n"
-msgstr	"\n"
-	"Hata: %d satýrýndaki baþlýkta iki noktadan sonra boþluk yok:\n"
-	"%s\n"
+#, fuzzy
+msgid   "FQDN component may not start or end with hyphen.\n"
+msgstr  "FQDN bileþeni tire ile baþlamayabilir veya bitmeyebilir.\n"
 
 #: src/lang.c:199
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: There are multiple (%d) \"%s:\" lines in the header.\n"
-msgstr	"\n"
-	"Hata: Baþlýkta (%d) \"%s:\" çoklu satýlrarý var.\n"
+#, fuzzy
+msgid   "FQDN component may not start with digit.\n"
+msgstr  "FQDN bileþeni basamak ile baþlamayabilir.\n"
 
 #: src/lang.c:200
-#, fuzzy, c-format
-msgid	"Insecure permissions of %s (%o)"
-msgstr	"Güvenli olmayan yetkiler %s (%o)"
+#, fuzzy
+msgid   "Domain literal has impossible numeric value.\n"
+msgstr  "Deðiþmez etki alaný imkansýz sayýsal deðere sahip.\n"
 
 #: src/lang.c:201
-#, fuzzy, c-format
-msgid	"Invalid response to GROUP command, %s"
-msgstr	"KÜME komutuna geçersiz yanýt.%s"
+#, fuzzy
+msgid   "Domain literal is for private use only and not allowed for global use.\n"
+msgstr  "Deðiþmez etki alaný sadece özel kullaným içindir ve küresel kullanýma izin "
+        "verilmez.\n"
+
+#: src/lang.c:202
+#, fuzzy
+msgid   "Right bracket missing in domain literal.\n"
+msgstr  "Deðiþmez etki alanýnda sað köþeli ayraç eksik.\n"
 
 #: src/lang.c:203
-#, fuzzy, c-format
-msgid	"MIME parse error: Unexpected end of %s/%s article"
-msgstr	"MIME ayrýþtýrma hatasý: Makale %s/%s için beklenmeyen son"
+msgid   "Missing localpart of mail address.\n"
+msgstr  "Posta adresinin yerel kýsmý eksik.\n"
 
 #: src/lang.c:204
-#, fuzzy
-msgid	"MIME parse error: Start boundary whilst reading headers"
-msgstr	"MIME ayrýþtýrma hatasý: Baþlýklarý okurken baþlatma sýnýrý"
+msgid   "Illegal character in localpart of mail address.\n"
+msgstr  "Posta adresinin yerel kýsmýnda kuraldýþý karakter.\n"
 
 #: src/lang.c:205
 #, fuzzy
-msgid	"Can't get a (fully-qualified) domain-name!"
-msgstr	"(Tam niletelendirilmiþ) etki alaný adý alýnamadý!"
+msgid   "Zero length localpart component not allowed.\n"
+msgstr  "Sýfýr uzunluklu yerel kýsým bileþenine izin verilmedi.\n"
 
 #: src/lang.c:206
-#, fuzzy, c-format
-msgid	"No permissions to go into %s\n"
-msgstr	"%s için gidiþ yetkisi yok\n"
+#, fuzzy
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '!()<>@,;:\\.[]' in route addresses.\n"
+msgstr  "Gerçek isimde kuraldýþý karakter.\n"
+        "Ýmlenmemiþ sözcükler yordam adreslerinde '!()<>@,;:\\.[]' içermeyebilir.\n"
 
 #: src/lang.c:207
 #, fuzzy
-msgid	"\n"
-	"Error: From: line missing.\n"
-msgstr	"\n"
-	"Hata: Baþlangýç:satýr eksik.\n"
+msgid   "Illegal character in realname.\n"
+        "Quoted words may not contain '()<>\\'.\n"
+msgstr  "Gerçek isimde kuraldýþý karakter.\n"
+        "Ýmlenmil sözcükler '()<>\\' içermeyebilir.\n"
 
 #: src/lang.c:208
-#, fuzzy, c-format
-msgid	"No read permissions for %s\n"
-msgstr	"%s için okuma yetkisi yok\n"
+#, fuzzy
+msgid   "Illegal character in realname.\n"
+        "Encoded words may not contain '!()<>@,;:\"\\.[]/=' in parameter.\n"
+msgstr  "Gerçek isimde kuraldýþý karakter.\n"
+        "Kodlanmýþ sözcükler parametrelerde '!()<>@,;:\"\\.[]/= içermeyebilir.\n"
 
 #: src/lang.c:209
-#, fuzzy, c-format
-msgid	"File %s does not exist\n"
-msgstr	"%s dosyasý yok\n"
+#, fuzzy
+msgid   "Bad syntax in encoded word used in realname.\n"
+msgstr  "Gerçek isimde kullanýlan kodlanmýþ sözkükte bozuk sözdizimi.\n"
 
 #: src/lang.c:210
-#, fuzzy, c-format
-msgid	"No write permissions for %s\n"
-msgstr	"%s için yazma yetkisi yok\n"
+#, fuzzy
+msgid   "Illegal character in realname.\n"
+        "Unquoted words may not contain '()<>\\' in old-style addresses.\n"
+msgstr  "Gerçek isimde kuraldýþý karakter.\n"
+        "Ýmlenmemiþ sözcükler eski-biçemli adreslerde '()<>\\' içermeyebilir.\n"
 
 #: src/lang.c:211
 #, fuzzy
-msgid	"Can't get user information (/etc/passwd missing?)"
-msgstr	"Kullanýcý bilgisi alýnamýyor(/etc/passwd kayýp?)"
+msgid   "Illegal character in realname.\n"
+        "Control characters and unencoded 8bit characters > 127 are not allowed.\n"
+msgstr  "Gerçek isimde kuraldýþý karakter. Denetim karakterlerine ve kodlanmamýþ 8bit "
+        "karakterlerine > 127 izin verilmedi.\n"
 
 #: src/lang.c:212
 #, fuzzy
-msgid	"errors"
-msgstr	"hatalar"
+msgid   "\n"
+        "Error: No blank line found after header.\n"
+msgstr  "\n"
+        "Hata: Baþlýktan sonra boþ satýr bulunamadý.\n"
 
 #: src/lang.c:213
-#, fuzzy, c-format
-msgid	"\n"
-	"Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
-msgstr	"\n"
-	"%d satýrýnda hata \"Sender:\" baþlýk için izin verilmedi (sizin için "
-	"eklenecek)\n"
-
-#: src/lang.c:214
-#, fuzzy, c-format
-msgid	"Server has non of the groups listed in %s"
-msgstr	"Sunucuda %s'de listelenen gruplarýn hiçbiri yok"
+#, c-format
+msgid   "\n"
+        "Error: Illegal formatted %s.\n"
+msgstr  ""
 
+#. TODO: fixme, US-ASCII is not the only 7bit charset we know about
 #: src/lang.c:215
 #, fuzzy
-msgid	"error"
-msgstr	"hata"
-
-#: src/lang.c:216
-#, fuzzy
-msgid	"Unknown display level"
-msgstr	"Bilinmeyen gösterim düzeyi"
-
-#: src/lang.c:217
-#, fuzzy
-msgid	"<ESC>"
-msgstr	"<ESC>"
+msgid   "\n"
+        "Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n"
+        "       US-ASCII  - please change this setting to a suitable value for\n"
+        "       your language  using the  M)enu of configurable  options or by\n"
+        "       editing tinrc.\n"
+msgstr  "\n"
+        "Hata: Gönderim ASCII olmayan karakterler içeriyor ama MM_CHARSET ayarlandý.\n"
+        " US-ASCII - lütfen bu ayarlarý uygun deðerlere dönüþtürün\n"
+        " diliniz için yapýlandýrabilen seçenekler M)enüsünü kullanarak ya da\n"
+        " tinric düzenleyerek.\n"
 
-#: src/lang.c:218
+#: src/lang.c:220
 #, fuzzy
-msgid	"Exiting..."
-msgstr	"Çýkýyor..."
+msgid   "\n"
+        "Error: Posting contains  non-ASCII characters  but the  MIME encoding\n"
+        "       for news  messages  is set  to \"7bit\"  -  please change this\n"
+        "       setting to \"8bit\" or \"quoted-printable\" depending  on what\n"
+        "       is more common  in your part  of the world.  This can  be done\n"
+        "       using the M)enu of configurable options or by editing tinrc.\n"
+msgstr  "\n"
+        "Hata: Gönderim ASCIII olmayan karakterler içeriyor ama MIME kodlanýyor\n"
+        " haber iletileri için  \"7bit\" ayarlandý - lütfen deðiþtirin\n"
+        " ayarlarý \"8bit\" ya da  \"quoted-printable\" baðlý olarak\n"
+        " yaþadýðýnýz bölgede daha yaygýn olana. Bu yapýlabilir\n"
+        " yapýlandýrabilen seçenekler  M)enüsü kullanýlarak veya tinrc düzenlenerek.\n"
 
-#: src/lang.c:219
+#: src/lang.c:226
 #, fuzzy
-msgid	"leaving external mail-reader"
-msgstr	"Dýþ posta-okuyucuyu býrakýyor"
+msgid   "\n"
+        "Error: Article starts with blank line instead of header\n"
+msgstr  "\n"
+        "Hata: Makale baþlýk yerine boþ satýrla baþlýyor\n"
 
-#: src/lang.c:220
+#: src/lang.c:227
 #, fuzzy, c-format
-msgid	"Extracting %s..."
-msgstr	"Ayýklýyor %s..."
+msgid   "\n"
+        "Error: Header on line %d does not have a colon after the header name:\n"
+        "%s\n"
+msgstr  "\n"
+        "Hata: Satýrdaki baþlýkta %d baþlýk isminden sonra iki nokta yok:\n"
+        "%s\n"
 
-#: src/lang.c:222
+#: src/lang.c:228
 #, fuzzy, c-format
-msgid	"Error writing %s file. Filesystem full? File reset to previous state."
-msgstr	"%s dosyasýný yazarken hata. Dosya sistemi dolu? Dosya önceki durumuna "
-	"dönüþtürüldü."
+msgid   "\n"
+        "Error: The \"%s:\" line is empty.\n"
+msgstr  "\n"
+        "Hata: \"%s:\"satýrý boþ.\n"
 
-#: src/lang.c:223
+#: src/lang.c:229
 #, fuzzy, c-format
-msgid	"Error making backup of %s file. Filesystem full?"
-msgstr	"%s dosyasýný yedeklemede hata. Dosya sistemi dolu?"
+msgid   "\n"
+        "Error: The \"%s:\" line is missing from the article header.\n"
+msgstr  "\n"
+        "Hata: Makale baþlýðýnda \"%s:\" satýrý eksik.\n"
+
+#: src/lang.c:230
+#, c-format
+msgid   "\n"
+        "Error: %s contains non 7bit chars.\n"
+msgstr  ""
 
-#: src/lang.c:224
+#: src/lang.c:231
 #, fuzzy, c-format
-msgid	"Filtering global rules (%d/%d)..."
-msgstr	"Genel kurallar süzgeçleniyor (%d/%d)..."
+msgid   "\n"
+        "Error: Header on line %d does not have a space after the colon:\n"
+        "%s\n"
+msgstr  "\n"
+        "Hata: %d satýrýndaki baþlýkta iki noktadan sonra boþluk yok:\n"
+        "%s\n"
 
-#: src/lang.c:225
-#, fuzzy
-msgid	"Rule created by: "
-msgstr	"Kural oluþturuldu: "
+#: src/lang.c:232
+#, fuzzy, c-format
+msgid   "\n"
+        "Error: There are multiple (%d) \"%s:\" lines in the header.\n"
+msgstr  "\n"
+        "Hata: Baþlýkta (%d) \"%s:\" çoklu satýlrarý var.\n"
 
-#: src/lang.c:226
+#: src/lang.c:233
 #, fuzzy, c-format
-msgid	"Enter pattern [%s]> "
-msgstr	"Örüntüyü girin [%s]> "
+msgid   "Insecure permissions of %s (%o)"
+msgstr  "Güvenli olmayan yetkiler %s (%o)"
 
-#: src/lang.c:227
+#: src/lang.c:235
 #, fuzzy, c-format
-msgid	"\n"
-	"You requested followups to your article to go to the following %s:\n"
-msgstr	"\n"
-	"Gitmek için makalenize takip-et istediniz %s:\n"
+msgid   "Invalid response to GROUP command, %s"
+msgstr  "KÜME komutuna geçersiz yanýt.%s"
 
-#: src/lang.c:228
+#: src/lang.c:240
 #, fuzzy, c-format
-msgid	"  %s\t Answers will be directed to you by mail.\n"
-msgstr	"  %s\t Cevaplarý postayla yönlendirilecek.\n"
+msgid   "MIME parse error: Unexpected end of %s/%s article"
+msgstr  "MIME ayrýþtýrma hatasý: Makale %s/%s için beklenmeyen son"
 
-#: src/lang.c:229
-msgid	"-- forwarded message --\n"
-msgstr	""
+#: src/lang.c:241
+#, fuzzy
+msgid   "MIME parse error: Start boundary whilst reading headers"
+msgstr  "MIME ayrýþtýrma hatasý: Baþlýklarý okurken baþlatma sýnýrý"
 
-#: src/lang.c:230
-msgid	"-- end of forwarded message --\n"
-msgstr	""
+#: src/lang.c:242
+#, fuzzy
+msgid   "\n"
+        "Error: \"poster\" is not allowed in Newsgroups!\n"
+msgstr  "\n"
+        "Hata: \"%s\" geçerli bir haber grubu deðil!\n"
 
-#: src/lang.c:231
+#: src/lang.c:243
 #, fuzzy
-msgid	"# Format:\n"
-	"#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
-	"placed\n"
-	"#                     at the beginning of a rule, or they will be moved to "
-	"the\n"
-	"#                     next rule. '#' is not a valid keyword for a comment!\n"
-	"#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
-	"#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
-	"#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
-	"#     score=NUM         A number (e.g. 70). Or:\n"
-	"#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
-	"#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
-	"#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
-	"#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
-	"#                     full references.\n"
-	"#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
-	"#   msgid_only=STRING Optional. Like above, but without references.\n"
-	"#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
-	"without\n"
-	"#                     Message-ID:\n"
-	"#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
-	"#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
-	"opt.\n"
-	"#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
-	"#   time=NUM          Optional. time_t value when rule expires\n"
-	"#\n"
-msgstr	"# Format:\n"
-	"#   comment=STRING Seçmeli. Çoklu satýrlara izin verildi. Komutlar eklenmeli\n"
-	"#                    kural baþýna, ya da taþýnacak\n"
-	"#                    sonraki kurala.'#' komut için geçerli bir anahtar sözcük "
-	"deðildir!\n"
-	"#   group=STRING     Zorunlu. Haber grubu listesi (örn.comp.*,!*sources*).\n"
-	"#   case=NUM          Zorunlu. Karþýlaþtýr=0 / yoksay=1 durumu süzgeçlerken.\n"
-	"#   score=NUM|STRING  Zorunlu.Verilecek skor. Her ikisi:\n"
-	"#     score=NUM        Bir Sayý (örn. 70), Ya da:\n"
-	"#     score=STRING     Ýki anahtar sözcükten biri: 'hot' ya da 'kill'.\n"
-	"#   subj=STRING       Seçmeli. Konu: satýr (örn. Nasýl sihirbaz olunur)..\n"
-	"#   from=STRING       Seçmeli. Gönderen. satýr  (örn. *Craig Shergold*).\n"
-	"#   msgid=STRING      Seçmeli. Ýleti-kimliði : satýr (örn. <123@ether.net>) "
-	"ile\n"
-	"#                     tam referanslar.\n"
-	"#   msgid_last=STRING Seçmeli. Yukarýdaki gibi, ama sadece ilk referansla.\n"
-	"#   msgid_only=STRING Seçmeli. Yukarýdeki gibi, ama referans olmadan.\n"
-	"#                    Ýleti-kimliði:\n"
-	"#   lines=[<>]?NUM    Seçmeli. Satýrlar: satýr '<' or '>' seçmelidir.\n"
-	"#   gnksa=[<>]?NUM    Seçmeli. GNKSA dönüþ kodundan() ayrýþtýrýlýyor.'<' or "
-	"'>' opt.\n"
-	"#   xref=PATTERN     Seçmeli.Ölü örüntü (örn. alt.flame*)\n"
-	"#   time=NUM          Seçmeli.Kural bitince time_t deðeri\n"
-	"#\n"
+msgid   "Can't get a (fully-qualified) domain-name!"
+msgstr  "(Tam niletelendirilmiþ) etki alaný adý alýnamadý!"
 
-#: src/lang.c:252
+#: src/lang.c:244
 #, fuzzy, c-format
-msgid	"Enter score for rule (default=%d): "
-msgstr	"Kural için skoru yazýn (varsayýlan=%d): "
+msgid   "No permissions to go into %s\n"
+msgstr  "%s için gidiþ yetkisi yok\n"
 
-#: src/lang.c:253
+#: src/lang.c:246
+#, fuzzy
+msgid   "\n"
+        "Error: From: line missing.\n"
+msgstr  "\n"
+        "Hata: Baþlangýç:satýr eksik.\n"
+
+#: src/lang.c:248
 #, fuzzy, c-format
-msgid	"Enter the score weight (range 0 < score <= %d)"
-msgstr	"Skor aðýrlýðýný yazýn (aralýk 0 < skor <= %d)"
+msgid   "No read permissions for %s\n"
+msgstr  "%s için okuma yetkisi yok\n"
 
-#. SCORE_MAX
-#: src/lang.c:254
+#: src/lang.c:249
+#, fuzzy, c-format
+msgid   "File %s does not exist\n"
+msgstr  "%s dosyasý yok\n"
+
+#: src/lang.c:250
+#, fuzzy, c-format
+msgid   "No write permissions for %s\n"
+msgstr  "%s için yazma yetkisi yok\n"
+
+#: src/lang.c:251
 #, fuzzy
-msgid	"Full"
-msgstr	"Tam"
+msgid   "Can't get user information (/etc/passwd missing?)"
+msgstr  "Kullanýcý bilgisi alýnamýyor(/etc/passwd kayýp?)"
 
-#: src/lang.c:255
+#: src/lang.c:252
 #, fuzzy
-msgid	"Comment (optional)  : "
-msgstr	"Komut (seçmeli)   : "
+msgid   "errors"
+msgstr  "hatalar"
+
+#: src/lang.c:254
+#, fuzzy, c-format
+msgid   "\n"
+        "Error on line %d: \"Sender:\" header not allowed (it will be added for you)\n"
+msgstr  "\n"
+        "%d satýrýnda hata \"Sender:\" baþlýk için izin verilmedi (sizin için "
+        "eklenecek)\n"
 
 #: src/lang.c:256
-#, fuzzy
-msgid	"Apply pattern to    : "
-msgstr	"Örüntüyü uygula   : "
+#, fuzzy, c-format
+msgid   "Server has non of the groups listed in %s"
+msgstr  "Sunucuda %s'de listelenen gruplarýn hiçbiri yok"
 
 #: src/lang.c:257
 #, fuzzy
-msgid	"From: line (ignore case)      "
-msgstr	"Gönderen: satýr (büyük/küçük harfleri yoksay) "
+msgid   "error"
+msgstr  "hata"
 
 #: src/lang.c:258
 #, fuzzy
-msgid	"From: line (case sensitive)   "
-msgstr	"Gönderen: satýr (büyük/küçük harfe duyarlý)   "
+msgid   "Unknown display level"
+msgstr  "Bilinmeyen gösterim düzeyi"
+
+#: src/lang.c:259
+#, fuzzy
+msgid   "<ESC>"
+msgstr  "<ESC>"
 
 #: src/lang.c:260
-#, fuzzy, c-format
-msgid	"%s%s: Unknown host.\n"
-msgstr	"%s%s: Bilinmeyen ana sunucu.\n"
+#, fuzzy
+msgid   "Exiting..."
+msgstr  "Çýkýyor..."
 
 #: src/lang.c:261
 #, fuzzy
-msgid	"global "
-msgstr	"küresel "
+msgid   "leaving external mail-reader"
+msgstr  "Dýþ posta-okuyucuyu býrakýyor"
 
 #: src/lang.c:262
 #, fuzzy, c-format
-msgid	"Please use %.100s instead"
-msgstr	"Lütfen % kullanýn.100s yerine"
-
-#: src/lang.c:263
-#, c-format
-msgid	"%s is bogus"
-msgstr	"%s sahte"
+msgid   "Extracting %s..."
+msgstr  "Ayýklýyor %s..."
 
 #: src/lang.c:264
 #, fuzzy, c-format
-msgid	"Group %s is moderated. Continue?"
-msgstr	"Küme %s ayarlandý. Devam?"
+msgid   "Error writing %s file. Filesystem full? File reset to previous state."
+msgstr  "%s dosyasýný yazarken hata. Dosya sistemi dolu? Dosya önceki durumuna "
+        "dönüþtürüldü."
 
 #: src/lang.c:265
-#, fuzzy
-msgid	"groups"
-msgstr	"kümeler"
+#, fuzzy, c-format
+msgid   "Error making backup of %s file. Filesystem full?"
+msgstr  "%s dosyasýný yedeklemede hata. Dosya sistemi dolu?"
 
 #: src/lang.c:266
-#, c-format
-msgid	"Rereading %s..."
-msgstr	"%s tekrar okunuyor..."
+#, fuzzy, c-format
+msgid   "Filtering global rules (%d/%d)..."
+msgstr  "Genel kurallar süzgeçleniyor (%d/%d)..."
 
 #: src/lang.c:267
 #, fuzzy
-msgid	"Top Level Commands"
-msgstr	"Üst Düzey Komutlar"
+msgid   "Rule created by: "
+msgstr  "Kural oluþturuldu: "
 
 #: src/lang.c:268
-#, fuzzy
-msgid	"Group Selection"
-msgstr	"Küme Seçimi"
+#, fuzzy, c-format
+msgid   "Enter pattern [%s]> "
+msgstr  "Örüntüyü girin [%s]> "
 
 #: src/lang.c:269
-#, fuzzy
-msgid	"group"
-msgstr	"küme"
+#, fuzzy, c-format
+msgid   "\n"
+        "You requested followups to your article to go to the following %s:\n"
+msgstr  "\n"
+        "Gitmek için makalenize takip-et istediniz %s:\n"
+
+#: src/lang.c:270
+#, fuzzy, c-format
+msgid   "  %s\t Answers will be directed to you by mail.\n"
+msgstr  "  %s\t Cevaplarý postayla yönlendirilecek.\n"
 
 #: src/lang.c:271
-#, fuzzy
-msgid	"One or more lines of comment. <CR> to add a line or proceed if line is empty."
-msgstr	"Komutun bir veya birden çok satýrý. Satýr boþsa satýr eklemek veya devam "
-	"etmek için <CR>."
+msgid   "-- forwarded message --\n"
+msgstr  ""
 
 #: src/lang.c:272
-#, fuzzy
-msgid	"From: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Gönderen: Süzgeç dosyaya eklenecek satýr.<SPACE> deðiþtirir & <CR> ayarlar."
+msgid   "-- end of forwarded message --\n"
+msgstr  ""
 
 #: src/lang.c:273
 #, fuzzy
-msgid	"Linecount of articles to be filtered. < for less, > for more, = for equal."
-msgstr	"Süzgeçlenecek makalelerin satýr sayýsý. < az , > çok , =eþit."
-
-#: src/lang.c:274
-#, fuzzy
-msgid	"Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Ýleti-kimliði: Dosya süzgeçlemek için eklenecek satýr. <SPACE> deðiþtirir & "
-	"<CR> ayarlar."
-
-#: src/lang.c:275
-#, fuzzy
-msgid	"Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
-msgstr	"Konu: Dosya süzgeçlemek için eklenecek satýr. <SPACE> deðiþtirir & <CR> "
-	"ayarlar."
-
-#: src/lang.c:276
-#, fuzzy
-msgid	"Enter text pattern to filter if Subject: & From: lines are not what you want."
-msgstr	"Süzgeçlemek için metin örüntüsünü girin eðer Konu: & Gönderen: istediðiniz "
-	"satýrlar deðilse."
-
-#: src/lang.c:277
-#, fuzzy
-msgid	"Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
-msgstr	"Metin örüntüsünün nereye uygulanacaðýný seçin. <SPACE> deðiþtirir & <CR> "
-	"ayarlar."
-
-#: src/lang.c:278
-#, fuzzy
-msgid	"Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
-msgstr	"Yazýlan süzgeç için gün olarak kullaným süresi bitimi.<SPACE> deðiþtirir & "
-	"<CR> ayarlar."
-
-#: src/lang.c:279
-#, fuzzy
-msgid	"Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Sadece mevcut küme veya bütün kümeler için kill uygulayýn. <SPACE> deðiþtirir "
-	"& <CR>ayarlar."
-
-#: src/lang.c:280
-#, fuzzy
-msgid	"Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
-msgstr	"Mevcut küme veya bütün kümeler için seç uygulayýn <SPACE> deðiþtirir & "
-	"<CR>ayarlar."
-
-#: src/lang.c:281
-#, fuzzy
-msgid	"kill an article via a menu"
-msgstr	"makaleyi menü aracýlýðýyla öldür"
-
-#: src/lang.c:282
-#, fuzzy
-msgid	"auto-select (hot) an article via a menu"
-msgstr	"makaleyi menü aracýlýyla otomatik-seç (hot)"
-
-#: src/lang.c:283
-#, fuzzy
-msgid	"Browse URLs in article"
-msgstr	"Makaledeki URL'lara gözat"
-
-#: src/lang.c:284
-#, fuzzy
-msgid	"0 - 9\t  display article by number in current thread"
-msgstr	"0 - 9\t  makaleyi mevcut parçacýktaki sayýyla görüntüle"
-
-#: src/lang.c:285
-msgid	"cancel (delete) or supersede (overwrite) current article"
-msgstr	""
-
-#: src/lang.c:286
-#, fuzzy
-msgid	"edit article (mail-groups only)"
-msgstr	"makaleyi düzenle (sadece posta-gruplarý)"
-
-#: src/lang.c:287
-#, fuzzy
-msgid	"display first article in current thread"
-msgstr	"mevcut parçacýktaki makaleyi ilk görüntüle"
-
-#: src/lang.c:288
-#, fuzzy
-msgid	"display first page of article"
-msgstr	"makalenin ilk sayfasýný görüntüle"
-
-#: src/lang.c:289
-#, fuzzy
-msgid	"post followup to current article"
-msgstr	"mevcut makale için takip-et gönder"
-
-#: src/lang.c:290
-#, fuzzy
-msgid	"post followup (don't copy text) to current article"
-msgstr	"mevcut makale için takip-et gönder (metni kopyalama)"
-
-#: src/lang.c:291
-#, fuzzy
-msgid	"post followup to current article quoting complete headers"
-msgstr	"tam baþlýklarý imleyen mevcut makale için takip-et gönder"
-
-#: src/lang.c:292
-#, fuzzy
-msgid	"display last article in current thread"
-msgstr	"mevcut parçacýktaki son makaleyi görüntüle"
-
-#: src/lang.c:293
-#, fuzzy
-msgid	"display last page of article"
-msgstr	"makalenin son sayfasný görüntüle"
+msgid   "# Format:\n"
+        "#   comment=STRING    Optional. Multiple lines allowed. Comments must be "
+        "placed\n"
+        "#                     at the beginning of a rule, or they will be moved to "
+        "the\n"
+        "#                     next rule. '#' is not a valid keyword for a comment!\n"
+        "#   group=STRING      Mandatory. Newsgroups list (e.g. comp.*,!*sources*).\n"
+        "#   case=NUM          Mandatory. Compare=0 / ignore=1 case when filtering.\n"
+        "#   score=NUM|STRING  Mandatory. Score to give. Either:\n"
+        "#     score=NUM         A number (e.g. 70). Or:\n"
+        "#     score=STRING      One of the two keywords: 'hot' or 'kill'.\n"
+        "#   subj=STRING       Optional. Subject: line (e.g. How to be a wizard).\n"
+        "#   from=STRING       Optional. From: line (e.g. *Craig Shergold*).\n"
+        "#   msgid=STRING      Optional. Message-ID: line (e.g. <123@ether.net>) with\n"
+        "#                     full references.\n"
+        "#   msgid_last=STRING Optional. Like above, but with last reference only.\n"
+        "#   msgid_only=STRING Optional. Like above, but without references.\n"
+        "#   refs_only=STRING  Optional. References: line (e.g. <123@ether.net>) "
+        "without\n"
+        "#                     Message-ID:\n"
+        "#   lines=[<>]?NUM    Optional. Lines: line. '<' or '>' are optional.\n"
+        "#   gnksa=[<>]?NUM    Optional. GNKSA parse_from() return code. '<' or '>' "
+        "opt.\n"
+        "#   xref=PATTERN      Optional. Kill pattern (e.g. alt.flame*)\n"
+        "#   time=NUM          Optional. time_t value when rule expires\n"
+        "#\n"
+msgstr  "# Format:\n"
+        "#   comment=STRING Seçmeli. Çoklu satýrlara izin verildi. Komutlar eklenmeli\n"
+        "#                    kural baþýna, ya da taþýnacak\n"
+        "#                    sonraki kurala.'#' komut için geçerli bir anahtar sözcük "
+        "deðildir!\n"
+        "#   group=STRING     Zorunlu. Haber grubu listesi (örn.comp.*,!*sources*).\n"
+        "#   case=NUM          Zorunlu. Karþýlaþtýr=0 / yoksay=1 durumu süzgeçlerken.\n"
+        "#   score=NUM|STRING  Zorunlu.Verilecek skor. Her ikisi:\n"
+        "#     score=NUM        Bir Sayý (örn. 70), Ya da:\n"
+        "#     score=STRING     Ýki anahtar sözcükten biri: 'hot' ya da 'kill'.\n"
+        "#   subj=STRING       Seçmeli. Konu: satýr (örn. Nasýl sihirbaz olunur)..\n"
+        "#   from=STRING       Seçmeli. Gönderen. satýr  (örn. *Craig Shergold*).\n"
+        "#   msgid=STRING      Seçmeli. Ýleti-kimliði : satýr (örn. <123@ether.net>) "
+        "ile\n"
+        "#                     tam referanslar.\n"
+        "#   msgid_last=STRING Seçmeli. Yukarýdaki gibi, ama sadece ilk referansla.\n"
+        "#   msgid_only=STRING Seçmeli. Yukarýdeki gibi, ama referans olmadan.\n"
+        "#                    Ýleti-kimliði:\n"
+        "#   lines=[<>]?NUM    Seçmeli. Satýrlar: satýr '<' or '>' seçmelidir.\n"
+        "#   gnksa=[<>]?NUM    Seçmeli. GNKSA dönüþ kodundan() ayrýþtýrýlýyor.'<' or "
+        "'>' opt.\n"
+        "#   xref=PATTERN     Seçmeli.Ölü örüntü (örn. alt.flame*)\n"
+        "#   time=NUM          Seçmeli.Kural bitince time_t deðeri\n"
+        "#\n"
 
 #: src/lang.c:294
-#, fuzzy
-msgid	"mark rest of thread as read and advance to next unread"
-msgstr	"parçacýðýn kalanýný okunmuþ olarak iþaretle ve sonraki okunmamýþa geç"
+#, fuzzy, c-format
+msgid   "Enter score for rule (default=%d): "
+msgstr  "Kural için skoru yazýn (varsayýlan=%d): "
 
 #: src/lang.c:295
-#, fuzzy
-msgid	"display next article"
-msgstr	"sonraki makaleyi görüntüle"
+#, fuzzy, c-format
+msgid   "Enter the score weight (range 0 < score <= %d)"
+msgstr  "Skor aðýrlýðýný yazýn (aralýk 0 < skor <= %d)"
 
+#. SCORE_MAX
 #: src/lang.c:296
 #, fuzzy
-msgid	"display first article in next thread"
-msgstr	"sonraki baþlýktaki ilk makaleyi görüntüle"
+msgid   "Full"
+msgstr  "Tam"
 
 #: src/lang.c:297
 #, fuzzy
-msgid	"display next unread article"
-msgstr	"sonraki okunmamýþ makaleyi görüntüle"
+msgid   "Comment (optional)  : "
+msgstr  "Komut (seçmeli)   : "
 
 #: src/lang.c:298
 #, fuzzy
-msgid	"go to the article that this one followed up"
-msgstr	"bunu takip eden makaleye git"
+msgid   "Apply pattern to    : "
+msgstr  "Örüntüyü uygula   : "
 
 #: src/lang.c:299
 #, fuzzy
-msgid	"display previous article"
-msgstr	"önceki makaleyi görüntüle"
+msgid   "From: line (ignore case)      "
+msgstr  "Gönderen: satýr (büyük/küçük harfleri yoksay) "
 
 #: src/lang.c:300
 #, fuzzy
-msgid	"display previous unread article"
-msgstr	"önceki okunmamýþ makaleyi görüntüle"
-
-#: src/lang.c:301
-#, fuzzy
-msgid	"quickly kill an article using defaults"
-msgstr	"varsayýlanlarý kullanarak makaleyi hemen öldür"
+msgid   "From: line (case sensitive)   "
+msgstr  "Gönderen: satýr (büyük/küçük harfe duyarlý)   "
 
 #: src/lang.c:302
-#, fuzzy
-msgid	"quickly auto-select (hot) an article using defaults"
-msgstr	"varsayýlanlarý kullanarak makaleyi hemen otomatik-seç(hot)"
-
-#: src/lang.c:303
-#, fuzzy
-msgid	"return to group selection level"
-msgstr	"küme seçme düzeyine dön"
+#, fuzzy, c-format
+msgid   "%s%s: Unknown host.\n"
+msgstr  "%s%s: Bilinmeyen ana sunucu.\n"
 
 #: src/lang.c:304
 #, fuzzy
-msgid	"reply through mail to author"
-msgstr	"yazara posta aracýlýðyla yanýt ver"
+msgid   "global "
+msgstr  "küresel "
 
 #: src/lang.c:305
-#, fuzzy
-msgid	"reply through mail (don't copy text) to author"
-msgstr	"yazara posta aracýlýyla yanýt ver (metni kopyalama)"
+#, fuzzy, c-format
+msgid   "Please use %.100s instead"
+msgstr  "Lütfen % kullanýn.100s yerine"
 
 #: src/lang.c:306
-#, fuzzy
-msgid	"reply through mail to author quoting complete headers"
-msgstr	"tam baþlýklarý imleyerek yazara posta aracýlýðýyla yanýt ver"
+#, c-format
+msgid   "%s is bogus"
+msgstr  "%s sahte"
 
 #: src/lang.c:307
-#, fuzzy
-msgid	"repost chosen article to another group"
-msgstr	"seçilen makaleyi baþka bir kümeye yeniden gönder"
+#, fuzzy, c-format
+msgid   "Group %s is moderated. Continue?"
+msgstr  "Küme %s ayarlandý. Devam?"
 
 #: src/lang.c:308
 #, fuzzy
-msgid	"search backwards within this article"
-msgstr	"bu makalede geriye doðru ara"
+msgid   "groups"
+msgstr  "kümeler"
 
 #: src/lang.c:309
-#, fuzzy
-msgid	"search forwards within this article"
-msgstr	"bu makalede ileriye doðru ara"
+#, c-format
+msgid   "Rereading %s..."
+msgstr  "%s tekrar okunuyor..."
 
 #: src/lang.c:310
 #, fuzzy
-msgid	"show article in raw-mode (including all headers)"
-msgstr	"makaleyi ham-kipte göster (bütün baþlýklar dahil)"
+msgid   "Top Level Commands"
+msgstr  "Üst Düzey Komutlar"
 
 #: src/lang.c:311
 #, fuzzy
-msgid	"skip next block of included text"
-msgstr	"ekli dosyanýn sonraki öbeðine atla"
+msgid   "Group Selection"
+msgstr  "Küme Seçimi"
 
 #: src/lang.c:312
 #, fuzzy
-msgid	"toggle display of sections hidden by a form-feed (^L) on/off"
-msgstr	"(^L)açýk/kapalý form-besleme tarafýndan gizlenen bölümlerin gösterimini "
-	"deðiþtir"
-
-#: src/lang.c:313
-#, fuzzy
-msgid	"toggle word highlighting on/off"
-msgstr	"açýk/kapalý vurgulayan sözcüðü deðiþtir"
+msgid   "group"
+msgstr  "küme"
 
 #: src/lang.c:314
 #, fuzzy
-msgid	"toggle ROT-13 (basic decode) for current article"
-msgstr	"mevcut makale için ROT-13 (temel kod çözücü) deðiþtir"
+msgid   "One or more lines of comment. <CR> to add a line or proceed if line is empty."
+msgstr  "Komutun bir veya birden çok satýrý. Satýr boþsa satýr eklemek veya devam "
+        "etmek için <CR>."
 
 #: src/lang.c:315
 #, fuzzy
-msgid	"toggle tabwidth 4 <-> 8"
-msgstr	"sekme aralýðýný deðiþtir 4 <-> 8"
+msgid   "From: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Gönderen: Süzgeç dosyaya eklenecek satýr.<SPACE> deðiþtirir & <CR> ayarlar."
 
 #: src/lang.c:316
 #, fuzzy
-msgid	"toggle german TeX style decoding for current article"
-msgstr	"german TeX kod biçemi mevcut makale için deðiþtir"
+msgid   "Linecount of articles to be filtered. < for less, > for more, = for equal."
+msgstr  "Süzgeçlenecek makalelerin satýr sayýsý. < az , > çok , =eþit."
 
 #: src/lang.c:317
 #, fuzzy
-msgid	"toggle display of uuencoded sections"
-msgstr	"metinsele kodlanmýþ bölümlerin gösterimini deðiþtir"
+msgid   "Message-ID: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Ýleti-kimliði: Dosya süzgeçlemek için eklenecek satýr. <SPACE> deðiþtirir & "
+        "<CR> ayarlar."
 
 #: src/lang.c:318
 #, fuzzy
-msgid	"View/save multimedia attachments"
-msgstr	"çoklu-ortam eklerini Görüntüle/kaydet"
+msgid   "Subject: line to add to filter file. <SPACE> toggles & <CR> sets."
+msgstr  "Konu: Dosya süzgeçlemek için eklenecek satýr. <SPACE> deðiþtirir & <CR> "
+        "ayarlar."
 
 #: src/lang.c:319
-#, fuzzy, c-format
-msgid	"report bug or comment via mail to %s"
-msgstr	"hata veya komutu posta aracýlýðýyla bildirin %s"
+#, fuzzy
+msgid   "Enter text pattern to filter if Subject: & From: lines are not what you want."
+msgstr  "Süzgeçlemek için metin örüntüsünü girin eðer Konu: & Gönderen: istediðiniz "
+        "satýrlar deðilse."
 
 #: src/lang.c:320
 #, fuzzy
-msgid	"choose range of articles to be affected by next command"
-msgstr	"sonraki komuttan etkilenen makalelerin aralýðýný seç"
+msgid   "Select where text pattern should be applied. <SPACE> toggles & <CR> sets."
+msgstr  "Metin örüntüsünün nereye uygulanacaðýný seçin. <SPACE> deðiþtirir & <CR> "
+        "ayarlar."
 
 #: src/lang.c:321
 #, fuzzy
-msgid	"escape from command prompt"
-msgstr	"komut isteminden çýk"
+msgid   "Expiration time in days for the entered filter. <SPACE> toggles & <CR> sets."
+msgstr  "Yazýlan süzgeç için gün olarak kullaným süresi bitimi.<SPACE> deðiþtirir & "
+        "<CR> ayarlar."
 
 #: src/lang.c:322
 #, fuzzy
-msgid	"edit filter file"
-msgstr	"Süz dosyasý okunuyor"
+msgid   "Apply kill only to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Sadece mevcut küme veya bütün kümeler için kill uygulayýn. <SPACE> deðiþtirir "
+        "& <CR>ayarlar."
 
 #: src/lang.c:323
 #, fuzzy
-msgid	"get help"
-msgstr	"yardým al"
+msgid   "Apply select to current group or all groups. <SPACE> toggles & <CR> sets."
+msgstr  "Mevcut küme veya bütün kümeler için seç uygulayýn <SPACE> deðiþtirir & "
+        "<CR>ayarlar."
 
 #: src/lang.c:324
 #, fuzzy
-msgid	"display last article viewed"
-msgstr	"görüntülenen son makaleyi göster"
+msgid   "kill an article via a menu"
+msgstr  "makaleyi menü aracýlýðýyla öldür"
 
 #: src/lang.c:325
 #, fuzzy
-msgid	"down one line"
-msgstr	"bir satýr aþaðý"
+msgid   "auto-select (hot) an article via a menu"
+msgstr  "makaleyi menü aracýlýyla otomatik-seç (hot)"
 
 #: src/lang.c:326
 #, fuzzy
-msgid	"up one line"
-msgstr	"bir satýr aþaðý"
+msgid   "Browse URLs in article"
+msgstr  "Makaledeki URL'lara gözat"
 
 #: src/lang.c:327
 #, fuzzy
-msgid	"go to article chosen by Message-ID"
-msgstr	"Ýleti-kimliði tarafýndn seçilen makaleye git"
-
-#: src/lang.c:328
-#, fuzzy
-msgid	"mail article/thread/hot/pattern/tagged articles to someone"
-msgstr	"makale/parçacýk/hot/örüntü/etiketlenmiþ makaleleri postala"
+msgid   "0 - 9\t  display article by number in current thread"
+msgstr  "0 - 9\t  makaleyi mevcut parçacýktaki sayýyla görüntüle"
 
 #: src/lang.c:329
-#, fuzzy
-msgid	"menu of configurable options"
-msgstr	"yapýlandýrabilir seçenekler menüsü"
+msgid   "cancel (delete) or supersede (overwrite) current article"
+msgstr  ""
 
 #: src/lang.c:330
 #, fuzzy
-msgid	"down one page"
-msgstr	"bir sayfa alta"
+msgid   "post followup to current article"
+msgstr  "mevcut makale için takip-et gönder"
 
 #: src/lang.c:331
 #, fuzzy
-msgid	"up one page"
-msgstr	"bir sayfa yukarýya"
+msgid   "post followup (don't copy text) to current article"
+msgstr  "mevcut makale için takip-et gönder (metni kopyalama)"
 
 #: src/lang.c:332
 #, fuzzy
-msgid	"post (write) article to current group"
-msgstr	"makaleyi mevcut kümeye gönder(yaz)"
+msgid   "post followup to current article quoting complete headers"
+msgstr  "tam baþlýklarý imleyen mevcut makale için takip-et gönder"
 
 #: src/lang.c:333
 #, fuzzy
-msgid	"post postponed articles"
-msgstr	"ertelenmiþ makaleleri postala"
-
-#: src/lang.c:334
-#, fuzzy
-msgid	"list articles posted by you (from posted file)"
-msgstr	"(postalanmýþ dosyadan) tarafýnýzdan postalanan makaleleri listele"
+msgid   "repost chosen article to another group"
+msgstr  "seçilen makaleyi baþka bir kümeye yeniden gönder"
 
 #: src/lang.c:335
 #, fuzzy
-msgid	"return to previous menu"
-msgstr	"önceki menüye dön"
+msgid   "edit article (mail-groups only)"
+msgstr  "makaleyi düzenle (sadece posta-gruplarý)"
 
 #: src/lang.c:336
 #, fuzzy
-msgid	"quit tin immediately"
-msgstr	"tin'den hemen çýk"
+msgid   "display first article in current thread"
+msgstr  "mevcut parçacýktaki makaleyi ilk görüntüle"
 
 #: src/lang.c:337
 #, fuzzy
-msgid	"redraw page"
-msgstr	"sayfayý yeniden çiz"
+msgid   "display first page of article"
+msgstr  "makalenin ilk sayfasýný görüntüle"
 
 #: src/lang.c:338
 #, fuzzy
-msgid	"save article/thread/hot/pattern/tagged articles to file"
-msgstr	"makale/parçacýk/hot/örüntü/etiketlenmiþ makaleleri dosyaya kaydet"
+msgid   "display last article in current thread"
+msgstr  "mevcut parçacýktaki son makaleyi görüntüle"
 
 #: src/lang.c:339
 #, fuzzy
-msgid	"save marked articles automatically without user prompts"
-msgstr	"iþaretlenmiþ makaleleri kullanýcý istemi olmadan otomatik kaydet"
+msgid   "display last page of article"
+msgstr  "makalenin son sayfasný görüntüle"
 
 #: src/lang.c:340
-msgid	"scroll the screen one line down"
-msgstr	""
+#, fuzzy
+msgid   "mark rest of thread as read and advance to next unread"
+msgstr  "parçacýðýn kalanýný okunmuþ olarak iþaretle ve sonraki okunmamýþa geç"
 
 #: src/lang.c:341
-msgid	"scroll the screen one line up"
-msgstr	""
+#, fuzzy
+msgid   "display next article"
+msgstr  "sonraki makaleyi görüntüle"
 
 #: src/lang.c:342
 #, fuzzy
-msgid	"search for articles by author backwards"
-msgstr	"makaleleri yazara göre geriye doðru ara"
+msgid   "display first article in next thread"
+msgstr  "sonraki baþlýktaki ilk makaleyi görüntüle"
 
 #: src/lang.c:343
 #, fuzzy
-msgid	"search for articles by author forwards"
-msgstr	"makaleleri yazara göre ileriye doðru ara"
+msgid   "display next unread article"
+msgstr  "sonraki okunmamýþ makaleyi görüntüle"
 
 #: src/lang.c:344
 #, fuzzy
-msgid	"search all articles for a given string (this may take some time)"
-msgstr	"bütün makaleleri verilen dizgi için ara (bu uzun sürebilir)"
+msgid   "go to the article that this one followed up"
+msgstr  "bunu takip eden makaleye git"
 
 #: src/lang.c:345
 #, fuzzy
-msgid	" \t  (searches are case-insensitive and wrap around to all articles)"
-msgstr	" \t  (arayýcýlar büyük/küçük harfe duyarlýdýr ve bütün makaleleri çevreler)"
+msgid   "display previous article"
+msgstr  "önceki makaleyi görüntüle"
 
 #: src/lang.c:346
 #, fuzzy
-msgid	"search for articles by Subject line backwards"
-msgstr	"makaleleri Konu satýrýna göre geriye doðru ara"
+msgid   "display previous unread article"
+msgstr  "önceki okunmamýþ makaleyi görüntüle"
 
 #: src/lang.c:347
 #, fuzzy
-msgid	"search for articles by Subject line forwards"
-msgstr	"makaleleri Konuya göre ileriye doðru ara"
+msgid   "quickly kill an article using defaults"
+msgstr  "varsayýlanlarý kullanarak makaleyi hemen öldür"
 
 #: src/lang.c:348
 #, fuzzy
-msgid	"repeat last search"
-msgstr	"son aramayý tekrarla"
+msgid   "quickly auto-select (hot) an article using defaults"
+msgstr  "varsayýlanlarý kullanarak makaleyi hemen otomatik-seç(hot)"
 
 #: src/lang.c:349
 #, fuzzy
-msgid	"tag current article for reposting/mailing/piping/printing/saving"
-msgstr	"mevcut makaleyi yeniden gönderme/postalama/kanal/yazdýrma/kaydetme için "
-	"etiketle"
+msgid   "return to group selection level"
+msgstr  "küme seçme düzeyine dön"
 
 #: src/lang.c:350
 #, fuzzy
-msgid	"toggle info message in last line (subject/description)"
-msgstr	"son satýrdaki bilgi iletisini deðiþtir (konu/taným)"
+msgid   "reply through mail to author"
+msgstr  "yazara posta aracýlýðyla yanýt ver"
 
 #: src/lang.c:351
 #, fuzzy
-msgid	"toggle inverse video"
-msgstr	"ters video'yu deðiþtir"
+msgid   "reply through mail (don't copy text) to author"
+msgstr  "yazara posta aracýlýyla yanýt ver (metni kopyalama)"
 
 #: src/lang.c:352
 #, fuzzy
-msgid	"toggle mini help menu display"
-msgstr	"mini yardým menüsü görünümünü deðiþtir"
+msgid   "reply through mail to author quoting complete headers"
+msgstr  "tam baþlýklarý imleyerek yazara posta aracýlýðýyla yanýt ver"
 
 #: src/lang.c:353
 #, fuzzy
-msgid	"cycle the display of authors email address, real name, both or neither"
-msgstr	"yazarlarýn e-posta adreslerinin, gerçek isimlerinin, ikisinin veya hiçbirinin "
-	"görünümünü çevir"
+msgid   "search backwards within this article"
+msgstr  "bu makalede geriye doðru ara"
 
 #: src/lang.c:354
 #, fuzzy
-msgid	"show version information"
-msgstr	"sürüm bilgisini göster"
+msgid   "search forwards within this article"
+msgstr  "bu makalede ileriye doðru ara"
 
 #: src/lang.c:355
 #, fuzzy
-msgid	"mark all articles as read and return to group selection menu"
-msgstr	"bürtümn makaleleri okunmuþ olarak iþaretle ve küme seçme menüsüne geri dön"
+msgid   "show article in raw-mode (including all headers)"
+msgstr  "makaleyi ham-kipte göster (bütün baþlýklar dahil)"
 
 #: src/lang.c:356
 #, fuzzy
-msgid	"mark all articles as read and enter next group with unread articles"
-msgstr	"bütün makaleleri okunmuþ olarak iþaretle ve okunmamýþ makalelerin bulunduðu "
-	"sonraki kümeye gir"
+msgid   "skip next block of included text"
+msgstr  "ekli dosyanýn sonraki öbeðine atla"
 
 #: src/lang.c:357
 #, fuzzy
-msgid	"choose first thread in list"
-msgstr	"listedeki ilk parçacýðý seç"
+msgid   "toggle display of sections hidden by a form-feed (^L) on/off"
+msgstr  "(^L)açýk/kapalý form-besleme tarafýndan gizlenen bölümlerin gösterimini "
+        "deðiþtir"
 
 #: src/lang.c:358
 #, fuzzy
-msgid	"choose last thread in list"
-msgstr	"listedeki son parçacýðý seç"
+msgid   "toggle display of all headers"
+msgstr  "bütün/okunmamýþ makalelerin görünümünü deðiþtir"
 
 #: src/lang.c:359
 #, fuzzy
-msgid	"list articles within current thread (bring up Thread sub-menu)"
-msgstr	"mevcut parçacýk kapsamýndaki makaleleri seç ( Parçacýk alt-menüsünü aç)"
+msgid   "toggle word highlighting on/off"
+msgstr  "açýk/kapalý vurgulayan sözcüðü deðiþtir"
 
 #: src/lang.c:360
 #, fuzzy
-msgid	"mark article as unread"
-msgstr	"makaleyi okunmamýþ olarak iþaretle"
+msgid   "toggle ROT-13 (basic decode) for current article"
+msgstr  "mevcut makale için ROT-13 (temel kod çözücü) deðiþtir"
 
 #: src/lang.c:361
 #, fuzzy
-msgid	"mark current thread or tagged threads as read"
-msgstr	"mevcut parçacýðý veya etiketlenmiþ parçacýklarý okunmuþ olarak iþaretle "
+msgid   "toggle tabwidth 4 <-> 8"
+msgstr  "sekme aralýðýný deðiþtir 4 <-> 8"
 
 #: src/lang.c:362
 #, fuzzy
-msgid	"mark thread as unread"
-msgstr	"parçacýðý okunmamýþ olarak iþaretle"
+msgid   "toggle german TeX style decoding for current article"
+msgstr  "german TeX kod biçemi mevcut makale için deðiþtir"
 
 #: src/lang.c:363
 #, fuzzy
-msgid	"toggle display of all/selected articles"
-msgstr	"Bütün/seçilen makalelerin görünümünü deðiþtir"
+msgid   "toggle display of uuencoded sections"
+msgstr  "metinsele kodlanmýþ bölümlerin gösterimini deðiþtir"
 
 #: src/lang.c:364
 #, fuzzy
-msgid	"display next group"
-msgstr	"sonraki kümeyi görüntüle"
+msgid   "View/pipe/save multimedia attachments"
+msgstr  "çoklu-ortam eklerini Görüntüle/kaydet"
 
 #: src/lang.c:365
 #, fuzzy
-msgid	"display previous group"
-msgstr	"önceki kümeyi görüntüle"
+msgid   "choose first attachment in list"
+msgstr  "listedeki ilk makaleyi seç"
 
 #: src/lang.c:366
 #, fuzzy
-msgid	"toggle all selections (all articles)"
-msgstr	"bütün seçimleri (bütün makaleleri) deðiþtir"
+msgid   "0 - 9\t  choose attachment by number"
+msgstr  "0 - 9\t  sayýya göre makale seç"
 
 #: src/lang.c:367
 #, fuzzy
-msgid	"select group (make \"hot\")"
-msgstr	"küme seç (yap \"hot\")"
-
-#: src/lang.c:368
-#, fuzzy
-msgid	"select thread"
-msgstr	"parçacýk seç"
+msgid   "choose last attachment in list"
+msgstr  "listedeki son makaleyi seç"
 
 #: src/lang.c:369
-#, fuzzy
-msgid	"select threads if at least one unread article is selected"
-msgstr	"en az bir okunmamýþ makale seçilmiþse parçacýk seç)"
+msgid   "pipe attachment into command"
+msgstr  ""
 
 #: src/lang.c:370
 #, fuzzy
-msgid	"select threads that match user specified pattern"
-msgstr	"kullanýcý tanýmlý kalýba uyan baþlýklarý seç"
-
-#: src/lang.c:371
-#, fuzzy
-msgid	"tag all parts of current multipart-message in order"
-msgstr	"mevcut çok-bölümlü iletinin bütün bölümlerini sýrayla etiketle"
+msgid   "pipe raw attachment into command"
+msgstr  "Makale Düzey Komutlarý"
 
 #: src/lang.c:372
-#, fuzzy
-msgid	"0 - 9\t  choose thread by number"
-msgstr	"0 - 9\t  sayýya göre parçacýk seç"
+msgid   "save attachment to disk"
+msgstr  ""
 
 #: src/lang.c:373
 #, fuzzy
-msgid	"toggle limit number of articles to get, and reload"
-msgstr	"alýnacak ve yeniden yüklenecek makalelerin sýnýr sayýsýný deðiþtir."
+msgid   "search for attachments forwards"
+msgstr  "makaleleri yazara göre ileriye doðru ara"
 
 #: src/lang.c:374
 #, fuzzy
-msgid	"toggle display of all/unread articles"
-msgstr	"bütün/okunmamýþ makalelerin görünümünü deðiþtir"
+msgid   "search for attachments backwards"
+msgstr  "makaleleri yazara göre geriye doðru ara"
 
 #: src/lang.c:375
-#, fuzzy
-msgid	"toggle selection of thread"
-msgstr	"parçacýk seçimini deðiþtir"
+msgid   "view attachment"
+msgstr  ""
 
 #: src/lang.c:376
 #, fuzzy
-msgid	"cycle through threading options available"
-msgstr	"kullanýlabilir parçacýk seçenekleriyle çevir"
+msgid   "tag attachment"
+msgstr  "Makale seç> "
 
 #: src/lang.c:377
 #, fuzzy
-msgid	"undo all selections (all articles)"
-msgstr	"bütün seçimleri (bütün makaleleri) geri al"
+msgid   "tag attachments that match user specified pattern"
+msgstr  "kullanýcý tanýmlý kalýba uyan baþlýklarý seç"
 
 #: src/lang.c:378
-#, fuzzy
-msgid	"untag all tagged threads"
-msgstr	"etiketlenmiþ bütün parçacýklarýn etiketini kaldýr"
+msgid   "reverse tagging on all attachments (toggle)"
+msgstr  ""
 
 #: src/lang.c:379
 #, fuzzy
-msgid	"mark all articles in group as read"
-msgstr	"kümedeki bütün makaleleri okunmuþ olarak iþaretle"
+msgid   "untag all tagged attachments"
+msgstr  "etiketlenmiþ bütün parçacýklarýn etiketini kaldýr"
 
 #: src/lang.c:380
 #, fuzzy
-msgid	"mark all articles in group as read and move to next unread group"
-msgstr	"kümedeki bütün makaleleri okumuþ olarak iþaretle ve sonraki okunmamýþ kümeye "
-	"geç"
+msgid   "toggle info message in last line (name/description of attachment)"
+msgstr  "son satýrdaki bilgi iletisini deðiþtir (konu/taným)"
 
 #: src/lang.c:381
 #, fuzzy
-msgid	"choose first group in list"
-msgstr	"listedeki ilk kümeyi seç"
+msgid   "choose first attribute in list"
+msgstr  "listedeki ilk makaleyi seç"
 
 #: src/lang.c:382
 #, fuzzy
-msgid	"choose group by name"
-msgstr	"Ýsme göre küme seç"
+msgid   "0 - 9\t  choose attribute by number"
+msgstr  "0 - 9\t  sayýya göre makale seç"
 
 #: src/lang.c:383
 #, fuzzy
-msgid	"0 - 9\t  choose group by number"
-msgstr	"0 - 9\t  sayýya göre küme seç"
+msgid   "choose last attribute in list"
+msgstr  "listedeki son makaleyi seç"
 
 #: src/lang.c:384
-#, fuzzy
-msgid	"choose range of groups to be affected by next command"
-msgstr	"sonraki komuttan etkilenecek olan kümelerin aralýðýný seç"
+msgid   "reset attribute to a default value"
+msgstr  ""
 
 #: src/lang.c:385
 #, fuzzy
-msgid	"choose last group in list"
-msgstr	"listedeki son kümeyi seç"
+msgid   "search forwards for an attribute"
+msgstr  "ileriye doðru küme ismi ara"
 
 #: src/lang.c:386
 #, fuzzy
-msgid	"mark all articles in chosen group unread"
-msgstr	"seçilen kümedeki bütün makaleleri okunmamýþ olarak iþaretle"
+msgid   "search backwards for an attribute"
+msgstr  "geriye doðru küme ismi ara"
 
 #: src/lang.c:387
 #, fuzzy
-msgid	"move chosen group within list"
-msgstr	"Listede seçilen kümeye git"
+msgid   "select attribute"
+msgstr  "parçacýk seç"
 
 #: src/lang.c:388
-#, fuzzy
-msgid	"choose next group with unread news"
-msgstr	"okunmamýþ haberlerde sonraki kümeyi seç"
+msgid   "toggle back to options menu when invoked from there"
+msgstr  ""
 
-#: src/lang.c:389 src/lang.c:1197
-#, fuzzy
-msgid	"quit"
-msgstr	"çýk"
+#: src/lang.c:389
+#, fuzzy, c-format
+msgid   "report bug or comment via mail to %s"
+msgstr  "hata veya komutu posta aracýlýðýyla bildirin %s"
 
 #: src/lang.c:390
 #, fuzzy
-msgid	"quit without saving configuration changes"
-msgstr	"yapýlandýrabilir deðiþiklikleri kaydetmeden çýk"
+msgid   "choose first option in list"
+msgstr  "listedeki ilk kümeyi seç"
 
 #: src/lang.c:391
 #, fuzzy
-msgid	"read chosen group"
-msgstr	"seçilen kümeyi oku"
+msgid   "0 - 9\t  choose option by number"
+msgstr  "0 - 9\t  sayýya göre küme seç"
 
 #: src/lang.c:392
 #, fuzzy
-msgid	"reset .newsrc (all available articles in groups marked unread)"
-msgstr	"reset .newsrc (kümelerdeki bütün kullanýlabilir makaleler okunmamýþ olarak "
-	"iþaretlendi)"
+msgid   "choose last option in list"
+msgstr  "listedeki son kümeyi seç"
 
 #: src/lang.c:393
 #, fuzzy
-msgid	"search backwards for a group name"
-msgstr	"geriye doðru küme ismi ara"
+msgid   "start scopes menu"
+msgstr  "önceki menüye dön"
 
 #: src/lang.c:394
 #, fuzzy
-msgid	" \t  (all searches are case-insensitive and wrap around)"
-msgstr	" \t  (bütün arayýcýlar büyük/küçük harfe duyarlýdýr ve çevreler)"
+msgid   "search forwards for an option"
+msgstr  "ileriye doðru küme ismi ara"
 
 #: src/lang.c:395
 #, fuzzy
-msgid	"search forwards for a group name"
-msgstr	"ileriye doðru küme ismi ara"
+msgid   "search backwards for an option"
+msgstr  "geriye doðru küme ismi ara"
 
 #: src/lang.c:396
 #, fuzzy
-msgid	"subscribe to chosen group"
-msgstr	"seçilen kümeye abone ol"
+msgid   "select option"
+msgstr  "seç"
 
 #: src/lang.c:397
-#, fuzzy
-msgid	"subscribe to groups that match pattern"
-msgstr	"örüntüye uyan kümelere abone ol"
+msgid   "toggle to attributes menu"
+msgstr  ""
 
 #: src/lang.c:398
 #, fuzzy
-msgid	"reread active file to check for any new news"
-msgstr	"aktif dosyayý yeni haberleri onaylamak için yeniden oku"
+msgid   "choose range of articles to be affected by next command"
+msgstr  "sonraki komuttan etkilenen makalelerin aralýðýný seç"
 
 #: src/lang.c:399
 #, fuzzy
-msgid	"toggle display of group name only or group name plus description"
-msgstr	"sadece küme ismini veya küme ismi ve taným görünümünü deðiþtir"
+msgid   "escape from command prompt"
+msgstr  "komut isteminden çýk"
 
 #: src/lang.c:400
 #, fuzzy
-msgid	"toggle display to show all/unread subscribed groups"
-msgstr	"bütün7okunmamýþ abone olmayan kümeleri göstermek için görünümü deðiþtir"
+msgid   "edit filter file"
+msgstr  "Süz dosyasý okunuyor"
 
 #: src/lang.c:401
 #, fuzzy
-msgid	"unsubscribe from chosen group"
-msgstr	"seçilen küme için abonelikten çýk"
+msgid   "get help"
+msgstr  "yardým al"
 
 #: src/lang.c:402
 #, fuzzy
-msgid	"unsubscribe from groups that match pattern"
-msgstr	"örüntüye uyan bütün kümeler için abonelikten çýk"
+msgid   "display last article viewed"
+msgstr  "görüntülenen son makaleyi göster"
 
 #: src/lang.c:403
 #, fuzzy
-msgid	"sort the list of groups"
-msgstr	"küme listelerini sýrala"
+msgid   "down one line"
+msgstr  "bir satýr aþaðý"
 
 #: src/lang.c:404
 #, fuzzy
-msgid	"toggle display to show all/subscribed groups"
-msgstr	"bütün/abone olmayan kümeleri göstermek için görünümü deðiþtir"
+msgid   "up one line"
+msgstr  "bir satýr aþaðý"
 
 #: src/lang.c:405
 #, fuzzy
-msgid	"0 - 9\t  choose article by number"
-msgstr	"0 - 9\t  sayýya göre makale seç"
+msgid   "go to article chosen by Message-ID"
+msgstr  "Ýleti-kimliði tarafýndn seçilen makaleye git"
 
 #: src/lang.c:406
 #, fuzzy
-msgid	"mark thread as read and return to group index page"
-msgstr	"parçacýðý okunmuþ olarak iþaretle ve küme dizin sayfasýna geri dön"
+msgid   "mail article/thread/hot/pattern/tagged articles to someone"
+msgstr  "makale/parçacýk/hot/örüntü/etiketlenmiþ makaleleri postala"
 
 #: src/lang.c:407
 #, fuzzy
-msgid	"mark thread as read and enter next unread thread or group"
-msgstr	"parçacýðý okunmuþ olarak iþaretle ve sonraki okunmamýþ parçacýða veya kümeye "
-	"gir"
+msgid   "menu of configurable options"
+msgstr  "yapýlandýrabilir seçenekler menüsü"
 
 #: src/lang.c:408
 #, fuzzy
-msgid	"choose first article in list"
-msgstr	"listedeki ilk makaleyi seç"
+msgid   "down one page"
+msgstr  "bir sayfa alta"
 
 #: src/lang.c:409
 #, fuzzy
-msgid	"choose last article in list"
-msgstr	"listedeki son makaleyi seç"
-
-#: src/lang.c:410
-#, fuzzy
-msgid	"mark article or tagged articles as read and move cursor to next unread article"
-msgstr	"makaleyi veya etiketlenen makaleleri okunmuþ olarak iþaretle ve imleçi "
-	"sonraki okunmamýþ makaleye taþý"
+msgid   "up one page"
+msgstr  "bir sayfa yukarýya"
 
 #: src/lang.c:411
 #, fuzzy
-msgid	"read chosen article"
-msgstr	"seçilen makaleyi oku"
+msgid   "post (write) article to current group"
+msgstr  "makaleyi mevcut kümeye gönder(yaz)"
 
 #: src/lang.c:412
 #, fuzzy
-msgid	"Display properties\n"
-	"------------------"
-msgstr	"Özellikleri görüntüle\n"
-	"---------------------"
-
-#: src/lang.c:413
-#, fuzzy
-msgid	"Miscellaneous\n"
-	"-------------"
-msgstr	"Diðer\n"
-	"-----"
+msgid   "post postponed articles"
+msgstr  "ertelenmiþ makaleleri postala"
 
 #: src/lang.c:414
 #, fuzzy
-msgid	"Moving around\n"
-	"-------------"
-msgstr	"Etrafýna taþý\n"
-	"-------------"
+msgid   "list articles posted by you (from posted file)"
+msgstr  "(postalanmýþ dosyadan) tarafýnýzdan postalanan makaleleri listele"
 
 #: src/lang.c:415
 #, fuzzy
-msgid	"Group/thread/article operations\n"
-	"-------------------------------"
-msgstr	"Küme/parçacýk/makale iþlemleri\n"
-	"-------------------------------"
+msgid   "return to previous menu"
+msgstr  "önceki menüye dön"
+
+#: src/lang.c:416
+#, fuzzy
+msgid   "quit tin immediately"
+msgstr  "tin'den hemen çýk"
 
 #: src/lang.c:417
 #, fuzzy
-msgid	"Group Level Commands"
-msgstr	"Küme Düzey Komutlarý"
+msgid   "redraw page"
+msgstr  "sayfayý yeniden çiz"
 
 #: src/lang.c:418
 #, fuzzy
-msgid	"Kill filter added"
-msgstr	"Eklendikten sonra öldür"
+msgid   "save article/thread/hot/pattern/tagged articles to file"
+msgstr  "makale/parçacýk/hot/örüntü/etiketlenmiþ makaleleri dosyaya kaydet"
 
 #: src/lang.c:419
 #, fuzzy
-msgid	"Auto-selection filter added"
-msgstr	"Eklendikten sonra otomatik-seç"
+msgid   "save marked articles automatically without user prompts"
+msgstr  "iþaretlenmiþ makaleleri kullanýcý istemi olmadan otomatik kaydet"
 
 #: src/lang.c:420
-#, fuzzy
-msgid	"All parts tagged"
-msgstr	"Bütün bölümler etiketlendi"
+msgid   "scroll the screen one line down"
+msgstr  ""
 
 #: src/lang.c:421
-#, fuzzy
-msgid	"Storing article for later posting"
-msgstr	"Makale daha sonra postlama için yükleniyor"
+msgid   "scroll the screen one line up"
+msgstr  ""
 
 #: src/lang.c:422
 #, fuzzy
-msgid	"Please enter a valid character"
-msgstr	"Lütfen geçerli bir karakter yazýn"
+msgid   "search for articles by author backwards"
+msgstr  "makaleleri yazara göre geriye doðru ara"
 
 #: src/lang.c:423
-#, fuzzy, c-format
-msgid	"Missing part #%d"
-msgstr	"Eksik bölüm #%d"
+#, fuzzy
+msgid   "search for articles by author forwards"
+msgstr  "makaleleri yazara göre ileriye doðru ara"
 
 #: src/lang.c:424
 #, fuzzy
-msgid	"*** No postponed articles ***"
-msgstr	"*** Ertelenmiþ makale yok ***"
+msgid   "search all articles for a given string (this may take some time)"
+msgstr  "bütün makaleleri verilen dizgi için ara (bu uzun sürebilir)"
 
 #: src/lang.c:425
 #, fuzzy
-msgid	"Not a multi-part message"
-msgstr	"Çok-bölümlü ileti deðil"
+msgid   " \t  (searches are case-insensitive and wrap around to all articles)"
+msgstr  " \t  (arayýcýlar büyük/küçük harfe duyarlýdýr ve bütün makaleleri çevreler)"
 
 #: src/lang.c:426
 #, fuzzy
-msgid	"You are not subscribed to this group"
-msgstr	"Bu kümeye abone deðilsiniz"
+msgid   "search for articles by Subject line backwards"
+msgstr  "makaleleri Konu satýrýna göre geriye doðru ara"
 
 #: src/lang.c:427
 #, fuzzy
-msgid	"No previous expression"
-msgstr	"Önceki ifade yok"
+msgid   "search for articles by Subject line forwards"
+msgstr  "makaleleri Konuya göre ileriye doðru ara"
 
 #: src/lang.c:428
 #, fuzzy
-msgid	"Operation disabled in no-overwrite mode"
-msgstr	"Üstüne yazýlmayan kipte iþlem geçersiz"
+msgid   "repeat last search"
+msgstr  "son aramayý tekrarla"
+
+#: src/lang.c:429
+#, fuzzy
+msgid   "tag current article for reposting/mailing/piping/printing/saving"
+msgstr  "mevcut makaleyi yeniden gönderme/postalama/kanal/yazdýrma/kaydetme için "
+        "etiketle"
 
-#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:430
-#, fuzzy, c-format
-msgid	"%d postponed %s, reuse with ^O...\n"
-msgstr	"%d ertelendi %s, tekrar kullan ^O...\n"
+#, fuzzy
+msgid   "toggle info message in last line (subject/description)"
+msgstr  "son satýrdaki bilgi iletisini deðiþtir (konu/taným)"
 
 #: src/lang.c:431
 #, fuzzy
-msgid	"X-Conversion-Note: multipart/alternative contents have been removed.\n"
-	"  To get the whole article, turn alternative handling OFF in the Option Menu\n"
-msgstr	"X-Çevirim Notu: çok-bölümlü/alternatif içerikler kaldýrýldý.\n"
-	"  Bütün makaleyi almak için, Seçenekler Menüsündeki alternatif kotarmayý\n"
-	"  OFF durumuna getirin\n"
+msgid   "toggle inverse video"
+msgstr  "ters video'yu deðiþtir"
+
+#: src/lang.c:432
+#, fuzzy
+msgid   "toggle mini help menu display"
+msgstr  "mini yardým menüsü görünümünü deðiþtir"
 
 #: src/lang.c:433
-#, fuzzy, c-format
-msgid	"Save filename for %s/%s is a mailbox. Attachment not saved"
-msgstr	"Dosya adýný %s/%s için kaydet bir posta kutusudur. Ek kaydedilmedi"
+#, fuzzy
+msgid   "cycle the display of authors email address, real name, both or neither"
+msgstr  "yazarlarýn e-posta adreslerinin, gerçek isimlerinin, ikisinin veya hiçbirinin "
+        "görünümünü çevir"
 
 #: src/lang.c:434
 #, fuzzy
-msgid	"TeX2Iso encoded article"
-msgstr	"TeX2Iso makaleyi kodladý"
+msgid   "show version information"
+msgstr  "sürüm bilgisini göster"
 
 #: src/lang.c:435
 #, fuzzy
-msgid	"incomplete "
-msgstr	"tamamlanmadý "
+msgid   "mark all articles as read and return to group selection menu"
+msgstr  "bürtümn makaleleri okunmuþ olarak iþaretle ve küme seçme menüsüne geri dön"
+
+#: src/lang.c:436
+#, fuzzy
+msgid   "mark all articles as read and enter next group with unread articles"
+msgstr  "bütün makaleleri okunmuþ olarak iþaretle ve okunmamýþ makalelerin bulunduðu "
+        "sonraki kümeye gir"
 
-#. TODO: replace hardcoded key-names
 #: src/lang.c:437
-#, fuzzy, c-format
-msgid	"\n"
-	"Welcome to %s, a full screen threaded Netnews reader. It can read news "
-	"locally\n"
-	"(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
-	"Transport\n"
-	"Protocol) server. -h lists the available command line options.\n"
-	"\n"
-	"%s  has four newsreading levels, the newsgroup selection page, the group "
-	"index\n"
-	"page, the thread listing page and the article viewer. Help is available at "
-	"each\n"
-	"level by pressing the 'h' command.\n"
-	"\n"
-	"Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
-	"or\n"
-	"Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
-	"\n"
-	"Articles, threads, tagged articles or articles matching a pattern can be "
-	"mailed\n"
-	"('m' command), printed ('o' command), saved ('s' command), piped ('|' "
-	"command).\n"
-	"Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
-	"a\n"
-	"follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
-	"via\n"
-	"mail to an  existing news article author.  The 'M' command allows the "
-	"operation\n"
-	"of %s to be configured via a menu.\n"
-	"\n"
-	"For more information read the manual page, README, INSTALL, TODO and FTP "
-	"files.\n"
-	"Please send bug-reports/comments to %s with the 'R' command.\n"
-msgstr	"\n"
-	"Hoþgeldiniz %s, tam ekran Netnews okuyucu kullandý. Haberleri yerel olarak\n"
-	"(örn. <spool>/news) veya uzaktan (-r seçeneði) NNTP ((Network News Transport\n"
-	"Protocol) sunucusundan okuyabilir. -h kullanýlabilir komut satýrý "
-	"seçeneklerini listeler.\n"
-	"\n"
-	"%s dört haber okuma düzeyine sahiptir, haber grubu seçme sayfasý, grup dizin\n"
-	"sayfasý, kullaným listeleyen sayfa ve makale görüntüleyici. Yardým her\n"
-	"düzeyde 'h' komutuna basýlarak kullanýlabilir.\n"
-	"\n"
-	" 'j' ve 'k' uçbirim yön tuþlarýný kullanarak aþaðý/yukarý taþýyýn. Sayfayý "
-	"aþaðý/yukarý taþýmak için PgUp/PgDn ya da\n"
-	"Ctrl-U ve Ctrl-D kullanýn. Haber grubuna RETURN/TAB'a basarak girin.\n"
-	"\n"
-	"Makaleler, parçacýklar, etiketlenmiþ makaleler veya bir örüntüye uyan "
-	"makaleler postalanabilir\n"
-	"('m' komutu), yazdýr ('o' komutu), kaydet ('s' komutu), kanal ('I' komutu).\n"
-	"Bir haber makalesini postalamak için 'w' komutunu, var olan bir haber "
-	"makalesini takip-et için 'f'/'F' komutunu\n"
-	" ve var olan bir haber makalesi yazarýna posta yoluyla yanýt için 'r'/'R'\n"
-	" komutunu kullanýn. 'M' komutu menü aracýlýðýyla yapýlandýrýlacak %s için\n"
-	" iþleme izin verir.\n"
-	"\n"
-	"Daha fazla bilgi çin el ile sayfasýný, README, INSTALL, TODO ve FTP "
-	"dosyalarýný okuyun.\n"
-	"Hata-raporlarýný ve önerileri 'R' komutu ile %s'e gönderin.\n"
+#, fuzzy
+msgid   "choose first thread in list"
+msgstr  "listedeki ilk parçacýðý seç"
+
+#: src/lang.c:438
+#, fuzzy
+msgid   "choose last thread in list"
+msgstr  "listedeki son parçacýðý seç"
+
+#: src/lang.c:439
+#, fuzzy
+msgid   "list articles within current thread (bring up Thread sub-menu)"
+msgstr  "mevcut parçacýk kapsamýndaki makaleleri seç ( Parçacýk alt-menüsünü aç)"
+
+#: src/lang.c:440
+#, fuzzy
+msgid   "mark article as unread"
+msgstr  "makaleyi okunmamýþ olarak iþaretle"
+
+#: src/lang.c:441
+#, fuzzy
+msgid   "mark current thread, range or tagged threads as read"
+msgstr  "mevcut parçacýðý veya etiketlenmiþ parçacýklarý okunmuþ olarak iþaretle "
+
+#: src/lang.c:442
+#, fuzzy
+msgid   "mark current thread, range or tagged threads as unread"
+msgstr  "mevcut parçacýðý veya etiketlenmiþ parçacýklarý okunmuþ olarak iþaretle "
+
+#: src/lang.c:443
+msgid   "mark current/range/selected/pattern/tagged as read after prompting"
+msgstr  ""
+
+#: src/lang.c:444
+msgid   "mark current/range/selected/pattern/tagged as unread after prompting"
+msgstr  ""
+
+#: src/lang.c:445
+#, fuzzy
+msgid   "toggle display of all/selected articles"
+msgstr  "Bütün/seçilen makalelerin görünümünü deðiþtir"
+
+#: src/lang.c:446
+#, fuzzy
+msgid   "display next group"
+msgstr  "sonraki kümeyi görüntüle"
+
+#: src/lang.c:447
+#, fuzzy
+msgid   "display previous group"
+msgstr  "önceki kümeyi görüntüle"
+
+#: src/lang.c:448
+#, fuzzy
+msgid   "toggle all selections (all articles)"
+msgstr  "bütün seçimleri (bütün makaleleri) deðiþtir"
+
+#: src/lang.c:449
+#, fuzzy
+msgid   "select group (make \"hot\")"
+msgstr  "küme seç (yap \"hot\")"
+
+#: src/lang.c:450
+#, fuzzy
+msgid   "select thread"
+msgstr  "parçacýk seç"
+
+#: src/lang.c:451
+#, fuzzy
+msgid   "select threads if at least one unread article is selected"
+msgstr  "en az bir okunmamýþ makale seçilmiþse parçacýk seç)"
+
+#: src/lang.c:452
+#, fuzzy
+msgid   "select threads that match user specified pattern"
+msgstr  "kullanýcý tanýmlý kalýba uyan baþlýklarý seç"
 
 #: src/lang.c:453
-#, fuzzy, c-format
-msgid	"Invalid  From: %s  line. Read the INSTALL file again."
-msgstr	"Geçersiz Gönderen: %s satýrý. INSTALL dosyasýný yeniden okuyun."
+#, fuzzy
+msgid   "tag all parts of current multipart-message in order"
+msgstr  "mevcut çok-bölümlü iletinin bütün bölümlerini sýrayla etiketle"
+
+#: src/lang.c:454
+#, fuzzy
+msgid   "0 - 9\t  choose thread by number"
+msgstr  "0 - 9\t  sayýya göre parçacýk seç"
 
 #: src/lang.c:455
-msgid	"Invalid multibyte sequence found\n"
-msgstr	""
+#, fuzzy
+msgid   "toggle limit number of articles to get, and reload"
+msgstr  "alýnacak ve yeniden yüklenecek makalelerin sýnýr sayýsýný deðiþtir."
+
+#: src/lang.c:456
+#, fuzzy
+msgid   "toggle display of all/unread articles"
+msgstr  "bütün/okunmamýþ makalelerin görünümünü deðiþtir"
 
 #: src/lang.c:457
-#, fuzzy, c-format
-msgid	"Invalid  Sender:-header %s"
-msgstr	"Geçersiz Gönderen: -baþlýk %s"
+#, fuzzy
+msgid   "toggle selection of thread"
+msgstr  "parçacýk seçimini deðiþtir"
 
 #: src/lang.c:458
 #, fuzzy
-msgid	"Inverse video disabled"
-msgstr	"Ters video geçersiz"
+msgid   "cycle through threading options available"
+msgstr  "kullanýlabilir parçacýk seçenekleriyle çevir"
 
 #: src/lang.c:459
 #, fuzzy
-msgid	"Inverse video enabled"
-msgstr	"Ters video geçerli"
+msgid   "undo all selections (all articles)"
+msgstr  "bütün seçimleri (bütün makaleleri) geri al"
+
+#: src/lang.c:460
+#, fuzzy
+msgid   "untag all tagged threads"
+msgstr  "etiketlenmiþ bütün parçacýklarýn etiketini kaldýr"
 
 #: src/lang.c:461
-#, fuzzy, c-format
-msgid	"Missing definition for %s\n"
-msgstr	"Taným eksik %s\n"
+msgid   "add new scope"
+msgstr  ""
 
 #: src/lang.c:462
-#, fuzzy, c-format
-msgid	"Invalid key definition '%s'\n"
-msgstr	"Geçersiz tuþ tanýmý '%s'\n"
+#, fuzzy
+msgid   "delete scope"
+msgstr  "Örüntü alanýný seç: "
 
 #: src/lang.c:463
-#, fuzzy, c-format
-msgid	"Invalid keyname '%s'\n"
-msgstr	"Geçersiz anahtar sözcük '%s'\n"
+#, fuzzy
+msgid   "edit attributes file"
+msgstr  "Öznitelikler dosylasýný yazýyor..."
 
 #: src/lang.c:464
-#, c-format
-msgid	"Keymap file was upgraded to version %s\n"
-msgstr	""
+#, fuzzy
+msgid   "choose first scope in list"
+msgstr  "listedeki ilk kümeyi seç"
 
 #: src/lang.c:465
-#, fuzzy, c-format
-msgid	"Kill From:     [%s] (y/n): "
-msgstr	"Göndereni yok et:     [%s] (y/n): "
+#, fuzzy
+msgid   "0 - 9\t  choose scope by number"
+msgstr  "0 - 9\t  sayýya göre küme seç"
 
 #: src/lang.c:466
 #, fuzzy
-msgid	"Kill Lines: (</>num): "
-msgstr	"Satýrlarý yok et:(</>num): "
+msgid   "choose last scope in list"
+msgstr  "listedeki son kümeyi seç"
 
 #: src/lang.c:467
-#, fuzzy
-msgid	"Kill Article Menu"
-msgstr	"Makale menüsünü yok et"
+msgid   "move scope"
+msgstr  ""
 
 #: src/lang.c:468
-#, fuzzy, c-format
-msgid	"Kill Msg-Id:   [%s] (f/l/o/n): "
-msgstr	"Ýleti-Kimliðini yko et:   [%s] (f/l/o/n): "
+msgid   "rename scope"
+msgstr  ""
 
 #: src/lang.c:469
 #, fuzzy
-msgid	"Kill pattern scope  : "
-msgstr	"Örüntü kapsamýný yok et: "
+msgid   "select scope"
+msgstr  "kabuk çýkýþý"
 
 #: src/lang.c:470
-#, fuzzy, c-format
-msgid	"Kill Subject:  [%s] (y/n): "
-msgstr	"Konuyu yok et: [%s] (y/n): "
+#, fuzzy
+msgid   "mark all articles in group as read"
+msgstr  "kümedeki bütün makaleleri okunmuþ olarak iþaretle"
 
 #: src/lang.c:471
 #, fuzzy
-msgid	"Kill text pattern   : "
-msgstr	"Metin örüntüsünü yok et : "
+msgid   "mark all articles in group as read and move to next unread group"
+msgstr  "kümedeki bütün makaleleri okumuþ olarak iþaretle ve sonraki okunmamýþ kümeye "
+        "geç"
 
 #: src/lang.c:472
 #, fuzzy
-msgid	"Kill time in days   : "
-msgstr	"Zamaný gün olarak yok et: "
+msgid   "choose first group in list"
+msgstr  "listedeki ilk kümeyi seç"
+
+#: src/lang.c:473
+#, fuzzy
+msgid   "choose group by name"
+msgstr  "Ýsme göre küme seç"
 
 #: src/lang.c:474
 #, fuzzy
-msgid	"Last"
-msgstr	"Son"
+msgid   "0 - 9\t  choose group by number"
+msgstr  "0 - 9\t  sayýya göre küme seç"
 
 #: src/lang.c:475
 #, fuzzy
-msgid	"-- Last response --"
-msgstr	"-- Son yanýt --"
+msgid   "choose range of groups to be affected by next command"
+msgstr  "sonraki komuttan etkilenecek olan kümelerin aralýðýný seç"
 
 #: src/lang.c:476
-#, fuzzy, c-format
-msgid	"Lines %s  "
-msgstr	"Satýrlar %s "
+#, fuzzy
+msgid   "choose last group in list"
+msgstr  "listedeki son kümeyi seç"
+
+#: src/lang.c:477
+#, fuzzy
+msgid   "mark all articles in chosen group unread"
+msgstr  "seçilen kümedeki bütün makaleleri okunmamýþ olarak iþaretle"
 
 #: src/lang.c:478
 #, fuzzy
-msgid	"Message-ID: line              "
-msgstr	"Ýleti-Kimliði: satýr             "
+msgid   "move chosen group within list"
+msgstr  "Listede seçilen kümeye git"
 
 #: src/lang.c:479
 #, fuzzy
-msgid	"Mail"
-msgstr	"Postalandý"
+msgid   "choose next group with unread news"
+msgstr  "okunmamýþ haberlerde sonraki kümeyi seç"
 
-#: src/lang.c:480
+#: src/lang.c:480 src/lang.c:1351
 #, fuzzy
-msgid	"mailbox "
-msgstr	"posta kutusu "
+msgid   "quit"
+msgstr  "çýk"
 
 #: src/lang.c:481
-#, fuzzy, c-format
-msgid	"Mail article(s) to [%.*s]> "
-msgstr	"Makaleleri postala [%.*s]> "
+#, fuzzy
+msgid   "quit without saving configuration changes"
+msgstr  "yapýlandýrabilir deðiþiklikleri kaydetmeden çýk"
 
 #: src/lang.c:482
-#, fuzzy, c-format
-msgid	"Mailing log to %s\n"
-msgstr	"Günlüðü postalýyor %s\n"
+#, fuzzy
+msgid   "read chosen group"
+msgstr  "seçilen kümeyi oku"
 
 #: src/lang.c:483
 #, fuzzy
-msgid	"Mail bug report..."
-msgstr	"Hata raporu postala..."
+msgid   "reset .newsrc (all available articles in groups marked unread)"
+msgstr  "reset .newsrc (kümelerdeki bütün kullanýlabilir makaleler okunmamýþ olarak "
+        "iþaretlendi)"
 
 #: src/lang.c:484
-#, fuzzy, c-format
-msgid	"Mail BUG REPORT to %s?"
-msgstr	"HATA RAPORUNU postala %s?"
+#, fuzzy
+msgid   "search backwards for a group name"
+msgstr  "geriye doðru küme ismi ara"
 
 #: src/lang.c:485
 #, fuzzy
-msgid	"Mailed"
-msgstr	"Postalandý"
+msgid   " \t  (all searches are case-insensitive and wrap around)"
+msgstr  " \t  (bütün arayýcýlar büyük/küçük harfe duyarlýdýr ve çevreler)"
 
 #: src/lang.c:486
-#, fuzzy, c-format
-msgid	"Mailing to %s..."
-msgstr	"Postalanýyor %s..."
+#, fuzzy
+msgid   "search forwards for a group name"
+msgstr  "ileriye doðru küme ismi ara"
 
 #: src/lang.c:487
 #, fuzzy
-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	"# (Mail/Save) aktif dosya. Format haber aktif dosyasyla ayný:\n"
-	"# grup ismi  max.artnum  min.artnum  /dir\n"
-	"# 4. alan basedir(örn.~/Mail or ~/News)\n"
-	"#\n"
+msgid   "subscribe to chosen group"
+msgstr  "seçilen kümeye abone ol"
+
+#: src/lang.c:488
+#, fuzzy
+msgid   "subscribe to groups that match pattern"
+msgstr  "örüntüye uyan kümelere abone ol"
+
+#: src/lang.c:489
+#, fuzzy
+msgid   "reread active file to check for any new news"
+msgstr  "aktif dosyayý yeni haberleri onaylamak için yeniden oku"
 
 #: src/lang.c:490
-#, fuzzy, c-format
-msgid	"%s marked as unread"
-msgstr	"%s okunmamýþ olarak iþaretlendi"
+#, fuzzy
+msgid   "toggle display of group name only or group name plus description"
+msgstr  "sadece küme ismini veya küme ismi ve taným görünümünü deðiþtir"
 
 #: src/lang.c:491
-#, fuzzy, c-format
-msgid	"Marked %d of %d tagged %s as read"
-msgstr	"%d içerisinde %d iþaretlendi %s okunmuþ olarak etiketlendi"
+#, fuzzy
+msgid   "toggle display to show all/unread subscribed groups"
+msgstr  "bütün7okunmamýþ abone olmayan kümeleri göstermek için görünümü deðiþtir"
 
 #: src/lang.c:492
-#, fuzzy, c-format
-msgid	"Mark all articles as read%s?"
-msgstr	"Bütün makaleleri okunmuþ olarak iþaretle%s?"
+#, fuzzy
+msgid   "unsubscribe from chosen group"
+msgstr  "seçilen küme için abonelikten çýk"
 
 #: src/lang.c:493
-#, fuzzy, c-format
-msgid	"Mark %s=tagged articles, %s=current article, %s=quit: "
-msgstr	"Ýþaretle %s=etiketlenen makaleler, %s=mevcut makale, %s=çýk: "
+#, fuzzy
+msgid   "unsubscribe from groups that match pattern"
+msgstr  "örüntüye uyan bütün kümeler için abonelikten çýk"
 
 #: src/lang.c:494
-#, fuzzy, c-format
-msgid	"Mark group %s as read?"
-msgstr	"Küme %s 'i okunmuþ olarak iþaretle?"
+#, fuzzy
+msgid   "sort the list of groups"
+msgstr  "küme listelerini sýrala"
 
 #: src/lang.c:495
-#, fuzzy, c-format
-msgid	"Mark thread as read%s?"
-msgstr	"Parçacýk %s 'i okunmuþ olarak iþaretle?"
+#, fuzzy
+msgid   "toggle display to show all/subscribed groups"
+msgstr  "bütün/abone olmayan kümeleri göstermek için görünümü deðiþtir"
 
 #: src/lang.c:496
-#, 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: "
+#, fuzzy
+msgid   "0 - 9\t  choose article by number"
+msgstr  "0 - 9\t  sayýya göre makale seç"
 
 #: src/lang.c:497
-#, fuzzy, c-format
-msgid	"Matching %s groups..."
-msgstr	"%s kümelerini eþleþtiriyor..."
+#, fuzzy
+msgid   "mark thread as read and return to group index page"
+msgstr  "parçacýðý okunmuþ olarak iþaretle ve küme dizin sayfasýna geri dön"
 
-#: src/lang.c:498 src/lang.c:502
-#, 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:498
+#, fuzzy
+msgid   "mark thread as read and enter next unread thread or group"
+msgstr  "parçacýðý okunmuþ olarak iþaretle ve sonraki okunmamýþ parçacýða veya kümeye "
+        "gir"
 
 #: src/lang.c:499
-#, 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"
+#, fuzzy
+msgid   "choose first article in list"
+msgstr  "listedeki ilk makaleyi seç"
 
 #: src/lang.c:500
-#, 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"
+#, fuzzy
+msgid   "choose last article in list"
+msgstr  "listedeki son makaleyi seç"
 
 #: src/lang.c:501
-#, 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"
+#, fuzzy
+msgid   "mark art, range or tagged arts as read; move crsr to next unread art"
+msgstr  "makaleyi veya etiketlenen makaleleri okunmuþ olarak iþaretle ve imleçi "
+        "sonraki okunmamýþ makaleye taþý"
+
+#: src/lang.c:502
+#, fuzzy
+msgid   "mark article, range or tagged articles as unread"
+msgstr  "makaleyi okunmamýþ olarak iþaretle"
 
 #: src/lang.c:503
-#, 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"
+#, fuzzy
+msgid   "mark current thread as unread"
+msgstr  "parçacýðý okunmamýþ olarak iþaretle"
 
 #: src/lang.c:504
-#, 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"
+#, fuzzy
+msgid   "read chosen article"
+msgstr  "seçilen makaleyi oku"
 
 #: src/lang.c:505
-#, 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"
+#, fuzzy
+msgid   "Display properties\n"
+        "------------------"
+msgstr  "Özellikleri görüntüle\n"
+        "---------------------"
 
 #: src/lang.c:506
-#, 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"
+#, fuzzy
+msgid   "Miscellaneous\n"
+        "-------------"
+msgstr  "Diðer\n"
+        "-----"
 
 #: src/lang.c:507
-#, 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"
+#, fuzzy
+msgid   "Moving around\n"
+        "-------------"
+msgstr  "Etrafýna taþý\n"
+        "-------------"
 
 #: src/lang.c:508
-#, 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"
+#, fuzzy
+msgid   "Group/thread/article operations\n"
+        "-------------------------------"
+msgstr  "Küme/parçacýk/makale iþlemleri\n"
+        "-------------------------------"
 
 #: src/lang.c:509
 #, fuzzy
-msgid	"--More--"
-msgstr	"--Tümü--"
+msgid   "Attachment operations\n"
+        "---------------------"
+msgstr  "Özellikleri görüntüle\n"
+        "---------------------"
 
 #: src/lang.c:510
-#, fuzzy, c-format
-msgid	"Moving %s..."
-msgstr	"Taþýnan %s..."
+#, fuzzy
+msgid   "Attribute operations\n"
+        "--------------------"
+msgstr  "Özellikleri görüntüle\n"
+        "---------------------"
+
+#: src/lang.c:511
+#, fuzzy
+msgid   "Option operations\n"
+        "-----------------"
+msgstr  "Özellikleri görüntüle\n"
+        "---------------------"
 
 #: src/lang.c:512
 #, fuzzy
-msgid	", name: "
-msgstr	", isim: "
+msgid   "Scope operations\n"
+        "----------------"
+msgstr  "Özellikleri görüntüle\n"
+        "---------------------"
 
 #: src/lang.c:513
-#, fuzzy, c-format
-msgid	"Goto newsgroup [%s]> "
-msgstr	"Haber grubuna gidin [%s]> "
+#, fuzzy
+msgid   "URL operations\n"
+        "--------------"
+msgstr  "Özellikleri görüntüle\n"
+        "---------------------"
 
 #: src/lang.c:514
 #, fuzzy
-msgid	"newsgroups"
-msgstr	"haber gruplarý"
+msgid   "choose first URL in list"
+msgstr  "listedeki ilk kümeyi seç"
 
 #: src/lang.c:515
-#, fuzzy, c-format
-msgid	"Position %s in group list (1,2,..,$) [%d]> "
-msgstr	"Grup listesinde %s konumlayýn (1,2,..,$) [%d]> "
+#, fuzzy
+msgid   "0 - 9\t  choose URL by number"
+msgstr  "0 - 9\t  sayýya göre küme seç"
 
 #: src/lang.c:516
 #, fuzzy
-msgid	"newsgroup"
-msgstr	"haber gruplarý"
+msgid   "choose last URL in list"
+msgstr  "listedeki son kümeyi seç"
 
 #: src/lang.c:517
 #, fuzzy
-msgid	"Try and save newsrc file again?"
-msgstr	"Newsrc dosyasýný kaydetmeyi tekrar dene?"
+msgid   "search for URLs forwards"
+msgstr  "makaleleri yazara göre ileriye doðru ara"
 
 #: src/lang.c:518
 #, 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."
+msgid   "search for URLs backwards"
+msgstr  "makaleleri yazara göre geriye doðru ara"
 
 #: src/lang.c:519
-#, fuzzy
-msgid	"newsrc file saved successfully.\n"
-msgstr	"newsrc dosyasý baþarýyla kaydedildi.\n"
+msgid   "Open URL in browser"
+msgstr  ""
 
 #: src/lang.c:520
 #, fuzzy
-msgid	"-- Next response --"
-msgstr	"-- Sonraki yanýt --"
-
-#: src/lang.c:521
-#, fuzzy, c-format
-msgid	"NNTP authorization password not found for %s"
-msgstr	"NNTP yetki þifresi %s için bulunamadý"
+msgid   "toggle info message in last line (URL)"
+msgstr  "son satýrdaki bilgi iletisini deðiþtir (konu/taným)"
 
 #: src/lang.c:522
 #, fuzzy
-msgid	"No  "
-msgstr	"Hayýr"
+msgid   "Group Level Commands"
+msgstr  "Küme Düzey Komutlarý"
 
 #: src/lang.c:523
 #, fuzzy
-msgid	"*** No articles ***"
-msgstr	"*** Makale yok ***"
+msgid   "Kill filter added"
+msgstr  "Eklendikten sonra öldür"
 
 #: src/lang.c:524
 #, fuzzy
-msgid	"No articles have been posted"
-msgstr	"Hiçbir makale gönderilmedi"
+msgid   "Auto-selection filter added"
+msgstr  "Eklendikten sonra otomatik-seç"
 
 #: src/lang.c:525
 #, fuzzy
-msgid	"*** No description ***"
-msgstr	"*** Taným yok ***"
+msgid   "All parts tagged"
+msgstr  "Bütün bölümler etiketlendi"
 
 #: src/lang.c:526
 #, fuzzy
-msgid	"No filename"
-msgstr	"Dosya adý yok"
+msgid   "Storing article for later posting"
+msgstr  "Makale daha sonra postlama için yükleniyor"
 
 #: src/lang.c:527
 #, fuzzy
-msgid	"No group"
-msgstr	"Küme yok"
+msgid   "Please enter a valid character"
+msgstr  "Lütfen geçerli bir karakter yazýn"
 
 #: src/lang.c:528
-#, fuzzy
-msgid	"*** No groups ***"
-msgstr	"*** Kümeler yok ***"
+#, fuzzy, c-format
+msgid   "Missing part #%d"
+msgstr  "Eksik bölüm #%d"
 
 #: src/lang.c:529
 #, fuzzy
-msgid	"No more groups to read"
-msgstr	"Okunacak küme kalmadý"
+msgid   "*** No postponed articles ***"
+msgstr  "*** Ertelenmiþ makale yok ***"
 
 #: src/lang.c:530
 #, fuzzy
-msgid	"No last message"
-msgstr	"Son ileti yok"
+msgid   "Not a multi-part message"
+msgstr  "Çok-bölümlü ileti deðil"
 
 #: src/lang.c:531
 #, fuzzy
-msgid	"No mail address"
-msgstr	"Posta adresi yok"
+msgid   "You are not subscribed to this group"
+msgstr  "Bu kümeye abone deðilsiniz"
 
 #: src/lang.c:532
 #, fuzzy
-msgid	"No articles marked for saving"
-msgstr	"Kaydetmek için hiçbir makale iþaretlenmedi"
+msgid   "No previous expression"
+msgstr  "Önceki ifade yok"
 
 #: src/lang.c:533
 #, fuzzy
-msgid	"No match"
-msgstr	"Eþ yok"
-
-#: src/lang.c:534
-#, fuzzy
-msgid	"No more groups"
-msgstr	"Baþka küme yok"
+msgid   "Operation disabled in no-overwrite mode"
+msgstr  "Üstüne yazýlmayan kipte iþlem geçersiz"
 
+#. TODO: replace hardcoded key-name in txt_info_postponed
 #: src/lang.c:535
-#, fuzzy
-msgid	"No newsgroups"
-msgstr	"Haber gruplarý yok"
+#, fuzzy, c-format
+msgid   "%d postponed %s, reuse with ^O...\n"
+msgstr  "%d ertelendi %s, tekrar kullan ^O...\n"
 
 #: src/lang.c:536
 #, fuzzy
-msgid	"No next unread article"
-msgstr	"Sonraki okunmamýþ makale yok"
-
-#: src/lang.c:537
-#, fuzzy
-msgid	"No previous group"
-msgstr	"Önceki küme yok"
+msgid   "X-Conversion-Note: multipart/alternative contents have been removed.\n"
+        "  To get the whole article, turn alternative handling OFF in the Option Menu\n"
+msgstr  "X-Çevirim Notu: çok-bölümlü/alternatif içerikler kaldýrýldý.\n"
+        "  Bütün makaleyi almak için, Seçenekler Menüsündeki alternatif kotarmayý\n"
+        "  OFF durumuna getirin\n"
 
 #: src/lang.c:538
-#, fuzzy
-msgid	"No previous unread article"
-msgstr	"Önceki okunmamýþ makale yok"
+#, fuzzy, c-format
+msgid   "Save filename for %s/%s is a mailbox. Attachment not saved"
+msgstr  "Dosya adýný %s/%s için kaydet bir posta kutusudur. Ek kaydedilmedi"
 
 #: src/lang.c:539
 #, fuzzy
-msgid	"No responses"
-msgstr	"Yanýt yok"
+msgid   "TeX2Iso encoded article"
+msgstr  "TeX2Iso makaleyi kodladý"
 
 #: src/lang.c:540
 #, 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
-#, fuzzy
-msgid	"No search string"
-msgstr	"Arama dizgisi yok"
+msgid   "incomplete "
+msgstr  "tamamlanmadý "
 
+#. TODO: replace hardcoded key-names
 #: src/lang.c:542
-#, fuzzy
-msgid	"No subject"
-msgstr	"Konu yok"
-
-#: src/lang.c:544
-#, 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
-#, 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
-#, 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
-#, 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
-#, 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
 #, 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
-#, fuzzy
-msgid	"Newsgroup does not exist on this server"
-msgstr	"Bu sunucuda haber grubu yok"
+msgid   "\n"
+        "Welcome to %s, a full screen threaded Netnews reader. It can read news "
+        "locally\n"
+        "(ie. <spool>/news) or remotely (-r option)  from a NNTP (Network News "
+        "Transport\n"
+        "Protocol) server. -h lists the available command line options.\n"
+        "\n"
+        "%s  has four newsreading levels, the newsgroup selection page, the group "
+        "index\n"
+        "page, the thread listing page and the article viewer. Help is available at "
+        "each\n"
+        "level by pressing the 'h' command.\n"
+        "\n"
+        "Move up/down by using the terminal arrow keys or 'j' and 'k'.  Use PgUp/PgDn "
+        "or\n"
+        "Ctrl-U and Ctrl-D to page up/down. Enter a newsgroup by pressing RETURN/TAB.\n"
+        "\n"
+        "Articles, threads, tagged articles or articles matching a pattern can be "
+        "mailed\n"
+        "('m' command), printed ('o' command), saved ('s' command), piped ('|' "
+        "command).\n"
+        "Use  the 'w' command  to post a  news article,  the 'f'/'F' commands  to post "
+        "a\n"
+        "follow-up to  an existing  news article  and the 'r'/'R' commands  to reply "
+        "via\n"
+        "mail to an  existing news article author.  The 'M' command allows the "
+        "operation\n"
+        "of %s to be configured via a menu.\n"
+        "\n"
+        "For more information read the manual page, README, INSTALL, TODO and FTP "
+        "files.\n"
+        "Please send bug-reports/comments to %s with the 'R' command.\n"
+msgstr  "\n"
+        "Hoþgeldiniz %s, tam ekran Netnews okuyucu kullandý. Haberleri yerel olarak\n"
+        "(örn. <spool>/news) veya uzaktan (-r seçeneði) NNTP ((Network News Transport\n"
+        "Protocol) sunucusundan okuyabilir. -h kullanýlabilir komut satýrý "
+        "seçeneklerini listeler.\n"
+        "\n"
+        "%s dört haber okuma düzeyine sahiptir, haber grubu seçme sayfasý, grup dizin\n"
+        "sayfasý, kullaným listeleyen sayfa ve makale görüntüleyici. Yardým her\n"
+        "düzeyde 'h' komutuna basýlarak kullanýlabilir.\n"
+        "\n"
+        " 'j' ve 'k' uçbirim yön tuþlarýný kullanarak aþaðý/yukarý taþýyýn. Sayfayý "
+        "aþaðý/yukarý taþýmak için PgUp/PgDn ya da\n"
+        "Ctrl-U ve Ctrl-D kullanýn. Haber grubuna RETURN/TAB'a basarak girin.\n"
+        "\n"
+        "Makaleler, parçacýklar, etiketlenmiþ makaleler veya bir örüntüye uyan "
+        "makaleler postalanabilir\n"
+        "('m' komutu), yazdýr ('o' komutu), kaydet ('s' komutu), kanal ('I' komutu).\n"
+        "Bir haber makalesini postalamak için 'w' komutunu, var olan bir haber "
+        "makalesini takip-et için 'f'/'F' komutunu\n"
+        " ve var olan bir haber makalesi yazarýna posta yoluyla yanýt için 'r'/'R'\n"
+        " komutunu kullanýn. 'M' komutu menü aracýlýðýyla yapýlandýrýlacak %s için\n"
+        " iþleme izin verir.\n"
+        "\n"
+        "Daha fazla bilgi çin el ile sayfasýný, README, INSTALL, TODO ve FTP "
+        "dosyalarýný okuyun.\n"
+        "Hata-raporlarýný ve önerileri 'R' komutu ile %s'e gönderin.\n"
+
+#: src/lang.c:558
+#, fuzzy, c-format
+msgid   "Invalid  From: %s  line. Read the INSTALL file again."
+msgstr  "Geçersiz Gönderen: %s satýrý. INSTALL dosyasýný yeniden okuyun."
+
+#: src/lang.c:560
+msgid   "Invalid multibyte sequence found\n"
+msgstr  ""
 
-#: src/lang.c:552
+#: src/lang.c:563
 #, fuzzy, c-format
-msgid	"Group %s not found in active file"
-msgstr	"Küme %s aktif dosyada bulunamadý"
+msgid   "Invalid  Sender:-header %s"
+msgstr  "Geçersiz Gönderen: -baþlýk %s"
 
-#: src/lang.c:553
+#: src/lang.c:565
 #, 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: "
+msgid   "Inverse video disabled"
+msgstr  "Ters video geçersiz"
 
-#: src/lang.c:554
+#: src/lang.c:566
 #, 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: "
+msgid   "Inverse video enabled"
+msgstr  "Ters video geçerli"
 
-#: src/lang.c:555
+#: src/lang.c:568
 #, fuzzy, c-format
-msgid	"# NNTP-server -> newsrc translation table and NNTP-server\n"
-	"# shortname list for %s %s\n"
-	"#\n"
-	"# the format of this file is\n"
-	"#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# if <newsrc file> is given without path, $HOME is assumed as its location\n"
-	"#\n"
-	"# examples:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-msgstr	"# NNTP-sunucu -> newsrc çeviri dosyasý ile NNTP-sunucu\n"
-	"#   %s %s için kýsaltma listesi\n"
-	"#\n"
-	"# bu dosyanýn biçimi\n"
-	"#  <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
-	"#\n"
-	"# eðer <newsrc file> yol gösterilmeden verildiyse, $HOME onun yeri "
-	"varsayýlýr\n"
-	"#\n"
-	"# örnekler:\n"
-	"#   news.tin.org  .newsrc-tin.org  tinorg\n"
-	"#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n"
-	"#\n"
-
-#: src/lang.c:562
-#, fuzzy
-msgid	"Only"
-msgstr	"Sadece"
+msgid   "Missing definition for %s\n"
+msgstr  "Taným eksik %s\n"
 
-#: src/lang.c:563
+#: src/lang.c:569
 #, fuzzy, c-format
-msgid	"Option not enabled. Recompile with %s."
-msgstr	"Seçenek etkin kýlýnmadý. Yeniden derle %s."
-
-#: src/lang.c:564
-#, fuzzy
-msgid	"Options Menu"
-msgstr	"Seçenekler menüsü"
+msgid   "Invalid key definition '%s'\n"
+msgstr  "Geçersiz tuþ tanýmý '%s'\n"
 
-#: src/lang.c:567
+#: src/lang.c:570
 #, fuzzy, c-format
-msgid	"Error in regex: %s at pos. %d '%s'"
-msgstr	"Regex'de hata: poda %s. %d '%s'"
+msgid   "Invalid keyname '%s'\n"
+msgstr  "Geçersiz anahtar sözcük '%s'\n"
 
-#: src/lang.c:568
-#, fuzzy, c-format
-msgid	"Error in regex: pcre internal error %d"
-msgstr	"Regex'de hata: pcre iç hata %d"
+#: src/lang.c:571
+#, c-format
+msgid   "Keymap file was upgraded to version %s\n"
+msgstr  ""
 
-#: src/lang.c:569
+#: src/lang.c:572
 #, fuzzy, c-format
-msgid	"Error in regex: study - pcre internal error %s"
-msgstr	"Regex'de hata: incele - pcre iç hata %s"
+msgid   "Kill From:     [%s] (y/n): "
+msgstr  "Göndereni yok et:     [%s] (y/n): "
 
-#: src/lang.c:570
+#: src/lang.c:573
 #, fuzzy
-msgid	"Post a followup..."
-msgstr	"Takip edici gönder..."
+msgid   "Kill Lines: (</>num): "
+msgstr  "Satýrlarý yok et:(</>num): "
 
-#. 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	"Makaleyi gönderirken hata oluþtu. Bu makalenin düzeltibeleceðini "
-	"düþünüyorsanýz, makaleyi erteleyebilir ve tekrar ^O komutunu kulanarak "
-	"ulaþabilirsiniz.\n"
+msgid   "Kill Article Menu"
+msgstr  "Makale menüsünü yok et"
 
 #: src/lang.c:575
-#, fuzzy
-msgid	"Posted articles history"
-msgstr	"Gönderilmiþ makalelerin geçmiþi"
+#, fuzzy, c-format
+msgid   "Kill Msg-Id:   [%s] (f/l/o/n): "
+msgstr  "Ýleti-Kimliðini yko et:   [%s] (f/l/o/n): "
 
 #: src/lang.c:576
-#, fuzzy, c-format
-msgid	"Post to newsgroup(s) [%s]> "
-msgstr	"habergrup(lar)a gönder [%s]> "
+#, fuzzy
+msgid   "Kill pattern scope  : "
+msgstr  "Örüntü kapsamýný yok et: "
 
 #: src/lang.c:577
-#, fuzzy
-msgid	"-- post processing started --"
-msgstr	"-- gönderme iþlemi baþlatýldý --"
+#, fuzzy, c-format
+msgid   "Kill Subject:  [%s] (y/n): "
+msgstr  "Konuyu yok et: [%s] (y/n): "
 
 #: src/lang.c:578
 #, fuzzy
-msgid	"-- post processing completed --"
-msgstr	"-- gönderme iþlemi tamamlandý --"
+msgid   "Kill text pattern   : "
+msgstr  "Metin örüntüsünü yok et : "
 
 #: src/lang.c:579
-#, fuzzy, c-format
-msgid	"Post subject [%s]> "
-msgstr	"Konuyu gönder (%s)> "
-
-#: src/lang.c:580
 #, 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"
+msgid   "Kill time in days   : "
+msgstr  "Zamaný gün olarak yok et: "
 
 #: src/lang.c:581
 #, fuzzy
-msgid	"Posting article..."
-msgstr	"Makale gönderiliyor..."
+msgid   "Last"
+msgstr  "Son"
 
 #: src/lang.c:582
-#, fuzzy, c-format
-msgid	"Post postponed articles [%%s]? (%s/%s/%s/%s/%s): "
-msgstr	"Ertelenmiþ makaleleri gönder [%%s]? (%s/%s/%s/%s/%s): "
+#, fuzzy
+msgid   "-- Last response --"
+msgstr  "-- Son yanýt --"
 
 #: src/lang.c:583
 #, fuzzy, c-format
-msgid	"Hot %s"
-msgstr	"Hot %s"
-
-#: src/lang.c:584
-#, fuzzy, c-format
-msgid	"Tagged %s"
-msgstr	"%s imlenmiþ"
+msgid   "Lines %s  "
+msgstr  "Satýrlar %s "
 
 #: src/lang.c:585
-#, fuzzy, c-format
-msgid	"Untagged %s"
-msgstr	"%s imlenmemiþ"
+#, fuzzy
+msgid   "Mail"
+msgstr  "Postalandý"
 
 #: src/lang.c:586
 #, fuzzy
-msgid	"Processing mail messages marked for deletion."
-msgstr	"Silinmek için iþaretlenen iletilerin iþletilmesi."
+msgid   "mailbox "
+msgstr  "posta kutusu "
 
 #: src/lang.c:587
-#, fuzzy
-msgid	"Processing saved articles marked for deletion."
-msgstr	"Silinmek için iþaretlenen kaydedilmiþ makalelerin iþletilmesi."
+#, fuzzy, c-format
+msgid   "Mail article(s) to [%.*s]> "
+msgstr  "Makaleleri postala [%.*s]> "
 
 #: src/lang.c:588
 #, fuzzy, c-format
-msgid	"Accept Followup-To? %s=post, %s=ignore, %s=quit: "
-msgstr	"Takip edilsin? %s=gönder, %s=yoksay, %s=terk et: "
+msgid   "Mailing log to %s\n"
+msgstr  "Günlüðü postalýyor %s\n"
 
 #: src/lang.c:589
 #, fuzzy
-msgid	"Article unchanged, abort mailing?"
-msgstr	"Makale deðiþtirilmesini, posta iptal edilsin mi?"
+msgid   "Mail bug report..."
+msgstr  "Hata raporu postala..."
 
 #: src/lang.c:590
 #, fuzzy, c-format
-msgid	"Do you want to see postponed articles (%d)?"
-msgstr	"Ertelediðiniz makaleleri görmek ister misiniz (%d)?"
+msgid   "Mail BUG REPORT to %s?"
+msgstr  "HATA RAPORUNU postala %s?"
 
-#: src/lang.c:592
+#: src/lang.c:591
 #, fuzzy
-msgid	"Add quick kill filter?"
-msgstr	"Öldürücü hýzlý süzü eklensin mi?"
+msgid   "Mailed"
+msgstr  "Postalandý"
 
-#: src/lang.c:593
-#, fuzzy
-msgid	"Add quick selection filter?"
-msgstr	"Hýzlý seçenek süzü eklensin mi?"
+#: src/lang.c:592
+#, fuzzy, c-format
+msgid   "Mailing to %s..."
+msgstr  "Postalanýyor %s..."
 
-#: src/lang.c:594
+#: src/lang.c:593
 #, fuzzy
-msgid	"Do you really want to quit?"
-msgstr	"Terketmek istediðinizden emin misiniz?"
-
-#: src/lang.c:595
-#, 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]: "
+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  "# (Mail/Save) aktif dosya. Format haber aktif dosyasyla ayný:\n"
+        "# grup ismi  max.artnum  min.artnum  /dir\n"
+        "# 4. alan basedir(örn.~/Mail or ~/News)\n"
+        "#\n"
 
 #: src/lang.c:596
-#, fuzzy
-msgid	"You have tagged articles in this group - quit anyway?"
-msgstr	"Bu gruptaki makaleleri imlediniz-yine de terk edilsin mi?"
+#, fuzzy, c-format
+msgid   "%s marked as read"
+msgstr  "%s okunmamýþ olarak iþaretlendi"
 
 #: src/lang.c:597
 #, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=postpone: "
-msgstr	"%s=terk et, %s=düzenle, %s=ertele: "
+msgid   "%s marked as unread"
+msgstr  "%s okunmamýþ olarak iþaretlendi"
 
 #: src/lang.c:598
 #, 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: "
+msgid   "Marked %d of %d %s as read"
+msgstr  "%d içerisinde %d iþaretlendi %s okunmuþ olarak etiketlendi"
 
 #: src/lang.c:599
 #, fuzzy, c-format
-msgid	"%s=quit %s=edit %s=save select description: "
-msgstr	"%s=terk et %s=düzenle %s=kaydet tanýmý seç: "
+msgid   "Marked %d of %d %s as unread"
+msgstr  "%d içerisinde %d iþaretlendi %s okunmuþ olarak etiketlendi"
 
-#: src/lang.c:600
+#: src/lang.c:600 src/lang.c:1321
 #, fuzzy
-msgid	"Do you really want to quit without saving your configuration?"
-msgstr	"Yapýlandýrmalarý kaydetmeden terk etmek istediðinizden emin misiniz?"
+msgid   "Mark"
+msgstr  "Ýþaretle"
+
+#: src/lang.c:601
+#, fuzzy, c-format
+msgid   "Mark all articles as read%s?"
+msgstr  "Bütün makaleleri okunmuþ olarak iþaretle%s?"
+
+#: src/lang.c:602
+#, fuzzy, c-format
+msgid   "Mark article as read%s?"
+msgstr  "Bütün makaleleri okunmuþ olarak iþaretle%s?"
 
 #: src/lang.c:603
-#, fuzzy
-msgid	"Invalid range - valid are '0-9.$' eg. 1-$"
-msgstr	"Geçersiz aralýklar- '0-9.$' eg. 1-$ geçerlidir"
+#, fuzzy, c-format
+msgid   "Mark group %s as read?"
+msgstr  "Küme %s 'i okunmuþ olarak iþaretle?"
 
 #: src/lang.c:604
-#, fuzzy
-msgid	"Do you want to abort this operation?"
-msgstr	"Ýþlem durdurulsun mu?"
+#, fuzzy, c-format
+msgid   "Mark thread as read%s?"
+msgstr  "Parçacýk %s 'i okunmuþ olarak iþaretle?"
 
 #: src/lang.c:605
-#, fuzzy
-msgid	"Do you want to exit tin immediately?"
-msgstr	"tin'den hemen çýkmak istediðinizden emin misisniz?"
-
-#: src/lang.c:606
-#, fuzzy
-msgid	"Read response> "
-msgstr	"Yanýtý oku> "
-
-#: src/lang.c:607
-#, fuzzy
-msgid	"Reading ('q' to quit)..."
-msgstr	"('q' iptal) okunuyor..."
+#, fuzzy, c-format
+msgid   "Matching %s groups..."
+msgstr  "%s kümelerini eþleþtiriyor..."
 
-#: src/lang.c:608
+#: src/lang.c:606 src/lang.c:620 src/lang.c:626
 #, fuzzy, c-format
-msgid	"Reading %sarticles..."
-msgstr	"Makaleler %sokunuyor..."
+msgid   "<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit"
+msgstr  "<n>= muvcut n için ayarlandý; %s=sonraki okunmayan; %s=catchup; %s=deðiþimi "
+        "görüntüle"
 
-#: src/lang.c:609
+#: src/lang.c:608
 #, fuzzy, c-format
-msgid	"Reading %sattributes file...\n"
-msgstr	"%sÖznitelik dosyasý okunuyor...\n"
+msgid   "%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=posta; %s=çýk; %s=cevap yaz; %s=kaydet; %s=etiketle; %s=yolla"
 
 #: src/lang.c:610
 #, fuzzy, c-format
-msgid	"Reading %sconfig file...\n"
-msgstr	"%sYapýlandýrma dosyasý okunuyor\n"
-
-#: src/lang.c:611
-#, fuzzy
-msgid	"Reading filter file...\n"
-msgstr	"Süz dosyasý okunuyor...\n"
+msgid   "%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all"
+msgstr  "%s=posta; %s=çýk; %s=cevap yaz; %s=kaydet; %s=etiketle; %s=yolla"
 
 #: src/lang.c:612
 #, fuzzy, c-format
-msgid	"Reading %s groups..."
-msgstr	"%s gruplar okunuyor..."
+msgid   "%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=ileriye doðru ara; %s=geriye doðru ara; %s=çýk"
 
-#: src/lang.c:613
-#, fuzzy
-msgid	"Reading input history file...\n"
-msgstr	"Giriþ tarihçe dosyasý okunuyor...\n"
+#: src/lang.c:613 src/lang.c:617
+#, 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:614
-#, fuzzy
-msgid	"Reading keymap file...\n"
-msgstr	"anahtarharita dosyasý okunuyor...\n"
+#, 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:615
-#, fuzzy
-msgid	"Reading groups from active file... "
-msgstr	"Gruplar yürürlükteki dosyadan okunuyor... "
+#, 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:616
-#, fuzzy
-msgid	"Reading groups from newsrc file... "
-msgstr	"Gruplar haberkaynak dosyasýndan okunuyor... "
-
-#: src/lang.c:617
-#, fuzzy
-msgid	"Reading newsgroups file... "
-msgstr	"Habergruplar dosyasý okunuyor... "
+#, 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:618
-#, fuzzy
-msgid	"Reading newsrc file..."
-msgstr	"Haberkaynak dosyasý okunuyor..."
+#, 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:620
+#: src/lang.c:619
 #, c-format
-msgid	"(%d:%02d remaining)"
-msgstr	""
+msgid   "%s=add; %s=move; %s=rename; %s=delete"
+msgstr  ""
+
+#: src/lang.c:621
+#, 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:622
 #, fuzzy, c-format
-msgid	"Bogus group %s removed."
-msgstr	"Bogus grubu %s kaldýrýldý."
+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:623
 #, fuzzy, c-format
-msgid	"Error: rename %s to %s"
-msgstr	"Hata:%s'den %s'ye yeniden adlandýr"
+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:624
-#, fuzzy
-msgid	"Reply to author..."
-msgstr	"Yetkiliye yanýt gönderiyor..."
+#, 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:625
-#, fuzzy
-msgid	"Repost"
-msgstr	"Yeniden gönder"
-
-#: src/lang.c:626
-#, fuzzy
-msgid	"Reposting article..."
-msgstr	"Makale yeniden gönderiliyor..."
+#, 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:627
 #, fuzzy, c-format
-msgid	"Repost article(s) to group(s) [%s]> "
-msgstr	"Makale(ler)i grup(lar)a gönder (%s)> "
+msgid   "%s=search forwards; %s=search backwards; %s=repeat search"
+msgstr  "%s=ileriye doðru ara; %s=geriye doðru ara; %s=çýk"
 
 #: src/lang.c:628
 #, fuzzy
-msgid	"Reset newsrc?"
-msgstr	"Haberkaynak sýfýrlansýn mý?"
+msgid   "--More--"
+msgstr  "--Tümü--"
 
 #: src/lang.c:629
-#, fuzzy
-msgid	"Responses have been directed to the following newsgroups"
-msgstr	"Yanýtlar sonraki habergruplara yönlendirildi"
+#, fuzzy, c-format
+msgid   "Moving %s..."
+msgstr  "Taþýnan %s..."
 
 #: src/lang.c:630
-#, 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: "
+msgid   "Message-ID: & last Reference  "
+msgstr  ""
 
 #: src/lang.c:631
-#, fuzzy, c-format
-msgid	"RespNo %4d of %4d"
-msgstr	"YanýtNo %4d of %4d"
+#, fuzzy
+msgid   "Message-ID: line              "
+msgstr  "Ýleti-Kimliði: satýr             "
 
 #: src/lang.c:632
-#, fuzzy
-msgid	"Press <RETURN> to continue..."
-msgstr	"Devam etmek için <DÖNÜÞ> bas..."
+msgid   "Message-ID: & References: line"
+msgstr  ""
 
 #: src/lang.c:634
-#, c-format
-msgid	"Select From    [%s] (y/n): "
-msgstr	""
+#, fuzzy
+msgid   ", name: "
+msgstr  ", isim: "
 
 #: src/lang.c:635
-#, fuzzy
-msgid	"Select Lines: (</>num): "
-msgstr	"Satýrlarý seç: (</>num): "
+#, fuzzy, c-format
+msgid   "Go to newsgroup [%s]> "
+msgstr  "Haber grubuna gidin [%s]> "
 
 #: src/lang.c:636
 #, fuzzy
-msgid	"Auto-select Article Menu"
-msgstr	"Otomatik Seçme Makale Menüsü"
+msgid   "newsgroups"
+msgstr  "haber gruplarý"
 
 #: src/lang.c:637
 #, fuzzy, c-format
-msgid	"Select Msg-Id  [%s] (f/l/o/n): "
-msgstr	"Ýleti-kimliði seçiniz [%s] (f/l/o/n): "
+msgid   "Position %s in group list (1,2,..,$) [%d]> "
+msgstr  "Grup listesinde %s konumlayýn (1,2,..,$) [%d]> "
 
 #: src/lang.c:638
 #, fuzzy
-msgid	"Select pattern scope: "
-msgstr	"Örüntü alanýný seç: "
+msgid   "newsgroup"
+msgstr  "haber gruplarý"
 
 #: src/lang.c:639
-#, fuzzy, c-format
-msgid	"Select Subject [%s] (y/n): "
-msgstr	"Konuyu seç [%s] (y/n): "
+#, fuzzy
+msgid   "Try and save newsrc file again?"
+msgstr  "Newsrc dosyasýný kaydetmeyi tekrar dene?"
 
 #: src/lang.c:640
 #, fuzzy
-msgid	"Select text pattern : "
-msgstr	"Alan metnini seç : "
+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:641
 #, fuzzy
-msgid	"Select time in days   : "
-msgstr	"Günlük olarak zamaný seç: "
+msgid   "newsrc file saved successfully.\n"
+msgstr  "newsrc dosyasý baþarýyla kaydedildi.\n"
 
 #: src/lang.c:642
-#, fuzzy, c-format
-msgid	"# %s server configuration file\n"
-	"# This file was automatically saved by %s %s %s (\"%s\")\n"
-	"#\n"
-	"# Do not edit while %s is running, since all your changes to this file\n"
-	"# will be overwritten when you leave %s.\n"
-	"# Do not edit at all if you don't know what you do.\n"
-	"############################################################################\n"
-	"\n"
-msgstr	"# %ssunucu yapýlandýrma dosyasý\n"
-	"# Bu dosya otomatik olarak kaydedildi %s %s %s (\"%s\")\n"
-	"#\n"
-	"# %s çalýþýrken deðiþtirmeyiniz, çünkü her deðiþikler\n"
-	"# terk ettiðinde yeniden yazýlacak %s.\n"
-	"# Ne yapmak gerektiðinizi bilmiyorsanýz lütfen deðiþtirmeyiniz.\n"
+#, fuzzy
+msgid   "-- Next response --"
+msgstr  "-- Sonraki yanýt --"
+
+#: src/lang.c:643
+#, fuzzy
+msgid   "No  "
+msgstr  "Hayýr"
+
+#: src/lang.c:644
+#, fuzzy
+msgid   "*** No articles ***"
+msgstr  "*** Makale yok ***"
+
+#: src/lang.c:645
+#, fuzzy
+msgid   "No articles have been posted"
+msgstr  "Hiçbir makale gönderilmedi"
+
+#: src/lang.c:646
+#, fuzzy
+msgid   "*** No attachments ***"
+msgstr  "*** Makale yok ***"
+
+#: src/lang.c:647
+#, fuzzy
+msgid   "*** No description ***"
+msgstr  "*** Taným yok ***"
 
 #: src/lang.c:648
 #, fuzzy
-msgid	"Showing unread groups only"
-msgstr	"Sadece okunmamýþ gruplar görünüyor"
+msgid   "No filename"
+msgstr  "Dosya adý yok"
 
 #: src/lang.c:649
 #, fuzzy
-msgid	"Subject: line (ignore case)   "
-msgstr	"Konu: satýr (büyük küçük harf durumunu yoksay)"
+msgid   "No group"
+msgstr  "Küme yok"
 
 #: src/lang.c:650
 #, fuzzy
-msgid	"Subject: line (case sensitive)"
-msgstr	"Konu: satýr (büyük-küçük duyarlý)"
+msgid   "*** No groups ***"
+msgstr  "*** Kümeler yok ***"
 
 #: src/lang.c:651
 #, fuzzy
-msgid	"Save"
-msgstr	"Kaydet"
+msgid   "No more groups to read"
+msgstr  "Okunacak küme kalmadý"
 
 #: src/lang.c:652
-#, fuzzy, c-format
-msgid	"Save '%s' (%s/%s)?"
-msgstr	"Kaydedilsin mi '%s' (%s/%s)?"
+#, fuzzy
+msgid   "No last message"
+msgstr  "Son ileti yok"
 
 #: src/lang.c:653
 #, fuzzy
-msgid	"Save configuration before continuing?"
-msgstr	"Devam etmeden düzenlemeleri kaydet?"
+msgid   "No mail address"
+msgstr  "Posta adresi yok"
 
 #: src/lang.c:654
 #, fuzzy
-msgid	"Save filename> "
-msgstr	"Dosyaadý kaydet> "
+msgid   "No articles marked for saving"
+msgstr  "Kaydetmek için hiçbir makale iþaretlenmedi"
 
 #: src/lang.c:655
 #, fuzzy
-msgid	"Saved"
-msgstr	"Kaydedildi"
+msgid   "No match"
+msgstr  "Eþ yok"
 
 #: src/lang.c:656
-#, fuzzy, c-format
-msgid	"%4d unread (%4d hot) %s in %s\n"
-msgstr	"%4d okunmamýþ (%4d hot) %s in %s\n"
+#, fuzzy
+msgid   "No more groups"
+msgstr  "Baþka küme yok"
 
 #: src/lang.c:657
-#, fuzzy, c-format
-msgid	"Saved %s...\n"
-msgstr	"Kaydedildi %s...\n"
+#, fuzzy
+msgid   "No newsgroups"
+msgstr  "Haber gruplarý yok"
 
 #: src/lang.c:658
 #, fuzzy
-msgid	"Nothing was saved"
-msgstr	"Hiçbirþey kaydedilmedi"
+msgid   "No next unread article"
+msgstr  "Sonraki okunmamýþ makale yok"
 
 #: src/lang.c:659
-#, fuzzy, c-format
-msgid	"\n"
-	"%s %d %s from %d %s\n"
-msgstr	"\n"
-	"%s %d %s 'dan %d %s\n"
+#, fuzzy
+msgid   "No previous group"
+msgstr  "Önceki küme yok"
 
 #: src/lang.c:660
-#, fuzzy, c-format
-msgid	"-- %s saved to %s%s --"
-msgstr	"-- %s kaydedildi %s%s --"
+msgid   "No previous search, nothing to repeat"
+msgstr  ""
 
 #: src/lang.c:661
-#, fuzzy, c-format
-msgid	"-- %s saved to %s - %s --"
-msgstr	"-- %s kaydedildi %s - %s --"
+#, fuzzy
+msgid   "No previous unread article"
+msgstr  "Önceki okunmamýþ makale yok"
 
 #: src/lang.c:662
 #, fuzzy
-msgid	"Saving..."
-msgstr	"Kaydediliyor..."
+msgid   "No responses"
+msgstr  "Yanýt yok"
 
 #: src/lang.c:663
-#, fuzzy, c-format
-msgid	"%s: Screen initialization failed"
-msgstr	"%s: Ekran baþlatma baþarýsýz"
+#, fuzzy
+msgid   "No responses to list in current thread"
+msgstr  "Mevcut parçacýkta listelemek için hiç yanýt yok"
+
+#: src/lang.c:664
+#, fuzzy
+msgid   "*** No scopes ***"
+msgstr  "*** Kümeler yok ***"
 
 #: src/lang.c:665
-#, fuzzy, c-format
-msgid	"%s: screen is too small\n"
-msgstr	"%s: ekran çok küçük\n"
+#, fuzzy
+msgid   "No search string"
+msgstr  "Arama dizgisi yok"
 
-#: src/lang.c:667
-#, fuzzy, c-format
-msgid	"screen is too small, %s is exiting\n"
-msgstr	"ekran çok küçük, %s çýkýyor\n"
+#: src/lang.c:666
+#, fuzzy
+msgid   "No subject"
+msgstr  "Konu yok"
 
 #: src/lang.c:668
 #, fuzzy, c-format
-msgid	"Search backwards [%s]> "
-msgstr	"Geri ara [%s]> "
+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:669
 #, fuzzy, c-format
-msgid	"Search body [%s]> "
-msgstr	"Gövdeyi ara [%s]> "
+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:670
 #, fuzzy, c-format
-msgid	"Search forwards [%s]> "
-msgstr	"Ýleri ara [%s]> "
+msgid   "%s: Terminal must have clearscreen (cl) capability\n"
+msgstr  "%s: Uçbirimin ekran temizleme (cl) yeteneði olmalý\n"
 
 #: src/lang.c:671
-#, fuzzy
-msgid	"Searching..."
-msgstr	"Arýyor..."
+#, fuzzy, c-format
+msgid   "%s: Terminal must have cursor motion (cm)\n"
+msgstr  "%s: Uçbirimin imleç hareketi olmalý (cm)\n"
 
 #: src/lang.c:672
 #, 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
-#, fuzzy
-msgid	"Select article> "
-msgstr	"Makale seç> "
+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:674
-#, 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'."
+#, 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:675
 #, fuzzy
-msgid	"Select group> "
-msgstr	"Grup seç> "
+msgid   "Newsgroup does not exist on this server"
+msgstr  "Bu sunucuda haber grubu yok"
 
 #: src/lang.c:676
 #, fuzzy, c-format
-msgid	"Enter selection pattern [%s]> "
-msgstr	"Seçme örüntüsünü girin [%s]> "
+msgid   "Group %s not found in active file"
+msgstr  "Küme %s aktif dosyada bulunamadý"
 
 #: src/lang.c:677
 #, fuzzy
-msgid	"Select thread > "
-msgstr	"En küçük yürütme birimlerini seç > "
+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:678
-#, 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"
+#, 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:679
+#, fuzzy, c-format
+msgid   "# NNTP-server -> newsrc translation table and NNTP-server\n"
+        "# shortname list for %s %s\n"
+        "#\n"
+        "# the format of this file is\n"
+        "#   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# if <newsrc file> is given without path, $HOME is assumed as its location\n"
+        "#\n"
+        "# examples:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+msgstr  "# NNTP-sunucu -> newsrc çeviri dosyasý ile NNTP-sunucu\n"
+        "#   %s %s için kýsaltma listesi\n"
+        "#\n"
+        "# bu dosyanýn biçimi\n"
+        "#  <FQDN of NNTP-server> <newsrc file> <shortname> ...\n"
+        "#\n"
+        "# eðer <newsrc file> yol gösterilmeden verildiyse, $HOME onun yeri "
+        "varsayýlýr\n"
+        "#\n"
+        "# örnekler:\n"
+        "#   news.tin.org      .newsrc-tin.org  tinorg\n"
+        "#   news.example.org  /tmp/nrc-ex      example    ex\n"
+        "#\n"
+
+#: src/lang.c:686
 #, fuzzy
-msgid	"servers active-file"
-msgstr	"Sunucular etkindosyasý"
+msgid   "Only"
+msgstr  "Sadece"
 
-#: src/lang.c:680
+#: src/lang.c:687
+#, fuzzy, c-format
+msgid   "Option not enabled. Recompile with %s."
+msgstr  "Seçenek etkin kýlýnmadý. Yeniden derle %s."
+
+#: src/lang.c:688
 #, fuzzy
-msgid	"Cannot move into new newsgroups. Subscribe first..."
-msgstr	"Habergruplara giriþ yapýlamýyor. Önce abone ol..."
+msgid   "Options Menu"
+msgstr  "Seçenekler menüsü"
 
-#: src/lang.c:681
+#: src/lang.c:689
 #, fuzzy
-msgid	"<SPACE>"
-msgstr	"<ARALIK>"
+msgid   "Options Menu Commands"
+msgstr  "Seçenekler menüsü"
 
-#: src/lang.c:682
+#: src/lang.c:692
 #, fuzzy, c-format
-msgid	"Starting: (%s)"
-msgstr	"Baþlatma: (%s)"
+msgid   "Error in regex: %s at pos. %d '%s'"
+msgstr  "Regex'de hata: poda %s. %d '%s'"
 
-#: src/lang.c:683
+#: src/lang.c:693
 #, fuzzy, c-format
-msgid	"List Thread (%d of %d)"
-msgstr	"En küçük yürütme birimlerini listele (%d of %d)"
+msgid   "Error in regex: pcre internal error %d"
+msgstr  "Regex'de hata: pcre iç hata %d"
 
-#: src/lang.c:684
+#: src/lang.c:694
 #, fuzzy, c-format
-msgid	"Thread (%.*s)"
-msgstr	"En küçük yürütme birimi (%.*s)"
+msgid   "Error in regex: study - pcre internal error %s"
+msgstr  "Regex'de hata: incele - pcre iç hata %s"
 
-#: src/lang.c:685
+#: src/lang.c:695
 #, fuzzy
-msgid	"Enter wildcard subscribe pattern> "
-msgstr	"Joker abone alanýna giriniz> "
+msgid   "Post a followup..."
+msgstr  "Takip edici gönder..."
 
-#: src/lang.c:686
-#, fuzzy, c-format
-msgid	"subscribed to %d groups"
-msgstr	"%d gruplara abone olundu"
-
-#: src/lang.c:687
-#, fuzzy, c-format
-msgid	"Subscribed to %s"
-msgstr	"Abone olundu %s"
+#. TODO: replace hardcoded key-name in txt_post_error_ask_postpone
+#: src/lang.c:697
+#, 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  "Makaleyi gönderirken hata oluþtu. Bu makalenin düzeltibeleceðini "
+        "düþünüyorsanýz, makaleyi erteleyebilir ve tekrar ^O komutunu kulanarak "
+        "ulaþabilirsiniz.\n"
 
-#: src/lang.c:688
+#: src/lang.c:700
 #, fuzzy
-msgid	"Subscribing... "
-msgstr	"Abone olunuyor... "
+msgid   "Posted articles history"
+msgstr  "Gönderilmiþ makalelerin geçmiþi"
 
-#: src/lang.c:689
+#: src/lang.c:701
 #, 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): "
+msgid   "Post to newsgroup(s) [%s]> "
+msgstr  "habergrup(lar)a gönder [%s]> "
 
-#: src/lang.c:690
-#, fuzzy, c-format
-msgid	"Supersede article(s) to group(s) [%s]> "
-msgstr	"Makale(ler)i Grup(lar)a yerini al [%s]> "
+#: src/lang.c:702
+#, fuzzy
+msgid   "-- post processing started --"
+msgstr  "-- gönderme iþlemi baþlatýldý --"
 
-#: src/lang.c:691
+#: src/lang.c:703
 #, fuzzy
-msgid	"Superseding article ..."
-msgstr	"Makaleyi deðiþtiriyor..."
+msgid   "-- post processing completed --"
+msgstr  "-- gönderme iþlemi tamamlandý --"
 
-#: src/lang.c:692
+#: src/lang.c:704
 #, fuzzy, c-format
-msgid	"\n"
-	"Stopped. Type 'fg' to restart %s\n"
-msgstr	"\n"
-	"Durduruldu. Yeniden baþlatmak için 'fg' yaz %s\n"
+msgid   "Post subject [%s]> "
+msgstr  "Konuyu gönder (%s)> "
 
-#: src/lang.c:694
-#, fuzzy, c-format
-msgid	"%d days"
-msgstr	"%d günler"
+#: src/lang.c:705
+#, 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:695
+#: src/lang.c:706
 #, fuzzy
-msgid	"<TAB>"
-msgstr	"<SEKME>"
+msgid   "Posting article..."
+msgstr  "Makale gönderiliyor..."
 
-#: src/lang.c:696
-msgid	"TeX "
-msgstr	""
+#: src/lang.c:707
+#, 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:697
-#, fuzzy
-msgid	"# Default action/prompt strings\n"
-msgstr	"# Varsayýlan iþlem/komut dizgileri\n"
+#: src/lang.c:708
+#, fuzzy, c-format
+msgid   "Hot %s"
+msgstr  "Hot %s"
 
-#: src/lang.c:698
-#, 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"
-	"#             5=Message-ID: & last References: entry only\n"
-	"#             6=Message-ID: entry only 7=Lines:\n"
-	"# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
-	"# 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"
-msgstr	"# Varsayýlanlarý (1 tuþ) kill & otomatik seçme süzleri\n"
-	"# baþlýk=NUM  0,1=Konu: 2,3=dan: 4=Ýleti kimliði: & tam referanslar: satýr\n"
-	"#             5=Ýleti Kimliði: & son referanslar: sadece giriþ\n"
-	"#             6=Ýleti Kimliði: sadece giriþ 7=Satýrlar:\n"
-	"# global=ON/OFF  ON=bütün gruplara uygula OFF=mevcut gruba uygula\n"
-	"# 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:709
+#, fuzzy, c-format
+msgid   "Tagged %s"
+msgstr  "%s imlenmiþ"
+
+#: src/lang.c:710
+#, fuzzy, c-format
+msgid   "Untagged %s"
+msgstr  "%s imlenmemiþ"
 
 #: src/lang.c:711
 #, 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"
+msgid   "Processing mail messages marked for deletion."
+msgstr  "Silinmek için iþaretlenen iletilerin iþletilmesi."
 
 #: src/lang.c:712
 #, 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"
+msgid   "Processing saved articles marked for deletion."
+msgstr  "Silinmek için iþaretlenen kaydedilmiþ makalelerin iþletilmesi."
 
 #: src/lang.c:713
-#, fuzzy
-msgid	"There is no news\n"
-msgstr	"Hiçbir haber yok\n"
+#, 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:714
 #, fuzzy
-msgid	"Thread"
-msgstr	"En küçük yürütme birimi"
+msgid   "Article unchanged, abort mailing?"
+msgstr  "Makale deðiþtirilmesini, posta iptal edilsin mi?"
 
 #: src/lang.c:715
-#, fuzzy
-msgid	"Thread Level Commands"
-msgstr	"En Küçük Yürütme Birim Komut Düzeyi"
+#, fuzzy, c-format
+msgid   "Do you want to see postponed articles (%d)?"
+msgstr  "Ertelediðiniz makaleleri görmek ister misiniz (%d)?"
 
-#: src/lang.c:716
+#: src/lang.c:717
 #, fuzzy
-msgid	"Thread deselected"
-msgstr	"En küçük yürütme birimin seçimi iptal edildi"
+msgid   "Add quick kill filter?"
+msgstr  "Öldürücü hýzlý süzü eklensin mi?"
 
-#: src/lang.c:717
+#: src/lang.c:718
 #, fuzzy
-msgid	"Thread selected"
-msgstr	"En küçük yürütme birimi seçildi"
+msgid   "Add quick selection filter?"
+msgstr  "Hýzlý seçenek süzü eklensin mi?"
 
 #: src/lang.c:719
 #, fuzzy
-msgid	"threads"
-msgstr	"en küçük yürütme birimleri"
+msgid   "Do you really want to quit?"
+msgstr  "Terketmek istediðinizden emin misiniz?"
+
+#: src/lang.c:720
+#, 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:721
 #, fuzzy
-msgid	"Thread range"
-msgstr	"en küçük yürütme birimi aralýðý"
+msgid   "You have tagged articles in this group - quit anyway?"
+msgstr  "Bu gruptaki makaleleri imlediniz-yine de terk edilsin mi?"
 
 #: src/lang.c:722
-#, fuzzy
-msgid	"thread"
-msgstr	"en küçük yürütme birimi"
+#, fuzzy, c-format
+msgid   "%s=quit, %s=edit, %s=postpone: "
+msgstr  "%s=terk et, %s=düzenle, %s=ertele: "
 
 #: src/lang.c:723
 #, fuzzy, c-format
-msgid	"Thread %4s of %4s"
-msgstr	"En küçük yürütme birimi %4s of %4s"
+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:724
-#, fuzzy
-msgid	"Threading articles..."
-msgstr	"Makaleler baðlanýyor..."
-
-#: src/lang.c:725
 #, fuzzy, c-format
-msgid	"Toggled word highlighting %s"
-msgstr	"Geçiþ kelime belirtiliyor %s"
+msgid   "%s=quit %s=edit %s=save select description: "
+msgstr  "%s=terk et %s=düzenle %s=kaydet tanýmý seç: "
 
-#: src/lang.c:726
+#: src/lang.c:725
 #, fuzzy
-msgid	"Toggled rot13 encoding"
-msgstr	"Geçiþ rot13 kodlanýyor"
-
-#: src/lang.c:727
-#, fuzzy, c-format
-msgid	"Toggled german TeX encoding %s"
-msgstr	"Geçiþ almanca TeX kodlanýyor %s"
+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:728
-#, fuzzy, c-format
-msgid	"Toggled tab-width to %d"
-msgstr	"Geçiþ sekme geniþliði %d"
-
-#: src/lang.c:729
-#, fuzzy, c-format
-msgid	"%d Trying to dotlock %s"
-msgstr	"%d kilitlemeye deniyor %s"
+#, fuzzy
+msgid   "Invalid range - valid are '0-9.$' eg. 1-$"
+msgstr  "Geçersiz aralýklar- '0-9.$' eg. 1-$ geçerlidir"
 
 #: src/lang.c:730
-#, fuzzy, c-format
-msgid	"%d Trying to lock %s"
-msgstr	"%d kilitlemeye çalýþýyor %s"
+#, fuzzy
+msgid   "Do you want to abort this operation?"
+msgstr  "Ýþlem durdurulsun mu?"
 
 #: src/lang.c:731
 #, fuzzy
-msgid	"           h=help\n"
-msgstr	"         h=yardým\n"
+msgid   "Do you want to exit tin immediately?"
+msgstr  "tin'den hemen çýkmak istediðinizden emin misisniz?"
 
 #: src/lang.c:733
 #, fuzzy
-msgid	"Unlimited"
-msgstr	"Sýnýrsýz"
+msgid   "Reading ('q' to quit)..."
+msgstr  "('q' iptal) okunuyor..."
 
 #: src/lang.c:734
-#, fuzzy
-msgid	"Enter wildcard unsubscribe pattern> "
-msgstr	"Abone iptal joker alanýna giriniz> "
+#, fuzzy, c-format
+msgid   "Reading %sarticles..."
+msgstr  "Makaleler %sokunuyor..."
 
 #: src/lang.c:735
 #, fuzzy, c-format
-msgid	"Error decoding %s : %s"
-msgstr	"Hata kod çözülmesi %s: %s"
+msgid   "Reading %sattributes file...\n"
+msgstr  "%sÖznitelik dosyasý okunuyor...\n"
 
 #: src/lang.c:736
-#, fuzzy
-msgid	"No end."
-msgstr	"Sonu yok."
+#, fuzzy, c-format
+msgid   "Reading %sconfig file...\n"
+msgstr  "%sYapýlandýrma dosyasý okunuyor\n"
 
 #: src/lang.c:737
-#, fuzzy, c-format
-msgid	"%s successfully decoded."
-msgstr	"%s kod baþarýyla çözüldü."
+#, fuzzy
+msgid   "Reading filter file...\n"
+msgstr  "Süz dosyasý okunuyor...\n"
 
 #: src/lang.c:738
 #, 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"
+msgid   "Reading %s groups..."
+msgstr  "%s gruplar okunuyor..."
 
 #: src/lang.c:739
 #, fuzzy
-msgid	"unread "
-msgstr	"okunmamýþ "
+msgid   "Reading input history file...\n"
+msgstr  "Giriþ tarihçe dosyasý okunuyor...\n"
 
 #: src/lang.c:740
-#, fuzzy, c-format
-msgid	"unsubscribed from %d groups"
-msgstr	"%d gruptan abonelik iptal edildi"
+#, fuzzy
+msgid   "Reading keymap file...\n"
+msgstr  "anahtarharita dosyasý okunuyor...\n"
 
 #: src/lang.c:741
-#, fuzzy, c-format
-msgid	"Unsubscribed from %s"
-msgstr	"abonelik iptal edildi %s"
+#, fuzzy
+msgid   "Reading groups from active file... "
+msgstr  "Gruplar yürürlükteki dosyadan okunuyor... "
 
 #: src/lang.c:742
 #, fuzzy
-msgid	"Unsubscribing... "
-msgstr	"Abonelik iptal oluyor... "
+msgid   "Reading groups from newsrc file... "
+msgstr  "Gruplar haberkaynak dosyasýndan okunuyor... "
 
 #: src/lang.c:743
 #, fuzzy
-msgid	"Unthreading articles..."
-msgstr	"Makalelerin baðlantýsý sonlanýyor..."
+msgid   "Reading newsgroups file... "
+msgstr  "Habergruplar dosyasý okunuyor... "
 
 #: src/lang.c:744
 #, fuzzy
-msgid	"Updated"
-msgstr	"Güncelendi"
+msgid   "Reading newsrc file..."
+msgstr  "Haberkaynak dosyasý okunuyor..."
 
 #: src/lang.c:745
 #, fuzzy
-msgid	"Updating"
-msgstr	"Güncellenme"
-
-#: src/lang.c:746
-#, fuzzy, c-format
-msgid	"Opening %s\n"
-msgstr	"Açýlma %s\n"
+msgid   "References: line              "
+msgstr  "Ýleti-Kimliði: satýr             "
 
 #: src/lang.c:747
-#, fuzzy
-msgid	"No more URL's in this article"
-msgstr	"Makalede Birörnek Kaynak Bulucu yok"
-
-#: src/lang.c:748
-#, 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?"
+#, c-format
+msgid   "(%d:%02d remaining)"
+msgstr  ""
 
 #: src/lang.c:749
-#, 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)"
+#, fuzzy, c-format
+msgid   "Bogus group %s removed."
+msgstr  "Bogus grubu %s kaldýrýldý."
 
 #: src/lang.c:750
-#, fuzzy
-msgid	"  -Z       return status indicating if any unread news (batch mode)"
-msgstr	"  -Z       Okunmamýþ haber varsa geri statüsüne gelir (toplu mod)"
+msgid   "Removed from the previous rule: "
+msgstr  "Önceki kuraldan kaldýrýldý: "
 
 #: src/lang.c:751
-#, fuzzy
-msgid	"  -q       don't check for new newsgroups"
-msgstr	"  -q       yeni habergruplarý için deneme"
+#, fuzzy, c-format
+msgid   "Error: rename %s to %s"
+msgstr  "Hata:%s'den %s'ye yeniden adlandýr"
 
 #: src/lang.c:752
 #, fuzzy
-msgid	"  -X       don't save any files on quit"
-msgstr	"  -X       çýkýþta hiçbir dosya kaydetme"
+msgid   "Reply to author..."
+msgstr  "Yetkiliye yanýt gönderiyor..."
 
 #: src/lang.c:753
 #, fuzzy
-msgid	"  -d       don't show newsgroup descriptions"
-msgstr	"  -d       habergrubu tanýmlarý gösterme"
+msgid   "Repost"
+msgstr  "Yeniden gönder"
 
 #: src/lang.c:754
 #, fuzzy
-msgid	"  -G limit get only limit articles/group"
-msgstr	"  -G limit sadece makale/grup sýnýrý elde et"
+msgid   "Reposting article..."
+msgstr  "Makale yeniden gönderiliyor..."
 
 #: src/lang.c:755
 #, fuzzy, c-format
-msgid	"  -H       help information about %s"
-msgstr	"  -H       yardým bilgisi %s"
+msgid   "Repost article(s) to group(s) [%s]> "
+msgstr  "Makale(ler)i grup(lar)a gönder (%s)> "
 
 #: src/lang.c:756
 #, fuzzy
-msgid	"  -h       this help message"
-msgstr	"  -h       ileti yardýmý"
+msgid   "Reset newsrc?"
+msgstr  "Haberkaynak sýfýrlansýn mý?"
 
 #: src/lang.c:757
-#, 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
 #, fuzzy
-msgid	"  -u       update index files (batch mode)"
-msgstr	"  -u       guncelleme dizin dosyasý (toplu modu)"
+msgid   "Responses have been directed to the following newsgroups"
+msgstr  "Yanýtlar sonraki habergruplara yönlendirildi"
 
-#: src/lang.c:759
+#: src/lang.c:758
 #, fuzzy, c-format
-msgid	"  -m dir   mailbox directory [default=%s]"
-msgstr	"  -m dir   posta kutusu dizini [varsayýlan=%s]"
+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:760
-#, fuzzy, c-format
-msgid	"\n"
-	"Mail bug reports/comments to %s"
-msgstr	"\n"
-	"posta hata raporu/açýklama %s"
-
-#: src/lang.c:761
 #, fuzzy
-msgid	"  -N       mail new news to your posts (batch mode)"
-msgstr	"  -N       Gönderilenlere yeni haber gönder (toplu mod)"
+msgid   "Press <RETURN> to continue..."
+msgstr  "Devam etmek için <DÖNÜÞ> bas..."
 
 #: src/lang.c:762
-#, 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)"
+#, c-format
+msgid   "Select From    [%s] (y/n): "
+msgstr  ""
 
 #: src/lang.c:763
-#, fuzzy, c-format
-msgid	"  -f file  subscribed to newsgroups file [default=%s]"
-msgstr	"  -f dosyasý  habergruplar dosyasýna abone olundu (varsayýlan=%s)"
+#, fuzzy
+msgid   "Select Lines: (</>num): "
+msgstr  "Satýrlarý seç: (</>num): "
 
 #: src/lang.c:764
 #, fuzzy
-msgid	"  -x       no posting mode"
-msgstr	"  -x       iþlem modu yok"
+msgid   "Auto-select Article Menu"
+msgstr  "Otomatik Seçme Makale Menüsü"
 
 #: src/lang.c:765
-#, fuzzy
-msgid	"  -w       post an article and exit"
-msgstr	"  -w       makale gönder ve çýk"
+#, 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:766
 #, fuzzy
-msgid	"  -o       post all postponed articles and exit"
-msgstr	"  -o       ertelenmiþ bütün makaleleri gönder ve çýk"
+msgid   "Select pattern scope: "
+msgstr  "Örüntü alanýný seç: "
 
 #: src/lang.c:767
-#, fuzzy
-msgid	"  -r       read news remotely from default NNTP server"
-msgstr	"  -r       varsayýlan NTTP sunucusundan haberleri uzaktan oku"
+#, fuzzy, c-format
+msgid   "Select Subject [%s] (y/n): "
+msgstr  "Konuyu seç [%s] (y/n): "
 
 #: src/lang.c:768
 #, fuzzy
-msgid	"  -R       read news saved by -S option"
-msgstr	"  -R       -S seçeneði basarak kaydedilen haberleri oku"
+msgid   "Select text pattern : "
+msgstr  "Alan metnini seç : "
 
 #: src/lang.c:769
-#, fuzzy, c-format
-msgid	"  -s dir   save news directory [default=%s]"
-msgstr	"  -s dir   haber dizinini kaydet (varsayýlan=%s)"
-
-#: src/lang.c:770
-#, 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
 #, fuzzy
-msgid	"  -z       start if any unread news"
-msgstr	"  -z       okunmamýþ haber varsa baþla"
+msgid   "Select time in days   : "
+msgstr  "Günlük olarak zamaný seç: "
 
-#: src/lang.c:772
+#: src/lang.c:770
 #, fuzzy, c-format
-msgid	"A Usenet reader.\n"
-	"\n"
-	"Usage: %s [options] [newsgroup[,...]]"
-msgstr	"Usenet okuyucusu.\n"
-	"\n"
-	"Kullaným: %s [seçenekler] [habergrubu[,...]]"
+msgid   "# %s server configuration file\n"
+        "# This file was automatically saved by %s %s %s (\"%s\")\n"
+        "#\n"
+        "# Do not edit while %s is running, since all your changes to this file\n"
+        "# will be overwritten when you leave %s.\n"
+        "# Do not edit at all if you don't know what you do.\n"
+        "############################################################################\n"
+        "\n"
+msgstr  "# %ssunucu yapýlandýrma dosyasý\n"
+        "# Bu dosya otomatik olarak kaydedildi %s %s %s (\"%s\")\n"
+        "#\n"
+        "# %s çalýþýrken deðiþtirmeyiniz, çünkü her deðiþikler\n"
+        "# terk ettiðinde yeniden yazýlacak %s.\n"
+        "# Ne yapmak gerektiðinizi bilmiyorsanýz lütfen deðiþtirmeyiniz.\n"
 
-#: 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ýþ"
+msgid   "Showing unread groups only"
+msgstr  "Sadece okunmamýþ gruplar görünüyor"
 
-#: 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
-#, 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
-#, fuzzy, c-format
-msgid	"%s only useful for batch mode operations\n"
-msgstr	"%s sadece toplu kip seçenekleri varsa kullanýþlý\n"
+msgid   "Subject: line (ignore case)   "
+msgstr  "Konu: satýr (büyük küçük harf durumunu yoksay)"
 
 #: src/lang.c:778
-#, 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"
+#, fuzzy
+msgid   "Subject: line (case sensitive)"
+msgstr  "Konu: satýr (büyük-küçük duyarlý)"
 
 #: src/lang.c:779
+#, fuzzy
+msgid   "Save"
+msgstr  "Kaydet"
+
+#: src/lang.c:780
 #, fuzzy, c-format
-msgid	"View '%s' (%s/%s)?"
-msgstr	"Göster '%s' (%s/%s)?"
+msgid   "Save '%s' (%s/%s)?"
+msgstr  "Kaydedilsin mi '%s' (%s/%s)?"
 
 #: src/lang.c:781
-#, fuzzy, c-format
-msgid	"\n"
-	"Warning: posting exceeds %d columns. Line %d is the first long one:\n"
-	"%-100s\n"
-msgstr	"\n"
-	"Uyarý: gönderme %d sütunlarýný geçiyor. %d en uzun ilk satýr:\n"
-	"%-100s\n"
+#, fuzzy
+msgid   "Save configuration before continuing?"
+msgstr  "Devam etmeden düzenlemeleri kaydet?"
 
 #: src/lang.c:782
 #, fuzzy
-msgid	"\n"
-	"Warning: article unchanged after editing\n"
-msgstr	"\n"
-	"Uyarý: makale düzenlendikten sonra deðiþtirildi\n"
+msgid   "Save filename> "
+msgstr  "Dosyaadý kaydet> "
 
 #: src/lang.c:783
 #, fuzzy
-msgid	"\n"
-	"Warning: \"Subject:\" contains only whitespaces.\n"
-msgstr	"\n"
-	"Uyarý: \"Konu:\" sadece beyazboþluklar var.\n"
+msgid   "Saved"
+msgstr  "Kaydedildi"
 
 #: src/lang.c:784
-#, 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"
+#, fuzzy, c-format
+msgid   "%4d unread (%4d hot) %s in %s\n"
+msgstr  "%4d okunmamýþ (%4d hot) %s in %s\n"
+
+#: src/lang.c:785
+#, fuzzy, c-format
+msgid   "Saved %s...\n"
+msgstr  "Kaydedildi %s...\n"
 
 #: src/lang.c:786
 #, fuzzy
-msgid	"\n"
-	"Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
-	"         with \"Re: \" and does not contain \"(was:\".\n"
-msgstr	"\n"
-	"Uyarý: Makalede \"Referanslar:\"  var \"Konu:\"    \"Re: \" ile\n"
-	"       baþlmýyor ve \"(was:\" yok.\n"
+msgid   "Nothing was saved"
+msgstr  "Hiçbirþey kaydedilmedi"
+
+#: src/lang.c:787
+#, fuzzy, c-format
+msgid   "\n"
+        "%s %d %s from %d %s\n"
+msgstr  "\n"
+        "%s %d %s 'dan %d %s\n"
+
+#: src/lang.c:788
+#, fuzzy, c-format
+msgid   "-- %s saved to %s%s --"
+msgstr  "-- %s kaydedildi %s%s --"
 
 #: src/lang.c:789
+#, fuzzy, c-format
+msgid   "-- %s saved to %s - %s --"
+msgstr  "-- %s kaydedildi %s - %s --"
+
+#: src/lang.c:790
 #, fuzzy
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly written by you. This will "
-	"wipe\n"
-	"  the article from most  news servers  throughout the world,  but there is "
-	"no\n"
-	"  guarantee that it will work.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Dikkatle oku!\n"
-	"\n"
-	" Tarafýnýzdan yazýlan bir makaleyi iptal etmek üzeresiniz. Bu, makaleyi "
-	"dünyadaki\n"
-	" birçok haber sunucusundan silecektir, ama çalýþacaðýnýn da bir garantisi "
-	"yok.\n"
-	"\n"
-	"Ýptal etmek üzere olduðunuz makale bu:\n"
-	"\n"
+msgid   "Saving..."
+msgstr  "Kaydediliyor..."
+
+#: src/lang.c:791
+#, fuzzy, c-format
+msgid   "%s: Screen initialization failed"
+msgstr  "%s: Ekran baþlatma baþarýsýz"
 
 #: src/lang.c:793
+#, fuzzy, c-format
+msgid   "%s: screen is too small\n"
+msgstr  "%s: ekran çok küçük\n"
+
+#: src/lang.c:795
+#, fuzzy, c-format
+msgid   "screen is too small, %s is exiting\n"
+msgstr  "ekran çok küçük, %s çýkýyor\n"
+
+#: src/lang.c:796
 #, fuzzy
-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"
-	"         article. If a signature is appended by that inews program it will\n"
-	"         not be encoded properly.\n"
-msgstr	"\n"
-	"Uyarý: Makalenizi sunmak için düz olmayan bir transfer kodlamasý (base64 ya "
-	"da\n"
-	"          imlenen-yazýlabilir gibi) ve dýþ inews programý kullanýyorsunuz. "
-	"Eðer o\n"
-	"          inews programý tarafýndan bir imza iliþtirildiyse, uygun þekilde "
-	"kodlanamaz.\n"
+msgid   "Delete scope?"
+msgstr  "Örüntü alanýný seç: "
+
+#: src/lang.c:797
+#, fuzzy
+msgid   "Enter scope> "
+msgstr  "Seçenek numarasýný yazýn> "
 
 #: src/lang.c:798
-#, fuzzy, c-format
-msgid	"\n"
-	"\n"
-	"You are upgrading to tin %s from an earlier version.\n"
-	"Some values in your %s file have changed!\n"
-	"Read WHATSNEW, etc...\n"
-msgstr	"\n"
-	"\n"
-	"Daha önceki bir sürümden tin %s 'e güncelliyorsunuz.\n"
-	"%s dosyanýzdaki bazi deðerler deðiþtirilmiþtir!\n"
-	"Oku WHATSNEW, vb...\n"
+#, fuzzy
+msgid   "Select new position> "
+msgstr  "Alan metnini seç : "
+
+#: src/lang.c:799
+msgid   "New position cannot be a global scope"
+msgstr  ""
 
 #: src/lang.c:800
-#, fuzzy, c-format
-msgid	"\n"
-	"\n"
-	"You are downgrading to tin %s from a more recent version!\n"
-	"Some values in your %s file may be ignored, others might have changed!\n"
-msgstr	"\n"
-	"\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"
+msgid   "Global scope, operation not allowed"
+msgstr  ""
+
+#: src/lang.c:801
+msgid   "Rename scope> "
+msgstr  ""
+
+#: src/lang.c:802
+#, fuzzy
+msgid   "Select scope> "
+msgstr  "Grup seç> "
 
 #: src/lang.c:803
+#, fuzzy
+msgid   "Scopes Menu"
+msgstr  "Seçenekler menüsü"
+
+#: src/lang.c:804
+#, fuzzy
+msgid   "Scopes Menu Commands"
+msgstr  "Üst Düzey Komutlar"
+
+#: src/lang.c:805
+#, fuzzy, c-format
+msgid   "Search backwards [%s]> "
+msgstr  "Geri ara [%s]> "
+
+#: src/lang.c:806
 #, fuzzy, c-format
-msgid	"Warning: tin wrote fewer groups to your\n"
-	"\t%s\n"
-	"than it read at startup. If you didn't unsubscribe from %ld %s during\n"
-	"this session this indicates an error and you should backup your %s\n"
-	"before you start tin once again!\n"
-msgstr	"Uyarý: tin baþlangýçta okuduðundan\n"
-	"\t%s\n"
-	"daha az küme yazdý. Bu oturum sýrasýnda %ld %s 'den aboneliðinizi "
-	"almadýysanýz\n"
-	"bu bir hata gösterir ve tini tekrar baþlatmadan %s'i\n"
-	"yedeklemeniz gerekmektedir!\n"
+msgid   "Search body [%s]> "
+msgstr  "Gövdeyi ara [%s]> "
 
 #: src/lang.c:807
 #, 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"
+msgid   "Search forwards [%s]> "
+msgstr  "Ýleri ara [%s]> "
 
 #: src/lang.c:808
-#, fuzzy, c-format
-msgid	"Warning: Only %d out of %d articles were saved"
-msgstr	"Uyarý: Sadece %d 'de %d makale kaydedildi"
+#, fuzzy
+msgid   "Searching..."
+msgstr  "Arýyor..."
 
 #: src/lang.c:809
 #, fuzzy, c-format
-msgid	"\n"
-	"Warning: Your signature  is longer than %d lines.  Since signatures usually "
-	"do\n"
-	"         not  transport any  useful information,  they should be as  short "
-	"as\n"
-	"         possible.\n"
-msgstr	"\n"
-	"Uyarý: Ýmzanýz %d satýrlarýndan daha uzun. Ýmzalar genellikle\n"
-	"         iþe yarar bilgi aktarmadýklarý için, olabildikleri kadar kýsa\n"
-	"        olmalýlar.\n"
+msgid   "Searching article %d of %d ('q' to abort)..."
+msgstr  "Makale aranýyor %d of %d ('q' durdur)..."
+
+#: src/lang.c:810
+#, fuzzy
+msgid   "Select article> "
+msgstr  "Makale seç> "
+
+#: src/lang.c:811
+#, 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:812
+#, fuzzy
+msgid   "Select group> "
+msgstr  "Grup seç> "
 
 #: src/lang.c:813
 #, 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? "
+msgid   "Enter selection pattern [%s]> "
+msgstr  "Seçme örüntüsünü girin [%s]> "
 
 #: src/lang.c:814
 #, 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"
+msgid   "Select thread > "
+msgstr  "En küçük yürütme birimlerini seç > "
 
 #: src/lang.c:815
+#, 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:816
 #, fuzzy
-msgid	"Writing attributes file..."
-msgstr	"Öznitelikler dosylasýný yazýyor..."
+msgid   "servers active-file"
+msgstr  "Sunucular etkindosyasý"
 
 #: src/lang.c:817
-#, fuzzy, c-format
-msgid	"%d Responses"
-msgstr	"%d Yanýtlar"
+#, fuzzy
+msgid   "Cannot move into new newsgroups. Subscribe first..."
+msgstr  "Habergruplara giriþ yapýlamýyor. Önce abone ol..."
+
+#: src/lang.c:818
+#, fuzzy
+msgid   "<SPACE>"
+msgstr  "<ARALIK>"
 
 #: src/lang.c:819
 #, fuzzy, c-format
-msgid	"Added %d %s"
-msgstr	"Eklendi %d %s"
+msgid   "Starting: (%s)"
+msgstr  "Baþlatma: (%s)"
 
 #: src/lang.c:820
-#, fuzzy
-msgid	"No unsubscribed groups to show"
-msgstr	"Gösterilecek abonelikten çýkmýþ küme yok"
+#, fuzzy, c-format
+msgid   "List Thread (%d of %d)"
+msgstr  "En küçük yürütme birimlerini listele (%d of %d)"
 
 #: src/lang.c:821
-#, fuzzy
-msgid	"Showing subscribed to groups only"
-msgstr	"Sadece abone kümeleri göster"
+#, fuzzy, c-format
+msgid   "Thread (%.*s)"
+msgstr  "En küçük yürütme birimi (%.*s)"
 
 #: src/lang.c:822
 #, fuzzy
-msgid	"Yes "
-msgstr	"Evet"
+msgid   "Enter wildcard subscribe pattern> "
+msgstr  "Joker abone alanýna giriniz> "
 
 #: src/lang.c:823
+#, fuzzy, c-format
+msgid   "subscribed to %d groups"
+msgstr  "%d gruplara abone olundu"
+
+#: src/lang.c:824
+#, fuzzy, c-format
+msgid   "Subscribed to %s"
+msgstr  "Abone olundu %s"
+
+#: src/lang.c:825
 #, fuzzy
-msgid	"    You have mail\n"
-msgstr	"     Postanýz var\n"
+msgid   "Subscribing... "
+msgstr  "Abone olunuyor... "
+
+#: src/lang.c:826
+#, 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:827
+#, fuzzy, c-format
+msgid   "Supersede article(s) to group(s) [%s]> "
+msgstr  "Makale(ler)i Grup(lar)a yerini al [%s]> "
 
 #: src/lang.c:828
+#, fuzzy
+msgid   "Superseding article ..."
+msgstr  "Makaleyi deðiþtiriyor..."
+
+#: src/lang.c:829
+#, 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:831
 #, fuzzy, c-format
-msgid	"\n"
-	"Warning: Posting is in %s and contains characters which are not\n"
-	"         in your selected MM_NETWORK_CHARSET: %s.\n"
-	"         These characters will be replaced by '?' if you post this\n"
-	"         article unchanged. To avoid garbling your article please either\n"
-	"         edit it and remove those characters or change the setting of\n"
-	"         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
-	"         M)enu option.\n"
-msgstr	"\n"
-	"Uyarý: Gönderim %s 'de ve seçtiðiniz\n"
-	"     MM_NETWORK_CHARSETte olmayan karakterler içeriyor: %s.\n"
-	"     Bu makaleyi deðiþtirmeden gönderirseniz bu karakterler '?' ile\n"
-	"    deðiþtirilecektir. Makalenizi karamþýklaþtýrmamak için\n"
-	"    düzenleyip karakterleri silin ya da  MM_NETWORK_CHARSET\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
-#, fuzzy
-msgid	"  -D       debug mode 1=NNTP 2=ALL"
-msgstr	"  -D       hata ayýklma kipi 1=NNTP 2=HEPSÝ"
-
-#: src/lang.c:843
-#, fuzzy
-msgid	"Read carefully!\n"
-	"\n"
-	"  You are about to cancel an article seemingly not written by you.  This "
-	"will\n"
-	"  wipe the article from lots of news servers throughout the world;\n"
-	"  Usenet's majority  considers this  rather inappropriate,  to say the "
-	"least.\n"
-	"  Only press 'd'  if you are  absolutely positive  that you are ready to "
-	"take\n"
-	"  the rap.\n"
-	"\n"
-	"This is the article you are about to cancel:\n"
-	"\n"
-msgstr	"Dikkatle okuyun!\n"
-	"\n"
-	" Tarafýnýzdan yazýlmýþ olmayan bir makaleyi iptal etmek üzeresiniz. Bu\n"
-	" dünyadaki birçok sunucudan bu makaleyi silecektir;\n"
-	" en azýndan Usenet'in çoðunluðu bunu uygunsuz bulmaktadýr.\n"
-	" Bu eleþtiriyi almaya hazýr olduðunuzdan kesinlikle eminseniz\n"
-	" sadece 'd' ye basýn.\n"
-	"\n"
-	"Ýptal etmek üzere olduðunuz makale bu:\n"
-	"\n"
+msgid   "%d days"
+msgstr  "%d günler"
+
+#: src/lang.c:832
+#, fuzzy
+msgid   "<TAB>"
+msgstr  "<SEKME>"
+
+#: src/lang.c:833
+msgid   "TeX "
+msgstr  ""
+
+#: src/lang.c:834
+#, fuzzy
+msgid   "# Default action/prompt strings\n"
+msgstr  "# Varsayýlan iþlem/komut dizgileri\n"
+
+#: src/lang.c:835
+#, 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"
+        "#             5=Message-ID: & last References: entry only\n"
+        "#             6=Message-ID: entry only 7=Lines:\n"
+        "# global=ON/OFF  ON=apply to all groups OFF=apply to current group\n"
+        "# 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"
+msgstr  "# Varsayýlanlarý (1 tuþ) kill & otomatik seçme süzleri\n"
+        "# baþlýk=NUM  0,1=Konu: 2,3=dan: 4=Ýleti kimliði: & tam referanslar: satýr\n"
+        "#             5=Ýleti Kimliði: & son referanslar: sadece giriþ\n"
+        "#             6=Ýleti Kimliði: sadece giriþ 7=Satýrlar:\n"
+        "# global=ON/OFF  ON=bütün gruplara uygula OFF=mevcut gruba uygula\n"
+        "# 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:848
+#, 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:849
+#, 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:850
+#, fuzzy
+msgid   "There is no news\n"
+msgstr  "Hiçbir haber yok\n"
+
+#: src/lang.c:851
+#, fuzzy
+msgid   "Thread"
+msgstr  "En küçük yürütme birimi"
 
 #: src/lang.c:852
 #, fuzzy
-msgid	"toggle color"
-msgstr	"renk deðiþtir"
+msgid   "Thread Level Commands"
+msgstr  "En Küçük Yürütme Birim Komut Düzeyi"
 
 #: src/lang.c:853
-msgid	"# Changing colors of several screen parts\n"
-	"# Possible values are:\n"
-	"#  -1 = default (white for foreground and black for background)\n"
-	"#   0 = black\n"
-	"#   1 = red\n"
-	"#   2 = green\n"
-	"#   3 = brown\n"
-	"#   4 = blue\n"
-	"#   5 = pink\n"
-	"#   6 = cyan\n"
-	"#   7 = white\n"
-	"# These are *only* for foreground:\n"
-	"#   8 = gray\n"
-	"#   9 = light red\n"
-	"#  10 = light green\n"
-	"#  11 = yellow\n"
-	"#  12 = light blue\n"
-	"#  13 = light pink\n"
-	"#  14 = light cyan\n"
-	"#  15 = light white\n"
-	"\n"
-msgstr	""
+#, fuzzy
+msgid   "Thread deselected"
+msgstr  "En küçük yürütme birimin seçimi iptal edildi"
+
+#: src/lang.c:854
+#, fuzzy
+msgid   "Thread selected"
+msgstr  "En küçük yürütme birimi seçildi"
+
+#: src/lang.c:856
+#, fuzzy
+msgid   "threads"
+msgstr  "en küçük yürütme birimleri"
+
+#: src/lang.c:858
+#, fuzzy
+msgid   "thread"
+msgstr  "en küçük yürütme birimi"
+
+#: src/lang.c:859
+#, fuzzy, c-format
+msgid   "Thread %4s of %4s"
+msgstr  "En küçük yürütme birimi %4s of %4s"
+
+#: src/lang.c:860
+#, fuzzy
+msgid   "Threading articles..."
+msgstr  "Makaleler baðlanýyor..."
+
+#: src/lang.c:861
+#, fuzzy, c-format
+msgid   "Toggled word highlighting %s"
+msgstr  "Geçiþ kelime belirtiliyor %s"
+
+#: src/lang.c:862
+#, fuzzy
+msgid   "Toggled rot13 encoding"
+msgstr  "Geçiþ rot13 kodlanýyor"
+
+#: src/lang.c:863
+#, fuzzy, c-format
+msgid   "Toggled german TeX encoding %s"
+msgstr  "Geçiþ almanca TeX kodlanýyor %s"
+
+#: src/lang.c:864
+#, fuzzy, c-format
+msgid   "Toggled tab-width to %d"
+msgstr  "Geçiþ sekme geniþliði %d"
+
+#: src/lang.c:866
+#, fuzzy, c-format
+msgid   "%d Trying to dotlock %s"
+msgstr  "%d kilitlemeye deniyor %s"
+
+#: src/lang.c:867
+#, fuzzy, c-format
+msgid   "%d Trying to lock %s"
+msgstr  "%d kilitlemeye çalýþýyor %s"
+
+#: src/lang.c:869
+#, fuzzy
+msgid   "           h=help"
+msgstr  "         h=yardým"
+
+#: src/lang.c:871
+#, fuzzy
+msgid   "Unlimited"
+msgstr  "Sýnýrsýz"
+
+#: src/lang.c:872
+#, fuzzy
+msgid   "Enter wildcard unsubscribe pattern> "
+msgstr  "Abone iptal joker alanýna giriniz> "
 
 #: src/lang.c:873
+#, fuzzy, c-format
+msgid   "Error decoding %s : %s"
+msgstr  "Hata kod çözülmesi %s: %s"
+
+#: src/lang.c:874
 #, fuzzy
-msgid	"  -a       toggle color flag"
-msgstr	"  -a       renk bayraðýný deðiþtir"
+msgid   "No end."
+msgstr  "Sonu yok."
+
+#: src/lang.c:875
+#, fuzzy, c-format
+msgid   "%s successfully decoded."
+msgstr  "%s kod baþarýyla çözüldü."
+
+#: src/lang.c:876
+#, 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:877
 #, 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"
+msgid   "unread "
+msgstr  "okunmamýþ "
 
 #: src/lang.c:878
 #, 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"
+msgid   "unsubscribed from %d groups"
+msgstr  "%d gruptan abonelik iptal edildi"
 
 #: src/lang.c:879
 #, 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"
+msgid   "Unsubscribed from %s"
+msgstr  "abonelik iptal edildi %s"
+
+#: src/lang.c:880
+#, fuzzy
+msgid   "Unsubscribing... "
+msgstr  "Abonelik iptal oluyor... "
 
 #: src/lang.c:881
 #, 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"
+msgid   "Unthreading articles..."
+msgstr  "Makalelerin baðlantýsý sonlanýyor..."
 
 #: src/lang.c:882
-#, 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
-#, 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"
+#, fuzzy
+msgid   "Updated"
+msgstr  "Güncelendi"
 
 #: src/lang.c:884
-#, 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"
+#, c-format
+msgid   "unparseable \"LIST COUNTS\" line: \"%s\""
+msgstr  ""
+
+#: src/lang.c:886
+#, fuzzy
+msgid   "Updating"
+msgstr  "Güncellenme"
+
+#: src/lang.c:887
+msgid   "URL Menu"
+msgstr  ""
 
 #: src/lang.c:888
-#, 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."
+#, fuzzy
+msgid   "URL Menu Commands"
+msgstr  "Üst Düzey Komutlar"
 
 #: src/lang.c:889
-#, fuzzy
-msgid	"Missing parts."
-msgstr	"Bazý yerler eksik."
+#, fuzzy, c-format
+msgid   "Opening %s"
+msgstr  "Açýlma %s\n"
 
 #: src/lang.c:890
 #, fuzzy
-msgid	"No beginning."
-msgstr	"Baþlangýç yok."
+msgid   "Select URL> "
+msgstr  "Grup seç> "
 
 #: src/lang.c:891
 #, fuzzy
-msgid	"No data."
-msgstr	"Veri yok."
+msgid   "No URLs in this article"
+msgstr  "Makalede Birörnek Kaynak Bulucu yok"
 
 #: src/lang.c:892
 #, fuzzy
-msgid	"Unknown error."
-msgstr	"Bilinmeyen hata."
+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:893
+#, 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:894
+#, 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:895
+#, fuzzy
+msgid   "  -q       don't check for new newsgroups"
+msgstr  "  -q       yeni habergruplarý için deneme"
+
+#: src/lang.c:896
+#, fuzzy
+msgid   "  -X       don't save any files on quit"
+msgstr  "  -X       çýkýþta hiçbir dosya kaydetme"
+
+#: src/lang.c:897
+#, fuzzy
+msgid   "  -d       don't show newsgroup descriptions"
+msgstr  "  -d       habergrubu tanýmlarý gösterme"
+
+#: src/lang.c:898
+#, fuzzy
+msgid   "  -G limit get only limit articles/group"
+msgstr  "  -G limit sadece makale/grup sýnýrý elde et"
+
+#: src/lang.c:899
+#, fuzzy, c-format
+msgid   "  -H       help information about %s"
+msgstr  "  -H       yardým bilgisi %s"
+
+#: src/lang.c:900
+#, fuzzy
+msgid   "  -h       this help message"
+msgstr  "  -h       ileti yardýmý"
+
+#: src/lang.c:901
+#, fuzzy, c-format
+msgid   "  -I dir   news index file directory [default=%s]"
+msgstr  "  -I dir   haber dizin dosyasý [varsayýlant=%s]"
+
+#: src/lang.c:902
+#, fuzzy
+msgid   "  -u       update index files (batch mode)"
+msgstr  "  -u       guncelleme dizin dosyasý (toplu modu)"
+
+#: src/lang.c:903
+#, fuzzy, c-format
+msgid   "  -m dir   mailbox directory [default=%s]"
+msgstr  "  -m dir   posta kutusu dizini [varsayýlan=%s]"
+
+#: src/lang.c:904
+#, fuzzy, c-format
+msgid   "\n"
+        "Mail bug reports/comments to %s"
+msgstr  "\n"
+        "posta hata raporu/açýklama %s"
+
+#: src/lang.c:905
+#, fuzzy
+msgid   "  -N       mail new news to your posts (batch mode)"
+msgstr  "  -N       Gönderilenlere yeni haber gönder (toplu mod)"
+
+#: src/lang.c:906
+#, 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:907
+#, 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:908
+#, fuzzy
+msgid   "  -x       no posting mode"
+msgstr  "  -x       iþlem modu yok"
+
+#: src/lang.c:909
+#, fuzzy
+msgid   "  -w       post an article and exit"
+msgstr  "  -w       makale gönder ve çýk"
+
+#: src/lang.c:910
+#, fuzzy
+msgid   "  -o       post all postponed articles and exit"
+msgstr  "  -o       ertelenmiþ bütün makaleleri gönder ve çýk"
+
+#: src/lang.c:911
+#, fuzzy
+msgid   "  -R       read news saved by -S option"
+msgstr  "  -R       -S seçeneði basarak kaydedilen haberleri oku"
+
+#: src/lang.c:912
+#, fuzzy, c-format
+msgid   "  -s dir   save news directory [default=%s]"
+msgstr  "  -s dir   haber dizinini kaydet (varsayýlan=%s)"
+
+#: src/lang.c:913
+#, 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:914
+#, fuzzy
+msgid   "  -z       start if any unread news"
+msgstr  "  -z       okunmamýþ haber varsa baþla"
+
+#: src/lang.c:915
+#, fuzzy, c-format
+msgid   "A Usenet reader.\n"
+        "\n"
+        "Usage: %s [options] [newsgroup[,...]]"
+msgstr  "Usenet okuyucusu.\n"
+        "\n"
+        "Kullaným: %s [seçenekler] [habergrubu[,...]]"
+
+#: src/lang.c:916
+#, fuzzy
+msgid   "  -v       verbose output for batch mode options"
+msgstr  "  -v       toplu kip seçenekleri için gereksiz çýkýþ"
+
+#: src/lang.c:917
+#, fuzzy
+msgid   "  -V       print version & date information"
+msgstr  "  -V       Sürüm & tarih bilgilerini yazdýr"
+
+#: src/lang.c:918
+#, 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:919
+#, 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:920
+#, c-format
+msgid   "Useless combination %s and %s. Ignoring %s.\n"
+msgstr  ""
+
+#: src/lang.c:922
+#, 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:923
+#, fuzzy, c-format
+msgid   "View '%s' (%s/%s)?"
+msgstr  "Göster '%s' (%s/%s)?"
+
+#: src/lang.c:925
+#, fuzzy, c-format
+msgid   "\n"
+        "Warning: posting exceeds %d columns. Line %d is the first long one:\n"
+        "%-100s\n"
+msgstr  "\n"
+        "Uyarý: gönderme %d sütunlarýný geçiyor. %d en uzun ilk satýr:\n"
+        "%-100s\n"
+
+#: src/lang.c:926
+#, fuzzy
+msgid   "\n"
+        "Warning: article unchanged after editing\n"
+msgstr  "\n"
+        "Uyarý: makale düzenlendikten sonra deðiþtirildi\n"
+
+#: src/lang.c:927
+#, fuzzy
+msgid   "\n"
+        "Warning: \"Subject:\" contains only whitespaces.\n"
+msgstr  "\n"
+        "Uyarý: \"Konu:\" sadece beyazboþluklar var.\n"
+
+#: src/lang.c:928
+#, 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:930
+#, fuzzy
+msgid   "\n"
+        "Warning: Article has \"References:\" but \"Subject:\" does not begin\n"
+        "         with \"Re: \" and does not contain \"(was:\".\n"
+msgstr  "\n"
+        "Uyarý: Makalede \"Referanslar:\"  var \"Konu:\"    \"Re: \" ile\n"
+        "       baþlmýyor ve \"(was:\" yok.\n"
+
+#: src/lang.c:933
+#, fuzzy
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly written by you. This will "
+        "wipe\n"
+        "  the article from most  news servers  throughout the world,  but there is "
+        "no\n"
+        "  guarantee that it will work.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Dikkatle oku!\n"
+        "\n"
+        " Tarafýnýzdan yazýlan bir makaleyi iptal etmek üzeresiniz. Bu, makaleyi "
+        "dünyadaki\n"
+        " birçok haber sunucusundan silecektir, ama çalýþacaðýnýn da bir garantisi "
+        "yok.\n"
+        "\n"
+        "Ýptal etmek üzere olduðunuz makale bu:\n"
+        "\n"
+
+#: src/lang.c:937
+#, fuzzy
+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"
+        "         article. If a signature is appended by that inews program it will\n"
+        "         not be encoded properly.\n"
+msgstr  "\n"
+        "Uyarý: Makalenizi sunmak için düz olmayan bir transfer kodlamasý (base64 ya "
+        "da\n"
+        "          imlenen-yazýlabilir gibi) ve dýþ inews programý kullanýyorsunuz. "
+        "Eðer o\n"
+        "          inews programý tarafýndan bir imza iliþtirildiyse, uygun þekilde "
+        "kodlanamaz.\n"
+
+#: src/lang.c:942
+msgid   "\n"
+        "Warning: \"example\" is a reserved hierarchy!\n"
+msgstr  ""
+
+#: src/lang.c:943
+#, fuzzy, c-format
+msgid   "\n"
+        "\n"
+        "You are upgrading to tin %s from an earlier version.\n"
+        "Some values in your %s file have changed!\n"
+        "Read WHATSNEW, etc...\n"
+msgstr  "\n"
+        "\n"
+        "Daha önceki bir sürümden tin %s 'e güncelliyorsunuz.\n"
+        "%s dosyanýzdaki bazi deðerler deðiþtirilmiþtir!\n"
+        "Oku WHATSNEW, vb...\n"
+
+#: src/lang.c:945
 #, fuzzy, c-format
-msgid	"\tChecksum of %s (%ld %s)"
-msgstr	"\tSaðlama toplamý %s (%ld %s)"
+msgid   "\n"
+        "\n"
+        "You are downgrading to tin %s from a more recent version!\n"
+        "Some values in your %s file may be ignored, others might have changed!\n"
+msgstr  "\n"
+        "\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:948
+#, fuzzy, c-format
+msgid   "Warning: tin wrote fewer groups to your\n"
+        "\t%s\n"
+        "than it read at startup. If you didn't unsubscribe from %ld %s during\n"
+        "this session this indicates an error and you should backup your %s\n"
+        "before you start tin once again!\n"
+msgstr  "Uyarý: tin baþlangýçta okuduðundan\n"
+        "\t%s\n"
+        "daha az küme yazdý. Bu oturum sýrasýnda %ld %s 'den aboneliðinizi "
+        "almadýysanýz\n"
+        "bu bir hata gösterir ve tini tekrar baþlatmadan %s'i\n"
+        "yedeklemeniz gerekmektedir!\n"
+
+#: src/lang.c:952
+#, 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:953
+#, fuzzy, c-format
+msgid   "Warning: Only %d out of %d articles were saved"
+msgstr  "Uyarý: Sadece %d 'de %d makale kaydedildi"
+
+#: src/lang.c:954
+#, fuzzy, c-format
+msgid   "\n"
+        "Warning: Your signature  is longer than %d lines.  Since signatures usually "
+        "do\n"
+        "         not  transport any  useful information,  they should be as  short "
+        "as\n"
+        "         possible.\n"
+msgstr  "\n"
+        "Uyarý: Ýmzanýz %d satýrlarýndan daha uzun. Ýmzalar genellikle\n"
+        "         iþe yarar bilgi aktarmadýklarý için, olabildikleri kadar kýsa\n"
+        "        olmalýlar.\n"
+
+#: src/lang.c:958
+#, 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:959
+#, 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:960
+#, fuzzy
+msgid   "Writing attributes file..."
+msgstr  "Öznitelikler dosylasýný yazýyor..."
+
+#: src/lang.c:962
+#, fuzzy, c-format
+msgid   "%d Responses"
+msgstr  "%d Yanýtlar"
+
+#: src/lang.c:964
+#, fuzzy, c-format
+msgid   "Added %d %s"
+msgstr  "Eklendi %d %s"
+
+#: src/lang.c:965
+#, fuzzy
+msgid   "No unsubscribed groups to show"
+msgstr  "Gösterilecek abonelikten çýkmýþ küme yok"
+
+#: src/lang.c:966
+#, fuzzy
+msgid   "Showing subscribed to groups only"
+msgstr  "Sadece abone kümeleri göster"
+
+#: src/lang.c:967
+#, fuzzy
+msgid   "Yes "
+msgstr  "Evet"
+
+#: src/lang.c:968
+#, fuzzy
+msgid   "    You have mail"
+msgstr  "     Postanýz var"
+
+#: src/lang.c:973
+#, fuzzy, c-format
+msgid   "\n"
+        "Warning: Posting is in %s and contains characters which are not\n"
+        "         in your selected MM_NETWORK_CHARSET: %s.\n"
+        "         These characters will be replaced by '?' if you post this\n"
+        "         article unchanged. To avoid garbling your article please either\n"
+        "         edit it and remove those characters or change the setting of\n"
+        "         MM_NETWORK_CHARSET to a suitable value for your posting via the\n"
+        "         M)enu option.\n"
+msgstr  "\n"
+        "Uyarý: Gönderim %s 'de ve seçtiðiniz\n"
+        "     MM_NETWORK_CHARSETte olmayan karakterler içeriyor: %s.\n"
+        "     Bu makaleyi deðiþtirmeden gönderirseniz bu karakterler '?' ile\n"
+        "    deðiþtirilecektir. Makalenizi karamþýklaþtýrmamak için\n"
+        "    düzenleyip karakterleri silin ya da  MM_NETWORK_CHARSET\n"
+        "    ayarlarýný M)enü seçeneði ile yollamak için daha uygun bir þekilde\n"
+        "    deðiþtirin.\n"
+
+#: src/lang.c:984
+msgid   "  -D mode  debug mode"
+msgstr  ""
+
+#: src/lang.c:988
+#, fuzzy
+msgid   "Read carefully!\n"
+        "\n"
+        "  You are about to cancel an article seemingly not written by you.  This "
+        "will\n"
+        "  wipe the article from lots of news servers throughout the world;\n"
+        "  Usenet's majority  considers this  rather inappropriate,  to say the "
+        "least.\n"
+        "  Only press 'd'  if you are  absolutely positive  that you are ready to "
+        "take\n"
+        "  the rap.\n"
+        "\n"
+        "This is the article you are about to cancel:\n"
+        "\n"
+msgstr  "Dikkatle okuyun!\n"
+        "\n"
+        " Tarafýnýzdan yazýlmýþ olmayan bir makaleyi iptal etmek üzeresiniz. Bu\n"
+        " dünyadaki birçok sunucudan bu makaleyi silecektir;\n"
+        " en azýndan Usenet'in çoðunluðu bunu uygunsuz bulmaktadýr.\n"
+        " Bu eleþtiriyi almaya hazýr olduðunuzdan kesinlikle eminseniz\n"
+        " sadece 'd' ye basýn.\n"
+        "\n"
+        "Ýptal etmek üzere olduðunuz makale bu:\n"
+        "\n"
+
+#: src/lang.c:997
+#, fuzzy
+msgid   "toggle color"
+msgstr  "renk deðiþtir"
+
+#: src/lang.c:998
+msgid   "# Changing colors of several screen parts\n"
+        "# Possible values are:\n"
+        "#  -1 = default (white for foreground and black for background)\n"
+        "#   0 = black\n"
+        "#   1 = red\n"
+        "#   2 = green\n"
+        "#   3 = brown\n"
+        "#   4 = blue\n"
+        "#   5 = pink\n"
+        "#   6 = cyan\n"
+        "#   7 = white\n"
+        "# These are *only* for foreground:\n"
+        "#   8 = gray\n"
+        "#   9 = light red\n"
+        "#  10 = light green\n"
+        "#  11 = yellow\n"
+        "#  12 = light blue\n"
+        "#  13 = light pink\n"
+        "#  14 = light cyan\n"
+        "#  15 = light white\n"
+        "\n"
+msgstr  ""
+
+#: src/lang.c:1018
+#, fuzzy
+msgid   "  -a       toggle color flag"
+msgstr  "  -a       renk bayraðýný deðiþtir"
+
+#: src/lang.c:1022
+#, 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:1023
+#, c-format
+msgid   "\n"
+        "Error: \"%s\" is renamed, use \"%s\" instead!\n"
+msgstr  ""
+
+#: src/lang.c:1024
+#, 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:1025
+#, 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:1027
+#, 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:1028
+#, fuzzy, c-format
+msgid   "\n"
+        "Warning: \"%s\" is renamed, you should use \"%s\" instead!\n"
+msgstr  "\n"
+        "Uyaý:  \"%s\" bu sitede geçerli bir newsrc deðil!\n"
+
+#: src/lang.c:1029
+#, 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:1030
+#, 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:1031
+#, 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:1035
+#, 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:1036
+#, fuzzy
+msgid   "Missing parts."
+msgstr  "Bazý yerler eksik."
+
+#: src/lang.c:1037
+#, fuzzy
+msgid   "No beginning."
+msgstr  "Baþlangýç yok."
+
+#: src/lang.c:1038
+#, fuzzy
+msgid   "No data."
+msgstr  "Veri yok."
+
+#: src/lang.c:1039
+#, fuzzy
+msgid   "Unknown error."
+msgstr  "Bilinmeyen hata."
+
+#: src/lang.c:1042
+#, fuzzy, c-format
+msgid   "\tChecksum of %s (%ld %s)"
+msgstr  "\tSaðlama toplamý %s (%ld %s)"
+
+#: src/lang.c:1047
+#, fuzzy
+msgid   "Reading mail active file... "
+msgstr  "Posta aktif dosyasý okunuyor... "
+
+#: src/lang.c:1048
+#, fuzzy
+msgid   "Reading mailgroups file... "
+msgstr  "Postagruplarý dosyasý okunuyor... "
+
+#: src/lang.c:1052
+#, fuzzy
+msgid   "perform PGP operations on article"
+msgstr  "makalede PGP iþlemi gerçekleþtir"
+
+#: src/lang.c:1053
+#, fuzzy
+msgid   "Add key(s) to public keyring?"
+msgstr  "Genel tuþhalkasýna tuþ(lar) ekle?"
+
+#: src/lang.c:1054
+#, 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:1055
+#, 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:1056
+#, fuzzy, c-format
+msgid   "PGP has not been set up (can't open %s)"
+msgstr  "PGP ayarlanmadý (açýlamýyor %s)"
+
+#: src/lang.c:1057
+#, fuzzy
+msgid   "Article not signed and no public keys found"
+msgstr  "Makale  imzalanmadý ve genel tuþlar bulunamadý"
+
+#: src/lang.c:1059
+#, 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:1060
+#, 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:1061
+#, 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:1063
+#, 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:1064
+#, 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:1065
+#, 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:1069
+#, 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:1070
+#, 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:1071
+#, 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:1073
+#, 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:1074
+#, fuzzy, c-format
+msgid   "%s=quit, %s=edit, %s=send [%%s]: "
+msgstr  "%s=çýk, %s=düzenle, %s=gönder [%%s]: "
+
+#: src/lang.c:1075
+#, 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:1084
+#, 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:1085
+#, fuzzy
+msgid   "Tin will use local index files instead.\n"
+msgstr  "Tin yerel dizin dosyalarýný kullanacak.\n"
+
+#: src/lang.c:1086
+#, fuzzy
+msgid   "Cannot find NNTP server name"
+msgstr  "NNTP sunucu ismi bulunamadý"
+
+#: src/lang.c:1087
+#, fuzzy, c-format
+msgid   "Connecting to %s:%u..."
+msgstr  "Baðlanýyor %s:%u..."
+
+#: src/lang.c:1088
+#, fuzzy
+msgid   "Disconnecting from server...\n"
+msgstr  "Sunucu baðlantýsý kesildi...\n"
+
+#: src/lang.c:1089
+#, fuzzy, c-format
+msgid   "Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\""
+msgstr  "GRUP komut yanýtýnda yanlýþ haber grubu ismi. %s e %s"
+
+#: src/lang.c:1090
+#, 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:1091
+#, fuzzy
+msgid   "205  Closing connection"
+msgstr  "205  Baðlantý kesiliyor"
+
+#: src/lang.c:1092
+#, 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:1093
+#, fuzzy
+msgid   "Connection to news server has timed out. Reconnect?"
+msgstr  "Haber sunucusu baðlantý süreniz doldu. Tekrar baðlan?"
+
+#: src/lang.c:1094
+#, 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:1095
+#, fuzzy
+msgid   "  -A       force authentication on connect"
+msgstr  "  -A       baðlantýda doðrulamayý zorla"
+
+#: src/lang.c:1096
+#, 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:1097
+#, 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:1098
+#, fuzzy
+msgid   "  -Q       quick start. Same as -nqd"
+msgstr  "  -Q       hýzlý baþlat. -nqd ile ayný"
+
+#: src/lang.c:1099
+#, fuzzy
+msgid   "  -r       read news remotely from default NNTP server"
+msgstr  "  -r       varsayýlan NTTP sunucusundan haberleri uzaktan oku"
+
+#: src/lang.c:1100
+#, fuzzy
+msgid   "  -l       use only LIST instead of GROUP (-n) command"
+msgstr  "  -l       GROUP (-n) komutu yerine sadece LIST i kullan"
+
+#: src/lang.c:1101
+#, fuzzy
+msgid   "  -n       only read subscribed .newsrc groups from NNTP server"
+msgstr  "  -n       NNTP sunucusundan sadece abone newsrc gruplarýný oku"
+
+#: src/lang.c:1103
+msgid   "  -4       force connecting via IPv4"
+msgstr  ""
+
+#: src/lang.c:1104
+msgid   "  -6       force connecting via IPv6"
+msgstr  ""
+
+#: src/lang.c:1105
+#, fuzzy
+msgid   "\n"
+        "socket or connect problem\n"
+msgstr  "\n"
+        "socket ya da baðlantý hatasý\n"
+
+#: src/lang.c:1107
+#, fuzzy, c-format
+msgid   "\n"
+        "Connection to %s: "
+msgstr  "\n"
+        "Baðlanýyor %s: "
+
+#: src/lang.c:1108
+#, fuzzy
+msgid   "Giving up...\n"
+msgstr  "Pes ediliyor...\n"
+
+#: src/lang.c:1110
+#, fuzzy, c-format
+msgid   "%s/tcp: Unknown service.\n"
+msgstr  "%s/tcp: Bilinmeyen servis.\n"
+
+#: src/lang.c:1114
+#, 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:1117
+#, fuzzy
+msgid   "Your server does not have Xref: in its XOVER information.\n"
+msgstr  "Sunucunuzun XOVER bilgisinde Xref: yok.\n"
+
+#: src/lang.c:1120
+#, 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:1123
+#, fuzzy
+msgid   "  -Q       quick start. Same as -qd"
+msgstr  "  -Q       hýzlý baþlat. -qd ile ayný"
+
+#: src/lang.c:1124
+#, 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:1125
+#, fuzzy
+msgid   "  -n       only read subscribed .newsrc groups from spool"
+msgstr  "  -n       'bekletme'den sadece abone newsrc gruplarý okuyun"
+
+#: src/lang.c:1126
+#, fuzzy
+msgid   "Your server does not have Xref: in its NOV-files.\n"
+msgstr  "Sunucunuzun NOV-dosyalarýnda Xref:yok.\n"
+
+#: src/lang.c:1130
+#, 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:1131
+#, 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:1135
+#, fuzzy, c-format
+msgid   "%d %s printed"
+msgstr  "%d %s yazdýrýldý"
+
+#: src/lang.c:1136
+#, 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:1137
+#, fuzzy
+msgid   "Print"
+msgstr  "Yazdýr"
+
+#: src/lang.c:1138
+#, fuzzy
+msgid   "Printing..."
+msgstr  "Yazdýrýlýyor..."
+
+#: src/lang.c:1142
+#, 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:1143
+#, fuzzy
+msgid   "No command"
+msgstr  "Komut yok"
+
+#: src/lang.c:1144
+#, fuzzy
+msgid   "Pipe"
+msgstr  "Kanal"
+
+#: src/lang.c:1145
+#, fuzzy, c-format
+msgid   "Pipe to command [%.*s]> "
+msgstr  "Komut kanalý [%.*s]> "
+
+#: src/lang.c:1146
+#, fuzzy
+msgid   "Piping..."
+msgstr  "Yöneltiliyor..."
+
+#: src/lang.c:1148
+#, fuzzy
+msgid   "Piping not enabled."
+msgstr  "Yöneltme gerçekleþtirilemedi."
+
+#: src/lang.c:1152
+#, fuzzy, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
+        "       The only allowable  space is the one  separating the colon (:)\n"
+        "       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
+        "       newsgroup names.\n"
+msgstr  "\n"
+        "Hata: \"%s:\" satýrýnda çýkarýlmasý gereken boþluklar var.\n"
+        "      Ýzin verilebilir tek boþluk iki noktayý(:) içerikten  ayýran\n"
+        "      boþluktur. Çoklu habergrubu isimlerini ayýrmak için\n"
+        "      virgül (,) kullanýn.\n"
+
+#: src/lang.c:1157
+#, fuzzy, c-format
+msgid   "\n"
+        "Error: The \"%s:\" line is  continued in  the next line.  Since\n"
+        "       the line  may not  contain  whitespace,  this is  not allowed.\n"
+        "       Please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Hata: \"%s:\" satýrý bir sonraki satýrda devam ediyor. Satýrda\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:1162
+#, fuzzy, c-format
+msgid   "\n"
+        "Warning: The \"%s:\" line is continued in the next line.\n"
+        "         This is a very new feature and may not be accepted by all servers.\n"
+        "         To avoid trouble please write all newsgroups into a single line.\n"
+msgstr  "\n"
+        "Uyarý: \"%s:\" satýrý bir sonraki satýrda devam ediyor.\n"
+        "        Bu çok yeni bir öznitelik ve tüm sunucular tarafýndan kabul "
+        "edilmeyebilir.\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:1166
+#, 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:1171
+#, fuzzy
+msgid   "\n"
+        "  If your article contains quoted text  please take some time to pare it "
+        "down\n"
+        "  to just the  key points to which you are  responding,  or people will "
+        "think\n"
+        "  you are a dweeb!  Many people have the habit of skipping any article  "
+        "whose\n"
+        "  first page is largely  quoted material.  Format your article to fit in "
+        "less\n"
+        "  then 80 chars,  since that's the conventional size  (72 is a good choice "
+        "as\n"
+        "  it allows quoting without exceeding the limit).  If your lines are too "
+        "long\n"
+        "  they'll wrap  around  ugly and  people won't  read what you  write.  If "
+        "you\n"
+        "  aren't  careful  and considerate  in  formatting  your posting, people  "
+        "are\n"
+        "  likely to ignore it completely.  It's a crowded net out there.\n"
+msgstr  "\n"
+        "  Makaleniz imlenmiþ metin içeriyorsa, karþýlýk verdiðiniz çözümleri\n"
+        " uygun hale getirmek için metni kýsaltýn, yoksa insanlar sizin bir ahmak "
+        "olduðunuzu\n"
+        " düþünür. Birçok insan ilk sayfasýnda uzunca bir imlenmiþ metin gördükleri "
+        "makaleleri\n"
+        " atlýyor. Makalenizi geleneksel olan 80 karakterden az tutacak þekilde "
+        "biçimlendirin\n"
+        " (72 sýnýrý aþmadan imlemeye izin verdiði için iyi bir seçim).  Satýrlarýnýz "
+        "fazla uzunsa\n"
+        " çirkin görünürler ve insanlar yazdýklarýnýzý okumazlar. Göndereceklerinizi "
+        "biçimlendirmede\n"
+        " dikkatli ve özenli olmazsanýz, insanlar onu tamamen yoksayarlar. Net oldukça "
+        "kalabalýk bir yer.\n"
+
+#: src/lang.c:1184
+#, fuzzy
+msgid   "shell escape"
+msgstr  "kabuk çýkýþý"
+
+#: src/lang.c:1185
+#, fuzzy, c-format
+msgid   "Shell Command (%s)"
+msgstr  "Kabuk Komutu (%s)"
+
+#: src/lang.c:1186
+#, fuzzy, c-format
+msgid   "Enter shell command [%s]> "
+msgstr  "Kabuk komutunu girin [%s]> "
+
+#: src/lang.c:1190
+#, 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:1194
+#, fuzzy, c-format
+msgid   "Group %.*s ('q' to quit)..."
+msgstr  "Grup %.*s (çýkmak için 'q')..."
+
+#: src/lang.c:1196
+#, fuzzy, c-format
+msgid   "Group %.*s..."
+msgstr  "Grup %.*s..."
+
+#: src/lang.c:1200
+#, fuzzy
+msgid   "Server unavailable\n"
+msgstr  "Sunucu kullanýlamýyor\n"
+
+#: src/lang.c:1206
+#, 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:1207
+#, 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:1209
+#, 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:1210
+#, 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:1214
+#, 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:1215
+#, 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:1217
+#, 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:1218
+#, 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:1224
+#, fuzzy
+msgid   "Terminal does not support color"
+msgstr  "Uçbirim renk desteklemiyor"
+
+#: src/lang.c:1229
+#, fuzzy, c-format
+msgid   "Trying %s"
+msgstr  "%s deneniyor"
+
+#: src/lang.c:1243 src/lang.c:1269 src/lang.c:1285 src/lang.c:1506 src/refs.c:288
+#, fuzzy
+msgid   "None"
+msgstr  "Hiçbiri"
+
+#: src/lang.c:1244
+#, fuzzy
+msgid   "Subject"
+msgstr  "Konu"
+
+#: src/lang.c:1245
+#, fuzzy
+msgid   "References"
+msgstr  "Kaynaklar"
+
+#: src/lang.c:1246
+#, fuzzy
+msgid   "Both Subject and References"
+msgstr  "Konu ve Kaynaklar"
+
+#: src/lang.c:1247
+#, fuzzy
+msgid   "Multipart Subject"
+msgstr  "Çoklu Konu"
+
+#: src/lang.c:1248
+msgid   "Percentage Match"
+msgstr  ""
+
+#: src/lang.c:1260 src/lang.c:1340 src/lang.c:1411
+#, fuzzy
+msgid   "No"
+msgstr  "Hayýr"
+
+#: src/lang.c:1261 src/lang.c:1413
+#, fuzzy
+msgid   "Yes"
+msgstr  "Evet"
+
+#: src/lang.c:1262
+#, fuzzy
+msgid   "Hide All"
+msgstr  "Tümünü Sakla"
+
+#: src/lang.c:1270
+#, fuzzy
+msgid   "Address"
+msgstr  "Adres"
+
+#: src/lang.c:1271
+#, fuzzy
+msgid   "Full Name"
+msgstr  "Tüm Ýsim"
+
+#: src/lang.c:1272
+#, fuzzy
+msgid   "Address and Name"
+msgstr  "Adres ve Ýsim"
+
+#: src/lang.c:1279
+#, fuzzy
+msgid   "Max"
+msgstr  "En Çok"
+
+#: src/lang.c:1280
+#, fuzzy
+msgid   "Sum"
+msgstr  "Toplam"
+
+#: src/lang.c:1281
+#, fuzzy
+msgid   "Average"
+msgstr  "Ortalama"
+
+#: src/lang.c:1286
+#, fuzzy
+msgid   "Lines"
+msgstr  "Çizgiler"
+
+#: src/lang.c:1287
+#, fuzzy
+msgid   "Score"
+msgstr  "Skorlar"
+
+#: src/lang.c:1288
+#, fuzzy
+msgid   "Lines & Score"
+msgstr  "Satýrlar & Skorlar"
+
+#: src/lang.c:1297
+#, fuzzy
+msgid   "Black"
+msgstr  "Siyah"
+
+#: src/lang.c:1298
+#, fuzzy
+msgid   "Red"
+msgstr  "Kýrmýzý"
+
+#: src/lang.c:1299
+#, fuzzy
+msgid   "Green"
+msgstr  "Yeþil"
+
+#: src/lang.c:1300
+#, fuzzy
+msgid   "Brown"
+msgstr  "Kahverengi"
+
+#: src/lang.c:1301
+#, fuzzy
+msgid   "Blue"
+msgstr  "Mavi"
+
+#: src/lang.c:1302
+#, fuzzy
+msgid   "Pink"
+msgstr  "Pembe"
+
+#: src/lang.c:1303
+#, fuzzy
+msgid   "Cyan"
+msgstr  "Camgöbeði"
+
+#: src/lang.c:1304
+#, fuzzy
+msgid   "White"
+msgstr  "Beyaz"
+
+#: src/lang.c:1305
+#, fuzzy
+msgid   "Gray"
+msgstr  "Gri"
+
+#: src/lang.c:1306
+#, fuzzy
+msgid   "Light Red"
+msgstr  "Açýk Kýrmýzý"
 
-#: src/lang.c:900
+#: src/lang.c:1307
 #, fuzzy
-msgid	"Reading mail active file... "
-msgstr	"Posta aktif dosyasý okunuyor... "
+msgid   "Light Green"
+msgstr  "Açýk Yeþil"
 
-#: src/lang.c:901
+#: src/lang.c:1308
 #, fuzzy
-msgid	"Reading mailgroups file... "
-msgstr	"Postagruplarý dosyasý okunuyor... "
+msgid   "Yellow"
+msgstr  "Sarý"
 
-#: src/lang.c:905
+#: src/lang.c:1309
 #, fuzzy
-msgid	"perform PGP operations on article"
-msgstr	"makalede PGP iþlemi gerçekleþtir"
+msgid   "Light Blue"
+msgstr  "Açýk Mavi"
 
-#: src/lang.c:906
+#: src/lang.c:1310
 #, fuzzy
-msgid	"Add key(s) to public keyring?"
-msgstr	"Genel tuþhalkasýna tuþ(lar) ekle?"
+msgid   "Light Pink"
+msgstr  "Açýk Pembe"
 
-#: src/lang.c:907
-#, 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:1311
+#, fuzzy
+msgid   "Light Cyan"
+msgstr  "Açýk Camgöbeði"
 
-#: src/lang.c:908
-#, 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:1312
+#, fuzzy
+msgid   "Light White"
+msgstr  "Açýk Beyaz"
 
-#: src/lang.c:909
-#, fuzzy, c-format
-msgid	"PGP has not been set up (can't open %s)"
-msgstr	"PGP ayarlanmadý (açýlamýyor %s)"
+#: src/lang.c:1320 src/lang.c:1417 src/lang.c:1431
+#, fuzzy
+msgid   "Nothing"
+msgstr  "Hiçbirþey"
 
-#: src/lang.c:910
+#: src/lang.c:1322
 #, fuzzy
-msgid	"Article not signed and no public keys found"
-msgstr	"Makale  imzalanmadý ve genel tuþlar bulunamadý"
+msgid   "Space"
+msgstr  "Boþluk"
 
-#: src/lang.c:912
-#, 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:1329
+#, fuzzy
+msgid   "Normal"
+msgstr  "Normal"
 
-#: src/lang.c:913
-#, 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:1330
+#, fuzzy
+msgid   "Best highlighting"
+msgstr  "En iyi vurgulama"
 
-#: src/lang.c:914
-#, 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:1331
+#, fuzzy
+msgid   "Underline"
+msgstr  "Alt çizgi"
 
-#: src/lang.c:916
-#, 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:1332
+#, fuzzy
+msgid   "Reverse video"
+msgstr  "Tes görüntü"
 
-#: src/lang.c:917
-#, 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:1333
+#, fuzzy
+msgid   "Blinking"
+msgstr  "Yanýp sönme"
 
-#: src/lang.c:918
-#, 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:1334
+#, fuzzy
+msgid   "Half bright"
+msgstr  "Yarý parlak"
 
-#: src/lang.c:922
-#, 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:1335
+#, fuzzy
+msgid   "Bold"
+msgstr  "Kalýn"
 
-#: src/lang.c:923
-#, 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:1341
+msgid   "Cc"
+msgstr  ""
 
-#: src/lang.c:924
-#, 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:1342
+msgid   "Bcc"
+msgstr  ""
 
-#: src/lang.c:926
-#, 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:1343
+msgid   "Cc and Bcc"
+msgstr  ""
 
-#: src/lang.c:927
-#, fuzzy, c-format
-msgid	"%s=quit, %s=edit, %s=send [%%s]: "
-msgstr	"%s=çýk, %s=düzenle, %s=gönder [%%s]: "
+#: src/lang.c:1348 src/lang.c:1360
+#, fuzzy
+msgid   "none"
+msgstr  "hiçbiri"
 
-#: src/lang.c:928
-#, 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:1349
+#, fuzzy
+msgid   "commands"
+msgstr  "komutlar"
 
-#: src/lang.c:937
+#: src/lang.c:1350
 #, fuzzy
-msgid	"Try cache_overview_files to speed up things.\n"
-msgstr	"Hýzlandýrmak için önbellek_giriþ_dosyalarýný deneyin.\n"
+msgid   "select"
+msgstr  "seç"
 
-#: src/lang.c:938
+#: src/lang.c:1352
 #, fuzzy
-msgid	"Tin will use local index files instead.\n"
-msgstr	"Tin yerel dizin dosyalarýný kullanacak.\n"
+msgid   "commands & quit"
+msgstr  "komutlar & çýk"
 
-#: src/lang.c:939
+#: src/lang.c:1353
 #, fuzzy
-msgid	"Cannot find NNTP server name"
-msgstr	"NNTP sunucu ismi bulunamadý"
+msgid   "commands & select"
+msgstr  "komutlar & seç"
 
-#: src/lang.c:940
-#, fuzzy, c-format
-msgid	"Connecting to %s:%d..."
-msgstr	"Baðlanýyor %s:%d..."
+#: src/lang.c:1354
+#, fuzzy
+msgid   "quit & select"
+msgstr  "çýk & seç"
 
-#: src/lang.c:941
+#: src/lang.c:1355
 #, fuzzy
-msgid	"Disconnecting from server...\n"
-msgstr	"Sunucu baðlantýsý kesildi...\n"
+msgid   "commands & quit & select"
+msgstr  "komutlar & çýk & seç"
 
-#: src/lang.c:942
-#, 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:1361
+msgid   "PageDown"
+msgstr  ""
 
-#: src/lang.c:943
-#, 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:1362
+msgid   "PageNextUnread"
+msgstr  ""
 
-#: src/lang.c:944
-#, fuzzy
-msgid	"205  Closing connection"
-msgstr	"205  Baðlantý kesiliyor"
+#: src/lang.c:1363
+msgid   "PageDown or PageNextUnread"
+msgstr  ""
 
-#: src/lang.c:945
+#: src/lang.c:1368
 #, fuzzy
-msgid	"Your server does not support the NNTP XOVER or OVER command.\n"
-msgstr	"Sunucunuz NNTP XOVER ya da OVER komutunu desteklemiyor.\n"
+msgid   "Subject: (case sensitive)"
+msgstr  "Konu: satýr (büyük-küçük duyarlý)"
 
-#: src/lang.c:946
+#: src/lang.c:1369
 #, fuzzy
-msgid	"Connection to news server has timed out. Reconnect?"
-msgstr	"Haber sunucusu baðlantý süreniz doldu. Tekrar baðlan?"
+msgid   "Subject: (ignore case)"
+msgstr  "Konu: satýr (büyük küçük harf durumunu yoksay)"
 
-#: src/lang.c:947
-#, 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:1370
+#, fuzzy
+msgid   "From: (case sensitive)"
+msgstr  "Gönderen: satýr (büyük/küçük harfe duyarlý)   "
 
-#: src/lang.c:948
+#: src/lang.c:1371
 #, fuzzy
-msgid	"  -A       force authentication on connect"
-msgstr	"  -A       baðlantýda doðrulamayý zorla"
+msgid   "From: (ignore case)"
+msgstr  "Gönderen: satýr (büyük/küçük harfleri yoksay) "
 
-#: src/lang.c:949
-#, 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:1372
+msgid   "Msg-ID: & full References: line"
+msgstr  ""
 
-#: src/lang.c:950
-#, 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:1373
+msgid   "Msg-ID: & last References: only"
+msgstr  ""
 
-#: src/lang.c:951
-#, fuzzy
-msgid	"  -Q       quick start. Same as -nqd"
-msgstr	"  -Q       hýzlý baþlat. -nqd ile ayný"
+#: src/lang.c:1374
+msgid   "Message-ID: entry only"
+msgstr  ""
 
-#: src/lang.c:952
+#: src/lang.c:1375
 #, fuzzy
-msgid	"  -l       use only LIST instead of GROUP (-n) command"
-msgstr	"  -l       GROUP (-n) komutu yerine sadece LIST i kullan"
+msgid   "Lines:"
+msgstr  "Çizgiler"
 
-#: src/lang.c:953
+#: src/lang.c:1380
 #, fuzzy
-msgid	"  -n       only read subscribed .newsrc groups from NNTP server"
-msgstr	"  -n       NNTP sunucusundan sadece abone newsrc gruplarýný oku"
+msgid   "Don't trim article body"
+msgstr  "Makaleleri sýrala"
 
-#: src/lang.c:955
-#, fuzzy, c-format
-msgid	"%s/tcp: Unknown service.\n"
-msgstr	"%s/tcp: Bilinmeyen servis.\n"
+#: src/lang.c:1381
+msgid   "Skip leading blank lines"
+msgstr  ""
 
-#: src/lang.c:958
-#, fuzzy
-msgid	"\n"
-	"socket or connect problem\n"
-msgstr	"\n"
-	"socket ya da baðlantý hatasý\n"
+#: src/lang.c:1382
+msgid   "Skip trailing blank lines"
+msgstr  ""
 
-#: src/lang.c:960
-#, fuzzy, c-format
-msgid	"\n"
-	"Connection to %s: "
-msgstr	"\n"
-	"Baðlanýyor %s: "
+#: src/lang.c:1383
+msgid   "Skip leading and trailing blank l."
+msgstr  ""
 
-#: src/lang.c:961
-#, fuzzy
-msgid	"Giving up...\n"
-msgstr	"Pes ediliyor...\n"
+#: src/lang.c:1384
+msgid   "Compact multiple between text"
+msgstr  ""
 
-#: src/lang.c:964
+#: src/lang.c:1385
+msgid   "Compact multiple and skip leading"
+msgstr  ""
+
+#: src/lang.c:1386
+msgid   "Compact multiple and skip trailing"
+msgstr  ""
+
+#: src/lang.c:1387
+msgid   "Compact mltpl., skip lead. & trai."
+msgstr  ""
+
+#: src/lang.c:1412
 #, 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"
+msgid   "Shell archive"
+msgstr  "kabuk arþivi"
 
-#: src/lang.c:967
+#: src/lang.c:1418
 #, fuzzy
-msgid	"Your server does not have Xref: in its XOVER information.\n"
-msgstr	"Sunucunuzun XOVER bilgisinde Xref: yok.\n"
+msgid   "Subject: (descending)"
+msgstr  "Konu: (alçalan)"
 
-#: src/lang.c:970
-#, 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:1419
+#, fuzzy
+msgid   "Subject: (ascending)"
+msgstr  "Konu: (yükselen)"
 
-#: src/lang.c:973
+#: src/lang.c:1420
 #, fuzzy
-msgid	"  -Q       quick start. Same as -qd"
-msgstr	"  -Q       hýzlý baþlat. -qd ile ayný"
+msgid   "From: (descending)"
+msgstr  "Gönderen: (alçalan)"
 
-#: src/lang.c:974
+#: src/lang.c:1421
 #, fuzzy
-msgid	"  -l       read only active file instead of scanning spool (-n) command"
-msgstr	"  -l       bekletme komutunu taramak yerine sadece aktif dosyayý okuyun"
+msgid   "From: (ascending)"
+msgstr  "Gönderen: (yükselen)"
 
-#: src/lang.c:975
+#: src/lang.c:1422
 #, fuzzy
-msgid	"  -n       only read subscribed .newsrc groups from spool"
-msgstr	"  -n       'bekletme'den sadece abone newsrc gruplarý okuyun"
+msgid   "Date: (descending)"
+msgstr  "Tarih: (alçalan)"
 
-#: src/lang.c:976
+#: src/lang.c:1423
 #, fuzzy
-msgid	"Your server does not have Xref: in its NOV-files.\n"
-msgstr	"Sunucunuzun NOV-dosyalarýnda Xref:yok.\n"
+msgid   "Date: (ascending)"
+msgstr  "Tarih: (yükselen)"
 
-#: src/lang.c:980
+#: src/lang.c:1424 src/lang.c:1432
 #, 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ý?"
+msgid   "Score (descending)"
+msgstr  "Skor: (alçalan)"
 
-#: src/lang.c:981
+#: src/lang.c:1425 src/lang.c:1433
 #, 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?"
+msgid   "Score (ascending)"
+msgstr  "Skor: (yükselen)"
 
-#: src/lang.c:989
-#, fuzzy, c-format
-msgid	"%d %s printed"
-msgstr	"%d %s yazdýrýldý"
+#: src/lang.c:1426
+#, fuzzy
+msgid   "Lines: (descending)"
+msgstr  "Satýrlar: (alçalan)"
 
-#: src/lang.c:990
+#: src/lang.c:1427
 #, 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"
+msgid   "Lines: (ascending)"
+msgstr  "Satýrlar: (yükselen)"
 
-#: src/lang.c:991
+#: src/lang.c:1434
 #, fuzzy
-msgid	"Print"
-msgstr	"Yazdýr"
+msgid   "Last posting date (descending)"
+msgstr  "Satýrlar: (alçalan)"
 
-#: src/lang.c:992
+#: src/lang.c:1435
 #, fuzzy
-msgid	"Printing..."
-msgstr	"Yazdýrýlýyor..."
+msgid   "Last posting date (ascending)"
+msgstr  "Satýrlar: (yükselen)"
 
-#: src/lang.c:996
+#: src/lang.c:1440
 #, fuzzy
-msgid	"pipe article/thread/hot/pattern/tagged articles into command"
-msgstr	"kanal makale/parçacýk/hot/örüntü/imlenmiþ makaleleri komuta al"
+msgid   "Always Keep"
+msgstr  "Hep Sakla"
 
-#: src/lang.c:997
+#: src/lang.c:1441
 #, fuzzy
-msgid	"No command"
-msgstr	"Komut yok"
+msgid   "Always Remove"
+msgstr  "Hep Kaldýr"
 
-#: src/lang.c:998
+#: src/lang.c:1442
 #, fuzzy
-msgid	"Pipe"
-msgstr	"Kanal"
+msgid   "Mark with D on selection screen"
+msgstr  "Seçenek ekranýnda D ile iþaretle"
 
-#: src/lang.c:999
-#, fuzzy, c-format
-msgid	"Pipe to command [%.*s]> "
-msgstr	"Komut kanalý [%.*s]> "
+#: src/lang.c:1447
+#, fuzzy
+msgid   "Kill only unread arts"
+msgstr  "Sadece okunmayan makaleleri yok et"
 
-#: src/lang.c:1000
-#, fuzzy
-msgid	"Piping..."
-msgstr	"Yöneltiliyor..."
-
-#: src/lang.c:1002
-#, fuzzy
-msgid	"Piping not enabled."
-msgstr	"Yöneltme gerçekleþtirilemedi."
-
-#: src/lang.c:1006
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line has spaces  in it that MUST be removed.\n"
-	"       The only allowable  space is the one  separating the colon (:)\n"
-	"       from  the  contents.  Use a  comma  (,)  to separate  multiple\n"
-	"       newsgroup names.\n"
-msgstr	"\n"
-	"Hata: \"%s:\" satýrýnda çýkarýlmasý gereken boþluklar var.\n"
-	"      Ýzin verilebilir tek boþluk iki noktayý(:) içerikten  ayýran\n"
-	"      boþluktur. Çoklu habergrubu isimlerini ayýrmak için\n"
-	"      virgül (,) kullanýn.\n"
-
-#: src/lang.c:1011
-#, fuzzy, c-format
-msgid	"\n"
-	"Error: The \"%s:\" line is  continued in  the next line.  Since\n"
-	"       the line  may not  contain  whitespace,  this is  not allowed.\n"
-	"       Please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Hata: \"%s:\" satýrý bir sonraki satýrda devam ediyor. Satýrda\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:1016
-#, fuzzy, c-format
-msgid	"\n"
-	"Warning: The \"%s:\" line is continued in the next line.\n"
-	"         This is a very new feature and may not be accepted by all servers.\n"
-	"         To avoid trouble please write all newsgroups into a single line.\n"
-msgstr	"\n"
-	"Uyarý: \"%s:\" satýrý bir sonraki satýrda devam ediyor.\n"
-	"        Bu çok yeni bir öznitelik ve tüm sunucular tarafýndan kabul "
-	"edilmeyebilir.\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: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:1448
+#, fuzzy
+msgid   "Kill all arts & show with K"
+msgstr  "Tüm makaleleri yok et & K ile göster"
 
-#: src/lang.c:1025
+#  TODO: s/K/art_marked_killed/
+#. TODO: s/K/art_marked_killed/
+#: src/lang.c:1449
 #, fuzzy
-msgid	"\n"
-	"  If your article contains quoted text  please take some time to pare it "
-	"down\n"
-	"  to just the  key points to which you are  responding,  or people will "
-	"think\n"
-	"  you are a dweeb!  Many people have the habit of skipping any article  "
-	"whose\n"
-	"  first page is largely  quoted material.  Format your article to fit in "
-	"less\n"
-	"  then 80 chars,  since that's the conventional size  (72 is a good choice "
-	"as\n"
-	"  it allows quoting without exceeding the limit).  If your lines are too "
-	"long\n"
-	"  they'll wrap  around  ugly and  people won't  read what you  write.  If "
-	"you\n"
-	"  aren't  careful  and considerate  in  formatting  your posting, people  "
-	"are\n"
-	"  likely to ignore it completely.  It's a crowded net out there.\n"
-msgstr	"\n"
-	"  Makaleniz imlenmiþ metin içeriyorsa, karþýlýk verdiðiniz çözümleri\n"
-	" uygun hale getirmek için metni kýsaltýn, yoksa insanlar sizin bir ahmak "
-	"olduðunuzu\n"
-	" düþünür. Birçok insan ilk sayfasýnda uzunca bir imlenmiþ metin gördükleri "
-	"makaleleri\n"
-	" atlýyor. Makalenizi geleneksel olan 80 karakterden az tutacak þekilde "
-	"biçimlendirin\n"
-	" (72 sýnýrý aþmadan imlemeye izin verdiði için iyi bir seçim).  Satýrlarýnýz "
-	"fazla uzunsa\n"
-	" çirkin görünürler ve insanlar yazdýklarýnýzý okumazlar. Göndereceklerinizi "
-	"biçimlendirmede\n"
-	" dikkatli ve özenli olmazsanýz, insanlar onu tamamen yoksayarlar. Net oldukça "
-	"kalabalýk bir yer.\n"
+msgid   "Kill all arts and never show"
+msgstr  "Tüm makaleleri yok et ve asla gösterme"
 
-#: src/lang.c:1038
+#: src/lang.c:1454
 #, fuzzy
-msgid	"shell escape"
-msgstr	"kabuk çýkýþý"
+msgid   "Nothing special"
+msgstr  "Özel birþey yok"
 
-#: src/lang.c:1039
-#, fuzzy, c-format
-msgid	"Shell Command (%s)"
-msgstr	"Kabuk Komutu (%s)"
+#: src/lang.c:1455
+#, fuzzy
+msgid   "Compress quotes"
+msgstr  "Ýmleri sýkýþtýr"
 
-#: src/lang.c:1040
-#, fuzzy, c-format
-msgid	"Enter shell command [%s]> "
-msgstr	"Kabuk komutunu girin [%s]> "
+#: src/lang.c:1456
+#, fuzzy
+msgid   "Quote signatures"
+msgstr  "Ýmzalarý imle"
 
-#: 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:1457
+#, fuzzy
+msgid   "Compress quotes, quote sigs"
+msgstr  "Ýmleri sýkýþtýr, imzalarý imle"
 
-#: src/lang.c:1048
-#, fuzzy, c-format
-msgid	"Group %.*s ('q' to quit)..."
-msgstr	"Grup %.*s (çýkmak için 'q')..."
+#: src/lang.c:1458
+#, fuzzy
+msgid   "Quote empty lines"
+msgstr  "Boþ satýrlarý imle"
 
-#: src/lang.c:1050
-#, fuzzy, c-format
-msgid	"Group %.*s..."
-msgstr	"Grup %.*s..."
+#: src/lang.c:1459
+#, fuzzy
+msgid   "Compress quotes, quote empty lines"
+msgstr  "Ýmleri sýkýþtýr, boþ satýrlarý imle"
 
-#: src/lang.c:1054
+#: src/lang.c:1460
 #, fuzzy
-msgid	"Server unavailable\n"
-msgstr	"Sunucu kullanýlamýyor\n"
+msgid   "Quote sigs & empty lines"
+msgstr  "Ýmzalarý & boþ satýrlarý imle"
 
-#: 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:1461
+#, fuzzy
+msgid   "Comp. q., quote sigs & empty lines"
+msgstr  "Ýmleri sýkýþtýr, imzalarý & boþ satýrlarý imle"
 
-#: 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:1499
+#, fuzzy
+msgid   "no"
+msgstr  "hiçbiri"
 
-#: 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:1500
+#, fuzzy
+msgid   "with headers"
+msgstr  "en küçük yürütme birimleri"
 
-#: 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:1501
+msgid   "without headers"
+msgstr  ""
 
-#: 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:1508 src/lang.c:1514
+msgid   "NFKC"
+msgstr  ""
 
-#: 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:1509
+msgid   "NFKD"
+msgstr  ""
 
-#: 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:1510
+msgid   "NFC"
+msgstr  ""
 
-#: 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:1511
+msgid   "NFD"
+msgstr  ""
 
-#: src/lang.c:1078
+#: src/lang.c:1522
 #, fuzzy
-msgid	"Terminal does not support color"
-msgstr	"Uçbirim renk desteklemiyor"
+msgid   "Display Options"
+msgstr  "Seçenekleri Göster"
 
-#: src/lang.c:1083
-#, fuzzy, c-format
-msgid	"Trying %s"
-msgstr	"%s deneniyor"
-
-#: src/lang.c:1097 src/lang.c:1123 src/lang.c:1139 src/lang.c:1318 src/refs.c:296
+#: src/lang.c:1529
 #, fuzzy
-msgid	"None"
-msgstr	"Hiçbiri"
+msgid   "Color Options"
+msgstr  "Renk Seçenekleri"
 
-#: src/lang.c:1098
+#: src/lang.c:1536
 #, fuzzy
-msgid	"Subject"
-msgstr	"Konu"
+msgid   "Article-Limiting Options"
+msgstr  "Makale-Sýnýrlandýrma Seçenekleri"
 
-#: src/lang.c:1099
+#: src/lang.c:1542
 #, fuzzy
-msgid	"References"
-msgstr	"Kaynaklar"
+msgid   "Posting/Mailing Options"
+msgstr  "Yollama/Postalama Seçenekleri"
 
-#: src/lang.c:1100
+#: src/lang.c:1548
 #, fuzzy
-msgid	"Both Subject and References"
-msgstr	"Konu ve Kaynaklar"
+msgid   "Saving/Printing Options"
+msgstr  "Kaydetme/Yazdýrma Seçenekleri"
 
-#: src/lang.c:1101
+#: src/lang.c:1554
 #, fuzzy
-msgid	"Multipart Subject"
-msgstr	"Çoklu Konu"
+msgid   "Expert Options"
+msgstr  "Uzman Seçenekleri"
 
-#: src/lang.c:1102
-msgid	"Percentage Match"
-msgstr	""
-
-#: src/lang.c:1114 src/lang.c:1225
+#: src/lang.c:1560
 #, fuzzy
-msgid	"No"
-msgstr	"Hayýr"
+msgid   "Filtering Options"
+msgstr  "Süzgeçleme Seçenekleri"
 
-#: src/lang.c:1115 src/lang.c:1227
+#: src/lang.c:1565 src/lang.c:1596 src/lang.c:1602 src/lang.c:1628 src/lang.c:1680
+#: src/lang.c:1686 src/lang.c:1696 src/lang.c:1707 src/lang.c:1725 src/lang.c:1800
+#: src/lang.c:1808 src/lang.c:1998 src/lang.c:2004 src/lang.c:2010 src/lang.c:2016
+#: src/lang.c:2028 src/lang.c:2035 src/lang.c:2089 src/lang.c:2098 src/lang.c:2104
+#: src/lang.c:2111 src/lang.c:2118 src/lang.c:2125 src/lang.c:2132 src/lang.c:2139
+#: src/lang.c:2146 src/lang.c:2153 src/lang.c:2160 src/lang.c:2167 src/lang.c:2174
+#: src/lang.c:2181 src/lang.c:2188 src/lang.c:2195 src/lang.c:2202 src/lang.c:2209
+#: src/lang.c:2216 src/lang.c:2223 src/lang.c:2230 src/lang.c:2237 src/lang.c:2244
+#: src/lang.c:2251 src/lang.c:2258 src/lang.c:2265 src/lang.c:2273 src/lang.c:2289
+#: src/lang.c:2296 src/lang.c:2303 src/lang.c:2310 src/lang.c:2316 src/lang.c:2322
+#: src/lang.c:2339 src/lang.c:2351 src/lang.c:2385 src/lang.c:2438 src/lang.c:2452
+#: src/lang.c:2458 src/lang.c:2483 src/lang.c:2500 src/lang.c:2516 src/lang.c:2552
+#: src/lang.c:2588 src/lang.c:2608 src/lang.c:2643 src/lang.c:2653 src/lang.c:2660
+#: src/lang.c:2686 src/lang.c:2702 src/lang.c:2721 src/lang.c:2734 src/lang.c:2745
+#: src/lang.c:2751 src/lang.c:2789
 #, fuzzy
-msgid	"Yes"
-msgstr	"Evet"
+msgid   "<SPACE> toggles, <CR> sets, <ESC> cancels."
+msgstr  "<SPACE> deðiþtirir, <CR> ayarlar, <ESC> iptal eder."
 
-#: src/lang.c:1116
+#: src/lang.c:1566
 #, fuzzy
-msgid	"Hide All"
-msgstr	"Tümünü Sakla"
+msgid   "Show mini menu & posting etiquette"
+msgstr  "Mini menüyü & yollama etiketini göster"
 
-#: src/lang.c:1124
+#: src/lang.c:1567
 #, fuzzy
-msgid	"Address"
-msgstr	"Adres"
+msgid   "# If ON show a mini menu of useful commands at each level\n"
+        "# and posting etiquette after composing an article\n"
+msgstr  "# ON durumundaysa makale oluþturduktan sonra tüm düzeylerde kullanýþlý "
+        "komutlarýn\n"
+        "# mini menüsünü ve yollama etiketini göster.\n"
 
-#: src/lang.c:1125
+#: src/lang.c:1572
 #, fuzzy
-msgid	"Full Name"
-msgstr	"Tüm Ýsim"
+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:1126
+#: src/lang.c:1573
 #, fuzzy
-msgid	"Address and Name"
-msgstr	"Adres ve Ýsim"
+msgid   "Show description of each newsgroup"
+msgstr  "Her haber grubu için açýklama göster"
 
-#: src/lang.c:1133
+#: src/lang.c:1574
 #, fuzzy
-msgid	"Max"
-msgstr	"En Çok"
+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:1579
+#, 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:1134
+#: src/lang.c:1580
 #, fuzzy
-msgid	"Sum"
-msgstr	"Toplam"
+msgid   "In group menu, show author by"
+msgstr  "Grup menüsünde yazarý þuna göre göster"
 
-#: src/lang.c:1135
+#: src/lang.c:1581
 #, fuzzy
-msgid	"Average"
-msgstr	"Ortalama"
+msgid   "# Part of from field to display\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = none\n"
+        "#   1 = address\n"
+        "# * 2 = full name\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:1140
+#: src/lang.c:1590
 #, fuzzy
-msgid	"Lines"
-msgstr	"Çizgiler"
+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:1141
+#: src/lang.c:1591
 #, fuzzy
-msgid	"Score"
-msgstr	"Skorlar"
+msgid   "Draw -> instead of highlighted bar"
+msgstr  "Çiz -> vurgulanmýþ çubuk yerine"
 
-#: src/lang.c:1142
+#: src/lang.c:1592
 #, fuzzy
-msgid	"Lines & Score"
-msgstr	"Satýrlar & Skorlar"
+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:1151
+#: src/lang.c:1597
 #, fuzzy
-msgid	"Black"
-msgstr	"Siyah"
+msgid   "Use inverse video for page headers"
+msgstr  "Sayfa baþlýklarý için ters görüntü kullan"
 
-#: src/lang.c:1152
+#: src/lang.c:1598
 #, fuzzy
-msgid	"Red"
-msgstr	"Kýrmýzý"
+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:1153
+#: src/lang.c:1603
 #, fuzzy
-msgid	"Green"
-msgstr	"Yeþil"
+msgid   "Thread articles by"
+msgstr  "Makaleleri belirle"
 
-#: src/lang.c:1154
-#, fuzzy
-msgid	"Brown"
-msgstr	"Kahverengi"
+#: src/lang.c:1604
+msgid   "# Thread articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject\n"
+        "#   2 = References\n"
+        "# * 3 = Both (Subject and References)\n"
+        "#   4 = Multipart Subject\n"
+        "#   5 = Percentage Match\n"
+msgstr  ""
+
+#: src/lang.c:1615
+msgid   "Enter percentage match required to thread together. <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1616
+msgid   "Thread percentage match"
+msgstr  ""
+
+#: src/lang.c:1617
+#, c-format
+msgid   "# Thread percentage match...\n"
+        "# the percentage of characters in the subject of an article that must match\n"
+        "# a base article for both those articles to be considered to belong to the\n"
+        "# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
+        "# follow. If 80 is used here, then 80%% of the characters must match "
+        "exactly,\n"
+        "# no insertion of a character, for the two articles to be put in the same\n"
+        "# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
+        "# 'harppy' would be threaded separately from 'happy'\n"
+msgstr  ""
 
-#: src/lang.c:1155
+#: src/lang.c:1629
 #, fuzzy
-msgid	"Blue"
-msgstr	"Mavi"
+msgid   "Score of a thread"
+msgstr  "Bir iþ parçacýðýnýn skoru"
 
-#: src/lang.c:1156
-#, fuzzy
-msgid	"Pink"
-msgstr	"Pembe"
+#: src/lang.c:1630
+msgid   "# Thread score\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = max\n"
+        "#   1 = sum\n"
+        "#   2 = average\n"
+msgstr  ""
 
-#: src/lang.c:1157
+#: src/lang.c:1638
 #, fuzzy
-msgid	"Cyan"
-msgstr	"Camgöbeði"
+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:1158
+#: src/lang.c:1639
 #, fuzzy
-msgid	"White"
-msgstr	"Beyaz"
+msgid   "Sort articles by"
+msgstr  "Makaleleri sýrala"
 
-#: src/lang.c:1159
+#: src/lang.c:1640
 #, fuzzy
-msgid	"Gray"
-msgstr	"Gri"
+msgid   "# Sort articles by ...\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = nothing\n"
+        "#   1 = Subject descending\n"
+        "#   2 = Subject ascending\n"
+        "#   3 = From descending\n"
+        "#   4 = From ascending\n"
+        "#   5 = Date descending\n"
+        "# * 6 = Date ascending\n"
+        "#   7 = Score descending\n"
+        "#   8 = Score ascending\n"
+        "#   9 = Lines descending\n"
+        "#  10 = Lines 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:1160
+#: src/lang.c:1656
 #, fuzzy
-msgid	"Light Red"
-msgstr	"Açýk Kýrmýzý"
+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:1161
+#: src/lang.c:1657
 #, fuzzy
-msgid	"Light Green"
-msgstr	"Açýk Yeþil"
+msgid   "Sort threads by"
+msgstr  "Ýþ parçacýklarýný sýrala"
 
-#: src/lang.c:1162
+#: src/lang.c:1658
 #, fuzzy
-msgid	"Yellow"
-msgstr	"Sarý"
+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  "# 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:1163
+#: src/lang.c:1668
 #, fuzzy
-msgid	"Light Blue"
-msgstr	"Açýk Mavi"
+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:1164
+#: src/lang.c:1669
 #, fuzzy
-msgid	"Light Pink"
-msgstr	"Açýk Pembe"
+msgid   "Go to first unread article in group"
+msgstr  "Gruptaki ilk okunmamýþ makaleye git"
 
-#: src/lang.c:1165
+#: src/lang.c:1670
 #, fuzzy
-msgid	"Light Cyan"
-msgstr	"Açýk Camgöbeði"
+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:1166
+#: src/lang.c:1674
 #, fuzzy
-msgid	"Light White"
-msgstr	"Açýk Beyaz"
+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:1174 src/lang.c:1231 src/lang.c:1245
+#: src/lang.c:1675
 #, fuzzy
-msgid	"Nothing"
-msgstr	"Hiçbirþey"
+msgid   "Show only unread articles"
+msgstr  "Sadece okunmayan makaleleri göster"
 
-#: src/lang.c:1175
+#: src/lang.c:1676
 #, fuzzy
-msgid	"Mark"
-msgstr	"Ýþaretle"
+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:1176
+#: src/lang.c:1681
 #, fuzzy
-msgid	"Space"
-msgstr	"Boþluk"
+msgid   "Show only groups with unread arts"
+msgstr  "Sadece okunmamýþ makale olan gruplarý göster"
 
-#: src/lang.c:1183
+#: src/lang.c:1682
 #, fuzzy
-msgid	"Normal"
-msgstr	"Normal"
+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:1184
+#: src/lang.c:1687
 #, fuzzy
-msgid	"Best highlighting"
-msgstr	"En iyi vurgulama"
+msgid   "Filter which articles"
+msgstr  "Hangi makaleleri filtrele"
 
-#: src/lang.c:1185
+#: src/lang.c:1688
 #, fuzzy
-msgid	"Underline"
-msgstr	"Alt çizgi"
+msgid   "# Filter which articles\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = only kill unread articles\n"
+        "#   1 = kill all articles and show in threads marked with K\n"
+        "#   2 = kill all articles and never show them\n"
+msgstr  "# 0=(Sadece okunmamýþ makaleleri yok et)\n"
+        "# 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:1697
+#, fuzzy
+msgid   "Go to the next unread article with"
+msgstr  "Sonraki okunmamýþ makale yok"
+
+#: src/lang.c:1698
+#, fuzzy
+msgid   "# Go to the unread article with following 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:1708
+#, fuzzy
+msgid   "How to treat blank lines"
+msgstr  "Boþ satýrlarý imle"
+
+#: src/lang.c:1709
+msgid   "# Trim the article body, remove unnecessary blank lines.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = Nothing special\n"
+        "#   1 = Skip leading blank lines\n"
+        "#   2 = Skip trailing blank lines\n"
+        "#   3 = Skip leading and trailing blank lines\n"
+        "#   4 = Compact multiple blank lines between text blocks\n"
+        "#   5 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading blank lines\n"
+        "#   6 = Compact multiple blank lines between text blocks and skip\n"
+        "#       trailing blank lines\n"
+        "#   7 = Compact multiple blank lines between text blocks and skip\n"
+        "#       leading and trailing blank lines\n"
+msgstr  ""
 
-#: src/lang.c:1186
+#: src/lang.c:1726
 #, fuzzy
-msgid	"Reverse video"
-msgstr	"Tes görüntü"
+msgid   "List thread using right arrow key"
+msgstr  "Sað ok tuþuna basarak parçacýklarý listele"
 
-#: src/lang.c:1187
+#: src/lang.c:1727
 #, fuzzy
-msgid	"Blinking"
-msgstr	"Yanýp sönme"
+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:1188
+#: src/lang.c:1731
 #, fuzzy
-msgid	"Half bright"
-msgstr	"Yarý parlak"
+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:1189
+#: src/lang.c:1732
 #, fuzzy
-msgid	"Bold"
-msgstr	"Kalýn"
+msgid   "Character to show deleted articles"
+msgstr  "Silinmiþ makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1194
+#: src/lang.c:1733
 #, fuzzy
-msgid	"none"
-msgstr	"hiçbiri"
+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:1195
+#: src/lang.c:1738
 #, fuzzy
-msgid	"commands"
-msgstr	"komutlar"
+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:1196
+#: src/lang.c:1739
 #, fuzzy
-msgid	"select"
-msgstr	"seç"
+msgid   "Character to show inrange articles"
+msgstr  "Sýralanmýþ makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1198
+#: src/lang.c:1740
 #, fuzzy
-msgid	"commands & quit"
-msgstr	"komutlar & çýk"
+msgid   "# Character used to show that an art is in a range (default '#')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# Bir makalenin sýralanmýþ olduðunu göstermek için kullanýlan karakter "
+        "(varsayýlan '#')\n"
+        "# _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1199
+#: src/lang.c:1745
 #, fuzzy
-msgid	"commands & select"
-msgstr	"komutlar & seç"
+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:1200
+#: src/lang.c:1746
 #, fuzzy
-msgid	"quit & select"
-msgstr	"çýk & seç"
+msgid   "Character to show returning arts"
+msgstr  "Dönen makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1201
+#: src/lang.c:1747
 #, fuzzy
-msgid	"commands & quit & select"
-msgstr	"komutlar & çýk & seç"
+msgid   "# Character used to show that an art will return (default '-')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# Bir makalenin döneceðini göstermek için kullanýlan karakter (varsayýlan "
+        "'-')\n"
+        "# _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1226
+#: src/lang.c:1752
 #, fuzzy
-msgid	"Shell archive"
-msgstr	"kabuk arþivi"
+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:1232
+#: src/lang.c:1753
 #, fuzzy
-msgid	"Subject: (descending)"
-msgstr	"Konu: (alçalan)"
+msgid   "Character to show selected articles"
+msgstr  "Seçilen makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1233
+#: src/lang.c:1754
 #, fuzzy
-msgid	"Subject: (ascending)"
-msgstr	"Konu: (yükselen)"
+msgid   "# Character used to show that an art was auto-selected (default '*')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# Bir makalenin otomatik seçildiðini göstermek için kullanýlan karakter "
+        "(varsayýlan '*')\n"
+        "# _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1234
+#: src/lang.c:1759
 #, fuzzy
-msgid	"From: (descending)"
-msgstr	"Gönderen: (alçalan)"
+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:1235
+#: src/lang.c:1760
 #, fuzzy
-msgid	"From: (ascending)"
-msgstr	"Gönderen: (yükselen)"
+msgid   "Character to show recent articles"
+msgstr  "Son makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1236
+#: src/lang.c:1761
 #, fuzzy
-msgid	"Date: (descending)"
-msgstr	"Tarih: (alçalan)"
+msgid   "# Character used to show that an art is recent (default 'o')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# Bir makalenin son olduðunu göstermek için kullanýlan karakter (varsayýlan "
+        "'o')\n"
+        "# _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1237
+#: src/lang.c:1766
 #, fuzzy
-msgid	"Date: (ascending)"
-msgstr	"Tarih: (yükselen)"
+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:1238 src/lang.c:1246
+#: src/lang.c:1767
 #, fuzzy
-msgid	"Score (descending)"
-msgstr	"Skor: (alçalan)"
+msgid   "Character to show unread articles"
+msgstr  "Okunmamýþ makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1239 src/lang.c:1247
+#: src/lang.c:1768
 #, fuzzy
-msgid	"Score (ascending)"
-msgstr	"Skor: (yükselen)"
+msgid   "# Character used to show that an art is unread (default '+')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# Bir makalenin okunmadýðýný göstermek için kullanýlan karakter (varsayýlan "
+        "'+')\n"
+        "# _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1240
+#: src/lang.c:1773
 #, fuzzy
-msgid	"Lines: (descending)"
-msgstr	"Satýrlar: (alçalan)"
+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:1241
+#: src/lang.c:1774
 #, fuzzy
-msgid	"Lines: (ascending)"
-msgstr	"Satýrlar: (yükselen)"
+msgid   "Character to show read articles"
+msgstr  "Okunmamýþ makaleleri gösterecek olan karakter"
 
-#: src/lang.c:1252
+#: src/lang.c:1775
 #, fuzzy
-msgid	"Always Keep"
-msgstr	"Hep Sakla"
+msgid   "# Character used to show that an art was read (default ' ')\n"
+        "# _ is turned into ' '\n"
+msgstr  "# Bir makalenin okunduðunu göstermek için kullanýlan karakter (varsayýlan ' "
+        "')\n"
+        "# _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1253
+#: src/lang.c:1780
 #, fuzzy
-msgid	"Always Remove"
-msgstr	"Hep Kaldýr"
+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:1254
+#: src/lang.c:1781
 #, fuzzy
-msgid	"Mark with D on selection screen"
-msgstr	"Seçenek ekranýnda D ile iþaretle"
+msgid   "Character to show killed articles"
+msgstr  "Yok olan makaleleri gösterecen karakter"
 
-#: src/lang.c:1259
+#: src/lang.c:1782
 #, fuzzy
-msgid	"Kill only unread arts"
-msgstr	"Sadece okunmayan makaleleri yok et"
+msgid   "# Character used to show that an art was killed (default 'K')\n"
+        "# kill_level must be set accordingly, _ is turned into ' '\n"
+msgstr  "# Bir makalenin yok olduðunu göstermek için kullanýlan karakter (varsayýlan "
+        "'K')\n"
+        "# yok olma düzeyi ona göre ayarlanmalýdýr, _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1260
+#: src/lang.c:1787
 #, fuzzy
-msgid	"Kill all arts & show with K"
-msgstr	"Tüm makaleleri yok et & K ile göster"
+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."
 
-#  TODO: s/K/art_marked_killed/
-#. TODO: s/K/art_marked_killed/
-#: src/lang.c:1261
+#: src/lang.c:1788
 #, fuzzy
-msgid	"Kill all arts and never show"
-msgstr	"Tüm makaleleri yok et ve asla gösterme"
+msgid   "Character to show readselected arts"
+msgstr  "Okunmuþ-seçilmiþ makaleleri gösteren karakter"
 
-#: src/lang.c:1266
+#: src/lang.c:1789
 #, fuzzy
-msgid	"Nothing special"
-msgstr	"Özel birþey yok"
+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  "# Bir makalenin okunmadan seçildiðini göstermek için kullanýlan karakter "
+        "(varsayýlan ':')\n"
+        "# yok olma düzeyi ona göre ayarlanmalýdýr, _ þuna dönüþür ' '\n"
 
-#: src/lang.c:1267
+#: src/lang.c:1794
 #, fuzzy
-msgid	"Compress quotes"
-msgstr	"Ýmleri sýkýþtýr"
+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:1268
+#: src/lang.c:1795
 #, fuzzy
-msgid	"Quote signatures"
-msgstr	"Ýmzalarý imle"
+msgid   "Max. length of group names shown"
+msgstr  "Gösterilen grup isimlerinin en fazla uzunluðu"
 
-#: src/lang.c:1269
+#: src/lang.c:1796
 #, fuzzy
-msgid	"Compress quotes, quote sigs"
-msgstr	"Ýmleri sýkýþtýr, imzalarý imle"
+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:1270
-#, fuzzy
-msgid	"Quote empty lines"
-msgstr	"Boþ satýrlarý imle"
+#: src/lang.c:1801
+msgid   "Abbreviate long newsgroup names"
+msgstr  ""
 
-#: src/lang.c:1271
-#, fuzzy
-msgid	"Compress quotes, quote empty lines"
-msgstr	"Ýmleri sýkýþtýr, boþ satýrlarý imle"
+#: src/lang.c:1802
+msgid   "# If ON abbreviate (if necessary) long newsgroup names at group selection\n"
+        "# level and article level like this:\n"
+        "#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n"
+msgstr  ""
 
-#: src/lang.c:1272
+#: src/lang.c:1809
 #, fuzzy
-msgid	"Quote sigs & empty lines"
-msgstr	"Ýmzalarý & boþ satýrlarý imle"
+msgid   "Show lines/score in listings"
+msgstr  "Listelerdeki satýrlarý/skoru göster"
 
-#: src/lang.c:1273
+#: src/lang.c:1810
 #, fuzzy
-msgid	"Comp. q., quote sigs & empty lines"
-msgstr	"Ýmleri sýkýþtýr, imzalarý & boþ satýrlarý imle"
+msgid   "# What information 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  "# 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:1819
+#, 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:1820
+#, fuzzy
+msgid   "Number of lines to scroll in pager"
+msgstr  "Sayfalayýcýda kaydýrýlan satýr sayýsý"
+
+#: src/lang.c:1821
+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"
+        "#  -1 = the top/bottom line is carried over onto the next page\n"
+        "#   0 = page-by-page (traditional behavior)\n"
+        "# * 1 = line-by-line\n"
+        "#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
+msgstr  ""
+
+#: src/lang.c:1831
+msgid   "Display signatures. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1832
+#, fuzzy
+msgid   "Display signatures"
+msgstr  "Seçenekleri Göster"
+
+#: src/lang.c:1833
+msgid   "# If OFF don't show signatures when displaying articles\n"
+msgstr  ""
 
-#: src/lang.c:1311
-#, fuzzy
-msgid	"no"
-msgstr	"hiçbiri"
+#: src/lang.c:1837
+msgid   "Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
-#: src/lang.c:1312
-#, fuzzy
-msgid	"with headers"
-msgstr	"en küçük yürütme birimleri"
+#: src/lang.c:1838
+msgid   "Display uue data as an attachment"
+msgstr  ""
 
-#: src/lang.c:1313
-msgid	"without headers"
-msgstr	""
-
-#: src/lang.c:1320 src/lang.c:1326
-msgid	"NFKC"
-msgstr	""
-
-#: src/lang.c:1321
-msgid	"NFKD"
-msgstr	""
+#: src/lang.c:1839
+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"
+        "#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
+        "#       size and filename, similar to how MIME attachments are displayed\n"
+        "#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
+        "#       be folded into a tag line.\n"
+msgstr  ""
 
-#: src/lang.c:1322
-msgid	"NFC"
-msgstr	""
+#: src/lang.c:1849
+msgid   "Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
-#: src/lang.c:1323
-msgid	"NFD"
-msgstr	""
+#: src/lang.c:1850
+msgid   "Display \"a as Umlaut-a"
+msgstr  ""
 
-#: src/lang.c:1334
-#, fuzzy
-msgid	"Display Options"
-msgstr	"Seçenekleri Göster"
+#: src/lang.c:1851
+msgid   "# If ON decode German style TeX umlaut codes to ISO and\n"
+        "# show \"a as Umlaut-a, etc.\n"
+msgstr  ""
+
+#: src/lang.c:1856 src/lang.c:1866
+msgid   "Space separated list of header fields"
+msgstr  ""
 
-#: src/lang.c:1341
-#, fuzzy
-msgid	"Color Options"
-msgstr	"Renk Seçenekleri"
+#: src/lang.c:1857
+msgid   "Display these header fields (or *)"
+msgstr  ""
 
-#: src/lang.c:1348
-#, fuzzy
-msgid	"Article-Limiting Options"
-msgstr	"Makale-Sýnýrlandýrma Seçenekleri"
+#: src/lang.c:1858
+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"
+        "# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
+        "with\n"
+        "# spaces. Not defining anything turns off this option.\n"
+msgstr  ""
+
+#: src/lang.c:1867
+#, fuzzy
+msgid   "Do not display these header fields"
+msgstr  "Aktüel habver baþlýlarý alanýnýn rengi"
+
+#: src/lang.c:1868
+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 "
+        "you\n"
+        "# would do something like this:\n"
+        "# news_headers_to_display=X-\n"
+        "# news_headers_to_not_display=X-Alan X-Pape\n"
+        "# Not defining anything turns off this option.\n"
+msgstr  ""
 
-#: src/lang.c:1354
-#, fuzzy
-msgid	"Posting/Mailing Options"
-msgstr	"Yollama/Postalama Seçenekleri"
+#: src/lang.c:1878
+msgid   "Do you want to enable automatic handling of multipart/alternative articles?"
+msgstr  ""
 
-#: src/lang.c:1360
-#, fuzzy
-msgid	"Saving/Printing Options"
-msgstr	"Kaydetme/Yazdýrma Seçenekleri"
+#: src/lang.c:1879
+msgid   "Skip multipart/alternative parts"
+msgstr  ""
 
-#: src/lang.c:1366
+#: src/lang.c:1880
+msgid   "# If ON strip multipart/alternative messages automatically\n"
+msgstr  ""
+
+#: src/lang.c:1884
+#, fuzzy
+msgid   "Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."
+msgstr  "Konu: Dosya süzgeçlemek için eklenecek satýr. <SPACE> deðiþtirir & <CR> "
+        "ayarlar."
+
+#: src/lang.c:1885
+msgid   "Detection of verbatim blocks"
+msgstr  ""
+
+#: src/lang.c:1886
 #, fuzzy
-msgid	"Expert Options"
-msgstr	"Uzman Seçenekleri"
+msgid   "# If ON detect verbatim blocks in articles\n"
+msgstr  "# If ON gönderilemeyen bütün postalarý tut ~/ölü.makale\n"
 
-#: src/lang.c:1372
+#: src/lang.c:1891
+msgid   "A regex used to decide which lines to show in col_quote."
+msgstr  ""
+
+#: src/lang.c:1892
+msgid   "Regex used to show quoted lines"
+msgstr  ""
+
+#: src/lang.c:1893
+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:1899
+msgid   "A regex used to decide which lines to show in col_quote2."
+msgstr  ""
+
+#: src/lang.c:1900
+msgid   "Regex used to show twice quoted l."
+msgstr  ""
+
+#: src/lang.c:1901
+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:1907
+msgid   "A regex used to decide which lines to show in col_quote3."
+msgstr  ""
+
+#: src/lang.c:1908
+msgid   "Regex used to show >= 3 times q.l."
+msgstr  ""
+
+#: src/lang.c:1909
+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:1916
+msgid   "A regex used to decide which words to show in col_markslashes."
+msgstr  ""
+
+#: src/lang.c:1917
+msgid   "Regex used to highlight /slashes/"
+msgstr  ""
+
+#: src/lang.c:1918
+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:1924
+msgid   "A regex used to decide which words to show in col_markstars."
+msgstr  ""
+
+#: src/lang.c:1925
+msgid   "Regex used to highlight *stars*"
+msgstr  ""
+
+#: src/lang.c:1926
+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:1932
+msgid   "A regex used to decide which words to show in col_markstroke."
+msgstr  ""
+
+#: src/lang.c:1933
 #, fuzzy
-msgid	"Filtering Options"
-msgstr	"Süzgeçleme Seçenekleri"
+msgid   "Regex used to highlight -strokes-"
+msgstr  "-vuruþ- ile vurgulama rengi"
+
+#: src/lang.c:1934
+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:1940
+msgid   "A regex used to decide which words to show in col_markdash."
+msgstr  ""
+
+#: src/lang.c:1941
+msgid   "Regex used to highlight _underline_"
+msgstr  ""
+
+#: src/lang.c:1942
+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:1948
+msgid   "A regex used to find Subject prefixes to remove.  Use '|' as separator."
+msgstr  ""
+
+#: src/lang.c:1949
+msgid   "Regex with Subject prefixes"
+msgstr  ""
+
+#: src/lang.c:1950
+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:1955
+msgid   "A regex used to find Subject suffixes to remove.  Use '|' as separator."
+msgstr  ""
+
+#: src/lang.c:1956
+msgid   "Regex with Subject suffixes"
+msgstr  ""
+
+#: src/lang.c:1957
+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:1962
+msgid   "A regex used to find the begin of a verbatim block."
+msgstr  ""
+
+#: src/lang.c:1963
+msgid   "Regex for begin of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1964
+msgid   "# A regular expression that tin will use to find the begin of\n"
+        "# a verbatim block.\n"
+msgstr  ""
+
+#: src/lang.c:1969
+msgid   "A regex used to find the end of a verbatim block."
+msgstr  ""
+
+#: src/lang.c:1970
+msgid   "Regex for end of a verbatim block"
+msgstr  ""
+
+#: src/lang.c:1971
+msgid   "# A regular expression that tin will use to find the end of\n"
+        "# a verbatim block.\n"
+msgstr  ""
+
+#: src/lang.c:1976
+msgid   "Enter name and options for external MIME viewer, --internal for built-in "
+        "viewer"
+msgstr  ""
+
+#: src/lang.c:1977
+msgid   "MIME binary content viewer"
+msgstr  ""
 
-#: src/lang.c:1377 src/lang.c:1408 src/lang.c:1414 src/lang.c:1440 src/lang.c:1490
-#: src/lang.c:1496 src/lang.c:1506 src/lang.c:1526 src/lang.c:1601 src/lang.c:1771
-#: src/lang.c:1777 src/lang.c:1783 src/lang.c:1789 src/lang.c:1801 src/lang.c:1808
-#: src/lang.c:1862 src/lang.c:1871 src/lang.c:1877 src/lang.c:1884 src/lang.c:1891
-#: src/lang.c:1898 src/lang.c:1905 src/lang.c:1912 src/lang.c:1919 src/lang.c:1926
-#: src/lang.c:1933 src/lang.c:1940 src/lang.c:1947 src/lang.c:1954 src/lang.c:1961
-#: src/lang.c:1968 src/lang.c:1975 src/lang.c:1982 src/lang.c:1989 src/lang.c:1996
-#: src/lang.c:2003 src/lang.c:2010 src/lang.c:2017 src/lang.c:2024 src/lang.c:2031
-#: src/lang.c:2039 src/lang.c:2055 src/lang.c:2062 src/lang.c:2069 src/lang.c:2076
-#: src/lang.c:2082 src/lang.c:2088 src/lang.c:2105 src/lang.c:2117 src/lang.c:2151
-#: src/lang.c:2204 src/lang.c:2211 src/lang.c:2217 src/lang.c:2242 src/lang.c:2259
-#: src/lang.c:2312 src/lang.c:2348 src/lang.c:2368 src/lang.c:2403 src/lang.c:2413
-#: src/lang.c:2438 src/lang.c:2454 src/lang.c:2473 src/lang.c:2486
-#, fuzzy
-msgid	"<SPACE> toggles, <CR> sets, <ESC> cancels."
-msgstr	"<SPACE> deðiþtirir, <CR> ayarlar, <ESC> iptal eder."
-
-#: src/lang.c:1378
-#, fuzzy
-msgid	"Show mini menu & posting etiquette"
-msgstr	"Mini menüyü & yollama etiketini göster"
-
-#: src/lang.c:1379
-#, fuzzy
-msgid	"# If ON show a mini menu of useful commands at each level\n"
-	"# and posting etiquette after composing an article\n"
-msgstr	"# ON durumundaysa makale oluþturduktan sonra tüm düzeylerde kullanýþlý "
-	"komutlarýn\n"
-	"# mini menüsünü ve yollama etiketini göster.\n"
+#: src/lang.c:1978
+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:1985
+msgid   "Confirm before starting non-text viewing program"
+msgstr  ""
+
+#: src/lang.c:1986
+msgid   "Ask before using MIME viewer"
+msgstr  ""
+
+#: src/lang.c:1987
+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:1992
+msgid   "Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:1993
+msgid   "Catchup read groups when quitting"
+msgstr  ""
+
+#: src/lang.c:1994
+msgid   "# If ON ask user if read groups should all be marked read\n"
+msgstr  ""
+
+#: src/lang.c:1999
+msgid   "Catchup group using left key"
+msgstr  ""
+
+#: src/lang.c:2000
+msgid   "# If ON catchup group/thread when leaving with the left arrow key.\n"
+msgstr  ""
 
-#: src/lang.c:1384
-#, 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:2005
+msgid   "Catchup thread by using left key"
+msgstr  ""
 
-#: src/lang.c:1385
-#, fuzzy
-msgid	"Show description of each newsgroup"
-msgstr	"Her haber grubu için açýklama göster"
+#: src/lang.c:2011
+msgid   "Which actions require confirmation"
+msgstr  ""
 
-#: src/lang.c:1386
-#, 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:2012
+msgid   "# What should we ask confirmation for.\n"
+msgstr  ""
 
-#: src/lang.c:1391
+#: src/lang.c:2017
 #, 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."
+msgid   "'Mark as (un)read' ignores tags"
+msgstr  "makaleyi okunmamýþ olarak iþaretle"
 
-#: src/lang.c:1392
+#: src/lang.c:2018
 #, fuzzy
-msgid	"In group menu, show author by"
-msgstr	"Grup menüsünde yazarý þuna göre göster"
+msgid   "# If ON the 'Mark as (un)read' function marks only the current article.\n"
+msgstr  "# ON durumundaysa 'makaleyi okunmuþ olarak iþaretle'"
 
-#: src/lang.c:1393
+#: src/lang.c:2022
 #, fuzzy
-msgid	"# Part of from field to display\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = none\n"
-	"#   1 = address\n"
-	"# * 2 = full name\n"
-	"#   3 = both\n"
-msgstr	"# Gösterilecek gönderen alan kýsýmlarý 0)hiç 1)adres 2) tüm isim 3) hepsi\n"
+msgid   "Program to run to open URLs, <CR> sets, <ESC> cancels."
+msgstr  "URL açmak için çalýþtýrýlan program, <CR> ayarlar, <ESC> iptal eder."
 
-#: src/lang.c:1402
+#: src/lang.c:2023
 #, 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."
+msgid   "Program that opens URLs"
+msgstr  "URL açan program"
 
-#: src/lang.c:1403
+#: src/lang.c:2024
 #, fuzzy
-msgid	"Draw -> instead of highlighted bar"
-msgstr	"Çiz -> vurgulanmýþ çubuk yerine"
+msgid   "# The program used to open URLs. The actual URL will be appended\n"
+msgstr  "# Program URL açýyordu. Aktüel URL'ler sona eklenecek\n"
 
-#: src/lang.c:1404
+#: src/lang.c:2029
 #, fuzzy
-msgid	"# If ON use -> otherwise highlighted bar for selection\n"
-msgstr	"# ON durumundaysa -> deðilse seçim için vurgulanmýþ çubuk\n"
+msgid   "Use mouse in xterm"
+msgstr  "xterm2de fare kullan"
 
-#: src/lang.c:1409
+#: src/lang.c:2030
 #, fuzzy
-msgid	"Use inverse video for page headers"
-msgstr	"Sayfa baþlýklarý için ters görüntü kullan"
+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:1410
+#: src/lang.c:2036
 #, 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"
+msgid   "Use scroll keys on keypad"
+msgstr  "Klavye üzerinde kaydýrma tuþlarýný kullan"
 
-#: src/lang.c:1415
+#: src/lang.c:2037
 #, fuzzy
-msgid	"Thread articles by"
-msgstr	"Makaleleri belirle"
-
-#: src/lang.c:1416
-msgid	"# Thread articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject\n"
-	"#   2 = References\n"
-	"# * 3 = Both (Subject and References)\n"
-	"#   4 = Multipart Subject\n"
-	"#   5 = Percentage Match\n"
-msgstr	""
-
-#: src/lang.c:1427
-msgid	"Enter percentage match required to thread together. <CR> sets."
-msgstr	""
-
-#: src/lang.c:1428
-msgid	"Thread percentage match"
-msgstr	""
-
-#: src/lang.c:1429
-#, c-format
-msgid	"# Thread percentage match...\n"
-	"# the percentage of characters in the subject of an article that must match\n"
-	"# a base article for both those articles to be considered to belong to the\n"
-	"# same thread. This option is an integer percentage, eg. 80, no decimals may\n"
-	"# follow. If 80 is used here, then 80%% of the characters must match "
-	"exactly,\n"
-	"# no insertion of a character, for the two articles to be put in the same\n"
-	"# thread. eg. 'happy' and 'harpy' would match, but 'harpie', 'happie' and\n"
-	"# 'harppy' would be threaded separately from 'happy'\n"
-msgstr	""
+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:1441
+#: src/lang.c:2042
 #, fuzzy
-msgid	"Score of a thread"
-msgstr	"Bir iþ parçacýðýnýn skoru"
-
-#: src/lang.c:1442
-msgid	"# Thread score\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = max\n"
-	"#   1 = sum\n"
-	"#   2 = average\n"
-msgstr	""
+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:1450
+#: src/lang.c:2043
 #, 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."
+msgid   "Number of articles to get"
+msgstr  "Alýnacak makale sayýsý"
 
-#: src/lang.c:1451
+#: src/lang.c:2044
 #, fuzzy
-msgid	"Sort articles by"
-msgstr	"Makaleleri sýrala"
+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:1452
+#: src/lang.c:2049
 #, fuzzy
-msgid	"# Sort articles by ...\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = nothing\n"
-	"#   1 = Subject descending\n"
-	"#   2 = Subject ascending\n"
-	"#   3 = From descending\n"
-	"#   4 = From ascending\n"
-	"#   5 = Date descending\n"
-	"# * 6 = Date ascending\n"
-	"#   7 = Score descending\n"
-	"#   8 = Score ascending\n"
-	"#   9 = Lines descending\n"
-	"#  10 = Lines 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"
+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:1468
+#: src/lang.c:2050
 #, 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."
+msgid   "Article recentness time limit"
+msgstr  "Makalenin yenilik zaman sýnýrý"
 
-#: src/lang.c:1469
+#: src/lang.c:2051
 #, fuzzy
-msgid	"Sort threads by"
-msgstr	"Ýþ parçacýklarýný sýrala"
-
-#: src/lang.c:1470
-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	""
+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:1478
+#: src/lang.c:2055
 #, 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."
+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:1479
+#: src/lang.c:2056
 #, fuzzy
-msgid	"Goto first unread article in group"
-msgstr	"Gruptaki ilk okunmamýþ makaleye git"
+msgid   "Wildcard matching"
+msgstr  "Joker eþleþtiriyor"
 
-#: src/lang.c:1480
-#, 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:2057
+msgid   "# Wildcard matching\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = wildmat\n"
+        "#   1 = regex\n"
+msgstr  ""
 
-#: src/lang.c:1484
+#: src/lang.c:2064
 #, 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."
+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:1485
+#: src/lang.c:2065
 #, fuzzy
-msgid	"Show only unread articles"
-msgstr	"Sadece okunmayan makaleleri göster"
+msgid   "Score limit (kill)"
+msgstr  "Sýnýrý skorla (yok et)"
 
-#: src/lang.c:1486
+#: src/lang.c:2066
 #, 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"
+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:1491
+#: src/lang.c:2070
 #, fuzzy
-msgid	"Show only groups with unread arts"
-msgstr	"Sadece okunmamýþ makale olan gruplarý göster"
+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:1492
+#: src/lang.c:2071
 #, 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"
+msgid   "Default score to kill articles"
+msgstr  "Makaleleri yok etmke için skoru varsay"
 
-#: src/lang.c:1497
+#: src/lang.c:2072
 #, fuzzy
-msgid	"Filter which articles"
-msgstr	"Hangi makaleleri filtrele"
+msgid   "# Default score to kill articles\n"
+msgstr  "# Makaleleri yok etmke için skoru varsay\n"
 
-#: src/lang.c:1498
+#: src/lang.c:2076
 #, fuzzy
-msgid	"# Filter which articles\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = only kill unread articles\n"
-	"#   1 = kill all articles and show in threads marked with K\n"
-	"#   2 = kill all articles and never show them\n"
-msgstr	"# 0=(Sadece okunmamýþ makaleleri yok et)\n"
-	"# 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"
+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:1507
+#: src/lang.c:2077
 #, fuzzy
-msgid	"Tab goes to next unread article"
-msgstr	"Sekme sonraki okunmamýþ makaleye gider"
+msgid   "Score limit (select)"
+msgstr  "Sýnýrý skorla (seç)"
 
-#: src/lang.c:1508
+#: src/lang.c:2078
 #, 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"
+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:1512
+#: src/lang.c:2082
 #, 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."
+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:1513
+#: src/lang.c:2083
 #, fuzzy
-msgid	"Space goes to next unread article"
-msgstr	"Boþluk sonraki okunmamýþ makaleye gider"
+msgid   "Default score to select articles"
+msgstr  "Makaleleri seçmek için varsayýlan deðer"
 
-#: src/lang.c:1514
+#: src/lang.c:2084
 #, 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"
+msgid   "# Default score to select articles\n"
+msgstr  "# Makaleleri seçmek için varsayýlan deðer\n"
 
-#: src/lang.c:1519
+#: src/lang.c:2090
 #, 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."
+msgid   "Use slrnface to show ''X-Face:''s"
+msgstr  "''X-Face:''s göstermek için slmface kullan"
 
-#: src/lang.c:1520
+#: src/lang.c:2091
 #, fuzzy
-msgid	"PgDn goes to next unread article"
-msgstr	"PgDn sonraki okunmamýþ makaleye gider"
+msgid   "# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n"
+        "# Only useful when running in an xterm.\n"
+msgstr  "# ON durmunduysa ''X-Face:'' baþlýðýný yorumlamak için slrnface(1) "
+        "kullanýlýyor.\n"
+        "# sadece xterm çalýþýtýrýlýrken yararlý.\n"
 
-#: src/lang.c:1521
+#: src/lang.c:2099
 #, 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   "Use ANSI color"
+msgstr  "ANSI renk geçerli"
 
-#: src/lang.c:1527
+#: src/lang.c:2100
 #, fuzzy
-msgid	"List thread using right arrow key"
-msgstr	"Sað ok tuþuna basarak parçacýklarý listele"
+msgid   "# If ON using ANSI-color\n"
+msgstr  "# On durumundaysa ANSI-renk kullanýlýyor\n"
 
-#: src/lang.c:1528
+#: src/lang.c:2105
 #, 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"
+msgid   "Standard foreground color"
+msgstr  "Standart önplan rengi"
 
-#: src/lang.c:1532
+#: src/lang.c:2106
 #, 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."
+msgid   "# Standard foreground color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standart önplan rengi\n"
 
-#: src/lang.c:1533
+#: src/lang.c:2112
 #, fuzzy
-msgid	"Character to show deleted articles"
-msgstr	"Silinmiþ makaleleri gösterecek olan karakter"
+msgid   "Standard background color"
+msgstr  "Standart arkaplan rengi"
 
-#: src/lang.c:1534
+#: src/lang.c:2113
 #, 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"
+msgid   "# Standard background color\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Standart arkaplan rengi\n"
 
-#: src/lang.c:1539
+#: src/lang.c:2119
 #, 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."
+msgid   "Color for inverse text (background)"
+msgstr  "Çapraz metnin arkaplan rengi"
 
-#: src/lang.c:1540
+#: src/lang.c:2120
 #, fuzzy
-msgid	"Character to show inrange articles"
-msgstr	"Sýralanmýþ makaleleri gösterecek olan karakter"
+msgid   "# Color of background for inverse text\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Çapraz metnin arkaplan rengi\n"
 
-#: src/lang.c:1541
+#: src/lang.c:2126
 #, fuzzy
-msgid	"# Character used to show that an art is in a range (default '#')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# Bir makalenin sýralanmýþ olduðunu göstermek için kullanýlan karakter "
-	"(varsayýlan '#')\n"
-	"# _ þuna dönüþür ' '\n"
+msgid   "Color for inverse text (foreground)"
+msgstr  "Çapraz metnin önplan rengi"
 
-#: src/lang.c:1546
+#: src/lang.c:2127
 #, 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."
+msgid   "# Color of foreground for inverse text\n"
+        "# Default: 7 (white)\n"
+msgstr  "# Çapraz metnin önplan rengi\n"
 
-#: src/lang.c:1547
+#: src/lang.c:2133
 #, fuzzy
-msgid	"Character to show returning arts"
-msgstr	"Dönen makaleleri gösterecek olan karakter"
+msgid   "Color of text lines"
+msgstr  "Metin satýrlarýnýn rengi"
 
-#: src/lang.c:1548
+#: src/lang.c:2134
 #, fuzzy
-msgid	"# Character used to show that an art will return (default '-')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# Bir makalenin döneceðini göstermek için kullanýlan karakter (varsayýlan "
-	"'-')\n"
-	"# _ þuna dönüþür ' '\n"
-
-#: src/lang.c:1553
-#, 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."
+msgid   "# Color of text lines\n"
+        "# Default: -1 (default color)\n"
+msgstr  "# Color of text lines\n"
 
-#: src/lang.c:1554
+#: src/lang.c:2140
 #, fuzzy
-msgid	"Character to show selected articles"
-msgstr	"Seçilen makaleleri gösterecek olan karakter"
+msgid   "Color of mini help menu"
+msgstr  "Mini yardým menüsünün rengi"
 
-#: src/lang.c:1555
+#: src/lang.c:2141
 #, fuzzy
-msgid	"# Character used to show that an art was auto-selected (default '*')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# Bir makalenin otomatik seçildiðini göstermek için kullanýlan karakter "
-	"(varsayýlan '*')\n"
-	"# _ þuna dönüþür ' '\n"
+msgid   "# Color of mini help menu\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# Mini yardým menüsünün rengi\n"
 
-#: src/lang.c:1560
+#: src/lang.c:2147
 #, 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."
+msgid   "Color of help text"
+msgstr  "Yardým sayfalarýnýn rengi"
 
-#: src/lang.c:1561
-#, fuzzy
-msgid	"Character to show recent articles"
-msgstr	"Son makaleleri gösterecek olan karakter"
+#: src/lang.c:2148
+msgid   "# Color of help pages\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
 
-#: src/lang.c:1562
+#: src/lang.c:2154
 #, fuzzy
-msgid	"# Character used to show that an art is recent (default 'o')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# Bir makalenin son olduðunu göstermek için kullanýlan karakter (varsayýlan "
-	"'o')\n"
-	"# _ þuna dönüþür ' '\n"
+msgid   "Color of status messages"
+msgstr  "Durum iletilerinin rengi"
 
-#: src/lang.c:1567
+#: src/lang.c:2155
 #, 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:1568
-#, fuzzy
-msgid	"Character to show unread articles"
-msgstr	"Okunmamýþ makaleleri gösterecek olan karakter"
-
-#: src/lang.c:1569
-#, fuzzy
-msgid	"# Character used to show that an art is unread (default '+')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# Bir makalenin okunmadýðýný göstermek için kullanýlan karakter (varsayýlan "
-	"'+')\n"
-	"# _ þuna dönüþür ' '\n"
+msgid   "# Color of messages in last line\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Son satýrdaki iletilerin rengi\n"
 
-#: src/lang.c:1574
+#: src/lang.c:2161
 #, 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."
+msgid   "Color of quoted lines"
+msgstr  "Ýmlenmiþ-satýr rengi"
 
-#: src/lang.c:1575
+#: src/lang.c:2162
 #, fuzzy
-msgid	"Character to show read articles"
-msgstr	"Okunmamýþ makaleleri gösterecek olan karakter"
+msgid   "# Color of quote-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Ýmlenmiþ-satýr rengi\n"
 
-#: src/lang.c:1576
+#: src/lang.c:2168
 #, fuzzy
-msgid	"# Character used to show that an art was read (default ' ')\n"
-	"# _ is turned into ' '\n"
-msgstr	"# Bir makalenin okunduðunu göstermek için kullanýlan karakter (varsayýlan ' "
-	"')\n"
-	"# _ þuna dönüþür ' '\n"
+msgid   "Color of twice quoted line"
+msgstr  "Çift imlenen satýrlarýn rengi"
 
-#: src/lang.c:1581
+#: src/lang.c:2169
 #, 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."
+msgid   "# Color of twice quoted lines\n"
+        "# Default: 3 (brown)\n"
+msgstr  "# Çift imlenen satýrlarýn rengi\n"
 
-#: src/lang.c:1582
+#: src/lang.c:2175
 #, fuzzy
-msgid	"Character to show killed articles"
-msgstr	"Yok olan makaleleri gösterecen karakter"
+msgid   "Color of =>3 times quoted line"
+msgstr  "Ýmlenmiþ satýrda =>3 kat rengi"
 
-#: src/lang.c:1583
+#: src/lang.c:2176
 #, 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	"# Bir makalenin yok olduðunu göstermek için kullanýlan karakter (varsayýlan "
-	"'K')\n"
-	"# yok olma düzeyi ona göre ayarlanmalýdýr, _ þuna dönüþür ' '\n"
+msgid   "# Color of >=3 times quoted lines\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Ýmlenmiþ satýrlarda >=3 kat rengi\n"
 
-#: src/lang.c:1588
+#: src/lang.c:2182
 #, 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."
+msgid   "Color of article header lines"
+msgstr  "Makale baþlýk satýrlarýnýn rengi"
 
-#: src/lang.c:1589
+#: src/lang.c:2183
 #, fuzzy
-msgid	"Character to show readselected arts"
-msgstr	"Okunmuþ-seçilmiþ makaleleri gösteren karakter"
+msgid   "# Color of header-lines\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Baþlýk-satýrlarýnýn rengi\n"
 
-#: src/lang.c:1590
+#: src/lang.c:2189
 #, 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	"# Bir makalenin okunmadan seçildiðini göstermek için kullanýlan karakter "
-	"(varsayýlan ':')\n"
-	"# yok olma düzeyi ona göre ayarlanmalýdýr, _ þuna dönüþür ' '\n"
+msgid   "Color of actual news header fields"
+msgstr  "Aktüel habver baþlýlarý alanýnýn rengi"
 
-#: src/lang.c:1595
+#: src/lang.c:2190
 #, 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."
+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:1596
+#: src/lang.c:2196
 #, fuzzy
-msgid	"Max. length of group names shown"
-msgstr	"Gösterilen grup isimlerinin en fazla uzunluðu"
+msgid   "Color of article subject lines"
+msgstr  "Makale konu satýrlarýnýn rengi"
 
-#: src/lang.c:1597
+#: src/lang.c:2197
 #, 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"
+msgid   "# Color of article subject\n"
+        "# Default: 6 (cyan)\n"
+msgstr  "# Makale konusunun rengi\n"
 
-#: src/lang.c:1602
+#: src/lang.c:2203
 #, fuzzy
-msgid	"Show lines/score in listings"
-msgstr	"Listelerdeki satýrlarý/skoru göster"
+msgid   "Color of response counter"
+msgstr  "Yanýt sayacý rengi"
 
-#: src/lang.c:1603
+#: src/lang.c:2204
 #, fuzzy
-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	"# 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:1612
-#, 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:1613
-#, fuzzy
-msgid	"Number of lines to scroll in pager"
-msgstr	"Sayfalayýcýda kaydýrýlan satýr sayýsý"
-
-#: src/lang.c:1614
-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"
-	"#  -1 = the top/bottom line is carried over onto the next page\n"
-	"#   0 = page-by-page (traditional behavior)\n"
-	"# * 1 = line-by-line\n"
-	"#   2 or greater = scroll by 2 or more lines (only in the pager)\n"
-msgstr	""
-
-#: src/lang.c:1624
-msgid	"Display signatures. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1625
-#, fuzzy
-msgid	"Display signatures"
-msgstr	"Seçenekleri Göster"
-
-#: src/lang.c:1626
-msgid	"# If OFF don't show signatures when displaying articles\n"
-msgstr	""
-
-#: src/lang.c:1630
-msgid	"Display uuencoded data as tagged attachments. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1631
-msgid	"Display uue data as an attachment"
-msgstr	""
-
-#: src/lang.c:1632
-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"
-	"#   1 = yes, uuencoded data will be condensed to a single tag line showing\n"
-	"#       size and filename, similar to how MIME attachments are displayed\n"
-	"#   2 = hide all, as for 1, but any line that looks like uuencoded data will\n"
-	"#       be folded into a tag line.\n"
-msgstr	""
-
-#: src/lang.c:1642
-msgid	"Decode German style TeX umlaut codes to ISO. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:1643
-msgid	"Display \"a as Umlaut-a"
-msgstr	""
-
-#: src/lang.c:1644
-msgid	"# If ON decode German style TeX umlaut codes to ISO and\n"
-	"# show \"a as Umlaut-a, etc.\n"
-msgstr	""
-
-#: src/lang.c:1649 src/lang.c:1659
-msgid	"Space separated list of header fields"
-msgstr	""
-
-#: src/lang.c:1650
-msgid	"Display these header fields (or *)"
-msgstr	""
-
-#: src/lang.c:1651
-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"
-	"# 'X-' (like X-Alan or X-Pape). You can list more than one by delimiting "
-	"with\n"
-	"# spaces. Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1660
-#, fuzzy
-msgid	"Do not display these header fields"
-msgstr	"Aktüel habver baþlýlarý alanýnýn rengi"
-
-#: src/lang.c:1661
-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 "
-	"you\n"
-	"# would do something like this:\n"
-	"# news_headers_to_display=X-\n"
-	"# news_headers_to_not_display=X-Alan X-Pape\n"
-	"# Not defining anything turns off this option.\n"
-msgstr	""
-
-#: src/lang.c:1671
-msgid	"Do you want to enable automatic handling of multipart/alternative articles?"
-msgstr	""
-
-#: src/lang.c:1672
-msgid	"Skip multipart/alternative parts"
-msgstr	""
-
-#: src/lang.c:1673
-msgid	"# If ON strip multipart/alternative messages automatically\n"
-msgstr	""
-
-#: src/lang.c:1678
-msgid	"A regex used to decide which lines to show in col_quote."
-msgstr	""
-
-#: src/lang.c:1679
-msgid	"Regex used to show quoted lines"
-msgstr	""
-
-#: src/lang.c:1680
-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:1686
-msgid	"A regex used to decide which lines to show in col_quote2."
-msgstr	""
-
-#: src/lang.c:1687
-msgid	"Regex used to show twice quoted l."
-msgstr	""
-
-#: src/lang.c:1688
-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:1694
-msgid	"A regex used to decide which lines to show in col_quote3."
-msgstr	""
-
-#: src/lang.c:1695
-msgid	"Regex used to show >= 3 times q.l."
-msgstr	""
-
-#: src/lang.c:1696
-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:1703
-msgid	"A regex used to decide which words to show in col_markslashes."
-msgstr	""
-
-#: src/lang.c:1704
-msgid	"Regex used to highlight /slashes/"
-msgstr	""
-
-#: src/lang.c:1705
-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:1711
-msgid	"A regex used to decide which words to show in col_markstars."
-msgstr	""
-
-#: src/lang.c:1712
-msgid	"Regex used to highlight *stars*"
-msgstr	""
-
-#: src/lang.c:1713
-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:1719
-msgid	"A regex used to decide which words to show in col_markstroke."
-msgstr	""
-
-#: src/lang.c:1720
-#, fuzzy
-msgid	"Regex used to highlight -strokes-"
-msgstr	"-vuruþ- ile vurgulama rengi"
-
-#: src/lang.c:1721
-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:1727
-msgid	"A regex used to decide which words to show in col_markdash."
-msgstr	""
-
-#: src/lang.c:1728
-msgid	"Regex used to highlight _underline_"
-msgstr	""
-
-#: src/lang.c:1729
-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:1735
-msgid	"A regex used to find Subject prefixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1736
-msgid	"Regex with Subject prefixes"
-msgstr	""
-
-#: src/lang.c:1737
-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:1742
-msgid	"A regex used to find Subject suffixes to remove.  Use '|' as separator."
-msgstr	""
-
-#: src/lang.c:1743
-msgid	"Regex with Subject suffixes"
-msgstr	""
-
-#: src/lang.c:1744
-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:1749
-msgid	"Enter name and options for external MIME viewer, --internal for built-in "
-	"viewer"
-msgstr	""
-
-#: src/lang.c:1750
-msgid	"MIME binary content viewer"
-msgstr	""
-
-#: src/lang.c:1751
-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:1758
-msgid	"Confirm before starting non-text viewing program"
-msgstr	""
-
-#: src/lang.c:1759
-msgid	"Ask before using MIME viewer"
-msgstr	""
-
-#: src/lang.c:1760
-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:1765
-msgid	"Ask to mark groups read when quitting. <SPACE> toggles & <CR> sets."
-msgstr	""
+msgid   "# Color of response counter\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Yanýt sayacý rengi\n"
 
-#: src/lang.c:1766
-msgid	"Catchup read groups when quitting"
-msgstr	""
-
-#: src/lang.c:1767
-msgid	"# If ON ask user if read groups should all be marked read\n"
-msgstr	""
-
-#: src/lang.c:1772
-msgid	"Catchup group using left key"
-msgstr	""
-
-#: src/lang.c:1773
-msgid	"# If ON catchup group/thread when leaving with the left arrow key.\n"
-msgstr	""
-
-#: src/lang.c:1778
-msgid	"Catchup thread by using left key"
-msgstr	""
-
-#: src/lang.c:1784
-msgid	"Which actions require confirmation"
-msgstr	""
-
-#: src/lang.c:1785
-msgid	"# What should we ask confirmation for.\n"
-msgstr	""
-
-#: src/lang.c:1790
+#: src/lang.c:2210
 #, fuzzy
-msgid	"'Mark article read' ignores tags"
-msgstr	"makaleyi okunmamýþ olarak iþaretle"
+msgid   "Color of sender (From:)"
+msgstr  "Gönderen (-den:) rengi"
 
-#: src/lang.c:1791
+#: src/lang.c:2211
 #, fuzzy
-msgid	"# If ON the 'Mark article read' function marks only the current article.\n"
-msgstr	"# ON durumundaysa 'makaleyi okunmuþ olarak iþaretle'"
+msgid   "# Color of sender (From:)\n"
+        "# Default: 2 (green)\n"
+msgstr  "# Gönderen (-den:) rengi\n"
 
-#: src/lang.c:1795
+#: src/lang.c:2217
 #, 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."
+msgid   "Color of help/mail sign"
+msgstr  "yardým/posta iþareti rengi"
 
-#: src/lang.c:1796
+#: src/lang.c:2218
 #, fuzzy
-msgid	"Program that opens URL's"
-msgstr	"URL açan program"
+msgid   "# Color of Help/Mail-Sign\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Yardým/Posta Ýþareti rengi\n"
 
-#: src/lang.c:1797
+#: src/lang.c:2224
 #, 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"
+msgid   "Color of signatures"
+msgstr  "Ýmza rengi"
 
-#: src/lang.c:1802
+#: src/lang.c:2225
 #, fuzzy
-msgid	"Use mouse in xterm"
-msgstr	"xterm2de fare kullan"
+msgid   "# Color of signature\n"
+        "# Default: 4 (blue)\n"
+msgstr  "# Ýmza rengi\n"
 
-#: src/lang.c:1803
+#: src/lang.c:2231
 #, fuzzy
-msgid	"# If ON enable mouse key support on xterm terminals\n"
-msgstr	"# ON durumundaysa xtrem uçbirimlerini destekleyen fare tuþunu etkinleþtir.\n"
+msgid   "Color of highlighted URLs"
+msgstr  "*yýldýz* ile vurgulama rengi"
 
-#: src/lang.c:1809
-#, fuzzy
-msgid	"Use scroll keys on keypad"
-msgstr	"Klavye üzerinde kaydýrma tuþlarýný kullan"
+#: src/lang.c:2232
+msgid   "# Color of highlighted URLs\n"
+        "# Default: -1 (default color)\n"
+msgstr  ""
 
-#: src/lang.c:1810
+#: src/lang.c:2238
 #, 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"
+msgid   "Color of verbatim blocks"
+msgstr  "Metin satýrlarýnýn rengi"
 
-#: src/lang.c:1815
+#: src/lang.c:2239
 #, fuzzy
-msgid	"Enter maximum number of article to get. <CR> sets."
-msgstr	"Alýnacak makalenin max. sayýsýný yazýn. <CR> ayarlar."
+msgid   "# Color of verbatim blocks\n"
+        "# Default: 5 (pink)\n"
+msgstr  "# Makale konusunun rengi\n"
 
-#: src/lang.c:1816
+#: src/lang.c:2245
 #, fuzzy
-msgid	"Number of articles to get"
-msgstr	"Alýnacak makale sayýsý"
+msgid   "Color of highlighting with *stars*"
+msgstr  "*yýldýz* ile vurgulama rengi"
 
-#: src/lang.c:1817
+#: src/lang.c:2246
 #, 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"
+msgid   "# Color of word highlighting with *stars*\n"
+        "# Default: 11 (yellow)\n"
+msgstr  "# *yýldýz* ile vurgulama rengi\n"
 
-#: src/lang.c:1822
+#: src/lang.c:2252
 #, 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."
+msgid   "Color of highlighting with _dash_"
+msgstr  "_kesik çizgi_ ile vurgulama rengi"
 
-#: src/lang.c:1823
+#: src/lang.c:2253
 #, fuzzy
-msgid	"Article recentness time limit"
-msgstr	"Makalenin yenilik zaman sýnýrý"
+msgid   "# Color of word highlighting with _dash_\n"
+        "# Default: 13 (light pink)\n"
+msgstr  "# _kesik çizgi_ ile vurgulama rengi\n"
 
-#: src/lang.c:1824
+#: src/lang.c:2259
 #, 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"
+msgid   "Color of highlighting with /slash/"
+msgstr  "/bölü/ ile vurgulama rengi"
 
-#: src/lang.c:1828
+#: src/lang.c:2260
 #, 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."
+msgid   "# Color of word highlighting with /slash/\n"
+        "# Default: 14 (light cyan)\n"
+msgstr  "# /bölü/ ile vurgulama rengi\n"
 
-#: src/lang.c:1829
+#: src/lang.c:2266
 #, fuzzy
-msgid	"Wildcard matching"
-msgstr	"Joker eþleþtiriyor"
+msgid   "Color of highlighting with -stroke-"
+msgstr  "-vuruþ- ile vurgulama rengi"
 
-#: src/lang.c:1830
-msgid	"# Wildcard matching\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = wildmat\n"
-	"#   1 = regex\n"
-msgstr	""
-
-#: src/lang.c:1837
+#: src/lang.c:2267
 #, 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."
+msgid   "# Color of word highlighting with -stroke-\n"
+        "# Default: 12 (light blue)\n"
+msgstr  "# -vuruþ- ile vurgulama rengi\n"
 
-#: src/lang.c:1838
+#: src/lang.c:2274
 #, fuzzy
-msgid	"Score limit (kill)"
-msgstr	"Sýnýrý skorla (yok et)"
+msgid   "Attr. of highlighting with *stars*"
+msgstr  "*yýldýz*  ile vurgulama özniteliði"
 
-#: src/lang.c:1839
+#: src/lang.c:2275
 #, fuzzy
-msgid	"# Score limit before an article is marked killed\n"
-msgstr	"# Makale yok et olarak iþaretlendiðinde sýnýrý skorla\n"
+msgid   "# Attributes of word highlighting on mono terminals\n"
+        "# Possible values are:\n"
+        "#   0 = Normal\n"
+        "#   1 = Underline\n"
+        "#   2 = Best highlighting\n"
+        "#   3 = Reverse video\n"
+        "#   4 = Blinking\n"
+        "#   5 = Half bright\n"
+        "#   6 = Bold\n"
+        "\n"
+        "# Attribute of word highlighting with *stars*\n"
+        "# Default: 6 (bold)\n"
+msgstr  "# Tekli uçbirimlerde sözcük vurgulama özniteliði.\n"
+        "# Makalelerde dört olanak vardýr:\n"
+        "# *yýldýz*, /bölü/, _kesik çizgi_ and -vuruþ-.\n"
+        "Olasý deðerler\n"
+        "# 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:1843
+#: src/lang.c:2290
 #, fuzzy
-msgid	"Enter default score to kill articles. <CR> sets."
-msgstr	"Makaleleri yok etmke için varsayýlan skoru yazýn. <CR> ayarlar."
+msgid   "Attr. of highlighting with _dash_"
+msgstr  "_vuruþ_  ile vurgulama özniteliði"
 
-#: src/lang.c:1844
-#, fuzzy
-msgid	"Default score to kill articles"
-msgstr	"Makaleleri yok etmke için skoru varsay"
+#: src/lang.c:2291
+msgid   "# Attribute of word highlighting with _dash_\n"
+        "# Default: 2 (best highlighting)\n"
+msgstr  ""
 
-#: src/lang.c:1845
+#: src/lang.c:2297
 #, fuzzy
-msgid	"# Default score to kill articles\n"
-msgstr	"# Makaleleri yok etmke için skoru varsay\n"
+msgid   "Attr. of highlighting with /slash/"
+msgstr  "/bölü/ ile vurgulama özniteliði"
 
-#: src/lang.c:1849
+#: src/lang.c:2298
 #, 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."
+msgid   "# Attribute of word highlighting with /slash/\n"
+        "# Default: 5 (half bright)\n"
+msgstr  "# /bölü/ ile vurgulama özniteliði\n"
 
-#: src/lang.c:1850
+#: src/lang.c:2304
 #, fuzzy
-msgid	"Score limit (select)"
-msgstr	"Sýnýrý skorla (seç)"
+msgid   "Attr. of highlighting with -stroke-"
+msgstr  "-kesik çizgi- ile vurgulama özniteliði"
 
-#: src/lang.c:1851
+#: src/lang.c:2305
 #, fuzzy
-msgid	"# Score limit before an article is marked hot\n"
-msgstr	"# Makale 'hot! olarak iþaretlenmeden önce sýnýrý skorlayýn\n"
+msgid   "# Attribute of word highlighting with -stroke-\n"
+        "# Default: 3 (reverse video)\n"
+msgstr  "# -kesik çizgi- ile vurgulama özniteliði\n"
 
-#: src/lang.c:1855
+#: src/lang.c:2311
 #, fuzzy
-msgid	"Enter default score to select articles. <CR> sets."
-msgstr	"Makaleleri seçmek için varsayýlan skoru yazýn.<CR> ayarlar."
+msgid   "URL highlighting in message body"
+msgstr  "Ýleti gövdesinde vurgulana sözcük"
 
-#: src/lang.c:1856
+#: src/lang.c:2312
 #, fuzzy
-msgid	"Default score to select articles"
-msgstr	"Makaleleri seçmek için varsayýlan deðer"
+msgid   "# Enable URL highlighting?\n"
+msgstr  "# Sözcük vurgulamayý etkinlþetir?\n"
 
-#: src/lang.c:1857
+#: src/lang.c:2317
 #, fuzzy
-msgid	"# Default score to select articles\n"
-msgstr	"# Makaleleri seçmek için varsayýlan deðer\n"
+msgid   "Word highlighting in message body"
+msgstr  "Ýleti gövdesinde vurgulana sözcük"
 
-#: src/lang.c:1863
+#: src/lang.c:2318
 #, fuzzy
-msgid	"Use slrnface to show ''X-Face:''s"
-msgstr	"''X-Face:''s göstermek için slmface kullan"
+msgid   "# Enable word highlighting?\n"
+msgstr  "# Sözcük vurgulamayý etkinlþetir?\n"
 
-#: src/lang.c:1864
+#: src/lang.c:2323
 #, fuzzy
-msgid	"# If ON using slrnface(1) to interpret the ''X-Face:'' header.\n"
-	"# Only useful when running in an xterm.\n"
-msgstr	"# ON durmunduysa ''X-Face:'' baþlýðýný yorumlamak için slrnface(1) "
-	"kullanýlýyor.\n"
-	"# sadece xterm çalýþýtýrýlýrken yararlý.\n"
+msgid   "What to display instead of mark"
+msgstr  "Ýþaretin yerine ne gösterilmeli?"
 
-#: src/lang.c:1872
+#: src/lang.c:2324
 #, fuzzy
-msgid	"Use ANSI color"
-msgstr	"ANSI renk geçerli"
+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"
+        "#   0 = no\n"
+        "#   1 = yes, display mark\n"
+        "# * 2 = print a space instead\n"
+msgstr  "# iþaretleri vurgulasalar bile?\n"
+        "# 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:1873
+#: src/lang.c:2333
 #, fuzzy
-msgid	"# If ON using ANSI-color\n"
-msgstr	"# On durumundaysa ANSI-renk kullanýlýyor\n"
+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:1878
+#: src/lang.c:2334
 #, fuzzy
-msgid	"Standard foreground color"
-msgstr	"Standart önplan rengi"
+msgid   "Page line wrap column"
+msgstr  "Sayfa satýrý sütunu çevreliyor"
 
-#: src/lang.c:1879
+#: src/lang.c:2335
 #, fuzzy
-msgid	"# Standard foreground color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standart önplan rengi\n"
+msgid   "# Wrap article lines at column\n"
+msgstr  "# Sütundaki makale satýrlarýný çevrele\n"
 
-#: src/lang.c:1885
+#: src/lang.c:2340
 #, fuzzy
-msgid	"Standard background color"
-msgstr	"Standart arkaplan rengi"
+msgid   "Wrap around threads on next unread"
+msgstr  "Sonraki okunmayanda parçacýklarý çevrele"
 
-#: src/lang.c:1886
+#: src/lang.c:2341
 #, fuzzy
-msgid	"# Standard background color\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Standart arkaplan rengi\n"
+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:1892
+#: src/lang.c:2345
 #, fuzzy
-msgid	"Color for inverse text (background)"
-msgstr	"Çapraz metnin arkaplan rengi"
+msgid   "Enter default mail address (and fullname). <CR> sets."
+msgstr  "Varsayýlan posta adresini (ve tüm ismi) yaz, <CR> ayarlar."
 
-#: src/lang.c:1893
+#: src/lang.c:2346 src/lang.c:2770
 #, fuzzy
-msgid	"# Color of background for inverse text\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Çapraz metnin arkaplan rengi\n"
+msgid   "Mail address (and fullname)"
+msgstr  "Posta adresi (ile tüm isim)"
 
-#: src/lang.c:1899
+#: src/lang.c:2347
 #, fuzzy
-msgid	"Color for inverse text (foreground)"
-msgstr	"Çapraz metnin önplan rengi"
+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:1900
-#, fuzzy
-msgid	"# Color of foreground for inverse text\n"
-	"# Default: 7 (white)\n"
-msgstr	"# Çapraz metnin önplan rengi\n"
+#: src/lang.c:2352
+msgid   "Show empty Followup-To in editor"
+msgstr  ""
 
-#: src/lang.c:1906
-#, fuzzy
-msgid	"Color of text lines"
-msgstr	"Metin satýrlarýnýn rengi"
+#: src/lang.c:2353
+msgid   "# If ON show empty Followup-To header when editing an article\n"
+msgstr  ""
 
-#: src/lang.c:1907
-#, fuzzy
-msgid	"# Color of text lines\n"
-	"# Default: -1 (default color)\n"
-msgstr	"# Color of text lines\n"
+#: src/lang.c:2357
+msgid   "Enter path/! command/--none to create your default signature. <CR> sets."
+msgstr  ""
 
-#: src/lang.c:1913
-#, fuzzy
-msgid	"Color of mini help menu"
-msgstr	"Mini yardým menüsünün rengi"
+#: src/lang.c:2358
+msgid   "Create signature from path/command"
+msgstr  ""
+
+#: src/lang.c:2359
+msgid   "# Signature path (random sigs)/file to be used when posting/replying\n"
+        "# sigfile=file       appends file as signature\n"
+        "# sigfile=!command   executes external command to generate a signature\n"
+        "# sigfile=--none     don't append a signature\n"
+msgstr  ""
+
+#: src/lang.c:2366
+msgid   "Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2367
+msgid   "Prepend signature with \"-- \""
+msgstr  ""
+
+#: src/lang.c:2368
+msgid   "# If ON prepend the signature with dashes '\\n-- \\n'\n"
+msgstr  ""
+
+#: src/lang.c:2372
+msgid   "Add signature when reposting articles. <SPACE> toggles & <CR> sets."
+msgstr  ""
+
+#: src/lang.c:2373
+msgid   "Add signature when reposting"
+msgstr  ""
 
-#: src/lang.c:1914
-#, 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:2374
+msgid   "# If ON add signature to reposted articles\n"
+msgstr  ""
 
-#: src/lang.c:1920
-#, fuzzy
-msgid	"Color of help text"
-msgstr	"Yardým sayfalarýnýn rengi"
+#: src/lang.c:2378
+#, c-format
+msgid   "Enter quotation marks, %s or %S for author's initials."
+msgstr  ""
 
-#: src/lang.c:1921
-msgid	"# Color of help pages\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
+#: src/lang.c:2379
+msgid   "Characters used as quote-marks"
+msgstr  ""
+
+#: src/lang.c:2380
+#, 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:2386
+#, fuzzy
+msgid   "Quoting behavior"
+msgstr  "Davranýþ göstermesi"
+
+#: src/lang.c:2387
+#, fuzzy
+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"
+        "#   1 = Compress quotes\n"
+        "#   2 = Quote signatures\n"
+        "#   3 = Compress quotes, quote signatures\n"
+        "#   4 = Quote empty lines\n"
+        "# * 5 = Compress quotes, quote empty lines\n"
+        "#   6 = Quote signatures, quote empty lines\n"
+        "#   7 = Compress quotes, quote signatures, quote empty lines\n"
+msgstr  "Diðerine geçerken yada cevap verirken görünüm nasýl olmalý.\n"
+        "# 0 = Normal\n"
+        "# 1 = Görünümleri sýkýþtýr\n"
+        "# 2 = Ýmzayý göster\n"
+        "# 3 = Görünümleri þýkýþtýr, imzalarý göster\n"
+        "# 4 = Boþ satýrlarý göster\n"
+        "# 5 = Görünümleri sýkýþtýr, boþ satýrlarý göster\n"
+        "# 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:2400 src/lang.c:2408 src/lang.c:2414
+#, 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:2401
+#, fuzzy
+msgid   "Quote line when following up"
+msgstr  "Sonrakine geçerken satýr göster"
+
+#: src/lang.c:2402
+#, 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  "# Bir makaleyi postalarken/gönderirken/diðerine geçerken görünüm satýrý "
+        "biçimleyiniz\n"
+        "# %%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:1927
+#: src/lang.c:2409
 #, fuzzy
-msgid	"Color of status messages"
-msgstr	"Durum iletilerinin rengi"
+msgid   "Quote line when cross-posting"
+msgstr  "Çapraz gönderirken satýrý göster"
 
-#: src/lang.c:1928
+#: src/lang.c:2415
 #, fuzzy
-msgid	"# Color of messages in last line\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Son satýrdaki iletilerin rengi\n"
+msgid   "Quote line when mailing"
+msgstr  "posta gönderirken satýrý göster"
 
-#: src/lang.c:1934
+#: src/lang.c:2420
 #, fuzzy
-msgid	"Color of quoted lines"
-msgstr	"Ýmlenmiþ-satýr rengi"
+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:1935
+#: src/lang.c:2421
 #, fuzzy
-msgid	"# Color of quote-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Ýmlenmiþ-satýr rengi\n"
+msgid   "Insert 'User-Agent:' header"
+msgstr  "'User-Agent:'-baþlýk ekleyiniz"
 
-#: src/lang.c:1941
+#: src/lang.c:2422
 #, fuzzy
-msgid	"Color of twice quoted line"
-msgstr	"Çift imlenen satýrlarýn rengi"
+msgid   "# If ON include advertising User-Agent: header\n"
+msgstr  "# ON durumdaysa User-Agent ilanýný ekleyiniz: baþlýk\n"
 
-#: src/lang.c:1942
+#: src/lang.c:2427
 #, fuzzy
-msgid	"# Color of twice quoted lines\n"
-	"# Default: 3 (brown)\n"
-msgstr	"# Çift imlenen satýrlarýn rengi\n"
+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:1948
-#, fuzzy
-msgid	"Color of =>3 times quoted line"
-msgstr	"Ýmlenmiþ satýrda =>3 kat rengi"
+#: src/lang.c:2428
+msgid   "MM_CHARSET"
+msgstr  ""
 
-#: src/lang.c:1949
+#: src/lang.c:2429
 #, fuzzy
-msgid	"# Color of >=3 times quoted lines\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Ýmlenmiþ satýrlarda >=3 kat rengi\n"
+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"
+        "# Set to US-ASCII or compile time default if neither of them is defined.\n"
+        "# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
+        "# mm_charset is considered not displayable and represented as '?'.\n"
+msgstr  "# Karakterkümesi Çok Amaçlý Internet Posta Uzantýlarý baþlýklarý için de "
+        "yerel olarak desteklenmemktedir\n"
+        "# Ýçerik-Tür baþlýðý.\n"
+        "# Kurulmamýþsa, çevre deðerli MM_KARAKTERKÜMESÝ kullanýlýr.\n"
+        "# US-ASCII kümesi yada varsayýlan zamanýnýn tanýmý yoksa derleyiniz.\n"
+        "# Çok Amaçlý Internet Posta Uzantýlarý_STICT_KARAKTERKÜMESÝ doðru zamanda "
+        "tanýmlanmýþsa, diðer karakterkümesi\n"
+        "# mm_karakterkümesi görünemez ve gösteremez '?'.\n"
 
-#: src/lang.c:1955
+#: src/lang.c:2439
 #, fuzzy
-msgid	"Color of article header lines"
-msgstr	"Makale baþlýk satýrlarýnýn rengi"
+msgid   "MM_NETWORK_CHARSET"
+msgstr  "MM_AÐ_KARAKTERKÜMESÝ"
 
-#: src/lang.c:1956
+#: src/lang.c:2440
 #, fuzzy
-msgid	"# Color of header-lines\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Baþlýk-satýrlarýnýn rengi\n"
+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:1962
+#: src/lang.c:2444
 #, fuzzy
-msgid	"Color of actual news header fields"
-msgstr	"Aktüel habver baþlýlarý alanýnýn rengi"
+msgid   "Enter local charset name (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:1963
+#: src/lang.c:2445
 #, 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"
+msgid   "MM_LOCAL_CHARSET"
+msgstr  "MM_AÐ_KARAKTERKÜMESÝ"
 
-#: src/lang.c:1969
-#, fuzzy
-msgid	"Color of article subject lines"
-msgstr	"Makale konu satýrlarýnýn rengi"
+#: src/lang.c:2446
+msgid   "# Charset supported locally.\n"
+msgstr  ""
 
-#: src/lang.c:1970
+#: src/lang.c:2453
 #, fuzzy
-msgid	"# Color of article subject\n"
-	"# Default: 6 (cyan)\n"
-msgstr	"# Makale konusunun rengi\n"
+msgid   "Mailbox format"
+msgstr  "posta kutusu"
 
-#: src/lang.c:1976
+#: src/lang.c:2454
 #, fuzzy
-msgid	"Color of response counter"
-msgstr	"Yanýt sayacý rengi"
+msgid   "# Format of the mailbox.\n"
+msgstr  "# Posta kutusunun biçimi.\n"
 
-#: src/lang.c:1977
+#: src/lang.c:2459
 #, fuzzy
-msgid	"# Color of response counter\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Yanýt sayacý rengi\n"
+msgid   "MIME encoding in news messages"
+msgstr  "Yeni mesajlarda Çok Amaçlý Internet Posta Uzantýlarý kodla"
 
-#: src/lang.c:1983
+#: src/lang.c:2460
 #, fuzzy
-msgid	"Color of sender (From:)"
-msgstr	"Gönderen (-den:) rengi"
+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"
+        "# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
+        "# Russian charsets with a lot of 8bit characters.\n"
+msgstr  "# Çok Amaçlý Internet Posta Uzantýlarý kodlayýcý (8bit, base64, quoted-"
+        "printable, 7bit)\n"
+        "# e-postalar için, gerektiðinde. QP European için yüksek verimlidir\n"
+        "# Karakter kümesi (ISO-8859-X) küçük iþaretli kesir US-ASCII karakterler\n"
+        "# Base64 8bit Doðu Asya ve Yunancadan daha yüksek verimlidir\n"
+        "# Rusça karakter kümesinin 8bit karakterler.\n"
 
-#: src/lang.c:1984
+#: src/lang.c:2468 src/lang.c:2489
 #, fuzzy
-msgid	"# Color of sender (From:)\n"
-	"# Default: 2 (green)\n"
-msgstr	"# Gönderen (-den:) rengi\n"
+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:1990
+#: src/lang.c:2469
 #, fuzzy
-msgid	"Color of help/mail sign"
-msgstr	"yardým/posta iþareti rengi"
+msgid   "Use 8bit characters in news headers"
+msgstr  "Yeni baþlýklarda 8bit karakter kullan."
 
-#: src/lang.c:1991
+#: src/lang.c:2470
 #, fuzzy
-msgid	"# Color of Help/Mail-Sign\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Yardým/Posta Ýþareti rengi\n"
+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  "# ON durumdaysa, 8bit karakterler yeni baþlýklarda kodlanmaz.\n"
+        "# varsayýlan OFF durumdaysa 8bit karakterler kodlanýr 8bit baþlýklardaki\n"
+        "# karakterlerin deðeri bakýlmadan kodlanýr\n"
+        "# Çok Amaçlý Internet Posta Uzantýlarý kodlamasý 8bit ise\n"
 
-#: src/lang.c:1997
+#: src/lang.c:2477
 #, fuzzy
-msgid	"Color of signatures"
-msgstr	"Ýmza rengi"
+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:1998
+#: src/lang.c:2478
 #, fuzzy
-msgid	"# Color of signature\n"
-	"# Default: 4 (blue)\n"
-msgstr	"# Ýmza rengi\n"
+msgid   "View post-processed files"
+msgstr  "Soniþlemci dosyalarý göster"
 
-#: src/lang.c:2004
+#: src/lang.c:2479
 #, fuzzy
-msgid	"Color of highlighted URLs"
-msgstr	"*yýldýz* ile vurgulama rengi"
-
-#: src/lang.c:2005
-msgid	"# Color of highlighted URLs\n"
-	"# Default: -1 (default color)\n"
-msgstr	""
+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:2011
+#: src/lang.c:2484
 #, fuzzy
-msgid	"Color of highlighting with *stars*"
-msgstr	"*yýldýz* ile vurgulama rengi"
+msgid   "MIME encoding in mail messages"
+msgstr  "Çok Amaçlý Internet Posta Uzantýlarý posta iletilerinde kodla"
 
-#: src/lang.c:2012
+#: src/lang.c:2490
 #, fuzzy
-msgid	"# Color of word highlighting with *stars*\n"
-	"# Default: 11 (yellow)\n"
-msgstr	"# *yýldýz* ile vurgulama rengi\n"
+msgid   "Use 8bit characters in mail headers"
+msgstr  "Posta baþlýklarýnda 8bit karakter kullan"
 
-#: src/lang.c:2018
+#: src/lang.c:2491
 #, fuzzy
-msgid	"Color of highlighting with _dash_"
-msgstr	"_kesik çizgi_ ile vurgulama rengi"
+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 "
+        "parameter\n"
+        "# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
+        "# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
+        "# turn it ON unless you have some compelling reason.\n"
+msgstr  "# ON durumdaysa, 8bit karakterler posta baþlýklarýnda kodlanmaz\n"
+        "# 8bit baþlýklardaki karakterler parametrelerin deðeri bakýlmadan kodlanýr\n"
+        "# Çok Amaçlý Internet Posta Uzantýlarý kodlamasý 8bit deðilse. Dikkat ! RFC "
+        "2822\n"
+        "# posta baþlýklarýnda 8bit karakterleri yasaksa iptal önerilir HAYIR -e\n"
+        "# Çok önemli neden yoksa ON durumuna getir\n"
 
-#: src/lang.c:2019
+#: src/lang.c:2501
 #, fuzzy
-msgid	"# Color of word highlighting with _dash_\n"
-	"# Default: 13 (light pink)\n"
-msgstr	"# _kesik çizgi_ ile vurgulama rengi\n"
-
-#: src/lang.c:2025
-#, fuzzy
-msgid	"Color of highlighting with /slash/"
-msgstr	"/bölü/ ile vurgulama rengi"
-
-#: src/lang.c:2026
-#, fuzzy
-msgid	"# Color of word highlighting with /slash/\n"
-	"# Default: 14 (light cyan)\n"
-msgstr	"# /bölü/ ile vurgulama rengi\n"
-
-#: src/lang.c:2032
-#, fuzzy
-msgid	"Color of highlighting with -stroke-"
-msgstr	"-vuruþ- ile vurgulama rengi"
-
-#: src/lang.c:2033
-#, fuzzy
-msgid	"# Color of word highlighting with -stroke-\n"
-	"# Default: 12 (light blue)\n"
-msgstr	"# -vuruþ- ile vurgulama rengi\n"
-
-#: src/lang.c:2040
-#, fuzzy
-msgid	"Attr. of highlighting with *stars*"
-msgstr	"*yýldýz*  ile vurgulama özniteliði"
-
-#: src/lang.c:2041
-#, fuzzy
-msgid	"# Attributes of word highlighting on mono terminals\n"
-	"# Possible values are:\n"
-	"#   0 = Normal\n"
-	"#   1 = Underline\n"
-	"#   2 = Best highlighting\n"
-	"#   3 = Reverse video\n"
-	"#   4 = Blinking\n"
-	"#   5 = Half bright\n"
-	"#   6 = Bold\n"
-	"\n"
-	"# Attribute of word highlighting with *stars*\n"
-	"# Default: 6 (bold)\n"
-msgstr	"# Tekli uçbirimlerde sözcük vurgulama özniteliði.\n"
-	"# Makalelerde dört olanak vardýr:\n"
-	"# *yýldýz*, /bölü/, _kesik çizgi_ and -vuruþ-.\n"
-	"Olasý deðerler\n"
-	"# 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"
+msgid   "Strip blanks from ends of lines"
+msgstr  "Satýr sonu boþlarý yok et"
 
-#: src/lang.c:2056
+#: src/lang.c:2502
 #, fuzzy
-msgid	"Attr. of highlighting with _dash_"
-msgstr	"_vuruþ_  ile vurgulama özniteliði"
-
-#: src/lang.c:2057
-msgid	"# Attribute of word highlighting with _dash_\n"
-	"# Default: 2 (best highlighting)\n"
-msgstr	""
+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:2063
+#: src/lang.c:2507
 #, fuzzy
-msgid	"Attr. of highlighting with /slash/"
-msgstr	"/bölü/ ile vurgulama özniteliði"
+msgid   "If ON, use transliteration. <SPACE> toggles & <CR> sets."
+msgstr  "ON durumdaysa damga çevirisi kullan.  <SPACE> toggles & <CR> sets."
 
-#: src/lang.c:2064
+#: src/lang.c:2508
 #, fuzzy
-msgid	"# Attribute of word highlighting with /slash/\n"
-	"# Default: 5 (half bright)\n"
-msgstr	"# /bölü/ ile vurgulama özniteliði\n"
+msgid   "Transliteration"
+msgstr  "Damga çevirisi"
 
-#: src/lang.c:2070
+#: src/lang.c:2509
 #, fuzzy
-msgid	"Attr. of highlighting with -stroke-"
-msgstr	"-kesik çizgi- ile vurgulama özniteliði"
+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  "# ON durumdaysa, //DAMGAÇEVÝRÝSÝ uzantýsý kullan. Karakterin yapamadýðýný\n"
+        "# daha büyük damga kümesi, yaklaþýk deðer verilebilir\n"
+        "# Bir veya daha fazla ayný karakter\n"
 
-#: src/lang.c:2071
+#: src/lang.c:2517
 #, fuzzy
-msgid	"# Attribute of word highlighting with -stroke-\n"
-	"# Default: 3 (reverse video)\n"
-msgstr	"# -kesik çizgi- ile vurgulama özniteliði\n"
+msgid   "Send you a Cc/Bcc automatically"
+msgstr  "Mektup kopyasý otomatik olarak kendine gönder."
 
-#: src/lang.c:2077
+#: src/lang.c:2518
 #, fuzzy
-msgid	"URL highlighting in message body"
-msgstr	"Ýleti gövdesinde vurgulana sözcük"
+msgid   "# Put your name in the Cc: and/or Bcc: field when mailing an article.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = No\n"
+        "#   1 = Cc\n"
+        "#   2 = Bcc\n"
+        "#   3 = Cc and Bcc\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:2078
+#: src/lang.c:2527
 #, fuzzy
-msgid	"# Enable URL highlighting?\n"
-msgstr	"# Sözcük vurgulamayý etkinlþetir?\n"
+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:2083
+#: src/lang.c:2528
 #, fuzzy
-msgid	"Word highlighting in message body"
-msgstr	"Ýleti gövdesinde vurgulana sözcük"
+msgid   "Spamtrap warning address parts"
+msgstr  "isteneyen e-mail posta uyarýsý"
 
-#: src/lang.c:2084
+#: src/lang.c:2529
 #, fuzzy
-msgid	"# Enable word highlighting?\n"
-msgstr	"# Sözcük vurgulamayý etkinlþetir?\n"
+msgid   "# A comma-delimited list of address-parts you want to be warned\n"
+        "# about when trying to reply by email.\n"
+msgstr  "# Uyarýlmak isiyorsan virgülle-sýnýrlanmýþ address-kýsýmlarýn listesini "
+        "göster\n"
+        "# e-posta ile cevap yazmak istediðin zaman\n"
 
-#: src/lang.c:2089
+#: src/lang.c:2534
 #, fuzzy
-msgid	"What to display instead of mark"
-msgstr	"Ýþaretin yerine ne gösterilmeli?"
+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:2090
+#: src/lang.c:2535
 #, fuzzy
-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"
-	"#   0 = no\n"
-	"#   1 = yes, display mark\n"
-	"# * 2 = print a space instead\n"
-msgstr	"# iþaretleri vurgulasalar bile?\n"
-	"# 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"
+msgid   "No. of days a filter entry is valid"
+msgstr  "Süz girdisinin geçerli günler sayýsý"
 
-#: src/lang.c:2099
+#: src/lang.c:2536
 #, 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."
+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:2100
-#, fuzzy
-msgid	"Page line wrap column"
-msgstr	"Sayfa satýrý sütunu çevreliyor"
+#: src/lang.c:2540
+msgid   "Add posted articles to filter. <SPACE> toggles & <CR> sets."
+msgstr  ""
 
-#: src/lang.c:2101
+#: src/lang.c:2541
 #, fuzzy
-msgid	"# Wrap article lines at column\n"
-msgstr	"# Sütundaki makale satýrlarýný çevrele\n"
+msgid   "Add posted articles to filter"
+msgstr  "Gönderilen makaleleri süzgece ekle"
 
-#: src/lang.c:2106
+#: src/lang.c:2542
 #, fuzzy
-msgid	"Wrap around threads on next unread"
-msgstr	"Sonraki okunmayanda parçacýklarý çevrele"
+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:2107
+#: src/lang.c:2546
 #, 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"
+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:2111
+#: src/lang.c:2547
 #, fuzzy
-msgid	"Enter default mail address (and fullname). <CR> sets."
-msgstr	"Varsayýlan posta adresini (ve tüm ismi) yaz, <CR> ayarlar."
+msgid   "Mail directory"
+msgstr  "Posta dizini"
 
-#: src/lang.c:2112
+#: src/lang.c:2548
 #, fuzzy
-msgid	"Mail address (and fullname)"
-msgstr	"Posta adresi (ile tüm isim)"
+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:2113
+#: src/lang.c:2553
 #, 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:2118
-msgid	"Show empty Followup-To in editor"
-msgstr	""
-
-#: src/lang.c:2119
-msgid	"# If ON show empty Followup-To header when editing an article\n"
-msgstr	""
-
-#: src/lang.c:2123
-msgid	"Enter path/! command/--none to create your default signature. <CR> sets."
-msgstr	""
-
-#: src/lang.c:2124
-msgid	"Create signature from path/command"
-msgstr	""
-
-#: src/lang.c:2125
-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 "
-	"signature\n"
-	"# default_sigfile=--none     don't append a signature\n"
-msgstr	""
-
-#: src/lang.c:2132
-msgid	"Prepend signature with \"-- \" on own line. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2133
-msgid	"Prepend signature with \"-- \""
-msgstr	""
-
-#: src/lang.c:2134
-msgid	"# If ON prepend the signature with dashes '\\n-- \\n'\n"
-msgstr	""
+msgid   "Save articles in batch mode (-S)"
+msgstr  "Makaleleri toplu moda kaydet (-S)"
 
-#: src/lang.c:2138
-msgid	"Add signature when reposting articles. <SPACE> toggles & <CR> sets."
-msgstr	""
-
-#: src/lang.c:2139
-msgid	"Add signature when reposting"
-msgstr	""
-
-#: src/lang.c:2140
-msgid	"# If ON add signature to reposted articles\n"
-msgstr	""
-
-#: src/lang.c:2144
-#, c-format
-msgid	"Enter quotation marks, %s or %S for author's initials."
-msgstr	""
-
-#: src/lang.c:2145
-msgid	"Characters used as quote-marks"
-msgstr	""
-
-#: src/lang.c:2146
-#, 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:2152
-#, fuzzy
-msgid	"Quoting behavior"
-msgstr	"Davranýþ göstermesi"
-
-#: src/lang.c:2153
-#, fuzzy
-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"
-	"#   1 = Compress quotes\n"
-	"#   2 = Quote signatures\n"
-	"#   3 = Compress quotes, quote signatures\n"
-	"#   4 = Quote empty lines\n"
-	"# * 5 = Compress quotes, quote empty lines\n"
-	"#   6 = Quote signatures, quote empty lines\n"
-	"#   7 = Compress quotes, quote signatures, quote empty lines\n"
-msgstr	"Diðerine geçerken yada cevap verirken görünüm nasýl olmalý.\n"
-	"# 0 = Normal\n"
-	"# 1 = Görünümleri sýkýþtýr\n"
-	"# 2 = Ýmzayý göster\n"
-	"# 3 = Görünümleri þýkýþtýr, imzalarý göster\n"
-	"# 4 = Boþ satýrlarý göster\n"
-	"# 5 = Görünümleri sýkýþtýr, boþ satýrlarý göster\n"
-	"# 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:2166 src/lang.c:2174 src/lang.c:2180
+#: src/lang.c:2554
 #, 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"
+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:2167
+#: src/lang.c:2559
 #, fuzzy
-msgid	"Quote line when following up"
-msgstr	"Sonrakine geçerken satýr göster"
-
-#: src/lang.c:2168
-#, 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	"# Bir makaleyi postalarken/gönderirken/diðerine geçerken görünüm satýrý "
-	"biçimleyiniz\n"
-	"# %%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"
+msgid   "The directory where you want articles/threads saved."
+msgstr  "makeleleri7iç parçacýklarýný kaydetmek istediðin dizin."
 
-#: src/lang.c:2175
+#: src/lang.c:2560
 #, fuzzy
-msgid	"Quote line when cross-posting"
-msgstr	"Çapraz gönderirken satýrý göster"
+msgid   "Directory to save arts/threads in"
+msgstr  "iç parçacýklarýn kaydedildiði dizin"
 
-#: src/lang.c:2181
+#: src/lang.c:2561
 #, fuzzy
-msgid	"Quote line when mailing"
-msgstr	"posta gönderirken satýrý göster"
+msgid   "# Directory where articles/threads are saved\n"
+msgstr  "# Kaydedilmiþ makalelerin/iç parçacýklarýn olduðu dizin\n"
 
-#: src/lang.c:2186
+#: src/lang.c:2565
 #, 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."
+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:2187
+#: src/lang.c:2566
 #, fuzzy
-msgid	"Insert 'User-Agent:'-header"
-msgstr	"'User-Agent:'-baþlýk ekleyiniz"
+msgid   "Use Archive-name: header for save"
+msgstr  "Arþiv ismi kullan: baþlýk kaydetme"
 
-#: src/lang.c:2188
+#: src/lang.c:2567
 #, fuzzy
-msgid	"# If ON include advertising User-Agent: header\n"
-msgstr	"# ON durumdaysa User-Agent ilanýný ekleyiniz: baþlýk\n"
+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:2193
+#: src/lang.c:2572
 #, 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:2194
-msgid	"MM_CHARSET"
-msgstr	""
+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:2195
+#: src/lang.c:2573
 #, fuzzy
-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"
-	"# Set to US-ASCII or compile time default if neither of them is defined.\n"
-	"# If MIME_STRICT_CHARSET is defined at compile-time, charset other than\n"
-	"# mm_charset is considered not displayable and represented as '?'.\n"
-msgstr	"# Karakterkümesi Çok Amaçlý Internet Posta Uzantýlarý baþlýklarý için de "
-	"yerel olarak desteklenmemktedir\n"
-	"# Ýçerik-Tür baþlýðý.\n"
-	"# Kurulmamýþsa, çevre deðerli MM_KARAKTERKÜMESÝ kullanýlýr.\n"
-	"# US-ASCII kümesi yada varsayýlan zamanýnýn tanýmý yoksa derleyiniz.\n"
-	"# Çok Amaçlý Internet Posta Uzantýlarý_STICT_KARAKTERKÜMESÝ doðru zamanda "
-	"tanýmlanmýþsa, diðer karakterkümesi\n"
-	"# mm_karakterkümesi görünemez ve gösteremez '?'.\n"
+msgid   "Mark saved articles/threads as read"
+msgstr  "Kaydedilmiþ makaleleri /iç parçacýklarý okunmuþ olarak iþaretle"
 
-#: src/lang.c:2205
+#: src/lang.c:2574
 #, fuzzy
-msgid	"MM_NETWORK_CHARSET"
-msgstr	"MM_AÐ_KARAKTERKÜMESÝ"
+msgid   "# If ON mark articles that are saved as read\n"
+msgstr  "# ON durumdaysa kaydedilmiþ makaleleri okunmuþ olarak iþaretle\n"
 
-#: src/lang.c:2206
+#: src/lang.c:2578
 #, 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"
+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:2212
+#: src/lang.c:2579
 #, fuzzy
-msgid	"Mailbox format"
-msgstr	"posta kutusu"
+msgid   "Post process saved articles"
+msgstr  "Kaydedilmiþ makaleleri gönder"
 
-#: src/lang.c:2213
+#: src/lang.c:2580
 #, fuzzy
-msgid	"# Format of the mailbox.\n"
-msgstr	"# Posta kutusunun biçimi.\n"
+msgid   "# Perform post processing (saving binary attachments) from saved articles.\n"
+        "# Possible values are (the default is marked with *):\n"
+        "# * 0 = no\n"
+        "#   1 = extract shell archives (shar) only\n"
+        "#   2 = yes\n"
+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:2218
+#: src/lang.c:2589
 #, fuzzy
-msgid	"MIME encoding in news messages"
-msgstr	"Yeni mesajlarda Çok Amaçlý Internet Posta Uzantýlarý kodla"
+msgid   "Process only unread articles"
+msgstr  "Sadece okunmayan makaleleri iþle"
 
-#: src/lang.c:2219
+#: src/lang.c:2590
 #, 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"
-	"# character sets (ISO-8859-X) with small fraction of non-US-ASCII chars,\n"
-	"# while Base64 is more efficient for most 8bit East Asian, Greek, and\n"
-	"# Russian charsets with a lot of 8bit characters.\n"
-msgstr	"# Çok Amaçlý Internet Posta Uzantýlarý kodlayýcý (8bit, base64, quoted-"
-	"printable, 7bit)\n"
-	"# e-postalar için, gerektiðinde. QP European için yüksek verimlidir\n"
-	"# Karakter kümesi (ISO-8859-X) küçük iþaretli kesir US-ASCII karakterler\n"
-	"# Base64 8bit Doðu Asya ve Yunancadan daha yüksek verimlidir\n"
-	"# Rusça karakter kümesinin 8bit karakterler.\n"
-
-#: src/lang.c:2227 src/lang.c:2248
-#, 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:2228
-#, fuzzy
-msgid	"Use 8bit characters in news headers"
-msgstr	"Yeni baþlýklarda 8bit karakter kullan."
-
-#: src/lang.c:2229
-#, fuzzy
-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	"# ON durumdaysa, 8bit karakterler yeni baþlýklarda kodlanmaz.\n"
-	"# varsayýlan OFF durumdaysa 8bit karakterler kodlanýr 8bit baþlýklardaki\n"
-	"# karakterlerin deðeri bakýlmadan kodlanýr\n"
-	"# Çok Amaçlý Internet Posta Uzantýlarý kodlamasý 8bit ise\n"
-
-#: src/lang.c:2236
-#, 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."
+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:2237
+#: src/lang.c:2595
 #, fuzzy
-msgid	"View post-processed files"
-msgstr	"Soniþlemci dosyalarý göster"
+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:2238
+#: src/lang.c:2596
 #, 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"
+msgid   "Print all headers when printing"
+msgstr  "Yazdýrýrken tüm baþlýklarý yazdýr"
 
-#: src/lang.c:2243
+#: src/lang.c:2597
 #, fuzzy
-msgid	"MIME encoding in mail messages"
-msgstr	"Çok Amaçlý Internet Posta Uzantýlarý posta iletilerinde kodla"
+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:2249
-#, fuzzy
-msgid	"Use 8bit characters in mail headers"
-msgstr	"Posta baþlýklarýnda 8bit karakter kullan"
-
-#: src/lang.c:2250
-#, fuzzy
-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 "
-	"parameter\n"
-	"# unless mail_mime_encoding is 8bit as well. Note that RFC 2822\n"
-	"# prohibits 8bit characters in mail headers so that you are advised NOT to\n"
-	"# turn it ON unless you have some compelling reason.\n"
-msgstr	"# ON durumdaysa, 8bit karakterler posta baþlýklarýnda kodlanmaz\n"
-	"# 8bit baþlýklardaki karakterler parametrelerin deðeri bakýlmadan kodlanýr\n"
-	"# Çok Amaçlý Internet Posta Uzantýlarý kodlamasý 8bit deðilse. Dikkat ! RFC "
-	"2822\n"
-	"# posta baþlýklarýnda 8bit karakterleri yasaksa iptal önerilir HAYIR -e\n"
-	"# Çok önemli neden yoksa ON durumuna getir\n"
-
-#: src/lang.c:2260
+#: src/lang.c:2601
 #, fuzzy
-msgid	"Strip blanks from ends of lines"
-msgstr	"Satýr sonu boþlarý yok et"
+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:2261
+#: src/lang.c:2602
 #, 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"
+msgid   "Printer program with options"
+msgstr  "Seçenekli yazýcý programý"
 
-#: src/lang.c:2266
+#: src/lang.c:2603
 #, fuzzy
-msgid	"If ON, use transliteration. <SPACE> toggles & <CR> sets."
-msgstr	"ON durumdaysa damga çevirisi kullan.  <SPACE> toggles & <CR> sets."
+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:2267
+#: src/lang.c:2609
 #, fuzzy
-msgid	"Transliteration"
-msgstr	"Damga çevirisi"
+msgid   "Force redraw after certain commands"
+msgstr  "Kesin komutlardan sonra ekrandaki çizimin yenilenmesini güçlendir"
 
-#: src/lang.c:2268
+#: src/lang.c:2610
 #, 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"
-	"# through one or several similarly looking characters.\n"
-msgstr	"# ON durumdaysa, //DAMGAÇEVÝRÝSÝ uzantýsý kullan. Karakterin yapamadýðýný\n"
-	"# daha büyük damga kümesi, yaklaþýk deðer verilebilir\n"
-	"# Bir veya daha fazla ayný karakter\n"
+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:2275
+#: src/lang.c:2614
 #, fuzzy
-msgid	"Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	"Mektup kopyasý otomatik olarak kendine gönder. <SPACE> toggles & <CR> sets."
+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:2276
+#: src/lang.c:2615
 #, fuzzy
-msgid	"Send you a cc automatically"
-msgstr	"Mektup kopyasý otomatik olarak kendine gönder."
+msgid   "Start editor with line offset"
+msgstr  "Düzenleyiciyi satýr konumu ile baþlat"
 
-#: src/lang.c:2277
+#: src/lang.c:2616
 #, 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"
+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:2281
+#: src/lang.c:2621
 #, fuzzy
-msgid	"Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."
-msgstr	"Gizli mektup kopyasý otomatik olarak kendine gönder."
+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:2282
+#: src/lang.c:2622
 #, fuzzy
-msgid	"Send you a blind cc automatically"
-msgstr	"Gizli mektup kopyasý otomatik olarak kendine gönder"
+msgid   "Invocation of your editor"
+msgstr  "Düzenleyicinizin yürütülmesi"
 
-#: src/lang.c:2283
-#, 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:2623
+#, 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:2287
+#: src/lang.c:2628
 #, fuzzy
-msgid	"Enter address elements about which you want to be warned. <CR> sets."
-msgstr	"uyarýlmak istediðin adres öðelerine gir <CR> sets."
+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:2288
+#: src/lang.c:2629
 #, fuzzy
-msgid	"Spamtrap warning address parts"
-msgstr	"isteneyen e-mail posta uyarýsý"
+msgid   "External inews"
+msgstr  "Dýþ inew programlarý"
 
-#: src/lang.c:2289
+#: src/lang.c:2630
 #, fuzzy
-msgid	"# A comma-delimited list of address-parts you want to be warned\n"
-	"# about when trying to reply by email.\n"
-msgstr	"# Uyarýlmak isiyorsan virgülle-sýnýrlanmýþ address-kýsýmlarýn listesini "
-	"göster\n"
-	"# e-posta ile cevap yazmak istediðin zaman\n"
+msgid   "# If --internal use the built in mini inews for posting via NNTP\n"
+        "# otherwise use an external inews program\n"
+msgstr  "# Eðer --içsel ise NNTP yoluyla gönderim için yerleþik mini inew "
+        "programlarýný kullanýn\n"
+        "# deðilse bir dýþ inew programý kullanýn\n"
 
-#: src/lang.c:2294
+#: src/lang.c:2634
 #, 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."
+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:2295
+#: src/lang.c:2635
 #, fuzzy
-msgid	"No. of days a filter entry is valid"
-msgstr	"Süz girdisinin geçerli günler sayýsý"
+msgid   "Invocation of your mail command"
+msgstr  "Posta komutunuzun yürütülmesi"
+
+#: src/lang.c:2636
+#, fuzzy, c-format
+msgid   "# Format of mailer line including parameters\n"
+        "# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
+        "# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
+        "# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+msgstr  "# Parametrelerle birlikte gönderici satýrý biçimi\n"
+        "# %%M Gönderici  %%S Konu  %%T Gönderilen  %%F Dosya adý\n"
+        "# ie. elmi göndericiniz olarak kullanmak için:    elm -s \"%%S\" \"%%T\" < %%"
+        "F\n"
+        "# ie. elm etkileþimli            :    elm -i %%F -s \"%%S\" \"%%T\"\n"
 
-#: src/lang.c:2296
+#: src/lang.c:2644
 #, 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"
+msgid   "Use interactive mail reader"
+msgstr  "Etkileþimli posta okuyucu kullan"
 
-#: src/lang.c:2300
-msgid	"Add posted articles to filter. <SPACE> toggles & <CR> sets."
-msgstr	""
+#: src/lang.c:2645
+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  ""
 
-#: src/lang.c:2301
+#: src/lang.c:2654
 #, fuzzy
-msgid	"Add posted articles to filter"
-msgstr	"Gönderilen makaleleri süzgece ekle"
+msgid   "Remove ~/.article after posting"
+msgstr  "Kaldýr ~/.article sonra makale"
 
-#: src/lang.c:2302
+#: src/lang.c:2655
 #, 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"
+msgid   "# If ON remove ~/.article after posting.\n"
+msgstr  "# ON durumundaysa kaldýr  ~/.gönderimden sonra makale.\n"
 
-#: src/lang.c:2306
-#, 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:2661
+msgid   "Use UTF-8 graphics (thrd tree etc.)"
+msgstr  ""
 
-#: src/lang.c:2307
-#, fuzzy
-msgid	"Mail directory"
-msgstr	"Posta dizini"
+#: src/lang.c:2662
+msgid   "# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n"
+msgstr  ""
 
-#: src/lang.c:2308
+#: src/lang.c:2667
 #, 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"
+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:2313
+#: src/lang.c:2668
 #, fuzzy
-msgid	"Save articles in batch mode (-S)"
-msgstr	"Makaleleri toplu moda kaydet (-S)"
+msgid   "Filename for posted articles"
+msgstr  "Gönderilen makaleler için dosya adý"
 
-#: src/lang.c:2314
+#: src/lang.c:2669
 #, 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"
+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:2319
+#: src/lang.c:2674
 #, fuzzy
-msgid	"The directory where you want articles/threads saved."
-msgstr	"makeleleri7iç parçacýklarýný kaydetmek istediðin dizin."
+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:2320
+#: src/lang.c:2675
 #, fuzzy
-msgid	"Directory to save arts/threads in"
-msgstr	"iç parçacýklarýn kaydedildiði dizin"
+msgid   "Keep failed arts in ~/dead.articles"
+msgstr  "Baþarýsýz makaleleri tut ~/ölü.makale"
 
-#: src/lang.c:2321
+#: src/lang.c:2676
 #, fuzzy
-msgid	"# Directory where articles/threads are saved\n"
-msgstr	"# Kaydedilmiþ makalelerin/iç parçacýklarýn olduðu dizin\n"
+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:2325
+#: src/lang.c:2680
 #, 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."
+msgid   "Do you want to strip unsubscribed groups from .newsrc"
+msgstr  "Abone olmayan gruplarý çýkart .newsrc"
 
-#: src/lang.c:2326
+#: src/lang.c:2681
 #, fuzzy
-msgid	"Use Archive-name: header for save"
-msgstr	"Arþiv ismi kullan: baþlýk kaydetme"
+msgid   "No unsubscribed groups in newsrc"
+msgstr  "Abone olmayan grup yok newsrc"
 
-#: src/lang.c:2327
+#: src/lang.c:2682
 #, 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"
+msgid   "# If ON strip unsubscribed groups from newsrc\n"
+msgstr  "# If ON abone olmamýþ gruplarý çýkart newsrc\n"
 
-#: src/lang.c:2332
+#: src/lang.c:2687
 #, 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."
+msgid   "Remove bogus groups from newsrc"
+msgstr  "Bogus gruplarý kaldýr newsrc"
 
-#: src/lang.c:2333
+#: src/lang.c:2688
 #, fuzzy
-msgid	"Mark saved articles/threads as read"
-msgstr	"Kaydedilmiþ makaleleri /iç parçacýklarý okunmuþ olarak iþaretle"
+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  "# 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:2334
+#: src/lang.c:2696
 #, fuzzy
-msgid	"# If ON mark articles that are saved as read\n"
-msgstr	"# ON durumdaysa kaydedilmiþ makaleleri okunmuþ olarak iþaretle\n"
+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:2338
+#: src/lang.c:2697
 #, 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."
+msgid   "Interval in secs to reread active"
+msgstr  "yeniden etkin kýlma saniye aralýðý"
 
-#: src/lang.c:2339
+#: src/lang.c:2698
 #, fuzzy
-msgid	"Post process saved articles"
-msgstr	"Kaydedilmiþ makaleleri gönder"
+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:2340
+#: src/lang.c:2703
 #, fuzzy
-msgid	"# Perform post processing (saving binary attachments) from saved articles.\n"
-	"# Possible values are (the default is marked with *):\n"
-	"# * 0 = no\n"
-	"#   1 = extract shell archives (shar) only\n"
-	"#   2 = yes\n"
-msgstr	"# Kaydedilmiþ makaleler gönderme iþlemini bitir.\n"
-	"# 0=(evet) 1=(hayýr) 2=(kabuk arþivleri bul (shar) only)\n"
+msgid   "Reconnect to server automatically"
+msgstr  "Sunucuya otomatik olarak baðlan"
 
-#: src/lang.c:2349
+#: src/lang.c:2704
 #, fuzzy
-msgid	"Process only unread articles"
-msgstr	"Sadece okunmayan makaleleri iþle"
+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:2350
+#: src/lang.c:2708
 #, 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"
+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:2355
+#: src/lang.c:2709
 #, 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."
+msgid   "Cache NNTP overview files locally"
+msgstr  "Að Haberleri Aktarma Protokolü önbelleði yerel olarak giriþ dosyalarý"
 
-#: src/lang.c:2356
+#: src/lang.c:2710
 #, fuzzy
-msgid	"Print all headers when printing"
-msgstr	"Yazdýrýrken tüm baþlýklarý yazdýr"
+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:2357
+#: src/lang.c:2714
 #, 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"
+msgid   "Enter format string. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2361
-#, 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:2715
+msgid   "Format string for display of dates"
+msgstr  ""
 
-#: src/lang.c:2362
-#, fuzzy
-msgid	"Printer program with options"
-msgstr	"Seçenekli yazýcý programý"
+#: src/lang.c:2716
+msgid   "# Format string for date representation\n"
+msgstr  ""
 
-#: src/lang.c:2363
-#, 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:2722
+msgid   "Unicode normalization form"
+msgstr  ""
 
-#: src/lang.c:2369
-#, fuzzy
-msgid	"Force redraw after certain commands"
-msgstr	"Kesin komutlardan sonra ekrandaki çizimin yenilenmesini güçlendir"
+#: src/lang.c:2723
+msgid   "# Unicode normalization form\n"
+        "# Possible values are (the default is marked with *):\n"
+        "#   0 = None\n"
+        "# * 1 = NFKC\n"
+        "#   2 = NFKD\n"
+        "#   3 = NFC\n"
+        "#   4 = NFD\n"
+msgstr  ""
 
-#: src/lang.c:2370
-#, 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:2735
+msgid   "Render BiDi"
+msgstr  ""
 
-#: src/lang.c:2374
-#, 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:2736
+msgid   "# If ON, bi-directional text is rendered by tin\n"
+msgstr  ""
 
-#: src/lang.c:2375
-#, fuzzy
-msgid	"Start editor with line offset"
-msgstr	"Düzenleyiciyi satýr konumu ile baþlat"
+#: src/lang.c:2746
+msgid   "Automatically GroupMarkUnselArtRead"
+msgstr  ""
 
-#: src/lang.c:2376
+#: src/lang.c:2752
 #, 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"
+msgid   "Delete post-process files"
+msgstr  "Soniþlemci dosyalarý göster"
 
-#: src/lang.c:2381
+#: src/lang.c:2757
 #, 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."
+msgid   "Filename for all mailed 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:2758
+msgid   "Mailbox to save sent mails"
+msgstr  ""
 
-#: src/lang.c:2382
+#: src/lang.c:2763
 #, fuzzy
-msgid	"Invocation of your editor"
-msgstr	"Düzenleyicinizin yürütülmesi"
+msgid   "Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2383
-#, 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:2764
+msgid   "Followup-To: header"
+msgstr  ""
 
-#: src/lang.c:2388
+#: src/lang.c:2769
 #, 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"
+msgid   "Enter default mail address (and fullname). <CR> sets, <ESC> cancels."
+msgstr  "Varsayýlan posta adresini (ve tüm ismi) yaz, <CR> ayarlar."
 
-#: src/lang.c:2389
+#: src/lang.c:2776
 #, fuzzy
-msgid	"External inews"
-msgstr	"Dýþ inew programlarý"
+msgid   "Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."
+msgstr  "URL açmak için çalýþtýrýlan program, <CR> ayarlar, <ESC> iptal eder."
 
-#: src/lang.c:2390
-#, fuzzy
-msgid	"# If --internal use the built in mini inews for posting via NNTP\n"
-	"# otherwise use an external inews program\n"
-msgstr	"# Eðer --içsel ise NNTP yoluyla gönderim için yerleþik mini inew "
-	"programlarýný kullanýn\n"
-	"# deðilse bir dýþ inew programý kullanýn\n"
+#: src/lang.c:2777
+msgid   "Ispell program"
+msgstr  ""
 
-#: src/lang.c:2394
-#, 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:2783
+msgid   "When group is a mailing list, send responses to this email address."
+msgstr  ""
 
-#: src/lang.c:2395
+#: src/lang.c:2784
 #, fuzzy
-msgid	"Invocation of your mail command"
-msgstr	"Posta komutunuzun yürütülmesi"
+msgid   "Mailing list address"
+msgstr  "Günlüðü postalýyor %s\n"
 
-#: src/lang.c:2396
-#, fuzzy, c-format
-msgid	"# Format of mailer line including parameters\n"
-	"# %%M Mailer  %%S Subject  %%T To  %%F Filename\n"
-	"# ie. to use elm as your mailer:    elm -s \"%%S\" \"%%T\" < %%F\n"
-	"# ie. elm interactive          :    elm -i %%F -s \"%%S\" \"%%T\"\n"
-msgstr	"# Parametrelerle birlikte gönderici satýrý biçimi\n"
-	"# %%M Gönderici  %%S Konu  %%T Gönderilen  %%F Dosya adý\n"
-	"# ie. elmi göndericiniz olarak kullanmak için:    elm -s \"%%S\" \"%%T\" < %%"
-	"F\n"
-	"# ie. elm etkileþimli            :    elm -i %%F -s \"%%S\" \"%%T\"\n"
+#: src/lang.c:2790
+msgid   "Forward articles as attachement"
+msgstr  ""
 
-#: src/lang.c:2404
-#, fuzzy
-msgid	"Use interactive mail reader"
-msgstr	"Etkileþimli posta okuyucu kullan"
+#: src/lang.c:2795
+msgid   "A comma separated list of MIME major/minor Content-Types. <ESC> cancels."
+msgstr  ""
 
-#: src/lang.c:2405
-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	""
+#: src/lang.c:2796
+msgid   "Which MIME types will be saved"
+msgstr  ""
 
-#: src/lang.c:2414
+#: src/lang.c:2801
 #, fuzzy
-msgid	"Remove ~/.article after posting"
-msgstr	"Kaldýr ~/.article sonra makale"
+msgid   "Value of the Organization: header. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2415
-#, fuzzy
-msgid	"# If ON remove ~/.article after posting.\n"
-msgstr	"# ON durumundaysa kaldýr  ~/.gönderimden sonra makale.\n"
+#: src/lang.c:2802
+msgid   "Organization: header"
+msgstr  ""
 
-#: src/lang.c:2419
+#: src/lang.c:2807
 #, 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."
+msgid   "Filename for saved articles. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2420
+#: src/lang.c:2808
 #, fuzzy
-msgid	"Filename for posted articles"
-msgstr	"Gönderilen makaleler için dosya adý"
+msgid   "savefile"
+msgstr  "Dosyaadý kaydet> "
 
-#: src/lang.c:2421
+#: src/lang.c:2813 src/lang.c:2837
 #, 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:2426
-#, 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."
+msgid   "Scope for the filter rule. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2427
+#: src/lang.c:2814
 #, fuzzy
-msgid	"Keep failed arts in ~/dead.articles"
-msgstr	"Baþarýsýz makaleleri tut ~/ölü.makale"
+msgid   "Quick (1 key) select filter scope"
+msgstr  "Hýzlý seçenek süzü eklensin mi?"
 
-#: src/lang.c:2428
+#: src/lang.c:2819 src/lang.c:2843
 #, 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"
+msgid   "Header for filter rule. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2432
-#, fuzzy
-msgid	"Do you want to strip unsubscribed groups from .newsrc"
-msgstr	"Abone olmayan gruplarý çýkart .newsrc"
+#: src/lang.c:2820
+msgid   "Quick (1 key) select filter header"
+msgstr  ""
 
-#: src/lang.c:2433
+#: src/lang.c:2825 src/lang.c:2849
 #, fuzzy
-msgid	"No unsubscribed groups in newsrc"
-msgstr	"Abone olmayan grup yok newsrc"
+msgid   "ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2434
+#: src/lang.c:2826
 #, fuzzy
-msgid	"# If ON strip unsubscribed groups from newsrc\n"
-msgstr	"# If ON abone olmamýþ gruplarý çýkart newsrc\n"
+msgid   "Quick (1 key) select filter case"
+msgstr  "Hýzlý seçenek süzü eklensin mi?"
 
-#: src/lang.c:2439
+#: src/lang.c:2831 src/lang.c:2855
 #, fuzzy
-msgid	"Remove bogus groups from newsrc"
-msgstr	"Bogus gruplarý kaldýr newsrc"
+msgid   "ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2440
-#, fuzzy
-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	"# 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:2832
+msgid   "Quick (1 key) select filter expire"
+msgstr  ""
 
-#: src/lang.c:2448
+#: src/lang.c:2838
 #, 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."
+msgid   "Quick (1 key) kill filter scope"
+msgstr  "Öldürücü hýzlý süzü eklensin mi?"
 
-#: src/lang.c:2449
-#, fuzzy
-msgid	"Interval in secs to reread active"
-msgstr	"yeniden etkin kýlma saniye aralýðý"
+#: src/lang.c:2844
+msgid   "Quick (1 key) kill filter header"
+msgstr  ""
 
-#: src/lang.c:2450
+#: src/lang.c:2850
 #, 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"
+msgid   "Quick (1 key) kill filter case"
+msgstr  "Öldürücü hýzlý süzü eklensin mi?"
 
-#: src/lang.c:2455
-#, fuzzy
-msgid	"Reconnect to server automatically"
-msgstr	"Sunucuya otomatik olarak baðlan"
+#: src/lang.c:2856
+msgid   "Quick (1 key) kill filter expire"
+msgstr  ""
 
-#: src/lang.c:2456
-#, 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:2862
+msgid   "Assume this charset if no charset declaration is present, <CR> to set."
+msgstr  ""
 
-#: src/lang.c:2460
+#: src/lang.c:2863
 #, 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."
+msgid   "UNDECLARED_CHARSET"
+msgstr  "MM_AÐ_KARAKTERKÜMESÝ"
 
-#: src/lang.c:2461
+#: src/lang.c:2869
 #, fuzzy
-msgid	"Cache NNTP overview files locally"
-msgstr	"Að Haberleri Aktarma Protokolü önbelleði yerel olarak giriþ dosyalarý"
+msgid   "Add this text at the start of the message body. <CR> sets, <ESC> cancels."
+msgstr  "Sýralanmýþ makaleleri imlemek için karakter girin. <CR> ayarlar, <ESC> iptal "
+        "eder."
 
-#: src/lang.c:2462
+#: src/lang.c:2870
 #, 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"
+msgid   "X_Body"
+msgstr  "Kalýn"
 
-#: src/lang.c:2466
+#: src/lang.c:2875
 #, 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:2467
-msgid	"Format string for display of dates"
-msgstr	""
+msgid   "Insert this header when posting. <CR> sets, <ESC> cancels."
+msgstr  "Okunan makaleleri imlemek için karakter girin. <CR> yarlar, <ESC> iptal eder."
 
-#: src/lang.c:2468
-msgid	"# Format string for date representation\n"
-msgstr	""
+#: src/lang.c:2876
+msgid   "X_Headers"
+msgstr  ""
 
-#: src/lang.c:2474
-msgid	"Unicode normalization form"
-msgstr	""
-
-#: src/lang.c:2475
-msgid	"# Unicode normalization form\n"
-	"# Possible values are (the default is marked with *):\n"
-	"#   0 = None\n"
-	"# * 1 = NFKC\n"
-	"#   2 = NFKD\n"
-	"#   3 = NFC\n"
-	"#   4 = NFD\n"
-msgstr	""
-
-#: src/lang.c:2487
-msgid	"Render BiDi"
-msgstr	""
+#: src/lang.c:2881
+#, fuzzy
+msgid   "Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."
+msgstr  "ON durumdaysa, Kullanýcý-Etken baþlýðý ekleyiniz.  <SPACE> toggles & <CR> "
+        "sets."
 
-#: src/lang.c:2488
-msgid	"# If ON, bi-directional text is rendered by tin\n"
-msgstr	""
+#: src/lang.c:2882
+#, fuzzy
+msgid   "Insert 'X-Comment-To:' header"
+msgstr  "'X-Comment-To:'-baþlýk ekleyiniz"
 
-#: src/misc.c:3750
+#: src/misc.c:3754
 #, fuzzy, c-format
-msgid	"Version: %s %s release %s (\"%s\") %s %s\n"
-msgstr	"Sürüm: %s %s serbest býrak %s (\"%s\") %s %s\n"
+msgid   "Version: %s %s release %s (\"%s\") %s %s\n"
+msgstr  "Sürüm: %s %s serbest býrak %s (\"%s\") %s %s\n"
 
-#: src/misc.c:3753
+#: src/misc.c:3757
 #, fuzzy, c-format
-msgid	"Version: %s %s release %s (\"%s\")\n"
-msgstr	"Sürüm: %s %s serbest býrak %s (\"%s\")\n"
+msgid   "Version: %s %s release %s (\"%s\")\n"
+msgstr  "Sürüm: %s %s serbest býrak %s (\"%s\")\n"
 
-#: src/newsrc.c:430
+#: src/newsrc.c:453
 #, fuzzy
-msgid	"Unreachable?\n"
-msgstr	"Ulaþýlamaz?\n"
+msgid   "Unreachable?\n"
+msgstr  "Ulaþýlamaz?\n"
 
-#: src/nntplib.c:824
+#: src/nntplib.c:819
 #, fuzzy, c-format
-msgid	"\n"
-	"Server timed out, trying reconnect # %d\n"
-msgstr	"\n"
-	"Sunucu süresi doldu, tekrar baðlanmaya çalýþýyor # %d\n"
+msgid   "\n"
+        "Server timed out, trying reconnect # %d\n"
+msgstr  "\n"
+        "Sunucu süresi doldu, tekrar baðlanmaya çalýþýyor # %d\n"
 
-#: src/nntplib.c:842 src/nntplib.c:1630
+#: src/nntplib.c:855 src/nntplib.c:1830
 #, fuzzy
-msgid	"Rejoin current group\n"
-msgstr	"Þu anki gruba tekrar katýl\n"
+msgid   "Rejoin current group\n"
+msgstr  "Þu anki gruba tekrar katýl\n"
 
-#: src/nntplib.c:849 src/nntplib.c:1637
+#: src/nntplib.c:863 src/nntplib.c:1838
 #, fuzzy, c-format
-msgid	"Read (%s)\n"
-msgstr	"Oku (%s)\n"
+msgid   "Read (%s)\n"
+msgstr  "Oku (%s)\n"
 
-#: src/nntplib.c:851
+#: src/nntplib.c:865
 #, fuzzy, c-format
-msgid	"Resend last command (%s)\n"
-msgstr	"Son komutu tekrr yolla (%s)\n"
+msgid   "Resend last command (%s)\n"
+msgstr  "Son komutu tekrr yolla (%s)\n"
 
-#.
-#. * TODO: - store a hash value of the entire motd in the server-rc
-#. *         and only if it differs from the old value display the
-#. *         motd?
-#. *       - use some sort of pager?
-#. *       - -> lang.c
-#.
-#: src/nntplib.c:1769
-msgid	"MOTD: "
-msgstr	""
+#: src/nntplib.c:1494
+msgid   "CAPABILITIES did not announce READER"
+msgstr  ""
 
-#: src/nrctbl.c:170
+#: src/nntplib.c:1979
+msgid   "MOTD: "
+msgstr  ""
+
+#: src/nrctbl.c:175
 #, c-format
-msgid	"couldn't expand %s\n"
-msgstr	"%s geniþletilemedi\n"
+msgid   "couldn't expand %s\n"
+msgstr  "%s geniþletilemedi\n"
 
-#: src/post.c:1171
+#: src/post.c:1307
 #, 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	""
+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:1312
 #, 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	""
+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:1314
 #, c-format
-msgid	"Line %d is longer than 998 octets, and should be folded, but\n"
-	"encoding is not set to %s\n"
-msgstr	""
+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:2278
 #, fuzzy, c-format
-msgid	"Posting: %.*s ..."
-msgstr	"Gönderiliyor: %.*s ..."
+msgid   "Posting: %.*s ..."
+msgstr  "Gönderiliyor: %.*s ..."
 
 #. Check if okay to read
-#: src/read.c:211
-msgid	"Aborting read, please wait..."
-msgstr	"Okuma durduruluyor, lütfen bekleyin..."
+#: src/read.c:197
+msgid   "Aborting read, please wait..."
+msgstr  "Okuma durduruluyor, lütfen bekleyin..."
 
-#: src/read.c:358
-msgid	"Aborted read\n"
-msgstr	"Okuma durduruldu\n"
+#: src/read.c:344
+msgid   "Aborted read\n"
+msgstr  "Okuma durduruldu\n"
 
-#: src/read.c:414
+#: src/read.c:399
 #, fuzzy
-msgid	"Draining\n"
-msgstr	"Akaçlanma\n"
+msgid   "Draining\n"
+msgstr  "Akaçlanma\n"
 
-#. Don't hash the initial '<'
-#: src/refs.c:251
+#: src/refs.c:232
 #, fuzzy
-msgid	"unchanged"
-msgstr	"deðiþtirilmedi"
+msgid   "unchanged"
+msgstr  "deðiþtirilmedi"
 
-#: src/refs.c:609
+#: src/refs.c:599
 #, fuzzy
-msgid	"[- Unavailable -]"
-msgstr	"[- Kullanýlamýyor -]"
+msgid   "[- Unavailable -]"
+msgstr  "[- Kullanýlamýyor -]"
 
 #.
 #. * preamble
 #. * TODO: -> lang.c
 #.
-#: src/rfc2047.c:1201
+#: src/rfc2047.c:1287
 #, c-format
-msgid	"This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
-	"are reading this prefix, your mail reader probably has not yet been modified\n"
-	"to understand the new format, and some of what follows may look strange.\n"
-	"\n"
-msgstr	""
-
-#: src/save.c:972
-msgid	"bytes"
-msgstr	"bayt"
-
-#: src/select.c:379
-msgid	"unread"
-msgstr	"okunmamýþ"
-
-#: src/select.c:379
-msgid	"all"
-msgstr	"Hepsi"
-
-#: src/select.c:549 src/select.c:551
-msgid	" R"
-msgstr	" R"
+msgid   "This message has been composed in the 'multipart/mixed' MIME-format. If you\n"
+        "are reading this prefix, your mail reader probably has not yet been modified\n"
+        "to understand the new format, and some of what follows may look strange.\n"
+        "\n"
+msgstr  ""
+
+#: src/save.c:1045
+msgid   "bytes"
+msgstr  "bayt"
+
+#: src/select.c:378
+msgid   "unread"
+msgstr  "okunmamýþ"
+
+#: src/select.c:378
+msgid   "all"
+msgstr  "Hepsi"
+
+#: src/select.c:554 src/select.c:556
+msgid   " R"
+msgstr  " R"
+
+#: src/xface.c:70
+#, fuzzy
+msgid   "Can't run slrnface: Not running in a xterm."
+msgstr  "Slrnface çalýþtýrýlamýyor: fifo isim oluþturulamadý."
 
 #  TODO: use tin global 'homedir' instead? or even rcdir?
-#. TODO: use tin global 'homedir' instead? or even rcdir?
-#: src/xface.c:91
+#: src/xface.c:82 src/xface.c:93 src/xface.c:102
 #, c-format
-msgid	"Can't run slrnface: Environment variable %s not found."
-msgstr	"Slrnface çalýþtýrýlamýyor: Çevre deðiþkeni %s bulunamadý."
+msgid   "Can't run slrnface: Environment variable %s not found."
+msgstr  "Slrnface çalýþtýrýlamýyor: Çevre deðiþkeni %s bulunamadý."
 
-#: src/xface.c:99 src/xface.c:131
+#: src/xface.c:111 src/xface.c:143
 #, fuzzy, c-format
-msgid	"Can't run slrnface: failed to create %s"
-msgstr	"Slrnface çalýþtýrýlamýyor: yaratým baþarýsýz %s"
-
-#: src/xface.c:109
-#, fuzzy
-msgid	"This directory is used to create named pipes for communication between\n"
-	"slrnface and its parent process. It should normally be empty because\n"
-	"the pipe is deleted right after it has been opened by both processes.\n"
-	"\n"
-	"File names generated by slrnface have the form \"hostname.pid\". It is\n"
-	"probably an error if they linger here longer than a fraction of a second.\n"
-	"\n"
-	"However, if the directory is mounted from an NFS server, you might see\n"
-	"special files created by your NFS server while slrnface is running.\n"
-	"Do not try to remove them.\n"
-msgstr	"Bu dizin slrnface ve ana iþlem arasýndaki iletiþimi saðlayan adý konmuþ\n"
-	" kanallarý yaratmak için kullanýlmaktadýr. Normalde boþ olmalý çünkü\n"
-	" kanal her iki iþlem tarafýndan açýldýktan hemen sonra silinir.\n"
-	"\n"
-	"Slrnface tarafýndan oluþturulan dosya isimleri þu biçimdedir: hostname.pid\". "
-	"Bu\n"
-	" muhtemelen saniyenin onda birinden bile fazla kalýnca oluþan bir hatadýr.\n"
-	"\n"
-	"Ancak dizin eðer NFS sunucusundan kurulduysa, slrnface çalýþýrken\n"
-	"NFS sunucunuzun yarattýðý özel dosyalari görebilirsiniz.\n"
-	"Kaldýrmaya çalýþmayýnýz.\n"
-
-#: src/xface.c:123
-#, fuzzy
-msgid	"Can't run slrnface: couldn't construct fifo name."
-msgstr	"Slrnface çalýþtýrýlamýyor: fifo isim oluþturulamadý."
-
-#: src/xface.c:162
+msgid   "Can't run slrnface: failed to create %s"
+msgstr  "Slrnface çalýþtýrýlamýyor: yaratým baþarýsýz %s"
+
+#: src/xface.c:121
+#, fuzzy
+msgid   "This directory is used to create named pipes for communication between\n"
+        "slrnface and its parent process. It should normally be empty because\n"
+        "the pipe is deleted right after it has been opened by both processes.\n"
+        "\n"
+        "File names generated by slrnface have the form \"hostname.pid\". It is\n"
+        "probably an error if they linger here longer than a fraction of a second.\n"
+        "\n"
+        "However, if the directory is mounted from an NFS server, you might see\n"
+        "special files created by your NFS server while slrnface is running.\n"
+        "Do not try to remove them.\n"
+msgstr  "Bu dizin slrnface ve ana iþlem arasýndaki iletiþimi saðlayan adý konmuþ\n"
+        " kanallarý yaratmak için kullanýlmaktadýr. Normalde boþ olmalý çünkü\n"
+        " kanal her iki iþlem tarafýndan açýldýktan hemen sonra silinir.\n"
+        "\n"
+        "Slrnface tarafýndan oluþturulan dosya isimleri þu biçimdedir: hostname.pid\". "
+        "Bu\n"
+        " muhtemelen saniyenin onda birinden bile fazla kalýnca oluþan bir hatadýr.\n"
+        "\n"
+        "Ancak dizin eðer NFS sunucusundan kurulduysa, slrnface çalýþýrken\n"
+        "NFS sunucunuzun yarattýðý özel dosyalari görebilirsiniz.\n"
+        "Kaldýrmaya çalýþmayýnýz.\n"
+
+#: src/xface.c:135
+#, fuzzy
+msgid   "Can't run slrnface: couldn't construct fifo name."
+msgstr  "Slrnface çalýþtýrýlamýyor: fifo isim oluþturulamadý."
+
+#: src/xface.c:174
 #, fuzzy, c-format
-msgid	"Slrnface abnormally exited, code %d."
-msgstr	"Slrnface beklenmedik þekilde sonlandýrýldý, kod %d."
+msgid   "Slrnface abnormally exited, code %d."
+msgstr  "Slrnface beklenmedik þekilde sonlandýrýldý, kod %d."
 
-#: src/xface.c:206
+#: src/xface.c:218
 #, fuzzy, c-format
-msgid	"Slrnface failed: %s."
-msgstr	"Slrnface baþarýsýz: %s."
+msgid   "Slrnface failed: %s."
+msgstr  "Slrnface baþarýsýz: %s."
+
+#, fuzzy
+#~ msgid        "mark selected articles as read"
+#~ msgstr       "makaleyi okunmamýþ olarak iþaretle"
+
+#, fuzzy
+#~ msgid        "Mark %s=tagged articles, %s=current article, %s=quit: "
+#~ msgstr       "Ýþaretle %s=etiketlenen makaleler, %s=mevcut makale, %s=çýk: "
+
+#, fuzzy
+#~ 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: "
+
+#, fuzzy
+#~ msgid        "Thread range"
+#~ msgstr       "en küçük yürütme birimi aralýðý"
+
+#, fuzzy
+#~ msgid        "Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."
+#~ msgstr       "Mektup kopyasý otomatik olarak kendine gönder. <SPACE> toggles & <CR> "
+#~      "sets."
+
+#, 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"
+
+#, fuzzy
+#~ msgid        "Send you a blind carbon copy automatically. <SPACE> toggles & <CR> "
+#~      "sets."
+#~ msgstr       "Gizli mektup kopyasý otomatik olarak kendine gönder."
+
+#, fuzzy
+#~ msgid        "Send you a blind cc automatically"
+#~ msgstr       "Gizli mektup kopyasý otomatik olarak kendine gönder"
+
+#, 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"
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/Makefile.in tin-2.0.0/src/Makefile.in
--- tin-1.8.3/src/Makefile.in	2006-05-04 10:19:04.000000000 +0200
+++ tin-2.0.0/src/Makefile.in	2011-05-03 15:20:34.645890152 +0200
@@ -1,9 +1,9 @@
 # Source Makefile for tin
 # - for configuration options read the ../doc/INSTALL file.
 #
-# Updated: 2005-07-02
+# Updated: 2011-05-03
 #
-# Copyright (c) 1995-2005 Thomas E. Dickey <dickey@invisible-island.net>
+# Copyright (c) 1995-2011 Thomas E. Dickey <dickey@invisible-island.net>
 # All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -50,13 +50,13 @@ PRELIB		= @LIB_PREFIX@
 x		= @EXEEXT@
 o		= .@OBJEXT@
 
-DEBUG		= @ENABLE_DEBUG@ -DDEBUG #-DDEBUG_NEWSRC -DPROFILE -DDEBUG_REFS
-CANLOCK		= # -DUSE_CANLOCK # -DEVIL_INSIDE
+DEBUG		= @ENABLE_DEBUG@ -DDEBUG #-DPROFILE
+FEATURES	= # -DEVIL_INSIDE
 
 INTL_CPPFLAGS	= -DLOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\"
 PCRE_CPPFLAGS	= @PCREDIR_CPPFLAGS@ @PCREDIR_MAKE@ -I$(top_builddir)/pcre -I$(top_srcdir)/pcre
 
-CPPFLAGS	= @DEFS@ -I. -I../include $(PCRE_CPPFLAGS) $(INTL_CPPFLAGS) -I$(INCDIR) $(DEBUG) $(CANLOCK) @CPPFLAGS@
+CPPFLAGS	= @DEFS@ -I. -I../include $(PCRE_CPPFLAGS) $(INTL_CPPFLAGS) -I$(INCDIR) $(DEBUG) $(FEATURES) @CPPFLAGS@
 CFLAGS		= @CFLAGS@
 
 LDFLAGS		= @LDFLAGS@
@@ -69,11 +69,11 @@ BUILD_LDFLAGS	= @BUILD_LDFLAGS@
 BUILD_LIBS	= @BUILD_LIBS@
 X		= $(BUILD_EXEEXT)
 
-CANLIB		= # -L../libcanlock -lcanlock
+CANLIB		= @CANLIBS@
 INTL_LIBS	= @INTLLIBS@
 PCRE_LIBS	= @PCREDIR_LIBS@ @PCREDIR_MAKE@ -L../pcre -lpcre
 LIBS		= @LIBS@
-LINK_LIBS	= $(PCRE_LIBS) $(CANLIB) @LIBS@ @INN_NNTPLIB@ $(INTL_LIBS)
+LINK_LIBS	= $(PCRE_LIBS) $(CANLIB) @LIBS@ $(INTL_LIBS)
 
 # Where do you want the binary & manual page installed?
 DESTDIR	= @DESTDIR@
@@ -84,7 +84,8 @@ INS_MANUAL_EXT	= 1
 INS_OLD_SUFFIX	= old
 
 # Project
-PROJECT	= @PACKAGE@
+PROJECT	= `echo @PACKAGE@|sed '@program_transform_name@'`
+PROJEXE = $(PROJECT)$x
 EXE	= @PACKAGE@$x
 VER	= @VERSION@
 
@@ -118,6 +119,7 @@ HFILES	= \
 	../include/autoconf.h \
 	$(INCDIR)/bool.h \
 	$(INCDIR)/bugrep.h \
+	$(INCDIR)/debug.h \
 	$(INCDIR)/extern.h \
 	$(INCDIR)/keymap.h \
 	$(INCDIR)/newsrc.h \
@@ -131,7 +133,6 @@ HFILES	= \
 	$(INCDIR)/tinrc.h \
 	$(INCDIR)/tnntp.h \
 	$(INCDIR)/version.h
-#	$(INCDIR)/config.h
 
 CFILES	= \
 	$(SRCDIR)/active.c \
@@ -155,6 +156,7 @@ CFILES	= \
 	$(SRCDIR)/help.c \
 	$(SRCDIR)/inews.c \
 	$(SRCDIR)/init.c \
+	$(SRCDIR)/joinpath.c \
 	$(SRCDIR)/keymap.c \
 	$(SRCDIR)/lang.c \
 	$(SRCDIR)/langinfo.c \
@@ -205,7 +207,8 @@ EXTRAOBJS = @EXTRAOBJS@
 EXTRA_INTLLIBS = @INTLDIR_MAKE@ @INTLLIBS@
 EXTRA_PCREHDRS = @PCREDIR_MAKE@ ../pcre/pcre.h
 EXTRA_PCRELIBS = @PCREDIR_MAKE@ ../pcre/$(PRELIB)pcre.a
-EXTRALIBS = $(EXTRA_INTLLIBS) $(EXTRA_PCRELIBS)
+EXTRA_CANLIBS = @CANDIR_MAKE@ ../libcanlock/$(PRELIB)canlock.a
+EXTRALIBS = $(EXTRA_INTLLIBS) $(EXTRA_PCRELIBS) $(EXTRA_CANLIBS)
 
 OFILES	= @ALLOCA@ $(EXTRAOBJS) \
 	$(OBJDIR)/active$o \
@@ -275,23 +278,20 @@ OFILES	= @ALLOCA@ $(EXTRAOBJS) \
 	$(OBJDIR)/xface$o \
 	$(OBJDIR)/xref$o
 
-ALL_FILES = $(HFILES) $(CFILES) $(NNTP)
+ALL_FILES = $(HFILES) $(CFILES)
 
-LINTFLAGS = -a -c -h -n -x $(CPPFLAGS) -I/usr/local/include/ \
-	-DUSE_ISO2ASC=\"2\" \
-	-DHAVE_ISPELL \
-	-DHAVE_COLOR
+LINTFLAGS = @LINTFLAGS@ $(CPPFLAGS)
 
 all : $(BINDIR)/$(EXE)
 
 .SUFFIXES : .i
 
 .c$o :
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c $(srcdir)/$*.c
 
 .c.i :
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(CPP) -C $(CPPFLAGS) $*.c >$@
 
 # explicit rules to allow running lint, and to accommodate older 'make' programs
@@ -299,7 +299,7 @@ $(OBJDIR)/parsdate$o : $(SRCDIR)/parsdat
 	@$(ECHO) "expect 6 shift/reduce conflicts ..."
 	$(YACC) $(SRCDIR)/parsdate.y
 	$(MV) -f y.tab.c $(OBJDIR)/parsdate.c
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(CC) $(CPPFLAGS) $(CFLAGS) -c $(OBJDIR)/parsdate.c
 
 $(OBJDIR)/parsdate.c : $(SRCDIR)/parsdate.y
@@ -329,7 +329,7 @@ $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_
 $(DESTDIR)$(INS_MANUAL_DIR)5 \
 $(DESTDIR)$(INS_BINARY_DIR) \
 $(DESTDIR)$(INS_SYSDEF_DIR) :
-	$(top_srcdir)/mkdirs.sh $@
+	mkdir -p $@
 
 install_manpage : $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT) $(DESTDIR)$(INS_MANUAL_DIR)5
 	@$(ECHO) "Installing $(PROJECT) manual pages to $(DESTDIR)$(INS_MANUAL_DIR) ..."
@@ -361,37 +361,40 @@ uninstall_sysdefs :
 
 install_helpers : $(DESTDIR)$(INS_BINARY_DIR) $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)
 	@$(ECHO) "Installing helper applications ..."
-	@-if test ! -f $(DESTDIR)$(INS_BINARY_DIR)/url_handler.sh ; then $(INSTALL) -m 755 $(TOLDIR)/url_handler.sh $(DESTDIR)$(INS_BINARY_DIR)/url_handler.sh ; fi
 	@-if test ! -f $(DESTDIR)$(INS_BINARY_DIR)/metamutt ; then $(INSTALL) -m 755 $(TOLDIR)/metamutt $(DESTDIR)$(INS_BINARY_DIR)/metamutt ; fi
 	@$(INSTALL) -m 755 $(TOLDIR)/w2r.pl $(DESTDIR)$(INS_BINARY_DIR)/w2r.pl
 	@$(INSTALL) -m 755 $(TOLDIR)/opt-case.pl $(DESTDIR)$(INS_BINARY_DIR)/opt-case.pl
 	@$(INSTALL) -m 755 $(TOLDIR)/tinews.pl $(DESTDIR)$(INS_BINARY_DIR)/tinews.pl
+	@$(INSTALL) -m 755 $(TOLDIR)/url_handler.pl $(DESTDIR)$(INS_BINARY_DIR)/url_handler.pl
 	@$(INSTALL) -m 444 $(DOCDIR)/w2r.1 $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/w2r.pl.$(INS_MANUAL_EXT)
 	@$(INSTALL) -m 444 $(DOCDIR)/opt-case.1 $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/opt-case.pl.$(INS_MANUAL_EXT)
 	@$(INSTALL) -m 444 $(DOCDIR)/tinews.1 $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/tinews.pl.$(INS_MANUAL_EXT)
+	@$(INSTALL) -m 444 $(DOCDIR)/url_handler.1 $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/url_handler.pl.$(INS_MANUAL_EXT)
 
 uninstall_helpers :
 	@$(ECHO) "Removing helper applications ..."
 	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/w2r.pl
 	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/opt-case.pl
 	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/tinews.pl
+	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/url_handler.pl
 	@-$(RM) -f $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/w2r.pl.$(INS_MANUAL_EXT)
 	@-$(RM) -f $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/opt-case.pl.$(INS_MANUAL_EXT)
 	@-$(RM) -f $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/tinews.pl.$(INS_MANUAL_EXT)
+	@-$(RM) -f $(DESTDIR)$(INS_MANUAL_DIR)$(INS_MANUAL_EXT)/url_handler.pl.$(INS_MANUAL_EXT)
 
 install : $(DESTDIR)$(INS_BINARY_DIR)
 	@$(MAKE) all
-	@$(ECHO) "Installing $(EXE) v$(VER) to $(DESTDIR)$(INS_BINARY_DIR) ..."
-	@$(INSTALL) -s $(BINDIR)/$(EXE) $(DESTDIR)$(INS_BINARY_DIR)/$(EXE)
-	@( $(CD) $(DESTDIR)$(INS_BINARY_DIR) && $(RM) -f r$(EXE) && $(LN) $(EXE) r$(EXE) )
+	@$(ECHO) "Installing $(EXE) v$(VER) to $(DESTDIR)$(INS_BINARY_DIR)/$(PROJEXE) ..."
+	@$(INSTALL) -s $(BINDIR)/$(EXE) $(DESTDIR)$(INS_BINARY_DIR)/$(PROJEXE)
+	@( $(CD) $(DESTDIR)$(INS_BINARY_DIR) && $(RM) -f r$(PROJEXE) && $(LN) $(PROJEXE) r$(PROJEXE) )
 	@$(MAKE) install_helpers
 	@$(MAKE) install_manpage
 @MSG_DIR_MAKE@	@$(MAKE) install_nls
 
 uninstall :
-	@$(ECHO) "Uninstalling $(EXE) in $(DESTDIR)$(INS_BINARY_DIR) ..."
-	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/$(EXE)
-	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/r$(EXE)
+	@$(ECHO) "Uninstalling $(PROJEXE) in $(DESTDIR)$(INS_BINARY_DIR) ..."
+	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/$(PROJEXE)
+	@-$(RM) -f $(DESTDIR)$(INS_BINARY_DIR)/r$(PROJEXE)
 	@$(MAKE) uninstall_helpers
 	@$(MAKE) uninstall_manpage
 @MSG_DIR_MAKE@	@$(MAKE) uninstall_nls
@@ -414,13 +417,13 @@ TAGS :
 
 lint :	$(CFILES) $(OBJDIR)/parsdate.c tincfg.h options_menu.h
 	@$(ECHO) "Linting source (results in ./LINT) ..."
-	@$(LINT) $(LINTFLAGS) -DNNTP_ABLE `$(LS) $(CFILES)|$(SED) -e 's/\.y/.c/'` $(LIBS) > LINT
+	@$(LINT) $(LINTFLAGS) `$(ECHO) $(CFILES)|$(SED) -e 's/\.y/.c/'` $(LIBS) 1>LINT 2>&1
 
 clean :
 	@$(ECHO) "Cleaning ..."
 	@-$(RM) -f $(OFILES)
 	@-$(RM) -f $(OBJDIR)/parsdate.c
-	@-$(RM) -f LINT *.ln *.out
+	@-$(RM) -f LINT *.ln *.out trace
 	@-$(RM) -f makecfg$X makecfg$o tincfg.h options_menu.h
 	@-$(RM) -f core *~
 	@-$(RM) -f $(EXE)
@@ -435,24 +438,20 @@ dirty :
 distclean \
 clobber :: clean
 	@$(ECHO) "Clobbering ..."
-	@-$(RM) -f $(OFILES) $(BINDIR)/$(EXE) tags TAGS LINT cflow.$(PROJECT)
+	@-$(RM) -f $(OFILES) $(BINDIR)/$(EXE) tags TAGS LINT cflow.$(PACKAGE)
 
 distclean ::
 @INTLDIR_MAKE@	@-$(CD) ../intl && $(MAKE) @cf_cv_makeflags@ $@
 @MSG_DIR_MAKE@	@-$(CD) ../po && $(MAKE) @cf_cv_makeflags@ clean
 
 cflow :
-	@$(ECHO) "Creating cflow for $(PROJECT) ..."
-@PCREDIR_MAKE@	@$(CFLOW) -I$(INCDIR) -I$(SRCDIR) -I../pcre $(CFILES) > cflow.$(PROJECT)
+	@$(ECHO) "Creating cflow for $(PACKAGE) ..."
+@PCREDIR_MAKE@	@$(CFLOW) -I$(INCDIR) -I$(SRCDIR) -I../pcre $(CFILES) > cflow.$(PACKAGE)
 
 cscope :
-	@$(ECHO) "Creating cscope database $(PROJECT) ..."
+	@$(ECHO) "Creating cscope database $(PACKAGE) ..."
 	@$(CSCOPE) $(ALL_FILES)
 
-canlock :
-	@$(ECHO) "Building libcanlock ..."
-	@$(CD) ../libcanlock && ./Build
-
 @PCREDIR_MAKE@../pcre/pcre.h ../pcre/$(PRELIB)pcre.a :
 @PCREDIR_MAKE@	@$(ECHO) "Building Philip Hazel's Perl regular expressions library ..."
 @PCREDIR_MAKE@	@$(CD) ../pcre && $(MAKE) @cf_cv_makeflags@ $(PRELIB)pcre.a
@@ -461,6 +460,10 @@ canlock :
 @INTLDIR_MAKE@	@$(ECHO) "Building GNU gettext library ..."
 @INTLDIR_MAKE@	@$(CD) ../intl && $(MAKE) @cf_cv_makeflags@
 
+@CANDIR_MAKE@../libcanlock/$(PRELIB)canlock.a :
+@CANDIR_MAKE@	@$(ECHO) "Building Cancel-Lock library ..."
+@CANDIR_MAKE@	@$(CD) ../libcanlock && $(MAKE) @cf_cv_makeflags@ lib
+
 options_menu.h :		$(SRCDIR)/tincfg.tbl \
 				makecfg$X
 	./makecfg $(SRCDIR)/tincfg.tbl tincfg.h
@@ -473,7 +476,7 @@ makecfg$X :			$(SRCDIR)/makecfg.c \
 				Makefile \
 				$(INCDIR)/tin.h \
 				../include/autoconf.h
-@SHOW_CC@
+	@SHOW_CC@
 	@ECHO_CC@$(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $(BUILD_LDFLAGS) -o $@ $(SRCDIR)/makecfg.c #$(BUILD_LIBS)
 
 TIN_DEP	= \
@@ -483,6 +486,7 @@ TIN_DEP	= \
 	$(INCDIR)/tinrc.h \
 	../include/autoconf.h \
 	$(INCDIR)/bool.h \
+	$(INCDIR)/debug.h \
 	$(INCDIR)/extern.h \
 	$(INCDIR)/nntplib.h \
 	$(INCDIR)/tcurses.h \
@@ -490,6 +494,7 @@ TIN_DEP	= \
 
 $(OBJDIR)/active$o :		$(SRCDIR)/active.c $(TIN_DEP)
 $(OBJDIR)/art$o :		$(SRCDIR)/art.c $(TIN_DEP) \
+				$(INCDIR)/newsrc.h \
 				$(INCDIR)/stpwatch.h
 $(OBJDIR)/attrib$o :		$(SRCDIR)/attrib.c $(TIN_DEP) \
 				$(INCDIR)/version.h
@@ -610,3 +615,4 @@ $(OBJDIR)/wildmat$o :		$(SRCDIR)/wildmat
 $(OBJDIR)/xface$o :		$(SRCDIR)/xface.c $(TIN_DEP)
 $(OBJDIR)/xref$o :		$(SRCDIR)/xref.c $(TIN_DEP) \
 				$(INCDIR)/newsrc.h
+@EXTRAO_DEP@$(EXTRAOBJS) :	$(TIN_DEP)
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/active.c tin-2.0.0/src/active.c
--- tin-1.8.3/src/active.c	2005-12-02 12:07:35.000000000 +0100
+++ tin-2.0.0/src/active.c	2011-04-30 23:32:42.656073695 +0200
@@ -3,10 +3,10 @@
  *  Module    : active.c
  *  Author    : I. Lea
  *  Created   : 1992-02-16
- *  Updated   : 2004-06-30
+ *  Updated   : 2011-04-24
  *  Notes     :
  *
- * Copyright (c) 1992-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1992-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -43,16 +43,17 @@
 #endif /* !TCURSES_H */
 
 /*
- * List of allowed seperator chars in active file
- * unsed in parse_active_line()
+ * List of allowed separator chars in active file
+ * unused in parse_active_line()
  */
 #define ACTIVE_SEP	" \n"
 
-/*
- * if you are using C-News nntpd set NUM_SIMULTANEOUS_GROUP_COMMAND to 1
- */
 #ifdef NNTP_ABLE
-#	define NUM_SIMULTANEOUS_GROUP_COMMAND 50
+#	ifdef DISABLE_PIPELINING
+#		define NUM_SIMULTANEOUS_GROUP_COMMAND 1
+#	else
+#		define NUM_SIMULTANEOUS_GROUP_COMMAND 50
+#	endif /* DISABLE_PIPELINING */
 #endif /* NNTP_ABLE */
 
 t_bool force_reread_active_file = FALSE;
@@ -64,14 +65,17 @@ static time_t active_timestamp;	/* time 
  */
 static FILE *open_newgroups_fp(int idx);
 static FILE *open_news_active_fp(void);
+static int check_for_any_new_groups(void);
 static void active_add(struct t_group *ptr, long count, long max, long min, const char *moderated);
 static void append_group_line(char *active_file, char *group_path, long art_max, long art_min, char *base_dir);
-static void check_for_any_new_groups(void);
-static void make_group_list(char *active_file, char *base_dir, char *group_path);
-static void make_group_name(char *base_dir, char *group_name, char *group_path);
+static void make_group_list(char *active_file, char *base_dir, char *fixed_base, char *group_path);
 static void read_active_file(void);
 static void read_newsrc_active_file(void);
 static void subscribe_new_group(char *group, char *autosubscribe, char *autounsubscribe);
+#ifdef NNTP_ABLE
+	static t_bool parse_count_line(char *line, long *max, long *min, long *count, char *moderated);
+	static void read_active_counts(void);
+#endif /* NNTP_ABLE */
 
 
 t_bool
@@ -120,7 +124,7 @@ resync_active_file(
 	else
 		toggle_my_groups(old_group);
 
-	FreeAndNull(old_group);
+	FreeIfNeeded(old_group);
 	show_selection_page();
 
 	return TRUE;
@@ -193,7 +197,7 @@ process_bogus(
 	active_add(ptr, 0L, 1L, 0L, "n");
 	ptr->bogus = TRUE;		/* Mark it bogus */
 
-	if (my_group_add(name) < 0)
+	if (my_group_add(name, FALSE) < 0)
 		return TRUE;
 
 	return FALSE;		/* Nothing was printed yet */
@@ -210,18 +214,27 @@ parse_active_line(
 	long *min,
 	char *moderated)
 {
-	char *p, *q, *r;
+	char *p = NULL, *q = NULL, *r = NULL;
+	t_bool lineok = FALSE;
 
 	if (line[0] == '#' || line[0] == '\0')
 		return FALSE;
 
-	(void) strtok(line, ACTIVE_SEP);		/* skip group name */
-	p = strtok(NULL, ACTIVE_SEP);	/* group max count */
-	q = strtok(NULL, ACTIVE_SEP);	/* group min count */
-	r = strtok(NULL, ACTIVE_SEP);	/* mod status or path to mailgroup */
+	if (strtok(line, ACTIVE_SEP)) {		/* skip group name */
+		if ((p = strtok(NULL, ACTIVE_SEP))) {	/* group max count */
+			if ((q = strtok(NULL, ACTIVE_SEP))) {	/* group min count */
+				r = strtok(NULL, ACTIVE_SEP);	/* mod status or path to mailgroup */
+				lineok = TRUE;
+			}
+		}
+	}
 
-	if (!p || !q || !r) {
-		error_message(_(txt_bad_active_file), line);
+	if (!p || !q || !r || !lineok) {
+#ifdef DEBUG
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", txt_bad_active_file, line);
+#endif /* DEBUG */
+		error_message(2, _(txt_bad_active_file), line);
 		return FALSE;
 	}
 
@@ -233,6 +246,56 @@ parse_active_line(
 }
 
 
+#ifdef NNTP_ABLE
+/*
+ * Parse line from "LIST COUNTS"
+ * group high low count status, i.e.:
+ * trigofacile.test 326 6 297 y
+ */
+static t_bool
+parse_count_line(
+	char *line,
+	long *max,
+	long *min,
+	long *count,
+	char *moderated)
+{
+	char *p = NULL, *q = NULL, *r = NULL, *s = NULL;
+	t_bool lineok = FALSE;
+
+	if (line[0] == '#' || line[0] == '\0')
+		return FALSE;
+
+	if (strtok(line, ACTIVE_SEP)) {		/* skip group name */
+		if ((p = strtok(NULL, ACTIVE_SEP))) {	/* group max */
+			if ((q = strtok(NULL, ACTIVE_SEP))) {	/* group min */
+				if ((r = strtok(NULL, ACTIVE_SEP))) { /* group count */
+					s = strtok(NULL, ACTIVE_SEP);	/* mod status or path to mailgroup */
+					lineok = TRUE;
+				}
+			}
+		}
+	}
+
+	if (!p || !q || !r || !s || !lineok) {
+#	ifdef DEBUG
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", _(txt_unparseable_counts), line);
+#	endif /* DEBUG */
+		error_message(2, _(txt_unparseable_counts), line);
+		return FALSE;
+	}
+
+	*max = atol(p);
+	*min = atol(q);
+	*count = atol(r);
+	strcpy(moderated, s);
+
+	return TRUE;
+}
+#endif /* NNTP_ABLE */
+
+
 /*
  * Load the active information into active[] by counting the min/max/count
  * for each news group.
@@ -256,6 +319,7 @@ read_newsrc_active_file(
 	static char ngname[NNTP_STRLEN];
 	struct t_group *grpptr;
 #ifdef NNTP_ABLE
+	t_bool need_auth = FALSE;
 	char *ngnames[NUM_SIMULTANEOUS_GROUP_COMMAND];
 	int index_i = 0;
 	int index_o = 0;
@@ -273,7 +337,7 @@ read_newsrc_active_file(
 		return;
 	}
 
-	if (!batch_mode)
+	if (!batch_mode || verbose)
 		wait_message(0, _(txt_reading_news_newsrc_file));
 
 	while ((ptr = tin_fgets(fp, FALSE)) != NULL || window != 0) {
@@ -293,22 +357,23 @@ read_newsrc_active_file(
 			ptr = ngname;
 		}
 
-		if (read_news_via_nntp) {
+		if (read_news_via_nntp && !read_saved_news) {
 #ifdef NNTP_ABLE
 			char buf[NNTP_STRLEN];
 			char line[NNTP_STRLEN];
-			if (window < NUM_SIMULTANEOUS_GROUP_COMMAND && ptr) {
+			if (window < NUM_SIMULTANEOUS_GROUP_COMMAND && ptr && (!list_active || (newsrc_active && list_active && group_find(ptr, FALSE)))) {
 				ngnames[index_i] = my_strdup(ptr);
 				snprintf(buf, sizeof(buf), "GROUP %s", ngnames[index_i]);
 #	ifdef DEBUG
-				debug_nntp("read_newsrc_active_file", buf);
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "read_newsrc_active_file() %s", buf);
 #	endif /* DEBUG */
 				put_server(buf);
 				index_i = (index_i + 1) % NUM_SIMULTANEOUS_GROUP_COMMAND;
 				window++;
 			}
 			if (window == NUM_SIMULTANEOUS_GROUP_COMMAND || ptr == NULL) {
-				int respcode = get_respcode(line, sizeof(line));
+				int respcode = get_only_respcode(line, sizeof(line));
 
 				if (reconnected_in_last_get_server) {
 					/*
@@ -322,7 +387,8 @@ read_newsrc_active_file(
 					for (i = 0; i < window - 1; i++) {
 						snprintf(buf, sizeof(buf), "GROUP %s", ngnames[j]);
 #	ifdef DEBUG
-						debug_nntp("read_newsrc_active_file", buf);
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "read_newsrc_active_file() %s", buf);
 #	endif /* DEBUG */
 						put_server(buf);
 						j = (j + 1) % NUM_SIMULTANEOUS_GROUP_COMMAND;
@@ -342,10 +408,20 @@ read_newsrc_active_file(
 							char fmt[20];
 
 							snprintf(fmt, sizeof(fmt), "%%ld %%ld %%ld %%%ds", NNTP_STRLEN);
-							if (sscanf(line, fmt, &count, &min, &max, ngname) != 4)
-								error_message(_(txt_error_invalid_response_to_group), line);
-							if (strcmp(ngname, ngnames[index_o]) != 0)
-								error_message(_(txt_error_wrong_newsgroupname_in_group_response), line, ngnames[index_o]);
+							if (sscanf(line, fmt, &count, &min, &max, ngname) != 4) {
+								error_message(2, _(txt_error_invalid_response_to_group), line);
+#	ifdef DEBUG
+								if (debug & DEBUG_NNTP) /* TODO: -> lang.c */
+									debug_print_file("NNTP", "Invalid response to \"GROUP %s\": \"%s\"", ngnames[index_o], line);
+#	endif /* DEBUG */
+							}
+							if (strcmp(ngname, ngnames[index_o]) != 0) {
+								error_message(2, _(txt_error_wrong_newsgroupname_in_group_response), ngname, ngnames[index_o], line);
+#	ifdef DEBUG
+								if (debug & DEBUG_NNTP) /* TODO: -> lang.c */
+									debug_print_file("NNTP", "Groupname mismatch in response to \"GROUP %s\": \"%s\"", ngnames[index_o], line);
+#	endif /* DEBUG */
+							}
 							ptr = ngname;
 							free(ngnames[index_o]);
 							index_o = (index_o + 1) % NUM_SIMULTANEOUS_GROUP_COMMAND;
@@ -353,6 +429,12 @@ read_newsrc_active_file(
 							break;
 						}
 
+					case ERR_NOAUTH:
+					case NEED_AUTHINFO:
+						need_auth = TRUE; /* delay auth till end of loop */
+						/* keep lint quiet: */
+						/* FALLTHROUGH */
+
 					case ERR_NOGROUP:
 						free(ngnames[index_o]);
 						index_o = (index_o + 1) % NUM_SIMULTANEOUS_GROUP_COMMAND;
@@ -360,14 +442,15 @@ read_newsrc_active_file(
 						continue;
 
 					case ERR_ACCESS:
-						error_message("%s%s", cCRLF, line);
+						error_message(2, "%s%s", cCRLF, line);
 						tin_done(NNTP_ERROR_EXIT);
 						/* keep lint quiet: */
 						/* FALLTHROUGH */
 
 					default:
 #	ifdef DEBUG
-						debug_nntp("NOT_OK", line);
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "NOT_OK %s", line);
 #	endif /* DEBUG */
 						free(ngnames[index_o]);
 						index_o = (index_o + 1) % NUM_SIMULTANEOUS_GROUP_COMMAND;
@@ -395,7 +478,7 @@ read_newsrc_active_file(
 		if ((grpptr = group_add(ptr)) == NULL) {
 			t_bool changed = FALSE;
 
-			if ((grpptr = group_find(ptr)) == NULL)
+			if ((grpptr = group_find(ptr, FALSE)) == NULL)
 				continue;
 
 			if (max > grpptr->xmax) {
@@ -419,6 +502,15 @@ read_newsrc_active_file(
 		active_add(grpptr, count, max, min, moderated);
 	}
 
+#ifdef NNTP_ABLE
+	if (need_auth) { /* delayed auth */
+		if (!authenticate(nntp_server, userid, FALSE)) {
+			error_message(2, _(txt_auth_failed), ERR_ACCESS);
+			tin_done(EXIT_FAILURE);
+		}
+	}
+#endif /* NNTP_ABLE */
+
 	fclose(fp);
 
 	/*
@@ -426,14 +518,14 @@ read_newsrc_active_file(
 	 */
 	if (tin_errno || !num_active) {
 		if (newsrc_active && !num_active)
-			error_message(_(txt_error_server_has_no_listed_groups), newsrc);
+			error_message(2, _(txt_error_server_has_no_listed_groups), newsrc);
 		else
-			error_message(_(txt_active_file_is_empty), (read_news_via_nntp ? _(txt_servers_active) : news_active_file));
+			error_message(2, _(txt_active_file_is_empty), (read_news_via_nntp ? (read_saved_news ? news_active_file : _(txt_servers_active)) : news_active_file));
 		tin_done(EXIT_FAILURE);
 	}
 
-	if (!batch_mode)
-		my_fputs("\n", stdout);
+	if (!batch_mode || verbose)
+		my_fputc('\n', stdout);
 }
 
 
@@ -467,7 +559,7 @@ read_active_file(
 	long processed = 0L;
 	struct t_group *grpptr;
 
-	if (!batch_mode)
+	if (!batch_mode || verbose)
 		wait_message(0, _(txt_reading_news_active_file));
 
 	if ((fp = open_news_active_fp()) == NULL) {
@@ -476,13 +568,13 @@ read_active_file(
 
 #ifdef NNTP_ABLE
 		if (read_news_via_nntp)
-			error_message(_(txt_cannot_retrieve), ACTIVE_FILE);
+			error_message(2, _(txt_cannot_retrieve), ACTIVE_FILE);
 #	ifndef NNTP_ONLY
 		else
-			error_message(_(txt_cannot_open_active_file), news_active_file, tin_progname);
+			error_message(2, _(txt_cannot_open_active_file), news_active_file, tin_progname);
 #	endif /* !NNTP_ONLY */
 #else
-		error_message(_(txt_cannot_open), news_active_file);
+		error_message(2, _(txt_cannot_open), news_active_file);
 #endif /* NNTP_ABLE */
 
 		tin_done(EXIT_FAILURE);
@@ -501,7 +593,7 @@ read_active_file(
 		 * This call may implicitly ++num_active
 		 */
 		if ((grpptr = group_add(ptr)) == NULL) {
-			if ((grpptr = group_find(ptr)) == NULL)
+			if ((grpptr = group_find(ptr, FALSE)) == NULL)
 				continue;
 
 			if (max > grpptr->xmax) {
@@ -529,24 +621,101 @@ read_active_file(
 	 * Exit if active file wasn't read correctly or is empty
 	 */
 	if (tin_errno || !num_active) {
-		error_message(_(txt_active_file_is_empty), (read_news_via_nntp ? _(txt_servers_active) : news_active_file));
+		error_message(2, _(txt_active_file_is_empty), (read_news_via_nntp ? (read_saved_news ? news_active_file : _(txt_servers_active)) : news_active_file));
 		tin_done(EXIT_FAILURE);
 	}
 
-	if (!batch_mode)
-		my_fputs("\n", stdout);
+	if (!batch_mode || verbose)
+		my_fputc('\n', stdout);
 }
 
 
+#ifdef NNTP_ABLE
+/*
+ * Load the active file into active[] via LIST COUNTS
+ */
+static void
+read_active_counts(
+	void)
+{
+	FILE *fp;
+	char *ptr;
+	char moderated[PATH_LEN];
+	long count = -1L, min = 1L, max = 0L;
+	long processed = 0L;
+	struct t_group *grpptr;
+
+	if (!batch_mode || verbose)
+		wait_message(0, _(txt_reading_news_active_file));
+
+	if ((fp = nntp_command("LIST COUNTS", OK_GROUPS, NULL, 0)) == NULL) {
+		if (cmd_line && !batch_mode)
+			my_fputc('\n', stderr);
+
+		error_message(2, _(txt_cannot_retrieve), ACTIVE_FILE);
+		tin_done(EXIT_FAILURE);
+	}
+
+	while ((ptr = tin_fgets(fp, FALSE)) != NULL) {
+		if (!parse_count_line(ptr, &max, &min, &count, moderated))
+			continue;
+
+		if (++processed % MODULO_COUNT_NUM == 0)
+			spin_cursor();
+
+		/*
+		 * Load group into group hash table
+		 * NULL means group already present, so we just fixup the counters
+		 * This call may implicitly ++num_active
+		 */
+		if ((grpptr = group_add(ptr)) == NULL) {
+			if ((grpptr = group_find(ptr, FALSE)) == NULL)
+				continue;
+
+			if (max > grpptr->xmax) {
+				grpptr->xmax = max;
+				grpptr->count = count;
+			}
+
+			if (min > grpptr->xmin) {
+				grpptr->xmin = min;
+				grpptr->count = count;
+			}
+
+			continue;
+		}
+
+		/*
+		 * Load the new group in active[]
+		 */
+		active_add(grpptr, count, max, min, moderated);
+	}
+
+	/*
+	 * Exit if active file wasn't read correctly or is empty
+	 */
+	if (tin_errno || !num_active) {
+		error_message(2, _(txt_active_file_is_empty), _(txt_servers_active));
+		tin_done(EXIT_FAILURE);
+	}
+
+	if (!batch_mode || verbose)
+		my_fputc('\n', stdout);
+}
+#endif /* NNTP_ABLE*/
+
+
 /*
  * Load the active file into active[]
  * Check and preload any new newgroups into my_group[]
  */
-void
+int
 read_news_active_file(
 	void)
 {
 	FILE *fp;
+	int newgrps = 0;
+	t_bool do_group_cmds = !nntp_caps.list_counts;
 
 	/*
 	 * Ignore -n if no .newsrc can be found or .newsrc is empty
@@ -565,12 +734,133 @@ read_news_active_file(
 	}
 
 	/* Read an active file if it is allowed */
-	if (list_active)
-		read_active_file();
+	if (list_active) {
+#ifdef NNTP_ABLE
+		if (read_news_via_nntp && nntp_caps.type == CAPABILITIES && nntp_caps.list_counts)
+			read_active_counts();
+		else
+#endif /* NNTP_ABLE */
+			read_active_file();
+	}
 
 	/* Read .newsrc and check each group */
-	if (newsrc_active)
-		read_newsrc_active_file();
+	if (newsrc_active) {
+#ifdef NNTP_ABLE
+#	ifndef DISABLE_PIPELINING
+		/*
+		 * use "LIST ACTIVE grp" (or even LIST ACTIVE grp,...) if we have
+		 * less than PIPELINE_LIMIT groups and we use -n but not -Q
+		 *
+		 * TODO: test me. do we want this overhead? add a DISABLE_PIPELINING
+		 *       code-path? we don't have list_active set but we use some
+		 *       sort of LIST ACTIVE -> our documentation is a bit incorrect
+		 *       now.
+		 */
+		if (read_news_via_nntp && !list_active && ((nntp_caps.type == CAPABILITIES && nntp_caps.list_active) || nntp_caps.type != CAPABILITIES) && (show_description || check_for_new_newsgroups)) {
+			char buff[NNTP_STRLEN];
+			char *ptr, *q;
+			char moderated[PATH_LEN];
+			int r = 0, i = 0, j = 0;
+			long count = -1L, min = 1L, max = 0L;
+			struct t_group *grpptr;
+			t_bool need_auth = FALSE;
+
+			*buff='\0';
+			/* we can't use for_each_group(i) yet, so we have to prase the newsrc */
+			if ((fp = fopen(newsrc, "r")) != NULL) {
+				while (tin_fgets(fp, FALSE) != NULL)
+					j++;
+				rewind(fp);
+				if (j < PIPELINE_LIMIT) {
+					while ((ptr = tin_fgets(fp, FALSE)) != NULL) {
+						if (!(q = strpbrk(ptr, ":!")))
+							continue;
+						*q = '\0';
+						if (nntp_caps.type == CAPABILITIES && (nntp_caps.list_active || nntp_caps.list_counts)) {
+							/* LIST ACTIVE or LIST COUNTS takes wildmats */
+							if (!i) { /* new wildmat list */
+								i++;
+								snprintf(buff, sizeof(buff), "LIST %s %s", nntp_caps.list_counts ? "COUNTS" : "ACTIVE", ptr);
+								continue;
+							}
+							if (strlen(buff) + strlen(ptr) + 1 < NNTP_STRLEN) { /* append group name */
+								snprintf(buff + strlen(buff), sizeof(buff) - strlen(buff), ",%s", ptr);
+								continue;
+							}
+							i = 0; /* new wildmatlist required */
+						} else
+							snprintf(buff, sizeof(buff), "LIST ACTIVE %s", ptr);
+						put_server(buff);
+						r++;
+						*buff='\0';
+					}
+					if (*buff) {
+						put_server(buff);
+						r++;
+					}
+				} else {
+					do_group_cmds = TRUE;
+				}
+				fclose(fp);
+
+				if (j < PIPELINE_LIMIT) {
+					for (i = 0; i < r && !did_reconnect; i++) {
+						if ((j = get_only_respcode(buff, sizeof(buff))) != OK_GROUPS) {
+							/* TODO: add 483 (RFC 3977) code */
+							if (j == ERR_NOAUTH || j == NEED_AUTHINFO)
+								need_auth = TRUE;
+#if 0 /* do we need something like this? */
+							if (j == ERR_CMDSYN)
+								list_active = TRUE;
+#endif /* 0 */
+							continue;
+						} else {
+							while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
+#		ifdef DEBUG
+								if (debug & DEBUG_NNTP)
+									debug_print_file("NNTP", "<<< %s", ptr);
+#		endif /* DEBUG */
+								if (nntp_caps.type == CAPABILITIES && nntp_caps.list_counts) {
+									if (!parse_count_line(ptr, &max, &min, &count, moderated))
+										continue;
+								} else {
+									if (!parse_active_line(ptr, &max, &min, moderated))
+										continue;
+								}
+
+								if ((grpptr = group_add(ptr)) == NULL) {
+									if ((grpptr = group_find(ptr, FALSE)) == NULL)
+										continue;
+
+									if (max > grpptr->xmax) {
+										grpptr->xmax = max;
+										grpptr->count = count;
+									}
+									if (min > grpptr->xmin) {
+										grpptr->xmin = min;
+										grpptr->count = count;
+									}
+									continue;
+								}
+								active_add(grpptr, count, max, min, moderated);
+							}
+						}
+					}
+					if (need_auth) { /* retry after auth is overkill here, so just auth */
+						if (!authenticate(nntp_server, userid, FALSE)) {
+							error_message(2, _(txt_auth_failed), nntp_caps.type == CAPABILITIES ? ERR_AUTHFAIL : ERR_ACCESS);
+							tin_done(EXIT_FAILURE);
+						}
+					}
+				}
+				did_reconnect = FALSE;
+			}
+		}
+#	endif /* !DISABLE_PIPELINING */
+#endif /* NNTP_ABLE */
+		if (!nntp_caps.list_counts || do_group_cmds)
+			read_newsrc_active_file();
+	}
 
 	(void) time(&active_timestamp);
 	force_reread_active_file = FALSE;
@@ -579,12 +869,14 @@ read_news_active_file(
 	 * check_for_any_new_groups() also does $AUTOSUBSCRIBE
 	 */
 	if (check_for_new_newsgroups)
-		check_for_any_new_groups();
+		newgrps = check_for_any_new_groups();
 
 	/*
 	 * finally we have a list of all groups an can set the attributes
 	 */
-	read_attributes_files();
+	assign_attributes_to_groups();
+
+	return newgrps;
 }
 
 
@@ -605,7 +897,8 @@ open_newgroups_fp(
 		if (idx == -1)
 			return (FILE *) 0;
 
-		ngtm = localtime(&newnews[idx].time);
+		if ((ngtm = localtime(&newnews[idx].time)) == NULL)
+			return (FILE *) 0;
 		/*
 		 * in the current draft, NEWGROUPS is allowed to take a 4 digit year
 		 * component - but even with a 2 digit year component it is y2k
@@ -632,7 +925,7 @@ open_newgroups_fp(
  * If reading news via NNTP issue a NEWGROUPS command.
  * Format:   (as active file) Groupname Maxart Minart moderated
  */
-static void
+static int
 check_for_any_new_groups(
 	void)
 {
@@ -641,6 +934,7 @@ check_for_any_new_groups(
 	char *ptr, *line, buf[NNTP_STRLEN];
 	char old_newnews_host[PATH_LEN];
 	int newnews_index;
+	int newgrps = 0;
 	time_t old_newnews_time;
 	time_t new_newnews_time;
 
@@ -661,10 +955,8 @@ check_for_any_new_groups(
 	}
 
 #ifdef DEBUG
-	if (debug == 2) {
-		error_message("Newnews old=[%lu]  new=[%lu]", (unsigned long int) old_newnews_time, (unsigned long int) new_newnews_time);
-		(void) sleep(2);
-	}
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "Newnews old=[%lu]  new=[%lu]", (unsigned long int) old_newnews_time, (unsigned long int) new_newnews_time);
 #endif /* DEBUG */
 
 	if ((fp = open_newgroups_fp(newnews_index)) != NULL) {
@@ -687,11 +979,12 @@ check_for_any_new_groups(
 				*ptr = '\0';
 			}
 			subscribe_new_group(line, autosubscribe, autounsubscribe);
+			newgrps++;
 		}
 		TIN_FCLOSE(fp);
 
 		if (tin_errno)
-			return;				/* Don't update the time if we quit */
+			return 0;				/* Don't update the time if we quit */
 	}
 
 	/*
@@ -705,6 +998,11 @@ check_for_any_new_groups(
 		snprintf(buf, sizeof(buf), "%s %lu", nntp_server, (unsigned long int) new_newnews_time);
 		load_newnews_info(buf);
 	}
+
+	if (!batch_mode)
+		my_fputc('\n', stdout);
+
+	return newgrps;
 }
 
 
@@ -738,7 +1036,7 @@ subscribe_new_group(
 	 * be properly updated when we enter the group. Otherwise there is some
 	 * mismatch in the active.times data and we ignore the newgroup.
 	 */
-	if ((idx = my_group_add(group)) < 0) {
+	if ((idx = my_group_add(group, FALSE)) < 0) {
 		if (list_active) {
 /*			my_fprintf(stderr, "subscribe_new_group: %s not in active[] && list_active\n", group); */
 			return;
@@ -747,7 +1045,7 @@ subscribe_new_group(
 		if ((ptr = group_add(group)) != NULL)
 			active_add(ptr, 0L, 1L, 0L, "y");
 
-		if ((idx = my_group_add(group)) < 0)
+		if ((idx = my_group_add(group, FALSE)) < 0)
 			return;
 	}
 
@@ -879,8 +1177,8 @@ load_newnews_info(
 	newnews[i].time = new_time;
 
 #ifdef DEBUG
-	if (debug == 2)
-		error_message("ACTIVE host=[%s] time=[%lu]", newnews[i].host, (unsigned long int) newnews[i].time);
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "ACTIVE host=[%s] time=[%lu]", newnews[i].host, (unsigned long int) newnews[i].time);
 #endif /* DEBUG */
 }
 
@@ -906,9 +1204,6 @@ find_newnews_index(
 /*
  * Get a single status char from the moderated field. Used on selection screen
  * and in header of group screen
- *
- * TODO: what about 'j' groups? active(5) says:
- *       "local postings to that group should not be generated"
  */
 char
 group_flag(
@@ -920,6 +1215,7 @@ group_flag(
 
 		case 'x':
 		case 'n':
+		case 'j':
 			return 'X';
 
 		case '=':
@@ -936,19 +1232,24 @@ void
 create_save_active_file(
 	void)
 {
+	char *fb;
 	char group_path[PATH_LEN];
 	char local_save_active_file[PATH_LEN];
 
-	joinpath(local_save_active_file, rcdir, ACTIVE_SAVE_FILE);
+	joinpath(local_save_active_file, sizeof(local_save_active_file), rcdir, ACTIVE_SAVE_FILE);
 
 	if (no_write && file_size(local_save_active_file) != -1L)
 		return;
 
-	my_printf(_(txt_creating_active));
+	wait_message(0, _(txt_creating_active));
 
 	print_active_head(local_save_active_file);
-	strcpy(group_path, tinrc.savedir);
-	make_group_list(local_save_active_file, tinrc.savedir, group_path);
+	strfpath(cmdline.args & CMDLINE_SAVEDIR ? cmdline.savedir : tinrc.savedir, group_path, sizeof(group_path), NULL, FALSE);
+	while (strlen(group_path) && group_path[strlen(group_path) - 1] == '/')
+		group_path[strlen(group_path) - 1] = '\0';
+	fb = my_strdup(group_path);
+	make_group_list(local_save_active_file, cmdline.args & CMDLINE_SAVEDIR ? cmdline.savedir : tinrc.savedir, fb, group_path);
+	free(fb);
 }
 
 
@@ -956,6 +1257,7 @@ static void
 make_group_list(
 	char *active_file,
 	char *base_dir,
+	char *fixed_base,
 	char *group_path)
 {
 	DIR *dir;
@@ -972,8 +1274,7 @@ make_group_list(
 		is_dir = FALSE;
 		while ((direntry = readdir(dir)) != NULL) {
 			STRCPY(filename, direntry->d_name);
-			joinpath(path, group_path, filename);
-
+			joinpath(path, sizeof(path), group_path, filename);
 			if (!(filename[0] == '.' && filename[1] == '\0') &&
 				!(filename[0] == '.' && filename[1] == '.' && filename[2] == '\0')) {
 				if (stat(path, &stat_info) != -1) {
@@ -985,9 +1286,9 @@ make_group_list(
 				is_dir = FALSE;
 				strcpy(group_path, path);
 
-				make_group_list(active_file, base_dir, group_path);
+				make_group_list(active_file, base_dir, fixed_base, group_path);
 				find_art_max_min(group_path, &art_max, &art_min);
-				append_group_line(active_file, group_path, art_max, art_min, base_dir);
+				append_group_line(active_file, group_path + strlen(fixed_base) + 1, art_max, art_min, fixed_base);
 				if ((ptr = strrchr(group_path, '/')) != NULL) /* TODO: Unix'ism */
 					*ptr = '\0';
 			}
@@ -1007,7 +1308,6 @@ append_group_line(
 {
 	FILE *fp;
 	char *file_tmp;
-	char group_name[PATH_LEN];
 
 	if (art_max == 0 && art_min == 1)
 		return;
@@ -1020,43 +1320,26 @@ append_group_line(
 	}
 
 	if ((fp = fopen(active_file, "a+")) != NULL) {
-		make_group_name(base_dir, group_name, group_path);
-		my_printf("Appending=[%s %ld %ld %s]\n", group_name, art_max, art_min, base_dir);
+		char *ptr;
+		char *group_name;
+		int err;
+
+		ptr = group_name = my_strdup(group_path);
+		ptr++;
+		while ((ptr = strchr(ptr, '/')) != NULL)
+			*ptr = '.';
+
+		wait_message(0, "Appending=[%s %ld %ld %s]\n", group_name, art_max, art_min, base_dir);
 		print_group_line(fp, group_name, art_max, art_min, base_dir);
-		if (ferror(fp) || fclose(fp)) /* TODO: issue warning? */
+		if ((err = ferror(fp)) || fclose(fp)) { /* TODO: issue warning? */
 			rename(file_tmp, active_file);
+			if (err) {
+				clearerr(fp);
+				fclose(fp);
+			}
+		}
+		free(group_name);
 	}
 	unlink(file_tmp);
 	free(file_tmp);
 }
-
-
-/*
- * Given an absolute pathname & a base pathname build a newsgroup name
- * base = /usr/spool/news
- * absolute path = /usr/spool/news/alt/sources
- * newsgroup = alt.sources
- */
-static void
-make_group_name(
-	char *base_dir,
-	char *group_name,
-	char *group_path)
-{
-	char *base_ptr;
-	char *name_ptr;
-	char *path_ptr;
-
-	base_ptr = base_dir;
-	path_ptr = group_path;
-
-	while (*base_ptr && (*base_ptr == *path_ptr)) {
-		base_ptr++;
-		path_ptr++;
-	}
-	strcpy(group_name, ++path_ptr);
-
-	name_ptr = group_name;
-	while ((name_ptr = strchr(name_ptr, '/')) != NULL)
-		*name_ptr = '.';
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/art.c tin-2.0.0/src/art.c
--- tin-1.8.3/src/art.c	2006-04-21 14:48:41.000000000 +0200
+++ tin-2.0.0/src/art.c	2011-08-07 02:04:26.659237895 +0200
@@ -3,10 +3,10 @@
  *  Module    : art.c
  *  Author    : I.Lea & R.Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2006-04-21
+ *  Updated   : 2011-01-29
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -41,6 +41,9 @@
 #ifndef TCURSES_H
 #	include "tcurses.h"
 #endif /* !TCURSES_H */
+#ifndef NEWSRC_H
+#	include "newsrc.h"
+#endif /* !NEWSRC_H */
 
 #ifndef STPWATCH_H
 #	include "stpwatch.h"
@@ -57,11 +60,11 @@ int top_art = 0;				/* # of articles in 
 /*
  * Local prototypes
  */
-static FILE *open_art_header(long art, long *next);
+static FILE *open_art_header(char *groupname, long art, long *next);
 static FILE *open_xover_fp(struct t_group *group, const char *mode, long min, long max, t_bool local);
 static char *find_nov_file(struct t_group *group, int mode);
 static char *print_date(time_t secs);
-static char *print_from(struct t_article *article);
+static char *print_from(struct t_group *group, struct t_article *article);
 static int artnum_comp(t_comptype p1, t_comptype p2);
 static int base_comp(t_comptype p1, t_comptype p2);
 static int date_comp_asc(t_comptype p1, t_comptype p2);
@@ -70,6 +73,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,10 +89,12 @@ 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);
 static void thread_by_subject(void);
+static void write_overview(struct t_group *group);
 
 
 /*
@@ -132,13 +139,13 @@ find_base(
 		if (grpmenu.max >= max_art)
 			expand_art();
 
-		if (group->attribute->show_only_unread) {
-			if (arts[i].status != ART_READ)
+		if (group->attribute->show_only_unread_arts) {
+			if (arts[i].status != ART_READ || arts[i].keep_in_base)
 				base[grpmenu.max++] = i;
 			else {
 				/* Find 1st unread art in thread */
 				for (j = i; j >= 0; j = arts[j].thread) {
-					if (arts[j].status != ART_READ) {
+					if (arts[j].status != ART_READ || arts[j].keep_in_base) {
 						base[grpmenu.max++] = i;
 						break;
 					}
@@ -195,8 +202,6 @@ static long
 setup_hard_base(
 	struct t_group *group)
 {
-	char buf[NNTP_STRLEN];
-	long art;
 	long total = 0;
 
 	grpmenu.max = 0;
@@ -204,30 +209,40 @@ setup_hard_base(
 	/*
 	 * If reading with NNTP, issue a LISTGROUP
 	 */
-	if (read_news_via_nntp && group->type == GROUP_TYPE_NEWS) {
+	if (read_news_via_nntp && !read_saved_news && group->type == GROUP_TYPE_NEWS) {
 #ifdef NNTP_ABLE
+		char buf[NNTP_STRLEN];
 		FILE *fp;
 
-#	ifdef BROKEN_LISTGROUP
 		/*
 		 * Some nntp servers are broken and need an extra GROUP command
 		 * (reported by reorx@irc.pl). This affects (old?) versions of
-		 * nntpcache and leafnode. Usually this should not be needed.
+		 * nntpcache, leafnode and SurgeNews. Usually this should not be
+		 * needed.
 		 */
-		snprintf(buf, sizeof(buf), "GROUP %s", group->name);
-		if (nntp_command(buf, OK_GROUP, NULL, 0) == NULL)
-			return -1;
-#	endif /* BROKEN_LISTGROUP */
+		if (nntp_caps.broken_listgroup) {
+			snprintf(buf, sizeof(buf), "GROUP %s", group->name);
+			if (nntp_command(buf, OK_GROUP, NULL, 0) == NULL)
+				return -1;
+		}
 
 		/*
 		 * See if LISTGROUP works
+		 *
+		 * think about something like:
+		 * if (nntp_caps.type == CAPABILITIES && tinrc.getart_limit != 0) {
+		 *    calculate some useful min vals, eg. if getart_limit < 0
+		 *    use lowest unread art + 2*getart_limit (to include holes)
+		 *    snprintf(buf, sizeof(buf), "LISTGROUP %s %d-%d, group->name, min, max);
+		 * }
 		 */
 		snprintf(buf, sizeof(buf), "LISTGROUP %s", group->name);
 		if ((fp = nntp_command(buf, OK_GROUP, NULL, 0)) != NULL) {
 			char *ptr;
 
 #	ifdef DEBUG
-			debug_nntp("setup_hard_base", buf);
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "setup_hard_base(%s)", buf);
 #	endif /* DEBUG */
 
 			while ((ptr = tin_fgets(fp, FALSE)) != NULL) {
@@ -260,6 +275,10 @@ setup_hard_base(
 			if (sscanf(line, "%ld %ld %ld", &count, &start, &last) != 3)
 				return -1;
 
+#	ifdef DEBUG
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "setup_hard_base(%s)", buf);
+#	endif /* DEBUG */
 			/*
 			 * TODO: AFAICS "total" and "count" arn't used in the code below
 			 *       anymore, why do we bother to set them?
@@ -281,15 +300,17 @@ setup_hard_base(
 	} else {
 		DIR *d;
 		DIR_BUF *e;
+		char group_path[PATH_LEN];
+		long art;
 
-		make_base_group_path(group->spooldir, group->name, buf);
+		make_base_group_path(group->spooldir, group->name, group_path, sizeof(group_path));
 
-		if (access(buf, R_OK) != 0) {
-			error_message(_(txt_not_exist));
+		if (access(group_path, R_OK) != 0) {
+			error_message(2, _(txt_not_exist));
 			return -1;
 		}
 
-		if ((d = opendir(buf)) != NULL) {
+		if ((d = opendir(group_path)) != NULL) {
 			while ((e = readdir(d)) != NULL) {
 				art = atol(e->d_name);
 				if (art >= 1) {
@@ -329,10 +350,11 @@ index_group(
 {
 	int i;
 	int changed;				/* Count of articles whose overview has changed */
+	int getart_limit;
 	int respnum;
 	int total;
 	long last_read_article;
-	long min, max;
+	long min, new_min, max;
 	t_bool caching_xover;
 	t_bool filtered;
 
@@ -348,7 +370,7 @@ index_group(
 	free_art_array();
 	free_msgids();
 
-	BegStopWatch("setup_hard_base");
+	BegStopWatch("setup_hard_base()");
 
 	/*
 	 * Get list of valid article numbers
@@ -359,22 +381,30 @@ index_group(
 	EndStopWatch();
 	PrintStopWatch();
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("Before read_overview");
-	debug_print_bitmap(group, NULL);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC) {
+		debug_print_comment("Before read_overview");
+		debug_print_bitmap(group, NULL);
+	}
+#endif /* DEBUG */
 
 	min = grpmenu.max ? base[0] : group->xmin;
 	max = grpmenu.max ? base[grpmenu.max - 1] : min - 1;
 
-	if (tinrc.getart_limit > 0) {
-		if (grpmenu.max && (grpmenu.max > tinrc.getart_limit))
-			min = base[grpmenu.max - tinrc.getart_limit];
-	} else if (tinrc.getart_limit < 0) {
+	getart_limit = cmdline.args & CMDLINE_GETART_LIMIT ? cmdline.getart_limit : tinrc.getart_limit;
+
+	if (getart_limit > 0) {
+		if (grpmenu.max && (grpmenu.max > getart_limit))
+			min = base[grpmenu.max - getart_limit];
+		else
+			getart_limit = 0;
+	} else if (getart_limit < 0) {
 		long first_unread = find_first_unread(group);
 
-		if (min - first_unread < tinrc.getart_limit)
-			min = first_unread + tinrc.getart_limit;
+		if (min - first_unread < getart_limit)
+			min = first_unread + getart_limit;
+		else
+			getart_limit = 0;
 	}
 
 	/*
@@ -403,9 +433,9 @@ index_group(
 	 * Only do this if the previous read_overview() was against private cache
 	 */
 	if ((last_read_article < max) && caching_xover) {
-		min = (last_read_article >= min) ? last_read_article + 1 : min;
+		new_min = (last_read_article >= min) ? last_read_article + 1 : min;
 
-		if ((changed += read_overview(group, min, max, &last_read_article, FALSE)) == -1)
+		if ((changed += read_overview(group, new_min, max, &last_read_article, FALSE)) == -1)
 			return FALSE;	/* user aborted indexing */
 	} else
 		caching_xover = FALSE;
@@ -428,23 +458,30 @@ index_group(
 	 * Add any articles to arts[] that are new or were killed
 	 */
 	if (total > 0) {
-		if ((changed += read_art_headers(group, total, last_read_article)) == -1)
+		new_min = (getart_limit != 0 && last_read_article < min) ? min - 1 : last_read_article;
+
+		if ((changed += read_art_headers(group, total, new_min)) == -1)
 			return FALSE;		/* user aborted indexing */
 	}
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("Before parse_unread_arts()");
-	debug_print_bitmap(group, NULL);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC) {
+		debug_print_comment("Before parse_unread_arts()");
+		debug_print_bitmap(group, NULL);
+	}
+#endif /* DEBUG */
 	/*
 	 * Do this before calling art_mark(,, ART_READ) if you want
 	 * the unread count to be correct.
 	 */
-	parse_unread_arts(group);
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("After parse_unread_arts()");
-	debug_print_bitmap(group, NULL);
-#endif /* DEBUG_NEWSRC */
+	min = getart_limit > 0 ? min : 0L;
+	parse_unread_arts(group, min);
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC) {
+		debug_print_comment("After parse_unread_arts()");
+		debug_print_bitmap(group, NULL);
+	}
+#endif /* DEBUG */
 
 	/*
 	 * Stat all articles to see if any have expired
@@ -452,10 +489,13 @@ index_group(
 	for_each_art(i) {
 		if (arts[i].thread == ART_EXPIRED) {
 			changed++;
-#ifdef DEBUG_NEWSRC
-			debug_print_comment("art.c: index_group() purging...");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+			if (debug & DEBUG_NEWSRC)
+				debug_print_comment("art.c: index_group() purging...");
+#endif /* DEBUG */
 			art_mark(group, &arts[i], ART_READ);
+			if (group->attribute->show_only_unread_arts)
+				arts[i].keep_in_base = FALSE;
 		}
 	}
 
@@ -477,7 +517,7 @@ index_group(
 	 */
 	filtered = filter_articles(group);
 
-	BegStopWatch("make_thread");
+	BegStopWatch("make_threads()");
 
 	/*
 	 * Thread the group
@@ -506,8 +546,8 @@ find_first_unread(
 	long first = group->newsrc.xmin; /* initial value */
 
 	if ((p = group->newsrc.xbitmap)) {
-		end += group->newsrc.xbitlen / 8;
-		for (; *p == '\0' && p < end; p++, first += 8)
+		end += group->newsrc.xbitlen / NBITS;
+		for (; *p == '\0' && p < end; p++, first += NBITS)
 			;
 	}
 	return first;
@@ -522,12 +562,14 @@ find_first_unread(
  */
 static FILE *
 open_art_header(
+	char *groupname,
 	long art,
 	long *next)
 {
 	char buf[NNTP_STRLEN];
 #ifdef NNTP_ABLE
 	FILE *fp;
+	int i;
 
 	if (read_news_via_nntp && CURR_GROUP.type == GROUP_TYPE_NEWS) {
 		/*
@@ -546,8 +588,48 @@ open_art_header(
 		 * HEAD failed, try to find NEXT
 		 * Should return "223 artno message-id more text...."
 		 */
-		if (nntp_command("NEXT", OK_NOTEXT, buf, sizeof(buf)))
-			*next = atoi(buf);		/* Set next art number */
+		i = new_nntp_command("NEXT", OK_NOTEXT, buf, sizeof(buf));
+		switch (i) {
+			case OK_NOTEXT:
+				*next = atoi(buf);		/* Set next art number */
+				break;
+
+#	ifndef BROKEN_LISTGROUP
+			/*
+			 * might happen if LISTGROUP doesn't select group, but
+			 * we are not -DBROKEN_LISTGROUP
+			 */
+			case ERR_NCING:
+				nntp_caps.broken_listgroup = TRUE;
+				snprintf(buf, sizeof(buf), "GROUP %s", groupname);
+				if (nntp_command(buf, OK_GROUP, NULL, 0) == NULL)
+					return NULL;
+				snprintf(buf, sizeof(buf), "HEAD %ld", art);
+				if ((fp = nntp_command(buf, OK_HEAD, NULL, 0)) != NULL)
+					return fp;
+				if (nntp_command("NEXT", OK_NOTEXT, buf, sizeof(buf)))
+					*next = atoi(buf);
+				break;
+#	endif /* !BROKEN_LISTGROUP */
+
+			default:
+				/*
+				 * TODO: abort loop over all arts on ERR_NONEXT
+				 */
+#	ifndef BROKEN_LISTGROUP
+				/*
+				 * to avoid out of sync responses
+				 * (listgroup seems to work, but didn't select new group,
+				 *  so xover seems to work but returns old data)
+				 * we set listgroup_broken = TRUE; once we saw a
+				 * ERR_NOARTIG / ERR_NONEXT or the like - even if
+				 * ERR_NOARTIG may occur on servers where listgroup
+				 * isn't broken...
+				 */
+				nntp_caps.broken_listgroup = TRUE;
+#	endif /* !BROKEN_LISTGROUP */
+				break;
+		}
 
 		return NULL;
 	}
@@ -593,7 +675,7 @@ read_art_headers(
 		char buf[PATH_LEN];
 
 		get_cwd(dir);
-		make_base_group_path(group->spooldir, group->name, buf);
+		make_base_group_path(group->spooldir, group->name, buf, sizeof(buf));
 		my_chdir(buf);
 	}
 
@@ -613,7 +695,7 @@ read_art_headers(
 		/*
 		 * Try and open the article
 		 */
-		if ((fp = open_art_header(art, &head_next)) == NULL)
+		if ((fp = open_art_header(group->name, art, &head_next)) == NULL)
 			continue;
 
 		/*
@@ -636,10 +718,12 @@ read_art_headers(
 
 		if (!res) {
 #ifdef DEBUG
-			char buf[PATH_LEN];
+			if (debug & DEBUG_NNTP) {
+				char buf[PATH_LEN];
 
-			snprintf(buf, sizeof(buf), "FAILED parse_headers(%ld)", art);
-			debug_nntp("read_art_headers", buf);
+				snprintf(buf, sizeof(buf), "FAILED parse_headers(%ld)", art);
+				debug_print_file("NNTP", "read_art_headers() %s", buf);
+			}
 #endif /* DEBUG */
 			continue;
 		}
@@ -693,9 +777,13 @@ thread_by_subject(
 		j = h->aptr;
 
 		if (j != -1 && j < i) {
-			if (arts[i].prev == ART_NORMAL &&
-					((arts[i].subject == arts[j].subject) /* ||
-					 (arts[i].archive && arts[j].archive && (arts[i].archive->name == arts[j].archive->name)) */ )) {
+#if 1
+			if (arts[i].prev == ART_NORMAL && (arts[i].subject == arts[j].subject))
+#else
+			/* see also refs.c:collate_subjects() */
+			if (arts[i].prev == ART_NORMAL && ((arts[i].subject == arts[j].subject) || (arts[i].archive && arts[j].archive && (arts[i].archive->name == arts[j].archive->name))))
+#endif /* 1 */
+			{
 				arts[j].thread = i;
 				arts[i].prev = j;
 			}
@@ -721,6 +809,7 @@ thread_by_subject(
 #endif /* 0 */
 }
 
+
 /*
  * This Threading algorithm threads articles into 'buckets' where each bucket
  * contains all the articles which match the root article's subject line to
@@ -793,6 +882,7 @@ thread_by_percentage(
 	}
 }
 
+
 /*
  * This was brought over from tags.c, however this version doesn't not
  * opperate on base_index
@@ -897,7 +987,7 @@ global_get_multiparts(
 	int i;
 	int part_index;
 	MultiPartInfo tmp, tmp2;
-	MultiPartInfo *info = 0;
+	MultiPartInfo *info = NULL;
 
 	/* entry assertions */
 	assert(0 <= aindex && aindex < top_art && "Invalid index");
@@ -1020,12 +1110,12 @@ make_threads(
 	t_bool rethread)
 {
 	if (!cmd_line && !batch_mode)
-		info_message((group->attribute->thread_arts == THREAD_NONE ? _(txt_unthreading_arts) : _(txt_threading_arts)));
+		info_message((group->attribute->thread_articles == THREAD_NONE ? _(txt_unthreading_arts) : _(txt_threading_arts)));
 
 #ifdef DEBUG
-	if (debug == 2)
-		error_message("rethread=[%d]  thread_arts=[%d]  attr_thread_arts=[%d]",
-				rethread, tinrc.thread_articles, group->attribute->thread_arts);
+	if (debug & DEBUG_MISC)
+		error_message(2, "rethread=[%d]  thread_articles=[%d]  attr_thread_articles=[%d]",
+				rethread, tinrc.thread_articles, group->attribute->thread_articles);
 #endif /* DEBUG */
 
 	/*
@@ -1034,7 +1124,7 @@ make_threads(
 	 * on arts[] and so the base messages under all threading systems
 	 * will be sorted in this way.
 	 */
-	sort_arts(group->attribute->sort_art_type);
+	sort_arts(group->attribute->sort_article_type);
 
 	/*
 	 * Reset all the ptrs to articles following the above sort
@@ -1045,7 +1135,7 @@ make_threads(
 	 * The threading pointers need to be reset if re-threading
 	 * If using ref threading, revector the links back to the articles
 	 */
-	if (rethread || group->attribute->thread_arts) {
+	if (rethread || group->attribute->thread_articles) {
 		int i;
 
 		for_each_art(i) {
@@ -1055,16 +1145,17 @@ make_threads(
 			arts[i].prev = ART_NORMAL;
 
 			/* Should never happen if tree is built properly */
-			if (arts[i].refptr == 0) {
+			if (arts[i].refptr == NULL) {
 #ifdef DEBUG
-				my_fprintf(stderr, "\nError  : art->refptr is NULL\n");
-				my_fprintf(stderr, "Artnum : %ld\n", arts[i].artnum);
-				my_fprintf(stderr, "Subject: %s\n", arts[i].subject);
-				my_fprintf(stderr, "From   : %s\n", arts[i].from);
-				assert(arts[i].refptr != 0);
-#else
-				continue;
+				if (debug & DEBUG_REFS) {
+					my_fprintf(stderr, "\nError  : art->refptr is NULL\n");
+					my_fprintf(stderr, "Artnum : %ld\n", arts[i].artnum);
+					my_fprintf(stderr, "Subject: %s\n", arts[i].subject);
+					my_fprintf(stderr, "From   : %s\n", arts[i].from);
+					assert(arts[i].refptr != NULL);
+				} else
 #endif /* DEBUG */
+					continue;
 			}
 			arts[i].refptr->article = i;
 		}
@@ -1073,7 +1164,7 @@ make_threads(
 	/*
 	 * Do the right thing according to the threading strategy
 	 */
-	switch (group->attribute->thread_arts) {
+	switch (group->attribute->thread_articles) {
 		case THREAD_NONE:
 			break;
 
@@ -1169,11 +1260,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;
 	}
 }
 
@@ -1196,7 +1295,6 @@ parse_headers(
 {
 	char art_from_addr[HEADER_LEN];
 	char art_full_name[HEADER_LEN];
-	char art_trunc_subj[HEADER_LEN];
 	char *hdr, *ptr;
 	unsigned int lineno = 0;
 	unsigned int max_lineno = 25;
@@ -1224,11 +1322,11 @@ parse_headers(
 				 * Archive-name: {name}/{part|patch}{number}
 				 * eg, acorn/faq/part01
 				 */
-				if ((hdr = parse_header(ptr + 1, "rchive-name", FALSE, FALSE))) {
+				if ((hdr = parse_header(ptr + 1, "rchive-name", FALSE, FALSE, FALSE))) {
 					char *s;
 
 					if ((s = strrchr(hdr, '/')) != NULL) {
-						struct t_archive *archptr = my_malloc(sizeof(struct t_article));
+						struct t_archive *archptr = my_malloc(sizeof(struct t_archive));
 
 						if (STRNCASECMPEQ(s + 1, "part", 4)) {
 							archptr->partnum = my_strdup(s + 5);
@@ -1250,18 +1348,18 @@ parse_headers(
 
 			case 'D':	/* Date:  mandatory */
 				if (!h->date) {
-					if ((hdr = parse_header(ptr + 1, "ate", FALSE, FALSE)))
+					if ((hdr = parse_header(ptr + 1, "ate", FALSE, FALSE, FALSE)))
 						h->date = parsedate(hdr, (struct _TIMEINFO *) 0);
 				}
 				break;
 
 			case 'F':	/* From:  mandatory */
 				if (!got_from) {
-					if ((hdr = parse_header(ptr + 1, "rom", FALSE, FALSE))) {
+					if ((hdr = parse_header(ptr + 1, "rom", FALSE, FALSE, FALSE))) {
 						h->gnksa_code = parse_from(hdr, art_from_addr, art_full_name);
 						h->from = hash_str(buffer_to_ascii(art_from_addr));
 						if (*art_full_name)
-							h->name = hash_str(eat_tab(convert_to_printable(rfc1522_decode(art_full_name))));
+							h->name = hash_str(eat_tab(convert_to_printable(rfc1522_decode(art_full_name), FALSE)));
 						got_from = TRUE;
 					}
 				}
@@ -1269,7 +1367,7 @@ parse_headers(
 
 			case 'L':	/* Lines:  optional */
 				if (!got_lines) {
-					if ((hdr = parse_header(ptr + 1, "ines", FALSE, FALSE))) {
+					if ((hdr = parse_header(ptr + 1, "ines", FALSE, FALSE, FALSE))) {
 						h->line_count = atoi(hdr);
 						got_lines = TRUE;
 					}
@@ -1278,44 +1376,36 @@ parse_headers(
 
 			case 'M':	/* Message-ID:  mandatory */
 				if (!h->msgid) {
-					if ((hdr = parse_header(ptr + 1, "essage-ID", FALSE, FALSE)))
+					if ((hdr = parse_header(ptr + 1, "essage-ID", FALSE, FALSE, FALSE)))
 						h->msgid = my_strdup(hdr);
 				}
 				break;
 
 			case 'R':	/* References:  optional */
 				if (!h->refs) {
-					if ((hdr = parse_header(ptr + 1, "eferences", FALSE, FALSE)))
+					if ((hdr = parse_header(ptr + 1, "eferences", FALSE, FALSE, FALSE)))
 						h->refs = my_strdup(hdr);
 				}
 
 				/* Received:  If found it's probably a mail article */
 				if (!got_received) {
-					if ((hdr = parse_header(ptr + 1, "eceived", FALSE, FALSE))) {
+					if (parse_header(ptr + 1, "eceived", FALSE, FALSE, FALSE)) {
 						max_lineno <<= 1;		/* double the max number of line to read for mails */
 						got_received = TRUE;
 					}
 				}
 				break;
 
-			/*
-			 * FIXME: Subject: truncation is a HACK and it's not multibyte safe
-			 *        the core problem are probably fixed length buffers
-			 *        (i.e. in rfc1522_encode() called from write_overview()
-			 *         with the data read in here).
-			 */
 			case 'S':	/* Subject:  mandatory */
 				if (!h->subject) {
-					if ((hdr = parse_header(ptr + 1, "ubject", FALSE, FALSE))) {
-						strncpy(art_trunc_subj, eat_re(eat_tab(convert_to_printable(rfc1522_decode(hdr))), FALSE), sizeof(art_trunc_subj) - 1);
-						h->subject = hash_str(art_trunc_subj);
-					}
+					if ((hdr = parse_header(ptr + 1, "ubject", FALSE, FALSE, FALSE)))
+						h->subject = hash_str(eat_re(eat_tab(convert_to_printable(rfc1522_decode(hdr), FALSE)), FALSE));
 				}
 				break;
 
 			case 'X':	/* Xref:  optional */
 				if (!h->xref) {
-					if ((hdr = parse_header(ptr + 1, "ref", FALSE, FALSE)))
+					if ((hdr = parse_header(ptr + 1, "ref", FALSE, FALSE, FALSE)))
 						h->xref = my_strdup(hdr);
 				}
 				break;
@@ -1337,6 +1427,10 @@ parse_headers(
 	/*
 	 * The son of RFC 1036 states that the following hdrs are mandatory. It
 	 * also states that Subject, Newsgroups and Path are too. Ho hum.
+	 *
+	 * What about readinng mail from local spool via ~/.tin/active.mail,
+	 * they might not have a Message-ID but got_received is very likely to
+	 * be true.
 	 */
 	if (got_from && h->date && h->msgid) {
 		if (!h->subject)
@@ -1352,11 +1446,6 @@ parse_headers(
 }
 
 
-#ifdef DEBUG
-#	define handle_overview_fmt_error()	else oerror += 1<<count
-#else
-#	define handle_overview_fmt_error()
-#endif /* DEBUG */
 /*
  * Read in an overview index file. Fields are separated by TAB.
  * return the number of expired articles encountered or -1 if the user aborted
@@ -1373,7 +1462,7 @@ parse_headers(
  *	5. MessageID:     (ie. <123@ether.net>)    [mandatory]
  *	6. References:    (ie. <message-id> ....)  [optional]
  *	7. Byte count     (Skipped - not used)     [mandatory]
- *	8. Lines: line    (ie. 23)                 [mandatory]
+ *	8. Line count     (ie. 23)                 [mandatory]
  *	9. Xref: line     (ie. alt.test:389)       [optional]
  */
 static int
@@ -1386,6 +1475,7 @@ read_overview(
 {
 	FILE *fp;
 	char *ptr;
+	char *q;
 	char *buf;
 	char *group_msg;
 	char art_full_name[HEADER_LEN];
@@ -1394,9 +1484,7 @@ read_overview(
 	int expired = 0;
 	long artnum;
 	struct t_article *art;
-#ifdef DEBUG
-	unsigned int oerror = 0;
-#endif /* DEBUG */
+	size_t over_fields = 1;
 
 	/*
 	 * open the overview file (whether it be local or via nntp)
@@ -1408,6 +1496,35 @@ read_overview(
 		group->xmax = max;
 
 	group_msg = fmt_string(_(txt_group), cCOLS - strlen(_(txt_group)) + 2 - 3, group->name);
+
+	/* get the number of fields per over-record as announced by LIST OVERVIEW.FMT */
+	if (ofmt) {
+		for (; ofmt[over_fields].name; over_fields++)
+			;
+	}
+	if (!--over_fields) { /* e.g. nntp_caps.type == CAPABILITIES && !nntp_caps.list_overview_fmt -> assume defaults */
+		ofmt = my_realloc(ofmt, sizeof(struct t_overview_fmt) * (8 + 1));
+		ofmt[0].type = OVER_T_INT;
+		ofmt[0].name = my_strdup("Artnum:");
+		ofmt[1].type = OVER_T_STRING;
+		ofmt[1].name = my_strdup("Subject:");
+		ofmt[2].type = OVER_T_STRING;
+		ofmt[2].name = my_strdup("From:");
+		ofmt[3].type = OVER_T_STRING;
+		ofmt[3].name = my_strdup("Date:");
+		ofmt[4].type = OVER_T_STRING;
+		ofmt[4].name = my_strdup("Message-ID:");
+		ofmt[5].type = OVER_T_STRING;
+		ofmt[5].name = my_strdup("References:");
+		ofmt[6].type = OVER_T_INT;
+		ofmt[6].name = my_strdup("Bytes:");
+		ofmt[7].type = OVER_T_INT;
+		ofmt[7].name = my_strdup("Lines:");
+		ofmt[8].type = OVER_T_ERROR;
+		ofmt[8].name = NULL;
+		over_fields = 7;
+	}
+
 	while ((buf = tin_fgets(fp, FALSE)) != NULL) {
 		if (need_resize) {
 			handle_resize((need_resize == cRedraw) ? TRUE : FALSE);
@@ -1433,6 +1550,12 @@ read_overview(
 			continue;
 
 		/*
+		 * skip artnums below the given minimum (getart_limit)
+		 */
+		if (artnum < min)
+			continue;
+
+		/*
 		 * Check to make sure article in nov file has not expired in group
 		 */
 		if (artnum < group->xmin) {
@@ -1462,82 +1585,230 @@ read_overview(
 		 *       to check for additions like we do with xref_supported
 		 */
 		for (count = 1; (ptr = tin_strtok(NULL, "\t")) != NULL; count++) {
-			switch (count) {
-				case 1:		/* Subject */
-					/*
-					 * TODO: As eat_re() is also called in batch_mode we need
-					 *       to init (all) regexes (but do not use the others).
-					 *       Calling eat_re() isn't very wise at all as we use
-					 *       the modified subject for -N/-M batch opperations
-					 *       so ppl. can't tell from the subject if the posting
-					 *       was a reply or not.
-					 */
-					art->subject = hash_str(eat_re(eat_tab(convert_to_printable(rfc1522_decode(ptr))), FALSE));
-					break;
-
-				case 2:		/* From */
-					art->gnksa_code = parse_from(ptr, art_from_addr, art_full_name);
-					art->from = hash_str(buffer_to_ascii(art_from_addr));
-
-					if (*art_full_name)
-						art->name = hash_str(eat_tab(convert_to_printable(rfc1522_decode(art_full_name))));
-					break;
-
-				case 3:		/* Date */
-					art->date = parsedate(ptr, (TIMEINFO *) 0);
-#ifdef DEBUG
-					if (art->date == (time_t) -1)
-						oerror += 1<<count;
-#endif /* DEBUG */
-					break;
-
-				case 4:		/* Message-ID */
-					if (*ptr)
-						art->msgid = my_strdup(ptr);
-					handle_overview_fmt_error();
-					break;
-
-				case 5:		/* References */
-					if (*ptr)
-						art->refs = my_strdup(ptr);
-					break;
-
-				case 6:		/* Bytes */
-#ifdef DEBUG
-					if (!isdigit((unsigned char) *ptr))
-						oerror += 1<<count;
-#endif /* DEBUG */
-					break;
-
-				case 7:		/* Lines */
-					if (isdigit((unsigned char) *ptr))
-						art->line_count = atoi(ptr);
-					handle_overview_fmt_error();
-					break;
+			/* skip unexpected tailing fields */
+			if (count > over_fields) {
+#ifdef DEBUG
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "%s(%d) Unexpected overview-field %d of %d: %s", nntp_caps.over_cmd, artnum, count, over_fields, ptr);
+#endif /* DEBUG */
 
-				case 8:		/* Xref: */
-					if (!xref_supported)
+				/* "common error" Xref:full in overview-data but not in OVERVIEW.FTM */
+				if (count == over_fields + 1) {
+					if (!strncasecmp(ptr, "Xref: ", 6)) {
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "%s: found unexpected Xref: on semi std. position", nntp_caps.over_cmd);
+#endif /* DEBUG */
+						over_fields++;
+						ofmt = my_realloc(ofmt, sizeof(struct t_overview_fmt) * (over_fields + 2)); /* + 2 = artnum and end-marker */
+						ofmt[over_fields].type = OVER_T_FSTRING;
+						ofmt[over_fields].name = my_strdup("Xref:");
+						ofmt[over_fields + 1].type = OVER_T_ERROR;
+						ofmt[over_fields + 1].name = NULL;
+						xref_supported = TRUE;
+					} else
 						continue;
-					/* TODO: crosscheck artnum against Xref:-line (if Xref:full) */
-					if ((ptr = parse_header(ptr, "Xref", FALSE, FALSE)) != NULL)
-						art->xref = my_strdup(ptr);
-					handle_overview_fmt_error();
-					break;
+				} else
+					continue;
 			}
-		}
 
+			/* for duplicated headers this is last match counts, INN >= 2.5.3 does first match counts */
+			if (expensive_over_parse) { /* strange order */
+				/* madatory fields */
+				if (ofmt[count].type == OVER_T_STRING) {
+					if (!strcasecmp(ofmt[count].name, "Subject:")) {
+						if (*ptr)
+							art->subject = hash_str(eat_re(eat_tab(convert_to_printable(rfc1522_decode(ptr), FALSE)), FALSE));
+						else {
+							art->subject = hash_str("");
 #ifdef DEBUG
-		/* Complain if incorrect # of fields */
-		if (count < (xref_supported ? 8 : 7) || oerror) {
-			char errbuf[LEN];
-
-			error_message(_("%d Bad overview record (%d fields) '%s'"), oerror, count, BlankIfNull(ptr)); /* TODO move to lang.c */
-			snprintf(errbuf, sizeof(errbuf), "%d Bad overview record (%d fields)", oerror, count);
-			debug_nntp("read_overview", errbuf);
-		}
-		debug_print_header(art);
-		oerror = 0;
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) empty overview-field %s", nntp_caps.over_cmd, artnum, ofmt[count].name);
+#endif /* DEBUG */
+						}
+						continue;
+					}
+
+					if (!strcasecmp(ofmt[count].name, "From:")) {
+						if (*ptr) {
+							art->gnksa_code = parse_from(ptr, art_from_addr, art_full_name);
+							art->from = hash_str(buffer_to_ascii(art_from_addr));
+							if (*art_full_name)
+								art->name = hash_str(eat_tab(convert_to_printable(rfc1522_decode(art_full_name), FALSE)));
+						} else {
+							art->from = hash_str("");
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) empty overview-field %s", nntp_caps.over_cmd, artnum, ofmt[count].name);
+#endif /* DEBUG */
+						}
+						continue;
+					}
+
+					if (!strcasecmp(ofmt[count].name, "Date:")) {
+						art->date = parsedate(ptr, (TIMEINFO *) 0);
+#ifdef DEBUG
+						if ((debug & DEBUG_NNTP) && art->date == (time_t) -1)
+							debug_print_file("NNTP", "%s(%d) bogus overview-field %s %s", nntp_caps.over_cmd, artnum, ofmt[count].name, ptr);
+#endif /* DEBUG */
+						continue;
+					}
+
+					if (!strcasecmp(ofmt[count].name, "Message-ID:")) {
+						if (*ptr) {
+							FreeIfNeeded(art->msgid); /* if field is listed more than once in overview.fmt */
+							art->msgid = my_strdup(ptr);
+						} else {
+							art->msgid = NULL;
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) empty overview-field %s", nntp_caps.over_cmd, artnum, ofmt[count].name);
+#endif /* DEBUG */
+						}
+						continue;
+					}
+
+					if (!strcasecmp(ofmt[count].name, "References:")) {
+						if (*ptr) {
+							FreeIfNeeded(art->refs); /* if field is listed more than once in overview.fmt */
+							art->refs = my_strdup(ptr);
+						} else
+							art->refs = NULL;
+						continue;
+					}
+				}
+				/* metadata fields */
+				if (ofmt[count].type == OVER_T_INT) {
+					if (!strcasecmp(ofmt[count].name, "Bytes:")) {
+						if (*ptr) {
+#ifdef DEBUG
+							if ((debug & DEBUG_NNTP) && !isdigit((unsigned char) *ptr))
+									debug_print_file("NNTP", "%s(%d) overview field %d (%s) mismatch: %s", nntp_caps.over_cmd, artnum, count, ofmt[count].name, ptr);
+#endif /* DEBUG */
+						}
+						continue;
+					}
+
+					if (!strcasecmp(ofmt[count].name, "Lines:")) {
+						if (*ptr) {
+							if (isdigit((unsigned char) *ptr))
+								art->line_count = atoi(ptr);
+							else {
+								art->line_count = 0;
+#ifdef DEBUG
+								if (debug & DEBUG_NNTP)
+									debug_print_file("NNTP", "%s(%d) overview field %d (%s) mismatch: %s", nntp_caps.over_cmd, artnum, count, ofmt[count].name, ptr);
+#endif /* DEBUG */
+							}
+						} else
+							art->line_count = 0;
+						continue;
+					}
+				}
+			} else { /* first 7 fields are in RFC 3977 order */
+				switch (count) {
+					case 1: /* Subject: */
+						if (*ptr)
+							art->subject = hash_str(eat_re(eat_tab(convert_to_printable(rfc1522_decode(ptr), FALSE)), FALSE));
+						else {
+							art->subject = hash_str("");
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) empty overview-field %s", nntp_caps.over_cmd, artnum, ofmt[count].name);
+#endif /* DEBUG */
+						}
+						break;
+
+					case 2:	/* From: */
+						if (*ptr) {
+							art->gnksa_code = parse_from(ptr, art_from_addr, art_full_name);
+							art->from = hash_str(buffer_to_ascii(art_from_addr));
+							if (*art_full_name)
+								art->name = hash_str(eat_tab(convert_to_printable(rfc1522_decode(art_full_name), FALSE)));
+						} else {
+							art->from = hash_str("");
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) empty overview-field %s", nntp_caps.over_cmd, artnum, ofmt[count].name);
+#endif /* DEBUG */
+						}
+						break;
+
+					case 3:	/* Date: */
+						art->date = parsedate(ptr, (TIMEINFO *) 0);
+#ifdef DEBUG
+						if ((debug & DEBUG_NNTP) && art->date == (time_t) -1)
+							debug_print_file("NNTP", "%s(%d) bogus overview-field %s %s", nntp_caps.over_cmd, artnum, ofmt[count].name, ptr);
+#endif /* DEBUG */
+						break;
+
+					case 4:	/* Message-ID: */
+						if (*ptr)
+							art->msgid = my_strdup(ptr);
+						else {
+							art->msgid = NULL;
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) empty overview-field %s", nntp_caps.over_cmd, artnum, ofmt[count].name);
+#endif /* DEBUG */
+						}
+						break;
+
+					case 5:	/* References: */
+						if (*ptr)
+							art->refs = my_strdup(ptr);
+						else
+							art->refs = NULL;
+						break;
+
+					case 6:	/* :bytes || Bytes: */
+						if (*ptr) {
+#ifdef DEBUG
+							if ((debug & DEBUG_NNTP) && !isdigit((unsigned char) *ptr))
+								debug_print_file("NNTP", "%s(%d) overview field %d (%s) mismatch: %s", nntp_caps.over_cmd, artnum, count, ofmt[count].name, ptr);
+#endif /* DEBUG */
+						}
+						break;
+
+					case 7:	/* :lines || Lines: */
+						if (*ptr) {
+							if (isdigit((unsigned char) *ptr))
+								art->line_count = atoi(ptr);
+							else {
+								art->line_count = 0;
+#ifdef DEBUG
+								if (debug & DEBUG_NNTP)
+									debug_print_file("NNTP", "%s(%d) overview field %d (%s) mismatch: %s", nntp_caps.over_cmd, artnum, count, ofmt[count].name, ptr);
 #endif /* DEBUG */
+							}
+						} else
+							art->line_count = 0;
+						break;
+
+					default:
+						break;
+				}
+			}
+
+			/* optional fields; for duplicated headers: last match counts, INN >= 2.5.3 does first match counts */
+			if (ofmt[count].type == OVER_T_FSTRING) {
+				if (*ptr) {
+					if (!strcasecmp(ofmt[count].name, "Xref:")) {
+						if ((q = parse_header(ptr, "Xref", FALSE, FALSE, FALSE)) != NULL) {
+							FreeIfNeeded(art->xref); /* if field is listed more than once in overview.fmt */
+							art->xref = my_strdup(q);
+						}
+#ifdef DEBUG
+						else {
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "%s(%d) bogus overview-field %s %s", nntp_caps.over_cmd, artnum, ofmt[count].name, ptr);
+						}
+#endif /* DEBUG */
+					}
+				}
+				continue;
+			}
+		}
 
 		/*
 		 * RFC says Message-ID is mandatory in newsgroups (but not in
@@ -1553,13 +1824,79 @@ read_overview(
 
 		top_art++;				/* Basically this statement commits the article */
 	}
-	free(group_msg);
 
+	free(group_msg);
 	TIN_FCLOSE(fp);
 
 	if (tin_errno)
 		return -1;
 
+#if defined(NNTP_ABLE) && defined(XHDR_XREF)
+	if (read_news_via_nntp && !read_saved_news && !xref_supported && nntp_caps.hdr_cmd) {
+		char cbuf[HEADER_LEN];
+		static t_bool found;
+		static t_bool first = TRUE;
+
+		if (first) {
+			found = TRUE;
+			/*
+			 * TODO: do once a start and cache full result
+			 *       if "LIST HEADERS RANGE" failed try "LIST HEADERS"?
+			 */
+			if (nntp_caps.type == CAPABILITIES && nntp_caps.list_headers) {
+				int i = new_nntp_command("LIST HEADERS RANGE", 215, cbuf, sizeof(cbuf));
+
+				found = FALSE;
+				switch (i) {
+					case 215:
+						while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
+#	ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "<<< %s", ptr);
+#	endif /* DEBUG */
+							if (!found && ((*ptr == ':' && *(ptr + 1) == '\0') || !strncasecmp(ptr, "Xref", 4)))
+								found = TRUE;
+						}
+						break;
+
+					default:
+						break;
+				}
+				first = FALSE;
+			}
+		}
+
+		if (found) {
+			snprintf(cbuf, sizeof(cbuf), "%s XREF %ld-%ld", nntp_caps.hdr_cmd, min, MAX(min, max));
+			group_msg = fmt_string("%s XREF loop", nntp_caps.hdr_cmd); /* TODO: find a better message, move to lang.c */
+			if ((fp = nntp_command(cbuf, nntp_caps.hdr ? OK_HDR : OK_HEAD, NULL, 0)) != NULL) { /* RFC 2980 (XHDR) uses 221; RFC 3977 (HDR) uses 225 */
+				while ((ptr = tin_fgets(fp, FALSE)) != NULL) {
+					artnum = atol(ptr);
+					if (artnum <= 0 || artnum < group->xmin || artnum > group->xmax)
+						continue;
+					art = &arts[top_art];
+					set_article(art);
+					if (!art->xref && !strstr(ptr, "(none)")) {
+						if ((q = strchr(ptr, ' ')) == NULL) /* skip article number */
+							continue;
+						ptr = q;
+						while (*ptr && isspace((int) *ptr))
+							ptr++;
+						q = strchr(ptr, '\n');
+						if (q)
+							*q = '\0';
+						art->xref = my_strdup(ptr);
+					}
+					/* we might loose accuracy here, but that shouldn't hurt */
+					if (artnum % MODULO_COUNT_NUM == 0)
+						show_progress(group_msg, artnum - min, max - min);
+				}
+			}
+			free(group_msg);
+		}
+	}
+#endif /* NNTP_ABLE && XHDR_XREF */
+
 	return expired;
 }
 
@@ -1575,7 +1912,7 @@ read_overview(
  *	5. MessageID:     (ie. <123@ether.net>)    [mandatory]
  *	6. References:    (ie. <message-id> ....)  [optional]
  *	7. Byte count     (Skipped - not used)     [mandatory]
- *	8. Lines: line    (ie. 23)                 [mandatory]
+ *	8. Line count     (ie. 23)                 [mandatory]
  *	9. Xref: line     (ie. alt.test:389)       [optional]
  *
  * TODO: as we don't use the original data, we currently can't store
@@ -1585,7 +1922,7 @@ read_overview(
  *       with a wrong charset and thus lose information. a simmiliar problem
  *       exists with the data for the from:-line, we don't store it in the
  *       original format, whenever our from-parser (partially) fails we'll
- *       lose informations in our overviews (but those couldn't be handeled
+ *       lose information in our overviews (but those couldn't be handeled
  *       by tin anyway, so this is not a real problem).
  *       long-term solution: store the original data in the overview
  *       (tin has to handle raw 8bit data and other ugly stuff in the
@@ -1596,7 +1933,7 @@ read_overview(
  *       which hold the raw data for from/subject. the latter has the
  *       disadvantage that it costs (much) more memory.
  */
-void
+static void
 write_overview(
 	struct t_group *group)
 {
@@ -1605,15 +1942,15 @@ write_overview(
 	struct t_article *article;
 
 	/*
-	 * Can't write or caching is off
+	 * Can't write or caching is off or getart_limit is set
 	 */
-	if (no_write || !tinrc.cache_overview_files)
+	if (no_write || !tinrc.cache_overview_files || (cmdline.args & CMDLINE_GETART_LIMIT ? cmdline.getart_limit : tinrc.getart_limit) != 0)
 		return;
 
 	if ((fp = open_xover_fp(group, "w", 0L, 0L, FALSE)) == NULL)
 		return;
 
-	if (group->attribute->sort_art_type != SORT_ARTICLES_BY_NOTHING)
+	if (group->attribute->sort_article_type != SORT_ARTICLES_BY_NOTHING)
 		SortBy(artnum_comp);
 
 	/*
@@ -1622,12 +1959,13 @@ write_overview(
 	fprintf(fp, "%s\n", group->name);
 
 	for_each_art(i) {
+		char *p;
+		char *q, *ref;
+
 		article = &arts[i];
 
 		if (article->thread != ART_EXPIRED && article->artnum >= group->xmin) {
-			char *p;
-			char *q = NULL, *ref = NULL;
-
+			ref = NULL;
 			/*
 			 * TODO: instead of tinrc.mm_local_charset we'd better use UTF-8
 			 *       here and in print_from() in the CHARSET_CONVERSION case.
@@ -1663,8 +2001,8 @@ write_overview(
 
 			fprintf(fp, "%ld\t%s\t%s\t%s\t%s\t%s\t%d\t%d",
 				article->artnum,
-				tinrc.post_8bit_header ? article->subject : p,
-				print_from(article),
+				group->attribute->post_8bit_header ? article->subject : p,
+				print_from(group, article),
 				print_date(article->date),
 				BlankIfNull(article->msgid),
 				BlankIfNull(ref),
@@ -1676,9 +2014,9 @@ write_overview(
 
 			fprintf(fp, "\n");
 			free(p);
-			if (q != ref) {
-				free(ref);
-				ref = q = NULL;
+			if (article->refs) {
+				FreeIfNeeded(ref);
+				q = NULL;
 			}
 		}
 	}
@@ -1738,7 +2076,7 @@ find_nov_file(
 			 */
 
 			/*
-			 * When reading via NNTP, system wide overviews are irrelevent, of
+			 * When reading via NNTP, system wide overviews are irrelevant, of
 			 * course, and the private overview filename will be the same for
 			 * both reading and writing.
 			 *
@@ -1751,8 +2089,8 @@ find_nov_file(
 			 */
 #ifndef NNTP_ONLY
 			if (!read_news_via_nntp) {
-				make_base_group_path(novrootdir, group->name, buf);
-				joinpath(nov_file, buf, novfilename);
+				make_base_group_path(novrootdir, group->name, buf, sizeof(buf));
+				joinpath(nov_file, sizeof(nov_file), buf, novfilename);
 				if (access(nov_file, R_OK) == 0) {
 					if (mode == R_OK)
 						return nov_file;		/* Use system wide overviews */
@@ -1806,7 +2144,7 @@ find_nov_file(
 			 * now that we know it is valid
 			 */
 			if (!once_only)
-				joinpath(local_newsgroups_file, index_newsdir, NEWSGROUPS_FILE);
+				joinpath(local_newsgroups_file, sizeof(local_newsgroups_file), index_newsdir, NEWSGROUPS_FILE);
 
 			dir = index_newsdir;
 			break;
@@ -1828,7 +2166,7 @@ find_nov_file(
 		char *ptr;
 
 		snprintf(buf, sizeof(buf), "%lu.%d", hash, i);
-		joinpath(nov_file, dir, buf);
+		joinpath(nov_file, sizeof(nov_file), dir, buf);
 
 		if ((fp = fopen(nov_file, "r")) == NULL)
 			break;
@@ -2145,16 +2483,16 @@ score_comp_base(
 	t_comptype p1,
 	t_comptype p2)
 {
-	int a = get_score_of_thread(*(const long *)p1);
-	int b = get_score_of_thread(*(const long *)p2);
+	int a = get_score_of_thread(*(const long *) p1);
+	int b = get_score_of_thread(*(const long *) p2);
 
 	/* If scores are equal, compare using the article sort order.
 	 * This determines the order in a group of equally scored threads.
 	 */
 	if (a == b) {
-		const struct t_article *s1 = &arts[*(const long *)p1];
-		const struct t_article *s2 = &arts[*(const long *)p2];
-		t_compfunc comp_func = eval_sort_arts_func(CURR_GROUP.attribute->sort_art_type);
+		const struct t_article *s1 = &arts[*(const long *) p1];
+		const struct t_article *s2 = &arts[*(const long *) p2];
+		t_compfunc comp_func = eval_sort_arts_func(CURR_GROUP.attribute->sort_article_type);
 
 		if (comp_func)
 			return (*comp_func)(s1, s2);
@@ -2167,6 +2505,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)
@@ -2181,7 +2574,7 @@ set_article(
 	art->refptr = NULL;
 	art->line_count = -1;
 	art->archive = NULL;
-	art->tagged = FALSE;
+	art->tagged = 0;
 	art->thread = ART_EXPIRED;
 	art->prev = ART_NORMAL;
 	art->score = 0;
@@ -2192,6 +2585,7 @@ set_article(
 	art->selected = FALSE;
 	art->inrange = FALSE;
 	art->matched = FALSE;
+	art->keep_in_base = FALSE;
 }
 
 
@@ -2219,7 +2613,7 @@ valid_artnum(
 			return cur;
 
 		prev = cur;
-		cur += (arts[cur].artnum < art) ? range : -range;
+		cur += ((arts[cur].artnum < art) ? range : -range);
 		if (prev == cur)
 			break;
 
@@ -2232,6 +2626,25 @@ valid_artnum(
 }
 
 
+/*
+ * Loop over arts[] to see if 'art' (an article number) exists in arts[]
+ * Needed if arts[] is not sorted on artnum
+ * Return index into arts[] or -1
+ */
+int
+find_artnum(
+	long art)
+{
+	int i;
+
+	for_each_art(i) {
+		if (arts[i].artnum == art)
+			return i;
+	}
+	return -1;
+}
+
+
 /*----------------------------- Overview handling -----------------------*/
 
 static char *
@@ -2258,6 +2671,7 @@ print_date(
 
 static char *
 print_from(
+	struct t_group *group,
 	struct t_article *article)
 {
 	char *p;
@@ -2269,13 +2683,12 @@ print_from(
 		p = rfc1522_encode(article->name, tinrc.mm_local_charset, FALSE);
 		unfold_header(p);
 		if (strpbrk(article->name, "\".:;<>@[]()\\") != NULL && article->name[0] != '"' && article->name[strlen(article->name)] != '"')
-			snprintf(from, sizeof(from), "\"%s\" <%s>", tinrc.post_8bit_header ? article->name : p, article->from);
+			snprintf(from, sizeof(from), "\"%s\" <%s>", group->attribute->post_8bit_header ? article->name : p, article->from);
 		else
-			snprintf(from, sizeof(from), "%s <%s>", tinrc.post_8bit_header ? article->name : p, article->from);
+			snprintf(from, sizeof(from), "%s <%s>", group->attribute->post_8bit_header ? article->name : p, article->from);
 
 		free(p);
-	}
-	else
+	} else
 		STRCPY(from, article->from);
 
 	return from;
@@ -2298,7 +2711,12 @@ open_xover_fp(
 	if (!local && nntp_caps.over_cmd && *mode == 'r' && group->type == GROUP_TYPE_NEWS) {
 		char line[NNTP_STRLEN];
 
-		snprintf(line, sizeof(line), "%s %ld-%ld", nntp_caps.over_cmd, min, max);
+		if (!max)
+			return NULL;
+		if (min == max)
+			snprintf(line, sizeof(line), "%s %ld", nntp_caps.over_cmd, min);
+		else
+			snprintf(line, sizeof(line), "%s %ld-%ld", nntp_caps.over_cmd, min, MAX(min, max));
 		return (nntp_command(line, OK_XOVER, NULL, 0));
 	}
 #endif /* NNTP_ABLE */
@@ -2311,7 +2729,7 @@ open_xover_fp(
 				return fp;
 
 			if (*mode != 'r')
-				error_message(_(txt_cannot_open), nov_file);
+				error_message(2, _(txt_cannot_open), nov_file);
 		}
 	}
 	return NULL;
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/attrib.c tin-2.0.0/src/attrib.c
--- tin-1.8.3/src/attrib.c	2005-12-02 12:07:35.000000000 +0100
+++ tin-2.0.0/src/attrib.c	2011-05-10 15:45:52.080796362 +0200
@@ -3,10 +3,10 @@
  *  Module    : attrib.c
  *  Author    : I. Lea
  *  Created   : 1993-12-01
- *  Updated   : 2005-06-30
+ *  Updated   : 2011-05-08
  *  Notes     : Group attribute routines
  *
- * Copyright (c) 1993-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1993-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -41,82 +41,31 @@
 #ifndef VERSION_H
 #	include "version.h"
 #endif /* !VERSION_H */
+#ifndef TCURSES_H
+#	include "tcurses.h"
+#endif /* !TCURSES_H */
 
-#ifdef DEBUG
-#	ifndef TCURSES_H
-#		include "tcurses.h"
-#	endif /* !TCURSES_H */
-#endif /* DEBUG */
 
 /*
- * Defines used in setting attributes switch
+ * Global file offset for local_attributes_file
  */
-enum {
-	ATTRIB_MAILDIR,
-	ATTRIB_SAVEDIR,
-	ATTRIB_SAVEFILE,
-	ATTRIB_ORGANIZATION,
-	ATTRIB_FROM,
-	ATTRIB_SIGFILE,
-	ATTRIB_FOLLOWUP_TO,
-	ATTRIB_AUTO_SELECT,
-	ATTRIB_AUTO_SAVE,
-	ATTRIB_BATCH_SAVE,
-	ATTRIB_DELETE_TMP_FILES,
-	ATTRIB_SHOW_ONLY_UNREAD,
-	ATTRIB_THREAD_ARTS,
-	ATTRIB_THREAD_PERC,
-	ATTRIB_SHOW_AUTHOR,
-	ATTRIB_SHOW_INFO,
-	ATTRIB_SORT_ART_TYPE,
-	ATTRIB_POST_PROC_TYPE,
-	ATTRIB_QUICK_KILL_HEADER,
-	ATTRIB_QUICK_KILL_SCOPE,
-	ATTRIB_QUICK_KILL_EXPIRE,
-	ATTRIB_QUICK_KILL_CASE,
-	ATTRIB_QUICK_SELECT_HEADER,
-	ATTRIB_QUICK_SELECT_SCOPE,
-	ATTRIB_QUICK_SELECT_EXPIRE,
-	ATTRIB_QUICK_SELECT_CASE,
-	ATTRIB_MAILING_LIST,
-	ATTRIB_X_HEADERS,
-	ATTRIB_X_BODY,
-	ATTRIB_AUTO_SAVE_MSG, /* TODO: what is this? dublicate of ATTRIB_AUTO_SAVE? */
-	ATTRIB_X_COMMENT_TO,
-	ATTRIB_FCC,
-	ATTRIB_NEWS_QUOTE,
-	ATTRIB_QUOTE_CHARS,
-	ATTRIB_MIME_TYPES_TO_SAVE,
-	ATTRIB_MIME_FORWARD,
-#ifdef HAVE_ISPELL
-		ATTRIB_ISPELL,
-#endif /* HAVE_ISPELL */
-	ATTRIB_SORT_THREADS_TYPE,
-	ATTRIB_TEX2ISO_CONV
-#ifdef CHARSET_CONVERSION
-	,ATTRIB_MM_NETWORK_CHARSET
-	,ATTRIB_UNDECLARED_CHARSET
-#endif /* CHARSET_CONVERSION */
-};
+int attrib_file_offset;
+
 
 /*
  * Local prototypes
  */
-static void do_set_attrib(struct t_group *group, int type, const char *data);
-static void read_attributes_file(t_bool global_file, t_bool startup);
-static void set_attrib(int type, const char *scope, const char *data);
-static void set_default_attributes(struct t_attribute *attributes);
-#if 0 /* unused */
-#	ifdef DEBUG
+static void set_attrib(int type, const char *scope, void *data);
+static void set_default_attributes(struct t_attribute *attributes, struct t_attribute *scope, t_bool global);
+static void set_default_state(struct t_attribute_state *state);
+#ifdef DEBUG
 	static void dump_attributes(void);
-#	endif /* DEBUG */
-#endif /* 0 */
+	static void dump_scopes(const char *fname);
+#	if 0 /* unused */
+		static void debug_print_filter_attributes(void);
+#	endif /* 0 */
+#endif /* DEBUG */
 
-/*
- * Global attributes. This is attached to all groups that have no
- * specific attributes.
- */
-struct t_attribute glob_attributes;
 
 /*
  * Per group attributes. This fills out a basic template of defaults
@@ -124,45 +73,81 @@ struct t_attribute glob_attributes;
  */
 static void
 set_default_attributes(
-	struct t_attribute *attributes)
+	struct t_attribute *attributes,
+	struct t_attribute *scope,
+	t_bool global)
 {
-	attributes->global = FALSE;	/* global/group specific */
-	attributes->maildir = tinrc.maildir;
-	attributes->savedir = tinrc.savedir;
+	attributes->global = (global ? TRUE : FALSE);	/* global/group specific */
+	attributes->maildir = (scope ? scope->maildir : (global ? tinrc.maildir : NULL));
+	attributes->savedir = (scope ? scope->savedir : (global ? tinrc.savedir : NULL));
 	attributes->savefile = NULL;
-	attributes->sigfile = tinrc.sigfile;
-	attributes->organization = (*default_organization ? default_organization : NULL);
+	attributes->sigfile = (scope ? scope->sigfile : (global ? tinrc.sigfile : NULL));
+	attributes->date_format = (scope ? scope->date_format : (global ? tinrc.date_format : NULL));
+	attributes->editor_format = (scope ? scope->editor_format : (global ? tinrc.editor_format : NULL));
+	attributes->organization = (scope ? scope->organization : (global ? (*default_organization ? default_organization : NULL) : NULL));
 	attributes->followup_to = NULL;
 	attributes->mailing_list = NULL;
 	attributes->x_headers = NULL;
 	attributes->x_body = NULL;
-	attributes->from = tinrc.mail_address;
-	attributes->news_quote_format = tinrc.news_quote_format;
-	attributes->quote_chars = tinrc.quote_chars;
-	attributes->mime_types_to_save = my_strdup("*/*");
+	attributes->from = (scope ? scope->from : (global ? tinrc.mail_address : NULL));
+	attributes->news_quote_format = (scope ? scope->news_quote_format : (global ? tinrc.news_quote_format : NULL));
+	attributes->quote_chars = (scope ? scope->quote_chars : (global ? tinrc.quote_chars : NULL));
+	attributes->mime_types_to_save = (scope ? scope->mime_types_to_save : (global ? my_strdup("*/*") : NULL));
 #ifdef HAVE_ISPELL
 	attributes->ispell = NULL;
 #endif /* HAVE_ISPELL */
-	attributes->quick_kill_scope = (tinrc.default_filter_kill_global ? my_strdup("*") : NULL);
+	attributes->quick_kill_scope = (scope ? scope->quick_kill_scope : (global ? (tinrc.default_filter_kill_global ? my_strdup("*") : NULL) : NULL));
 	attributes->quick_kill_header = tinrc.default_filter_kill_header;
 	attributes->quick_kill_case = tinrc.default_filter_kill_case;
 	attributes->quick_kill_expire = tinrc.default_filter_kill_expire;
-	attributes->quick_select_scope = (tinrc.default_filter_select_global ? my_strdup("*") : NULL);
+	attributes->quick_select_scope = (scope ? scope->quick_select_scope : (global ? (tinrc.default_filter_select_global ? my_strdup("*") : NULL) : NULL));
 	attributes->quick_select_header = tinrc.default_filter_select_header;
 	attributes->quick_select_case = tinrc.default_filter_select_case;
 	attributes->quick_select_expire = tinrc.default_filter_select_expire;
-	attributes->show_only_unread = tinrc.show_only_unread_arts;
-	attributes->thread_arts = tinrc.thread_articles;
+	attributes->show_only_unread_arts = tinrc.show_only_unread_arts;
+	attributes->thread_articles = tinrc.thread_articles;
+	attributes->thread_catchup_on_exit = tinrc.thread_catchup_on_exit;
 	attributes->thread_perc = tinrc.thread_perc;
-	attributes->sort_art_type = tinrc.sort_article_type;
+	attributes->sort_article_type = tinrc.sort_article_type;
 	attributes->sort_threads_type = tinrc.sort_threads_type;
 	attributes->show_info = tinrc.show_info;
 	attributes->show_author = tinrc.show_author;
+	attributes->show_signatures = tinrc.show_signatures;
+	attributes->trim_article_body = tinrc.trim_article_body;
+	attributes->verbatim_handling = tinrc.verbatim_handling;
+	attributes->wrap_on_next_unread = tinrc.wrap_on_next_unread;
+	attributes->add_posted_to_filter = tinrc.add_posted_to_filter;
+	attributes->advertising = tinrc.advertising;
+	attributes->alternative_handling = tinrc.alternative_handling;
+	attributes->ask_for_metamail = tinrc.ask_for_metamail;
+	attributes->auto_cc_bcc = tinrc.auto_cc_bcc;
+	attributes->auto_list_thread = tinrc.auto_list_thread;
 	attributes->auto_save = tinrc.auto_save;
 	attributes->auto_select = FALSE;
 	attributes->batch_save = tinrc.batch_save;
 	attributes->delete_tmp_files = FALSE;
-	attributes->post_proc_type = tinrc.post_process;
+	attributes->group_catchup_on_exit = tinrc.group_catchup_on_exit;
+	attributes->mail_8bit_header = tinrc.mail_8bit_header;
+	attributes->mail_mime_encoding = tinrc.mail_mime_encoding;
+	attributes->mark_ignore_tags = tinrc.mark_ignore_tags;
+	attributes->mark_saved_read = tinrc.mark_saved_read;
+	attributes->news_headers_to_display = (global ? tinrc.news_headers_to_display : NULL);
+	attributes->headers_to_display = (scope ? (scope->headers_to_display ? scope->headers_to_display : NULL) : NULL);
+	attributes->news_headers_to_not_display = (global ? tinrc.news_headers_to_not_display : NULL);
+	attributes->headers_to_not_display = (scope ? (scope->headers_to_not_display ? scope->headers_to_not_display : NULL) : NULL);
+	attributes->pos_first_unread = tinrc.pos_first_unread;
+	attributes->post_8bit_header = tinrc.post_8bit_header;
+	attributes->post_mime_encoding = tinrc.post_mime_encoding;
+	attributes->post_process_view = tinrc.post_process_view;
+	attributes->post_process_type = tinrc.post_process_type;
+#ifndef DISABLE_PRINTING
+	attributes->print_header = tinrc.print_header;
+#endif /* !DISABLE_PRINTING */
+	attributes->process_only_unread = tinrc.process_only_unread;
+	attributes->prompt_followupto = tinrc.prompt_followupto;
+	attributes->sigdashes = tinrc.sigdashes;
+	attributes->signature_repost = tinrc.signature_repost;
+	attributes->start_editor_offset = tinrc.start_editor_offset;
 	attributes->x_comment_to = FALSE;
 	attributes->tex2iso_conv = tinrc.tex2iso_conv;
 	attributes->mime_forward = FALSE;
@@ -174,16 +159,99 @@ set_default_attributes(
 }
 
 
+static void
+set_default_state(
+	struct t_attribute_state *state)
+{
+	state->add_posted_to_filter = FALSE;
+	state->advertising = FALSE;
+	state->alternative_handling = FALSE;
+	state->ask_for_metamail = FALSE;
+	state->auto_cc_bcc = FALSE;
+	state->auto_list_thread = FALSE;
+	state->auto_save = FALSE;
+	state->auto_select = FALSE;
+	state->batch_save = FALSE;
+	state->date_format = FALSE;
+	state->delete_tmp_files = FALSE;
+	state->editor_format = FALSE;
+	state->fcc = FALSE;
+	state->followup_to = FALSE;
+	state->from = FALSE;
+	state->group_catchup_on_exit = FALSE;
+#ifdef HAVE_ISPELL
+	state->ispell = FALSE;
+#endif /* HAVE_ISPELL */
+	state->mail_8bit_header = FALSE;
+	state->mail_mime_encoding = FALSE;
+	state->maildir = FALSE;
+	state->mailing_list = FALSE;
+	state->mark_ignore_tags = FALSE;
+	state->mark_saved_read = FALSE;
+	state->mime_forward = FALSE;
+	state->mime_types_to_save = FALSE;
+	state->news_headers_to_display = FALSE;
+	state->news_headers_to_not_display = FALSE;
+	state->news_quote_format = FALSE;
+	state->organization = FALSE;
+	state->pos_first_unread = FALSE;
+	state->post_8bit_header = FALSE;
+	state->post_mime_encoding = FALSE;
+	state->post_process_type = FALSE;
+	state->post_process_view = FALSE;
+#ifndef DISABLE_PRINTING
+	state->print_header = FALSE;
+#endif /* !DISABLE_PRINTING */
+	state->process_only_unread = FALSE;
+	state->prompt_followupto = FALSE;
+	state->quick_kill_case = FALSE;
+	state->quick_kill_expire = FALSE;
+	state->quick_kill_header = FALSE;
+	state->quick_kill_scope = FALSE;
+	state->quick_select_case = FALSE;
+	state->quick_select_expire = FALSE;
+	state->quick_select_header = FALSE;
+	state->quick_select_scope = FALSE;
+	state->quote_chars = FALSE;
+	state->savedir = FALSE;
+	state->savefile = FALSE;
+	state->show_author = FALSE;
+	state->show_info = FALSE;
+	state->show_only_unread_arts = FALSE;
+	state->show_signatures = FALSE;
+	state->sigdashes = FALSE;
+	state->sigfile = FALSE;
+	state->signature_repost = FALSE;
+	state->sort_article_type = FALSE;
+	state->sort_threads_type = FALSE;
+	state->start_editor_offset = FALSE;
+	state->tex2iso_conv = FALSE;
+	state->thread_articles = FALSE;
+	state->thread_catchup_on_exit = FALSE;
+	state->thread_perc = FALSE;
+	state->trim_article_body = FALSE;
+#ifdef CHARSET_CONVERSION
+	state->undeclared_charset = FALSE;
+	state->mm_network_charset = FALSE;
+#endif /* CHARSET_CONVERSION */
+	state->verbatim_handling = FALSE;
+	state->wrap_on_next_unread = FALSE;
+	state->x_body = FALSE;
+	state->x_comment_to = FALSE;
+	state->x_headers = FALSE;
+}
+
+
 #define MATCH_BOOLEAN(pattern, type) \
 	if (match_boolean(line, pattern, &flag)) { \
 		num = (flag != FALSE); \
-		set_attrib(type, scope, (char *) &num); \
+		set_attrib(type, scope, &num); \
 		found = TRUE; \
 		break; \
 	}
 #define MATCH_INTEGER(pattern, type, maxval) \
 	if (match_integer(line, pattern, &num, maxval)) { \
-		set_attrib(type, scope, (char *) &num); \
+		set_attrib(type, scope, &num); \
 		found = TRUE; \
 		break; \
 	}
@@ -193,453 +261,838 @@ set_default_attributes(
 		found = TRUE; \
 		break; \
 	}
-#ifdef CHARSET_CONVERSION
-#	define MATCH_LIST(pattern, type, table, tablelen) \
-		if (match_list(line, pattern, table, tablelen, &num)) { \
-			set_attrib(type, scope, (char *) &num); \
-			found = TRUE; \
-			break; \
-		}
-#endif /* CHARSET_CONVERSION */
-#if !defined(CHARSET_CONVERSION) || !defined(HAVE_ISPELL)
+#define MATCH_LIST(pattern, type, table, tablelen) \
+	if (match_list(line, pattern, table, tablelen, &num)) { \
+		set_attrib(type, scope, &num); \
+		found = TRUE; \
+		break; \
+	}
+#if !defined(CHARSET_CONVERSION) || !defined(HAVE_ISPELL) || defined(DISABLE_PRINTING)
 #	define SKIP_ITEM(pattern) \
 		if (!strncmp(line, pattern, strlen(pattern))) { \
 			found = TRUE; \
 			break; \
 		}
-#endif /* !CHARSET_CONVERSION || !HAVE_ISPELL */
+#endif /* !CHARSET_CONVERSION || !HAVE_ISPELL || DISABLE_PRINTING */
 
 
 /*
- * (re)read global/local attributes file
+ * read global/local attributes file
  */
 void
-read_attributes_files(
-	void)
-{
-	static t_bool startup = TRUE;
-
-	if (!startup) { /* reinit attributes */
-		free_attributes_array();
-		read_attributes_file(TRUE, startup);
-		read_attributes_file(FALSE, startup);
-	} else {
-		if (!batch_mode || verbose)
-			wait_message(0, _(txt_reading_attributes_file), _(txt_global));
-		read_attributes_file(TRUE, startup);
-		if (!batch_mode || verbose)
-			wait_message(0, _(txt_reading_attributes_file), "");
-		read_attributes_file(FALSE, startup);
-		startup = FALSE;
-	}
-}
-
-
-static void
 read_attributes_file(
-	t_bool global_file,
-	t_bool startup)
+	t_bool global_file)
 {
 	FILE *fp;
 	char *file;
 	char buf[LEN];
 	char line[LEN];
 	char scope[LEN];
-	int num;
-	int i;
-	int upgrade = RC_CHECK;
+	int i, num;
+	enum rc_state upgrade = RC_CHECK;
+	static t_bool startup = TRUE;
 	t_bool flag, found = FALSE;
 
+	if (!batch_mode || verbose)
+		wait_message(0, _(txt_reading_attributes_file), (global_file ? _(txt_global) : ""));
 	/*
 	 * Initialize global attributes even if there is no global file
 	 * These setting are used as the default for all groups unless overridden
 	 */
 	if (global_file) {
-		set_default_attributes(&glob_attributes);
-		glob_attributes.global = TRUE;
+		i = add_scope("_default_");
+		scopes[i].global = TRUE;
+		set_default_attributes(scopes[i].attribute, NULL, TRUE);
+		build_news_headers_array(scopes[i].attribute, TRUE);
+		build_news_headers_array(scopes[i].attribute, FALSE);
 		file = global_attributes_file;
-	} else
+	} else {
+		attrib_file_offset = 1;
 		file = local_attributes_file;
+	}
 
 	if ((fp = fopen(file, "r")) != NULL) {
 		scope[0] = '\0';
 		while (fgets(line, (int) sizeof(line), fp) != NULL) {
-			if (line[0] == '#' || line[0] == '\n') {
-				if (!global_file && startup && upgrade == RC_CHECK)
-					upgrade = check_upgrade(line, "# Group attributes file V", ATTRIBUTES_VERSION);
+			if (line[0] == '\n')
+				continue;
+			if (line[0] == '#') {
+				if (!global_file) {
+					if (scope[0] == '\0')
+						attrib_file_offset++;
+					if (startup && upgrade == RC_CHECK && match_string(line, "# Group attributes file V", NULL, 0)) {
+						upgrade = check_upgrade(line, "# Group attributes file V", ATTRIBUTES_VERSION);
+						if (upgrade != RC_IGNORE)
+							upgrade_prompt_quit(upgrade, file); /* TODO: do something (more) useful here */
+					}
+				}
 				continue;
 			}
 
 			switch (tolower((unsigned char) line[0])) {
 				case 'a':
-					MATCH_BOOLEAN("auto_save=", ATTRIB_AUTO_SAVE);
-					MATCH_BOOLEAN("auto_select=", ATTRIB_AUTO_SELECT);
+					MATCH_BOOLEAN("add_posted_to_filter=", OPT_ATTRIB_ADD_POSTED_TO_FILTER);
+					MATCH_BOOLEAN("advertising=", OPT_ATTRIB_ADVERTISING);
+					MATCH_BOOLEAN("alternative_handling=", OPT_ATTRIB_ALTERNATIVE_HANDLING);
+					MATCH_BOOLEAN("ask_for_metamail=", OPT_ATTRIB_ASK_FOR_METAMAIL);
+					MATCH_INTEGER("auto_cc_bcc=", OPT_ATTRIB_AUTO_CC_BCC, AUTO_CC_BCC);
+					MATCH_BOOLEAN("auto_list_thread=", OPT_ATTRIB_AUTO_LIST_THREAD);
+					MATCH_BOOLEAN("auto_save=", OPT_ATTRIB_AUTO_SAVE);
+					MATCH_BOOLEAN("auto_select=", OPT_ATTRIB_AUTO_SELECT);
 					break;
 
 				case 'b':
-					MATCH_BOOLEAN("batch_save=", ATTRIB_BATCH_SAVE);
+					MATCH_BOOLEAN("batch_save=", OPT_ATTRIB_BATCH_SAVE);
 					break;
 
 				case 'd':
-					MATCH_BOOLEAN("delete_tmp_files=", ATTRIB_DELETE_TMP_FILES);
+					MATCH_STRING("date_format=", OPT_ATTRIB_DATE_FORMAT);
+					MATCH_BOOLEAN("delete_tmp_files=", OPT_ATTRIB_DELETE_TMP_FILES);
+					break;
+
+				case 'e':
+					MATCH_STRING("editor_format=", OPT_ATTRIB_EDITOR_FORMAT);
 					break;
 
 				case 'f':
-					MATCH_STRING("fcc=", ATTRIB_FCC);
-					MATCH_STRING("followup_to=", ATTRIB_FOLLOWUP_TO);
-					MATCH_STRING("from=", ATTRIB_FROM);
+					MATCH_STRING("fcc=", OPT_ATTRIB_FCC);
+					MATCH_STRING("followup_to=", OPT_ATTRIB_FOLLOWUP_TO);
+					MATCH_STRING("from=", OPT_ATTRIB_FROM);
+					break;
+
+				case 'g':
+					MATCH_BOOLEAN("group_catchup_on_exit=", OPT_ATTRIB_GROUP_CATCHUP_ON_EXIT);
 					break;
 
 				case 'i':
 #ifdef HAVE_ISPELL
-					MATCH_STRING("ispell=", ATTRIB_ISPELL);
+					MATCH_STRING("ispell=", OPT_ATTRIB_ISPELL);
 #else
 					SKIP_ITEM("ispell=");
 #endif /* HAVE_ISPELL */
 					break;
 
 				case 'm':
-					MATCH_STRING("maildir=", ATTRIB_MAILDIR);
-					MATCH_STRING("mailing_list=", ATTRIB_MAILING_LIST);
-					MATCH_BOOLEAN("mime_forward=", ATTRIB_MIME_FORWARD);
-					MATCH_STRING("mime_types_to_save=", ATTRIB_MIME_TYPES_TO_SAVE);
+					MATCH_BOOLEAN("mail_8bit_header=", OPT_ATTRIB_MAIL_8BIT_HEADER);
+					MATCH_LIST("mail_mime_encoding=", OPT_ATTRIB_MAIL_MIME_ENCODING, txt_mime_encodings, NUM_MIME_ENCODINGS);
+					MATCH_STRING("maildir=", OPT_ATTRIB_MAILDIR);
+					MATCH_STRING("mailing_list=", OPT_ATTRIB_MAILING_LIST);
+					MATCH_BOOLEAN("mark_ignore_tags=", OPT_ATTRIB_MARK_IGNORE_TAGS);
+					MATCH_BOOLEAN("mark_saved_read=", OPT_ATTRIB_MARK_SAVED_READ);
+					MATCH_BOOLEAN("mime_forward=", OPT_ATTRIB_MIME_FORWARD);
+					MATCH_STRING("mime_types_to_save=", OPT_ATTRIB_MIME_TYPES_TO_SAVE);
 #ifdef CHARSET_CONVERSION
-					MATCH_LIST("mm_network_charset=", ATTRIB_MM_NETWORK_CHARSET, txt_mime_charsets, NUM_MIME_CHARSETS);
+					MATCH_LIST("mm_network_charset=", OPT_ATTRIB_MM_NETWORK_CHARSET, txt_mime_charsets, NUM_MIME_CHARSETS);
 #else
 					SKIP_ITEM("mm_network_charset=");
 #endif /* CHARSET_CONVERSION */
 					break;
 
 				case 'n':
-					MATCH_STRING("news_quote_format=", ATTRIB_NEWS_QUOTE);
+					MATCH_STRING("news_headers_to_display=", OPT_ATTRIB_NEWS_HEADERS_TO_DISPLAY);
+					MATCH_STRING("news_headers_to_not_display=", OPT_ATTRIB_NEWS_HEADERS_TO_NOT_DISPLAY);
+					MATCH_STRING("news_quote_format=", OPT_ATTRIB_NEWS_QUOTE_FORMAT);
 					break;
 
 				case 'o':
-					MATCH_STRING("organization=", ATTRIB_ORGANIZATION);
+					MATCH_STRING("organization=", OPT_ATTRIB_ORGANIZATION);
 					break;
 
 				case 'p':
-					MATCH_INTEGER("post_proc_type=", ATTRIB_POST_PROC_TYPE, POST_PROC_YES);
+					MATCH_BOOLEAN("pos_first_unread=", OPT_ATTRIB_POS_FIRST_UNREAD);
+					MATCH_BOOLEAN("post_8bit_header=", OPT_ATTRIB_POST_8BIT_HEADER);
+					MATCH_LIST("post_mime_encoding=", OPT_ATTRIB_POST_MIME_ENCODING, txt_mime_encodings, NUM_MIME_ENCODINGS);
+					MATCH_BOOLEAN("post_process_view=", OPT_ATTRIB_POST_PROCESS_VIEW);
+					MATCH_INTEGER("post_process_type=", OPT_ATTRIB_POST_PROCESS_TYPE, POST_PROC_YES);
+#ifndef DISABLE_PRINTING
+					MATCH_BOOLEAN("print_header=", OPT_ATTRIB_PRINT_HEADER);
+#else
+					SKIP_ITEM("print_header=");
+#endif /* !DISABLE_PRINTING */
+					MATCH_BOOLEAN("process_only_unread=", OPT_ATTRIB_PROCESS_ONLY_UNREAD);
+					MATCH_BOOLEAN("prompt_followupto=", OPT_ATTRIB_PROMPT_FOLLOWUPTO);
 					break;
 
 				case 'q':
-					MATCH_BOOLEAN("quick_kill_case=", ATTRIB_QUICK_KILL_CASE);
-					MATCH_BOOLEAN("quick_kill_expire=", ATTRIB_QUICK_KILL_EXPIRE);
-					MATCH_INTEGER("quick_kill_header=", ATTRIB_QUICK_KILL_HEADER, FILTER_LINES);
-					MATCH_STRING("quick_kill_scope=", ATTRIB_QUICK_KILL_SCOPE);
-					MATCH_BOOLEAN("quick_select_case=", ATTRIB_QUICK_SELECT_CASE);
-					MATCH_BOOLEAN("quick_select_expire=", ATTRIB_QUICK_SELECT_EXPIRE);
-					MATCH_INTEGER("quick_select_header=", ATTRIB_QUICK_SELECT_HEADER, FILTER_LINES);
-					MATCH_STRING("quick_select_scope=", ATTRIB_QUICK_SELECT_SCOPE);
+					MATCH_BOOLEAN("quick_kill_case=", OPT_ATTRIB_QUICK_KILL_CASE);
+					MATCH_BOOLEAN("quick_kill_expire=", OPT_ATTRIB_QUICK_KILL_EXPIRE);
+					MATCH_INTEGER("quick_kill_header=", OPT_ATTRIB_QUICK_KILL_HEADER, FILTER_LINES);
+					MATCH_STRING("quick_kill_scope=", OPT_ATTRIB_QUICK_KILL_SCOPE);
+					MATCH_BOOLEAN("quick_select_case=", OPT_ATTRIB_QUICK_SELECT_CASE);
+					MATCH_BOOLEAN("quick_select_expire=", OPT_ATTRIB_QUICK_SELECT_EXPIRE);
+					MATCH_INTEGER("quick_select_header=", OPT_ATTRIB_QUICK_SELECT_HEADER, FILTER_LINES);
+					MATCH_STRING("quick_select_scope=", OPT_ATTRIB_QUICK_SELECT_SCOPE);
 					if (match_string(line, "quote_chars=", buf, sizeof(buf))) {
 						quote_dash_to_space(buf);
-						set_attrib(ATTRIB_QUOTE_CHARS, scope, buf);
+						set_attrib(OPT_ATTRIB_QUOTE_CHARS, scope, buf);
 						found = TRUE;
 						break;
 					}
 					break;
 
 				case 's':
-					MATCH_STRING("savedir=", ATTRIB_SAVEDIR);
-					MATCH_STRING("savefile=", ATTRIB_SAVEFILE);
+					MATCH_STRING("savedir=", OPT_ATTRIB_SAVEDIR);
+					MATCH_STRING("savefile=", OPT_ATTRIB_SAVEFILE);
 					if (match_string(line, "scope=", scope, sizeof(scope))) {
+						i = add_scope(scope);
+						scopes[i].global = global_file ? TRUE : FALSE;
 						found = TRUE;
 						break;
 					}
-					MATCH_INTEGER("show_author=", ATTRIB_SHOW_AUTHOR, SHOW_FROM_BOTH);
-					MATCH_INTEGER("show_info=", ATTRIB_SHOW_INFO, SHOW_INFO_BOTH);
-					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("show_author=", OPT_ATTRIB_SHOW_AUTHOR, SHOW_FROM_BOTH);
+					MATCH_INTEGER("show_info=", OPT_ATTRIB_SHOW_INFO, SHOW_INFO_BOTH);
+					MATCH_BOOLEAN("show_only_unread_arts=", OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS);
+					MATCH_BOOLEAN("show_signatures=", OPT_ATTRIB_SHOW_SIGNATURES);
+					MATCH_BOOLEAN("sigdashes=", OPT_ATTRIB_SIGDASHES);
+					MATCH_BOOLEAN("signature_repost=", OPT_ATTRIB_SIGNATURE_REPOST);
+					MATCH_BOOLEAN("start_editor_offset=", OPT_ATTRIB_START_EDITOR_OFFSET);
+					MATCH_STRING("sigfile=", OPT_ATTRIB_SIGFILE);
+					MATCH_INTEGER("sort_article_type=", OPT_ATTRIB_SORT_ARTICLE_TYPE, SORT_ARTICLES_BY_LINES_ASCEND);
+					MATCH_INTEGER("sort_threads_type=", OPT_ATTRIB_SORT_THREADS_TYPE, SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND);
 					break;
 
 				case 't':
-					MATCH_BOOLEAN("tex2iso_conv=", ATTRIB_TEX2ISO_CONV);
-					MATCH_INTEGER("thread_arts=", ATTRIB_THREAD_ARTS, THREAD_MAX);
-					MATCH_INTEGER("thread_perc=", ATTRIB_THREAD_PERC, 100);
+					MATCH_BOOLEAN("tex2iso_conv=", OPT_ATTRIB_TEX2ISO_CONV);
+					MATCH_INTEGER("thread_articles=", OPT_ATTRIB_THREAD_ARTICLES, THREAD_MAX);
+					MATCH_BOOLEAN("thread_catchup_on_exit=", OPT_ATTRIB_THREAD_CATCHUP_ON_EXIT);
+					MATCH_INTEGER("thread_perc=", OPT_ATTRIB_THREAD_PERC, 100);
+					MATCH_INTEGER("trim_article_body=", OPT_ATTRIB_TRIM_ARTICLE_BODY, 7);
 					break;
 
 				case 'u':
 #ifdef CHARSET_CONVERSION
-					MATCH_STRING("undeclared_charset=", ATTRIB_UNDECLARED_CHARSET);
+					MATCH_STRING("undeclared_charset=", OPT_ATTRIB_UNDECLARED_CHARSET);
 #else
 					SKIP_ITEM("undeclared_charset=");
 #endif /* CHARSET_CONVERSION */
 					break;
 
+				case 'v':
+					MATCH_BOOLEAN("verbatim_handling=", OPT_ATTRIB_VERBATIM_HANDLING);
+					break;
+
+				case 'w':
+					MATCH_BOOLEAN("wrap_on_next_unread=", OPT_ATTRIB_WRAP_ON_NEXT_UNREAD);
+					break;
+
 				case 'x':
-					MATCH_STRING("x_body=", ATTRIB_X_BODY);
-					MATCH_BOOLEAN("x_comment_to=", ATTRIB_X_COMMENT_TO);
-					MATCH_STRING("x_headers=", ATTRIB_X_HEADERS);
+					MATCH_STRING("x_body=", OPT_ATTRIB_X_BODY);
+					MATCH_BOOLEAN("x_comment_to=", OPT_ATTRIB_X_COMMENT_TO);
+					MATCH_STRING("x_headers=", OPT_ATTRIB_X_HEADERS);
 					break;
 
 				default:
 					break;
 			}
 
+			if (!global_file && upgrade == RC_UPGRADE) {
+				t_bool auto_bcc = FALSE;
+				t_bool auto_cc = FALSE;
+				int auto_cc_bcc;
+
+				switch (tolower((unsigned char) line[0])) {
+					case 'a':
+						if (match_boolean(line, "auto_bcc=", &auto_bcc)) {
+							if (scopes[num_scope -1].attribute->auto_cc_bcc & AUTO_CC)
+								auto_cc_bcc = (auto_bcc ? AUTO_CC_BCC : AUTO_CC);
+							else
+								auto_cc_bcc = (auto_bcc ? AUTO_BCC : 0);
+							set_attrib(OPT_ATTRIB_AUTO_CC_BCC, scope, &auto_cc_bcc);
+							found = TRUE;
+							break;
+						}
+						if (match_boolean(line, "auto_cc=", &auto_cc)) {
+							if (scopes[num_scope -1].attribute->auto_cc_bcc & AUTO_BCC)
+								auto_cc_bcc = (auto_cc ? AUTO_CC_BCC : AUTO_BCC);
+							else
+								auto_cc_bcc = (auto_cc ? AUTO_CC : 0);
+							set_attrib(OPT_ATTRIB_AUTO_CC_BCC, scope, &auto_cc_bcc);
+							found = TRUE;
+							break;
+						}
+						break;
+
+					case 'p':
+						MATCH_INTEGER("post_proc_type=", OPT_ATTRIB_POST_PROCESS_TYPE, POST_PROC_YES);
+						break;
+
+					case 's':
+						MATCH_BOOLEAN("show_only_unread=", OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS);
+						MATCH_INTEGER("sort_art_type=", OPT_ATTRIB_SORT_ARTICLE_TYPE, SORT_ARTICLES_BY_LINES_ASCEND);
+						break;
+
+					case 't':
+						MATCH_INTEGER("thread_arts=", OPT_ATTRIB_THREAD_ARTICLES, THREAD_MAX);
+						break;
+
+					default:
+						break;
+				}
+			}
+
 			if (found)
 				found = FALSE;
-			else /* TODO: surpress error messages on non intial reads? */
-				error_message(_(txt_bad_attrib), line);
+			else
+				error_message(1, _(txt_bad_attrib), line);
 		}
 		fclose(fp);
 
 		/*
-		 * TODO: do something usfull for the other cases
+		 * TODO: do something useful for the other cases
 		 */
-		if (upgrade == RC_UPGRADE && !global_file)
+		if (!global_file && upgrade == RC_UPGRADE)
 			write_attributes_file(file);
-	}
+	} else if (!global_file && startup) {
+		/* no local attributes file, add some useful defaults and write file */
 
-	/*
-	 * Now setup the rest of the groups to use the default attributes
-	 */
-	if (!global_file) {
-		for_each_group(i) {
-			if (!active[i].attribute)
-				active[i].attribute = &glob_attributes;
-		}
+		add_scope("*");
+		snprintf(buf, sizeof(buf), "%s", "~/.tin/headers");
+		set_attrib(OPT_ATTRIB_X_HEADERS, "*", buf);
+
+		add_scope("*sources*");
+		num = POST_PROC_SHAR;
+		set_attrib(OPT_ATTRIB_POST_PROCESS_TYPE, "*sources*", &num);
+
+		add_scope("*binaries*");
+		num = POST_PROC_YES;
+		set_attrib(OPT_ATTRIB_POST_PROCESS_TYPE, "*binaries*", &num);
+		num = FALSE;
+		set_attrib(OPT_ATTRIB_TEX2ISO_CONV, "*binaries*", &num);
+		num = TRUE;
+		set_attrib(OPT_ATTRIB_DELETE_TMP_FILES, "*binaries*", &num);
+		snprintf(buf, sizeof(buf), "%s", "poster");
+		set_attrib(OPT_ATTRIB_FOLLOWUP_TO, "*binaries*", buf);
+
+		write_attributes_file(file);
 	}
-/* debug_print_filter_attributes(); */
+	if (!global_file && startup)
+		startup = FALSE;
+#ifdef DEBUG
+	if (!global_file)
+		dump_scopes("SCOPES-R");
+#endif /* DEBUG */
 }
 
 
+#define SET_STRING(string) \
+	FreeIfNeeded(curr_scope->attribute->string); \
+	curr_scope->attribute->string = my_strdup((char *) data); \
+	curr_scope->state->string = TRUE; \
+	break
+#define SET_INTEGER(integer) \
+	curr_scope->attribute->integer = *((int *) data); \
+	curr_scope->state->integer = TRUE; \
+	break
+
+
 static void
 set_attrib(
 	int type,
 	const char *scope,
-	const char *data)
+	void *data)
 {
-	struct t_group *group;
+	struct t_scope *curr_scope;
 
 	if (scope == NULL || *scope == '\0') {	/* No active scope set yet */
 		/* TODO: include full line in error-message */
-		error_message("attribute with no scope: %s", data);
+		error_message(2, _("attribute with no scope: %s"), (char *) data); /* TODO: -> lang.c */
 		return;
 	}
-#if 0
-	fprintf(stderr, "set_attrib #%d %s %s(%d)\n", type, scope, data, (int) *data);
-#endif /* 0 */
 
-	/*
-	 * Does scope refer to 1 or more than 1 group
-	 */
-	if (!strpbrk(scope, "*,")) {
-		if ((group = group_find(scope)) != NULL)
-			do_set_attrib(group, type, data);
-	} else {
-		int i;
+	if (num_scope > 1) {
+		curr_scope = &scopes[num_scope - 1];
+		/*
+		 * Now set the required attribute
+		 */
+		switch (type) {
+			case OPT_ATTRIB_MAILDIR:
+				SET_STRING(maildir);
 
-		/* TODO: Can we get out of doing this per group for .global case */
-		for_each_group(i) {
-			group = &active[i];
-			if (match_group_list(group->name, scope))
-				do_set_attrib(group, type, data);
-		}
-	}
-}
+			case OPT_ATTRIB_SAVEDIR:
+				SET_STRING(savedir);
 
+			case OPT_ATTRIB_SAVEFILE:
+				SET_STRING(savefile);
 
-#define SET_STRING(string) \
-	group->attribute->string = my_strdup(data); \
-	break
-#define SET_INTEGER(integer) \
-	group->attribute->integer = *data; \
-	break
+			case OPT_ATTRIB_ORGANIZATION:
+				SET_STRING(organization);
 
-static void
-do_set_attrib(
-	struct t_group *group,
-	int type,
-	const char *data)
-{
-	/*
-	 * Setup default attributes for this group if none already set
-	 */
-	if (group->attribute == NULL) {
-		group->attribute = my_malloc(sizeof(struct t_attribute));
-		set_default_attributes(group->attribute);
-	}
+			case OPT_ATTRIB_FROM:
+				SET_STRING(from);
 
-	/*
-	 * Now set the required attribute
-	 */
-	switch (type) {
-		case ATTRIB_MAILDIR:
-			free_if_not_default(&group->attribute->maildir, tinrc.maildir);
-			SET_STRING(maildir);
+			case OPT_ATTRIB_SIGFILE:
+				SET_STRING(sigfile);
+
+			case OPT_ATTRIB_FOLLOWUP_TO:
+				SET_STRING(followup_to);
+
+			case OPT_ATTRIB_ADD_POSTED_TO_FILTER:
+				SET_INTEGER(add_posted_to_filter);
+
+			case OPT_ATTRIB_ADVERTISING:
+				SET_INTEGER(advertising);
+
+			case OPT_ATTRIB_ALTERNATIVE_HANDLING:
+				SET_INTEGER(alternative_handling);
+
+			case OPT_ATTRIB_ASK_FOR_METAMAIL:
+				SET_INTEGER(ask_for_metamail);
+
+			case OPT_ATTRIB_AUTO_CC_BCC:
+				SET_INTEGER(auto_cc_bcc);
+
+			case OPT_ATTRIB_AUTO_LIST_THREAD:
+				SET_INTEGER(auto_list_thread);
+
+			case OPT_ATTRIB_AUTO_SELECT:
+				SET_INTEGER(auto_select);
+
+			case OPT_ATTRIB_AUTO_SAVE:
+				SET_INTEGER(auto_save);
+
+			case OPT_ATTRIB_BATCH_SAVE:
+				SET_INTEGER(batch_save);
 
-		case ATTRIB_SAVEDIR:
-			free_if_not_default(&group->attribute->savedir, tinrc.savedir);
-			SET_STRING(savedir);
+			case OPT_ATTRIB_DATE_FORMAT:
+				SET_STRING(date_format);
 
-		case ATTRIB_SAVEFILE:
-			FreeIfNeeded(group->attribute->savefile);
-			SET_STRING(savefile);
+			case OPT_ATTRIB_DELETE_TMP_FILES:
+				SET_INTEGER(delete_tmp_files);
+
+			case OPT_ATTRIB_EDITOR_FORMAT:
+				SET_STRING(editor_format);
+
+			case OPT_ATTRIB_GROUP_CATCHUP_ON_EXIT:
+				SET_INTEGER(group_catchup_on_exit);
+
+			case OPT_ATTRIB_MAIL_8BIT_HEADER:
+				SET_INTEGER(mail_8bit_header);
+
+			case OPT_ATTRIB_MAIL_MIME_ENCODING:
+				SET_INTEGER(mail_mime_encoding);
+
+			case OPT_ATTRIB_MARK_IGNORE_TAGS:
+				SET_INTEGER(mark_ignore_tags);
+
+			case OPT_ATTRIB_MARK_SAVED_READ:
+				SET_INTEGER(mark_saved_read);
+
+			case OPT_ATTRIB_NEWS_HEADERS_TO_DISPLAY:
+				FreeIfNeeded(curr_scope->attribute->news_headers_to_display);
+				curr_scope->attribute->news_headers_to_display = my_strdup((char *) data);
+				build_news_headers_array(curr_scope->attribute, TRUE);
+				curr_scope->state->news_headers_to_display = TRUE;
+				break;
+
+			case OPT_ATTRIB_NEWS_HEADERS_TO_NOT_DISPLAY:
+				FreeIfNeeded(curr_scope->attribute->news_headers_to_not_display);
+				curr_scope->attribute->news_headers_to_not_display = my_strdup((char *) data);
+				build_news_headers_array(curr_scope->attribute, FALSE);
+				curr_scope->state->news_headers_to_not_display = TRUE;
+				break;
 
-		case ATTRIB_ORGANIZATION:
-			free_if_not_default(&group->attribute->organization, default_organization);
-			SET_STRING(organization);
+			case OPT_ATTRIB_POS_FIRST_UNREAD:
+				SET_INTEGER(pos_first_unread);
 
-		case ATTRIB_FROM:
-			free_if_not_default(&group->attribute->from, tinrc.mail_address);
-			SET_STRING(from);
+			case OPT_ATTRIB_POST_8BIT_HEADER:
+				SET_INTEGER(post_8bit_header);
 
-		case ATTRIB_SIGFILE:
-			free_if_not_default(&group->attribute->sigfile, tinrc.sigfile);
-			SET_STRING(sigfile);
+			case OPT_ATTRIB_POST_MIME_ENCODING:
+				SET_INTEGER(post_mime_encoding);
 
-		case ATTRIB_FOLLOWUP_TO:
-			FreeIfNeeded(group->attribute->followup_to);
-			SET_STRING(followup_to);
+			case OPT_ATTRIB_POST_PROCESS_VIEW:
+				SET_INTEGER(post_process_view);
 
-		case ATTRIB_AUTO_SELECT:
-			SET_INTEGER(auto_select);
+#ifndef DISABLE_PRINTING
+			case OPT_ATTRIB_PRINT_HEADER:
+				SET_INTEGER(print_header);
+#endif /* !DISABLE_PRINTING */
 
-		case ATTRIB_AUTO_SAVE:
-			SET_INTEGER(auto_save);
+			case OPT_ATTRIB_PROCESS_ONLY_UNREAD:
+				SET_INTEGER(process_only_unread);
 
-		case ATTRIB_BATCH_SAVE:
-			SET_INTEGER(batch_save);
+			case OPT_ATTRIB_PROMPT_FOLLOWUPTO:
+				SET_INTEGER(prompt_followupto);
 
-		case ATTRIB_DELETE_TMP_FILES:
-			SET_INTEGER(delete_tmp_files);
+			case OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS:
+				SET_INTEGER(show_only_unread_arts);
 
-		case ATTRIB_SHOW_ONLY_UNREAD:
-			SET_INTEGER(show_only_unread);
+			case OPT_ATTRIB_SIGDASHES:
+				SET_INTEGER(sigdashes);
 
-		case ATTRIB_THREAD_ARTS:
-			SET_INTEGER(thread_arts);
+			case OPT_ATTRIB_SIGNATURE_REPOST:
+				SET_INTEGER(signature_repost);
 
-		case ATTRIB_THREAD_PERC:
-			SET_INTEGER(thread_perc);
+			case OPT_ATTRIB_START_EDITOR_OFFSET:
+				SET_INTEGER(start_editor_offset);
 
-		case ATTRIB_SHOW_AUTHOR:
-			SET_INTEGER(show_author);
+			case OPT_ATTRIB_THREAD_ARTICLES:
+				SET_INTEGER(thread_articles);
 
-		case ATTRIB_SHOW_INFO:
-			SET_INTEGER(show_info);
+			case OPT_ATTRIB_THREAD_CATCHUP_ON_EXIT:
+				SET_INTEGER(thread_catchup_on_exit);
 
-		case ATTRIB_SORT_ART_TYPE:
-			SET_INTEGER(sort_art_type);
+			case OPT_ATTRIB_THREAD_PERC:
+				SET_INTEGER(thread_perc);
 
-		case ATTRIB_SORT_THREADS_TYPE:
-			SET_INTEGER(sort_threads_type);
+			case OPT_ATTRIB_SHOW_AUTHOR:
+				SET_INTEGER(show_author);
 
-		case ATTRIB_POST_PROC_TYPE:
-			SET_INTEGER(post_proc_type);
+			case OPT_ATTRIB_SHOW_INFO:
+				SET_INTEGER(show_info);
 
-		case ATTRIB_QUICK_KILL_HEADER:
-			SET_INTEGER(quick_kill_header);
+			case OPT_ATTRIB_SHOW_SIGNATURES:
+				SET_INTEGER(show_signatures);
 
-		case ATTRIB_QUICK_KILL_SCOPE:
-			FreeIfNeeded(group->attribute->quick_kill_scope);
-			SET_STRING(quick_kill_scope);
+			case OPT_ATTRIB_TRIM_ARTICLE_BODY:
+				SET_INTEGER(trim_article_body);
 
-		case ATTRIB_QUICK_KILL_EXPIRE:
-			SET_INTEGER(quick_kill_expire);
+			case OPT_ATTRIB_VERBATIM_HANDLING:
+				SET_INTEGER(verbatim_handling);
 
-		case ATTRIB_QUICK_KILL_CASE:
-			SET_INTEGER(quick_kill_case);
+			case OPT_ATTRIB_WRAP_ON_NEXT_UNREAD:
+				SET_INTEGER(wrap_on_next_unread);
 
-		case ATTRIB_QUICK_SELECT_HEADER:
-			SET_INTEGER(quick_select_header);
+			case OPT_ATTRIB_SORT_ARTICLE_TYPE:
+				SET_INTEGER(sort_article_type);
 
-		case ATTRIB_QUICK_SELECT_SCOPE:
-			FreeIfNeeded(group->attribute->quick_select_scope);
-			SET_STRING(quick_select_scope);
+			case OPT_ATTRIB_SORT_THREADS_TYPE:
+				SET_INTEGER(sort_threads_type);
 
-		case ATTRIB_QUICK_SELECT_EXPIRE:
-			SET_INTEGER(quick_select_expire);
+			case OPT_ATTRIB_POST_PROCESS_TYPE:
+				SET_INTEGER(post_process_type);
 
-		case ATTRIB_QUICK_SELECT_CASE:
-			SET_INTEGER(quick_select_case);
+			case OPT_ATTRIB_QUICK_KILL_HEADER:
+				SET_INTEGER(quick_kill_header);
 
-		case ATTRIB_MAILING_LIST:
-			FreeIfNeeded(group->attribute->mailing_list);
-			SET_STRING(mailing_list);
+			case OPT_ATTRIB_QUICK_KILL_SCOPE:
+				SET_STRING(quick_kill_scope);
+
+			case OPT_ATTRIB_QUICK_KILL_EXPIRE:
+				SET_INTEGER(quick_kill_expire);
+
+			case OPT_ATTRIB_QUICK_KILL_CASE:
+				SET_INTEGER(quick_kill_case);
+
+			case OPT_ATTRIB_QUICK_SELECT_HEADER:
+				SET_INTEGER(quick_select_header);
+
+			case OPT_ATTRIB_QUICK_SELECT_SCOPE:
+				SET_STRING(quick_select_scope);
+
+			case OPT_ATTRIB_QUICK_SELECT_EXPIRE:
+				SET_INTEGER(quick_select_expire);
+
+			case OPT_ATTRIB_QUICK_SELECT_CASE:
+				SET_INTEGER(quick_select_case);
+
+			case OPT_ATTRIB_MAILING_LIST:
+				SET_STRING(mailing_list);
 
 #ifdef CHARSET_CONVERSION
-		case ATTRIB_MM_NETWORK_CHARSET:
-			SET_INTEGER(mm_network_charset);
+			case OPT_ATTRIB_MM_NETWORK_CHARSET:
+				SET_INTEGER(mm_network_charset);
 
-		case ATTRIB_UNDECLARED_CHARSET:
-			FreeIfNeeded(group->attribute->undeclared_charset);
-			SET_STRING(undeclared_charset);
+			case OPT_ATTRIB_UNDECLARED_CHARSET:
+				SET_STRING(undeclared_charset);
 #endif /* CHARSET_CONVERSION */
 
-		case ATTRIB_X_HEADERS:
-			FreeIfNeeded(group->attribute->x_headers);
-			SET_STRING(x_headers);
-
-		case ATTRIB_X_BODY:
-			FreeIfNeeded(group->attribute->x_body);
-			SET_STRING(x_body);
-
-		case ATTRIB_X_COMMENT_TO:
-			SET_INTEGER(x_comment_to);
-
-		case ATTRIB_FCC:
-			FreeIfNeeded(group->attribute->fcc);
-			SET_STRING(fcc);
-
-		case ATTRIB_NEWS_QUOTE:
-			free_if_not_default(&group->attribute->news_quote_format, tinrc.news_quote_format);
-			SET_STRING(news_quote_format);
-
-		case ATTRIB_QUOTE_CHARS:
-			free_if_not_default(&group->attribute->quote_chars, tinrc.quote_chars);
-			SET_STRING(quote_chars);
-
-		case ATTRIB_MIME_TYPES_TO_SAVE:
-			FreeIfNeeded(group->attribute->mime_types_to_save);
-			SET_STRING(mime_types_to_save);
+			case OPT_ATTRIB_X_HEADERS:
+				SET_STRING(x_headers);
+
+			case OPT_ATTRIB_X_BODY:
+				SET_STRING(x_body);
+
+			case OPT_ATTRIB_X_COMMENT_TO:
+				SET_INTEGER(x_comment_to);
+
+			case OPT_ATTRIB_FCC:
+				SET_STRING(fcc);
+
+			case OPT_ATTRIB_NEWS_QUOTE_FORMAT:
+				SET_STRING(news_quote_format);
 
-		case ATTRIB_MIME_FORWARD:
-			SET_INTEGER(mime_forward);
+			case OPT_ATTRIB_QUOTE_CHARS:
+				SET_STRING(quote_chars);
+
+			case OPT_ATTRIB_MIME_TYPES_TO_SAVE:
+				SET_STRING(mime_types_to_save);
+
+			case OPT_ATTRIB_MIME_FORWARD:
+				SET_INTEGER(mime_forward);
 
 #ifdef HAVE_ISPELL
-		case ATTRIB_ISPELL:
-			FreeIfNeeded(group->attribute->ispell);
-			SET_STRING(ispell);
+			case OPT_ATTRIB_ISPELL:
+				SET_STRING(ispell);
 #endif /* HAVE_ISPELL */
 
-		case ATTRIB_TEX2ISO_CONV:
-			SET_INTEGER(tex2iso_conv);
+			case OPT_ATTRIB_TEX2ISO_CONV:
+				SET_INTEGER(tex2iso_conv);
 
-		default:
-			break;
+			default:
+				break;
+		}
 	}
 }
 
 
 /*
- * Save the group attributes from active[].attribute to ~/.tin/attributes
- *
+ * Insert a new scope entry into scopes[] and return the index.
+ */
+int
+add_scope(
+	const char *scope)
+{
+	if (!scope || !*scope)
+		return 0;
+
+	if ((num_scope >= max_scope) || (num_scope < 0) || (scopes == NULL))
+		expand_scope();
+	scopes[num_scope].scope = my_strdup(scope);
+	scopes[num_scope].attribute = my_malloc(sizeof(struct t_attribute));
+	set_default_attributes(scopes[num_scope].attribute, NULL, FALSE);
+	scopes[num_scope].state = my_malloc(sizeof(struct t_attribute_state));
+	set_default_state(scopes[num_scope].state);
+	scopes[num_scope].global = FALSE;
+	return num_scope++;
+}
+
+
+#define SET_ATTRIB(attr) do { \
+		if (curr_scope->state->attr) \
+			group->attribute->attr = curr_scope->attribute->attr; \
+	} while (0)
+
+
+/*
+ * Set the attributes of all groups
+ */
+void
+assign_attributes_to_groups(
+	void)
+{
+	struct t_group *group;
+	struct t_scope *default_scope, *curr_scope;
+	t_bool found;
+	int i, j;
+	long processed = 0L;
+#ifdef CHARSET_CONVERSION
+	t_bool is_7bit;
+#endif /* CHARSET_CONVERSION */
+
+	if (!batch_mode || verbose)
+		wait_message(0, _("Processing attributes... ")); /* TODO: -> lang.c */
+
+	default_scope = &scopes[0];
+	for_each_group(i) {
+		if (++processed % (MODULO_COUNT_NUM) == 0)
+			spin_cursor();
+		group = &active[i];
+		found = FALSE;
+		for (j = 1; j < num_scope; j++) {
+			curr_scope = &scopes[j];
+			if (match_group_list(group->name, curr_scope->scope)) {
+				if (group->attribute == NULL || group->attribute == default_scope->attribute) {
+					group->attribute = my_malloc(sizeof(struct t_attribute));
+					set_default_attributes(group->attribute, default_scope->attribute, FALSE);
+					found = TRUE;
+				}
+				if (!found) {
+					set_default_attributes(group->attribute, default_scope->attribute, FALSE);
+					found = TRUE;
+				}
+				SET_ATTRIB(maildir);
+				SET_ATTRIB(savedir);
+				SET_ATTRIB(savefile);
+				SET_ATTRIB(sigfile);
+				SET_ATTRIB(date_format);
+				SET_ATTRIB(editor_format);
+				SET_ATTRIB(organization);
+				SET_ATTRIB(fcc);
+				SET_ATTRIB(followup_to);
+				SET_ATTRIB(mailing_list);
+				SET_ATTRIB(x_headers);
+				SET_ATTRIB(x_body);
+				SET_ATTRIB(from);
+				SET_ATTRIB(news_quote_format);
+				SET_ATTRIB(quote_chars);
+				SET_ATTRIB(mime_types_to_save);
+#ifdef HAVE_ISPELL
+				SET_ATTRIB(ispell);
+#endif /* HAVE_ISPELL */
+#ifdef CHARSET_CONVERSION
+				SET_ATTRIB(mm_network_charset);
+				SET_ATTRIB(undeclared_charset);
+#endif /* CHARSET_CONVERSION */
+				SET_ATTRIB(quick_kill_scope);
+				SET_ATTRIB(quick_kill_header);
+				SET_ATTRIB(quick_kill_case);
+				SET_ATTRIB(quick_kill_expire);
+				SET_ATTRIB(quick_select_scope);
+				SET_ATTRIB(quick_select_header);
+				SET_ATTRIB(quick_select_case);
+				SET_ATTRIB(quick_select_expire);
+				SET_ATTRIB(show_only_unread_arts);
+				SET_ATTRIB(thread_articles);
+				SET_ATTRIB(thread_catchup_on_exit);
+				SET_ATTRIB(thread_perc);
+				SET_ATTRIB(sort_article_type);
+				SET_ATTRIB(sort_threads_type);
+				SET_ATTRIB(show_info);
+				SET_ATTRIB(show_author);
+				SET_ATTRIB(show_signatures);
+				SET_ATTRIB(trim_article_body);
+				SET_ATTRIB(verbatim_handling);
+				SET_ATTRIB(wrap_on_next_unread);
+				SET_ATTRIB(add_posted_to_filter);
+				SET_ATTRIB(advertising);
+				SET_ATTRIB(alternative_handling);
+				SET_ATTRIB(ask_for_metamail);
+				SET_ATTRIB(auto_cc_bcc);
+				SET_ATTRIB(auto_list_thread);
+				SET_ATTRIB(auto_save);
+				SET_ATTRIB(auto_select);
+				SET_ATTRIB(batch_save);
+				SET_ATTRIB(delete_tmp_files);
+				SET_ATTRIB(group_catchup_on_exit);
+				SET_ATTRIB(mail_8bit_header);
+				SET_ATTRIB(mail_mime_encoding);
+				SET_ATTRIB(mark_ignore_tags);
+				SET_ATTRIB(mark_saved_read);
+				if (curr_scope->state->news_headers_to_display)
+					group->attribute->headers_to_display = curr_scope->attribute->headers_to_display;
+				if (curr_scope->state->news_headers_to_not_display)
+					group->attribute->headers_to_not_display = curr_scope->attribute->headers_to_not_display;
+				SET_ATTRIB(pos_first_unread);
+				SET_ATTRIB(post_8bit_header);
+				SET_ATTRIB(post_mime_encoding);
+				SET_ATTRIB(post_process_view);
+				SET_ATTRIB(post_process_type);
+#ifndef DISABLE_PRINTING
+				SET_ATTRIB(print_header);
+#endif /* !DISABLE_PRINTING */
+				SET_ATTRIB(process_only_unread);
+				SET_ATTRIB(prompt_followupto);
+				SET_ATTRIB(sigdashes);
+				SET_ATTRIB(signature_repost);
+				SET_ATTRIB(start_editor_offset);
+				SET_ATTRIB(x_comment_to);
+				SET_ATTRIB(tex2iso_conv);
+				SET_ATTRIB(mime_forward);
+			}
+		}
+		if (found) {
+			/*
+			 * sort out conflicting settings
+			 */
+#ifdef CHARSET_CONVERSION
+			/*
+			 * check if we have a 7bit charset but a !7bit encoding
+			 * or a 8bit charset but a !8bit encoding, update encoding if needed
+			 */
+			is_7bit = FALSE;
+			for (j = 0; *txt_mime_7bit_charsets[j]; j++) {
+				if (!strcasecmp(txt_mime_charsets[group->attribute->mm_network_charset], txt_mime_7bit_charsets[j])) {
+					is_7bit = TRUE;
+					break;
+				}
+			}
+			if (is_7bit) {
+				if (group->attribute->mail_mime_encoding != MIME_ENCODING_7BIT)
+					group->attribute->mail_mime_encoding = MIME_ENCODING_7BIT;
+				if (group->attribute->post_mime_encoding != MIME_ENCODING_7BIT)
+					group->attribute->post_mime_encoding = MIME_ENCODING_7BIT;
+			} else {
+				if (group->attribute->mail_mime_encoding == MIME_ENCODING_7BIT)
+					group->attribute->mail_mime_encoding = MIME_ENCODING_QP;
+				if (group->attribute->post_mime_encoding == MIME_ENCODING_7BIT)
+					group->attribute->post_mime_encoding = MIME_ENCODING_8BIT;
+			}
+#endif /* CHARSET_CONVERSION */
+			/* do not use 8 bit headers if mime encoding is not 8bit */
+			if (group->attribute->mail_mime_encoding != MIME_ENCODING_8BIT)
+				group->attribute->mail_8bit_header = FALSE;
+			if (group->attribute->post_mime_encoding != MIME_ENCODING_8BIT)
+				group->attribute->post_8bit_header = FALSE;
+		} else {
+			if (group->attribute && !group->attribute->global)
+				free(group->attribute);
+			group->attribute = default_scope->attribute;
+		}
+	}
+#ifdef DEBUG
+	dump_attributes();
+#	if 0
+	debug_print_filter_attributes();
+#	endif /* 0 */
+#endif /* DEBUG */
+
+	if (!batch_mode || verbose)
+		my_fputc('\n', stdout);
+
+	if (!cmd_line && !batch_mode)
+		clear_message();
+}
+
+
+/*
+ * (re)build scope->headers_to_[not_]display array
+ */
+void
+build_news_headers_array(
+	struct t_attribute *scope,
+	t_bool header_to_display)
+{
+	if (header_to_display) {
+		if (scope->headers_to_display == NULL)
+			scope->headers_to_display = my_malloc(sizeof(struct t_newsheader));
+		else {
+			if (scope->headers_to_display->header)
+				FreeIfNeeded(*scope->headers_to_display->header);
+			FreeIfNeeded(scope->headers_to_display->header);
+		}
+		scope->headers_to_display->header = ulBuildArgv(scope->news_headers_to_display, &scope->headers_to_display->num);
+	} else {
+		if (scope->headers_to_not_display == NULL)
+			scope->headers_to_not_display = my_malloc(sizeof(struct t_newsheader));
+		else {
+			if (scope->headers_to_not_display->header)
+				FreeIfNeeded(*scope->headers_to_not_display->header);
+			FreeIfNeeded(scope->headers_to_not_display->header);
+		}
+		scope->headers_to_not_display->header = ulBuildArgv(scope->news_headers_to_not_display, &scope->headers_to_not_display->num);
+	}
+}
+
+
+/*
+ * Save the scope attributes from scopes[] to ~/.tin/attributes
  */
 void
 write_attributes_file(
 	const char *file)
 {
-	FILE *fp, *infp;
+	FILE *fp;
 	char *new_file;
 	int i;
-	t_bool copy_ok = TRUE;
+	long fpos;
 
-	if (no_write && file_size(file) != -1L)
+	if ((batch_mode || no_write || num_scope < 1) && file_size(file) != -1L)
 		return;
 
 	new_file = get_tmpfilename(file);
 
-	if ((fp = fopen(new_file, "w" FOPEN_OPTS)) == NULL) {
-		error_message(_(txt_filesystem_full_backup), ATTRIBUTES_FILE);
+	if ((fp = fopen(new_file, "w+")) == NULL) {
+		error_message(2, _(txt_filesystem_full_backup), ATTRIBUTES_FILE);
 		free(new_file);
 		return;
 	}
 
-	if (!cmd_line && !batch_mode)
-		wait_message(0, _(txt_writing_attributes_file));
+	wait_message(0, _(txt_writing_attributes_file));
+
+#ifdef DEBUG
+	dump_scopes("SCOPES-W");
+#endif /* DEBUG */
 
 	/*
 	 * TODO: sort in a useful order
@@ -647,36 +1100,97 @@ write_attributes_file(
 	 */
 	fprintf(fp, "# Group attributes file V%s for the TIN newsreader\n", ATTRIBUTES_VERSION);
 	fprintf(fp, _("# Do not edit this comment block\n#\n"));
-	fprintf(fp, _("#  scope=STRING (ie. alt.*,!alt.bin*) [mandatory]\n"));
-	fprintf(fp, _("#  maildir=STRING (ie. ~/Mail)\n"));
-	fprintf(fp, _("#  savedir=STRING (ie. ~user/News)\n"));
-	fprintf(fp, _("#  savefile=STRING (ie. =linux)\n"));
-	fprintf(fp, _("#  sigfile=STRING (ie. $var/sig)\n"));
-	fprintf(fp, _("#  organization=STRING (if beginning with '/' read from file)\n"));
+	fprintf(fp, _("#  scope=STRING (eg. alt.*,!alt.bin*) [mandatory]\n"));
+	fprintf(fp, _("#  add_posted_to_filter=ON/OFF\n"));
+	fprintf(fp, _("#  advertising=ON/OFF\n"));
+	fprintf(fp, _("#  alternative_handling=ON/OFF\n"));
+	fprintf(fp, _("#  ask_for_metamail=ON/OFF\n"));
+	fprintf(fp, _("#  auto_cc_bcc=NUM\n"));
+	fprintf(fp, _("#    0=No, 1=Cc, 2=Bcc, 3=Cc and Bcc\n"));
+	fprintf(fp, _("#  auto_list_thread=ON/OFF\n"));
+	fprintf(fp, _("#  auto_save=ON/OFF\n"));
+	fprintf(fp, _("#  auto_select=ON/OFF\n"));
+	fprintf(fp, _("#  batch_save=ON/OFF\n"));
+	fprintf(fp, _("#  date_format=STRING (eg. %%a, %%d %%b %%Y %%H:%%M:%%S)\n"));
+	fprintf(fp, _("#  delete_tmp_files=ON/OFF\n"));
+	fprintf(fp, _("#  editor_format=STRING (eg. %%E +%%N %%F)\n"));
+	fprintf(fp, _("#  fcc=STRING (eg. =mailbox)\n"));
 	fprintf(fp, _("#  followup_to=STRING\n"));
-	fprintf(fp, _("#  mailing_list=STRING (ie. majordomo@example.org)\n"));
-	fprintf(fp, _("#  x_headers=STRING (ie. ~/.tin/extra-headers)\n"));
-	fprintf(fp, _("#  x_body=STRING (ie. ~/.tin/extra-body-text)\n"));
 	fprintf(fp, _("#  from=STRING (just append wanted From:-line, don't use quotes)\n"));
-	fprintf(fp, _("#  news_quote_format=STRING\n"));
-	fprintf(fp, _("#  quote_chars=STRING (%%s, %%S for initials)\n"));
-	fprintf(fp, _("#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"));
+	fprintf(fp, _("#  group_catchup_on_exit=ON/OFF\n"));
+	fprintf(fp, _("#  mail_8bit_header=ON/OFF\n"));
+	fprintf(fp, _("#  mail_mime_encoding=supported_encoding"));
+	for (i = 0; i < NUM_MIME_ENCODINGS; i++) {
+		if (!(i % 5))
+			fprintf(fp, "\n#    ");
+		fprintf(fp, "%s, ", txt_mime_encodings[i]);
+	}
+	fprintf(fp, "\n");
 #ifdef HAVE_ISPELL
 	fprintf(fp, _("#  ispell=STRING\n"));
 #endif /* HAVE_ISPELL */
-	fprintf(fp, _("#  auto_select=ON/OFF\n"));
-	fprintf(fp, _("#  auto_save=ON/OFF\n"));
-	fprintf(fp, _("#  batch_save=ON/OFF\n"));
-	fprintf(fp, _("#  delete_tmp_files=ON/OFF\n"));
-	fprintf(fp, _("#  show_only_unread=ON/OFF\n"));
-	fprintf(fp, _("#  thread_arts=NUM"));
-	for (i = 0; i <= THREAD_MAX; i++) {
-		if (!(i % 2))
+	fprintf(fp, _("#  maildir=STRING (eg. ~/Mail)\n"));
+	fprintf(fp, _("#  mailing_list=STRING (eg. majordomo@example.org)\n"));
+	fprintf(fp, _("#  mime_types_to_save=STRING (eg. image/*,!image/bmp)\n"));
+	fprintf(fp, _("#  mark_ignore_tags=ON/OFF\n"));
+	fprintf(fp, _("#  mark_saved_read=ON/OFF\n"));
+	fprintf(fp, _("#  mime_forward=ON/OFF\n"));
+#ifdef CHARSET_CONVERSION
+	fprintf(fp, _("#  mm_network_charset=supported_charset"));
+	for (i = 0; i < NUM_MIME_CHARSETS; i++) {
+		if (!(i % 5)) /* start new line */
 			fprintf(fp, "\n#    ");
-		fprintf(fp, "%d=%s, ", i, _(txt_threading[i]));
+		fprintf(fp, "%s, ", txt_mime_charsets[i]);
 	}
 	fprintf(fp, "\n");
-	fprintf(fp, _("#  thread_perc=NUM\n"));
+	fprintf(fp, _("#  undeclared_charset=STRING (default is US-ASCII)\n"));
+#endif /* CHARSET_CONVERSION */
+	fprintf(fp, _("#  news_headers_to_display=STRING\n"));
+	fprintf(fp, _("#  news_headers_to_not_display=STRING\n"));
+	fprintf(fp, _("#  news_quote_format=STRING\n"));
+	fprintf(fp, _("#  organization=STRING (if beginning with '/' read from file)\n"));
+	fprintf(fp, _("#  pos_first_unread=ON/OFF\n"));
+	fprintf(fp, _("#  post_8bit_header=ON/OFF\n"));
+	fprintf(fp, _("#  post_mime_encoding=supported_encoding"));
+	for (i = 0; i < NUM_MIME_ENCODINGS; i++) {
+		if (!(i % 5))
+			fprintf(fp, "\n#    ");
+		fprintf(fp, "%s, ", txt_mime_encodings[i]);
+	}
+	fprintf(fp, "\n");
+	fprintf(fp, _("#  post_process_type=NUM\n"));
+	fprintf(fp, "#    %d=%s, %d=%s, %d=%s\n",
+		POST_PROC_NO, _(txt_post_process_types[POST_PROC_NO]),
+		POST_PROC_SHAR, _(txt_post_process_types[POST_PROC_SHAR]),
+		POST_PROC_YES, _(txt_post_process_types[POST_PROC_YES]));
+	fprintf(fp, _("#  post_process_view=ON/OFF\n"));
+	fprintf(fp, _("#  quick_kill_scope=STRING (ie. talk.*)\n"));
+	fprintf(fp, _("#  quick_kill_expire=ON/OFF\n"));
+	fprintf(fp, _("#  quick_kill_case=ON/OFF\n"));
+	fprintf(fp, _("#  quick_kill_header=NUM\n"));
+	fprintf(fp, _("#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"));
+	fprintf(fp, _("#    2=From: (case sensitive)     3=From: (ignore case)\n"));
+	fprintf(fp, _("#    4=Message-ID: & full References: line\n"));
+	fprintf(fp, _("#    5=Message-ID: & last References: entry only\n"));
+	fprintf(fp, _("#    6=Message-ID: entry only     7=Lines:\n"));
+	fprintf(fp, _("#  quick_select_scope=STRING\n"));
+	fprintf(fp, _("#  quick_select_expire=ON/OFF\n"));
+	fprintf(fp, _("#  quick_select_case=ON/OFF\n"));
+	fprintf(fp, _("#  quick_select_header=NUM\n"));
+	fprintf(fp, _("#    0=Subject: (case sensitive)  1=Subject: (ignore case)\n"));
+	fprintf(fp, _("#    2=From: (case sensitive)     3=From: (ignore case)\n"));
+	fprintf(fp, _("#    4=Message-ID: & full References: line\n"));
+	fprintf(fp, _("#    5=Message-ID: & last References: entry only\n"));
+	fprintf(fp, _("#    6=Message-ID: entry only     7=Lines:\n"));
+	fprintf(fp, _("#  quote_chars=STRING (%%s, %%S for initials)\n"));
+#ifndef DISABLE_PRINTING
+	fprintf(fp, _("#  print_header=ON/OFF\n"));
+#endif /* !DISABLE_PRINTING */
+	fprintf(fp, _("#  process_only_unread=ON/OFF\n"));
+	fprintf(fp, _("#  prompt_followupto=ON/OFF\n"));
+	fprintf(fp, _("#  savedir=STRING (eg. ~user/News)\n"));
+	fprintf(fp, _("#  savefile=STRING (eg. =linux)\n"));
+	fprintf(fp, _("#  sigfile=STRING (eg. $var/sig)\n"));
 	fprintf(fp, _("#  show_author=NUM\n"));
 	fprintf(fp, "#    %d=%s, %d=%s, %d=%s, %d=%s\n",
 		SHOW_FROM_NONE, _(txt_show_from[SHOW_FROM_NONE]),
@@ -689,7 +1203,11 @@ write_attributes_file(
 		SHOW_INFO_LINES, _(txt_show_info_type[SHOW_INFO_LINES]),
 		SHOW_INFO_SCORE, _(txt_show_info_type[SHOW_INFO_SCORE]),
 		SHOW_INFO_BOTH, _(txt_show_info_type[SHOW_INFO_BOTH]));
-	fprintf(fp, _("#  sort_art_type=NUM\n"));
+	fprintf(fp, _("#  show_signatures=ON/OFF\n"));
+	fprintf(fp, _("#  show_only_unread_arts=ON/OFF\n"));
+	fprintf(fp, _("#  sigdashes=ON/OFF\n"));
+	fprintf(fp, _("#  signature_repost=ON/OFF\n"));
+	fprintf(fp, _("#  sort_article_type=NUM\n"));
 	fprintf(fp, "#    %d=%s,\n",
 		SORT_ARTICLES_BY_NOTHING, _(txt_sort_a_type[SORT_ARTICLES_BY_NOTHING]));
 	fprintf(fp, "#    %d=%s, %d=%s,\n",
@@ -712,239 +1230,473 @@ 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, _("#  post_proc_type=NUM\n"));
-	fprintf(fp, "#    %d=%s, %d=%s, %d=%s\n",
-		POST_PROC_NO, _(txt_post_process_type[POST_PROC_NO]),
-		POST_PROC_SHAR, _(txt_post_process_type[POST_PROC_SHAR]),
-		POST_PROC_YES, _(txt_post_process_type[POST_PROC_YES]));
-	fprintf(fp, _("#  quick_kill_scope=STRING (ie. talk.*)\n"));
-	fprintf(fp, _("#  quick_kill_expire=ON/OFF\n"));
-	fprintf(fp, _("#  quick_kill_case=ON/OFF\n"));
-	fprintf(fp, _("#  quick_kill_header=NUM\n"));
-	fprintf(fp, _("#    0=subj (case sensitive) 1=subj (ignore case)\n"));
-	fprintf(fp, _("#    2=from (case sensitive) 3=from (ignore case)\n"));
-	fprintf(fp, _("#    4=msgid 5=lines\n"));
-	fprintf(fp, _("#  quick_select_scope=STRING\n"));
-	fprintf(fp, _("#  quick_select_expire=ON/OFF\n"));
-	fprintf(fp, _("#  quick_select_case=ON/OFF\n"));
-	fprintf(fp, _("#  quick_select_header=NUM\n"));
-	fprintf(fp, _("#    0=subj (case sensitive) 1=subj (ignore case)\n"));
-	fprintf(fp, _("#    2=from (case sensitive) 3=from (ignore case)\n"));
-	fprintf(fp, _("#    4=msgid 5=lines\n"));
-	fprintf(fp, _("#  x_comment_to=ON/OFF\n"));
-	fprintf(fp, _("#  fcc=STRING (eg. =mailbox)\n"));
+	fprintf(fp, "#    %d=%s\n",
+		SORT_THREADS_BY_LAST_POSTING_DATE_DESCEND, _(txt_sort_t_type[SORT_THREADS_BY_LAST_POSTING_DATE_DESCEND]));
+	fprintf(fp, "#    %d=%s\n",
+		SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND, _(txt_sort_t_type[SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND]));
+	fprintf(fp, _("#  start_editor_offset=ON/OFF\n"));
 	fprintf(fp, _("#  tex2iso_conv=ON/OFF\n"));
-	fprintf(fp, _("#  mime_forward=ON/OFF\n"));
-#ifdef CHARSET_CONVERSION
-	fprintf(fp, _("#  mm_network_charset=supported_charset"));
-	for (i = 0; i < NUM_MIME_CHARSETS; i++) {
-		if (!(i % 5)) /* start new line */
+	fprintf(fp, _("#  thread_catchup_on_exit=ON/OFF\n"));
+	fprintf(fp, _("#  thread_articles=NUM"));
+	for (i = 0; i <= THREAD_MAX; i++) {
+		if (!(i % 2))
 			fprintf(fp, "\n#    ");
-		fprintf(fp, "%s, ", txt_mime_charsets[i]);
+		fprintf(fp, "%d=%s, ", i, _(txt_threading[i]));
 	}
 	fprintf(fp, "\n");
-	fprintf(fp, _("#  undeclared_charset=STRING (default is US-ASCII)\n"));
-#endif /* CHARSET_CONVERSION */
+	fprintf(fp, _("#  thread_perc=NUM\n"));
+	fprintf(fp, _("#  trim_article_body=NUM\n"));
+	fprintf(fp, _("#    0 = Don't trim article body\n"));
+	fprintf(fp, _("#    1 = Skip leading blank lines\n"));
+	fprintf(fp, _("#    2 = Skip trailing blank lines\n"));
+	fprintf(fp, _("#    3 = Skip leading and trailing blank lines\n"));
+	fprintf(fp, _("#    4 = Compact multiple blank lines between text blocks\n"));
+	fprintf(fp, _("#    5 = Compact multiple blank lines between text blocks and skip\n#        leading blank lines\n"));
+	fprintf(fp, _("#    6 = Compact multiple blank lines between text blocks and skip\n#        trailing blank lines\n"));
+	fprintf(fp, _("#    7 = Compact multiple blank lines between text blocks and skip\n#        leading and trailing blank lines\n"));
+	fprintf(fp, _("#  verbatim_handling=ON/OFF\n"));
+	fprintf(fp, _("#  wrap_on_next_unread=ON/OFF\n"));
+	fprintf(fp, _("#  x_body=STRING (eg. ~/.tin/extra-body-text)\n"));
+	fprintf(fp, _("#  x_comment_to=ON/OFF\n"));
+	fprintf(fp, _("#  x_headers=STRING (eg. ~/.tin/extra-headers)\n"));
 	fprintf(fp, _("#\n# Note that it is best to put general (global scoping)\n"));
 	fprintf(fp, _("# entries first followed by group specific entries.\n#\n"));
-	fprintf(fp, _("############################################################################\n\n"));
+	fprintf(fp, _("############################################################################\n"));
 
 	/*
-	 * Add some useful defaults if no attributes file currently exists
+	 * determine the file offset
+	 * this is nesessary because a changed locale setting
+	 * may lead to an invalid offset
 	 */
-	if ((infp = fopen(file, "r" FOPEN_OPTS)) == NULL) {
-		fprintf(fp, _("# include extra headers\n"));
-		fprintf(fp, "scope=*\n");
-		/*
-		 * ${TIN_HOMEDIR-HOME} would be correct, but tin doesn't expand it,
-		 * so we take ~ instead
-		 */
-		fprintf(fp, "x_headers=~/.tin/headers\n\n");
+	fpos = ftell(fp);
+	rewind(fp);
+	attrib_file_offset = 1;
+	while ((i = fgetc(fp)) != EOF) {
+		if (i == '\n')
+			attrib_file_offset++;
+	}
+	fseek(fp, fpos, SEEK_SET);
 
-		fprintf(fp, _("# in *sources* set post process type to shar only\n"));
-		fprintf(fp, "scope=*sources*\n");
-		fprintf(fp, "post_proc_type=%d\n\n", POST_PROC_SHAR);
-
-		fprintf(fp, _("# in *binaries* do full post processing but no TeX2ISO conversion,\n"));
-		fprintf(fp, _("# remove tmp files and set Followup-To: poster\n"));
-		fprintf(fp, "scope=*binaries*\n");
-		fprintf(fp, "post_proc_type=%d\n", POST_PROC_YES);
-		fprintf(fp, "tex2iso_conv=OFF\n");
-		fprintf(fp, "delete_tmp_files=ON\n");
-		fprintf(fp, "followup_to=poster\n\n");
-	} else {
-		char *ptr;
-		char buf[LEN];
+	if ((num_scope > 0) && (scopes != NULL)) {
+		struct t_scope *scope;
 
-		/*
-		 * Until the write code is fixed, just copy the existing settings after
-		 * the updated header
-		 */
-		while ((ptr = fgets(buf, sizeof(buf), infp)) != NULL) {
-			if (ptr[0] != '#' )				/* End of headers */
-				break;
+		for (i = 1; i < num_scope; i++) {
+			scope = &scopes[i];
+			if (!scope->global) {
+				fprintf(fp, "\nscope=%s\n", scope->scope);
+				if (scope->state->add_posted_to_filter)
+					fprintf(fp, "add_posted_to_filter=%s\n", print_boolean(scope->attribute->add_posted_to_filter));
+				if (scope->state->advertising)
+					fprintf(fp, "advertising=%s\n", print_boolean(scope->attribute->advertising));
+				if (scope->state->alternative_handling)
+					fprintf(fp, "alternative_handling=%s\n", print_boolean(scope->attribute->alternative_handling));
+				if (scope->state->ask_for_metamail)
+					fprintf(fp, "ask_for_metamail=%s\n", print_boolean(scope->attribute->ask_for_metamail));
+				if (scope->state->auto_cc_bcc)
+					fprintf(fp, "auto_cc_bcc=%u\n", scope->attribute->auto_cc_bcc);
+				if (scope->state->auto_list_thread)
+					fprintf(fp, "auto_list_thread=%s\n", print_boolean(scope->attribute->auto_list_thread));
+				if (scope->state->auto_select)
+					fprintf(fp, "auto_select=%s\n", print_boolean(scope->attribute->auto_select));
+				if (scope->state->auto_save)
+					fprintf(fp, "auto_save=%s\n", print_boolean(scope->attribute->auto_save));
+				if (scope->state->batch_save)
+					fprintf(fp, "batch_save=%s\n", print_boolean(scope->attribute->batch_save));
+				if (scope->state->date_format && scope->attribute->date_format)
+					fprintf(fp, "date_format=%s\n", scope->attribute->date_format);
+				if (scope->state->delete_tmp_files)
+					fprintf(fp, "delete_tmp_files=%s\n", print_boolean(scope->attribute->delete_tmp_files));
+				if (scope->state->editor_format && scope->attribute->editor_format)
+					fprintf(fp, "editor_format=%s\n", scope->attribute->editor_format);
+				if (scope->state->fcc && scope->attribute->fcc)
+					fprintf(fp, "fcc=%s\n", scope->attribute->fcc);
+				if (scope->state->followup_to && scope->attribute->followup_to)
+					fprintf(fp, "followup_to=%s\n", scope->attribute->followup_to);
+				if (scope->state->from && scope->attribute->from)
+					fprintf(fp, "from=%s\n", scope->attribute->from);
+				if (scope->state->group_catchup_on_exit)
+					fprintf(fp, "group_catchup_on_exit=%s\n", print_boolean(scope->attribute->group_catchup_on_exit));
+				if (scope->state->mail_8bit_header)
+					fprintf(fp, "mail_8bit_header=%s\n", print_boolean(scope->attribute->mail_8bit_header));
+				if (scope->state->mail_mime_encoding)
+					fprintf(fp, "mail_mime_encoding=%s\n", txt_mime_encodings[scope->attribute->mail_mime_encoding]);
+#ifdef HAVE_ISPELL
+				if (scope->state->ispell && scope->attribute->ispell)
+					fprintf(fp, "ispell=%s\n", scope->attribute->ispell);
+#endif /* HAVE_ISPELL */
+				if (scope->state->maildir && scope->attribute->maildir)
+					fprintf(fp, "maildir=%s\n", scope->attribute->maildir);
+				if (scope->state->mailing_list && scope->attribute->mailing_list)
+					fprintf(fp, "mailing_list=%s\n", scope->attribute->mailing_list);
+				if (scope->state->mark_ignore_tags)
+					fprintf(fp, "mark_ignore_tags=%s\n", print_boolean(scope->attribute->mark_ignore_tags));
+				if (scope->state->mark_saved_read)
+					fprintf(fp, "mark_saved_read=%s\n", print_boolean(scope->attribute->mark_saved_read));
+				if (scope->state->mime_forward)
+					fprintf(fp, "mime_forward=%s\n", print_boolean(scope->attribute->mime_forward));
+				if (scope->state->mime_types_to_save && scope->attribute->mime_types_to_save)
+					fprintf(fp, "mime_types_to_save=%s\n", scope->attribute->mime_types_to_save);
+#ifdef CHARSET_CONVERSION
+				if (scope->state->mm_network_charset)
+					fprintf(fp, "mm_network_charset=%s\n", txt_mime_charsets[scope->attribute->mm_network_charset]);
+				if (scope->state->undeclared_charset && scope->attribute->undeclared_charset)
+					fprintf(fp, "undeclared_charset=%s\n", scope->attribute->undeclared_charset);
+#endif /* CHARSET_CONVERSION */
+				if (scope->state->news_headers_to_display && scope->attribute->news_headers_to_display)
+					fprintf(fp, "news_headers_to_display=%s\n", scope->attribute->news_headers_to_display);
+				if (scope->state->news_headers_to_not_display && scope->attribute->news_headers_to_not_display)
+					fprintf(fp, "news_headers_to_not_display=%s\n", scope->attribute->news_headers_to_not_display);
+				if (scope->state->news_quote_format && scope->attribute->news_quote_format)
+					fprintf(fp, "news_quote_format=%s\n", scope->attribute->news_quote_format);
+				if (scope->state->organization && scope->attribute->organization)
+					fprintf(fp, "organization=%s\n", scope->attribute->organization);
+				if (scope->state->pos_first_unread)
+					fprintf(fp, "pos_first_unread=%s\n", print_boolean(scope->attribute->pos_first_unread));
+				if (scope->state->post_8bit_header)
+					fprintf(fp, "post_8bit_header=%s\n", print_boolean(scope->attribute->post_8bit_header));
+				if (scope->state->post_mime_encoding)
+					fprintf(fp, "post_mime_encoding=%s\n", txt_mime_encodings[scope->attribute->post_mime_encoding]);
+				if (scope->state->post_process_view)
+					fprintf(fp, "post_process_view=%s\n", print_boolean(scope->attribute->post_process_view));
+				if (scope->state->post_process_type)
+					fprintf(fp, "post_process_type=%u\n", scope->attribute->post_process_type);
+#ifndef DISABLE_PRINTING
+				if (scope->state->print_header)
+					fprintf(fp, "print_header=%s\n", print_boolean(scope->attribute->print_header));
+#endif /* !DISABLE_PRINTING */
+				if (scope->state->process_only_unread)
+					fprintf(fp, "process_only_unread=%s\n", print_boolean(scope->attribute->process_only_unread));
+				if (scope->state->prompt_followupto)
+					fprintf(fp, "prompt_followupto=%s\n", print_boolean(scope->attribute->prompt_followupto));
+				if (scope->state->quick_kill_scope && scope->attribute->quick_kill_scope)
+					fprintf(fp, "quick_kill_scope=%s\n", scope->attribute->quick_kill_scope);
+				if (scope->state->quick_kill_case)
+					fprintf(fp, "quick_kill_case=%s\n", print_boolean(scope->attribute->quick_kill_case));
+				if (scope->state->quick_kill_expire)
+					fprintf(fp, "quick_kill_expire=%s\n", print_boolean(scope->attribute->quick_kill_expire));
+				if (scope->state->quick_kill_header)
+					fprintf(fp, "quick_kill_header=%u\n", scope->attribute->quick_kill_header);
+				if (scope->state->quick_select_scope && scope->attribute->quick_select_scope)
+					fprintf(fp, "quick_select_scope=%s\n", scope->attribute->quick_select_scope);
+				if (scope->state->quick_select_case)
+					fprintf(fp, "quick_select_case=%s\n", print_boolean(scope->attribute->quick_select_case));
+				if (scope->state->quick_select_expire)
+					fprintf(fp, "quick_select_expire=%s\n", print_boolean(scope->attribute->quick_select_expire));
+				if (scope->state->quick_select_header)
+					fprintf(fp, "quick_select_header=%u\n", scope->attribute->quick_select_header);
+				if (scope->state->quote_chars && scope->attribute->quote_chars)
+					fprintf(fp, "quote_chars=%s\n", quote_space_to_dash(scope->attribute->quote_chars));
+				if (scope->state->savedir && scope->attribute->savedir)
+					fprintf(fp, "savedir=%s\n", scope->attribute->savedir);
+				if (scope->state->savefile && scope->attribute->savefile)
+					fprintf(fp, "savefile=%s\n", scope->attribute->savefile);
+				if (scope->state->show_author)
+					fprintf(fp, "show_author=%u\n", scope->attribute->show_author);
+				if (scope->state->show_info)
+					fprintf(fp, "show_info=%u\n", scope->attribute->show_info);
+				if (scope->state->show_only_unread_arts)
+					fprintf(fp, "show_only_unread_arts=%s\n", print_boolean(scope->attribute->show_only_unread_arts));
+				if (scope->state->show_signatures)
+					fprintf(fp, "show_signatures=%s\n", print_boolean(scope->attribute->show_signatures));
+				if (scope->state->sigdashes)
+					fprintf(fp, "sigdashes=%s\n", print_boolean(scope->attribute->sigdashes));
+				if (scope->state->sigfile && scope->attribute->sigfile)
+					fprintf(fp, "sigfile=%s\n", scope->attribute->sigfile);
+				if (scope->state->signature_repost)
+					fprintf(fp, "signature_repost=%s\n", print_boolean(scope->attribute->signature_repost));
+				if (scope->state->sort_article_type)
+					fprintf(fp, "sort_article_type=%u\n", scope->attribute->sort_article_type);
+				if (scope->state->sort_threads_type)
+					fprintf(fp, "sort_threads_type=%u\n", scope->attribute->sort_threads_type);
+				if (scope->state->start_editor_offset)
+					fprintf(fp, "start_editor_offset=%s\n", print_boolean(scope->attribute->start_editor_offset));
+				if (scope->state->tex2iso_conv)
+					fprintf(fp, "tex2iso_conv=%s\n", print_boolean(scope->attribute->tex2iso_conv));
+				if (scope->state->thread_articles)
+					fprintf(fp, "thread_articles=%u\n", scope->attribute->thread_articles);
+				if (scope->state->thread_catchup_on_exit)
+					fprintf(fp, "thread_catchup_on_exit=%s\n", print_boolean(scope->attribute->thread_catchup_on_exit));
+				if (scope->state->thread_perc)
+					fprintf(fp, "thread_perc=%u\n", scope->attribute->thread_perc);
+				if (scope->state->trim_article_body)
+					fprintf(fp, "trim_article_body=%u\n", scope->attribute->trim_article_body);
+				if (scope->state->verbatim_handling)
+					fprintf(fp, "verbatim_handling=%s\n", print_boolean(scope->attribute->verbatim_handling));
+				if (scope->state->wrap_on_next_unread)
+					fprintf(fp, "wrap_on_next_unread=%s\n", print_boolean(scope->attribute->wrap_on_next_unread));
+				if (scope->state->x_headers && scope->attribute->x_headers)
+					fprintf(fp, "x_headers=%s\n", scope->attribute->x_headers);
+				if (scope->state->x_body && scope->attribute->x_body)
+					fprintf(fp, "x_body=%s\n", scope->attribute->x_body);
+				if (scope->state->x_comment_to)
+					fprintf(fp, "x_comment_to=%s\n", print_boolean(scope->attribute->x_comment_to));
+			}
 		}
-		copy_ok = copy_fp(infp, fp);
-		fclose(infp);
 	}
 
 	/* rename_file() preserves mode, so this is safe */
 	fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR));
 
-	if (ferror(fp) || fclose(fp))
-		error_message(_(txt_filesystem_full), ATTRIBUTES_FILE);
-	else if (copy_ok)
+	if ((i = ferror(fp)) || fclose(fp)) {
+		error_message(2, _(txt_filesystem_full), ATTRIBUTES_FILE);
+		unlink(new_file);
+		if (i) {
+			clearerr(fp);
+			fclose(fp);
+		}
+	} else
 		rename_file(new_file, file);
-	else
-		unlink (new_file);
 
 	free(new_file);
 	return;
-
-#if 0 /* FIXME */
-	for_each_group(i) {
-		struct t_attribute *attr = active[i].attribute;
-
-		/* TODO: only write out none empty && no defaut entrys */
-		fprintf(fp, "scope=%s\n", active[i].name);
-		fprintf(fp, "maildir=%s\n", attr->maildir);
-		fprintf(fp, "savedir=%s\n", attr->savedir);
-		fprintf(fp, "savefile=%s\n", attr->savefile);
-		fprintf(fp, "sigfile=%s\n", attr->sigfile);
-		fprintf(fp, "organization=%s\n", attr->organization);
-		fprintf(fp, "followup_to=%s\n", attr->followup_to);
-		fprintf(fp, "mailing_list=%s\n", attr->mailing_list);
-		fprintf(fp, "x_headers=%s\n", attr->x_headers);
-		fprintf(fp, "x_body=%s\n", attr->x_body);
-		fprintf(fp, "from=%s\n", attr->from);
-		fprintf(fp, "news_quote_format=%s\n", attr->news_quote_format);
-		fprintf(fp, "quote_chars=%s\n", quote_space_to_dash(attr->quote_chars));
-		fprintf(fp, "mime_types_to_save=%s\n", attr->mime_types_to_save);
-#	ifdef HAVE_ISPELL
-		fprintf(fp, "ispell=%s\n", attr->ispell);
-#	endif /* HAVE_ISPELL */
-		fprintf(fp, "show_only_unread=%s\n", print_boolean(attr->show_only_unread));
-		fprintf(fp, "thread_arts=%d\n", attr->thread_arts);
-		fprintf(fp, "thread_perc=%d\n", attr->thread_perc);
-		fprintf(fp, "auto_select=%s\n", print_boolean(attr->auto_select));
-		fprintf(fp, "auto_save=%s\n", print_boolean(attr->auto_save));
-		fprintf(fp, "batch_save=%s\n", print_boolean(attr->batch_save));
-		fprintf(fp, "delete_tmp_files=%s\n", print_boolean(attr->delete_tmp_files));
-		fprintf(fp, "sort_art_type=%d\n", attr->sort_art_type);
-		fprintf(fp, "sort_threads_type=%d\n", attr->sort_threads_type);
-		fprintf(fp, "show_author=%d\n", attr->show_author);
-		fprintf(fp, "show_info=%d\n", attr->show_info);
-		fprintf(fp, "post_proc_type=%d\n", attr->post_proc_type);
-		fprintf(fp, "quick_kill_scope=%s\n", attr->quick_kill_scope);
-		fprintf(fp, "quick_kill_case=%s\n", print_boolean(attr->quick_kill_case));
-		fprintf(fp, "quick_kill_expire=%s\n", print_boolean(attr->quick_kill_expire));
-		fprintf(fp, "quick_kill_header=%d\n", attr->quick_kill_header);
-		fprintf(fp, "quick_select_scope=%s\n", attr->quick_select_scope);
-		fprintf(fp, "quick_select_case=%s\n", print_boolean(attr->quick_select_case));
-		fprintf(fp, "quick_select_expire=%s\n", print_boolean(attr->quick_select_expire));
-		fprintf(fp, "quick_select_header=%d\n", attr->quick_select_header);
-		fprintf(fp, "x_comment_to=%s\n", print_boolean(attr->x_comment_to));
-		fprintf(fp, "fcc=%s\n", attr->fcc);
-		fprintf(fp, "tex2iso_conv=%s\n", print_boolean(attr->tex2iso_conv));
-		fprintf(fp, "mime_forward=%s\n", print_boolean(attr->mime_forward));
-#	ifdef CHARSET_CONVERSION
-		fprintf(fp, "mm_network_charset=%s\n", txt_mime_charsets[attr->mm_network_charset]);
-		fprintf(fp, "undeclared_charset=%s\n", attr->undeclared_charset);
-#	endif /* CHARSET_CONVERSION */
-	}
-#endif /* 0 */
 }
 
 
-#if 0
-void
+#ifdef DEBUG
+#	if 0
+static void
 debug_print_filter_attributes(
 	void)
 {
-	int i;
-	struct t_group *group;
+	if (debug & DEBUG_ATTRIB) {
+		int i;
+		struct t_group *group;
 
-	my_printf("\nBEG ***\n");
+		my_printf("\nBEG ***\n");
 
-	for_each_group(i) {
-		group = &active[i];
-		my_printf("Grp=[%s] KILL   header=[%d] scope=[%s] case=[%s] expire=[%s]\n",
-			group->name, group->attribute->quick_kill_header,
-			BlankIfNull(group->attribute->quick_kill_scope),
-			txt_onoff[group->attribute->quick_kill_case != FALSE ? 1 : 0],
-			txt_onoff[group->attribute->quick_kill_expire != FALSE ? 1 : 0]);
-		my_printf("Grp=[%s] SELECT header=[%d] scope=[%s] case=[%s] expire=[%s]\n",
-			group->name, group->attribute->quick_select_header,
-			BlankIfNull(group->attribute->quick_select_scope),
-			txt_onoff[group->attribute->quick_select_case != FALSE ? 1 : 0],
-			txt_onoff[group->attribute->quick_select_expire != FALSE ? 1 : 0]);
+		for_each_group(i) {
+			group = &active[i];
+			my_printf("Grp=[%s] KILL   header=[%d] scope=[%s] case=[%s] expire=[%s]\n",
+				group->name, group->attribute->quick_kill_header,
+				BlankIfNull(group->attribute->quick_kill_scope),
+				txt_onoff[group->attribute->quick_kill_case != FALSE ? 1 : 0],
+				txt_onoff[group->attribute->quick_kill_expire != FALSE ? 1 : 0]);
+			my_printf("Grp=[%s] SELECT header=[%d] scope=[%s] case=[%s] expire=[%s]\n",
+				group->name, group->attribute->quick_select_header,
+				BlankIfNull(group->attribute->quick_select_scope),
+				txt_onoff[group->attribute->quick_select_case != FALSE ? 1 : 0],
+				txt_onoff[group->attribute->quick_select_expire != FALSE ? 1 : 0]);
+		}
+		my_printf("END ***\n");
 	}
-
-	my_printf("END ***\n");
 }
+#	endif /* 0 */
 
 
-#	ifdef DEBUG
 static void
 dump_attributes(
 	void)
 {
-	int i;
-	struct t_group *group;
+	if (debug & DEBUG_ATTRIB) {
+		int i, j;
+		struct t_group *group;
 
-	fprintf(stderr, "DUMP attributes\n");
+		for_each_group(i) {
+			group = &active[i];
+			if (!group->attribute)
+				continue;
+			debug_print_file("ATTRIBUTES", "group=%s", BlankIfNull(group->name));
+			debug_print_file("ATTRIBUTES", "\tGlobal=%d", group->attribute->global);
+			debug_print_file("ATTRIBUTES", "\tmaildir=%s", BlankIfNull(group->attribute->maildir));
+			debug_print_file("ATTRIBUTES", "\tsavedir=%s", BlankIfNull(group->attribute->savedir));
+			debug_print_file("ATTRIBUTES", "\tsavefile=%s", BlankIfNull(group->attribute->savefile));
+			debug_print_file("ATTRIBUTES", "\tsigfile=%s", BlankIfNull(group->attribute->sigfile));
+			debug_print_file("ATTRIBUTES", "\torganization=%s", BlankIfNull(group->attribute->organization));
+			debug_print_file("ATTRIBUTES", "\tfollowup_to=%s", BlankIfNull(group->attribute->followup_to));
+			debug_print_file("ATTRIBUTES", "\tmailing_list=%s", BlankIfNull(group->attribute->mailing_list));
+			debug_print_file("ATTRIBUTES", "\tx_headers=%s", BlankIfNull(group->attribute->x_headers));
+			debug_print_file("ATTRIBUTES", "\tx_body=%s", BlankIfNull(group->attribute->x_body));
+			debug_print_file("ATTRIBUTES", "\tfrom=%s", BlankIfNull(group->attribute->from));
+			debug_print_file("ATTRIBUTES", "\tnews_quote_format=%s", BlankIfNull(group->attribute->news_quote_format));
+			debug_print_file("ATTRIBUTES", "\tquote_chars=%s", quote_space_to_dash(BlankIfNull(group->attribute->quote_chars)));
+			debug_print_file("ATTRIBUTES", "\tmime_types_to_save=%s", BlankIfNull(group->attribute->mime_types_to_save));
+#	ifdef HAVE_ISPELL
+			debug_print_file("ATTRIBUTES", "\tispell=%s", BlankIfNull(group->attribute->ispell));
+#	endif /* HAVE_ISPELL */
+			debug_print_file("ATTRIBUTES", "\tshow_only_unread_arts=%s", print_boolean(group->attribute->show_only_unread_arts));
+			debug_print_file("ATTRIBUTES", "\tthread_articles=%d", group->attribute->thread_articles);
+			debug_print_file("ATTRIBUTES", "\tthread_perc=%d", group->attribute->thread_perc);
+			debug_print_file("ATTRIBUTES", "\tadd_posted_to_filter=%s", print_boolean(group->attribute->add_posted_to_filter));
+			debug_print_file("ATTRIBUTES", "\tadvertising=%s", print_boolean(group->attribute->advertising));
+			debug_print_file("ATTRIBUTES", "\talternative_handling=%s", print_boolean(group->attribute->alternative_handling));
+			debug_print_file("ATTRIBUTES", "\task_for_metamail=%s", print_boolean(group->attribute->ask_for_metamail));
+			debug_print_file("ATTRIBUTES", "\tauto_cc_bcc=%d", group->attribute->auto_cc_bcc);
+			debug_print_file("ATTRIBUTES", "\tauto_list_thread=%s", print_boolean(group->attribute->auto_list_thread));
+			debug_print_file("ATTRIBUTES", "\tauto_select=%s", print_boolean(group->attribute->auto_select));
+			debug_print_file("ATTRIBUTES", "\tauto_save=%s", print_boolean(group->attribute->auto_save));
+			debug_print_file("ATTRIBUTES", "\tbatch_save=%s", print_boolean(group->attribute->batch_save));
+			debug_print_file("ATTRIBUTES", "\tdate_format=%s", BlankIfNull(group->attribute->date_format));
+			debug_print_file("ATTRIBUTES", "\tdelete_tmp_files=%s", print_boolean(group->attribute->delete_tmp_files));
+			debug_print_file("ATTRIBUTES", "\teditor_format=%s", BlankIfNull(group->attribute->editor_format));
+			debug_print_file("ATTRIBUTES", "\tgroup_catchup_on_exit=%s", print_boolean(group->attribute->group_catchup_on_exit));
+			debug_print_file("ATTRIBUTES", "\tmail_8bit_header=%s", print_boolean(group->attribute->mail_8bit_header));
+			debug_print_file("ATTRIBUTES", "\tmail_mime_encoding=%s", txt_mime_encodings[group->attribute->mail_mime_encoding]);
+			debug_print_file("ATTRIBUTES", "\tmark_ignore_tags=%s", print_boolean(group->attribute->mark_ignore_tags));
+			debug_print_file("ATTRIBUTES", "\tmark_saved_read=%s", print_boolean(group->attribute->mark_saved_read));
+			debug_print_file("ATTRIBUTES", "\tnews_headers_to_display=%s", BlankIfNull(group->attribute->news_headers_to_display));
+			if (group->attribute->headers_to_display) {
+				debug_print_file("ATTRIBUTES", "\theaders_to_display->num=%d", group->attribute->headers_to_display->num);
+				for (j = 0; j < group->attribute->headers_to_display->num; j++)
+					debug_print_file("ATTRIBUTES", "\theaders_to_display->header[%d]=%s", j, group->attribute->headers_to_display->header[j]);
+			}
+			debug_print_file("ATTRIBUTES", "\tnews_headers_to_not_display=%s", BlankIfNull(group->attribute->news_headers_to_not_display));
+			if (group->attribute->headers_to_not_display) {
+				debug_print_file("ATTRIBUTES", "\theaders_to_not_display->num=%d", group->attribute->headers_to_not_display->num);
+				for (j = 0; j < group->attribute->headers_to_not_display->num; j++)
+					debug_print_file("ATTRIBUTES", "\theaders_to_not_display->header[%d]=%s", j, group->attribute->headers_to_not_display->header[j]);
+			}
+			debug_print_file("ATTRIBUTES", "\tpos_first_unread=%s", print_boolean(group->attribute->pos_first_unread));
+			debug_print_file("ATTRIBUTES", "\tpost_8bit_header=%s", print_boolean(group->attribute->post_8bit_header));
+			debug_print_file("ATTRIBUTES", "\tpost_mime_encoding=%s", txt_mime_encodings[group->attribute->post_mime_encoding]);
+			debug_print_file("ATTRIBUTES", "\tpost_process_view=%s", print_boolean(group->attribute->post_process_view));
+#	ifndef DISABLE_PRINTING
+			debug_print_file("ATTRIBUTES", "\tprint_header=%s", print_boolean(group->attribute->print_header));
+#	endif /* !DISABLE_PRINTING */
+			debug_print_file("ATTRIBUTES", "\tprocess_only_unread=%s", print_boolean(group->attribute->process_only_unread));
+			debug_print_file("ATTRIBUTES", "\tprompt_followupto=%s", print_boolean(group->attribute->prompt_followupto));
+			debug_print_file("ATTRIBUTES", "\tsort_article_type=%d", group->attribute->sort_article_type);
+			debug_print_file("ATTRIBUTES", "\tsort_threads_type=%d", group->attribute->sort_threads_type);
+			debug_print_file("ATTRIBUTES", "\tshow_author=%d", group->attribute->show_author);
+			debug_print_file("ATTRIBUTES", "\tshow_info=%d", group->attribute->show_info);
+			debug_print_file("ATTRIBUTES", "\tshow_signatures=%s", print_boolean(group->attribute->show_signatures));
+			debug_print_file("ATTRIBUTES", "\tsigdashes=%s", print_boolean(group->attribute->sigdashes));
+			debug_print_file("ATTRIBUTES", "\tsignature_repost=%s", print_boolean(group->attribute->signature_repost));
+			debug_print_file("ATTRIBUTES", "\tstart_editor_offset=%s", print_boolean(group->attribute->start_editor_offset));
+			debug_print_file("ATTRIBUTES", "\tthread_catchup_on_exit=%s", print_boolean(group->attribute->thread_catchup_on_exit));
+			debug_print_file("ATTRIBUTES", "\ttrim_article_body=%d", group->attribute->trim_article_body);
+			debug_print_file("ATTRIBUTES", "\tverbatim_handling=%s", print_boolean(group->attribute->verbatim_handling));
+			debug_print_file("ATTRIBUTES", "\twrap_on_next_unread=%s", print_boolean(group->attribute->wrap_on_next_unread));
+			debug_print_file("ATTRIBUTES", "\tpost_process_type=%d", group->attribute->post_process_type);
+			debug_print_file("ATTRIBUTES", "\tquick_kill_scope=%s", BlankIfNull(group->attribute->quick_kill_scope));
+			debug_print_file("ATTRIBUTES", "\tquick_kill_case=%s", print_boolean(group->attribute->quick_kill_case));
+			debug_print_file("ATTRIBUTES", "\tquick_kill_expire=%s", print_boolean(group->attribute->quick_kill_expire));
+			debug_print_file("ATTRIBUTES", "\tquick_kill_header=%d", group->attribute->quick_kill_header);
+			debug_print_file("ATTRIBUTES", "\tquick_select_scope=%s", BlankIfNull(group->attribute->quick_select_scope));
+			debug_print_file("ATTRIBUTES", "\tquick_select_case=%s", print_boolean(group->attribute->quick_select_case));
+			debug_print_file("ATTRIBUTES", "\tquick_select_expire=%s", print_boolean(group->attribute->quick_select_expire));
+			debug_print_file("ATTRIBUTES", "\tquick_select_header=%d", group->attribute->quick_select_header);
+			debug_print_file("ATTRIBUTES", "\tx_comment_to=%s", print_boolean(group->attribute->x_comment_to));
+			debug_print_file("ATTRIBUTES", "\tfcc=%s", BlankIfNull(group->attribute->fcc));
+			debug_print_file("ATTRIBUTES", "\ttex2iso_conv=%s", print_boolean(group->attribute->tex2iso_conv));
+			debug_print_file("ATTRIBUTES", "\tmime_forward=%s", print_boolean(group->attribute->mime_forward));
+#	ifdef CHARSET_CONVERSION
+			debug_print_file("ATTRIBUTES", "\tmm_network_charset=%s", txt_mime_charsets[group->attribute->mm_network_charset]);
+			debug_print_file("ATTRIBUTES", "\tundeclared_charset=%s", BlankIfNull(group->attribute->undeclared_charset));
+#	endif /* CHARSET_CONVERSION */
+			debug_print_file("ATTRIBUTES", "");
+		}
+	}
+}
 
-	for_each_group(i) {
-		group = &active[i];
-		if (!group->attribute)
-			continue;
-		fprintf(stderr, "scope=%s\n", group->name);
-		fprintf(stderr, "\tGlobal=%d\n", group->attribute->global);
-		fprintf(stderr, "\tmaildir=%s\n", group->attribute->maildir);
-		fprintf(stderr, "\tsavedir=%s\n", group->attribute->savedir);
-		fprintf(stderr, "\tsavefile=%s\n", group->attribute->savefile);
-		fprintf(stderr, "\tsigfile=%s\n", group->attribute->sigfile);
-		fprintf(stderr, "\torganization=%s\n", group->attribute->organization);
-		fprintf(stderr, "\tfollowup_to=%s\n", group->attribute->followup_to);
-		fprintf(stderr, "\tmailing_list=%s\n", group->attribute->mailing_list);
-		fprintf(stderr, "\tx_headers=%s\n", group->attribute->x_headers);
-		fprintf(stderr, "\tx_body=%s\n", group->attribute->x_body);
-		fprintf(stderr, "\tfrom=%s\n", group->attribute->from);
-		fprintf(stderr, "\tnews_quote_format=%s\n", group->attribute->news_quote_format);
-		fprintf(stderr, "\tquote_chars=%s\n", quote_space_to_dash(group->attribute->quote_chars));
-		fprintf(stderr, "\tmime_types_to_save=%s\n", group->attribute->mime_types_to_save);
-#		ifdef HAVE_ISPELL
-		fprintf(stderr, "\tispell=%s\n", group->attribute->ispell);
-#		endif /* HAVE_ISPELL */
-		fprintf(stderr, "\tshow_only_unread=%s\n", print_boolean(group->attribute->show_only_unread));
-		fprintf(stderr, "\tthread_arts=%d\n", group->attribute->thread_arts);
-		fprintf(stderr, "\tthread_perc=%d\n", group->attribute->thread_perc);
-		fprintf(stderr, "\tauto_select=%s\n", print_boolean(group->attribute->auto_select));
-		fprintf(stderr, "\tauto_save=%s\n", print_boolean(group->attribute->auto_save));
-		fprintf(stderr, "\tbatch_save=%s\n", print_boolean(group->attribute->batch_save));
-		fprintf(stderr, "\tdelete_tmp_files=%s\n", print_boolean(group->attribute->delete_tmp_files));
-		fprintf(stderr, "\tsort_art_type=%d\n", group->attribute->sort_art_type);
-		fprintf(stderr, "\tsort_threads_type=%d\n", group->attribute->sort_threads_type);
-		fprintf(stderr, "\tshow_author=%d\n", group->attribute->show_author);
-		fprintf(stderr, "\tshow_info=%d\n", group->attribute->show_info);
-		fprintf(stderr, "\tpost_proc_type=%d\n", group->attribute->post_proc_type);
-		fprintf(stderr, "\tquick_kill_scope=%s\n", group->attribute->quick_kill_scope);
-		fprintf(stderr, "\tquick_kill_case=%s\n", print_boolean(group->attribute->quick_kill_case));
-		fprintf(stderr, "\tquick_kill_expire=%s\n", print_boolean(group->attribute->quick_kill_expire));
-		fprintf(stderr, "\tquick_kill_header=%d\n", group->attribute->quick_kill_header);
-		fprintf(stderr, "\tquick_select_scope=%s\n", group->attribute->quick_select_scope);
-		fprintf(stderr, "\tquick_select_case=%s\n", print_boolean(group->attribute->quick_select_case));
-		fprintf(stderr, "\tquick_select_expire=%s\n", print_boolean(group->attribute->quick_select_expire));
-		fprintf(stderr, "\tquick_select_header=%d\n", group->attribute->quick_select_header);
-		fprintf(stderr, "\tx_comment_to=%s\n", print_boolean(group->attribute->x_comment_to));
-		fprintf(stderr, "\tfcc=%s\n", group->attribute->fcc);
-		fprintf(stderr, "\ttex2iso_conv=%s\n", print_boolean(group->attribute->tex2iso_conv));
-		fprintf(stderr, "\tmime_forward=%s\n", print_boolean(group->attribute->mime_forward));
-#		ifdef CHARSET_CONVERSION
-		fprintf(stderr, "\tmm_network_charset=%s\n", txt_mime_charsets[group->attribute->mm_network_charset]);
-		fprintf(stderr, "\tundeclared_charset=%s\n", group->attribute->undeclared_charset);
-#		endif /* CHARSET_CONVERSION */
+
+#define DEBUG_PRINT_STATE(attrib) (scope->state->attrib ? "+ " : "  ")
+#define DEBUG_PRINT_STRING(attrib) (scope->attribute->attrib ? scope->attribute->attrib : "NULL")
+
+
+static void
+dump_scopes(
+	const char *fname)
+{
+	if (!scopes)
+		return;
+
+	if (debug & DEBUG_ATTRIB) {
+		int i, j;
+		struct t_scope *scope;
+
+		for (i = 0; i < num_scope; i++) {
+			scope = &scopes[i];
+			debug_print_file(fname, "scopes[%d]", i);
+			debug_print_file(fname, "scope=%s", scope->scope ? scope->scope : "NULL");
+			debug_print_file(fname, "\t  global=%d", scope->global);
+			debug_print_file(fname, "\t%smaildir=%s", DEBUG_PRINT_STATE(maildir), DEBUG_PRINT_STRING(maildir));
+			debug_print_file(fname, "\t%ssavedir=%s", DEBUG_PRINT_STATE(savedir), DEBUG_PRINT_STRING(savedir));
+			debug_print_file(fname, "\t%ssavefile=%s", DEBUG_PRINT_STATE(savefile), DEBUG_PRINT_STRING(savefile));
+			debug_print_file(fname, "\t%ssigfile=%s", DEBUG_PRINT_STATE(sigfile), DEBUG_PRINT_STRING(sigfile));
+			debug_print_file(fname, "\t%sorganization=%s", DEBUG_PRINT_STATE(organization), DEBUG_PRINT_STRING(organization));
+			debug_print_file(fname, "\t%sfollowup_to=%s", DEBUG_PRINT_STATE(followup_to), DEBUG_PRINT_STRING(followup_to));
+			debug_print_file(fname, "\t%smailing_list=%s", DEBUG_PRINT_STATE(mailing_list), DEBUG_PRINT_STRING(mailing_list));
+			debug_print_file(fname, "\t%sx_headers=%s", DEBUG_PRINT_STATE(x_headers), DEBUG_PRINT_STRING(x_headers));
+			debug_print_file(fname, "\t%sx_body=%s", DEBUG_PRINT_STATE(x_body), DEBUG_PRINT_STRING(x_body));
+			debug_print_file(fname, "\t%sfrom=%s", DEBUG_PRINT_STATE(from), DEBUG_PRINT_STRING(from));
+			debug_print_file(fname, "\t%snews_quote_format=%s", DEBUG_PRINT_STATE(news_quote_format), DEBUG_PRINT_STRING(news_quote_format));
+			debug_print_file(fname, "\t%squote_chars=%s", DEBUG_PRINT_STATE(quote_chars), quote_space_to_dash(DEBUG_PRINT_STRING(quote_chars)));
+			debug_print_file(fname, "\t%smime_types_to_save=%s", DEBUG_PRINT_STATE(mime_types_to_save), DEBUG_PRINT_STRING(mime_types_to_save));
+#	ifdef HAVE_ISPELL
+			debug_print_file(fname, "\t%sispell=%s", DEBUG_PRINT_STATE(ispell), DEBUG_PRINT_STRING(ispell));
+#	endif /* HAVE_ISPELL */
+			debug_print_file(fname, "\t%sshow_only_unread_arts=%s", DEBUG_PRINT_STATE(show_only_unread_arts), print_boolean(scope->attribute->show_only_unread_arts));
+			debug_print_file(fname, "\t%sthread_articles=%d", DEBUG_PRINT_STATE(thread_articles), scope->attribute->thread_articles);
+			debug_print_file(fname, "\t%sthread_perc=%d", DEBUG_PRINT_STATE(thread_perc), scope->attribute->thread_perc);
+			debug_print_file(fname, "\t%sadd_posted_to_filter=%s", DEBUG_PRINT_STATE(add_posted_to_filter), print_boolean(scope->attribute->add_posted_to_filter));
+			debug_print_file(fname, "\t%sadvertising=%s", DEBUG_PRINT_STATE(advertising), print_boolean(scope->attribute->advertising));
+			debug_print_file(fname, "\t%salternative_handling=%s", DEBUG_PRINT_STATE(alternative_handling), print_boolean(scope->attribute->alternative_handling));
+			debug_print_file(fname, "\t%sask_for_metamail=%s", DEBUG_PRINT_STATE(ask_for_metamail), print_boolean(scope->attribute->ask_for_metamail));
+			debug_print_file(fname, "\t%sauto_cc_bcc=%d", DEBUG_PRINT_STATE(auto_cc_bcc), scope->attribute->auto_cc_bcc);
+			debug_print_file(fname, "\t%sauto_list_thread=%s", DEBUG_PRINT_STATE(auto_list_thread), print_boolean(scope->attribute->auto_list_thread));
+			debug_print_file(fname, "\t%sauto_select=%s", DEBUG_PRINT_STATE(auto_select), print_boolean(scope->attribute->auto_select));
+			debug_print_file(fname, "\t%sauto_save=%s", DEBUG_PRINT_STATE(auto_save), print_boolean(scope->attribute->auto_save));
+			debug_print_file(fname, "\t%sbatch_save=%s", DEBUG_PRINT_STATE(batch_save), print_boolean(scope->attribute->batch_save));
+			debug_print_file(fname, "\t%sdate_format=%s", DEBUG_PRINT_STATE(date_format), DEBUG_PRINT_STRING(date_format));
+			debug_print_file(fname, "\t%sdelete_tmp_files=%s", DEBUG_PRINT_STATE(delete_tmp_files), print_boolean(scope->attribute->delete_tmp_files));
+			debug_print_file(fname, "\t%seditor_format=%s", DEBUG_PRINT_STATE(editor_format), DEBUG_PRINT_STRING(editor_format));
+			debug_print_file(fname, "\t%sgroup_catchup_on_exit=%s", DEBUG_PRINT_STATE(group_catchup_on_exit), print_boolean(scope->attribute->group_catchup_on_exit));
+			debug_print_file(fname, "\t%smail_8bit_header=%s", DEBUG_PRINT_STATE(mail_8bit_header), print_boolean(scope->attribute->mail_8bit_header));
+			debug_print_file(fname, "\t%smail_mime_encoding=%s", DEBUG_PRINT_STATE(mail_mime_encoding), txt_mime_encodings[scope->attribute->mail_mime_encoding]);
+			debug_print_file(fname, "\t%smark_ignore_tags=%s", DEBUG_PRINT_STATE(mark_ignore_tags), print_boolean(scope->attribute->mark_ignore_tags));
+			debug_print_file(fname, "\t%smark_saved_read=%s", DEBUG_PRINT_STATE(mark_saved_read), print_boolean(scope->attribute->mark_saved_read));
+			debug_print_file(fname, "\t%snews_headers_to_display=%s", DEBUG_PRINT_STATE(news_headers_to_display), DEBUG_PRINT_STRING(news_headers_to_display));
+			if (scope->attribute->headers_to_display) {
+				debug_print_file(fname, "\t    headers_to_display->num=%d", scope->attribute->headers_to_display->num);
+				for (j = 0; j < scope->attribute->headers_to_display->num; j++)
+					debug_print_file(fname, "\t    headers_to_display->header[%d]=%s", j, scope->attribute->headers_to_display->header[j]);
+			}
+			debug_print_file(fname, "\t%snews_headers_to_not_display=%s", DEBUG_PRINT_STATE(news_headers_to_not_display), DEBUG_PRINT_STRING(news_headers_to_not_display));
+			if (scope->attribute->headers_to_not_display) {
+				debug_print_file(fname, "\t    headers_to_not_display->num=%d", scope->attribute->headers_to_not_display->num);
+				for (j = 0; j < scope->attribute->headers_to_not_display->num; j++)
+					debug_print_file(fname, "\t    headers_to_not_display->header[%d]=%s", j, scope->attribute->headers_to_not_display->header[j]);
+			}
+			debug_print_file(fname, "\t%spos_first_unread=%s", DEBUG_PRINT_STATE(pos_first_unread), print_boolean(scope->attribute->pos_first_unread));
+			debug_print_file(fname, "\t%spost_8bit_header=%s", DEBUG_PRINT_STATE(post_8bit_header), print_boolean(scope->attribute->post_8bit_header));
+			debug_print_file(fname, "\t%spost_mime_encoding=%s", DEBUG_PRINT_STATE(post_mime_encoding), txt_mime_encodings[scope->attribute->post_mime_encoding]);
+			debug_print_file(fname, "\t%spost_process_view=%s", DEBUG_PRINT_STATE(post_process_view), print_boolean(scope->attribute->post_process_view));
+#	ifndef DISABLE_PRINTING
+			debug_print_file(fname, "\t%sprint_header=%s", DEBUG_PRINT_STATE(print_header), print_boolean(scope->attribute->print_header));
+#	endif /* !DISABLE_PRINTING */
+			debug_print_file(fname, "\t%sprocess_only_unread=%s", DEBUG_PRINT_STATE(process_only_unread), print_boolean(scope->attribute->process_only_unread));
+			debug_print_file(fname, "\t%sprompt_followupto=%s", DEBUG_PRINT_STATE(prompt_followupto), print_boolean(scope->attribute->prompt_followupto));
+			debug_print_file(fname, "\t%ssort_article_type=%d", DEBUG_PRINT_STATE(sort_article_type), scope->attribute->sort_article_type);
+			debug_print_file(fname, "\t%ssort_threads_type=%d", DEBUG_PRINT_STATE(sort_threads_type), scope->attribute->sort_threads_type);
+			debug_print_file(fname, "\t%sshow_author=%d", DEBUG_PRINT_STATE(show_author), scope->attribute->show_author);
+			debug_print_file(fname, "\t%sshow_info=%d", DEBUG_PRINT_STATE(show_info), scope->attribute->show_info);
+			debug_print_file(fname, "\t%sshow_signatures=%s", DEBUG_PRINT_STATE(show_signatures), print_boolean(scope->attribute->show_signatures));
+			debug_print_file(fname, "\t%ssigdashes=%s", DEBUG_PRINT_STATE(sigdashes), print_boolean(scope->attribute->sigdashes));
+			debug_print_file(fname, "\t%ssignature_repost=%s", DEBUG_PRINT_STATE(signature_repost), print_boolean(scope->attribute->signature_repost));
+			debug_print_file(fname, "\t%sstart_editor_offset=%s", DEBUG_PRINT_STATE(start_editor_offset), print_boolean(scope->attribute->start_editor_offset));
+			debug_print_file(fname, "\t%sthread_catchup_on_exit=%s", DEBUG_PRINT_STATE(thread_catchup_on_exit), print_boolean(scope->attribute->thread_catchup_on_exit));
+			debug_print_file(fname, "\t%strim_article_body=%d", DEBUG_PRINT_STATE(trim_article_body), scope->attribute->trim_article_body);
+			debug_print_file(fname, "\t%sverbatim_handling=%s", DEBUG_PRINT_STATE(verbatim_handling), print_boolean(scope->attribute->verbatim_handling));
+			debug_print_file(fname, "\t%swrap_on_next_unread=%s", DEBUG_PRINT_STATE(wrap_on_next_unread), print_boolean(scope->attribute->wrap_on_next_unread));
+			debug_print_file(fname, "\t%spost_process_type=%d", DEBUG_PRINT_STATE(post_process_type), scope->attribute->post_process_type);
+			debug_print_file(fname, "\t%squick_kill_scope=%s", DEBUG_PRINT_STATE(quick_kill_scope), DEBUG_PRINT_STRING(quick_kill_scope));
+			debug_print_file(fname, "\t%squick_kill_case=%s", DEBUG_PRINT_STATE(quick_kill_case), print_boolean(scope->attribute->quick_kill_case));
+			debug_print_file(fname, "\t%squick_kill_expire=%s", DEBUG_PRINT_STATE(quick_kill_expire), print_boolean(scope->attribute->quick_kill_expire));
+			debug_print_file(fname, "\t%squick_kill_header=%d", DEBUG_PRINT_STATE(quick_kill_header), scope->attribute->quick_kill_header);
+			debug_print_file(fname, "\t%squick_select_scope=%s", DEBUG_PRINT_STATE(quick_select_scope), DEBUG_PRINT_STRING(quick_select_scope));
+			debug_print_file(fname, "\t%squick_select_case=%s", DEBUG_PRINT_STATE(quick_select_case), print_boolean(scope->attribute->quick_select_case));
+			debug_print_file(fname, "\t%squick_select_expire=%s", DEBUG_PRINT_STATE(quick_select_expire), print_boolean(scope->attribute->quick_select_expire));
+			debug_print_file(fname, "\t%squick_select_header=%d", DEBUG_PRINT_STATE(quick_select_header), scope->attribute->quick_select_header);
+			debug_print_file(fname, "\t%sx_comment_to=%s", DEBUG_PRINT_STATE(x_comment_to), print_boolean(scope->attribute->x_comment_to));
+			debug_print_file(fname, "\t%sfcc=%s", DEBUG_PRINT_STATE(fcc), DEBUG_PRINT_STRING(fcc));
+			debug_print_file(fname, "\t%stex2iso_conv=%s", DEBUG_PRINT_STATE(tex2iso_conv), print_boolean(scope->attribute->tex2iso_conv));
+			debug_print_file(fname, "\t%smime_forward=%s", DEBUG_PRINT_STATE(mime_forward), print_boolean(scope->attribute->mime_forward));
+#	ifdef CHARSET_CONVERSION
+			debug_print_file(fname, "\t%smm_network_charset=%s", DEBUG_PRINT_STATE(mm_network_charset), txt_mime_charsets[scope->attribute->mm_network_charset]);
+			debug_print_file(fname, "\t%sundeclared_charset=%s", DEBUG_PRINT_STATE(undeclared_charset), DEBUG_PRINT_STRING(undeclared_charset));
+#	endif /* CHARSET_CONVERSION */
+			debug_print_file(fname, "");
+		}
 	}
 }
-#	endif /* DEBUG */
-#endif /* 0 */
+#endif /* DEBUG */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/auth.c tin-2.0.0/src/auth.c
--- tin-1.8.3/src/auth.c	2005-12-02 12:07:35.000000000 +0100
+++ tin-2.0.0/src/auth.c	2011-04-17 16:04:30.239040532 +0200
@@ -3,11 +3,11 @@
  *  Module    : auth.c
  *  Author    : Dirk Nimmich <nimmich@muenster.de>
  *  Created   : 1997-04-05
- *  Updated   : 2005-08-16
+ *  Updated   : 2009-06-27
  *  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-2011 Dirk Nimmich <nimmich@muenster.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,91 +48,16 @@
  * we don't need authentication stuff at all if we don't have NNTP support
  */
 #ifdef NNTP_ABLE
-
 /*
  * local prototypes
  */
-static int do_authinfo_original(char *server, char *authuser, char *authpass);
-static t_bool authinfo_generic(void);
+static int do_authinfo_user(char *server, char *authuser, char *authpass);
 static t_bool read_newsauth_file(char *server, char *authuser, char *authpass);
-static t_bool authinfo_original(char *server, char *authuser, t_bool startup);
-
-
-/*
- * Process AUTHINFO GENERIC method.
- * TRUE means succeeded.
- * FALSE means failed
- */
-static t_bool
-authinfo_generic(
-	void)
-{
-	char *authcmd;
-	char authval[NNTP_STRLEN];
-	char tmpbuf[NNTP_STRLEN];
-	static int cookiefd = -1;
-	t_bool builtinauth = FALSE;
-#if !defined(HAVE_SETENV) && defined(HAVE_PUTENV)
-	char *new_env;
-	static char *old_env = NULL;
-#endif /* !HAVE_SETENV && HAVE_PUTENV */
-
-#ifdef DEBUG
-	debug_nntp("authorization", "authinfo generic");
-#endif /* DEBUG */
-
-	/*
-	 * If we have authenticated before, NNTP_AUTH_FDS already
-	 * exists, pull out the cookiefd. Just in case we've nested.
-	 */
-	if (cookiefd == -1 && (authcmd = getenv("NNTP_AUTH_FDS")))
-		(void) sscanf(authcmd, "%*d.%*d.%d", &cookiefd);
-
-	if (cookiefd == -1) {
-		char tempfile[PATH_LEN];
-		if ((cookiefd = my_tmpfile_only(tempfile)) == -1) {
-#	ifdef DEBUG
-			debug_nntp("authorization", txt_cannot_create_uniq_name);
-#	endif /* DEBUG */
-			return FALSE;
-		} else {
-			close(cookiefd);
-			if (tempfile[0] != '\0')
-				(void) unlink(tempfile);
-		}
-	}
-
-	strcpy(tmpbuf, "AUTHINFO GENERIC ");
-	STRCPY(authval, get_val("NNTPAUTH", ""));
-	if (strlen(authval))
-		strcat(tmpbuf, authval);
-	else {
-		strcat(tmpbuf, "ANY ");
-		strcat(tmpbuf, userid);
-		builtinauth = TRUE;
-	}
-	put_server(tmpbuf);
-
-#ifdef HAVE_SETENV
-	snprintf(tmpbuf, sizeof(tmpbuf), "%d.%d.%d",
-			fileno(get_nntp_fp(FAKE_NNTP_FP)),
-			fileno(get_nntp_wr_fp(FAKE_NNTP_FP)), cookiefd);
-	setenv("NNTP_AUTH_FDS", tmpbuf, 1);
-#else
-#	ifdef HAVE_PUTENV
-	snprintf(tmpbuf, sizeof(tmpbuf), "NNTP_AUTH_FDS=%d.%d.%d",
-			fileno(get_nntp_fp(FAKE_NNTP_FP)),
-			fileno(get_nntp_wr_fp(FAKE_NNTP_FP)), cookiefd);
-	new_env = my_strdup(tmpbuf);
-	(void) putenv(new_env);
-	FreeIfNeeded(old_env);
-	old_env = new_env;	/* we are 'leaking' the last malloced mem at exit here */
-#	endif /* HAVE_PUTENV */
-#endif /* HAVE_SETENV */
-
-	/* TODO: is it possible that we should have drained server here? */
-	return (builtinauth ? (get_only_respcode(NULL, 0) == OK_AUTH) : (invoke_cmd(authval) ? TRUE : FALSE));
-}
+static t_bool authinfo_plain(char *server, char *authuser, t_bool startup);
+#	ifdef USE_SASL
+	static char *sasl_auth_plain(char *user, char *pass);
+	static int do_authinfo_sasl_plain(char *authuser, char *authpass);
+#	endif /* USE_SASL */
 
 
 /*
@@ -150,14 +75,15 @@ read_newsauth_file(
 	FILE *fp;
 	char *_authpass;
 	char *ptr;
+	char filename[PATH_LEN];
 	char line[PATH_LEN];
 	int found = 0;
 	int fd;
 	struct stat statbuf;
 
-	joinpath(line, homedir, ".newsauth");
+	joinpath(filename, sizeof(filename), homedir, ".newsauth");
 
-	if ((fp = fopen(line, "r"))) {
+	if ((fp = fopen(filename, "r"))) {
 		if ((fd = fileno(fp)) == -1) {
 			fclose(fp);
 			return FALSE;
@@ -167,33 +93,27 @@ read_newsauth_file(
 			return FALSE;
 		}
 
+#	ifndef FILE_MODE_BROKEN
 		if (S_ISREG(statbuf.st_mode) && (statbuf.st_mode|S_IRUSR|S_IWUSR) != (S_IRUSR|S_IWUSR|S_IFREG)) {
-			error_message(_(txt_error_insecure_permissions), line, statbuf.st_mode);
-			sleep(2);
+			error_message(4, _(txt_error_insecure_permissions), filename, statbuf.st_mode);
 			/*
 			 * TODO: fix permssions?
 			 * fchmod(fd, S_IRUSR|S_IWUSR);
 			 */
 		}
+#	endif /* !FILE_MODE_BROKEN */
 
 		/*
 		 * Search through authorization file for correct NNTP server
 		 * File has format:  'nntp-server' 'password' ['username']
 		 */
-		while (fgets(line, PATH_LEN, fp) != NULL) {
-
-			/*
-			 * strip trailing newline character
-			 */
-
+		while (fgets(line, sizeof(line), fp) != NULL) {
+			/* strip trailing newline character */
 			ptr = strchr(line, '\n');
 			if (ptr != NULL)
 				*ptr = '\0';
 
-			/*
-			 * Get server from 1st part of the line
-			 */
-
+			/* Get server from 1st part of the line */
 			ptr = strpbrk(line, " \t");
 
 			if (ptr == NULL)		/* no passwd, no auth, skip */
@@ -204,10 +124,7 @@ read_newsauth_file(
 			if ((strcasecmp(line, server)))
 				continue;		/* wrong server, keep on */
 
-			/*
-			 * Get password from 2nd part of the line
-			 */
-
+			/* Get password from 2nd part of the line */
 			while (*ptr == ' ' || *ptr == '\t')
 				ptr++;	/* skip any blanks */
 
@@ -222,10 +139,7 @@ read_newsauth_file(
 					ptr = _authpass;
 			}
 
-			/*
-			 * Get user from 3rd part of the line
-			 */
-
+			/* Get user from 3rd part of the line */
 			ptr = strpbrk(ptr, " \t");	/* find next separating blank */
 
 			if (ptr != NULL) {	/* a 3rd argument follows */
@@ -246,11 +160,13 @@ read_newsauth_file(
 
 
 /*
- * Perform authentication with ORIGINAL AUTHINFO method. Return response
+ * Perform authentication with AUTHINFO USER method. Return response
  * code from server.
+ *
+ * we don't handle ERR_ENCRYPT right now
  */
 static int
-do_authinfo_original(
+do_authinfo_user(
 	char *server,
 	char *authuser,
 	char *authpass)
@@ -259,25 +175,28 @@ do_authinfo_original(
 	int ret;
 
 	snprintf(line, sizeof(line), "AUTHINFO USER %s", authuser);
-#ifdef DEBUG
-	debug_nntp("authorization", line);
-#endif /* DEBUG */
+#	ifdef DEBUG
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "authorization %s", line);
+#	endif /* DEBUG */
 	put_server(line);
 	if ((ret = get_only_respcode(NULL, 0)) != NEED_AUTHDATA)
 		return ret;
 
 	if ((authpass == NULL) || (*authpass == '\0')) {
-#ifdef DEBUG
-		debug_nntp("authorization", "failed: no password");
-#endif /* DEBUG */
-		error_message(_(txt_nntp_authorization_failed), server);
+#	ifdef DEBUG
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "authorization failed: no password");
+#	endif /* DEBUG */
+		error_message(2, _(txt_auth_failed_nopass), server);
 		return ERR_AUTHBAD;
 	}
 
 	snprintf(line, sizeof(line), "AUTHINFO PASS %s", authpass);
-#ifdef DEBUG
-	debug_nntp("authorization", line);
-#endif /* DEBUG */
+#	ifdef DEBUG
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "authorization %s", line);
+#	endif /* DEBUG */
 	put_server(line);
 	ret = get_only_respcode(line, sizeof(line));
 	if (!batch_mode || verbose || ret != OK_AUTH)
@@ -289,6 +208,10 @@ do_authinfo_original(
 /*
  * NNTP user authorization. Returns TRUE if authorization succeeded,
  * FALSE if not.
+ *
+ * tries AUTHINFO SASL PLAIN (if available) fist and if not succcessfull
+ * AUTHINFO USER/PASS
+ *
  * If username/passwd already given, and server wasn't changed, retry those.
  * Otherwise, read password from ~/.newsauth or, if not present or no matching
  * server found, from console.
@@ -299,7 +222,7 @@ do_authinfo_original(
  *   etc.
  */
 static t_bool
-authinfo_original(
+authinfo_plain(
 	char *server,
 	char *authuser,
 	t_bool startup)
@@ -312,11 +235,6 @@ authinfo_original(
 	static t_bool already_failed = FALSE;
 	static t_bool initialized = FALSE;
 
-#ifdef DEBUG
-	debug_nntp("authorization", "original authinfo");
-#endif /* DEBUG */
-
-
 	changed = strcmp(server, last_server);	/* do we need new auth values? */
 	strncpy(last_server, server, PATH_LEN - 1);
 	last_server[PATH_LEN - 1] = '\0';
@@ -325,8 +243,18 @@ authinfo_original(
 	 * Let's try the previous auth pair first, if applicable.
 	 * Else, proceed to the other mechanisms.
 	 */
-	if (initialized && !changed && !already_failed && do_authinfo_original(server, authusername, authpassword))
-		return TRUE;
+	if (initialized && !changed && !already_failed) {
+#	ifdef USE_SASL
+		if (nntp_caps.sasl & SASL_PLAIN)
+			ret = do_authinfo_sasl_plain(authusername, authpassword);
+		if (ret != OK_AUTH)
+#	endif /* USE_SASL */
+		{
+			if (nntp_caps.type != CAPABILITIES || (nntp_caps.type == CAPABILITIES && nntp_caps.authinfo_user))
+				ret = do_authinfo_user(server, authusername, authpassword);
+		}
+		return (ret == OK_AUTH);
+	}
 
 	authpassword[0] = '\0';
 	authuser = strncpy(authusername, authuser, sizeof(authusername) - 1);
@@ -346,14 +274,25 @@ authinfo_original(
 	 * and restart tin or change to another server and back in order to get
 	 * it read again.
 	 */
-	if (changed || (!changed && !already_failed)) {
-		already_failed = FALSE;
+	if ((changed || !initialized) && !already_failed) {
 		if (read_newsauth_file(server, authuser, authpass)) {
-			ret = do_authinfo_original(server, authuser, authpass);
-			if (!(already_failed = (ret != OK_AUTH))) {
-#ifdef DEBUG
-				debug_nntp("authorization", "succeeded");
-#endif /* DEBUG */
+#	ifdef USE_SASL
+			if (nntp_caps.sasl & SASL_PLAIN)
+				ret = do_authinfo_sasl_plain(authuser, authpass);
+
+			if (ret != OK_AUTH)
+#	endif /* USE_SASL */
+			{
+				if (force_auth_on_conn_open || nntp_caps.type != CAPABILITIES || (nntp_caps.type == CAPABILITIES && nntp_caps.authinfo_user))
+					ret = do_authinfo_user(server, authuser, authpass);
+			}
+			already_failed = (ret != OK_AUTH);
+
+			if (ret == OK_AUTH) {
+#	ifdef DEBUG
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "authorization succeeded");
+#	endif /* DEBUG */
 				initialized = TRUE;
 				return TRUE;
 			}
@@ -370,52 +309,94 @@ authinfo_original(
 	 * messages are annoying (and even wrong).
 	 * UNSURE: Maybe we want to make this decision configurable in the
 	 * options menu, too, so that the user doesn't need -A.
-	 * TODO: Put questions into do_authinfo_original because it is possible
+	 * TODO: Put questions into do_authinfo_user() because it is possible
 	 * that the server doesn't want a password; so only ask for it if needed.
 	 */
-	if (force_auth_on_conn_open || !startup) {
-#ifdef USE_CURSES
-		int state = RawState();
-#endif /* USE_CURSES */
-
-		wait_message(0, _(txt_auth_needed));
-#ifdef USE_CURSES
-		Raw(TRUE);
-#endif /* USE_CURSES */
-
-		if (!prompt_default_string(_(txt_auth_user), authuser, PATH_LEN, authusername, HIST_NONE)) {
-#ifdef DEBUG
-			debug_nntp("authorization", "failed: no username");
-#endif /* DEBUG */
-			return FALSE;
-		}
+	 if (force_auth_on_conn_open || !startup) {
+		if (nntp_caps.type != CAPABILITIES || (nntp_caps.type == CAPABILITIES && !nntp_caps.authinfo_state && ((nntp_caps.sasl & SASL_PLAIN) || nntp_caps.authinfo_user || (!nntp_caps.authinfo_user && !(nntp_caps.sasl & SASL_PLAIN))))) {
+#	ifdef USE_CURSES
+			int state = RawState();
+#	endif /* USE_CURSES */
+
+			wait_message(0, _(txt_auth_needed));
+#	ifdef USE_CURSES
+			Raw(TRUE);
+#	endif /* USE_CURSES */
+			if (!prompt_default_string(_(txt_auth_user), authuser, PATH_LEN, authusername, HIST_NONE)) {
+#	ifdef DEBUG
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "authorization failed: no username");
+#	endif /* DEBUG */
+				return FALSE;
+			}
 
-#ifdef USE_CURSES
-		Raw(state);
-		my_printf("%s", _(txt_auth_pass));
-		wgetnstr(stdscr, authpassword, sizeof(authpassword));
-		Raw(TRUE);
-#else
-#	if 0
-		/*
-		 * on some systems (i.e. Solaris) getpass(3) is limited to 8 chars ->
-		 * we use tin_getline() till we have a config check
-		 * for getpass() or our own getpass()
-		 */
-		authpass = strncpy(authpassword, getpass(_(txt_auth_pass)), sizeof(authpassword) - 1);
+#	ifdef USE_CURSES
+			Raw(state);
+			my_printf("%s", _(txt_auth_pass));
+			wgetnstr(stdscr, authpassword, sizeof(authpassword));
+			Raw(TRUE);
 #	else
-		authpass = strncpy(authpassword, tin_getline(_(txt_auth_pass), FALSE, NULL, PATH_LEN, TRUE, HIST_NONE), sizeof(authpassword) - 1);
-#	endif /* 0 */
-#endif /* USE_CURSES */
-
-		ret = do_authinfo_original(server, authuser, authpass);
-		initialized = TRUE;
-		my_retouch();			/* Get rid of the chaff */
+			/*
+			 * on some systems (i.e. Solaris) getpass(3) is limited to 8 chars ->
+			 * we use tin_getline()
+			 */
+			authpass = strncpy(authpassword, tin_getline(_(txt_auth_pass), FALSE, NULL, PATH_LEN, TRUE, HIST_NONE), sizeof(authpassword) - 1);
+#	endif /* USE_CURSES */
+
+#	ifdef USE_SASL
+			if (nntp_caps.sasl & SASL_PLAIN)
+				ret = do_authinfo_sasl_plain(authuser, authpass);
+			if (ret != OK_AUTH)
+#	endif /* USE_SASL */
+			{
+				if (nntp_caps.type != CAPABILITIES || (nntp_caps.type == CAPABILITIES && (nntp_caps.authinfo_user || (!nntp_caps.authinfo_user && !nntp_caps.authinfo_sasl)))) {
+#	ifdef DEBUG
+					if (debug & DEBUG_NNTP) {
+						if (nntp_caps.type == CAPABILITIES && !nntp_caps.authinfo_sasl && !nntp_caps.authinfo_user)
+							debug_print_file("NNTP", "!!! No supported authmethod available, trying AUTHINFO USER/PASS");
+					}
+#	endif /* DEBUG */
+					ret = do_authinfo_user(server, authuser, authpass);
+					if (ret != OK_AUTH)
+						already_failed = TRUE;
+					/*
+					 * giganews once responded to CAPABILITIES with just
+					 * "VERSION 2", no mode-switching indication, no reader
+					 * indication, no post indication, no authentication
+					 * indication, ... so in case AUTHINFO USER/PASS succeeds
+					 * if not advertized we simply go on but fully ignore
+					 * CAPABILITIES
+					 */
+					if (nntp_caps.type == CAPABILITIES && !nntp_caps.authinfo_user && !nntp_caps.authinfo_sasl && ret == OK_AUTH)
+						nntp_caps.type = BROKEN;
+				}
+			}
+			initialized = TRUE;
+			my_retouch();			/* Get rid of the chaff */
+		} else {
+			/*
+			 * TODO:
+			 * nntp_caps.type == CAPABILITIES && nntp_caps.authinfo_state
+			 * can we change the sate here? and if so how? SARTTLS? MODE
+			 * READER?
+			 */
+#	ifdef DEBUG
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "authorization not allowed in current sate");
+#	endif /* DEBUG */
+			/*
+			 * we return OK_AUTH here once so tin doesn't exit just because a
+			 * single command requested auth ...
+			 */
+			if (!already_failed)
+				ret = OK_AUTH;
+		}
 	}
 
-#ifdef DEBUG
-	debug_nntp("authorization", (ret == OK_AUTH ? "succeeded" : "failed"));
-#endif /* DEBUG */
+#	ifdef DEBUG
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "authorization %s", (ret == OK_AUTH ? "succeeded" : "failed"));
+#	endif /* DEBUG */
 
 	return (ret == OK_AUTH);
 }
@@ -425,8 +406,8 @@ authinfo_original(
  * Do authentication stuff. Return TRUE if authentication was successful,
  * FALSE otherwise.
  *
- * First try AUTHINFO GENERIC method, then, if that failed, ORIGINAL
- * AUTHINFO method. Other authentication methods can easily be added.
+ * try ORIGINAL AUTHINFO method.
+ * Other authentication methods can easily be added.
  */
 t_bool
 authenticate(
@@ -434,8 +415,66 @@ authenticate(
 	char *user,
 	t_bool startup)
 {
-	return (authinfo_generic() || authinfo_original(server, user, startup));
+	return authinfo_plain(server, user, startup);
+}
+
+
+#	ifdef USE_SASL
+static int
+do_authinfo_sasl_plain(
+	char *authuser,
+	char *authpass)
+{
+	char line[PATH_LEN];
+	char *foo;
+	int ret;
+
+#		ifdef DEBUG
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "do_authinfo_sasl_plain(%s, %s)", BlankIfNull(authuser), BlankIfNull(authpass));
+#		endif /* DEBUG */
+
+	if ((foo = sasl_auth_plain(authuser, authpass)) == NULL)
+		return ERR_AUTHBAD;
+
+	snprintf(line, sizeof(line), "AUTHINFO SASL PLAIN %s", foo);
+	free(foo);
+#		ifdef DEBUG
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "authorization %s", line);
+#		endif /* DEBUG */
+	put_server(line);
+	ret = get_only_respcode(line, sizeof(line));
+	if (!batch_mode || verbose || ret != OK_AUTH)
+		wait_message(2, (ret == OK_AUTH ? _(txt_authorization_ok) : _(txt_authorization_fail)), authuser);
+	return ret;
+}
+
+
+static char *sasl_auth_plain(
+	char *user,
+	char *pass)
+{
+	Gsasl *ctx = NULL;
+	Gsasl_session *session;
+	char *p = NULL;
+	const char *mech = "PLAIN";
+
+	if (gsasl_init(&ctx) != GSASL_OK) /* TODO: do this only once at startup */
+		return p;
+	if (gsasl_client_start(ctx, mech, &session) != GSASL_OK) {
+		gsasl_done(ctx);
+		return p;
+	}
+	gsasl_property_set(session, GSASL_AUTHID, user);
+	gsasl_property_set(session, GSASL_PASSWORD, pass);
+	if (gsasl_step64(session, NULL, &p) != GSASL_OK)
+		FreeAndNull(p);
+	gsasl_finish(session);
+	gsasl_done(ctx);
+	return p;
 }
+#	endif /* USE_SASL */
 
 #else
 static void no_authenticate(void);			/* proto-type */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/charset.c tin-2.0.0/src/charset.c
--- tin-1.8.3/src/charset.c	2006-02-22 01:27:45.000000000 +0100
+++ tin-2.0.0/src/charset.c	2011-04-24 14:09:49.831375650 +0200
@@ -3,10 +3,10 @@
  *  Module    : charset.c
  *  Author    : M. Kuhn, T. Burmester
  *  Created   : 1993-12-10
- *  Updated   : 2006-02-21
+ *  Updated   : 2011-04-24
  *  Notes     : ISO to ascii charset conversion routines
  *
- * Copyright (c) 1993-2006 Markus Kuhn <mgk25@cl.cam.ac.uk>
+ * Copyright (c) 1993-2011 Markus Kuhn <mgk25@cl.cam.ac.uk>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -40,7 +40,7 @@
 #endif /* !TIN_H */
 
 /*
- *  Table for the iso2asc convertion...
+ *  Table for the iso2asc conversion
  *  iso2asc  by  (unrza3@cd4680fs.rrze.uni-erlangen.de)
  *  included by  (root@aspic.han.de)
  */
@@ -153,7 +153,7 @@ void
 convert_iso2asc(
 	char *iso,
 	char **asc_buffer,
-	int *max_line_len,
+	size_t *max_line_len,
 	int t)
 {
 	constext *p;
@@ -164,20 +164,20 @@ convert_iso2asc(
 
 	asc = *asc_buffer;
 
-	if (iso == 0 || asc == 0)
+	if (iso == NULL || asc == NULL)
 		return;
 
-	tab = (iso2asc[t] - ISO_EXTRA);
+	tab = iso2asc[t];
 	first = TRUE;
 	i = a = 0;
 	while (*iso != '\0') {
 		if (*EIGHT_BIT(iso) >= ISO_EXTRA) {
-			p = tab[*EIGHT_BIT(iso)];
+			p = tab[*EIGHT_BIT(iso) - ISO_EXTRA];
 			iso++, i++;
 			first = TRUE;
 			while (*p) {
 				*(asc++) = *(p++);
-				if ((asc - *asc_buffer) >= *max_line_len) {
+				if ((asc - *asc_buffer) >= (int) *max_line_len) {
 					int offset = asc - *asc_buffer;
 					*max_line_len += 64;
 					*asc_buffer = my_realloc(*asc_buffer, *max_line_len);
@@ -237,7 +237,7 @@ convert_iso2asc(
 				first = TRUE;
 			}
 		}
-		if ((asc - *asc_buffer) >= *max_line_len) {
+		if ((asc - *asc_buffer) >= (int) *max_line_len) {
 			int offset = asc - *asc_buffer;
 			*max_line_len += 64;
 			*asc_buffer = my_realloc(*asc_buffer, *max_line_len);
@@ -374,7 +374,8 @@ is_art_tex_encoded(
  */
 char *
 convert_to_printable(
-	char *buf)
+	char *buf,
+	t_bool keep_tab)
 {
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	char *buffer;
@@ -385,7 +386,7 @@ convert_to_printable(
 		utf8_valid(buf);
 
 	if ((wbuffer = char2wchar_t(buf)) != NULL) {
-		wconvert_to_printable(wbuffer);
+		wconvert_to_printable(wbuffer, keep_tab);
 
 		if ((buffer = wchar_t2char(wbuffer)) != NULL) {
 			strncpy(buf, buffer, len);
@@ -399,7 +400,7 @@ convert_to_printable(
 	unsigned char *c;
 
 	for (c = (unsigned char *) buf; *c; c++) {
-		if (!my_isprint(*c))
+		if (!my_isprint(*c) && !(keep_tab && *c == '\t'))
 			*c = '?';
 	}
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
@@ -410,62 +411,21 @@ convert_to_printable(
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 /*
  * 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
+ *        sometimes fails to proper convert (wchar_t) 0 to (wint_t) 0
  *        and thus loop termination fails.
  */
 wchar_t *
 wconvert_to_printable(
-	wchar_t *wbuf)
+	wchar_t *wbuf,
+	t_bool keep_tab)
 {
 	wchar_t *wc;
 
 	for (wc = wbuf; *wc; wc++) {
-		if (!iswprint((wint_t) *wc))
+		if (!iswprint((wint_t) *wc) && !(keep_tab && *wc == (wchar_t) '\t'))
 			*wc = (wchar_t) '?';
 	}
 
 	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 --exclude='.bzr*' tin-1.8.3/src/color.c tin-2.0.0/src/color.c
--- tin-1.8.3/src/color.c	2005-12-02 12:07:35.000000000 +0100
+++ tin-2.0.0/src/color.c	2011-05-01 00:00:41.964526796 +0200
@@ -7,11 +7,11 @@
  *              Julien Oster <fuzzy@cu8.cum.de> (word highlighting)
  *              T.Dickey <dickey@invisible-island.net> (curses support)
  *  Created   : 1995-06-02
- *  Updated   : 2004-06-07
+ *  Updated   : 2011-04-24
  *  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-2011 Roland Rosenfeld <roland@spinnaker.rhein.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -58,6 +58,12 @@ int default_bcol = 0;
 
 #	ifdef USE_CURSES
 	static int current_fcol = 7;
+	static struct LIST {
+		struct LIST *link;
+		int pair;
+		int fg;
+		int bg;
+	} *list;
 #	endif /* USE_CURSES */
 static int current_bcol = 0;
 
@@ -76,12 +82,6 @@ set_colors(
 	int fcolor,
 	int bcolor)
 {
-	static struct LIST {
-		struct LIST *link;
-		int pair;
-		int fg;
-		int bg;
-	} *list;
 	static int nextpair;
 
 #		ifndef HAVE_USE_DEFAULT_COLORS
@@ -110,29 +110,29 @@ set_colors(
 		if (bcolor > 0)
 			bcolor %= COLORS;
 
-		/* curses assumes white/black */
-		if (fcolor != COLOR_WHITE || bcolor != COLOR_BLACK) {
+		if (fcolor != default_fcol || bcolor != default_bcol) {
 			struct LIST *p;
 			t_bool found = FALSE;
 
-			for (p = list; p != 0; p = p->link) {
+			for (p = list; p != NULL; p = p->link) {
 				if (p->fg == fcolor && p->bg == bcolor) {
 					found = TRUE;
 					break;
 				}
 			}
-			if (found)
+			if (found) {
 				pair = p->pair;
-			else if (++nextpair < COLOR_PAIRS) {
-				p = my_malloc(sizeof(struct LIST)); /* TODO: plug mem leak */
+			} else if (++nextpair < COLOR_PAIRS) {
+				p = my_malloc(sizeof(struct LIST));
 				p->fg = fcolor;
 				p->bg = bcolor;
 				p->pair = pair = nextpair;
 				p->link = list;
 				list = p;
 				init_pair(pair, fcolor, bcolor);
-			} else
+			} else {
 				pair = 0;
+			}
 		}
 
 		bkgdset(attribute | COLOR_PAIR(pair) | ' ');
@@ -146,6 +146,29 @@ refresh_color(
 {
 	set_colors(current_fcol, current_bcol);
 }
+
+
+void
+reset_color(
+	void)
+{
+	current_fcol = default_fcol;
+	current_bcol = default_bcol;
+	refresh_color();
+}
+
+
+void
+free_color_pair_arrays(
+	void)
+{
+	struct LIST *p, *q;
+
+	for (p = list; p != NULL; p = q) {
+		q = p->link;
+		free(p);
+	}
+}
 #	endif /* USE_CURSES */
 
 
@@ -154,22 +177,27 @@ void
 fcol(
 	int color)
 {
+	if (color < MIN_COLOR || color > MAX_COLOR)
+		color = default_fcol;
+
 	TRACE(("fcol(%d) %s", color, txt_colors[color - MIN_COLOR]));
+
 	if (use_color) {
-		if (color >= MIN_COLOR && color <= MAX_COLOR) {
 #	ifdef USE_CURSES
-			set_colors(color, current_bcol);
-			current_fcol = color;
+		set_colors(color, current_bcol);
+		current_fcol = color;
 #	else
-			int bold;
-			if (color < 0)
-				color = default_fcol;
-			bold = (color >> 3); /* bitwise operation on signed value? ouch */
-			my_printf("\033[%d;%dm", bold, ((color & 7) + 30));
-			if (!bold)
-				bcol(current_bcol);
+		int bold;
+
+		if (cmd_line)
+			return;
+		if (color < 0)
+			color = default_fcol;
+		bold = (color >> 3); /* bitwise operation on signed value? ouch */
+		my_printf("\033[%d;%dm", bold, ((color & 7) + 30));
+		if (!bold)
+			bcol(current_bcol);
 #	endif /* USE_CURSES */
-		}
 	}
 #	ifdef USE_CURSES
 	else
@@ -183,18 +211,20 @@ void
 bcol(
 	int color)
 {
+	if (color < MIN_COLOR || color > MAX_COLOR)
+		color = default_bcol;
+
 	TRACE(("bcol(%d) %s", color, txt_colors[color - MIN_COLOR]));
+
 	if (use_color) {
-		if (color >= MIN_COLOR && color <= MAX_BACKCOLOR) {
 #	ifdef USE_CURSES
-			set_colors(current_fcol, color);
+		set_colors(current_fcol, color);
 #	else
-			if (color < 0)
-				color = default_bcol;
-			my_printf("\033[%dm", (color + 40));
+		if (color < 0)
+			color = default_bcol;
+		my_printf("\033[%dm", (color + 40));
 #	endif /* USE_CURSES */
-			current_bcol = color;
-		}
+		current_bcol = color;
 	}
 #	ifdef USE_CURSES
 	else
@@ -228,6 +258,8 @@ draw_pager_line(
 				fcol(tinrc.col_quote2);
 			} else if (flags & C_QUOTE1) {
 				fcol(tinrc.col_quote);
+			} else if (flags & C_VERBATIM) {
+				fcol(tinrc.col_verbatim);
 			} else
 				fcol(tinrc.col_text);
 		}
@@ -252,7 +284,7 @@ draw_pager_line(
 					if ((wline = char2wchar_t(line)) != NULL) {
 						int visual_len;
 
-						wconvert_to_printable(wline);
+						wconvert_to_printable(wline, FALSE);
 						visual_len = wcswidth(wline, wcslen(wline) + 1);
 						free(wline);
 
@@ -292,7 +324,7 @@ draw_pager_line(
 				c += num_bytes;
 			}
 #else
-			if (my_isprint((int) *c)) {
+			if (my_isprint((unsigned char) *c)) {
 				my_fputc((int) *c, stdout);
 				c++;
 			}
@@ -312,7 +344,7 @@ draw_pager_line(
 				 * non-printable char
 				 * print as an octal value
 				 */
-				snprintf(octal, sizeof(octal), "\\%03o", (int) *c & 0xff);
+				snprintf(octal, sizeof(octal), "\\%03o", (unsigned int) (*c & 0xff));
 				my_fputs(octal, stdout);
 				c++;
 			}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/config.c tin-2.0.0/src/config.c
--- tin-1.8.3/src/config.c	2005-12-02 12:07:35.000000000 +0100
+++ tin-2.0.0/src/config.c	2011-05-08 11:53:02.636461803 +0200
@@ -3,10 +3,10 @@
  *  Module    : config.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-08-14
+ *  Updated   : 2011-04-17
  *  Notes     : Configuration file routines
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -73,19 +73,23 @@ read_config_file(
 {
 	FILE *fp;
 	char buf[LEN], tmp[LEN];
-	int upgrade = RC_CHECK;
+	enum rc_state upgrade = RC_CHECK;
+#ifdef CHARSET_CONVERSION
+	int i;
+	t_bool is_7bit;
+#endif /* CHARSET_CONVERSION */
 
 	if ((fp = fopen(file, "r")) == NULL)
 		return FALSE;
 
-#if 0 /* batch_mode is not set at this stage, so checking for it is useless */
-	if (!batch_mode)
-#endif /* 0 */
+	if (!batch_mode || verbose)
 		wait_message(0, _(txt_reading_config_file), (global_file) ? _(txt_global) : "");
 
 	while (fgets(buf, (int) sizeof(buf), fp) != NULL) {
-		if (buf[0] == '#' || buf[0] == '\n') {
-			if (upgrade == RC_CHECK && !global_file) {
+		if (buf[0] == '\n')
+			continue;
+		if (buf[0] == '#') {
+			if (upgrade == RC_CHECK && !global_file && match_string(buf, "# tin configuration file V", NULL, 0)) {
 				upgrade = check_upgrade(buf, "# tin configuration file V", TINRC_VERSION);
 				if (upgrade != RC_IGNORE)
 					upgrade_prompt_quit(upgrade, CONFIG_FILE);
@@ -97,6 +101,9 @@ read_config_file(
 
 		switch (tolower((unsigned char) buf[0])) {
 		case 'a':
+			if (match_boolean(buf, "abbreviate_groupname=", &tinrc.abbreviate_groupname))
+				break;
+
 			if (match_boolean(buf, "add_posted_to_filter=", &tinrc.add_posted_to_filter))
 				break;
 
@@ -154,10 +161,7 @@ read_config_file(
 			if (match_boolean(buf, "ask_for_metamail=", &tinrc.ask_for_metamail))
 				break;
 
-			if (match_boolean(buf, "auto_bcc=", &tinrc.auto_bcc))
-				break;
-
-			if (match_boolean(buf, "auto_cc=", &tinrc.auto_cc))
+			if (match_integer(buf, "auto_cc_bcc=", &tinrc.auto_cc_bcc, AUTO_CC_BCC))
 				break;
 
 			if (match_boolean(buf, "auto_list_thread=", &tinrc.auto_list_thread))
@@ -188,10 +192,10 @@ read_config_file(
 				break;
 
 #ifdef HAVE_COLOR
-			if (match_color(buf, "col_back=", &tinrc.col_back, MAX_COLOR))
+			if (match_color(buf, "col_back=", &tinrc.col_back, MAX_BACKCOLOR))
 				break;
 
-			if (match_color(buf, "col_invers_bg=", &tinrc.col_invers_bg, MAX_COLOR))
+			if (match_color(buf, "col_invers_bg=", &tinrc.col_invers_bg, MAX_BACKCOLOR))
 				break;
 
 			if (match_color(buf, "col_invers_fg=", &tinrc.col_invers_fg, MAX_COLOR))
@@ -245,6 +249,9 @@ read_config_file(
 			if (match_color(buf, "col_urls=", &tinrc.col_urls, MAX_COLOR))
 				break;
 
+			if (match_color(buf, "col_verbatim=", &tinrc.col_verbatim, MAX_COLOR))
+				break;
+
 			if (match_color(buf, "col_markstar=", &tinrc.col_markstar, MAX_COLOR))
 				break;
 
@@ -266,31 +273,6 @@ read_config_file(
 			if (match_string(buf, "date_format=", tinrc.date_format, sizeof(tinrc.date_format)))
 				break;
 
-			if (match_string(buf, "default_editor_format=", tinrc.editor_format, sizeof(tinrc.editor_format)))
-				break;
-
-			if (match_string(buf, "default_mailer_format=", tinrc.mailer_format, sizeof(tinrc.mailer_format)))
-				break;
-
-			if (match_string(buf, "default_savedir=", tinrc.savedir, sizeof(tinrc.savedir))) {
-				if (tinrc.savedir[0] == '.' && strlen(tinrc.savedir) == 1) {
-					get_cwd(buf);
-					my_strncpy(tinrc.savedir, buf, sizeof(tinrc.savedir) - 1);
-				}
-				break;
-			}
-
-			if (match_string(buf, "default_maildir=", tinrc.maildir, sizeof(tinrc.maildir)))
-				break;
-
-#ifndef DISABLE_PRINTING
-			if (match_string(buf, "default_printer=", tinrc.printer, sizeof(tinrc.printer)))
-				break;
-#endif /* !DISABLE_PRINTING */
-
-			if (match_string(buf, "default_sigfile=", tinrc.sigfile, sizeof(tinrc.sigfile)))
-				break;
-
 			if (match_integer(buf, "default_filter_days=", &tinrc.filter_days, 0)) {
 				if (tinrc.filter_days <= 0)
 					tinrc.filter_days = 1;
@@ -303,11 +285,8 @@ read_config_file(
 			if (match_boolean(buf, "default_filter_kill_global=", &tinrc.default_filter_kill_global))
 				break;
 
-			if (match_boolean(buf, "default_filter_kill_case=", &tinrc.default_filter_kill_case)) {
-				/* ON=false, OFF=true */
-				tinrc.default_filter_kill_case = bool_not(tinrc.default_filter_kill_case);
+			if (match_boolean(buf, "default_filter_kill_case=", &tinrc.default_filter_kill_case))
 				break;
-			}
 
 			if (match_boolean(buf, "default_filter_kill_expire=", &tinrc.default_filter_kill_expire))
 				break;
@@ -318,11 +297,8 @@ read_config_file(
 			if (match_boolean(buf, "default_filter_select_global=", &tinrc.default_filter_select_global))
 				break;
 
-			if (match_boolean(buf, "default_filter_select_case=", &tinrc.default_filter_select_case)) {
-				/* ON=false, OFF=true */
-				tinrc.default_filter_select_case = bool_not(tinrc.default_filter_select_case);
+			if (match_boolean(buf, "default_filter_select_case=", &tinrc.default_filter_select_case))
 				break;
-			}
 
 			if (match_boolean(buf, "default_filter_select_expire=", &tinrc.default_filter_select_expire))
 				break;
@@ -396,6 +372,12 @@ read_config_file(
 
 			break;
 
+		case 'e':
+			if (match_string(buf, "editor_format=", tinrc.editor_format, sizeof(tinrc.editor_format)))
+				break;
+
+			break;
+
 		case 'f':
 			if (match_boolean(buf, "force_screen_redraw=", &tinrc.force_screen_redraw))
 				break;
@@ -406,6 +388,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;
 
@@ -445,14 +430,17 @@ read_config_file(
 			break;
 
 		case 'm':
+			if (match_string(buf, "maildir=", tinrc.maildir, sizeof(tinrc.maildir)))
+				break;
+
+			if (match_string(buf, "mailer_format=", tinrc.mailer_format, sizeof(tinrc.mailer_format)))
+				break;
+
 			if (match_list(buf, "mail_mime_encoding=", txt_mime_encodings, NUM_MIME_ENCODINGS, &tinrc.mail_mime_encoding))
 				break;
 
-			if (match_boolean(buf, "mail_8bit_header=", &tinrc.mail_8bit_header)) {
-				if (strcasecmp(txt_mime_encodings[tinrc.mail_mime_encoding], txt_8bit))
-					tinrc.mail_8bit_header = FALSE;
+			if (match_boolean(buf, "mail_8bit_header=", &tinrc.mail_8bit_header))
 				break;
-			}
 
 #ifndef CHARSET_CONVERSION
 			if (match_string(buf, "mm_charset=", tinrc.mm_charset, sizeof(tinrc.mm_charset)))
@@ -462,6 +450,10 @@ read_config_file(
 				break;
 			if (match_list(buf, "mm_network_charset=", txt_mime_charsets, NUM_MIME_CHARSETS, &tinrc.mm_network_charset))
 				break;
+#	ifdef NO_LOCALE
+			if (match_string(buf, "mm_local_charset=", tinrc.mm_local_charset, sizeof(tinrc.mm_local_charset)))
+				break;
+#	endif /* NO_LOCALE */
 #endif /* !CHARSET_CONVERSION */
 
 			if (match_boolean(buf, "mark_ignore_tags=", &tinrc.mark_ignore_tags))
@@ -503,22 +495,12 @@ read_config_file(
 			}
 
 			/* pick which news headers to display */
-			if (match_string(buf, "news_headers_to_display=", tinrc.news_headers_to_display, sizeof(tinrc.news_headers_to_display))) {
-				if (news_headers_to_display_array)
-					FreeIfNeeded(*news_headers_to_display_array);
-				FreeIfNeeded(news_headers_to_display_array);
-				news_headers_to_display_array = ulBuildArgv(tinrc.news_headers_to_display, &num_headers_to_display);
+			if (match_string(buf, "news_headers_to_display=", tinrc.news_headers_to_display, sizeof(tinrc.news_headers_to_display)))
 				break;
-			}
 
 			/* pick which news headers to NOT display */
-			if (match_string(buf, "news_headers_to_not_display=", tinrc.news_headers_to_not_display, sizeof(tinrc.news_headers_to_not_display))) {
-				if (news_headers_to_not_display_array)
-					FreeIfNeeded(*news_headers_to_not_display_array);
-				FreeIfNeeded(news_headers_to_not_display_array);
-				news_headers_to_not_display_array = ulBuildArgv(tinrc.news_headers_to_not_display, &num_headers_to_not_display);
+			if (match_string(buf, "news_headers_to_not_display=", tinrc.news_headers_to_not_display, sizeof(tinrc.news_headers_to_not_display)))
 				break;
-			}
 
 			if (match_string(buf, "news_quote_format=", tinrc.news_quote_format, sizeof(tinrc.news_quote_format)))
 				break;
@@ -541,14 +523,13 @@ read_config_file(
 			if (match_list(buf, "post_mime_encoding=", txt_mime_encodings, NUM_MIME_ENCODINGS, &tinrc.post_mime_encoding))
 				break;
 
-			if (match_boolean(buf, "post_8bit_header=", &tinrc.post_8bit_header)) {
-				/* if post_mime_encoding != 8bit, post_8bit_header is disabled */
-				if (strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], txt_8bit))
-					tinrc.post_8bit_header = FALSE;
+			if (match_boolean(buf, "post_8bit_header=", &tinrc.post_8bit_header))
 				break;
-			}
 
 #ifndef DISABLE_PRINTING
+			if (match_string(buf, "printer=", tinrc.printer, sizeof(tinrc.printer)))
+				break;
+
 			if (match_boolean(buf, "print_header=", &tinrc.print_header))
 				break;
 #endif /* !DISABLE_PRINTING */
@@ -556,7 +537,7 @@ read_config_file(
 			if (match_boolean(buf, "pos_first_unread=", &tinrc.pos_first_unread))
 				break;
 
-			if (match_integer(buf, "post_process_type=", &tinrc.post_process, POST_PROC_YES))
+			if (match_integer(buf, "post_process_type=", &tinrc.post_process_type, POST_PROC_YES))
 				break;
 
 			if (match_boolean(buf, "post_process_view=", &tinrc.post_process_view))
@@ -571,9 +552,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':
@@ -613,6 +591,14 @@ read_config_file(
 			break;
 
 		case 's':
+			if (match_string(buf, "savedir=", tinrc.savedir, sizeof(tinrc.savedir))) {
+				if (tinrc.savedir[0] == '.' && strlen(tinrc.savedir) == 1) {
+					get_cwd(buf);
+					my_strncpy(tinrc.savedir, buf, sizeof(tinrc.savedir) - 1);
+				}
+				break;
+			}
+
 			if (match_integer(buf, "score_limit_kill=", &tinrc.score_limit_kill, 0))
 				break;
 
@@ -637,7 +623,7 @@ read_config_file(
 				break;
 			}
 
-			if (match_boolean(buf, "show_only_unread=", &tinrc.show_only_unread_arts))
+			if (match_boolean(buf, "show_only_unread_arts=", &tinrc.show_only_unread_arts))
 				break;
 
 			if (match_boolean(buf, "show_only_unread_groups=", &tinrc.show_only_unread_groups))
@@ -646,6 +632,9 @@ read_config_file(
 			if (match_boolean(buf, "sigdashes=", &tinrc.sigdashes))
 				break;
 
+			if (match_string(buf, "sigfile=", tinrc.sigfile, sizeof(tinrc.sigfile)))
+				break;
+
 			if (match_boolean(buf, "signature_repost=", &tinrc.signature_repost))
 				break;
 
@@ -658,7 +647,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 +684,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 +696,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;
 
@@ -724,6 +707,9 @@ read_config_file(
 				break;
 #endif /* HAVE_ICONV_OPEN_TRANSLIT && CHARSET_CONVERSION */
 
+			if (match_integer(buf, "trim_article_body=", &tinrc.trim_article_body, NUM_TRIM_ARTICLE_BODY))
+				break;
+
 			break;
 
 		case 'u':
@@ -749,7 +735,7 @@ read_config_file(
 
 #ifdef HAVE_COLOR
 			if (match_boolean(buf, "use_color=", &tinrc.use_color)) {
-				use_color = tinrc.use_color;
+				use_color = cmdline.args & CMDLINE_USE_COLOR ? bool_not(tinrc.use_color) : tinrc.use_color;
 				break;
 			}
 #endif /* HAVE_COLOR */
@@ -759,6 +745,26 @@ read_config_file(
 				break;
 #endif /* XFACE_ABLE */
 
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+			if (match_boolean(buf, "utf8_graphics=", &tinrc.utf8_graphics)) {
+				/* only enable this when local charset is UTF-8 */
+				tinrc.utf8_graphics = tinrc.utf8_graphics ? IS_LOCAL_CHARSET("UTF-8") : FALSE;
+				break;
+			}
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+
+			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;
+
+			if (match_boolean(buf, "verbatim_handling=", &tinrc.verbatim_handling))
+				break;
+
 			break;
 
 		case 'w':
@@ -801,28 +807,47 @@ read_config_file(
 	if (!(tinrc.draw_arrow || tinrc.inverse_okay))
 		tinrc.draw_arrow = TRUE;
 
+#ifdef CHARSET_CONVERSION
 	/*
-	 * determine local charset, or in case of NO_LOCALE use
-	 * mm{_network}_charset
+	 * check if we have a 7bit charset but a !7bit encoding
+	 * or a 8bit charset but a !8bit encoding, update encoding if needed
 	 */
-	{
-#ifndef NO_LOCALE
-		const char *p;
-
-		if ((p = tin_nl_langinfo(CODESET)) != NULL) {
-			if (!strcmp(p, "ANSI_X3.4-1968"))
-				strcpy(tinrc.mm_local_charset, "US-ASCII");
-			else
-				strcpy(tinrc.mm_local_charset, p);
-		} else
-#endif /* !NO_LOCALE */
-			if (!*tinrc.mm_local_charset)
-#ifndef CHARSET_CONVERSION
-				strcpy(tinrc.mm_local_charset, tinrc.mm_charset);
-#else
-				strcpy(tinrc.mm_local_charset, txt_mime_charsets[tinrc.mm_network_charset]);
-#endif /* !CHARSET_CONVERSION */
+	is_7bit = FALSE;
+	for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
+		if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
+			is_7bit = TRUE;
+			break;
+		}
 	}
+	if (is_7bit) {
+		if (tinrc.mail_mime_encoding != MIME_ENCODING_7BIT)
+			tinrc.mail_mime_encoding = MIME_ENCODING_7BIT;
+		if (tinrc.post_mime_encoding != MIME_ENCODING_7BIT)
+			tinrc.post_mime_encoding = MIME_ENCODING_7BIT;
+	} else {
+		if (tinrc.mail_mime_encoding == MIME_ENCODING_7BIT)
+			tinrc.mail_mime_encoding = MIME_ENCODING_QP;
+		if (tinrc.post_mime_encoding == MIME_ENCODING_7BIT)
+			tinrc.post_mime_encoding = MIME_ENCODING_8BIT;
+	}
+#endif /* CHARSET_CONVERSION */
+
+	/* do not use 8 bit headers if mime encoding is not 8bit */
+	if (tinrc.mail_mime_encoding != MIME_ENCODING_8BIT)
+		tinrc.mail_8bit_header = FALSE;
+	if (tinrc.post_mime_encoding != MIME_ENCODING_8BIT)
+		tinrc.post_8bit_header = FALSE;
+
+	/* set defaults if blank */
+	if (!*tinrc.editor_format)
+		STRCPY(tinrc.editor_format, TIN_EDITOR_FMT_ON);
+	if (!*tinrc.date_format)
+		STRCPY(tinrc.date_format, DEFAULT_DATE_FORMAT);
+
+	/* determine local charset */
+#if defined(NO_LOCALE) && !defined(CHARSET_CONVERSION)
+	strcpy(tinrc.mm_local_charset, tinrc.mm_charset);
+#endif /* NO_LOCALE && !CHARSET_CONVERSION */
 	return TRUE;
 }
 
@@ -845,487 +870,492 @@ write_config_file(
 	file_tmp = get_tmpfilename(file);
 
 	if ((fp = fopen(file_tmp, "w")) == NULL) {
-		error_message(_(txt_filesystem_full_backup), CONFIG_FILE);
+		error_message(2, _(txt_filesystem_full_backup), CONFIG_FILE);
 		free(file_tmp);
 		return;
 	}
 
-	if (!cmd_line)
-		wait_message(0, _(txt_saving));
-
-	if (!*tinrc.editor_format)
-		strcpy(tinrc.editor_format, TIN_EDITOR_FMT_ON);
+	wait_message(0, _(txt_saving));
 
 	fprintf(fp, txt_tinrc_header, PRODUCT, TINRC_VERSION, tin_progname, VERSION, RELEASEDATE, RELEASENAME);
 
-	fprintf(fp, _(txt_savedir.tinrc));
-	fprintf(fp, "default_savedir=%s\n\n", tinrc.savedir);
+	fprintf(fp, "%s", _(txt_savedir.tinrc));
+	fprintf(fp, "savedir=%s\n\n", tinrc.savedir);
 
-	fprintf(fp, _(txt_auto_save.tinrc));
+	fprintf(fp, "%s", _(txt_auto_save.tinrc));
 	fprintf(fp, "auto_save=%s\n\n", print_boolean(tinrc.auto_save));
 
-	fprintf(fp, _(txt_mark_saved_read.tinrc));
+	fprintf(fp, "%s", _(txt_mark_saved_read.tinrc));
 	fprintf(fp, "mark_saved_read=%s\n\n", print_boolean(tinrc.mark_saved_read));
 
-	fprintf(fp, _(txt_post_process.tinrc));
-	fprintf(fp, "post_process_type=%d\n\n", tinrc.post_process);
+	fprintf(fp, "%s", _(txt_post_process_type.tinrc));
+	fprintf(fp, "post_process_type=%d\n\n", tinrc.post_process_type);
 
-	fprintf(fp, _(txt_post_process_view.tinrc));
+	fprintf(fp, "%s", _(txt_post_process_view.tinrc));
 	fprintf(fp, "post_process_view=%s\n\n", print_boolean(tinrc.post_process_view));
 
-	fprintf(fp, _(txt_process_only_unread.tinrc));
+	fprintf(fp, "%s", _(txt_process_only_unread.tinrc));
 	fprintf(fp, "process_only_unread=%s\n\n", print_boolean(tinrc.process_only_unread));
 
-	fprintf(fp, _(txt_prompt_followupto.tinrc));
+	fprintf(fp, "%s", _(txt_prompt_followupto.tinrc));
 	fprintf(fp, "prompt_followupto=%s\n\n", print_boolean(tinrc.prompt_followupto));
 
-	fprintf(fp, _(txt_confirm_choice.tinrc));
+	fprintf(fp, "%s", _(txt_confirm_choice.tinrc));
 	fprintf(fp, "confirm_choice=%s\n\n", txt_confirm_choices[tinrc.confirm_choice]);
 
-	fprintf(fp, _(txt_mark_ignore_tags.tinrc));
+	fprintf(fp, "%s", _(txt_mark_ignore_tags.tinrc));
 	fprintf(fp, "mark_ignore_tags=%s\n\n", print_boolean(tinrc.mark_ignore_tags));
 
-	fprintf(fp, _(txt_auto_reconnect.tinrc));
+	fprintf(fp, "%s", _(txt_auto_reconnect.tinrc));
 	fprintf(fp, "auto_reconnect=%s\n\n", print_boolean(tinrc.auto_reconnect));
 
-	fprintf(fp, _(txt_draw_arrow.tinrc));
+	fprintf(fp, "%s", _(txt_draw_arrow.tinrc));
 	fprintf(fp, "draw_arrow=%s\n\n", print_boolean(tinrc.draw_arrow));
 
-	fprintf(fp, _(txt_inverse_okay.tinrc));
+	fprintf(fp, "%s", _(txt_inverse_okay.tinrc));
 	fprintf(fp, "inverse_okay=%s\n\n", print_boolean(tinrc.inverse_okay));
 
-	fprintf(fp, _(txt_pos_first_unread.tinrc));
+	fprintf(fp, "%s", _(txt_pos_first_unread.tinrc));
 	fprintf(fp, "pos_first_unread=%s\n\n", print_boolean(tinrc.pos_first_unread));
 
-	fprintf(fp, _(txt_show_only_unread_arts.tinrc));
-	fprintf(fp, "show_only_unread=%s\n\n", print_boolean(tinrc.show_only_unread_arts));
+	fprintf(fp, "%s", _(txt_show_only_unread_arts.tinrc));
+	fprintf(fp, "show_only_unread_arts=%s\n\n", print_boolean(tinrc.show_only_unread_arts));
 
-	fprintf(fp, _(txt_show_only_unread_groups.tinrc));
+	fprintf(fp, "%s", _(txt_show_only_unread_groups.tinrc));
 	fprintf(fp, "show_only_unread_groups=%s\n\n", print_boolean(tinrc.show_only_unread_groups));
 
-	fprintf(fp, _(txt_kill_level.tinrc));
+	fprintf(fp, "%s", _(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, "%s", _(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, "%s", _(txt_scroll_lines.tinrc));
 	fprintf(fp, "scroll_lines=%d\n\n", tinrc.scroll_lines);
 
-	fprintf(fp, _(txt_catchup_read_groups.tinrc));
+	fprintf(fp, "%s", _(txt_catchup_read_groups.tinrc));
 	fprintf(fp, "catchup_read_groups=%s\n\n", print_boolean(tinrc.catchup_read_groups));
 
-	fprintf(fp, _(txt_group_catchup_on_exit.tinrc));
+	fprintf(fp, "%s", _(txt_group_catchup_on_exit.tinrc));
 	fprintf(fp, "group_catchup_on_exit=%s\n", print_boolean(tinrc.group_catchup_on_exit));
 	fprintf(fp, "thread_catchup_on_exit=%s\n\n", print_boolean(tinrc.thread_catchup_on_exit));
 
-	fprintf(fp, _(txt_thread_articles.tinrc));
+	fprintf(fp, "%s", _(txt_thread_articles.tinrc));
 	fprintf(fp, "thread_articles=%d\n\n", tinrc.thread_articles);
 
-	fprintf(fp, _(txt_thread_perc.tinrc));
+	fprintf(fp, "%s", _(txt_thread_perc.tinrc));
 	fprintf(fp, "thread_perc=%d\n\n", tinrc.thread_perc);
 
-	fprintf(fp, _(txt_show_description.tinrc));
+	fprintf(fp, "%s", _(txt_show_description.tinrc));
 	fprintf(fp, "show_description=%s\n\n", print_boolean(tinrc.show_description));
 
-	fprintf(fp, _(txt_show_author.tinrc));
+	fprintf(fp, "%s", _(txt_show_author.tinrc));
 	fprintf(fp, "show_author=%d\n\n", tinrc.show_author);
 
-	fprintf(fp, _(txt_news_headers_to_display.tinrc));
-	fprintf(fp, "news_headers_to_display=");
-	for (i = 0; i < num_headers_to_display; i++)
-		fprintf(fp, "%s ", news_headers_to_display_array[i]);
-	fprintf(fp, "\n\n");
-
-	fprintf(fp, _(txt_news_headers_to_not_display.tinrc));
-	fprintf(fp, "news_headers_to_not_display=");
-	for (i = 0; i < num_headers_to_not_display; i++)
-		fprintf(fp, "%s ", news_headers_to_not_display_array[i]);
-	fprintf(fp, "\n\n");
+	fprintf(fp, "%s", _(txt_news_headers_to_display.tinrc));
+	fprintf(fp, "news_headers_to_display=%s\n\n", tinrc.news_headers_to_display);
 
-	fprintf(fp, _(txt_tinrc_info_in_last_line));
+	fprintf(fp, "%s", _(txt_news_headers_to_not_display.tinrc));
+	fprintf(fp, "news_headers_to_not_display=%s\n\n", tinrc.news_headers_to_not_display);
+
+	fprintf(fp, "%s", _(txt_tinrc_info_in_last_line));
 	fprintf(fp, "info_in_last_line=%s\n\n", print_boolean(tinrc.info_in_last_line));
 
-	fprintf(fp, _(txt_sort_article_type.tinrc));
+	fprintf(fp, "%s", _(txt_sort_article_type.tinrc));
 	fprintf(fp, "sort_article_type=%d\n\n", tinrc.sort_article_type);
 
-	fprintf(fp, _(txt_sort_threads_type.tinrc));
+	fprintf(fp, "%s", _(txt_sort_threads_type.tinrc));
 	fprintf(fp, "sort_threads_type=%d\n\n", tinrc.sort_threads_type);
 
-	fprintf(fp, _(txt_maildir.tinrc));
-	fprintf(fp, "default_maildir=%s\n\n", tinrc.maildir);
+	fprintf(fp, "%s", _(txt_maildir.tinrc));
+	fprintf(fp, "maildir=%s\n\n", tinrc.maildir);
 
-	fprintf(fp, _(txt_mailbox_format.tinrc));
+	fprintf(fp, "%s", _(txt_mailbox_format.tinrc));
 	fprintf(fp, "mailbox_format=%s\n\n", txt_mailbox_formats[tinrc.mailbox_format]);
 
 #ifndef DISABLE_PRINTING
-	fprintf(fp, _(txt_print_header.tinrc));
+	fprintf(fp, "%s", _(txt_print_header.tinrc));
 	fprintf(fp, "print_header=%s\n\n", print_boolean(tinrc.print_header));
 
-	fprintf(fp, _(txt_printer.tinrc));
-	fprintf(fp, "default_printer=%s\n\n", tinrc.printer);
+	fprintf(fp, "%s", _(txt_printer.tinrc));
+	fprintf(fp, "printer=%s\n\n", tinrc.printer);
 #endif /* !DISABLE_PRINTING */
 
-	fprintf(fp, _(txt_batch_save.tinrc));
+	fprintf(fp, "%s", _(txt_batch_save.tinrc));
 	fprintf(fp, "batch_save=%s\n\n", print_boolean(tinrc.batch_save));
 
-	fprintf(fp, _(txt_start_editor_offset.tinrc));
+	fprintf(fp, "%s", _(txt_start_editor_offset.tinrc));
 	fprintf(fp, "start_editor_offset=%s\n\n", print_boolean(tinrc.start_editor_offset));
 
-	fprintf(fp, _(txt_editor_format.tinrc));
-	fprintf(fp, "default_editor_format=%s\n\n", tinrc.editor_format);
+	fprintf(fp, "%s", _(txt_editor_format.tinrc));
+	fprintf(fp, "editor_format=%s\n\n", tinrc.editor_format);
 
-	fprintf(fp, _(txt_mailer_format.tinrc));
-	fprintf(fp, "default_mailer_format=%s\n\n", tinrc.mailer_format);
+	fprintf(fp, "%s", _(txt_mailer_format.tinrc));
+	fprintf(fp, "mailer_format=%s\n\n", tinrc.mailer_format);
 
-	fprintf(fp, _(txt_interactive_mailer.tinrc));
+	fprintf(fp, "%s", _(txt_interactive_mailer.tinrc));
 	fprintf(fp, "interactive_mailer=%d\n\n", tinrc.interactive_mailer);
 
-	fprintf(fp, _(txt_show_info.tinrc));
+	fprintf(fp, "%s", _(txt_show_info.tinrc));
 	fprintf(fp, "show_info=%d\n\n", tinrc.show_info);
 
-	fprintf(fp, _(txt_thread_score.tinrc));
+	fprintf(fp, "%s", _(txt_thread_score.tinrc));
 	fprintf(fp, "thread_score=%d\n\n", tinrc.thread_score);
 
-	fprintf(fp, _(txt_unlink_article.tinrc));
+	fprintf(fp, "%s", _(txt_unlink_article.tinrc));
 	fprintf(fp, "unlink_article=%s\n\n", print_boolean(tinrc.unlink_article));
 
-	fprintf(fp, _(txt_keep_dead_articles.tinrc));
+	fprintf(fp, "%s", _(txt_keep_dead_articles.tinrc));
 	fprintf(fp, "keep_dead_articles=%s\n\n", print_boolean(tinrc.keep_dead_articles));
 
-	fprintf(fp, _(txt_posted_articles_file.tinrc));
+	fprintf(fp, "%s", _(txt_posted_articles_file.tinrc));
 	fprintf(fp, "posted_articles_file=%s\n\n", tinrc.posted_articles_file);
 
-	fprintf(fp, _(txt_add_posted_to_filter.tinrc));
+	fprintf(fp, "%s", _(txt_add_posted_to_filter.tinrc));
 	fprintf(fp, "add_posted_to_filter=%s\n\n", print_boolean(tinrc.add_posted_to_filter));
 
-	fprintf(fp, _(txt_sigfile.tinrc));
-	fprintf(fp, "default_sigfile=%s\n\n", tinrc.sigfile);
+	fprintf(fp, "%s", _(txt_sigfile.tinrc));
+	fprintf(fp, "sigfile=%s\n\n", tinrc.sigfile);
 
-	fprintf(fp, _(txt_sigdashes.tinrc));
+	fprintf(fp, "%s", _(txt_sigdashes.tinrc));
 	fprintf(fp, "sigdashes=%s\n\n", print_boolean(tinrc.sigdashes));
 
-	fprintf(fp, _(txt_signature_repost.tinrc));
+	fprintf(fp, "%s", _(txt_signature_repost.tinrc));
 	fprintf(fp, "signature_repost=%s\n\n", print_boolean(tinrc.signature_repost));
 
-	fprintf(fp, _(txt_spamtrap_warning_addresses.tinrc));
+	fprintf(fp, "%s", _(txt_spamtrap_warning_addresses.tinrc));
 	fprintf(fp, "spamtrap_warning_addresses=%s\n\n", tinrc.spamtrap_warning_addresses);
 
-	fprintf(fp, _(txt_url_handler.tinrc));
+	fprintf(fp, "%s", _(txt_url_handler.tinrc));
 	fprintf(fp, "url_handler=%s\n\n", tinrc.url_handler);
 
-	fprintf(fp, _(txt_advertising.tinrc));
+	fprintf(fp, "%s", _(txt_advertising.tinrc));
 	fprintf(fp, "advertising=%s\n\n", print_boolean(tinrc.advertising));
 
-	fprintf(fp, _(txt_reread_active_file_secs.tinrc));
+	fprintf(fp, "%s", _(txt_reread_active_file_secs.tinrc));
 	fprintf(fp, "reread_active_file_secs=%d\n\n", tinrc.reread_active_file_secs);
 
-	fprintf(fp, _(txt_quote_chars.tinrc));
+	fprintf(fp, "%s", _(txt_quote_chars.tinrc));
 	fprintf(fp, "quote_chars=%s\n\n", quote_space_to_dash(tinrc.quote_chars));
 
-	fprintf(fp, _(txt_quote_style.tinrc));
+	fprintf(fp, "%s", _(txt_quote_style.tinrc));
 	fprintf(fp, "quote_style=%d\n\n", tinrc.quote_style);
 
 #ifdef HAVE_COLOR
-	fprintf(fp, _(txt_quote_regex.tinrc));
+	fprintf(fp, "%s", _(txt_quote_regex.tinrc));
 	fprintf(fp, "quote_regex=%s\n\n", tinrc.quote_regex);
-	fprintf(fp, _(txt_quote_regex2.tinrc));
+	fprintf(fp, "%s", _(txt_quote_regex2.tinrc));
 	fprintf(fp, "quote_regex2=%s\n\n", tinrc.quote_regex2);
-	fprintf(fp, _(txt_quote_regex3.tinrc));
+	fprintf(fp, "%s", _(txt_quote_regex3.tinrc));
 	fprintf(fp, "quote_regex3=%s\n\n", tinrc.quote_regex3);
 #endif /* HAVE_COLOR */
 
-	fprintf(fp, _(txt_slashes_regex.tinrc));
+	fprintf(fp, "%s", _(txt_slashes_regex.tinrc));
 	fprintf(fp, "slashes_regex=%s\n\n", tinrc.slashes_regex);
-	fprintf(fp, _(txt_stars_regex.tinrc));
+	fprintf(fp, "%s", _(txt_stars_regex.tinrc));
 	fprintf(fp, "stars_regex=%s\n\n", tinrc.stars_regex);
-	fprintf(fp, _(txt_strokes_regex.tinrc));
+	fprintf(fp, "%s", _(txt_strokes_regex.tinrc));
 	fprintf(fp, "strokes_regex=%s\n\n", tinrc.strokes_regex);
-	fprintf(fp, _(txt_underscores_regex.tinrc));
+	fprintf(fp, "%s", _(txt_underscores_regex.tinrc));
 	fprintf(fp, "underscores_regex=%s\n\n", tinrc.underscores_regex);
 
-	fprintf(fp, _(txt_strip_re_regex.tinrc));
+	fprintf(fp, "%s", _(txt_strip_re_regex.tinrc));
 	fprintf(fp, "strip_re_regex=%s\n\n", tinrc.strip_re_regex);
-	fprintf(fp, _(txt_strip_was_regex.tinrc));
+	fprintf(fp, "%s", _(txt_strip_was_regex.tinrc));
 	fprintf(fp, "strip_was_regex=%s\n\n", tinrc.strip_was_regex);
 
-	fprintf(fp, _(txt_show_signatures.tinrc));
+	fprintf(fp, "%s", _(txt_verbatim_begin_regex.tinrc));
+	fprintf(fp, "verbatim_begin_regex=%s\n\n", tinrc.verbatim_begin_regex);
+	fprintf(fp, "%s", _(txt_verbatim_end_regex.tinrc));
+	fprintf(fp, "verbatim_end_regex=%s\n\n", tinrc.verbatim_end_regex);
+
+	fprintf(fp, "%s", _(txt_show_signatures.tinrc));
 	fprintf(fp, "show_signatures=%s\n\n", print_boolean(tinrc.show_signatures));
 
-	fprintf(fp, _(txt_tex2iso_conv.tinrc));
+	fprintf(fp, "%s", _(txt_tex2iso_conv.tinrc));
 	fprintf(fp, "tex2iso_conv=%s\n\n", print_boolean(tinrc.tex2iso_conv));
 
-	fprintf(fp, _(txt_hide_uue.tinrc));
+	fprintf(fp, "%s", _(txt_hide_uue.tinrc));
 	fprintf(fp, "hide_uue=%d\n\n", tinrc.hide_uue);
 
-	fprintf(fp, _(txt_news_quote_format.tinrc));
+	fprintf(fp, "%s", _(txt_news_quote_format.tinrc));
 	fprintf(fp, "news_quote_format=%s\n", tinrc.news_quote_format);
 	fprintf(fp, "mail_quote_format=%s\n", tinrc.mail_quote_format);
 	fprintf(fp, "xpost_quote_format=%s\n\n", tinrc.xpost_quote_format);
 
-	fprintf(fp, _(txt_auto_cc.tinrc));
-	fprintf(fp, "auto_cc=%s\n\n", print_boolean(tinrc.auto_cc));
+	fprintf(fp, "%s", _(txt_auto_cc_bcc.tinrc));
+	fprintf(fp, "auto_cc_bcc=%d\n\n", tinrc.auto_cc_bcc);
 
-	fprintf(fp, _(txt_auto_bcc.tinrc));
-	fprintf(fp, "auto_bcc=%s\n\n", print_boolean(tinrc.auto_bcc));
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	fprintf(fp, "%s", _(txt_utf8_graphics.tinrc));
+	fprintf(fp, "utf8_graphics=%s\n\n", print_boolean(tinrc.utf8_graphics));
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
-	fprintf(fp, _(txt_art_marked_deleted.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_deleted.tinrc));
 	fprintf(fp, "art_marked_deleted=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_deleted));
 
-	fprintf(fp, _(txt_art_marked_inrange.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_inrange.tinrc));
 	fprintf(fp, "art_marked_inrange=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_inrange));
 
-	fprintf(fp, _(txt_art_marked_return.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_return.tinrc));
 	fprintf(fp, "art_marked_return=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_return));
 
-	fprintf(fp, _(txt_art_marked_selected.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_selected.tinrc));
 	fprintf(fp, "art_marked_selected=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_selected));
 
-	fprintf(fp, _(txt_art_marked_recent.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_recent.tinrc));
 	fprintf(fp, "art_marked_recent=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_recent));
 
-	fprintf(fp, _(txt_art_marked_unread.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_unread.tinrc));
 	fprintf(fp, "art_marked_unread=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_unread));
 
-	fprintf(fp, _(txt_art_marked_read.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_read.tinrc));
 	fprintf(fp, "art_marked_read=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_read));
 
-	fprintf(fp, _(txt_art_marked_killed.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_killed.tinrc));
 	fprintf(fp, "art_marked_killed=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_killed));
 
-	fprintf(fp, _(txt_art_marked_read_selected.tinrc));
+	fprintf(fp, "%s", _(txt_art_marked_read_selected.tinrc));
 	fprintf(fp, "art_marked_read_selected=%c\n\n", SPACE_TO_DASH(tinrc.art_marked_read_selected));
 
-	fprintf(fp, _(txt_force_screen_redraw.tinrc));
+	fprintf(fp, "%s", _(txt_force_screen_redraw.tinrc));
 	fprintf(fp, "force_screen_redraw=%s\n\n", print_boolean(tinrc.force_screen_redraw));
 
-	fprintf(fp, _(txt_inews_prog.tinrc));
+	fprintf(fp, "%s", _(txt_inews_prog.tinrc));
 	fprintf(fp, "inews_prog=%s\n\n", tinrc.inews_prog);
 
-	fprintf(fp, _(txt_auto_list_thread.tinrc));
+	fprintf(fp, "%s", _(txt_auto_list_thread.tinrc));
 	fprintf(fp, "auto_list_thread=%s\n\n", print_boolean(tinrc.auto_list_thread));
 
-	fprintf(fp, _(txt_wrap_on_next_unread.tinrc));
+	fprintf(fp, "%s", _(txt_wrap_on_next_unread.tinrc));
 	fprintf(fp, "wrap_on_next_unread=%s\n\n", print_boolean(tinrc.wrap_on_next_unread));
 
-	fprintf(fp, _(txt_use_mouse.tinrc));
+	fprintf(fp, "%s", _(txt_use_mouse.tinrc));
 	fprintf(fp, "use_mouse=%s\n\n", print_boolean(tinrc.use_mouse));
 
-	fprintf(fp, _(txt_strip_blanks.tinrc));
+	fprintf(fp, "%s", _(txt_strip_blanks.tinrc));
 	fprintf(fp, "strip_blanks=%s\n\n", print_boolean(tinrc.strip_blanks));
 
-	fprintf(fp, _(txt_groupname_max_length.tinrc));
+	fprintf(fp, "%s", _(txt_groupname_max_length.tinrc));
 	fprintf(fp, "groupname_max_length=%d\n\n", tinrc.groupname_max_length);
 
-	fprintf(fp, _(txt_beginner_level.tinrc));
+	fprintf(fp, "%s", _(txt_abbreviate_groupname.tinrc));
+	fprintf(fp, "abbreviate_groupname=%s\n\n", print_boolean(tinrc.abbreviate_groupname));
+
+	fprintf(fp, "%s", _(txt_beginner_level.tinrc));
 	fprintf(fp, "beginner_level=%s\n\n", print_boolean(tinrc.beginner_level));
 
-	fprintf(fp, _(txt_filter_days.tinrc));
+	fprintf(fp, "%s", _(txt_filter_days.tinrc));
 	fprintf(fp, "default_filter_days=%d\n\n", tinrc.filter_days);
 
-	fprintf(fp, _(txt_cache_overview_files.tinrc));
+	fprintf(fp, "%s", _(txt_cache_overview_files.tinrc));
 	fprintf(fp, "cache_overview_files=%s\n\n", print_boolean(tinrc.cache_overview_files));
 
-	fprintf(fp, _(txt_getart_limit.tinrc));
+	fprintf(fp, "%s", _(txt_getart_limit.tinrc));
 	fprintf(fp, "getart_limit=%d\n\n", tinrc.getart_limit);
 
-	fprintf(fp, _(txt_recent_time.tinrc));
+	fprintf(fp, "%s", _(txt_recent_time.tinrc));
 	fprintf(fp, "recent_time=%d\n\n", tinrc.recent_time);
 
-	fprintf(fp, _(txt_score_limit_kill.tinrc));
+	fprintf(fp, "%s", _(txt_score_limit_kill.tinrc));
 	fprintf(fp, "score_limit_kill=%d\n\n", tinrc.score_limit_kill);
 
-	fprintf(fp, _(txt_score_kill.tinrc));
+	fprintf(fp, "%s", _(txt_score_kill.tinrc));
 	fprintf(fp, "score_kill=%d\n\n", tinrc.score_kill);
 
-	fprintf(fp, _(txt_score_limit_select.tinrc));
+	fprintf(fp, "%s", _(txt_score_limit_select.tinrc));
 	fprintf(fp, "score_limit_select=%d\n\n", tinrc.score_limit_select);
 
-	fprintf(fp, _(txt_score_select.tinrc));
+	fprintf(fp, "%s", _(txt_score_select.tinrc));
 	fprintf(fp, "score_select=%d\n\n", tinrc.score_select);
 
 #ifdef HAVE_COLOR
-	fprintf(fp, _(txt_use_color.tinrc));
+	fprintf(fp, "%s", _(txt_use_color.tinrc));
 	fprintf(fp, "use_color=%s\n\n", print_boolean(tinrc.use_color));
 
-	fprintf(fp, _(txt_tinrc_colors));
+	fprintf(fp, "%s", _(txt_tinrc_colors));
 
-	fprintf(fp, _(txt_col_normal.tinrc));
+	fprintf(fp, "%s", _(txt_col_normal.tinrc));
 	fprintf(fp, "col_normal=%d\n\n", tinrc.col_normal);
 
-	fprintf(fp, _(txt_col_back.tinrc));
+	fprintf(fp, "%s", _(txt_col_back.tinrc));
 	fprintf(fp, "col_back=%d\n\n", tinrc.col_back);
 
-	fprintf(fp, _(txt_col_invers_bg.tinrc));
+	fprintf(fp, "%s", _(txt_col_invers_bg.tinrc));
 	fprintf(fp, "col_invers_bg=%d\n\n", tinrc.col_invers_bg);
 
-	fprintf(fp, _(txt_col_invers_fg.tinrc));
+	fprintf(fp, "%s", _(txt_col_invers_fg.tinrc));
 	fprintf(fp, "col_invers_fg=%d\n\n", tinrc.col_invers_fg);
 
-	fprintf(fp, _(txt_col_text.tinrc));
+	fprintf(fp, "%s", _(txt_col_text.tinrc));
 	fprintf(fp, "col_text=%d\n\n", tinrc.col_text);
 
-	fprintf(fp, _(txt_col_minihelp.tinrc));
+	fprintf(fp, "%s", _(txt_col_minihelp.tinrc));
 	fprintf(fp, "col_minihelp=%d\n\n", tinrc.col_minihelp);
 
-	fprintf(fp, _(txt_col_help.tinrc));
+	fprintf(fp, "%s", _(txt_col_help.tinrc));
 	fprintf(fp, "col_help=%d\n\n", tinrc.col_help);
 
-	fprintf(fp, _(txt_col_message.tinrc));
+	fprintf(fp, "%s", _(txt_col_message.tinrc));
 	fprintf(fp, "col_message=%d\n\n", tinrc.col_message);
 
-	fprintf(fp, _(txt_col_quote.tinrc));
+	fprintf(fp, "%s", _(txt_col_quote.tinrc));
 	fprintf(fp, "col_quote=%d\n\n", tinrc.col_quote);
 
-	fprintf(fp, _(txt_col_quote2.tinrc));
+	fprintf(fp, "%s", _(txt_col_quote2.tinrc));
 	fprintf(fp, "col_quote2=%d\n\n", tinrc.col_quote2);
 
-	fprintf(fp, _(txt_col_quote3.tinrc));
+	fprintf(fp, "%s", _(txt_col_quote3.tinrc));
 	fprintf(fp, "col_quote3=%d\n\n", tinrc.col_quote3);
 
-	fprintf(fp, _(txt_col_head.tinrc));
+	fprintf(fp, "%s", _(txt_col_head.tinrc));
 	fprintf(fp, "col_head=%d\n\n", tinrc.col_head);
 
-	fprintf(fp, _(txt_col_newsheaders.tinrc));
+	fprintf(fp, "%s", _(txt_col_newsheaders.tinrc));
 	fprintf(fp, "col_newsheaders=%d\n\n", tinrc.col_newsheaders);
 
-	fprintf(fp, _(txt_col_subject.tinrc));
+	fprintf(fp, "%s", _(txt_col_subject.tinrc));
 	fprintf(fp, "col_subject=%d\n\n", tinrc.col_subject);
 
-	fprintf(fp, _(txt_col_response.tinrc));
+	fprintf(fp, "%s", _(txt_col_response.tinrc));
 	fprintf(fp, "col_response=%d\n\n", tinrc.col_response);
 
-	fprintf(fp, _(txt_col_from.tinrc));
+	fprintf(fp, "%s", _(txt_col_from.tinrc));
 	fprintf(fp, "col_from=%d\n\n", tinrc.col_from);
 
-	fprintf(fp, _(txt_col_title.tinrc));
+	fprintf(fp, "%s", _(txt_col_title.tinrc));
 	fprintf(fp, "col_title=%d\n\n", tinrc.col_title);
 
-	fprintf(fp, _(txt_col_signature.tinrc));
+	fprintf(fp, "%s", _(txt_col_signature.tinrc));
 	fprintf(fp, "col_signature=%d\n\n", tinrc.col_signature);
 
-	fprintf(fp, _(txt_col_urls.tinrc));
+	fprintf(fp, "%s", _(txt_col_urls.tinrc));
 	fprintf(fp, "col_urls=%d\n\n", tinrc.col_urls);
+
+	fprintf(fp, "%s", _(txt_col_verbatim.tinrc));
+	fprintf(fp, "col_verbatim=%d\n\n", tinrc.col_verbatim);
 #endif /* HAVE_COLOR */
 
-	fprintf(fp, _(txt_url_highlight.tinrc));
+	fprintf(fp, "%s", _(txt_url_highlight.tinrc));
 	fprintf(fp, "url_highlight=%s\n\n", print_boolean(tinrc.url_highlight));
 
-	fprintf(fp, _(txt_word_highlight.tinrc));
+	fprintf(fp, "%s", _(txt_word_highlight.tinrc));
 	fprintf(fp, "word_highlight=%s\n\n", print_boolean(tinrc.word_highlight));
 
-	fprintf(fp, _(txt_word_h_display_marks.tinrc));
+	fprintf(fp, "%s", _(txt_word_h_display_marks.tinrc));
 	fprintf(fp, "word_h_display_marks=%d\n\n", tinrc.word_h_display_marks);
 
 #ifdef HAVE_COLOR
-	fprintf(fp, _(txt_col_markstar.tinrc));
+	fprintf(fp, "%s", _(txt_col_markstar.tinrc));
 	fprintf(fp, "col_markstar=%d\n\n", tinrc.col_markstar);
-	fprintf(fp, _(txt_col_markdash.tinrc));
+	fprintf(fp, "%s", _(txt_col_markdash.tinrc));
 	fprintf(fp, "col_markdash=%d\n\n", tinrc.col_markdash);
-	fprintf(fp, _(txt_col_markslash.tinrc));
+	fprintf(fp, "%s", _(txt_col_markslash.tinrc));
 	fprintf(fp, "col_markslash=%d\n\n", tinrc.col_markslash);
-	fprintf(fp, _(txt_col_markstroke.tinrc));
+	fprintf(fp, "%s", _(txt_col_markstroke.tinrc));
 	fprintf(fp, "col_markstroke=%d\n\n", tinrc.col_markstroke);
 #endif /* HAVE_COLOR */
 
-	fprintf(fp, _(txt_mono_markstar.tinrc));
+	fprintf(fp, "%s", _(txt_mono_markstar.tinrc));
 	fprintf(fp, "mono_markstar=%d\n\n", tinrc.mono_markstar);
-	fprintf(fp, _(txt_mono_markdash.tinrc));
+	fprintf(fp, "%s", _(txt_mono_markdash.tinrc));
 	fprintf(fp, "mono_markdash=%d\n\n", tinrc.mono_markdash);
-	fprintf(fp, _(txt_mono_markslash.tinrc));
+	fprintf(fp, "%s", _(txt_mono_markslash.tinrc));
 	fprintf(fp, "mono_markslash=%d\n\n", tinrc.mono_markslash);
-	fprintf(fp, _(txt_mono_markstroke.tinrc));
+	fprintf(fp, "%s", _(txt_mono_markstroke.tinrc));
 	fprintf(fp, "mono_markstroke=%d\n\n", tinrc.mono_markstroke);
 
-	fprintf(fp, _(txt_mail_address.tinrc));
+	fprintf(fp, "%s", _(txt_mail_address.tinrc));
 	fprintf(fp, "mail_address=%s\n\n", tinrc.mail_address);
 
 #ifdef XFACE_ABLE
-	fprintf(fp, _(txt_use_slrnface.tinrc));
+	fprintf(fp, "%s", _(txt_use_slrnface.tinrc));
 	fprintf(fp, "use_slrnface=%s\n\n", print_boolean(tinrc.use_slrnface));
-#endif /*XFACE_ABLE */
+#endif /* XFACE_ABLE */
 
-	fprintf(fp, _(txt_wrap_column.tinrc));
+	fprintf(fp, "%s", _(txt_wrap_column.tinrc));
 	fprintf(fp, "wrap_column=%d\n\n", tinrc.wrap_column);
 
+	fprintf(fp, "%s", _(txt_trim_article_body.tinrc));
+	fprintf(fp, "trim_article_body=%d\n\n", tinrc.trim_article_body);
+
 #ifndef CHARSET_CONVERSION
-	fprintf(fp, _(txt_mm_charset.tinrc));
+	fprintf(fp, "%s", _(txt_mm_charset.tinrc));
 	fprintf(fp, "mm_charset=%s\n\n", tinrc.mm_charset);
 #else
-	fprintf(fp, _(txt_mm_network_charset.tinrc));
+	fprintf(fp, "%s", _(txt_mm_network_charset.tinrc));
 	fprintf(fp, "mm_network_charset=%s\n\n", txt_mime_charsets[tinrc.mm_network_charset]);
 
+#	ifdef NO_LOCALE
+	fprintf(fp, "%s", _(txt_mm_local_charset.tinrc));
+	fprintf(fp, "mm_local_charset=%s\n\n", tinrc.mm_local_charset);
+#	endif /* NO_LOCALE */
 #	ifdef HAVE_ICONV_OPEN_TRANSLIT
-	fprintf(fp, _(txt_translit.tinrc));
+	fprintf(fp, "%s", _(txt_translit.tinrc));
 	fprintf(fp, "translit=%s\n\n", print_boolean(tinrc.translit));
 #	endif /* HAVE_ICONV_OPEN_TRANSLIT */
 #endif /* !CHARSET_CONVERSION */
 
-	fprintf(fp, _(txt_post_mime_encoding.tinrc));
+	fprintf(fp, "%s", _(txt_post_mime_encoding.tinrc));
 	fprintf(fp, "post_mime_encoding=%s\n", txt_mime_encodings[tinrc.post_mime_encoding]);
 	fprintf(fp, "mail_mime_encoding=%s\n\n", txt_mime_encodings[tinrc.mail_mime_encoding]);
 
-	fprintf(fp, _(txt_post_8bit_header.tinrc));
+	fprintf(fp, "%s", _(txt_post_8bit_header.tinrc));
 	fprintf(fp, "post_8bit_header=%s\n\n", print_boolean(tinrc.post_8bit_header));
 
-	fprintf(fp, _(txt_mail_8bit_header.tinrc));
+	fprintf(fp, "%s", _(txt_mail_8bit_header.tinrc));
 	fprintf(fp, "mail_8bit_header=%s\n\n", print_boolean(tinrc.mail_8bit_header));
 
-	fprintf(fp, _(txt_metamail_prog.tinrc));
+	fprintf(fp, "%s", _(txt_metamail_prog.tinrc));
 	fprintf(fp, "metamail_prog=%s\n\n", tinrc.metamail_prog);
 
-	fprintf(fp, _(txt_ask_for_metamail.tinrc));
+	fprintf(fp, "%s", _(txt_ask_for_metamail.tinrc));
 	fprintf(fp, "ask_for_metamail=%s\n\n", print_boolean(tinrc.ask_for_metamail));
 
 #ifdef HAVE_KEYPAD
-	fprintf(fp, _(txt_use_keypad.tinrc));
+	fprintf(fp, "%s", _(txt_use_keypad.tinrc));
 	fprintf(fp, "use_keypad=%s\n\n", print_boolean(tinrc.use_keypad));
 #endif /* HAVE_KEYPAD */
 
-	fprintf(fp, _(txt_alternative_handling.tinrc));
+	fprintf(fp, "%s", _(txt_alternative_handling.tinrc));
 	fprintf(fp, "alternative_handling=%s\n\n", print_boolean(tinrc.alternative_handling));
 
-	fprintf(fp, _(txt_strip_newsrc.tinrc));
+	fprintf(fp, "%s", _(txt_verbatim_handling.tinrc));
+	fprintf(fp, "verbatim_handling=%s\n\n", print_boolean(tinrc.verbatim_handling));
+
+	fprintf(fp, "%s", _(txt_strip_newsrc.tinrc));
 	fprintf(fp, "strip_newsrc=%s\n\n", print_boolean(tinrc.strip_newsrc));
 
-	fprintf(fp, _(txt_strip_bogus.tinrc));
+	fprintf(fp, "%s", _(txt_strip_bogus.tinrc));
 	fprintf(fp, "strip_bogus=%d\n\n", tinrc.strip_bogus);
 
-	fprintf(fp, _(txt_date_format.tinrc));
+	fprintf(fp, "%s", _(txt_date_format.tinrc));
 	fprintf(fp, "date_format=%s\n\n", tinrc.date_format);
 
-	fprintf(fp, _(txt_wildcard.tinrc));
+	fprintf(fp, "%s", _(txt_wildcard.tinrc));
 	fprintf(fp, "wildcard=%d\n\n", tinrc.wildcard);
 
 #ifdef HAVE_UNICODE_NORMALIZATION
-	fprintf(fp, _(txt_normalization_form.tinrc));
+	fprintf(fp, "%s", _(txt_normalization_form.tinrc));
 	fprintf(fp, "normalization_form=%d\n\n", tinrc.normalization_form);
 #endif /* HAVE_UNICODE_NORMALIZATION */
 
 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
-	fprintf(fp, _(txt_render_bidi.tinrc));
+	fprintf(fp, "%s", _(txt_render_bidi.tinrc));
 	fprintf(fp, "render_bidi=%s\n\n", print_boolean(tinrc.render_bidi));
 #endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && HAVE_UNICODE_UBIDI_H && !NO_LOCALE */
 
-	fprintf(fp, _(txt_tinrc_filter));
+	fprintf(fp, "%s", _(txt_tinrc_filter));
 	fprintf(fp, "default_filter_kill_header=%d\n", tinrc.default_filter_kill_header);
 	fprintf(fp, "default_filter_kill_global=%s\n", print_boolean(tinrc.default_filter_kill_global));
-	/* ON=false, OFF=true */
-	fprintf(fp, "default_filter_kill_case=%s\n", print_boolean(!tinrc.default_filter_kill_case));
+	fprintf(fp, "default_filter_kill_case=%s\n", print_boolean(tinrc.default_filter_kill_case));
 	fprintf(fp, "default_filter_kill_expire=%s\n", print_boolean(tinrc.default_filter_kill_expire));
 	fprintf(fp, "default_filter_select_header=%d\n", tinrc.default_filter_select_header);
 	fprintf(fp, "default_filter_select_global=%s\n", print_boolean(tinrc.default_filter_select_global));
-	/* ON=false, OFF=true */
-	fprintf(fp, "default_filter_select_case=%s\n", print_boolean(!tinrc.default_filter_select_case));
+	fprintf(fp, "default_filter_select_case=%s\n", print_boolean(tinrc.default_filter_select_case));
 	fprintf(fp, "default_filter_select_expire=%s\n\n", print_boolean(tinrc.default_filter_select_expire));
 
-	fprintf(fp, _(txt_tinrc_defaults));
+	fprintf(fp, "%s", _(txt_tinrc_defaults));
 	fprintf(fp, "default_save_mode=%c\n", tinrc.default_save_mode);
 	fprintf(fp, "default_author_search=%s\n", tinrc.default_search_author);
 	fprintf(fp, "default_goto_group=%s\n", tinrc.default_goto_group);
@@ -1349,7 +1379,7 @@ write_config_file(
 	fprintf(fp, "default_select_pattern=%s\n", tinrc.default_select_pattern);
 	fprintf(fp, "default_shell_command=%s\n\n", tinrc.default_shell_command);
 
-	fprintf(fp, _(txt_tinrc_newnews));
+	fprintf(fp, "%s", _(txt_tinrc_newnews));
 	{
 		char timestring[30];
 		int j = find_newnews_index(nntp_server);
@@ -1371,9 +1401,13 @@ write_config_file(
 
 	fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR)); /* rename_file() preserves mode */
 
-	if (ferror(fp) || fclose(fp))
-		error_message(_(txt_filesystem_full), CONFIG_FILE);
-	else
+	if ((i = ferror(fp)) || fclose(fp)) {
+		error_message(2, _(txt_filesystem_full), CONFIG_FILE);
+		if (i) {
+			clearerr(fp);
+			fclose(fp);
+		}
+	} else
 		rename_file(file_tmp, file);
 
 	free(file_tmp);
@@ -1405,17 +1439,16 @@ match_color(
 	int *dst,
 	int max)
 {
-	int n;
 	size_t patlen = strlen(pat);
 
 	if (STRNCMPEQ(line, pat, patlen)) {
+		int n;
 		t_bool found = FALSE;
+
 		for (n = 0; n < MAX_COLOR + 1; n++) {
 			if (!strcasecmp(&line[patlen], txt_colors[n])) {
 				found = TRUE;
 				*dst = n;
-				if (*dst > max)
-					*dst = -1;
 			}
 		}
 
@@ -1423,11 +1456,14 @@ match_color(
 			*dst = atoi(&line[patlen]);
 
 		if (max) {
-			if ((*dst < -1) || (*dst > max)) {
+			if (max == MAX_BACKCOLOR && *dst > max && *dst <= MAX_COLOR)
+				*dst %= MAX_BACKCOLOR + 1;
+			else if ((*dst < -1) || (*dst > max)) {
 				my_fprintf(stderr, _(txt_value_out_of_range), pat, *dst, max);
 				*dst = 0;
 			}
-		}
+		} else
+			*dst = -1;
 		return TRUE;
 	}
 	return FALSE;
@@ -1492,10 +1528,11 @@ match_list(
 	int *dst)
 {
 	size_t patlen = strlen(pat);
-	size_t n;
-	char temp[LEN];
 
 	if (STRNCMPEQ(line, pat, patlen)) {
+		char temp[LEN];
+		size_t n;
+
 		line += patlen;
 		*dst = 0;	/* default, if no match */
 		for (n = 0; n < tablelen; n++) {
@@ -1649,7 +1686,7 @@ ulBuildArgv(
 	new_argv[0] = NULL;
 
 	while (*tmp) {
-		if (!isspace((int) *tmp)) { /* found the begining of a word */
+		if (!isspace((int) *tmp)) { /* found the beginning of a word */
 			new_argv[i] = tmp;
 			for (; *tmp && !isspace((int) *tmp); tmp++)
 				;
@@ -1677,19 +1714,23 @@ rc_update(
 {
 	char buf[1024];
 	const char *env;
+	t_bool auto_bcc = FALSE;
+	t_bool auto_cc = FALSE;
 	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 thread_articles = FALSE;
-	t_bool thread_perc = FALSE;
+	t_bool space_goto_next_unread = FALSE;
+	t_bool tab_goto_next_unread = FALSE;
 	t_bool use_builtin_inews = FALSE;
 	t_bool use_getart_limit = FALSE;
 	t_bool use_mailreader_i = FALSE;
@@ -1704,6 +1745,14 @@ rc_update(
 			continue;
 
 		switch (tolower((unsigned char) buf[0])) {
+			case 'a':
+				if (match_boolean(buf, "auto_bcc=", &auto_bcc))
+					break;
+
+				if (match_boolean(buf, "auto_cc=", &auto_cc))
+					break;
+				break;
+
 			case 'c':
 				if (match_boolean(buf, "confirm_action=", &confirm_action))
 					break;
@@ -1715,8 +1764,33 @@ rc_update(
 
 			case 'd':
 				/* simple rename */
+				if (match_string(buf, "default_editor_format=", tinrc.editor_format, sizeof(tinrc.editor_format)))
+					break;
+				/* simple rename */
+				if (match_string(buf, "default_maildir=", tinrc.maildir, sizeof(tinrc.maildir)))
+					break;
+				/* simple rename */
+				if (match_string(buf, "default_mailer_format=", tinrc.mailer_format, sizeof(tinrc.mailer_format)))
+					break;
+				/* simple rename */
+#ifndef DISABLE_PRINTING
+				if (match_string(buf, "default_printer=", tinrc.printer, sizeof(tinrc.printer)))
+					break;
+#endif /* !DISABLE_PRINTING */
+				/* simple rename */
 				if (match_string(buf, "default_regex_pattern=", tinrc.default_pattern, sizeof(tinrc.default_pattern)))
 					break;
+				/* simple rename */
+				if (match_string(buf, "default_savedir=", tinrc.savedir, sizeof(tinrc.savedir))) {
+					if (tinrc.savedir[0] == '.' && strlen(tinrc.savedir) == 1) {
+						get_cwd(buf);
+						my_strncpy(tinrc.savedir, buf, sizeof(tinrc.savedir) - 1);
+					}
+					break;
+				}
+				/* simple rename */
+				if (match_string(buf, "default_sigfile=", tinrc.sigfile, sizeof(tinrc.sigfile)))
+					break;
 				break;
 
 			case 'h':
@@ -1729,27 +1803,43 @@ 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))
+				if (match_boolean(buf, "quote_signatures=", &quote_signatures))
 					break;
-				if (match_boolean(buf, "quote_empty_lines=" , &quote_empty_lines))
+				if (match_boolean(buf, "quote_empty_lines=", &quote_empty_lines))
 					break;
 				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))
 					break;
 				if (match_boolean(buf, "show_lines=", &show_lines))
 					break;
+				/* simple rename */
+				if (match_boolean(buf, "show_only_unread=", &tinrc.show_only_unread_arts))
+					break;
 				if (match_boolean(buf, "show_score=", &show_score))
 					break;
 				break;
 
 			case 't':
-				if (match_boolean(buf, "thread_articles=", &thread_articles))
+				if (match_boolean(buf, "tab_goto_next_unread=", &tab_goto_next_unread)) {
+					set_goto_next_unread = TRUE;
 					break;
+				}
 				break;
 
 			case 'u':
@@ -1769,11 +1859,20 @@ rc_update(
 	}
 
 	/* update the values */
+	tinrc.auto_cc_bcc = (auto_cc ? 1 : 0) + (auto_bcc ? 2 : 0);
 	tinrc.confirm_choice = (confirm_action ? 1 : 0) + (confirm_to_quit ? 3 : 0);
 
 	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;
 
@@ -1789,12 +1888,6 @@ rc_update(
 	if (show_last_line_prev_page)
 		tinrc.scroll_lines = -1;
 
-	if (thread_articles)
-		tinrc.thread_articles = THREAD_BOTH;
-
-	if (thread_perc)
-		tinrc.thread_perc = THREAD_PERC_DEFAULT;
-
 	if (use_builtin_inews)
 		strncpy(tinrc.inews_prog, INTERNAL_CMD, sizeof(tinrc.inews_prog) - 1);
 
@@ -1821,19 +1914,19 @@ read_server_config(
 	char file[PATH_LEN];
 	char newnews_info[LEN];
 	char serverdir[PATH_LEN];
-	int upgrade = RC_CHECK;
+	enum rc_state upgrade = RC_CHECK;
 
 #ifdef NNTP_ABLE
 	if (read_news_via_nntp && !read_saved_news && nntp_tcp_port != IPPORT_NNTP)
-		snprintf(file, sizeof(file), "%s:%d", nntp_server, nntp_tcp_port);
+		snprintf(file, sizeof(file), "%s:%u", nntp_server, nntp_tcp_port);
 	else
 #endif /* NNTP_ABLE */
 	{
 		STRCPY(file, quote_space_to_dash(nntp_server));
 	}
-	JOINPATH(serverdir, rcdir, file);
-	joinpath(file, serverdir, SERVERCONFIG_FILE);
-	joinpath(local_newsgroups_file, serverdir, NEWSGROUPS_FILE);
+	joinpath(serverdir, sizeof(serverdir), rcdir, file);
+	joinpath(file, sizeof(file), serverdir, SERVERCONFIG_FILE);
+	joinpath(local_newsgroups_file, sizeof(local_newsgroups_file), serverdir, NEWSGROUPS_FILE);
 	if ((fp = fopen(file, "r")) == NULL)
 		return;
 	while (NULL != (line = tin_fgets(fp, FALSE))) {
@@ -1883,14 +1976,14 @@ write_server_config(
 		return;
 #ifdef NNTP_ABLE
 	if (read_news_via_nntp && nntp_tcp_port != IPPORT_NNTP)
-		snprintf(file, sizeof(file), "%s:%d", nntp_server, nntp_tcp_port);
+		snprintf(file, sizeof(file), "%s:%u", nntp_server, nntp_tcp_port);
 	else
 #endif /* NNTP_ABLE */
 	{
 		STRCPY(file, nntp_server);
 	}
-	JOINPATH(serverdir, rcdir, file);
-	joinpath(file, serverdir, SERVERCONFIG_FILE);
+	joinpath(serverdir, sizeof(serverdir), rcdir, file);
+	joinpath(file, sizeof(file), serverdir, SERVERCONFIG_FILE);
 
 	if ((no_write || post_article_and_exit || post_postponed_and_exit) && file_size(file) != -1L)
 		return;
@@ -1905,7 +1998,7 @@ write_server_config(
 	file_tmp = get_tmpfilename(file);
 
 	if ((fp = fopen(file_tmp, "w")) == NULL) {
-		error_message(_(txt_filesystem_full_backup), SERVERCONFIG_FILE);
+		error_message(2, _(txt_filesystem_full_backup), SERVERCONFIG_FILE);
 		free(file_tmp);
 		return;
 	}
@@ -1919,9 +2012,13 @@ write_server_config(
 
 	fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR)); /* rename_file() preserves mode */
 
-	if (ferror(fp) || fclose(fp))
-		error_message(_(txt_filesystem_full), SERVERCONFIG_FILE);
-	else
+	if ((i = ferror(fp)) || fclose(fp)) {
+		error_message(2, _(txt_filesystem_full), SERVERCONFIG_FILE);
+		if (i) {
+			clearerr(fp);
+			fclose(fp);
+		}
+	} else
 		rename_file(file_tmp, file);
 
 	free(file_tmp);
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/cook.c tin-2.0.0/src/cook.c
--- tin-1.8.3/src/cook.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/cook.c	2011-04-17 16:04:35.903902602 +0200
@@ -3,10 +3,10 @@
  *  Module    : cook.c
  *  Author    : J. Faultless
  *  Created   : 2000-03-08
- *  Updated   : 2005-07-20
+ *  Updated   : 2011-01-29
  *  Notes     : Split from page.c
  *
- * Copyright (c) 2000-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 2000-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,17 +48,21 @@
 #define CHUNK		50
 
 #define STRIP_ALTERNATIVE(x) \
-			(tinrc.alternative_handling && \
+			(curr_group->attribute->alternative_handling && \
 			(x)->hdr.ext->type == TYPE_MULTIPART && \
 			strcasecmp("alternative", (x)->hdr.ext->subtype) == 0)
 
 #define MATCH_REGEX(x,y,z)	(pcre_exec(x.re, x.extra, y, z, 0, 0, NULL, 0) >= 0)
 
 
+static t_bool charset_unsupported(const char *charset);
 static t_bool header_wanted(const char *line);
 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 process_text_body_part(t_bool wrap_lines, FILE *in, t_part *part, int hide_uue);
 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 */
@@ -79,61 +83,113 @@ static t_openartinfo *art;
 t_bool
 expand_ctrl_chars(
 	char **line,
-	int *length,
+	size_t *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;
+	unsigned int i = 0, j, ln = 0;
 	char *buf = my_malloc(curr_len);
-	char *c;
-	t_bool ctrl_L = FALSE, resize = FALSE;
+	unsigned char *c;
 
-	c = *line;
+	c = (unsigned char *) *line;
 	while (*c) {
-		if (resize) {
+		if (i > curr_len - (lcook_width + 1)) {
 			curr_len <<= 1;
 			buf = my_realloc(buf, curr_len);
-			resize = FALSE;
 		}
+		if (*c == '\n')
+			ln = i + 1;
 		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;
-			}
+			j = i + lcook_width - ((i - ln) % lcook_width);
 			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, ln = 0;
+	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 - (lcook_width + 1)) {
+			cur_len <<= 1;
+			wbuf = my_realloc(wbuf, cur_len * sizeof(wchar_t));
+		}
+		if (*wc == '\n')
+			ln = i + 1;
+		if (*wc == '\t') {		/* expand_tabs */
+			j = i + lcook_width - ((i - ln) % 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 */
 
 
 /*
@@ -314,27 +370,28 @@ get_filename(
 }
 
 
-#define PUT_UUE(part, qualifier_text)					\
-	put_cooked(LEN, wrap_lines, C_UUE, _(txt_uue),			\
-		part->depth * 4, "",							\
-		content_types[part->type], part->subtype,		\
+#define PUT_UUE(part, qualifier_text) \
+	put_cooked(LEN, wrap_lines, C_UUE, _(txt_uue), \
+		part->depth ? (part->depth - 1) * 4 : 0, "", \
+		content_types[part->type], part->subtype, \
 		qualifier_text, part->line_count, get_filename(part->params))
 
 #define PUT_ATTACH(part, depth, name, charset) \
-	put_cooked(LEN, wrap_lines, C_ATTACH, _(txt_attach),	\
-		depth, "",	\
-		content_types[part->type], part->subtype,	\
-		content_encodings[part->encoding],	\
-		charset ? _(txt_attach_charset) : "", BlankIfNull(charset),	\
-		part->line_count,	\
-		name ? _(txt_name) : "", BlankIfNull(name));	\
+	put_cooked(LEN, wrap_lines, C_ATTACH, _(txt_attach), \
+		depth, "", \
+		content_types[part->type], part->subtype, \
+		content_encodings[part->encoding], \
+		charset ? _(txt_attach_charset) : "", BlankIfNull(charset), \
+		part->line_count, \
+		name ? _(txt_name) : "", BlankIfNull(name)); \
 		\
-	if (part->description)	\
-		put_cooked(LEN, wrap_lines, C_ATTACH,	\
-			_(txt_attach_description),	\
-			depth, "",	\
-			part->description);	\
-	put_cooked(1, wrap_lines, C_ATTACH, "\n")
+	if (part->description) \
+		put_cooked(LEN, wrap_lines, C_ATTACH, \
+			_(txt_attach_description), \
+			depth, "", \
+			part->description); \
+	if (part->next != NULL || IS_PLAINTEXT(part)) \
+		put_cooked(1, wrap_lines, C_ATTACH, "\n")
 
 /*
  * Decodes text bodies, remove sig's, detects uuencoded sections
@@ -344,18 +401,22 @@ process_text_body_part(
 	t_bool wrap_lines,
 	FILE *in,
 	t_part *part,
-	int hide_uue,
-	int tabs)
+	int hide_uue)
 {
 	char *rest = NULL;
-	char *line = NULL, *buf;
-	int max_line_len = 0;
-	int flags, len, lines_left;
+	char *line = NULL, *buf, *tmpline;
+	size_t max_line_len = 0;
+	int flags, len, lines_left, len_blank;
 	int offsets[6];
 	int size_offsets = ARRAY_SIZE(offsets);
+	unsigned int lines_skipped = 0;
 	t_bool in_sig = FALSE;			/* Set when in sig portion */
 	t_bool in_uue = FALSE;			/* Set when in uuencoded section */
+	t_bool in_verbatim = FALSE;		/* Set when in verbatim section */
+	t_bool verbatim_begin = FALSE;	/* Set when verbatim_begin_regex matches */
 	t_bool is_uubody;				/* Set when current line looks like a uuencoded line */
+	t_bool first_line_blank = TRUE;	/* Unset when first non-blank line is reached */
+	t_bool put_blank_lines = FALSE;	/* Set when previously skipped lines needs to put */
 	t_part *curruue = NULL;
 
 	if (part->uue) {				/* These are redone each time we recook/resize etc.. */
@@ -391,10 +452,10 @@ process_text_body_part(
 				 * especially if we must resize it.
 				 * So copy buf to line (and resize line if necessary).
 				 */
-				if (max_line_len < (int) strlen(buf) + 2) {
+				if (max_line_len < strlen(buf) + 2) {
 					max_line_len = strlen(buf) + 2;
 					line = my_realloc(line, max_line_len);
-				};
+				}
 				strcpy(line, buf);
 
 				/*
@@ -421,104 +482,174 @@ process_text_body_part(
 		len = (int) strlen(line);
 
 		/*
-		 * Detect and skip signatures if necessary
+		 * trim article body and sig (not verbatim blocks):
+		 * - skip leading blank lines
+		 * - replace multiple blank lines with one empty line
+		 * - skip tailing blank lines, keep one if an
+		 *   attachement follows
 		 */
-		if (!in_sig) {
-			if (strcmp(line, SIGDASHES) == 0) {
-				in_sig = TRUE;
-				if (in_uue) {
-					in_uue = FALSE;
-					if (hide_uue)
-						PUT_UUE(curruue, _(txt_incomplete));
+		if (curr_group->attribute->trim_article_body && !in_uue && !in_verbatim && !verbatim_begin) {
+			len_blank = 1;
+			tmpline = line;
+			/* check if line contains only whitespace */
+			while ((' ' == *tmpline) || ('\t' == *tmpline)) {
+				len_blank++;
+				tmpline++;
+			}
+			if (len_blank == len) {		/* line is blank */
+				if (lines_left == 0 && (curr_group->attribute->trim_article_body & SKIP_TRAILING)) {
+					if (!(part->next == NULL || (STRIP_ALTERNATIVE(art) && !IS_PLAINTEXT(part->next))))
+						put_cooked(1, TRUE, in_sig ? C_SIG : C_BODY, "\n");
+					continue;
+				}
+				if (first_line_blank) {
+					if (curr_group->attribute->trim_article_body & SKIP_LEADING)
+						continue;
+				} else if ((curr_group->attribute->trim_article_body & (COMPACT_MULTIPLE | SKIP_TRAILING)) && (!in_sig || curr_group->attribute->show_signatures)) {
+					lines_skipped++;
+					if (lines_left == 0 && !(curr_group->attribute->trim_article_body & SKIP_TRAILING)) {
+						for (; lines_skipped > 0; lines_skipped--)
+							put_cooked(1, TRUE, in_sig ? C_SIG : C_BODY, "\n");
+					}
+					continue;
+				}
+			} else {	/* line is not blank */
+				if (first_line_blank)
+					first_line_blank = FALSE;
+				if (lines_skipped && (!in_sig || curr_group->attribute->show_signatures)) {
+					if (strcmp(line, SIGDASHES) != 0 || curr_group->attribute->show_signatures) {
+						if (curr_group->attribute->trim_article_body & COMPACT_MULTIPLE)
+							put_cooked(1, TRUE, in_sig ? C_SIG : C_BODY, "\n");
+						else
+							put_blank_lines = TRUE;
+					} else if (!(curr_group->attribute->trim_article_body & SKIP_TRAILING))
+						put_blank_lines = TRUE;
+					if (put_blank_lines) {
+						for (; lines_skipped > 0; lines_skipped--)
+							put_cooked(1, TRUE, in_sig ? C_SIG : C_BODY, "\n");
+					}
+					put_blank_lines = FALSE;
+					lines_skipped = 0;
 				}
 			}
+		} /* if (tinrc.trim_article_body...) */
+
+		/* look for verbatim marks, set in_verbatim only for lines in between */
+		if (curr_group->attribute->verbatim_handling) {
+			if (verbatim_begin) {
+				in_verbatim = TRUE;
+				verbatim_begin = FALSE;
+			} else if (!in_sig && !in_uue && !in_verbatim && MATCH_REGEX(verbatim_begin_regex, line, len))
+				verbatim_begin = TRUE;
+			if (in_verbatim && MATCH_REGEX(verbatim_end_regex, line, len))
+				in_verbatim = FALSE;
 		}
 
-		if (in_sig && !tinrc.show_signatures)
-			continue;					/* No further processing needed */
+		if (!in_verbatim) {
+			/*
+			 * Detect and skip signatures if necessary
+			 */
+			if (!in_sig) {
+				if (strcmp(line, SIGDASHES) == 0) {
+					in_sig = TRUE;
+					if (in_uue) {
+						in_uue = FALSE;
+						if (hide_uue)
+							PUT_UUE(curruue, _(txt_incomplete));
+					}
+				}
+			}
 
-		/*
-		 * Detect and process uuencoded sections
-		 * Look for the start or the end of a uuencoded section
-		 *
-		 * TODO: look for a tailing size line after end (non standard
-		 *       extension)?
-		 */
-		if (pcre_exec(uubegin_regex.re, uubegin_regex.extra, line, len, 0, 0, offsets, size_offsets) != PCRE_ERROR_NOMATCH) {
-			in_uue = TRUE;
-			curruue = new_uue(&part, line + offsets[1]);
-			if (hide_uue)
-				continue;				/* Don't cook the 'begin' line */
-		} else if (strncmp(line, "end\n", 4) == 0) {
-			if (in_uue) {
-				in_uue = FALSE;
-				if (hide_uue) {
-					PUT_UUE(curruue, "");
-					continue;			/* Don't cook the 'end' line */
+			if (in_sig && !(curr_group->attribute->show_signatures))
+				continue;					/* No further processing needed */
+
+			/*
+			 * Detect and process uuencoded sections
+			 * Look for the start or the end of a uuencoded section
+			 *
+			 * TODO: look for a tailing size line after end (non standard
+			 *       extension)?
+			 */
+			if (pcre_exec(uubegin_regex.re, uubegin_regex.extra, line, len, 0, 0, offsets, size_offsets) != PCRE_ERROR_NOMATCH) {
+				in_uue = TRUE;
+				curruue = new_uue(&part, line + offsets[1]);
+				if (hide_uue)
+					continue;				/* Don't cook the 'begin' line */
+			} else if (strncmp(line, "end\n", 4) == 0) {
+				if (in_uue) {
+					in_uue = FALSE;
+					if (hide_uue) {
+						PUT_UUE(curruue, "");
+						continue;			/* Don't cook the 'end' line */
+					}
 				}
 			}
-		}
 
-		/*
-		 * See if this line looks like a uuencoded 'body' line
-		 */
-		is_uubody = FALSE;
+			/*
+			 * See if this line looks like a uuencoded 'body' line
+			 */
+			is_uubody = FALSE;
 
-		if (MATCH_REGEX (uubody_regex, line, len)) {
-			int sum = (((*line) - ' ') & 077) * 4 / 3;		/* uuencode octet checksum */
+			if (MATCH_REGEX(uubody_regex, line, len)) {
+				int sum = (((*line) - ' ') & 077) * 4 / 3;		/* uuencode octet checksum */
 
-			/* sum = 0 in a uubody only on the last line, a single ` */
-			if (sum == 0 && len == 1 + 1)			/* +1 for the \n */
-				is_uubody = TRUE;
-			else if (len == sum + 1 + 1)
-				is_uubody = TRUE;
+				/* sum = 0 in a uubody only on the last line, a single ` */
+				if (sum == 0 && len == 1 + 1)			/* +1 for the \n */
+					is_uubody = TRUE;
+				else if (len == sum + 1 + 1)
+					is_uubody = TRUE;
 #ifdef DEBUG_ART
-			if (debug == 2)
-				fprintf(stderr, "%s sum=%d len=%d (%s)\n", bool_unparse(is_uubody), sum, len, line);
+				if (debug & DEBUG_MISC)
+					fprintf(stderr, "%s sum=%d len=%d (%s)\n", bool_unparse(is_uubody), sum, len, line);
 #endif /* DEBUG_ART */
-		}
+			}
 
-		if (in_uue) {
-			if (is_uubody)
-				curruue->line_count++;
-			else {
-				if (line[0] == '\n') {		/* Blank line in a uubody - definitely a failure */
-					/* fprintf(stderr, "not a uue line while reading a uue body?\n"); */
-					in_uue = FALSE;
-					if (hide_uue)
-						/* don't continue here, so we see the line that 'broke' in_uue */
-						PUT_UUE(curruue, _(txt_incomplete));
+			if (in_uue) {
+				if (is_uubody)
+					curruue->line_count++;
+				else {
+					if (line[0] == '\n') {		/* Blank line in a uubody - definitely a failure */
+						/* fprintf(stderr, "not a uue line while reading a uue body?\n"); */
+						in_uue = FALSE;
+						if (hide_uue)
+							/* don't continue here, so we see the line that 'broke' in_uue */
+							PUT_UUE(curruue, _(txt_incomplete));
+					}
+				}
+			} else {
+				/*
+				 * UUE_ALL = 'Try harder' - we never saw a begin line, but useful
+				 * when uue sections are split across > 1 article
+				 */
+				if (is_uubody && hide_uue == UUE_ALL) {
+					char name[] = N_("(unknown)");
+
+					curruue = new_uue(&part, name);
+					curruue->line_count++;
+					in_uue = TRUE;
+					continue;
 				}
 			}
-		} else {
+
 			/*
-			 * UUE_ALL = 'Try harder' - we never saw a begin line, but useful
-			 * when uue sections are split across > 1 article
+			 * Skip output if we're hiding uue or the sig
 			 */
-			if (is_uubody && hide_uue == UUE_ALL) {
-				char name[] = N_("(unknown)");
-
-				curruue = new_uue(&part, name);
-				curruue->line_count++;
-				in_uue = TRUE;
-				continue;
-			}
+			if (in_uue && hide_uue)
+				continue;	/* No further processing needed */
 		}
 
-		/*
-		 * Skip output if we're hiding uue or the sig
-		 */
-		if (in_uue && hide_uue)
-			continue;	/* No further processing needed */
-
-		flags = in_sig ? C_SIG : C_BODY;
+		flags = in_verbatim ? C_VERBATIM : in_sig ? C_SIG : C_BODY;
 
 		/*
-		 * Don't do any further handling of uue lines - the data is binary after all
+		 * Don't do any further handling of uue || verbatim lines
 		 */
 		if (in_uue) {
 			put_cooked(max_line_len, wrap_lines, flags, "%s", line);
 			continue;
+		} else if (in_verbatim) {
+			expand_ctrl_chars(&line, &max_line_len, 8);
+			put_cooked(max_line_len, wrap_lines, flags, "%s", line);
+			continue;
 		}
 
 #ifdef HAVE_COLOR
@@ -543,14 +674,7 @@ 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))
+		if (expand_ctrl_chars(&line, &max_line_len, tabwidth))
 			flags |= C_CTRLL;				/* Line contains form-feed */
 		put_cooked(max_line_len, wrap_lines && (!IS_LOCAL_CHARSET("Big5")), flags, "%s", line);
 	} /* while */
@@ -576,22 +700,22 @@ header_wanted(
 	int i;
 	t_bool ret = FALSE;
 
-	if (num_headers_to_display && (news_headers_to_display_array[0][0] == '*'))
+	if (curr_group->attribute->headers_to_display->num && (curr_group->attribute->headers_to_display->header[0][0] == '*'))
 		ret = TRUE; /* wild do */
 	else {
-		for (i = 0; i < num_headers_to_display; i++) {
-			if (!strncasecmp(line, news_headers_to_display_array[i], strlen(news_headers_to_display_array[i]))) {
+		for (i = 0; i < curr_group->attribute->headers_to_display->num; i++) {
+			if (!strncasecmp(line, curr_group->attribute->headers_to_display->header[i], strlen(curr_group->attribute->headers_to_display->header[i]))) {
 				ret = TRUE;
 				break;
 			}
 		}
 	}
 
-	if (num_headers_to_not_display && (news_headers_to_not_display_array[0][0] == '*'))
+	if (curr_group->attribute->headers_to_not_display->num && (curr_group->attribute->headers_to_not_display->header[0][0] == '*'))
 		ret = FALSE; /* wild don't: doesn't make sense! */
 	else {
-		for (i = 0; i < num_headers_to_not_display; i++) {
-			if (!strncasecmp(line, news_headers_to_not_display_array[i], strlen(news_headers_to_not_display_array[i]))) {
+		for (i = 0; i < curr_group->attribute->headers_to_not_display->num; i++) {
+			if (!strncasecmp(line, curr_group->attribute->headers_to_not_display->header[i], strlen(curr_group->attribute->headers_to_not_display->header[i]))) {
 				ret = FALSE;
 				break;
 			}
@@ -622,6 +746,39 @@ dump_cooked(
 
 
 /*
+ * Check for charsets which may contain NULL bytes and thus break string
+ * functions. Possibly incomplete.
+ *
+ * TODO: fix the other code to handle those charsets properly.
+ */
+static t_bool
+charset_unsupported(
+	const char *charset)
+{
+	static const char *charsets[] = {
+		"csUnicode",	/* alias for ISO-10646-UCS-2 */
+		"csUCS4",		/* alias for ISO-10646-UCS-4 */
+		"ISO-10646-UCS-2",
+		"ISO-10646-UCS-4",
+		"UTF-16",		/* covers also BE/LE */
+		"UTF-32",		/* covers also BE/LE */
+		NULL };
+	const char **charsetptr = charsets;
+	t_bool ret = FALSE;
+
+	if (!charset)
+		return ret;
+
+	do {
+		if (!strncasecmp(charset, *charsetptr, strlen(*charsetptr)))
+			ret = TRUE;
+	} while (!ret && *(++charsetptr) != NULL);
+
+	return ret;
+}
+
+
+/*
  * 'cooks' an article, ie, prepare what will actually appear on the screen
  * It is not easy to do this in the same pass as the initial read since
  * boundary conditions for multipart articles make it harder to do on the
@@ -642,19 +799,26 @@ dump_cooked(
  *		stripping of sigs if !show_signatures
  * Returns:
  *		TRUE on success
+ *
+ * TODO:
+ *      give an error-message on at least disk-full
  */
 t_bool
 cook_article(
 	t_bool wrap_lines,
 	t_openartinfo *artinfo,
-	int tabs,
-	int hide_uue)
+	int hide_uue,
+	t_bool show_all_headers)
 {
 	const char *charset;
 	const char *name;
 	char *line;
 	struct t_header *hdr = &artinfo->hdr;
 	t_bool header_put = FALSE;
+	static const char *struct_header[] = {
+		"Approved: ", "From: ", "Originator: ",
+		"Reply-To: ", "Sender: ", "X-Cancelled-By: ", "X-Comment-To: ",
+		"X-Submissions-To: ", "To: ", "Cc: ", "Bcc: ", "X-Originator: ", 0 };
 
 	art = artinfo;				/* Global saves lots of passing artinfo around */
 
@@ -681,13 +845,46 @@ cook_article(
 			break;
 		}
 
-		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. */
+		if (show_all_headers || header_wanted(line)) {	/* Put cooked data */
+			const char **strptr = struct_header;
+			char *l = NULL, *ptr, *foo, *bar;
+			size_t i = LEN;
+			t_bool found = FALSE;
+
+			/* structured headers */
+			do {
+				if (!strncasecmp(line, *strptr, strlen(*strptr))) {
+					foo = my_strdup(*strptr);
+					if ((ptr = strchr(foo, ':'))) {
+						*ptr = '\0';
+						unfold_header(line);
+						if ((ptr = parse_header(line, foo, TRUE, TRUE, FALSE))) {
+							bar = idna_decode(ptr);	/* do we wan't idna_decode() here? */
+							l = my_calloc(1, strlen(bar) + strlen(*strptr) + 1);
+							strncpy(l, line, strlen(*strptr));
+							strcat(l, bar);
+							free(bar);
+						}
+					}
+					free(foo);
+					found = TRUE;
+				}
+			} while (!found && *(++strptr) != 0);
+
+			/* unstructured but must not be decoded */
+			if (l == NULL && (!strncasecmp(line, "References: ", 12) || !strncasecmp(line, "Message-ID: ", 12) || !strncasecmp(line, "Date: ", 6) || !strncasecmp(line, "Newsgroups: ", 12) || !strncasecmp(line, "Distribution: ", 14) || !strncasecmp(line, "Followup-To: ", 13) || !strncasecmp(line, "X-Face: ", 8) || !strncasecmp(line, "Cancel-Lock: ", 13) || !strncasecmp(line, "Cancel-Key: ", 12)))
+				l = my_strdup(line);
 
+			if (l == NULL)
+				l = my_strdup(rfc1522_decode(line));
+
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+			if (IS_LOCAL_CHARSET("UTF-8"))
+				utf8_valid(l);
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 			header_put = TRUE;
-			expand_ctrl_chars(&l, &i, tabs);
-			put_cooked(LEN, wrap_lines, C_HEADER, "%s", l);
+			expand_ctrl_chars(&l, &i, tabwidth);
+			put_cooked(i, wrap_lines, C_HEADER, "%s", l);
 			free(l);
 		}
 	}
@@ -714,27 +911,36 @@ cook_article(
 				charset = get_param(ptr->params, "charset");
 			else
 				charset = NULL;
-			PUT_ATTACH(ptr, ptr->depth * 4, name, charset);
+			PUT_ATTACH(ptr, (ptr->depth - 1) * 4, name, charset);
 
 			/* Try to view anything of type text, may need to review this */
-			if (IS_PLAINTEXT(ptr))
-				process_text_body_part(wrap_lines, artinfo->raw, ptr, hide_uue, tabs);
+			if (IS_PLAINTEXT(ptr)) {
+				if (charset_unsupported(charset)) {
+					put_cooked(LEN, wrap_lines, C_ATTACH, _(txt_attach_unsup_charset), (ptr->depth - 1) * 4, "", charset);
+					if (ptr->next)
+						put_cooked(1, wrap_lines, C_ATTACH, "\n");
+				} else
+					process_text_body_part(wrap_lines, artinfo->raw, ptr, hide_uue);
+			}
 		}
 	} else {
+		if (!strcmp(content_types[hdr->ext->type], "text"))
+			charset = get_param(hdr->ext->params, "charset");
+		else
+			charset = NULL;
 		/*
 		 * A regular single-body article
 		 */
-		if (IS_PLAINTEXT(hdr->ext))
-			process_text_body_part(wrap_lines, artinfo->raw, hdr->ext, hide_uue, tabs);
-		else {
+		if (IS_PLAINTEXT(hdr->ext)) {
+			if (charset_unsupported(charset))
+				put_cooked(LEN, wrap_lines, C_ATTACH, _(txt_attach_unsup_charset), 0, "", charset);
+			else
+				process_text_body_part(wrap_lines, artinfo->raw, hdr->ext, hide_uue);
+		} else {
 			/*
 			 * Non-textual main body
 			 */
 			name = get_filename(hdr->ext->params);
-			if (!strcmp(content_types[hdr->ext->type], "text"))
-				charset = get_param(hdr->ext->params, "charset");
-			else
-				charset = NULL;
 			PUT_ATTACH(hdr->ext, 0, name, charset);
 		}
 	}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/curses.c tin-2.0.0/src/curses.c
--- tin-1.8.3/src/curses.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/curses.c	2011-04-17 17:40:55.760073217 +0200
@@ -3,7 +3,7 @@
  *  Module    : curses.c
  *  Author    : D. Taylor & I. Lea
  *  Created   : 1986-01-01
- *  Updated   : 2005-04-18
+ *  Updated   : 2011-04-17
  *  Notes     : This is a screen management library borrowed with permission
  *              from the Elm mail system. This library was hacked to provide
  *              what tin needs.
@@ -32,6 +32,7 @@
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) && defined(M_UNIX)
 #	define ReadWch cmdReadWch
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE && M_UNIX */
+#define get_arrow_key cmd_get_arrow_key
 
 void my_dummy(void) { }	/* ANSI C requires non-empty file */
 t_bool have_linescroll = TRUE;	/* USE_CURSES always allows line scrolling */
@@ -42,17 +43,6 @@ t_bool have_linescroll = TRUE;	/* USE_CU
 #	undef	sinix
 #endif /* !ns32000 */
 
-#ifdef VMS
-#	include <descrip.h>
-#	include <iodef.h>
-#	include <ssdef.h>
-#	include <dvidef.h>
-#	ifdef __GNUC__ /* M.St. 22.01.98 */
-#		include <vms/sys$routines.h>
-#		include <vms/lib$routines.h>
-#	endif /* __GNUC__ */
-#endif /* VMS */
-
 #define DEFAULT_LINES_ON_TERMINAL	24
 #define DEFAULT_COLUMNS_ON_TERMINAL	80
 
@@ -65,89 +55,39 @@ t_bool have_linescroll = FALSE;
 
 #define TTYIN	0
 
-#ifdef HAVE_CONFIG_H
-
-#	if defined(HAVE_TERMIOS_H) && defined(HAVE_TCGETATTR) && defined(HAVE_TCSETATTR)
-#		ifdef HAVE_IOCTL_H
-#			include <ioctl.h>
-#		else
-#			ifdef HAVE_SYS_IOCTL_H
-#				include <sys/ioctl.h>
-#			endif /* HAVE_SYS_IOCTL_H */
-#		endif /* HAVE_IOCTL_H */
-#		if !defined(sun) || !defined(NL0)
-#			include <termios.h>
-#		endif /* !sun || !NL0 */
-#		define USE_POSIX_TERMIOS 1
-#		define TTY struct termios
+#if defined(HAVE_TERMIOS_H) && defined(HAVE_TCGETATTR) && defined(HAVE_TCSETATTR)
+#	ifdef HAVE_IOCTL_H
+#		include <ioctl.h>
 #	else
-#		ifdef HAVE_TERMIO_H
-#			include <termio.h>
-#			define USE_TERMIO 1
-#			define TTY struct termio
-#		else
-#			ifdef HAVE_SGTTY_H
-#				include <sgtty.h>
-#				define USE_SGTTY 1
-#				define TTY struct sgttyb
+#		ifdef HAVE_SYS_IOCTL_H
+#			include <sys/ioctl.h>
+#		endif /* HAVE_SYS_IOCTL_H */
+#	endif /* HAVE_IOCTL_H */
+#	if !defined(sun) || !defined(NL0)
+#		include <termios.h>
+#	endif /* !sun || !NL0 */
+#	define USE_POSIX_TERMIOS 1
+#	define TTY struct termios
+#else
+#	ifdef HAVE_TERMIO_H
+#		include <termio.h>
+#		define USE_TERMIO 1
+#		define TTY struct termio
+#	else
+#		ifdef HAVE_SGTTY_H
+#			include <sgtty.h>
+#			define USE_SGTTY 1
+#			define TTY struct sgttyb
 /*
 	#			else
 	#				error "No termios.h, termio.h or sgtty.h found"
 */
-#			endif /* HAVE_SGTTY_H */
-#		endif /* HAVE_TERMIO_H */
-#	endif /* HAVE_TERMIOS_H && HAVE_TCGETATTR && HAVE_TCSETATTR */
+#		endif /* HAVE_SGTTY_H */
+#	endif /* HAVE_TERMIO_H */
+#endif /* HAVE_TERMIOS_H && HAVE_TCGETATTR && HAVE_TCSETATTR */
 
 static TTY _raw_tty, _original_tty;
 
-#else	/* FIXME: prune the non-autoconf'd stuff */
-
-#	if defined(COHERENT) || defined(BSD)
-#		ifdef BSD4_1
-#			include <termio.h>
-#			define USE_TERMIO 1
-#		else
-#			include <sgtty.h>
-#			define USE_SGTTY 1
-#		endif /* BSD4_1 */
-#	else
-#		if !defined(SYSV)
-#			ifdef MINIX
-#				include <sgtty.h>
-#				define USE_SGTTY 1
-#			else
-#				ifndef QNX42
-#					ifdef sinix
-#						include <termios.h>
-#						define USE_POSIX_TERMIOS 1
-#					else
-#						ifdef VMS
-#							include <curses.h>
-#						else
-#							include <termio.h>
-#							define USE_TERMIO 1
-#						endif /* VMS */
-#					endif /* sinix */
-#				endif /* !QNX42 */
-#			endif /* MINIX */
-#		endif /* !SYSV */
-#	endif /* COHERENT || BSD */
-
-#	ifndef VMS
-#		if defined(BSD) || defined(MINIX)
-#			define USE_SGTTY 1
-struct sgttyb _raw_tty, _original_tty;
-#		else
-#			if defined(HAVE_TERMIOS_H) || defined(sinix)
-#				define USE_POSIX_TERMIOS 1
-struct termios _raw_tty, _original_tty;
-#			else
-#				define USE_TERMIO 1
-struct termio _raw_tty, _original_tty;
-#			endif /* HAVE_TERMIOS_H || sinix */
-#		endif /* BSD || MINIX */
-#	endif /* !VMS */
-#endif /* HAVE_CONFIG_H */
 
 #ifndef USE_SGTTY
 #	define USE_SGTTY 0
@@ -167,7 +107,7 @@ static char *_clearscreen, *_moveto, *_c
 			*_scrollregion, *_scrollfwd, *_scrollback,
 			*_reset, *_reversevideo, *_blink, *_dim, *_bold;
 
-static int _columns, _line, _lines;
+static int _columns, _line, _lines, _colors;
 
 #ifdef M_UNIX
 #	undef SET_TTY
@@ -233,6 +173,9 @@ setup_screen(
 	ScreenSize(&cLINES, &cCOLS);
 	cmd_line = FALSE;
 	Raw(TRUE);
+#ifdef HAVE_COLOR
+	bcol(tinrc.col_back);
+#endif /* HAVE_COLOR */
 	set_win_size(&cLINES, &cCOLS);
 }
 
@@ -336,6 +279,7 @@ get_termcaps(
 		*(table[n].value) = TGETSTR(table[n].capname, &ptr);
 	}
 	_lines = TGETNUM(dCAPNAME("li", "lines"));
+	_colors = TGETNUM(dCAPNAME("Co", "colors"));
 	_columns = TGETNUM(dCAPNAME("co", "cols"));
 	_hp_glitch = TGETFLAG(dCAPNAME("xs", "xhp"));
 
@@ -401,7 +345,7 @@ InitScreen(
 {
 	InitWin();
 #	ifdef HAVE_COLOR
-	postinit_colors();
+	postinit_colors(MAX(_colors, MAX_COLOR + 1)); /* postinit_colors(_colors) would be correct */
 #	endif /* HAVE_COLOR */
 	return TRUE;
 }
@@ -427,11 +371,6 @@ InitScreen(
 	_clearunderline = "\033[0m";
 	_keypadlocal = "";
 	_keypadxmit = "";
-#	ifdef VMS
-	_cleartoeos = "\033[J";
-	_terminalinit = NULL;
-	_terminalend = "";
-#	endif /* VMS */
 	/* needed for word highlighting */
 	_reset = "\033[0m";
 	_reversevideo = "\033[7m";
@@ -450,80 +389,6 @@ InitScreen(
 	/*
 	 * If that failed, try get a response from the console itself
 	 */
-#	ifdef VMS /* moved from below InitWin() M.St. 22.01.98 */
-	{
-		int input_chan, status;
-		int item_code, eightbit;
-		struct sensemode {
-			short status;
-			unsigned char xmit_baud;
-			unsigned char rcv_baud;
-			unsigned char crfill;
-			unsigned char lffill;
-			unsigned char parity;
-			unsigned char unused;
-			char class;
-			char type;
-			short scr_wid;
-			unsigned long tt_char : 24, scr_len : 8;
-			unsigned long tt2_char;
-		} tty;
-		$DESCRIPTOR(input_dsc, "TT");
-
-		status = SYS$ASSIGN(&input_dsc, &input_chan, 0, 0);
-		if (!(status & 1))
-			LIB$STOP(status);
-		SYS$QIOW(0, input_chan, IO$_SENSEMODE, &tty, 0, 0, &tty.class, 12, 0, 0, 0, 0);
-		item_code = DVI$_TT_EIGHTBIT;
-		status = LIB$GETDVI(&item_code, &input_chan, 0, &eightbit, 0, 0);
-		_columns = tty.scr_wid;
-		_lines = tty.scr_len;
-
-		if (eightbit) { /* if using eightbit then use CSI (octal 233) rather than ESC "[" */
-			_clearscreen = "\2331;1H\233J";
-			_moveto = "\233%d;%dH"; /* not a termcap string! */
-			_cleartoeoln = "\233K";
-			_cleartoeos = "\233J";
-			_setinverse = "\2337m";
-			_clearinverse = "\2330m";
-			_setunderline = "\2334m";
-			_clearunderline = "\2330m";
-			_keypadlocal = "";
-			_keypadxmit = "";
-		} else {
-			_clearscreen = "\033[1;1H\033[J";
-			_moveto = "\033[%d;%dH";	/* not a termcap string! */
-			_cleartoeoln = "\033[K";
-			_cleartoeos = "\033[J";
-			_setinverse = "\033[7m";
-			_clearinverse = "\033[0m";
-			_setunderline = "\033[4m";
-			_clearunderline = "\033[0m";
-			_keypadlocal = "";
-			_keypadxmit = "";
-		}
-#		ifdef HAVE_IS_XTERM
-		if (is_xterm()) {
-			xclicks = TRUE;
-			if (!eightbit) {
-				_xclickinit = "\033[?9h";
-				_xclickend = "\033[?9l";
-			}
-#			if 0
-			else {
-				/*
-				 * These are the settings for a DECterm but the reply can't easily be parsed
-				 * Reply is of the form - CSI Pe ; Pb ; Pr ; Pc & w
-				 * Where Pe is the event, Pb the button, Pr and Pc the row and column
-				 */
-				_xclickinit = "\2331;2'z";
-				_xclickend = "\2330;0'z";
-			}
-#			endif /* 0 */
-		}
-#		endif /* HAVE_IS_XTERM */
-	}
-#	endif /* VMS */
 
 	if (_lines < MIN_LINES_ON_TERMINAL || _columns < MIN_COLUMNS_ON_TERMINAL) {
 		my_fprintf(stderr, _(txt_screen_too_small), tin_progname);
@@ -600,12 +465,29 @@ void
 ClearScreen(
 	void)
 {
+#ifdef HAVE_COLOR
+	fcol(tinrc.col_normal);
+	bcol(tinrc.col_back);
+#endif /* HAVE_COLOR */
 	tputs(_clearscreen, 1, outchar);
 	my_flush();		/* clear the output buffer */
 	_line = 1;
 }
 
 
+#ifdef HAVE_COLOR
+void
+reset_screen_attr(
+	void)
+{
+	if (!NO_CAP(_reset)) {
+		tputs(_reset, 1, outchar);
+		my_flush();
+	}
+}
+#endif /* HAVE_COLOR */
+
+
 /*
  *  move cursor to the specified row column on the screen.
  *  0,0 is the top left!
@@ -807,38 +689,28 @@ void
 Raw(
 	int state)
 {
-#ifdef VMS
-	if (!state && _inraw) {
-/*		vmsnoraw(); */
-		_inraw = 0;
-	} else if (state && !_inraw) {
-/*		vmsraw(); */
-		_inraw = 1;
-	}
-#else
 	if (!state && _inraw) {
 		SET_TTY(&_original_tty);
 		_inraw = 0;
 	} else if (state && !_inraw) {
 		GET_TTY(&_original_tty);
 		GET_TTY(&_raw_tty);
-#		if USE_SGTTY
+#if USE_SGTTY
 		_raw_tty.sg_flags &= ~(ECHO | CRMOD);	/* echo off */
 		_raw_tty.sg_flags |= CBREAK;		/* raw on */
-#		else
-#			ifdef __FreeBSD__
+#else
+#	ifdef __FreeBSD__
 		cfmakeraw(&_raw_tty);
 		_raw_tty.c_lflag |= ISIG;		/* for ^Z */
-#			else
+#	else
 		_raw_tty.c_lflag &= ~(ICANON | ECHO);	/* noecho raw mode */
 		_raw_tty.c_cc[VMIN] = '\01';	/* minimum # of chars to queue */
 		_raw_tty.c_cc[VTIME] = '\0';	/* minimum time to wait for input */
-#			endif /* __FreeBSD__ */
-#		endif /* USE_SGTTY */
+#	endif /* __FreeBSD__ */
+#endif /* USE_SGTTY */
 		SET_TTY(&_raw_tty);
 		_inraw = 1;
 	}
-#endif /* !VMS */
 }
 
 
@@ -953,8 +825,8 @@ highlight_string(
 	MoveCursor(row, col);
 	StartInverse();
 	my_fputs(output, stdout);
-	my_flush();
 	EndInverse();
+	my_flush();
 
 	stow_cursor();
 }
@@ -1070,6 +942,7 @@ word_highlight_string(
 			tputs(_reset, 1, outchar);
 	stow_cursor();
 }
+#endif /* USE_CURSES */
 
 
 /*
@@ -1083,6 +956,7 @@ input_pending(
 {
 #if 0
 	int ch;
+
 	nodelay(stdscr, TRUE);
 	if ((ch = getch()) != ERR)
 		ungetch(ch);
@@ -1153,17 +1027,16 @@ get_arrow_key(
 	while (!input_pending(0) \
 		&& i < ((VT_ESCAPE_TIMEOUT * 1000) / SECOND_CHARACTER_DELAY))
 
-#	ifndef VMS
 	if (!input_pending(0)) {
-#			ifdef HAVE_USLEEP
+#	ifdef HAVE_USLEEP
 		int i = 0;
 
 		wait_a_while(i) {
 			usleep((unsigned long) (SECOND_CHARACTER_DELAY * 1000));
 			i++;
 		}
-#			else	/* !HAVE_USLEEP */
-#				ifdef HAVE_SELECT
+#	else	/* !HAVE_USLEEP */
+#		ifdef HAVE_SELECT
 		struct timeval tvptr;
 		int i = 0;
 
@@ -1173,8 +1046,8 @@ get_arrow_key(
 			select(0, NULL, NULL, NULL, &tvptr);
 			i++;
 		}
-#				else /* !HAVE_SELECT */
-#					ifdef HAVE_POLL
+#		else /* !HAVE_SELECT */
+#			ifdef HAVE_POLL
 		struct pollfd fds[1];
 		int i = 0;
 
@@ -1182,15 +1055,14 @@ get_arrow_key(
 			poll(fds, 0, SECOND_CHARACTER_DELAY);
 			i++;
 		}
-#					else /* !HAVE_POLL */
+#			else /* !HAVE_POLL */
 		(void) sleep(1);
-#					endif /* HAVE_POLL */
-#				endif /* HAVE_SELECT */
-#			endif /* HAVE_USLEEP */
+#			endif /* HAVE_POLL */
+#		endif /* HAVE_SELECT */
+#	endif /* HAVE_USLEEP */
 		if (!input_pending(0))
 			return prech;
 	}
-#	endif /* !VMS */
 	ch = ReadCh();
 	if (ch == '[' || ch == 'O')
 		ch = ReadCh();
@@ -1293,7 +1165,6 @@ get_arrow_key(
 			return KEYMAP_UNKNOWN;
 	}
 }
-#endif /* USE_CURSES */
 
 
 /*
@@ -1388,7 +1259,7 @@ ReadWch(
 	allow_resize(TRUE);
 	while ((result = read(0, mbs, 1)) < 0 && errno == EINTR) { /* spin on signal interrupts */
 		if (need_resize) {
-			handle_resize((need_resize == cRedraw) ? TRUE :  FALSE);
+			handle_resize((need_resize == cRedraw) ? TRUE : FALSE);
 			need_resize = cNo;
 		}
 	}
@@ -1455,7 +1326,7 @@ ReadWch(
 			allow_resize(TRUE);
 			while ((result = read(0, mbs + 1, to_read)) < 0 && errno == EINTR) { /* spin on signal interrupts */
 				if (need_resize) {
-					handle_resize((need_resize == cRedraw) ? TRUE :  FALSE);
+					handle_resize((need_resize == cRedraw) ? TRUE : FALSE);
 					need_resize = cNo;
 				}
 			}
@@ -1479,6 +1350,7 @@ ReadWch(
 
 	/* FIXME: add support for other multi-byte charsets */
 
+	free(mbs);
 	return WEOF;
 }
 #	endif /* MULTIBYTE_ABLE && !NO_LOCALE */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/debug.c tin-2.0.0/src/debug.c
--- tin-1.8.3/src/debug.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/debug.c	2011-04-17 16:04:30.395064274 +0200
@@ -3,10 +3,10 @@
  *  Module    : debug.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-05-04
+ *  Updated   : 2011-04-12
  *  Notes     : debug routines
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -39,14 +39,11 @@
 #	include "tin.h"
 #endif /* !TIN_H */
 
-#if defined(DEBUG) || defined(DEBUG_NEWSRC)
+#ifdef DEBUG
 #	ifndef NEWSRC_H
 #		include "newsrc.h"
 #	endif /* !NEWSRC_H */
-#	ifndef TCURSES_H
-#		include "tcurses.h"
-#	endif /* !TCURSES_H */
-#endif /* DEBUG || DEBUG_NEWSRC */
+#endif /* DEBUG */
 
 int debug;
 
@@ -56,6 +53,7 @@ int debug;
  */
 static void debug_print_attributes(struct t_attribute *attr, FILE *fp);
 static void debug_print_filter(FILE *fp, int num, struct t_filter *the_filter);
+static void debug_print_newsrc(struct t_newsrc *NewSrc, FILE *fp);
 
 
 /*
@@ -68,59 +66,27 @@ debug_delete_files(
 	char file[PATH_LEN];
 
 	if (debug) {
-		joinpath(file, TMPDIR, "NNTP");
+		joinpath(file, sizeof(file), TMPDIR, "NNTP");
 		unlink(file);
-		joinpath(file, TMPDIR, "ARTS");
+		joinpath(file, sizeof(file), TMPDIR, "ARTS");
 		unlink(file);
-		joinpath(file, TMPDIR, "SAVE_COMP");
+		joinpath(file, sizeof(file), TMPDIR, "ACTIVE");
 		unlink(file);
-		joinpath(file, TMPDIR, "BASE");
+		joinpath(file, sizeof(file), TMPDIR, "BITMAP");
 		unlink(file);
-		joinpath(file, TMPDIR, "ACTIVE");
+		joinpath(file, sizeof(file), TMPDIR, "MALLOC");
 		unlink(file);
-		joinpath(file, TMPDIR, "BITMAP");
+		joinpath(file, sizeof(file), TMPDIR, "FILTER");
 		unlink(file);
-		joinpath(file, TMPDIR, "MALLOC");
+		joinpath(file, sizeof(file), TMPDIR, "ATTRIBUTES");
 		unlink(file);
-		joinpath(file, TMPDIR, "FILTER");
+		joinpath(file, sizeof(file), TMPDIR, "SCOPES");
 		unlink(file);
 	}
 }
 
 
 /*
- * nntp specific debug routines
- */
-void
-debug_nntp(
-	const char *func,
-	const char *fmt,
-	...)
-{
-	FILE *fp;
-	char *buf;
-	char file[PATH_LEN];
-	va_list ap;
-
-	if (!debug)
-		return;
-
-	va_start(ap, fmt);
-	buf = fmt_message(fmt, ap);
-
-	joinpath(file, TMPDIR, "NNTP");
-
-	if ((fp = fopen(file, "a+")) != NULL) {
-		fprintf(fp,"%s: %s\n", func, buf);
-		fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
-		fclose(fp);
-	}
-	free(buf);
-	va_end(ap);
-}
-
-
-/*
  * tin specific debug routines
  */
 void
@@ -129,7 +95,7 @@ debug_print_arts(
 {
 	int i;
 
-	if (debug != 2)
+	if (!(debug & DEBUG_FILTER))
 		return;
 
 	for_each_art(i)
@@ -144,10 +110,10 @@ debug_print_header(
 	FILE *fp;
 	char file[PATH_LEN];
 
-	if (debug != 2)
+	if (!(debug & DEBUG_FILTER))
 		return;
 
-	joinpath(file, TMPDIR, "ARTS");
+	joinpath(file, sizeof(file), TMPDIR, "ARTS");
 
 	if ((fp = fopen(file, "a+")) != NULL) {
 		fprintf(fp,"art=[%5ld] tag=[%s] kill=[%s] selected=[%s]\n", s->artnum,
@@ -168,7 +134,7 @@ debug_print_header(
 			if (s->archive->ispart)
 				fprintf(fp, "archive.ispart=[%s]\n", bool_unparse(s->archive->ispart));
 		}
-		fprintf(fp,"thread=[%d]  prev=[%d]  status=[%d]\n\n", s->thread, s->prev, s->status);
+		fprintf(fp,"thread=[%d]  prev=[%d]  status=[%u]\n\n", s->thread, s->prev, s->status);
 		fflush(fp);
 		fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
 		fclose(fp);
@@ -182,15 +148,16 @@ debug_print_active(
 {
 	FILE *fp;
 	char file[PATH_LEN];
-	int i;
-	struct t_group *group;
 
-	if (debug != 2)
+	if (!(debug & DEBUG_MISC))
 		return;
 
-	joinpath(file, TMPDIR, "ACTIVE");
+	joinpath(file, sizeof(file), TMPDIR, "ACTIVE");
 
 	if ((fp = fopen(file, "w")) != NULL) {
+		int i;
+		struct t_group *group;
+
 		for_each_group(i) {
 			group = &active[i];
 			fprintf(fp, "[%4d]=[%s] type=[%s] spooldir=[%s]\n",
@@ -199,12 +166,12 @@ debug_print_active(
 				group->spooldir);
 			fprintf(fp, "count=[%4ld] max=[%4ld] min=[%4ld] mod=[%c]\n",
 				group->count, group->xmax, group->xmin, group->moderated);
-			fprintf(fp, " nxt=[%4d] hash=[%ld]  description=[%s]\n", group->next,
+			fprintf(fp, " nxt=[%4d] hash=[%lu]  description=[%s]\n", group->next,
 				hash_groupname(group->name), BlankIfNull(group->description));
-#	ifdef DEBUG_NEWSRC
-			debug_print_newsrc(&group->newsrc, fp);
-#	endif /* DEBUG_NEWSRC */
-			debug_print_attributes(group->attribute, fp);
+			if (debug & DEBUG_NEWSRC)
+				debug_print_newsrc(&group->newsrc, fp);
+			if (debug & DEBUG_ATTRIB)
+				debug_print_attributes(group->attribute, fp);
 		}
 		fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
 		fclose(fp);
@@ -220,21 +187,21 @@ debug_print_attributes(
 	if (attr == 0)
 		return;
 
-	fprintf(fp, "global=[%d] show=[%d] thread=[%d] sort=[%d] author=[%d] auto_select=[%d] auto_save=[%d] batch_save=[%d] process=[%d]\n",
+	fprintf(fp, "global=[%u] show=[%u] thread=[%u] sort=[%u] author=[%u] auto_select=[%u] auto_save=[%u] batch_save=[%u] process=[%u]\n",
 		attr->global,
-		attr->show_only_unread,
-		attr->thread_arts,
-		attr->sort_art_type,
+		attr->show_only_unread_arts,
+		attr->thread_articles,
+		attr->sort_article_type,
 		attr->show_author,
 		attr->auto_select,
 		attr->auto_save,
 		attr->batch_save,
-		attr->post_proc_type);
-	fprintf(fp, "select_header=[%d] select_global=[%s] select_expire=[%s]\n",
+		attr->post_process_type);
+	fprintf(fp, "select_header=[%u] select_global=[%s] select_expire=[%s]\n",
 		attr->quick_select_header,
 		BlankIfNull(attr->quick_select_scope),
 		bool_unparse(attr->quick_select_expire));
-	fprintf(fp, "kill_header  =[%d] kill_global  =[%s] kill_expire  =[%s]\n",
+	fprintf(fp, "kill_header  =[%u] kill_global  =[%s] kill_expire  =[%s]\n",
 		attr->quick_kill_header,
 		BlankIfNull(attr->quick_kill_scope),
 		bool_unparse(attr->quick_kill_expire));
@@ -258,17 +225,14 @@ debug_print_malloc(
 {
 	FILE *fp;
 	char file[PATH_LEN];
-	static int total = 0;
+	static size_t total = 0;
 
-	if (debug == 4) {
-		joinpath(file, TMPDIR, "MALLOC");
+	if (debug & DEBUG_MEM) {
+		joinpath(file, sizeof(file), TMPDIR, "MALLOC");
 		if ((fp = fopen(file, "a+")) != NULL) {
 			total += size;
 			/* sometimes size_t is long */
-			if (is_malloc)
-				fprintf(fp, "%10s:%-4d Malloc  %6ld. Total %d\n", xfile, line, (long) size, total);
-			else
-				fprintf(fp, "%10s:%-4d Realloc %6ld. Total %d\n", xfile, line, (long) size, total);
+			fprintf(fp, "%12s:%-4d %s(%6lu). Total %lu\n", xfile, line, is_malloc ? " malloc" : "realloc", (unsigned long) size, (unsigned long) total);
 			fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
 			fclose(fp);
 		}
@@ -282,11 +246,11 @@ debug_print_filter(
 	int num,
 	struct t_filter *the_filter)
 {
-	fprintf(fp, "[%3d]  group=[%s] inscope=[%s] score=[%d] case=[%d] lines=[%d %d]\n",
+	fprintf(fp, "[%3d]  group=[%s] inscope=[%s] score=[%d] case=[%s] lines=[%d %d]\n",
 		num, BlankIfNull(the_filter->scope),
 		(the_filter->inscope ? "TRUE" : "FILTER"),
 		the_filter->score,
-		the_filter->icase,
+		the_filter->icase ? "C" : "I",
 		the_filter->lines_cmp, the_filter->lines_num);
 
 	fprintf(fp, "       subj=[%s] from=[%s] msgid=[%s]\n",
@@ -295,7 +259,7 @@ debug_print_filter(
 		BlankIfNull(the_filter->msgid));
 
 	if (the_filter->time)
-		fprintf(fp, "       time=[%ld][%s", the_filter->time, (the_filter->time ? ctime(&the_filter->time) : "]\n"));
+		fprintf(fp, "       time=[%ld][%s]\n", the_filter->time, BlankIfNull(str_trim(ctime(&the_filter->time))));
 }
 
 
@@ -308,10 +272,10 @@ debug_print_filters(
 	int i, num;
 	struct t_filter *the_filter;
 
-	if (debug < 2)
+	if (!(debug & DEBUG_FILTER))
 		return;
 
-	joinpath(file, TMPDIR, "FILTER");
+	joinpath(file, sizeof(file), TMPDIR, "FILTER");
 
 	if ((fp = fopen(file, "w")) != NULL) {
 		/*
@@ -332,41 +296,43 @@ debug_print_filters(
 }
 
 
-/* TODO: print out all fields of t_capabilities */
-#	ifdef NNTP_ABLE
-void
-debug_print_nntp_extensions(
-	void)
-{
-	if (debug < 2)
-		return;
-	debug_nntp("###", "NNTP EXTENSIONS/CAPABILITIES");
-	debug_nntp("###", "Type/Version : %d/%d", nntp_caps.type, nntp_caps.version);
-	debug_nntp("###", "Command-names: %s %s", BlankIfNull(nntp_caps.over_cmd), BlankIfNull(nntp_caps.hdr_cmd));
-	debug_nntp("###", "List         : %s", nntp_caps.list_motd ? "MOTD" : "");
-}
-#	endif /* NNTP_ABLE */
-#endif /* DEBUG */
-
-
-#ifdef DEBUG_NEWSRC
 void
-debug_print_comment(
-	const char *comment)
+debug_print_file(
+	const char *fname,
+	const char *fmt,
+	...)
 {
 	FILE *fp;
+	char *buf;
 	char file[PATH_LEN];
+	va_list ap;
 
-	if (debug < 2)
+	if (!debug)
 		return;
 
-	joinpath(file, TMPDIR, "BITMAP");
+	va_start(ap, fmt);
+	buf = fmt_message(fmt, ap);
+
+	joinpath(file, sizeof(file), TMPDIR, fname);
 
 	if ((fp = fopen(file, "a+")) != NULL) {
-		fprintf(fp,"\n%s\n", comment);
+		fprintf(fp,"%s\n", buf);
 		fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
 		fclose(fp);
 	}
+	free(buf);
+	va_end(ap);
+}
+
+
+void
+debug_print_comment(
+	const char *comment)
+{
+	if (!(debug & DEBUG_NEWSRC))
+		return;
+
+	debug_print_file("BITMAP", comment);
 }
 
 
@@ -378,34 +344,36 @@ debug_print_bitmap(
 	FILE *fp;
 	char file[PATH_LEN];
 
-	if (debug != 3)
+	if (!(debug & DEBUG_NEWSRC))
 		return;
 
-	joinpath(file, TMPDIR, "BITMAP");
-	if ((fp = fopen(file, "a+")) != NULL) {
-		fprintf(fp, "\nActive: Group=[%s] sub=[%c] min=[%ld] max=[%ld] count=[%ld] num_unread=[%ld]\n",
-			group->name, SUB_CHAR(group->subscribed),
-			group->xmin, group->xmax, group->count,
-			group->newsrc.num_unread);
-		if (art != NULL) {
-			fprintf(fp, "art=[%5ld] tag=[%s] kill=[%s] selected=[%s] subj=[%s]\n",
-				art->artnum,
-				bool_unparse(art->tagged),
-				bool_unparse(art->killed),
-				bool_unparse(art->selected),
-				art->subject);
-			fprintf(fp, "thread=[%d]  prev=[%d]  status=[%s]\n",
-				art->thread, art->prev,
-				(art->status == ART_READ ? "READ" : "UNREAD"));
+	joinpath(file, sizeof(file), TMPDIR, "BITMAP");
+	if (group != NULL) {
+		if ((fp = fopen(file, "a+")) != NULL) {
+			fprintf(fp, "\nActive: Group=[%s] sub=[%c] min=[%ld] max=[%ld] count=[%ld] num_unread=[%ld]\n",
+				group->name, SUB_CHAR(group->subscribed),
+				group->xmin, group->xmax, group->count,
+				group->newsrc.num_unread);
+			if (art != NULL) {
+				fprintf(fp, "art=[%5ld] tag=[%s] kill=[%s] selected=[%s] subj=[%s]\n",
+					art->artnum,
+					bool_unparse(art->tagged),
+					bool_unparse(art->killed),
+					bool_unparse(art->selected),
+					art->subject);
+				fprintf(fp, "thread=[%d]  prev=[%d]  status=[%s]\n",
+					art->thread, art->prev,
+					(art->status == ART_READ ? "READ" : "UNREAD"));
+			}
+			debug_print_newsrc(&group->newsrc, fp);
+			fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
+			fclose(fp);
 		}
-		debug_print_newsrc(&group->newsrc, fp);
-		fchmod(fileno(fp), (S_IRUGO|S_IWUGO));
-		fclose(fp);
 	}
 }
 
 
-void
+static void
 debug_print_newsrc(
 	struct t_newsrc *lnewsrc,
 	FILE *fp)
@@ -429,4 +397,4 @@ debug_print_newsrc(
 	fprintf(fp, "]\n");
 	fflush(fp);
 }
-#endif /* DEBUG_NEWSRC */
+#endif /* DEBUG */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/descrip.mms tin-2.0.0/src/descrip.mms
--- tin-1.8.3/src/descrip.mms	2005-06-28 10:31:22.000000000 +0200
+++ tin-2.0.0/src/descrip.mms	1970-01-01 01:00:00.000000000 +0100
@@ -1,318 +0,0 @@
-# Makefile for tin - for tin compiler flag options read INSTALL and README.
-#
-
-.IFDEF DEF_NNTP
-.ELSE
-# Edit the following line for your default nntp server.
-# Remark:
-# The environment variable NNTPSERVER will overwrite this option.
-DEF_NNTP = NNTP_DEFAULT_SERVER="""news.rrzn.uni-hannover.de"""
-.ENDIF
-
-#
-# The only tcp option currently supported is SOCKETSHR_TCP
-#
-.IFDEF TCP
-.ELSE
-#TCP = UCX
-TCP = SOCKETSHR_TCP
-.ENDIF
-
-.IFDEF ALPHA
-OS_STR  = OpenVMS/ALPHA
-.ENDIF
-
-.IFDEF VAX
-OS_STR  = OpenVMS/VAX
-.ENDIF
-
-.IFDEF OS_STR
-.ELSE
-.FIRST :
-        @ WRITE SYS$OUTPUT "   Please start MMS (or MMK) at least with following switches:"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   on OpenVMS/Alpha:"
-        @ WRITE SYS$OUTPUT "   $MMS /MACRO=(alpha=1)"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   on OpenVMS/Vax:"
-        @ WRITE SYS$OUTPUT "   $MMS /MACRO=(vax=1)"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   Another example:"
-        @ WRITE SYS$OUTPUT "   $MMS /MACRO=(vax=1,gnuc=1,tcp=socketshr_tcp)"
-        @ return 44  ! %SYSTEM-F-ABORT, abort
-
-.ENDIF
-
-
-DEF_OS   = OS="""$(OS_STR)"""
-DEFINES  = HAVE_ISPELL,DONT_HAVE_NNTP_EXTS,VMS,$(TCP),$(DEF_NNTP),$(DEF_OS)
-
-.IFDEF DEBUG
-DBG = /debug /nooptim
-LFLAGS = /debug/nomap
-TARGET = tin_debug$(EXE)
-TINLIB = TINDBG.OLB
-.ELSE # !DEBUG
-TARGET = tin$(EXE)
-TINLIB = TIN.OLB
-.IFDEF VAXC
-DBG = /optim
-.ELSE
-.IFDEF GNUC
-DBG = /optim=2
-.ELSE
-DBG = /optim
-#DBG = /nooptim
-.ENDIF
-.ENDIF
-
-.IFDEF VAXC
-CC = cc
-CDEFS = /include=([-.include],[-.vms],[-.PCRE])/define=($(DEFINES))/nowarning/list/show=expans
-GLOMOD = $(TINLIB)/LIBRARY/INCL=LANG,
-COMPILER = VAXC
-.ELSE
-.IFDEF  GNUC
-CC	= gcc
-CDEFS = /include=([-.include],[-.vms],[-.PCRE])/define=($(DEFINES))
-GLOMOD = $(TINLIB)/LIBRARY/INCL=LANG,
-COMPILER = GNUC
-.ELSE
-CC = cc/decc
-CDEFS = /include=([-.include],[-.vms],[-.PCRE])/define=($(DEFINES))/nowarning/list/show=expans
-COMPILER = DECC
-.ENDIF
-.ENDIF
-
-.IFDEF VAX
-GLOMOD = $(TINLIB)/LIBRARY/INCL=LANG,
-.ELSE
-GLOMOD =
-.ENDIF
-
-#CDEFS = /include=([-.include],[-.vms],[-.PCRE])/define=($(DEFINES))/nowarning/list/show=all
-
-LFLAGS = /nomap
-.ENDIF # !DEBUG
-
-.IFDEF VAXC
-OPTS    =
-.ELSE
-.IFDEF GNUC
-OPTS    =
-.ELSE
-#OPTS    = /warning=(disable=implicitfunc)/prefix=all
-OPTS    = /prefix=(all,except=ENDWIN)
-#OPTS    = /prefix=all
-.ENDIF
-.ENDIF
-
-CFLAGS = $(DBG) $(OPTS) $(CDEFS)
-
-LIBS    = [-.vms]libvms/libr,[-.pcre]pcrelib/libr
-INCDIR  = [-.include]
-
-.IFDEF BISON
-YACC = bison/fixed
-YACCOUTPUT = y_tab.c
-.ELSE
-.IFDEF POSIX
-YACC = POSIX/Run/Path=POSIX "/bin/yacc"
-YACCOUTPUT = ytab.c
-.ELSE
-YACC = yacc
-YACCOUTPUT = ytab.c
-.ENDIF
-.ENDIF
-
-MODULES = active, art, attrib, -
-          charset, config, curses, debug, -
-	  envarg, feed, filter, getline, group, hashstr, -
-          help, inews, init, lang, list, mail, main, -
-          memory, misc, newsrc, nntplib, -
-          open, page, pgp, post, prompt, -
-          save, screen, search, select, sigfile, signal, -
-          strftime, thread, wildmat, -
-          xref, -
-          rfc1522, rfc1521, string, header, -
-          nrctbl, read, refs, regex, auth
-
-CFILES = $(MODULES:=.c)
-OFILES = $(CFILES:.c=.obj)
-#HFILES  = $(INCDIR)config.h, $(INCDIR)tin.h, $(INCDIR)extern.h, $(INCDIR)nntplib.h, \
-#          $(INCDIR)proto.h, $(INCDIR)stpwatch.h, \
-#          $(INCDIR)os_2.h, $(INCDIR)win32.h
-HFILES   = $(INCDIR)tin.h
-TNNTP	 = $(INCDIR)tnntp.h
-
-all : opt pcrelib vmslib  tincfg.h tin
-    continue
-
-#
-# The MMS target opt is only for creating the right linker options file.
-# With GNUC and DECC on both VAX and ALPHA and different TCP stacks the
-# ammount of different option files with mostly identical lines would be
-# very large.
-#
-opt :
-	@ write sys$output "Creating linker options file on ''OS_STR' for ''TCP' with ''COMPILER'"
-	@ open/write optfile [-.vms]tin.opt
-        @ write optfile "!Options file for tin pre-1.4 on ''OS_STR' for ''TCP' with ''COMPILER'"
-	@ if ("$(TCP)" .eqs. "SOCKETSHR_TCP") then write optfile "!Using Socketshr TCP/IP"
-	@ if ("$(TCP)" .eqs. "SOCKETSHR_TCP") then write optfile "socketshr/share"
-.ifdef VAXC
-        @ write optfile "!VAXC options"
-        @ write optfile "sys$share:vaxcrtl/share"
-.else
-.ifdef GNUC
-        @ write optfile "!GNUC options"
-.ifdef VAX
-        @ write optfile "gnu_cc:[000000]gcclib/libr"
-.else
-        @ write optfile "gnu_cc_library:libgcc/libr"
-.endif
-        @ write optfile "sys$share:vaxcrtl/share"
-.else
-	@ write optfile "!DECC options"
-.endif
-.endif
-        @ write optfile "sys$library:decw$dwtlibshr/share"
-        @ write optfile "sys$library:decw$xlibshr/share"
-        @ write optfile "sys$library:vaxccurse/libr"
-.ifdef GNUC
-.ifdef ALPHA
-        @ write optfile "gnu_cc_library:crt0.obj"
-.endif
-.endif
-	@ close optfile
-
-
-tin : $(TINLIB)($(MODULES))
-    link $(LFLAGS) /exec=$(TARGET) $(TINLIB)/LIBRARY/INCL=MAIN,$(GLOMOD) -
-        [-.vms]tin.opt/option, $(LIBS)
-
-vmslib :
-    set def [-.vms]
-    @ if f$getsyi("VERSION") .lts. "V6.2" then -
-	modules = "vms,vmsdir,vmspwd,vmsfile,parse,parsdate,getopt,getopt1,getpass,qsort,isxterm"
-    @ if f$getsyi("VERSION") .ges. "V6.2" then -
-        modules = "vms,vmsdir,vmspwd,vmsfile,parse,parsdate,getpass,qsort,isxterm"
-    mms /description=libvms.mms $(MMSQUALIFIERS) $(MMSTARGETS)
-    set def [-.src]
-
-pcrelib :
-    set def [-.pcre]
-    mms /description=pcre.mms $(MMSQUALIFIERS) $(MMSTARGETS)
-    set def [-.src]
-
-tincfg.h :	makecfg.exe
-	CURRENT_OUTPUT = f$trnlnm("SYS$OUTPUT")
-	PROG_NAME = f$search("makecfg.exe")
-	DEFINE SYS$OUTPUT tincfg.h
-	mc 'PROG_NAME' TINCFG.TBL
-	DEASS SYS$OUTPUT
-	DEFINE SYS$OUTPUT 'CURRENT_OUTPUT'           !nun wieder aufs Terminal
-
-makecfg.exe : makecfg.obj
-    link $(LFLAGS) /exec=makecfg.exe makecfg.obj,[-.vms]tin.opt/option
-
-active.obj :    active.c, $(HFILES)
-actived.obj :   actived.c, $(HFILES)
-art.obj :       art.c, $(HFILES), $(INCDIR)stpwatch.h
-attrib.obj :    attrib.c, $(HFILES)
-charset.obj :   charset.c, $(HFILES)
-config.obj :    config.c, $(HFILES)
-curses.obj :    curses.c, $(HFILES)
-tcurses.obj :    tcurses.c, $(HFILES)
-debug.obj :     debug.c, $(HFILES)
-envarg.obj :    envarg.c, $(HFILES)
-feed.obj :      feed.c, $(HFILES)
-filter.obj :    filter.c, $(HFILES)
-getline.obj :   getline.c, $(HFILES)
-group.obj :     group.c, $(HFILES)
-hashstr.obj :   hashstr.c, $(HFILES)
-help.obj :      help.c, $(HFILES)
-inews.obj :     inews.c, $(TNNTP),$(HFILES)
-init.obj :      init.c, $(TNNTP), $(HFILES)
-lang.obj :      lang.c, $(HFILES)
-list.obj :      list.c, $(HFILES)
-mail.obj :      mail.c, $(HFILES)
-main.obj :      main.c, $(HFILES)
-makecfg.obj :   makecfg.c, $(HFILES)
-memory.obj :    memory.c, $(HFILES)
-misc.obj :      misc.c, $(HFILES)
-msmail.obj :    msmail.c, $(HFILES)
-newsrc.obj :    newsrc.c, $(HFILES)
-nntplib.obj :   nntplib.c, $(TNNTP), $(HFILES)
-nntpw32.obj :   nntpw32.c, $(HFILES)
-open.obj :      open.c, $(HFILES)
-os_2.obj :      os_2.c, $(HFILES), $(INCDIR)os_2.h
-page.obj :      page.c, $(HFILES)
-parsdate.obj :  parsdate.c, $(HFILES)
-post.obj :      post.c, $(HFILES)
-prompt.obj :    prompt.c, $(HFILES)
-save.obj :      save.c, $(HFILES)
-screen.obj :    screen.c, $(HFILES)
-search.obj :    search.c, $(HFILES)
-select.obj :    select.c, $(HFILES)
-sigfile.obj :   sigfile.c, $(HFILES)
-signal.obj :    signal.c, $(HFILES)
-strftime.obj :  strftime.c, $(HFILES)
-thread.obj :    thread.c, $(HFILES)
-wildmat.obj :   wildmat.c, $(HFILES)
-win32.obj :     win32.c, $(HFILES)
-xref.obj :      xref.c, $(HFILES)
-vms.obj :       vms.c, $(HFILES)
-rfc1522.obj :       rfc1522.c, $(HFILES)
-rfc1521.obj :       rfc1521.c, $(HFILES)
-string.obj :        string.c, $(HFILES)
-header.obj :        header.c, $(TNNTP), $(HFILES)
-nrctbl.obj :        nrctbl.c, $(HFILES)
-read.obj :        read.c, $(HFILES)
-refs.obj :        refs.c, $(HFILES)
-regex.obj :        regex.c, $(HFILES)
-auth.obj :        auth.c, $(HFILES)
-
-parsdate.c : parsdate.y
-    $(YACC) $?
-    rename/log $(YACCOUTPUT) $@
-
-clean : vmslib pcrelib
-    @- WRITE SYS$OUTPUT "Cleaning tin directory"
-    @- if f$search("*.obj;*") .nes. "" then Delete/Log *.obj;*
-    @- if f$search("*.lis;*") .nes. "" then Delete/Log *.lis;*
-    @- if f$search("makecfg.exe;*") .nes. "" then Delete/Log makecfg.exe;*
-    @- if f$search("tincfg.h;*") .nes. "" then Delete/Log tincfg.h;*
-    @- if f$search("tin.*;*") .nes. "" then Delete/Log tin.*;*
-    @- !Delete/Log parsdate.c;*
-
-
-
-.IFDEF VAXC
-
-.IFDEF MULTINET
-.FIRST :
-    Define SYS 		Multinet_Common_Root:[Multinet.Include.Sys],Sys$Library
-    Define VAXC$INCLUDE	Multinet_Common_Root:[Multinet.Include.Sys],Sys$Library
-.ELSE
-.FIRST :
-    Define SYS 		Sys$Library
-    Define VAXC$INCLUDE	Sys$Library
-.ENDIF
-
-.LAST :
-    deassign sys
-    deassing vaxc$include
-
-.ELSE
-.IFDEF GNUC
-
-.FIRST :
-   define sys sys$share
-
-.LAST :
-    deassign sys
-
-.ENDIF
-.ENDIF
-
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/envarg.c tin-2.0.0/src/envarg.c
--- tin-1.8.3/src/envarg.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/envarg.c	2011-04-17 16:04:30.419067928 +0200
@@ -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-2011 Bill Davidson
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/feed.c tin-2.0.0/src/feed.c
--- tin-1.8.3/src/feed.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/feed.c	2011-04-17 16:04:30.743117242 +0200
@@ -3,10 +3,10 @@
  *  Module    : feed.c
  *  Author    : I. Lea
  *  Created   : 1991-08-31
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-03-25
  *  Notes     : provides same interface to mail,pipe,print,save & repost commands
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -53,6 +53,7 @@ static t_bool supersede = FALSE;		/* for
 static t_function pproc_func;			/* Post-processing type when saving */
 #ifndef DONT_HAVE_PIPING
 	static FILE *pipe_fp = (FILE *) 0;
+	static t_bool got_epipe = FALSE;
 #endif /* !DONT_HAVE_PIPING */
 
 
@@ -66,6 +67,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, size_t outpath_len, 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);
@@ -75,9 +77,9 @@ static void print_save_summary(t_functio
 #endif /* !DISABLE_PRINTING */
 
 #ifndef DONT_HAVE_PIPING
-#	define handle_SIGPIPE()	if (got_sig_pipe) goto got_sig_pipe_while_piping
+#	define handle_EPIPE()	if (got_epipe) goto got_epipe_while_piping
 #else
-#	define handle_SIGPIPE() /*nothing*/
+#	define handle_EPIPE() /*nothing*/
 #endif /* !DONT_HAVE_PIPING */
 
 /*
@@ -101,7 +103,7 @@ get_save_filename(
 	/*
 	 * Group attribute savefile overrides tinrc default savefile
 	 */
-	strncpy(default_savefile, (group->attribute->savefile ? group->attribute->savefile : tinrc.default_save_file), sizeof(default_savefile) - 1);
+	my_strncpy(default_savefile, (group->attribute->savefile ? group->attribute->savefile : tinrc.default_save_file), sizeof(default_savefile) - 1);
 
 	/*
 	 * We don't ask when auto'S'aving or Archive-Name saving with auto_save
@@ -115,15 +117,11 @@ get_save_filename(
 	}
 
 	/*
-	 * Update attribute/tinrc default savefiles if changed
+	 * Update tinrc.default_save_file if changed
 	 */
-	if (*filename) {
-		if (group->attribute->savefile) {
-			free(group->attribute->savefile);
-			group->attribute->savefile = my_strdup(filename);
-		}
+	if (*filename)
 		my_strncpy(tinrc.default_save_file, filename, sizeof(tinrc.default_save_file) - 1);
-	} else {									/* No file was specified, try default */
+	else {
 		/*
 		 * None chosen (or AUTOSAVING), use tinrc default
 		 */
@@ -147,6 +145,36 @@ 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,
+	size_t outpath_len,
+	const char *path)
+{
+	int ret = strfpath(path, outpath, PATH_LEN, curr_group, TRUE);
+
+	/*
+	 * 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(cmdline.args & CMDLINE_SAVEDIR ? cmdline.savedir : curr_group->attribute->savedir, buf, sizeof(buf), curr_group, FALSE))
+			joinpath(buf, sizeof(buf), homedir, DEFAULT_SAVEDIR);
+		joinpath(outpath, outpath_len, 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
@@ -161,7 +189,7 @@ get_post_proc_type(
 	char keyshar[MAXKEYLEN];
 	t_function default_func, func;
 
-	switch (curr_group->attribute->post_proc_type) {
+	switch (curr_group->attribute->post_process_type) {
 		case POST_PROC_YES:
 			default_func = POSTPROCESS_YES;
 			break;
@@ -214,6 +242,11 @@ get_feed_key(
 			prompt = txt_mail;
 			break;
 
+		case FEED_MARK_READ:
+		case FEED_MARK_UNREAD:
+			prompt = txt_mark;
+			break;
+
 #ifndef DONT_HAVE_PIPING
 		case FEED_PIPE:
 			prompt = txt_pipe;
@@ -248,7 +281,8 @@ get_feed_key(
 	 * Try and work out what default the user wants
 	 * thread->total = # arts in thread
 	 */
-	default_func = (num_of_tagged_arts ? FEED_TAGGED :
+	default_func = (range_active ? FEED_RANGE :
+					num_of_tagged_arts ? FEED_TAGGED :
 					(arts_selected() ? FEED_HOT :
 					((level == GROUP_LEVEL && thread->total > 1) ? FEED_THREAD :
 					(thread->selected_total ? FEED_HOT :
@@ -259,17 +293,18 @@ get_feed_key(
 	 *  auto'S'aving and there are tagged or selected(hot) articles
 	 *  using the auto_save feature on Archive postings
 	 */
-	if ((function == FEED_AUTOSAVE && (num_of_tagged_arts || arts_selected())) ||
-			(group->attribute->auto_save && arts[respnum].archive))
+	if ((function == FEED_AUTOSAVE && (range_active || num_of_tagged_arts || arts_selected()))
+			|| (function == FEED_SAVE && group->attribute->auto_save && arts[respnum].archive))
 		func = default_func;
 	else {
 		char buf[LEN];
-		char keyart[MAXKEYLEN], keythread[MAXKEYLEN], keyhot[MAXKEYLEN];
+		char keyart[MAXKEYLEN], keythread[MAXKEYLEN], keyrange[MAXKEYLEN], keyhot[MAXKEYLEN];
 		char keypat[MAXKEYLEN], keytag[MAXKEYLEN], keyquit[MAXKEYLEN];
 
 		snprintf(buf, sizeof(buf), _(txt_art_thread_regex_tag),
 			printascii(keyart, func_to_key(FEED_ARTICLE, feed_type_keys)),
 			printascii(keythread, func_to_key(FEED_THREAD, feed_type_keys)),
+			printascii(keyrange, func_to_key(FEED_RANGE, feed_type_keys)),
 			printascii(keyhot, func_to_key(FEED_HOT, feed_type_keys)),
 			printascii(keypat, func_to_key(FEED_PATTERN, feed_type_keys)),
 			printascii(keytag, func_to_key(FEED_TAGGED, feed_type_keys)),
@@ -291,6 +326,15 @@ get_feed_key(
 			}
 			break;
 
+		case FEED_RANGE:
+			if (!range_active) {
+				if (set_range(level, 1, currmenu->max, currmenu->curr + 1))
+					range_active = TRUE;
+				else
+					return GLOBAL_ABORT;
+			}
+			break;
+
 		case GLOBAL_QUIT:
 		case GLOBAL_ABORT:
 			clear_message();
@@ -440,10 +484,26 @@ feed_article(
 			confirm = bool_not(ok);		/* Only confirm the next one after a failure */
 			break;
 
+		case FEED_MARK_READ:
+			if (arts[art].status == ART_UNREAD || arts[art].status == ART_WILL_RETURN)
+				art_mark(curr_group, &arts[art], ART_READ);
+			else
+				ok = FALSE;
+			break;
+
+		case FEED_MARK_UNREAD:
+			if (arts[art].status == ART_READ)
+				art_mark(curr_group, &arts[art], ART_WILL_RETURN);
+			else
+				ok = FALSE;
+			break;
+
 #ifndef DONT_HAVE_PIPING
 		case FEED_PIPE:
 			rewind(openartptr->raw);
-			ok = copy_fp(openartptr->raw, pipe_fp);	/* Check for SIGPIPE on return */
+			ok = copy_fp(openartptr->raw, pipe_fp);
+			if (errno == EPIPE)	/* broken pipe in copy_fp() */
+				got_epipe = TRUE;
 			break;
 #endif /* !DONT_HAVE_PIPING */
 
@@ -456,6 +516,8 @@ feed_article(
 		case FEED_SAVE:
 		case FEED_AUTOSAVE:
 			ok = save_and_process_art(openartptr, &arts[art], is_mailbox, data /*filename*/, counter->max, (pproc_func != POSTPROCESS_NO));
+			if (ok && curr_group->attribute->mark_saved_read)
+				art_mark(curr_group, &arts[art], ART_READ);
 			break;
 
 		case FEED_REPOST:
@@ -471,14 +533,6 @@ feed_article(
 	if (ok)
 		counter->success++;
 
-	/*
-	 * Mark read for the SAVE cases (but not print/pipe etc..)
-	 */
-	if (function == FEED_SAVE || function == FEED_AUTOSAVE) {
-		if (ok && tinrc.mark_saved_read)
-			art_mark(curr_group, &arts[art], ART_READ);
-	}
-
 	if (!use_current)
 		art_close(openartptr);
 	return ok;
@@ -489,15 +543,18 @@ feed_article(
  * Single entry point for 'feed'ing article(s) to a backend
  * Function:
  *	FEED_PIPE, FEED_MAIL, FEED_PRINT, FEED_REPOST
- *	FEED_SAVE, FEED_AUTOSAVE
+ *	FEED_SAVE, FEED_AUTOSAVE, FEED_MARK_READ, FEED_MARK_UNREAD
  * Level:
  *	GROUP_LEVEL, THREAD_LEVEL, PAGE_LEVEL
+ * Type:
+ *  default feed_type; if NOT_ASSIGNED, query what to do
  * Respnum:
  *	Index in arts[] of starting article
  *
  * The following 'groups' of article can be processed:
  *	Single (current) article
  *	Current thread
+ *	Range of articles
  *	Tagged articles
  *	Hot articles
  *	Articles matching a pattern
@@ -505,11 +562,17 @@ feed_article(
  * The selection of Function depends on the key used to get here.
  * The selection of which article 'group' to process is managed
  * inside here, or by defaults.
+ *
+ * Returns:
+ *   1	if there are no more unread arts in this group (FEED_MARK_READ)
+ *   0	on success
+ *  -1	on failure/abort
  */
-void
+int
 feed_articles(
 	int function,
 	int level,
+	t_function type,
 	struct t_group *group,
 	int respnum)
 {
@@ -521,23 +584,25 @@ feed_articles(
 	int thread_base;
 	struct t_art_stat sbuf;
 	struct t_counters counter = { 0, 0, 0 };
-	t_bool use_current = FALSE;
-	t_bool ret1 = FALSE;
+	t_bool feed_mark_function = function == FEED_MARK_READ || function == FEED_MARK_UNREAD;
+	t_bool mark_saved = FALSE;
+	t_bool no_next_unread = FALSE;
 	t_bool post_processed_ok = FALSE;
+	t_bool use_current = FALSE;
 	t_function feed_type;
 
 #ifdef DONT_HAVE_PIPING
 	if (function == FEED_PIPE) {
-		error_message(_(txt_piping_not_enabled));
+		error_message(2, _(txt_piping_not_enabled));
 		clear_message();
-		return;
+		return -1;
 	}
 #endif /* DONT_HAVE_PIPING */
 
 	if (function == FEED_AUTOSAVE) {
-		if (num_of_tagged_arts == 0 && !arts_selected()) {
+		if (!range_active && num_of_tagged_arts == 0 && !arts_selected()) {
 			info_message(_(txt_no_marked_arts));
-			return;
+			return -1;
 		}
 	}
 
@@ -545,8 +610,18 @@ feed_articles(
 	thread_base = which_thread(respnum);
 	stat_thread(thread_base, &sbuf);
 
-	if ((feed_type = get_feed_key(function, level, group, &sbuf, respnum)) == GLOBAL_ABORT)
-		return;
+	switch (type) {
+		case FEED_ARTICLE:
+		case FEED_THREAD:
+		case FEED_RANGE:
+			feed_type = type;
+			break;
+
+		default:
+			if ((feed_type = get_feed_key(function, level, group, &sbuf, respnum)) == GLOBAL_ABORT)
+				return -1;
+			break;
+	}
 
 	/*
 	 * Get whatever information is needed to proceed
@@ -557,7 +632,7 @@ feed_articles(
 			prompt = fmt_string(_(txt_mail_art_to), cCOLS - (strlen(_(txt_mail_art_to)) + 30), tinrc.default_mail_address);
 			if (!(prompt_string_default(prompt, tinrc.default_mail_address, _(txt_no_mail_address), HIST_MAIL_ADDRESS))) {
 				free(prompt);
-				return;
+				return -1;
 			}
 			free(prompt);
 			break;
@@ -568,19 +643,21 @@ feed_articles(
 			prompt = fmt_string(_(txt_pipe_to_command), cCOLS - (strlen(_(txt_pipe_to_command)) + 30), tinrc.default_pipe_command);
 			if (!(prompt_string_default(prompt, tinrc.default_pipe_command, _(txt_no_command), HIST_PIPE_COMMAND))) {
 				free(prompt);
-				return;
+				return -1;
 			}
 			free(prompt);
 
-			got_sig_pipe = FALSE;
+			got_epipe = FALSE;
 			EndWin(); /* Turn off curses/windowing */
 			Raw(FALSE);
 			fflush(stdout);
+			set_signal_catcher(FALSE);
 			if ((pipe_fp = popen(tinrc.default_pipe_command, "w")) == NULL) {
 				perror_message(_(txt_command_failed), tinrc.default_pipe_command);
+				set_signal_catcher(TRUE);
 				Raw(TRUE);
 				InitWin();
-				return;
+				return -1;
 			}
 			break;
 #endif /* !DONT_HAVE_PIPING */
@@ -607,9 +684,9 @@ feed_articles(
 				savefile[0] = '\0';
 
 				if (get_save_filename(group, function, savefile, sizeof(savefile), respnum) == NULL)
-					return;
+					return -1;
 
-				switch (curr_group->attribute->post_proc_type) {
+				switch (curr_group->attribute->post_process_type) {
 					case POST_PROC_YES:
 						pproc_func = POSTPROCESS_YES;
 						break;
@@ -625,14 +702,14 @@ feed_articles(
 				}
 
 				/* We don't postprocess mailboxen */
-				if ((is_mailbox = expand_save_filename(outpath, savefile)) == TRUE)
+				if ((is_mailbox = expand_feed_filename(outpath, sizeof(outpath), savefile)) == TRUE)
 					pproc_func = POSTPROCESS_NO;
 				else {
 					if (function != FEED_AUTOSAVE && (pproc_func = get_post_proc_type()) == GLOBAL_ABORT)
-						return;
+						return -1;
 				}
 				if (!create_path(outpath))
-					return;
+					return -1;
 			}
 			break;
 
@@ -676,7 +753,7 @@ feed_articles(
 
 						default:
 							clear_message();
-							return;
+							return -1;
 					}
 #ifndef FORGERY
 				} else {
@@ -686,7 +763,7 @@ feed_articles(
 #endif /* !FORGERY */
 				if (!(prompt_string_default(tmp, tinrc.default_repost_group, _(txt_no_group), HIST_REPOST_GROUP))) {
 					free(tmp);
-					return;
+					return -1;
 				}
 				free(tmp);
 			}
@@ -702,8 +779,9 @@ feed_articles(
 	/*
 	 * Performance hack - If we feed a single art from the pager then we can
 	 * re-use the currently open article
+	 * Also no need to fetch articles just to mark them (un)read
 	 */
-	if (level == PAGE_LEVEL && feed_type == FEED_ARTICLE) {
+	if (feed_mark_function || (level == PAGE_LEVEL && (feed_type == FEED_ARTICLE || feed_type == FEED_THREAD))) {
 		saved_curr_line = curr_line;		/* Save where we were in pager */
 		use_current = TRUE;
 	}
@@ -716,25 +794,42 @@ feed_articles(
 		case FEED_ARTICLE:		/* article */
 			counter.max = 1;
 			if (!feed_article(respnum, function, &counter, use_current, outpath, group))
-				handle_SIGPIPE();
+				handle_EPIPE();
 			break;
 
 		case FEED_THREAD:		/* thread */
 			/* Get accurate count first */
 			for_each_art_in_thread(art, which_thread(respnum)) {
-				if (!(tinrc.process_only_unread && arts[art].status == ART_READ))
+				if (feed_mark_function || !(curr_group->attribute->process_only_unread && arts[art].status == ART_READ))
 					counter.max++;
 			}
 
 			for_each_art_in_thread(art, which_thread(respnum)) {
-				if (!(tinrc.process_only_unread && arts[art].status == ART_READ)) {
+				if (feed_mark_function || !(curr_group->attribute->process_only_unread && arts[art].status == ART_READ)) {
 					/* Keep going - don't abort on errors */
 					if (!feed_article(art, function, &counter, use_current, outpath, group))
-						handle_SIGPIPE();
+						handle_EPIPE();
 				}
 			}
 			break;
 
+		case FEED_RANGE:
+			/* Get accurate count first */
+			for_each_art(art) {
+				if (arts[art].inrange)
+					counter.max++;
+			}
+
+			for_each_art(art) {
+				if (arts[art].inrange) {
+					arts[art].inrange = FALSE;
+					if (!feed_article(art, function, &counter, use_current, outpath, group))
+						handle_EPIPE();
+				}
+			}
+			range_active = FALSE;
+			break;
+
 		case FEED_TAGGED:		/* tagged articles */
 			counter.max = num_of_tagged_arts;
 			for (i = 1; i <= num_of_tagged_arts; i++) {
@@ -743,7 +838,7 @@ feed_articles(
 					if (arts[art].tagged == i) {
 						/* Keep going - don't abort on errors */
 						if (!feed_article(art, function, &counter, use_current, outpath, group))
-							handle_SIGPIPE();
+							handle_EPIPE();
 					}
 				}
 			}
@@ -765,7 +860,7 @@ feed_articles(
 					} else if (!arts[art].selected)
 						continue;
 
-					if (tinrc.process_only_unread && arts[art].status == ART_READ)
+					if (!feed_mark_function && (curr_group->attribute->process_only_unread && arts[art].status == ART_READ))
 						continue;
 
 					arts[art].matched = TRUE;
@@ -790,7 +885,7 @@ feed_articles(
 						if (feed_type == FEED_HOT)
 							arts[art].selected = FALSE;
 					} else
-						handle_SIGPIPE();
+						handle_EPIPE();
 				}
 			}
 			break;
@@ -807,17 +902,35 @@ feed_articles(
 		redraw_screen |= mail_check();	/* in case of sending to oneself */
 
 	switch (function) {
+		case FEED_MARK_READ:
+		case FEED_MARK_UNREAD:
+			redraw_screen = FALSE;
+			if (level == GROUP_LEVEL) {
+				no_next_unread = group_mark_postprocess(function, feed_type, respnum);
+				break;
+			}
+			if (level == THREAD_LEVEL)
+				no_next_unread = thread_mark_postprocess(function, feed_type, respnum);
+			break;
+
 #ifndef DONT_HAVE_PIPING
 		case FEED_PIPE:
-got_sig_pipe_while_piping:
-			if (got_sig_pipe)
+got_epipe_while_piping:
+			if (got_epipe)
 				perror_message(_(txt_command_failed), tinrc.default_pipe_command);
-			got_sig_pipe = FALSE;
+			got_epipe = FALSE;
 			fflush(pipe_fp);
 			(void) pclose(pipe_fp);
+			set_signal_catcher(TRUE);
+#	ifdef USE_CURSES
 			Raw(TRUE);
 			InitWin();
+#	endif /* USE_CURSES */
 			prompt_continue();
+#	ifndef USE_CURSES
+			Raw(TRUE);
+			InitWin();
+#	endif /* !USE_CURSES */
 			redraw_screen = TRUE;
 			break;
 #endif /* !DONT_HAVE_PIPING */
@@ -844,19 +957,19 @@ got_sig_pipe_while_piping:
 				post_processed_ok = post_process_files(pproc_func, delete_post_proc);
 			}
 			free_save_array();		/* NB: This is where num_save etc.. gets purged */
+
+			if (level != PAGE_LEVEL)
+				mark_saved = curr_group->attribute->mark_saved_read;
 			break;
 
 		default:
 			break;
 	}
 
-	if (level != PAGE_LEVEL)
-		ret1 = tinrc.mark_saved_read;
-
-	if (ret1 || post_processed_ok)
+	if (mark_saved || post_processed_ok)
 		redraw_screen = TRUE;
 
-	if (level == PAGE_LEVEL) {
+	if (level == PAGE_LEVEL && !feed_mark_function) {
 		if (tinrc.force_screen_redraw)
 			redraw_screen = TRUE;
 
@@ -888,6 +1001,27 @@ got_sig_pipe_while_piping:
 				info_message(_(txt_articles_mailed), counter.success, PLURAL(counter.success, txt_article));
 			break;
 
+		case FEED_MARK_READ:
+		case FEED_MARK_UNREAD:
+			if (no_next_unread)
+				info_message(_(txt_no_next_unread_art));
+			else {
+				if (counter.success && level != PAGE_LEVEL) {
+					const char *ptr;
+
+					ptr = function == FEED_MARK_READ ? _(txt_marked_as_read) : _(txt_marked_as_unread);
+					if (feed_type == FEED_THREAD) {
+						info_message(ptr, _(txt_thread_upper));
+					} else if (feed_type == FEED_ARTICLE) {
+						info_message(ptr, _(txt_article_upper));
+					} else {
+						ptr = function == FEED_MARK_READ ? _(txt_marked_arts_as_read) : _(txt_marked_arts_as_unread);
+						info_message(ptr, counter.success, counter.max, PLURAL(counter.max, txt_article));
+					}
+				}
+			}
+			break;
+
 #ifndef DISABLE_PRINTING
 		case FEED_PRINT:
 			info_message(_(txt_articles_printed), counter.success, PLURAL(counter.success, txt_article));
@@ -899,6 +1033,7 @@ got_sig_pipe_while_piping:
 		default:
 			break;
 	}
+	return no_next_unread ? 1 : 0;
 }
 
 
@@ -927,7 +1062,7 @@ print_file(
 		return FALSE;
 	}
 
-	if (tinrc.print_header)
+	if (curr_group->attribute->print_header)
 		rewind(artinfo->raw);
 	else {
 		if (hdr->newsgroups)
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/filter.c tin-2.0.0/src/filter.c
--- tin-1.8.3/src/filter.c	2006-06-19 18:39:44.000000000 +0200
+++ tin-2.0.0/src/filter.c	2011-05-10 15:46:01.962307209 +0200
@@ -3,10 +3,10 @@
  *  Module    : filter.c
  *  Author    : I. Lea
  *  Created   : 1992-12-28
- *  Updated   : 2006-06-19
+ *  Updated   : 2011-04-17
  *  Notes     : Filter articles. Kill & auto selection are supported.
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,6 +48,7 @@
 
 #define IS_READ(i)	(arts[i].status == ART_READ)
 #define IS_KILLED(i)	(arts[i].killed)
+#define IS_KILLED_UNREAD(i)	(arts[i].killed == ART_KILLED_UNREAD)
 #define IS_SELECTED(i)	(arts[i].selected)
 
 /*
@@ -84,6 +85,12 @@ struct t_filters glob_filter = { 0, 0, (
 
 
 /*
+ * Global filter file offset
+ */
+int filter_file_offset;
+
+
+/*
  * Local prototypes
  */
 static int get_choice(int x, const char *help, const char *prompt, char *list[], int list_size);
@@ -209,7 +216,7 @@ test_regex(
 			if (regex_errpos >= 0)
 				return 1;
 			else if (regex_errpos != PCRE_ERROR_NOMATCH) {
-				error_message(_(txt_pcre_error_num), regex_errpos);
+				error_message(2, _(txt_pcre_error_num), regex_errpos);
 				return -1;
 			}
 		}
@@ -310,7 +317,7 @@ read_filter_file(
 	t_bool expired_time = FALSE;
 	time_t current_secs = (time_t) 0;
 	static t_bool first_read = TRUE;
-	int upgrade = RC_CHECK;
+	enum rc_state upgrade = RC_CHECK;
 
 	if ((fp = fopen(file, "r")) == NULL)
 		return FALSE;
@@ -326,14 +333,19 @@ read_filter_file(
 	if (!first_read)
 		free_filter_array(&glob_filter);
 
+	filter_file_offset = 1;
+	scope[0] = '\0';
 	while (fgets(buf, (int) sizeof(buf), fp) != NULL) {
-		if (*buf == '#' || *buf == '\n') {
-			if (upgrade == RC_CHECK && first_read) {
+		if (*buf == '\n')
+			continue;
+		if (*buf == '#') {
+			if (scope[0] == '\0')
+				filter_file_offset++;
+			if (upgrade == RC_CHECK && first_read && match_string(buf, "# Filter file V", NULL, 0)) {
 				first_read = FALSE;
 				upgrade = check_upgrade(buf, "# Filter file V", FILTER_VERSION);
 				if (upgrade != RC_IGNORE)
-					upgrade_prompt_quit(upgrade, FILTER_FILE);
-				/* TODO: do something (more) useful here */
+					upgrade_prompt_quit(upgrade, FILTER_FILE); /* TODO: do something (more) useful here */
 			}
 			continue;
 		}
@@ -346,8 +358,10 @@ read_filter_file(
 
 					break;
 				}
-				if (match_string(buf + 1, "omment=", comment_line, sizeof(comment_line)))
+				if (match_string(buf + 1, "omment=", comment_line, sizeof(comment_line))) {
+					str_trim(comment_line);
 					comment = add_filter_comment(comment, comment_line);
+				}
 				break;
 
 			case 'f':
@@ -368,11 +382,10 @@ read_filter_file(
 
 			case 'g':
 				if (match_string(buf + 1, "roup=", scope, sizeof(scope))) {
+					str_trim(scope);
 #ifdef DEBUG
-					if (debug) {
-						my_printf("group=[%s] num=[%d]\n", scope, glob_filter.num);
-						my_flush();
-					}
+					if (debug & DEBUG_FILTER)
+						debug_print_file("FILTER", "\nnum=[%d] group=[%s]", glob_filter.num, scope);
 #endif /* DEBUG */
 					if (glob_filter.num >= glob_filter.max)
 						expand_filter_array(&glob_filter);
@@ -504,14 +517,11 @@ read_filter_file(
 							FreeIfNeeded(ptr[i].subj);
 							ptr[i].subj = my_strdup(subj);
 						}
-					}
-
 #ifdef DEBUG
-					if (debug) {
-						my_printf("6. buf=[%s]  Gsubj=[%s]\n", ptr[i].subj, glob_filter.filter[i].subj);
-						my_flush();
-					}
+						if (debug & DEBUG_FILTER)
+							debug_print_file("FILTER","buf=[%s]  Gsubj=[%s]", ptr[i].subj, glob_filter.filter[i].subj);
 #endif /* DEBUG */
+					}
 					break;
 				}
 
@@ -521,10 +531,8 @@ read_filter_file(
 				if (match_string(buf + 1, "core=", scbuf, PATH_LEN)) {
 					score = atoi(scbuf);
 #ifdef DEBUG
-					if (debug) {
-						my_printf("score=[%d]\n", score);
-						my_flush();
-					}
+					if (debug & DEBUG_FILTER)
+						debug_print_file("FILTER","score=[%d]", score);
 #endif /* DEBUG */
 					if (ptr && !expired_time) {
 						if (score > SCORE_MAX)
@@ -555,10 +563,8 @@ read_filter_file(
 						/* rule expired? */
 						if (secs && current_secs > (time_t) secs) {
 #ifdef DEBUG
-							if (debug) {
-								my_printf("EXPIRED  secs=[%lu]  current_secs=[%lu]\n", (unsigned long int) secs, (unsigned long int) current_secs);
-								my_flush();
-							}
+							if (debug & DEBUG_FILTER)
+								debug_print_file("FILTER", "EXPIRED  secs=[%lu]  current_secs=[%lu]", (unsigned long int) secs, (unsigned long int) current_secs);
 #endif /* DEBUG */
 							glob_filter.num--;
 							expired_time = TRUE;
@@ -574,6 +580,7 @@ read_filter_file(
 				 *       should we comment out older xref rules like below?
 				 */
 				if (match_string(buf + 1, "ref=", xref, sizeof(xref))) {
+					str_trim(xref);
 					if (ptr && !expired_time) {
 						if (tinrc.wildcard && ptr[i].xref != NULL) {
 							/* merge with already read value */
@@ -592,17 +599,17 @@ read_filter_file(
 
 					if (match_string(buf + 1, "ref_max=", foo, LEN - 1)) {
 						/*
-						 * TODO: add to the right rule, give better explanation, -> lang.c
+						 * TODO: add to the right rule, give better explanation.
 						 */
-						snprintf(foo, HEADER_LEN, "%s%s", _("Removed from the previous rule: "), str_trim(buf));
+						snprintf(foo, HEADER_LEN, "%s%s", _(txt_removed_rule), str_trim(buf));
 						comment = add_filter_comment(comment, foo);
 						break;
 					}
 					if (match_string(buf + 1, "ref_score=", foo, LEN - 1)) {
 						/*
-						 * TODO: add to the right rule, give better explanation, -> lang.c
+						 * TODO: add to the right rule, give better explanation.
 						 */
-						snprintf(foo, HEADER_LEN, "%s%s", _("Removed from the previous rule: "), str_trim(buf));
+						snprintf(foo, HEADER_LEN, "%s%s", _(txt_removed_rule), str_trim(buf));
 						comment = add_filter_comment(comment, foo);
 					}
 				}
@@ -617,10 +624,7 @@ read_filter_file(
 	if (expired || upgrade == RC_UPGRADE)
 		write_filter_file(file);
 
-	if (cmd_line && !batch_mode)
-		printf("\r\n");
-
-	if (!batch_mode)
+	if (!cmd_line && !batch_mode)
 		clear_message();
 
 	return TRUE;
@@ -636,6 +640,8 @@ write_filter_file(
 {
 	FILE *fp;
 	char *file_tmp;
+	int i;
+	long fpos;
 
 	if (no_write)
 		return;
@@ -644,17 +650,30 @@ write_filter_file(
 	file_tmp = get_tmpfilename(filename);
 
 	if (!backup_file(filename, file_tmp)) {
-		error_message(_(txt_filesystem_full_backup), filename);
+		error_message(2, _(txt_filesystem_full_backup), filename);
 		free(file_tmp);
 		return;
 	}
 
-	if ((fp = fopen(filename, "w")) == NULL)
+	if ((fp = fopen(filename, "w+")) == NULL)
 		return;
 
 	/* TODO: -> lang.c */
 	fprintf(fp, "# Filter file V%s for the TIN newsreader\n#\n", FILTER_VERSION);
-	fprintf(fp, _(txt_filter_file));
+	fprintf(fp, "%s", _(txt_filter_file));
+
+	/* determine the file offset */
+	if (!batch_mode) {
+		fpos = ftell(fp);
+		rewind(fp);
+		filter_file_offset = 1;
+		while ((i = fgetc(fp)) != EOF) {
+			if (i == '\n')
+				filter_file_offset++;
+		}
+		fseek(fp, fpos, SEEK_SET);
+	}
+
 	fflush(fp);
 
 	/*
@@ -662,9 +681,13 @@ write_filter_file(
 	 */
 	write_filter_array(fp, &glob_filter);
 
-	if (ferror(fp) || fclose(fp)) {
-		error_message(_(txt_filesystem_full), filename);
+	if ((i = ferror(fp)) || fclose(fp)) {
+		error_message(2, _(txt_filesystem_full), filename);
 		rename_file(file_tmp, filename);
+		if (i) {
+			clearerr(fp);
+			fclose(fp);
+		}
 	} else
 		unlink(file_tmp);
 
@@ -685,14 +708,18 @@ write_filter_array(
 		return;
 
 	for (i = 0; i < ptr->num; i++) {
-/* my_printf("WRITE i=[%d] subj=[%s] from=[%s]\n", i, BlankIfNull(ptr->filter[i].subj), BlankIfNull(ptr->filter[i].from)); */
+#ifdef DEBUG
+		if (debug & DEBUG_FILTER)
+			debug_print_file("FILTER", "WRITE i=[%d] subj=[%s] from=[%s]\n", i, BlankIfNull(ptr->filter[i].subj), BlankIfNull(ptr->filter[i].from));
+#endif /* DEBUG */
 
 		if (ptr->filter[i].time && theTime > ptr->filter[i].time)
 				continue;
-/*
-my_printf("Scope=[%s]" cCRLF, (ptr->filter[i].scope != NULL ? ptr->filter[i].scope : "*"));
-my_flush();
-*/
+#ifdef DEBUG
+		if (debug & DEBUG_FILTER)
+			debug_print_file("FILTER", "Scope=[%s]" cCRLF, (ptr->filter[i].scope != NULL ? ptr->filter[i].scope : "*"));
+#endif /* DEBUG */
+
 		fprintf(fp, "\n");		/* makes filter file more readable */
 
 		/* comments appear always first, if there are any... */
@@ -812,9 +839,6 @@ get_choice(
 	int list_size)
 {
 	int ch, y, i = 0;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *wbuf;
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	if (help)
 		show_menu_help(help);
@@ -822,16 +846,7 @@ get_choice(
 	if (list == NULL || list_size < 1)
 		return -1;
 
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	if ((wbuf = char2wchar_t(prompt)) != NULL) {
-		wconvert_to_printable(wbuf);
-		if ((y = wcswidth(wbuf, wcslen(wbuf) + 1)) == -1) /* something went wrong, use wcslen() as fallback */
-			y = wcslen(wbuf);
-
-		free(wbuf);
-	} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-		y = (int) strlen(prompt);
+	y = strwidth(prompt);
 
 	do {
 		MoveCursor(x, y);
@@ -999,14 +1014,11 @@ filter_menu(
 	char text_time[PATH_LEN];
 	char double_time[PATH_LEN];
 	char quat_time[PATH_LEN];
-	int i, len, clen = 0, flen = 0;
+	int i, len, clen, flen;
 	struct t_filter_rule rule;
 	t_bool proceed;
 	t_bool ret;
 	t_function func, default_func = FILTER_SAVE;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *wbuf;
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	signal_context = cFilter;
 
@@ -1062,49 +1074,16 @@ filter_menu(
 	ptr_filter_comment = _(txt_filter_comment);
 	ptr_filter_groupname = group->name;
 
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	if ((wbuf = char2wchar_t(_(txt_no))) != NULL) {
-		clen = MAX(clen, wcswidth(wbuf, wcslen(wbuf)));
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(_(txt_yes))) != NULL) {
-		clen = MAX(clen, wcswidth(wbuf, wcslen(wbuf)));
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(_(txt_full))) != NULL) {
-		clen = MAX(clen, wcswidth(wbuf, wcslen(wbuf)));
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(_(txt_last))) != NULL) {
-		clen = MAX(clen, wcswidth(wbuf, wcslen(wbuf)));
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(_(txt_only))) != NULL) {
-		clen = MAX(clen, wcswidth(wbuf, wcslen(wbuf)));
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(ptr_filter_subj)) != NULL) {
-		flen = MAX(flen, wcswidth(wbuf, wcslen(wbuf)) - 2);
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(ptr_filter_from)) != NULL) {
-		flen = MAX(flen, wcswidth(wbuf, wcslen(wbuf)) - 2);
-		free(wbuf);
-	}
-	if ((wbuf = char2wchar_t(ptr_filter_msgid)) != NULL) {
-		flen = MAX(flen, wcswidth(wbuf, wcslen(wbuf)) - 2);
-		free(wbuf);
-	}
-#else
-	clen = MAX(clen, (int) strlen(_(txt_no)));
-	clen = MAX(clen, (int) strlen(_(txt_yes)));
-	clen = MAX(clen, (int) strlen(_(txt_full)));
-	clen = MAX(clen, (int) strlen(_(txt_last)));
-	clen = MAX(clen, (int) strlen(_(txt_only)));
-	flen = MAX(flen, (int) strlen(ptr_filter_subj) - 2);
-	flen = MAX(flen, (int) strlen(ptr_filter_from) - 2);
-	flen = MAX(flen, (int) strlen(ptr_filter_msgid) - 2);
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	clen = strwidth(_(txt_no));
+	clen = MAX(clen, strwidth(_(txt_yes)));
+	clen = MAX(clen, strwidth(_(txt_full)));
+	clen = MAX(clen, strwidth(_(txt_last)));
+	clen = MAX(clen, strwidth(_(txt_only)));
+
+	flen = strwidth(ptr_filter_subj) - 2;
+	flen = MAX(flen, strwidth(ptr_filter_from) - 2);
+	flen = MAX(flen, strwidth(ptr_filter_msgid) - 2);
+
 	len = cCOLS - flen - clen - 1 + 4;
 
 	snprintf(text_time, sizeof(text_time), _(txt_time_default_days), tinrc.filter_days);
@@ -1140,14 +1119,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) {
@@ -1165,10 +1147,9 @@ filter_menu(
 			case FILTER_SUBJ_CASE_SENSITIVE:
 			case FILTER_FROM_CASE_SENSITIVE:
 			case FILTER_MSGID:
-				rule.counter = FILTER_MSGID_ONLY;
-/*			case FILTER_MSGID_LAST:
-			case FILTER_MSGID_ONLY: */
-				/* rule.icase is FALSE already, no assignment necessary */
+			case FILTER_MSGID_LAST:
+			case FILTER_MSGID_ONLY:
+			case FILTER_REFS_ONLY:
 				break;
 
 			default: /* should not happen */
@@ -1347,7 +1328,7 @@ filter_menu(
 	 * Expire time
 	 */
 	snprintf(double_time, sizeof(double_time), "2x %s", text_time);
-	snprintf(quat_time, sizeof(double_time), "4x %s", text_time);
+	snprintf(quat_time, sizeof(quat_time), "4x %s", text_time);
 	list = my_malloc(sizeof(char *) * 4);
 	list[0] = (char *) _(txt_unlimited_time);
 	list[1] = text_time;
@@ -1407,9 +1388,9 @@ filter_menu(
 		case FILTER_EDIT:
 			add_filter_rule(group, art, &rule, FALSE); /* save the rule */
 			rule.comment = free_filter_comment(rule.comment);
-			if (!invoke_editor(filter_file, FILTER_FILE_OFFSET))
+			if (!invoke_editor(filter_file, filter_file_offset, NULL))
 				return FALSE;
-			unfilter_articles();
+			unfilter_articles(group);
 			(void) read_filter_file(filter_file);
 			return TRUE;
 			/* keep lint quiet: */
@@ -1459,20 +1440,20 @@ quick_filter(
 	if (type == GLOBAL_QUICK_FILTER_KILL) {
 		header = group->attribute->quick_kill_header;
 		expire = group->attribute->quick_kill_expire;
-		icase = group->attribute->quick_kill_case;
+		/* ON=case sensitive, OFF=ignore case -> invert */
+		icase = bool_not(group->attribute->quick_kill_case);
 		scope = group->attribute->quick_kill_scope;
 	} else {	/* type == GLOBAL_QUICK_FILTER_SELECT */
 		header = group->attribute->quick_select_header;
 		expire = group->attribute->quick_select_expire;
-		icase = group->attribute->quick_select_case;
+		/* ON=case sensitive, OFF=ignore case -> invert */
+		icase = bool_not(group->attribute->quick_select_case);
 		scope = group->attribute->quick_select_scope;
 	}
 
 #ifdef DEBUG
-	if (debug)
-		error_message("%s header=[%d] scope=[%s] expire=[%s] case=[%d]",
-			(type == GLOBAL_QUICK_FILTER_KILL) ? "KILL" : "SELECT", header,
-			BlankIfNull(scope), txt_onoff[expire != FALSE ? 1 : 0], icase);
+	if (debug & DEBUG_FILTER)
+		error_message(2, "%s header=[%d] scope=[%s] expire=[%s] case=[%d]", (type == GLOBAL_QUICK_FILTER_KILL) ? "KILL" : "SELECT", header, BlankIfNull(scope), txt_onoff[expire != FALSE ? 1 : 0], icase);
 #endif /* DEBUG */
 
 	/*
@@ -1722,7 +1703,7 @@ add_filter_rule(
 			 * So the thread remains open (in group level). To overcome this,
 			 * the first msgid from references field is taken in this case.
 			 */
-			if (quick_filter_rule && group->attribute->thread_arts == THREAD_REFS &&
+			if (quick_filter_rule && group->attribute->thread_articles == THREAD_REFS &&
 				(group->attribute->quick_kill_header == FILTER_MSGID ||
 				 group->attribute->quick_kill_header == FILTER_REFS_ONLY) &&
 				 art->refptr->parent != NULL)
@@ -1748,18 +1729,9 @@ add_filter_rule(
 
 	if (filtered) {
 #ifdef DEBUG
-		if (debug)
-			wait_message(2, "inscope=[%s] scope=[%s]  case=[%d] subj=[%s] from=[%s] msgid=[%s] fullref=[%d] line=[%d %d] time=[%lu]",
-				bool_unparse(ptr[i].inscope),
-				BlankIfNull(rule->scope),
-				ptr[i].icase,
-				BlankIfNull(ptr[i].subj),
-				BlankIfNull(ptr[i].from),
-				BlankIfNull(ptr[i].msgid),
-				ptr[i].fullref, ptr[i].lines_cmp,
-				ptr[i].lines_num, (unsigned long int) ptr[i].time);
+		if (debug & DEBUG_FILTER)
+			wait_message(2, "inscope=[%s] scope=[%s] case=[%d] subj=[%s] from=[%s] msgid=[%s] fullref=[%d] line=[%d %d] time=[%lu]", bool_unparse(ptr[i].inscope), BlankIfNull(rule->scope), ptr[i].icase, BlankIfNull(ptr[i].subj), BlankIfNull(ptr[i].from), BlankIfNull(ptr[i].msgid), ptr[i].fullref, ptr[i].lines_cmp, ptr[i].lines_num, (unsigned long int) ptr[i].time);
 #endif /* DEBUG */
-
 		write_filter_file(filter_file);
 	}
 	return filtered;
@@ -1768,20 +1740,22 @@ add_filter_rule(
 
 /*
  * We assume that any articles which are tagged as killed are also
- * tagged as being read BECAUSE they were killed. So, we retag
- * them as being unread. Selected articles will be un"select"ed.
+ * tagged as being read BECAUSE they were killed. We retag them as
+ * being unread if they were unread before killing (ART_KILLED_UNREAD).
+ * Selected articles will be un"select"ed.
  */
 void
 unfilter_articles(
-	void)
+	struct t_group *group)
 {
 	int i;
 
 	for_each_art(i) {
 		arts[i].score = 0;
 		if (IS_KILLED(i)) {
+			if (IS_KILLED_UNREAD(i))
+				art_mark(group, &arts[i], ART_UNREAD);
 			arts[i].killed = ART_NOTKILLED;
-			arts[i].status = ART_UNREAD;
 		}
 		if (IS_SELECTED(i))
 			arts[i].selected = FALSE;
@@ -1854,7 +1828,7 @@ filter_articles(
 	}
 
 	/*
-	 * loop thru all arts applying global & local filtering rules
+	 * loop through all arts applying global & local filtering rules
 	 */
 	for (i = 0; (i < top_art) && !error; i++) {
 		arts[i].score = 0;
@@ -1960,6 +1934,10 @@ filter_articles(
 					switch (x) {
 						case 1:
 							SET_FILTER(group, i, j);
+#ifdef DEBUG
+							if (debug & DEBUG_FILTER)
+								debug_print_file("FILTER", "Group[%s] Rule[%d][%s] ArtMSGID[%s] Artnum[%d]", group->name, j, ptr[j].msgid, mymsgid, i);
+#endif /* DEBUG */
 							break;
 
 						case -1:
@@ -1978,27 +1956,18 @@ filter_articles(
 					switch (ptr[j].lines_cmp) {
 						case FILTER_LINES_EQ:
 							if (arts[i].line_count == ptr[j].lines_num) {
-/*
-wait_message(1, "FILTERED Lines arts[%d] == [%d]", arts[i].line_count, ptr[j].lines_num);
-*/
 								SET_FILTER(group, i, j);
 							}
 							break;
 
 						case FILTER_LINES_LT:
 							if (arts[i].line_count < ptr[j].lines_num) {
-/*
-wait_message(1, "FILTERED Lines arts[%d] < [%d]", arts[i].line_count, ptr[j].lines_num);
-*/
 								SET_FILTER(group, i, j);
 							}
 							break;
 
 						case FILTER_LINES_GT:
 							if (arts[i].line_count > ptr[j].lines_num) {
-/*
-wait_message(1, "FILTERED Lines arts[%d] > [%d]", arts[i].line_count, ptr[j].lines_num);
-*/
 								SET_FILTER(group, i, j);
 							}
 							break;
@@ -2049,7 +2018,7 @@ wait_message(1, "FILTERED Lines arts[%d]
 						t_bool skip = FALSE;
 
 						s = arts[i].xref;
-						while (*s && !isspace((int) *s))
+						while (*s && !isspace((int) *s))	/* skip server name */
 							s++;
 						while (*s && isspace((int) *s))
 							s++;
@@ -2123,11 +2092,16 @@ wait_message(1, "FILTERED Lines arts[%d]
 					arts[i].killed = ART_KILLED;
 				filtered = TRUE;
 				art_mark(group, &arts[i], ART_READ);
+				if (group->attribute->show_only_unread_arts)
+					arts[i].keep_in_base = FALSE;
 			} else if (arts[i].score >= tinrc.score_limit_select) {
 				arts[i].selected = TRUE;
 			}
 		}
 	}
+	if (!cmd_line && !batch_mode)
+		clear_message();
+
 	return filtered;
 }
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/getline.c tin-2.0.0/src/getline.c
--- tin-1.8.3/src/getline.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/getline.c	2011-04-17 16:04:30.539086191 +0200
@@ -3,7 +3,7 @@
  *  Module    : getline.c
  *  Author    : Chris Thewalt & Iain Lea
  *  Created   : 1991-11-09
- *  Updated   : 2004-07-02
+ *  Updated   : 2010-01-21
  *  Notes     : emacs style line editing input package.
  *  Copyright : (c) Copyright 1991-99 by Chris Thewalt & Iain Lea
  *              Permission to use, copy, modify, and distribute this
@@ -23,7 +23,7 @@
 #endif /* !TCURSES_H */
 
 #define BUF_SIZE	1024
-#define TABSIZE		4
+#define TAB_SIZE		4
 
 #define CTRL_A	'\001'
 #define CTRL_B	'\002'
@@ -344,7 +344,7 @@ gl_addchar(
 	 * This was the original code:
 	 *
 	if (gl_cnt >= BUF_SIZE - 1) {
-		error_message("tin_getline: input buffer overflow");
+		error_message(2, "tin_getline: input buffer overflow");
 		giveup();
 	}
 	 */
@@ -382,7 +382,7 @@ gl_newline(
 		 * code should never be reached. A proper implementation is
 		 * desirable though.
 		 */
-		error_message("tin_getline: input buffer overflow");
+		error_message(2, "tin_getline: input buffer overflow");
 		giveup();
 	}
 	hist_add(w);		/* only adds if nonblank */
@@ -593,7 +593,7 @@ gl_fixup(
 			off_right = (gl_cnt > gl_shift + gl_width - 1) ? 1 : 0;
 			right = (off_right) ? gl_shift + gl_width - 2 : gl_cnt;
 		}
-		pad -= (off_right) ? gl_width - 1 : gl_cnt - gl_shift;
+		pad -= (off_right ? gl_width - 1 : gl_cnt - gl_shift);
 		pad = (pad < 0) ? 0 : pad;
 		if (left <= right) {	/* clean up screen */
 			for (i = 0; i < backup; i++)
@@ -638,7 +638,7 @@ gl_fixup(
 
 
 /*
- * default tab handler, acts like tabstops every TABSIZE cols
+ * default tab handler, acts like tabstops every TAB_SIZE cols
  */
 static int
 gl_tab(
@@ -654,14 +654,14 @@ gl_tab(
 
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	len = wcslen(wbuf);
-	count = TABSIZE - (offset + *loc) % TABSIZE;
+	count = TAB_SIZE - (offset + *loc) % TAB_SIZE;
 	for (i = len; i >= *loc; i--)
 		wbuf[i + count] = wbuf[i];
 	for (i = 0; i < count; i++)
 		wbuf[*loc + i] = (wchar_t) ' ';
 #else
 	len = strlen(buf);
-	count = TABSIZE - (offset + *loc) % TABSIZE;
+	count = TAB_SIZE - (offset + *loc) % TAB_SIZE;
 	for (i = len; i >= *loc; i--)
 		buf[i + count] = buf[i];
 	for (i = 0; i < count; i++)
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/global.c tin-2.0.0/src/global.c
--- tin-1.8.3/src/global.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/global.c	2011-04-17 16:04:30.567090454 +0200
@@ -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-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/group.c tin-2.0.0/src/group.c
--- tin-1.8.3/src/group.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/group.c	2011-04-17 16:04:35.939908081 +0200
@@ -3,10 +3,10 @@
  *  Module    : group.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-01-29
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -57,15 +57,15 @@ struct t_group *curr_group;
 static int do_search(t_function func, t_bool repeat);
 static int enter_pager(int art, t_bool ignore_unavail);
 static int enter_thread(int depth, t_pagerinfo *page);
+static int find_new_pos(long old_artnum, int cur_pos);
 static int group_catchup(t_function func);
-static int prompt_getart_limit(void);
 static int tab_pressed(void);
+static t_bool prompt_getart_limit(void);
 static t_function group_left(void);
 static t_function group_right(void);
 static void build_sline(int i);
 static void build_multipart_header(char *dest, int maxlen, const char *src, int cmplen, int have, int total);
 static void draw_subject_arrow(void);
-static void mark_thd_read(struct t_group *group, t_bool range_active);
 static void show_group_title(t_bool clear_title);
 static void show_tagged_lines(void);
 static void toggle_read_unread(t_bool force);
@@ -98,7 +98,7 @@ static t_function
 group_left(
 	void)
 {
-	if (tinrc.group_catchup_on_exit)
+	if (curr_group->attribute->group_catchup_on_exit)
 		return SPECIAL_CATCHUP_LEFT;		/* ie, not via 'c' or 'C' */
 	else
 		return GLOBAL_QUIT;
@@ -110,7 +110,7 @@ group_right(
 	void)
 {
 	if (grpmenu.curr >= 0 && HAS_FOLLOWUPS(grpmenu.curr)) {
-		if (tinrc.auto_list_thread)
+		if (curr_group->attribute->auto_list_thread)
 			return GROUP_LIST_THREAD;
 		else {
 			int n = next_unread((int) base[grpmenu.curr]);
@@ -140,12 +140,10 @@ group_page(
 {
 	char key[MAXKEYLEN];
 	int i, n, ii;
-	int old_top = 0;
 	int thread_depth;	/* Starting depth in threads we enter */
 	long old_artnum = 0L;
 	struct t_art_stat sbuf;
 	t_bool flag;
-	t_bool range_active = FALSE;		/* Set if a range is defined */
 	t_bool xflag = FALSE;	/* 'X'-flag */
 	t_bool repeat_search;
 	t_function func;
@@ -157,6 +155,7 @@ group_page(
 
 	curr_group = group;					/* For global access to the current group */
 	num_of_tagged_arts = 0;
+	range_active = FALSE;
 
 	last_resp = -1;
 	this_resp = -1;
@@ -179,16 +178,17 @@ group_page(
 	clear_note_area();
 
 	if (group->attribute->auto_select) {
-		error_message(_(txt_autoselecting_articles), printascii(key, func_to_key(GROUP_MARK_UNSELECTED_ARTICLES_READ, group_keys)));
+		error_message(2, _(txt_autoselecting_articles), printascii(key, func_to_key(GROUP_MARK_UNSELECTED_ARTICLES_READ, group_keys)));
 		do_auto_select_arts();						/* 'X' command */
 		xflag = TRUE;
 	}
 
 	show_group_page();
 
-#	ifdef DEBUG_NEWSRC
-	debug_print_bitmap(group, NULL);
-#	endif /* DEBUG_NEWSRC */
+#	ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_bitmap(group, NULL);
+#	endif /* DEBUG */
 
 	/* reset ret_code */
 	ret_code = 0;
@@ -243,43 +243,50 @@ group_page(
 
 			case GLOBAL_PIPE:		/* pipe article/thread/tagged arts to command */
 				if (grpmenu.curr >= 0)
-					feed_articles(FEED_PIPE, GROUP_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_PIPE, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 				break;
 
 			case GROUP_MAIL:	/* mail article to somebody */
 				if (grpmenu.curr >= 0)
-					feed_articles(FEED_MAIL, GROUP_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_MAIL, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 				break;
 
 #ifndef DISABLE_PRINTING
 			case GLOBAL_PRINT:	/* output art/thread/tagged arts to printer */
 				if (grpmenu.curr >= 0)
-					feed_articles(FEED_PRINT, GROUP_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_PRINT, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 				break;
 #endif /* !DISABLE_PRINTING */
 
 			case GROUP_REPOST:	/* repost current article */
-				if (grpmenu.curr >= 0)
-					feed_articles(FEED_REPOST, GROUP_LEVEL, group, (int) base[grpmenu.curr]);
+				if (can_post) {
+					if (grpmenu.curr >= 0)
+						feed_articles(FEED_REPOST, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
+				} else
+					info_message(_(txt_cannot_post));
 				break;
 
 			case GROUP_SAVE:	/* save articles with prompting */
 				if (grpmenu.curr >= 0)
-					feed_articles(FEED_SAVE, GROUP_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_SAVE, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 				break;
 
 			case GROUP_AUTOSAVE:	/* Auto-save articles without prompting */
 				if (grpmenu.curr >= 0)
-					feed_articles(FEED_AUTOSAVE, GROUP_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_AUTOSAVE, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 				break;
 
 			case GLOBAL_SET_RANGE:	/* set range */
-				if (set_range(GROUP_LEVEL, 1, grpmenu.max, grpmenu.curr + 1)) {
+				if (grpmenu.curr >= 0 && set_range(GROUP_LEVEL, 1, grpmenu.max, grpmenu.curr + 1)) {
 					range_active = TRUE;
 					show_group_page();
 				}
 				break;
 
+			case GLOBAL_SEARCH_REPEAT:
+				info_message(_(txt_no_prev_search));
+				break;
+
 			case GLOBAL_SEARCH_AUTHOR_FORWARD:
 			case GLOBAL_SEARCH_AUTHOR_BACKWARD:
 			case GLOBAL_SEARCH_SUBJECT_FORWARD:
@@ -303,6 +310,24 @@ group_page(
 					info_message(_(txt_no_arts));
 				break;
 
+			case GROUP_CANCEL:	/* cancel current basenote */
+				if (grpmenu.curr >= 0) {
+					if (can_post || group->attribute->mailing_list != NULL) {
+						char *progress_msg = my_strdup(_(txt_reading_article));
+						int ret;
+
+						n = (int) base[grpmenu.curr];
+						ret = art_open(TRUE, &arts[n], group, &pgart, TRUE, progress_msg);
+						free(progress_msg);
+						if (ret != ART_UNAVAILABLE && ret != ART_ABORT && cancel_article(group, &arts[n], n))
+							show_group_page();
+						art_close(&pgart);
+					} else
+						info_message(_(txt_cannot_post));
+				} else
+					info_message(_(txt_no_arts));
+				break;
+
 			case GROUP_NEXT_UNREAD_ARTICLE_OR_GROUP:	/* goto next unread article/group */
 				ret_code = tab_pressed();
 				break;
@@ -317,26 +342,25 @@ group_page(
 					info_message(_(txt_no_arts));
 					break;
 				}
-				old_top = top_art;
 				n = (int) base[grpmenu.curr];
-				old_artnum = arts[n].artnum;
 				if (filter_menu(func, group, &arts[n])) {
-					if (filter_articles(group)) {
-						make_threads(group, FALSE);
-						grpmenu.curr = find_new_pos(old_top, old_artnum, grpmenu.curr);
-					}
+					old_artnum = arts[n].artnum;
+					unfilter_articles(group);
+					filter_articles(group);
+					make_threads(group, FALSE);
+					grpmenu.curr = find_new_pos(old_artnum, grpmenu.curr);
 				}
 				show_group_page();
 				break;
 
 			case GLOBAL_EDIT_FILTER:
-				if (!invoke_editor(filter_file, FILTER_FILE_OFFSET))
-					break;
-				unfilter_articles();
-				(void) read_filter_file(filter_file);
-				if (filter_articles(group)) {
+				if (invoke_editor(filter_file, filter_file_offset, NULL)) {
+					old_artnum = grpmenu.max > 0 ? arts[(int) base[grpmenu.curr]].artnum : -1L;
+					unfilter_articles(group);
+					(void) read_filter_file(filter_file);
+					filter_articles(group);
 					make_threads(group, FALSE);
-					grpmenu.curr = find_new_pos(old_top, old_artnum, grpmenu.curr);
+					grpmenu.curr = old_artnum >= 0L ? find_new_pos(old_artnum, grpmenu.curr) : grpmenu.max - 1;
 				}
 				show_group_page();
 				break;
@@ -348,18 +372,16 @@ group_page(
 					break;
 				}
 				if ((!TINRC_CONFIRM_ACTION) || prompt_yn((func == GLOBAL_QUICK_FILTER_KILL) ? _(txt_quick_filter_kill) : _(txt_quick_filter_select), TRUE) == 1) {
-					old_top = top_art;
-					n = (int) base[grpmenu.curr]; /* should this depend on show_only_unread? */
-					old_artnum = arts[n].artnum;
+					n = (int) base[grpmenu.curr]; /* should this depend on show_only_unread_arts? */
 					if (quick_filter(func, group, &arts[n])) {
+						old_artnum = arts[n].artnum;
+						unfilter_articles(group);
+						filter_articles(group);
+						make_threads(group, FALSE);
+						grpmenu.curr = find_new_pos(old_artnum, grpmenu.curr);
+						show_group_page();
 						info_message((func == GLOBAL_QUICK_FILTER_KILL) ? _(txt_info_add_kill) : _(txt_info_add_select));
-						if (filter_articles(group)) {
-							make_threads(group, FALSE);
-							/* TODO: position is wrong after quick killing a thread */
-							grpmenu.curr = find_new_pos(old_top, old_artnum, grpmenu.curr);
-						}
 					}
-					show_group_page();
 				}
 				break;
 
@@ -435,9 +457,16 @@ group_page(
 #	endif /* HAVE_COLOR */
 
 			case GROUP_MARK_THREAD_READ:			/* mark current thread/range/tagged threads as read */
-				mark_thd_read(group, range_active);
-				if (range_active)
-					range_active = FALSE; /* Range has gone now */
+			case MARK_THREAD_UNREAD:				/* or unread */
+				if (grpmenu.curr < 0)
+					info_message(_(txt_no_arts));
+				else {
+					t_function function, type;
+
+					function = func == GROUP_MARK_THREAD_READ ? (t_function) FEED_MARK_READ : (t_function) FEED_MARK_UNREAD;
+					type = range_active ? FEED_RANGE : (num_of_tagged_arts && !group->attribute->mark_ignore_tags) ? NOT_ASSIGNED : FEED_THREAD;
+					feed_articles(function, GROUP_LEVEL, type, group, (int) base[grpmenu.curr]);
+				}
 				break;
 
 			case GROUP_LIST_THREAD:				/* list articles within current thread */
@@ -450,14 +479,9 @@ group_page(
 				break;
 
 			case GLOBAL_OPTION_MENU:			/* option menu */
-				if (grpmenu.max > 0) {
-					old_top = top_art;
-					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)
-					make_threads(group, TRUE);
-				grpmenu.curr = find_new_pos(old_top, old_artnum, grpmenu.curr);
+				old_artnum = grpmenu.max > 0 ? arts[(int) base[grpmenu.curr]].artnum : -1L;
+				config_page(group->name);
+				grpmenu.curr = old_artnum >= 0L ? find_new_pos(old_artnum, grpmenu.curr) : grpmenu.max - 1;
 				show_group_page();
 				break;
 
@@ -542,8 +566,16 @@ group_page(
 				break;
 
 			case GROUP_TOGGLE_GET_ARTICLES_LIMIT:
-				tinrc.getart_limit = prompt_getart_limit();
-				ret_code = GRP_NEXTUNREAD;
+				if (prompt_getart_limit()) {
+					/*
+					 * if getart limit was given via cmd-line
+					 * make it inactive now in order to use
+					 * tinrc.getart_limit
+					 */
+					if (cmdline.args & CMDLINE_GETART_LIMIT)
+						cmdline.args &= ~CMDLINE_GETART_LIMIT;
+					ret_code = GRP_NEXTUNREAD;
+				}
 				break;
 
 			case GLOBAL_BUGREPORT:
@@ -635,7 +667,7 @@ group_page(
 				break;
 
 			case GROUP_TOGGLE_THREADING:		/* Cycle through the threading types */
-				group->attribute->thread_arts = (group->attribute->thread_arts + 1) % (THREAD_MAX + 1);
+				group->attribute->thread_articles = (group->attribute->thread_articles + 1) % (THREAD_MAX + 1);
 				if (grpmenu.curr >= 0) {
 					i = base[grpmenu.curr];								/* Save a copy of current thread */
 					make_threads(group, TRUE);
@@ -709,36 +741,14 @@ group_page(
 				}
 				break;
 
-			case MARK_THREAD_UNREAD:		/* mark whole thread as unread */
-				if (grpmenu.curr < 0)
-					info_message(_(txt_no_arts));
-				else {
-					const char *ptr;
-
-					/*
-					 * We process all articles in case the threading changed since
-					 * the range was created
-					 */
-					if (range_active) {
-						for_each_art(ii) {
-							if (arts[ii].inrange) {
-								arts[ii].inrange = FALSE;
-								art_mark(group, &arts[ii], ART_WILL_RETURN);
-							}
-						}
-						range_active = FALSE;
-						show_group_page();
-						ptr = _(txt_thread_range);
-					} else {
-						thd_mark_unread(group, base[grpmenu.curr]);
-						ptr = _(txt_thread_upper);
-					}
+			case MARK_FEED_READ:	/* mark selected articles as read */
+				if (grpmenu.curr >= 0)
+					feed_articles(FEED_MARK_READ, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
+				break;
 
-					show_group_title(TRUE);
-					build_sline(grpmenu.curr);
-					draw_subject_arrow();
-					info_message(_(txt_marked_as_unread), ptr);
-				}
+			case MARK_FEED_UNREAD:	/* mark selected articles as unread */
+				if (grpmenu.curr >= 0)
+					feed_articles(FEED_MARK_UNREAD, GROUP_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 				break;
 
 			case GROUP_SELECT_THREAD:	/* mark thread as selected */
@@ -768,14 +778,14 @@ group_page(
 					mark_screen(grpmenu.curr, MARK_OFFSET, mark);
 				}
 
-				info_message(flag ? _(txt_thread_marked_as_selected) : _(txt_thread_marked_as_deselected));
 				show_group_title(TRUE);
 
-				if (grpmenu.curr + 1 < grpmenu.max) {
+				if (grpmenu.curr + 1 < grpmenu.max)
 					move_down();
-					break;
-				}
-				draw_subject_arrow();
+				else
+					draw_subject_arrow();
+
+				info_message(flag ? _(txt_thread_marked_as_selected) : _(txt_thread_marked_as_deselected));
 				break;
 
 			case GROUP_REVERSE_SELECTIONS:	/* reverse selections */
@@ -793,7 +803,7 @@ group_page(
 				break;
 
 			case GROUP_SELECT_PATTERN:	/* select matching patterns */
-				{
+				if (grpmenu.curr >= 0) {
 					char pat[128];
 					char *prompt;
 					struct regex_cache cache = { NULL, NULL };
@@ -809,7 +819,7 @@ group_page(
 						if (tinrc.wildcard)
 							STRCPY(pat, ".*");
 						else
-							strncpy(pat, tinrc.default_select_pattern, sizeof(pat));
+							STRCPY(pat, tinrc.default_select_pattern);
 					} else
 						snprintf(pat, sizeof(pat), REGEX_FMT, tinrc.default_select_pattern);
 
@@ -834,8 +844,8 @@ group_page(
 						FreeIfNeeded(cache.re);
 						FreeIfNeeded(cache.extra);
 					}
-					break;
 				}
+				break;
 
 			case GROUP_SELECT_THREAD_IF_UNREAD_SELECTED:	/* select all unread arts in thread hot if 1 is hot */
 				for (n = 0; n < grpmenu.max; n++) {
@@ -973,7 +983,7 @@ clear_note_area(
 
 
 /*
- * If in show_only_unread mode or there are unread articles we know this
+ * If in show_only_unread_arts mode or there are unread articles we know this
  * thread will exist after toggle. Otherwise we find the next closest to
  * return to. 'force' can be set to force tin to show all messages
  */
@@ -983,14 +993,23 @@ toggle_read_unread(
 {
 	int n, i = -1;
 
+	/*
+	 * Clear art->keep_in_base if switching to !show_only_unread_arts
+	 */
+	if (curr_group->attribute->show_only_unread_arts) {
+		for_each_art(n)
+			arts[n].keep_in_base = FALSE;
+	}
+
+	/* force currently is always false */
 	if (force)
-		curr_group->attribute->show_only_unread = TRUE;	/* Yes - really, we change it in a bit */
+		curr_group->attribute->show_only_unread_arts = TRUE;	/* Yes - really, we change it in a bit */
 
 	wait_message(0, _(txt_reading_arts),
-		(curr_group->attribute->show_only_unread) ? _(txt_all) : _(txt_unread));
+		(curr_group->attribute->show_only_unread_arts) ? _(txt_all) : _(txt_unread));
 
 	if (grpmenu.curr >= 0) {
-		if (curr_group->attribute->show_only_unread || new_responses(grpmenu.curr))
+		if (curr_group->attribute->show_only_unread_arts || new_responses(grpmenu.curr))
 			i = base[grpmenu.curr];
 		else if ((n = prev_unread((int) base[grpmenu.curr])) >= 0)
 			i = n;
@@ -998,13 +1017,15 @@ toggle_read_unread(
 			i = n;
 	}
 
-	curr_group->attribute->show_only_unread = bool_not(curr_group->attribute->show_only_unread);
+	if (!force)
+		curr_group->attribute->show_only_unread_arts = bool_not(curr_group->attribute->show_only_unread_arts);
 
 	find_base(curr_group);
 	if (i >= 0 && (n = which_thread(i)) >= 0)
 		grpmenu.curr = n;
 	else if (grpmenu.max > 0)
 		grpmenu.curr = grpmenu.max - 1;
+	clear_message();
 }
 
 
@@ -1013,24 +1034,16 @@ toggle_read_unread(
  * author it is impossible to know which, if any, articles will be left
  * afterwards. So we make a "best attempt" to find a new index point.
  */
-int
+static int
 find_new_pos(
-	int old_top,
 	long old_artnum,
 	int cur_pos)
 {
 	int i, pos;
 
-	if (top_art == old_top)
-		return cur_pos;
+	if ((i = find_artnum(old_artnum)) >= 0 && (pos = which_thread(i)) >= 0)
+		return pos;
 
-	for_each_art(i) {
-		if (arts[i].artnum == old_artnum) {
-			pos = which_thread(arts[i].artnum);
-			if (pos >= 0)
-				return pos;
-		}
-	}
 	return ((cur_pos < grpmenu.max) ? cur_pos : (grpmenu.max - 1));
 }
 
@@ -1045,7 +1058,7 @@ pos_first_unread_thread(
 {
 	int i;
 
-	if (tinrc.pos_first_unread) {
+	if (curr_group->attribute->pos_first_unread) {
 		for (i = 0; i < grpmenu.max; i++) {
 			if (new_responses(i))
 				break;
@@ -1205,7 +1218,7 @@ build_sline(
 	/*
 	 * n is number of articles in this thread
 	 */
-	n = ((curr_group->attribute->show_only_unread) ? (sbuf.unread + sbuf.seen) : sbuf.total);
+	n = ((curr_group->attribute->show_only_unread_arts) ? (sbuf.unread + sbuf.seen) : sbuf.total);
 	/*
 	 * if you like to see the number of responses excluding the first
 	 *	art in thread - add the following:
@@ -1255,7 +1268,7 @@ build_sline(
 	if (sbuf.multipart_have > 1) /* We have a multipart msg so lets built our new header info. */
 		build_multipart_header(arts_sub, len_subj, arts[j].subject, sbuf.multipart_compare_len, sbuf.multipart_have, sbuf.multipart_total);
 	else
-		strncpy(arts_sub, arts[j].subject, sizeof(arts_sub) - 1);
+		STRCPY(arts_sub, arts[j].subject);
 
 #ifndef USE_CURSES
 	buffer = screen[INDEX2SNUM(i)].col;
@@ -1281,7 +1294,7 @@ build_sline(
 		tmp_from = wcspart(wc, len_from, TRUE);
 	}
 
-#	if 0 /* use additional space if !draw_arrow - usefull? */
+#	if 0 /* use additional space if !draw_arrow - useful? */
 	if (!tinrc.draw_arrow) {
 		if (curr_group->attribute->show_info == SHOW_INFO_SCORE || curr_group->attribute->show_info == SHOW_INFO_BOTH) {
 			mbstowcs(format, "%s %s %s%6d %-ls%s%-ls", ARRAY_SIZE(format) - 1);
@@ -1330,7 +1343,7 @@ build_sline(
 #else
 	arts_sub[len_subj - 12 + 1] = '\0';
 
-#	if 0 /* use additional space if !draw_arrow - usefull? */
+#	if 0 /* use additional space if !draw_arrow - useful? */
 	if (!tinrc.draw_arrow) {
 		if (curr_group->attribute->show_info == SHOW_INFO_SCORE || curr_group->attribute->show_info == SHOW_INFO_BOTH)
 			snprintf(buffer, cCOLS + 1, "%s %s %s%6d %-*.*s%s%-*.*s",
@@ -1372,7 +1385,7 @@ build_sline(
 	 * protect display from non-displayable characters (e.g., form-feed)
 	 * and write line.
 	 */
-	WriteLine(INDEX2LNUM(i), convert_to_printable(buffer));
+	WriteLine(INDEX2LNUM(i), convert_to_printable(buffer, FALSE));
 
 #ifdef USE_CURSES
 	free(buffer);
@@ -1386,24 +1399,24 @@ static void
 show_group_title(
 	t_bool clear_title)
 {
-	char buf[LEN], tmp[LEN];
+	char buf[LEN], tmp[LEN], flag;
 	int i, art_cnt = 0, recent_art_cnt = 0, selected_art_cnt = 0, read_selected_art_cnt = 0, killed_art_cnt = 0;
 
 	for_each_art(i) {
 		if (arts[i].thread == ART_EXPIRED)
 			continue;
 
-		if (curr_group->attribute->show_only_unread) {
+		if (curr_group->attribute->show_only_unread_arts) {
 			if (arts[i].status != ART_READ) {
 				art_cnt++;
-				if (tinrc.recent_time && ((time((time_t) 0) - arts[i].date) < (tinrc.recent_time * DAY)))
+				if (tinrc.recent_time && ((time((time_t *) 0) - arts[i].date) < (tinrc.recent_time * DAY)))
 					recent_art_cnt++;
 			}
 			if (arts[i].killed == ART_KILLED_UNREAD)
 				killed_art_cnt++;
 		} else {
 			art_cnt++;
-			if (tinrc.recent_time && ((time((time_t) 0) - arts[i].date) < (tinrc.recent_time * DAY)))
+			if (tinrc.recent_time && ((time((time_t *) 0) - arts[i].date) < (tinrc.recent_time * DAY)))
 				recent_art_cnt++;
 
 			if (arts[i].killed)
@@ -1423,22 +1436,22 @@ show_group_title(
 	/* group name and thread count */
 	snprintf(buf, sizeof(buf), "%s (%d%c",
 		curr_group->name, grpmenu.max,
-		*txt_threading[curr_group->attribute->thread_arts]);
+		*txt_threading[curr_group->attribute->thread_articles]);
 
 	/* article count */
-	if (tinrc.getart_limit)
+	if (cmdline.args & CMDLINE_GETART_LIMIT ? cmdline.getart_limit : tinrc.getart_limit)
 		snprintf(tmp, sizeof(tmp), " %d/%d%c",
-			tinrc.getart_limit, art_cnt,
-			(curr_group->attribute->show_only_unread ? tinrc.art_marked_unread : tinrc.art_marked_read));
+			cmdline.args & CMDLINE_GETART_LIMIT ? cmdline.getart_limit : tinrc.getart_limit, art_cnt,
+			(curr_group->attribute->show_only_unread_arts ? tinrc.art_marked_unread : tinrc.art_marked_read));
 	else
 		snprintf(tmp, sizeof(tmp), " %d%c",
 			art_cnt,
-			(curr_group->attribute->show_only_unread ? tinrc.art_marked_unread : tinrc.art_marked_read));
+			(curr_group->attribute->show_only_unread_arts ? tinrc.art_marked_unread : tinrc.art_marked_read));
 	if (sizeof(buf) > strlen(buf) + strlen(tmp))
 		strcat(buf, tmp);
 
 	/* selected articles */
-	if (curr_group->attribute->show_only_unread)
+	if (curr_group->attribute->show_only_unread_arts)
 		snprintf(tmp, sizeof(tmp), " %d%c",
 			selected_art_cnt, tinrc.art_marked_selected);
 	else
@@ -1464,8 +1477,10 @@ show_group_title(
 		strcat(buf, tmp);
 
 	/* group flag */
-	snprintf(tmp, sizeof(tmp), ") %c",
-		group_flag(curr_group->moderated));
+	if ((flag = group_flag(curr_group->moderated)) == ' ')
+		snprintf(tmp, sizeof(tmp), ")");
+	else
+		snprintf(tmp, sizeof(tmp), ") %c", flag);
 	if (sizeof(buf) > strlen(buf) + strlen(tmp))
 		strcat(buf, tmp);
 
@@ -1567,14 +1582,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;
@@ -1668,116 +1688,64 @@ group_catchup(
 }
 
 
-static int
+static t_bool
 prompt_getart_limit(
 	void)
 {
 	char *p;
-	int num = 0;
+	t_bool ret = FALSE;
 
 	clear_message();
-	if ((p = tin_getline(_(txt_enter_getart_limit), 2, 0, 0, FALSE, HIST_OTHER)) != NULL)
-		num = atoi(p);
-
+	if ((p = tin_getline(_(txt_enter_getart_limit), 2, 0, 0, FALSE, HIST_OTHER)) != NULL) {
+		tinrc.getart_limit = atoi(p);
+		ret = TRUE;
+	}
 	clear_message();
-	return num;
+	return ret;
 }
 
 
 /*
- * If there's an active range, use that one.
- * If there are any tagged and unread articles, prompt user to mark either
- * all tagged arts/threads as read, or only current thread, or cancel operation.
- * Otherwise, use current thread.
- * Finally move to next unread thread.
+ * Redraw all necessary parts of the screen after FEED_MARK_(UN)READ
+ * Move cursor to next unread item if needed
+ *
+ * Returns TRUE when no next unread art, FALSE otherwise
  */
-static void
-mark_thd_read(
-	struct t_group *group,
-	t_bool range_active)
-{
-	char keytagged[MAXKEYLEN], keycurrent[MAXKEYLEN], keyquit[MAXKEYLEN];
-	t_function func = MARK_READ_CURRENT;
-	int n, cnt = 0;
-	int tmp_num_of_tagged_arts = num_of_tagged_arts;
+t_bool
+group_mark_postprocess(
+	int function,
+	t_function feed_type,
+	int respnum)
+{
+	int n;
 
-	if (grpmenu.curr < 0) {
-		info_message(_(txt_no_next_unread_art));
-		return;
-	}
+	show_group_title(TRUE);
+	switch (function) {
+		case (FEED_MARK_READ):
+			if (feed_type == FEED_THREAD || feed_type == FEED_ARTICLE)
+				build_sline(grpmenu.curr);
+			else
+				show_group_page();
 
-	/* Don't prompt if there's an active range or if prompting is turned off */
-	if (!range_active && !tinrc.mark_ignore_tags && got_tagged_unread_arts()) {
-		func = prompt_slk_response(MARK_READ_TAGGED, mark_read_keys,
-				_(txt_mark_thread_read_tagged_current),
-				printascii(keytagged, func_to_key(MARK_READ_TAGGED, mark_read_keys)),
-				printascii(keycurrent, func_to_key(MARK_READ_CURRENT, mark_read_keys)),
-				printascii(keyquit, func_to_key(GLOBAL_QUIT, mark_read_keys)));
-	}
+			if ((n = next_unread(next_response(respnum))) == -1) {
+				draw_subject_arrow();
+				return TRUE;
+			}
 
-	switch (func) {
-		case MARK_READ_TAGGED: /* mark tagged unread articles/threads as read */
-			cnt = mark_tagged_read(group);
+			move_to_item(which_thread(n));
 			break;
 
-		case MARK_READ_CURRENT: /* mark current thread/range as read */
-			/*
-			 * If a range is active, use it.
-			 */
-			if (range_active) {
-				/*
-				 * We check all arts, in case the user did something clever like
-				 * change the threading mode on us since the range was created
-				 */
-				for_each_art(n) {
-					if (arts[n].inrange) {
-						arts[n].inrange = FALSE;	/* Clear the range */
-						art_mark(group, &arts[n], ART_READ);
-					}
-				}
-			}
+		case (FEED_MARK_UNREAD):
+			if (feed_type == FEED_THREAD || feed_type == FEED_ARTICLE)
+				build_sline(grpmenu.curr);
 			else
-				thd_mark_read(group, base[grpmenu.curr]);
+				show_group_page();
+
+			draw_subject_arrow();
 			break;
 
-		case GLOBAL_QUIT: /* cancel operation */
-		case GLOBAL_ABORT:
 		default:
-			return;
-			/* NOTREACHED */
 			break;
 	}
-
-	/*
-	 * update the header
-	 */
-	show_group_title(TRUE);
-
-	/*
-	 * Refresh current line or, if necessary, whole group page
-	 */
-	if (range_active || func == MARK_READ_TAGGED)
-		show_group_page();
-	else
-		build_sline(grpmenu.curr);
-
-	/*
-	 * Move cursor to next unread
-	 */
-	if ((n = next_unread(next_response((int) base[grpmenu.curr]))) < 0) {
-		draw_subject_arrow();
-		info_message(_(txt_no_next_unread_art));
-		return;
-	}
-
-	if ((n = which_thread(n)) < 0) {
-		/* TODO: -> lang.c */
-		error_message("Internal error: which_thread(%d) < 0", n);
-		return;
-	}
-
-	move_to_item(n);
-
-	if (func == MARK_READ_TAGGED)
-		info_message(_(txt_marked_tagged_arts_as_read), cnt, tmp_num_of_tagged_arts, PLURAL(tmp_num_of_tagged_arts, txt_article));
+	return FALSE;
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/hashstr.c tin-2.0.0/src/hashstr.c
--- tin-1.8.3/src/hashstr.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/hashstr.c	2011-04-17 16:04:30.627099585 +0200
@@ -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-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
 
  * All rights reserved.
  *
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/header.c tin-2.0.0/src/header.c
--- tin-1.8.3/src/header.c	2006-01-19 23:41:13.000000000 +0100
+++ tin-2.0.0/src/header.c	2011-04-17 16:04:30.651103239 +0200
@@ -3,9 +3,9 @@
  *  Module    : header.c
  *  Author    : Urs Janssen <urs@tin.org>
  *  Created   : 1997-03-10
- *  Updated   : 2006-01-10
+ *  Updated   : 2008-11-22
  *
- * Copyright (c) 1997-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1997-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -59,7 +59,7 @@ get_host_name(
 #endif /* HAVE_GETHOSTNAME */
 #ifdef HAVE_SYS_UTSNAME_H
 	if (!*hostname)
-		strncpy(hostname, system_info.nodename, sizeof(hostname) - 1);
+		my_strncpy(hostname, system_info.nodename, sizeof(hostname) - 1);
 #endif /* HAVE_SYS_UTSNAME_H */
 	if (!*hostname) {
 		if ((ptr = getenv("HOST")) != NULL)
@@ -80,8 +80,6 @@ get_host_name(
 /*
  * find domainname - check DOMAIN_NAME
  * TODO: check /etc/defaultdomain as a last resort?
- *       there is M_UNIX specific code in here, but no VMS
- *       alternative
  */
 const char *
 get_domain_name(
@@ -135,7 +133,7 @@ get_fqdn(
 	char name[MAXHOSTNAMELEN + 1];
 	static char fqdn[1024];
 	struct hostent *hp;
-	struct in_addr in;
+	struct in_addr in = {0};
 
 	*fqdn = '\0';
 	domain = NULL;
@@ -144,7 +142,7 @@ get_fqdn(
 	if (host) {
 		if (strchr(host, '.'))
 			return host;
-		strncpy(name, host, sizeof(name) - 1);
+		my_strncpy(name, host, sizeof(name) - 1);
 	} else {
 #	ifdef HAVE_GETHOSTNAME
 		if (gethostname(name, sizeof(name) - 1))
@@ -231,32 +229,18 @@ get_user_name(
 {
 	static char username[128];
 	struct passwd *pw;
-#ifdef VMS
-	char *p;
-#endif /* VMS */
 
 	username[0] = '\0';
 
-#ifndef VMS
 	if ((pw = getpwuid(getuid())) != NULL)
 		strcpy(username, pw->pw_name);
-	else
-#else
-	if (((p = getlogin()) != NULL) && strlen(p)) {
-		if ((pw = getpwnam(p)) != NULL)
-			strcpy(username, pw->pw_name);
-	}
-#endif /* !VMS */
-
-	if (!*username) {
-		error_message(_(txt_error_passwd_missing));
-		tin_done(EXIT_FAILURE);
+	else {
+		if (!*username) {
+			error_message(2, _(txt_error_passwd_missing));
+			tin_done(EXIT_FAILURE);
+		}
 	}
 
-#	ifdef VMS
-	lower(username);
-#	endif /* VMS */
-
 	return username;
 }
 
@@ -267,11 +251,11 @@ get_full_name(
 {
 	char *p;
 	static char fullname[128];
-#	if !defined(VMS) && !defined(DONT_HAVE_PW_GECOS)
+#	ifndef DONT_HAVE_PW_GECOS
 	char buf[128];
 	char tmp[128];
 	struct passwd *pw;
-#	endif /* !VMS && !DONT_HAVE_PW_GECOS */
+#	endif /* !DONT_HAVE_PW_GECOS */
 
 	fullname[0] = '\0';
 
@@ -284,10 +268,7 @@ get_full_name(
 		return fullname;
 	}
 
-#	ifdef VMS
-	STRCPY(fullname, fix_fullname(get_uaf_fullname()));
-#	else
-#		ifndef DONT_HAVE_PW_GECOS
+#	ifndef DONT_HAVE_PW_GECOS
 	if ((pw = getpwuid(getuid())) != NULL) {
 		STRCPY(buf, pw->pw_gecos);
 		if ((p = strchr(buf, ',')))
@@ -301,8 +282,7 @@ get_full_name(
 		} else
 			STRCPY(fullname, buf);
 	}
-#		endif /* !DONT_HAVE_PW_GECOS */
-#	endif /* VMS */
+#	endif /* !DONT_HAVE_PW_GECOS */
 	return fullname;
 }
 
@@ -319,14 +299,7 @@ get_from_name(
 	char *from_name,
 	struct t_group *thisgrp)
 {
-#	ifdef USE_INN_NNTPLIB
-	char *fromhost = GetConfigValue(_CONF_FROMHOST);
-#	else
-	char *fromhost = NULL;
-#	endif /* USE_INN_NNTPLIB */
-
-	if (!(fromhost && *fromhost))
-		fromhost = domain_name;
+	char *fromhost = domain_name;
 
 	if (thisgrp && *thisgrp->attribute->from != '\0') {
 		strcpy(from_name, thisgrp->attribute->from);
@@ -336,8 +309,8 @@ get_from_name(
 	sprintf(from_name, ((strpbrk(get_full_name(), "!()<>@,;:\\\".[]")) ? "\"%s\" <%s@%s>" : "%s <%s@%s>"), get_full_name(), get_user_name(), fromhost);
 
 #	ifdef DEBUG
-	if (debug == 2)
-		error_message("FROM=[%s] USER=[%s] HOST=[%s] NAME=[%s]", from_name, get_user_name(), domain_name, get_full_name());
+	if (debug & DEBUG_MISC)
+		error_message(2, "FROM=[%s] USER=[%s] HOST=[%s] NAME=[%s]", from_name, get_user_name(), domain_name, get_full_name());
 #	endif /* DEBUG */
 
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/help.c tin-2.0.0/src/help.c
--- tin-1.8.3/src/help.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/help.c	2011-04-17 16:04:30.679107500 +0200
@@ -3,10 +3,10 @@
  *  Module    : help.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-01-25
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -56,6 +56,154 @@ static void make_help_page(FILE *fp, con
 
 static constext txt_help_empty_line[] = "";
 
+static t_help_page attachment_help_page[] = {
+	{ txt_help_title_navi, NOT_ASSIGNED },
+	{ txt_help_global_page_down, GLOBAL_PAGE_DOWN },
+	{ txt_help_global_page_up, GLOBAL_PAGE_UP },
+	{ txt_help_global_line_down, GLOBAL_LINE_DOWN },
+	{ txt_help_global_line_up, GLOBAL_LINE_UP },
+	{ txt_help_global_scroll_down, GLOBAL_SCROLL_DOWN },
+	{ txt_help_global_scroll_up, GLOBAL_SCROLL_UP },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_attachment_first, GLOBAL_FIRST_PAGE },
+	{ txt_help_attachment_last, GLOBAL_LAST_PAGE },
+	{ txt_help_attachment_goto, NOT_ASSIGNED },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_disp, NOT_ASSIGNED },
+	{ txt_help_attachment_toggle_info_line, GLOBAL_TOGGLE_INFO_LAST_LINE },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_attachment_ops, NOT_ASSIGNED },
+	{ txt_help_attachment_select, ATTACHMENT_SELECT },
+#ifndef DONT_HAVE_PIPING
+	{ txt_help_attachment_pipe, ATTACHMENT_PIPE },
+	{ txt_help_attachment_pipe_raw, GLOBAL_PIPE },
+#endif /* !DONT_HAVE_PIPING */
+	{ txt_help_attachment_save, ATTACHMENT_SAVE },
+	{ txt_help_attachment_tag, ATTACHMENT_TAG },
+	{ txt_help_attachment_tag_pattern, ATTACHMENT_TAG_PATTERN },
+	{ txt_help_attachment_toggle_tagged, ATTACHMENT_TOGGLE_TAGGED },
+	{ txt_help_attachment_untag, ATTACHMENT_UNTAG },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_attachment_search_forwards, GLOBAL_SEARCH_SUBJECT_FORWARD },
+	{ txt_help_attachment_search_backwards, GLOBAL_SEARCH_SUBJECT_BACKWARD },
+	{ txt_help_global_search_repeat, GLOBAL_SEARCH_REPEAT },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_misc, NOT_ASSIGNED },
+	{ txt_help_select_quit, GLOBAL_QUIT },
+	{ txt_help_global_help, GLOBAL_HELP },
+	{ txt_help_global_toggle_mini_help, GLOBAL_TOGGLE_HELP_DISPLAY },
+	{ txt_help_global_redraw_screen, GLOBAL_REDRAW_SCREEN },
+#ifndef NO_SHELL_ESCAPE
+	{ txt_help_global_shell_escape, GLOBAL_SHELL_ESCAPE },
+#endif /* !NO_SHELL_ESCAPE */
+	{ NULL, NOT_ASSIGNED }
+};
+
+static t_help_page attrib_help_page[] = {
+	{ txt_help_title_navi, NOT_ASSIGNED },
+	{ txt_help_global_page_down, GLOBAL_PAGE_DOWN },
+	{ txt_help_global_page_up, GLOBAL_PAGE_UP },
+	{ txt_help_global_line_down, GLOBAL_LINE_DOWN },
+	{ txt_help_global_line_up, GLOBAL_LINE_UP },
+	{ txt_help_global_scroll_down, GLOBAL_SCROLL_DOWN },
+	{ txt_help_global_scroll_up, GLOBAL_SCROLL_UP },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_attrib_first_opt, GLOBAL_FIRST_PAGE },
+	{ txt_help_attrib_last_opt, GLOBAL_LAST_PAGE },
+	{ txt_help_attrib_goto_opt, NOT_ASSIGNED },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_attrib_search_opt_forwards, GLOBAL_SEARCH_SUBJECT_FORWARD },
+	{ txt_help_attrib_search_opt_backwards, GLOBAL_SEARCH_SUBJECT_BACKWARD },
+	{ txt_help_select_search_group_comment, NOT_ASSIGNED },
+	{ txt_help_global_search_repeat, GLOBAL_SEARCH_REPEAT },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_attrib_ops, NOT_ASSIGNED },
+	{ txt_help_attrib_reset_attrib, CONFIG_RESET_ATTRIB },
+	{ txt_help_attrib_select, CONFIG_SELECT },
+	{ txt_help_attrib_toggle_attrib, CONFIG_TOGGLE_ATTRIB },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_misc, NOT_ASSIGNED },
+	{ txt_help_select_quit, GLOBAL_QUIT },
+	{ txt_help_select_quit_no_write, CONFIG_NO_SAVE },
+	{ txt_help_global_help, GLOBAL_HELP },
+	{ txt_help_global_redraw_screen, GLOBAL_REDRAW_SCREEN },
+#ifndef NO_SHELL_ESCAPE
+	{ txt_help_global_shell_escape, GLOBAL_SHELL_ESCAPE },
+#endif /* !NO_SHELL_ESCAPE */
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_global_version, GLOBAL_VERSION },
+	{ NULL, NOT_ASSIGNED }
+};
+
+static t_help_page config_help_page[] = {
+	{ txt_help_title_navi, NOT_ASSIGNED },
+	{ txt_help_global_page_down, GLOBAL_PAGE_DOWN },
+	{ txt_help_global_page_up, GLOBAL_PAGE_UP },
+	{ txt_help_global_line_down, GLOBAL_LINE_DOWN },
+	{ txt_help_global_line_up, GLOBAL_LINE_UP },
+	{ txt_help_global_scroll_down, GLOBAL_SCROLL_DOWN },
+	{ txt_help_global_scroll_up, GLOBAL_SCROLL_UP },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_config_first_opt, GLOBAL_FIRST_PAGE },
+	{ txt_help_config_last_opt, GLOBAL_LAST_PAGE },
+	{ txt_help_config_goto_opt, NOT_ASSIGNED },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_config_search_opt_forwards, GLOBAL_SEARCH_SUBJECT_FORWARD },
+	{ txt_help_config_search_opt_backwards, GLOBAL_SEARCH_SUBJECT_BACKWARD },
+	{ txt_help_select_search_group_comment, NOT_ASSIGNED },
+	{ txt_help_global_search_repeat, GLOBAL_SEARCH_REPEAT },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_config_ops, NOT_ASSIGNED },
+	{ txt_help_config_select, CONFIG_SELECT },
+	{ txt_help_config_toggle_attrib, CONFIG_TOGGLE_ATTRIB },
+	{ txt_help_config_scope_menu, CONFIG_SCOPE_MENU },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_misc, NOT_ASSIGNED },
+	{ txt_help_select_quit, GLOBAL_QUIT },
+	{ txt_help_select_quit_no_write, CONFIG_NO_SAVE },
+	{ txt_help_global_help, GLOBAL_HELP },
+	{ txt_help_global_redraw_screen, GLOBAL_REDRAW_SCREEN },
+#ifndef NO_SHELL_ESCAPE
+	{ txt_help_global_shell_escape, GLOBAL_SHELL_ESCAPE },
+#endif /* !NO_SHELL_ESCAPE */
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_global_version, GLOBAL_VERSION },
+	{ NULL, NOT_ASSIGNED }
+};
+
+static t_help_page scope_help_page[] = {
+	{ txt_help_title_navi, NOT_ASSIGNED },
+	{ txt_help_global_page_down, GLOBAL_PAGE_DOWN },
+	{ txt_help_global_page_up, GLOBAL_PAGE_UP },
+	{ txt_help_global_line_down, GLOBAL_LINE_DOWN },
+	{ txt_help_global_line_up, GLOBAL_LINE_UP },
+	{ txt_help_global_scroll_down, GLOBAL_SCROLL_DOWN },
+	{ txt_help_global_scroll_up, GLOBAL_SCROLL_UP },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_scope_first_scope, GLOBAL_FIRST_PAGE },
+	{ txt_help_scope_last_scope, GLOBAL_LAST_PAGE },
+	{ txt_help_scope_goto_scope, NOT_ASSIGNED },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_scope_ops, NOT_ASSIGNED },
+	{ txt_help_scope_add, SCOPE_ADD },
+	{ txt_help_scope_move, SCOPE_MOVE },
+	{ txt_help_scope_rename, SCOPE_RENAME },
+	{ txt_help_scope_del, SCOPE_DELETE },
+	{ txt_help_scope_select, SCOPE_SELECT },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_scope_edit_attrib_file, SCOPE_EDIT_ATTRIBUTES_FILE },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_misc, NOT_ASSIGNED },
+	{ txt_help_select_quit, GLOBAL_QUIT },
+	{ txt_help_global_help, GLOBAL_HELP },
+	{ txt_help_global_toggle_mini_help, GLOBAL_TOGGLE_HELP_DISPLAY },
+	{ txt_help_global_redraw_screen, GLOBAL_REDRAW_SCREEN },
+#ifndef NO_SHELL_ESCAPE
+	{ txt_help_global_shell_escape, GLOBAL_SHELL_ESCAPE },
+#endif /* !NO_SHELL_ESCAPE */
+	{ NULL, NOT_ASSIGNED }
+};
+
 static t_help_page select_help_page[] = {
 	{ txt_help_title_navi, NOT_ASSIGNED },
 	{ txt_help_global_page_down, GLOBAL_PAGE_DOWN },
@@ -180,6 +328,7 @@ static t_help_page group_help_page[] = {
 	{ txt_help_global_post, GLOBAL_POST },
 	{ txt_help_global_post_postponed, GLOBAL_POSTPONED },
 	{ txt_help_article_repost, GROUP_REPOST },
+	{ txt_help_article_cancel, GROUP_CANCEL },
 #endif /* NO_POSTING */
 	{ txt_help_empty_line, NOT_ASSIGNED },
 	{ txt_help_global_article_range, GLOBAL_SET_RANGE },
@@ -203,6 +352,8 @@ static t_help_page group_help_page[] = {
 	{ txt_help_group_catchup_next, CATCHUP_NEXT_UNREAD },
 	{ txt_help_group_mark_article_unread, MARK_ARTICLE_UNREAD },
 	{ txt_help_group_mark_thread_unread, MARK_THREAD_UNREAD },
+	{ txt_help_mark_feed_read, MARK_FEED_READ },
+	{ txt_help_mark_feed_unread, MARK_FEED_UNREAD },
 	{ txt_help_empty_line, NOT_ASSIGNED },
 	{ txt_help_group_select_all, GROUP_DO_AUTOSELECT },
 	{ txt_help_group_select_thread, GROUP_SELECT_THREAD },
@@ -273,6 +424,7 @@ static t_help_page thread_help_page[] = 
 #ifndef NO_POSTING
 	{ txt_help_global_post, GLOBAL_POST },
 	{ txt_help_global_post_postponed, GLOBAL_POSTPONED },
+	{ txt_help_article_cancel, THREAD_CANCEL },
 #endif /* NO_POSTING */
 	{ txt_help_empty_line, NOT_ASSIGNED },
 	{ txt_help_global_article_range, GLOBAL_SET_RANGE },
@@ -293,8 +445,10 @@ static t_help_page thread_help_page[] = 
 	{ txt_help_thread_mark_article_read, THREAD_MARK_ARTICLE_READ },
 	{ txt_help_thread_catchup, CATCHUP },
 	{ txt_help_thread_catchup_next_unread, CATCHUP_NEXT_UNREAD },
-	{ txt_help_group_mark_article_unread, MARK_ARTICLE_UNREAD },
-	{ txt_help_group_mark_thread_unread, MARK_THREAD_UNREAD },
+	{ txt_help_thread_mark_article_unread, MARK_ARTICLE_UNREAD },
+	{ txt_help_thread_mark_thread_unread, MARK_THREAD_UNREAD },
+	{ txt_help_mark_feed_read, MARK_FEED_READ },
+	{ txt_help_mark_feed_unread, MARK_FEED_UNREAD },
 	{ txt_help_empty_line, NOT_ASSIGNED },
 	{ txt_help_group_select_thread, THREAD_SELECT_ARTICLE },
 	{ txt_help_group_toggle_thread_selection, THREAD_TOGGLE_ARTICLE_SELECTION },
@@ -326,7 +480,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 },
@@ -361,7 +514,8 @@ static t_help_page page_help_page[] = {
 	{ txt_help_global_toggle_info_line, GLOBAL_TOGGLE_INFO_LAST_LINE },
 	{ txt_help_article_toggle_rot13, PAGE_TOGGLE_ROT13 },
 	{ txt_help_global_toggle_inverse_video, GLOBAL_TOGGLE_INVERSE_VIDEO },
-	{ txt_help_article_show_raw, PAGE_TOGGLE_HEADERS },
+	{ txt_help_article_show_raw, PAGE_TOGGLE_RAW },
+	{ txt_help_article_toggle_headers, PAGE_TOGGLE_HEADERS },
 #ifdef HAVE_COLOR
 	{ txt_help_global_toggle_color, GLOBAL_TOGGLE_COLOR },
 #endif /* HAVE_COLOR */
@@ -403,7 +557,7 @@ static t_help_page page_help_page[] = {
 	{ txt_help_thread_catchup, CATCHUP },
 	{ txt_help_thread_catchup_next_unread, CATCHUP_NEXT_UNREAD },
 	{ txt_help_group_mark_article_unread, MARK_ARTICLE_UNREAD },
-	{ txt_help_group_mark_thread_unread, MARK_THREAD_UNREAD },
+	{ txt_help_thread_mark_thread_unread, MARK_THREAD_UNREAD },
 	{ txt_help_empty_line, NOT_ASSIGNED },
 	{ txt_help_article_autoselect, GLOBAL_MENU_FILTER_SELECT },
 	{ txt_help_article_autokill, GLOBAL_MENU_FILTER_KILL },
@@ -433,6 +587,41 @@ static t_help_page page_help_page[] = {
 	{ NULL, NOT_ASSIGNED }
 };
 
+static t_help_page url_help_page[] = {
+	{ txt_help_title_navi, NOT_ASSIGNED },
+	{ txt_help_global_page_down, GLOBAL_PAGE_DOWN },
+	{ txt_help_global_page_up, GLOBAL_PAGE_UP },
+	{ txt_help_global_line_down, GLOBAL_LINE_DOWN },
+	{ txt_help_global_line_up, GLOBAL_LINE_UP },
+	{ txt_help_global_scroll_down, GLOBAL_SCROLL_DOWN },
+	{ txt_help_global_scroll_up, GLOBAL_SCROLL_UP },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_url_first_url, GLOBAL_FIRST_PAGE },
+	{ txt_help_url_last_url, GLOBAL_LAST_PAGE },
+	{ txt_help_url_goto_url, NOT_ASSIGNED },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_url_ops, NOT_ASSIGNED },
+	{ txt_help_url_select, URL_SELECT },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_url_search_forwards, GLOBAL_SEARCH_SUBJECT_FORWARD },
+	{ txt_help_url_search_backwards, GLOBAL_SEARCH_SUBJECT_BACKWARD },
+	{ txt_help_global_search_repeat, GLOBAL_SEARCH_REPEAT },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_disp, NOT_ASSIGNED },
+	{ txt_help_url_toggle_info_line, GLOBAL_TOGGLE_INFO_LAST_LINE },
+	{ txt_help_empty_line, NOT_ASSIGNED },
+	{ txt_help_title_misc, NOT_ASSIGNED },
+	{ txt_help_select_quit, GLOBAL_QUIT },
+	{ txt_help_global_help, GLOBAL_HELP },
+	{ txt_help_global_toggle_mini_help, GLOBAL_TOGGLE_HELP_DISPLAY },
+	{ txt_help_global_esc, GLOBAL_ABORT },
+	{ txt_help_global_redraw_screen, GLOBAL_REDRAW_SCREEN },
+#ifndef NO_SHELL_ESCAPE
+	{ txt_help_global_shell_escape, GLOBAL_SHELL_ESCAPE },
+#endif /* !NO_SHELL_ESCAPE */
+	{ NULL, NOT_ASSIGNED }
+};
+
 
 static void
 make_help_page(
@@ -447,7 +636,7 @@ make_help_page(
 	 * length is only needed to pass it to expand_ctrl_chars()
 	 * we have no need for the value
 	 */
-	int length;
+	size_t length;
 	size_t i;
 
 	if (!helppage)
@@ -458,18 +647,18 @@ make_help_page(
 	while (helppage->helptext) {
 		if (helppage->func == NOT_ASSIGNED) {
 			/*
-			 * as expand_ctrl_chars() may has shrinked buf
+			 * as expand_ctrl_chars() may has shrunk buf
 			 * make sure buf is large enough to contain the helpline
 			 */
 			buf = my_realloc(buf, LEN);
 
 			if (!strlen(helppage->helptext))	/* avoid translation of empty strings */
-				snprintf(buf, LEN, "\n");
+				strcpy(buf, "\n");
 			else
-				snprintf(buf, LEN, "%s", _(helppage->helptext));
+				strncpy(buf, _(helppage->helptext), LEN);
 			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 +667,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);
 					}
 				}
@@ -503,6 +692,22 @@ show_help_page(
 		return;
 
 	switch (level) {
+		case ATTACHMENT_LEVEL:
+			make_help_page(fp, attachment_help_page, attachment_keys);
+			break;
+
+		case ATTRIB_LEVEL:
+			make_help_page(fp, attrib_help_page, option_menu_keys);
+			break;
+
+		case CONFIG_LEVEL:
+			make_help_page(fp, config_help_page, option_menu_keys);
+			break;
+
+		case SCOPE_LEVEL:
+			make_help_page(fp, scope_help_page, scope_keys);
+			break;
+
 		case SELECT_LEVEL:
 			make_help_page(fp, select_help_page, select_keys);
 			break;
@@ -519,15 +724,20 @@ show_help_page(
 			make_help_page(fp, page_help_page, page_keys);
 			break;
 
+		case URL_LEVEL:
+			make_help_page(fp, url_help_page, url_keys);
+			break;
+
 		case INFO_PAGER:
 		default: /* should not happen */
-			error_message(_(txt_error_unknown_dlevel));
+			error_message(2, _(txt_error_unknown_dlevel));
 			fclose(fp);
 			return;
 	}
 
 	info_pager(fp, title, TRUE);
 	fclose(fp);
+	info_pager(NULL, NULL, TRUE); /* free mem */
 	return;
 }
 
@@ -545,13 +755,61 @@ show_mini_help(
 		return;
 
 	line = NOTESLINES + MINI_HELP_LINES - 2;
-	bufs = (size_t) MIN((unsigned) cCOLS, (sizeof(buf) - 1));
+	bufs = sizeof(buf) - 1;
 
 #ifdef HAVE_COLOR
 	fcol(tinrc.col_minihelp);
 #endif /* HAVE_COLOR */
 
 	switch (level) {
+		case ATTACHMENT_LEVEL:
+			snprintf(buf, bufs, _(txt_mini_attachment_1),
+				printascii(key[0], func_to_key(GLOBAL_LINE_DOWN, attachment_keys)),
+				printascii(key[1], func_to_key(GLOBAL_LINE_UP, attachment_keys)),
+				printascii(key[2], func_to_key(GLOBAL_HELP, attachment_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, attachment_keys)));
+			center_line(line, FALSE, buf);
+#ifndef DONT_HAVE_PIPING
+			snprintf(buf, bufs, _(txt_mini_attachment_2),
+				printascii(key[0], func_to_key(ATTACHMENT_SELECT, attachment_keys)),
+				printascii(key[5], func_to_key(ATTACHMENT_PIPE, attachment_keys)),
+				printascii(key[6], func_to_key(GLOBAL_PIPE, attachment_keys)),
+				printascii(key[1], func_to_key(ATTACHMENT_SAVE, attachment_keys)),
+				printascii(key[2], func_to_key(ATTACHMENT_TAG, attachment_keys)),
+				printascii(key[3], func_to_key(ATTACHMENT_TAG_PATTERN, attachment_keys)),
+				printascii(key[4], func_to_key(ATTACHMENT_UNTAG, attachment_keys)));
+#else
+			snprintf(buf, bufs, _(txt_mini_attachment_2),
+				printascii(key[0], func_to_key(ATTACHMENT_SELECT, attachment_keys)),
+				printascii(key[1], func_to_key(ATTACHMENT_SAVE, attachment_keys)),
+				printascii(key[2], func_to_key(ATTACHMENT_TAG, attachment_keys)),
+				printascii(key[3], func_to_key(ATTACHMENT_TAG_PATTERN, attachment_keys)),
+				printascii(key[4], func_to_key(ATTACHMENT_UNTAG, attachment_keys)));
+#endif /* !DONT_HAVE_PIPING */
+			center_line(line + 1, FALSE, buf);
+			snprintf(buf, bufs, _(txt_mini_attachment_3),
+				printascii(key[1], func_to_key(ATTACHMENT_TOGGLE_TAGGED, attachment_keys)),
+				printascii(key[2], func_to_key(GLOBAL_SEARCH_SUBJECT_FORWARD, attachment_keys)),
+				printascii(key[3], func_to_key(GLOBAL_SEARCH_SUBJECT_BACKWARD, attachment_keys)),
+				printascii(key[4], func_to_key(GLOBAL_SEARCH_REPEAT, attachment_keys)));
+			center_line(line + 2, FALSE, buf);
+			break;
+
+		case SCOPE_LEVEL:
+			snprintf(buf, bufs, _(txt_mini_scope_1),
+				printascii(key[0], func_to_key(SCOPE_ADD, scope_keys)),
+				printascii(key[1], func_to_key(SCOPE_MOVE, scope_keys)),
+				printascii(key[2], func_to_key(SCOPE_RENAME, scope_keys)),
+				printascii(key[3], func_to_key(SCOPE_DELETE, scope_keys)));
+			center_line(line, FALSE, buf);
+			snprintf(buf, bufs, _(txt_mini_scope_2),
+				printascii(key[0], func_to_key(GLOBAL_LINE_DOWN, scope_keys)),
+				printascii(key[1], func_to_key(GLOBAL_LINE_UP, scope_keys)),
+				printascii(key[2], func_to_key(GLOBAL_HELP, scope_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, scope_keys)));
+			center_line(line + 1, FALSE, buf);
+			break;
+
 		case SELECT_LEVEL:
 			snprintf(buf, bufs, _(txt_mini_select_1),
 				printascii(key[0], func_to_key(SELECT_ENTER_NEXT_UNREAD_GROUP, select_keys)),
@@ -590,19 +848,48 @@ show_mini_help(
 				printascii(key[4], func_to_key(GROUP_MARK_THREAD_READ, group_keys)),
 				printascii(key[5], func_to_key(GROUP_LIST_THREAD, group_keys)));
 			center_line(line + 1, FALSE, buf);
+
+#if defined(DONT_HAVE_PIPING) && defined(DISABLE_PRINTING)
+			snprintf(buf, bufs, _(txt_mini_group_3),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, group_keys)),
+				printascii(key[4], func_to_key(GROUP_TOGGLE_READ_UNREAD, group_keys)),
+				printascii(key[5], func_to_key(GROUP_SAVE, group_keys)),
+				printascii(key[6], func_to_key(GROUP_TAG, group_keys)),
+				printascii(key[7], func_to_key(GLOBAL_POST, group_keys)));
+#else
+#	ifdef DONT_HAVE_PIPING
+			snprintf(buf, bufs, _(txt_mini_group_3),
+				printascii(key[1], func_to_key(GROUP_MAIL, group_keys)),
+				printascii(key[2], func_to_key(GLOBAL_PRINT, group_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, group_keys)),
+				printascii(key[4], func_to_key(GROUP_TOGGLE_READ_UNREAD, group_keys)),
+				printascii(key[5], func_to_key(GROUP_SAVE, group_keys)),
+				printascii(key[6], func_to_key(GROUP_TAG, group_keys)),
+				printascii(key[7], func_to_key(GLOBAL_POST, group_keys)));
+#	else
+#		ifdef DISABLE_PRINTING
+			snprintf(buf, bufs, _(txt_mini_group_3),
+				printascii(key[0], func_to_key(GLOBAL_PIPE, group_keys)),
+				printascii(key[1], func_to_key(GROUP_MAIL, group_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, group_keys)),
+				printascii(key[4], func_to_key(GROUP_TOGGLE_READ_UNREAD, group_keys)),
+				printascii(key[5], func_to_key(GROUP_SAVE, group_keys)),
+				printascii(key[6], func_to_key(GROUP_TAG, group_keys)),
+				printascii(key[7], func_to_key(GLOBAL_POST, group_keys)));
+#		else
 			snprintf(buf, bufs, _(txt_mini_group_3),
-#ifndef DONT_HAVE_PIPING
 				printascii(key[0], func_to_key(GLOBAL_PIPE, group_keys)),
-#endif /* !DONT_HAVE_PIPING */
 				printascii(key[1], func_to_key(GROUP_MAIL, group_keys)),
-#ifndef DISABLE_PRINTING
 				printascii(key[2], func_to_key(GLOBAL_PRINT, group_keys)),
-#endif /* !DISABLE_PRINTING */
 				printascii(key[3], func_to_key(GLOBAL_QUIT, group_keys)),
 				printascii(key[4], func_to_key(GROUP_TOGGLE_READ_UNREAD, group_keys)),
 				printascii(key[5], func_to_key(GROUP_SAVE, group_keys)),
 				printascii(key[6], func_to_key(GROUP_TAG, group_keys)),
 				printascii(key[7], func_to_key(GLOBAL_POST, group_keys)));
+#		endif /* DISABLE_PRINTING */
+#	endif /* DONT_HAVE_PIPING */
+#endif /* DONT_HAVE_PIPING && DISABLE_PRINTING */
+
 			center_line(line + 2, FALSE, buf);
 			break;
 
@@ -635,22 +922,66 @@ show_mini_help(
 				printascii(key[3], func_to_key(PAGE_FOLLOWUP_QUOTE, page_keys)),
 				printascii(key[4], func_to_key(PAGE_MARK_THREAD_READ, page_keys)));
 			center_line(line + 1, FALSE, buf);
+
+#if defined(DONT_HAVE_PIPING) && defined(DISABLE_PRINTING)
+			snprintf(buf, bufs, _(txt_mini_page_3),
+				printascii(key[1], func_to_key(PAGE_MAIL, page_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, page_keys)),
+				printascii(key[4], func_to_key(PAGE_REPLY_QUOTE, page_keys)),
+				printascii(key[5], func_to_key(PAGE_SAVE, page_keys)),
+				printascii(key[6], func_to_key(PAGE_TAG, page_keys)),
+				printascii(key[7], func_to_key(GLOBAL_POST, page_keys)));
+#else
+#	ifdef DONT_HAVE_PIPING
+			snprintf(buf, bufs, _(txt_mini_page_3),
+				printascii(key[1], func_to_key(PAGE_MAIL, page_keys)),
+				printascii(key[2], func_to_key(GLOBAL_PRINT, page_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, page_keys)),
+				printascii(key[4], func_to_key(PAGE_REPLY_QUOTE, page_keys)),
+				printascii(key[5], func_to_key(PAGE_SAVE, page_keys)),
+				printascii(key[6], func_to_key(PAGE_TAG, page_keys)),
+				printascii(key[7], func_to_key(GLOBAL_POST, page_keys)));
+#	else
+#		ifdef DISABLE_PRINTING
+			snprintf(buf, bufs, _(txt_mini_page_3),
+				printascii(key[0], func_to_key(GLOBAL_PIPE, page_keys)),
+				printascii(key[1], func_to_key(PAGE_MAIL, page_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, page_keys)),
+				printascii(key[4], func_to_key(PAGE_REPLY_QUOTE, page_keys)),
+				printascii(key[5], func_to_key(PAGE_SAVE, page_keys)),
+				printascii(key[6], func_to_key(PAGE_TAG, page_keys)),
+				printascii(key[7], func_to_key(GLOBAL_POST, page_keys)));
+#		else
 			snprintf(buf, bufs, _(txt_mini_page_3),
-#ifndef DONT_HAVE_PIPING
 				printascii(key[0], func_to_key(GLOBAL_PIPE, page_keys)),
-#endif /* !DONT_HAVE_PIPING */
 				printascii(key[1], func_to_key(PAGE_MAIL, page_keys)),
-#ifndef DISABLE_PRINTING
 				printascii(key[2], func_to_key(GLOBAL_PRINT, page_keys)),
-#endif /* !DISABLE_PRINTING */
 				printascii(key[3], func_to_key(GLOBAL_QUIT, page_keys)),
 				printascii(key[4], func_to_key(PAGE_REPLY_QUOTE, page_keys)),
 				printascii(key[5], func_to_key(PAGE_SAVE, page_keys)),
 				printascii(key[6], func_to_key(PAGE_TAG, page_keys)),
 				printascii(key[7], func_to_key(GLOBAL_POST, page_keys)));
+#		endif /* DISABLE_PRINTING */
+#	endif /* DONT_HAVE_PIPING */
+#endif /* DONT_HAVE_PIPING && DISABLE_PRINTING */
+
 			center_line(line + 2, FALSE, buf);
 			break;
 
+		case URL_LEVEL:
+			snprintf(buf, bufs, _(txt_mini_url_1),
+				printascii(key[0], func_to_key(GLOBAL_LINE_DOWN, url_keys)),
+				printascii(key[1], func_to_key(GLOBAL_LINE_UP, url_keys)),
+				printascii(key[2], func_to_key(GLOBAL_HELP, url_keys)),
+				printascii(key[3], func_to_key(GLOBAL_QUIT, url_keys)));
+			center_line(line, FALSE, buf);
+			snprintf(buf, bufs, _(txt_mini_url_2),
+				printascii(key[2], func_to_key(GLOBAL_SEARCH_SUBJECT_FORWARD, url_keys)),
+				printascii(key[3], func_to_key(GLOBAL_SEARCH_SUBJECT_BACKWARD, url_keys)),
+				printascii(key[4], func_to_key(GLOBAL_SEARCH_REPEAT, url_keys)));
+			center_line(line + 1, FALSE, buf);
+			break;
+
 		case INFO_PAGER:
 			snprintf(buf, bufs, _(txt_mini_info_1),
 				printascii(key[0], func_to_key(GLOBAL_LINE_UP, info_keys)),
@@ -668,7 +999,7 @@ show_mini_help(
 			break;
 
 		default: /* should not happen */
-			error_message(_(txt_error_unknown_dlevel));
+			error_message(2, _(txt_error_unknown_dlevel));
 			break;
 	}
 #ifdef HAVE_COLOR
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/inews.c tin-2.0.0/src/inews.c
--- tin-1.8.3/src/inews.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/inews.c	2011-04-17 16:04:30.711112371 +0200
@@ -3,10 +3,10 @@
  *  Module    : inews.c
  *  Author    : I. Lea
  *  Created   : 1992-03-17
- *  Updated   : 2005-02-12
+ *  Updated   : 2009-04-07
  *  Notes     : NNTP built in version of inews
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -58,19 +58,9 @@
 #endif /* NNTP_INEWS && !FORGERY */
 
 #if 0
-#	ifdef VMS
-#		ifdef MULTINET
-#			define netwrite	socket_write
-#			include "multinet_root:[multinet.include]netdb.h"
-#		else
-#			define netwrite	write
-#			include <netdb.h>
-#		endif /* MULTINET */
-#	else
-#		ifdef HAVE_NETDB_H
-#			include <netdb.h>
-#		endif /* HAVE_NETDB_H */
-#	endif /* VMS */
+#	ifdef HAVE_NETDB_H
+#		include <netdb.h>
+#	endif /* HAVE_NETDB_H */
 
 #	ifdef HAVE_SYS_SOCKET_H
 #		include <sys/socket.h>
@@ -126,25 +116,25 @@ submit_inews(
 		if (line[0] == '\0') /* end of headers */
 			break;
 
-		ptr = strchr(line, ':');
-		if (ptr - line == 4 && !strncasecmp(line, "From", 4)) {
-			STRCPY(from_name, line);
-		}
-
-		if (ptr - line == 10 && !strncasecmp(line, "Message-ID", 10)) {
-			STRCPY(message_id, ptr + 2);
-			id_in_article = TRUE;
-		}
+		if ((ptr = strchr(line, ':'))) {
+			if (ptr - line == 4 && !strncasecmp(line, "From", 4)) {
+				STRCPY(from_name, line);
+			}
 
+			if (ptr - line == 10 && !strncasecmp(line, "Message-ID", 10)) {
+				STRCPY(message_id, ptr + 2);
+				id_in_article = TRUE;
+			}
 #	ifdef USE_CANLOCK
-		if (ptr - line == 11 && !strncasecmp(line, "Cancel-Lock", 11))
-			can_lock_in_article = TRUE;
+			if (ptr - line == 11 && !strncasecmp(line, "Cancel-Lock", 11))
+				can_lock_in_article = TRUE;
 #	endif /* USE_CANLOCK */
+		}
 	}
 
 	if ((from_name[0] == '\0') || (from_name[6] == '\0')) {
 		/* we could silently add a From: line here if we want to... */
-		error_message(_(txt_error_no_from));
+		error_message(2, _(txt_error_no_from));
 		fclose(fp);
 		return ret_code;
 	}
@@ -160,8 +150,8 @@ submit_inews(
 	 *
 	 * check for valid From: line
 	 */
-	if (!tinrc.post_8bit_header && GNKSA_OK != gnksa_check_from(from_name + 6)) { /* error in address */
-		error_message(_(txt_invalid_from), from_name + 6);
+	if (!(group ? group->attribute->post_8bit_header : tinrc.post_8bit_header) && GNKSA_OK != gnksa_check_from(from_name + 6)) { /* error in address */
+		error_message(2, _(txt_invalid_from), from_name + 6);
 		fclose(fp);
 		return ret_code;
 	}
@@ -171,18 +161,18 @@ submit_inews(
 		rewind(fp);
 
 #	ifndef FORGERY
-		if ((ptr = build_sender()) && (!disable_sender)) {
+		if (!disable_sender && (ptr = build_sender())) {
 			sender = sender_needed(from_name + 6, group, ptr);
 			switch (sender) {
 				case -2: /* can't build Sender: */
-					error_message(_(txt_invalid_sender), ptr);
+					error_message(2, _(txt_invalid_sender), ptr);
 					fclose(fp);
 					return ret_code;
 					/* NOTREACHED */
 					break;
 
 				case -1: /* illegal From: (can't happen as check is done above already) */
-					error_message(_(txt_invalid_from), from_name + 6);
+					error_message(2, _(txt_invalid_from), from_name + 6);
 					fclose(fp);
 					return ret_code;
 					/* NOTREACHED */
@@ -193,7 +183,7 @@ submit_inews(
 #		ifdef CHARSET_CONVERSION
 					buffer_to_network(sender_hdr, group ? group->attribute->mm_network_charset : tinrc.mm_network_charset);
 #		endif /* CHARSET_CONVERSION */
-					if (!tinrc.post_8bit_header) {
+					if (!(group ? group->attribute->post_8bit_header : tinrc.post_8bit_header)) {
 						char *p;
 #		ifdef CHARSET_CONVERSION
 						p = rfc1522_encode(sender_hdr, group ? txt_mime_charsets[group->attribute->mm_network_charset] : txt_mime_charsets[tinrc.mm_network_charset], ismail);
@@ -217,7 +207,7 @@ submit_inews(
 		 * Receive CONT_POST or ERROR response code from NNTP server
 		 */
 		if (nntp_command("POST", CONT_POST, response, sizeof(response)) == NULL) {
-			error_message("%s", response);
+			error_message(2, "%s", response);
 			fclose(fp);
 			return ret_code;
 		}
@@ -267,11 +257,12 @@ submit_inews(
 #	ifdef USE_CANLOCK
 			if (!can_lock_in_article) {
 					char lock[1024];
-					const char *lptr = (const char *) 0;
+					char *lptr;
 
 					lock[0] = '\0';
 					if ((lptr = build_canlock(message_id, get_secret())) != NULL) {
 						STRCPY(lock, lptr);
+						free(lptr);
 						snprintf(buf, sizeof(buf), "Cancel-Lock: %s", lock);
 						u_put_server(buf);
 						u_put_server("\r\n");
@@ -297,9 +288,7 @@ submit_inews(
 
 			if (can_lock_in_article && !id_in_article) {
 				ptr = strchr(line, ':');
-				if (ptr - line == 11 && !strncasecmp(line, "Cancel-Lock", 11)) {
-					; /* skip line */
-				} else {
+				if (ptr - line != 11 || strncasecmp(line, "Cancel-Lock", 11)) {
 					u_put_server(line);
 					u_put_server("\r\n");
 				}
@@ -328,6 +317,8 @@ submit_inews(
 		 * Don't leave this loop if we only tried once to post and an
 		 * authentication request was received. Leave loop on any other
 		 * response or any further authentication requests.
+		 *
+		 * TODO: add 483 (RFC 3977) support
 		 */
 		if (((respcode == ERR_NOAUTH) || (respcode == NEED_AUTHINFO)) && (auth_error++ < 1) && (authenticate(nntp_server, userid, FALSE)))
 			leave_loop = FALSE;
@@ -344,7 +335,7 @@ submit_inews(
 	 */
 	if (respcode != OK_POSTED) {
 		/* TODO: -> lang.c */
-		error_message("Posting failed (%s)", str_trim(response));
+		error_message(2, "Posting failed (%s)", str_trim(response));
 		return ret_code;
 	}
 
@@ -399,10 +390,10 @@ submit_news_file(
 
 	a_message_id[0] = '\0';
 
-	fcc = checknadd_headers(name);
+	fcc = checknadd_headers(name, group);
 	FreeIfNeeded(fcc); /* we don't use it at the moment */
 
-	rfc15211522_encode(name, txt_mime_encodings[tinrc.post_mime_encoding], group, tinrc.post_8bit_header, ismail);
+	rfc15211522_encode(name, txt_mime_encodings[(group ? group->attribute->post_mime_encoding : tinrc.post_mime_encoding)], group, (group ? group->attribute->post_8bit_header : tinrc.post_8bit_header), ismail);
 
 #ifdef NNTP_INEWS
 	if (read_news_via_nntp && !read_saved_news && 0 == strcasecmp(tinrc.inews_prog, INTERNAL_CMD))
@@ -413,10 +404,10 @@ submit_news_file(
 #ifdef M_UNIX
 			/* use tinrc.inews_prog or 'inewsdir/inews -h' 'inews -h' */
 			if (0 != strcasecmp(tinrc.inews_prog, INTERNAL_CMD))
-				strncpy(buf, tinrc.inews_prog, sizeof(buf) - 1);
+				STRCPY(buf, tinrc.inews_prog);
 			else {
 				if (*inewsdir)
-					joinpath(buf, inewsdir, "inews -h");
+					joinpath(buf, sizeof(buf), inewsdir, "inews -h");
 				else
 					strcpy(buf, "inews -h");
 			}
@@ -467,7 +458,7 @@ sender_needed(
 	char sender_name[HEADER_LEN];
 
 #	ifdef DEBUG
-	if (debug == 2) {
+	if (debug & DEBUG_MISC) {
 		wait_message(3, "sender_needed From:=[%s]", from);
 		wait_message(3, "sender_needed Sender:=[%s]", sender);
 	}
@@ -490,8 +481,10 @@ sender_needed(
 	free(p);
 
 	from_at_pos = strchr(from_addr, '@');
-	sender_at_pos = strchr(sender_addr, '@');
-	sender_dot_pos = strchr(sender_at_pos, '.');
+	if ((sender_at_pos = strchr(sender_addr, '@')))
+		sender_dot_pos = strchr(sender_at_pos, '.');
+	else /* this case is catched by the gnksa_do_check_from() code above; anyway ... */
+		return -2;
 
 	if (strncasecmp(from_addr, sender_addr, (from_at_pos - from_addr)))
 		return 1; /* login differs */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/init.c tin-2.0.0/src/init.c
--- tin-1.8.3/src/init.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/init.c	2011-04-18 00:13:33.553601475 +0200
@@ -3,10 +3,10 @@
  *  Module    : init.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-08-14
+ *  Updated   : 2011-04-17
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -55,21 +55,15 @@
  * local prototypes
  */
 static int read_site_config(void);
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	static t_bool utf8_pcre(void);
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 #ifdef HAVE_COLOR
 	static void preinit_colors(void);
 #endif /* HAVE_COLOR */
 
 
-char **news_headers_to_display_array;	/* array of which headers to display */
-char **news_headers_to_not_display_array;	/* array of which headers to not display */
 char active_times_file[PATH_LEN];
 char article_name[PATH_LEN];			/* ~/TIN_ARTICLE_NAME file */
 char bug_nntpserver1[PATH_LEN];		/* welcome message of NNTP server used */
 char bug_nntpserver2[PATH_LEN];		/* welcome message of NNTP server used */
-char cmdline_nntpserver[PATH_LEN];
 char cvers[LEN];
 char dead_article[PATH_LEN];		/* ~/dead.article file */
 char dead_articles[PATH_LEN];		/* ~/dead.articles file */
@@ -83,7 +77,6 @@ char index_maildir[PATH_LEN];
 char index_newsdir[PATH_LEN];	/* directory for private overview data */
 char index_savedir[PATH_LEN];
 char inewsdir[PATH_LEN];
-char libdir[PATH_LEN];			/* directory where news config files are (ie. active) */
 char local_attributes_file[PATH_LEN];
 char local_config_file[PATH_LEN];
 char local_input_history_file[PATH_LEN];
@@ -104,7 +97,8 @@ char postponed_articles_file[PATH_LEN];	
 char rcdir[PATH_LEN];
 char save_active_file[PATH_LEN];
 char spooldir[PATH_LEN];		/* directory where news is */
-char subscriptions_file[PATH_LEN];
+char overviewfmt_file[PATH_LEN];	/* full path to overview.fmt */
+char subscriptions_file[PATH_LEN];	/* full path to subscriptions */
 char tin_progname[PATH_LEN];		/* program name */
 char txt_help_bug_report[LEN];		/* address to send bug reports to */
 char userid[PATH_LEN];
@@ -117,16 +111,10 @@ char userid[PATH_LEN];
 	char novrootdir[PATH_LEN];		/* root directory of nov index files */
 #endif /* !NNTP_ONLY */
 
-#ifdef VMS
-	char rcdir_asfile[PATH_LEN];	/* rcdir expressed as dev:[dir]tin.dir, for stat() */
-#endif /* VMS */
-
-t_function last_search;	/* for repeated search */
+t_function last_search = GLOBAL_SEARCH_REPEAT;	/* for repeated search */
 int hist_last[HIST_MAXNUM + 1];
 int hist_pos[HIST_MAXNUM + 1];
 int iso2asc_supported;			/* Convert ISO-Latin1 to Ascii */
-int num_headers_to_display;		/* num headers to display -- swp */
-int num_headers_to_not_display;		/* num headers to not display -- swp */
 int system_status;
 int xmouse, xrow, xcol;			/* xterm button pressing information */
 
@@ -139,18 +127,21 @@ t_bool created_rcdir;			/* checks if fir
 t_bool dangerous_signal_exit;		/* no get_respcode() in nntp_command when dangerous signal exit */
 t_bool disable_gnksa_domain_check;	/* disable checking TLD in From: etc. */
 t_bool disable_sender;			/* disable generation of Sender: header */
-t_bool filtered_articles;		/* locally killed / auto-selected articles */
 #ifdef NO_POSTING
 	t_bool force_no_post = TRUE;		/* force no posting mode */
 #else
 	t_bool force_no_post = FALSE;	/* don't force no posting mode */
 #endif /* NO_POSTING */
-t_bool got_sig_pipe = FALSE;
+#if defined(NNTP_ABLE) && defined(INET6)
+	t_bool force_ipv4 = FALSE;
+	t_bool force_ipv6 = FALSE;
+#endif /* NNTP_ABLE && INET6 */
 t_bool list_active;
 t_bool newsrc_active;
 t_bool no_write = FALSE;		/* do not write newsrc on quit (-X cmd-line flag) */
 t_bool post_article_and_exit;		/* quick post of an article then exit(elm like) */
 t_bool post_postponed_and_exit;		/* post postponed articles and exit */
+t_bool range_active;		/* Set if a range is defined */
 t_bool reread_active_for_posted_arts;
 t_bool read_local_newsgroups_file;	/* read newsgroups file locally or via NNTP */
 t_bool read_news_via_nntp = FALSE;	/* read news locally or via NNTP */
@@ -180,6 +171,7 @@ char *input_history[HIST_MAXNUM + 1][HIS
 struct regex_cache
 		strip_re_regex, strip_was_regex,
 		uubegin_regex, uubody_regex,
+		verbatim_begin_regex, verbatim_end_regex,
 		url_regex, mail_regex, news_regex,
 		shar_regex,
 		slashes_regex, stars_regex, underscores_regex, strokes_regex
@@ -191,6 +183,8 @@ struct regex_cache
 		NULL
 	};
 
+struct t_cmdlineopts cmdline;
+
 struct t_config tinrc = {
 	ART_MARK_DELETED,		/* art_marked_deleted */
 	MARK_INRANGE,			/* art_marked_inrange */
@@ -244,7 +238,7 @@ struct t_config tinrc = {
 #else
 	-1,		/* mm_network_charset, defaults to $MM_CHARSET */
 #endif /* !CHARSET_CONVERSION */
-	"",		/* mm_local_charset, display charset */
+	"US-ASCII",		/* mm_local_charset, display charset */
 #ifdef HAVE_ICONV_OPEN_TRANSLIT
 	FALSE,	/* translit */
 #endif /* HAVE_ICONV_OPEN_TRANSLIT */
@@ -264,6 +258,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 */
@@ -275,12 +271,13 @@ 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 */
-	MIME_ENCODING_7BIT,		/* mail_mime_encoding */
-	MIME_ENCODING_7BIT,		/* post_mime_encoding */
-	POST_PROC_NO,			/* post_process */
+	MIME_ENCODING_QP,		/* mail_mime_encoding */
+	MIME_ENCODING_8BIT,		/* post_mime_encoding */
+	POST_PROC_NO,			/* post_process_type */
 	REREAD_ACTIVE_FILE_SECS,	/* reread_active_file_secs */
 	1,		/* scroll_lines */
 	SHOW_FROM_NAME,				/* show_author */
@@ -295,6 +292,7 @@ struct t_config tinrc = {
 	50,		/* score_limit_select */
 	-100,		/* score_kill */
 	100,		/* score_select */
+	0,		/* trim_article_body */
 #ifdef HAVE_COLOR
 	0,		/* col_back (initialised later) */
 	0,		/* col_from (initialised later) */
@@ -316,6 +314,7 @@ struct t_config tinrc = {
 	0,		/* col_response (initialised later) */
 	0,		/* col_signature (initialised later) */
 	0,		/* col_urls (initialised later) */
+	0,		/* col_verbatim (initialised later) */
 	0,		/* col_subject (initialised later) */
 	0,		/* col_text (initialised later) */
 	0,		/* col_title (initialised later) */
@@ -331,11 +330,11 @@ struct t_config tinrc = {
 #ifdef HAVE_COLOR
 	FALSE,		/* use_color */
 #endif /* HAVE_COLOR */
+	FALSE,		/* abbreviate_groupname */
 	TRUE,		/* add_posted_to_filter */
 	TRUE,		/* advertising */
 	TRUE,		/* alternative_handling */
-	FALSE,		/* auto_bcc */
-	FALSE,		/* auto_cc */
+	0,			/* auto_cc_bcc */
 	TRUE,		/* auto_list_thread */
 	FALSE,		/* auto_reconnect */
 	FALSE,		/* auto_save */
@@ -362,7 +361,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 */
@@ -379,7 +377,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
@@ -387,10 +384,13 @@ 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 */
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	FALSE,		/* utf8_graphics */
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	TRUE,		/* verbatim_handling */
 	"",		/* inews_prog */
 	INTERACTIVE_NONE,		/* interactive_mailer */
 	FALSE,		/* use_mouse */
@@ -413,12 +413,92 @@ struct t_config tinrc = {
 	NORMALIZE_NFKC,		/* normalization form */
 #endif /* HAVE_UNICODE_NORMALIZATION */
 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
-	FALSE		/* render_bidi */
+	FALSE,		/* render_bidi */
 #endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && HAVE_UNICODE_UBIDI_H && !NO_LOCALE */
+#ifdef CHARSET_CONVERSION
+	-1,		/* attrib_mm_network_charset, defaults to $MM_CHARSET */
+	"",		/* attrib_undeclared_charset */
+#endif /* !CHARSET_CONVERSION */
+	"",		/* attrib_editor_format */
+	"",		/* attrib_fcc */
+	"",		/* attrib_maildir */
+	"",		/* attrib_from */
+	"",		/* attrib_mailing_list */
+	"",		/* attrib_organization */
+	"",		/* attrib_followup_to */
+	"",		/* attrib_mime_types_to_save */
+	"",		/* attrib_news_headers_to_display */
+	"",		/* attrib_news_headers_to_not_display */
+	"",		/* attrib_news_quote_format */
+	"",		/* attrib_quote_chars */
+	"",		/* attrib_sigfile */
+	"",		/* attrib_savedir */
+	"",		/* attrib_savefile */
+	"",		/* attrib_x_body */
+	"",		/* attrib_x_headers */
+#ifdef HAVE_ISPELL
+	"",		/* attrib_ispell */
+#endif /* HAVE_ISPELL */
+	"",		/* attrib_quick_kill_scope */
+	"",		/* attrib_quick_select_scope */
+	"",		/* attrib_date_format */
+	0,		/* attrib_trim_article_body */
+	0,		/* attrib_auto_cc_bcc */
+	SHOW_INFO_LINES,		/* attrib_show_info */
+	FILTER_SUBJ_CASE_SENSITIVE,		/* attrib_quick_kill_header */
+	FILTER_SUBJ_CASE_SENSITIVE,		/* attrib_quick_select_header */
+	MIME_ENCODING_QP,		/* attrib_mail_mime_encoding */
+	MIME_ENCODING_8BIT,		/* attrib_post_mime_encoding */
+	POST_PROC_NO,			/* attrib_post_process_type */
+	SHOW_FROM_NAME,			/* attrib_show_author */
+	SORT_ARTICLES_BY_DATE_ASCEND,		/* attrib_sort_article_type */
+	SORT_THREADS_BY_SCORE_DESCEND,		/* attrib_sort_threads_type */
+	THREAD_BOTH,		/* attrib_thread_articles */
+	THREAD_PERC_DEFAULT,	/* attrib_thread_perc */
+	TRUE,		/* attrib_add_posted_to_filter */
+	TRUE,		/* attrib_advertising */
+	TRUE,		/* attrib_alternative_handling */
+	TRUE,		/* attrib_auto_list_thread */
+	FALSE,		/* attrib_auto_select */
+	FALSE,		/* attrib_auto_save */
+	TRUE,		/* attrib_batch_save */
+	TRUE,		/* attrib_delete_tmp_files */
+	TRUE,		/* attrib_group_catchup_on_exit */
+	FALSE,		/* attrib_mail_8bit_header */
+	FALSE,		/* attrib_mime_forward */
+	FALSE,		/* attrib_mark_ignore_tags */
+	TRUE,		/* attrib_mark_saved_read */
+	TRUE,		/* attrib_pos_first_unread */
+	FALSE,		/* attrib_post_8bit_header */
+	TRUE,		/* attrib_post_process_view */
+#ifndef DISABLE_PRINTING
+	FALSE,		/* attrib_print_header */
+#endif /* !DISABLE_PRINTING */
+	FALSE,		/* attrib_process_only_unread */
+	FALSE,		/* attrib_prompt_followupto */
+	TRUE,		/* attrib_show_only_unread_arts */
+	TRUE,		/* attrib_show_signatures */
+	TRUE,		/* attrib_sigdashes */
+	TRUE,		/* attrib_signature_repost */
+#ifdef M_UNIX
+	TRUE,		/* attrib_start_editor_offset */
+#else
+	FALSE,		/* attrib_start_editor_offset */
+#endif /* M_UNIX */
+	FALSE,		/* attrib_tex2iso_conv */
+	TRUE,		/* attrib_thread_catchup_on_exit */
+	TRUE,		/* attrib_verbatim_handling */
+	FALSE,		/* attrib_x_comment_to */
+	TRUE,		/* attrib_wrap_on_next_unread */
+	FALSE,		/* attrib_ask_for_metamail */
+	FALSE,		/* attrib_quick_kill_case */
+	FALSE,		/* attrib_quick_kill_expire */
+	FALSE,		/* attrib_quick_select_case */
+	FALSE		/* attrib_quick_select_expire */
 };
 
 struct t_capabilities nntp_caps = {
-	0, /* type (none, LIST EXTENSIONS, CAPABILITIES) */
+	NONE, /* type (NONE, CAPABILITIES, BROKEN) */
 	0, /* CAPABILITIES version */
 	FALSE, /* MODE-READER: "MODE READER" */
 	FALSE, /* READER: "ARTICLE", "BODY" */
@@ -433,6 +513,7 @@ struct t_capabilities nntp_caps = {
 	FALSE, /* LIST: "LIST SUBSCRIPTIONS" */
 	FALSE, /* LIST: "LIST DISTRIBUTIONS" */
 	FALSE, /* LIST: "LIST MODERATORS" */
+	FALSE, /* LIST: "LIST COUNTS" */
 	FALSE, /* XPAT */
 	FALSE, /* HDR: "HDR", "LIST HEADERS" */
 	NULL, /* [X]HDR */
@@ -444,17 +525,22 @@ struct t_capabilities nntp_caps = {
 	FALSE, /* STARTTLS */
 	FALSE, /* AUTHINFO USER/PASS */
 	FALSE, /* AUTHINFO SASL */
+	FALSE, /* AUTHINFO available but not in current state */
+	SASL_NONE, /* SASL CRAM-MD5 DIGEST-MD5 PLAIN GSSAPI EXTERNAL OTP NTLM LOGIN */
+	FALSE, /* COMPRESS */
+	COMPRESS_NONE, /* COMPRESS_NONE, COMPRESS_DEFLATE */
 #if 0
-	FALSE, /* SASL CRAM-MD5 */
-	FALSE, /* SASL DIGEST-MD5 */
-	FALSE, /* SASL PLAIN */
-	FALSE, /* SASL GSSAPI */
-	FALSE, /* SASL EXTERNAL */
 	FALSE, /* STREAMING: "MODE STREAM", "CHECK", "TAKETHIS" */
 	FALSE /* IHAVE */
 #endif /* 0 */
+#ifndef BROKEN_LISTGROUP
+	FALSE /* LISTGROUP doesn't select group */
+#else
+	TRUE
+#endif /* !BROKEN_LISTGROUP */
 };
 
+static char libdir[PATH_LEN];			/* directory where news config files are (ie. active) */
 static mode_t real_umask;
 
 #ifdef HAVE_COLOR
@@ -486,12 +572,14 @@ static const struct {
 	{ &tinrc.col_quote3,      4 },
 	{ &tinrc.col_response,    2 },
 	{ &tinrc.col_signature,   4 },
-	{ &tinrc.col_urls,       -1 },
+	{ &tinrc.col_urls,       DFT_FORE },
+	{ &tinrc.col_verbatim,    5 },
 	{ &tinrc.col_subject,     6 },
 	{ &tinrc.col_text,       DFT_FORE },
 	{ &tinrc.col_title,       4 },
 };
 
+
 static void
 preinit_colors(
 	void)
@@ -505,12 +593,13 @@ preinit_colors(
 
 void
 postinit_colors(
-	void)
+	int last_color)
 {
 	size_t n;
 
 	for (n = 0; n < ARRAY_SIZE(our_colors); n++) {
-		if (*(our_colors[n].colorp) == DFT_INIT) {
+		if (*(our_colors[n].colorp) == DFT_INIT
+		 || *(our_colors[n].colorp) >= last_color) {
 			switch (our_colors[n].color_dft) {
 				case DFT_FORE:
 					*(our_colors[n].colorp) = default_fcol;
@@ -548,9 +637,7 @@ init_selfinfo(
 
 #ifdef HAVE_SYS_UTSNAME_H
 #	ifdef HAVE_UNAME
-	if (uname(&system_info) != -1)
-		;
-	else
+	if (uname(&system_info) == -1)
 #	endif /* HAVE_UNAME */
 	{
 		strcpy(system_info.sysname, "unknown");
@@ -578,26 +665,13 @@ init_selfinfo(
 	real_umask = umask(0);
 	(void) umask(real_umask);
 
-#ifndef VMS
 	if ((myentry = getpwuid(getuid())) == NULL) {
-		error_message(_(txt_error_passwd_missing));
+		error_message(2, _(txt_error_passwd_missing));
 		giveup();
 	}
-#else
-	if (((ptr = getlogin()) != NULL) && strlen(ptr))
-		myentry = getpwnam(ptr);
-	else {
-		error_message(_(txt_error_passwd_missing));
-		giveup();
-	}
-#endif /* !VMS */
 
 	strcpy(userid, myentry->pw_name);
 
-#ifdef VMS
-	lower(userid);
-#endif /* VMS */
-
 	if (((ptr = getenv("TIN_HOMEDIR")) != NULL) && strlen(ptr)) {
 		my_strncpy(homedir, ptr, sizeof(homedir) - 1);
 	} else if (((ptr = getenv("HOME")) != NULL) && strlen(ptr)) {
@@ -607,27 +681,15 @@ init_selfinfo(
 	} else
 		strncpy(homedir, TMPDIR, sizeof(homedir) - 1);
 
-	cmdline_nntpserver[0] = '\0';
 	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 */
-	filtered_articles = FALSE;
+	disable_sender = FALSE;	/* we set force_no_post=TRUE later on if we don't have a valid FQDN */
 	iso2asc_supported = atoi(get_val("ISO2ASC", DEFAULT_ISO2ASC));
 	if (iso2asc_supported > NUM_ISO_TABLES || iso2asc_supported < 0) /* TODO: issue a warning here? */
 		iso2asc_supported = -1;
 	list_active = FALSE;
 	newsrc_active = FALSE;
-	num_headers_to_display = 0;
-	num_headers_to_not_display = 0;
 	post_article_and_exit = FALSE;
 	post_postponed_and_exit = FALSE;
 	read_local_newsgroups_file = FALSE;
@@ -654,8 +716,6 @@ init_selfinfo(
 	snprintf(cvers, sizeof(cvers), txt_copyright_notice, page_header);
 
 	default_organization[0] = '\0';
-	news_headers_to_display_array = ulBuildArgv(tinrc.news_headers_to_display, &num_headers_to_display);
-	news_headers_to_not_display_array = NULL;
 
 	strncpy(bug_addr, BUG_REPORT_ADDRESS, sizeof(bug_addr) - 1);
 
@@ -674,11 +734,6 @@ init_selfinfo(
 	my_strncpy(default_organization, get_val("ORGANIZATION", ""), sizeof(default_organization) - 1);
 #endif /* apollo */
 
-#ifdef USE_INN_NNTPLIB
-	if ((ptr = GetConfigValue(_CONF_ORGANIZATION)) != NULL)
-		my_strncpy(default_organization, ptr, sizeof(default_organization) - 1);
-#endif /* USE_INN_NNTPLIB */
-
 #ifndef NNTP_ONLY
 	my_strncpy(libdir, get_val("TIN_LIBDIR", NEWSLIBDIR), sizeof(libdir) - 1);
 	my_strncpy(novrootdir, get_val("TIN_NOVROOTDIR", NOVROOTDIR), sizeof(novrootdir) - 1);
@@ -689,6 +744,7 @@ init_selfinfo(
 	news_active_file[0] = '\0';
 	active_times_file[0] = '\0';
 	newsgroups_file[0] = '\0';
+	overviewfmt_file[0] = '\0';
 	subscriptions_file[0] = '\0';
 
 	/*
@@ -702,8 +758,7 @@ init_selfinfo(
 	 * if it's still unset fall into no posting mode.
 	 */
 	if (domain_name[0] == '\0') {
-		error_message(_(txt_error_no_domain_name));
-		sleep(2);
+		error_message(4, _(txt_error_no_domain_name));
 		force_no_post = TRUE;
 	}
 
@@ -715,18 +770,20 @@ init_selfinfo(
 	 * values given in env-vars? ($MM_CHARSET, $TIN_ACTIVEFILE)
 	 */
 	if (!*news_active_file) /* TODO: really prepend libdir here in case of $TIN_ACTIVEFILE is set? */
-		joinpath(news_active_file, libdir, get_val("TIN_ACTIVEFILE", ACTIVE_FILE));
+		joinpath(news_active_file, sizeof(news_active_file), libdir, get_val("TIN_ACTIVEFILE", ACTIVE_FILE));
 	if (!*active_times_file)
-		joinpath(active_times_file, libdir, ACTIVE_TIMES_FILE);
+		joinpath(active_times_file, sizeof(active_times_file), libdir, ACTIVE_TIMES_FILE);
 	if (!*newsgroups_file)
-		joinpath(newsgroups_file, libdir, NEWSGROUPS_FILE);
+		joinpath(newsgroups_file, sizeof(newsgroups_file), libdir, NEWSGROUPS_FILE);
 	if (!*subscriptions_file)
-		joinpath(subscriptions_file, libdir, SUBSCRIPTIONS_FILE);
+		joinpath(subscriptions_file, sizeof(subscriptions_file), libdir, SUBSCRIPTIONS_FILE);
+	if (!*overviewfmt_file)
+		joinpath(overviewfmt_file, sizeof(overviewfmt_file), libdir, OVERVIEW_FMT);
 	if (!*default_organization) {
-		char buf[LEN];
+		char buf[LEN], filename[PATH_LEN];
 
-		joinpath(buf, libdir, "organization");
-		if ((fp = fopen(buf, "r")) != NULL) {
+		joinpath(filename, sizeof(filename), libdir, "organization");
+		if ((fp = fopen(filename, "r")) != NULL) {
 			if (fgets(buf, (int) sizeof(buf), fp) != NULL) {
 				ptr = strrchr(buf, '\n');
 				if (ptr != NULL)
@@ -760,24 +817,16 @@ init_selfinfo(
 #endif /* !CHARSET_CONVERSION */
 
 #ifdef TIN_DEFAULTS_DIR
-	joinpath(global_attributes_file, TIN_DEFAULTS_DIR, ATTRIBUTES_FILE);
-	joinpath(global_config_file, TIN_DEFAULTS_DIR, CONFIG_FILE);
+	joinpath(global_attributes_file, sizeof(global_attributes_file), TIN_DEFAULTS_DIR, ATTRIBUTES_FILE);
+	joinpath(global_config_file, sizeof(global_config_file), TIN_DEFAULTS_DIR, CONFIG_FILE);
 #else
 	/* read_site_config() might have changed the value of libdir */
-	joinpath(global_attributes_file, libdir, ATTRIBUTES_FILE);
-	joinpath(global_config_file, libdir, CONFIG_FILE);
+	joinpath(global_attributes_file, sizeof(global_attributes_file), libdir, ATTRIBUTES_FILE);
+	joinpath(global_config_file, sizeof(global_config_file), libdir, CONFIG_FILE);
 #endif /* TIN_DEFAULTS_DIR */
 
-#ifdef VMS
-	joindir(rcdir, homedir, RCDIR); /* we're naming a directory here */
-	joinpath(rcdir_asfile, homedir, RCDIR);	/* for stat() */
-	strcat(rcdir_asfile, ".DIR");
-	if (stat(rcdir_asfile, &sb) == -1)
-#else
-	joinpath(rcdir, homedir, RCDIR);
-	if (stat(rcdir, &sb) == -1)
-#endif /* VMS */
-	{
+	joinpath(rcdir, sizeof(rcdir), homedir, RCDIR);
+	if (stat(rcdir, &sb) == -1) {
 		created_rcdir = TRUE;
 		my_mkdir(rcdir, (mode_t) (S_IRWXU));
 	}
@@ -787,49 +836,45 @@ init_selfinfo(
 	strcpy(tinrc.printer, DEFAULT_PRINTER);
 #endif /* !DISABLE_PRINTING */
 	strcpy(tinrc.inews_prog, PATH_INEWS);
-	joinpath(article_name, homedir, TIN_ARTICLE_NAME);
+	joinpath(article_name, sizeof(article_name), homedir, TIN_ARTICLE_NAME);
 #ifdef APPEND_PID
-	snprintf(article_name + strlen(article_name), sizeof(article_name) - strlen(article_name), ".%d", (int) process_id);
+	snprintf(article_name + strlen(article_name), sizeof(article_name) - strlen(article_name), ".%ld", (long) process_id);
 #endif /* APPEND_PID */
-	joinpath(dead_article, homedir, "dead.article");
-	joinpath(dead_articles, homedir, "dead.articles");
-	JOINPATH(tinrc.maildir, homedir, DEFAULT_MAILDIR);
-	JOINPATH(tinrc.savedir, homedir, DEFAULT_SAVEDIR);
-	joinpath(tinrc.sigfile, homedir, ".Sig");
-	joinpath(default_signature, homedir, ".signature");
+	joinpath(dead_article, sizeof(dead_article), homedir, "dead.article");
+	joinpath(dead_articles, sizeof(dead_articles), homedir, "dead.articles");
+	joinpath(tinrc.maildir, sizeof(tinrc.maildir), homedir, DEFAULT_MAILDIR);
+	joinpath(tinrc.savedir, sizeof(tinrc.savedir), homedir, DEFAULT_SAVEDIR);
+	joinpath(tinrc.sigfile, sizeof(tinrc.sigfile), homedir, ".Sig");
+	joinpath(default_signature, sizeof(default_signature), homedir, ".signature");
 
 	if (!index_newsdir[0])
-		JOINPATH(index_newsdir, get_val("TIN_INDEX_NEWSDIR", rcdir), INDEX_NEWSDIR);
-	JOINPATH(index_maildir, get_val("TIN_INDEX_MAILDIR", rcdir), INDEX_MAILDIR);
+		joinpath(index_newsdir, sizeof(index_newsdir), get_val("TIN_INDEX_NEWSDIR", rcdir), INDEX_NEWSDIR);
+	joinpath(index_maildir, sizeof(index_maildir), get_val("TIN_INDEX_MAILDIR", rcdir), INDEX_MAILDIR);
 	if (stat(index_maildir, &sb) == -1)
 		my_mkdir(index_maildir, (mode_t) S_IRWXU);
-	JOINPATH(index_savedir, get_val("TIN_INDEX_SAVEDIR", rcdir), INDEX_SAVEDIR);
+	joinpath(index_savedir, sizeof(index_savedir), get_val("TIN_INDEX_SAVEDIR", rcdir), INDEX_SAVEDIR);
 	if (stat(index_savedir, &sb) == -1)
 		my_mkdir(index_savedir, (mode_t) S_IRWXU);
-	joinpath(local_attributes_file, rcdir, ATTRIBUTES_FILE);
-	joinpath(local_config_file, rcdir, CONFIG_FILE);
-	joinpath(filter_file, rcdir, FILTER_FILE);
-	joinpath(local_input_history_file, rcdir, INPUT_HISTORY_FILE);
-	joinpath(local_newsrctable_file, rcdir, NEWSRCTABLE_FILE);
+	joinpath(local_attributes_file, sizeof(local_attributes_file), rcdir, ATTRIBUTES_FILE);
+	joinpath(local_config_file, sizeof(local_config_file), rcdir, CONFIG_FILE);
+	joinpath(filter_file, sizeof(filter_file), rcdir, FILTER_FILE);
+	joinpath(local_input_history_file, sizeof(local_input_history_file), rcdir, INPUT_HISTORY_FILE);
+	joinpath(local_newsrctable_file, sizeof(local_newsrctable_file), rcdir, NEWSRCTABLE_FILE);
 #ifdef HAVE_MH_MAIL_HANDLING
-	joinpath(mail_active_file, rcdir, ACTIVE_MAIL_FILE);
+	joinpath(mail_active_file, sizeof(mail_active_file), rcdir, ACTIVE_MAIL_FILE);
 #endif /* HAVE_MH_MAIL_HANDLING */
-#ifdef VMS
-	joinpath(mailbox, DEFAULT_MAILBOX, "MAIL.TXT");
-#else
-	joinpath(mailbox, DEFAULT_MAILBOX, userid);
-#endif /* VMS */
+	joinpath(mailbox, sizeof(mailbox), DEFAULT_MAILBOX, userid);
 #ifdef HAVE_MH_MAIL_HANDLING
-	joinpath(mailgroups_file, rcdir, MAILGROUPS_FILE);
+	joinpath(mailgroups_file, sizeof(mailgroups_file), rcdir, MAILGROUPS_FILE);
 #endif /* HAVE_MH_MAIL_HANDLING */
-	joinpath(newsrc, homedir, NEWSRC_FILE);
-	joinpath(newnewsrc, homedir, NEWNEWSRC_FILE);
+	joinpath(newsrc, sizeof(newsrc), homedir, NEWSRC_FILE);
+	joinpath(newnewsrc, sizeof(newnewsrc), homedir, NEWNEWSRC_FILE);
 #ifdef APPEND_PID
 	snprintf(newnewsrc + strlen(newnewsrc), sizeof(newnewsrc) - strlen(newnewsrc), ".%d", (int) process_id);
 #endif /* APPEND_PID */
-	joinpath(posted_info_file, rcdir, POSTED_FILE);
-	joinpath(postponed_articles_file, rcdir, POSTPONED_FILE);
-	joinpath(save_active_file, rcdir, ACTIVE_SAVE_FILE);
+	joinpath(posted_info_file, sizeof(posted_info_file), rcdir, POSTED_FILE);
+	joinpath(postponed_articles_file, sizeof(postponed_articles_file), rcdir, POSTPONED_FILE);
+	joinpath(save_active_file, sizeof(save_active_file), rcdir, ACTIVE_SAVE_FILE);
 
 	snprintf(lock_file, sizeof(lock_file), INDEX_LOCK, TMPDIR, userid);
 
@@ -839,15 +884,12 @@ init_selfinfo(
 
 	if (stat(posted_info_file, &sb) == -1) {
 		if ((fp = fopen(posted_info_file, "w")) != NULL) {
-			fprintf(fp, _(txt_posted_info_file));
+			fprintf(fp, "%s", _(txt_posted_info_file));
 			fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR));
 			fclose(fp);
 		}
 	}
 
-	if (stat(local_attributes_file, &sb) == -1)
-		write_attributes_file(local_attributes_file);
-
 	init_postinfo();
 	snprintf(txt_help_bug_report, sizeof(txt_help_bug_report), _(txt_help_bug), bug_addr);
 
@@ -871,7 +913,7 @@ read_site_config(
 	void)
 {
 	FILE *fp = (FILE *) 0;
-	char buf[LEN];
+	char buf[LEN], filename[PATH_LEN];
 	static const char *tin_defaults[] = { TIN_DEFAULTS };
 	int i = 0;
 
@@ -879,8 +921,8 @@ read_site_config(
 	 * try to find tin.defaults in some different locations
 	 */
 	while (tin_defaults[i] != NULL) {
-		joinpath(buf, tin_defaults[i++], "tin.defaults");
-		if ((fp = fopen(buf, "r")) != NULL)
+		joinpath(filename, sizeof(filename), tin_defaults[i++], "tin.defaults");
+		if ((fp = fopen(filename, "r")) != NULL)
 			break;
 	}
 
@@ -909,6 +951,8 @@ read_site_config(
 			continue;
 		if (match_string(buf, "subscriptionsfile=", subscriptions_file, sizeof(subscriptions_file)))
 			continue;
+		if (match_string(buf, "overviewfmtfile=", overviewfmt_file, sizeof(overviewfmt_file)))
+			continue;
 		if (match_string(buf, "domainname=", domain_name, sizeof(domain_name)))
 			continue;
 		if (match_string(buf, "inewsdir=", inewsdir, sizeof(inewsdir)))
@@ -1004,6 +1048,13 @@ 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);
 
@@ -1016,7 +1067,7 @@ postinit_regexp(
 
 
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-static t_bool
+t_bool
 utf8_pcre(
 	void)
 {
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/joinpath.c tin-2.0.0/src/joinpath.c
--- tin-1.8.3/src/joinpath.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/joinpath.c	2011-04-17 16:04:30.771121502 +0200
@@ -3,10 +3,10 @@
  *  Module    : joinpath.c
  *  Author    : Thomas Dickey <dickey@invisible-island.net>
  *  Created   : 1997-01-10
- *  Updated   : 2003-09-19
+ *  Updated   : 2008-12-04
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Thomas Dickey <dickey@invisible-island.net>
+ * Copyright (c) 1997-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,16 +42,25 @@
 /*
  * Concatenate dir+file, ensuring that we don't introduce extra '/', since some
  * systems (e.g., Apollo) use "//" for special purposes.
- * TODO: ../vms/vmsfile.c defines joinpath, VMS should be guarded here
  */
 void
 joinpath(
 	char *result,
+	size_t result_size,
 	const char *dir,
 	const char *file)
 {
-	(void) strcpy(result, dir);
-	if (result[0] == '\0' || result[strlen(result) - 1] != '/')
+	size_t result_len;
+
+	(void) strncpy(result, dir, result_size - 1);
+	result[result_size - 1] = '\0';
+	result_len = strlen(result);
+	if ((result_len < (result_size - 1)) && (result[0] == '\0' || result[strlen(result) - 1] != '/')) {
 		(void) strcat(result, "/");
-	(void) strcat(result, BlankIfNull(file));
+		result_len++;
+	}
+	if (result_len < (result_size - 1)) {
+		(void) strncat(result, BlankIfNull(file), result_size - result_len - 1);
+		result[result_size - 1] = '\0';
+	}
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/keymap.c tin-2.0.0/src/keymap.c
--- tin-1.8.3/src/keymap.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/keymap.c	2011-04-17 16:04:30.807126982 +0200
@@ -3,10 +3,10 @@
  *  Module    : keymap.c
  *  Author    : D. Nimmich, J. Faultless
  *  Created   : 2000-05-25
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-01-25
  *  Notes     : This file contains key mapping routines and variables.
  *
- * Copyright (c) 2000-2006 Dirk Nimmich <nimmich@muenster.de>
+ * Copyright (c) 2000-2011 Dirk Nimmich <nimmich@muenster.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -56,13 +56,13 @@ static t_bool process_mapping(char *keyn
 	static t_bool add_key(struct keylist *keys, const char key, t_function func, t_bool override);
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
+struct keylist attachment_keys = { NULL, 0, 0};
 struct keylist feed_post_process_keys = { NULL, 0, 0 };
 struct keylist feed_supersede_article_keys = { NULL, 0, 0 };
 struct keylist feed_type_keys = { NULL, 0, 0 };
 struct keylist filter_keys = { NULL, 0, 0 };
 struct keylist group_keys = { NULL, 0, 0 };
 struct keylist info_keys = { NULL, 0, 0 };
-struct keylist mark_read_keys = { NULL, 0, 0 };
 struct keylist option_menu_keys = { NULL, 0, 0 };
 struct keylist page_keys = { NULL, 0, 0 };
 #ifdef HAVE_PGP_GPG
@@ -81,8 +81,10 @@ struct keylist post_postpone_keys = { NU
 struct keylist post_send_keys = { NULL, 0, 0 };
 struct keylist prompt_keys = { NULL, 0, 0 };
 struct keylist save_append_overwrite_keys = { NULL, 0, 0 };
+struct keylist scope_keys = { NULL, 0, 0 };
 struct keylist select_keys = { NULL, 0, 0 };
 struct keylist thread_keys = { NULL, 0, 0 };
+struct keylist url_keys = { NULL, 0, 0 };
 
 
 /*
@@ -137,7 +139,7 @@ func_to_key(
 /*
  * adds a key to a keylist
  * default_key: TRUE if a default key should be added
- * returns TRUE if the key was succesfully added else FALSE
+ * returns TRUE if the key was successfully added else FALSE
  */
 static t_bool
 add_key(
@@ -154,7 +156,7 @@ add_key(
 	struct keynode *entry = NULL;
 
 	/* is a function already associated with this key */
-	for (i = 0; i < keys->used; i++) {
+	for (i = 0; key != '\0' && i < keys->used; i++) {
 		if (keys->list[i].key == key)
 			entry = &keys->list[i];
 	}
@@ -169,7 +171,7 @@ add_key(
 		/* add a new entry */
 		if (keys->used >= keys->max) {
 			if (keys->list == NULL) {
-				keys->max = 1;
+				keys->max = DEFAULT_MAPKEYS_NUM;
 				keys->list = my_malloc(keys->max * sizeof(struct keynode));
 			} else {
 				keys->max++;
@@ -210,7 +212,9 @@ add_default_key(
 
 
 static void
-free_keylist(struct keylist *keys) {
+free_keylist(
+	struct keylist *keys)
+{
 	FreeAndNull(keys->list);
 	keys->used = keys->max = 0;
 }
@@ -223,6 +227,7 @@ void
 free_keymaps(
 	void)
 {
+	free_keylist(&attachment_keys);
 	free_keylist(&select_keys);
 	free_keylist(&group_keys);
 	free_keylist(&thread_keys);
@@ -240,16 +245,17 @@ free_keymaps(
 	free_keylist(&post_delete_keys);
 	free_keylist(&post_cancel_keys);
 	free_keylist(&filter_keys);
-	free_keylist(&mark_read_keys);
 #ifdef HAVE_PGP_GPG
 	free_keylist(&pgp_mail_keys);
 	free_keylist(&pgp_news_keys);
 #endif /* HAVE_PGP_GPG */
 	free_keylist(&save_append_overwrite_keys);
+	free_keylist(&scope_keys);
 	free_keylist(&feed_type_keys);
 	free_keylist(&feed_post_process_keys);
 	free_keylist(&feed_supersede_article_keys);
 	free_keylist(&prompt_keys);
+	free_keylist(&url_keys);
 }
 
 
@@ -319,8 +325,8 @@ read_keymap_file(
 	FILE *fp = (FILE *) 0;
 	char *line, *keydef, *kname;
 	char *map, *ptr;
-	char buf[LEN], buff[NAME_LEN + 1];
-	int upgrade = RC_CHECK;
+	char buf[LEN], buff[NAME_LEN + 1], filename[PATH_LEN];
+	enum rc_state upgrade = RC_CHECK;
 	t_bool ret = TRUE;
 
 	/*
@@ -329,7 +335,7 @@ read_keymap_file(
 	 *
 	 * locale is first match from LC_ALL, LC_CTYPE, LC_MESSAGES, LANG
 	 *
-	 * TODO: fix possible buf-overflows
+	 * TODO: LC_CTYPE has higgher priority than LC_MESSAGES, does this make sense?
 	 */
 	/* get locale suffix */
 	map = my_strdup(get_val("LC_ALL", get_val("LC_CTYPE", get_val("LC_MESSAGES", get_val("LANG", "")))));
@@ -337,21 +343,21 @@ read_keymap_file(
 		if ((ptr = strchr(map, '.')))
 			*ptr = '\0';
 		snprintf(buff, sizeof(buff), "%s.%s", KEYMAP_FILE, map);
-		joinpath(buf, rcdir, buff);
-		fp = fopen(buf, "r");
+		joinpath(filename, sizeof(filename), rcdir, buff);
+		fp = fopen(filename, "r");
 	}
 	if (!fp) {
-		joinpath(buf, rcdir, KEYMAP_FILE);
-		fp = fopen(buf, "r");
+		joinpath(filename, sizeof(filename), rcdir, KEYMAP_FILE);
+		fp = fopen(filename, "r");
 	}
 #ifdef TIN_DEFAULTS_DIR
 	if (strlen(map) && !fp) {
-		joinpath(buf, TIN_DEFAULTS_DIR, buff);
-		fp = fopen(buf, "r");
+		joinpath(filename, sizeof(filename), TIN_DEFAULTS_DIR, buff);
+		fp = fopen(filename, "r");
 	}
 	if (!fp) {
-		joinpath(buf, TIN_DEFAULTS_DIR, KEYMAP_FILE);
-		fp = fopen(buf, "r");
+		joinpath(filename, sizeof(filename), TIN_DEFAULTS_DIR, KEYMAP_FILE);
+		fp = fopen(filename, "r");
 	}
 #endif /* TIN_DEFAULTS_DIR */
 
@@ -360,20 +366,25 @@ read_keymap_file(
 	if (!fp)
 		return TRUE; /* no keymap file is not an error */
 
-	map = my_strdup(buf); /* remember keymap-name */
+	map = my_strdup(filename); /* remember keymap-name */
 
 	/* check if keymap file is uptodate */
 	while ((line = fgets(buf, sizeof(buf), fp)) != NULL) {
-		if (line[0] == '#' && upgrade == RC_CHECK) {
-			if ((upgrade = check_upgrade(line, "# Keymap file V", KEYMAP_VERSION)) == RC_UPGRADE) {
-				fclose(fp);
-				upgrade_keymap_file(map);
-				upgrade = RC_IGNORE;
-				fp = fopen(map, "r");
+		if (line[0] == '#') {
+			if (upgrade == RC_CHECK && match_string(buf, "# Keymap file V", NULL, 0)) {
+				/* TODO: keymap downgrade */
+				if ((upgrade = check_upgrade(line, "# Keymap file V", KEYMAP_VERSION)) == RC_UPGRADE) {
+					fclose(fp);
+					upgrade_keymap_file(map);
+					upgrade = RC_IGNORE;
+					if (!(fp = fopen(map, "r"))) /* TODO: issue error message? */
+						return TRUE;
+				}
+				break;
 			}
-			break;
 		}
 	}
+	rewind(fp);
 
 	free_keymaps();
 	while ((line = fgets(buf, sizeof(buf), fp)) != NULL) {
@@ -389,7 +400,7 @@ read_keymap_file(
 			 * Warn about basic syntax errors
 			 */
 			if (keydef == NULL || !strlen(keydef)) {
-				wait_message(0, _(txt_keymap_missing_key), kname);
+				error_message(0, _(txt_keymap_missing_key), kname);
 				ret = FALSE;
 				continue;
 			}
@@ -398,10 +409,10 @@ read_keymap_file(
 
 		/*
 		 * TODO: useful? shared keymaps (NFS-Home) may differ
-		 * depending on the OS (i.e. on tin has color the other has not)
+		 * depending on the OS (i.e. one tin has color the other has not)
 		 */
 		if (!process_mapping(kname, keydef)) {
-			wait_message(0, _(txt_keymap_invalid_name), kname);
+			error_message(0, _(txt_keymap_invalid_name), kname);
 			prompt_continue();
 			ret = FALSE;
 			continue;
@@ -444,7 +455,7 @@ process_keys(
 		error = FALSE;
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 		if ((wkeydef = char2wchar_t(keydef)) == NULL) {
-			wait_message(1, _(txt_invalid_multibyte_sequence));
+			error_message(1, _(txt_invalid_multibyte_sequence));
 			ret = FALSE;
 
 			keydef = strtok(NULL, KEYSEPS);
@@ -494,7 +505,7 @@ process_keys(
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 					/* FALLTHROUGH */
 				default:
-					wait_message(0, _(txt_keymap_invalid_key), keydef);
+					error_message(0, _(txt_keymap_invalid_key), keydef);
 					ret = FALSE;
 					error = TRUE;
 					break;
@@ -506,7 +517,7 @@ process_keys(
 			if (isdigit(key = keydef[0]))
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 			{
-				wait_message(0, _(txt_keymap_invalid_key), keydef);
+				error_message(0, _(txt_keymap_invalid_key), keydef);
 				ret = FALSE;
 				error = TRUE;
 			}
@@ -536,6 +547,44 @@ process_mapping(
 	char *keys)				/* Key to assign to keyname if found */
 {
 	switch (keyname[0]) {
+		case 'A':
+			if (strcmp(keyname, "AttachPipe") == 0) {
+				process_keys(ATTACHMENT_PIPE, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "AttachSelect") == 0) {
+				process_keys(ATTACHMENT_SELECT, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "AttachSave") == 0) {
+				process_keys(ATTACHMENT_SAVE, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "AttachTag") == 0) {
+				process_keys(ATTACHMENT_TAG, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "AttachTagPattern") == 0) {
+				process_keys(ATTACHMENT_TAG_PATTERN, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "AttachToggleTagged") == 0) {
+				process_keys(ATTACHMENT_TOGGLE_TAGGED, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "AttachUntag") == 0) {
+				process_keys(ATTACHMENT_UNTAG, keys, &attachment_keys);
+
+				return TRUE;
+			}
+			break;
+
 		case 'B':
 			if (strcmp(keyname, "BugReport") == 0) {
 				process_keys(GLOBAL_BUGREPORT, keys, &group_keys);
@@ -578,11 +627,26 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "ConfigResetAttrib") == 0) {
+				process_keys(CONFIG_RESET_ATTRIB, keys, &option_menu_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "ConfigScopeMenu") == 0) {
+				process_keys(CONFIG_SCOPE_MENU, keys, &option_menu_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "ConfigSelect") == 0) {
 				process_keys(CONFIG_SELECT, keys, &option_menu_keys);
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "ConfigToggleAttrib") == 0) {
+				process_keys(CONFIG_TOGGLE_ATTRIB, keys, &option_menu_keys);
+
+				return TRUE;
+			}
 			break;
 
 		case 'D':
@@ -595,12 +659,15 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "Down") == 0) {
+				process_keys(GLOBAL_LINE_DOWN, keys, &attachment_keys);
 				process_keys(GLOBAL_LINE_DOWN, keys, &group_keys);
 				process_keys(GLOBAL_LINE_DOWN, keys, &info_keys);
 				process_keys(GLOBAL_LINE_DOWN, keys, &option_menu_keys);
 				process_keys(GLOBAL_LINE_DOWN, keys, &page_keys);
+				process_keys(GLOBAL_LINE_DOWN, keys, &scope_keys);
 				process_keys(GLOBAL_LINE_DOWN, keys, &select_keys);
 				process_keys(GLOBAL_LINE_DOWN, keys, &thread_keys);
+				process_keys(GLOBAL_LINE_DOWN, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -633,6 +700,11 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "FeedRange") == 0) {
+				process_keys(FEED_RANGE, keys, &feed_type_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "FeedRepost") == 0) {
 				process_keys(FEED_KEY_REPOST, keys, &feed_supersede_article_keys);
 
@@ -664,12 +736,15 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "FirstPage") == 0) {
+				process_keys(GLOBAL_FIRST_PAGE, keys, &attachment_keys);
 				process_keys(GLOBAL_FIRST_PAGE, keys, &group_keys);
 				process_keys(GLOBAL_FIRST_PAGE, keys, &info_keys);
 				process_keys(GLOBAL_FIRST_PAGE, keys, &option_menu_keys);
 				process_keys(GLOBAL_FIRST_PAGE, keys, &page_keys);
+				process_keys(GLOBAL_FIRST_PAGE, keys, &scope_keys);
 				process_keys(GLOBAL_FIRST_PAGE, keys, &select_keys);
 				process_keys(GLOBAL_FIRST_PAGE, keys, &thread_keys);
+				process_keys(GLOBAL_FIRST_PAGE, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -681,6 +756,11 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "GroupCancel") == 0) {
+				process_keys(GROUP_CANCEL, keys, &group_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "GroupDoAutoSel") == 0) {
 				process_keys(GROUP_DO_AUTOSELECT, keys, &group_keys);
 
@@ -820,10 +900,14 @@ process_mapping(
 
 		case 'H':
 			if (strcmp(keyname, "Help") == 0) {
+				process_keys(GLOBAL_HELP, keys, &attachment_keys);
 				process_keys(GLOBAL_HELP, keys, &group_keys);
+				process_keys(GLOBAL_HELP, keys, &option_menu_keys);
 				process_keys(GLOBAL_HELP, keys, &page_keys);
+				process_keys(GLOBAL_HELP, keys, &scope_keys);
 				process_keys(GLOBAL_HELP, keys, &select_keys);
 				process_keys(GLOBAL_HELP, keys, &thread_keys);
+				process_keys(GLOBAL_HELP, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -841,12 +925,15 @@ process_mapping(
 
 		case 'L':
 			if (strcmp(keyname, "LastPage") == 0) {
+				process_keys(GLOBAL_LAST_PAGE, keys, &attachment_keys);
 				process_keys(GLOBAL_LAST_PAGE, keys, &group_keys);
 				process_keys(GLOBAL_LAST_PAGE, keys, &info_keys);
 				process_keys(GLOBAL_LAST_PAGE, keys, &option_menu_keys);
 				process_keys(GLOBAL_LAST_PAGE, keys, &page_keys);
+				process_keys(GLOBAL_LAST_PAGE, keys, &scope_keys);
 				process_keys(GLOBAL_LAST_PAGE, keys, &select_keys);
 				process_keys(GLOBAL_LAST_PAGE, keys, &thread_keys);
+				process_keys(GLOBAL_LAST_PAGE, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -867,16 +954,6 @@ process_mapping(
 			break;
 
 		case 'M':
-			if (strcmp(keyname, "MarkReadCur") == 0) {
-				process_keys(MARK_READ_CURRENT, keys, &mark_read_keys);
-
-				return TRUE;
-			}
-			if (strcmp(keyname, "MarkReadTag") == 0) {
-				process_keys(MARK_READ_TAGGED, keys, &mark_read_keys);
-
-				return TRUE;
-			}
 			if (strcmp(keyname, "MarkArticleUnread") == 0) {
 				process_keys(MARK_ARTICLE_UNREAD, keys, &group_keys);
 				process_keys(MARK_ARTICLE_UNREAD, keys, &page_keys);
@@ -891,6 +968,18 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "MarkFeedRead") == 0) {
+				process_keys(MARK_FEED_READ, keys, &group_keys);
+				process_keys(MARK_FEED_READ, keys, &thread_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "MarkFeedUnread") == 0) {
+				process_keys(MARK_FEED_UNREAD, keys, &group_keys);
+				process_keys(MARK_FEED_UNREAD, keys, &thread_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "MenuFilterKill") == 0) {
 				process_keys(GLOBAL_MENU_FILTER_KILL, keys, &group_keys);
 				process_keys(GLOBAL_MENU_FILTER_KILL, keys, &page_keys);
@@ -937,22 +1026,15 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "PageDown") == 0) {
+				process_keys(GLOBAL_PAGE_DOWN, keys, &attachment_keys);
 				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, &page_keys);
+				process_keys(GLOBAL_PAGE_DOWN, keys, &scope_keys);
 				process_keys(GLOBAL_PAGE_DOWN, keys, &select_keys);
 				process_keys(GLOBAL_PAGE_DOWN, keys, &thread_keys);
-
-				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);
+				process_keys(GLOBAL_PAGE_DOWN, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -1093,7 +1175,7 @@ process_mapping(
 
 				return TRUE;
 			}
-			if (strcmp(keyname, "PageToggleHeaders") == 0) {
+			if (strcmp(keyname, "PageToggleAllHeaders") == 0) {
 				process_keys(PAGE_TOGGLE_HEADERS, keys, &page_keys);
 
 				return TRUE;
@@ -1103,6 +1185,11 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "PageToggleRaw") == 0) {
+				process_keys(PAGE_TOGGLE_RAW, keys, &page_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "PageToggleRot") == 0) {
 				process_keys(PAGE_TOGGLE_ROT13, keys, &page_keys);
 
@@ -1124,12 +1211,15 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "PageUp") == 0) {
+				process_keys(GLOBAL_PAGE_UP, keys, &attachment_keys);
 				process_keys(GLOBAL_PAGE_UP, keys, &group_keys);
 				process_keys(GLOBAL_PAGE_UP, keys, &info_keys);
 				process_keys(GLOBAL_PAGE_UP, keys, &option_menu_keys);
 				process_keys(GLOBAL_PAGE_UP, keys, &page_keys);
+				process_keys(GLOBAL_PAGE_UP, keys, &scope_keys);
 				process_keys(GLOBAL_PAGE_UP, keys, &select_keys);
 				process_keys(GLOBAL_PAGE_UP, keys, &thread_keys);
+				process_keys(GLOBAL_PAGE_UP, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -1173,6 +1263,7 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "Pipe") == 0) {
+				process_keys(GLOBAL_PIPE, keys, &attachment_keys);
 				process_keys(GLOBAL_PIPE, keys, &group_keys);
 				process_keys(GLOBAL_PIPE, keys, &page_keys);
 				process_keys(GLOBAL_PIPE, keys, &thread_keys);
@@ -1334,13 +1425,13 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "Quit") == 0) {
+				process_keys(GLOBAL_QUIT, keys, &attachment_keys);
 				process_keys(GLOBAL_QUIT, keys, &feed_post_process_keys);
 				process_keys(GLOBAL_QUIT, keys, &feed_supersede_article_keys);
 				process_keys(GLOBAL_QUIT, keys, &feed_type_keys);
 				process_keys(GLOBAL_QUIT, keys, &filter_keys);
 				process_keys(GLOBAL_QUIT, keys, &group_keys);
 				process_keys(GLOBAL_QUIT, keys, &info_keys);
-				process_keys(GLOBAL_QUIT, keys, &mark_read_keys);
 				process_keys(GLOBAL_QUIT, keys, &option_menu_keys);
 				process_keys(GLOBAL_QUIT, keys, &page_keys);
 #ifdef HAVE_PGP_GPG
@@ -1359,8 +1450,10 @@ process_mapping(
 				process_keys(GLOBAL_QUIT, keys, &post_send_keys);
 				process_keys(GLOBAL_QUIT, keys, &prompt_keys);
 				process_keys(GLOBAL_QUIT, keys, &save_append_overwrite_keys);
+				process_keys(GLOBAL_QUIT, keys, &scope_keys);
 				process_keys(GLOBAL_QUIT, keys, &select_keys);
 				process_keys(GLOBAL_QUIT, keys, &thread_keys);
+				process_keys(GLOBAL_QUIT, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -1376,9 +1469,11 @@ process_mapping(
 
 		case 'R':
 			if (strcmp(keyname, "RedrawScr") == 0) {
+				process_keys(GLOBAL_REDRAW_SCREEN, keys, &attachment_keys);
 				process_keys(GLOBAL_REDRAW_SCREEN, keys, &group_keys);
 				process_keys(GLOBAL_REDRAW_SCREEN, keys, &option_menu_keys);
 				process_keys(GLOBAL_REDRAW_SCREEN, keys, &page_keys);
+				process_keys(GLOBAL_REDRAW_SCREEN, keys, &scope_keys);
 				process_keys(GLOBAL_REDRAW_SCREEN, keys, &select_keys);
 				process_keys(GLOBAL_REDRAW_SCREEN, keys, &thread_keys);
 
@@ -1397,19 +1492,55 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "ScopeAdd") == 0) {
+				process_keys(SCOPE_ADD, keys, &scope_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "ScopeDelete") == 0) {
+				process_keys(SCOPE_DELETE, keys, &scope_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "ScopeEditAttributesFile") == 0) {
+				process_keys(SCOPE_EDIT_ATTRIBUTES_FILE, keys, &scope_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "ScopeMove") == 0) {
+				process_keys(SCOPE_MOVE, keys, &scope_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "ScopeRename") == 0) {
+				process_keys(SCOPE_RENAME, keys, &scope_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "ScopeSelect") == 0) {
+				process_keys(SCOPE_SELECT, keys, &scope_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "ScrollDown") == 0) {
+				process_keys(GLOBAL_SCROLL_DOWN, keys, &attachment_keys);
 				process_keys(GLOBAL_SCROLL_DOWN, keys, &group_keys);
 				process_keys(GLOBAL_SCROLL_DOWN, keys, &option_menu_keys);
+				process_keys(GLOBAL_SCROLL_DOWN, keys, &scope_keys);
 				process_keys(GLOBAL_SCROLL_DOWN, keys, &select_keys);
 				process_keys(GLOBAL_SCROLL_DOWN, keys, &thread_keys);
+				process_keys(GLOBAL_SCROLL_DOWN, keys, &url_keys);
 
 				return TRUE;
 			}
 			if (strcmp(keyname, "ScrollUp") == 0) {
+				process_keys(GLOBAL_SCROLL_UP, keys, &attachment_keys);
 				process_keys(GLOBAL_SCROLL_UP, keys, &group_keys);
 				process_keys(GLOBAL_SCROLL_UP, keys, &option_menu_keys);
+				process_keys(GLOBAL_SCROLL_UP, keys, &scope_keys);
 				process_keys(GLOBAL_SCROLL_UP, keys, &select_keys);
 				process_keys(GLOBAL_SCROLL_UP, keys, &thread_keys);
+				process_keys(GLOBAL_SCROLL_UP, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -1435,32 +1566,38 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "SearchRepeat") == 0) {
+				process_keys(GLOBAL_SEARCH_REPEAT, keys, &attachment_keys);
 				process_keys(GLOBAL_SEARCH_REPEAT, keys, &group_keys);
 				process_keys(GLOBAL_SEARCH_REPEAT, keys, &info_keys);
 				process_keys(GLOBAL_SEARCH_REPEAT, keys, &option_menu_keys);
 				process_keys(GLOBAL_SEARCH_REPEAT, keys, &page_keys);
 				process_keys(GLOBAL_SEARCH_REPEAT, keys, &select_keys);
 				process_keys(GLOBAL_SEARCH_REPEAT, keys, &thread_keys);
+				process_keys(GLOBAL_SEARCH_REPEAT, keys, &url_keys);
 
 				return TRUE;
 			}
 			if (strcmp(keyname, "SearchSubjB") == 0) {
+				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &attachment_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &group_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &info_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &option_menu_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &page_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &select_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &thread_keys);
+				process_keys(GLOBAL_SEARCH_SUBJECT_BACKWARD, keys, &url_keys);
 
 				return TRUE;
 			}
 			if (strcmp(keyname, "SearchSubjF") == 0) {
+				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &attachment_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &group_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &info_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &option_menu_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &page_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &select_keys);
 				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &thread_keys);
+				process_keys(GLOBAL_SEARCH_SUBJECT_FORWARD, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -1558,10 +1695,14 @@ process_mapping(
 			}
 			if (strcmp(keyname, "ShellEscape") == 0) {
 #ifndef NO_SHELL_ESCAPE
+				process_keys(GLOBAL_SHELL_ESCAPE, keys, &attachment_keys);
 				process_keys(GLOBAL_SHELL_ESCAPE, keys, &group_keys);
+				process_keys(GLOBAL_SHELL_ESCAPE, keys, &option_menu_keys);
 				process_keys(GLOBAL_SHELL_ESCAPE, keys, &page_keys);
+				process_keys(GLOBAL_SHELL_ESCAPE, keys, &scope_keys);
 				process_keys(GLOBAL_SHELL_ESCAPE, keys, &select_keys);
 				process_keys(GLOBAL_SHELL_ESCAPE, keys, &thread_keys);
+				process_keys(GLOBAL_SHELL_ESCAPE, keys, &url_keys);
 #endif /* !NO_SHELL_ESCAPE */
 
 				return TRUE;
@@ -1574,6 +1715,11 @@ process_mapping(
 
 				return TRUE;
 			}
+			if (strcmp(keyname, "ThreadCancel") == 0) {
+				process_keys(THREAD_CANCEL, keys, &thread_keys);
+
+				return TRUE;
+			}
 			if (strcmp(keyname, "ThreadMail") == 0) {
 				process_keys(THREAD_MAIL, keys, &thread_keys);
 
@@ -1645,15 +1791,18 @@ process_mapping(
 				return TRUE;
 			}
 			if (strcmp(keyname, "ToggleHelpDisplay") == 0) {
+				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &attachment_keys);
 				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &group_keys);
 				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &info_keys);
 				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &page_keys);
+				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &scope_keys);
 				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &select_keys);
 				process_keys(GLOBAL_TOGGLE_HELP_DISPLAY, keys, &thread_keys);
 
 				return TRUE;
 			}
 			if (strcmp(keyname, "ToggleInfoLastLine") == 0) {
+				process_keys(GLOBAL_TOGGLE_INFO_LAST_LINE, keys, &attachment_keys);
 				process_keys(GLOBAL_TOGGLE_INFO_LAST_LINE, keys, &group_keys);
 				process_keys(GLOBAL_TOGGLE_INFO_LAST_LINE, keys, &page_keys);
 				process_keys(GLOBAL_TOGGLE_INFO_LAST_LINE, keys, &select_keys);
@@ -1673,12 +1822,20 @@ process_mapping(
 
 		case 'U':
 			if (strcmp(keyname, "Up") == 0) {
+				process_keys(GLOBAL_LINE_UP, keys, &attachment_keys);
 				process_keys(GLOBAL_LINE_UP, keys, &group_keys);
 				process_keys(GLOBAL_LINE_UP, keys, &info_keys);
 				process_keys(GLOBAL_LINE_UP, keys, &option_menu_keys);
 				process_keys(GLOBAL_LINE_UP, keys, &page_keys);
+				process_keys(GLOBAL_LINE_UP, keys, &scope_keys);
 				process_keys(GLOBAL_LINE_UP, keys, &select_keys);
 				process_keys(GLOBAL_LINE_UP, keys, &thread_keys);
+				process_keys(GLOBAL_LINE_UP, keys, &url_keys);
+
+				return TRUE;
+			}
+			if (strcmp(keyname, "UrlSelect") == 0) {
+				process_keys(URL_SELECT, keys, &url_keys);
 
 				return TRUE;
 			}
@@ -1713,7 +1870,7 @@ upgrade_keymap_file(
 	FILE *oldfp, *newfp;
 	char *line, *backup;
 	const char *keyname, *keydef;
-	char new[NAME_LEN + 1], buf[LEN];
+	char newk[NAME_LEN + 1], buf[LEN];
 	char *bugreport[3] = { NULL, NULL, NULL };
 	char *catchup[4] = { NULL, NULL, NULL, NULL };
 	char *catchup_next_unread[4] = { NULL, NULL, NULL, NULL };
@@ -1725,7 +1882,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 };
@@ -1742,8 +1899,8 @@ upgrade_keymap_file(
 	if ((oldfp = fopen(old, "r")) == NULL)
 		return;
 
-	snprintf(new, sizeof(new), "%s.%d", old, (int) process_id);
-	if ((newfp = fopen(new, "w")) == NULL) {
+	snprintf(newk, sizeof(newk), "%s.%ld", old, (long) process_id);
+	if ((newfp = fopen(newk, "w")) == NULL) {
 		fclose(oldfp);
 		return;
 	}
@@ -1787,15 +1944,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 +2174,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)
@@ -2048,9 +2210,11 @@ upgrade_keymap_file(
 					catchup[1] = my_strdup(keydef);
 				else if (strcmp(keyname, "PageCatchupNextUnread") == 0)
 					catchup_next_unread[1] = my_strdup(keydef);
+				else if (strcmp(keyname, "PageToggleHeaders") == 0)
+					fprintf(newfp, "PageToggleRaw\t\t\t%s\n", keydef);
 				else if (strcmp(keyname, "PromptNo") == 0 || strcmp(keyname, "PromptYes") == 0) {
-					if (strlen(keydef) == 1 && islower(keydef[0]))
-						fprintf(newfp, "%s\t\t\t%c\t%c\n", keyname, keydef[0], toupper(keydef[0]));
+					if (strlen(keydef) == 1 && islower((int)(unsigned char) keydef[0]))
+						fprintf(newfp, "%s\t\t\t%c\t%c\n", keyname, keydef[0], toupper((int)(unsigned char) keydef[0]));
 					else
 						fprintf(newfp, "%s", backup);
 				} else
@@ -2307,7 +2471,7 @@ upgrade_keymap_file(
 
 	fclose(oldfp);
 	fclose(newfp);
-	rename(new, old);
+	rename(newk, old);
 	wait_message(0, _(txt_keymap_upgraded), KEYMAP_VERSION);
 	prompt_continue();
 
@@ -2322,9 +2486,78 @@ void
 setup_default_keys(
 	void)
 {
+	/* attachment level */
+	add_default_key(&attachment_keys, "1", DIGIT_1);
+	add_default_key(&attachment_keys, "2", DIGIT_2);
+	add_default_key(&attachment_keys, "3", DIGIT_3);
+	add_default_key(&attachment_keys, "4", DIGIT_4);
+	add_default_key(&attachment_keys, "5", DIGIT_5);
+	add_default_key(&attachment_keys, "6", DIGIT_6);
+	add_default_key(&attachment_keys, "7", DIGIT_7);
+	add_default_key(&attachment_keys, "8", DIGIT_8);
+	add_default_key(&attachment_keys, "9", DIGIT_9);
+	add_default_key(&attachment_keys, "b", GLOBAL_PAGE_UP);
+	add_default_key(&attachment_keys, " ", GLOBAL_PAGE_DOWN);
+	add_default_key(&attachment_keys, "h", GLOBAL_HELP);
+	add_default_key(&attachment_keys, "\n\r", ATTACHMENT_SELECT);
+	add_default_key(&attachment_keys, "H", GLOBAL_TOGGLE_HELP_DISPLAY);
+	add_default_key(&attachment_keys, "", GLOBAL_REDRAW_SCREEN);
+	add_default_key(&attachment_keys, "j", GLOBAL_LINE_DOWN);
+	add_default_key(&attachment_keys, "k", GLOBAL_LINE_UP);
+	add_default_key(&attachment_keys, "g^", GLOBAL_FIRST_PAGE);
+	add_default_key(&attachment_keys, "G$", GLOBAL_LAST_PAGE);
+	add_default_key(&attachment_keys, "i", GLOBAL_TOGGLE_INFO_LAST_LINE);
+	add_default_key(&attachment_keys, "p", ATTACHMENT_PIPE);
+	add_default_key(&attachment_keys, "q", GLOBAL_QUIT);
+	add_default_key(&attachment_keys, "s", ATTACHMENT_SAVE);
+	add_default_key(&attachment_keys, "t", ATTACHMENT_TAG);
+	add_default_key(&attachment_keys, "U", ATTACHMENT_UNTAG);
+	add_default_key(&attachment_keys, "=", ATTACHMENT_TAG_PATTERN);
+	add_default_key(&attachment_keys, "@", ATTACHMENT_TOGGLE_TAGGED);
+	add_default_key(&attachment_keys, "|", GLOBAL_PIPE);
+	add_default_key(&attachment_keys, ">", GLOBAL_SCROLL_DOWN);
+	add_default_key(&attachment_keys, "<", GLOBAL_SCROLL_UP);
+	add_default_key(&attachment_keys, "/", GLOBAL_SEARCH_SUBJECT_FORWARD);
+	add_default_key(&attachment_keys, "?", GLOBAL_SEARCH_SUBJECT_BACKWARD);
+	add_default_key(&attachment_keys, "\\", GLOBAL_SEARCH_REPEAT);
+#ifndef NO_SHELL_ESCAPE
+	add_default_key(&attachment_keys, "!", GLOBAL_SHELL_ESCAPE);
+#endif /* !NO_SHELL_ESCAPE */
+
+	/* scope level */
+	add_default_key(&scope_keys, "1", DIGIT_1);
+	add_default_key(&scope_keys, "2", DIGIT_2);
+	add_default_key(&scope_keys, "3", DIGIT_3);
+	add_default_key(&scope_keys, "4", DIGIT_4);
+	add_default_key(&scope_keys, "5", DIGIT_5);
+	add_default_key(&scope_keys, "6", DIGIT_6);
+	add_default_key(&scope_keys, "7", DIGIT_7);
+	add_default_key(&scope_keys, "8", DIGIT_8);
+	add_default_key(&scope_keys, "9", DIGIT_9);
+	add_default_key(&scope_keys, "a", SCOPE_ADD);
+	add_default_key(&scope_keys, "b", GLOBAL_PAGE_UP);
+	add_default_key(&scope_keys, " ", GLOBAL_PAGE_DOWN);
+	add_default_key(&scope_keys, "d", SCOPE_DELETE);
+	add_default_key(&scope_keys, "h", GLOBAL_HELP);
+	add_default_key(&scope_keys, "\n\r", SCOPE_SELECT);
+	add_default_key(&scope_keys, "E", SCOPE_EDIT_ATTRIBUTES_FILE);
+	add_default_key(&scope_keys, "H", GLOBAL_TOGGLE_HELP_DISPLAY);
+	add_default_key(&scope_keys, "", GLOBAL_REDRAW_SCREEN);
+	add_default_key(&scope_keys, "m", SCOPE_MOVE);
+	add_default_key(&scope_keys, "j", GLOBAL_LINE_DOWN);
+	add_default_key(&scope_keys, "k", GLOBAL_LINE_UP);
+	add_default_key(&scope_keys, "g^", GLOBAL_FIRST_PAGE);
+	add_default_key(&scope_keys, "G$", GLOBAL_LAST_PAGE);
+	add_default_key(&scope_keys, "q", GLOBAL_QUIT);
+	add_default_key(&scope_keys, "r", SCOPE_RENAME);
+	add_default_key(&scope_keys, ">", GLOBAL_SCROLL_DOWN);
+	add_default_key(&scope_keys, "<", GLOBAL_SCROLL_UP);
+#ifndef NO_SHELL_ESCAPE
+	add_default_key(&scope_keys, "!", GLOBAL_SHELL_ESCAPE);
+#endif /* !NO_SHELL_ESCAPE */
+
 	/* 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,10 +2584,11 @@ 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);
+	add_default_key(&group_keys, "", MARK_FEED_READ);
+	add_default_key(&group_keys, "", MARK_FEED_UNREAD);
 	add_default_key(&group_keys, "a", GLOBAL_SEARCH_AUTHOR_FORWARD);
 	add_default_key(&group_keys, "c", CATCHUP);
 	add_default_key(&group_keys, "d", GROUP_TOGGLE_SUBJECT_DISPLAY);
@@ -2375,6 +2609,7 @@ setup_default_keys(
 	add_default_key(&group_keys, "A", GLOBAL_SEARCH_AUTHOR_BACKWARD);
 	add_default_key(&group_keys, "B", GLOBAL_SEARCH_BODY);
 	add_default_key(&group_keys, "C", CATCHUP_NEXT_UNREAD);
+	add_default_key(&group_keys, "D", GROUP_CANCEL);
 	add_default_key(&group_keys, "E", GLOBAL_EDIT_FILTER);
 	add_default_key(&group_keys, "G", GROUP_TOGGLE_GET_ARTICLES_LIMIT);
 	add_default_key(&group_keys, "K", GROUP_MARK_THREAD_READ);
@@ -2403,9 +2638,10 @@ 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, "", MARK_FEED_READ);
+	add_default_key(&thread_keys, "", MARK_FEED_UNREAD);
 	add_default_key(&thread_keys, "\n\r", THREAD_READ_ARTICLE);
 	add_default_key(&thread_keys, "a", GLOBAL_SEARCH_AUTHOR_FORWARD);
 	add_default_key(&thread_keys, "c", CATCHUP);
@@ -2420,6 +2656,7 @@ setup_default_keys(
 	add_default_key(&thread_keys, "A", GLOBAL_SEARCH_AUTHOR_BACKWARD);
 	add_default_key(&thread_keys, "B", GLOBAL_SEARCH_BODY);
 	add_default_key(&thread_keys, "C", CATCHUP_NEXT_UNREAD);
+	add_default_key(&thread_keys, "D", THREAD_CANCEL);
 	add_default_key(&thread_keys, "E", GLOBAL_EDIT_FILTER);
 	add_default_key(&thread_keys, "K", THREAD_MARK_ARTICLE_READ);
 	add_default_key(&thread_keys, "L", GLOBAL_LOOKUP_MESSAGEID);
@@ -2438,13 +2675,12 @@ 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
 	add_default_key(&page_keys, "", PAGE_PGP_CHECK_ARTICLE);
 #endif /* HAVE_PGP_GPG */
-	add_default_key(&page_keys, "", PAGE_TOGGLE_HEADERS);
+	add_default_key(&page_keys, "", PAGE_TOGGLE_RAW);
 	add_default_key(&page_keys, "", GLOBAL_MENU_FILTER_KILL);
 	add_default_key(&page_keys, "\n\r", PAGE_NEXT_THREAD);
 	add_default_key(&page_keys, "", PAGE_TOGGLE_TABS);
@@ -2485,7 +2721,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);
@@ -2496,6 +2731,7 @@ setup_default_keys(
 	add_default_key(&page_keys, "[", GLOBAL_QUICK_FILTER_SELECT);
 	add_default_key(&page_keys, "]", GLOBAL_QUICK_FILTER_KILL);
 	add_default_key(&page_keys, "%", PAGE_TOGGLE_ROT13);
+	add_default_key(&page_keys, "*", PAGE_TOGGLE_HEADERS);
 	add_default_key(&page_keys, ":", PAGE_SKIP_INCLUDED_TEXT);
 	add_default_key(&page_keys, "_", PAGE_TOGGLE_HIGHLIGHTING);
 
@@ -2526,19 +2762,26 @@ setup_default_keys(
 	add_default_key(&option_menu_keys, "b", GLOBAL_PAGE_UP);
 	add_default_key(&option_menu_keys, " ", GLOBAL_PAGE_DOWN);
 	add_default_key(&option_menu_keys, "\n\r", CONFIG_SELECT);
+	add_default_key(&option_menu_keys, "\t", CONFIG_TOGGLE_ATTRIB);
 	add_default_key(&option_menu_keys, "", GLOBAL_REDRAW_SCREEN);
 	add_default_key(&option_menu_keys, "j", GLOBAL_LINE_DOWN);
 	add_default_key(&option_menu_keys, "k", GLOBAL_LINE_UP);
 	add_default_key(&option_menu_keys, "g^", GLOBAL_FIRST_PAGE);
 	add_default_key(&option_menu_keys, "G$", GLOBAL_LAST_PAGE);
+	add_default_key(&option_menu_keys, "h", GLOBAL_HELP);
 	add_default_key(&option_menu_keys, "q", GLOBAL_QUIT);
+	add_default_key(&option_menu_keys, "r", CONFIG_RESET_ATTRIB);
 	add_default_key(&option_menu_keys, "v", GLOBAL_VERSION);
 	add_default_key(&option_menu_keys, "Q", CONFIG_NO_SAVE);
+	add_default_key(&option_menu_keys, "S", CONFIG_SCOPE_MENU);
 	add_default_key(&option_menu_keys, ">", GLOBAL_SCROLL_DOWN);
 	add_default_key(&option_menu_keys, "<", GLOBAL_SCROLL_UP);
 	add_default_key(&option_menu_keys, "/", GLOBAL_SEARCH_SUBJECT_FORWARD);
 	add_default_key(&option_menu_keys, "?", GLOBAL_SEARCH_SUBJECT_BACKWARD);
 	add_default_key(&option_menu_keys, "\\", GLOBAL_SEARCH_REPEAT);
+#ifndef NO_SHELL_ESCAPE
+	add_default_key(&option_menu_keys, "!", GLOBAL_SHELL_ESCAPE);
+#endif /* !NO_SHELL_ESCAPE */
 
 	/* prompt keys */
 	add_default_key(&prompt_keys, "", GLOBAL_ABORT);
@@ -2624,6 +2867,7 @@ setup_default_keys(
 	add_default_key(&feed_type_keys, "a", FEED_ARTICLE);
 	add_default_key(&feed_type_keys, "h", FEED_HOT);
 	add_default_key(&feed_type_keys, "p", FEED_PATTERN);
+	add_default_key(&feed_type_keys, "r", FEED_RANGE);
 	add_default_key(&feed_type_keys, "q", GLOBAL_QUIT);
 	add_default_key(&feed_type_keys, "t", FEED_THREAD);
 	add_default_key(&feed_type_keys, "T", FEED_TAGGED);
@@ -2639,12 +2883,6 @@ setup_default_keys(
 	add_default_key(&filter_keys, "q", GLOBAL_QUIT);
 	add_default_key(&filter_keys, "s", FILTER_SAVE);
 
-	/* mark read */
-	add_default_key(&mark_read_keys, "", GLOBAL_ABORT);
-	add_default_key(&mark_read_keys, "c", MARK_READ_CURRENT);
-	add_default_key(&mark_read_keys, "q", GLOBAL_QUIT);
-	add_default_key(&mark_read_keys, "t", MARK_READ_TAGGED);
-
 #ifdef HAVE_PGP_GPG
 	/* pgp mail */
 	add_default_key(&pgp_mail_keys, "", GLOBAL_ABORT);
@@ -2665,6 +2903,38 @@ setup_default_keys(
 	add_default_key(&save_append_overwrite_keys, "a", SAVE_APPEND_FILE);
 	add_default_key(&save_append_overwrite_keys, "o", SAVE_OVERWRITE_FILE);
 	add_default_key(&save_append_overwrite_keys, "q", GLOBAL_QUIT);
+
+	/* url level */
+	add_default_key(&url_keys, "", GLOBAL_ABORT);
+	add_default_key(&url_keys, "1", DIGIT_1);
+	add_default_key(&url_keys, "2", DIGIT_2);
+	add_default_key(&url_keys, "3", DIGIT_3);
+	add_default_key(&url_keys, "4", DIGIT_4);
+	add_default_key(&url_keys, "5", DIGIT_5);
+	add_default_key(&url_keys, "6", DIGIT_6);
+	add_default_key(&url_keys, "7", DIGIT_7);
+	add_default_key(&url_keys, "8", DIGIT_8);
+	add_default_key(&url_keys, "9", DIGIT_9);
+	add_default_key(&url_keys, "b", GLOBAL_PAGE_UP);
+	add_default_key(&url_keys, " ", GLOBAL_PAGE_DOWN);
+	add_default_key(&url_keys, "h", GLOBAL_HELP);
+	add_default_key(&url_keys, "\n\r", URL_SELECT);
+	add_default_key(&url_keys, "H", GLOBAL_TOGGLE_HELP_DISPLAY);
+	add_default_key(&url_keys, "", GLOBAL_REDRAW_SCREEN);
+	add_default_key(&url_keys, "j", GLOBAL_LINE_DOWN);
+	add_default_key(&url_keys, "k", GLOBAL_LINE_UP);
+	add_default_key(&url_keys, "g^", GLOBAL_FIRST_PAGE);
+	add_default_key(&url_keys, "G$", GLOBAL_LAST_PAGE);
+	add_default_key(&url_keys, "i", GLOBAL_TOGGLE_INFO_LAST_LINE);
+	add_default_key(&url_keys, "q", GLOBAL_QUIT);
+	add_default_key(&url_keys, ">", GLOBAL_SCROLL_DOWN);
+	add_default_key(&url_keys, "<", GLOBAL_SCROLL_UP);
+	add_default_key(&url_keys, "/", GLOBAL_SEARCH_SUBJECT_FORWARD);
+	add_default_key(&url_keys, "?", GLOBAL_SEARCH_SUBJECT_BACKWARD);
+	add_default_key(&url_keys, "\\", GLOBAL_SEARCH_REPEAT);
+#ifndef NO_SHELL_ESCAPE
+	add_default_key(&url_keys, "!", GLOBAL_SHELL_ESCAPE);
+#endif /* !NO_SHELL_ESCAPE */
 }
 
 
@@ -2688,6 +2958,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);
@@ -2711,7 +2982,7 @@ add_global_keys(
 	add_default_key(keys, "#", GLOBAL_SET_RANGE);
 #ifndef NO_SHELL_ESCAPE
 	add_default_key(keys, "!", GLOBAL_SHELL_ESCAPE);
-#endif /* NO_SHELL_ESCAPE */
+#endif /* !NO_SHELL_ESCAPE */
 #ifdef HAVE_COLOR
 	add_default_key(keys, "&", GLOBAL_TOGGLE_COLOR);
 #endif /* HAVE COLOR */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/lang.c tin-2.0.0/src/lang.c
--- tin-1.8.3/src/lang.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/lang.c	2011-05-29 01:44:57.694372223 +0200
@@ -3,10 +3,10 @@
  *  Module    : lang.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-01-30
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,7 +48,9 @@ constext txt_all[] = N_("all ");
 constext txt_all_groups[] = N_("All groups");
 constext txt_append_overwrite_quit[] = N_("File %s exists. %s=append, %s=overwrite, %s=quit: ");
 constext txt_art_cancel[] = N_("Article cancelled (deleted).");
-constext txt_art_cannot_cancel[] = N_("Article cannot be cancelled (deleted).");
+#ifndef FORGERY
+	constext txt_art_cannot_cancel[] = N_("Article cannot be cancelled (deleted).");
+#endif /* !FORGERY */
 constext txt_art_deleted[] = N_("Article deleted.");
 constext txt_art_newsgroups[] = N_("\nYour article:\n  \"%s\"\nwill be posted to the following %s:\n");
 constext txt_art_not_posted[] = N_("Article not posted!");
@@ -59,9 +61,10 @@ constext txt_art_parent_killed[] = N_("P
 constext txt_art_parent_unavail[] = N_("Parent article is unavailable");
 constext txt_art_posted[] = N_("Article posted: %s");
 constext txt_art_rejected[] = N_("Article rejected (saved to %s)");
-constext txt_art_thread_regex_tag[] = N_("%s=article, %s=thread, %s=hot, %s=pattern, %s=tagged articles, %s=quit: ");
+constext txt_art_thread_regex_tag[] = N_("%s=article, %s=thread, %s=range, %s=hot, %s=pattern, %s=tagged, %s=quit: ");
 constext txt_art_unavailable[] = N_("Article unavailable");
 constext txt_art_undeleted[] = N_("Article undeleted.");
+constext txt_art_x_of_n[] = N_("Article %4d of %4d");
 constext txt_article_cancelled[] = "Article cancelled by author.\n";
 constext txt_article_plural[] = N_("articles");
 constext txt_article_reposted[] = N_("This is a repost of the following article:");
@@ -71,15 +74,30 @@ constext txt_articles_mailed[] = N_("-- 
 constext txt_at_s[] = N_(" at %s");
 constext txt_attach[] = N_("%*s[-- %s/%s, encoding %s%s%s, %d lines%s%s --]\n");
 constext txt_attach_charset[] = N_(", charset: ");
+constext txt_attach_unsup_charset[] = N_("%*s[-- charset %s not supported --]\n");
 constext txt_attach_description[] = N_("%*s[-- Description: %s --]\n");
-constext txt_auth_failed[] = N_("%d Authentication failed");
-constext txt_auth_needed[] = N_("Server expects authentication.\n");
-constext txt_auth_pass[] = N_("    Please enter password: ");
-constext txt_auth_user[] = N_("    Please enter username: ");
+constext txt_attachment_lines[] = N_("%d lines");
+constext txt_attachment_menu[] = N_("Attachment Menu");
+constext txt_attachment_menu_com[] = N_("Attachment Menu Commands");
+constext txt_attachment_no_name[] = N_("<no name>");
+constext txt_attachment_saved[] = N_("Attachment saved successfully. (%s)");
+constext txt_attachments_saved[] = N_("%d of %d attachments saved successfully.");
+constext txt_attachment_select[] = N_("Select attachment> ");
+constext txt_attachment_tagged[] = N_("Tagged attachment");
+constext txt_attachments_tagged[] = N_("%d attachments tagged");
+constext txt_attachment_untagged[] = N_("Untagged attachment");
+constext txt_attrib_menu_com[] = N_("Attributes Menu Commands");
+#ifdef NNTP_ABLE
+	constext txt_auth_failed[] = N_("%d Authentication failed");
+	constext txt_auth_failed_nopass[] = N_("NNTP authorization password not found for %s");
+	constext txt_auth_needed[] = N_("Server expects authentication.\n");
+	constext txt_auth_pass[] = N_("    Please enter password: ");
+	constext txt_auth_user[] = N_("    Please enter username: ");
+	constext txt_authorization_ok[] = N_("Authorized for user: %s\n");
+	constext txt_authorization_fail[] = N_("Authorization failed for user: %s\n");
+#endif /* NNTP_ABLE */
 constext txt_author_search_backwards[] = N_("Author search backwards [%s]> ");
 constext txt_author_search_forwards[] = N_("Author search forwards [%s]> ");
-constext txt_authorization_ok[] = N_("Authorized for user: %s\n");
-constext txt_authorization_fail[] = N_("Authorization failed for user: %s\n");
 constext txt_autosubscribed[] = N_("\nAutosubscribed to %s");
 constext txt_autosubscribing_groups[] = N_("Autosubscribing groups...\n");
 constext txt_autoselecting_articles[] = N_("Autoselecting articles (use '%s' to see all unread) ...");
@@ -93,6 +111,7 @@ constext txt_base_article[] = N_("Base a
 constext txt_base_article_range[] = N_("Base article range");
 constext txt_batch_update_unavail[] = N_("%s: Updating of index files not supported\n");
 constext txt_begin_of_art[] = N_("*** Beginning of article ***");
+constext txt_begin_of_page[] = N_("*** Beginning of page ***");
 
 constext txt_cancel_article[] = N_("Cancel (delete) or supersede (overwrite) article [%%s]? (%s/%s/%s): ");
 constext txt_cancelling_art[] = N_("Cancelling article...");
@@ -103,7 +122,9 @@ constext txt_cannot_open[] = N_("Can't o
 constext txt_cannot_open_for_saving[] = N_("Couldn't open %s for saving");
 constext txt_cannot_post[] = N_("*** Posting not allowed ***");
 constext txt_cannot_post_group[] = N_("Posting is not allowed to %s");
-constext txt_cannot_retrieve[] = N_("Can't retrieve %s");
+#ifdef NNTP_ABLE
+	constext txt_cannot_retrieve[] = N_("Can't retrieve %s");
+#endif /* NNTP_ABLE */
 constext txt_cannot_write_to_directory[] = N_("%s is a directory");
 constext txt_catchup[] = N_("Catchup");
 constext txt_catchup_group[] = N_("Catchup %s...");
@@ -121,7 +142,9 @@ constext txt_choose_post_process_type[] 
 #endif /* HAVE_COLOR */
 constext txt_command_failed[] = N_("Command failed: %s");
 constext txt_confirm_select_on_exit[] = N_("Mark not selected articles read?");
-constext txt_connecting[] = N_("Connecting to %s...");
+#ifdef NNTP_ABLE
+	constext txt_connecting[] = N_("Connecting to %s...");
+#endif /* NNTP_ABLE */
 constext txt_cr[] = N_("<CR>");
 constext txt_creating_active[] = N_("Creating active file for saved groups...\n");
 constext txt_creating_newsrc[] = N_("Creating newsrc file...\n");
@@ -132,11 +155,16 @@ constext txt_deleting[] = N_("Deleting t
 
 constext txt_end_of_art[] = N_("*** End of article ***");
 constext txt_end_of_arts[] = N_("*** End of articles ***");
+constext txt_end_of_attachments[] = N_("*** End of attachments ***");
 constext txt_end_of_groups[] = N_("*** End of groups ***");
+constext txt_end_of_page[] = N_("*** End of page ***");
+constext txt_end_of_scopes[] = N_("*** End of scopes ***");
 constext txt_end_of_thread[] = N_("*** End of thread ***");
+constext txt_end_of_urls[] = N_("*** End of URLs ***");
 constext txt_enter_getart_limit[] = N_("Enter limit of articles to get> ");
 constext txt_enter_message_id[] = N_("Enter Message-ID to go to> ");
 constext txt_enter_next_thread[] = N_(" and enter next unread thread");
+constext txt_enter_next_unread_art[] = N_(" and enter next unread article");
 constext txt_enter_next_unread_group[] = N_(" and enter next unread group");
 constext txt_enter_option_num[] = N_("Enter option number> ");
 constext txt_enter_range[] = N_("Enter range [%s]> ");
@@ -146,12 +174,15 @@ constext txt_error_bad_approved[] = N_("
 constext txt_error_bad_from[] = N_("\nError: Bad address in From: header.\n");
 constext txt_error_bad_replyto[] = N_("\nError: Bad address in Reply-To: header.\n");
 constext txt_error_bad_msgidfqdn[] = N_("\nError: Bad FQDN in Message-ID: header.\n");
-constext txt_error_cant_unlock[] = N_("Can't unlock %s");
+#ifndef NO_LOCKING
+	constext txt_error_cant_unlock[] = N_("Can't unlock %s");
+	constext txt_error_couldnt_dotlock[] = N_("Couldn't dotlock %s - article not appended!");
+	constext txt_error_couldnt_lock[] = N_("Couldn't lock %s - article not appended!");
+#endif /* !NO_LOCKING */
 constext txt_error_copy_fp[] = "copy_fp() failed";
 constext txt_error_corrupted_file[] = N_("Corrupted file %s");
-constext txt_error_couldnt_dotlock[] = N_("Couldn't dotlock %s - article not appended!");
-constext txt_error_couldnt_lock[] = N_("Couldn't lock %s - article not appended!");
 constext txt_error_fseek[] = "fseek() error on [%s]";
+constext txt_error_followup_poster[] = N_("\nError: Followup-To \"poster\" and a newsgroup is not allowed!\n");
 constext txt_error_gnksa_internal[] = N_("Internal error in GNKSA routine - send bug report.\n");
 constext txt_error_gnksa_langle[] = N_("Left angle bracket missing in route address.\n");
 constext txt_error_gnksa_lparen[] = N_("Left parenthesis missing in old-style address.\n");
@@ -179,6 +210,7 @@ constext txt_error_gnksa_rn_encsyn[] = N
 constext txt_error_gnksa_rn_paren[] = N_("Illegal character in realname.\nUnquoted words may not contain '()<>\\' in old-style addresses.\n");
 constext txt_error_gnksa_rn_invalid[] = N_("Illegal character in realname.\nControl characters and unencoded 8bit characters > 127 are not allowed.\n");
 constext txt_error_header_and_body_not_separate[] = N_("\nError: No blank line found after header.\n");
+constext txt_error_header_format[] = N_("\nError: Illegal formatted %s.\n");
 /* TODO: fixme, US-ASCII is not the only 7bit charset we know about */
 constext txt_error_header_line_bad_charset[] = N_("\n\
 Error: Posting contains non-ASCII characters but MM_CHARSET is set to\n\
@@ -195,22 +227,32 @@ constext txt_error_header_line_blank[] =
 constext txt_error_header_line_colon[] = N_("\nError: Header on line %d does not have a colon after the header name:\n%s\n");
 constext txt_error_header_line_empty[] = N_("\nError: The \"%s:\" line is empty.\n");
 constext txt_error_header_line_missing[] = N_("\nError: The \"%s:\" line is missing from the article header.\n");
+constext txt_error_header_line_not_7bit[] = N_("\nError: %s contains non 7bit chars.\n");
 constext txt_error_header_line_space[] = N_("\nError: Header on line %d does not have a space after the colon:\n%s\n");
 constext txt_error_header_duplicate[] = N_("\nError: There are multiple (%d) \"%s:\" lines in the header.\n");
 constext txt_error_insecure_permissions[] = N_("Insecure permissions of %s (%o)");
-constext txt_error_invalid_response_to_group[] = N_("Invalid response to GROUP command, %s");
-constext txt_error_locale[] = "Can't set the specified locale!";
+#ifdef NNTP_ABLE
+	constext txt_error_invalid_response_to_group[] = N_("Invalid response to GROUP command, %s");
+#endif /* NNTP_ABLE */
+#if defined(HAVE_SETLOCALE) && !defined(NO_LOCALE)
+	constext txt_error_locale[] = "Can't set the specified locale!";
+#endif /* HAVE_SETLOCALE && !NO_LOCALE */
 constext txt_error_mime_end[] = N_("MIME parse error: Unexpected end of %s/%s article");
 constext txt_error_mime_start[] = N_("MIME parse error: Start boundary whilst reading headers");
+constext txt_error_newsgroups_poster[] = N_("\nError: \"poster\" is not allowed in Newsgroups!\n");
 constext txt_error_no_domain_name[] = N_("Can't get a (fully-qualified) domain-name!");
 constext txt_error_no_enter_permission[] = N_("No permissions to go into %s\n");
-constext txt_error_no_from[] = N_("\nError: From: line missing.\n");
+#ifdef NNTP_INEWS
+	constext txt_error_no_from[] = N_("\nError: From: line missing.\n");
+#endif /* NNTP_INEWS */
 constext txt_error_no_read_permission[] = N_("No read permissions for %s\n");
 constext txt_error_no_such_file[] = N_("File %s does not exist\n");
 constext txt_error_no_write_permission[] = N_("No write permissions for %s\n");
 constext txt_error_passwd_missing[] = N_("Can't get user information (/etc/passwd missing?)");
 constext txt_error_plural[] = N_("errors");
-constext txt_error_sender_in_header_not_allowed[] = N_("\nError on line %d: \"Sender:\" header not allowed (it will be added for you)\n");
+#ifndef FORGERY
+	constext txt_error_sender_in_header_not_allowed[] = N_("\nError on line %d: \"Sender:\" header not allowed (it will be added for you)\n");
+#endif /* !FORGERY */
 constext txt_error_server_has_no_listed_groups[] = N_("Server has non of the groups listed in %s");
 constext txt_error_singular[] = N_("error");
 constext txt_error_unknown_dlevel[] = N_("Unknown display level");
@@ -256,8 +298,9 @@ constext txt_filter_comment[] = N_("Comm
 constext txt_filter_text_type[] = N_("Apply pattern to    : ");
 constext txt_from_line_only[] = N_("From: line (ignore case)      ");
 constext txt_from_line_only_case[] = N_("From: line (case sensitive)   ");
-
-constext txt_gethostbyname[] = N_("%s%s: Unknown host.\n");
+#ifdef NNTP_ABLE
+	constext txt_gethostbyname[] = N_("%s%s: Unknown host.\n");
+#endif /* NNTP_ABLE */
 constext txt_global[] = N_("global ");
 constext txt_group_aliased[] = N_("Please use %.100s instead");
 constext txt_group_bogus[] = N_("%s is bogus");
@@ -282,13 +325,16 @@ constext txt_help_article_autokill[] = N
 constext txt_help_article_autoselect[] = N_("auto-select (hot) an article via a menu");
 constext txt_help_article_browse_urls[] = N_("Browse URLs in article");
 constext txt_help_article_by_num[] = N_("0 - 9\t  display article by number in current thread");
-constext txt_help_article_cancel[] = N_("cancel (delete) or supersede (overwrite) current article");
+#ifndef NO_POSTING
+	constext txt_help_article_cancel[] = N_("cancel (delete) or supersede (overwrite) current article");
+	constext txt_help_article_followup[] = N_("post followup to current article");
+	constext txt_help_article_followup_no_quote[] = N_("post followup (don't copy text) to current article");
+	constext txt_help_article_followup_with_header[] = N_("post followup to current article quoting complete headers");
+	constext txt_help_article_repost[] = N_("repost chosen article to another group");
+#endif /* !NO_POSTING */
 constext txt_help_article_edit[] = N_("edit article (mail-groups only)");
 constext txt_help_article_first_in_thread[] = N_("display first article in current thread");
 constext txt_help_article_first_page[] = N_("display first page of article");
-constext txt_help_article_followup[] = N_("post followup to current article");
-constext txt_help_article_followup_no_quote[] = N_("post followup (don't copy text) to current article");
-constext txt_help_article_followup_with_header[] = N_("post followup to current article quoting complete headers");
 constext txt_help_article_last_in_thread[] = N_("display last article in current thread");
 constext txt_help_article_last_page[] = N_("display last page of article");
 constext txt_help_article_mark_thread_read[] = N_("mark rest of thread as read and advance to next unread");
@@ -304,19 +350,51 @@ constext txt_help_article_quit_to_select
 constext txt_help_article_reply[] = N_("reply through mail to author");
 constext txt_help_article_reply_no_quote[] = N_("reply through mail (don't copy text) to author");
 constext txt_help_article_reply_with_header[] = N_("reply through mail to author quoting complete headers");
-constext txt_help_article_repost[] = N_("repost chosen article to another group");
 constext txt_help_article_search_backwards[] = N_("search backwards within this article");
 constext txt_help_article_search_forwards[] = N_("search forwards within this article");
 constext txt_help_article_show_raw[] = N_("show article in raw-mode (including all headers)");
 constext txt_help_article_skip_quote[] = N_("skip next block of included text");
 constext txt_help_article_toggle_formfeed[] = N_("toggle display of sections hidden by a form-feed (^L) on/off");
+constext txt_help_article_toggle_headers[] = N_("toggle display of all headers");
 constext txt_help_article_toggle_highlight[] = N_("toggle word highlighting on/off");
 constext txt_help_article_toggle_rot13[] = N_("toggle ROT-13 (basic decode) for current article");
 constext txt_help_article_toggle_tabwidth[] = N_("toggle tabwidth 4 <-> 8");
 constext txt_help_article_toggle_tex2iso[] = N_("toggle german TeX style decoding for current article");
 constext txt_help_article_toggle_uue[] = N_("toggle display of uuencoded sections");
-constext txt_help_article_view_attachments[] = N_("View/save multimedia attachments");
+constext txt_help_article_view_attachments[] = N_("View/pipe/save multimedia attachments");
+constext txt_help_attachment_first[] = N_("choose first attachment in list");
+constext txt_help_attachment_goto[] = N_("0 - 9\t  choose attachment by number");
+constext txt_help_attachment_last[] = N_("choose last attachment in list");
+#ifndef DONT_HAVE_PIPING
+constext txt_help_attachment_pipe[] = N_("pipe attachment into command");
+constext txt_help_attachment_pipe_raw[] = N_("pipe raw attachment into command");
+#endif /* !DONT_HAVE_PIPING */
+constext txt_help_attachment_save[] = N_("save attachment to disk");
+constext txt_help_attachment_search_forwards[] = N_("search for attachments forwards");
+constext txt_help_attachment_search_backwards[] = N_("search for attachments backwards");
+constext txt_help_attachment_select[] = N_("view attachment");
+constext txt_help_attachment_tag[] = N_("tag attachment");
+constext txt_help_attachment_tag_pattern[] = N_("tag attachments that match user specified pattern");
+constext txt_help_attachment_toggle_tagged[] = N_("reverse tagging on all attachments (toggle)");
+constext txt_help_attachment_untag[] = N_("untag all tagged attachments");
+constext txt_help_attachment_toggle_info_line[] = N_("toggle info message in last line (name/description of attachment)");
+constext txt_help_attrib_first_opt[] = N_("choose first attribute in list");
+constext txt_help_attrib_goto_opt[] = N_("0 - 9\t  choose attribute by number");
+constext txt_help_attrib_last_opt[] = N_("choose last attribute in list");
+constext txt_help_attrib_reset_attrib[] = N_("reset attribute to a default value");
+constext txt_help_attrib_search_opt_backwards[] = N_("search forwards for an attribute");
+constext txt_help_attrib_search_opt_forwards[] = N_("search backwards for an attribute");
+constext txt_help_attrib_select[] = N_("select attribute");
+constext txt_help_attrib_toggle_attrib[] = N_("toggle back to options menu when invoked from there");
 constext txt_help_bug[] = N_("report bug or comment via mail to %s");
+constext txt_help_config_first_opt[] = N_("choose first option in list");
+constext txt_help_config_goto_opt[] = N_("0 - 9\t  choose option by number");
+constext txt_help_config_last_opt[] = N_("choose last option in list");
+constext txt_help_config_scope_menu[] = N_("start scopes menu");
+constext txt_help_config_search_opt_backwards[] = N_("search forwards for an option");
+constext txt_help_config_search_opt_forwards[] = N_("search backwards for an option");
+constext txt_help_config_select[] = N_("select option");
+constext txt_help_config_toggle_attrib[] = N_("toggle to attributes menu");
 constext txt_help_global_article_range[] = N_("choose range of articles to be affected by next command");
 constext txt_help_global_esc[] = N_("escape from command prompt");
 constext txt_help_global_edit_filter[] = N_("edit filter file");
@@ -329,8 +407,10 @@ constext txt_help_global_mail[] = N_("ma
 constext txt_help_global_option_menu[] = N_("menu of configurable options");
 constext txt_help_global_page_down[] = N_("down one page");
 constext txt_help_global_page_up[] = N_("up one page");
-constext txt_help_global_post[] = N_("post (write) article to current group");
-constext txt_help_global_post_postponed[] = N_("post postponed articles");
+#ifndef NO_POSTING
+	constext txt_help_global_post[] = N_("post (write) article to current group");
+	constext txt_help_global_post_postponed[] = N_("post postponed articles");
+#endif /* !NO_POSTING */
 constext txt_help_global_posting_history[] = N_("list articles posted by you (from posted file)");
 constext txt_help_global_previous_menu[] = N_("return to previous menu");
 constext txt_help_global_quit_tin[] = N_("quit tin immediately");
@@ -358,8 +438,10 @@ constext txt_help_group_first_thread[] =
 constext txt_help_group_last_thread[] = N_("choose last thread in list");
 constext txt_help_group_list_thread[] = N_("list articles within current thread (bring up Thread sub-menu)");
 constext txt_help_group_mark_article_unread[] = N_("mark article as unread");
-constext txt_help_group_mark_thread_read[] = N_("mark current thread or tagged threads as read");
-constext txt_help_group_mark_thread_unread[] = N_("mark thread as unread");
+constext txt_help_group_mark_thread_read[] = N_("mark current thread, range or tagged threads as read");
+constext txt_help_group_mark_thread_unread[] = N_("mark current thread, range or tagged threads as unread");
+constext txt_help_mark_feed_read[] = N_("mark current/range/selected/pattern/tagged as read after prompting");
+constext txt_help_mark_feed_unread[] = N_("mark current/range/selected/pattern/tagged as unread after prompting");
 constext txt_help_group_mark_unsel_art_read[] = N_("toggle display of all/selected articles");
 constext txt_help_group_next[] = N_("display next group");
 constext txt_help_group_prev[] = N_("display previous group");
@@ -376,6 +458,15 @@ constext txt_help_group_toggle_thread_se
 constext txt_help_group_toggle_threading[] = N_("cycle through threading options available");
 constext txt_help_group_undo_thread_selection[] = N_("undo all selections (all articles)");
 constext txt_help_group_untag_thread[] = N_("untag all tagged threads");
+constext txt_help_scope_add[] = N_("add new scope");
+constext txt_help_scope_del[] = N_("delete scope");
+constext txt_help_scope_edit_attrib_file[] = N_("edit attributes file");
+constext txt_help_scope_first_scope[] = N_("choose first scope in list");
+constext txt_help_scope_goto_scope[] = N_("0 - 9\t  choose scope by number");
+constext txt_help_scope_last_scope[] = N_("choose last scope in list");
+constext txt_help_scope_move[] = N_("move scope");
+constext txt_help_scope_rename[] = N_("rename scope");
+constext txt_help_scope_select[] = N_("select scope");
 constext txt_help_select_catchup[] = N_("mark all articles in group as read");
 constext txt_help_select_catchup_next_unread[] = N_("mark all articles in group as read and move to next unread group");
 constext txt_help_select_first_group[] = N_("choose first group in list");
@@ -407,12 +498,26 @@ constext txt_help_thread_catchup[] = N_(
 constext txt_help_thread_catchup_next_unread[] = N_("mark thread as read and enter next unread thread or group");
 constext txt_help_thread_first_article[] = N_("choose first article in list");
 constext txt_help_thread_last_article[] = N_("choose last article in list");
-constext txt_help_thread_mark_article_read[] = N_("mark article or tagged articles as read and move cursor to next unread article");
+constext txt_help_thread_mark_article_read[] = N_("mark art, range or tagged arts as read; move crsr to next unread art");
+constext txt_help_thread_mark_article_unread[] = N_("mark article, range or tagged articles as unread");
+constext txt_help_thread_mark_thread_unread[] = N_("mark current thread as unread");
 constext txt_help_thread_read_article[] = N_("read chosen article");
 constext txt_help_title_disp[] = N_("Display properties\n------------------");
 constext txt_help_title_misc[] = N_("Miscellaneous\n-------------");
 constext txt_help_title_navi[] = N_("Moving around\n-------------");
 constext txt_help_title_ops[] = N_("Group/thread/article operations\n-------------------------------");
+constext txt_help_title_attachment_ops[] = N_("Attachment operations\n---------------------");
+constext txt_help_title_attrib_ops[] = N_("Attribute operations\n--------------------");
+constext txt_help_title_config_ops[] = N_("Option operations\n-----------------");
+constext txt_help_title_scope_ops[] = N_("Scope operations\n----------------");
+constext txt_help_title_url_ops[] = N_("URL operations\n--------------");
+constext txt_help_url_first_url[] = N_("choose first URL in list");
+constext txt_help_url_goto_url[] = N_("0 - 9\t  choose URL by number");
+constext txt_help_url_last_url[] = N_("choose last URL in list");
+constext txt_help_url_search_forwards[] = N_("search for URLs forwards");
+constext txt_help_url_search_backwards[] = N_("search for URLs backwards");
+constext txt_help_url_select[] = N_("Open URL in browser");
+constext txt_help_url_toggle_info_line[] = N_("toggle info message in last line (URL)");
 
 constext txt_index_page_com[] = N_("Group Level Commands");
 constext txt_info_add_kill[] = N_("Kill filter added");
@@ -454,7 +559,9 @@ constext txt_invalid_from[] = N_("Invali
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	constext txt_invalid_multibyte_sequence[] = N_("Invalid multibyte sequence found\n");
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-constext txt_invalid_sender[] = N_("Invalid  Sender:-header %s");
+#if defined(NNTP_INEWS) && !defined(FORGERY)
+	constext txt_invalid_sender[] = N_("Invalid  Sender:-header %s");
+#endif /* NNTP_INEWS && !FORGERY */
 constext txt_inverse_off[] = N_("Inverse video disabled");
 constext txt_inverse_on[] = N_("Inverse video enabled");
 
@@ -475,7 +582,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]> ");
@@ -487,30 +593,46 @@ constext txt_mailing_to[] = N_("Mailing 
 constext txt_mail_save_active_head[] = N_("# [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");
+constext txt_marked_as_read[] = N_("%s marked as read");
 constext txt_marked_as_unread[] = N_("%s marked as unread");
-constext txt_marked_tagged_arts_as_read[] = N_("Marked %d of %d tagged %s as read");
+constext txt_marked_arts_as_read[] = N_("Marked %d of %d %s as read");
+constext txt_marked_arts_as_unread[] = N_("Marked %d of %d %s as unread");
+constext txt_mark[] = N_("Mark");
 constext txt_mark_arts_read[] = N_("Mark all articles as read%s?");
-constext txt_mark_art_read_tagged_current[] = N_("Mark %s=tagged articles, %s=current article, %s=quit: ");
+constext txt_mark_art_read[] = N_("Mark article as read%s?");
 constext txt_mark_group_read[] = N_("Mark group %s as read?");
 constext txt_mark_thread_read[] = N_("Mark thread as read%s?");
-constext txt_mark_thread_read_tagged_current[] = N_("Mark %s=tagged articles/threads, %s=current thread, %s=quit: ");
 constext txt_matching_cmd_line_groups[] = N_("Matching %s groups...");
+constext txt_mini_attachment_1[] = N_("<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit");
+#ifndef DONT_HAVE_PIPING
+constext txt_mini_attachment_2[] = N_("%s=view; %s=pipe; %s=pipe raw; %s=save; %s=tag; %s=tag pattern; %s=untag all");
+#else
+constext txt_mini_attachment_2[] = N_("%s=view; %s=save; %s=tag; %s=tag pattern; %s=untag all");
+#endif /* !DONT_HAVE_PIPING */
+constext txt_mini_attachment_3[] = N_("%s=reverse tagging; %s=search forwards; %s=search backwards; %s=repeat search");
 constext txt_mini_group_1[] = N_("<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select");
 constext txt_mini_group_2[] = N_("%s=author search; %s=catchup; %s=line down; %s=line up; %s=mark read; %s=list thread");
 constext txt_mini_info_1[] = N_("%s=line up; %s=line down; %s=page up; %s=page down; %s=top; %s=bottom");
 constext txt_mini_info_2[] = N_("%s=search forwards; %s=search backwards; %s=quit");
 constext txt_mini_page_1[] = N_("<n>=set current to n; %s=next unread; %s=search pattern; %s=kill/select");
 constext txt_mini_page_2[] = N_("%s=author search; %s=body search; %s=catchup; %s=followup; %s=mark read");
+constext txt_mini_scope_1[] = N_("%s=add; %s=move; %s=rename; %s=delete");
+constext txt_mini_scope_2[] = N_("<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit");
 constext txt_mini_select_1[] = N_("<n>=set current to n; %s=next unread; %s,%s=search pattern; %s=catchup");
 constext txt_mini_select_2[] = N_("%s=line down; %s=line up; %s=help; %s=move; %s=quit; %s=toggle all/unread");
 constext txt_mini_select_3[] = N_("%s=subscribe; %s=sub pattern; %s=unsubscribe; %s=unsub pattern; %s=yank in/out");
 constext txt_mini_thread_1[] = N_("<n>=set current to n; %s=next unread; %s=catchup; %s=display toggle");
 constext txt_mini_thread_2[] = N_("%s=help; %s=line down; %s=line up; %s=quit; %s=tag; %s=mark unread");
+constext txt_mini_url_1[] = N_("<n>=set current to n; %s=line down; %s=line up; %s=help; %s=quit");
+constext txt_mini_url_2[] = N_("%s=search forwards; %s=search backwards; %s=repeat search");
 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]> ");
+constext txt_newsgroup[] = N_("Go to newsgroup [%s]> ");
 constext txt_newsgroup_plural[] = N_("newsgroups");
 constext txt_newsgroup_position[] = N_("Position %s in group list (1,2,..,$) [%d]> ");
 constext txt_newsgroup_singular[] = N_("newsgroup");
@@ -518,10 +640,10 @@ constext txt_newsrc_again[] = N_("Try an
 constext txt_newsrc_nogroups[] = N_("Warning: No newsgroups were written to your newsrc file. Save aborted.");
 constext txt_newsrc_saved[] = N_("newsrc file saved successfully.\n");
 constext txt_next_resp[] = N_("-- Next response --");
-constext txt_nntp_authorization_failed[] = N_("NNTP authorization password not found for %s");
 constext txt_no[] = N_("No  ");
 constext txt_no_arts[] = N_("*** No articles ***");
 constext txt_no_arts_posted[] = N_("No articles have been posted");
+constext txt_no_attachments[] = N_("*** No attachments ***");
 constext txt_no_description[] = N_("*** No description ***");
 constext txt_no_filename[] = N_("No filename");
 constext txt_no_group[] = N_("No group");
@@ -535,9 +657,11 @@ constext txt_no_more_groups[] = N_("No m
 constext txt_no_newsgroups[] = N_("No newsgroups");
 constext txt_no_next_unread_art[] = N_("No next unread article");
 constext txt_no_prev_group[] = N_("No previous group");
+constext txt_no_prev_search[] = N_("No previous search, nothing to repeat");
 constext txt_no_prev_unread_art[] = N_("No previous unread article");
 constext txt_no_responses[] = N_("No responses");
 constext txt_no_resps_in_thread[] = N_("No responses to list in current thread");
+constext txt_no_scopes[] = N_("*** No scopes ***");
 constext txt_no_search_string[] = N_("No search string");
 constext txt_no_subject[] = N_("No subject");
 #ifndef USE_CURSES
@@ -556,12 +680,13 @@ constext txt_nrctbl_info[] = N_("# NNTP-
 # shortname list for %s %s\n#\n# the format of this file is\n\
 #   <FQDN of NNTP-server> <newsrc file> <shortname> ...\n#\n\
 # if <newsrc file> is given without path, $HOME is assumed as its location\n\
-#\n# examples:\n#   news.tin.org  .newsrc-tin.org  tinorg\n\
-#   news.ka.nu    /tmp/nrc-nu      kanu    nu\n#\n");
+#\n# examples:\n#   news.tin.org      .newsrc-tin.org  tinorg\n\
+#   news.example.org  /tmp/nrc-ex      example    ex\n#\n");
 
 constext txt_only[] = N_("Only");
 constext txt_option_not_enabled[] = N_("Option not enabled. Recompile with %s.");
 constext txt_options_menu[] = N_("Options Menu");
+constext txt_options_menu_com[] = N_("Options Menu Commands");
 constext txt_out_of_memory[] = "%s: memory exhausted trying to allocate %d bytes in file %s line %d";
 
 constext txt_pcre_error_at[] = N_("Error in regex: %s at pos. %d '%s'");
@@ -601,9 +726,10 @@ constext txt_quit_no_write[] = N_("Do yo
 constext txt_quoted_printable[] = "quoted-printable";
 
 constext txt_range_invalid[] = N_("Invalid range - valid are '0-9.$' eg. 1-$");
-constext txt_read_abort[] = N_("Do you want to abort this operation?");
-constext txt_read_exit[] = N_("Do you want to exit tin immediately?");
-constext txt_read_resp[] = N_("Read response> ");
+#ifdef NNTP_ABLE
+	constext txt_read_abort[] = N_("Do you want to abort this operation?");
+	constext txt_read_exit[] = N_("Do you want to exit tin immediately?");
+#endif /* NNTP_ABLE */
 constext txt_reading_article[] = N_("Reading ('q' to quit)...");
 constext txt_reading_arts[] = N_("Reading %sarticles...");
 constext txt_reading_attributes_file[] = N_("Reading %sattributes file...\n");
@@ -616,10 +742,12 @@ 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 */
 constext txt_remove_bogus[] = N_("Bogus group %s removed.");
+constext txt_removed_rule[] = N_("Removed from the previous rule: ");
 constext txt_rename_error[] = N_("Error: rename %s to %s");
 constext txt_reply_to_author[] = N_("Reply to author...");
 constext txt_repost[] = N_("Repost");
@@ -628,7 +756,7 @@ constext txt_repost_group[] = N_("Repost
 constext txt_reset_newsrc[] = N_("Reset newsrc?");
 constext txt_resp_redirect[] = N_("Responses have been directed to the following newsgroups");
 constext txt_resp_to_poster[] = N_("Responses have been directed to poster. %s=mail, %s=post, %s=quit: ");
-constext txt_resp_x_of_n[] = N_("RespNo %4d of %4d");
+
 constext txt_return_key[] = N_("Press <RETURN> to continue...");
 
 constext txt_select_from[] = N_("Select From    [%s] (y/n): ");
@@ -665,6 +793,15 @@ constext txt_screen_init_failed[] = N_("
 	constext txt_screen_too_small[] = N_("%s: screen is too small\n");
 #endif /* !USE_CURSES */
 constext txt_screen_too_small_exiting[] = N_("screen is too small, %s is exiting\n");
+constext txt_scope_delete[] = N_("Delete scope?");
+constext txt_scope_enter[] = N_("Enter scope> ");
+constext txt_scope_new_position[] = N_("Select new position> ");
+constext txt_scope_new_position_is_global[] = N_("New position cannot be a global scope");
+constext txt_scope_operation_not_allowed[] = N_("Global scope, operation not allowed");
+constext txt_scope_rename[] = N_("Rename scope> ");
+constext txt_scope_select[] = N_("Select scope> ");
+constext txt_scopes_menu[] = N_("Scopes Menu");
+constext txt_scopes_menu_com[] = N_("Scopes Menu Commands");
 constext txt_search_backwards[] = N_("Search backwards [%s]> ");
 constext txt_search_body[] = N_("Search body [%s]> ");
 constext txt_search_forwards[] = N_("Search forwards [%s]> ");
@@ -718,7 +855,6 @@ constext txt_thread_marked_as_selected[]
 #if 0 /* unused */
 	constext txt_thread_plural[] = N_("threads");
 #endif /* 0 */
-constext txt_thread_range[] = N_("Thread range");
 constext txt_thread_singular[] = N_("thread");
 constext txt_thread_x_of_n[] = N_("Thread %4s of %4s");
 constext txt_threading_arts[] = N_("Threading articles...");
@@ -726,9 +862,11 @@ constext txt_toggled_high[] = N_("Toggle
 constext txt_toggled_rot13[] = N_("Toggled rot13 encoding");
 constext txt_toggled_tex2iso[] = N_("Toggled german TeX encoding %s");
 constext txt_toggled_tabwidth[] = N_("Toggled tab-width to %d");
-constext txt_trying_dotlock[] = N_("%d Trying to dotlock %s");
-constext txt_trying_lock[] = N_("%d Trying to lock %s");
-constext txt_type_h_for_help[] = N_("           h=help\n");
+#ifndef NO_LOCKING
+	constext txt_trying_dotlock[] = N_("%d Trying to dotlock %s");
+	constext txt_trying_lock[] = N_("%d Trying to lock %s");
+#endif /* !NO_LOCKING */
+constext txt_type_h_for_help[] = N_("           h=help");
 
 constext txt_unlimited_time[] = N_("Unlimited");
 constext txt_unsubscribe_pattern[] = N_("Enter wildcard unsubscribe pattern> ");
@@ -742,9 +880,15 @@ constext txt_unsubscribed_to[] = N_("Uns
 constext txt_unsubscribing[] = N_("Unsubscribing... ");
 constext txt_unthreading_arts[] = N_("Unthreading articles...");
 constext txt_updated[] = N_("Updated");
+#ifdef NNTP_ABLE
+	constext txt_unparseable_counts[] = N_("unparseable \"LIST COUNTS\" line: \"%s\"");
+#endif /* NNTP_ABLE */
 constext txt_updating[] = N_("Updating");
-constext txt_url_open[] = N_("Opening %s\n");
-constext txt_url_done[] = N_("No more URL's in this article");
+constext txt_url_menu[] = N_("URL Menu");
+constext txt_url_menu_com[] = N_("URL Menu Commands");
+constext txt_url_open[] = N_("Opening %s");
+constext txt_url_select[] = N_("Select URL> ");
+constext txt_url_done[] = N_("No URLs in this article");
 constext txt_use_mime[] = N_("Use MIME display program for this message?");
 constext txt_usage_catchup[] = N_("  -c       mark all news as read in subscribed newsgroups (batch mode)");
 constext txt_usage_check_for_unread_news[] = N_("  -Z       return status indicating if any unread news (batch mode)");
@@ -764,7 +908,6 @@ constext txt_usage_newsrc_file[] = N_(" 
 constext txt_usage_no_posting[] = N_("  -x       no posting mode");
 constext txt_usage_post_article[] = N_("  -w       post an article and exit");
 constext txt_usage_post_postponed_arts[] = N_("  -o       post all postponed articles and exit");
-constext txt_usage_read_news_remotely[] = N_("  -r       read news remotely from default NNTP server");
 constext txt_usage_read_saved_news[] = N_("  -R       read news saved by -S option");
 constext txt_usage_savedir[] = N_("  -s dir   save news directory [default=%s]");
 constext txt_usage_save_new_news[] = N_("  -S       save new news for later reading (batch mode)");
@@ -774,6 +917,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)?");
@@ -795,6 +939,7 @@ Warning: You are using a non-plain trans
          quoted-printable) and an external inews program to submit your\n\
          article. If a signature is appended by that inews program it will\n\
          not be encoded properly.\n");
+constext txt_warn_example_hierarchy[]= N_("\nWarning: \"example\" is a reserved hierarchy!\n");
 constext txt_warn_update[] = N_("\n\nYou are upgrading to tin %s from an earlier version.\n\
 Some values in your %s file have changed!\nRead WHATSNEW, etc...\n");
 constext txt_warn_downgrade[] = N_("\n\nYou are downgrading to tin %s from a more recent version!\n\
@@ -820,7 +965,7 @@ constext txt_yanked_groups[] = N_("Added
 constext txt_yanked_none[] = N_("No unsubscribed groups to show");
 constext txt_yanked_sub_groups[] = N_("Showing subscribed to groups only");
 constext txt_yes[] = N_("Yes ");
-constext txt_you_have_mail[] = N_("    You have mail\n");
+constext txt_you_have_mail[] = N_("    You have mail");
 
 
 /* TODO: cleanup */
@@ -836,7 +981,7 @@ Warning: Posting is in %s and contains c
 #endif /* CHARSET_CONVERSION */
 
 #ifdef DEBUG
-	constext txt_usage_debug[] = N_("  -D       debug mode 1=NNTP 2=ALL");
+	constext txt_usage_debug[] = N_("  -D mode  debug mode");
 #endif /* DEBUG */
 
 #ifdef FORGERY
@@ -875,10 +1020,12 @@ Warning: Posting is in %s and contains c
 
 #ifdef HAVE_FASCIST_NEWSADMIN
 	constext txt_error_followup_to_several_groups[] = N_("\nError: Followup-To set to more than one newsgroup!\n");
+	constext txt_error_grp_renamed[] = N_("\nError: \"%s\" is renamed, use \"%s\" instead!\n");
 	constext txt_error_missing_followup_to[] = N_("\nError: cross-posting to %d newsgroups and no Followup-To line!\n");
 	constext txt_error_not_valid_newsgroup[] = N_("\nError: \"%s\" is not a valid newsgroup!\n");
 #else
 	constext txt_warn_followup_to_several_groups[] = N_("\nWarning: Followup-To set to more than one newsgroup!\n");
+	constext txt_warn_grp_renamed[] = N_("\nWarning: \"%s\" is renamed, you should use \"%s\" instead!\n");
 	constext txt_warn_missing_followup_to[] = N_("\nWarning: cross-posting to %d newsgroups and no Followup-To line!\n");
 	constext txt_warn_not_in_newsrc[] = N_("\nWarning: \"%s\" is not in your newsrc, it may be invalid at this site!\n");
 	constext txt_warn_not_valid_newsgroup[] = N_("\nWarning: \"%s\" is not a valid newsgroup at this site!\n");
@@ -930,16 +1077,16 @@ 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-2011 Iain Lea.";
 #endif /* M_UNIX */
 
 #ifdef NNTP_ABLE
 	constext txt_caching_off[] = N_("Try cache_overview_files to speed up things.\n");
 	constext txt_caching_on[] = N_("Tin will use local index files instead.\n");
 	constext txt_cannot_get_nntp_server_name[] = N_("Cannot find NNTP server name");
-	constext txt_connecting_port[] = N_("Connecting to %s:%d...");
+	constext txt_connecting_port[] = N_("Connecting to %s:%u...");
 	constext txt_disconnecting[] = N_("Disconnecting from server...\n");
-	constext txt_error_wrong_newsgroupname_in_group_response[] = N_("Wrong newsgroup name in response of GROUP command, %s for %s");
+	constext txt_error_wrong_newsgroupname_in_group_response[] = N_("Wrong newsgroup name (\"%s\") in response of \"GROUP %s\" command: \"%s\"");
 	constext txt_failed_to_connect_to_server[] = N_("Failed to connect to NNTP server %s. Exiting...");
 	constext txt_nntp_ok_goodbye[] = N_("205  Closing connection");
 	constext txt_no_xover_support[] = N_("Your server does not support the NNTP XOVER or OVER command.\n");
@@ -949,16 +1096,19 @@ Warning: Posting is in %s and contains c
 	constext txt_usage_newsserver[] = N_("  -g serv  read news from NNTP server serv [default=%s]");
 	constext txt_usage_port[] = N_("  -p port  use port as NNTP port [default=%d]");
 	constext txt_usage_quickstart[] = N_("  -Q       quick start. Same as -nqd");
+	constext txt_usage_read_news_remotely[] = N_("  -r       read news remotely from default NNTP server");
 	constext txt_usage_read_only_active[] = N_("  -l       use only LIST instead of GROUP (-n) command");
 	constext txt_usage_read_only_subscribed[] = N_("  -n       only read subscribed .newsrc groups from NNTP server");
-#	ifdef HAVE_GETSERVBYNAME
-		constext txt_error_unknown_service[] = N_("%s/tcp: Unknown service.\n");
-#	endif /* HAVE_GETSERVBYNAME */
 #	ifdef INET6
+		constext txt_usage_force_ipv4[] = N_("  -4       force connecting via IPv4");
+		constext txt_usage_force_ipv6[] = N_("  -6       force connecting via IPv6");
 		constext txt_error_socket_or_connect_problem[] = N_("\nsocket or connect problem\n");
 #	else
 		constext txt_connection_to[] = N_("\nConnection to %s: ");
 		constext txt_giving_up[] = N_("Giving up...\n");
+#		ifdef HAVE_GETSERVBYNAME
+			constext txt_error_unknown_service[] = N_("%s/tcp: Unknown service.\n");
+#		endif /* HAVE_GETSERVBYNAME */
 #	endif /* INET6 */
 #	ifdef XHDR_XREF
 		constext txt_warn_xref_not_supported[] = N_("Your server does not have Xref: in its XOVER information.\n\
@@ -981,10 +1131,6 @@ Tin will try to use XHDR XREF instead (s
 	constext txt_post_via_builtin_inews_only[] = N_("It worked! Should I always use my built in inews from now on?");
 #endif /* NNTP_INEWS */
 
-#ifdef VMS
-	constext txt_copyright_notice[] = "%s (c) Copyright 1991-2006 Iain Lea & Tod McQuillin & other.";
-#endif /* VMS */
-
 #ifndef DISABLE_PRINTING
 	constext txt_articles_printed[] = N_("%d %s printed");
 	constext txt_help_global_print[] = N_("output article/thread/hot/pattern/tagged articles to printer");
@@ -1079,9 +1225,9 @@ Warning: The \"%s:\" line has spaces in 
 #	endif /* USE_CURSES */
 #endif /* HAVE_COLOR */
 
-#if defined(NNTP_ABLE) && defined(HAVE_INET_NTOA)
+#if defined(NNTP_ABLE) && defined(HAVE_INET_NTOA) && !defined(INET6)
 	constext txt_trying[] = N_("Trying %s");
-#endif /* NNTP_ABLE && HAVE_INET_NTOA */
+#endif /* NNTP_ABLE && HAVE_INET_NTOA && !INET6 */
 
 
 /*
@@ -1189,6 +1335,14 @@ constext *txt_attrs[] = {
 	N_("Bold")
 };
 
+/* different options for auto_cc_bcc */
+constext *txt_auto_cc_bcc_options[] = {
+	N_("No"),
+	N_("Cc"),
+	N_("Bcc"),
+	N_("Cc and Bcc")
+};
+
 /* different confirm choices */
 constext *txt_confirm_choices[] = {
 	N_("none"),
@@ -1201,6 +1355,38 @@ constext *txt_confirm_choices[] = {
 	N_("commands & quit & select")
 };
 
+/* different options for goto_next_unread */
+constext *txt_goto_next_unread_options[] = {
+	N_("none"),
+	N_("PageDown"),
+	N_("PageNextUnread"),
+	N_("PageDown or PageNextUnread"),
+};
+
+/* different options for quick_kill_header / quick_select_header */
+constext *txt_quick_ks_header_options[] = {
+	N_("Subject: (case sensitive)"),
+	N_("Subject: (ignore case)"),
+	N_("From: (case sensitive)"),
+	N_("From: (ignore case)"),
+	N_("Msg-ID: & full References: line"),
+	N_("Msg-ID: & last References: only"),
+	N_("Message-ID: entry only"),
+	N_("Lines:"),
+};
+
+/* different options for trim_article_body */
+constext *txt_trim_article_body_options[] = {
+	N_("Don't trim article body"),
+	N_("Skip leading blank lines"),
+	N_("Skip trailing blank lines"),
+	N_("Skip leading and trailing blank l."),
+	N_("Compact multiple between text"),
+	N_("Compact multiple and skip leading"),
+	N_("Compact multiple and skip trailing"),
+	N_("Compact mltpl., skip lead. & trai."),
+};
+
 /*
  * MIME-Content-Transfer-Encodings.
  */
@@ -1221,7 +1407,7 @@ const char *content_types[] = {
  * Array of possible post processing descriptions and short-keys
  * This must match the ordering of the defines in tin.h
  */
-constext *txt_post_process_type[] = {
+constext *txt_post_process_types[] = {
 		N_("No"),
 		N_("Shell archive"),
 		N_("Yes")
@@ -1244,7 +1430,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 */
@@ -1471,12 +1659,14 @@ 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 = {
 	N_("Put cursor at first/last unread art in groups. <SPACE> toggles & <CR> sets."),
-	N_("Goto first unread article in group"),
+	N_("Go to first unread article in group"),
 	N_("# If ON put cursor at first unread art in group otherwise last art\n")
 };
 
@@ -1502,24 +1692,33 @@ 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")
+	N_("Go to the next unread article with"),
+	N_("# Go to the unread article with following 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_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")
+struct opttxt txt_trim_article_body = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("How to treat blank lines"),
+	N_("# Trim the article body, remove unnecessary blank lines.\n\
+# Possible values are (the default is marked with *):\n\
+# * 0 = Nothing special\n\
+#   1 = Skip leading blank lines\n\
+#   2 = Skip trailing blank lines\n\
+#   3 = Skip leading and trailing blank lines\n\
+#   4 = Compact multiple blank lines between text blocks\n\
+#   5 = Compact multiple blank lines between text blocks and skip\n\
+#       leading blank lines\n\
+#   6 = Compact multiple blank lines between text blocks and skip\n\
+#       trailing blank lines\n\
+#   7 = Compact multiple blank lines between text blocks and skip\n\
+#       leading and trailing blank lines\n")
 };
 
 struct opttxt txt_auto_list_thread = {
@@ -1597,10 +1796,18 @@ struct opttxt txt_groupname_max_length =
 	N_("# Maximum length of the names of newsgroups displayed\n")
 };
 
+struct opttxt txt_abbreviate_groupname = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Abbreviate long newsgroup names"),
+	N_("# If ON abbreviate (if necessary) long newsgroup names at group selection\n\
+# level and article level like this:\n\
+#   news.software.readers -> n.software.readers -> n.s.readers -> n.s.r.\n")
+};
+
 struct opttxt txt_show_info = {
 	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 	N_("Show lines/score in listings"),
-	N_("# What informations should be displayed in article/thread listing\n\
+	N_("# What information should be displayed in article/thread listing\n\
 # Possible values are (the default is marked with *):\n\
 #   0 = nothing\n\
 # * 1 = lines\n\
@@ -1673,6 +1880,12 @@ struct opttxt txt_alternative_handling =
 	N_("# If ON strip multipart/alternative messages automatically\n")
 };
 
+struct opttxt txt_verbatim_handling = {
+	N_("Enable detection of verbatim blocks? <SPACE> toggles & <CR> sets."),
+	N_("Detection of verbatim blocks"),
+	N_("# If ON detect verbatim blocks in articles\n")
+};
+
 #ifdef HAVE_COLOR
 struct opttxt txt_quote_regex = {
 	N_("A regex used to decide which lines to show in col_quote."),
@@ -1745,6 +1958,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"),
@@ -1787,20 +2014,20 @@ struct opttxt txt_confirm_choice = {
 
 struct opttxt txt_mark_ignore_tags = {
 	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
-	N_("'Mark article read' ignores tags"),
-	N_("# If ON the 'Mark article read' function marks only the current article.\n")
+	N_("'Mark as (un)read' ignores tags"),
+	N_("# If ON the 'Mark as (un)read' function marks only the current article.\n")
 };
 
 struct opttxt txt_url_handler = {
-	N_("Program to run to open URL's, <CR> sets, <ESC> cancels."),
-	N_("Program that opens URL's"),
-	N_("# The program used to open URL's. The actual URL will be appended\n")
+	N_("Program to run to open URLs, <CR> sets, <ESC> cancels."),
+	N_("Program that opens URLs"),
+	N_("# The program used to open URLs. The actual URL will be appended\n")
 };
 
 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
@@ -2006,6 +2233,13 @@ struct opttxt txt_col_urls = {
 # Default: -1 (default color)\n")
 };
 
+struct opttxt txt_col_verbatim = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Color of verbatim blocks"),
+	N_("# Color of verbatim blocks\n\
+# Default: 5 (pink)\n")
+};
+
 struct opttxt txt_col_markstar = {
 	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
 	N_("Color of highlighting with *stars*"),
@@ -2123,9 +2357,9 @@ struct opttxt txt_sigfile = {
 	N_("Enter path/! command/--none to create your default signature. <CR> sets."),
 	N_("Create signature from path/command"),
 	N_("# 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 signature\n\
-# default_sigfile=--none     don't append a signature\n")
+# sigfile=file       appends file as signature\n\
+# sigfile=!command   executes external command to generate a signature\n\
+# sigfile=--none     don't append a signature\n")
 };
 
 struct opttxt txt_sigdashes = {
@@ -2184,7 +2418,7 @@ struct opttxt txt_mail_quote_format = {
 
 struct opttxt txt_advertising = {
 	N_("If ON, include User-Agent: header. <SPACE> toggles & <CR> sets."),
-	N_("Insert 'User-Agent:'-header"),
+	N_("Insert 'User-Agent:' header"),
 	N_("# If ON include advertising User-Agent: header\n")
 };
 
@@ -2205,6 +2439,13 @@ struct opttxt txt_mm_network_charset = {
 	N_("MM_NETWORK_CHARSET"),
 	N_("# Charset used for MIME (Content-Type) header in postings.\n")
 };
+#	ifdef NO_LOCALE
+struct opttxt txt_mm_local_charset = {
+	N_("Enter local charset name (e.g. US-ASCII, ISO-8859-1, EUC-KR), <CR> to set."),
+	N_("MM_LOCAL_CHARSET"),
+	N_("# Charset supported locally.\n")
+};
+#	endif /* NO_LOCALE */
 #endif /* !CHARSET_CONVERSION */
 
 struct opttxt txt_mailbox_format = {
@@ -2271,16 +2512,15 @@ struct opttxt txt_translit = {
 };
 #endif /* HAVE_ICONV_OPEN_TRANSLIT */
 
-struct opttxt txt_auto_cc = {
-	N_("Send you a carbon copy automatically. <SPACE> toggles & <CR> sets."),
-	N_("Send you a cc automatically"),
-	N_("# If ON automatically put your name in the Cc: field when mailing an article\n")
-};
-
-struct opttxt txt_auto_bcc = {
-	N_("Send you a blind carbon copy automatically. <SPACE> toggles & <CR> sets."),
-	N_("Send you a blind cc automatically"),
-	N_("# If ON automatically put your name in the Bcc: field when mailing an article\n")
+struct opttxt txt_auto_cc_bcc = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Send you a Cc/Bcc automatically"),
+	N_("# Put your name in the Cc: and/or Bcc: field when mailing an article.\n\
+# Possible values are (the default is marked with *):\n\
+# * 0 = No\n\
+#   1 = Cc\n\
+#   2 = Bcc\n\
+#   3 = Cc and Bcc\n")
 };
 
 struct opttxt txt_spamtrap_warning_addresses = {
@@ -2334,7 +2574,7 @@ struct opttxt txt_mark_saved_read = {
 	N_("# If ON mark articles that are saved as read\n")
 };
 
-struct opttxt txt_post_process = {
+struct opttxt txt_post_process_type = {
 	N_("Do post processing (eg. extract attachments) for saved articles."),
 	N_("Post process saved articles"),
 	N_("# Perform post processing (saving binary attachments) from saved articles.\n\
@@ -2415,6 +2655,14 @@ struct opttxt txt_unlink_article = {
 	N_("# If ON remove ~/.article after posting.\n")
 };
 
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+struct opttxt txt_utf8_graphics = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Use UTF-8 graphics (thrd tree etc.)"),
+	N_("# If ON use UTF-8 characters for indicator '->', tree and ellipsis '...'.\n")
+};
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+
 struct opttxt txt_posted_articles_file = {
 	N_("Filename for all posted articles, <CR> sets, no filename=do not save."),
 	N_("Filename for posted articles"),
@@ -2488,3 +2736,149 @@ struct opttxt txt_render_bidi = {
 	N_("# If ON, bi-directional text is rendered by tin\n")
 };
 #endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && HAVE_UNICODE_UBIDI_H && !NO_LOCALE */
+
+/*
+ * structs for the attributes menu below,
+ * no need for *tinrc text
+ */
+struct opttxt txt_auto_select = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Automatically GroupMarkUnselArtRead"),
+	NULL
+};
+
+struct opttxt txt_delete_tmp_files = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Delete post-process files"),
+	NULL
+};
+
+struct opttxt txt_fcc = {
+	N_("Filename for all mailed articles, <CR> sets, no filename=do not save."),
+	N_("Mailbox to save sent mails"),
+	NULL
+};
+
+struct opttxt txt_followup_to = {
+	N_("Set Followup-To: header to this group(s). <CR> sets, <ESC> cancels."),
+	N_("Followup-To: header"),
+	NULL
+};
+
+struct opttxt txt_from = {
+	N_("Enter default mail address (and fullname). <CR> sets, <ESC> cancels."),
+	N_("Mail address (and fullname)"),
+	NULL
+};
+
+#ifdef HAVE_ISPELL
+struct opttxt txt_ispell = {
+	N_("Path and options for ispell-like spell-checker. <CR> sets, <ESC> cancels."),
+	N_("Ispell program"),
+	NULL
+};
+#endif /* HAVE_ISPELL */
+
+struct opttxt txt_mailing_list = {
+	N_("When group is a mailing list, send responses to this email address."),
+	N_("Mailing list address"),
+	NULL
+};
+
+struct opttxt txt_mime_forward = {
+	N_("<SPACE> toggles, <CR> sets, <ESC> cancels."),
+	N_("Forward articles as attachement"),
+	NULL
+};
+
+struct opttxt txt_mime_types_to_save = {
+	N_("A comma separated list of MIME major/minor Content-Types. <ESC> cancels."),
+	N_("Which MIME types will be saved"),
+	NULL
+};
+
+struct opttxt txt_organization = {
+	N_("Value of the Organization: header. <CR> sets, <ESC> cancels."),
+	N_("Organization: header"),
+	NULL
+};
+
+struct opttxt txt_savefile = {
+	N_("Filename for saved articles. <CR> sets, <ESC> cancels."),
+	N_("savefile"),
+	NULL
+};
+
+struct opttxt txt_quick_select_scope = {
+	N_("Scope for the filter rule. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) select filter scope"),
+	NULL
+};
+
+struct opttxt txt_quick_select_header = {
+	N_("Header for filter rule. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) select filter header"),
+	NULL
+};
+
+struct opttxt txt_quick_select_case = {
+	N_("ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) select filter case"),
+	NULL
+};
+
+struct opttxt txt_quick_select_expire = {
+	N_("ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) select filter expire"),
+	NULL
+};
+
+struct opttxt txt_quick_kill_scope = {
+	N_("Scope for the filter rule. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) kill filter scope"),
+	NULL
+};
+
+struct opttxt txt_quick_kill_header = {
+	N_("Header for filter rule. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) kill filter header"),
+	NULL
+};
+
+struct opttxt txt_quick_kill_case = {
+	N_("ON = case sensitive, OFF = ignore case. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) kill filter case"),
+	NULL
+};
+
+struct opttxt txt_quick_kill_expire = {
+	N_("ON = expire, OFF = don't ever expire. <CR> sets, <ESC> cancels."),
+	N_("Quick (1 key) kill filter expire"),
+	NULL
+};
+
+#ifdef CHARSET_CONVERSION
+struct opttxt txt_undeclared_charset = {
+	N_("Assume this charset if no charset declaration is present, <CR> to set."),
+	N_("UNDECLARED_CHARSET"),
+	NULL
+};
+#endif /* CHARSET_CONVERSION */
+
+struct opttxt txt_x_body = {
+	N_("Add this text at the start of the message body. <CR> sets, <ESC> cancels."),
+	N_("X_Body"),
+	NULL
+};
+
+struct opttxt txt_x_headers = {
+	N_("Insert this header when posting. <CR> sets, <ESC> cancels."),
+	N_("X_Headers"),
+	NULL
+};
+
+struct opttxt txt_x_comment_to = {
+	N_("Automatically insert an X-Comment-To: header? <SPACE> toggles & <CR> sets."),
+	N_("Insert 'X-Comment-To:' header"),
+	NULL
+};
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/list.c tin-2.0.0/src/list.c
--- tin-1.8.3/src/list.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/list.c	2011-04-17 16:04:30.919144027 +0200
@@ -3,10 +3,10 @@
  *  Module    : list.c
  *  Author    : I. Lea
  *  Created   : 1993-12-18
- *  Updated   : 2005-07-20
+ *  Updated   : 2008-11-28
  *  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-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -121,16 +121,24 @@ hash_groupname(
  */
 int
 find_group_index(
-	const char *group)
+	const char *group,
+	t_bool ignore_case)
 {
+	char *group_lcase;
 	int i;
 	unsigned long h;
 
-	h = hash_groupname(group);
+	group_lcase = my_strdup(group);
+	str_lwr(group_lcase);
+
+	h = hash_groupname(group_lcase);
 	i = group_hash[h];
 
+	free(group_lcase);
+
 	/*
 	 * hash linked list chaining
+	 * first try to find group in original spelling only
 	 */
 	while (i >= 0) {
 		if (STRCMPEQ(group, active[i].name))
@@ -139,6 +147,19 @@ find_group_index(
 		i = active[i].next;
 	}
 
+	/*
+	 * group not found in original spelling, try to find not case sensitive
+	 * if desired
+	 */
+	if (ignore_case) {
+		i = group_hash[h];
+		while (i >= 0) {
+			if (0 == strcasecmp(group, active[i].name))
+				return i;
+			i = active[i].next;
+		}
+	}
+
 	return -1;
 }
 
@@ -148,11 +169,12 @@ find_group_index(
  */
 struct t_group *
 group_find(
-	const char *group_name)
+	const char *group_name,
+	t_bool ignore_case)
 {
 	int i;
 
-	if ((i = find_group_index(group_name)) != -1)
+	if ((i = find_group_index(group_name, ignore_case)) != -1)
 		return &active[i];
 
 	return (struct t_group *) 0;
@@ -168,7 +190,13 @@ group_add_to_hash(
 	const char *groupname,
 	int idx)
 {
-	unsigned long h = hash_groupname(groupname);
+	char *groupname_lcase;
+	unsigned long h;
+
+	groupname_lcase = my_strdup(groupname);
+	str_lwr(groupname_lcase);
+	h = hash_groupname(groupname_lcase);
+	free(groupname_lcase);
 
 	if (group_hash[h] == -1)
 		group_hash[h] = idx;
@@ -259,7 +287,8 @@ group_rehash(
 	}
 
 #ifdef DEBUG
-	debug_print_active_hash();
+	if (debug & DEBUG_MISC)
+		debug_print_active_hash();
 #endif /* DEBUG */
 }
 
@@ -306,5 +335,6 @@ debug_print_active_hash(
 	for (i = 0; i < 32; i++)
 		fprintf(stderr, "%2d ", collisions[i]);
 	fprintf(stderr, "\n");
+	sleep(4);
 }
 #endif /* DEBUG */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/lock.c tin-2.0.0/src/lock.c
--- tin-1.8.3/src/lock.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/lock.c	2011-04-17 16:04:30.943147682 +0200
@@ -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-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -64,7 +64,7 @@
  *
  * return codes:
  *  0 = file locked successfully
- * -1 = some error occured
+ * -1 = some error occurred
  */
 int
 fd_lock(
@@ -108,7 +108,7 @@ fd_lock(
  * return codes:
  *  0 = file is not locked
  *  1 = file is locked
- * -1 = some error occured
+ * -1 = some error occurred
  */
 int
 test_fd_lock(
@@ -126,7 +126,7 @@ test_fd_lock(
 		flk.l_start = 0;
 		flk.l_len = 0;
 		if (fcntl(fd, F_GETLK, &flk) < 0)
-				return -1; /* some error occured */
+				return -1; /* some error occurred */
 		else {
 			if (flk.l_type != F_UNLCK)
 				return 1;	/* file is locked */
@@ -140,7 +140,7 @@ test_fd_lock(
 		if (errno == EACCES)
 			return 1;	/* file is locked */
 		else
-			return -1;	/* some error occured */
+			return -1;	/* some error occurred */
 	} else
 		rval = 0;	/* file is not lockf locked */
 #	else
@@ -149,7 +149,7 @@ test_fd_lock(
 		if (errno == EWOULDBLOCK)
 			return 1;	/* file is locked */
 		else
-			return -1;	/* some error occured */
+			return -1;	/* some error occurred */
 	} else
 		rval = 0; /* file is not flock locked */
 
@@ -169,7 +169,7 @@ test_fd_lock(
  *
  * return codes:
  *  0 = file unlocked successfully
- * -1 = some error occured
+ * -1 = some error occurred
  */
 int
 fd_unlock(
@@ -211,7 +211,7 @@ fd_unlock(
  *
  * return codes:
  *  TRUE  = file locked successfully
- *  FALSE = some error occured
+ *  FALSE = some error occurred
  */
 t_bool dot_lock(
 	const char *filename)
@@ -232,7 +232,7 @@ t_bool dot_lock(
 
 #ifdef HAVE_LINK
 	if (stat(lockfile, &statbuf)) {				/* lockfile doesn't exist */
-		if (!link(tempfile, lockfile)) {			/* link succsessfull */
+		if (!link(tempfile, lockfile)) {			/* link successful */
 			if (!stat(tempfile, &statbuf)) {	/* tempfile exist */
 				if (statbuf.st_nlink == 2)			/* link count ok */
 					rval = TRUE;
@@ -257,7 +257,7 @@ t_bool dot_lock(
  *
  * return codes:
  *  TRUE  = file unlocked successfully
- *  FALSE = some error occured
+ *  FALSE = some error occurred
  */
 t_bool dot_unlock(
 	const char *filename)
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/mail.c tin-2.0.0/src/mail.c
--- tin-1.8.3/src/mail.c	2006-01-19 23:40:13.000000000 +0100
+++ tin-2.0.0/src/mail.c	2011-04-18 00:14:00.557719523 +0200
@@ -3,10 +3,10 @@
  *  Module    : mail.c
  *  Author    : I. Lea
  *  Created   : 1992-10-02
- *  Updated   : 2006-01-19
+ *  Updated   : 2011-04-17
  *  Notes     : Mail handling routines for creating pseudo newsgroups
  *
- * Copyright (c) 1992-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1992-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -41,7 +41,11 @@
 #ifndef TCURSES_H
 #	include "tcurses.h"
 #endif /* !TCURSES_H */
-
+#ifdef NNTP_ABLE
+#	ifndef TNNTP_H
+#		include "tnntp.h"
+#	endif /* !TNNTP_H */
+#endif /* NNTP_ABLE */
 /*
  * local prototypes
  */
@@ -103,7 +107,7 @@ read_mail_active_file(
 			my_fputc('\n', stderr);
 
 		if (!created_rcdir) /* no error on first start */
-			error_message(_(txt_cannot_open), mail_active_file);
+			error_message(2, _(txt_cannot_open), mail_active_file);
 		/*
 		 * TODO: do an autoscan of maildir, create & reopen?
 		 */
@@ -118,10 +122,10 @@ read_mail_active_file(
 		/*
 		 * Update mailgroup info
 		 */
-		if ((ptr = group_find(buf)) != NULL) {
+		if ((ptr = group_find(buf, FALSE)) != NULL) {
 			if (strcmp(ptr->spooldir, my_spooldir) != 0) {
 				free(ptr->spooldir);
-				strfpath(my_spooldir, buf2, sizeof(buf2) - 1, ptr);
+				strfpath(my_spooldir, buf2, sizeof(buf2) - 1, ptr, FALSE);
 				ptr->spooldir = my_strdup(buf2);
 			}
 			ptr->xmax = max;
@@ -138,7 +142,7 @@ read_mail_active_file(
 		/*
 		 * Load group info. TODO: integrate with active_add()
 		 */
-		strfpath(my_spooldir, buf2, sizeof(buf2) - 1, ptr);
+		strfpath(my_spooldir, buf2, sizeof(buf2) - 1, ptr, FALSE);
 		ptr->spooldir = my_strdup(buf2);
 		group_get_art_info(ptr->spooldir, buf, GROUP_TYPE_MAIL, &ptr->count, &ptr->xmax, &ptr->xmin);
 		ptr->aliasedto = NULL;
@@ -184,7 +188,7 @@ write_mail_active_file(
 	file_tmp = get_tmpfilename(mail_active_file);
 
 	if (!backup_file(mail_active_file, file_tmp)) {
-		error_message(_(txt_filesystem_full_backup), mail_active_file);
+		error_message(2, _(txt_filesystem_full_backup), mail_active_file);
 		/* free memory for tmp-filename */
 		free(file_tmp);
 		return;
@@ -196,14 +200,18 @@ write_mail_active_file(
 		for_each_group(i) {
 			group = &active[i];
 			if (group->type == GROUP_TYPE_MAIL) {
-				make_base_group_path(group->spooldir, group->name, group_path);
+				make_base_group_path(group->spooldir, group->name, group_path, sizeof(group_path));
 				find_art_max_min(group_path, &group->xmax, &group->xmin);
 				print_group_line(fp, group->name, group->xmax, group->xmin, group->spooldir);
 			}
 		}
-		if (ferror(fp) || fclose(fp)) {
-			error_message(_(txt_filesystem_full), mail_active_file);
+		if ((i = ferror(fp)) || fclose(fp)) {
+			error_message(2, _(txt_filesystem_full), mail_active_file);
 			rename(file_tmp, mail_active_file);
+			if (i) {
+				clearerr(fp);
+				fclose(fp);
+			}
 		} else
 			unlink(file_tmp);
 	}
@@ -231,17 +239,24 @@ read_mailgroups_file(
 
 		fclose(fp);
 
-		if (!batch_mode && verb)
+		if (!batch_mode && verb) {
 			my_fputs("\n", stdout);
+			cursoroff();
+		}
 	}
 }
 #endif /* HAVE_MH_MAIL_HANDLING */
 
 
 /*
- * If reading via NNTP the newsgroups file will be saved to ~/.tin/newsgroups
- * so that any subsequent rereads on the active file will not have to waste
- * net bandwidth and the local copy of the newsgroups file can be accessed.
+ * If reading via NNTP the newsgroups file will be saved to
+ * ~/.tin/$NNTPSERVER/newsgroups so that any subsequent rereads on the
+ * active file will not have to waste net bandwidth and the local copy
+ * of the newsgroups file can be accessed.
+ *
+ * in the newsrc_active case (-n cmd-line switch) we use "LIST NEWSGROUPS grp"
+ * instead of "LIST NEWSGROUPS" if we have just a few groups in the newsrc,
+ * due to pipelining the code is a bit complex.
  */
 static FILE *
 open_newsgroups_fp(
@@ -249,6 +264,7 @@ open_newsgroups_fp(
 {
 #ifdef NNTP_ABLE
 	FILE *result;
+	static int no_more_wildmat = 0;
 
 	if (read_news_via_nntp && !read_saved_news) {
 		if (read_local_newsgroups_file) {
@@ -258,7 +274,8 @@ open_newsgroups_fp(
 				if (buf.st_size > 0) {
 					if ((result = fopen(local_newsgroups_file, "r")) != NULL) {
 #	ifdef DEBUG
-						debug_nntp("open_newsgroups_fp", "Using local copy of newsgroups file");
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "open_newsgroups_fp Using local copy of newsgroups file");
 #	endif /* DEBUG */
 						return result;
 					}
@@ -266,15 +283,109 @@ open_newsgroups_fp(
 					unlink(local_newsgroups_file);
 			}
 		}
-#	if 0 /* TODO: */
-		if (list_newsgroups_wildmat_supported && newsrc_active
-		    && !list_active && num_active < some_useful_limit) {
-			for_each_group(i) {
-				snprintf(buff, sizeof(buff), "LIST NEWSGROUPS %s", active[i].name);
-				nntp_command(buff, OK_LIST, NULL, 0);
+		/*
+		 * TODO: test me, find a useful limit,
+		 *       optimize more than n groups (e.g. 5) of the same
+		 *       subhierarchy to a wildmat?
+		 */
+		if (((nntp_caps.type == CAPABILITIES && nntp_caps.list_newsgroups) || nntp_caps.type != CAPABILITIES) && newsrc_active && !list_active && !no_more_wildmat && (PIPELINE_LIMIT > MAX(1, num_active))) {
+			char *ptr;
+			char buff[NNTP_STRLEN];
+			char line[NNTP_STRLEN];
+			char file[PATH_LEN];
+			char serverdir[PATH_LEN];
+			struct t_group *group;
+			int resp, i, j = 0;
+
+			if (nntp_tcp_port != IPPORT_NNTP)
+				snprintf(file, sizeof(file), "%s:%u", nntp_server, nntp_tcp_port);
+			else
+				STRCPY(file, quote_space_to_dash(nntp_server));
+
+			joinpath(serverdir, sizeof(serverdir), rcdir, file);
+			joinpath(file, sizeof(file), serverdir, NEWSGROUPS_FILE".tmp");
+			*buff = '\0';
+			if ((result = fopen(file, "w")) != NULL) {
+				for_each_group(i) {
+					if ((group = group_find(active[i].name, FALSE)) != NULL) {
+						if (group->type == GROUP_TYPE_NEWS) {
+							if (nntp_caps.type == CAPABILITIES && nntp_caps.list_newsgroups) {
+								if (*buff) {
+									if (strlen(buff) + strlen(active[i].name) + 1 < NNTP_STRLEN) {
+										snprintf(buff + strlen(buff), sizeof(buff) - strlen(buff), ",%s", active[i].name);
+										continue;
+									} else {
+										put_server(buff);
+										*buff = '\0';
+										j++;
+									}
+								}
+								if (!*buff) {
+									snprintf(buff, sizeof(buff), "LIST NEWSGROUPS %s", active[i].name);
+									continue;
+								}
+							} else
+								snprintf(buff, sizeof(buff), "LIST NEWSGROUPS %s", active[i].name);
+#		ifdef DISABLE_PIPELINING
+							if ((resp = new_nntp_command(buff, OK_GROUPS, line, sizeof(line))) != OK_GROUPS) {
+								no_more_wildmat = resp;
+								*buff = '\0';
+								break;
+							}
+							while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
+#			ifdef DEBUG
+								if (debug & DEBUG_NNTP)
+									debug_print_file("NNTP", "<<< %s", ptr);
+#			endif /* DEBUG */
+								fprintf(result, "%s\n", str_trim(ptr));
+							}
+#		else
+							put_server(buff);
+							*buff = '\0';
+							j++;
+#		endif /* DISABLE_PIPELINING */
+						}
+					}
+				}
+				if (*buff) {
+					put_server(buff);
+					j++;
+				}
+#		ifndef DISABLE_PIPELINING
+				while (j--) {
+					if ((resp = get_only_respcode(line, sizeof(line))) != OK_GROUPS) {
+						if (!no_more_wildmat)
+							no_more_wildmat = resp;
+						continue;
+					}
+					while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
+#			ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "<<< %s", ptr);
+#			endif /* DEBUG */
+						fprintf(result, "%s\n", str_trim(ptr));
+					}
+				}
+				/* TODO: add 483 (RFC 3977) support */
+				if (no_more_wildmat == ERR_NOAUTH || no_more_wildmat == NEED_AUTHINFO) {
+					if (!authenticate(nntp_server, userid, FALSE)) {
+						error_message(2, _(txt_auth_failed), nntp_caps.type == CAPABILITIES ? ERR_AUTHFAIL : ERR_ACCESS);
+						tin_done(EXIT_FAILURE);
+					}
+				}
+#		endif /* !DISABLE_PIPELINING */
+				fclose(result);
+				result = fopen(file, "r");
+				unlink(file); /* unlink on close */
 			}
-		} else
-#	endif /* 0 */
+
+			if (result != NULL) {
+				if (!no_more_wildmat)
+					return result;
+				else /* AUTH request while pipeling or some error */
+					fclose(result);
+			}
+		}
 		return (nntp_command("LIST NEWSGROUPS", OK_GROUPS, NULL, 0));
 	} else
 #endif /* NNTP_ABLE */
@@ -301,7 +412,7 @@ read_newsgroups_file(
 			struct stat buf;
 
 			if (stat(local_newsgroups_file, &buf) || !read_local_newsgroups_file)
-				fp_save = fopen(local_newsgroups_file, "w" FOPEN_OPTS);
+				fp_save = fopen(local_newsgroups_file, "w");
 		}
 
 		read_groups_descriptions(fp, fp_save);
@@ -313,8 +424,10 @@ read_newsgroups_file(
 
 		TIN_FCLOSE(fp);
 
-		if (!batch_mode && verb)
+		if (!batch_mode && verb) {
 			my_fputs("\n", stdout);
+			cursoroff();
+		}
 	}
 }
 
@@ -335,8 +448,7 @@ read_descriptions(
 
 /*
  * Read groups descriptions from opened file & make local backup copy
- * of all groups that don't have a 'x' in the active file moderated
- * field & if reading groups of type GROUP_TYPE_NEWS.
+ * of all groups if reading groups of type GROUP_TYPE_NEWS.
  * Aborting this early won't have any adverse affects, just some missing
  * descriptions.
  */
@@ -363,7 +475,7 @@ read_groups_descriptions(
 		 * with the "-q" option.
 		 */
 		if ((fp_save != NULL) && read_news_via_nntp)
-			fprintf(fp_save, "%s\n", ptr);
+			fprintf(fp_save, "%s\n", str_trim(ptr));
 
 		if (!space) { /* initial malloc */
 			space = strlen(ptr) + 1;
@@ -383,11 +495,11 @@ read_groups_descriptions(
 		while (*p == '\t' || *p == ' ')
 			p++;
 
-		group = group_find(groupname);
+		group = group_find(groupname, FALSE);
 
 		if (group != NULL && group->description == NULL) {
 			char *r;
-			int r_len;
+			size_t r_len;
 
 			q = p;
 			while ((q = strchr(q, '\t')) != NULL)
@@ -397,11 +509,9 @@ 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);
-			group->description = convert_to_printable(r);
+			process_charsets(&r, &r_len, "UTF-8", tinrc.mm_local_charset, FALSE);
+			group->description = convert_to_printable(r, FALSE);
 		}
 
 		if (++count % 100 == 0)
@@ -421,7 +531,7 @@ print_active_head(
 		return;
 
 	if ((fp = fopen(active_file, "w")) != NULL) {
-		fprintf(fp, _(txt_mail_save_active_head));
+		fprintf(fp, "%s", _(txt_mail_save_active_head));
 		fclose(fp);
 	}
 }
@@ -494,42 +604,28 @@ grp_del_mail_arts(
 	char artnum[LEN];
 	int i;
 	struct t_article *article;
-#if 0 /* see comment below */
-	t_bool update_index_file = FALSE;
-#endif /* 0 */
 
 	if (group->type == GROUP_TYPE_MAIL || group->type == GROUP_TYPE_SAVE) {
 		/*
 		 * at least for GROUP_TYPE_SAVE a wait is annoying - nuke the message?
 		 */
 		wait_message(0, (group->type == GROUP_TYPE_MAIL) ? _(txt_processing_mail_arts) : _(txt_processing_saved_arts));
-		make_base_group_path(group->spooldir, group->name, group_path);
+		make_base_group_path(group->spooldir, group->name, group_path, sizeof(group_path));
 		for_each_art(i) {
 			article = &arts[i];
 			if (article->delete_it) {
 				snprintf(artnum, sizeof(artnum), "%ld", article->artnum);
-				joinpath(article_filename, group_path, artnum);
+				joinpath(article_filename, sizeof(article_filename), group_path, artnum);
 				unlink(article_filename);
 				article->thread = ART_EXPIRED;
-#if 0 /* see comment below */
-				update_index_file = TRUE;
-#endif /* 0 */
 			}
 		}
 
-#if 0
-/*
- * current tin's build_references() is changed to free msgid and refs,
- * therefore we cannot call write_overview after it. I simply commented
- * out this codes, NovFile will update at next time.
- */
-/*
- * MAYBE also check if min / max article was deleted. If so then update
- * the active[] entry for the group and rewrite the mail.active file
- */
-		if (update_index_file)
-			write_overview(group);
-#endif /* 0 */
+		/*
+		 * current tin's build_references() is changed to free msgid and
+		 * refs, therefore we cannot call write_overview after it. NovFile
+		 * will update at next time.
+		 */
 	}
 }
 
@@ -546,18 +642,18 @@ art_edit(
 	/*
 	 * Check if news / mail group
 	 */
-	if (group->type == GROUP_TYPE_NEWS)
+	if (group->type != GROUP_TYPE_MAIL)
 		return FALSE;
 
-	make_base_group_path(group->spooldir, group->name, temp_filename);
+	make_base_group_path(group->spooldir, group->name, temp_filename, sizeof(temp_filename));
 	snprintf(buf, sizeof(buf), "%ld", article->artnum);
-	joinpath(article_filename, temp_filename, buf);
-	snprintf(temp_filename, sizeof(temp_filename), "%s%d.art", TMPDIR, (int) process_id);
+	joinpath(article_filename, sizeof(article_filename), temp_filename, buf);
+	snprintf(temp_filename, sizeof(temp_filename), "%s%ld.art", TMPDIR, (long) process_id);
 
 	if (!backup_file(article_filename, temp_filename))
 		return FALSE;
 
-	if (!invoke_editor(temp_filename, 1)) {
+	if (!invoke_editor(temp_filename, 1, group)) {
 		unlink(temp_filename);
 		return FALSE;
 	} else
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/main.c tin-2.0.0/src/main.c
--- tin-1.8.3/src/main.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/main.c	2011-04-17 17:34:30.761380517 +0200
@@ -3,10 +3,10 @@
  *  Module    : main.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-08-14
+ *  Updated   : 2011-04-17
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -62,7 +62,7 @@ static t_bool start_any_unread = FALSE;	
 /*
  * Local prototypes
  */
-static t_bool create_mail_save_dirs(void);
+static void create_mail_save_dirs(void);
 static void read_cmd_line_options(int argc, char *argv[]);
 static void show_intro_page(void);
 static void update_index_files(void);
@@ -78,7 +78,7 @@ main(
 	char *argv[])
 {
 	int count;
-	int num_cmd_line_groups;
+	int num_cmd_line_groups = 0;
 	int start_groupnum = 0;
 	t_bool tmp_no_write;
 
@@ -88,23 +88,37 @@ main(
 #if defined(HAVE_SETLOCALE) && !defined(NO_LOCALE)
 	if (setlocale(LC_ALL, "")) {
 #	ifdef ENABLE_NLS
-		bindtextdomain(PACKAGE, LOCALEDIR);
-		textdomain(PACKAGE);
+		bindtextdomain(NLS_TEXTDOMAIN, LOCALEDIR);
+		textdomain(NLS_TEXTDOMAIN);
 #	endif /* ENABLE_NLS */
-	} else {
-		error_message(txt_error_locale);
-		sleep(2);
-	}
+	} else
+		error_message(4, txt_error_locale);
 #endif /* HAVE_SETLOCALE && !NO_LOCALE */
 
+	/*
+	 * determine local charset
+	 */
+#ifndef NO_LOCALE
+	{
+		const char *p;
+
+		if ((p = tin_nl_langinfo(CODESET)) != NULL) {
+			if (!strcasecmp(p, "ANSI_X3.4-1968"))
+				STRCPY(tinrc.mm_local_charset, "US-ASCII");
+			else
+				STRCPY(tinrc.mm_local_charset, p);
+		}
+	}
+#endif /* !NO_LOCALE */
+	/* always set a default value */
+	if (!*tinrc.mm_local_charset)
+		STRCPY(tinrc.mm_local_charset, "US-ASCII");
+
 	set_signal_handlers();
 
 	debug = 0;	/* debug OFF */
 
 	base_name(argv[0], tin_progname);
-#ifdef VMS
-	argv[0] = tin_progname;
-#endif /* VMS */
 
 #ifdef NNTP_ONLY
 	read_news_via_nntp = TRUE;
@@ -116,7 +130,7 @@ main(
 #	ifdef NNTP_ABLE
 		read_news_via_nntp = TRUE;
 #	else
-		error_message(_(txt_option_not_enabled), "-DNNTP_ABLE");
+		error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
 		giveup();
 #	endif /* NNTP_ABLE */
 	}
@@ -132,18 +146,20 @@ main(
 	setup_default_keys(); /* preinit keybindings */
 
 	/*
+	 * Process envargs & command line options
+	 * These override the configured in values
+	 */
+	read_cmd_line_options(argc, argv);
+
+	/*
 	 * Read user local & global config files
 	 * These override the compiled in defaults
+	 *
+	 * must be called before setup_screen()
 	 */
 	read_config_file(global_config_file, TRUE);
 	read_config_file(local_config_file, FALSE);
 
-	/*
-	 * Process envargs & command line options
-	 * These override the configured in values
-	 */
-	read_cmd_line_options(argc, argv);
-
 	tmp_no_write = no_write; /* keep no_write */
 	no_write = TRUE;		/* don't allow any writing back during startup */
 
@@ -151,7 +167,7 @@ main(
 #ifdef M_UNIX
 #	ifndef USE_CURSES
 		if (!get_termcaps()) {
-			error_message(_(txt_screen_init_failed), tin_progname);
+			error_message(2, _(txt_screen_init_failed), tin_progname);
 			giveup();
 		}
 #	endif /* !USE_CURSES */
@@ -161,7 +177,7 @@ main(
 		 * Init curses emulation
 		 */
 		if (!InitScreen()) {
-			error_message(_(txt_screen_init_failed), tin_progname);
+			error_message(2, _(txt_screen_init_failed), tin_progname);
 			giveup();
 		}
 
@@ -179,7 +195,8 @@ main(
 	/*
 	 * Connect to nntp server?
 	 */
-	nntp_server = getserverbyfile(NNTP_SERVER_FILE);
+	if (!nntp_server || !*nntp_server)
+		nntp_server = getserverbyfile(NNTP_SERVER_FILE);
 	if (read_news_via_nntp && !read_saved_news && nntp_open())
 		giveup();
 
@@ -188,30 +205,24 @@ main(
 	/*
 	 * exit early - unfortunately we can't do that in read_cmd_line_options()
 	 * as nntp_caps.over_cmd is set in nntp_open()
+	 *
+	 * TODO: does the logic make sense? what
+	 * if (update_index && !nntp_caps.over_cmd && !tinrc.cache_overview_files)
+	 * no error message? why?
 	 */
 	if (update_index && nntp_caps.over_cmd && !tinrc.cache_overview_files) {
-		error_message(_(txt_batch_update_unavail), tin_progname);
+		error_message(2, _(txt_batch_update_unavail), tin_progname);
 		giveup();
 	}
 
 	/*
 	 * Check if overview indexes contain Xref: lines
 	 */
-	if (nntp_caps.over_cmd)
+#ifdef NNTP_ABLE
+	if ((read_news_via_nntp && nntp_caps.over_cmd) || !read_news_via_nntp)
+#endif /* NNTP_ABLE */
 		xref_supported = overview_xref_support();
 
-#ifdef DEBUG_NEWSRC
-	{
-		char file[PATH_LEN];
-
-		joinpath(file, TMPDIR, "BITMAP");
-		unlink(file);
-#	if 0
-		newsrc_test_harness();
-#	endif /* 0 */
-	}
-#endif /* DEBUG_NEWSRC */
-
 	/*
 	 * avoid empty regexp, we also need to do this in batch_mode
 	 * as read_overview() calls eat_re() which uses a regexp to
@@ -246,7 +257,7 @@ main(
 
 	/*
 	 * Initialise active[] and add new newsgroups to start of my_group[]
-	 * also reads attributes
+	 * also reads global/local attributes
 	 */
 	selmenu.max = 0;
 	/*
@@ -254,7 +265,9 @@ main(
 	 * $AUTOSUBSCRIBE groups
 	 */
 	no_write = tmp_no_write;
-	read_news_active_file();
+	read_attributes_file(TRUE);
+	read_attributes_file(FALSE);
+	start_groupnum = read_news_active_file();
 #ifdef DEBUG
 	debug_print_active();
 #endif /* DEBUG */
@@ -263,7 +276,7 @@ main(
 	 * Read in users filter preferences file. This has to be done before
 	 * quick post because the filters might be updated.
 	 */
-	filtered_articles = read_filter_file(filter_file);
+	read_filter_file(filter_file);
 
 	no_write = TRUE;
 #ifdef DEBUG
@@ -271,6 +284,13 @@ main(
 #endif /* DEBUG */
 
 	/*
+	 * Preloads active[] with command line groups. They will follow any
+	 * new newsgroups
+	 */
+	if (!post_postponed_and_exit)
+		num_cmd_line_groups = read_cmd_line_groups();
+
+	/*
 	 * Quick post an article and exit if -w or -o specified
 	 */
 	if (post_article_and_exit || post_postponed_and_exit) {
@@ -294,19 +314,13 @@ main(
 		no_write = TRUE; /* disable newsrc updates */
 	}
 
-	/*
-	 * TODO: what has write_config_file() to do with create_mail_save_dirs ()
-	 */
-	if (create_mail_save_dirs())
+	/* what about "if (!no_write)" here? */
+	create_mail_save_dirs();
+	if (created_rcdir) /* first start */
 		write_config_file(local_config_file);
 
-	/*
-	 * Preloads active[] with command line groups. They will follow any
-	 * new newsgroups
-	 */
-	num_cmd_line_groups = read_cmd_line_groups();
-
-	backup_newsrc();
+	if (!tmp_no_write)	/* do not (over)write oldnewsrc with -X */
+		backup_newsrc();
 
 	/*
 	 * Load my_groups[] from the .newsrc file. We append these groups to any
@@ -350,7 +364,7 @@ main(
 	 * Save any new articles to savedir structure for later reading
 	 *
 	 * TODO: should we temporarely set
-	 *       getart_limit=-1,thread_arts=0,sort_art_type=0
+	 *       getart_limit=-1,thread_articles=0,sort_article_type=0
 	 *       for speed reasons?
 	 */
 	if (mail_news || save_news) {
@@ -404,7 +418,7 @@ main(
 /*
  * process command line options
  */
-#define OPTIONS "aAcdD:f:g:G:hHI:lm:M:nNop:qQrRs:SuvVwxXzZ"
+#define OPTIONS "46aAcdD:f:g:G:hHI:lm:M:nNop:qQrRs:SuvVwxXzZ"
 
 static void
 read_cmd_line_options(
@@ -418,11 +432,44 @@ read_cmd_line_options(
 
 	while ((ch = getopt(argc, argv, OPTIONS)) != -1) {
 		switch (ch) {
+
+			case '4':
+#if defined(NNTP_ABLE) && defined(INET6)
+				force_ipv4 = TRUE;
+				read_news_via_nntp = TRUE;
+#else
+#	ifdef NNTP_ABLE
+				error_message(2, _(txt_option_not_enabled), "-DENABLE_IPV6");
+#	else
+				error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
+#	endif /* NNTP_ABLE*/
+				giveup();
+				/* keep lint quiet: */
+				/* NOTREACHED */
+#endif /* NNTP_ABLE && INET6 */
+				break;
+
+			case '6':
+#if defined(NNTP_ABLE) && defined(INET6)
+				force_ipv6 = TRUE;
+				read_news_via_nntp = TRUE;
+#	else
+#	ifdef NNTP_ABLE
+				error_message(2, _(txt_option_not_enabled), "-DENABLE_IPV6");
+#	else
+				error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
+#	endif /* NNTP_ABLE*/
+				giveup();
+				/* keep lint quiet: */
+				/* NOTREACHED */
+#endif /* NNTP_ABLE && INET6 */
+				break;
+
 			case 'a':
 #ifdef HAVE_COLOR
-				use_color = bool_not(use_color);
+				cmdline.args |= CMDLINE_USE_COLOR;
 #else
-				error_message(_(txt_option_not_enabled), "-DHAVE_COLOR");
+				error_message(2, _(txt_option_not_enabled), "-DHAVE_COLOR");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -432,8 +479,9 @@ read_cmd_line_options(
 			case 'A':
 #ifdef NNTP_ABLE
 				force_auth_on_conn_open = TRUE;
+				read_news_via_nntp = TRUE;
 #else
-				error_message(_(txt_option_not_enabled), "-DNNTP_ABLE");
+				error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -449,12 +497,12 @@ read_cmd_line_options(
 				show_description = FALSE;
 				break;
 
-			case 'D':		/* debug mode 1=NNTP, 2=ALL, 3=newsrc, 4=malloc */
+			case 'D':		/* debug mode */
 #ifdef DEBUG
 				debug = atoi(optarg);
 				debug_delete_files();
 #else
-				error_message(_(txt_option_not_enabled), "-DDEBUG");
+				error_message(2, _(txt_option_not_enabled), "-DDEBUG");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -467,15 +515,17 @@ read_cmd_line_options(
 				break;
 
 			case 'G':
-				tinrc.getart_limit = atoi(optarg);
+				cmdline.getart_limit = atoi(optarg);
+				cmdline.args |= CMDLINE_GETART_LIMIT;
 				break;
 
 			case 'g':	/* select alternative NNTP-server, implies -r */
 #ifdef NNTP_ABLE
-				my_strncpy(cmdline_nntpserver, optarg, sizeof(cmdline_nntpserver) - 1);
+				my_strncpy(cmdline.nntpserver, optarg, sizeof(cmdline.nntpserver) - 1);
+				cmdline.args |= CMDLINE_NNTPSERVER;
 				read_news_via_nntp = TRUE;
 #else
-				error_message(_(txt_option_not_enabled), "-DNNTP_ABLE");
+				error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -497,7 +547,8 @@ read_cmd_line_options(
 				break;
 
 			case 'm':
-				my_strncpy(tinrc.maildir, optarg, sizeof(tinrc.maildir) - 1);
+				my_strncpy(cmdline.maildir, optarg, sizeof(cmdline.maildir) - 1);
+				cmdline.args |= CMDLINE_MAILDIR;
 				break;
 
 			case 'M':	/* mail new news to specified user */
@@ -525,7 +576,7 @@ read_cmd_line_options(
 				post_postponed_and_exit = TRUE;
 				check_for_new_newsgroups = FALSE;
 #else
-				error_message(_(txt_option_not_enabled), "-UNO_POSTING");
+				error_message(2, _(txt_option_not_enabled), "-UNO_POSTING");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -538,7 +589,7 @@ read_cmd_line_options(
 				if (atoi(optarg) != 0)
 					nntp_tcp_port = (unsigned short) atoi(optarg);
 #else
-				error_message(_(txt_option_not_enabled), "-DNNTP_ABLE");
+				error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -559,7 +610,7 @@ read_cmd_line_options(
 #ifdef NNTP_ABLE
 				read_news_via_nntp = TRUE;
 #else
-				error_message(_(txt_option_not_enabled), "-DNNTP_ABLE");
+				error_message(2, _(txt_option_not_enabled), "-DNNTP_ABLE");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -575,7 +626,8 @@ read_cmd_line_options(
 				break;
 
 			case 's':
-				my_strncpy(tinrc.savedir, optarg, sizeof(tinrc.savedir) - 1);
+				my_strncpy(cmdline.savedir, optarg, sizeof(cmdline.savedir) - 1);
+				cmdline.args |= CMDLINE_SAVEDIR;
 				break;
 
 			case 'S':	/* save new news to dir structure */
@@ -603,7 +655,7 @@ read_cmd_line_options(
 				post_article_and_exit = TRUE;
 				check_for_new_newsgroups = FALSE;
 #else
-				error_message(_(txt_option_not_enabled), "-UNO_POSTING");
+				error_message(2, _(txt_option_not_enabled), "-UNO_POSTING");
 				giveup();
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -643,25 +695,26 @@ read_cmd_line_options(
 	num_cmdargs = optind;
 	max_cmdargs = argc;
 	if (!newsrc_set) {
-		if (read_news_via_nntp)
-			get_newsrcname(newsrc, getserverbyfile(NNTP_SERVER_FILE));
-		else {
+		if (read_news_via_nntp) {
+			nntp_server = getserverbyfile(NNTP_SERVER_FILE);
+			get_newsrcname(newsrc, sizeof(newsrc), nntp_server);
+		} else {
 #if defined(HAVE_SYS_UTSNAME_H) && defined(HAVE_UNAME)
 			struct utsname uts;
 			(void) uname(&uts);
-			get_newsrcname(newsrc, uts.nodename);
+			get_newsrcname(newsrc, sizeof(newsrc), uts.nodename);
 #else
 			char nodenamebuf[256]; /* SUSv2 limit; better use HOST_NAME_MAX */
 #ifdef HAVE_GETHOSTNAME
 			(void) gethostname(nodenamebuf, sizeof(nodenamebuf));
 #endif /* HAVE_GETHOSTNAME */
-			get_newsrcname(newsrc, nodenamebuf);
+			get_newsrcname(newsrc, sizeof(newsrc), nodenamebuf);
 #endif /* HAVE_SYS_UTSNAME_H && HAVE_UNAME */
 		}
 	}
 
 	/*
-	 * Sort out conflicts of options....
+	 * Sort out option conflicts
 	 */
 	if (!batch_mode) {
 		if (verbose) {
@@ -678,6 +731,66 @@ 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 (newsrc_active && read_saved_news) {
+		wait_message(2, _(txt_useless_combination), "-n", "-R", "-n");
+		newsrc_active = read_news_via_nntp = FALSE;
+	}
+	if (start_any_unread && save_news) {
+		wait_message(2, _(txt_useless_combination), "-z", "-S", "-z");
+		start_any_unread = FALSE;
+	}
+	if (save_news && check_any_unread) {
+		wait_message(2, _(txt_useless_combination), "-S", "-Z", "-S");
+		save_news = FALSE;
+	}
+	if (start_any_unread && check_any_unread) {
+		wait_message(2, _(txt_useless_combination), "-Z", "-z", "-Z");
+		check_any_unread = FALSE;
+	}
+
+#if defined(NNTP_ABLE) && defined(INET6)
+	if (force_ipv4 && force_ipv6) {
+		wait_message(2, _(txt_useless_combination), "-4", "-6", "-6");
+		force_ipv6 = FALSE;
+	}
+#endif /* NNTP_ABLE && INET6 */
+
+	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;
+
+	/*
+	 * When updating index files set getart_limit to 0 in order to get overview
+	 * information for all article; this overwrites '-G limit' and disables
+	 * tinrc.getart_limit temporary
+	 */
+	if (update_index) {
+		cmdline.getart_limit = 0;
+		cmdline.args |= CMDLINE_GETART_LIMIT;
+	}
 #ifdef NNTP_ABLE
 	/*
 	 * If we're reading from an NNTP server and we've been asked not to look
@@ -702,64 +815,73 @@ static void
 usage(
 	char *theProgname)
 {
-	error_message(_(txt_usage_tin), theProgname);
+	error_message(2, _(txt_usage_tin), theProgname);
+
+#if defined(NNTP_ABLE) && defined(INET6)
+		error_message(2, _(txt_usage_force_ipv4));
+		error_message(2, _(txt_usage_force_ipv6));
+#endif /* NNTP_ABLE && INET6 */
 
 #ifdef HAVE_COLOR
-		error_message(_(txt_usage_toggle_color));
+		error_message(2, _(txt_usage_toggle_color));
 #endif /* HAVE_COLOR */
 #ifdef NNTP_ABLE
-		error_message(_(txt_usage_force_authentication));
+		error_message(2, _(txt_usage_force_authentication));
 #endif /* NNTP_ABLE */
 
-	error_message(_(txt_usage_catchup));
-	error_message(_(txt_usage_dont_show_descriptions));
+	error_message(2, _(txt_usage_catchup));
+	error_message(2, _(txt_usage_dont_show_descriptions));
 
 #ifdef DEBUG
-	error_message(_(txt_usage_debug));
+	error_message(2, _(txt_usage_debug));
 #endif /* DEBUG */
 
-	error_message(_(txt_usage_newsrc_file), newsrc);
-	error_message(_(txt_usage_getart_limit));
+	error_message(2, _(txt_usage_newsrc_file), newsrc);
+	error_message(2, _(txt_usage_getart_limit));
 
 #ifdef NNTP_ABLE
-	error_message(_(txt_usage_newsserver), get_val("NNTPSERVER", NNTP_DEFAULT_SERVER));
+#	ifdef NNTP_DEFAULT_SERVER
+	error_message(2, _(txt_usage_newsserver), get_val("NNTPSERVER", NNTP_DEFAULT_SERVER));
+#	else
+	error_message(2, _(txt_usage_newsserver), get_val("NNTPSERVER", "news"));
+#	endif /* NNTP_DEFAULT_SERVER */
 #endif /* NNTP_ABLE */
 
-	error_message(_(txt_usage_help_message));
-	error_message(_(txt_usage_help_information), theProgname);
-	error_message(_(txt_usage_index_newsdir), index_newsdir);
-	error_message(_(txt_usage_read_only_active));
-	error_message(_(txt_usage_maildir), tinrc.maildir);
-	error_message(_(txt_usage_mail_new_news_to_user));
-	error_message(_(txt_usage_read_only_subscribed));
-	error_message(_(txt_usage_mail_new_news));
-	error_message(_(txt_usage_post_postponed_arts));
+	error_message(2, _(txt_usage_help_message));
+	error_message(2, _(txt_usage_help_information), theProgname);
+	error_message(2, _(txt_usage_index_newsdir), index_newsdir);
+	error_message(2, _(txt_usage_read_only_active));
+	error_message(2, _(txt_usage_maildir), tinrc.maildir);
+	error_message(2, _(txt_usage_mail_new_news_to_user));
+	error_message(2, _(txt_usage_read_only_subscribed));
+	error_message(2, _(txt_usage_mail_new_news));
+	error_message(2, _(txt_usage_post_postponed_arts));
 
 #ifdef NNTP_ABLE
-	error_message(_(txt_usage_port), nntp_tcp_port);
+	error_message(2, _(txt_usage_port), nntp_tcp_port);
 #endif /* NNTP_ABLE */
 
-	error_message(_(txt_usage_dont_check_new_newsgroups));
-	error_message(_(txt_usage_quickstart));
+	error_message(2, _(txt_usage_dont_check_new_newsgroups));
+	error_message(2, _(txt_usage_quickstart));
 
 #ifdef NNTP_ABLE
 	if (!read_news_via_nntp)
-		error_message(_(txt_usage_read_news_remotely));
+		error_message(2, _(txt_usage_read_news_remotely));
 #endif /* NNTP_ABLE */
 
-	error_message(_(txt_usage_read_saved_news));
-	error_message(_(txt_usage_savedir), tinrc.savedir);
-	error_message(_(txt_usage_save_new_news));
-	error_message(_(txt_usage_update_index_files));
-	error_message(_(txt_usage_verbose));
-	error_message(_(txt_usage_version));
-	error_message(_(txt_usage_post_article));
-	error_message(_(txt_usage_no_posting));
-	error_message(_(txt_usage_dont_save_files_on_quit));
-	error_message(_(txt_usage_start_if_unread_news));
-	error_message(_(txt_usage_check_for_unread_news));
+	error_message(2, _(txt_usage_read_saved_news));
+	error_message(2, _(txt_usage_savedir), tinrc.savedir);
+	error_message(2, _(txt_usage_save_new_news));
+	error_message(2, _(txt_usage_update_index_files));
+	error_message(2, _(txt_usage_verbose));
+	error_message(2, _(txt_usage_version));
+	error_message(2, _(txt_usage_post_article));
+	error_message(2, _(txt_usage_no_posting));
+	error_message(2, _(txt_usage_dont_save_files_on_quit));
+	error_message(2, _(txt_usage_start_if_unread_news));
+	error_message(2, _(txt_usage_check_for_unread_news));
 
-	error_message(_(txt_usage_mail_bugreport), bug_addr);
+	error_message(2, _(txt_usage_mail_bugreport), bug_addr);
 }
 
 
@@ -827,8 +949,14 @@ read_cmd_line_groups(
 
 			for_each_group(i) {
 				if (match_group_list(active[i].name, cmdargs[num])) {
-					if (my_group_add(active[i].name) != -1)
+					if (my_group_add(active[i].name, TRUE) != -1) {
+						if (post_article_and_exit) {
+							my_strncpy(tinrc.default_post_newsgroups, active[i].name, sizeof(tinrc.default_post_newsgroups) - 1);
+							matched++;
+							break;
+						}
 						matched++;
+					}
 				}
 			}
 		}
@@ -839,33 +967,25 @@ read_cmd_line_groups(
 
 /*
  * Create default mail & save directories if they do not exist
- * TODO: return code not meaningful ?
  */
-static t_bool
+static void
 create_mail_save_dirs(
 	void)
 {
-	t_bool created = FALSE;
 	char path[PATH_LEN];
 	struct stat sb;
 
-	if (!strfpath(tinrc.maildir, path, sizeof(path), NULL))
-		joinpath(path, homedir, DEFAULT_MAILDIR);
+	if (!strfpath(tinrc.maildir, path, sizeof(path), NULL, FALSE))
+		joinpath(path, sizeof(path), homedir, DEFAULT_MAILDIR);
 
-	if (stat(path, &sb) == -1) {
+	if (stat(path, &sb) == -1)
 		my_mkdir(path, (mode_t) (S_IRWXU));
-		created = TRUE;
-	}
 
-	if (!strfpath(tinrc.savedir, path, sizeof(path), NULL))
-		joinpath(path, homedir, DEFAULT_SAVEDIR);
+	if (!strfpath(tinrc.savedir, path, sizeof(path), NULL, FALSE))
+		joinpath(path, sizeof(path), homedir, DEFAULT_SAVEDIR);
 
-	if (stat(path, &sb) == -1) {
+	if (stat(path, &sb) == -1)
 		my_mkdir(path, (mode_t) (S_IRWXU));
-		created = TRUE;
-	}
-
-	return created;
 }
 
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/makecfg.c tin-2.0.0/src/makecfg.c
--- tin-1.8.3/src/makecfg.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/makecfg.c	2011-04-17 16:04:31.047163511 +0200
@@ -3,10 +3,10 @@
  *  Module    : makecfg.c
  *  Author    : Thomas E. Dickey
  *  Created   : 1997-08-23
- *  Updated   : 2005-06-21
+ *  Updated   : 2009-02-14
  *  Notes     : #defines and structs for options_menu.c
  *
- * Copyright (c) 1997-2006 Thomas E. Dickey <dickey@invisible-island.net>
+ * Copyright (c) 1997-2011 Thomas E. Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,7 +44,7 @@
 #define L_CURL '{'
 #define R_CURL '}'
 
-#define MAXNAME 27 /* maximum name-length (just for readability formatting) */
+#define MAXNAME 36 /* maximum name-length (just for readability formatting) */
 #define MAXTYPE 5  /* limits opt_type to keep names unique within 31 chars */
 
 #define MYDATA struct mydata
@@ -239,6 +239,8 @@ generate_tbl(
 			/* shorten message-variable names */
 			if (!strncmp(dft_name, "default_", 8))
 				dft_name += 8;
+			else if (!strncmp(dft_name, "attrib_", 7))
+				dft_name += 7;
 
 			fprintf(ofp, "%s", prefix);
 			sprintf(temp, "%s,", is_opt ? p->type : "OPT_LIST");
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/memory.c tin-2.0.0/src/memory.c
--- tin-1.8.3/src/memory.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/memory.c	2011-04-17 16:04:31.079168380 +0200
@@ -3,10 +3,10 @@
  *  Module    : memory.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2010-05-16
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -51,6 +51,8 @@ int num_newnews = 0;
 int max_art;
 int max_save;
 int num_save = 0;
+int max_scope;
+int num_scope = -1;
 
 /*
  * Dynamic arrays
@@ -58,6 +60,7 @@ int num_save = 0;
 int *my_group;				/* .newsrc --> active[] */
 long *base;				/* base articles for each thread */
 struct t_group *active;			/* active newsgroups */
+struct t_scope *scopes = NULL;	/* attributes stores in .tin/attributes */
 struct t_newnews *newnews;		/* active file sizes on differnet servers */
 struct t_article *arts;			/* articles headers in current group */
 struct t_save *save;			/* sorts articles before saving them */
@@ -66,9 +69,11 @@ struct t_save *save;			/* sorts articles
  * Local prototypes
  */
 static void free_active_arrays(void);
+static void free_attributes(struct t_attribute *attributes);
+static void free_scopes_arrays(void);
 static void free_newnews_array(void);
+static void free_if_not_default(char **attrib, char *deflt);
 static void free_input_history(void);
-static void free_global_arrays(void);
 
 
 /*
@@ -97,9 +102,11 @@ init_alloc(
 	 */
 	max_art = DEFAULT_ARTICLE_NUM;
 
-	arts = my_malloc(sizeof(*arts) * max_art);
+	arts = my_calloc(1, sizeof(*arts) * max_art);
 	base = my_malloc(sizeof(long) * max_art);
 
+	ofmt = my_calloc(1, sizeof(*ofmt) * 9);	/* initial number of overview fields */
+
 	/*
 	 * save file array
 	 */
@@ -107,6 +114,12 @@ init_alloc(
 
 	save = my_malloc(sizeof(*save) * max_save);
 
+	/*
+	 * scope array
+	 */
+	max_scope = DEFAULT_SCOPE_NUM;
+	expand_scope();
+
 #ifndef USE_CURSES
 	screen = (struct t_screen *) 0;
 #endif /* !USE_CURSES */
@@ -117,9 +130,13 @@ void
 expand_art(
 	void)
 {
+	int i = max_art;
+
 	max_art += max_art >> 1;		/* increase by 50% */
 	arts = my_realloc(arts, sizeof(*arts) * max_art);
 	base = my_realloc(base, sizeof(long) * max_art);
+	for (; i < max_art; i++)		/* use memset() instead? */
+		arts[i].subject = arts[i].from = arts[i].xref = arts[i].refs = arts[i].msgid = NULL;
 }
 
 
@@ -148,6 +165,21 @@ expand_save(
 
 
 void
+expand_scope(
+	void)
+{
+	if ((scopes == NULL) || (num_scope < 0)) {
+		if (scopes == NULL)
+			scopes = my_malloc(sizeof(*scopes) * max_scope);
+		num_scope = 0;
+	} else {
+		max_scope += max_scope >> 1;	/* increase by 50 % */
+		scopes = my_realloc(scopes, sizeof(*scopes) * max_scope);
+	}
+}
+
+
+void
 expand_newnews(
 	void)
 {
@@ -200,7 +232,7 @@ free_all_arrays(
 	FreeAndNull(arts);
 	free_filter_array(&glob_filter);
 	free_active_arrays();
-	free_global_arrays();
+	free_scopes_arrays();
 
 #ifdef HAVE_COLOR
 	FreeIfNeeded(quote_regex.re);
@@ -226,6 +258,10 @@ free_all_arrays(
 	FreeIfNeeded(uubegin_regex.extra);
 	FreeIfNeeded(uubody_regex.re);
 	FreeIfNeeded(uubody_regex.extra);
+	FreeIfNeeded(verbatim_begin_regex.re);
+	FreeIfNeeded(verbatim_begin_regex.extra);
+	FreeIfNeeded(verbatim_end_regex.re);
+	FreeIfNeeded(verbatim_end_regex.extra);
 	FreeIfNeeded(url_regex.re);
 	FreeIfNeeded(url_regex.extra);
 	FreeIfNeeded(mail_regex.re);
@@ -254,6 +290,13 @@ free_all_arrays(
 
 	FreeAndNull(nntp_caps.implementation);
 
+	if (ofmt) { /* ofmt might not be allocated yet on early abort */
+		int i;
+		for (i = 0; ofmt[i].name; i++)
+			free(ofmt[i].name);
+		free(ofmt);
+	}
+
 	tin_fgets(NULL, FALSE);
 }
 
@@ -292,7 +335,7 @@ free_art_array(
  * Use this only for attributes that have a fixed default of a static string
  * in tinrc
  */
-void
+static void
 free_if_not_default(
 	char **attrib,
 	char *deflt)
@@ -303,103 +346,79 @@ free_if_not_default(
 
 
 /*
- * TODO: fix the leaks in the global case
+ * Free memory of one attributes struct only
  */
-void
-free_attributes_array(
-	void)
+static void
+free_attributes(
+	struct t_attribute *attributes)
 {
-	int i;
-	struct t_group *group;
-
-	for_each_group(i) {
-		group = &active[i];
-		if (!group->bogus && group->attribute && !group->attribute->global) {
-			free_if_not_default(&group->attribute->maildir, tinrc.maildir);
-			free_if_not_default(&group->attribute->savedir, tinrc.savedir);
-
-			FreeAndNull(group->attribute->savefile);
-
-			free_if_not_default(&group->attribute->sigfile, tinrc.sigfile);
-			free_if_not_default(&group->attribute->organization, default_organization);
-
-			FreeAndNull(group->attribute->followup_to);
-
-			FreeAndNull(group->attribute->fcc);
-
-			FreeAndNull(group->attribute->mailing_list);
-			FreeAndNull(group->attribute->x_headers);
-			FreeAndNull(group->attribute->x_body);
-
-			free_if_not_default(&group->attribute->from, tinrc.mail_address);
-			free_if_not_default(&group->attribute->news_quote_format, tinrc.news_quote_format);
-			free_if_not_default(&group->attribute->quote_chars, tinrc.quote_chars);
-
-			FreeAndNull(group->attribute->mime_types_to_save);
-
+	free_if_not_default(&attributes->date_format, tinrc.date_format);
+	free_if_not_default(&attributes->editor_format, tinrc.editor_format);
+	FreeAndNull(attributes->fcc);
+	free_if_not_default(&attributes->from, tinrc.mail_address);
+	FreeAndNull(attributes->followup_to);
 #ifdef HAVE_ISPELL
-			FreeAndNull(group->attribute->ispell);
+	FreeAndNull(attributes->ispell);
 #endif /* HAVE_ISPELL */
-
-			FreeAndNull(group->attribute->quick_kill_scope);
-			FreeAndNull(group->attribute->quick_select_scope);
-
+	free_if_not_default(&attributes->maildir, tinrc.maildir);
+	FreeAndNull(attributes->mailing_list);
+	FreeAndNull(attributes->mime_types_to_save);
+	free_if_not_default(&attributes->news_headers_to_display, tinrc.news_headers_to_display);
+	free_if_not_default(&attributes->news_headers_to_not_display, tinrc.news_headers_to_not_display);
+	if (attributes->headers_to_display) {
+		if (attributes->headers_to_display->header)
+			FreeIfNeeded(*attributes->headers_to_display->header);
+		FreeAndNull(attributes->headers_to_display->header);
+		free(attributes->headers_to_display);
+		attributes->headers_to_display = (struct t_newsheader *) 0;
+	}
+	if (attributes->headers_to_not_display) {
+		if (attributes->headers_to_not_display->header)
+			FreeIfNeeded(*attributes->headers_to_not_display->header);
+		FreeAndNull(attributes->headers_to_not_display->header);
+		free(attributes->headers_to_not_display);
+		attributes->headers_to_not_display = (struct t_newsheader *) 0;
+	}
+	free_if_not_default(&attributes->news_quote_format, tinrc.news_quote_format);
+	free_if_not_default(&attributes->organization, default_organization);
+	FreeAndNull(attributes->quick_kill_scope);
+	FreeAndNull(attributes->quick_select_scope);
+	free_if_not_default(&attributes->quote_chars, tinrc.quote_chars);
+	free_if_not_default(&attributes->savedir, tinrc.savedir);
+	FreeAndNull(attributes->savefile);
+	free_if_not_default(&attributes->sigfile, tinrc.sigfile);
 #ifdef CHARSET_CONVERSION
-			FreeAndNull(group->attribute->undeclared_charset);
+	FreeAndNull(attributes->undeclared_charset);
 #endif /* CHARSET_CONVERSION */
+	FreeAndNull(attributes->x_headers);
+	FreeAndNull(attributes->x_body);
+}
 
-			free(group->attribute);
-		}
-		group->attribute = (struct t_attribute *) 0;
-	}
-
-	/* free the global attributes array */
-	free_if_not_default(&glob_attributes.maildir, tinrc.maildir);
-	free_if_not_default(&glob_attributes.savedir, tinrc.savedir);
-
-	FreeAndNull(glob_attributes.savefile);
-
-	free_if_not_default(&glob_attributes.sigfile, tinrc.sigfile);
-	free_if_not_default(&glob_attributes.organization, default_organization);
-
-	FreeAndNull(glob_attributes.followup_to);
-
-	FreeAndNull(glob_attributes.fcc);
-
-	FreeAndNull(glob_attributes.mailing_list);
-	FreeAndNull(glob_attributes.x_headers);
-	FreeAndNull(glob_attributes.x_body);
-
-	free_if_not_default(&glob_attributes.from, tinrc.mail_address);
-	free_if_not_default(&glob_attributes.news_quote_format, tinrc.news_quote_format);
-	free_if_not_default(&glob_attributes.quote_chars, tinrc.quote_chars);
-
-	FreeAndNull(glob_attributes.mime_types_to_save);
-
-#ifdef HAVE_ISPELL
-	FreeAndNull(glob_attributes.ispell);
-#endif /* HAVE_ISPELL */
 
-	FreeAndNull(glob_attributes.quick_kill_scope);
-	FreeAndNull(glob_attributes.quick_select_scope);
+void
+free_scope(
+	int num)
+{
+	struct t_scope *scope;
 
-#ifdef CHARSET_CONVERSATION
-	FreeAndNull(glob_attributes.undeclared_charset);
-#endif /* CHARSET_CONVERSATION */
+	scope = &scopes[num];
+	FreeAndNull(scope->scope);
+	free_attributes(scope->attribute);
+	free(scope->attribute);
+	scope->attribute = (struct t_attribute *) 0;
+	free(scope->state);
+	scope->state = (struct t_attribute_state *) 0;
 }
 
 
 static void
-free_global_arrays(
+free_scopes_arrays(
 	void)
 {
-	if (news_headers_to_display_array)
-		FreeIfNeeded(*news_headers_to_display_array);
-	FreeAndNull(news_headers_to_display_array);
-
-	if (news_headers_to_not_display_array)
-		FreeIfNeeded(*news_headers_to_not_display_array);
-	FreeAndNull(news_headers_to_not_display_array);
+	while (num_scope > 0)
+		free_scope(--num_scope);
+	FreeAndNull(scopes);
+	num_scope = -1;
 }
 
 
@@ -407,21 +426,24 @@ static void
 free_active_arrays(
 	void)
 {
-	int i;
-
 	FreeAndNull(my_group);	/* my_group[] */
 
 	if (active != NULL) {	/* active[] */
+		int i;
+
 		for_each_group(i) {
 			FreeAndNull(active[i].name);
 			FreeAndNull(active[i].description);
 			FreeAndNull(active[i].aliasedto);
-			if (active[i].type == GROUP_TYPE_MAIL) {
+			if (active[i].type == GROUP_TYPE_MAIL || active[i].type == GROUP_TYPE_SAVE) {
 				FreeAndNull(active[i].spooldir);
 			}
 			FreeAndNull(active[i].newsrc.xbitmap);
+			if (active[i].attribute && !active[i].attribute->global) {
+				free(active[i].attribute);
+				active[i].attribute = (struct t_attribute *) 0;
+			}
 		}
-		free_attributes_array();
 		FreeAndNull(active);
 	}
 	num_active = -1;
@@ -484,7 +506,7 @@ my_malloc1(
 #endif /* DEBUG */
 
 	if ((p = malloc(size)) == NULL) {
-		error_message(txt_out_of_memory, tin_progname, size, file, line);
+		error_message(2, txt_out_of_memory, tin_progname, size, file, line);
 		giveup();
 	}
 	return p;
@@ -508,7 +530,7 @@ my_calloc1(
 #endif /* DEBUG */
 
 	if ((p = calloc(nmemb, size)) == NULL) {
-		error_message(txt_out_of_memory, tin_progname, nmemb * size, file, line);
+		error_message(2, txt_out_of_memory, tin_progname, nmemb * size, file, line);
 		giveup();
 	}
 	return p;
@@ -526,10 +548,17 @@ my_realloc1(
 	debug_print_malloc(FALSE, file, line, size);
 #endif /* DEBUG */
 
-	p = ((!p) ? (calloc(1, size)) : realloc(p, size));
+	if (!size) {
+		if (p)
+			free(p);
+
+		return NULL;
+	}
+
+	p = ((!p) ? (malloc(size)) : realloc(p, size));
 
 	if (p == NULL) {
-		error_message(txt_out_of_memory, tin_progname, size, file, line);
+		error_message(2, txt_out_of_memory, tin_progname, size, file, line);
 		giveup();
 	}
 	return p;
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/mimetypes.c tin-2.0.0/src/mimetypes.c
--- tin-1.8.3/src/mimetypes.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/mimetypes.c	2011-04-17 16:04:31.107172643 +0200
@@ -3,10 +3,10 @@
  *  Module    : mimetypes.c
  *  Author    : J. Faultless
  *  Created   : 2000-03-31
- *  Updated   : 2003-08-26
+ *  Updated   : 2007-12-30
  *  Notes     : mime.types handling
  *
- * Copyright (c) 2000-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 2000-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -70,17 +70,17 @@ _lookup_mimetype(
 		if (buf[0] == '#' || buf[0] == '\n')		/* Skip comments & blank lines */
 			continue;
 
-		strtok(buf, " \t\n");
-
-		while ((exts = strtok(NULL, " \t\n")) != NULL) {	/* Work through list of extensions */
-			if (strcasecmp(ext, exts) == 0) {
-				if ((i = content_type(strtok(buf, "/"))) != -1) {
-					if ((ptr = strtok(NULL, "\n")) != NULL) {
-						part->type = i;
-						FreeIfNeeded(part->subtype);
-						part->subtype = my_strdup(ptr);
-						fclose(fp);
-						return TRUE;
+		if (strtok(buf, " \t\n")) {
+			while ((exts = strtok(NULL, " \t\n")) != NULL) {	/* Work through list of extensions */
+				if (strcasecmp(ext, exts) == 0) {
+					if ((i = content_type(strtok(buf, "/"))) != -1) {
+						if ((ptr = strtok(NULL, "\n")) != NULL) {
+							part->type = i;
+							FreeIfNeeded(part->subtype);
+							part->subtype = my_strdup(ptr);
+							fclose(fp);
+							return TRUE;
+						}
 					}
 				}
 			}
@@ -105,17 +105,17 @@ lookup_mimetype(
 {
 	char buf[PATH_LEN];
 
-	joinpath(buf, homedir, ".mime.types");
+	joinpath(buf, sizeof(buf), homedir, ".mime.types");
 	if (_lookup_mimetype(buf, ext, part))
 		return;
 
-#ifdef M_UNIX	/* TODO: what about VMS etc.pp? */
+#ifdef M_UNIX
 	if (_lookup_mimetype("/etc/mime.types", ext, part))
 		return;
 #endif /* M_UNIX */
 
 #ifdef TIN_DEFAULTS_DIR
-	joinpath(buf, TIN_DEFAULTS_DIR, "mime.types");
+	joinpath(buf, sizeof(buf), TIN_DEFAULTS_DIR, "mime.types");
 	_lookup_mimetype(buf, ext, part);
 #endif /* TIN_DEFAULTS_DIR */
 
@@ -143,12 +143,14 @@ _lookup_extension(
 	while ((fgets(buf, sizeof(buf), fp)) != NULL) {
 		if (buf[0] == '#' || buf[0] == '\n' || strncmp(buf, type, strlen(type)))
 			continue;
-		if (strlen((p = strtok(buf, " \t\n"))) != strlen(type))
-			continue;
-		if ((p = strtok(NULL, " \t\n")) != NULL) {
-			my_strncpy(extension, p, ext_len - 1);
-			fclose(fp);
-			return TRUE;
+		if ((p = strtok(buf, " \t\n"))) {
+			if (strlen(p) != strlen(type))
+				continue;
+			if ((p = strtok(NULL, " \t\n")) != NULL) {
+				my_strncpy(extension, p, ext_len - 1);
+				fclose(fp);
+				return TRUE;
+			}
 		}
 	}
 	fclose(fp);
@@ -184,13 +186,13 @@ lookup_extension(
 	strcat(type, "/");
 	strcat(type, minor);
 
-	joinpath(buf, homedir, ".mime.types");
+	joinpath(buf, sizeof(buf), homedir, ".mime.types");
 	if (_lookup_extension(extension, ext_len, buf, type)) {
 		free(type);
 		return TRUE;
 	}
 
-#ifdef M_UNIX	/* TODO: what about VMS etc.pp? */
+#ifdef M_UNIX
 	if (_lookup_extension(extension, ext_len, "/etc/mime.types", type)) {
 		free(type);
 		return TRUE;
@@ -198,7 +200,7 @@ lookup_extension(
 #endif /* M_UNIX */
 
 #ifdef TIN_DEFAULTS_DIR
-	joinpath(buf, TIN_DEFAULTS_DIR, "mime.types");
+	joinpath(buf, sizeof(buf), TIN_DEFAULTS_DIR, "mime.types");
 	if (_lookup_extension(extension, ext_len, buf, type)) {
 		free(type);
 		return TRUE;
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/misc.c tin-2.0.0/src/misc.c
--- tin-1.8.3/src/misc.c	2006-04-08 16:31:54.000000000 +0200
+++ tin-2.0.0/src/misc.c	2011-05-09 16:20:05.779378619 +0200
@@ -3,10 +3,10 @@
  *  Module    : misc.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2006-04-06
+ *  Updated   : 2011-04-30
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -56,7 +56,7 @@
 #endif /* HAVE_IDNA_H && !_IDNA_H */
 #if defined(HAVE_STRINGPREP_H) && !defined(_STRINGPREP_H)
 #	include <stringprep.h>
-#endif /* HAVE_STRINGPREP_H & !_STRINGPREP_H */
+#endif /* HAVE_STRINGPREP_H && !_STRINGPREP_H */
 
 
 /*
@@ -72,7 +72,7 @@
  * Local prototypes
  */
 static char *strfpath_cp(char *str, char *tbuf, char *endp);
-static int _strfpath(const char *format, char *str, size_t maxsize, struct t_group *group);
+static int _strfpath(const char *format, char *str, size_t maxsize, struct t_group *group, t_bool expand_all);
 static int gnksa_check_domain(char *domain);
 static int gnksa_check_domain_literal(char *domain);
 static int gnksa_check_localpart(const char *localpart);
@@ -80,7 +80,7 @@ static int gnksa_dequote_plainphrase(cha
 static int strfeditor(char *editor, int linenum, const char *filename, char *s, size_t maxsize, char *format);
 static void write_input_history_file(void);
 #ifdef CHARSET_CONVERSION
-	static t_bool buffer_to_local(char **line, int *max_line_len, const char *network_charset, const char *local_charset);
+	static t_bool buffer_to_local(char **line, size_t *max_line_len, const char *network_charset, const char *local_charset);
 #endif /* CHARSET_CONVERSION */
 #if 0 /* currently unused */
 	static t_bool stat_article(long art, const char *group_path);
@@ -166,7 +166,7 @@ asfail(
 
 /*
  * Quick copying of files
- * Returns FALSE if copy failed. Caller may wish to check for SIGPIPE
+ * Returns FALSE if copy failed. Caller may wish to check for errno == EPIPE.
  */
 t_bool
 copy_fp(
@@ -176,11 +176,13 @@ copy_fp(
 	char buf[8192];
 	size_t have, sent;
 
+	errno = 0;	/* To check errno after write, clear it here */
+
 	while ((have = fread(buf, 1, sizeof(buf), fp_ip)) != 0) {
 		sent = fwrite(buf, 1, have, fp_op);
 		if (sent != have) {
 			TRACE(("copy_fp wrote %d of %d:{%.*s}", sent, have, (int) sent, buf));
-			if (!got_sig_pipe) /* !SIGPIPE => more serious error */
+			if (errno && errno != EPIPE) /* not a broken pipe => more serious error */
 				perror_message(_(txt_error_copy_fp));
 			return FALSE;
 		}
@@ -269,7 +271,7 @@ copy_body(
 	if (strlen(prefix) > 240) /* truncate and terminate */
 		prefix[240] = '\0';
 
-	/* convert %S to %s, for compability reasons only */
+	/* convert %S to %s, for compatibility reasons only */
 	if (strstr(prefix, "%S")) {
 		status_char = FALSE;
 		for (i = 0; prefix[i]; i++) {
@@ -318,7 +320,7 @@ copy_body(
 					}
 					buf2[i] = '\0';
 					if (status_char)	/* already quoted */
-						retcode = fprintf(fp_op, "%s>%s", buf2, strchr(buf, '>'));
+						retcode = fprintf(fp_op, "%s>%s", buf2, BlankIfNull(strchr(buf, '>')));
 					else	/* ... to be quoted ... */
 						retcode = fprintf(fp_op, "%s%s", prefixbuf, buf);
 				} else	/* line was not already quoted (no >) */
@@ -363,7 +365,8 @@ get_val(
 t_bool
 invoke_editor(
 	const char *filename,
-	int lineno) /* return value is always ignored */
+	int lineno,
+	struct t_group *group) /* return value is always ignored */
 {
 	char buf[PATH_LEN], fnameb[PATH_LEN];
 	char editor_format[PATH_LEN];
@@ -376,7 +379,10 @@ invoke_editor(
 		first = FALSE;
 	}
 
-	my_strncpy(editor_format, (*tinrc.editor_format ? tinrc.editor_format : (tinrc.start_editor_offset ? TIN_EDITOR_FMT_ON : TIN_EDITOR_FMT_OFF)), sizeof(editor_format) - 1);
+	if (group != NULL)
+		my_strncpy(editor_format, (*group->attribute->editor_format ? group->attribute->editor_format : (group->attribute->start_editor_offset ? TIN_EDITOR_FMT_ON : TIN_EDITOR_FMT_OFF)), sizeof(editor_format) - 1);
+	else
+		my_strncpy(editor_format, (*tinrc.editor_format ? tinrc.editor_format : (tinrc.start_editor_offset ? TIN_EDITOR_FMT_ON : TIN_EDITOR_FMT_OFF)), sizeof(editor_format) - 1);
 
 	if (!strfeditor(editor, lineno, filename, buf, sizeof(buf), editor_format))
 		sh_format(buf, sizeof(buf), "%s %s", editor, filename);
@@ -411,7 +417,7 @@ invoke_ispell(
 		STRCPY(ispell, get_val("ISPELL", PATH_ISPELL));
 
 	/*
-	 * Now seperating the header and body in two different files so that
+	 * Now separating the header and body in two different files so that
 	 * the header is not checked by ispell
 	 */
 #ifdef HAVE_LONG_FILE_NAMES
@@ -444,10 +450,14 @@ invoke_ispell(
 		fputs(buf, fp_head);
 		if (buf[0] == '\n' || buf[0] == '\r') {
 			fclose(fp_head);
+			fp_head = 0;
 			break;
 		}
 	}
 
+	if (fp_head)
+		fclose(fp_head);
+
 	while (fgets(buf, (int) sizeof(buf), fp_all) != NULL)
 		fputs(buf, fp_body);
 
@@ -499,7 +509,15 @@ shell_escape(
 
 	(void) invoke_cmd(p);
 
+#	ifndef USE_CURSES
+	EndWin();
+	Raw(FALSE);
+#	endif /* !USE_CURSES */
 	prompt_continue();
+#	ifndef USE_CURSES
+	Raw(TRUE);
+	InitWin();
+#	endif /* !USE_CURSES */
 
 	if (tinrc.draw_arrow)
 		ClearScreen();
@@ -570,9 +588,10 @@ tin_done(
 	if (!no_write) {
 		i = 3; /* max retries */
 		while (i--) {
-			if (((wrote_newsrc_lines = write_newsrc()) >= 0L) && (wrote_newsrc_lines >= read_newsrc_lines)) {
+			wrote_newsrc_lines = write_newsrc();
+			if ((wrote_newsrc_lines >= 0L) && (wrote_newsrc_lines >= read_newsrc_lines)) {
 				if (!batch_mode || verbose)
-					my_fputs(_(txt_newsrc_saved), stdout);
+					wait_message(0, _(txt_newsrc_saved));
 				break;
 			}
 
@@ -594,9 +613,6 @@ tin_done(
 		}
 
 		write_input_history_file();
-#if 0
-		write_attributes_file(local_attributes_file);
-#endif /* 0 */
 
 #ifdef HAVE_MH_MAIL_HANDLING
 		write_mail_active_file();
@@ -613,10 +629,14 @@ tin_done(
 
 	free_all_arrays();
 
+	/* TODO: why do we make this exception here? */
 #ifdef SIGUSR1
 	if (ret != -SIGUSR1) {
 #endif /* SIGUSR1 */
 #ifdef HAVE_COLOR
+#	ifndef USE_CURSES
+		reset_screen_attr();
+#	endif /* !USE_CURSES */
 		use_color = FALSE;
 		EndInverse();
 #else
@@ -633,6 +653,11 @@ tin_done(
 	} else
 		ret = SIGUSR1;
 #endif /* SIGUSR1 */
+#ifdef HAVE_COLOR
+#	ifdef USE_CURSES
+	free_color_pair_arrays();
+#	endif /* USE_CURSES */
+#endif /* HAVE_COLOR */
 	cleanup_tmp_files();
 
 #ifdef DOALLOC
@@ -648,12 +673,6 @@ tin_done(
 	}
 #endif /* USE_DBMALLOC */
 
-#ifdef VMS
-	if (!ret)
-		ret = 1;
-	vms_close_stdin(); /* free resources used by ReadCh */
-#endif /* VMS */
-
 	exit(ret);
 }
 
@@ -670,7 +689,11 @@ my_mkdir(
 	snprintf(buf, sizeof(buf), "mkdir %s", path); /* redirect stderr to /dev/null? use invoke_cmd()? */
 	if (stat(path, &sb) == -1) {
 		system(buf);
+#	ifdef HAVE_CHMOD
 		return chmod(path, mode);
+#	else
+		return 0;
+#	endif /* HAVE_CHMOD */
 	} else
 		return -1;
 #else
@@ -745,31 +768,6 @@ rename_file(
 #endif /* M_UNIX */
 
 
-#ifdef VMS
-void
-rename_file(
-	char *old_filename,
-	char *new_filename)
-{
-	char new_filename_vms[1024];
-
-	if (!strchr(strchr(new_filename, ']') ? strchr(new_filename, ']') : new_filename, '.')) {
-		/* without final dot the new filename is not as tin expects */
-		if (strlen(new_filename) >= sizeof(new_filename_vms)) {
-			perror_message("length of %s is too large", new_filename);
-			return;
-		}
-		strcpy(new_filename_vms, new_filename);
-		strcat(new_filename_vms, ".");
-		new_filename = &new_filename_vms[0];
-	}
-
-	if (rename(old_filename, new_filename))
-		perror_message(_(txt_rename_error), old_filename, new_filename);
-}
-#endif /* VMS */
-
-
 /*
  * Note that we exit screen/curses mode when invoking
  * external commands
@@ -780,7 +778,9 @@ invoke_cmd(
 {
 	int ret;
 	t_bool save_cmd_line = cmd_line;
+#ifndef IGNORE_SYSTEM_STATUS
 	t_bool success;
+#endif /* IGNORE_SYSTEM_STATUS */
 
 	if (!save_cmd_line) {
 		EndWin();
@@ -790,13 +790,9 @@ invoke_cmd(
 
 	TRACE(("called system(%s)", _nc_visbuf(nam)));
 	ret = system(nam);
-#ifdef VMS
-	system_status = 0;
-#else
-#	ifndef USE_SYSTEM_STATUS
+#ifndef USE_SYSTEM_STATUS
 	system_status = (ret >= 0 && WIFEXITED(ret)) ? WEXITSTATUS(ret) : 0;
-#	endif /* !USE_SYSTEM_STATUS */
-#endif /* VMS */
+#endif /* !USE_SYSTEM_STATUS */
 	TRACE(("return %d (%d)", ret, system_status));
 
 	set_signal_catcher(TRUE);
@@ -810,14 +806,10 @@ invoke_cmd(
 	return TRUE;
 #else
 
-#	ifdef VMS
-		success = (ret != 0);
-#	else
-		success = (ret == 0);
-#	endif /* VMS */
+	success = (ret == 0);
 
 	if (!success || system_status != 0)
-		error_message(_(txt_command_failed), nam);
+		error_message(2, _(txt_command_failed), nam);
 
 	return success;
 #endif /* IGNORE_SYSTEM_STATUS */
@@ -831,9 +823,6 @@ draw_percent_mark(
 {
 	char buf[32]; /* should be big enough */
 	int len;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *wbuf;
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	if (NOTESLINES <= 0)
 		return;
@@ -843,18 +832,15 @@ draw_percent_mark(
 
 	clear_message();
 	snprintf(buf, sizeof(buf), "%s(%d%%) [%ld/%ld]", _(txt_more), (int) (cur_num * 100 / max_num), cur_num, max_num);
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	if ((wbuf = char2wchar_t(buf)) != NULL) {
-		len = wcswidth(wbuf, wcslen(wbuf) + 1);
-		free(wbuf);
-	} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-		len = (int) strlen(buf);
+	len = strwidth(buf);
 	MoveCursor(cLINES, cCOLS - len - (1 + BLANK_PAGE_COLS));
+#ifdef HAVE_COLOR
+	fcol(tinrc.col_normal);
+#endif /* HAVE_COLOR */
 	StartInverse();
 	my_fputs(buf, stdout);
-	my_flush();
 	EndInverse();
+	my_flush();
 }
 
 
@@ -867,9 +853,6 @@ base_name(
 	char *file)				/* baz */
 {
 	size_t i;
-#ifdef VMS
-	char *cp;
-#endif /* VMS */
 
 	strcpy(file, fullpath);
 
@@ -879,10 +862,6 @@ base_name(
 			break;
 		}
 	}
-#ifdef VMS
-	if ((cp = strrchr(file, '.')) != 0)
-		*cp = '\0';
-#endif /* VMS */
 }
 
 
@@ -926,14 +905,12 @@ mail_check(
 		if ((int) (buf.st_mode & S_IFMT) == (int) S_IFDIR) { /* maildir setup */
 			DIR *dirp;
 			char *maildir_box;
+			size_t maildir_box_len = strlen(mailbox_name) + strlen(MAILDIR_NEW) + 2;
 			struct dirent *dp;
 
-			maildir_box = my_malloc(strlen(mailbox_name) + strlen(MAILDIR_NEW) + 2);
-#ifdef VMS
-			joindir(maildir_box, mailbox_name, MAILDIR_NEW);
-#else
-			joinpath(maildir_box, mailbox_name, MAILDIR_NEW);
-#endif /* VMS */
+			maildir_box = my_malloc(maildir_box_len);
+			joinpath(maildir_box, maildir_box_len, mailbox_name, MAILDIR_NEW);
+
 			if (!(dirp = opendir(maildir_box))) {
 				free(maildir_box);
 				return FALSE;
@@ -980,26 +957,27 @@ eat_re(
 		data = pcre_exec(strip_re_regex.re, strip_re_regex.extra, s, strlen(s), 0, 0, offsets, size_offsets);
 		if (offsets[0] == 0)
 			s += offsets[1];
-	} while (data > 0);
+	} while (data >= 0);
 
 	if (eat_was) do {
 		data = pcre_exec(strip_was_regex.re, strip_was_regex.extra, s, strlen(s), 0, 0, offsets, size_offsets);
 		if (offsets[0] > 0)
 			s[offsets[0]] = '\0';
-	} while (data > 0);
+	} while (data >= 0);
 
 	return s;
 }
 
 
+#if defined(NO_LOCALE) || !defined(MULTIBYTE_ABLE)
 int
 my_isprint(
 	int c)
 {
-#ifndef NO_LOCALE
+#	ifndef NO_LOCALE
 	/* use locale */
 	return isprint(c);
-#else
+#	else
 	if (IS_LOCAL_CHARSET("ISO-8859"))
 		return (isprint(c) || (c >= 0xa0 && c <= 0xff));
 	else if (IS_LOCAL_CHARSET("ISO-2022"))
@@ -1010,8 +988,9 @@ my_isprint(
 		return 1;
 	else /* KOI8-* and UTF-8 */
 		return (isprint(c) || (c >= 0x80 && c <= 0xff));
-#endif /* !NO_LOCALE */
+#	endif /* !NO_LOCALE */
 }
+#endif /* NO_LOCALE || !MULTIBYTE_ABLE */
 
 
 /*
@@ -1096,9 +1075,22 @@ toggle_color(
 		use_color = FALSE;
 		info_message(_(txt_no_colorterm));
 		return FALSE;
-	} else
+	}
+	if (use_color)
+		reset_color();
 #	endif /* USE_CURSES */
-		use_color = bool_not(use_color);
+	use_color = bool_not(use_color);
+
+	if (use_color) {
+#	ifdef USE_CURSES
+		fcol(tinrc.col_normal);
+#	endif /* USE_CURSES */
+		bcol(tinrc.col_back);
+	}
+#	ifndef USE_CURSES
+	else
+		reset_screen_attr();
+#	endif /* !USE_CURSES */
 
 	return TRUE;
 }
@@ -1116,6 +1108,8 @@ show_color_status(
 /*
  * Check for lock file to stop multiple copies of tin -u running and if it
  * does not exist create it so this is the only copy running
+ *
+ * FIXME: get ridd of hardcoded pid-length as pid_t might be long
  */
 void
 create_index_lock_file(
@@ -1125,12 +1119,13 @@ create_index_lock_file(
 	char buf[64];
 	struct stat sb;
 	time_t epoch;
+	int err;
 
 	if (stat(the_lock_file, &sb) == 0) {
 		if ((fp = fopen(the_lock_file, "r")) != NULL) {
 			fgets(buf, (int) sizeof(buf), fp);
 			fclose(fp);
-			error_message("\n%s: Already started pid=[%d] on %s", tin_progname, atoi(buf), buf + 8);
+			error_message(2, "\n%s: Already started pid=[%d] on %s", tin_progname, atoi(buf), buf + 8);
 			giveup();
 		}
 	} else {
@@ -1138,8 +1133,13 @@ create_index_lock_file(
 			fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR));
 			(void) time(&epoch);
 			fprintf(fp, "%6d  %s\n", (int) process_id, ctime(&epoch));
-			if (ferror(fp) || fclose(fp))
-				error_message(_(txt_filesystem_full), the_lock_file);
+			if ((err = ferror(fp)) || fclose(fp)) {
+				error_message(2, _(txt_filesystem_full), the_lock_file);
+				if (err) {
+					clearerr(fp);
+					fclose(fp);
+				}
+			}
 		}
 	}
 }
@@ -1148,7 +1148,7 @@ create_index_lock_file(
 /*
  * strfquote() - produce formatted quote string
  *   %A  Articles Email address
- *   %D  Articles Date
+ *   %D  Articles Date (uses tinrc.date_format)
  *   %F  Articles Address+Name
  *   %G  Groupname of Article
  *   %M  Articles MessageId
@@ -1243,8 +1243,10 @@ strfquote(
 					}
 					break;
 
-				case 'D':	/* Articles Date */
-					STRCPY(tbuf, BlankIfNull(pgart.hdr.date));
+				case 'D':	/* Articles Date (reformatted as specified in attributes->date_format) */
+					if (!my_strftime(tbuf, LEN - 1, curr_group->attribute->date_format, localtime(&arts[this_resp].date))) {
+						STRCPY(tbuf, BlankIfNull(pgart.hdr.date));
+					}
 					break;
 
 				case 'F':	/* Articles Address+Name */
@@ -1450,7 +1452,7 @@ strfpath_cp(
  *   $var/News -> /env/var/News
  *   =file     -> $HOME/Mail/file
  *   =         -> $HOME/Mail/group.name
- *   +file     -> tinrc.savedir/group.name/file
+ *   +file     -> savedir/group.name/file
  *
  * Interestingly, %G is not documented as such and apparently unused
  *   ~/News/%G -> $HOME/News/group.name
@@ -1460,6 +1462,7 @@ strfpath_cp(
  *   str		Return buffer
  *   maxsize	Size of str
  *   group		ptr to current group
+ *   expand_all	true if '+' and '=' should be expanded
  * Returns:
  *   0			on error
  *   1			if generated pathname is a mailbox
@@ -1470,7 +1473,8 @@ _strfpath(
 	const char *format,
 	char *str,
 	size_t maxsize,
-	struct t_group *group)
+	struct t_group *group,
+	t_bool expand_all)
 {
 	char *endp = str + maxsize;
 	const char *startp = format;
@@ -1493,12 +1497,7 @@ _strfpath(
 		/*
 		 * If just a normal part of the pathname copy it
 		 */
-#ifdef VMS
-		if (!strchr("~=+%", *format))
-#else
-		if (!strchr("~$=+%", *format))
-#endif /* VMS */
-		{
+		if (!strchr("~$=+%", *format)) {
 			*str++ = *format;
 			continue;
 		}
@@ -1507,7 +1506,7 @@ _strfpath(
 			case '~':			/* Users or another users homedir */
 				switch (*++format) {
 					case '/':	/* users homedir */
-						joinpath(tbuf, homedir, "");
+						joinpath(tbuf, sizeof(tbuf), homedir, "");
 						break;
 
 					default:	/* some other users homedir */
@@ -1529,7 +1528,6 @@ _strfpath(
 					return 0;
 				break;
 
-#ifndef VMS
 			case '$':	/* Read the envvar and use its value */
 				i = 0;
 				format++;
@@ -1567,7 +1565,6 @@ _strfpath(
 					return 0;
 				}
 				break;
-#endif /* !VMS */
 
 			case '=':
 				/*
@@ -1576,16 +1573,15 @@ _strfpath(
 				 * =dir expands to maildir/dir
 				 * =    expands to maildir/groupname
 				 */
-				is_mailbox = TRUE;
-
-				if (startp == format && group != NULL) {
+				if (startp == format && group != NULL && expand_all) {
 					char buf[PATH_LEN];
 
-					if (strfpath(group->attribute->maildir, buf, sizeof(buf), group)) {
+					is_mailbox = TRUE;
+					if (strfpath(cmdline.args & CMDLINE_MAILDIR ? cmdline.maildir : group->attribute->maildir, buf, sizeof(buf), group, FALSE)) {
 						if (*(format + 1) == '\0')				/* Just an = */
-							joinpath(tbuf, buf, group->name);
+							joinpath(tbuf, sizeof(tbuf), buf, group->name);
 						else
-							joinpath(tbuf, buf, "");
+							joinpath(tbuf, sizeof(tbuf), buf, "");
 						if ((str = strfpath_cp(str, tbuf, endp)) == NULL)
 							return 0;
 					} else {
@@ -1600,22 +1596,24 @@ _strfpath(
 				/*
 				 * Group name expansion
 				 * Only convert if 1st char in format
+				 * +file expands to savedir/group.name/file
 				 */
-				if (startp == format && group != NULL) {
+
+				if (startp == format && group != NULL && expand_all) {
 					char buf[PATH_LEN];
 
 					/*
 					 * Start with the savedir name
 					 */
-					if (strfpath(group->attribute->savedir, buf, sizeof(buf), group)) {
+					if (strfpath(cmdline.args & CMDLINE_SAVEDIR ? cmdline.savedir : group->attribute->savedir, buf, sizeof(buf), group, FALSE)) {
 						char tmp[PATH_LEN];
 #ifdef HAVE_LONG_FILE_NAMES
 						my_strncpy(tmp, group->name, sizeof(tmp) - 1);
 #else
 						my_strncpy(tmp, group->name, 14);
 #endif /* HAVE_LONG_FILE_NAMES */
-						JOINPATH(tbuf, buf, tmp);	/* Add the group name */
-						joinpath(tmp, tbuf, "");
+						joinpath(tbuf, sizeof(tbuf), buf, tmp);	/* Add the group name */
+						joinpath(tmp, sizeof(tmp), tbuf, "");
 						if ((str = strfpath_cp(str, tmp, endp)) == NULL)
 							return 0;
 					} else {
@@ -1669,7 +1667,8 @@ strfpath(
 	const char *format,
 	char *str,
 	size_t maxsize,
-	struct t_group *group)
+	struct t_group *group,
+	t_bool expand_all)
 {
 	/*
 	 * Expand any leading env vars first in case they themselves contain
@@ -1678,11 +1677,11 @@ strfpath(
 	if (format[0] == '$') {
 		char buf[PATH_LEN];
 
-		if (_strfpath(format, buf, sizeof(buf), group))
-			return (_strfpath(buf, str, maxsize, group));
+		if (_strfpath(format, buf, sizeof(buf), group, expand_all))
+			return (_strfpath(buf, str, maxsize, group, expand_all));
 	}
 
-	return (_strfpath(format, str, maxsize, group));
+	return (_strfpath(format, str, maxsize, group, expand_all));
 }
 
 
@@ -2010,9 +2009,6 @@ make_group_path(
 	const char *name,
 	char *path)
 {
-#ifdef VMS
-	sprintf(path, "[%s]", name);
-#else
 	while (*name) {
 		*path = ((*name == '.') ? '/' : *name);
 		name++;
@@ -2020,7 +2016,6 @@ make_group_path(
 	}
 	*path++ = '/';
 	*path = '\0';
-#endif /* VMS */
 }
 
 
@@ -2034,31 +2029,27 @@ void
 make_base_group_path(
 	const char *base_dir,
 	const char *group_name,
-	char *group_path)
+	char *group_path,
+	size_t group_path_len)
 {
 	char buf[LEN];
 
 	make_group_path(group_name, buf);
-	joinpath(group_path, base_dir, buf);
+	joinpath(group_path, group_path_len, base_dir, buf);
 }
 
 
 /*
- * Delete tmp index & local newsgroups file
+ * Delete index lock
  */
 void
 cleanup_tmp_files(
 	void)
 {
-#if 0
-	char acNovFile[PATH_LEN];
-
-	if (nntp_caps.over_cmd && !tinrc.cache_overview_files) {
-		snprintf(acNovFile, sizeof(acNovFile), "%s%d.idx", TMPDIR, (int) process_id);
-		unlink(acNovFile);
-	}
-#endif /* 0 */
-
+	/*
+	 * only required if update_index == TRUE, but update_index is
+	 * unknown here
+	 */
 	if (batch_mode)
 		unlink(lock_file);
 }
@@ -2228,7 +2219,7 @@ write_input_history_file(
 	file_tmp = get_tmpfilename(local_input_history_file);
 
 	if ((fp = fopen(file_tmp, "w")) == NULL) {
-		error_message(_(txt_filesystem_full_backup), local_input_history_file);
+		error_message(2, _(txt_filesystem_full_backup), local_input_history_file);
 		/* free memory for tmp-filename */
 		free(file_tmp);
 		umask(mask);
@@ -2250,10 +2241,16 @@ write_input_history_file(
 
 	fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR)); /* rename_file() preserves mode */
 
-	if (ferror(fp) || fclose(fp)) {
-		error_message(_(txt_filesystem_full), local_input_history_file);
+	if ((his_w = ferror(fp)) || fclose(fp)) {
+		error_message(2, _(txt_filesystem_full), local_input_history_file);
 		/* fix modes for all pre 1.4.1 local_input_history_file files */
+#ifdef HAVE_CHMOD
 		chmod(local_input_history_file, (mode_t) (S_IRUSR|S_IWUSR));
+#endif /* HAVE_CHMOD */
+		if (his_w) {
+			clearerr(fp);
+			fclose(fp);
+		}
 	} else
 		rename_file(file_tmp, local_input_history_file);
 
@@ -2344,7 +2341,7 @@ strip_name(
 static t_bool
 buffer_to_local(
 	char **line,
-	int *max_line_len,
+	size_t *max_line_len,
 	const char *network_charset,
 	const char *local_charset)
 {
@@ -2483,7 +2480,7 @@ buffer_to_local(
 				} while (inbytesleft > 0);
 
 				**&outbuf = '\0';
-				if (*max_line_len < (int) strlen(obuf) + 1) {
+				if (*max_line_len < strlen(obuf) + 1) {
 					*max_line_len = strlen(obuf) + 1;
 					*line = my_realloc(*line, *max_line_len);
 				}
@@ -2593,7 +2590,7 @@ buffer_to_ascii(
 void
 process_charsets(
 	char **line,
-	int *max_line_len,
+	size_t *max_line_len,
 	const char *network_charset,
 	const char *local_charset,
 	t_bool conv_tex2iso)
@@ -2645,7 +2642,7 @@ process_charsets(
 
 
 /*
- * checking of mail adresses for GNKSA compliance
+ * checking of mail addresses for GNKSA compliance
  *
  * son of RFC 1036:
  *   article         = 1*header separator body
@@ -3161,13 +3158,16 @@ gnksa_check_domain_literal(
 	if ((255 < x1) || (255 < x2) || (255 < x3) || (255 < x4))
 		return GNKSA_BAD_DOMAIN_LITERAL;
 
-	/* check for private ip or localhost */
+	/* check for private ip or localhost - see RFC 5735, RFC 5737 */
 	if ((!disable_gnksa_domain_check)
 	    && ((0 == x1)				/* local network */
 		|| (10 == x1)				/* private class A */
-		|| ((172 == x1) && (16 == (x2 & 0xf0)))	/* private class B */
-		|| ((192 == x1) && (168 == x2))		/* private class C */
-		|| (127 == x1)))			/* localhost */
+		|| ((172 == x1) && (16 == (x2 & 0xf0)))	/* private /12 */
+		|| ((192 == x1) && (168 == x2))		/* private class B */
+		|| ((192 == x1) && (0 == x2) && (2 == x3)) /* TEST NET-1 */
+		|| ((198 == x1) && (51 == x2) && (100 == x3)) /* TEST NET-2 */
+		|| ((203 == x1) && (0 == x2) && (113 == x3)) /* TEST NET-3 */
+		|| (127 == x1)))			/* loopback */
 		return GNKSA_LOCAL_DOMAIN_LITERAL;
 
 	return GNKSA_OK;
@@ -3241,8 +3241,14 @@ gnksa_check_domain(
 			}
 			if (disable_gnksa_domain_check)
 				result = GNKSA_OK;
-			if (GNKSA_OK != result)
-				return result;
+			if (GNKSA_OK != result) {
+#if 0 /* valid IDN ccTLDs are checked via gnksa_domain_list[] */
+				if (strlen(aux) >= 8 && !strncasecmp(aux, "xn--", 4)) /* hack for IDN ccTLDs like xn--wgbh1c (Egypt), xn--mgbaam7a8h (Emarat) or xn--mgberp4a5d4ar (AlSaudiah) */
+					result = GNKSA_OK;
+				else
+#endif /* 0 */
+					return result;
+			}
 			break;
 	}
 
@@ -3453,7 +3459,7 @@ gnksa_do_check_from(
 	decoded[0] = '\0';
 
 #ifdef DEBUG
-	if (debug == 2)
+	if (debug & DEBUG_MISC)
 		wait_message(0, "From:=[%s]", from);
 #endif /* DEBUG */
 
@@ -3463,7 +3469,7 @@ gnksa_do_check_from(
 		return code;
 
 #ifdef DEBUG
-	if (debug == 2)
+	if (debug & DEBUG_MISC)
 		wait_message(0, "address=[%s]", address);
 #endif /* DEBUG */
 
@@ -3477,7 +3483,7 @@ gnksa_do_check_from(
 		*addr_begin++ = '\0';
 
 #ifdef DEBUG
-		if (debug == 2)
+		if (debug & DEBUG_MISC)
 			wait_message(0, "FQDN=[%s]", addr_begin);
 #endif /* DEBUG */
 
@@ -3497,7 +3503,7 @@ gnksa_do_check_from(
 	}
 
 #ifdef DEBUG
-	if (debug == 2)
+	if (debug & DEBUG_MISC)
 		wait_message(0, "realname=[%s]", realname);
 #endif /* DEBUG */
 
@@ -3509,9 +3515,9 @@ gnksa_do_check_from(
 		strcpy(realname, decoded);
 
 #ifdef DEBUG
-	if (debug == 2) {
+	if (debug & DEBUG_MISC) { /* TODO: dump to a file instead of wait_message() */
 		if (GNKSA_OK != code)
-			wait_message(3, "From:=[%s], GNKSA=[%d]", from, code);
+			wait_message(2, "From:=[%s], GNKSA=[%d]", from, code);
 		else
 			wait_message(0, "GNKSA=[%d]", code);
 	}
@@ -3607,11 +3613,9 @@ utf8_valid(
 			numc++;
 		} while ((d <<= 1) & 0x80);	/* get sequence length */
 
-		d = 1;
-		while (d < numc) {
-			if (*(c + d) == '\0' || *(c + d) == '\n')
-				illegal = TRUE;
-			d--;
+		if (c + numc > line + strlen(line)) { /* sequence runs past end of string */
+			illegal = TRUE;
+			numc = line + strlen(line) - c;
 		}
 
 		if (!illegal) {
@@ -3797,6 +3801,11 @@ tin_version_info(
 
 	fprintf(fp, "Characteristics:\n\t"
 /* TODO: complete list and do some useful grouping */
+#ifdef DEBUG
+			"+DEBUG "
+#else
+			"-DEBUG "
+#endif /* DEBUG */
 #ifdef NNTP_ONLY
 			"+NNTP_ONLY "
 #else
@@ -4004,24 +4013,26 @@ stat_article(
 	long art,
 	const char *group_path)
 {
-	char buf[NNTP_STRLEN];
 	struct t_group currgrp;
 
 	currgrp = CURR_GROUP;
 
 #	ifdef NNTP_ABLE
 	if (read_news_via_nntp && currgrp.type == GROUP_TYPE_NEWS) {
+		char buf[NNTP_STRLEN];
+
 		snprintf(buf, sizeof(buf), "STAT %ld", art);
 		return (nntp_command(buf, OK_NOTEXT, NULL, 0) != NULL);
 	} else
 #	endif /* NNTP_ABLE */
 	{
+		char filename[PATH_LEN];
 		struct stat sb;
 
-		joinpath(buf, currgrp.spooldir, group_path);
-		snprintf(&buf[strlen(buf)], sizeof(buf), "/%ld", art);
+		joinpath(filename, sizeof(filename), currgrp.spooldir, group_path);
+		snprintf(&filename[strlen(filename)], sizeof(filename), "/%ld", art);
 
-		return (stat(buf, &sb) != -1);
+		return (stat(filename, &sb) != -1);
 	}
 }
 #endif /* 0 */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/my_tmpfile.c tin-2.0.0/src/my_tmpfile.c
--- tin-1.8.3/src/my_tmpfile.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/my_tmpfile.c	2011-04-17 16:04:31.779274922 +0200
@@ -3,10 +3,10 @@
  *  Module    : my_tmpfile.c
  *  Author    : Urs Janssen <urs@tin.org>
  *  Created   : 2001-03-11
- *  Updated   : 2004-06-30
+ *  Updated   : 2009-02-12
  *  Notes     :
  *
- * Copyright (c) 2001-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 2001-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -49,7 +49,7 @@
  *      if need_name is set to true and/or we have to unlink the file
  *      ourself filename is set to the name of the tmp file located in
  *      base_dir
- * -1 = some error occured
+ * -1 = some error occurred
  */
 int
 my_tmpfile(
@@ -60,7 +60,12 @@ my_tmpfile(
 {
 	int fd = -1;
 	char buf[PATH_LEN];
-
+#if defined(HAVE_MKTEMP) && !defined(HAVE_MKSTEMP)
+	char *t;
+#endif /* HAVE_MKTEMP && !HAVE_MKSTEMP */
+#ifdef DEBUG
+	int sverrno;
+#endif /* DEBUG */
 	errno = 0;
 
 	if (filename != NULL && name_size > 0) {
@@ -70,39 +75,47 @@ my_tmpfile(
 			if ((fp = tmpfile()) != NULL)
 				fd = fileno(fp);
 #ifdef DEBUG
-			else
-				wait_message(5, "HAVE_TMPFILE %s", strerror(errno));
+			else {
+				sverrno = errno;
+				wait_message(5, "HAVE_TMPFILE %s", strerror(sverrno));
+			}
 #endif /* DEBUG */
 			*filename = '\0';
 			if (fd == -1)
-				error_message(_(txt_cannot_create_uniq_name));
+				error_message(2, _(txt_cannot_create_uniq_name));
 			return fd;
 		}
 
 		if (base_dir) {
-			snprintf(buf, MIN(name_size, (sizeof(buf) - 1)), "tin-%s-%d-XXXXXX", get_host_name(), process_id);
-			joinpath(filename, base_dir, buf);
+			snprintf(buf, MIN(name_size, (sizeof(buf) - 1)), "tin-%s-%ld-XXXXXX", get_host_name(), (long) process_id);
+			joinpath(filename, name_size, base_dir, buf);
 		} else {
 			snprintf(buf, MIN(name_size, (sizeof(buf) - 1)), "tin_XXXXXX");
-			joinpath(filename, TMPDIR, buf);
+			joinpath(filename, name_size, TMPDIR, buf);
 		}
+#ifdef DEBUG
+		errno = 0;
+#endif /* DEBUG */
 #ifdef HAVE_MKSTEMP
 		fd = mkstemp(filename);
 #	ifdef DEBUG
-		if (errno)
-			wait_message(5, "HAVE_MKSTEMP %s: %s", filename, strerror(errno));
+		sverrno = errno;
+		if (fd == -1 && sverrno)
+			wait_message(5, "HAVE_MKSTEMP %s: %s", filename, strerror(sverrno));
 #	endif /* DEBUG */
 #else
 #	ifdef HAVE_MKTEMP
-		fd = open(mktemp(filename), (O_WRONLY|O_CREAT|O_EXCL), (mode_t) (S_IRUSR|S_IWUSR));
+		if ((t = mktemp(filename)) != NULL)
+			fd = open(t, (O_WRONLY|O_CREAT|O_EXCL), (mode_t) (S_IRUSR|S_IWUSR));
 #		ifdef DEBUG
-		if (errno)
-			wait_message(5, "HAVE_MKTEMP %s: %s", filename, strerror(errno));
+		sverrno = errno;
+		if (sverrno)
+			wait_message(5, "HAVE_MKTEMP %s: %s", filename, strerror(sverrno));
 #		endif /* DEBUG */
 #	endif /* HAVE_MKTEMP */
 #endif /* HAVE_MKSTEMP */
 		}
 	if (fd == -1)
-		error_message(_(txt_cannot_create_uniq_name));
+		error_message(2, _(txt_cannot_create_uniq_name));
 	return fd;
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/newsrc.c tin-2.0.0/src/newsrc.c
--- tin-1.8.3/src/newsrc.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/newsrc.c	2011-04-17 16:04:31.167181774 +0200
@@ -3,10 +3,10 @@
  *  Module    : newsrc.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-05-04
+ *  Updated   : 2011-04-16
  *  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-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -109,7 +109,7 @@ read_newsrc(
 			line_count++;
 
 			if (sub == SUBSCRIBED) {
-				if ((i = my_group_add(grp)) >= 0) {
+				if ((i = my_group_add(grp, FALSE)) >= 0) {
 					if (!active[my_group[i]].bogus) {
 						active[my_group[i]].subscribed = SUB_BOOL(sub);
 						parse_bitmap_seq(&active[my_group[i]], seq);
@@ -121,10 +121,11 @@ read_newsrc(
 		fclose(fp);
 		/* If you aborted with 'q', then you get what you get. */
 
-		if (cmd_line) {
+		if (!batch_mode || verbose)
 			my_fputc('\n', stdout);
-			my_flush();
-		}
+
+		if (!cmd_line && !batch_mode)
+			clear_message();
 	}
 	return line_count;
 }
@@ -159,10 +160,10 @@ write_newsrc_line(
 	 * are set to auto removal. Also check for bogus flag just in case
 	 * strip_bogus was changed since tin started
 	 */
-	group = group_find(line);
+	group = group_find(line, FALSE);
 
 	if (tinrc.strip_bogus == BOGUS_REMOVE) {
-		if (group == NULL || group->bogus) { /* group dosen't exist */
+		if (group == NULL || group->bogus) { /* group doesn't exist */
 			wait_message(2, _(txt_remove_bogus), line);
 			return 0;
 		}
@@ -199,6 +200,7 @@ write_newsrc(
 	signed long int tot = 0L;
 	struct stat note_stat_newsrc;
 	t_bool write_ok = FALSE;
+	int err;
 
 	if (no_write)
 		return 0L;
@@ -214,7 +216,7 @@ write_newsrc(
 		return 0L; /* newsrc is empty */
 	}
 
-	if ((fp_op = fopen(newnewsrc, "w" FOPEN_OPTS)) != NULL) {
+	if ((fp_op = fopen(newnewsrc, "w")) != NULL) {
 		if (newsrc_mode)
 			fchmod(fileno(fp_op), newsrc_mode);
 
@@ -224,9 +226,13 @@ write_newsrc(
 		/*
 		 * Don't rename if either fclose() fails or ferror() is set
 		 */
-		if (ferror(fp_op) || fclose(fp_op)) {
-			error_message(_(txt_filesystem_full), NEWSRC_FILE);
+		if ((err = ferror(fp_op)) || fclose(fp_op)) {
+			error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
 			unlink(newnewsrc);
+			if (err) {
+				clearerr(fp_op);
+				fclose(fp_op);
+			}
 		} else
 			write_ok = TRUE;
 	}
@@ -234,7 +240,8 @@ write_newsrc(
 	fclose(fp_ip);
 
 	if (tot < 1) {
-		error_message(_(txt_newsrc_nogroups));
+		error_message(2, _(txt_newsrc_nogroups));
+		unlink(newnewsrc);
 		return 0L;		/* So we don't get prompted to try again */
 	}
 
@@ -261,8 +268,12 @@ create_newsrc(
 		for_each_group(i)
 			fprintf(fp, "%s!\n", active[i].name);
 
-		if (ferror(fp) || fclose(fp)) {
-			error_message(_(txt_filesystem_full), NEWSRC_FILE);
+		if ((i = ferror(fp)) || fclose(fp)) {
+			error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+			if (i) {
+				clearerr(fp);
+				fclose(fp);
+			}
 			return FALSE;
 		}
 		return TRUE; /* newsrc created */
@@ -281,9 +292,12 @@ open_subscription_fp(
 	if (!read_saved_news) {
 #ifdef NNTP_ABLE
 		if (read_news_via_nntp) {
-			/* if (nntp_caps.type = 2 && !nntp_caps.list_subscriptions)
+			/*
+			 * draft-elie-nntp-list-additions-00.txt
+			 */
+			if (nntp_caps.type == CAPABILITIES && !nntp_caps.list_subscriptions)
 				return NULL;
-			else */
+			else
 				return (nntp_command("LIST SUBSCRIPTIONS", OK_GROUPS, NULL, 0));
 		} else
 #endif /* NNTP_ABLE */
@@ -305,6 +319,7 @@ auto_subscribe_groups(
 	FILE *fp_newsrc;
 	FILE *fp_subs;
 	char *ptr;
+	int err;
 
 	/*
 	 * If subscription file exists then first unsubscribe to all groups
@@ -316,8 +331,10 @@ auto_subscribe_groups(
 	if (!batch_mode)
 		wait_message(0, _(txt_autosubscribing_groups));
 
-	if ((fp_newsrc = fopen(newsrc_file, "w" FOPEN_OPTS)) == NULL)
+	if ((fp_newsrc = fopen(newsrc_file, "w")) == NULL) {
+		TIN_FCLOSE(fp_subs);
 		return;
+	}
 
 	if (newsrc_mode)
 		fchmod(fileno(fp_newsrc), newsrc_mode);
@@ -325,15 +342,20 @@ auto_subscribe_groups(
 	/* TODO: test me! */
 	while ((ptr = tin_fgets(fp_subs, FALSE)) != NULL) {
 		if (ptr[0] != '#') {
-			if (group_find(ptr) != 0)
+			if (group_find(ptr, FALSE) != 0)
 				fprintf(fp_newsrc, "%s:\n", ptr);
 		}
 	}
 
 	/* We ignore user 'q'uits here. They will get them next time in any case */
 
-	if (ferror(fp_newsrc) || fclose(fp_newsrc))
-		error_message(_(txt_filesystem_full), NEWSRC_FILE);
+	if ((err = ferror(fp_newsrc)) || fclose(fp_newsrc)) {
+		error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+		if (err) {
+			clearerr(fp_newsrc);
+			fclose(fp_newsrc);
+		}
+	}
 
 	TIN_FCLOSE(fp_subs);
 }
@@ -352,23 +374,23 @@ backup_newsrc(
 
 #ifdef NNTP_ABLE
 	if (read_news_via_nntp && !read_saved_news && nntp_tcp_port != IPPORT_NNTP)
-		snprintf(filebuf, sizeof(filebuf), "%s:%d", nntp_server, nntp_tcp_port);
+		snprintf(filebuf, sizeof(filebuf), "%s:%u", nntp_server, nntp_tcp_port);
 	else
 #endif /* NNTP_ABLE */
 	{
 		STRCPY(filebuf, quote_space_to_dash(nntp_server));
 	}
-	JOINPATH(dirbuf, rcdir, filebuf);
-	joinpath(filebuf, dirbuf, OLDNEWSRC_FILE);
+	joinpath(dirbuf, sizeof(dirbuf), rcdir, filebuf);
+	joinpath(filebuf, sizeof(filebuf), dirbuf, OLDNEWSRC_FILE);
 
 	if (-1 == stat(dirbuf, &statbuf)) {
 		if (-1 == my_mkdir(dirbuf, (mode_t) (S_IRWXU)))
 			/* Can't create directory: Fall back on Homedir */
-			joinpath(filebuf, homedir, OLDNEWSRC_FILE);
+			joinpath(filebuf, sizeof(filebuf), homedir, OLDNEWSRC_FILE);
 	}
 
 	if (!backup_file(newsrc, filebuf))
-		error_message(_(txt_filesystem_full_backup), NEWSRC_FILE);
+		error_message(2, _(txt_filesystem_full_backup), NEWSRC_FILE);
 }
 
 
@@ -388,33 +410,33 @@ group_get_art_info(
 {
 	DIR *dir;
 	DIR_BUF *direntry;
-	char buf[NNTP_STRLEN];
 	long artnum;
 
 	if (read_news_via_nntp && grouptype == GROUP_TYPE_NEWS) {
 #ifdef NNTP_ABLE
 		char line[NNTP_STRLEN];
 
-		snprintf(buf, sizeof(buf), "GROUP %s", groupname);
+		snprintf(line, sizeof(line), "GROUP %s", groupname);
 #	ifdef DEBUG
-		debug_nntp("group_get_art_info", buf);
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "group_get_art_info %s", line);
 #	endif /* DEBUG */
-		put_server(buf);
+		put_server(line);
 
 		switch (get_respcode(line, sizeof(line))) {
 			case OK_GROUP:
 				if (sscanf(line, "%ld %ld %ld", art_count, art_min, art_max) != 3)
-					error_message(_(txt_error_invalid_response_to_group), line);
+					error_message(2, _(txt_error_invalid_response_to_group), line);
 				break;
 
 			case ERR_NOGROUP:
-				*art_count = 0;
-				*art_min = 1;
-				*art_max = 0;
+				*art_count = 0L;
+				*art_min = 1L;
+				*art_max = 0L;
 				return -ERR_NOGROUP;
 
 			case ERR_ACCESS:
-				error_message("%s%s", cCRLF, line);
+				error_message(2, "%s%s", cCRLF, line);
 				tin_done(NNTP_ERROR_EXIT);
 				/* keep lint quiet: */
 				/* NOTREACHED */
@@ -422,7 +444,8 @@ group_get_art_info(
 
 			default:
 #	ifdef DEBUG
-				debug_nntp("NOT_OK", line);
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "NOT_OK %s", line);
 #	endif /* DEBUG */
 				return -1;
 		}
@@ -431,19 +454,20 @@ group_get_art_info(
 		return 0;
 #endif /* NNTP_ABLE */
 	} else {
-		*art_count = 0;
-		*art_min = 1;
-		*art_max = 0;
+		char group_path[PATH_LEN];
+		*art_count = 0L;
+		*art_min = 0L;
+		*art_max = 0L;
 
-		make_base_group_path(tin_spooldir, groupname, buf);
+		make_base_group_path(tin_spooldir, groupname, group_path, sizeof(group_path));
 
-		if ((dir = opendir(buf)) != NULL) {
+		if ((dir = opendir(group_path)) != NULL) {
 			while ((direntry = readdir(dir)) != NULL) {
 				artnum = atol(direntry->d_name); /* should be '\0' terminated... */
-				if (artnum >= 1) {
+				if (artnum >= 1L) {
 					if (artnum > *art_max) {
 						*art_max = artnum;
-						if (*art_min == 0)
+						if (*art_min == 0L)
 							*art_min = artnum;
 					} else if (artnum < *art_min)
 						*art_min = artnum;
@@ -451,8 +475,12 @@ group_get_art_info(
 				}
 			}
 			CLOSEDIR(dir);
-		} else
+			if (*art_min == 0L)
+				*art_min = 1L;
+		} else {
+			*art_min = 1L;
 			return -1;
+		}
 	}
 
 	return 0;
@@ -473,8 +501,10 @@ get_subscribe_info(
 
 	if (grp->newsrc.num_unread > grp->count) {
 #ifdef DEBUG
-		my_printf(cCRLF "Unread WRONG %s unread=[%ld] count=[%ld]", grp->name, grp->newsrc.num_unread, grp->count);
-		my_flush();
+		if (debug & DEBUG_NEWSRC) { /* TODO: is this the right debug-level? */
+			my_printf(cCRLF "Unread WRONG %s unread=[%ld] count=[%ld]", grp->name, grp->newsrc.num_unread, grp->count);
+			my_flush();
+		}
 #endif /* DEBUG */
 		grp->newsrc.num_unread = grp->count;
 	}
@@ -482,8 +512,10 @@ get_subscribe_info(
 	if (grp->xmin != oldmin || grp->xmax != oldmax) {
 		expand_bitmap(grp, 0);
 #ifdef DEBUG
-		my_printf(cCRLF "Min/Max DIFF %s old=[%ld-%ld] new=[%ld-%ld]", grp->name, oldmin, oldmax, grp->xmin, grp->xmax);
-		my_flush();
+		if (debug & DEBUG_NEWSRC) { /* TODO: is this the right debug-level? */
+			my_printf(cCRLF "Min/Max DIFF %s old=[%ld-%ld] new=[%ld-%ld]", grp->name, oldmin, oldmax, grp->xmin, grp->xmax);
+			my_flush();
+		}
 #endif /* DEBUG */
 	}
 }
@@ -510,7 +542,7 @@ subscribe(
 	if (no_write)
 		return;
 
-	if ((newfp = fopen(newnewsrc, "w" FOPEN_OPTS)) == NULL)
+	if ((newfp = fopen(newnewsrc, "w")) == NULL)
 		return;
 
 	if (newsrc_mode)
@@ -518,18 +550,19 @@ subscribe(
 
 	if ((fp = fopen(newsrc, "r")) != NULL) {
 		while ((line = tin_fgets(fp, FALSE)) != NULL) {
-			seq = parse_newsrc_line(line, &sub);
-			if (STRCMPEQ(line, group->name)) {
-				fprintf(newfp, "%s%c %s\n", line, sub_state, seq);
-				group->subscribed = SUB_BOOL(sub_state);
-
-				/* If previously subscribed to in .newsrc, load up any existing information */
-				if (sub_state == SUBSCRIBED)
-					parse_bitmap_seq(group, seq);
+			if ((seq = parse_newsrc_line(line, &sub))) {
+				if (STRCMPEQ(line, group->name)) {
+					fprintf(newfp, "%s%c %s\n", line, sub_state, seq);
+					group->subscribed = SUB_BOOL(sub_state);
+
+					/* If previously subscribed to in .newsrc, load up any existing information */
+					if (sub_state == SUBSCRIBED)
+						parse_bitmap_seq(group, seq);
 
-				found = TRUE;
-			} else
-				fprintf(newfp, "%s%c %s\n", line, sub, seq);
+					found = TRUE;
+				} else
+					fprintf(newfp, "%s%c %s\n", line, sub, seq);
+			}
 		}
 
 		fclose(fp);
@@ -549,8 +582,12 @@ subscribe(
 		}
 	}
 
-	if (ferror(newfp) || fclose(newfp)) {
-		error_message(_(txt_filesystem_full), NEWSRC_FILE);
+	if ((sub = ferror(newfp)) || fclose(newfp)) {
+		error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+		if (sub) {
+			clearerr(newfp);
+			fclose(newfp);
+		}
 		unlink(newnewsrc);
 	} else
 		rename_file(newnewsrc, newsrc);
@@ -567,7 +604,7 @@ reset_newsrc(
 	int sub;
 	long i;
 
-	if (!no_write && (newfp = fopen(newnewsrc, "w" FOPEN_OPTS)) != NULL) {
+	if (!no_write && (newfp = fopen(newnewsrc, "w")) != NULL) {
 		if (newsrc_mode)
 			fchmod(fileno(newfp), newsrc_mode);
 
@@ -578,8 +615,12 @@ reset_newsrc(
 			}
 			fclose(fp);
 		}
-		if (ferror(newfp) || fclose(newfp)) {
-			error_message(_(txt_filesystem_full), NEWSRC_FILE);
+		if ((sub = ferror(newfp)) || fclose(newfp)) {
+			error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+			if (sub) {
+				clearerr(newfp);
+				fclose(newfp);
+			}
 			unlink(newnewsrc);
 		} else
 			rename_file(newnewsrc, newsrc);
@@ -606,23 +647,26 @@ delete_group(
 	if (no_write)
 		return;
 
-	if ((newfp = fopen(newnewsrc, "w" FOPEN_OPTS)) != NULL) {
+	if ((newfp = fopen(newnewsrc, "w")) != NULL) {
 		if (newsrc_mode)
 			fchmod(fileno(newfp), newsrc_mode);
 
 		if ((fp = fopen(newsrc, "r")) != NULL) {
 			while ((line = tin_fgets(fp, FALSE)) != NULL) {
-				seq = parse_newsrc_line(line, &sub);
-
-				if (!STRCMPEQ(line, group))
-					fprintf(newfp, "%s%c %s\n", line, sub, seq);
-
+				if ((seq = parse_newsrc_line(line, &sub))) {
+					if (!STRCMPEQ(line, group))
+						fprintf(newfp, "%s%c %s\n", line, sub, seq);
+				}
 			}
 			fclose(fp);
 		}
 
-		if (ferror(newfp) || fclose(newfp)) {
-			error_message(_(txt_filesystem_full), NEWSRC_FILE);
+		if ((sub = ferror(newfp)) || fclose(newfp)) {
+			error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+			if (sub) {
+				clearerr(newfp);
+				fclose(newfp);
+			}
 			unlink(newnewsrc);
 		} else
 			rename_file(newnewsrc, newsrc);
@@ -643,21 +687,22 @@ grp_mark_read(
 {
 	int i;
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("c/C command");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_comment("c/C command");
+#endif /* DEBUG */
 
 	if (art != NULL) {
 		for_each_art(i)
 			art_mark(group, &art[i], ART_READ);
+	} else {
+		FreeAndNull(group->newsrc.xbitmap);
+		group->newsrc.xbitlen = 0;
+		if (group->xmax > group->newsrc.xmax)
+			group->newsrc.xmax = group->xmax;
+		group->newsrc.xmin = group->newsrc.xmax + 1;
+		group->newsrc.num_unread = 0;
 	}
-
-	FreeAndNull(group->newsrc.xbitmap);
-	group->newsrc.xbitlen = 0;
-	if (group->xmax > group->newsrc.xmax)
-		group->newsrc.xmax = group->xmax;
-	group->newsrc.xmin = group->newsrc.xmax + 1;
-	group->newsrc.num_unread = 0;
 }
 
 
@@ -666,11 +711,12 @@ grp_mark_unread(
 	struct t_group *group)
 {
 	int bitlength;
-	t_bitmap *newbitmap = (t_bitmap *)0;
+	t_bitmap *newbitmap = (t_bitmap *) 0;
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("Z command");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_comment("Z command");
+#endif /* DEBUG */
 
 	group_get_art_info(group->spooldir, group->name, group->type, &group->count, &group->xmax, &group->xmin);
 
@@ -692,9 +738,10 @@ grp_mark_unread(
 	if (bitlength)
 		NSETRNG1(group->newsrc.xbitmap, 0L, bitlength - 1L);
 
-#ifdef DEBUG_NEWSRC
-	debug_print_bitmap(group, NULL);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_bitmap(group, NULL);
+#endif /* DEBUG */
 }
 
 
@@ -705,9 +752,10 @@ thd_mark_read(
 {
 	int i;
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("Mark thread read K command");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_comment("Mark thread read K command");
+#endif /* DEBUG */
 
 	for (i = (int) thread; i >= 0; i = arts[i].thread)
 		art_mark(group, &arts[i], ART_READ);
@@ -721,9 +769,10 @@ thd_mark_unread(
 {
 	int i;
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("Mark thread unread Z command");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_comment("Mark thread unread Z command");
+#endif /* DEBUG */
 
 	for (i = (int) thread; i >= 0; i = arts[i].thread)
 		art_mark(group, &arts[i], ART_WILL_RETURN);
@@ -752,15 +801,15 @@ parse_bitmap_seq(
 	while (ptr && *ptr && (*ptr < '0' || *ptr > '9'))
 		ptr++;
 
-#ifdef DEBUG_NEWSRC
-	{
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC) {
 		char buf[NEWSRC_LINE];
 
 		snprintf(buf, sizeof(buf), "Parsing [%s%c %.*s]", group->name, SUB_CHAR(group->subscribed), (int) (NEWSRC_LINE - strlen(group->name) - 20), ptr);
 		debug_print_comment(buf);
 		debug_print_bitmap(group, NULL);
 	}
-#endif /* DEBUG_NEWSRC */
+#endif /* DEBUG */
 
 	if (ptr) {
 		gotseq = TRUE;
@@ -828,9 +877,10 @@ wait_message(2, "BITMAP Grp=[%s] MinMax=
 		sum = (int) ((group->count >= 0) ? group->count : ((group->newsrc.xmax - group->newsrc.xmin) + 1));
 
 	group->newsrc.num_unread = sum;
-#ifdef DEBUG_NEWSRC
-	debug_print_bitmap(group, NULL);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC)
+		debug_print_bitmap(group, NULL);
+#endif /* DEBUG */
 }
 
 
@@ -952,11 +1002,12 @@ parse_get_seq(
 
 
 /*
- * Loop thru arts[] array marking state of each article READ/UNREAD
+ * Loop through arts[] array marking state of each article READ/UNREAD
  */
 void
 parse_unread_arts(
-	struct t_group *group)
+	struct t_group *group,
+	long min)
 {
 	int i;
 	long unread = 0;
@@ -981,6 +1032,24 @@ parse_unread_arts(
 		NSETRNG0(newbitmap, 0L, group->newsrc.xmax - bitmin);
 	}
 
+	/*
+	 * if getart_limit > 0 preserve read/unread state
+	 * of all articles below the new minimum
+	 */
+	if (min > 0 && newbitmap) {
+		long j, tmp_bitmax;
+
+		tmp_bitmax = (bitmax < min) ? bitmax : min;
+		for (j = bitmin; j < tmp_bitmax; j++) {
+			if (NTEST(group->newsrc.xbitmap, j - bitmin) != ART_READ)
+				NSET1(newbitmap, j - bitmin);
+		}
+		while (j < min) {
+			NSET1(newbitmap, j - bitmin);
+			j++;
+		}
+	}
+
 	for_each_art(i) {
 		if (arts[i].artnum < bitmin)
 			arts[i].status = ART_READ;
@@ -1024,13 +1093,15 @@ print_bitmap_seq(
 	struct t_group *group)
 {
 	long artnum;
-	long i, last;
+	long i;
 	t_bool flag = FALSE;
 
-#ifdef DEBUG_NEWSRC
-	debug_print_comment("print_bitmap_seq()");
-	debug_print_bitmap(group, NULL);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+	if (debug & DEBUG_NEWSRC) {
+		debug_print_comment("print_bitmap_seq()");
+		debug_print_bitmap(group, NULL);
+	}
+#endif /* DEBUG */
 
 	if (group->count == 0 || group->xmin > group->xmax) {
 		if (group->newsrc.xmax > 1)
@@ -1038,41 +1109,45 @@ print_bitmap_seq(
 
 		fprintf(fp, "\n");
 		fflush(fp);
-#ifdef DEBUG_NEWSRC
-		debug_print_comment("print_bitmap_seq(): group->count == 0");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+		if (debug & DEBUG_NEWSRC)
+			debug_print_comment("print_bitmap_seq(): group->count == 0");
+#endif /* DEBUG */
 		return;
 	}
 
-	for (i = group->newsrc.xmin; i <= group->newsrc.xmax; i++) {
-		if (group->newsrc.xbitmap && NTEST(group->newsrc.xbitmap, i - group->newsrc.xmin) == ART_READ) {
-			if (flag) {
-				artnum = i;
-				fprintf(fp, ",%ld", i);
-			} else {
-				artnum = 1;
-				flag = TRUE;
-				fprintf(fp, "1");
-			}
-			i++;
-
-			while (i <= group->newsrc.xmax && NTEST(group->newsrc.xbitmap, i - group->newsrc.xmin) == ART_READ)
-				i++;
-
-			last = i - 1;
+	i = group->newsrc.xmin;
+	if (i <= group->newsrc.xmax) {
+		forever {
+			if (group->newsrc.xbitmap && NTEST(group->newsrc.xbitmap, i - group->newsrc.xmin) == ART_READ) {
+				if (flag) {
+					artnum = i;
+					fprintf(fp, ",%ld", i);
+				} else {
+					artnum = 1;
+					flag = TRUE;
+					fprintf(fp, "1");
+				}
+				while (i < group->newsrc.xmax && NTEST(group->newsrc.xbitmap, (i + 1) - group->newsrc.xmin) == ART_READ)
+					i++;
 
-			if (artnum != last)
-				fprintf(fp, "-%ld", last);
+				if (artnum != i)
+					fprintf(fp, "-%ld", i);
 
-		} else if (!flag) {
-			flag = TRUE;
-			if (group->newsrc.xmin > 1) {
-				fprintf(fp, "1");
+			} else if (!flag) {
+				flag = TRUE;
+				if (group->newsrc.xmin > 1) {
+					fprintf(fp, "1");
 
-				if (group->newsrc.xmin > 2)
-					fprintf(fp, "-%ld", group->newsrc.xmin - 1);
+					if (group->newsrc.xmin > 2)
+						fprintf(fp, "-%ld", group->newsrc.xmin - 1);
 
+				}
 			}
+			if (group->newsrc.xmax == i)
+				break;
+
+			i++;
 		}
 	}
 
@@ -1082,9 +1157,10 @@ print_bitmap_seq(
 		if (group->newsrc.xmin > 2)
 			fprintf(fp, "-%ld", group->newsrc.xmin - 1);
 
-#ifdef DEBUG_NEWSRC
-		debug_print_comment("print_bitmap_seq(): !flag && group->newsrc.xmin > 1");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+		if (debug & DEBUG_NEWSRC)
+			debug_print_comment("print_bitmap_seq(): !flag && group->newsrc.xmin > 1");
+#endif /* DEBUG */
 	}
 
 	fprintf(fp, "\n");
@@ -1093,7 +1169,7 @@ print_bitmap_seq(
 
 
 /*
- * rewrite .newsrc and position group at specifed position
+ * rewrite .newsrc and position group at specified position
  */
 t_bool
 pos_group_in_newsrc(
@@ -1104,10 +1180,11 @@ pos_group_in_newsrc(
 	FILE *fp_sub = NULL, *fp_unsub = NULL;
 	char *newsgroup = NULL;
 	char *line;
-	char buf[HEADER_LEN];
-	char sub[HEADER_LEN];
-	char unsub[HEADER_LEN];
+	char filename[PATH_LEN];
+	char sub[PATH_LEN];
+	char unsub[PATH_LEN];
 	int subscribed_pos = 1;
+	int err;
 	size_t group_len;
 	t_bool found = FALSE;
 	t_bool newnewsrc_created = FALSE;
@@ -1116,6 +1193,7 @@ pos_group_in_newsrc(
 	t_bool ret_code = FALSE;
 	t_bool sub_created = FALSE;
 	t_bool unsub_created = FALSE;
+	t_bool fs_error = FALSE;
 
 	if (no_write)
 		goto rewrite_group_done;
@@ -1123,7 +1201,7 @@ pos_group_in_newsrc(
 	if ((fp_in = fopen(newsrc, "r")) == NULL)
 		goto rewrite_group_done;
 
-	if ((fp_out = fopen(newnewsrc, "w" FOPEN_OPTS)) == NULL)
+	if ((fp_out = fopen(newnewsrc, "w")) == NULL)
 		goto rewrite_group_done;
 
 	newnewsrc_created = TRUE;
@@ -1131,26 +1209,18 @@ pos_group_in_newsrc(
 	if (newsrc_mode)
 		fchmod(fileno(fp_out), newsrc_mode);
 
-#ifdef VMS
-	joinpath(buf, TMPDIR, "subrc");
-	snprintf(sub, sizeof(sub), "%s.%d", buf, (int) process_id);
-
-	joinpath(buf, TMPDIR, "unsubrc");
-	snprintf(unsub, sizeof(unsub), "%s.%d", buf, (int) process_id);
-#else
-	joinpath(buf, TMPDIR, ".subrc");
-	snprintf(sub, sizeof(sub), "%s.%d", buf, (int) process_id);
+	joinpath(filename, sizeof(filename), TMPDIR, ".subrc");
+	snprintf(sub, sizeof(sub), "%s.%ld", filename, (long) process_id);
 
-	joinpath(buf, TMPDIR, ".unsubrc");
-	snprintf(unsub, sizeof(unsub), "%s.%d", buf, (int) process_id);
-#endif /* !VMS */
+	joinpath(filename, sizeof(filename), TMPDIR, ".unsubrc");
+	snprintf(unsub, sizeof(unsub), "%s.%ld", filename, (long) process_id);
 
-	if ((fp_sub = fopen(sub, "w" FOPEN_OPTS)) == NULL)
+	if ((fp_sub = fopen(sub, "w")) == NULL)
 		goto rewrite_group_done;
 
 	sub_created = TRUE;
 
-	if ((fp_unsub = fopen(unsub, "w" FOPEN_OPTS)) == NULL)
+	if ((fp_unsub = fopen(unsub, "w")) == NULL)
 		goto rewrite_group_done;
 
 	unsub_created = TRUE;
@@ -1175,13 +1245,28 @@ pos_group_in_newsrc(
 		}
 	}
 
-	if (ferror(fp_sub) || fclose(fp_sub) || ferror(fp_unsub) || fclose(fp_unsub)) {
-		error_message(_(txt_filesystem_full), NEWSRC_FILE);
-		fp_sub = fp_unsub = NULL;
-		goto rewrite_group_done;
+	if ((err = ferror(fp_sub)) || fclose(fp_sub)) {
+		error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+		if (err) {
+			clearerr(fp_sub);
+			fclose(fp_sub);
+		}
+		fs_error = TRUE;
+	}
+	if ((err = ferror(fp_unsub)) || fclose(fp_unsub)) {
+		if (!fs_error) /* avoid repeatd error message */
+			error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+		if (err) {
+			clearerr(fp_unsub);
+			fclose(fp_unsub);
+		}
+		fs_error = TRUE;
 	}
-
 	fp_sub = fp_unsub = NULL;
+
+	if (fs_error)
+		goto rewrite_group_done;
+
 	fclose(fp_in);
 	fp_in = NULL;
 
@@ -1233,9 +1318,13 @@ pos_group_in_newsrc(
 	/*
 	 * Try and cleanly close out the newnewsrc file
 	 */
-	if (ferror(fp_out) || fclose(fp_out))
-		error_message(_(txt_filesystem_full), NEWSRC_FILE);
-	else {
+	if ((err = ferror(fp_out)) || fclose(fp_out)) {
+		error_message(2, _(txt_filesystem_full), NEWSRC_FILE);
+		if (err) {
+			clearerr(fp_out);
+			fclose(fp_out);
+		}
+	} else {
 		if (repositioned) {
 			rename_file(newnewsrc, newsrc);
 			ret_code = TRUE;
@@ -1375,18 +1464,20 @@ expand_bitmap(
 		bitlen = 0;
 		FreeIfNeeded(group->newsrc.xbitmap);
 		group->newsrc.xbitmap = (t_bitmap *) 0;
-#ifdef DEBUG_NEWSRC
-		debug_print_comment("expand_bitmap: group->newsrc.bitlen == 0");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+		if (debug & DEBUG_NEWSRC)
+			debug_print_comment("expand_bitmap: group->newsrc.bitlen == 0");
+#endif /* DEBUG */
 	} else if (group->newsrc.xbitmap == NULL) {
 		group->newsrc.xbitmap = my_malloc(BITS_TO_BYTES(bitlen));
 		if (group->newsrc.xmin > first)
 			NSETRNG0(group->newsrc.xbitmap, 0L, group->newsrc.xmin - first - 1L);
 		if (bitlen > group->newsrc.xmin - first)
 			NSETRNG1(group->newsrc.xbitmap, group->newsrc.xmin - first, bitlen - 1);
-#ifdef DEBUG_NEWSRC
-		debug_print_comment("expand_bitmap: group->newsrc.xbitmap == NULL");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+		if (debug & DEBUG_NEWSRC)
+			debug_print_comment("expand_bitmap: group->newsrc.xbitmap == NULL");
+#endif /* DEBUG */
 	} else if (need_full_copy) {
 		t_bitmap *newbitmap = my_malloc(BITS_TO_BYTES(bitlen));
 
@@ -1404,15 +1495,12 @@ expand_bitmap(
 		if (first < group->newsrc.xmin) {
 			NSETRNG0(newbitmap, 0L, group->newsrc.xmin - first - 1L);
 		}
-		{
-			long i;
 
-			for (i = group->newsrc.xmin; i < min; i++) {
-				if (NTEST(newbitmap, i - first) != ART_READ) {
-					NSET0(newbitmap, i - first);
-					if (group->newsrc.num_unread)
-						group->newsrc.num_unread--;
-				}
+		for (tmp = group->newsrc.xmin; tmp < min; tmp++) {
+			if (NTEST(newbitmap, tmp - first) != ART_READ) {
+				NSET0(newbitmap, tmp - first);
+				if (group->newsrc.num_unread)
+					group->newsrc.num_unread--;
 			}
 		}
 
@@ -1425,9 +1513,10 @@ expand_bitmap(
 
 		free(group->newsrc.xbitmap);
 		group->newsrc.xbitmap = newbitmap;
-#ifdef DEBUG_NEWSRC
-		debug_print_comment("expand_bitmap: group->newsrc.bitlen != (group->max-group->min)+1 and need full copy");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+		if (debug & DEBUG_NEWSRC)
+			debug_print_comment("expand_bitmap: group->newsrc.bitlen != (group->max-group->min)+1 and need full copy");
+#endif /* DEBUG */
 	} else if (max != group->newsrc.xmax || first != group->newsrc.xmin) {
 		t_bitmap *newbitmap;
 		newbitmap = my_malloc(BITS_TO_BYTES(bitlen));
@@ -1443,15 +1532,12 @@ expand_bitmap(
 		if (first < group->newsrc.xmin) {
 			NSETRNG0(newbitmap, 0L, group->newsrc.xmin - first - 1L);
 		}
-		{
-			long i;
 
-			for (i = group->newsrc.xmin; i < min; i++) {
-				if (NTEST(newbitmap, i - first) != ART_READ) {
-					NSET0(newbitmap, i - first);
-					if (group->newsrc.num_unread)
-						group->newsrc.num_unread--;
-				}
+		for (tmp = group->newsrc.xmin; tmp < min; tmp++) {
+			if (NTEST(newbitmap, tmp - first) != ART_READ) {
+				NSET0(newbitmap, tmp - first);
+				if (group->newsrc.num_unread)
+					group->newsrc.num_unread--;
 			}
 		}
 
@@ -1464,9 +1550,10 @@ expand_bitmap(
 
 		free(group->newsrc.xbitmap);
 		group->newsrc.xbitmap = newbitmap;
-#ifdef DEBUG_NEWSRC
-		debug_print_comment("expand_bitmap: group->newsrc.bitlen != (group->max-group->min)+1");
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+		if (debug & DEBUG_NEWSRC)
+			debug_print_comment("expand_bitmap: group->newsrc.bitlen != (group->max-group->min)+1");
+#endif /* DEBUG */
 	}
 	group->newsrc.xmin = first;
 	if (group->newsrc.xmax < max)
@@ -1491,15 +1578,21 @@ art_mark(
 			if (group != NULL) {
 				if (art->artnum >= group->newsrc.xmin && art->artnum <= group->newsrc.xmax)
 					NSET0(group->newsrc.xbitmap, art->artnum - group->newsrc.xmin);
-#ifdef DEBUG_NEWSRC
-				debug_print_bitmap(group, art);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+				if (debug & DEBUG_NEWSRC)
+					debug_print_bitmap(group, art);
+#endif /* DEBUG */
 			}
 			if ((art->status == ART_UNREAD) || (art->status == ART_WILL_RETURN)) {
 				art_mark_xref_read(art);
 
-				if (group != NULL && group->newsrc.num_unread)
-					group->newsrc.num_unread--;
+				if (group != NULL) {
+					if (group->newsrc.num_unread)
+						group->newsrc.num_unread--;
+
+					if (group->attribute->show_only_unread_arts)
+						art->keep_in_base = TRUE;
+				}
 
 				art->status = ART_READ;
 			}
@@ -1508,9 +1601,13 @@ art_mark(
 		case ART_UNREAD:
 		case ART_WILL_RETURN:
 			if (art->status == ART_READ) {
-				if (group != NULL)
+				if (group != NULL) {
 					group->newsrc.num_unread++;
 
+					if (group->attribute->show_only_unread_arts)
+						art->keep_in_base = FALSE;
+				}
+
 				art->status = flag;
 			}
 			if (group != NULL) {
@@ -1518,9 +1615,10 @@ art_mark(
 					expand_bitmap(group, art->artnum);
 				else {
 					NSET1(group->newsrc.xbitmap, art->artnum - group->newsrc.xmin);
-#ifdef DEBUG_NEWSRC
-					debug_print_bitmap(group, art);
-#endif /* DEBUG_NEWSRC */
+#ifdef DEBUG
+					if (debug & DEBUG_NEWSRC)
+						debug_print_bitmap(group, art);
+#endif /* DEBUG */
 				}
 			}
 			break;
@@ -1550,144 +1648,3 @@ set_default_bitmap(
 		group->newsrc.xmax = group->newsrc.xmin - 1;
 	}
 }
-
-
-/* TEST harness */
-#ifdef DEBUG_NEWSRC
-#	if 0
-static void set_bitmap_range_read(struct t_newsrc *my_newsrc, long beg, long end);
-static void set_bitmap_range_unread(struct t_newsrc *my_newsrc, long beg, long end);
-
-void
-newsrc_test_harness(
-	void)
-{
-	FILE *fp = NULL;
-	char seq[20000];
-	int i;
-	int retry = 10; /* max. retrys */
-	long rng_min, rng_max;
-	struct t_group group;
-
-	/*
-	 * those env.-vars are not documented:
-	 * $TIN_RNG_MIN, $TIN_RNG_MAX, $TIN_MIN, $TIN_MAX, $TIN_COUNT
-	 * $TIN_SEQ
-	 */
-	rng_min = atoi(get_val("TIN_RNG_MIN", "1"));
-	rng_max = atoi(get_val("TIN_RNG_MAX", "1"));
-
-	group.name = my_strdup("test.newsrc");
-	group.xmin = atoi(get_val("TIN_MIN", "1"));
-	group.xmax = atoi(get_val("TIN_MAX", "0"));
-	group.count = atoi(get_val("TIN_COUNT", "-1"));
-	group.type = GROUP_TYPE_NEWS;
-	group.subscribed = TRUE;
-	group.newsrc.xbitmap = (t_bitmap *) 0;
-	set_default_bitmap(&group);
-
-	strcpy(seq, get_val("TIN_SEQ", ""));
-
-	fprintf(stderr, "\nENV Min=[%ld] Max=[%ld] Rng=[%ld-%ld] Count=[%ld] Seq=[%s]\n",
-		group.xmin, group.xmax, rng_min, rng_max, group.count, seq);
-
-	for (i = 0; i < 3; i++) {
-		if (group.newsrc.xbitmap != NULL) {
-			free(group.newsrc.xbitmap);
-			group.newsrc.xbitmap = (t_bitmap *) 0;
-			group.newsrc.xbitlen = 0;
-			group.newsrc.num_unread = 0;
-			group.newsrc.xmin = 1;
-			group.newsrc.xmax = 0;
-		}
-		while (retry) {
-		/* FIXME - this is secure now, but doesn't write any debug output */
-		/* (it didn't before too) */
-			if ((fp = tmpfile()) != NULL) {
-				fprintf(stderr, "\n%d. PARSE Seq=[%s]\n", i + 1, seq);
-				parse_bitmap_seq(&group, seq);
-				debug_print_newsrc(&group.newsrc, stderr);
-				print_bitmap_seq(fp, &group);
-				fprintf(stderr, "   PRINT Seq=");
-				print_bitmap_seq(stderr, &group);
-				rewind(fp);
-				break;
-			} else
-				retry--;
-		}
-
-		debug_print_newsrc(&group.newsrc, stderr);
-
-		if (!retry || !fp)
-			error_message(_(txt_cannot_create_uniq_name));
-		else {
-			fgets(seq, (int) sizeof(seq), fp);
-			seq[strlen(seq) - 1] = '\0';
-			fclose(fp);
-		}
-	}
-	set_bitmap_range_read(&group.newsrc, rng_min, rng_max);
-	debug_print_newsrc(&group.newsrc, stderr);
-
-	set_bitmap_range_unread(&group.newsrc, rng_min, rng_max);
-	debug_print_newsrc(&group.newsrc, stderr);
-
-	if (group.newsrc.xbitmap != NULL)
-		NSETBLK0(group.newsrc.xbitmap, group.newsrc.xbitlen);
-	debug_print_newsrc(&group.newsrc, stderr);
-
-	if (group.newsrc.xbitmap != NULL)
-		NSETBLK1(group.newsrc.xbitmap, group.newsrc.xbitlen);
-	debug_print_newsrc(&group.newsrc, stderr);
-	my_printf("\n");
-}
-
-
-static void
-set_bitmap_range_read(
-	struct t_newsrc *my_newsrc,
-	long beg,
-	long end)
-{
-	long length, offset;
-
-	if (beg >= my_newsrc->xmin && end <= my_newsrc->xmax) {
-		offset = beg - my_newsrc->xmin;
-		length = end - my_newsrc->xmin;
-
-fprintf(stderr, "\nRNG Min-Max=[%ld-%ld] Beg-End=[%ld-%ld] OFF=[%ld] LEN=[%ld]\n",
-my_newsrc->xmin, my_newsrc->xmax, beg, end, offset, length);
-
-		if (beg == end) {
-			NSET0(my_newsrc->xbitmap, offset);
-		} else {
-			NSETRNG0(my_newsrc->xbitmap, offset, length);
-		}
-	}
-}
-
-
-static void
-set_bitmap_range_unread(
-	struct t_newsrc *my_newsrc,
-	long beg,
-	long end)
-{
-	long length, offset;
-
-	if (beg >= my_newsrc->xmin && end <= my_newsrc->xmax) {
-		offset = beg - my_newsrc->xmin;
-		length = end - my_newsrc->xmin;
-
-fprintf(stderr, "\nRNG Min-Max=[%ld-%ld] Beg-End=[%ld-%ld] OFF=[%ld] LEN=[%ld]\n",
-my_newsrc->xmin, my_newsrc->xmax, beg, end, offset, length);
-
-		if (beg == end) {
-			NSET1(my_newsrc->xbitmap, offset);
-		} else {
-			NSETRNG1(my_newsrc->xbitmap, offset, length);
-		}
-	}
-}
-#	endif /* 0 */
-#endif /* DEBUG_NEWSRC */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/nntplib.c tin-2.0.0/src/nntplib.c
--- tin-1.8.3/src/nntplib.c	2007-01-09 13:48:33.000000000 +0100
+++ tin-2.0.0/src/nntplib.c	2011-05-27 17:32:17.478657812 +0200
@@ -3,7 +3,7 @@
  *  Module    : nntplib.c
  *  Author    : S. Barber & I. Lea
  *  Created   : 1991-01-12
- *  Updated   : 2007-01-09
+ *  Updated   : 2011-05-27
  *  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
@@ -25,10 +25,6 @@
 #	include "tnntp.h"
 #endif /* !TNNTP_H */
 
-#ifdef VMS /* M.St. 15.01.98 */
-#	undef VMS
-#endif /* VMS */
-
 char *nntp_server = NULL;
 #ifdef NO_POSTING
 	t_bool can_post = FALSE;
@@ -36,20 +32,21 @@ char *nntp_server = NULL;
 	t_bool can_post = TRUE;
 #endif /* NO_POSTING */
 
-/* Flag to show whether tin did reconnect in last get_server() */
-t_bool reconnected_in_last_get_server = FALSE;
+#ifdef NNTP_ABLE
+	/* Flag to show whether tin did reconnect in last get_server() */
+	t_bool reconnected_in_last_get_server = FALSE;
+	/* Flag used in LIST ACVTIVE loop */
+	t_bool did_reconnect = FALSE;
+#endif /* NNTP_ABLE */
 
 static TCP *nntp_rd_fp = NULL;
-static TCP *nntp_wr_fp = NULL;
 
 #ifdef NNTP_ABLE
+	static TCP *nntp_wr_fp = NULL;
 	/* Copy of last NNTP command sent, so we can retry it if needed */
 	static char last_put[NNTP_STRLEN];
 	static constext *xover_cmds = "XOVER";
-#	if 0 /* currently not used */
 	static constext *xhdr_cmds = "XHDR";
-#	endif /* 0 */
-	enum extension_type { NO, LIST_EXTENSIONS, CAPABILITIES };
 	/* Set so we don't reconnect just to QUIT */
 	static t_bool quitting = FALSE;
 #endif /* NNTP_ABLE */
@@ -59,10 +56,9 @@ static TCP *nntp_wr_fp = NULL;
  */
 #ifdef NNTP_ABLE
 	static int mode_reader(t_bool *sec);
-	static int new_nntp_command(const char *command, int success, char *message, size_t mlen);
 	static int reconnect(int retry);
-	static int server_init(char *machine, const char *cservice, int port, char *text, size_t mlen);
-	static int check_extensions(t_bool *sec);
+	static int server_init(char *machine, const char *cservice, unsigned short port, char *text, size_t mlen);
+	static int check_extensions(void);
 	static void close_server(void);
 	static void list_motd(void);
 #	ifdef INET6
@@ -88,13 +84,14 @@ get_nntp_fp(
 }
 
 
+#if 0 /* unused */
 FILE *
 get_nntp_wr_fp(
 	FILE *fp)
 {
 	return (fp == FAKE_NNTP_FP ? nntp_wr_fp : fp);
 }
-
+#endif /* 0 */
 
 /*
  * getserverbyfile(file)
@@ -125,17 +122,20 @@ getserverbyfile(
 	static char *old_env = NULL;
 #	endif /* !HAVE_SETENV && HAVE_PUTENV */
 #endif /* NNTP_ABLE */
-	if (!read_news_via_nntp) {
-		STRCPY(buf, "local");	/* what if a server is named "local"? */
-		return buf;
-	}
+
 	if (read_saved_news) {
 		STRCPY(buf, "reading saved news");
 		return buf;
 	}
+
+	if (!read_news_via_nntp) {
+		STRCPY(buf, "local");	/* what if a server is named "local"? */
+		return buf;
+	}
+
 #ifdef NNTP_ABLE
-	if (cmdline_nntpserver[0] != '\0') {
-		get_nntpserver(buf, cmdline_nntpserver);
+	if (cmdline.args & CMDLINE_NNTPSERVER) {
+		get_nntpserver(buf, sizeof(buf), cmdline.nntpserver);
 #	ifdef HAVE_SETENV
 		setenv("NNTPSERVER", buf, 1);
 #	else
@@ -151,7 +151,7 @@ getserverbyfile(
 	}
 
 	if ((cp = getenv("NNTPSERVER")) != NULL) {
-		get_nntpserver(buf, cp);
+		get_nntpserver(buf, sizeof(buf), cp);
 		return buf;
 	}
 
@@ -174,18 +174,11 @@ getserverbyfile(
 		(void) fclose(fp);
 
 		if (cp != NULL) {
-			get_nntpserver(buf, cp);
+			get_nntpserver(buf, sizeof(buf), cp);
 			return buf;
 		}
 	}
 
-#	ifdef USE_INN_NNTPLIB
-	if ((cp = GetConfigValue(_CONF_SERVER)) != NULL) {
-		(void) STRCPY(buf, cp);
-		return buf;
-	}
-#	endif /* USE_INN_NNTPLIB */
-
 #	ifdef NNTP_DEFAULT_SERVER
 	if (*(NNTP_DEFAULT_SERVER))
 		return strcpy(buf, NNTP_DEFAULT_SERVER);
@@ -216,7 +209,7 @@ static int
 server_init(
 	char *machine,
 	const char *cservice,	/* usually a literal */
-	int port,
+	unsigned short port,
 	char *text,
 	size_t mlen)
 {
@@ -224,9 +217,7 @@ server_init(
 	char temp[256];
 	char *service = strncpy(temp, cservice, sizeof(temp) - 1); /* ...calls non-const funcs */
 #	endif /* !INET6 */
-#	ifndef VMS
 	int sockt_rd, sockt_wr;
-#	endif /* !VMS */
 
 #	ifdef DECNET
 	char *cp;
@@ -240,16 +231,15 @@ server_init(
 		sockt_rd = get_tcp_socket(machine, service, port);
 #	else
 #		ifdef INET6
-	sockt_rd = get_tcp6_socket(machine, (unsigned short) port);
+	sockt_rd = get_tcp6_socket(machine, port);
 #		else
-	sockt_rd = get_tcp_socket(machine, service, (unsigned short) port);
+	sockt_rd = get_tcp_socket(machine, service, port);
 #		endif /* INET6 */
 #	endif /* DECNET */
 
 	if (sockt_rd < 0)
 		return sockt_rd;
 
-#	ifndef VMS
 	/*
 	 * Now we'll make file pointers (i.e., buffered I/O) out of
 	 * the socket file descriptor. Note that we can't just
@@ -267,23 +257,19 @@ server_init(
 		return -errno;
 	}
 
-#		ifdef TLI /* Transport Level Interface */
+#	ifdef TLI /* Transport Level Interface */
 	if (t_sync(sockt_rd) < 0) {	/* Sync up new fd with TLI */
 		t_error("server_init: t_sync()");
 		nntp_rd_fp = NULL;
 		return -EPROTO;
 	}
-#		else
+#	else
 	if ((nntp_wr_fp = (TCP *) s_fdopen(sockt_wr, "w")) == NULL) {
 		perror("server_init: fdopen() #2");
 		nntp_rd_fp = NULL;
 		return -errno;
 	}
-#		endif /* TLI */
-
-#	else
-	sockt_wr = sockt_rd;
-#	endif /* !VMS */
+#	endif /* TLI */
 
 	last_put[0] = '\0';		/* no retries in get_respcode */
 	/*
@@ -349,15 +335,15 @@ get_tcp_socket(
 	sock_in.sin_family = AF_INET;
 	sock_in.sin_port = htons(port);
 
-	if (!isdigit((unsigned char)*machine) ||
+	if (!isdigit((unsigned char) *machine)
 #		ifdef HAVE_INET_ATON
-	    !inet_aton(machine, &sock_in)
+	    || !inet_aton(machine, &sock_in)
 #		else
 #			ifdef HAVE_INET_ADDR
-	    (long) (sock_in.sin_addr.s_addr = inet_addr(machine)) == INADDR_NONE)
+	    || (long) (sock_in.sin_addr.s_addr = inet_addr(machine)) == INADDR_NONE
 #			endif /* HAVE_INET_ADDR */
 #		endif /* HAVE_INET_ATON */
-	{
+	) {
 		if ((hp = gethostbyname(machine)) == NULL) {
 			my_fprintf(stderr, _(txt_gethostbyname), "gethostbyname() ", machine);
 			t_close(s);
@@ -423,8 +409,8 @@ get_tcp_socket(
 #			ifdef h_addr
 	int x = 0;
 	char **cp;
-	static char *alist[2] = {0, 0};
 #			endif /* h_addr */
+	static char *alist[2] = {0, 0};
 	static struct hostent def;
 	static struct in_addr defaddr;
 	static char namebuf[256];
@@ -455,9 +441,7 @@ get_tcp_socket(
 		/* Raw ip address, fake */
 		STRCPY(namebuf, machine);
 		def.h_name = (char *) namebuf;
-#			ifdef h_addr
 		def.h_addr_list = alist;
-#			endif /* h_addr */
 		def.h_addr_list[0] = (char *) &defaddr;
 		def.h_length = sizeof(struct in_addr);
 		def.h_addrtype = AF_INET;
@@ -538,7 +522,7 @@ get_tcp_socket(
 	}
 
 	if (x < 0) {
-		my_fprintf(stderr, _(txt_giving_up));
+		my_fprintf(stderr, "%s", _(txt_giving_up));
 		return -save_errno;					/* Return the last errno we got */
 	}
 #		else
@@ -631,12 +615,10 @@ get_tcp6_socket(
 #	endif /* AF_UNSPEC */
 	memset(&hints, 0, sizeof(hints));
 /*	hints.ai_flags = AI_CANONNAME; */
-	hints.ai_family = ADDRFAM;
+	hints.ai_family = (force_ipv4 ? AF_INET : (force_ipv6 ? AF_INET6 : ADDRFAM));
 	hints.ai_socktype = SOCK_STREAM;
-	res = (struct addrinfo *) 0;
 	res0 = (struct addrinfo *) 0;
-	err = getaddrinfo(mymachine, myport, &hints, &res0);
-	if (err != 0) {
+	if ((err = getaddrinfo(mymachine, myport, &hints, &res0))) {
 		my_fprintf(stderr, "\ngetaddrinfo: %s\n", gai_strerror(err));
 		return -1;
 	}
@@ -645,7 +627,7 @@ get_tcp6_socket(
 		if ((s = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) < 0)
 			continue;
 		if (connect(s, res->ai_addr, res->ai_addrlen) != 0)
-			close(s);
+			s_close(s);
 		else {
 			err = 0;
 			break;
@@ -655,9 +637,9 @@ get_tcp6_socket(
 		freeaddrinfo(res0);
 	if (err < 0) {
 		/*
-		 * TODO: issue a more usefull error-message
+		 * TODO: issue a more useful error-message
 		 */
-		my_fprintf(stderr, _(txt_error_socket_or_connect_problem));
+		my_fprintf(stderr, "%s", _(txt_error_socket_or_connect_problem));
 		return -1;
 	}
 	return s;
@@ -729,7 +711,7 @@ get_dnet_socket(
 
 	if (connect(s, (struct sockaddr *) &sdn, sizeof(sdn)) < 0) {
 		nerror("connect");
-		close(s);
+		s_close(s);
 		return -1;
 	}
 
@@ -749,16 +731,18 @@ get_dnet_socket(
 /*
  * u_put_server -- send data to the server. Do not flush output.
  */
-#ifndef VMS
-#	ifdef NNTP_ABLE
+#ifdef NNTP_ABLE
 void
 u_put_server(
 	const char *string)
 {
 	s_puts(string, nntp_wr_fp);
-#		ifdef DEBUG
-	debug_nntp(">>>", string);
-#		endif /* DEBUG */
+#	ifdef DEBUG
+	if (debug & DEBUG_NNTP) {
+		if (strcmp(string, "\r\n"))
+			debug_print_file("NNTP", ">>> %s", string);
+	}
+#	endif /* DEBUG */
 }
 
 
@@ -784,15 +768,25 @@ put_server(
 		DEBUG_IO((stderr, "put_server(%s)\n", string));
 		s_puts(string, nntp_wr_fp);
 		s_puts("\r\n", nntp_wr_fp);
-#		ifdef DEBUG
-		debug_nntp(">>>", string);
-#		endif /* DEBUG */
+#	ifdef DEBUG
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", ">>> %s", string);
+#	endif /* DEBUG */
 		/*
 		 * remember the last command we wrote to be able to resend it after a
 		 * reconnect. reconnection is handled by get_server()
+		 *
+		 * don't cache "LIST ACTIVE something" as we would need to
+		 * resend all of them but we remember just the last one. we cache
+		 * "LIST" instead, this will slow down things, but that's ok on
+		 * reconnect.
 		 */
-		if (last_put != string)
-			STRCPY(last_put, string);
+		if (!strncmp(string, "LIST ACTIVE ", 12))
+			STRCPY(last_put, "LIST");
+		else {
+			if (last_put != string)
+				STRCPY(last_put, string);
+		}
 	}
 	(void) s_flush(nntp_wr_fp);
 }
@@ -807,6 +801,7 @@ reconnect(
 	int retry)
 {
 	char buf[NNTP_STRLEN];
+	int save_signal_context = signal_context;
 
 	/*
 	 * Tear down current connection
@@ -824,11 +819,29 @@ reconnect(
 	DEBUG_IO((stderr, _("\nServer timed out, trying reconnect # %d\n"), retry));
 
 	/*
+	 * set signal_context temporary to cReconnect to avoid trouble when receiving
+	 * SIGWINCH while beeing in prompt_yn()
+	 */
+	signal_context = cReconnect;
+
+	/*
 	 * Exit tin if the user says no to reconnect. The exit code stops tin from trying
 	 * to disconnect again - the connection is already dead
 	 */
-	if (!tinrc.auto_reconnect && prompt_yn(_(txt_reconnect_to_news_server), TRUE) != 1)
+	if (!tinrc.auto_reconnect && prompt_yn(_(txt_reconnect_to_news_server), TRUE) != 1) {
+		if (!strncmp("POST", last_put, 4)) {
+			unlink(backup_article_name(article_name));
+			rename_file(article_name, dead_article);
+			if (tinrc.keep_dead_articles)
+				append_file(dead_articles, dead_article);
+		}
 		tin_done(NNTP_ERROR_EXIT);		/* user said no to reconnect */
+	}
+
+	/*
+	 * reset signal_context
+	 */
+	signal_context = save_signal_context;
 
 	clear_message();
 
@@ -843,18 +856,27 @@ reconnect(
 			snprintf(last_put, sizeof(last_put), "GROUP %s", curr_group->name);
 			put_server(last_put);
 			s_gets(last_put, NNTP_STRLEN, nntp_rd_fp);
-#		ifdef DEBUG
-			debug_nntp("<<<", last_put);
-#		endif /* DEBUG */
+#	ifdef DEBUG
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "<<< %s", last_put);
+#	endif /* DEBUG */
 			DEBUG_IO((stderr, _("Read (%s)\n"), last_put));
 		}
 		DEBUG_IO((stderr, _("Resend last command (%s)\n"), buf));
 		put_server(buf);
+		did_reconnect = TRUE;
 		return 0;
 	}
 
-	if (--retry == 0)					/* No more tries? */
+	if (--retry == 0) {					/* No more tries? */
+		if (!strncmp("POST", buf, 4)) {
+			unlink(backup_article_name(article_name));
+			rename_file(article_name, dead_article);
+			if (tinrc.keep_dead_articles)
+				append_file(dead_articles, dead_article);
+		}
 		tin_done(NNTP_ERROR_EXIT);
+	}
 
 	return retry;
 }
@@ -885,16 +907,33 @@ get_server(
 
 	/*
 	 * NULL socket reads indicates socket has closed. Try a few times more
+	 *
+	 * Leave the s_gets() after a timeout for these cases:
+	 *   -some servers do not close the connection but simply do not send any
+	 *    response data
+	 *   -the network connection went down
 	 */
+#	if defined(HAVE_ALARM) && defined(SIGALRM)
+	alarm(NNTP_READ_TIMEOUT);
+#	endif /* HAVE_ALARM && SIGALRM */
 	while (nntp_rd_fp == NULL || s_gets(string, size, nntp_rd_fp) == NULL) {
-
+		if (errno == EINTR) {
+			errno = 0;
+#	if defined(HAVE_ALARM) && defined(SIGALRM)
+			alarm(NNTP_READ_TIMEOUT);		/* Restart the timer */
+#	endif /* HAVE_ALARM && SIGALRM */
+			continue;
+		}
+#	if defined(HAVE_ALARM) && defined(SIGALRM)
+		alarm(0);
+#	endif /* HAVE_ALARM && SIGALRM */
 		if (quitting)						/* Don't bother to reconnect */
 			tin_done(NNTP_ERROR_EXIT);		/* And don't try to disconnect again! */
 
-#		ifdef DEBUG
+#	ifdef DEBUG
 		if (errno != 0 && errno != EINTR)	/* Will only confuse end users */
 			perror_message("get_server()");
-#		endif /* DEBUG */
+#	endif /* DEBUG */
 
 		/*
 		 * Reconnect only if command was not "QUIT" anyway (in which case a
@@ -903,6 +942,15 @@ get_server(
 		 * when user is quitting tin if tinrc.auto_reconnect is false.
 		 */
 		if (strncmp(last_put, "QUIT", 4)) {
+			/*
+			 * Typhoon v2.1.1.363 colses the connection right after an unknown
+			 * command, (i.e. CAPABILITIES) so we avoid the reissue it on a
+			 * reconnect if it was the last command.
+			 */
+			if (!strncmp(last_put, "CAPABILITIES", 12)) {
+				strcpy(last_put, "MODE READER");
+				nntp_caps.type = BROKEN;
+			}
 			retry = reconnect(retry);		/* Will abort when out of tries */
 			reconnected_in_last_get_server = TRUE;
 		} else {
@@ -915,6 +963,9 @@ get_server(
 			break;
 		}
 	}
+#	if defined(HAVE_ALARM) && defined(SIGALRM)
+	alarm(0);
+#	endif /* HAVE_ALARM && SIGALRM */
 	return string;
 }
 
@@ -947,221 +998,255 @@ close_server(
 	s_end();
 	nntp_wr_fp = nntp_rd_fp = NULL;
 }
-#	endif /* NNTP_ABLE */
-#endif /* !VMS */
+#endif /* NNTP_ABLE */
 
 
 #ifdef NNTP_ABLE
 /*
- * Try and use CAPABILITIES/LIST EXTENSIONS here. Get this list before
- * issuing other NNTP commands because the correct methods may be mentioned
- * in the list of extensions.
+ * Try and use CAPABILITIES here. Get this list before issuing other NNTP
+ * commands because the correct methods may be mentioned in the list of
+ * extensions.
  *
  * Sets up: t_capabilities nntp_caps
  */
 static int
-check_extensions(
-	t_bool *sec)
+check_extensions(void)
 {
+	char *d;
 	char *ptr;
+	char buf[NNTP_STRLEN];
+	int i;
 	int ret = 0;
-#	if 0 /* "CAPABILITIES" will replace "LIST EXTENSIONS" */
-	FILE *fp;
-	char *d;
 
-	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:
+			/* clear capabilities */
+			nntp_caps.type = CAPABILITIES;
+			nntp_caps.version = 0;
+			nntp_caps.mode_reader = FALSE;
+			nntp_caps.reader = FALSE;
+			nntp_caps.post = FALSE;
+			nntp_caps.list_active = FALSE;
+			nntp_caps.list_active_times = FALSE;
+			nntp_caps.list_distrib_pats = FALSE;
+			nntp_caps.list_headers = FALSE;
+			nntp_caps.list_newsgroups = FALSE;
+			nntp_caps.list_overview_fmt = FALSE;
+			nntp_caps.list_motd = FALSE;
+			nntp_caps.list_subscriptions = FALSE;
+			nntp_caps.list_distributions = FALSE;
+			nntp_caps.list_moderators = FALSE;
+			nntp_caps.list_counts = FALSE;
+			nntp_caps.xpat = FALSE;
+			nntp_caps.hdr = FALSE;
+			nntp_caps.hdr_cmd = NULL;
+			nntp_caps.over = FALSE;
+			nntp_caps.over_msgid = FALSE;
+			nntp_caps.over_cmd = NULL;
+			nntp_caps.newnews = FALSE;
+			FreeAndNull(nntp_caps.implementation);
+			nntp_caps.starttls = FALSE;
+			nntp_caps.authinfo_user = FALSE;
+			nntp_caps.authinfo_sasl = FALSE;
+			nntp_caps.authinfo_state = FALSE;
+			nntp_caps.sasl = SASL_NONE;
+			nntp_caps.compress = FALSE;
+			nntp_caps.compress_algorithm = COMPRESS_NONE;
+#if 0
+			nntp_caps.streaming = FALSE;
+			nntp_caps.ihave = FALSE;
+#endif /* 0 */
+#ifndef BROKEN_LISTGROUP
+			nntp_caps.broken_listgroup = FALSE;
+#else
+			nntp_caps.broken_listgroup = TRUE;
+#endif /* !BROKEN_LISTGROUP */
+
+			while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
 #		ifdef DEBUG
-			debug_nntp("<<<", ptr);
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "<<< %s", 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 (!strncasecmp(ptr, "VERSION", 7)) {
+						d = ptr + 7;
 						d = strpbrk(d, " \t");
+						while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) {
+							d++;
+							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
+					 */
+					if (!strncasecmp(ptr, "LIST", 4)) {
+						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 (!strncasecmp(d, "ACTIVE.TIMES", 12))
+								nntp_caps.list_active_times = TRUE;
+							else if (!strncasecmp(d, "ACTIVE", 6))
+								nntp_caps.list_active = TRUE;
+							else if (!strncasecmp(d, "DISTRIB.PATS", 12))
+								nntp_caps.list_distrib_pats = TRUE;
+							else if (!strncasecmp(d, "DISTRIBUTIONS", 13)) /* RFC 6048 */
+								nntp_caps.list_distributions = TRUE;
+							else if (!strncasecmp(d, "HEADERS", 7))
+								nntp_caps.list_headers = TRUE; /* HDR requires LIST HEADERS, but not vice versa */
+							else if (!strncasecmp(d, "NEWSGROUPS", 10))
+								nntp_caps.list_newsgroups = TRUE;
+							else if (!strncasecmp(d, "OVERVIEW.FMT", 12)) /* OVER requires OVERVIEW.FMT, but not vice versa */
+								nntp_caps.list_overview_fmt = TRUE;
+							else if (!strncasecmp(d, "MOTD", 4)) /* RFC 6048 */
+								nntp_caps.list_motd = TRUE;
+							else if (!strncasecmp(d, "SUBSCRIPTIONS", 13)) /* RFC 6048 */
+								nntp_caps.list_subscriptions = TRUE;
+							else if (!strncasecmp(d, "MODERATORS", 10)) /* RFC 6048 */
+								nntp_caps.list_moderators = TRUE;
+							else if (!strncasecmp(d, "COUNTS", 6)) /* RFC 6048 */
+								nntp_caps.list_counts = TRUE;
+							d = strpbrk(d, " \t");
+						}
+					} else if (!strncasecmp(ptr, "IMPLEMENTATION", 14)) {
+						FreeIfNeeded(nntp_caps.implementation);
+						nntp_caps.implementation = my_strdup(ptr + 14);
+						str_trim(nntp_caps.implementation);
+					} else if (!strcasecmp(ptr, "MODE-READER")) {
+						if (!nntp_caps.reader)
+							nntp_caps.mode_reader = TRUE;
+					} else if (!strcasecmp(ptr, "READER")) { /* if we saw READER, "LIST ACTIVE" and "LIST NEWSGROUPS" must be implemented */
+						nntp_caps.reader = TRUE;
+						nntp_caps.mode_reader = FALSE;
+						nntp_caps.list_newsgroups = TRUE;
+						nntp_caps.list_active = TRUE;
+					} else if (!strcasecmp(ptr, "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 (!strncasecmp(ptr, &xover_cmds[1], strlen(&xover_cmds[1]))) {
+						nntp_caps.list_overview_fmt = nntp_caps.over = 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;
+							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;
+					/*
+					 * NOTE: if we saw HDR, LIST HEADERS _must_ be implemented
+					 */
+					else if (!strncasecmp(ptr, &xhdr_cmds[1], strlen(&xhdr_cmds[1]))) {
+						nntp_caps.hdr_cmd = &xhdr_cmds[1];
+						nntp_caps.list_headers = nntp_caps.hdr = TRUE;
+					} else if (!strncasecmp(ptr, "AUTHINFO", 8)) {
+						d = ptr + 8;
+						d = strpbrk(d, " \t");
+						if (d == NULL) /* AUTHINFO without args */
+							nntp_caps.authinfo_state = TRUE;
+						while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) {
+							d++;
+							if (!strncasecmp(d, "USER", 4))
+								nntp_caps.authinfo_user = TRUE;
+							if (!strncasecmp(d, "SASL", 4))
+								nntp_caps.authinfo_sasl = TRUE;
+							d = strpbrk(d, " \t");
+						}
+					} else if (!strncasecmp(ptr, "SASL", 4)) {
+						d = ptr + 4;
+						d = strpbrk(d, " \t");
+						while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) {
+							d++;
+							if (!strncasecmp(d, "CRAM-MD5", 8)) { /* RFC 2195 */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_CRAM_MD5;
+							}
+							if (!strncasecmp(d, "DIGEST-MD5", 10)) { /* RFC 2831 */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_DIGEST_MD5;
+							}
+							if (!strncasecmp(d, "PLAIN", 5)) { /* RFC 4616 */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_PLAIN;
+							}
+							if (!strncasecmp(d, "GSSAPI", 6)) { /* RFC 4752 */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_GSSAPI;
+							}
+							if (!strncasecmp(d, "EXTERNAL", 8)) { /* RFC 4422 */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_EXTERNAL;
+							}
+							/* inn also can do these */
+							if (!strncasecmp(d, "OTP", 3)) { /* RFC 2444 */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_OTP;
+							}
+							if (!strncasecmp(d, "NTLM", 4)) { /* Microsoft */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_NTLM;
+							}
+							if (!strncasecmp(d, "LOGIN", 5)) { /* Microsoft */
+								nntp_caps.authinfo_sasl = TRUE;
+								nntp_caps.sasl |= SASL_LOGIN;
+							}
+						}
+					} else if (!strncasecmp(ptr, "COMPRESS", 8)) { /* draft-murchison-nntp-compress-01.txt */
+						d = ptr + 8;
 						d = strpbrk(d, " \t");
+						while (d != NULL && (d + 1 < (ptr + strlen(ptr)))) {
+							d++;
+							if (!strncasecmp(d, "DEFLATE", 7)) {
+								nntp_caps.compress = TRUE;
+								nntp_caps.compress_algorithm |= COMPRESS_DEFLATE;
+							}
+						}
 					}
-				}
-#		if 0
-				/*
-				 * 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"))
+#		if 0 /* we don't need these */
+					else if (!strcasecmp(ptr, "IHAVE"))
 						nntp_caps.ihave = TRUE;
+					else if (!strcasecmp(ptr, "STREAMING"))
+						nntp_caps.streaming = TRUE;
 #		endif /* 0 */
-				/*
-				 * TODO: SASL, STREAMING
-				 */
-			} else
-				nntp_caps.type = NO;
-		}
-	}
-#		ifdef DEBUG
-	debug_print_nntp_extensions();
-#		endif /* DEBUG */
-	if (!*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)
-			return ret;
-		else if (nntp_caps.type == CAPABILITIES) /* 2nd pass */
-			ret = check_extensions(&*sec);
-	}
-
-#	else
-
-	/*
-	 * "LIST EXTENSIONS" is somewhat troublesome as there are a lot
-	 * of broken implementations out there and it is a multiline response
-	 */
-	if (nntp_caps.type == NO) {
-		char buf[NNTP_STRLEN];
-		int i;
-
-		buf[0] = '\0';
-		i = new_nntp_command("LIST EXTENSIONS", OK_EXTENSIONS, buf, sizeof(buf));
-		switch (i) {
-			case 215:	/* Netscape-Collabra/3.52 (badly broken); NetWare-News-Server/5.1 */
-#		ifdef DEBUG
-				debug_nntp("LIST EXTENSIONS", "skipping data");
-#		endif /* DEBUG */
-				while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL)
-					;
-				break;
+				} else
+					nntp_caps.type = NONE;
+			}
+			break;
 
-			case OK_EXTENSIONS:	/* as defined draft-ietf-nntpext-base-27.txt */
-			case 205:	/* M$ Exchange 5.5 */
-				nntp_caps.type = LIST_EXTENSIONS;
-				while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
-					if (nntp_caps.type == LIST_EXTENSIONS) {
-#		ifdef DEBUG
-						debug_nntp("<<<", ptr);
-#		endif /* DEBUG */
-						/*
-						 * some servers (e.g. Hamster 1.3) have leading spaces in
-						 * the extension list
-						 */
-						str_trim(ptr);
-						/*
-						 * Check for (X)OVER
-						 * XOVER should not be listed in EXTENSIONS (but sometimes
-						 * is) checking for it if OVER is not found does no harm.
-						 */
-						if (!nntp_caps.over_cmd) {
-							for (i = 1; i >= 0; i--) {
-								if (strcasecmp(ptr, &xover_cmds[i]) == 0) {
-									nntp_caps.over_cmd = &xover_cmds[i];
-									break;
-								}
-							}
-						}
-					}
-				}
-				/*
-				 * 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;
-				 * draft-ietf-nntpext-base-24.txt only described OVER, HDR and
-				 * LISTGROUP).
-				 */
-				nntp_caps.list_motd = TRUE;
-				break;
+		/*
+		 * XanaNewz 2 Server Version 2.0.0.3 doesn't know CAPABILITIES
+		 * but respondes with 400 _without_ closing the connection. If
+		 * you use tin on a XanaNewz 2 Server comment out the following
+		 * case.
+		 */
+#		if 1
+		case ERR_GOODBYE:
+			ret = i;
+			error_message(2, buf);
+			break;
+#		endif /* 1 */
 
-			default:
-				break;
-		}
-#		ifdef DEBUG
-		debug_print_nntp_extensions();
-#		endif /* DEBUG */
-		if (!*sec)
-			ret = mode_reader(&*sec);
+		default:
+			break;
 	}
-#	endif /* 0 */
+
 	return ret;
 }
 
@@ -1178,7 +1263,8 @@ mode_reader(
 	if (!nntp_caps.reader) {
 		char line[NNTP_STRLEN];
 #ifdef DEBUG
-		debug_nntp("mode_reader", "mode reader");
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "mode_reader() MODE READER");
 #endif /* DEBUG */
 		DEBUG_IO((stderr, "nntp_command(MODE READER)\n"));
 		put_server("MODE READER");
@@ -1189,26 +1275,23 @@ mode_reader(
 		 *
 		 *   200 (OK_CANPOST)     Hello, you can post
 		 *   201 (OK_NOPOST)      Hello, you can't post
-		 *  (202 (OK_NOIHAVE)     discussed on the itef mailinglist; withdrawn)
-		 *  (203 (OK_NOPOSTIHAVE) discussed on the itef mailinglist; withdrawn)
 		 *   502 (ERR_ACCESS)     Service unavailable
 		 *
-		 * However, there may be old servers out there that do not implement this
-		 * command and therefore return ERR_COMMAND (500). Unfortunately there
-		 * are some new servers out there (i.e. INN 2.4.0 (20020220 prerelease)
-		 * which do return ERR_COMMAND if they are feed only servers.
+		 * However, there are servers out there (e.g. Delegate 9.8.x) that do
+		 * not implement this command and therefore return ERR_COMMAND (500).
+		 * Unfortunately there are some new servers out there (i.e. INN 2.4.0
+		 * (20020220 prerelease) which do return ERR_COMMAND if they are feed
+		 * only servers.
 		 */
 
 		switch ((ret = get_respcode(line, sizeof(line)))) {
 			case OK_CANPOST:
-	/*		case OK_NOIHAVE: */
 				can_post = TRUE && !force_no_post;
 				*sec = TRUE;
 				ret = 0;
 				break;
 
 			case OK_NOPOST:
-	/*		case OK_NOPOSTIHAVE: */
 				can_post = FALSE;
 				*sec = TRUE;
 				ret = 0;
@@ -1216,10 +1299,15 @@ mode_reader(
 
 			case ERR_GOODBYE:
 			case ERR_ACCESS:
-				error_message(line);
+				error_message(2, line);
 				return ret;
 
 			case ERR_COMMAND:
+#if 1
+				ret = 0;
+				break;
+#endif /* 1 */
+
 			default:
 				break;
 		}
@@ -1243,7 +1331,7 @@ nntp_open(
 #ifdef NNTP_ABLE
 	char *linep;
 	char line[NNTP_STRLEN];
-	int i, ret;
+	int ret;
 	t_bool sec = FALSE;
 	/* It appears that is_reconnect guards code that should be run only once */
 	static t_bool is_reconnect = FALSE;
@@ -1252,16 +1340,17 @@ nntp_open(
 		return 0;
 
 #	ifdef DEBUG
-	debug_nntp("nntp_open", "BEGIN");
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "nntp_open() BEGIN");
 #	endif /* DEBUG */
 
 	if (nntp_server == NULL) {
-		error_message(_(txt_cannot_get_nntp_server_name));
-		error_message(_(txt_server_name_in_file_env_var), NNTP_SERVER_FILE);
+		error_message(2, _(txt_cannot_get_nntp_server_name));
+		error_message(2, _(txt_server_name_in_file_env_var), NNTP_SERVER_FILE);
 		return -EHOSTUNREACH;
 	}
 
-	if (!batch_mode) {
+	if (!batch_mode || verbose) {
 		if (nntp_tcp_port != IPPORT_NNTP)
 			wait_message(0, _(txt_connecting_port), nntp_server, nntp_tcp_port);
 		else
@@ -1269,17 +1358,19 @@ nntp_open(
 	}
 
 #	ifdef DEBUG
-	debug_nntp("nntp_open", nntp_server);
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "nntp_open() %s", nntp_server);
 #	endif /* DEBUG */
 
 	ret = server_init(nntp_server, NNTP_TCP_NAME, nntp_tcp_port, line, sizeof(line));
 	DEBUG_IO((stderr, "server_init returns %d,%s\n", ret, line));
 
-	if (!batch_mode && ret >= 0 && cmd_line)
+	if ((!batch_mode || verbose) && ret >= 0)
 		my_fputc('\n', stdout);
 
 #	ifdef DEBUG
-	debug_nntp("nntp_open", line);
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "nntp_open() %s", line);
 #	endif /* DEBUG */
 
 	switch (ret) {
@@ -1290,8 +1381,6 @@ nntp_open(
 		 * According to the ietf-nntp mailinglist:
 		 *   200 you may (try to) do anything
 		 *   201 you may not POST
-		 *  (202 you may not IHAVE)
-		 *  (203 you may not do EITHER)
 		 *   All unrecognised 200 series codes should be assumed as success.
 		 *   All unrecognised 300 series codes should be assumed as notice to continue.
 		 *   All unrecognised 400 series codes should be assumed as temporary error.
@@ -1299,12 +1388,10 @@ nntp_open(
 		 */
 
 		case OK_CANPOST:
-/*		case OK_NOIHAVE: */
 			can_post = TRUE && !force_no_post;
 			break;
 
 		case OK_NOPOST:
-/*		case OK_NOPOSTIHAVE: */
 			can_post = FALSE;
 			break;
 
@@ -1314,9 +1401,9 @@ nntp_open(
 				break;
 			}
 			if (ret < 0)
-				error_message(_(txt_failed_to_connect_to_server), nntp_server);
+				error_message(2, _(txt_failed_to_connect_to_server), nntp_server);
 			else
-				error_message(line);
+				error_message(2, line);
 
 			return ret;
 	}
@@ -1331,12 +1418,17 @@ nntp_open(
 
 	/*
 	 * Find out which NNTP extensions are available
-	 * TODO: The authentication method required may be mentioned in the list of
-	 *       extensions. (For details about authentication methods, see
-	 *       draft-ietf-nntpext-authinfo-07.txt).
+	 * - Typhoon v2.1.1.363 closes the connection after an unknown command
+	 *   (i.e. CAPABILITIES) but as we are not allowed to cache CAPABILITIES
+	 *   we reissue the command on reconnect. To prevent a loop we catch this
+	 *   case.
+	 *
+	 * TODO: The authentication method required may be mentioned in the list
+	 *       of extensions. (For details about authentication methods, see
+	 *       RFC 4643).
 	 */
-	if ((ret = check_extensions(&sec)))
-		return ret; /* required "MODE READER" failed, exit */
+	if (nntp_caps.type != BROKEN)
+		check_extensions();
 
 	/*
 	 * If the user wants us to authenticate on connection startup, do it now.
@@ -1345,19 +1437,78 @@ nntp_open(
 	 * allowed to post after authentication issue a "MODE READER" again and
 	 * interpret the response code.
 	 */
-	if (force_auth_on_conn_open) {
+	if (force_auth_on_conn_open || (nntp_caps.type == CAPABILITIES && !nntp_caps.reader && (nntp_caps.authinfo_user || (nntp_caps.authinfo_sasl & SASL_PLAIN))))
+	{
 #	ifdef DEBUG
-		debug_nntp("nntp_open", "authenticate");
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "nntp_open() authenticate()");
 #	endif /* DEBUG */
-		authenticate(nntp_server, userid, TRUE);
-		if ((ret = mode_reader(&sec)))
-			return ret; /* "MODE READER" failed, exit */
+
+		/*
+		 * switch mode before auth so we do not auth as a feeder.
+		 * don't use mode_reader() to prevent authenticaion to
+		 * kick in on a 481 "auth required" response and thus lead
+		 * to a 502 "already authenticated" error later on.
+		 */
+		if (nntp_caps.type == CAPABILITIES && nntp_caps.mode_reader) {
+			char buf[NNTP_STRLEN];
+
+#	ifdef DEBUG
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "nntp_open() MODE READER");
+#	endif /* DEBUG */
+			put_server("MODE READER");
+			switch (get_only_respcode(buf, sizeof(buf))) {
+				/* just honor ciritical errors */
+				case ERR_GOODBYE:
+				case ERR_ACCESS:
+					error_message(2, buf);
+					return -1;
+
+				default:
+					break;
+			}
+			check_extensions();
+		}
+
+		if (!authenticate(nntp_server, userid, FALSE))	/* 3rd parameter is FALSE as we need to get prompted for username password here */
+			return -1;
+
+		if (nntp_caps.type == CAPABILITIES)
+			check_extensions();
+	}
+
+	if ((nntp_caps.type == CAPABILITIES && nntp_caps.mode_reader) || nntp_caps.type != CAPABILITIES) {
+		if ((ret = mode_reader(&sec))) {
+			if (nntp_caps.type == CAPABILITIES)
+				can_post = nntp_caps.post && !force_no_post;
+
+			return ret;
+		}
+		if (nntp_caps.type == CAPABILITIES)
+			check_extensions();
+	}
+
+	if (nntp_caps.type == CAPABILITIES) {
+		if (!nntp_caps.reader) {
+			error_message(2, _("CAPABILITIES did not announce READER")); /* TODO: -> lang.c */
+			return -1; /* give up */
+		}
+		can_post = nntp_caps.post && !force_no_post;
 	}
 
 	if (!is_reconnect) {
+#	if 0
+	/*
+	 * gives wrong results if RFC 3977 server requestes auth after
+	 * CAPABILITIES is parsed (with no posting allowed) and after auth
+	 * posting is allowed. as we will inform the user later on when he
+	 * actually tries to post it should do no harm to skip this message
+	 */
 		/* Inform user if he cannot post */
 		if (!can_post && !batch_mode)
 			wait_message(0, "%s\n", _(txt_cannot_post));
+#	endif /* 0 */
 
 		/* Remove leading white space and save server's second response */
 		linep = line;
@@ -1396,12 +1547,11 @@ nntp_open(
 	}
 
 	/*
-	 * If LIST EXTENSIONS failed, check if NNTP supports XOVER or OVER command
-	 * (successor of XOVER as of latest NNTP Draft (Jan 2002)
+	 * If CAPABILITIES failed, check if NNTP supports XOVER or OVER command
 	 * We have to check that we _don't_ get an ERR_COMMAND
 	 */
-	if (nntp_caps.type == NO) {
-		int j = 0;
+	if (nntp_caps.type != CAPABILITIES) {
+		int i, j = 0;
 
 		for (i = 0; i < 2 && j >= 0; i++) {
 			j = new_nntp_command(&xover_cmds[i], ERR_NCING, line, sizeof(line));
@@ -1409,12 +1559,13 @@ nntp_open(
 				case ERR_COMMAND:
 					break;
 
-				case 224:	/* unexpected multiline ok, e.g.: Synchronet 3.13 NNTP Service 1.92 */
+				case OK_XOVER:	/* unexpected multiline ok, e.g.: Synchronet 3.13 NNTP Service 1.92 or on reconnect if last cmd was GROUP */
 					nntp_caps.over_cmd = &xover_cmds[i];
 #	ifdef DEBUG
-					debug_nntp(&xover_cmds[i], "skipping data");
+					if (debug & DEBUG_NNTP)
+						debug_print_file("NNTP", "nntp_open() %s skipping data", &xover_cmds[i]);
 #	endif /* DEBUG */
-					while ((linep = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL)
+					while (tin_fgets(FAKE_NNTP_FP, FALSE))
 						;
 					j = -1;
 					break;
@@ -1425,24 +1576,47 @@ nntp_open(
 					break;
 			}
 		}
+#	ifdef XHDR_XREF
+		for (i = 0, j = 0; i < 2 && j >= 0; i++) {
+			j = new_nntp_command(&xhdr_cmds[i], ERR_CMDSYN, line, sizeof(line));
+			switch (j) {
+				case ERR_COMMAND:
+					break;
+
+				case 221:	/* unexpected multiline ok, e.g.: SoftVelocity Discussions 2.5q */
+					nntp_caps.hdr_cmd = &xhdr_cmds[i];
+#		ifdef DEBUG
+					if (debug & DEBUG_NNTP)
+						debug_print_file("NNTP", "nntp_open() %s skipping data", &xhdr_cmds[i]);
+#		endif /* DEBUG */
+					while (tin_fgets(FAKE_NNTP_FP, FALSE))
+						;
+					j = -1;
+					break;
+
+				default:	/* usually ERR_CMDSYN (args missing), Typhoon/Twister sends ERR_NCING */
+					nntp_caps.hdr_cmd = &xhdr_cmds[i];
+					j = -1;
+					break;
+			}
+		}
+#	endif /* XHDR_XREF */
 	} else {
 		if (!nntp_caps.over_cmd) {
 			/*
-			 * CAPABILITIES/LIST EXTENSIONS didn't mention OVER or XOVER, try
-			 * XOVER
+			 * CAPABILITIES didn't mention OVER or XOVER, try XOVER
 			 */
-			i = new_nntp_command(xover_cmds, ERR_NCING, line, sizeof(line));
-
-			switch (i) {
+			switch (new_nntp_command(xover_cmds, ERR_NCING, line, sizeof(line))) {
 				case ERR_COMMAND:
 					break;
 
-				case 224:	/* unexpected multiline ok, e.g.: Synchronet 3.13 NNTP Service 1.92 */
+				case OK_XOVER:	/* unexpected multiline ok, e.g.: Synchronet 3.13 NNTP Service 1.92 or on reconnect if last cmd was GROUP */
 					nntp_caps.over_cmd = xover_cmds;
 #	ifdef DEBUG
-					debug_nntp(xover_cmds, "skipping data");
+					if (debug & DEBUG_NNTP)
+						debug_print_file("NNTP", "nntp_open() %s skipping data", xover_cmds);
 #	endif /* DEBUG */
-					while ((linep = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL)
+					while (tin_fgets(FAKE_NNTP_FP, FALSE))
 						;
 					break;
 
@@ -1451,16 +1625,31 @@ nntp_open(
 					break;
 			}
 		}
-#	if 0 /* unused */
+#	ifdef XHDR_XREF
 		if (!nntp_caps.hdr_cmd) {
 			/*
-			 * LIST EXTENSIONS didn't mention HDR or XHDR, try
-			 * XHDR
+			 * CAPABILITIES didn't mention HDR or XHDR, try XHDR
 			 */
-			if (!nntp_command(xhdr_cmds, ERR_COMMAND, NULL, 0))
-				nntp_caps.hdr_cmd = xhdr_cmds;
+			switch (new_nntp_command(xhdr_cmds, ERR_NCING, line, sizeof(line))) {
+				case ERR_COMMAND:
+					break;
+
+				case 221:	/* unexpected multiline ok, e.g.: SoftVelocity Discussions 2.5q */
+					nntp_caps.hdr_cmd = xhdr_cmds;
+#		ifdef DEBUG
+					if (debug & DEBUG_NNTP)
+						debug_print_file("NNTP", "nntp_open() %s skipping data", xhdr_cmds);
+#		endif /* DEBUG */
+					while (tin_fgets(FAKE_NNTP_FP, FALSE))
+						;
+					break;
+
+				default:	/* ERR_NCING or ERR_CMDSYN */
+					nntp_caps.hdr_cmd = xhdr_cmds;
+					break;
+			}
 		}
-#	endif /* 0 */
+#	endif /* XHDR_XREF */
 	}
 
 	if (!nntp_caps.over_cmd) {
@@ -1472,22 +1661,13 @@ nntp_open(
 			else
 				wait_message(2, _(txt_caching_off));
 		}
+	}
 #	if 0
-	} else {
+	else {
 		/*
 		 * TODO: issue warning if old index files found?
 		 *	      in index_newsdir?
 		 */
-#	endif /* 0 */
-	}
-
-#	if 0
-	/*
-	 * TODO: if we're using -n, check for LIST NEWSGROUPS <wildmat>
-	 * see also comments in open_newsgroups_fp()
-	 */
-	if (newsrc_active && !list_active) { /* -n */
-		/* code goes here */
 	}
 #	endif /* 0 */
 
@@ -1518,9 +1698,10 @@ nntp_close(
 	void)
 {
 #ifdef NNTP_ABLE
-	if (read_news_via_nntp) {
+	if (read_news_via_nntp && !read_saved_news) {
 #	ifdef DEBUG
-		debug_nntp("nntp_close", "END");
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "nntp_close() END");
 #	endif /* DEBUG */
 		close_server();
 	}
@@ -1528,6 +1709,7 @@ nntp_close(
 }
 
 
+#ifdef NNTP_ABLE
 /*
  * Get a response code from the server.
  * Returns:
@@ -1543,54 +1725,60 @@ get_only_respcode(
 	char *message,
 	size_t mlen)
 {
-	int respcode = 0;
-#ifdef NNTP_ABLE
-	char *ptr, *end;
+	int respcode;
+	char *end, *ptr;
 
 	ptr = tin_fgets(FAKE_NNTP_FP, FALSE);
 
 	if (tin_errno || ptr == NULL) {
 #	ifdef DEBUG
-		debug_nntp("<<<", "Error: tin_error<>0 or ptr==NULL in get_only_respcode()");
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "<<< Error: tin_error<>0 or ptr==NULL in get_only_respcode()");
 #	endif /* DEBUG */
 		return -1;
 	}
 
 #	ifdef DEBUG
-	debug_nntp("<<<", ptr);
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "<<< %s", ptr);
 #	endif /* DEBUG */
 	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 (last_put[0] != '\0' && ((respcode == ERR_FAULT && !strncmp(last_put, "ARTICLE", 7)) || (respcode == ERR_FAULT && !strcmp(last_put, "POST")) || (respcode == ERR_FAULT && !strcmp(last_put, "LIST")) || respcode == ERR_GOODBYE || respcode == OK_GOODBYE) && strcmp(last_put, "QUIT")) {
 		/*
 		 * Maybe server timed out.
 		 * If so, retrying will force a reconnect.
 		 */
 #	ifdef DEBUG
-		debug_nntp("get_only_respcode", "timeout");
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "get_only_respcode() timeout");
 #	endif /* DEBUG */
 		put_server(last_put);
 		ptr = tin_fgets(FAKE_NNTP_FP, FALSE);
 
 		if (tin_errno) {
 #	ifdef DEBUG
-			debug_nntp("<<<", "Error: tin_errno <> 0");
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "<<< Error: tin_errno <> 0");
 #	endif /* DEBUG */
 			return -1;
 		}
 
 #	ifdef DEBUG
-		debug_nntp("<<<", ptr);
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "<<< %s", ptr);
 #	endif /* DEBUG */
 		respcode = (int) strtol(ptr, &end, 10);
 		DEBUG_IO((stderr, "get_only_respcode(%d)\n", respcode));
 	}
 	if (message != NULL && mlen > 1)		/* Pass out the rest of the text */
-		my_strncpy(message, end, mlen - 1);
+		my_strncpy(message, ++end, mlen - 1);
 
-#endif /* NNTP_ABLE */
 	return respcode;
 }
 
@@ -1604,14 +1792,18 @@ get_only_respcode(
  *	code is copied into it.
  * Performs authentication if required and repeats the last command if
  * necessary after a timeout.
+ *
+ * TODO: make this handle 401 and 483 (RFC 3977) return codes.
+ *       as 401 requires to examine the returned text besides the
+ *       return value, we have to "fix" all nntp_command(..., NULL, 0) and
+ *       get_only_respcode(NULL, 0) calls to do this properly.
  */
 int
 get_respcode(
 	char *message,
 	size_t mlen)
 {
-	int respcode = 0;
-#ifdef NNTP_ABLE
+	int respcode;
 	char savebuf[NNTP_STRLEN];
 	char *ptr, *end;
 
@@ -1621,52 +1813,55 @@ get_respcode(
 		 * Server requires authentication.
 		 */
 #	ifdef DEBUG
-		debug_nntp("get_respcode", "authentication");
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "get_respcode() authentication");
 #	endif /* DEBUG */
-		strncpy(savebuf, last_put, sizeof(savebuf) - 1);	/* take copy */
+		STRCPY(savebuf, last_put);
 
-		if (authenticate(nntp_server, userid, FALSE)) {
-			if (curr_group != NULL) {
-				DEBUG_IO((stderr, _("Rejoin current group\n")));
-				snprintf(last_put, sizeof(last_put), "GROUP %s", curr_group->name);
-				put_server(last_put);
-				s_gets(last_put, NNTP_STRLEN, nntp_rd_fp);
+		if (!authenticate(nntp_server, userid, FALSE)) {
+			error_message(2, _(txt_auth_failed), nntp_caps.type == CAPABILITIES ? ERR_AUTHFAIL : ERR_ACCESS);
+			tin_done(EXIT_FAILURE);
+		}
+		if (nntp_caps.type == CAPABILITIES) {
+			check_extensions();
+			can_post = nntp_caps.post && !force_no_post;
+		}
+		if (curr_group != NULL) {
+			DEBUG_IO((stderr, _("Rejoin current group\n")));
+			snprintf(last_put, sizeof(last_put), "GROUP %s", curr_group->name);
+			put_server(last_put);
+			s_gets(last_put, NNTP_STRLEN, nntp_rd_fp);
 #	ifdef DEBUG
-				debug_nntp("<<<", last_put);
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "<<< %s", last_put);
 #	endif /* DEBUG */
-				DEBUG_IO((stderr, _("Read (%s)\n"), last_put));
-			}
-			strcpy(last_put, savebuf);
+			DEBUG_IO((stderr, _("Read (%s)\n"), last_put));
+		}
+		STRCPY(last_put, savebuf);
 
-			put_server(last_put);
-			ptr = tin_fgets(FAKE_NNTP_FP, FALSE);
+		put_server(last_put);
+		ptr = tin_fgets(FAKE_NNTP_FP, FALSE);
 
-			if (tin_errno) {
+		if (tin_errno) {
 #	ifdef DEBUG
-				debug_nntp("<<<", "Error: tin_errno <> 0");
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "<<< Error: tin_errno <> 0");
 #	endif /* DEBUG */
 				return -1;
-			}
+		}
 
 #	ifdef DEBUG
-			debug_nntp("<<<", ptr);
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "<<< %s", ptr);
 #	endif /* DEBUG */
-			respcode = (int) strtol(ptr, &end, 10);
-			if (message != NULL && mlen > 1)				/* Pass out the rest of the text */
-				strncpy(message, end, mlen - 1);
-
-		} else {
-			error_message(_(txt_auth_failed), ERR_ACCESS);
-			/*	return -1; */
-			tin_done(EXIT_FAILURE);
-		}
+		respcode = (int) strtol(ptr, &end, 10);
+		if (message != NULL && mlen > 1)				/* Pass out the rest of the text */
+			strncpy(message, end, mlen - 1);
 	}
-#endif /* NNTP_ABLE */
 	return respcode;
 }
 
 
-#ifdef NNTP_ABLE
 /*
  * Do an NNTP command. Send command to server, and read the reply.
  * If the reply code matches success, then return an open file stream
@@ -1683,32 +1878,35 @@ nntp_command(
 {
 DEBUG_IO((stderr, "nntp_command(%s)\n", command));
 #	ifdef DEBUG
-	debug_nntp("nntp command", command);
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "nntp_command(%s)", command);
 #	endif /* DEBUG */
 	put_server(command);
 
 	if (!bool_equal(dangerous_signal_exit, TRUE)) {
 		if (get_respcode(message, mlen) != success) {
 #	ifdef DEBUG
-			debug_nntp(command, "NOT_OK");
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "nntp_command(%s) NOT_OK", command);
 #	endif /* DEBUG */
-			/* error_message("%s", message); */
+			/* error_message(2, "%s", message); */
 			return (FILE *) 0;
 		}
 	}
 #	ifdef DEBUG
-	debug_nntp(command, "OK");
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "nntp_command(%s) OK", command);
 #	endif /* DEBUG */
 	return FAKE_NNTP_FP;
 }
 
 
 /*
- * same as above, but with a slightly more usefull return code.
+ * same as above, but with a slightly more useful return code.
  * TODO: use it instead of nntp_command in the rest of the code
- *       (wherever it is more usefull).
+ *       (wherever it is more useful).
  */
-static int
+int
 new_nntp_command(
 	const char *command,
 	int success,
@@ -1717,22 +1915,25 @@ new_nntp_command(
 {
 	int respcode = 0;
 
-DEBUG_IO((stderr, "nntp_command(%s)\n", command));
+DEBUG_IO((stderr, "new_nntp_command(%s)\n", command));
 #	ifdef DEBUG
-	debug_nntp("nntp command", command);
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "new_nntp_command(%s)", command);
 #	endif /* DEBUG */
 	put_server(command);
 
 	if (!bool_equal(dangerous_signal_exit, TRUE)) {
 		if ((respcode = get_respcode(message, mlen)) != success) {
 #	ifdef DEBUG
-			debug_nntp(command, "NOT_OK - Expected: %d, got: %d", success, respcode);
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "new_nntp_command(%s) NOT_OK - Expected: %d, got: %d", command, success, respcode);
 #	endif /* DEBUG */
 			return respcode;
 		}
 	}
 #	ifdef DEBUG
-	debug_nntp(command, "OK");
+	if (debug & DEBUG_NNTP)
+		debug_print_file("NNTP", "new_nntp_command(%s) OK", command);
 #	endif /* DEBUG */
 	return respcode;
 }
@@ -1743,8 +1944,10 @@ list_motd(
 	void)
 {
 	char *ptr;
+	char *p;
 	char buf[NNTP_STRLEN];
 	int i;
+	size_t len;
 	unsigned int l = 0;
 
 	buf[0] = '\0';
@@ -1757,16 +1960,24 @@ list_motd(
 #	endif /* HAVE_COLOR */
 			while ((ptr = tin_fgets(FAKE_NNTP_FP, FALSE)) != NULL) {
 #	ifdef DEBUG
-				debug_nntp("<<<", ptr);
+				if (debug & DEBUG_NNTP)
+					debug_print_file("NNTP", "<<< %s", ptr);
 #	endif /* DEBUG */
 				/*
+				 * according to draft-elie-nntp-list-additions-00.txt 2.4.2
+				 * the MOTD is in UTF-8
+				 *
 				 * TODO: - store a hash value of the entire motd in the server-rc
 				 *         and only if it differs from the old value display the
 				 *         motd?
 				 *       - use some sort of pager?
 				 *       - -> lang.c
 				 */
-				my_printf("%s%s\n", _("MOTD: "), ptr);
+				p = my_strdup(ptr);
+				len = strlen(p);
+				process_charsets(&p, &len, "UTF-8", tinrc.mm_local_charset, FALSE);
+				my_printf("%s%s\n", _("MOTD: "), p);
+				free(p);
 				l++;
 			}
 #	ifdef HAVE_COLOR
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/nrctbl.c tin-2.0.0/src/nrctbl.c
--- tin-1.8.3/src/nrctbl.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/nrctbl.c	2011-04-17 16:04:31.195186037 +0200
@@ -3,13 +3,13 @@
  *  Module    : nrctbl.c
  *  Author    : Sven Paulus <sven@tin.org>
  *  Created   : 1996-10-06
- *  Updated   : 2005-07-02
+ *  Updated   : 2009-07-17
  *  Notes     : This module does the NNTP server name lookup in
  *              ~/.tin/newsrctable and returns the real hostname
  *              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-2011 Sven Paulus <sven@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -74,6 +74,7 @@ write_newsrctable_file(
 }
 
 
+#ifdef NNTP_ABLE
 /*
  * get_nntpserver()
  * returns the FQDN of NNTP server by looking up a given
@@ -84,6 +85,7 @@ write_newsrctable_file(
 void
 get_nntpserver(
 	char *nntpserver_name,
+	size_t nntpserver_name_len,
 	char *nick_name)
 {
 	FILE *fp;
@@ -102,7 +104,7 @@ get_nntpserver(
 					line_entry_counter++;
 
 					if (line_entry_counter == 1)
-						strcpy(name_found, line_entry);
+						STRCPY(name_found, line_entry);
 
 					if ((line_entry_counter > 2) && (!strcasecmp(line_entry, nick_name)))
 						found = TRUE;
@@ -110,12 +112,14 @@ get_nntpserver(
 			}
 		}
 		fclose(fp);
-		strcpy(nntpserver_name, (found ? name_found : nick_name));
+		strncpy(nntpserver_name, (found ? name_found : nick_name), nntpserver_name_len);
 	} else {
 		write_newsrctable_file();
-		strcpy(nntpserver_name, nick_name);
+		strncpy(nntpserver_name, nick_name, nntpserver_name_len);
 	}
+	nntpserver_name[nntpserver_name_len - 1] = '\0';
 }
+#endif /* NNTP_ABLE */
 
 
 /*
@@ -123,9 +127,10 @@ get_nntpserver(
  * get name of newsrc file with given name of nntp server
  * returns TRUE if name was found, FALSE if the search failed
  */
-int
+t_bool
 get_newsrcname(
 	char *newsrc_name,
+	size_t newsrc_name_len,
 	const char *nntpserver_name) /* return value is always ignored */
 {
 	FILE *fp;
@@ -154,7 +159,7 @@ get_newsrcname(
 						do_cpy = TRUE;
 					}
 					if (do_cpy && (line_entry_counter == 2)) {
-						strcpy(name_found, line_entry);
+						STRCPY(name_found, line_entry);
 						do_cpy = FALSE;
 					}
 				}
@@ -166,16 +171,17 @@ get_newsrcname(
 			char tmp_newsrc[PATH_LEN];
 			int error = 0;
 
-			if (!strfpath(name_found, tmp_newsrc, sizeof(tmp_newsrc), NULL)) {
+			if (!strfpath(name_found, tmp_newsrc, sizeof(tmp_newsrc), NULL, FALSE)) {
 					my_fprintf(stderr, _("couldn't expand %s\n"), name_found); /* TODO: -> lang.c */
 					error = 1;
 			} else {
-				if (tmp_newsrc[0] == '/')
-					(void) strcpy(newsrc_name, tmp_newsrc);
-				else
-					joinpath(newsrc_name, homedir, tmp_newsrc);
+				if (tmp_newsrc[0] == '/') {
+					(void) strncpy(newsrc_name, tmp_newsrc, newsrc_name_len);
+					newsrc_name[newsrc_name_len - 1] = '\0';
+				} else
+					joinpath(newsrc_name, newsrc_name_len, homedir, tmp_newsrc);
 			}
-			(void) strcpy(dir, newsrc_name);
+			STRCPY(dir, newsrc_name);
 			if (strchr(dir, '/'))
 				*strrchr(dir, '/') = (char) 0;
 
@@ -224,7 +230,7 @@ get_newsrcname(
 						return TRUE;
 
 					case 'd':
-						joinpath(newsrc_name, homedir, ".newsrc");
+						joinpath(newsrc_name, newsrc_name_len, homedir, ".newsrc");
 						return TRUE;
 
 					case 'a':
@@ -233,7 +239,7 @@ get_newsrcname(
 						 * is not documented in the man page
 						 */
 						snprintf(name_found, sizeof(name_found), ".newsrc-%s", nntpserver_name);
-						joinpath(newsrc_name, homedir, name_found);
+						joinpath(newsrc_name, newsrc_name_len, homedir, name_found);
 						return TRUE;
 
 					case 'q':
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/options_menu.c tin-2.0.0/src/options_menu.c
--- tin-1.8.3/src/options_menu.c	2005-12-02 12:07:36.000000000 +0100
+++ tin-2.0.0/src/options_menu.c	2011-05-14 13:29:41.579424908 +0200
@@ -3,10 +3,10 @@
  *  Module    : options_menu.c
  *  Author    : Michael Bienia <michael@vorlon.ping.de>
  *  Created   : 2004-09-05
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-05-14
  *  Notes     : Split from config.c
  *
- * Copyright (c) 2004-2006 Michael Bienia <michael@vorlon.ping.de>
+ * Copyright (c) 2004-2011 Michael Bienia <michael@vorlon.ping.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,34 +48,76 @@
 
 #define option_lines_per_page (cLINES - INDEX_TOP - 3)
 
-static enum option_enum first_option_on_screen, last_option_on_screen;
+#define UPDATE_INT_ATTRIBUTES(option) do { \
+		scopes[0].attribute->option = tinrc.option; \
+	} while (0)
+
+#define CAO(A, O) A ## O
+#define SET_NUM_ATTRIBUTE(option) do { \
+		curr_scope->attribute->option = CAO(tinrc.attrib_, option); \
+		curr_scope->state->option = TRUE; \
+	} while (0)
+#define SET_STRING_ATTRIBUTE(opt) do { \
+		if (!strlen(CAO(tinrc.attrib_, opt))) { \
+			reset_state(option); \
+			redraw_screen(option); \
+		} else { \
+			FreeIfNeeded(curr_scope->attribute->opt); \
+			curr_scope->state->opt = TRUE; \
+			curr_scope->attribute->opt = my_strdup(CAO(tinrc.attrib_, opt)); \
+		} \
+	} while (0)
+
+static enum option_enum first_option_on_screen, last_option_on_screen, last_opt;
 
 /*
  * local prototypes
  */
+static enum option_enum get_first_opt(void);
 static enum option_enum move_cursor(enum option_enum cur_option, t_bool down);
 static enum option_enum next_option(enum option_enum option, t_bool incl_titles);
 static enum option_enum opt_scroll_down(enum option_enum option);
 static enum option_enum opt_scroll_up(enum option_enum option);
 static enum option_enum prev_option(enum option_enum option, t_bool incl_titles);
 static enum option_enum set_option_num(int num);
+static int add_new_scope(void);
+static int find_scope(const char *scope);
 static int get_option_num(enum option_enum option);
+static int move_scope(int curr_pos);
+static t_bool check_state(enum option_enum option);
+static t_bool delete_scope(int curr_pos);
 static t_bool option_is_title(enum option_enum option);
 static t_bool option_on_page(enum option_enum option);
+static t_bool rename_scope(struct t_scope *scope);
+static t_bool scope_is_empty(void);
 static t_function option_left(void);
 static t_function option_right(void);
+static t_function scope_left(void);
+static t_function scope_right(void);
+static void build_scope_line(int i);
+static void do_delete_scope(int curr_pos);
+static void do_move_scope(int from, int to);
+static void draw_scope_arrow(void);
+static void free_scopes_and_attributes(void);
 static void highlight_option(enum option_enum option);
-static void print_any_option(enum option_enum the_option);
+static void initialize_attributes(void);
+static void print_any_option(enum option_enum option);
 static void redraw_screen(enum option_enum option);
 static void repaint_option(enum option_enum option);
+static void reset_state(enum option_enum option);
+static void scope_page(void);
 static void set_first_option_on_screen(enum option_enum last_option);
+static void set_last_opt(void);
 static void set_last_option_on_screen(enum option_enum first_option);
 static void show_config_page(void);
+static void show_scope_page(void);
 static void unhighlight_option(enum option_enum option);
 #ifdef USE_CURSES
 	static void do_scroll(int jump);
 #endif /* USE_CURSES */
 
+static t_menu scopemenu = { 0, 0, 0, show_scope_page, draw_scope_arrow, build_scope_line };
+static struct t_scope *curr_scope = NULL;
 
 /*
  * returns the row on the screen of an option
@@ -108,7 +150,7 @@ get_option_num(
 	enum option_enum i;
 	int result = 0;
 
-	for (i = 0; i < option && result < LAST_OPT; i = next_option(i, FALSE))
+	for (i = 0; i < option && result < (int) last_opt; i = next_option(i, FALSE))
 		result++;
 
 	return result;
@@ -124,7 +166,7 @@ set_option_num(
 {
 	enum option_enum result = 0;
 
-	while (num > 0 && result < LAST_OPT) {
+	while (num > 0 && result < last_opt) {
 		result = next_option(result, FALSE);
 		num--;
 	}
@@ -160,13 +202,19 @@ option_is_visible(
 		case OPT_COL_TEXT:
 		case OPT_COL_TITLE:
 		case OPT_COL_URLS:
-			return tinrc.use_color;
+		case OPT_QUOTE_REGEX:
+		case OPT_QUOTE_REGEX2:
+		case OPT_QUOTE_REGEX3:
+			return curr_scope ? FALSE : tinrc.use_color;
 
 		case OPT_COL_MARKSTAR:
 		case OPT_COL_MARKDASH:
 		case OPT_COL_MARKSLASH:
 		case OPT_COL_MARKSTROKE:
-			return tinrc.word_highlight && tinrc.use_color;
+			return curr_scope ? FALSE : (tinrc.word_highlight && tinrc.use_color);
+
+		case OPT_COL_VERBATIM:
+			return curr_scope ? FALSE : (tinrc.verbatim_handling && tinrc.use_color);
 #endif /* HAVE_COLOR */
 
 		case OPT_WORD_H_DISPLAY_MARKS:
@@ -174,10 +222,114 @@ option_is_visible(
 		case OPT_MONO_MARKDASH:
 		case OPT_MONO_MARKSLASH:
 		case OPT_MONO_MARKSTROKE:
-			return tinrc.word_highlight;
+		case OPT_SLASHES_REGEX:
+		case OPT_STARS_REGEX:
+		case OPT_STROKES_REGEX:
+		case OPT_UNDERSCORES_REGEX:
+			return curr_scope ? FALSE : tinrc.word_highlight;
 
-		default:
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+		case OPT_UTF8_GRAPHICS:
+			return curr_scope ? FALSE : IS_LOCAL_CHARSET("UTF-8");
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+
+		case OPT_VERBATIM_BEGIN_REGEX:
+		case OPT_VERBATIM_END_REGEX:
+			return curr_scope ? FALSE : tinrc.verbatim_handling;
+
+		case OPT_GETART_LIMIT_OPTIONS:
+#ifdef HAVE_COLOR
+		case OPT_COLOR_OPTIONS:
+#endif /* HAVE_COLOR */
+			return curr_scope ? FALSE : TRUE;
+
+		case OPT_DISPLAY_OPTIONS:
+		case OPT_FILTERING_OPTIONS:
+		case OPT_SAVING_OPTIONS:
+		case OPT_POSTING_OPTIONS:
+		case OPT_EXPERT_OPTIONS:
 			return TRUE;
+
+		case OPT_ATTRIB_ADD_POSTED_TO_FILTER:
+		case OPT_ATTRIB_ADVERTISING:
+		case OPT_ATTRIB_ALTERNATIVE_HANDLING:
+		case OPT_ATTRIB_ASK_FOR_METAMAIL:
+		case OPT_ATTRIB_AUTO_CC_BCC:
+		case OPT_ATTRIB_AUTO_LIST_THREAD:
+		case OPT_ATTRIB_AUTO_SAVE:
+		case OPT_ATTRIB_AUTO_SELECT:
+		case OPT_ATTRIB_BATCH_SAVE:
+		case OPT_ATTRIB_DATE_FORMAT:
+		case OPT_ATTRIB_DELETE_TMP_FILES:
+		case OPT_ATTRIB_EDITOR_FORMAT:
+		case OPT_ATTRIB_FCC:
+		case OPT_ATTRIB_FOLLOWUP_TO:
+		case OPT_ATTRIB_FROM:
+		case OPT_ATTRIB_GROUP_CATCHUP_ON_EXIT:
+#ifdef HAVE_ISPELL
+		case OPT_ATTRIB_ISPELL:
+#endif /* HAVE_ISPELL */
+		case OPT_ATTRIB_MAILDIR:
+		case OPT_ATTRIB_MAIL_8BIT_HEADER:
+		case OPT_ATTRIB_MAIL_MIME_ENCODING:
+		case OPT_ATTRIB_MAILING_LIST:
+		case OPT_ATTRIB_MARK_IGNORE_TAGS:
+		case OPT_ATTRIB_MARK_SAVED_READ:
+		case OPT_ATTRIB_MIME_FORWARD:
+		case OPT_ATTRIB_MIME_TYPES_TO_SAVE:
+		case OPT_ATTRIB_NEWS_HEADERS_TO_DISPLAY:
+		case OPT_ATTRIB_NEWS_HEADERS_TO_NOT_DISPLAY:
+		case OPT_ATTRIB_NEWS_QUOTE_FORMAT:
+		case OPT_ATTRIB_ORGANIZATION:
+		case OPT_ATTRIB_POST_8BIT_HEADER:
+		case OPT_ATTRIB_POST_MIME_ENCODING:
+		case OPT_ATTRIB_POST_PROCESS_VIEW:
+		case OPT_ATTRIB_POS_FIRST_UNREAD:
+		case OPT_ATTRIB_QUICK_KILL_HEADER:
+		case OPT_ATTRIB_QUICK_KILL_SCOPE:
+		case OPT_ATTRIB_QUICK_KILL_EXPIRE:
+		case OPT_ATTRIB_QUICK_KILL_CASE:
+		case OPT_ATTRIB_QUICK_SELECT_HEADER:
+		case OPT_ATTRIB_QUICK_SELECT_SCOPE:
+		case OPT_ATTRIB_QUICK_SELECT_EXPIRE:
+		case OPT_ATTRIB_QUICK_SELECT_CASE:
+#ifndef DISABLE_PRINTING
+		case OPT_ATTRIB_PRINT_HEADER:
+#endif /* !DISABLE_PRINTING */
+		case OPT_ATTRIB_PROCESS_ONLY_UNREAD:
+		case OPT_ATTRIB_PROMPT_FOLLOWUPTO:
+		case OPT_ATTRIB_QUOTE_CHARS:
+		case OPT_ATTRIB_SAVEDIR:
+		case OPT_ATTRIB_SAVEFILE:
+		case OPT_ATTRIB_SHOW_AUTHOR:
+		case OPT_ATTRIB_SHOW_INFO:
+		case OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS:
+		case OPT_ATTRIB_SHOW_SIGNATURES:
+		case OPT_ATTRIB_SIGDASHES:
+		case OPT_ATTRIB_SIGFILE:
+		case OPT_ATTRIB_SIGNATURE_REPOST:
+		case OPT_ATTRIB_START_EDITOR_OFFSET:
+		case OPT_ATTRIB_THREAD_ARTICLES:
+		case OPT_ATTRIB_THREAD_CATCHUP_ON_EXIT:
+		case OPT_ATTRIB_THREAD_PERC:
+		case OPT_ATTRIB_TRIM_ARTICLE_BODY:
+		case OPT_ATTRIB_TEX2ISO_CONV:
+		case OPT_ATTRIB_SORT_THREADS_TYPE:
+#ifdef CHARSET_CONVERSION
+		case OPT_ATTRIB_MM_NETWORK_CHARSET:
+		case OPT_ATTRIB_UNDECLARED_CHARSET:
+#endif /* CHARSET_CONVERSION */
+		case OPT_ATTRIB_VERBATIM_HANDLING:
+		case OPT_ATTRIB_WRAP_ON_NEXT_UNREAD:
+		case OPT_ATTRIB_SORT_ARTICLE_TYPE:
+		case OPT_ATTRIB_POST_PROCESS_TYPE:
+		case OPT_ATTRIB_X_BODY:
+		case OPT_ATTRIB_X_COMMENT_TO:
+		case OPT_ATTRIB_X_HEADERS:
+			return curr_scope ? TRUE : FALSE;
+
+		default:
+			return curr_scope ? FALSE : TRUE;
 	}
 }
 
@@ -221,17 +373,19 @@ fmt_option_prompt(
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	if (!option_is_title(option)) {
+		char flag;
 		int num = get_option_num(option);
 
+		flag = (curr_scope && check_state(option)) ? '+' : ' ';
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 		if (wbuf != NULL) {
 			wbuf2 = wstrunc(wbuf, option_width);
 			if ((buf = wchar_t2char(wbuf2)) == NULL) {
 				/* conversion failed, truncate original string */
 				buf = strunc(_(option_table[option].txt->opt), option_width);
-				snprintf(dst, len, "%s %3d. %-*.*s: ", editing ? "->" : "  ", num, (int) option_width, (int) option_width, buf);
+				snprintf(dst, len, "%s %c%3d %-*.*s: ", editing ? "->" : "  ", flag, num, (int) option_width, (int) option_width, buf);
 			} else
-				snprintf(dst, len, "%s %3d. %-*.*s: ", editing ? "->" : "  ", num,
+				snprintf(dst, len, "%s %c%3d %-*.*s: ", editing ? "->" : "  ", flag, num,
 					(int) (strlen(buf) + option_width - wcswidth(wbuf2, option_width + 1)),
 					(int) (strlen(buf) + option_width - wcswidth(wbuf2, option_width + 1)), buf);
 			free(wbuf2);
@@ -240,7 +394,7 @@ fmt_option_prompt(
 		{
 			/* truncate original string */
 			buf = strunc(_(option_table[option].txt->opt), option_width);
-			snprintf(dst, len, "%s %3d. %-*.*s: ", editing ? "->" : "  ", num, (int) option_width, (int) option_width, buf);
+			snprintf(dst, len, "%s %c%3d %-*.*s: ", editing ? "->" : "  ", flag, num, (int) option_width, (int) option_width, buf);
 		}
 	} else {
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
@@ -271,6 +425,9 @@ print_any_option(
 	char temp[LEN], *ptr, *ptr2;
 	int row = option_row(option);
 	size_t len = sizeof(temp) - 1;
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE) && defined(USE_CURSES)
+	char *buf;
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE && USE_CURSES */
 
 	MoveCursor(row, 0);
 
@@ -287,12 +444,12 @@ print_any_option(
 		case OPT_LIST:
 			list = option_table[option].opt_list;
 			ptr2 = my_strdup(list[*(option_table[option].variable) + ((strcasecmp(_(list[0]), _(txt_default)) == 0) ? 1 : 0)]);
-			snprintf(ptr, len, "%s", _(ptr2));
+			strncpy(ptr, _(ptr2), len);
 			free(ptr2);
 			break;
 
 		case OPT_STRING:
-			snprintf(ptr, len, "%s", OPT_STRING_list[option_table[option].var_index]);
+			strncpy(ptr, OPT_STRING_list[option_table[option].var_index], len);
 			break;
 
 		case OPT_NUM:
@@ -307,7 +464,13 @@ print_any_option(
 			break;
 	}
 #ifdef USE_CURSES
-	my_printf("%.*s", cCOLS - 1, temp);
+#	if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	if ((buf = spart(temp, cCOLS - 1, FALSE)) != NULL) {
+		my_printf("%s", buf);
+		free(buf);
+	} else
+#	endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+		my_printf("%.*s", cCOLS - 1, temp);
 	{
 		int y, x;
 
@@ -384,7 +547,7 @@ move_cursor(
 			if (cur_option < first_option_on_screen) {
 				/* move the markers one option up */
 				first_option_on_screen = cur_option;
-				last_option_on_screen = prev_option(last_option_on_screen, TRUE);
+				set_last_option_on_screen(cur_option);
 #ifdef USE_CURSES
 				do_scroll(-1);
 				print_any_option(cur_option);
@@ -411,7 +574,7 @@ static enum option_enum
 opt_scroll_down(
 	enum option_enum option)
 {
-	if (last_option_on_screen < LAST_OPT) {
+	if (last_option_on_screen < last_opt) {
 		first_option_on_screen = next_option(first_option_on_screen, TRUE);
 		set_last_option_on_screen(first_option_on_screen);
 #ifdef USE_CURSES
@@ -484,7 +647,7 @@ next_option(
 {
 	do {
 		option++;
-		if (option > LAST_OPT)
+		if (option > last_opt)
 			option = 0;
 	} while (!(option_is_visible(option) && (incl_titles || !option_is_title(option))));
 
@@ -503,7 +666,7 @@ prev_option(
 {
 	do {
 		if (option == 0)
-			option = LAST_OPT;
+			option = last_opt;
 		else
 			option--;
 	} while (!(option_is_visible(option) && (incl_titles || !option_is_title(option))));
@@ -548,7 +711,7 @@ set_last_option_on_screen(
 	/*
 	 * on last page, there need not be option_lines_per_page options
 	 */
-	for (i = 1; i < option_lines_per_page && last_option_on_screen < LAST_OPT; i++)
+	for (i = 1; i < option_lines_per_page && last_option_on_screen < last_opt; i++)
 		last_option_on_screen = next_option(last_option_on_screen, TRUE);
 }
 
@@ -609,8 +772,6 @@ static void
 redraw_screen(
 	enum option_enum option)
 {
-	my_retouch();
-	set_xclick_off();
 	show_config_page();
 	highlight_option(option);
 }
@@ -638,13 +799,15 @@ show_config_page(
 {
 	enum option_enum i;
 
+	signal_context = curr_scope ? cAttrib : cConfig;
+
 	ClearScreen();
-	center_line(0, TRUE, _(txt_options_menu));
+	center_line(0, TRUE, curr_scope ? curr_scope->scope : _(txt_options_menu));
 
 	for (i = first_option_on_screen; i <= last_option_on_screen; i++) {
 		while (!option_is_visible(i))
 			i++;
-		if (i > LAST_OPT)
+		if (i > last_opt)
 			break;
 		print_any_option(i);
 	}
@@ -687,38 +850,159 @@ option_right(
 
 
 /*
+ * set last_opt to the last visible option
+ */
+static void
+set_last_opt(
+	void)
+{
+	enum option_enum i;
+
+	for (i = 0; i <= LAST_OPT; i++) {
+		if (option_is_visible(i))
+			last_opt = i;
+	}
+}
+
+
+/*
+ * returns the first visible option
+ */
+static enum option_enum
+get_first_opt(
+	void)
+{
+	enum option_enum i;
+
+	for (i = 0; i <= last_opt; i++) {
+		if (option_is_visible(i) && !option_is_title(i))
+			break;
+	}
+	return i;
+}
+
+
+/*
  * 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
- *         as well (see line 2009).
  */
-int
-change_config_file(
-	struct t_group *group)
+void
+config_page(
+	const char *grpname)
 {
+	char key[MAXKEYLEN];
 	enum option_enum option, old_option;
-	int ret_code = NO_FILTERING;
-	int mime_encoding = MIME_ENCODING_7BIT;
+	enum {
+		NO_CHANGES = 0,
+		DISPLAY_OPTS = 1,
+		SCORE_OPTS = 2,
+		THREAD_OPTS = 4,
+		THREAD_SCORE = 8,
+		SHOW_ONLY_UNREAD = 16
+	} changed = NO_CHANGES;
+	int i, scope_idx = 0;
 	t_bool change_option = FALSE;
 	t_function func;
+#ifdef CHARSET_CONVERSION
+	t_bool is_7bit;
+#endif /* CHARSET_CONVERSION */
+	unsigned old_sort_arts = 0, old_sort_threads = 0, old_show_unread = 0, old_thread_arts = 0;
 
-	signal_context = cConfig;
-
-	option = 1;
+	if (curr_scope)
+		initialize_attributes();
+	if (grpname && curr_group) {
+		old_sort_arts = curr_group->attribute->sort_article_type;
+		old_sort_threads = curr_group->attribute->sort_threads_type;
+		old_show_unread = curr_group->attribute->show_only_unread_arts;
+		old_thread_arts = curr_group->attribute->thread_articles;
+	}
+	set_last_opt();
+	option = get_first_opt();
 	first_option_on_screen = 0;
 	set_last_option_on_screen(0);
 
 	redraw_screen(option);
+	set_xclick_off();
+
 	forever {
 		switch ((func = handle_keypad(option_left, option_right, NULL, option_menu_keys))) {
 			case GLOBAL_QUIT:
-				write_config_file(local_config_file);
+				if (grpname) {
+					if (curr_scope && scope_is_empty()) {
+						do_delete_scope(scope_idx);
+						curr_scope = NULL;
+					}
+					/*
+					 * TODO: write files only in case of changes
+					 */
+					write_config_file(local_config_file);
+					write_attributes_file(local_attributes_file);
+				}
 				/* FALLTHROUGH */
 			case CONFIG_NO_SAVE:
+				if (grpname && curr_scope) {
+					if (scope_is_empty())
+						do_delete_scope(scope_idx);
+					curr_scope = NULL;
+				}
+				assign_attributes_to_groups();
+				if (grpname && curr_group) {
+					if (old_sort_arts != curr_group->attribute->sort_article_type
+						|| old_sort_threads != curr_group->attribute->sort_threads_type
+						|| old_thread_arts != curr_group->attribute->thread_articles)
+						changed |= THREAD_OPTS;
+
+					if (old_show_unread != curr_group->attribute->show_only_unread_arts)
+						changed |= SHOW_ONLY_UNREAD;
+
+					if (changed) {
+						t_bool filtered = FALSE;
+
+						/*
+						 * recook if in an article is open
+						 */
+						if (changed & DISPLAY_OPTS) {
+							if (pgart.raw)
+								resize_article(TRUE, &pgart);
+						}
+						/*
+						 * Clear art->keep_in_base if switching to !show_only_unread_arts
+						 */
+						if ((changed & SHOW_ONLY_UNREAD) && !curr_group->attribute->show_only_unread_arts) {
+							for_each_art(i)
+								arts[i].keep_in_base = FALSE;
+						}
+
+						if (changed & SCORE_OPTS) {
+							unfilter_articles(curr_group);
+							read_filter_file(filter_file);
+							filtered = filter_articles(curr_group);
+						}
+						/*
+						 * If the sorting/threading strategy of threads or filter options have
+						 * changed, fix things so that resorting will occur
+						 *
+						 * If show_only_unread_arts or the scoring of a thread has changed,
+						 * resort base[] (find_base() is called inside make_threads() too, so
+						 * do this only if make_threads() was not called before)
+						 */
+						if (changed & THREAD_OPTS)
+							make_threads(curr_group, TRUE);
+						else if (filtered)
+							make_threads(curr_group, FALSE);
+						else if (changed & (SHOW_ONLY_UNREAD | THREAD_SCORE))
+							find_base(curr_group);
+					}
+				}
 				clear_note_area();
-				return ret_code;
+				return;
+
+			case GLOBAL_HELP:
+				if (curr_scope)
+					show_help_page(ATTRIB_LEVEL, _(txt_attrib_menu_com));
+				else
+					show_help_page(CONFIG_LEVEL, _(txt_options_menu_com));
+				redraw_screen(option);
+				break;
 
 			case GLOBAL_LINE_UP:
 				unhighlight_option(option);
@@ -734,7 +1018,7 @@ change_config_file(
 
 			case GLOBAL_FIRST_PAGE:
 				unhighlight_option(option);
-				option = 1;
+				option = get_first_opt();
 				first_option_on_screen = 0;
 				set_last_option_on_screen(0);
 				redraw_screen(option);
@@ -743,34 +1027,34 @@ change_config_file(
 
 			case GLOBAL_LAST_PAGE:
 				unhighlight_option(option);
-				option = LAST_OPT;
-				last_option_on_screen = LAST_OPT;
-				set_first_option_on_screen(LAST_OPT);
+				option = last_opt;
+				last_option_on_screen = last_opt;
+				set_first_option_on_screen(last_opt);
 				redraw_screen(option);
 				/* highlight_option(option); is already done by redraw_screen() */
 				break;
 
 			case GLOBAL_PAGE_UP:
 				unhighlight_option(option);
-				if (option != first_option_on_screen &&	!(option_is_title(first_option_on_screen) && option == next_option(first_option_on_screen, FALSE))) {
+				if (option != first_option_on_screen && !(option_is_title(first_option_on_screen) && option == next_option(first_option_on_screen, FALSE))) {
 					option = first_option_on_screen;
 					if (option_is_title(option))
 						option = next_option(option, FALSE);
 					highlight_option(option);
 					break;
 				} else if (tinrc.scroll_lines == -2 && first_option_on_screen != 0) {
-					int i = option_lines_per_page / 2;
+					i = option_lines_per_page / 2;
 
 					for (; i > 0; i--) {
 						last_option_on_screen = prev_option(last_option_on_screen, TRUE);
-						if (last_option_on_screen == LAST_OPT)	/* end on wrap around */
+						if (last_option_on_screen == last_opt)	/* end on wrap around */
 							break;
 					}
 				} else
 					last_option_on_screen = prev_option(first_option_on_screen, TRUE);
 
 				set_first_option_on_screen(last_option_on_screen);
-				if (last_option_on_screen == LAST_OPT)
+				if (last_option_on_screen == last_opt)
 					option = last_option_on_screen;
 				else
 					option = first_option_on_screen;
@@ -782,7 +1066,7 @@ change_config_file(
 
 			case GLOBAL_PAGE_DOWN:
 				unhighlight_option(option);
-				if (option == LAST_OPT) {
+				if (option == last_opt) {
 					/* wrap around */
 					first_option_on_screen = 0;
 					option = 0;
@@ -790,7 +1074,7 @@ change_config_file(
 					enum option_enum old_first = first_option_on_screen;
 
 					if (tinrc.scroll_lines == -2) {
-						int i = option_lines_per_page / 2;
+						i = option_lines_per_page / 2;
 
 						for (; i > 0; i--) {
 							first_option_on_screen = next_option(first_option_on_screen, TRUE);
@@ -802,7 +1086,7 @@ change_config_file(
 
 					if (first_option_on_screen == 0) {
 						first_option_on_screen = old_first;
-						option = LAST_OPT;
+						option = last_opt;
 						highlight_option(option);
 						break;
 					} else
@@ -843,30 +1127,89 @@ change_config_file(
 					highlight_option(option);
 				break;
 
+#ifndef NO_SHELL_ESCAPE
+			case GLOBAL_SHELL_ESCAPE:
+				shell_escape();
+				redraw_screen(option);
+				break;
+#endif /* !NO_SHELL_ESCAPE */
+
 			case GLOBAL_SEARCH_SUBJECT_FORWARD:
 			case GLOBAL_SEARCH_SUBJECT_BACKWARD:
 			case GLOBAL_SEARCH_REPEAT:
 				if (func == GLOBAL_SEARCH_REPEAT && last_search != GLOBAL_SEARCH_SUBJECT_FORWARD && last_search != GLOBAL_SEARCH_SUBJECT_BACKWARD)
-					break;
+					info_message(_(txt_no_prev_search));
+				else {
+					old_option = option;
+					option = search_config((func == GLOBAL_SEARCH_SUBJECT_FORWARD), (func == GLOBAL_SEARCH_REPEAT), option, last_opt);
+					if (option != old_option) {
+						unhighlight_option(old_option);
+						if (!option_on_page(option)) {
+							first_option_on_screen = option;
+							set_last_option_on_screen(option);
+							redraw_screen(option);
+						} else
+							highlight_option(option);
+					}
+				}
+				break;
+
+			case CONFIG_SCOPE_MENU:
+				if (!curr_scope) {
+					scope_page();
+					set_last_opt();
+					option = get_first_opt();
+					first_option_on_screen = 0;
+					set_last_option_on_screen(0);
+					redraw_screen(option);
+				}
+				break;
 
-				old_option = option;
-				option = search_config((func == GLOBAL_SEARCH_SUBJECT_FORWARD), (func == GLOBAL_SEARCH_REPEAT), option, LAST_OPT);
-				if (option != old_option) {
-					unhighlight_option(old_option);
-					if (!option_on_page(option)) {
-						first_option_on_screen = option;
-						set_last_option_on_screen(option);
+			case CONFIG_RESET_ATTRIB:
+				if (curr_scope) {
+					if (curr_scope->global)
+						info_message(_(txt_scope_operation_not_allowed));
+					else if (check_state(option)) {
+						reset_state(option);
 						redraw_screen(option);
-					} else
-						highlight_option(option);
+					}
 				}
 				break;
 
 			case CONFIG_SELECT:
-				change_option = TRUE;
+				if (curr_scope && curr_scope->global)
+					info_message(_(txt_scope_operation_not_allowed));
+				else
+					change_option = TRUE;
+				break;
+
+			case CONFIG_TOGGLE_ATTRIB:
+				if (grpname) {
+					if (curr_scope) {
+						if (scope_is_empty()) {
+							do_delete_scope(scope_idx);
+							scope_idx = 0;
+						}
+						curr_scope = NULL;
+					} else {
+						if (!(scope_idx = find_scope(grpname)))
+							scope_idx = add_scope(grpname);
+						if (scope_idx) {
+							curr_scope = &scopes[scope_idx];
+							initialize_attributes();
+						}
+					}
+					set_last_opt();
+					option = get_first_opt();
+					first_option_on_screen = 0;
+					set_last_option_on_screen(0);
+					redraw_screen(option);
+				}
 				break;
 
 			case GLOBAL_REDRAW_SCREEN:
+				my_retouch();
+				set_xclick_off();
 				set_last_option_on_screen(first_option_on_screen);
 				redraw_screen(option);
 				break;
@@ -876,6 +1219,7 @@ change_config_file(
 				break;
 
 			default:
+				info_message(_(txt_bad_command), printascii(key, func_to_key(GLOBAL_HELP, option_menu_keys)));
 				break;
 		} /* switch (ch) */
 
@@ -883,53 +1227,152 @@ change_config_file(
 			switch (option_table[option].var_type) {
 				case OPT_ON_OFF:
 					switch (option) {
+						case OPT_ABBREVIATE_GROUPNAME:
+						case OPT_AUTO_RECONNECT:
+						case OPT_CACHE_OVERVIEW_FILES:
+						case OPT_CATCHUP_READ_GROUPS:
+						case OPT_FORCE_SCREEN_REDRAW:
+						case OPT_KEEP_DEAD_ARTICLES:
+						case OPT_SHOW_ONLY_UNREAD_GROUPS:
+						case OPT_STRIP_BLANKS:
+						case OPT_STRIP_NEWSRC:
+#if defined(HAVE_ICONV_OPEN_TRANSLIT) && defined(CHARSET_CONVERSION)
+						case OPT_TRANSLIT:
+#endif /* HAVE_ICONV_OPEN_TRANSLIT && CHARSET_CONVERSION */
+						case OPT_UNLINK_ARTICLE:
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+						case OPT_UTF8_GRAPHICS:
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+						case OPT_URL_HIGHLIGHT:
+#ifdef HAVE_KEYPAD
+						case OPT_USE_KEYPAD:
+#endif /* HAVE_KEYPAD */
+						case OPT_USE_MOUSE:
+							prompt_option_on_off(option);
+							break;
+
 						case OPT_ADD_POSTED_TO_FILTER:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(add_posted_to_filter);
+							break;
+
 						case OPT_ADVERTISING:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(advertising);
+							break;
+
 						case OPT_ALTERNATIVE_HANDLING:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(alternative_handling);
+							break;
+
 						case OPT_ASK_FOR_METAMAIL:
-						case OPT_AUTO_BCC:
-						case OPT_AUTO_CC:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(ask_for_metamail);
+							break;
+
 						case OPT_AUTO_LIST_THREAD:
-						case OPT_AUTO_RECONNECT:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(auto_list_thread);
+							break;
+
 						case OPT_AUTO_SAVE:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(auto_save);
+							break;
+
 						case OPT_BATCH_SAVE:
-						case OPT_CACHE_OVERVIEW_FILES:
-						case OPT_CATCHUP_READ_GROUPS:
-						case OPT_FORCE_SCREEN_REDRAW:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(batch_save);
+							break;
+
 						case OPT_GROUP_CATCHUP_ON_EXIT:
-						case OPT_KEEP_DEAD_ARTICLES:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(group_catchup_on_exit);
+							break;
+
 						case OPT_MARK_IGNORE_TAGS:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(mark_ignore_tags);
+							break;
+
 						case OPT_MARK_SAVED_READ:
-						case OPT_PGDN_GOTO_NEXT:
-						case OPT_POS_FIRST_UNREAD:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(mark_saved_read);
+							break;
+
 						case OPT_POST_PROCESS_VIEW:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(post_process_view);
+							break;
+
+						case OPT_POS_FIRST_UNREAD:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(pos_first_unread);
+							break;
+
 #ifndef DISABLE_PRINTING
 						case OPT_PRINT_HEADER:
-#endif /*! DISABLE_PRINTING */
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(print_header);
+							break;
+#endif /* !DISABLE_PRINTING */
+
 						case OPT_PROCESS_ONLY_UNREAD:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(process_only_unread);
+							break;
+
 						case OPT_PROMPT_FOLLOWUPTO:
-						case OPT_SHOW_ONLY_UNREAD_GROUPS:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(prompt_followupto);
+							break;
+
 						case OPT_SHOW_SIGNATURES:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(show_signatures);
+							break;
+
 						case OPT_SIGDASHES:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(sigdashes);
+							break;
+
 						case OPT_SIGNATURE_REPOST:
-						case OPT_SPACE_GOTO_NEXT_UNREAD:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(signature_repost);
+							break;
+
 						case OPT_START_EDITOR_OFFSET:
-						case OPT_STRIP_BLANKS:
-						case OPT_STRIP_NEWSRC:
-						case OPT_TAB_GOTO_NEXT_UNREAD:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(start_editor_offset);
+							break;
+
 						case OPT_TEX2ISO_CONV:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(tex2iso_conv);
+							break;
+
 						case OPT_THREAD_CATCHUP_ON_EXIT:
-#if defined(HAVE_ICONV_OPEN_TRANSLIT) && defined(CHARSET_CONVERSION)
-						case OPT_TRANSLIT:
-#endif /* HAVE_ICONV_OPEN_TRANSLIT && CHARSET_CONVERSION */
-						case OPT_UNLINK_ARTICLE:
-						case OPT_URL_HIGHLIGHT:
-#ifdef HAVE_KEYPAD
-						case OPT_USE_KEYPAD:
-#endif /* HAVE_KEYPAD */
-						case OPT_USE_MOUSE:
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(thread_catchup_on_exit);
+							break;
+
 						case OPT_WRAP_ON_NEXT_UNREAD:
-							prompt_option_on_off(option);
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(wrap_on_next_unread);
+							break;
+
+						case OPT_VERBATIM_HANDLING:
+							/*
+							 * option toggles visibility of other
+							 * options -> needs redraw_screen()
+							 */
+							if (prompt_option_on_off(option)) {
+								UPDATE_INT_ATTRIBUTES(verbatim_handling);
+								set_last_option_on_screen(first_option_on_screen);
+								redraw_screen(option);
+							}
 							break;
 
 						/* show mini help menu */
@@ -940,70 +1383,76 @@ change_config_file(
 
 						/* show all arts or just new/unread arts */
 						case OPT_SHOW_ONLY_UNREAD_ARTS:
-							if (prompt_option_on_off(option) && group != NULL) {
-								make_threads(group, TRUE);
-								pos_first_unread_thread();
-							}
+							if (prompt_option_on_off(option))
+								UPDATE_INT_ATTRIBUTES(show_only_unread_arts);
 							break;
 
 						/* draw -> / highlighted bar */
 						case OPT_DRAW_ARROW:
-							prompt_option_on_off(option);
-							unhighlight_option(option);
-							if (!tinrc.draw_arrow && !tinrc.inverse_okay) {
-								tinrc.inverse_okay = TRUE;
-								repaint_option(OPT_INVERSE_OKAY);
+							if (prompt_option_on_off(option)) {
+								unhighlight_option(option);
+								if (!tinrc.draw_arrow && !tinrc.inverse_okay) {
+									tinrc.inverse_okay = TRUE;
+									repaint_option(OPT_INVERSE_OKAY);
+								}
 							}
 							break;
 
 						/* draw inversed screen header lines */
 						/* draw inversed group/article/option line if draw_arrow is OFF */
 						case OPT_INVERSE_OKAY:
-							prompt_option_on_off(option);
-							unhighlight_option(option);
-							if (!tinrc.draw_arrow && !tinrc.inverse_okay) {
-								tinrc.draw_arrow = TRUE;	/* we don't want to navigate blindly */
-								repaint_option(OPT_DRAW_ARROW);
+							if (prompt_option_on_off(option)) {
+								unhighlight_option(option);
+								if (!tinrc.draw_arrow && !tinrc.inverse_okay) {
+									tinrc.draw_arrow = TRUE;	/* we don't want to navigate blindly */
+									repaint_option(OPT_DRAW_ARROW);
+								}
 							}
 							break;
 
 						case OPT_MAIL_8BIT_HEADER:
-							prompt_option_on_off(option);
-							if (strcasecmp(txt_mime_encodings[tinrc.mail_mime_encoding], txt_8bit)) {
-								tinrc.mail_8bit_header = FALSE;
-								print_any_option(OPT_MAIL_8BIT_HEADER);
+							if (prompt_option_on_off(option)) {
+								if (tinrc.mail_mime_encoding != MIME_ENCODING_8BIT) {
+									tinrc.mail_8bit_header = FALSE;
+									print_any_option(OPT_MAIL_8BIT_HEADER);
+								}
+								UPDATE_INT_ATTRIBUTES(mail_8bit_header);
 							}
 							break;
 
 						case OPT_POST_8BIT_HEADER:
-							prompt_option_on_off(option);
-							/* if post_mime_encoding != 8bit, post_8bit_header is disabled */
-							if (strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], txt_8bit)) {
-								tinrc.post_8bit_header = FALSE;
-								print_any_option(OPT_POST_8BIT_HEADER);
+							if (prompt_option_on_off(option)) {
+								/* if post_mime_encoding != 8bit, post_8bit_header is disabled */
+								if (tinrc.post_mime_encoding != MIME_ENCODING_8BIT) {
+									tinrc.post_8bit_header = FALSE;
+									print_any_option(OPT_POST_8BIT_HEADER);
+								}
+								UPDATE_INT_ATTRIBUTES(post_8bit_header);
 							}
 							break;
 
 						/* show newsgroup description text next to newsgroups */
 						case OPT_SHOW_DESCRIPTION:
-							prompt_option_on_off(option);
-							show_description = tinrc.show_description;
-							if (show_description)			/* force reread of newgroups file */
-								read_descriptions(FALSE);
+							if (prompt_option_on_off(option)) {
+								show_description = tinrc.show_description;
+								if (show_description)			/* force reread of newgroups file */
+									read_descriptions(FALSE);
+							}
 							break;
 
 #ifdef HAVE_COLOR
 						/* use ANSI color */
 						case OPT_USE_COLOR:
-							prompt_option_on_off(option);
+							if (prompt_option_on_off(option)) {
 #	ifdef USE_CURSES
-							if (!has_colors())
-								use_color = FALSE;
-							else
+								if (!has_colors())
+									use_color = FALSE;
+								else
 #	endif /* USE_CURSES */
-								use_color = tinrc.use_color;
-							set_last_option_on_screen(first_option_on_screen);
-							redraw_screen(option);
+									use_color = tinrc.use_color;
+								set_last_option_on_screen(first_option_on_screen);
+								redraw_screen(option);
+							}
 							break;
 #endif /* HAVE_COLOR */
 
@@ -1021,10 +1470,11 @@ change_config_file(
 
 						/* word_highlight */
 						case OPT_WORD_HIGHLIGHT:
-							prompt_option_on_off(option);
-							word_highlight = tinrc.word_highlight;
-							set_last_option_on_screen(first_option_on_screen);
-							redraw_screen(option);
+							if (prompt_option_on_off(option)) {
+								word_highlight = tinrc.word_highlight;
+								set_last_option_on_screen(first_option_on_screen);
+								redraw_screen(option);
+							}
 							break;
 
 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
@@ -1033,24 +1483,194 @@ change_config_file(
 							break;
 #endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && HAVE_UNICODE_UBIDI_H && !NO_LOCALE */
 
-						default:
+						case OPT_ATTRIB_ADD_POSTED_TO_FILTER:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(add_posted_to_filter);
 							break;
-					} /* switch (option) */
-					break;
 
-				case OPT_LIST:
-					switch (option) {
-#ifdef HAVE_COLOR
-						case OPT_COL_BACK:
-						case OPT_COL_FROM:
-						case OPT_COL_HEAD:
-						case OPT_COL_HELP:
-						case OPT_COL_INVERS_BG:
+						case OPT_ATTRIB_ADVERTISING:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(advertising);
+							break;
+
+						case OPT_ATTRIB_ALTERNATIVE_HANDLING:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(alternative_handling);
+							break;
+
+						case OPT_ATTRIB_ASK_FOR_METAMAIL:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(ask_for_metamail);
+							break;
+
+						case OPT_ATTRIB_AUTO_LIST_THREAD:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(auto_list_thread);
+							break;
+
+						case OPT_ATTRIB_AUTO_SAVE:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(auto_save);
+							break;
+
+						case OPT_ATTRIB_AUTO_SELECT:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(auto_select);
+							break;
+
+						case OPT_ATTRIB_BATCH_SAVE:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(batch_save);
+							break;
+
+						case OPT_ATTRIB_DELETE_TMP_FILES:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(delete_tmp_files);
+							break;
+
+						case OPT_ATTRIB_GROUP_CATCHUP_ON_EXIT:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(group_catchup_on_exit);
+							break;
+
+						case OPT_ATTRIB_MAIL_8BIT_HEADER:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(mail_8bit_header);
+							break;
+
+						case OPT_ATTRIB_MARK_IGNORE_TAGS:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(mark_ignore_tags);
+							break;
+
+						case OPT_ATTRIB_MARK_SAVED_READ:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(mark_saved_read);
+							break;
+
+						case OPT_ATTRIB_MIME_FORWARD:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(mime_forward);
+							break;
+
+						case OPT_ATTRIB_POST_8BIT_HEADER:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(post_8bit_header);
+							break;
+
+						case OPT_ATTRIB_POST_PROCESS_VIEW:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(post_process_view);
+							break;
+
+						case OPT_ATTRIB_POS_FIRST_UNREAD:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(pos_first_unread);
+							break;
+
+#ifndef DISABLE_PRINTING
+						case OPT_ATTRIB_PRINT_HEADER:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(print_header);
+							break;
+#endif /* !DISABLE_PRINTING */
+
+						case OPT_ATTRIB_PROCESS_ONLY_UNREAD:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(process_only_unread);
+							break;
+
+						case OPT_ATTRIB_PROMPT_FOLLOWUPTO:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(prompt_followupto);
+							break;
+
+						case OPT_ATTRIB_QUICK_KILL_CASE:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(quick_kill_case);
+							break;
+
+						case OPT_ATTRIB_QUICK_KILL_EXPIRE:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(quick_kill_expire);
+							break;
+
+						case OPT_ATTRIB_QUICK_SELECT_CASE:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(quick_select_case);
+							break;
+
+						case OPT_ATTRIB_QUICK_SELECT_EXPIRE:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(quick_select_expire);
+							break;
+
+						case OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(show_only_unread_arts);
+							break;
+
+						case OPT_ATTRIB_SHOW_SIGNATURES:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(show_signatures);
+							break;
+
+						case OPT_ATTRIB_SIGDASHES:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(sigdashes);
+							break;
+
+						case OPT_ATTRIB_SIGNATURE_REPOST:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(signature_repost);
+							break;
+
+						case OPT_ATTRIB_START_EDITOR_OFFSET:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(start_editor_offset);
+							break;
+
+						case OPT_ATTRIB_TEX2ISO_CONV:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(tex2iso_conv);
+							break;
+
+						case OPT_ATTRIB_THREAD_CATCHUP_ON_EXIT:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(thread_catchup_on_exit);
+							break;
+
+						case OPT_ATTRIB_VERBATIM_HANDLING:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(verbatim_handling);
+							break;
+
+						case OPT_ATTRIB_WRAP_ON_NEXT_UNREAD:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(wrap_on_next_unread);
+							break;
+
+						case OPT_ATTRIB_X_COMMENT_TO:
+							if (prompt_option_on_off(option))
+								SET_NUM_ATTRIBUTE(x_comment_to);
+							break;
+
+						default:
+							break;
+					} /* switch (option) */
+					break;
+
+				case OPT_LIST:
+					switch (option) {
+#ifdef HAVE_COLOR
+						case OPT_COL_FROM:
+						case OPT_COL_HEAD:
+						case OPT_COL_HELP:
+						case OPT_COL_INVERS_BG:
 						case OPT_COL_INVERS_FG:
 						case OPT_COL_MESSAGE:
 						case OPT_COL_MINIHELP:
 						case OPT_COL_NEWSHEADERS:
-						case OPT_COL_NORMAL:
 						case OPT_COL_QUOTE:
 						case OPT_COL_QUOTE2:
 						case OPT_COL_QUOTE3:
@@ -1064,334 +1684,596 @@ change_config_file(
 						case OPT_COL_MARKSLASH:
 						case OPT_COL_MARKSTROKE:
 						case OPT_COL_URLS:
+						case OPT_COL_VERBATIM:
 #endif /* HAVE_COLOR */
+						case OPT_CONFIRM_CHOICE:
+						case OPT_GOTO_NEXT_UNREAD:
 						case OPT_HIDE_UUE:
 						case OPT_INTERACTIVE_MAILER:
-						case OPT_WORD_H_DISPLAY_MARKS:
-						case OPT_MONO_MARKSTAR:
+						case OPT_KILL_LEVEL:
+						case OPT_MAILBOX_FORMAT:
 						case OPT_MONO_MARKDASH:
 						case OPT_MONO_MARKSLASH:
+						case OPT_MONO_MARKSTAR:
 						case OPT_MONO_MARKSTROKE:
-						case OPT_CONFIRM_CHOICE:
-						case OPT_KILL_LEVEL:
-						case OPT_MAILBOX_FORMAT:
-						case OPT_SHOW_INFO:
-						case OPT_SORT_ARTICLE_TYPE:
-						case OPT_STRIP_BOGUS:
 #ifdef HAVE_UNICODE_NORMALIZATION
 						case OPT_NORMALIZATION_FORM:
 #endif /* HAVE_UNICODE_NORMALIZATION */
 						case OPT_QUOTE_STYLE:
+						case OPT_STRIP_BOGUS:
 						case OPT_WILDCARD:
+						case OPT_WORD_H_DISPLAY_MARKS:
 							prompt_option_list(option);
 							break;
 
+#ifdef HAVE_COLOR
+						case OPT_COL_BACK:
+						case OPT_COL_NORMAL:
+							if (prompt_option_list(option))
+								redraw_screen(option);
+							break;
+#endif /* HAVE_COLOR */
+
+						case OPT_AUTO_CC_BCC:
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(auto_cc_bcc);
+							break;
+
 						case OPT_THREAD_ARTICLES:
-							/*
-							 * If the threading strategy has changed, fix things
-							 * so that rethreading will occur
-							 */
-							if (prompt_option_list(option) && group != NULL) {
-								int n, old_base_art = base[grpmenu.curr];
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(thread_articles);
+							break;
 
-								group->attribute->thread_arts = tinrc.thread_articles;
-								make_threads(group, TRUE);
-								/* in non-empty groups update cursor position */
-								if (grpmenu.max > 0) {
-									if ((n = which_thread(old_base_art)) >= 0)
-										grpmenu.curr = n;
-								}
-							}
-							set_last_option_on_screen(first_option_on_screen);
-							redraw_screen(option);
-							clear_message();
+						case OPT_SORT_ARTICLE_TYPE:
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(sort_article_type);
 							break;
 
 						case OPT_SORT_THREADS_TYPE:
-							/*
-							 * If the sorting strategy of threads has changed, fix things
-							 * so that resorting will occur
-							 */
-							if (prompt_option_list(option) && group != NULL) {
-								group->attribute->sort_threads_type = tinrc.sort_threads_type;
-								make_threads(group, TRUE);
-							}
-							clear_message();
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(sort_threads_type);
 							break;
 
 						case OPT_THREAD_SCORE:
-							/*
-							 * If the scoring of a thread has changed,
-							 * resort base[]
-							 */
-							if (prompt_option_list(option) && group != NULL)
-								find_base(group);
-							clear_message();
+							if (prompt_option_list(option))
+								changed |= THREAD_SCORE;
 							break;
 
-						case OPT_POST_PROCESS:
-							prompt_option_list(option);
-							glob_attributes.post_proc_type = tinrc.post_process;
-							if (group != NULL)
-								group->attribute->post_proc_type = tinrc.post_process;
+						case OPT_TRIM_ARTICLE_BODY:
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(trim_article_body);
+							break;
+
+						case OPT_POST_PROCESS_TYPE:
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(post_process_type);
 							break;
 
 						case OPT_SHOW_AUTHOR:
-							prompt_option_list(option);
-							if (group != NULL)
-								group->attribute->show_author = tinrc.show_author;
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(show_author);
+							break;
+
+						case OPT_SHOW_INFO:
+							if (prompt_option_list(option))
+								UPDATE_INT_ATTRIBUTES(show_info);
 							break;
 
 						case OPT_MAIL_MIME_ENCODING:
-						case OPT_POST_MIME_ENCODING:
-							prompt_option_list(option);
-							mime_encoding = *(option_table[option].variable);
-							/* do not use 8 bit headers if mime encoding is not 8bit */
-							if (strcasecmp(txt_mime_encodings[mime_encoding], txt_8bit)) {
-								if (option == (int) OPT_POST_MIME_ENCODING) {
-									tinrc.post_8bit_header = FALSE;
-									repaint_option(OPT_POST_8BIT_HEADER);
+							if (prompt_option_list(option)) {
+#ifdef CHARSET_CONVERSION
+								/*
+								 * check if we have selected a !7bit encoding but a 7bit network charset
+								 * or a !8bit encoding but a 8bit network charset, update encoding if needed
+								 */
+								is_7bit = FALSE;
+								for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
+									if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
+										is_7bit = TRUE;
+										break;
+									}
+								}
+								if (is_7bit) {
+									if (tinrc.mail_mime_encoding != MIME_ENCODING_7BIT) {
+										tinrc.mail_mime_encoding = MIME_ENCODING_7BIT;
+										repaint_option(OPT_MAIL_MIME_ENCODING);
+									}
 								} else {
+									if (tinrc.mail_mime_encoding == MIME_ENCODING_7BIT) {
+										tinrc.mail_mime_encoding = MIME_ENCODING_QP;
+										repaint_option(OPT_MAIL_MIME_ENCODING);
+									}
+								}
+#endif /* CHARSET_CONVERSION */
+								UPDATE_INT_ATTRIBUTES(mail_mime_encoding);
+								/* do not use 8 bit headers if mime encoding is not 8bit */
+								if (tinrc.mail_mime_encoding != MIME_ENCODING_8BIT) {
 									tinrc.mail_8bit_header = FALSE;
 									repaint_option(OPT_MAIL_8BIT_HEADER);
+									UPDATE_INT_ATTRIBUTES(mail_8bit_header);
 								}
 							}
 							break;
 
-#ifdef CHARSET_CONVERSION
-						case OPT_MM_NETWORK_CHARSET:
+						case OPT_POST_MIME_ENCODING:
 							if (prompt_option_list(option)) {
-								glob_attributes.mm_network_charset = tinrc.mm_network_charset;
-								if (group)
-									group->attribute->mm_network_charset = tinrc.mm_network_charset;
-#	ifdef NO_LOCALE
-								strcpy(tinrc.mm_local_charset, txt_mime_charsets[tinrc.mm_network_charset]);
-#	endif /* NO_LOCALE */
-							}
-							/*
-							 * check if we have selected a 7bit charset, otherwise
-							 * update encoding
-							 * we always do this (even if we did not change the
-							 * charset) to fixup flaws in the tinrc - once we do
-							 * the same while reading the tinrc this can go into
-							 * the != original_list_value case.
-							 */
-							{
-								int i;
-								t_bool change;
-
-								if (!strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], txt_7bit)) {
-									change = TRUE;
-									for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
-										if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
-											change = FALSE;
-											break;
-										}
+#ifdef CHARSET_CONVERSION
+								/*
+								 * check if we have selected a !7bit encoding but a 7bit network charset
+								 * or a !8bit encoding but a 8bit network charset, update encoding if needed
+								 */
+								is_7bit = FALSE;
+								for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
+									if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
+										is_7bit = TRUE;
+										break;
 									}
-									if (change) {
-										tinrc.post_mime_encoding = MIME_ENCODING_8BIT;
+								}
+								if (is_7bit) {
+									if (tinrc.post_mime_encoding != MIME_ENCODING_7BIT) {
+										tinrc.post_mime_encoding = MIME_ENCODING_7BIT;
 										repaint_option(OPT_POST_MIME_ENCODING);
 									}
-								} else { /* and vice versa, if we have a 7bit chaset but a !7bit encoding, fix that */
-									for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
-										if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
-											tinrc.mail_mime_encoding = tinrc.post_mime_encoding = MIME_ENCODING_7BIT;
-											tinrc.mail_8bit_header = tinrc.post_8bit_header = FALSE;
-											repaint_option(OPT_POST_MIME_ENCODING);
-											repaint_option(OPT_MAIL_MIME_ENCODING);
-											repaint_option(OPT_POST_8BIT_HEADER);
-											break;
-										}
+								} else {
+									if (tinrc.post_mime_encoding == MIME_ENCODING_7BIT) {
+										tinrc.post_mime_encoding = MIME_ENCODING_8BIT;
+										repaint_option(OPT_POST_MIME_ENCODING);
 									}
 								}
+#endif /* CHARSET_CONVERSION */
+								UPDATE_INT_ATTRIBUTES(post_mime_encoding);
+								/* do not use 8 bit headers if mime encoding is not 8bit */
+								if (tinrc.post_mime_encoding != MIME_ENCODING_8BIT) {
+									tinrc.post_8bit_header = FALSE;
+									repaint_option(OPT_POST_8BIT_HEADER);
+									UPDATE_INT_ATTRIBUTES(post_8bit_header);
+								}
+							}
+							break;
 
-								if (!strcasecmp(txt_mime_encodings[tinrc.mail_mime_encoding], txt_7bit)) {
-									change = TRUE;
-									for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
-										if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
-											change = FALSE;
-											break;
-										}
+#ifdef CHARSET_CONVERSION
+						case OPT_MM_NETWORK_CHARSET:
+							if (prompt_option_list(option)) {
+								/*
+								 * check if we have selected a 7bit charset but a !7bit encoding
+								 * or a 8bit charset but a !8bit encoding, update encoding if needed
+								 *
+								 * if (mail|post)_mime_encoding != 8bit, disable (mail|post)_8bit_header
+								 */
+								is_7bit = FALSE;
+								UPDATE_INT_ATTRIBUTES(mm_network_charset);
+								for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
+									if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
+										is_7bit = TRUE;
+										break;
+									}
+								}
+								if (is_7bit) {
+									if (tinrc.mail_mime_encoding != MIME_ENCODING_7BIT) {
+										tinrc.mail_mime_encoding = MIME_ENCODING_7BIT;
+										tinrc.mail_8bit_header = FALSE;
+										repaint_option(OPT_MAIL_MIME_ENCODING);
+										repaint_option(OPT_MAIL_8BIT_HEADER);
+										UPDATE_INT_ATTRIBUTES(mail_mime_encoding);
+										UPDATE_INT_ATTRIBUTES(mail_8bit_header);
 									}
-									if (change) {
+									if (tinrc.post_mime_encoding != MIME_ENCODING_7BIT) {
+										tinrc.post_mime_encoding = MIME_ENCODING_7BIT;
+										tinrc.post_8bit_header = FALSE;
+										repaint_option(OPT_POST_MIME_ENCODING);
+										repaint_option(OPT_POST_8BIT_HEADER);
+										UPDATE_INT_ATTRIBUTES(post_mime_encoding);
+										UPDATE_INT_ATTRIBUTES(post_8bit_header);
+									}
+								} else {
+									if (tinrc.mail_mime_encoding == MIME_ENCODING_7BIT) {
 										tinrc.mail_mime_encoding = MIME_ENCODING_QP;
 										repaint_option(OPT_MAIL_MIME_ENCODING);
+										UPDATE_INT_ATTRIBUTES(mail_mime_encoding);
 									}
-								} else { /* and vice versa, if we have a 7bit chaset but a !7bit encoding, fix that */
-									for (i = 0; *txt_mime_7bit_charsets[i]; i++) {
-										if (!strcasecmp(txt_mime_charsets[tinrc.mm_network_charset], txt_mime_7bit_charsets[i])) {
-											tinrc.mail_mime_encoding = tinrc.post_mime_encoding = MIME_ENCODING_7BIT;
-											tinrc.mail_8bit_header = tinrc.post_8bit_header = FALSE;
-											repaint_option(OPT_POST_MIME_ENCODING);
-											repaint_option(OPT_MAIL_MIME_ENCODING);
-											repaint_option(OPT_POST_8BIT_HEADER);
-											break;
-										}
+									if (tinrc.post_mime_encoding == MIME_ENCODING_7BIT) {
+										tinrc.post_mime_encoding = MIME_ENCODING_8BIT;
+										repaint_option(OPT_POST_MIME_ENCODING);
+										UPDATE_INT_ATTRIBUTES(post_mime_encoding);
 									}
 								}
 							}
 							break;
 #endif /* CHARSET_CONVERSION */
 
-						default:
+						case OPT_ATTRIB_AUTO_CC_BCC:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(auto_cc_bcc);
 							break;
-					} /* switch (option) */
-					break;
 
-				case OPT_STRING:
-					switch (option) {
-						case OPT_EDITOR_FORMAT:
-						case OPT_INEWS_PROG:
-						case OPT_MAILER_FORMAT:
-						case OPT_MAIL_ADDRESS:
-						case OPT_MAIL_QUOTE_FORMAT:
-						case OPT_METAMAIL_PROG:
-#ifndef CHARSET_CONVERSION
-						case OPT_MM_CHARSET:
-#endif /* !CHARSET_CONVERSION */
-						case OPT_NEWS_QUOTE_FORMAT:
-						case OPT_QUOTE_CHARS:
-						case OPT_SPAMTRAP_WARNING_ADDRESSES:
-						case OPT_URL_HANDLER:
-						case OPT_XPOST_QUOTE_FORMAT:
-							prompt_option_string(option);
+						case OPT_ATTRIB_MAIL_MIME_ENCODING:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(mail_mime_encoding);
 							break;
 
-						case OPT_NEWS_HEADERS_TO_DISPLAY:
-							prompt_option_string(option);
-							if (news_headers_to_display_array)
-								FreeIfNeeded(*news_headers_to_display_array);
-							FreeIfNeeded(news_headers_to_display_array);
-							news_headers_to_display_array = ulBuildArgv(tinrc.news_headers_to_display, &num_headers_to_display);
+#ifdef CHARSET_CONVERSION
+						case OPT_ATTRIB_MM_NETWORK_CHARSET:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(mm_network_charset);
 							break;
+#endif /* CHARSET_CONVERSION */
 
-						case OPT_NEWS_HEADERS_TO_NOT_DISPLAY:
-							prompt_option_string(option);
-							if (news_headers_to_not_display_array)
-								FreeIfNeeded(*news_headers_to_not_display_array);
-							FreeIfNeeded(news_headers_to_not_display_array);
-							news_headers_to_not_display_array = ulBuildArgv(tinrc.news_headers_to_not_display, &num_headers_to_not_display);
+						case OPT_ATTRIB_POST_MIME_ENCODING:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(post_mime_encoding);
 							break;
 
-#ifndef DISABLE_PRINTING
-						case OPT_PRINTER:
-#endif /* !DISABLE_PRINTING */
-						case OPT_MAILDIR:
-						case OPT_SAVEDIR:
-						case OPT_SIGFILE:
-						case OPT_POSTED_ARTICLES_FILE:
-							if (prompt_option_string(option)) {
-								char buf[PATH_LEN];
+						case OPT_ATTRIB_POST_PROCESS_TYPE:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(post_process_type);
+							break;
 
-								strfpath(tinrc.posted_articles_file, buf, sizeof(buf), &CURR_GROUP);
-								STRCPY(tinrc.posted_articles_file, buf);
-							}
+						case OPT_ATTRIB_QUICK_KILL_HEADER:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(quick_kill_header);
 							break;
 
-#ifdef HAVE_COLOR
-						case OPT_QUOTE_REGEX:
-							prompt_option_string(option);
-							FreeIfNeeded(quote_regex.re);
-							FreeIfNeeded(quote_regex.extra);
-							if (!strlen(tinrc.quote_regex))
-								STRCPY(tinrc.quote_regex, DEFAULT_QUOTE_REGEX);
-							compile_regex(tinrc.quote_regex, &quote_regex, PCRE_CASELESS);
+						case OPT_ATTRIB_QUICK_SELECT_HEADER:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(quick_select_header);
 							break;
 
-						case OPT_QUOTE_REGEX2:
-							prompt_option_string(option);
-							FreeIfNeeded(quote_regex2.re);
-							FreeIfNeeded(quote_regex2.extra);
-							if (!strlen(tinrc.quote_regex2))
-								STRCPY(tinrc.quote_regex2, DEFAULT_QUOTE_REGEX2);
-							compile_regex(tinrc.quote_regex2, &quote_regex2, PCRE_CASELESS);
+						case OPT_ATTRIB_SHOW_AUTHOR:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(show_author);
 							break;
 
-						case OPT_QUOTE_REGEX3:
-							prompt_option_string(option);
-							FreeIfNeeded(quote_regex3.re);
-							FreeIfNeeded(quote_regex3.extra);
-							if (!strlen(tinrc.quote_regex3))
-								STRCPY(tinrc.quote_regex3, DEFAULT_QUOTE_REGEX3);
-							compile_regex(tinrc.quote_regex3, &quote_regex3, PCRE_CASELESS);
+						case OPT_ATTRIB_SHOW_INFO:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(show_info);
 							break;
-#endif /* HAVE_COLOR */
 
-						case OPT_SLASHES_REGEX:
-							prompt_option_string(option);
-							FreeIfNeeded(slashes_regex.re);
-							FreeIfNeeded(slashes_regex.extra);
-							if (!strlen(tinrc.slashes_regex))
-								STRCPY(tinrc.slashes_regex, DEFAULT_SLASHES_REGEX);
-							compile_regex(tinrc.slashes_regex, &slashes_regex, PCRE_CASELESS);
+						case OPT_ATTRIB_SORT_ARTICLE_TYPE:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(sort_article_type);
 							break;
 
-						case OPT_STARS_REGEX:
-							prompt_option_string(option);
-							FreeIfNeeded(stars_regex.re);
-							FreeIfNeeded(stars_regex.extra);
-							if (!strlen(tinrc.stars_regex))
-								STRCPY(tinrc.stars_regex, DEFAULT_STARS_REGEX);
-							compile_regex(tinrc.stars_regex, &stars_regex, PCRE_CASELESS);
+						case OPT_ATTRIB_SORT_THREADS_TYPE:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(sort_threads_type);
 							break;
 
-						case OPT_STROKES_REGEX:
-							prompt_option_string(option);
-							FreeIfNeeded(strokes_regex.re);
-							FreeIfNeeded(strokes_regex.extra);
-							if (!strlen(tinrc.strokes_regex))
-								STRCPY(tinrc.strokes_regex, DEFAULT_STROKES_REGEX);
-							compile_regex(tinrc.strokes_regex, &strokes_regex, PCRE_CASELESS);
+						case OPT_ATTRIB_THREAD_ARTICLES:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(thread_articles);
 							break;
 
-						case OPT_UNDERSCORES_REGEX:
-							prompt_option_string(option);
-							FreeIfNeeded(underscores_regex.re);
-							FreeIfNeeded(underscores_regex.extra);
-							if (!strlen(tinrc.underscores_regex))
-								STRCPY(tinrc.underscores_regex, DEFAULT_UNDERSCORES_REGEX);
-							compile_regex(tinrc.underscores_regex, &underscores_regex, PCRE_CASELESS);
+						case OPT_ATTRIB_TRIM_ARTICLE_BODY:
+							if (prompt_option_list(option))
+								SET_NUM_ATTRIBUTE(trim_article_body);
 							break;
 
-						case OPT_STRIP_RE_REGEX:
+						default:
+							break;
+					} /* switch (option) */
+					break;
+
+				case OPT_STRING:
+					switch (option) {
+						case OPT_INEWS_PROG:
+						case OPT_MAILDIR:
+						case OPT_MAILER_FORMAT:
+						case OPT_MAIL_ADDRESS:
+						case OPT_MAIL_QUOTE_FORMAT:
+						case OPT_METAMAIL_PROG:
+						case OPT_NEWS_QUOTE_FORMAT:
+						case OPT_SAVEDIR:
+						case OPT_SIGFILE:
+#ifndef DISABLE_PRINTING
+						case OPT_PRINTER:
+#endif /* !DISABLE_PRINTING */
+						case OPT_QUOTE_CHARS:
+						case OPT_SPAMTRAP_WARNING_ADDRESSES:
+						case OPT_URL_HANDLER:
+						case OPT_XPOST_QUOTE_FORMAT:
 							prompt_option_string(option);
-							FreeIfNeeded(strip_re_regex.re);
-							FreeIfNeeded(strip_re_regex.extra);
-							if (!strlen(tinrc.strip_re_regex))
-								STRCPY(tinrc.strip_re_regex, DEFAULT_STRIP_RE_REGEX);
-							compile_regex(tinrc.strip_re_regex, &strip_re_regex, PCRE_ANCHORED);
 							break;
 
-						case OPT_STRIP_WAS_REGEX:
+						case OPT_EDITOR_FORMAT:
+							if (prompt_option_string(option)) {
+								if (!strlen(tinrc.editor_format))
+									STRCPY(tinrc.editor_format, TIN_EDITOR_FMT_ON);
+							}
+							break;
+
+#ifndef CHARSET_CONVERSION
+						case OPT_MM_CHARSET:
+							if (prompt_option_string(option)) {
+								/*
+								 * No charset conversion available, assume local charset
+								 * to be network charset.
+								 */
+								STRCPY(tinrc.mm_local_charset, tinrc.mm_charset);
+							}
+							break;
+#else
+#	ifdef NO_LOCALE
+						case OPT_MM_LOCAL_CHARSET:
 							prompt_option_string(option);
-							FreeIfNeeded(strip_was_regex.re);
-							FreeIfNeeded(strip_was_regex.extra);
-							if (!strlen(tinrc.strip_was_regex)) {
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-								if (IS_LOCAL_CHARSET("UTF-8")) {
-#	if (defined(PCRE_MAJOR) && PCRE_MAJOR >= 4)
-									int i;
+							/* no locales -> can't guess local charset */
+							break;
+
+#	endif /* NO_LOCALE */
+#endif /* !CHARSET_CONVERSION */
+
+						case OPT_NEWS_HEADERS_TO_DISPLAY:
+							if (prompt_option_string(option)) {
+								build_news_headers_array(scopes[0].attribute, TRUE);
+							}
+							break;
+
+						case OPT_NEWS_HEADERS_TO_NOT_DISPLAY:
+							if (prompt_option_string(option)) {
+								build_news_headers_array(scopes[0].attribute, FALSE);
+							}
+							break;
+
+						case OPT_POSTED_ARTICLES_FILE:
+							if (prompt_option_string(option)) {
+								char buf[PATH_LEN];
+
+								strfpath(tinrc.posted_articles_file, buf, sizeof(buf), &CURR_GROUP, TRUE);
+								STRCPY(tinrc.posted_articles_file, buf);
+							}
+							break;
+
+#ifdef HAVE_COLOR
+						case OPT_QUOTE_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(quote_regex.re);
+								FreeIfNeeded(quote_regex.extra);
+								if (!strlen(tinrc.quote_regex))
+									STRCPY(tinrc.quote_regex, DEFAULT_QUOTE_REGEX);
+								compile_regex(tinrc.quote_regex, &quote_regex, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+
+						case OPT_QUOTE_REGEX2:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(quote_regex2.re);
+								FreeIfNeeded(quote_regex2.extra);
+								if (!strlen(tinrc.quote_regex2))
+									STRCPY(tinrc.quote_regex2, DEFAULT_QUOTE_REGEX2);
+								compile_regex(tinrc.quote_regex2, &quote_regex2, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+
+						case OPT_QUOTE_REGEX3:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(quote_regex3.re);
+								FreeIfNeeded(quote_regex3.extra);
+								if (!strlen(tinrc.quote_regex3))
+									STRCPY(tinrc.quote_regex3, DEFAULT_QUOTE_REGEX3);
+								compile_regex(tinrc.quote_regex3, &quote_regex3, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+#endif /* HAVE_COLOR */
+
+						case OPT_SLASHES_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(slashes_regex.re);
+								FreeIfNeeded(slashes_regex.extra);
+								if (!strlen(tinrc.slashes_regex))
+									STRCPY(tinrc.slashes_regex, DEFAULT_SLASHES_REGEX);
+								compile_regex(tinrc.slashes_regex, &slashes_regex, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+
+						case OPT_STARS_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(stars_regex.re);
+								FreeIfNeeded(stars_regex.extra);
+								if (!strlen(tinrc.stars_regex))
+									STRCPY(tinrc.stars_regex, DEFAULT_STARS_REGEX);
+								compile_regex(tinrc.stars_regex, &stars_regex, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+
+						case OPT_STROKES_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(strokes_regex.re);
+								FreeIfNeeded(strokes_regex.extra);
+								if (!strlen(tinrc.strokes_regex))
+									STRCPY(tinrc.strokes_regex, DEFAULT_STROKES_REGEX);
+								compile_regex(tinrc.strokes_regex, &strokes_regex, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+
+						case OPT_UNDERSCORES_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(underscores_regex.re);
+								FreeIfNeeded(underscores_regex.extra);
+								if (!strlen(tinrc.underscores_regex))
+									STRCPY(tinrc.underscores_regex, DEFAULT_UNDERSCORES_REGEX);
+								compile_regex(tinrc.underscores_regex, &underscores_regex, PCRE_CASELESS);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
 
-									pcre_config(PCRE_CONFIG_UTF8, &i);
-									if (i)
+						case OPT_STRIP_RE_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(strip_re_regex.re);
+								FreeIfNeeded(strip_re_regex.extra);
+								if (!strlen(tinrc.strip_re_regex))
+									STRCPY(tinrc.strip_re_regex, DEFAULT_STRIP_RE_REGEX);
+								compile_regex(tinrc.strip_re_regex, &strip_re_regex, PCRE_ANCHORED);
+							}
+							break;
+
+						case OPT_STRIP_WAS_REGEX:
+							if (prompt_option_string(option)) {
+								FreeIfNeeded(strip_was_regex.re);
+								FreeIfNeeded(strip_was_regex.extra);
+								if (!strlen(tinrc.strip_was_regex)) {
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+									if (IS_LOCAL_CHARSET("UTF-8") && utf8_pcre())
 										STRCPY(tinrc.strip_was_regex, DEFAULT_U8_STRIP_WAS_REGEX);
 									else
-#	endif /* PCRE_MAJOR && PCRE_MAJOR >= 4 */
-										STRCPY(tinrc.strip_was_regex, DEFAULT_STRIP_WAS_REGEX);
-								} else
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-									STRCPY(tinrc.strip_was_regex, DEFAULT_STRIP_WAS_REGEX);
+										STRCPY(tinrc.strip_was_regex, DEFAULT_STRIP_WAS_REGEX);
+								}
+								compile_regex(tinrc.strip_was_regex, &strip_was_regex, 0);
+							}
+							break;
+
+						case OPT_VERBATIM_BEGIN_REGEX:
+							if (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);
+								changed |= DISPLAY_OPTS;
+							}
+							break;
+
+						case OPT_VERBATIM_END_REGEX:
+							if (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);
+								changed |= DISPLAY_OPTS;
 							}
-							compile_regex(tinrc.strip_was_regex, &strip_was_regex, 0);
 							break;
 
 						case OPT_DATE_FORMAT:
-							prompt_option_string(option);
-							if (!strlen(tinrc.date_format)) {
-								STRCPY(tinrc.date_format, DEFAULT_DATE_FORMAT);
+							if (prompt_option_string(option)) {
+								if (!strlen(tinrc.date_format))
+									STRCPY(tinrc.date_format, DEFAULT_DATE_FORMAT);
+							}
+							break;
+
+						case OPT_ATTRIB_DATE_FORMAT:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(date_format);
+							break;
+
+						case OPT_ATTRIB_EDITOR_FORMAT:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(editor_format);
+							break;
+
+						case OPT_ATTRIB_FCC:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(fcc);
+							break;
+
+						case OPT_ATTRIB_FOLLOWUP_TO:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(followup_to);
+							break;
+
+						case OPT_ATTRIB_FROM:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(from);
+							break;
+
+#ifdef HAVE_ISPELL
+						case OPT_ATTRIB_ISPELL:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(ispell);
+							break;
+#endif /* HAVE_ISPELL */
+
+						case OPT_ATTRIB_MAILDIR:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(maildir);
+							break;
+
+						case OPT_ATTRIB_MAILING_LIST:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(mailing_list);
+							break;
+
+						case OPT_ATTRIB_MIME_TYPES_TO_SAVE:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(mime_types_to_save);
+							break;
+
+						case OPT_ATTRIB_NEWS_HEADERS_TO_DISPLAY:
+							if (prompt_option_string(option)) {
+								SET_STRING_ATTRIBUTE(news_headers_to_display);
+								build_news_headers_array(curr_scope->attribute, TRUE);
+							}
+							break;
+
+						case OPT_ATTRIB_NEWS_HEADERS_TO_NOT_DISPLAY:
+							if (prompt_option_string(option)) {
+								SET_STRING_ATTRIBUTE(news_headers_to_not_display);
+								build_news_headers_array(curr_scope->attribute, FALSE);
 							}
 							break;
 
+						case OPT_ATTRIB_NEWS_QUOTE_FORMAT:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(news_quote_format);
+							break;
+
+						case OPT_ATTRIB_ORGANIZATION:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(organization);
+							break;
+
+						case OPT_ATTRIB_QUICK_KILL_SCOPE:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(quick_kill_scope);
+							break;
+
+						case OPT_ATTRIB_QUICK_SELECT_SCOPE:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(quick_select_scope);
+							break;
+
+						case OPT_ATTRIB_QUOTE_CHARS:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(quote_chars);
+							break;
+
+						case OPT_ATTRIB_SAVEDIR:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(savedir);
+							break;
+
+						case OPT_ATTRIB_SAVEFILE:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(savefile);
+							break;
+
+						case OPT_ATTRIB_SIGFILE:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(sigfile);
+							break;
+
+#ifdef CHARSET_CONVERSION
+						case OPT_ATTRIB_UNDECLARED_CHARSET:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(undeclared_charset);
+							break;
+
+#endif /* CHARSET_CONVERSION */
+						case OPT_ATTRIB_X_BODY:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(x_body);
+							break;
+
+						case OPT_ATTRIB_X_HEADERS:
+							if (prompt_option_string(option))
+								SET_STRING_ATTRIBUTE(x_headers);
+							break;
+
 						default:
 							break;
 					} /* switch (option) */
@@ -1406,55 +2288,60 @@ change_config_file(
 							break;
 
 						case OPT_REREAD_ACTIVE_FILE_SECS:
-							prompt_option_num(option);
-							if (tinrc.reread_active_file_secs < 0)
-								tinrc.reread_active_file_secs = 0;
+							if (prompt_option_num(option)) {
+								if (tinrc.reread_active_file_secs < 0)
+									tinrc.reread_active_file_secs = 0;
+							}
 							break;
 
 						case OPT_RECENT_TIME:
-							prompt_option_num(option);
-							if (tinrc.recent_time < 0)
-								tinrc.recent_time = 0;
+							if (prompt_option_num(option)) {
+								if (tinrc.recent_time < 0)
+									tinrc.recent_time = 0;
+							}
 							break;
 
 						case OPT_GROUPNAME_MAX_LENGTH:
-							prompt_option_num(option);
-							if (tinrc.groupname_max_length < 0)
-								tinrc.groupname_max_length = 0;
+							if (prompt_option_num(option)) {
+								if (tinrc.groupname_max_length < 0)
+									tinrc.groupname_max_length = 0;
+							}
 							break;
 
 						case OPT_FILTER_DAYS:
-							prompt_option_num(option);
-							if (tinrc.filter_days <= 0)
-								tinrc.filter_days = 1;
+							if (prompt_option_num(option)) {
+								if (tinrc.filter_days <= 0)
+									tinrc.filter_days = 1;
+							}
 							break;
 
 						case OPT_SCORE_LIMIT_KILL:
 						case OPT_SCORE_KILL:
 						case OPT_SCORE_LIMIT_SELECT:
 						case OPT_SCORE_SELECT:
-							prompt_option_num(option);
-							check_score_defaults();
-							if (group != NULL) {
-								unfilter_articles();
-								read_filter_file(filter_file);
-								if (filter_articles(group))
-									make_threads(group, FALSE);
+							if (prompt_option_num(option)) {
+								check_score_defaults();
+								redraw_screen(option);
+								changed |= SCORE_OPTS;
 							}
-							redraw_screen(option);
 							break;
 
 						case OPT_THREAD_PERC:
-							prompt_option_num(option);
-							if (tinrc.thread_perc < 0 || tinrc.thread_perc > 100)
-								tinrc.thread_perc = THREAD_PERC_DEFAULT;
+							if (prompt_option_num(option)) {
+								if (tinrc.thread_perc < 0 || tinrc.thread_perc > 100)
+									tinrc.thread_perc = THREAD_PERC_DEFAULT;
+								UPDATE_INT_ATTRIBUTES(thread_perc);
+							}
 							break;
 
 						case OPT_WRAP_COLUMN:
-							prompt_option_num(option);
-							/* recook if in an article is open */
-							if (pgart.raw)
-								resize_article(TRUE, &pgart);
+							if (prompt_option_num(option))
+								changed |= DISPLAY_OPTS;
+							break;
+
+						case OPT_ATTRIB_THREAD_PERC:
+							if (prompt_option_num(option))
+								SET_NUM_ATTRIBUTE(thread_perc);
 							break;
 
 						default:
@@ -1494,5 +2381,1034 @@ change_config_file(
 		} /* if (change_option) */
 	} /* forever */
 	/* NOTREACHED */
-	return ret_code;
+	return;
+}
+
+
+/*
+ * scopes and attributes menu
+ */
+
+static t_function
+scope_left(
+	void)
+{
+	return GLOBAL_QUIT;
+}
+
+
+static t_function
+scope_right(
+	void)
+{
+	return SCOPE_SELECT;
+}
+
+
+static void
+show_scope_page(
+	void)
+{
+	int i;
+
+	signal_context = cScope;
+	currmenu = &scopemenu;
+
+	if (scopemenu.curr < 0)
+		scopemenu.curr = 0;
+
+	scopemenu.max = num_scope - 1;
+
+	ClearScreen();
+	set_first_screen_item();
+	center_line(0, TRUE, _(txt_scopes_menu));
+
+	for (i = scopemenu.first; i < scopemenu.first + NOTESLINES && i < scopemenu.max; ++i)
+		build_scope_line(i);
+
+	show_mini_help(SCOPE_LEVEL);
+
+	if (scopemenu.max <= 0) {
+		info_message(_(txt_no_scopes));
+		return;
+	}
+
+	draw_scope_arrow();
+}
+
+
+static void
+scope_page(
+	void)
+{
+	char key[MAXKEYLEN];
+	int i;
+	t_bool changed = FALSE;
+	t_function func;
+	t_menu *oldmenu = NULL;
+
+	if (currmenu)
+		oldmenu = currmenu;
+	scopemenu.curr = 0;
+	clear_note_area();
+	show_scope_page();
+	set_xclick_off();
+
+	forever {
+		switch ((func = handle_keypad(scope_left, scope_right, NULL, scope_keys))) {
+			case GLOBAL_QUIT:
+				if (changed)
+					write_attributes_file(local_attributes_file);
+				clear_note_area();
+				if (oldmenu)
+					currmenu = oldmenu;
+				return;
+
+			case DIGIT_1:
+			case DIGIT_2:
+			case DIGIT_3:
+			case DIGIT_4:
+			case DIGIT_5:
+			case DIGIT_6:
+			case DIGIT_7:
+			case DIGIT_8:
+			case DIGIT_9:
+				if (scopemenu.max)
+					prompt_item_num(func_to_key(func, scope_keys), _(txt_scope_select));
+				break;
+
+#ifndef NO_SHELL_ESCAPE
+			case GLOBAL_SHELL_ESCAPE:
+				do_shell_escape();
+				break;
+#endif /* !NO_SHELL_ESCAPE */
+
+			case GLOBAL_HELP:
+				show_help_page(SCOPE_LEVEL, _(txt_scopes_menu_com));
+				show_scope_page();
+				break;
+
+			case GLOBAL_FIRST_PAGE:
+				top_of_list();
+				break;
+
+			case GLOBAL_LAST_PAGE:
+				end_of_list();
+				break;
+
+			case GLOBAL_REDRAW_SCREEN:
+				my_retouch();
+				set_xclick_off();
+				show_scope_page();
+				break;
+
+			case GLOBAL_LINE_DOWN:
+				move_down();
+				break;
+
+			case GLOBAL_LINE_UP:
+				move_up();
+				break;
+
+			case GLOBAL_PAGE_DOWN:
+				page_down();
+				break;
+
+			case GLOBAL_PAGE_UP:
+				page_up();
+				break;
+
+			case GLOBAL_SCROLL_DOWN:
+				scroll_down();
+				break;
+
+			case GLOBAL_SCROLL_UP:
+				scroll_up();
+				break;
+
+			case GLOBAL_TOGGLE_HELP_DISPLAY:
+				toggle_mini_help(SCOPE_LEVEL);
+				show_scope_page();
+				break;
+
+			case SCOPE_ADD:
+				if ((i = add_new_scope())) {
+					changed = TRUE;
+					scopemenu.curr = i;
+					show_scope_page();
+				}
+				break;
+
+			case SCOPE_DELETE:
+				if (scopemenu.max) {
+					if (scopes[scopemenu.curr + 1].global)
+						info_message(_(txt_scope_operation_not_allowed));
+					else if (delete_scope(scopemenu.curr + 1)) {
+						changed = TRUE;
+						show_scope_page();
+					}
+				}
+				break;
+
+			case SCOPE_EDIT_ATTRIBUTES_FILE:
+				if (changed)
+					write_attributes_file(local_attributes_file);
+				if (!invoke_editor(local_attributes_file, attrib_file_offset, NULL))
+					break;
+				free_scopes_and_attributes();
+				read_attributes_file(FALSE);
+				assign_attributes_to_groups();
+				changed = FALSE;
+				scopemenu.curr = 0;
+				show_scope_page();
+				break;
+
+			case SCOPE_MOVE:
+				if (scopemenu.max > 1) {
+					if (scopes[scopemenu.curr + 1].global)
+						info_message(_(txt_scope_operation_not_allowed));
+					else if ((i = move_scope(scopemenu.curr + 1))) {
+						changed = TRUE;
+						scopemenu.curr = i - 1;
+						show_scope_page();
+					}
+				}
+				break;
+
+			case SCOPE_RENAME:
+				if (scopemenu.max) {
+					if (scopes[scopemenu.curr + 1].global)
+						info_message(_(txt_scope_operation_not_allowed));
+					else if (rename_scope(&scopes[scopemenu.curr + 1])) {
+						changed = TRUE;
+						show_scope_page();
+					}
+				}
+				break;
+
+			case SCOPE_SELECT:
+				if (scopemenu.max) {
+					curr_scope = &scopes[scopemenu.curr + 1];
+					config_page(NULL);
+					if (!curr_scope->global && scope_is_empty())
+						do_delete_scope(scopemenu.curr + 1);
+					curr_scope = NULL;
+					changed = TRUE;
+					show_scope_page();
+				}
+				break;
+
+			default:
+				info_message(_(txt_bad_command), printascii(key, func_to_key(GLOBAL_HELP, scope_keys)));
+				break;
+		}
+	}
+}
+
+
+static void
+draw_scope_arrow(
+	void)
+{
+	draw_arrow_mark(INDEX_TOP + scopemenu.curr - scopemenu.first);
+	if (scopemenu.curr == scopemenu.max - 1)
+		info_message(_(txt_end_of_scopes));
+}
+
+
+static void
+build_scope_line(
+	int i)
+{
+	char *sptr;
+	int len = cCOLS - 11;
+
+#ifdef USE_CURSES
+	/*
+	 * Allocate line buffer
+	 * make it the same size like in !USE_CURSES case to simplify some code
+	 */
+	sptr = my_malloc(cCOLS + 2);
+#else
+	sptr = screen[INDEX2SNUM(i)].col;
+#endif /* USE_CURSES */
+
+	snprintf(sptr, cCOLS, "  %c %s  %-*.*s%s", (scopes[i + 1].global ? '!' : ' '), tin_ltoa(i + 1, 4), len, len, scopes[i + 1].scope, cCRLF);
+	WriteLine(INDEX2LNUM(i), sptr);
+
+#ifdef USE_CURSES
+	free(sptr);
+#endif /* USE_CURSES */
+}
+
+
+/*
+ * add a new scope and return the index
+ */
+static int
+add_new_scope(
+	void)
+{
+	char buf[LEN];
+	int new_pos = 0;
+
+	if (prompt_default_string(_(txt_scope_enter), buf, sizeof(buf), (char *) NULL, HIST_OTHER))
+		new_pos = add_scope(buf);
+
+	return new_pos;
+}
+
+
+/*
+ * returns TRUE if the given scope was deleted
+ */
+static t_bool
+delete_scope(
+	int curr_pos)
+{
+	if (prompt_yn(_(txt_scope_delete), FALSE) == 1) {
+		do_delete_scope(curr_pos);
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+
+static void
+do_delete_scope(
+	int curr_pos)
+{
+	do_move_scope(curr_pos, num_scope - 1);
+	free_scope(--num_scope);
+}
+
+
+/*
+ * returns TRUE if scope was renamed
+ */
+static t_bool
+rename_scope(
+	struct t_scope *scope)
+{
+	char buf[LEN];
+
+	if (prompt_default_string(_(txt_scope_rename), buf, sizeof(buf), scope->scope, HIST_OTHER)) {
+		if (buf[0] == '\0')
+			return FALSE;
+		FreeIfNeeded(scope->scope);
+		scope->scope = my_strdup(buf);
+		return TRUE;
+	}
+
+	return FALSE;
+}
+
+
+/*
+ * look if an entry with the given scope exists and return the index
+ */
+static int
+find_scope(
+	const char *scope)
+{
+	int i;
+
+	if (!scope || !*scope)
+		return 0;
+
+	for (i = 1; i < num_scope; i++) {
+		if ((!scopes[i].global && strcasecmp(scope, scopes[i].scope) == 0))
+			return i;
+	}
+
+	return 0;
+}
+
+
+/*
+ * returns the new position of the moved scope or 0 if repositioning
+ * is not possible
+ */
+static int
+move_scope(
+	int curr_pos)
+{
+	char *p;
+	int new_pos;
+
+	clear_message();
+	if ((p = tin_getline(_(txt_scope_new_position), 1, 0, 0, FALSE, HIST_OTHER)) != NULL)
+		new_pos = atoi(p);
+	else
+		new_pos = curr_pos;
+	clear_message();
+
+	if (new_pos == curr_pos || new_pos == 0)
+		return 0;
+
+	if (new_pos >= num_scope)
+		new_pos = num_scope - 1;
+
+	if (scopes[new_pos].global) {
+		info_message(_(txt_scope_new_position_is_global));
+		return 0;
+	}
+
+	do_move_scope(curr_pos, new_pos);
+
+	return new_pos;
+}
+
+
+/*
+ * repositions a scope into scopes[]
+ */
+static void
+do_move_scope(
+	int from,
+	int to)
+{
+	struct t_scope tmp;
+
+	if (from == to)
+		return;
+
+	tmp = scopes[from];
+
+	if (from > to) {
+		while (from-- > to)
+			scopes[from + 1] = scopes[from];
+	} else {
+		while (from++ < to)
+			scopes[from - 1] = scopes[from];
+	}
+	scopes[to] = tmp;
+}
+
+
+/*
+ * free all group->attribute arrays and all scopes which are
+ * not marked as global
+ */
+static void
+free_scopes_and_attributes(
+	void)
+{
+	int i;
+
+	for_each_group(i) {
+		if (active[i].attribute && !active[i].attribute->global) {
+			free(active[i].attribute);
+			active[i].attribute = (struct t_attribute *) 0;
+		}
+	}
+
+	while (num_scope > 1 && !scopes[num_scope - 1].global)
+			free_scope(--num_scope);
+}
+
+
+/*
+ * returns TRUE if no attribute in curr_scope has state == TRUE
+ */
+static t_bool
+scope_is_empty(
+	void)
+{
+	enum option_enum i;
+
+	for (i = 0; i <= last_opt; i++) {
+		if (option_is_visible(i) && !option_is_title(i) && check_state(i))
+			return FALSE;
+	}
+
+	return TRUE;
+}
+
+
+/*
+ * returns the state of the given attribute
+ */
+static t_bool
+check_state(
+	enum option_enum option)
+{
+	switch (option) {
+		case OPT_ATTRIB_ADD_POSTED_TO_FILTER:
+			return curr_scope->state->add_posted_to_filter;
+		case OPT_ATTRIB_ADVERTISING:
+			return curr_scope->state->advertising;
+		case OPT_ATTRIB_ALTERNATIVE_HANDLING:
+			return curr_scope->state->alternative_handling;
+		case OPT_ATTRIB_ASK_FOR_METAMAIL:
+			return curr_scope->state->ask_for_metamail;
+		case OPT_ATTRIB_AUTO_CC_BCC:
+			return curr_scope->state->auto_cc_bcc;
+		case OPT_ATTRIB_AUTO_LIST_THREAD:
+			return curr_scope->state->auto_list_thread;
+		case OPT_ATTRIB_AUTO_SAVE:
+			return curr_scope->state->auto_save;
+		case OPT_ATTRIB_AUTO_SELECT:
+			return curr_scope->state->auto_select;
+		case OPT_ATTRIB_BATCH_SAVE:
+			return curr_scope->state->batch_save;
+		case OPT_ATTRIB_DATE_FORMAT:
+			return curr_scope->state->date_format;
+		case OPT_ATTRIB_DELETE_TMP_FILES:
+			return curr_scope->state->delete_tmp_files;
+		case OPT_ATTRIB_EDITOR_FORMAT:
+			return curr_scope->state->editor_format;
+		case OPT_ATTRIB_FCC:
+			return curr_scope->state->fcc;
+		case OPT_ATTRIB_FOLLOWUP_TO:
+			return curr_scope->state->followup_to;
+		case OPT_ATTRIB_FROM:
+			return curr_scope->state->from;
+		case OPT_ATTRIB_GROUP_CATCHUP_ON_EXIT:
+			return curr_scope->state->group_catchup_on_exit;
+#ifdef HAVE_ISPELL
+		case OPT_ATTRIB_ISPELL:
+			return curr_scope->state->ispell;
+#endif /* HAVE_ISPELL */
+		case OPT_ATTRIB_MAILDIR:
+			return curr_scope->state->maildir;
+		case OPT_ATTRIB_MAIL_8BIT_HEADER:
+			return curr_scope->state->mail_8bit_header;
+		case OPT_ATTRIB_MAIL_MIME_ENCODING:
+			return curr_scope->state->mail_mime_encoding;
+		case OPT_ATTRIB_MAILING_LIST:
+			return curr_scope->state->mailing_list;
+		case OPT_ATTRIB_MARK_IGNORE_TAGS:
+			return curr_scope->state->mark_ignore_tags;
+		case OPT_ATTRIB_MARK_SAVED_READ:
+			return curr_scope->state->mark_saved_read;
+		case OPT_ATTRIB_MIME_FORWARD:
+			return curr_scope->state->mime_forward;
+		case OPT_ATTRIB_MIME_TYPES_TO_SAVE:
+			return curr_scope->state->mime_types_to_save;
+		case OPT_ATTRIB_NEWS_HEADERS_TO_DISPLAY:
+			return curr_scope->state->news_headers_to_display;
+		case OPT_ATTRIB_NEWS_HEADERS_TO_NOT_DISPLAY:
+			return curr_scope->state->news_headers_to_not_display;
+		case OPT_ATTRIB_NEWS_QUOTE_FORMAT:
+			return curr_scope->state->news_quote_format;
+		case OPT_ATTRIB_ORGANIZATION:
+			return curr_scope->state->organization;
+		case OPT_ATTRIB_POST_8BIT_HEADER:
+			return curr_scope->state->post_8bit_header;
+		case OPT_ATTRIB_POST_MIME_ENCODING:
+			return curr_scope->state->post_mime_encoding;
+		case OPT_ATTRIB_POST_PROCESS_VIEW:
+			return curr_scope->state->post_process_view;
+		case OPT_ATTRIB_POS_FIRST_UNREAD:
+			return curr_scope->state->pos_first_unread;
+#ifndef DISABLE_PRINTING
+		case OPT_ATTRIB_PRINT_HEADER:
+			return curr_scope->state->print_header;
+#endif /* !DISABLE_PRINTING */
+		case OPT_ATTRIB_PROCESS_ONLY_UNREAD:
+			return curr_scope->state->process_only_unread;
+		case OPT_ATTRIB_PROMPT_FOLLOWUPTO:
+			return curr_scope->state->prompt_followupto;
+		case OPT_ATTRIB_QUICK_KILL_SCOPE:
+			return curr_scope->state->quick_kill_scope;
+		case OPT_ATTRIB_QUICK_KILL_HEADER:
+			return curr_scope->state->quick_kill_header;
+		case OPT_ATTRIB_QUICK_KILL_CASE:
+			return curr_scope->state->quick_kill_case;
+		case OPT_ATTRIB_QUICK_KILL_EXPIRE:
+			return curr_scope->state->quick_kill_expire;
+		case OPT_ATTRIB_QUICK_SELECT_SCOPE:
+			return curr_scope->state->quick_select_scope;
+		case OPT_ATTRIB_QUICK_SELECT_HEADER:
+			return curr_scope->state->quick_select_header;
+		case OPT_ATTRIB_QUICK_SELECT_CASE:
+			return curr_scope->state->quick_select_case;
+		case OPT_ATTRIB_QUICK_SELECT_EXPIRE:
+			return curr_scope->state->quick_select_expire;
+		case OPT_ATTRIB_QUOTE_CHARS:
+			return curr_scope->state->quote_chars;
+		case OPT_ATTRIB_SAVEDIR:
+			return curr_scope->state->savedir;
+		case OPT_ATTRIB_SAVEFILE:
+			return curr_scope->state->savefile;
+		case OPT_ATTRIB_SHOW_AUTHOR:
+			return curr_scope->state->show_author;
+		case OPT_ATTRIB_SHOW_INFO:
+			return curr_scope->state->show_info;
+		case OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS:
+			return curr_scope->state->show_only_unread_arts;
+		case OPT_ATTRIB_SHOW_SIGNATURES:
+			return curr_scope->state->show_signatures;
+		case OPT_ATTRIB_SIGDASHES:
+			return curr_scope->state->sigdashes;
+		case OPT_ATTRIB_SIGFILE:
+			return curr_scope->state->sigfile;
+		case OPT_ATTRIB_SIGNATURE_REPOST:
+			return curr_scope->state->signature_repost;
+		case OPT_ATTRIB_START_EDITOR_OFFSET:
+			return curr_scope->state->start_editor_offset;
+		case OPT_ATTRIB_THREAD_ARTICLES:
+			return curr_scope->state->thread_articles;
+		case OPT_ATTRIB_THREAD_CATCHUP_ON_EXIT:
+			return curr_scope->state->thread_catchup_on_exit;
+		case OPT_ATTRIB_THREAD_PERC:
+			return curr_scope->state->thread_perc;
+		case OPT_ATTRIB_TRIM_ARTICLE_BODY:
+			return curr_scope->state->trim_article_body;
+		case OPT_ATTRIB_TEX2ISO_CONV:
+			return curr_scope->state->tex2iso_conv;
+		case OPT_ATTRIB_SORT_THREADS_TYPE:
+			return curr_scope->state->sort_threads_type;
+#ifdef CHARSET_CONVERSION
+		case OPT_ATTRIB_MM_NETWORK_CHARSET:
+			return curr_scope->state->mm_network_charset;
+		case OPT_ATTRIB_UNDECLARED_CHARSET:
+			return curr_scope->state->undeclared_charset;
+#endif /* CHARSET_CONVERSION */
+		case OPT_ATTRIB_VERBATIM_HANDLING:
+			return curr_scope->state->verbatim_handling;
+		case OPT_ATTRIB_WRAP_ON_NEXT_UNREAD:
+			return curr_scope->state->wrap_on_next_unread;
+		case OPT_ATTRIB_SORT_ARTICLE_TYPE:
+			return curr_scope->state->sort_article_type;
+		case OPT_ATTRIB_POST_PROCESS_TYPE:
+			return curr_scope->state->post_process_type;
+		case OPT_ATTRIB_X_BODY:
+			return curr_scope->state->x_body;
+		case OPT_ATTRIB_X_COMMENT_TO:
+			return curr_scope->state->x_comment_to;
+		case OPT_ATTRIB_X_HEADERS:
+			return curr_scope->state->x_headers;
+
+		default:
+			return FALSE;
+	}
+}
+
+
+/*
+ * set the state of the given attribute to FALSE and the corresponding
+ * tinrc.attrib_* to a default value
+ */
+static void
+reset_state(
+	enum option_enum option)
+{
+	struct t_scope *default_scope = &scopes[0];
+
+	switch (option) {
+		case OPT_ATTRIB_ADD_POSTED_TO_FILTER:
+			curr_scope->state->add_posted_to_filter = FALSE;
+			tinrc.attrib_add_posted_to_filter = default_scope->attribute->add_posted_to_filter;
+			break;
+		case OPT_ATTRIB_ADVERTISING:
+			curr_scope->state->advertising = FALSE;
+			tinrc.attrib_advertising = default_scope->attribute->advertising;
+			break;
+		case OPT_ATTRIB_ALTERNATIVE_HANDLING:
+			curr_scope->state->alternative_handling = FALSE;
+			tinrc.attrib_alternative_handling = default_scope->attribute->alternative_handling;
+			break;
+		case OPT_ATTRIB_ASK_FOR_METAMAIL:
+			curr_scope->state->ask_for_metamail = FALSE;
+			tinrc.attrib_ask_for_metamail = default_scope->attribute->ask_for_metamail;
+			break;
+		case OPT_ATTRIB_AUTO_CC_BCC:
+			curr_scope->state->auto_cc_bcc = FALSE;
+			tinrc.attrib_auto_cc_bcc = default_scope->attribute->auto_cc_bcc;
+			break;
+		case OPT_ATTRIB_AUTO_LIST_THREAD:
+			curr_scope->state->auto_list_thread = FALSE;
+			tinrc.attrib_auto_list_thread = default_scope->attribute->auto_list_thread;
+			break;
+		case OPT_ATTRIB_AUTO_SAVE:
+			curr_scope->state->auto_save = FALSE;
+			tinrc.attrib_auto_save = default_scope->attribute->auto_save;
+			break;
+		case OPT_ATTRIB_AUTO_SELECT:
+			curr_scope->state->auto_select = FALSE;
+			tinrc.attrib_auto_select = default_scope->attribute->auto_select;
+			break;
+		case OPT_ATTRIB_BATCH_SAVE:
+			curr_scope->state->batch_save = FALSE;
+			tinrc.attrib_batch_save = default_scope->attribute->batch_save;
+			break;
+		case OPT_ATTRIB_DATE_FORMAT:
+			FreeAndNull(curr_scope->attribute->date_format);
+			curr_scope->state->date_format = FALSE;
+			snprintf(tinrc.attrib_date_format, sizeof(tinrc.attrib_date_format), "%s", BlankIfNull(default_scope->attribute->date_format));
+			break;
+		case OPT_ATTRIB_DELETE_TMP_FILES:
+			curr_scope->state->delete_tmp_files = FALSE;
+			tinrc.attrib_delete_tmp_files = default_scope->attribute->delete_tmp_files;
+			break;
+		case OPT_ATTRIB_EDITOR_FORMAT:
+			FreeAndNull(curr_scope->attribute->editor_format);
+			curr_scope->state->editor_format = FALSE;
+			snprintf(tinrc.attrib_editor_format, sizeof(tinrc.attrib_editor_format), "%s", BlankIfNull(default_scope->attribute->editor_format));
+			break;
+		case OPT_ATTRIB_FCC:
+			FreeAndNull(curr_scope->attribute->fcc);
+			curr_scope->state->fcc = FALSE;
+			snprintf(tinrc.attrib_fcc, sizeof(tinrc.attrib_fcc), "%s", BlankIfNull(default_scope->attribute->fcc));
+			break;
+		case OPT_ATTRIB_FOLLOWUP_TO:
+			FreeAndNull(curr_scope->attribute->followup_to);
+			curr_scope->state->followup_to = FALSE;
+			snprintf(tinrc.attrib_followup_to, sizeof(tinrc.attrib_followup_to), "%s", BlankIfNull(default_scope->attribute->followup_to));
+			break;
+		case OPT_ATTRIB_FROM:
+			FreeAndNull(curr_scope->attribute->from);
+			curr_scope->state->from = FALSE;
+			snprintf(tinrc.attrib_from, sizeof(tinrc.attrib_from), "%s", BlankIfNull(default_scope->attribute->from));
+			break;
+		case OPT_ATTRIB_GROUP_CATCHUP_ON_EXIT:
+			curr_scope->state->group_catchup_on_exit = FALSE;
+			tinrc.attrib_group_catchup_on_exit = default_scope->attribute->group_catchup_on_exit;
+			break;
+#ifdef HAVE_ISPELL
+		case OPT_ATTRIB_ISPELL:
+			FreeAndNull(curr_scope->attribute->ispell);
+			curr_scope->state->ispell = FALSE;
+			snprintf(tinrc.attrib_ispell, sizeof(tinrc.attrib_ispell), "%s", BlankIfNull(default_scope->attribute->ispell));
+			break;
+#endif /* HAVE_ISPELL */
+		case OPT_ATTRIB_MAILDIR:
+			FreeAndNull(curr_scope->attribute->maildir);
+			curr_scope->state->maildir = FALSE;
+			snprintf(tinrc.attrib_maildir, sizeof(tinrc.attrib_maildir), "%s", BlankIfNull(default_scope->attribute->maildir));
+			break;
+		case OPT_ATTRIB_MAIL_8BIT_HEADER:
+			curr_scope->state->mail_8bit_header = FALSE;
+			tinrc.attrib_mail_8bit_header = default_scope->attribute->mail_8bit_header;
+			break;
+		case OPT_ATTRIB_MAIL_MIME_ENCODING:
+			curr_scope->state->mail_mime_encoding = FALSE;
+			tinrc.attrib_mail_mime_encoding = default_scope->attribute->mail_mime_encoding;
+			break;
+		case OPT_ATTRIB_MAILING_LIST:
+			FreeAndNull(curr_scope->attribute->mailing_list);
+			curr_scope->state->mailing_list = FALSE;
+			snprintf(tinrc.attrib_mailing_list, sizeof(tinrc.attrib_mailing_list), "%s", BlankIfNull(default_scope->attribute->mailing_list));
+			break;
+		case OPT_ATTRIB_MARK_IGNORE_TAGS:
+			curr_scope->state->mark_ignore_tags = FALSE;
+			tinrc.attrib_mark_ignore_tags = default_scope->attribute->mark_ignore_tags;
+			break;
+		case OPT_ATTRIB_MARK_SAVED_READ:
+			curr_scope->state->mark_saved_read = FALSE;
+			tinrc.attrib_mark_saved_read = default_scope->attribute->mark_saved_read;
+			break;
+		case OPT_ATTRIB_MIME_FORWARD:
+			curr_scope->state->mime_forward = FALSE;
+			tinrc.attrib_mime_forward = default_scope->attribute->mime_forward;
+			break;
+		case OPT_ATTRIB_MIME_TYPES_TO_SAVE:
+			FreeAndNull(curr_scope->attribute->mime_types_to_save);
+			curr_scope->state->mime_types_to_save = FALSE;
+			snprintf(tinrc.attrib_mime_types_to_save, sizeof(tinrc.attrib_mime_types_to_save), "%s", BlankIfNull(default_scope->attribute->mime_types_to_save));
+			break;
+		case OPT_ATTRIB_NEWS_HEADERS_TO_DISPLAY:
+			FreeAndNull(curr_scope->attribute->news_headers_to_display);
+			build_news_headers_array(curr_scope->attribute, TRUE);
+			curr_scope->state->news_headers_to_display = FALSE;
+			snprintf(tinrc.attrib_news_headers_to_display, sizeof(tinrc.attrib_news_headers_to_display), "%s", BlankIfNull(default_scope->attribute->news_headers_to_display));
+			break;
+		case OPT_ATTRIB_NEWS_HEADERS_TO_NOT_DISPLAY:
+			FreeAndNull(curr_scope->attribute->news_headers_to_not_display);
+			build_news_headers_array(curr_scope->attribute, FALSE);
+			curr_scope->state->news_headers_to_not_display = FALSE;
+			snprintf(tinrc.attrib_news_headers_to_not_display, sizeof(tinrc.attrib_news_headers_to_not_display), "%s", BlankIfNull(default_scope->attribute->news_headers_to_not_display));
+			break;
+		case OPT_ATTRIB_QUICK_KILL_SCOPE:
+			FreeAndNull(curr_scope->attribute->quick_kill_scope);
+			curr_scope->state->quick_kill_scope = FALSE;
+			snprintf(tinrc.attrib_quick_kill_scope, sizeof(tinrc.attrib_quick_kill_scope), "%s", BlankIfNull(default_scope->attribute->quick_kill_scope));
+			break;
+		case OPT_ATTRIB_QUICK_KILL_HEADER:
+			curr_scope->state->quick_kill_header = FALSE;
+			tinrc.attrib_quick_kill_header = default_scope->attribute->quick_kill_header;
+			break;
+		case OPT_ATTRIB_QUICK_KILL_CASE:
+			curr_scope->state->quick_kill_case = FALSE;
+			tinrc.attrib_quick_kill_case = default_scope->attribute->quick_kill_case;
+			break;
+		case OPT_ATTRIB_QUICK_KILL_EXPIRE:
+			curr_scope->state->quick_kill_expire = FALSE;
+			tinrc.attrib_quick_kill_expire = default_scope->attribute->quick_kill_expire;
+			break;
+		case OPT_ATTRIB_QUICK_SELECT_SCOPE:
+			FreeAndNull(curr_scope->attribute->quick_select_scope);
+			curr_scope->state->quick_select_scope = FALSE;
+			snprintf(tinrc.attrib_quick_select_scope, sizeof(tinrc.attrib_quick_select_scope), "%s", BlankIfNull(default_scope->attribute->quick_select_scope));
+			break;
+		case OPT_ATTRIB_QUICK_SELECT_HEADER:
+			curr_scope->state->quick_select_header = FALSE;
+			tinrc.attrib_quick_select_header = default_scope->attribute->quick_select_header;
+			break;
+		case OPT_ATTRIB_QUICK_SELECT_CASE:
+			curr_scope->state->quick_select_case = FALSE;
+			tinrc.attrib_quick_select_case = default_scope->attribute->quick_select_case;
+			break;
+		case OPT_ATTRIB_QUICK_SELECT_EXPIRE:
+			curr_scope->state->quick_select_expire = FALSE;
+			tinrc.attrib_quick_select_expire = default_scope->attribute->quick_select_expire;
+			break;
+		case OPT_ATTRIB_NEWS_QUOTE_FORMAT:
+			FreeAndNull(curr_scope->attribute->news_quote_format);
+			curr_scope->state->news_quote_format = FALSE;
+			snprintf(tinrc.attrib_news_quote_format, sizeof(tinrc.attrib_news_quote_format), "%s", BlankIfNull(default_scope->attribute->news_quote_format));
+			break;
+		case OPT_ATTRIB_ORGANIZATION:
+			FreeAndNull(curr_scope->attribute->organization);
+			curr_scope->state->organization = FALSE;
+			snprintf(tinrc.attrib_organization, sizeof(tinrc.attrib_organization), "%s", BlankIfNull(default_scope->attribute->organization));
+			break;
+		case OPT_ATTRIB_POST_8BIT_HEADER:
+			curr_scope->state->post_8bit_header = FALSE;
+			tinrc.attrib_post_8bit_header = default_scope->attribute->post_8bit_header;
+			break;
+		case OPT_ATTRIB_POST_MIME_ENCODING:
+			curr_scope->state->post_mime_encoding = FALSE;
+			tinrc.attrib_post_mime_encoding = default_scope->attribute->post_mime_encoding;
+			break;
+		case OPT_ATTRIB_POST_PROCESS_VIEW:
+			curr_scope->state->post_process_view = FALSE;
+			tinrc.attrib_post_process_view = default_scope->attribute->post_process_view;
+			break;
+		case OPT_ATTRIB_POS_FIRST_UNREAD:
+			curr_scope->state->pos_first_unread = FALSE;
+			tinrc.attrib_pos_first_unread = default_scope->attribute->pos_first_unread;
+			break;
+#ifndef DISABLE_PRINTING
+		case OPT_ATTRIB_PRINT_HEADER:
+			curr_scope->state->print_header = FALSE;
+			tinrc.attrib_print_header = default_scope->attribute->print_header;
+			break;
+#endif /* !DISABLE_PRINTING */
+		case OPT_ATTRIB_PROCESS_ONLY_UNREAD:
+			curr_scope->state->process_only_unread = FALSE;
+			tinrc.attrib_process_only_unread = default_scope->attribute->process_only_unread;
+			break;
+		case OPT_ATTRIB_PROMPT_FOLLOWUPTO:
+			curr_scope->state->prompt_followupto = FALSE;
+			tinrc.attrib_prompt_followupto = default_scope->attribute->prompt_followupto;
+			break;
+		case OPT_ATTRIB_QUOTE_CHARS:
+			FreeAndNull(curr_scope->attribute->quote_chars);
+			curr_scope->state->quote_chars = FALSE;
+			snprintf(tinrc.attrib_quote_chars, sizeof(tinrc.attrib_quote_chars), "%s", BlankIfNull(default_scope->attribute->quote_chars));
+			break;
+		case OPT_ATTRIB_SAVEDIR:
+			FreeAndNull(curr_scope->attribute->savedir);
+			curr_scope->state->savedir = FALSE;
+			snprintf(tinrc.attrib_savedir, sizeof(tinrc.attrib_savedir), "%s", BlankIfNull(default_scope->attribute->savedir));
+			break;
+		case OPT_ATTRIB_SAVEFILE:
+			FreeAndNull(curr_scope->attribute->savefile);
+			curr_scope->state->savefile = FALSE;
+			snprintf(tinrc.attrib_savefile, sizeof(tinrc.attrib_savefile), "%s", BlankIfNull(default_scope->attribute->savefile));
+			break;
+		case OPT_ATTRIB_SHOW_AUTHOR:
+			curr_scope->state->show_author = FALSE;
+			tinrc.attrib_show_author = default_scope->attribute->show_author;
+			break;
+		case OPT_ATTRIB_SHOW_INFO:
+			curr_scope->state->show_info = FALSE;
+			tinrc.attrib_show_info = default_scope->attribute->show_info;
+			break;
+		case OPT_ATTRIB_SHOW_ONLY_UNREAD_ARTS:
+			curr_scope->state->show_only_unread_arts = FALSE;
+			tinrc.attrib_show_only_unread_arts = default_scope->attribute->show_only_unread_arts;
+			break;
+		case OPT_ATTRIB_SHOW_SIGNATURES:
+			curr_scope->state->show_signatures = FALSE;
+			tinrc.attrib_show_signatures = default_scope->attribute->show_signatures;
+			break;
+		case OPT_ATTRIB_SIGDASHES:
+			curr_scope->state->sigdashes = FALSE;
+			tinrc.attrib_sigdashes = default_scope->attribute->sigdashes;
+			break;
+		case OPT_ATTRIB_SIGFILE:
+			FreeAndNull(curr_scope->attribute->sigfile);
+			curr_scope->state->sigfile = FALSE;
+			snprintf(tinrc.attrib_sigfile, sizeof(tinrc.attrib_sigfile), "%s", BlankIfNull(default_scope->attribute->sigfile));
+			break;
+		case OPT_ATTRIB_SIGNATURE_REPOST:
+			curr_scope->state->signature_repost = FALSE;
+			tinrc.attrib_signature_repost = default_scope->attribute->signature_repost;
+			break;
+		case OPT_ATTRIB_START_EDITOR_OFFSET:
+			curr_scope->state->start_editor_offset = FALSE;
+			tinrc.attrib_start_editor_offset = default_scope->attribute->start_editor_offset;
+			break;
+		case OPT_ATTRIB_THREAD_ARTICLES:
+			curr_scope->state->thread_articles = FALSE;
+			tinrc.attrib_thread_articles = default_scope->attribute->thread_articles;
+			break;
+		case OPT_ATTRIB_THREAD_CATCHUP_ON_EXIT:
+			curr_scope->state->thread_catchup_on_exit = FALSE;
+			tinrc.attrib_thread_catchup_on_exit = default_scope->attribute->thread_catchup_on_exit;
+			break;
+		case OPT_ATTRIB_THREAD_PERC:
+			curr_scope->state->thread_perc = FALSE;
+			tinrc.attrib_thread_perc = default_scope->attribute->thread_perc;
+			break;
+		case OPT_ATTRIB_TRIM_ARTICLE_BODY:
+			curr_scope->state->trim_article_body = FALSE;
+			tinrc.attrib_trim_article_body = default_scope->attribute->trim_article_body;
+			break;
+		case OPT_ATTRIB_TEX2ISO_CONV:
+			curr_scope->state->tex2iso_conv = FALSE;
+			tinrc.attrib_tex2iso_conv = default_scope->attribute->tex2iso_conv;
+			break;
+		case OPT_ATTRIB_SORT_THREADS_TYPE:
+			curr_scope->state->sort_threads_type = FALSE;
+			tinrc.attrib_sort_threads_type = default_scope->attribute->sort_threads_type;
+			break;
+#ifdef CHARSET_CONVERSION
+		case OPT_ATTRIB_MM_NETWORK_CHARSET:
+			curr_scope->state->mm_network_charset = FALSE;
+			tinrc.attrib_mm_network_charset = default_scope->attribute->mm_network_charset;
+			break;
+		case OPT_ATTRIB_UNDECLARED_CHARSET:
+			FreeAndNull(curr_scope->attribute->undeclared_charset);
+			curr_scope->state->undeclared_charset = FALSE;
+			snprintf(tinrc.attrib_undeclared_charset, sizeof(tinrc.attrib_undeclared_charset), "%s", BlankIfNull(default_scope->attribute->undeclared_charset));
+			break;
+#endif /* CHARSET_CONVERSION */
+		case OPT_ATTRIB_VERBATIM_HANDLING:
+			curr_scope->state->verbatim_handling = FALSE;
+			tinrc.attrib_verbatim_handling = default_scope->attribute->verbatim_handling;
+			break;
+		case OPT_ATTRIB_WRAP_ON_NEXT_UNREAD:
+			curr_scope->state->wrap_on_next_unread = FALSE;
+			tinrc.attrib_wrap_on_next_unread = default_scope->attribute->wrap_on_next_unread;
+			break;
+		case OPT_ATTRIB_SORT_ARTICLE_TYPE:
+			curr_scope->state->sort_article_type = FALSE;
+			tinrc.attrib_sort_article_type = default_scope->attribute->sort_article_type;
+			break;
+		case OPT_ATTRIB_POST_PROCESS_TYPE:
+			curr_scope->state->post_process_type = FALSE;
+			tinrc.attrib_post_process_type = default_scope->attribute->post_process_type;
+			break;
+		case OPT_ATTRIB_X_BODY:
+			FreeAndNull(curr_scope->attribute->x_body);
+			curr_scope->state->x_body = FALSE;
+			snprintf(tinrc.attrib_x_body, sizeof(tinrc.attrib_x_body), "%s", BlankIfNull(default_scope->attribute->x_body));
+			break;
+		case OPT_ATTRIB_X_COMMENT_TO:
+			curr_scope->state->x_comment_to = FALSE;
+			tinrc.attrib_x_comment_to = default_scope->attribute->x_comment_to;
+			break;
+		case OPT_ATTRIB_X_HEADERS:
+			FreeAndNull(curr_scope->attribute->x_headers);
+			curr_scope->state->x_headers = FALSE;
+			snprintf(tinrc.attrib_x_headers, sizeof(tinrc.attrib_x_headers), "%s", BlankIfNull(default_scope->attribute->x_headers));
+			break;
+
+		default:
+			break;
+	}
+}
+
+
+#define INITIALIZE_STRING_ATTRIBUTE(option) do { \
+		if (curr_scope->state->option) \
+			snprintf(CAO(tinrc.attrib_, option), sizeof(CAO(tinrc.attrib_, option)), "%s", curr_scope->attribute->option); \
+		else \
+			snprintf(CAO(tinrc.attrib_, option), sizeof(CAO(tinrc.attrib_, option)), "%s", BlankIfNull(default_scope->attribute->option)); \
+	} while (0)
+#define INITIALIZE_NUM_ATTRIBUTE(option) do { \
+		if (curr_scope->state->option) \
+			CAO(tinrc.attrib_, option) = curr_scope->attribute->option; \
+		else \
+			CAO(tinrc.attrib_, option) = default_scope->attribute->option; \
+	} while (0)
+
+static void
+initialize_attributes(
+	void)
+{
+	struct t_scope *default_scope = &scopes[0];
+
+	INITIALIZE_NUM_ATTRIBUTE(add_posted_to_filter);
+	INITIALIZE_NUM_ATTRIBUTE(advertising);
+	INITIALIZE_NUM_ATTRIBUTE(alternative_handling);
+	INITIALIZE_NUM_ATTRIBUTE(ask_for_metamail);
+	INITIALIZE_NUM_ATTRIBUTE(auto_cc_bcc);
+	INITIALIZE_NUM_ATTRIBUTE(auto_list_thread);
+	INITIALIZE_NUM_ATTRIBUTE(auto_save);
+	INITIALIZE_NUM_ATTRIBUTE(auto_select);
+	INITIALIZE_NUM_ATTRIBUTE(batch_save);
+	INITIALIZE_NUM_ATTRIBUTE(delete_tmp_files);
+	INITIALIZE_NUM_ATTRIBUTE(group_catchup_on_exit);
+	INITIALIZE_NUM_ATTRIBUTE(mail_8bit_header);
+	INITIALIZE_NUM_ATTRIBUTE(mail_mime_encoding);
+	INITIALIZE_NUM_ATTRIBUTE(mark_ignore_tags);
+	INITIALIZE_NUM_ATTRIBUTE(mark_saved_read);
+	INITIALIZE_NUM_ATTRIBUTE(mime_forward);
+	INITIALIZE_NUM_ATTRIBUTE(pos_first_unread);
+	INITIALIZE_NUM_ATTRIBUTE(post_8bit_header);
+	INITIALIZE_NUM_ATTRIBUTE(post_mime_encoding);
+	INITIALIZE_NUM_ATTRIBUTE(post_process_view);
+#ifndef DISABLE_PRINTING
+	INITIALIZE_NUM_ATTRIBUTE(print_header);
+#endif /* !DISABLE_PRINTING */
+	INITIALIZE_NUM_ATTRIBUTE(process_only_unread);
+	INITIALIZE_NUM_ATTRIBUTE(prompt_followupto);
+	INITIALIZE_NUM_ATTRIBUTE(quick_kill_header);
+	INITIALIZE_NUM_ATTRIBUTE(quick_kill_case);
+	INITIALIZE_NUM_ATTRIBUTE(quick_kill_expire);
+	INITIALIZE_NUM_ATTRIBUTE(quick_select_header);
+	INITIALIZE_NUM_ATTRIBUTE(quick_select_case);
+	INITIALIZE_NUM_ATTRIBUTE(quick_select_expire);
+	INITIALIZE_NUM_ATTRIBUTE(show_author);
+	INITIALIZE_NUM_ATTRIBUTE(show_info);
+	INITIALIZE_NUM_ATTRIBUTE(show_only_unread_arts);
+	INITIALIZE_NUM_ATTRIBUTE(show_signatures);
+	INITIALIZE_NUM_ATTRIBUTE(sigdashes);
+	INITIALIZE_NUM_ATTRIBUTE(signature_repost);
+	INITIALIZE_NUM_ATTRIBUTE(start_editor_offset);
+	INITIALIZE_NUM_ATTRIBUTE(thread_articles);
+	INITIALIZE_NUM_ATTRIBUTE(thread_catchup_on_exit);
+	INITIALIZE_NUM_ATTRIBUTE(thread_perc);
+	INITIALIZE_NUM_ATTRIBUTE(trim_article_body);
+	INITIALIZE_NUM_ATTRIBUTE(tex2iso_conv);
+	INITIALIZE_NUM_ATTRIBUTE(verbatim_handling);
+	INITIALIZE_NUM_ATTRIBUTE(wrap_on_next_unread);
+	INITIALIZE_NUM_ATTRIBUTE(sort_article_type);
+	INITIALIZE_NUM_ATTRIBUTE(sort_threads_type);
+	INITIALIZE_NUM_ATTRIBUTE(post_process_type);
+	INITIALIZE_NUM_ATTRIBUTE(x_comment_to);
+	INITIALIZE_STRING_ATTRIBUTE(date_format);
+	INITIALIZE_STRING_ATTRIBUTE(editor_format);
+	INITIALIZE_STRING_ATTRIBUTE(fcc);
+	INITIALIZE_STRING_ATTRIBUTE(followup_to);
+	INITIALIZE_STRING_ATTRIBUTE(from);
+#ifdef HAVE_ISPELL
+	INITIALIZE_STRING_ATTRIBUTE(ispell);
+#endif /* HAVE_ISPELL */
+	INITIALIZE_STRING_ATTRIBUTE(maildir);
+	INITIALIZE_STRING_ATTRIBUTE(mailing_list);
+	INITIALIZE_STRING_ATTRIBUTE(mime_types_to_save);
+	INITIALIZE_STRING_ATTRIBUTE(news_headers_to_display);
+	INITIALIZE_STRING_ATTRIBUTE(news_headers_to_not_display);
+	INITIALIZE_STRING_ATTRIBUTE(news_quote_format);
+	INITIALIZE_STRING_ATTRIBUTE(organization);
+	INITIALIZE_STRING_ATTRIBUTE(quick_kill_scope);
+	INITIALIZE_STRING_ATTRIBUTE(quick_select_scope);
+	INITIALIZE_STRING_ATTRIBUTE(quote_chars);
+	INITIALIZE_STRING_ATTRIBUTE(savedir);
+	INITIALIZE_STRING_ATTRIBUTE(savefile);
+	INITIALIZE_STRING_ATTRIBUTE(sigfile);
+#ifdef CHARSET_CONVERSION
+	INITIALIZE_NUM_ATTRIBUTE(mm_network_charset);
+	INITIALIZE_STRING_ATTRIBUTE(undeclared_charset);
+#endif /* CHARSET_CONVERSION */
+	INITIALIZE_STRING_ATTRIBUTE(x_body);
+	INITIALIZE_STRING_ATTRIBUTE(x_headers);
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/page.c tin-2.0.0/src/page.c
--- tin-1.8.3/src/page.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/page.c	2011-05-10 15:46:13.408057217 +0200
@@ -3,10 +3,10 @@
  *  Module    : page.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-04-17
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,13 +42,14 @@
 #	include "tcurses.h"
 #endif /* !TCURSES_H */
 
-
+#if 0
 #if defined(HAVE_IDNA_H) && !defined(_IDNA_H)
 #	include <idna.h>
 #endif /* HAVE_IDNA_H && !_IDNA_H */
 #if defined(HAVE_STRINGPREP_H) && !defined(_STRINGPREP_H)
 #	include <stringprep.h>
-#endif /* HAVE_STRINGPREP_H & !_STRINGPREP_H */
+#endif /* HAVE_STRINGPREP_H && !_STRINGPREP_H */
+#endif /* 0 */
 
 /*
  * PAGE_HEADER is the size in lines of the article page header
@@ -62,6 +63,8 @@ static FILE *note_fp;			/* active stream
 static int artlines;			/* active # of lines in pager */
 static t_lineinfo *artline;	/* active 'lineinfo' data */
 
+static t_url *url_list;
+
 t_openartinfo pgart =	/* Global context of article open in the pager */
 	{
 		{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FALSE, 0 },
@@ -72,6 +75,8 @@ t_openartinfo pgart =	/* Global context 
 int last_resp;			/* previous & current article # in arts[] for '-' command */
 int this_resp;
 
+size_t tabwidth = 8;
+
 static struct t_header *note_h = &pgart.hdr;	/* Easy access to article headers */
 
 static FILE *info_file;
@@ -81,39 +86,49 @@ static int hide_uue;			/* set when uuenc
 static int num_info_lines;
 static int reveal_ctrl_l_lines;	/* number of lines (from top) with de-activated ^L */
 static int rotate;				/* 0=normal, 13=rot13 decode */
-static int tabwidth = 8;
 static int scroll_region_top;	/* first screen line for displayed message */
 static int search_line;			/* Line to commence next search from */
 static t_lineinfo *infoline = (t_lineinfo *) 0;
 
-static t_bool show_all_headers;	/* CTRL-H with headers specified */
+static t_bool show_all_headers;	/* all headers <-> headers in news_headers_to[_not]_display */
+static t_bool show_raw_article;	/* CTRL-H raw <-> cooked article */
 static t_bool reveal_ctrl_l;	/* set when ^L hiding is off */
 
 /*
  * Local prototypes
  */
+static int build_url_list(void);
 static int load_article(int new_respnum, struct t_group *group);
 static int prompt_response(int ch, int curr_respnum);
 static int scroll_page(int dir);
 static t_bool deactivate_next_ctrl_l(void);
 static t_bool activate_last_ctrl_l(void);
+static t_bool process_url(int n);
+static t_bool url_page(void);
 static t_function page_left(void);
 static t_function page_right(void);
 static t_function page_mouse_action(t_function (*left_action) (void), t_function (*right_action) (void));
+static t_function url_left(void);
+static t_function url_right(void);
+static void build_url_line(int i);
 static void draw_page_header(const char *group);
+static void draw_url_arrow(void);
+static void free_url_list(void);
 static void preprocess_info_message(FILE *info_fh);
 static void print_message_page(FILE *file, t_lineinfo *messageline, size_t messagelines, size_t base_line, size_t begin, size_t end, int help_level);
 static void process_search(int *lcurr_line, size_t message_lines, size_t screen_lines, int help_level);
-static void process_url(void);
+static void show_url_page(void);
 static void invoke_metamail(FILE *fp);
 
+static t_menu urlmenu = { 0, 0, 0, show_url_page, draw_url_arrow, build_url_line };
+
 #ifdef XFACE_ABLE
 #	define XFACE_SHOW()	if (tinrc.use_slrnface) \
 								slrnface_show_xface()
 #	define XFACE_CLEAR()	if (tinrc.use_slrnface) \
 								slrnface_clear_xface()
 #	define XFACE_SUPPRESS()	if (tinrc.use_slrnface) \
-										slrnface_suppress_xface()
+								slrnface_suppress_xface()
 #else
 #	define XFACE_SHOW()	/*nothing*/
 #	define XFACE_CLEAR()	/*nothing*/
@@ -299,16 +314,13 @@ 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 i, j, n = 0;
 	int art_type = GROUP_TYPE_NEWS;
+	long old_artnum = 0L;
 	t_bool mouse_click_on = TRUE;
 	t_bool repeat_search;
 	t_function func;
 
-	filtered_articles = FALSE;	/* used in thread level */
-
 	if (group->attribute->mailing_list != NULL)
 		art_type = GROUP_TYPE_MAIL;
 
@@ -325,8 +337,6 @@ show_page(
 	if (srch_lineno != -1)
 		process_search(&curr_line, artlines, ARTLINES, PAGE_LEVEL);
 
-	resize_article(TRUE, &pgart);
-
 	forever {
 		if ((func = handle_keypad(page_left, page_right, page_mouse_action, page_keys)) == GLOBAL_SEARCH_REPEAT) {
 			func = last_search;
@@ -335,10 +345,9 @@ show_page(
 			repeat_search = FALSE;
 
 		switch (func) {
-			case GLOBAL_ABORT:       /* Abort */
+			case GLOBAL_ABORT:	/* Abort */
 				break;
 
-			case DIGIT_0:
 			case DIGIT_1:
 			case DIGIT_2:
 			case DIGIT_3:
@@ -382,7 +391,7 @@ show_page(
 					if (curr_line == 0)
 						info_message(_(txt_begin_of_art));
 					else {
-						curr_line -= (tinrc.scroll_lines == -2) ? ARTLINES / 2 : ARTLINES;
+						curr_line -= ((tinrc.scroll_lines == -2) ? ARTLINES / 2 : ARTLINES);
 						draw_page(group->name, 0);
 					}
 				}
@@ -390,8 +399,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 +408,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,10 +417,10 @@ 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;
+						curr_line += ((tinrc.scroll_lines == -2) ? ARTLINES / 2 : ARTLINES);
 
 						if (tinrc.scroll_lines == -1)		/* formerly show_last_line_prev_page */
 							curr_line--;
@@ -530,47 +533,54 @@ page_goto_next_unread:
 
 			case GLOBAL_PIPE:		/* pipe article/thread/tagged arts to command */
 				XFACE_SUPPRESS();
-				feed_articles(FEED_PIPE, PAGE_LEVEL, group, this_resp);
+				feed_articles(FEED_PIPE, PAGE_LEVEL, NOT_ASSIGNED, group, this_resp);
 				XFACE_SHOW();
 				break;
 
 			case PAGE_MAIL:	/* mail article/thread/tagged articles to somebody */
 				XFACE_SUPPRESS();
-				feed_articles(FEED_MAIL, PAGE_LEVEL, group, this_resp);
+				feed_articles(FEED_MAIL, PAGE_LEVEL, NOT_ASSIGNED, group, this_resp);
 				XFACE_SHOW();
 				break;
 
 #ifndef DISABLE_PRINTING
 			case GLOBAL_PRINT:	/* output art/thread/tagged arts to printer */
 				XFACE_SUPPRESS();
-				feed_articles(FEED_PRINT, PAGE_LEVEL, group, this_resp);
+				feed_articles(FEED_PRINT, PAGE_LEVEL, NOT_ASSIGNED, group, this_resp);
 				XFACE_SHOW();
 				break;
 #endif /* !DISABLE_PRINTING */
 
 			case PAGE_REPOST:	/* repost current article */
-				XFACE_SUPPRESS();
-				feed_articles(FEED_REPOST, PAGE_LEVEL, group, this_resp);
-				XFACE_SHOW();
+				if (can_post) {
+					XFACE_SUPPRESS();
+					feed_articles(FEED_REPOST, PAGE_LEVEL, NOT_ASSIGNED, group, this_resp);
+					XFACE_SHOW();
+				} else
+					info_message(_(txt_cannot_post));
 				break;
 
 			case PAGE_SAVE:	/* save article/thread/tagged articles */
 				XFACE_SUPPRESS();
-				feed_articles(FEED_SAVE, PAGE_LEVEL, group, this_resp);
+				feed_articles(FEED_SAVE, PAGE_LEVEL, NOT_ASSIGNED, group, this_resp);
 				XFACE_SHOW();
 				break;
 
 			case PAGE_AUTOSAVE:	/* Auto-save articles without prompting */
 				if (grpmenu.curr >= 0) {
 					XFACE_SUPPRESS();
-					feed_articles(FEED_AUTOSAVE, PAGE_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_AUTOSAVE, PAGE_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
 					XFACE_SHOW();
 				}
 				break;
 
+			case GLOBAL_SEARCH_REPEAT:
+				info_message(_(txt_no_prev_search));
+				break;
+
 			case GLOBAL_SEARCH_SUBJECT_FORWARD:	/* search in article */
 			case GLOBAL_SEARCH_SUBJECT_BACKWARD:
-				if ((i = search_article((func == GLOBAL_SEARCH_SUBJECT_FORWARD), repeat_search, search_line, artlines, artline, reveal_ctrl_l_lines, note_fp)) == -1)
+				if (search_article((func == GLOBAL_SEARCH_SUBJECT_FORWARD), repeat_search, search_line, artlines, artline, reveal_ctrl_l_lines, note_fp) == -1)
 					break;
 
 				if (func == GLOBAL_SEARCH_SUBJECT_BACKWARD && !reveal_ctrl_l) {
@@ -632,7 +642,15 @@ page_goto_next_unread:
 				break;
 #endif /* HAVE_PGP_GPG */
 
-			case PAGE_TOGGLE_HEADERS:	/* toggle display of whole 'raw' article */
+			case PAGE_TOGGLE_HEADERS:	/* toggle display of all headers */
+				XFACE_CLEAR();
+				show_all_headers = bool_not(show_all_headers);
+				resize_article(TRUE, &pgart);	/* Also recooks it.. */
+				curr_line = 0;
+				draw_page(group->name, 0);
+				break;
+
+			case PAGE_TOGGLE_RAW:	/* toggle display of whole 'raw' article */
 				XFACE_CLEAR();
 				toggle_raw(group);
 				break;
@@ -681,30 +699,46 @@ page_goto_next_unread:
 
 			case GLOBAL_QUICK_FILTER_SELECT:	/* quickly auto-select article */
 			case GLOBAL_QUICK_FILTER_KILL:		/* quickly kill article */
-				if ((filtered_articles = quick_filter(func, group, &arts[this_resp])))
-					goto return_to_index;
-
-				draw_page(group->name, 0);
+				if (quick_filter(func, group, &arts[this_resp])) {
+					old_artnum = arts[this_resp].artnum;
+					unfilter_articles(group);
+					filter_articles(group);
+					make_threads(group, FALSE);
+					if ((n = find_artnum(old_artnum)) == -1 || which_thread(n) == -1) /* We have lost the thread */
+						return GRP_KILLED;
+					this_resp = n;
+					draw_page(group->name, 0);
+					info_message((func == GLOBAL_QUICK_FILTER_KILL) ? _(txt_info_add_kill) : _(txt_info_add_select));
+				}
 				break;
 
 			case GLOBAL_MENU_FILTER_SELECT:		/* auto-select article menu */
 			case GLOBAL_MENU_FILTER_KILL:			/* kill article menu */
 				XFACE_CLEAR();
 				if (filter_menu(func, group, &arts[this_resp])) {
-					if ((filtered_articles = filter_articles(group)))
-						goto return_to_index;
+					old_artnum = arts[this_resp].artnum;
+					unfilter_articles(group);
+					filter_articles(group);
+					make_threads(group, FALSE);
+					if ((n = find_artnum(old_artnum)) == -1 || which_thread(n) == -1) /* We have lost the thread */
+						return GRP_KILLED;
+					this_resp = n;
 				}
 				draw_page(group->name, 0);
 				break;
 
 			case GLOBAL_EDIT_FILTER:
 				XFACE_CLEAR();
-				if (!invoke_editor(filter_file, FILTER_FILE_OFFSET))
-					break;
-				unfilter_articles();
-				(void) read_filter_file(filter_file);
-				if ((filtered_articles = filter_articles(group)))
-					goto return_to_index;
+				if (invoke_editor(filter_file, filter_file_offset, NULL)) {
+					old_artnum = arts[this_resp].artnum;
+					unfilter_articles(group);
+					(void) read_filter_file(filter_file);
+					filter_articles(group);
+					make_threads(group, FALSE);
+					if ((n = find_artnum(old_artnum)) == -1 || which_thread(n) == -1) /* We have lost the thread */
+						return GRP_KILLED;
+					this_resp = n;
+				}
 				draw_page(group->name, 0);
 				break;
 
@@ -731,12 +765,10 @@ page_goto_next_unread:
 
 			case CATCHUP:			/* catchup - mark read, goto next */
 			case CATCHUP_NEXT_UNREAD:	/* goto next unread */
-				/*
-				 * TODO: if (group->attribute->thread_arts == THREAD_NONE)
-				 *       	snprintf(buf, sizeof(buf), _("Mark article as read%s?"), (func == CATCHUP_NEXT_UNREAD) ? _(" and enter next unread article") : "");
-				 *       else
-				 */
-				snprintf(buf, sizeof(buf), _(txt_mark_thread_read), (func == CATCHUP_NEXT_UNREAD) ? _(txt_enter_next_thread) : "");
+				if (group->attribute->thread_articles == THREAD_NONE)
+					snprintf(buf, sizeof(buf), _(txt_mark_art_read), (func == CATCHUP_NEXT_UNREAD) ? _(txt_enter_next_unread_art) : "");
+				else
+					snprintf(buf, sizeof(buf), _(txt_mark_thread_read), (func == CATCHUP_NEXT_UNREAD) ? _(txt_enter_next_thread) : "");
 				if ((!TINRC_CONFIRM_ACTION) || prompt_yn(buf, TRUE) == 1) {
 					thd_mark_read(group, base[which_thread(this_resp)]);
 					XFACE_CLEAR();
@@ -746,7 +778,7 @@ page_goto_next_unread:
 
 			case MARK_THREAD_UNREAD:
 				thd_mark_unread(group, base[which_thread(this_resp)]);
-				if (group->attribute->thread_arts != THREAD_NONE)
+				if (group->attribute->thread_articles != THREAD_NONE)
 					info_message(_(txt_marked_as_unread), _(txt_thread_upper));
 				else
 					info_message(_(txt_marked_as_unread), _(txt_article_upper));
@@ -779,7 +811,7 @@ page_goto_next_unread:
 				XFACE_CLEAR();
 				(void) post_response(group->name, this_resp,
 				  (func == PAGE_FOLLOWUP_QUOTE || func == PAGE_FOLLOWUP_QUOTE_HEADERS) ? TRUE : FALSE,
-				  func == PAGE_FOLLOWUP_QUOTE_HEADERS ? TRUE : FALSE, show_all_headers);
+				  func == PAGE_FOLLOWUP_QUOTE_HEADERS ? TRUE : FALSE, show_raw_article);
 				draw_page(group->name, 0);
 				break;
 
@@ -797,21 +829,10 @@ 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)
-					make_threads(group, TRUE);
-
 				i = which_thread(this_resp);
 				if (threadnum)
 					*threadnum = which_response(this_resp);
 
-				if (filter_state == FILTERING || filtered_articles) {
-					int old_top = top_art;
-					long old_artnum = arts[this_resp].artnum;
-
-					filter_articles(group);
-					make_threads(group, FALSE);
-					i = find_new_pos(old_top, old_artnum, i);
-				}
 				return i;
 
 			case GLOBAL_TOGGLE_INVERSE_VIDEO:	/* toggle inverse video */
@@ -836,8 +857,13 @@ return_to_index:
 
 			case GLOBAL_OPTION_MENU:	/* option menu */
 				XFACE_CLEAR();
-				if (change_config_file(group) == FILTERING)
-					filter_state = FILTERING;
+				old_artnum = arts[this_resp].artnum;
+				config_page(group->name);
+				if ((this_resp = find_artnum(old_artnum)) == -1 || which_thread(this_resp) == -1) { /* We have lost the thread */
+					pos_first_unread_thread();
+					return GRP_EXIT;
+				}
+				fixup_thread(this_resp, FALSE);
 				draw_page(group->name, 0);
 				break;
 
@@ -891,7 +917,7 @@ return_to_index:
 			case PAGE_REPLY_QUOTE_HEADERS:
 			case PAGE_REPLY:
 				XFACE_CLEAR();
-				mail_to_author(group->name, this_resp, (func == PAGE_REPLY_QUOTE || func == PAGE_REPLY_QUOTE_HEADERS) ? TRUE : FALSE, func == PAGE_REPLY_QUOTE_HEADERS ? TRUE : FALSE, show_all_headers);
+				mail_to_author(group->name, this_resp, (func == PAGE_REPLY_QUOTE || func == PAGE_REPLY_QUOTE_HEADERS) ? TRUE : FALSE, func == PAGE_REPLY_QUOTE_HEADERS ? TRUE : FALSE, show_raw_article);
 				draw_page(group->name, 0);
 				break;
 
@@ -900,10 +926,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;
 
@@ -941,13 +970,20 @@ return_to_index:
 				break;
 
 			case PAGE_SKIP_INCLUDED_TEXT:	/* skip included text */
-				for (i = curr_line; i < artlines; i++) {
-					if (!(artline[i].flags & (C_QUOTE1 | C_QUOTE2 | C_QUOTE3)))
+				for (i = j = curr_line; i < artlines; i++) {
+					if (artline[i].flags & (C_QUOTE1 | C_QUOTE2 | C_QUOTE3)) {
+						j = i;
+						break;
+					}
+				}
+
+				for (; j < artlines; j++) {
+					if (!(artline[j].flags & (C_QUOTE1 | C_QUOTE2 | C_QUOTE3)))
 						break;
 				}
 
-				if (i != curr_line) {
-					curr_line = i;
+				if (j != curr_line) {
+					curr_line = j;
 					draw_page(group->name, 0);
 				}
 				break;
@@ -964,18 +1000,22 @@ return_to_index:
 
 			case PAGE_VIEW_ATTACHMENTS:
 				XFACE_SUPPRESS();
-				decode_save_mime(&pgart, FALSE);
+				attachment_page(&pgart);
 				draw_page(group->name, 0);
 				XFACE_SHOW();
 				break;
 
 			case PAGE_VIEW_URL:
-				if (!show_all_headers) { /* cooked mode? */
+				if (!show_raw_article) { /* cooked mode? */
+					t_bool success;
+
 					XFACE_SUPPRESS();
-					resize_article(FALSE, &pgart); /* umbreak long lines */
-					process_url();
+					resize_article(FALSE, &pgart); /* unbreak long lines */
+					success = url_page();
 					resize_article(TRUE, &pgart); /* rebreak long lines */
 					draw_page(group->name, 0);
+					if (!success)
+						info_message(_(txt_url_done));
 					XFACE_SHOW();
 				}
 				break;
@@ -1027,7 +1067,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_raw_article)) {
 			for (p = line; *p; p++) {
 				if (*p >= 'A' && *p <= 'Z')
 					*p = (*p - 'A' + rotate) % 26 + 'A';
@@ -1043,7 +1083,7 @@ print_message_page(
 #endif /* !USE_CURSES */
 
 		MoveCursor(i + scroll_region_top, 0);
-		draw_pager_line(line, curr->flags, show_all_headers);
+		draw_pager_line(line, curr->flags, show_raw_article);
 
 		/*
 		 * Highlight URL's and mail addresses
@@ -1164,30 +1204,23 @@ draw_page(
 	if (curr_line + ARTLINES >= artlines) {
 		char buf[LEN];
 		int len;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-		wchar_t *wbuf;
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 		STRCPY(buf, (arts[this_resp].thread != -1) ? _(txt_next_resp) : _(txt_last_resp));
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-		if ((wbuf = char2wchar_t(buf)) != NULL) {
-			len = wcswidth(wbuf, wcslen(wbuf) + 1);
-			free(wbuf);
-		} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-			len = (int) strlen(buf);
-
+		len = strwidth(buf);
 		clear_message();
 		MoveCursor(cLINES, cCOLS - len - (1 + BLANK_PAGE_COLS));
+#ifdef HAVE_COLOR
+		fcol(tinrc.col_normal);
+#endif /* HAVE_COLOR */
 		StartInverse();
 		my_fputs(buf, stdout);
-		my_flush();
 		EndInverse();
+		my_flush();
 	} else
 		draw_percent_mark(curr_line + ARTLINES, artlines);
 
 #ifdef XFACE_ABLE
-	if (tinrc.use_slrnface && !show_all_headers)
+	if (tinrc.use_slrnface && !show_raw_article)
 		slrnface_display_xface(note_h->xface);
 #endif /* XFACE_ABLE */
 
@@ -1231,18 +1264,18 @@ invoke_metamail(
 #endif /* !DONT_HAVE_PIPING */
 		perror_message(_(txt_command_failed), ptr);
 
+#ifdef USE_CURSES
 	Raw(TRUE);
 	InitWin();
+#endif /* USE_CURSES */
 	prompt_continue();
+#ifndef USE_CURSES
+	Raw(TRUE);
+	InitWin();
+#endif /* !USE_CURSES */
 
 	/* This is needed if we are viewing the raw art */
 	fseek(fp, offset, SEEK_SET);	/* goto old position */
-
-	/* FIXME: values do differ for different languages */
-	MoveCursor(cLINES, cCOLS - 20 - BLANK_PAGE_COLS);
-	StartInverse();
-	my_flush();
-	EndInverse();
 }
 
 
@@ -1259,9 +1292,9 @@ draw_page_header(
 	int len, right_len, center_pos, cur_pos;
 	size_t line_len;
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *fmt_resp, *fmt_thread, *wtmp, *wtmp2;
+	wchar_t *fmt_resp, *fmt_thread, *wtmp, *wtmp2, *wbuf;
 #else
-	char *tmp;
+	char *tmp, *tmp2;
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	whichresp = which_response(this_resp);
@@ -1270,7 +1303,7 @@ draw_page_header(
 	line_len = LEN + 1;
 	buf = my_malloc(line_len);
 
-	if (!my_strftime(buf, line_len, tinrc.date_format, localtime(&arts[this_resp].date))) {
+	if (!my_strftime(buf, line_len, curr_group->attribute->date_format, localtime(&arts[this_resp].date))) {
 		strncpy(buf, BlankIfNull(note_h->date), line_len);
 		buf[line_len - 1] = '\0';
 	}
@@ -1278,7 +1311,7 @@ draw_page_header(
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	/* convert to wide-char format strings */
 	fmt_thread = char2wchar_t(_(txt_thread_x_of_n));
-	fmt_resp = char2wchar_t(_(txt_resp_x_of_n));
+	fmt_resp = char2wchar_t(_(txt_art_x_of_n));
 
 	/*
 	 * determine the needed space for the text at the right hand margin
@@ -1320,8 +1353,13 @@ draw_page_header(
 
 	/* group name */
 	if ((wtmp = char2wchar_t(group)) != NULL) {
-		/* wconvert_to_printable(wtmp); */
-		if ((i = wcswidth(wtmp, wcslen(wtmp))) < len)
+		/* wconvert_to_printable(wtmp, FALSE); */
+		if (tinrc.abbreviate_groupname)
+			wtmp2 = abbr_wcsgroupname(wtmp, len);
+		else
+			wtmp2 = wstrunc(wtmp, len);
+
+		if ((i = wcswidth(wtmp2, wcslen(wtmp2))) < len)
 			len = i;
 
 		center_pos = (cCOLS - len) / 2;
@@ -1330,7 +1368,6 @@ draw_page_header(
 		for (; cur_pos < center_pos; cur_pos++)
 			my_fputc(' ', stdout);
 
-		wtmp2 = wstrunc(wtmp, len);
 		my_fputws(wtmp2, stdout);
 		cur_pos += wcswidth(wtmp2, wcslen(wtmp2));
 		free(wtmp2);
@@ -1402,8 +1439,8 @@ draw_page_header(
 	strncpy(buf, (note_h->subj ? note_h->subj : arts[this_resp].subject), line_len);
 	buf[line_len - 1] = '\0';
 	if ((wtmp = char2wchar_t(buf)) != NULL) {
-		wtmp2 = wstrunc(wtmp, cCOLS - 2 * right_len - 3);
-
+		wbuf = wexpand_tab(wtmp, tabwidth);
+		wtmp2 = wstrunc(wbuf, cCOLS - 2 * right_len - 3);
 		center_pos = (cCOLS - wcswidth(wtmp2, wcslen(wtmp2))) / 2;
 
 		/* pad out to left */
@@ -1416,6 +1453,7 @@ draw_page_header(
 		cur_pos += wcswidth(wtmp2, wcslen(wtmp2));
 		free(wtmp2);
 		free(wtmp);
+		free(wbuf);
 	}
 
 #	ifdef HAVE_COLOR
@@ -1427,12 +1465,12 @@ draw_page_header(
 		my_fputc(' ', stdout);
 
 	if (whichresp)
-		my_printf(_(txt_resp_x_of_n), whichresp, x_resp);
+		my_printf(_(txt_art_x_of_n), whichresp + 1, x_resp + 1);
 	else {
 		if (!x_resp)
-			my_printf(_(txt_no_responses));
+			my_printf("%s", _(txt_no_responses));
 		else if (x_resp == 1)
-			my_printf(_(txt_1_resp));
+			my_printf("%s", _(txt_1_resp));
 		else
 			my_printf(_(txt_x_resp), x_resp);
 	}
@@ -1483,8 +1521,8 @@ draw_page_header(
 		snprintf(buf, line_len, _(txt_at_s), note_h->org);
 
 		if ((wtmp = char2wchar_t(buf)) != NULL) {
-			wconvert_to_printable(wtmp);
-			wtmp2 = wstrunc(wtmp, cCOLS - cur_pos - 1);
+			wbuf = wexpand_tab(wtmp, tabwidth);
+			wtmp2 = wstrunc(wbuf, cCOLS - cur_pos - 1);
 
 			i = cCOLS - wcswidth(wtmp2, wcslen(wtmp2)) - 1;
 			for (; cur_pos < i; cur_pos++)
@@ -1493,6 +1531,7 @@ draw_page_header(
 			my_fputws(wtmp2, stdout);
 			free(wtmp2);
 			free(wtmp);
+			free(wbuf);
 		}
 	}
 
@@ -1505,7 +1544,7 @@ draw_page_header(
 	 * the formating info (%4s) needs 3 positions but we need 4 positions
 	 * on the screen for each counter
 	 */
-	right_len = MAX((strlen(_(txt_thread_x_of_n)) - 6 + 8), (strlen(_(txt_resp_x_of_n)) - 6 + 8));
+	right_len = MAX((strlen(_(txt_thread_x_of_n)) - 6 + 8), (strlen(_(txt_art_x_of_n)) - 6 + 8));
 
 	/*
 	 * first line
@@ -1527,7 +1566,12 @@ draw_page_header(
 	len = cCOLS - 2 * MAX(cur_pos, right_len) - 3;
 
 	/* group name */
-	if ((i = strlen(group)) < len)
+	if (tinrc.abbreviate_groupname)
+		tmp = abbr_groupname(group, len);
+	else
+		tmp = strunc(group, len);
+
+	if ((i = strlen(tmp)) < len)
 		len = i;
 
 	center_pos = (cCOLS - len) / 2;
@@ -1536,7 +1580,6 @@ draw_page_header(
 	for (; cur_pos < center_pos; cur_pos++)
 		my_fputc(' ', stdout);
 
-	tmp = strunc(group, len);
 	my_fputs(tmp, stdout);
 	cur_pos += strlen(tmp);
 	free(tmp);
@@ -1598,7 +1641,8 @@ draw_page_header(
 	strncpy(buf, (note_h->subj ? note_h->subj : arts[this_resp].subject), line_len);
 	buf[line_len - 1] = '\0';
 
-	tmp = strunc(buf, cCOLS - 2 * right_len - 3);
+	tmp2 = expand_tab(buf, tabwidth);
+	tmp = strunc(tmp2, cCOLS - 2 * right_len - 3);
 
 	center_pos = (cCOLS - strlen(tmp)) / 2;
 
@@ -1611,6 +1655,7 @@ draw_page_header(
 	EndInverse();
 	cur_pos += strlen(tmp);
 	free(tmp);
+	free(tmp2);
 
 #	ifdef HAVE_COLOR
 	fcol(tinrc.col_response);
@@ -1621,7 +1666,7 @@ draw_page_header(
 		my_fputc(' ', stdout);
 
 	if (whichresp)
-		my_printf(_(txt_resp_x_of_n), whichresp, x_resp);
+		my_printf(_(txt_art_x_of_n), whichresp + 1, x_resp + 1);
 	else {
 		if (!x_resp)
 			my_printf(_(txt_no_responses));
@@ -1662,12 +1707,14 @@ draw_page_header(
 		/* we have enough space to print at least " at ..." */
 		snprintf(buf, line_len, _(txt_at_s), note_h->org);
 
-		tmp = strunc(buf, cCOLS - cur_pos - 1);
+		tmp2 = expand_tab(buf, tabwidth);
+		tmp = strunc(tmp2, cCOLS - cur_pos - 1);
 		len = cCOLS - (int) strlen(tmp) - 1;
 		for (; cur_pos < len; cur_pos++)
 			my_fputc(' ', stdout);
 		my_fputs(tmp, stdout);
 		free(tmp);
+		free(tmp2);
 	}
 
 	my_fputs(cCRLF, stdout);
@@ -1692,12 +1739,14 @@ load_article(
 	int new_respnum,
 	struct t_group *group)
 {
+	static t_bool art_closed = FALSE;
+
 #ifdef DEBUG
-	if (debug == 2)
-		fprintf(stderr, "load_art %s(new=%d, curr=%d)\n", (new_respnum == this_resp) ? "ALREADY OPEN!" : "", new_respnum, this_resp);
+	if (debug & DEBUG_MISC)
+		fprintf(stderr, "load_art %s(new=%d, curr=%d)\n", (new_respnum == this_resp && !art_closed) ? "ALREADY OPEN!" : "", new_respnum, this_resp);
 #endif /* DEBUG */
 
-	if (new_respnum != this_resp) {
+	if (new_respnum != this_resp || art_closed) {
 		char *progress_mesg = my_strdup(_(txt_reading_article));
 		int ret;
 
@@ -1709,32 +1758,56 @@ load_article(
 		switch (ret) {
 			case ART_UNAVAILABLE:
 				art_mark(group, &arts[new_respnum], ART_READ);
+				/* prevent retagging as unread in unfilter_articles() */
+				if (arts[new_respnum].killed == ART_KILLED_UNREAD)
+					arts[new_respnum].killed = ART_KILLED;
+				art_closed = TRUE;
 				wait_message(1, _(txt_art_unavailable));
 				return GRP_ARTUNAVAIL;
 
 			case ART_ABORT:
 				art_close(&pgart);
+				art_closed = TRUE;
 				return GRP_ARTABORT;	/* special retcode to stop redrawing screen */
 
 			default:					/* Normal case */
 #if 0			/* Very useful debugging tool */
-				if (prompt_yn(cLINES, "Fake art unavailable? ", FALSE) == 1) {
+				if (prompt_yn("Fake art unavailable? ", FALSE) == 1) {
 					art_close(&pgart);
 					art_mark(group, &arts[new_respnum], ART_READ);
+					art_closed = TRUE;
 					return GRP_ARTUNAVAIL;
 				}
 #endif /* 0 */
-				/*
-				 * Remember current & previous articles for '-' command
-				 */
-				last_resp = this_resp;
-				this_resp = new_respnum;		/* Set new art globally */
+				if (art_closed)
+					art_closed = FALSE;
+				if (new_respnum != this_resp) {
+					/*
+					 * Remember current & previous articles for '-' command
+					 */
+					last_resp = this_resp;
+					this_resp = new_respnum;		/* Set new art globally */
+				}
 				break;
 		}
+	} else if (show_all_headers) {
+		/*
+		 * article is already opened with show_all_headers ON
+		 * -> re-cook it
+		 */
+		show_all_headers = FALSE;
+		resize_article(TRUE, &pgart);
 	}
 
 	art_mark(group, &arts[this_resp], ART_READ);
 
+	/*
+	 * Change status if art was unread before killing to
+	 * prevent retagging as unread in unfilter_articles()
+	 */
+	if (arts[this_resp].killed == ART_KILLED_UNREAD)
+		arts[this_resp].killed = ART_KILLED;
+
 	if (pgart.cooked == NULL) { /* harmony corruption */
 		wait_message(1, _(txt_art_unavailable));
 		return GRP_ARTUNAVAIL;
@@ -1743,13 +1816,19 @@ load_article(
 	/*
 	 * Setup to start viewing cooked version
 	 */
+	show_raw_article = FALSE;
 	show_all_headers = FALSE;
 	curr_line = 0;
 	note_fp = pgart.cooked;
 	artline = pgart.cookl;
 	artlines = pgart.cooked_lines;
 	search_line = 0;
-	reset_srch_offsets();
+	/*
+	 * Reset offsets only if not invoked during 'body search' (srch_lineno != -1)
+	 * otherwise the found string will not be highlighted
+	 */
+	if (srch_lineno == -1)
+		reset_srch_offsets();
 	rotate = 0;			/* normal mode, not rot13 */
 	reveal_ctrl_l = FALSE;
 	reveal_ctrl_l_lines = -1;	/* all ^L's active */
@@ -1766,7 +1845,7 @@ load_article(
 	if (*tinrc.metamail_prog == '\0' || getenv("NOMETAMAIL") != NULL)	/* Viewer turned off */
 		return 0;
 
-	if (tinrc.ask_for_metamail) {
+	if (group->attribute->ask_for_metamail) {
 		if (prompt_yn(_(txt_use_mime), TRUE) != 1)
 			return 0;
 	}
@@ -1790,7 +1869,7 @@ prompt_response(
 
 	clear_message();
 
-	if ((num = prompt_num(ch, _(txt_read_resp))) == -1) {
+	if ((num = (prompt_num(ch, _(txt_select_art)) - 1)) == -1) {
 		clear_message();
 		return -1;
 	}
@@ -1856,7 +1935,7 @@ void
 toggle_raw(
 	struct t_group *group)
 {
-	if (show_all_headers) {
+	if (show_raw_article) {
 		artline = pgart.cookl;
 		artlines = pgart.cooked_lines;
 		note_fp = pgart.cooked;
@@ -1906,7 +1985,7 @@ toggle_raw(
 							offset += num_bytes;
 						}
 #else
-						if (my_isprint((int) *p)) {
+						if (my_isprint((unsigned char) *p)) {
 							space--;
 							p++;
 							offset++;
@@ -1962,63 +2041,11 @@ toggle_raw(
 		note_fp = pgart.raw;
 	}
 	curr_line = 0;
-	show_all_headers = bool_not(show_all_headers);
+	show_raw_article = bool_not(show_raw_article);
 	draw_page(group->name, 0);
 }
 
 
-static void
-process_url(
-	void)
-{
-	char *ptr;
-	char buf[LEN];
-	char ubuf[LEN];
-	char url[LEN];
-	int i;
-	int offsets[6];
-	int offsets_size = ARRAY_SIZE(offsets);
-
-	/*
-	 * TODO: handle mailto: and news: (not NNTP) URLs internally
-	 */
-	for (i = curr_line; i < artlines; ++i) {
-		if (!(artline[i].flags & (C_URL | C_NEWS | C_MAIL)))
-			continue;
-
-		/*
-		 * Line contains a URL, so read it in
-		 */
-		fseek(pgart.cooked, artline[i].offset, SEEK_SET);
-		ptr = fgets(buf, sizeof(buf), pgart.cooked);
-
-		/*
-		 * Step through, finding URL's
-		 */
-		forever {
-			/* any matches left? */
-			if (pcre_exec(url_regex.re, url_regex.extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) == PCRE_ERROR_NOMATCH)
-				if (pcre_exec(mail_regex.re, mail_regex.extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) == PCRE_ERROR_NOMATCH)
-					if (pcre_exec(news_regex.re, news_regex.extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) == PCRE_ERROR_NOMATCH)
-						break;
-
-			*(ptr + offsets[1]) = '\0';
-
-			if (prompt_default_string("URL:", url, sizeof(url), ptr + offsets[0], HIST_URL)) {
-				if (!*url)			/* Don't try and open nothing */
-					break;
-
-				wait_message(2, _(txt_url_open), url);
-				snprintf(ubuf, sizeof(ubuf), "%s %s", tinrc.url_handler, escape_shell_meta(url, 0));
-				invoke_cmd(ubuf);
-			}
-			ptr += offsets[1] + 1;
-		}
-	}
-	info_message(_(txt_url_done));
-}
-
-
 /*
  * Re-cook an article
  *
@@ -2033,9 +2060,9 @@ resize_article(
 	if (artinfo->cooked)
 		fclose(artinfo->cooked);
 
-	cook_article(wrap_lines, artinfo, tabwidth, hide_uue);
+	cook_article(wrap_lines, artinfo, hide_uue, show_all_headers);
 
-	show_all_headers = FALSE;
+	show_raw_article = FALSE;
 	artline = pgart.cookl;
 	artlines = pgart.cooked_lines;
 	note_fp = pgart.cooked;
@@ -2060,6 +2087,8 @@ info_pager(
 	info_title = title;
 	curr_info_line = 0;
 	preprocess_info_message(info_fh);
+	if (!info_fh)
+		return;
 	set_xclick_off();
 	display_info_page(0);
 
@@ -2070,12 +2099,12 @@ info_pager(
 
 			case GLOBAL_LINE_UP:
 				if (num_info_lines <= NOTESLINES) {
-					info_message(_(txt_begin_of_art));
+					info_message(_(txt_begin_of_page));
 					break;
 				}
 				if (curr_info_line == 0) {
 					if (!wrap_at_ends) {
-						info_message(_(txt_begin_of_art));
+						info_message(_(txt_begin_of_page));
 						break;
 					}
 					curr_info_line = num_info_lines - NOTESLINES;
@@ -2089,12 +2118,12 @@ info_pager(
 
 			case GLOBAL_LINE_DOWN:
 				if (num_info_lines <= NOTESLINES) {
-					info_message(_(txt_end_of_art));
+					info_message(_(txt_end_of_page));
 					break;
 				}
 				if (curr_info_line + NOTESLINES >= num_info_lines) {
 					if (!wrap_at_ends) {
-						info_message(_(txt_end_of_art));
+						info_message(_(txt_end_of_page));
 						break;
 					}
 					curr_info_line = 0;
@@ -2108,37 +2137,37 @@ info_pager(
 
 			case GLOBAL_PAGE_DOWN:
 				if (num_info_lines <= NOTESLINES) {
-					info_message(_(txt_end_of_art));
+					info_message(_(txt_end_of_page));
 					break;
 				}
 				if (curr_info_line + NOTESLINES >= num_info_lines) {	/* End is already on screen */
 					if (!wrap_at_ends) {
-						info_message(_(txt_end_of_art));
+						info_message(_(txt_end_of_page));
 						break;
 					}
 					curr_info_line = 0;
 					display_info_page(0);
 					break;
 				}
-				curr_info_line += (tinrc.scroll_lines == -2) ? NOTESLINES / 2 : NOTESLINES;
+				curr_info_line += ((tinrc.scroll_lines == -2) ? NOTESLINES / 2 : NOTESLINES);
 				display_info_page(0);
 				break;
 
 			case GLOBAL_PAGE_UP:
 				if (num_info_lines <= NOTESLINES) {
-					info_message(_(txt_begin_of_art));
+					info_message(_(txt_begin_of_page));
 					break;
 				}
 				if (curr_info_line == 0) {
 					if (!wrap_at_ends) {
-						info_message(_(txt_begin_of_art));
+						info_message(_(txt_begin_of_page));
 						break;
 					}
 					curr_info_line = num_info_lines - NOTESLINES;
 					display_info_page(0);
 					break;
 				}
-				curr_info_line -= (tinrc.scroll_lines == -2) ? NOTESLINES / 2 : NOTESLINES;
+				curr_info_line -= ((tinrc.scroll_lines == -2) ? NOTESLINES / 2 : NOTESLINES);
 				display_info_page(0);
 				break;
 
@@ -2232,17 +2261,17 @@ display_info_page(
 }
 
 
-/*
- * TODO: plug mem leak: malloced mem is not freed on exit
- */
 static void
 preprocess_info_message(
 	FILE *info_fh)
 {
 	int chunk = 50;
 
+	FreeAndNull(infoline);
+	if (!info_fh)
+		return;
+
 	rewind(info_fh);
-	FreeIfNeeded(infoline);
 	infoline = my_malloc(sizeof(t_lineinfo) * chunk);
 	num_info_lines = 0;
 
@@ -2259,3 +2288,329 @@ preprocess_info_message(
 	num_info_lines--;
 	infoline = my_realloc(infoline, sizeof(t_lineinfo) * num_info_lines);
 }
+
+
+/*
+ * URL menu
+ */
+static t_function
+url_left(
+	void)
+{
+	return GLOBAL_QUIT;
+}
+
+
+static t_function
+url_right(
+	void)
+{
+	return URL_SELECT;
+}
+
+
+static void
+show_url_page(
+	void)
+{
+	int i;
+
+	signal_context = cURL;
+	currmenu = &urlmenu;
+
+	if (urlmenu.curr < 0)
+		urlmenu.curr = 0;
+
+	ClearScreen();
+	set_first_screen_item();
+	center_line(0, TRUE, _(txt_url_menu));
+
+	for (i = urlmenu.first; i < urlmenu.first + NOTESLINES && i < urlmenu.max; ++i)
+		build_url_line(i);
+
+	show_mini_help(URL_LEVEL);
+
+	draw_url_arrow();
+}
+
+
+static t_bool
+url_page(
+	void)
+{
+	char key[MAXKEYLEN];
+	t_function func;
+	t_menu *oldmenu = NULL;
+
+	if (currmenu)
+		oldmenu = currmenu;
+	urlmenu.curr = 0;
+	urlmenu.max = build_url_list();
+	if (urlmenu.max == 0)
+		return FALSE;
+
+	clear_note_area();
+	show_url_page();
+	set_xclick_off();
+
+	forever {
+		switch ((func = handle_keypad(url_left, url_right, NULL, url_keys))) {
+			case GLOBAL_QUIT:
+				free_url_list();
+				if (oldmenu)
+					currmenu = oldmenu;
+				return TRUE;
+
+			case DIGIT_1:
+			case DIGIT_2:
+			case DIGIT_3:
+			case DIGIT_4:
+			case DIGIT_5:
+			case DIGIT_6:
+			case DIGIT_7:
+			case DIGIT_8:
+			case DIGIT_9:
+				if (urlmenu.max)
+					prompt_item_num(func_to_key(func, url_keys), _(txt_url_select));
+				break;
+
+#ifndef NO_SHELL_ESCAPE
+			case GLOBAL_SHELL_ESCAPE:
+				do_shell_escape();
+				break;
+#endif /* !NO_SHELL_ESCAPE */
+
+			case GLOBAL_HELP:
+				show_help_page(URL_LEVEL, _(txt_url_menu_com));
+				show_url_page();
+				break;
+
+			case GLOBAL_FIRST_PAGE:
+				top_of_list();
+				break;
+
+			case GLOBAL_LAST_PAGE:
+				end_of_list();
+				break;
+
+			case GLOBAL_REDRAW_SCREEN:
+				my_retouch();
+				show_url_page();
+				break;
+
+			case GLOBAL_LINE_DOWN:
+				move_down();
+				break;
+
+			case GLOBAL_LINE_UP:
+				move_up();
+				break;
+
+			case GLOBAL_PAGE_DOWN:
+				page_down();
+				break;
+
+			case GLOBAL_PAGE_UP:
+				page_up();
+				break;
+
+			case GLOBAL_SCROLL_DOWN:
+				scroll_down();
+				break;
+
+			case GLOBAL_SCROLL_UP:
+				scroll_up();
+				break;
+
+			case GLOBAL_TOGGLE_HELP_DISPLAY:
+				toggle_mini_help(URL_LEVEL);
+				show_url_page();
+				break;
+
+			case GLOBAL_TOGGLE_INFO_LAST_LINE:
+				tinrc.info_in_last_line = bool_not(tinrc.info_in_last_line);
+				show_url_page();
+				break;
+
+			case URL_SELECT:
+				if (urlmenu.max) {
+					if (process_url(urlmenu.curr))
+						show_url_page();
+					else
+						draw_url_arrow();
+				}
+				break;
+
+			case GLOBAL_SEARCH_SUBJECT_FORWARD:
+			case GLOBAL_SEARCH_SUBJECT_BACKWARD:
+			case GLOBAL_SEARCH_REPEAT:
+				if (func == GLOBAL_SEARCH_REPEAT && last_search != GLOBAL_SEARCH_SUBJECT_FORWARD && last_search != GLOBAL_SEARCH_SUBJECT_BACKWARD)
+					info_message(_(txt_no_prev_search));
+				else if (urlmenu.max) {
+					int new_pos, old_pos = urlmenu.curr;
+
+					new_pos = generic_search((func == GLOBAL_SEARCH_SUBJECT_FORWARD), (func == GLOBAL_SEARCH_REPEAT), urlmenu.curr, urlmenu.max - 1, URL_LEVEL);
+					if (new_pos != old_pos)
+						move_to_item(new_pos);
+				}
+				break;
+
+			default:
+				info_message(_(txt_bad_command), printascii(key, func_to_key(GLOBAL_HELP, url_keys)));
+				break;
+		}
+	}
+}
+
+
+static void
+draw_url_arrow(
+	void)
+{
+	draw_arrow_mark(INDEX_TOP + urlmenu.curr - urlmenu.first);
+	if (tinrc.info_in_last_line) {
+		t_url *lptr;
+
+		lptr = find_url(urlmenu.curr);
+		info_message("%s", lptr->url);
+	} else if (urlmenu.curr == urlmenu.max - 1)
+		info_message(_(txt_end_of_urls));
+}
+
+
+t_url *
+find_url(
+	int n)
+{
+	t_url *lptr;
+
+	lptr = url_list;
+	while (n-- > 0 && lptr->next)
+		lptr = lptr->next;
+
+	return lptr;
+}
+
+
+static void
+build_url_line(
+	int i)
+{
+	char *sptr;
+	int len = cCOLS - 9;
+	t_url *lptr;
+
+#ifdef USE_CURSES
+	/*
+	 * Allocate line buffer
+	 * make it the same size like in !USE_CURSES case to simplify some code
+	 */
+	sptr = my_malloc(cCOLS + 2);
+#else
+	sptr = screen[INDEX2SNUM(i)].col;
+#endif /* USE_CURSES */
+
+	lptr = find_url(i);
+	snprintf(sptr, cCOLS, "  %s  %-*.*s%s", tin_ltoa(i + 1, 4), len, len, lptr->url, cCRLF);
+	WriteLine(INDEX2LNUM(i), sptr);
+
+#ifdef USE_CURSES
+	free(sptr);
+#endif /* USE_CURSES */
+}
+
+
+static t_bool
+process_url(
+	int n)
+{
+	char *url, *url_esc;
+	size_t len;
+	t_url *lptr;
+
+	lptr = find_url(n);
+	len = strlen(lptr->url);
+	url = my_malloc(len + 1);
+	if (prompt_default_string("URL:", url, len, lptr->url, HIST_URL)) {
+		if (!*url) {			/* Don't try and open nothing */
+			free(url);
+			return FALSE;
+		}
+		wait_message(2, _(txt_url_open), url);
+		url_esc = escape_shell_meta(url, no_quote);
+		len = strlen(url_esc) + strlen(tinrc.url_handler) + 2;
+		url = my_realloc(url, len);
+		snprintf(url, len, "%s %s", tinrc.url_handler, url_esc);
+		invoke_cmd(url);
+		free(url);
+		cursoroff();
+		return TRUE;
+	}
+	free(url);
+	return FALSE;
+}
+
+
+static int
+build_url_list(
+	void)
+{
+	char *ptr;
+	int i, count = 0;
+	int offsets[6];
+	int offsets_size = ARRAY_SIZE(offsets);
+	t_url *lptr = NULL;
+
+	for (i = 0; i < artlines; ++i) {
+		if (!(artline[i].flags & (C_URL | C_NEWS | C_MAIL)))
+			continue;
+
+		/*
+		 * Line contains a URL, so read it in
+		 */
+		fseek(pgart.cooked, artline[i].offset, SEEK_SET);
+		if ((ptr = tin_fgets(pgart.cooked, FALSE)) == NULL)
+			continue;
+
+		/*
+		 * Step through, finding URL's
+		 */
+		forever {
+			/* any matches left? */
+			if (pcre_exec(url_regex.re, url_regex.extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) == PCRE_ERROR_NOMATCH)
+				if (pcre_exec(mail_regex.re, mail_regex.extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) == PCRE_ERROR_NOMATCH)
+					if (pcre_exec(news_regex.re, news_regex.extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) == PCRE_ERROR_NOMATCH)
+						break;
+
+			*(ptr + offsets[1]) = '\0';
+
+			if (!lptr)
+				lptr = url_list = my_malloc(sizeof(t_url));
+			else {
+				lptr->next = my_malloc(sizeof(t_url));
+				lptr = lptr->next;
+			}
+			lptr->url = my_strdup(ptr + offsets[0]);
+			lptr->next = NULL;
+			++count;
+
+			ptr += offsets[1] + 1;
+		}
+	}
+	return count;
+}
+
+
+static void
+free_url_list(
+	void)
+{
+	t_url *p, *q;
+
+	for (p = url_list; p != NULL; p = q) {
+		q = p->next;
+		free(p->url);
+		free(p);
+	}
+	url_list = NULL;
+}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/pgp.c tin-2.0.0/src/pgp.c
--- tin-1.8.3/src/pgp.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/pgp.c	2011-04-17 16:04:30.839131852 +0200
@@ -3,10 +3,10 @@
  *  Module    : pgp.c
  *  Author    : Steven J. Madsen
  *  Created   : 1995-05-12
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-03-25
  *  Notes     : PGP support
  *
- * Copyright (c) 1995-2006 Steven J. Madsen <steve@erinet.com>
+ * Copyright (c) 1995-2011 Steven J. Madsen <steve@erinet.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -82,10 +82,13 @@
 #		define PGPNAME		PATH_GPG
 #		define PGPDIR		".gnupg"
 #		define PGP_PUBRING	"pubring.gpg"
-#		define CHECK_SIGN	"%s %s --no-batch --decrypt <%s %s"
+#		if 0 /* gpg 1.4.11 doesn't like this */
+#			define CHECK_SIGN	"%s %s --no-batch --decrypt <%s %s"
+#		else
+#			define CHECK_SIGN	"%s %s < %s %s"
+#		endif /* 0 */
 #		define ADD_KEY		"%s %s --no-batch --import %s"
 #		define APPEND_KEY	"%s %s --no-batch --armor --output %s --export %s", PGPNAME, pgpopts, keyfile, buf
-/* #		define LOCAL_USER	"--local-user %s" */
 #		define DO_ENCRYPT	\
 "%s %s --textmode --armor --no-batch --output %s.asc --recipient %s --encrypt %s", \
 PGPNAME, pgpopts, pt, mailto, pt
@@ -106,15 +109,15 @@ PGPNAME, pgpopts, pt, mailto, mailfrom, 
 #	define PGP_SIG_TAG "-----BEGIN PGP SIGNED MESSAGE-----\n"
 #	define PGP_KEY_TAG "-----BEGIN PGP PUBLIC KEY BLOCK-----\n"
 
-#	define HEADERS	"%stin-%d.h"
+#	define HEADERS	"%stin-%ld.h"
 #	ifdef HAVE_LONG_FILE_NAMES
-#		define PLAINTEXT	"%stin-%d.pt"
-#		define CIPHERTEXT	"%stin-%d.pt.asc"
-#		define KEYFILE		"%stin-%d.k.asc"
+#		define PLAINTEXT	"%stin-%ld.pt"
+#		define CIPHERTEXT	"%stin-%ld.pt.asc"
+#		define KEYFILE		"%stin-%ld.k.asc"
 #	else
-#		define PLAINTEXT	"%stn-%d.p"
-#		define CIPHERTEXT	"%stn-%d.p.asc"
-#		define KEYFILE		"%stn-%d.k.asc"
+#		define PLAINTEXT	"%stn-%ld.p"
+#		define CIPHERTEXT	"%stn-%ld.p.asc"
+#		define KEYFILE		"%stn-%ld.k.asc"
 #	endif /* HAVE_LONG_FILE_NAMES */
 
 
@@ -149,7 +152,7 @@ init_pgp(
 		if ((ptr = getenv("PGPPATH")) != NULL)
 			my_strncpy(pgp_data, ptr, sizeof(pgp_data) - 1);
 		else
-			joinpath(pgp_data, homedir, PGPDIR);
+			joinpath(pgp_data, sizeof(pgp_data), homedir, PGPDIR);
 	}
 }
 
@@ -194,9 +197,9 @@ split_file(
 	char buf[LEN];
 	mode_t mask;
 
-	snprintf(hdr, sizeof(hdr), HEADERS, TMPDIR, process_id);
-	snprintf(pt, sizeof(pt), PLAINTEXT, TMPDIR, process_id);
-	snprintf(ct, sizeof(ct), CIPHERTEXT, TMPDIR, process_id);
+	snprintf(hdr, sizeof(hdr), HEADERS, TMPDIR, (long) process_id);
+	snprintf(pt, sizeof(pt), PLAINTEXT, TMPDIR, (long) process_id);
+	snprintf(ct, sizeof(ct), CIPHERTEXT, TMPDIR, (long) process_id);
 
 	if ((art = fopen(file, "r")) == NULL)
 		return;
@@ -288,7 +291,7 @@ pgp_append_public_key(
 	else
 		snprintf(buf, sizeof(buf), "%s@%s", userid, BlankIfNull(get_host_name()));
 
-	snprintf(keyfile, sizeof(keyfile), KEYFILE, TMPDIR, process_id);
+	snprintf(keyfile, sizeof(keyfile), KEYFILE, TMPDIR, (long) process_id);
 
 /*
  * TODO: I'm guessing the pgp append key command creates 'keyfile' and that
@@ -320,7 +323,7 @@ pgp_available(
 	FILE *fp;
 	char keyring[PATH_LEN];
 
-	joinpath(keyring, pgp_data, PGP_PUBRING);
+	joinpath(keyring, sizeof(keyring), pgp_data, PGP_PUBRING);
 	if ((fp = fopen(keyring, "r")) == NULL) {
 		wait_message(2, _(txt_pgp_not_avail), keyring);
 		return FALSE;
@@ -433,9 +436,9 @@ pgp_check_article(
 	if (!pgp_available())
 		return FALSE;
 
-	joinpath(artfile, homedir, TIN_ARTICLE_NAME);
+	joinpath(artfile, sizeof(artfile), homedir, TIN_ARTICLE_NAME);
 #	ifdef APPEND_PID
-	snprintf(artfile + strlen(artfile), sizeof(artfile) - strlen(artfile), ".%d", (int) process_id);
+	snprintf(artfile + strlen(artfile), sizeof(artfile) - strlen(artfile), ".%ld", (long) process_id);
 #	endif /* APPEND_PID */
 	if ((art = fopen(artfile, "w")) == NULL) {
 		info_message(_(txt_cannot_open), artfile);
@@ -471,8 +474,15 @@ pgp_check_article(
 		my_printf("\n");
 		Raw(TRUE);
 	}
-
+#	ifndef USE_CURSES
+	EndWin();
+	Raw(FALSE);
+#	endif /* !USE_CURSES */
 	prompt_continue();
+#	ifndef USE_CURSES
+	Raw(TRUE);
+	InitWin();
+#	endif /* !USE_CURSES */
 	if (pgp_key) {
 		if (prompt_yn(_(txt_pgp_add), FALSE) == 1) {
 			Raw(FALSE);
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/plp_snprintf.c tin-2.0.0/src/plp_snprintf.c
--- tin-1.8.3/src/plp_snprintf.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/plp_snprintf.c	2011-04-17 16:04:31.299201864 +0200
@@ -118,7 +118,7 @@
 
 static const char *_id = "plp_snprintf V1999.02.20 Copyright Patrick Powell 1988-1999 <papowell@astart.com> \
 $Id: plp_snprintf.c,v 1.4 1999/02/20 17:44:16 papowell Exp papowell $\
- LOCAL REVISIONS: tin 1.5.2-01";
+ LOCAL REVISIONS: tin 1.9.5-01";
 
 /* varargs declarations: */
 
@@ -272,7 +272,13 @@ static void dopr( char *buffer, const ch
 				return;
 			case '-': ljust = 1; goto nextch;
 			case '.': set_precision = 1; precision = 0; goto nextch;
-			case '*': len = va_arg( args, int ); goto nextch;
+			case '*':
+				if( set_precision ){
+					precision = va_arg( args, int );
+				} else {
+					len = va_arg( args, int );
+				}
+				goto nextch;
 			case '0': /* set zero padding if len not set */
 				if(len==0 && set_precision == 0 ) zpad = '0';
 				/* FALLTHROUGH */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/post.c tin-2.0.0/src/post.c
--- tin-1.8.3/src/post.c	2005-12-23 18:22:18.000000000 +0100
+++ tin-2.0.0/src/post.c	2011-05-10 15:46:23.665625554 +0200
@@ -3,10 +3,10 @@
  *  Module    : post.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-12-23
+ *  Updated   : 2011-04-22
  *  Notes     : mail/post/replyto/followup/repost & cancel articles
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -49,10 +49,11 @@
 #ifdef USE_CANLOCK
 #	define ADD_CAN_KEY(id) { \
 		char key[1024]; \
-		const char *kptr = (const char *) 0; \
+		char *kptr; \
 		key[0] = '\0'; \
 		if ((kptr = build_cankey(id, get_secret())) != NULL) { \
 			STRCPY(key, kptr); \
+			free(kptr); \
 			msg_add_header("Cancel-Key", key); \
 		} \
 	}
@@ -66,10 +67,11 @@
 #	ifdef EVIL_INSIDE
 #		define ADD_CAN_LOCK(id) { \
 			char lock[1024]; \
-			const char *lptr = (const char *) 0; \
+			char *lptr = (char *) 0; \
 			lock[0] = '\0'; \
 			if ((lptr = build_canlock(id, get_secret())) != NULL) { \
 				STRCPY(lock, lptr); \
+				free(lptr); \
 				msg_add_header("Cancel-Lock", lock); \
 			} \
 		}
@@ -124,11 +126,11 @@ 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 FILE *create_mail_headers(char *filename, size_t filename_len, 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);
-static int check_article_to_be_posted(const char *the_article, int art_type, struct t_group **group, t_bool art_unchanged);
+static int check_article_to_be_posted(const char *the_article, int art_type, struct t_group **group, t_bool art_unchanged, t_bool use_cache);
 static int mail_loop(const char *filename, t_function func, char *subject, const char *groupname, const char *prompt, FILE *articlefp);
 static int msg_add_x_body(FILE *fp_out, const char *body);
 static int msg_write_headers(FILE *fp);
@@ -147,6 +149,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);
@@ -161,18 +164,22 @@ static void msg_init_headers(void);
 static void post_postponed_article(int ask, const char *subject, const char *newsgroups);
 static void postpone_article(const char *the_article);
 static void setup_check_article_screen(int *init);
+static void show_followup_info(void);
 static void strip_double_ngs(char *ngs_list);
 static void update_active_after_posting(char *newsgroups);
 static void update_posted_info_file(const char *group, int action, const char *subj, const char *a_message_id);
 #ifdef FORGERY
 	static void make_path_header(char *line);
+	static void show_cancel_info(t_bool author, t_bool use_cache);
+#else
+	static void show_cancel_info(void);
 #endif /* FORGERY */
 #ifdef EVIL_INSIDE
 	static const char *build_messageid(void);
 	static char *radix32(unsigned long int num);
 #endif /* EVIL_INSIDE */
 #ifdef USE_CANLOCK
-	static const char *build_cankey(const char *messageid, const char *secret);
+	static char *build_cankey(const char *messageid, const char *secret);
 #endif /* USE_CANLOCK */
 
 
@@ -193,16 +200,35 @@ prompt_to_send(
 #endif /* HAVE_PGP_GPG */
 	t_function func;
 
+#if defined(HAVE_ISPELL) && defined(HAVE_PGP_GPG)
 	snprintf(buf, sizeof(buf), _(txt_quit_edit_send),
 					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_send_keys)),
 					printascii(keyedit, func_to_key(POST_EDIT, post_send_keys)),
-#ifdef HAVE_ISPELL
 					printascii(keyispell, func_to_key(POST_ISPELL, post_send_keys)),
-#endif /* HAVE_ISPELL */
-#ifdef HAVE_PGP_GPG
 					printascii(keypgp, func_to_key(POST_PGP, post_send_keys)),
-#endif /* HAVE_PGP_GPG */
 					printascii(keysend, func_to_key(POST_SEND, post_send_keys)));
+#else
+#	ifdef HAVE_ISPELL
+	snprintf(buf, sizeof(buf), _(txt_quit_edit_send),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_send_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_send_keys)),
+					printascii(keyispell, func_to_key(POST_ISPELL, post_send_keys)),
+					printascii(keysend, func_to_key(POST_SEND, post_send_keys)));
+#	else
+#		ifdef HAVE_PGP_GPG
+	snprintf(buf, sizeof(buf), _(txt_quit_edit_send),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_send_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_send_keys)),
+					printascii(keypgp, func_to_key(POST_PGP, post_send_keys)),
+					printascii(keysend, func_to_key(POST_SEND, post_send_keys)));
+#		else
+	snprintf(buf, sizeof(buf), _(txt_quit_edit_send),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_send_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_send_keys)),
+					printascii(keysend, func_to_key(POST_SEND, post_send_keys)));
+#		endif /* HAVE_PGP_GPG */
+#	endif /* HAVE_ISPELL */
+#endif /* HAVE_ISPELL && HAVE_PGP_GPG */
 
 	func = prompt_slk_response(POST_SEND, post_send_keys, "%s",
 				sized_message(&smsg, buf, subject));
@@ -242,14 +268,14 @@ init_postinfo(
 	char *ptr;
 
 	/*
-	 * check enviroment for REPLYTO
+	 * check environment for REPLYTO
 	 */
 	reply_to[0] = '\0';
 	if ((ptr = getenv("REPLYTO")) != NULL)
 		my_strncpy(reply_to, ptr, sizeof(reply_to) - 1);
 
 	/*
-	 * check enviroment for DISTRIBUTION
+	 * check environment for DISTRIBUTION
 	 */
 	my_distribution[0] = '\0';
 	if ((ptr = getenv("DISTRIBUTION")) != NULL)
@@ -276,10 +302,10 @@ repair_article(
 
 	*result = func;
 	if (func == POST_EDIT) {
-		if (invoke_editor(article_name, start_line_offset))
+		if (invoke_editor(article_name, start_line_offset, group))
 			return TRUE;
 	} else if (func == GLOBAL_OPTION_MENU) {
-		(void) change_config_file(group); /*OD:*/
+		config_page(group->name);
 		return TRUE;
 	}
 	return FALSE;
@@ -291,7 +317,7 @@ repair_article(
  * submit_news_file adds headers, does q-p conversion etc
  * TODO: why not use BACKUP_FILE_EXT like in misc.c?
  */
-static char *
+char *
 backup_article_name(
 	const char *the_article)
 {
@@ -410,11 +436,13 @@ msg_write_headers(
 	for (i = 0; i < MAX_MSG_HEADERS; i++) {
 		if (msg_headers[i].name) {
 			fprintf(fp, "%s: %s\n", msg_headers[i].name, BlankIfNull(msg_headers[i].text));
-			p = msg_headers[i].text;
-			do {
-				wrote++;
-				p = strchr(++p, '\n');
-			} while (p);
+			wrote++;
+			if ((p = msg_headers[i].text)) {
+				while ((p = strchr(p, '\n'))) {
+					p++;
+					wrote++;
+				}
+			}
 		}
 	}
 	fputc('\n', fp);
@@ -459,11 +487,10 @@ user_posted_messages(
 				posted[i].date[k++] = buf[j];	/* posted date */
 
 		if (buf[j] == '\n') {
-			error_message(_(txt_error_corrupted_file), posted_info_file);
-			(void) sleep(1);
+			error_message(3, _(txt_error_corrupted_file), posted_info_file);
 			fclose(fp);
 			clear_message();
-			FreeAndNull(posted);
+			free(posted);
 			return FALSE;
 		}
 		posted[i].date[k] = '\0';
@@ -503,7 +530,7 @@ user_posted_messages(
 	fclose(fp);
 
 	if (!(fp = tmpfile())) {
-		FreeAndNull(posted);
+		free(posted);
 		return FALSE;
 	}
 	for (; i > 0; i--) {
@@ -513,14 +540,20 @@ user_posted_messages(
 		buf[cCOLS - 2] = '\0';
 		fprintf(fp, "%s%s", buf, cCRLF);
 	}
-	FreeAndNull(posted);
+	free(posted);
 	info_pager(fp, _(txt_post_history_menu), TRUE);
 	fclose(fp);
+	info_pager(NULL, NULL, TRUE); /* free mem */
 
 	return TRUE;
 }
 
 
+/*
+ * TODO:
+ * - mime-encode subject so we get the right charset (it may be different
+ *   in subsequent sessions); update user_posted_messages accordingly.
+ */
 static void
 update_posted_info_file(
 	const char *group,
@@ -538,21 +571,31 @@ update_posted_info_file(
 
 	file_tmp = get_tmpfilename(posted_info_file);
 	if (!backup_file(posted_info_file, file_tmp)) {
-		error_message(_(txt_filesystem_full_backup), posted_info_file);
+		error_message(2, _(txt_filesystem_full_backup), posted_info_file);
 		free(file_tmp);
 		return;
 	}
 
 	if ((fp = fopen(posted_info_file, "a+")) != NULL) {
+		int err;
+
 		(void) time(&epoch);
 		pitm = localtime(&epoch);
-		if (*a_message_id)
-			fprintf(fp, "%02d-%02d-%02d|%c|%s|%s|%s\n", pitm->tm_mday, pitm->tm_mon + 1, pitm->tm_year % 100, action, BlankIfNull(group), BlankIfNull(subj), a_message_id);
-		else
+		if (*a_message_id) {
+			char *mid = my_strdup(a_message_id);
+
+			fprintf(fp, "%02d-%02d-%02d|%c|%s|%s|%s\n", pitm->tm_mday, pitm->tm_mon + 1, pitm->tm_year % 100, action, BlankIfNull(group), BlankIfNull(subj), BlankIfNull(str_trim(mid)));
+			free(mid);
+		} else
 			fprintf(fp, "%02d-%02d-%02d|%c|%s|%s\n", pitm->tm_mday, pitm->tm_mon + 1, pitm->tm_year % 100, action, BlankIfNull(group), BlankIfNull(subj));
-		if (ferror(fp) || fclose(fp)) {
-			error_message(_(txt_filesystem_full), posted_info_file);
+
+		if ((err = ferror(fp)) || fclose(fp)) {
+			error_message(2, _(txt_filesystem_full), posted_info_file);
 			rename_file(file_tmp, posted_info_file);
+			if (err) {
+				clearerr(fp);
+				fclose(fp);
+			}
 		} else
 			unlink(file_tmp);
 	} else
@@ -575,11 +618,13 @@ append_mail(
 	FILE *fp_in, *fp_out;
 	char *bufp;
 	char buf[LEN];
-	int fd;
-	int retrys = 10;	/* maximum lock retrys */
 	time_t epoch;
 	t_bool mmdf = FALSE;
 	t_bool rval = FALSE;
+#ifndef NO_LOCKING
+	int fd;
+	unsigned int retrys = 11;	/* maximum lock retrys + 1 */
+#endif /* NO_LOCKING */
 
 	if (!strcasecmp(txt_mailbox_formats[tinrc.mailbox_format], "MMDF") && the_mailbox != postponed_articles_file)
 		mmdf = TRUE;
@@ -588,25 +633,28 @@ append_mail(
 		return rval;
 
 	if ((fp_out = fopen(the_mailbox, "a+")) != NULL) {
+#ifndef NO_LOCKING
 		fd = fileno(fp_out);
 		/* TODO: move the retry/error stuff into a function? */
-		while (retrys-- && fd_lock(fd, FALSE))
+		while (--retrys && fd_lock(fd, FALSE))
 			wait_message(1, _(txt_trying_lock), retrys, the_mailbox);
-		if (retrys < 0) {
+		if (!retrys) {
 			wait_message(5, _(txt_error_couldnt_lock), the_mailbox);
 			fclose(fp_out);
 			fclose(fp_in);
 			return rval;
 		}
-		while (retrys-- && !dot_lock(the_mailbox))
+		retrys++;
+		while (--retrys && !dot_lock(the_mailbox))
 			wait_message(1, _(txt_trying_dotlock), retrys, the_mailbox);
-		if (retrys < 0) {
+		if (!retrys) {
 			wait_message(5, _(txt_error_couldnt_dotlock), the_mailbox);
 			fd_unlock(fd);
 			fclose(fp_out);
 			fclose(fp_in);
 			return rval;
 		}
+#endif /* !NO_LOCKING */
 
 		if (mmdf)
 			fprintf(fp_out, "%s", MMDFHDRTXT);
@@ -634,11 +682,13 @@ append_mail(
 			}
 			fputs(buf, fp_out);
 		}
-		print_art_seperator_line(fp_out, mmdf);
+		print_art_separator_line(fp_out, mmdf);
 
 		fflush(fp_out);
+#ifndef NO_LOCKING
 		if (fd_unlock(fd) || !dot_unlock(the_mailbox))
 			wait_message(4, _(txt_error_cant_unlock), the_mailbox);
+#endif /* !NO_LOCKING */
 
 		fclose(fp_out);
 		rval = TRUE;
@@ -649,6 +699,18 @@ append_mail(
 
 
 /*
+ * TODO:
+ * - cleanup!!
+ * - check for illegal (8bit) chars in References, X-Face, MIME-Version,
+ *   Content-Type, Content-Transfer-Encoding, Content-Disposition, Supersedes
+ * - check for 'illegal' headers: Xref, Injection-Info, (NNTP-Posting-Host,
+ *   NNTP-Posting-Date, X-Trace, X-Complaints-To), Date-Received,
+ *   Posting-Version, Relay-Version, Also-Control, Article-Names,
+ *   Article-Updates, See-Also
+ * - check for special newsgroups: to, ctl, all, control, junk
+ *   [RFC 5536 3.1.4]
+ * - check for 'illegal' distribultion: all [RFC 5536 3.2.4]
+ *
  * Check the article file for correct header syntax and if there
  * is a blank between the header information and the text.
  *
@@ -672,24 +734,32 @@ append_mail(
  *     headers are uniq
  * 13. Display an 'are you sure' message before posting article
  */
-#define CA_ERROR_HEADER_LINE_BLANK        0x000001
-#define CA_ERROR_MISSING_BODY_SEPERATOT   0x000002
-#define CA_ERROR_MISSING_FROM             0x000004
-#define CA_ERROR_DUPLICATED_FROM          0x000008
-#define CA_ERROR_MISSING_SUBJECT          0x000010
-#define CA_ERROR_DUPLICATED_SUBJECT       0x000020
-#define CA_ERROR_EMPTY_SUBJECT            0x000040
-#define CA_ERROR_MISSING_NEWSGROUPS       0x000080
-#define CA_ERROR_DUPLICATED_NEWSGROUPS    0x000100
-#define CA_ERROR_EMPTY_NEWSGROUPS         0x000200
-#define CA_ERROR_DUPLICATED_FOLLOWUP_TO   0x000400
-#define CA_ERROR_BAD_CHARSET              0x000800
-#define CA_ERROR_BAD_ENCODING             0x001000
+#define CA_ERROR_HEADER_LINE_BLANK        0x0000001
+#define CA_ERROR_MISSING_BODY_SEPERATOT   0x0000002
+#define CA_ERROR_MISSING_FROM             0x0000004
+#define CA_ERROR_DUPLICATED_FROM          0x0000008
+#define CA_ERROR_MISSING_SUBJECT          0x0000010
+#define CA_ERROR_DUPLICATED_SUBJECT       0x0000020
+#define CA_ERROR_EMPTY_SUBJECT            0x0000040
+#define CA_ERROR_MISSING_NEWSGROUPS       0x0000080
+#define CA_ERROR_DUPLICATED_NEWSGROUPS    0x0000100
+#define CA_ERROR_EMPTY_NEWSGROUPS         0x0000200
+#define CA_ERROR_DUPLICATED_FOLLOWUP_TO   0x0000400
+#define CA_ERROR_BAD_CHARSET              0x0000800
+#define CA_ERROR_BAD_ENCODING             0x0001000
+#define CA_ERROR_BAD_MESSAGE_ID           0x0002000
+#define CA_ERROR_BAD_DATE                 0x0004000
+#define CA_ERROR_BAD_EXPIRES              0x0008000
+#define CA_ERROR_NEWSGROUPS_NOT_7BIT      0x0010000
+#define CA_ERROR_FOLLOWUP_TO_NOT_7BIT     0x0020000
+#define CA_ERROR_DISTRIBUTIOIN_NOT_7BIT   0x0040000
+#define CA_ERROR_NEWSGROUPS_POSTER        0x0080000
+#define CA_ERROR_FOLLOWUP_TO_POSTER       0x0100000
 #ifndef FOLLOW_USEFOR_DRAFT
-#	define CA_ERROR_SPACE_IN_NEWSGROUPS    0x002000
-#	define CA_ERROR_NEWLINE_IN_NEWSGROUPS  0x004000
-#	define CA_ERROR_SPACE_IN_FOLLOWUP_TO   0x008000
-#	define CA_ERROR_NEWLINE_IN_FOLLOWUP_TO 0x010000
+#	define CA_ERROR_SPACE_IN_NEWSGROUPS    0x0200000
+#	define CA_ERROR_NEWLINE_IN_NEWSGROUPS  0x0400000
+#	define CA_ERROR_SPACE_IN_FOLLOWUP_TO   0x0800000
+#	define CA_ERROR_NEWLINE_IN_FOLLOWUP_TO 0x1000000
 #endif /* !FOLLOW_USEFOR_DRAFT */
 #define CA_WARNING_SPACES_ONLY_SUBJECT      0x000001
 #define CA_WARNING_RE_WITHOUT_REFERENCES    0x000002
@@ -698,18 +768,20 @@ append_mail(
 #define CA_WARNING_WRONG_SIGDASHES          0x000010
 #define CA_WARNING_LONG_SIGNATURE           0x000020
 #define CA_WARNING_ENCODING_EXTERNAL_INEWS  0x000040
+#define CA_WARNING_NEWSGROUPS_EXAMPLE       0x000080
+#define CA_WARNING_FOLLOWUP_TO_EXAMPLE      0x000100
 #ifdef CHARSET_CONVERSION
-#	define CA_WARNING_CHARSET_CONVERSION    0x000080
+#	define CA_WARNING_CHARSET_CONVERSION    0x000200
 #endif /* CHARSET_CONVERSION */
 #ifdef FOLLOW_USEFOR_DRAFT
-#	define CA_WARNING_SPACE_IN_NEWSGROUPS    0x000100
-#	define CA_WARNING_NEWLINE_IN_NEWSGROUPS  0x000200
-#	define CA_WARNING_SPACE_IN_FOLLOWUP_TO   0x000400
-#	define CA_WARNING_NEWLINE_IN_FOLLOWUP_TO 0x000800
+#	define CA_WARNING_SPACE_IN_NEWSGROUPS    0x000400
+#	define CA_WARNING_NEWLINE_IN_NEWSGROUPS  0x000800
+#	define CA_WARNING_SPACE_IN_FOLLOWUP_TO   0x001000
+#	define CA_WARNING_NEWLINE_IN_FOLLOWUP_TO 0x002000
 #endif /* FOLLOW_USEFOR_DRAFT */
 
 /*
- * TODO: cleanup
+ * TODO: cleanup!
  *
  * return values:
  * 	0	article ok
@@ -721,10 +793,12 @@ check_article_to_be_posted(
 	const char *the_article,
 	int art_type,
 	struct t_group **group,
-	t_bool art_unchanged)
+	t_bool art_unchanged,
+	t_bool use_cache)
 {
 	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 +817,7 @@ 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];
+	int must_break_line = 0;
 	struct t_group *psGrp;
 	t_bool end_of_header = FALSE;
 	t_bool got_long_line = FALSE;
@@ -752,17 +826,36 @@ check_article_to_be_posted(
 	t_bool mime_7bit = TRUE;
 	t_bool mime_usascii = FALSE;
 	t_bool contains_8bit = FALSE;
-	int must_break_line = 0;
 #ifdef CHARSET_CONVERSION
 	t_bool charset_conversion_fails = FALSE;
-	int mmnwcharset = *group ? (*group)->attribute->mm_network_charset : tinrc.mm_network_charset;
+	int mmnwcharset;
 #endif /* CHARSET_CONVERSION */
+	static const char *c_article;
+	static int c_art_type;
+	static struct t_group **c_group;
+	static t_bool c_art_unchanged;
 
-	if ((fp = fopen(the_article, "r")) == NULL) {
-		perror_message(_(txt_cannot_open), the_article);
+	/*
+	 * Cache values for the case when called
+	 * from refresh_post_screen()
+	 */
+	if (!use_cache) {
+		c_article = the_article;
+		c_art_type = art_type;
+		c_group = group;
+		c_art_unchanged = art_unchanged;
+	}
+
+#ifdef CHARSET_CONVERSION
+	mmnwcharset = *c_group ? (*c_group)->attribute->mm_network_charset : tinrc.mm_network_charset;
+#endif /* CHARSET_CONVERSION */
+
+	if ((fp = fopen(c_article, "r")) == NULL) {
+		perror_message(_(txt_cannot_open), c_article);
 		return 0;
 	}
 	oldraw = RawState();	/* save state */
+	subject[0] = '\0';
 
 	/* check the header of the article */
 	while ((line = tin_fgets(fp, TRUE)) != NULL) {
@@ -774,12 +867,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
@@ -796,8 +887,8 @@ check_article_to_be_posted(
 			setup_check_article_screen(&init);
 			StartInverse();
 			my_fprintf(stderr, _(txt_error_header_line_colon), cnt, line);
-			my_fflush(stderr);
 			EndInverse();
+			my_fflush(stderr);
 			errors++;
 			continue;
 		}
@@ -805,8 +896,8 @@ check_article_to_be_posted(
 			setup_check_article_screen(&init);
 			StartInverse();
 			my_fprintf(stderr, _(txt_error_header_line_space), cnt, line);
-			my_fflush(stderr);
 			EndInverse();
+			my_fflush(stderr);
 			errors++;
 		}
 
@@ -821,8 +912,8 @@ check_article_to_be_posted(
 			setup_check_article_screen(&init);
 			StartInverse();
 			my_fprintf(stderr, _(txt_error_sender_in_header_not_allowed), cnt);
-			my_fflush(stderr);
 			EndInverse();
+			my_fflush(stderr);
 			errors++;
 		}
 #endif /* !FORGERY */
@@ -831,9 +922,9 @@ check_article_to_be_posted(
 			if (tinrc.beginner_level) {
 				setup_check_article_screen(&init);
 				/* StartInverse(); */
-				my_fprintf(stderr, _(txt_error_approved)); /* this is only a Warning: */
-				my_fflush(stderr);
+				my_fprintf(stderr, "%s", _(txt_error_approved)); /* this is only a Warning: */
 				/* EndInverse(); */
+				my_fflush(stderr);
 #ifdef HAVE_FASCIST_NEWSADMIN
 				errors++;
 #else
@@ -850,8 +941,8 @@ check_article_to_be_posted(
 				StartInverse();
 				my_fprintf(stderr, _(txt_error_bad_approved), i);
 				my_fprintf(stderr, gnksa_strerror(i), i);
-				my_fflush(stderr);
 				EndInverse();
+				my_fflush(stderr);
 #ifndef FORGERY
 				errors++;
 #endif /* !FORGERY */
@@ -871,8 +962,8 @@ check_article_to_be_posted(
 				StartInverse();
 				my_fprintf(stderr, _(txt_error_bad_from), i);
 				my_fprintf(stderr, gnksa_strerror(i), i);
-				my_fflush(stderr);
 				EndInverse();
+				my_fflush(stderr);
 #ifndef FORGERY
 				errors++;
 #endif /* !FORGERY */
@@ -891,8 +982,8 @@ check_article_to_be_posted(
 				StartInverse();
 				my_fprintf(stderr, _(txt_error_bad_replyto), i);
 				my_fprintf(stderr, gnksa_strerror(i), i);
-				my_fflush(stderr);
 				EndInverse();
+				my_fflush(stderr);
 #ifndef FORGERY
 				errors++;
 #endif /* !FORGERY */
@@ -905,23 +996,26 @@ check_article_to_be_posted(
 			char addr[HEADER_LEN], name[HEADER_LEN];
 			int type;
 
-			i = gnksa_check_from(cp + 1);
-			gnksa_split_from(cp + 1, addr, name, &type);
-			if (((GNKSA_OK != i) && (GNKSA_LOCALPART_MISSING > i)) || !*addr) {
+			i = gnksa_check_from(++cp);
+			gnksa_split_from(cp, addr, name, &type);
+			if (((GNKSA_OK != i) && (GNKSA_LOCALPART_MISSING > i)) || !*addr)
 #else
-			i = gnksa_check_from(cp + 1);
-			if ((GNKSA_OK != i) && (GNKSA_LOCALPART_MISSING > i)) {
+			i = gnksa_check_from(++cp);
+			if ((GNKSA_OK != i) && (GNKSA_LOCALPART_MISSING > i))
 #endif /* 0 */
+			{
 				setup_check_article_screen(&init);
 				StartInverse();
 				my_fprintf(stderr, _(txt_error_bad_msgidfqdn), i);
 				my_fprintf(stderr, gnksa_strerror(i), i);
-				my_fflush(stderr);
 				EndInverse();
+				my_fflush(stderr);
 #ifndef FORGERY
 				errors++;
 #endif /* !FORGERY */
 			}
+			if (damaged_id(cp))
+				errors_catbp |= CA_ERROR_BAD_MESSAGE_ID;
 		}
 
 		if (cp - line == 10 && !strncasecmp(line, "References", 10)) {
@@ -932,6 +1026,24 @@ check_article_to_be_posted(
 				saw_references = TRUE;
 		}
 
+		if (cp - line == 4 && !strncasecmp(line, "Date", 4)) {
+			if ((cp2 = parse_header(line, "Date", FALSE, FALSE, FALSE))) {
+				if (parsedate(cp2, (struct _TIMEINFO *) 0) <= 0)
+				errors_catbp |= CA_ERROR_BAD_DATE;
+			} else {
+				errors_catbp |= CA_ERROR_BAD_DATE;
+			}
+		}
+
+		if (cp - line == 7 && !strncasecmp(line, "Expires", 7)) {
+			if ((cp2 = parse_header(line, "Expires", FALSE, FALSE, FALSE))) {
+				if (parsedate(cp2, (struct _TIMEINFO *) 0) <= 0)
+				errors_catbp |= CA_ERROR_BAD_EXPIRES;
+			} else {
+				errors_catbp |= CA_ERROR_BAD_EXPIRES;
+			}
+		}
+
 		/*
 		 * TODO: also check for other illegal chars?
 		 *       a 'common' error is to use a semicolon instead of a comma.
@@ -956,30 +1068,48 @@ 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;
+			newsgroups = build_nglist(cp, &ngcnt);
+			if (newsgroups && ngcnt)
+				(void) stripped_double_ngs(newsgroups, &ngcnt);
+
+			if (!ngcnt)
+				errors_catbp |= CA_ERROR_EMPTY_NEWSGROUPS;
+			else {
+				for (cp = line + 11; *cp; cp++) {
+					if (!isascii(*cp)) {
+						errors_catbp |= CA_ERROR_NEWSGROUPS_NOT_7BIT;
+						break;
 					}
-					strcpy(ngptrs[ngcnt], cp);
-					ngcnt++;
 				}
-				cp = cp2;
 			}
-			if (!ngcnt)
-				errors_catbp |= CA_ERROR_EMPTY_NEWSGROUPS;
+			{ /* check for poster, example, example.* */
+				char *groups;
+
+				for (cp = line + 11; *cp == ' '; cp++)
+					;
+				cp2 = groups = my_strdup(cp);
+
+				cp = strtok(groups, ",");
+				do {
+					if (!strcmp(cp, "poster"))
+						errors_catbp |= CA_ERROR_NEWSGROUPS_POSTER;
+					if (!strcmp(cp, "example"))
+						warnings_catbp |= CA_WARNING_NEWSGROUPS_EXAMPLE;
+					if (!strncmp(cp, "example.", 8))
+						warnings_catbp |= CA_WARNING_NEWSGROUPS_EXAMPLE;
+					/* TODO: also check for to, ctl, all, control, junk */
+				} while ((cp = strtok(NULL, ",")) != NULL);
+				free(cp2);
+			}
+		}
+
+		if (cp - line == 12 && !strncasecmp(line, "Distribution", 12)) {
+			for (cp = line + 13; *cp; cp++) {
+				if (!isascii(*cp)) {
+					errors_catbp |= CA_ERROR_DISTRIBUTIOIN_NOT_7BIT;
+					break;
+				}
+			}
 		}
 
 		if (cp - line == 11 && !strncasecmp(line, "Followup-To", 11)) {
@@ -987,7 +1117,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,27 +1132,34 @@ 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;
+
+			followupto = build_nglist(cp, &ftngcnt);
+			if (followupto && ftngcnt) {
+				char *groups;
+
+				(void) stripped_double_ngs(followupto, &ftngcnt);
+				for (cp = line + 12; *cp; cp++) {
+					if (!isascii(*cp)) {
+						errors_catbp |= CA_ERROR_FOLLOWUP_TO_NOT_7BIT;
+						break;
 					}
-					strcpy(ftngptrs[ftngcnt], cp);
-					ftngcnt++;
 				}
-				cp = cp2;
+
+				for (cp = line + 12; *cp == ' '; cp++)
+					;
+				cp2 = groups = my_strdup(cp);
+
+				cp = strtok(groups, ",");
+				do {
+					if (!strcmp(cp, "poster") && ftngcnt > 1)
+						errors_catbp |= CA_ERROR_FOLLOWUP_TO_POSTER;
+					if (!strcmp(cp, "example"))
+						warnings_catbp |= CA_WARNING_FOLLOWUP_TO_EXAMPLE;
+					if (!strncmp(cp, "example.", 8))
+						warnings_catbp |= CA_WARNING_FOLLOWUP_TO_EXAMPLE;
+					/* TODO: also check for to, ctl, all, control, junk */
+				} while ((cp = strtok(NULL, ",")) != NULL);
+				free(cp2);
 			}
 		}
 	}
@@ -1064,7 +1200,7 @@ check_article_to_be_posted(
 			errors_catbp |= CA_ERROR_DUPLICATED_FROM;
 	}
 
-	if (!found_newsgroups_lines && art_type == GROUP_TYPE_NEWS)
+	if (!found_newsgroups_lines && c_art_type == GROUP_TYPE_NEWS)
 		errors_catbp |= CA_ERROR_MISSING_NEWSGROUPS;
 
 	if (found_newsgroups_lines > 1)
@@ -1144,7 +1280,7 @@ check_article_to_be_posted(
 						contains_8bit = TRUE;
 					cp++;
 					col++;
-#endif /* MULTIBYTE_ABLE && ! NO_LOCALE */
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 				}
 			}
 		}
@@ -1163,19 +1299,19 @@ check_article_to_be_posted(
 /*
  * TODO: cleanup, test me, move to the right location, strings -> lang.c, ...
  */
-	if (must_break_line && strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], txt_base64)) {
+	if (must_break_line && ((*c_group ? (*c_group)->attribute->post_mime_encoding : tinrc.post_mime_encoding) != MIME_ENCODING_BASE64)) {
 		setup_check_article_screen(&init);
 #	ifdef MIME_BREAK_LONG_LINES
 		if (contains_8bit) {
-			if (strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], txt_quoted_printable))
+			if ((*c_group ? (*c_group)->attribute->post_mime_encoding : tinrc.post_mime_encoding) != MIME_ENCODING_QP)
 				my_fprintf(stderr, _("Line %d is longer than 998 octets and should be folded, but\nencoding is neither set to %s nor to %s\n"), must_break_line, txt_quoted_printable, txt_base64);
 		} else
 #	endif /* MIME_BREAK_LONG_LINES */
 		{
-			if (!strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], txt_quoted_printable))
-				my_fprintf(stderr, _("Line %d is longer than 998 octets, and should be folded, but\nencoding is set to %s without enabling MIME_BREAK_LONG_LINES or\nposting doesn't contain any 8bit chars and thus folding won't happen\n"), must_break_line, txt_quoted_printable);
+			if ((*c_group ? (*c_group)->attribute->post_mime_encoding : tinrc.post_mime_encoding) == MIME_ENCODING_QP)
+				my_fprintf(stderr, _("Line %d is longer than 998 octets and should be folded, but\nencoding is set to %s without enabling MIME_BREAK_LONG_LINES or\nposting doesn't contain any 8bit chars and thus folding won't happen\n"), must_break_line, txt_quoted_printable);
 			else
-				my_fprintf(stderr, _("Line %d is longer than 998 octets, and should be folded, but\nencoding is not set to %s\n"), must_break_line, txt_base64);
+				my_fprintf(stderr, _("Line %d is longer than 998 octets and should be folded, but\nencoding is not set to %s\n"), must_break_line, txt_base64);
 		}
 		my_fflush(stderr);
 		warnings++;
@@ -1215,7 +1351,7 @@ check_article_to_be_posted(
 	 * Is this correct for crosspostings?
 	 */
 	if (ngcnt)
-		*group = group_find(ngptrs[0]);
+		*c_group = group_find(newsgroups[0], FALSE);
 
 	/*
 	 * check for known 7bit charsets
@@ -1231,7 +1367,7 @@ check_article_to_be_posted(
 			break;
 		}
 	}
-	if (strcasecmp(txt_mime_encodings[tinrc.post_mime_encoding], "7bit"))
+	if ((*c_group ? (*c_group)->attribute->post_mime_encoding : tinrc.post_mime_encoding) != MIME_ENCODING_7BIT)
 		mime_7bit = FALSE;
 	if (contains_8bit && mime_usascii)
 #ifndef CHARSET_CONVERSION
@@ -1249,7 +1385,7 @@ check_article_to_be_posted(
 	 * signature it will not be encoded. We might additionally check if there's
 	 * a file named ~/.signature and skip the warning if it is not present.
 	 */
-	if (((tinrc.post_mime_encoding == MIME_ENCODING_QP) || (tinrc.post_mime_encoding == MIME_ENCODING_BASE64)) && 0 != strcasecmp(tinrc.inews_prog, INTERNAL_CMD))
+	if ((((*c_group ? (*c_group)->attribute->post_mime_encoding : tinrc.post_mime_encoding) == MIME_ENCODING_QP) || ((*c_group ? (*c_group)->attribute->post_mime_encoding : tinrc.post_mime_encoding) == MIME_ENCODING_BASE64)) && 0 != strcasecmp(tinrc.inews_prog, INTERNAL_CMD))
 		warnings_catbp |= CA_WARNING_ENCODING_EXTERNAL_INEWS;
 
 	/* give most error messages */
@@ -1259,9 +1395,9 @@ check_article_to_be_posted(
 
 		/* missing headers */
 		if (errors_catbp & CA_ERROR_HEADER_LINE_BLANK)
-			my_fprintf(stderr, _(txt_error_header_line_blank));
+			my_fprintf(stderr, "%s", _(txt_error_header_line_blank));
 		if (errors_catbp & CA_ERROR_MISSING_BODY_SEPERATOT)
-			my_fprintf(stderr, _(txt_error_header_and_body_not_separate));
+			my_fprintf(stderr, "%s", _(txt_error_header_and_body_not_separate));
 		if (errors_catbp & CA_ERROR_MISSING_FROM)
 			my_fprintf(stderr, _(txt_error_header_line_missing), "From");
 		if (errors_catbp & CA_ERROR_MISSING_SUBJECT)
@@ -1269,7 +1405,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)
@@ -1299,14 +1435,34 @@ check_article_to_be_posted(
 			my_fprintf(stderr, _(txt_error_header_line_groups_contd), "Followup-To");
 #endif /* !FOLLOW_USEFOR_DRAFT */
 
+		/* illegal group names / combinations */
+		if (errors_catbp & CA_ERROR_NEWSGROUPS_POSTER)
+			my_fprintf(stderr, "%s", _(txt_error_newsgroups_poster));
+		if (errors_catbp & CA_ERROR_FOLLOWUP_TO_POSTER)
+			my_fprintf(stderr, "%s", _(txt_error_followup_poster));
+
 		/* encoding/charset trouble */
 		if (errors_catbp & CA_ERROR_BAD_CHARSET)
-			my_fprintf(stderr, _(txt_error_header_line_bad_charset));
+			my_fprintf(stderr, "%s", _(txt_error_header_line_bad_charset));
 		if (errors_catbp & CA_ERROR_BAD_ENCODING)
-			my_fprintf(stderr, _(txt_error_header_line_bad_encoding));
+			my_fprintf(stderr, "%s", _(txt_error_header_line_bad_encoding));
+
+		if (errors_catbp & CA_ERROR_DISTRIBUTIOIN_NOT_7BIT)
+			my_fprintf(stderr, _(txt_error_header_line_not_7bit), "Distribution");
+		if (errors_catbp & CA_ERROR_NEWSGROUPS_NOT_7BIT)
+			my_fprintf(stderr, _(txt_error_header_line_not_7bit), "Newsgroups");
+		if (errors_catbp & CA_ERROR_FOLLOWUP_TO_NOT_7BIT)
+			my_fprintf(stderr, _(txt_error_header_line_not_7bit), "Followup-To");
+
+		if (errors_catbp & CA_ERROR_BAD_MESSAGE_ID)
+			my_fprintf(stderr, _(txt_error_header_format), "Message-ID");
+		if (errors_catbp & CA_ERROR_BAD_DATE)
+			my_fprintf(stderr, _(txt_error_header_format), "Date");
+		if (errors_catbp & CA_ERROR_BAD_EXPIRES)
+			my_fprintf(stderr, _(txt_error_header_format), "Expires");
 
-		my_fflush(stderr);
 		EndInverse();
+		my_fflush(stderr);
 		errors += errors_catbp;
 	}
 
@@ -1315,11 +1471,14 @@ check_article_to_be_posted(
 		setup_check_article_screen(&init);
 
 		if (warnings_catbp & CA_WARNING_SPACES_ONLY_SUBJECT)
-			my_fprintf(stderr, _(txt_warn_blank_subject));
+			my_fprintf(stderr, "%s", _(txt_warn_blank_subject));
 		if (warnings_catbp & CA_WARNING_RE_WITHOUT_REFERENCES)
-			my_fprintf(stderr, _(txt_warn_re_but_no_references));
+			my_fprintf(stderr, "%s", _(txt_warn_re_but_no_references));
 		if (warnings_catbp & CA_WARNING_REFERENCES_WITHOUT_RE)
-			my_fprintf(stderr, _(txt_warn_references_but_no_re));
+			my_fprintf(stderr, "%s", _(txt_warn_references_but_no_re));
+
+		if ((warnings_catbp & CA_WARNING_NEWSGROUPS_EXAMPLE) || (warnings_catbp & CA_WARNING_FOLLOWUP_TO_EXAMPLE))
+			my_fprintf(stderr, "%s", _(txt_warn_example_hierarchy));
 
 #ifdef FOLLOW_USEFOR_DRAFT /* TODO: give useful warning */
 		if (warnings_catbp & CA_WARNING_SPACE_IN_NEWSGROUPS)
@@ -1335,12 +1494,12 @@ check_article_to_be_posted(
 		if (warnings_catbp & CA_WARNING_MULTIPLE_SIGDASHES)
 			my_fprintf(stderr, _(txt_warn_multiple_sigs), saw_sig_dashes);
 		if (warnings_catbp & CA_WARNING_WRONG_SIGDASHES)
-			my_fprintf(stderr, _(txt_warn_wrong_sig_format));
+			my_fprintf(stderr, "%s", _(txt_warn_wrong_sig_format));
 		if (warnings_catbp & CA_WARNING_LONG_SIGNATURE)
 			my_fprintf(stderr, _(txt_warn_sig_too_long), MAX_SIG_LINES);
 
 		if (warnings_catbp & CA_WARNING_ENCODING_EXTERNAL_INEWS)
-			my_fprintf(stderr, _(txt_warn_encoding_and_external_inews));
+			my_fprintf(stderr, "%s", _(txt_warn_encoding_and_external_inews));
 
 #ifdef CHARSET_CONVERSION
 		if (warnings_catbp & CA_WARNING_CHARSET_CONVERSION)
@@ -1356,21 +1515,33 @@ check_article_to_be_posted(
 		 * Print a note about each newsgroup
 		 */
 		setup_check_article_screen(&init);
-		if (art_unchanged)
-			my_fprintf(stderr, _(txt_warn_article_unchanged));
+		if (c_art_unchanged)
+			my_fprintf(stderr, "%s", _(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));
-			else {
+			if ((psGrp = group_find(newsgroups[i], FALSE))) {
+				if (psGrp->aliasedto) {
+#ifdef HAVE_FASCIST_NEWSADMIN
+					StartInverse();
+					errors++;
+					my_fprintf(stderr, N_(txt_error_grp_renamed), newsgroups[i], psGrp->aliasedto);
+					EndInverse();
+					my_fflush(stderr);
+#else
+					my_fprintf(stderr, N_(txt_warn_grp_renamed), newsgroups[i], psGrp->aliasedto);
+					warnings++;
+#endif /* HAVE_FASCIST_NEWSADMIN */
+				} else
+					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_fflush(stderr);
+				my_fprintf(stderr, _(txt_error_not_valid_newsgroup), newsgroups[i]);
 				EndInverse();
+				my_fflush(stderr);
 #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 */
 			}
@@ -1379,8 +1550,8 @@ check_article_to_be_posted(
 #ifdef HAVE_FASCIST_NEWSADMIN
 			StartInverse();
 			my_fprintf(stderr, _(txt_error_missing_followup_to), ngcnt);
-			my_fflush(stderr);
 			EndInverse();
+			my_fflush(stderr);
 			errors++;
 #else
 			my_fprintf(stderr, _(txt_warn_missing_followup_to), ngcnt);
@@ -1392,12 +1563,12 @@ check_article_to_be_posted(
 			if (ftngcnt > 1) {
 #ifdef HAVE_FASCIST_NEWSADMIN
 				StartInverse();
-				my_fprintf(stderr, _(txt_error_followup_to_several_groups));
-				my_fflush(stderr);
+				my_fprintf(stderr, "%s", _(txt_error_followup_to_several_groups));
 				EndInverse();
+				my_fflush(stderr);
 				errors++;
 #else
-				my_fprintf(stderr, _(txt_warn_followup_to_several_groups));
+				my_fprintf(stderr, "%s", _(txt_warn_followup_to_several_groups));
 				warnings++;
 #endif /* HAVE_FASCIST_NEWSADMIN */
 			}
@@ -1406,20 +1577,32 @@ 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));
-					else {
-						if (STRCMPEQ("poster", ftngptrs[i]))
-							my_fprintf(stderr, _(txt_followup_poster), ftngptrs[i]);
-						else {
+					if ((psGrp = group_find(followupto[i], FALSE))) {
+						if (psGrp->aliasedto) {
 #ifdef HAVE_FASCIST_NEWSADMIN
 							StartInverse();
-							my_fprintf(stderr, _(txt_error_not_valid_newsgroup), ftngptrs[i]);
+							errors++;
+							my_fprintf(stderr, N_(txt_error_grp_renamed), followupto[i], psGrp->aliasedto);
+							EndInverse();
 							my_fflush(stderr);
+#else
+							my_fprintf(stderr, N_(txt_warn_grp_renamed), followupto[i], psGrp->aliasedto);
+							warnings++;
+#endif /* HAVE_FASCIST_NEWSADMIN */
+						} else
+							my_fprintf(stderr, "  %s\t %s\n", followupto[i], BlankIfNull(psGrp->description));
+					} else {
+						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), followupto[i]);
 							EndInverse();
+							my_fflush(stderr);
 							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 */
 						}
@@ -1432,7 +1615,7 @@ check_article_to_be_posted(
 
 #ifndef NO_ETIQUETTE
 		if (tinrc.beginner_level)
-			my_fprintf(stderr, _(txt_warn_posting_etiquette));
+			my_fprintf(stderr, "%s", _(txt_warn_posting_etiquette));
 #endif /* !NO_ETIQUETTE */
 		my_fflush(stderr);
 	}
@@ -1441,10 +1624,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);
 }
@@ -1464,6 +1651,45 @@ setup_check_article_screen(
 }
 
 
+void
+refresh_post_screen(
+	int context)
+{
+	switch (context) {
+		case cPost:
+			ClearScreen();
+			center_line(0, TRUE, _(txt_check_article));
+			MoveCursor(INDEX_TOP, 0);
+			check_article_to_be_posted(NULL, 0, NULL, FALSE, TRUE);
+			break;
+
+		case cPostCancel:
+			{
+				int oldraw = RawState();
+
+				ClearScreen();
+				center_line(0, TRUE, _(txt_check_article));
+				MoveCursor(INDEX_TOP, 0);
+				Raw(FALSE);
+#ifdef FORGERY
+				show_cancel_info(FALSE, TRUE);
+#else
+				show_cancel_info();
+#endif /* FORGERY */
+				Raw(oldraw);
+			}
+			break;
+
+		case cPostFup:
+			show_followup_info();
+			break;
+
+		default:
+			break;
+	}
+}
+
+
 /*
  * edit/present an article, perform spell/PGP etc., operations if required
  * submit the article and perform all necessary backend processing
@@ -1480,6 +1706,7 @@ post_loop(
 	char a_message_id[HEADER_LEN];	/* Message-ID of the article if known */
 	int ret_code = POSTED_NONE;
 	int i = 1;
+	int save_signal_context = signal_context;
 	long artchanged;		/* artchanged work was not done in post_postponed_article */
 	struct t_group *ogroup = curr_group;
 	t_bool art_unchanged;
@@ -1496,7 +1723,7 @@ post_article_loop:
 				 * recheck subject and restart editor, but is not enabled
 				 */
 				artchanged = file_mtime(article_name);
-				if (!invoke_editor(article_name, offset)) {
+				if (!invoke_editor(article_name, offset, group)) {
 					if (file_size(article_name) > 0L) {
 						if (artchanged != file_mtime(article_name)) {
 							unlink(backup_article_name(article_name));
@@ -1513,7 +1740,7 @@ post_article_loop:
 				if (file_size(article_name) > 0L) {
 					if (artchanged == file_mtime(article_name))
 						art_unchanged = TRUE;
-					while ((i = check_article_to_be_posted(article_name, art_type, &group, art_unchanged)) == 1 && repair_article(&func, group))
+					while ((i = check_article_to_be_posted(article_name, art_type, &group, art_unchanged, FALSE)) == 1 && repair_article(&func, group))
 						;
 					if (func == POST_EDIT || func == GLOBAL_OPTION_MENU)
 						break;
@@ -1523,7 +1750,7 @@ post_article_loop:
 			case GLOBAL_QUIT:
 			case GLOBAL_ABORT:
 				if (tinrc.unlink_article) {
-#if 0 /* usefull? */
+#if 0 /* useful? */
 					if (tinrc.keep_dead_articles)
 						append_file(dead_articles, dead_article);
 #endif /* 0 */
@@ -1533,8 +1760,8 @@ post_article_loop:
 				return ret_code;
 
 			case GLOBAL_OPTION_MENU:
-				(void) change_config_file(group);
-				while ((i = check_article_to_be_posted(article_name, art_type, &group, art_unchanged) == 1) && repair_article(&func, group))
+				config_page(group->name);
+				while ((i = check_article_to_be_posted(article_name, art_type, &group, art_unchanged, FALSE)) == 1 && repair_article(&func, group))
 					;
 				break;
 
@@ -1593,6 +1820,7 @@ post_article_loop:
 			default:
 				break;
 		}
+		signal_context = cPost;
 		if (type != POST_REPOST) {
 			char keyedit[MAXKEYLEN], keypost[MAXKEYLEN];
 			char keypostpone[MAXKEYLEN], keyquit[MAXKEYLEN];
@@ -1604,19 +1832,47 @@ post_article_loop:
 			char keypgp[MAXKEYLEN];
 #endif /* HAVE_PGP_GPG */
 
+#if defined(HAVE_ISPELL) && defined(HAVE_PGP_GPG)
 			func = prompt_slk_response((i ? POST_EDIT : art_unchanged ? POST_POSTPONE : GLOBAL_POST),
 					post_post_keys, _(txt_quit_edit_post),
 					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
 					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
-#ifdef HAVE_ISPELL
 					printascii(keyispell, func_to_key(POST_ISPELL, post_post_keys)),
-#endif /* HAVE_ISPELL */
-#ifdef HAVE_PGP_GPG
 					printascii(keypgp, func_to_key(POST_PGP, post_post_keys)),
-#endif /* HAVE_PGP_GPG */
 					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
 					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
 					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#else
+#	ifdef HAVE_ISPELL
+			func = prompt_slk_response((i ? POST_EDIT : art_unchanged ? POST_POSTPONE : GLOBAL_POST),
+					post_post_keys, _(txt_quit_edit_post),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+					printascii(keyispell, func_to_key(POST_ISPELL, post_post_keys)),
+					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#	else
+#		ifdef HAVE_PGP_GPG
+			func = prompt_slk_response((i ? POST_EDIT : art_unchanged ? POST_POSTPONE : GLOBAL_POST),
+					post_post_keys, _(txt_quit_edit_post),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+					printascii(keypgp, func_to_key(POST_PGP, post_post_keys)),
+					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#		else
+			func = prompt_slk_response((i ? POST_EDIT : art_unchanged ? POST_POSTPONE : GLOBAL_POST),
+					post_post_keys, _(txt_quit_edit_post),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#		endif /* HAVE_PGP_GPG */
+#	endif /* HAVE_ISPELL */
+#endif /* HAVE_ISPELL && HAVE_PGP_GPG */
 		} else {
 			char *smsg;
 			char buf[LEN];
@@ -1630,18 +1886,43 @@ post_article_loop:
 			char keypgp[MAXKEYLEN];
 #endif /* HAVE_PGP_GPG */
 
+#if defined(HAVE_ISPELL) && defined(HAVE_PGP_GPG)
 			snprintf(buf, sizeof(buf), _(txt_quit_edit_xpost),
 					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
 					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
-#ifdef HAVE_ISPELL
 					printascii(keyispell, func_to_key(POST_ISPELL, post_post_keys)),
-#endif /* HAVE_ISPELL */
-#ifdef HAVE_PGP_GPG
 					printascii(keypgp, func_to_key(POST_PGP, post_post_keys)),
-#endif /* HAVE_PGP_GPG */
 					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
 					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
 					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#else
+#	ifdef HAVE_ISPELL
+			snprintf(buf, sizeof(buf), _(txt_quit_edit_xpost),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+					printascii(keyispell, func_to_key(POST_ISPELL, post_post_keys)),
+					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#	else
+#		ifdef HAVE_PGP_GPG
+			snprintf(buf, sizeof(buf), _(txt_quit_edit_xpost),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+					printascii(keypgp, func_to_key(POST_PGP, post_post_keys)),
+					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#		else
+			snprintf(buf, sizeof(buf), _(txt_quit_edit_xpost),
+					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+					printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+					printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+					printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+					printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#		endif /* HAVE_PGP_GPG */
+#	endif /* HAVE_ISPELL */
+#endif /* HAVE_ISPELL && HAVE_PGP_GPG */
 
 			/* Superfluous force_command stuff not used in current code */
 			func = ( /* force_command ? ch_default : */ prompt_slk_response(func,
@@ -1649,6 +1930,7 @@ post_article_loop:
 						"" /* TODO: was note_h.subj */ )));
 			free(smsg);
 		}
+		signal_context = save_signal_context;
 	}
 
 post_article_done:
@@ -1682,11 +1964,13 @@ post_article_done:
 			 * actually in
 			 * FIXME: This logic is faithful to the original, but awful
 			 */
-			if (art_type == GROUP_TYPE_NEWS && tinrc.add_posted_to_filter && (type == POST_QUICK || type == POST_POSTPONED || type == POST_NORMAL)) {
-				if ((group = group_find(header.newsgroups)) && (type != POST_POSTPONED || (type == POST_POSTPONED && !strchr(header.newsgroups, ',')))) {
-					quick_filter_select_posted_art(group, header.subj, a_message_id);
-					if (type == POST_QUICK || (type == POST_POSTPONED && post_postponed_and_exit))
-						write_filter_file(filter_file);
+			if (group) { /* we might be (x-)posting to an unavailable group */
+				if (art_type == GROUP_TYPE_NEWS && group->attribute->add_posted_to_filter && (type == POST_QUICK || type == POST_POSTPONED || type == POST_NORMAL)) {
+					if ((group = group_find(header.newsgroups, FALSE)) && (type != POST_POSTPONED || (type == POST_POSTPONED && !strchr(header.newsgroups, ',')))) {
+						quick_filter_select_posted_art(group, header.subj, a_message_id);
+						if (type == POST_QUICK || (type == POST_POSTPONED && post_postponed_and_exit))
+							write_filter_file(filter_file);
+					}
 				}
 			}
 
@@ -1730,16 +2014,16 @@ post_article_done:
 			char a_mailbox[LEN];
 			char posted_msgs_file[PATH_LEN];
 
-			joinpath(posted_msgs_file, tinrc.maildir, tinrc.posted_articles_file);
+			joinpath(posted_msgs_file, sizeof(posted_msgs_file), cmdline.args & CMDLINE_MAILDIR ? cmdline.maildir : (group ? group->attribute->maildir : tinrc.maildir), tinrc.posted_articles_file);
 			/*
 			 * log Message-ID if given in a_message_id,
 			 * add Date:, remove empty headers
 			 */
 			add_headers(article_name, a_message_id);
-			if (!strfpath(posted_msgs_file, a_mailbox, sizeof(a_mailbox), group))
+			if (!strfpath(posted_msgs_file, a_mailbox, sizeof(a_mailbox), group, TRUE))
 				STRCPY(a_mailbox, posted_msgs_file);
 			if (!append_mail(article_name, userid, a_mailbox)) {
-				/* TODO: error message */
+				/* TODO: error handling */
 			}
 		}
 		free_and_init_header(&header);
@@ -1780,7 +2064,7 @@ check_moderated(
 	do {
 		vnum++; /* number of newsgroups */
 
-		if (!(group = group_find(groupname))) {
+		if (!(group = group_find(groupname, FALSE))) {
 			bnum++;	/* number of bogus groups */
 			continue;
 		}
@@ -1793,7 +2077,7 @@ check_moderated(
 		 * Generally only bogus groups should have no attributes
 		 */
 		if (group->bogus) {
-			error_message(_(txt_group_bogus), groupname);
+			error_message(2, _(txt_group_bogus), groupname);
 			return NULL;
 		}
 
@@ -1805,16 +2089,15 @@ check_moderated(
 			return NULL;
 		}
 
-		if (group->moderated == 'x' || group->moderated == 'n') {
-			error_message(_(txt_cannot_post_group), group->name);
+		if (group->moderated == 'x' || group->moderated == 'n' || group->moderated == 'j') {
+			error_message(2, _(txt_cannot_post_group), group->name);
 			return NULL;
 		}
 
 		if (group->moderated == 'm') {
 			char *prompt = fmt_string(_(txt_group_is_moderated), groupname);
 			if (prompt_yn(prompt, TRUE) != 1) {
-/*				Raw(FALSE); */
-				error_message(failmsg);
+				error_message(*failmsg ? 2 : 0, failmsg);
 				free(prompt);
 				return NULL;
 			}
@@ -1825,7 +2108,7 @@ check_moderated(
 	if (vnum > bnum)
 		return first_group;
 	else {
-		error_message(_(txt_not_in_active_file), groupname);
+		error_message(2, _(txt_not_in_active_file), groupname);
 		return NULL;
 	}
 }
@@ -1884,11 +2167,13 @@ create_normal_article_headers(
 		ADD_MSG_ID_HEADER();
 	}
 
-	if (group->attribute->followup_to != NULL && art_type == GROUP_TYPE_NEWS)
-		msg_add_header("Followup-To", group->attribute->followup_to);
-	else {
-		if (tinrc.prompt_followupto)
-			msg_add_header("Followup-To", "");
+	if (art_type == GROUP_TYPE_NEWS) {
+		if (group->attribute->followup_to != NULL)
+			msg_add_header("Followup-To", group->attribute->followup_to);
+		else {
+			if (group->attribute->prompt_followupto)
+				msg_add_header("Followup-To", "");
+		}
 	}
 
 	if (*reply_to)
@@ -1991,7 +2276,7 @@ post_postponed_article(
 		*p = '\0';
 
 	snprintf(buf, sizeof(buf), _("Posting: %.*s ..."), cCOLS - 14, subject); /* TODO: -> lang.c, use strunc() */
-	post_loop(POST_POSTPONED, group_find(ng), (ask ? POST_EDIT : GLOBAL_POST), buf, GROUP_TYPE_NEWS, 0);
+	post_loop(POST_POSTPONED, group_find(ng, FALSE), (ask ? POST_EDIT : GLOBAL_POST), buf, GROUP_TYPE_NEWS, 0);
 	free(ng);
 	return;
 }
@@ -2191,7 +2476,7 @@ pickup_postponed_articles(
 			case GLOBAL_QUIT:
 			case GLOBAL_ABORT:
 				if (!append_mail(article_name, userid, postponed_articles_file)) {
-					/* TODO: : error -message */
+					/* TODO: error handling */
 				}
 				unlink(article_name);
 				if (func != PROMPT_NO)
@@ -2212,7 +2497,7 @@ postpone_article(
 {
 	wait_message(3, _(txt_info_do_postpone));
 	if (!append_mail(the_article, userid, postponed_articles_file)) {
-		/* TODO: error-message */
+		/* TODO: error handling */
 	}
 }
 
@@ -2308,19 +2593,27 @@ skip_id(
 	return skipped;
 }
 
-
+/*
+ * Checks if Message-ID has valid format
+ * Returns FALSE if it does, TRUE if it does not
+ * TODO: combine with refs.c:valid_msgid() (return values swapped)
+ */
 static t_bool
 damaged_id(
 	const char *id)
 {
 	while (*id && isspace((unsigned char) *id))
 		id++;
+
 	if (*id != '<')
-		return 1;
+		return TRUE;
+
 	while (isascii((unsigned char) *id) && isgraph((unsigned char) *id) && !iscntrl((unsigned char) *id) && *id != '>')
 		id++;
+
 	if (*id != '>')
 		return TRUE;
+
 	return FALSE;
 }
 
@@ -2349,7 +2642,11 @@ is_crosspost(
  * several newsservers out there which do have some length limit, so
  * shortening to 998 is a good idea.
  */
-#define MAXREFSIZE 998
+#ifdef NNTP_ONLY
+#	define MAXREFSIZE 998
+#else /* some extern inews (required for posting right into the spool) can't handle 1k-lines */
+#	define MAXREFSIZE 512
+#endif /* NNTP_ONLY */
 
 
 /*
@@ -2462,6 +2759,43 @@ join_references(
 }
 
 
+static void
+show_followup_info(
+	void)
+{
+	char *ptr;
+	struct t_header note_h = pgart.hdr;
+
+	/*
+	 * note that comparing newsgroups and followup-to isn't
+	 * really correct, since the order of the newsgroups may be
+	 * different, but testing that also isn't really worth
+	 * it. The main culprit for the duplication is tin <=1.22, BTW.
+	 */
+	MoveCursor(cLINES / 2, 0);
+	CleartoEOS();
+	center_line((cLINES / 2) + 2, TRUE, _(txt_resp_redirect));
+	MoveCursor((cLINES / 2) + 4, 0);
+
+	my_fputs("    ", stdout);
+	/*
+	 * TODO: check if any valid groups are in the Followup-To:-line
+	 *       and if not inform the user and use Newsgroups: instead
+	 */
+	ptr = note_h.followup;
+	while (*ptr) {
+		if (*ptr != ',')
+			my_fputc(*ptr, stdout);
+		else {
+			my_fputs(cCRLF, stdout);
+			my_fputs("    ", stdout);
+		}
+		ptr++;
+	}
+	my_flush();
+}
+
+
 int /* return code is currently ignored! */
 post_response(
 	const char *groupname,
@@ -2522,40 +2856,16 @@ post_response(
 	} else if (note_h.followup && strcmp(note_h.followup, groupname) != 0
 			&& strcmp(note_h.followup, note_h.newsgroups) != 0) {
 		char keyignore[MAXKEYLEN], keypost[MAXKEYLEN], keyquit[MAXKEYLEN];
+		int save_signal_context = signal_context;
 
-		/*
-		 * note that comparing newsgroups and followup-to isn't
-		 * really correct, since the order of the newsgroups may be
-		 * different, but testing that also isn't really worth
-		 * it. The main culprit for the duplication is tin <=1.22, BTW.
-		 */
-		MoveCursor(cLINES / 2, 0);
-		CleartoEOS();
-		center_line((cLINES / 2) + 2, TRUE, _(txt_resp_redirect));
-		MoveCursor((cLINES / 2) + 4, 0);
-
-		my_fputs("    ", stdout);
-		/*
-		 * TODO: check if any valid groups are in the Followup-To:-line
-		 *       and if not inform the user and use Newsgroups: instead
-		 */
-		ptr = note_h.followup;
-		while (*ptr) {
-			if (*ptr != ',')
-				my_fputc(*ptr, stdout);
-			else {
-				my_fputs(cCRLF, stdout);
-				my_fputs("    ", stdout);
-			}
-			ptr++;
-		}
-		my_flush();
-
+		show_followup_info();
+		signal_context = cPostFup;
 		func = prompt_slk_response(GLOBAL_POST, post_ignore_fupto_keys,
 				_(txt_prompt_fup_ignore),
 				printascii(keypost, func_to_key(GLOBAL_POST, post_ignore_fupto_keys)),
 				printascii(keyignore, func_to_key(POST_IGNORE_FUPTO, post_ignore_fupto_keys)),
 				printascii(keyquit, func_to_key(GLOBAL_QUIT, post_ignore_fupto_keys)));
+		signal_context = save_signal_context;
 		switch (func) {
 			case GLOBAL_QUIT:
 			case GLOBAL_ABORT:
@@ -2578,7 +2888,7 @@ post_response(
 
 	fchmod(fileno(fp), (mode_t) (S_IRUSR|S_IWUSR));
 
-	group = group_find(groupname);
+	group = group_find(groupname, FALSE);
 	get_from_name(from_name, group);
 #ifdef FORGERY
 	make_path_header(line);
@@ -2595,7 +2905,7 @@ post_response(
 		msg_add_header("X-Comment-To", note_h.from);
 	if (note_h.followup && use_followup_to) {
 		msg_add_header("Newsgroups", note_h.followup);
-		if (tinrc.prompt_followupto)
+		if (group && group->attribute->prompt_followupto)
 			msg_add_header("Followup-To", (strchr(note_h.followup, ',') != NULL) ? note_h.followup : "");
 	} else {
 		if (group && group->attribute->mailing_list) {
@@ -2603,12 +2913,12 @@ post_response(
 			art_type = GROUP_TYPE_MAIL;
 		} else {
 			msg_add_header("Newsgroups", note_h.newsgroups);
-			if (tinrc.prompt_followupto)
+			if (group && group->attribute->prompt_followupto)
 				msg_add_header("Followup-To", (strchr(note_h.newsgroups, ',') != NULL) ? note_h.newsgroups : "");
 			if (group && group->attribute->followup_to != NULL)
 				msg_add_header("Followup-To", group->attribute->followup_to);
 			else {
-				if ((ptr = strchr(note_h.newsgroups, ',')))
+				if (strchr(note_h.newsgroups, ','))
 					msg_add_header("Followup-To", note_h.newsgroups);
 			}
 		}
@@ -2637,15 +2947,17 @@ post_response(
 			msg_add_header("Distribution", my_distribution);
 	}
 
-	msg_add_x_headers(group->attribute->x_headers);
+	if (group && group->attribute->x_headers)
+		msg_add_x_headers(group->attribute->x_headers);
 
 	start_line_offset = msg_write_headers(fp) + 1;
 	msg_free_headers();
-	start_line_offset += msg_add_x_body(fp, group->attribute->x_body);
+	if (group && group->attribute->x_body)
+		start_line_offset += msg_add_x_body(fp, group->attribute->x_body);
 
 	if (copy_text) {
 		if (arts[respnum].xref && is_crosspost(arts[respnum].xref)) {
-			if (strfquote(group->name, respnum, buf, sizeof(buf), tinrc.xpost_quote_format))
+			if (strfquote(group ? group->name : groupname, respnum, buf, sizeof(buf), tinrc.xpost_quote_format))
 				fprintf(fp, "%s\n", buf);
 		} else if (strfquote(groupname, respnum, buf, sizeof(buf), (group && group->attribute->news_quote_format != NULL) ? group->attribute->news_quote_format : tinrc.news_quote_format))
 			fprintf(fp, "%s\n", buf);
@@ -2695,7 +3007,7 @@ post_response(
 					while (pgart.cookl[i].flags & C_HEADER) /* skip headers in cooked art if any */
 						i++;
 
-					if (i) /* cooked art contained any headers, so skip also the header/body seperator */
+					if (i) /* cooked art contained any headers, so skip also the header/body separator */
 						i++;
 
 					fseek(pgart.cooked, pgart.cookl[i].offset, SEEK_SET); /* skip headers and header/body separator */
@@ -2726,6 +3038,7 @@ post_response(
 static FILE *
 create_mail_headers(
 	char *filename,
+	size_t filename_len,
 	const char *suffix,
 	const char *to,
 	const char *subject,
@@ -2734,12 +3047,11 @@ create_mail_headers(
 	FILE *fp;
 
 	msg_init_headers();
-	joinpath(filename, homedir, suffix);
+	joinpath(filename, filename_len, homedir, suffix);
 
-	/* TODO: why do we exclude VMS here but nowhere else? */
-#if defined(APPEND_PID) && !defined(VMS)
-	snprintf(filename + strlen(filename), PATH_LEN - strlen(filename), ".%d", (int) process_id);
-#endif /* APPEND_PID && !VMS */
+#ifdef APPEND_PID
+	snprintf(filename + strlen(filename), filename_len - strlen(filename), ".%ld", (long) process_id);
+#endif /* APPEND_PID */
 
 	if ((fp = fopen(filename, "w")) == NULL) {
 		perror_message(_(txt_cannot_open), filename);
@@ -2779,10 +3091,10 @@ create_mail_headers(
 		 * put in the file in the first place, so we don't do it.
 		 */
 		if (!address_in_list(to, strlen(from_address) ? from_address : userid)) {
-			if (tinrc.auto_cc)
+			if ((curr_group && curr_group->attribute && (curr_group->attribute->auto_cc_bcc & AUTO_CC)) || (!curr_group && (tinrc.auto_cc_bcc & AUTO_CC)))
 				msg_add_header("Cc", strlen(from_address) ? from_address : userid);
 
-			if (tinrc.auto_bcc)
+			if ((curr_group && curr_group->attribute && (curr_group->attribute->auto_cc_bcc & AUTO_BCC)) || (!curr_group && (tinrc.auto_cc_bcc & AUTO_BCC)))
 				msg_add_header("Bcc", strlen(from_address) ? from_address : userid);
 		}
 
@@ -2840,14 +3152,14 @@ mail_loop(
 #endif /* HAVE_PGP_GPG */
 
 	if (groupname)
-		group = group_find(groupname);
+		group = group_find(groupname, FALSE);
 
 	forever {
 		switch (func) {
 			case POST_EDIT:
 				artchanged = file_mtime(filename);
 
-				if (!(invoke_editor(filename, start_line_offset)))
+				if (!(invoke_editor(filename, start_line_offset, group)))
 					return ret;
 
 				ret = POSTED_REDRAW;
@@ -2869,9 +3181,10 @@ mail_loop(
 					strncpy(subject, hdr.subj, HEADER_LEN - 1);
 					subject[HEADER_LEN - 1] = '\0';
 				} else
-					error_message(_(txt_error_header_line_missing), "Subject");
+					error_message(2, _(txt_error_header_line_missing), "Subject");
 				if (!hdr.to && !hdr.cc && !hdr.bcc)
-					error_message(_(txt_error_header_line_missing), "To");
+					error_message(2, _(txt_error_header_line_missing), "To");
+				free_and_init_header(&hdr);
 				break;
 
 #ifdef HAVE_ISPELL
@@ -2892,7 +3205,8 @@ mail_loop(
 				if (get_recipients(&hdr, mail_to, sizeof(mail_to) - 1))
 					invoke_pgp_mail(filename, mail_to);
 				else
-					error_message(_(txt_error_header_line_missing), "To");
+					error_message(2, _(txt_error_header_line_missing), "To");
+				free_and_init_header(&hdr);
 				break;
 #endif /* HAVE_PGP_GPG */
 
@@ -2968,7 +3282,7 @@ mail_to_someone(
 	const struct t_group *group)
 {
 	FILE *fp;
-	char nam[HEADER_LEN];
+	char nam[PATH_LEN];
 	char subject[HEADER_LEN];
 	int ret_code = POSTED_NONE;
 	struct t_header note_h = artinfo->hdr;
@@ -2983,14 +3297,51 @@ mail_to_someone(
 	 * the full original headers in either the body of the mail or a separate
 	 * message/rfc822 MIME part.
 	 */
-	if ((fp = create_mail_headers(nam, TIN_LETTER_NAME, address, subject, NULL)) == NULL)
+	if ((fp = create_mail_headers(nam, sizeof(nam), TIN_LETTER_NAME, address, subject, NULL)) == NULL)
 		return ret_code;
 
+	/*
+	 * TODO: This is a undocumented hack!
+	 * in the !mime_forward case we should get the charset of each part
+	 * and convert it to the local one (as this is also needed for the
+	 * interactive_mailer case).
+	 */
+	if (note_h.ext->type == TYPE_MULTIPART)
+		mime_forward = TRUE; /* force mime_forward for multipart articles */
+
 	if (!mime_forward || INTERACTIVE_NONE != tinrc.interactive_mailer) {
 		rewind(artinfo->raw);
-		fprintf(fp, _(txt_forwarded));
-		copy_fp(artinfo->raw, fp);
-		fprintf(fp, _(txt_forwarded_end));
+		fprintf(fp, "%s", _(txt_forwarded));
+
+		if (!note_h.mime)
+			copy_fp(artinfo->raw, fp);
+		else {
+			const char *charset;
+			char *line, *buff = my_malloc(LEN);
+			size_t l, last = LEN;
+			t_bool in_head = TRUE;
+
+			/* intentionally no undeclared_charset support here! */
+			if (!(charset = get_param(note_h.ext->params, "charset")))
+				charset = "US-ASCII";
+
+			while ((line = tin_fgets(artinfo->raw, FALSE)) != NULL) {
+				if (*line == '\0')
+					in_head = FALSE;
+				l = strlen(line) * 4 + 4; /* should suffice for -> UTF-8 */
+				if (l > last) { /* realloc if needed */
+					buff = my_realloc(buff, l);
+					last = l;
+				}
+				strcpy(buff, line);
+				if (!in_head) /* just convert body */
+					process_charsets(&buff, &l, charset, tinrc.mm_local_charset, FALSE);
+				strcat(buff, "\n");
+				fwrite(buff, 1, strlen(buff), fp);
+			}
+			free(buff);
+		}
+		fprintf(fp, "%s", _(txt_forwarded_end));
 	}
 
 	if (INTERACTIVE_NONE == tinrc.interactive_mailer)
@@ -3036,7 +3387,7 @@ mail_bug_report(
 	wait_message(0, _(txt_mail_bug_report));
 	snprintf(subject, sizeof(subject), "BUG REPORT %s\n", page_header);
 
-	if ((fp = create_mail_headers(nam, ".bugreport", bug_addr, subject, NULL)) == NULL)
+	if ((fp = create_mail_headers(nam, sizeof(nam), TIN_BUGREPORT_NAME, bug_addr, subject, NULL)) == NULL)
 		return FALSE;
 
 	start_line_offset += tin_version_info(fp);
@@ -3044,11 +3395,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");
@@ -3064,23 +3422,28 @@ mail_bug_report(
 		DEFAULT_ACTIVE_NUM,
 		DEFAULT_ARTICLE_NUM,
 		tinrc.reread_active_file_secs,
-		bool_unparse(nntp_caps.over_cmd != NULL));
+		BlankIfNull(nntp_caps.over_cmd));
 	fprintf(fp, "CFG2 : debug=%d, threading=%d\n", debug, tinrc.thread_articles);
 	fprintf(fp, "CFG3 : domain=[%s]\n", BlankIfNull(domain));
 	start_line_offset += 4;
 
-	if (*bug_nntpserver1) {
-		fprintf(fp, "NNTP1: %s\n", bug_nntpserver1);
-		start_line_offset++;
-	}
-	if (*bug_nntpserver2) {
-		fprintf(fp, "NNTP2: %s\n", bug_nntpserver2);
-		start_line_offset++;
-	}
-	if (nntp_caps.implementation){
-		fprintf(fp, "IMPLE: %s\n", nntp_caps.implementation);
-		start_line_offset++;
+#ifdef NNTP_ABLE
+	if (read_news_via_nntp) {
+		if (*bug_nntpserver1) {
+			fprintf(fp, "NNTP1: %s\n", bug_nntpserver1);
+			start_line_offset++;
+		}
+		if (*bug_nntpserver2) {
+			fprintf(fp, "NNTP2: %s\n", bug_nntpserver2);
+			start_line_offset++;
+		}
+		if (nntp_caps.implementation){
+			fprintf(fp, "IMPLE: %s\n", nntp_caps.implementation);
+			start_line_offset++;
+		}
 	}
+#endif /* NNTP_ABLE */
+
 	fprintf(fp, "\nPlease enter _detailed_ bug report, gripe or comment:\n\n");
 	start_line_offset += 2;
 
@@ -3115,7 +3478,7 @@ mail_to_author(
 	FILE *fp;
 	char *p, *q;
 	char from_addr[HEADER_LEN];
-	char nam[100];
+	char nam[PATH_LEN];
 	char subject[HEADER_LEN];
 	char initials[64];
 	int ret_code = POSTED_NONE;
@@ -3159,7 +3522,7 @@ mail_to_author(
 	 * add extra headers in the mail_to_author() case as we don't include the
 	 * full original headers in the body of the mail
 	 */
-	if ((fp = create_mail_headers(nam, TIN_LETTER_NAME, from_addr, subject, &note_h)) == NULL)
+	if ((fp = create_mail_headers(nam, sizeof(nam), TIN_LETTER_NAME, from_addr, subject, &note_h)) == NULL)
 		return ret_code;
 
 	if (copy_text) {
@@ -3197,7 +3560,7 @@ mail_to_author(
 					i = 0;
 					while (pgart.cookl[i].flags & C_HEADER) /* skip headers in cooked art if any */
 						i++;
-					if (i) /* cooked art contained any headers, so skip also the header/body seperator */
+					if (i) /* cooked art contained any headers, so skip also the header/body separator */
 						i++;
 					fseek(pgart.cooked, pgart.cookl[i].offset, SEEK_SET);
 				}
@@ -3247,7 +3610,7 @@ mail_to_author(
 	resize_article(TRUE, &pgart);	/* rebreak long lines */
 
 	if (raw_data)	/* we've been in raw mode */
-		toggle_raw(group_find(group));
+		toggle_raw(group_find(group, FALSE));
 
 	return ret_code;
 }
@@ -3287,6 +3650,40 @@ check_for_spamtrap(
 }
 
 
+static void
+show_cancel_info(
+#ifdef FORGERY
+	t_bool author,
+	t_bool use_cache)
+#else
+	void)
+#endif /* FORGERY */
+{
+	struct t_header note_h = pgart.hdr;
+#ifdef FORGERY
+	static t_bool c_author;
+
+	/*
+	 * Cache value for the case when called
+	 * from refresh_post_screen()
+	 */
+	if (!use_cache)
+		c_author = author;
+
+	if (!c_author) {
+		my_fprintf(stderr, "%s", _(txt_warn_cancel_forgery));
+		my_fprintf(stderr, "From: %s\n", BlankIfNull(note_h.from));
+	} else
+#endif /* FORGERY */
+	my_fprintf(stderr, "%s", _(txt_warn_cancel));
+
+	my_fprintf(stderr, "Subject: %s\n", BlankIfNull(note_h.subj));
+	my_fprintf(stderr, "Date: %s\n", BlankIfNull(note_h.date));
+	my_fprintf(stderr, "Message-ID: %s\n", BlankIfNull(note_h.messageid));
+	my_fprintf(stderr, "Newsgroups: %s\n", BlankIfNull(note_h.newsgroups));
+}
+
+
 t_bool
 cancel_article(
 	struct t_group *group,
@@ -3295,7 +3692,7 @@ cancel_article(
 {
 	FILE *fp;
 	char buf[HEADER_LEN];
-	char cancel[HEADER_LEN];
+	char cancel[PATH_LEN];
 	char from_name[HEADER_LEN];
 	char a_message_id[HEADER_LEN];
 #ifdef FORGERY
@@ -3329,18 +3726,22 @@ cancel_article(
 #endif /* FORGERY */
 
 #ifdef DEBUG
-	if (debug == 2)
-		error_message("From=[%s]  Cancel=[%s]", art->from, from_name);
+	if (debug & DEBUG_MISC)
+		error_message(2, "From=[%s]  Cancel=[%s]", art->from, from_name);
 #endif /* DEBUG */
 
+	/*
+	 * superseding foreign articles is allowed via 'x'repost
+	 * (in the FORGERY case), so there is no need to disallow it
+	 * with 'D' here (in the FORGERY case).
+	 */
+#ifndef FORGERY
 	if (!strcasestr(from_name, art->from)) {
-#ifdef FORGERY
-		author = FALSE;
-#else
 		wait_message(3, _(txt_art_cannot_cancel));
 		return redraw_screen;
-#endif /* FORGERY */
-	} else {
+	} else
+#endif /* !FORGERY */
+ {
 		char *smsg;
 		char buff[LEN];
 		char keycancel[MAXKEYLEN], keyquit[MAXKEYLEN], keysupersede[MAXKEYLEN];
@@ -3369,9 +3770,9 @@ cancel_article(
 
 	clear_message();
 
-	joinpath(cancel, homedir, TIN_CANCEL_NAME);
+	joinpath(cancel, sizeof(cancel), homedir, TIN_CANCEL_NAME);
 #ifdef APPEND_PID
-	snprintf(cancel + strlen(cancel), sizeof(cancel) - strlen(cancel), ".%d", (int) process_id);
+	snprintf(cancel + strlen(cancel), sizeof(cancel) - strlen(cancel), ".%ld", (long) process_id);
 #endif /* APPEND_PID */
 	if ((fp = fopen(cancel, "w")) == NULL) {
 		perror_message(_(txt_cannot_open), cancel);
@@ -3403,6 +3804,7 @@ cancel_article(
 		else
 			snprintf(line, sizeof(line), "<%s>", art->from);
 		msg_add_header("From", line);
+		ADD_MSG_ID_HEADER();
 		ADD_CAN_KEY(note_h.messageid);
 	}
 #else
@@ -3418,7 +3820,7 @@ cancel_article(
 	 */
 	strip_double_ngs(note_h.newsgroups);
 	msg_add_header("Newsgroups", note_h.newsgroups);
-	if (tinrc.prompt_followupto)
+	if (group->attribute->prompt_followupto)
 		msg_add_header("Followup-To", "");
 	snprintf(buf, sizeof(buf), "cancel %s", note_h.messageid);
 	msg_add_header("Control", buf);
@@ -3427,7 +3829,7 @@ cancel_article(
 	if (group->moderated == 'm')
 		msg_add_header("Approved", from_name);
 
-	if (group && group->attribute->organization != NULL)
+	if (group->attribute->organization != NULL)
 		msg_add_header("Organization", random_organization(group->attribute->organization));
 
 	if (note_h.distrib)
@@ -3438,39 +3840,34 @@ cancel_article(
 	/* some ppl. like X-Headers: in cancels */
 	msg_add_x_headers(group->attribute->x_headers);
 
-	start_line_offset = msg_write_headers(fp);
+	start_line_offset = msg_write_headers(fp) + 1;
 	msg_free_headers();
 
 #ifdef FORGERY
-	if (author)
-		fprintf(fp, txt_article_cancelled);
-	else {
+	if (author) {
+		fprintf(fp, "%s", txt_article_cancelled);
+		start_line_offset++;
+	} else {
 		rewind(pgart.raw);
 		copy_fp(pgart.raw, fp);
 	}
 	fclose(fp);
-	invoke_editor(cancel, start_line_offset);
-	redraw_screen = TRUE;
+	invoke_editor(cancel, start_line_offset, group);
 #else
-	fprintf(fp, txt_article_cancelled);
+	fprintf(fp, "%s", txt_article_cancelled);
+	start_line_offset++;
 	fclose(fp);
 #endif /* FORGERY */
 
+	redraw_screen = TRUE;
 	oldraw = RawState();
 	setup_check_article_screen(&init);
 
 #ifdef FORGERY
-	if (!author) {
-		my_fprintf(stderr, _(txt_warn_cancel_forgery));
-		my_fprintf(stderr, "From: %s\n", BlankIfNull(note_h.from));
-	} else
+	show_cancel_info(author, FALSE);
+#else
+	show_cancel_info();
 #endif /* FORGERY */
-	my_fprintf(stderr, _(txt_warn_cancel));
-
-	my_fprintf(stderr, "Subject: %s\n", BlankIfNull(note_h.subj));
-	my_fprintf(stderr, "Date: %s\n", BlankIfNull(note_h.date));
-	my_fprintf(stderr, "Message-ID: %s\n", BlankIfNull(note_h.messageid));
-	my_fprintf(stderr, "Newsgroups: %s\n", BlankIfNull(note_h.newsgroups));
 	Raw(oldraw);
 
 	if (!(fp = fopen(cancel, "r"))) {
@@ -3487,19 +3884,23 @@ cancel_article(
 			char *smsg;
 			char buff[LEN];
 			char keycancel[MAXKEYLEN], keyedit[MAXKEYLEN], keyquit[MAXKEYLEN];
+			int save_signal_context = signal_context;
 
 			snprintf(buff, sizeof(buff), _(txt_quit_cancel),
 					printascii(keyedit, func_to_key(POST_EDIT, post_cancel_keys)),
 					printascii(keyquit, func_to_key(GLOBAL_QUIT, post_cancel_keys)),
 					printascii(keycancel, func_to_key(POST_CANCEL, post_cancel_keys)));
 
+			signal_context = cPostCancel;
 			func = prompt_slk_response(default_func, post_cancel_keys, "%s", sized_message(&smsg, buff, note_h.subj));
+			signal_context = save_signal_context;
 			free(smsg);
 		}
 
 		switch (func) {
 			case POST_EDIT:
-				invoke_editor(cancel, start_line_offset);
+				free_and_init_header(&hdr);
+				invoke_editor(cancel, start_line_offset, group);
 				if (!(fp = fopen(cancel, "r"))) {
 					/* Oops */
 					unlink(cancel);
@@ -3517,8 +3918,9 @@ cancel_article(
 					if (hdr.subj)
 						update_posted_info_file(group->name, 'd', hdr.subj, a_message_id);
 					else
-						error_message(_(txt_error_header_line_missing), "Subject");
+						error_message(2, _(txt_error_header_line_missing), "Subject");
 					unlink(cancel);
+					free_and_init_header(&hdr);
 					return redraw_screen;
 				}
 				break;
@@ -3527,6 +3929,7 @@ cancel_article(
 			case GLOBAL_ABORT:
 				unlink(cancel);
 				clear_message();
+				free_and_init_header(&hdr);
 				return redraw_screen;
 				/* NOTREACHED */
 				break;
@@ -3539,9 +3942,8 @@ cancel_article(
 	return redraw_screen;
 }
 
-
+#define FromSameUser	(strcasestr(from_name, arts[respnum].from))
 #ifndef FORGERY
-#	define FromSameUser	(strcasestr(from_name, arts[respnum].from))
 #	define NotSuperseding	(!supersede || (!FromSameUser))
 #	define Superseding	(supersede && FromSameUser)
 #else
@@ -3617,7 +4019,9 @@ repost_article(
 
 			snprintf(line, sizeof(line), "<supersede.%s", note_h.messageid + 1);
 			msg_add_header("Message-ID", line);
-			/* ADD_CAN_KEY(note_h.messageid); */ /* should we add key here? */
+			if (FromSameUser) {	/* just add can-key for own articles */
+				ADD_CAN_KEY(note_h.messageid);
+			}
 #	else
 			msg_add_header("From", from_name);
 			if (*reply_to)
@@ -3700,20 +4104,22 @@ repost_article(
 			fprintf(fp, "[ Newsgroups: %-60s ]\n", note_h.newsgroups);
 		if (note_h.messageid)
 			fprintf(fp, "[ Message-ID: %-60s ]\n\n", note_h.messageid);
-	}
+	} else /* don't break long lines if superseeding. TODO: what about uu/mime-parts? */
+		resize_article(FALSE, artinfo);
 
 	{
 		int i = 0;
+
 		while (artinfo->cookl[i].flags & C_HEADER) /* skip headers in cooked art if any */
 			i++;
-		if (i) /* cooked art contained any headers, so skip also the header/body seperator */
+		if (i) /* cooked art contained any headers, so skip also the header/body separator */
 			i++;
 		fseek(artinfo->cooked, artinfo->cookl[i].offset, SEEK_SET);
 		copy_fp(artinfo->cooked, fp);
 	}
 
 	/* only append signature when NOT superseding own articles */
-	if (NotSuperseding && tinrc.signature_repost)
+	if (NotSuperseding && group->attribute->signature_repost)
 		msg_write_signature(fp, FALSE, group);
 
 	fclose(fp);
@@ -3727,6 +4133,8 @@ repost_article(
 	if (Superseding) {
 		default_func = POST_EDIT;
 		force_command = TRUE;
+		/* rebreak long-lines that we don't grabble screen if user aborts posting ... */
+		resize_article(TRUE, artinfo);
 	}
 
 	func = default_func;
@@ -3743,18 +4151,43 @@ repost_article(
 		char keypgp[MAXKEYLEN];
 #endif /* HAVE_PGP_GPG */
 
+#if defined(HAVE_ISPELL) && defined(HAVE_PGP_GPG)
 		snprintf(buff, sizeof(buff), _(txt_quit_edit_xpost),
 				printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
 				printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
-#ifdef HAVE_ISPELL
 				printascii(keyispell, func_to_key(POST_ISPELL, post_post_keys)),
-#endif /* HAVE_ISPELL */
-#ifdef HAVE_PGP_GPG
 				printascii(keypgp, func_to_key(POST_PGP, post_post_keys)),
-#endif /* HAVE_PGP_GPG */
 				printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
 				printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
 				printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#else
+#	ifdef HAVE_ISPELL
+		snprintf(buff, sizeof(buff), _(txt_quit_edit_xpost),
+				printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+				printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+				printascii(keyispell, func_to_key(POST_ISPELL, post_post_keys)),
+				printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+				printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+				printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#	else
+#		ifdef HAVE_PGP_GPG
+		snprintf(buff, sizeof(buff), _(txt_quit_edit_xpost),
+				printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+				printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+				printascii(keypgp, func_to_key(POST_PGP, post_post_keys)),
+				printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+				printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+				printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#		else
+		snprintf(buff, sizeof(buff), _(txt_quit_edit_xpost),
+				printascii(keyquit, func_to_key(GLOBAL_QUIT, post_post_keys)),
+				printascii(keyedit, func_to_key(POST_EDIT, post_post_keys)),
+				printascii(keymenu, func_to_key(GLOBAL_OPTION_MENU, post_post_keys)),
+				printascii(keypost, func_to_key(GLOBAL_POST, post_post_keys)),
+				printascii(keypostpone, func_to_key(POST_POSTPONE, post_post_keys)));
+#		endif /* HAVE_PGP_GPG */
+#	endif /* HAVE_ISPELL */
+#endif /* HAVE_ISPELL && HAVE_PGP_GPG */
 
 		func = prompt_slk_response(default_func, post_post_keys,
 			"%s", sized_message(&smsg, buff, note_h.subj));
@@ -3770,11 +4203,10 @@ msg_add_x_headers(
 {
 	FILE *fp = NULL;
 	char *ptr;
+	char **x_hdrs = NULL;
 	char file[PATH_LEN];
 	char line[HEADER_LEN];
-	char **x_hdrs = NULL;
 	int num_x_hdrs = 0;
-	t_bool a_pipe = FALSE;
 	int i;
 
 	if (!headers)
@@ -3794,18 +4226,16 @@ msg_add_x_headers(
 		 * without this else a "x_headers=name" without a ':' would be
 		 * treated as a filename in the current dir - IMHO not very useful
 		 */
-		if (!strfpath(headers, file, sizeof(file), &CURR_GROUP))
+		if (!strfpath(headers, file, sizeof(file), &CURR_GROUP, FALSE))
 			strcpy(file, headers);
 
 #ifndef DONT_HAVE_PIPING
 		if (file[0] == '!') {
 			if ((fp = popen(file + 1, "r")) == NULL)
 				return;
-			else
-				a_pipe = TRUE;
 		}
 #endif /* !DONT_HAVE_PIPING */
-		if (!a_pipe && ((fp = fopen(file, "r")) == NULL))
+		if (!fp && ((fp = fopen(file, "r")) == NULL))
 			return;
 
 		while (fgets(line, (int) sizeof(line), fp) != NULL) {
@@ -3835,9 +4265,11 @@ msg_add_x_headers(
 			free(x_hdrs);
 		}
 
-		if (a_pipe)
+#ifndef DONT_HAVE_PIPING
+		if (file[0] == '!')
 			pclose(fp);
 		else
+#endif /* !DONT_HAVE_PIPING */
 			fclose(fp);
 	}
 }
@@ -3863,14 +4295,14 @@ msg_add_x_body(
 		return 0;
 
 	if (body[0] != '/' && body[0] != '~') { /* FIXME: Unix'ism */
-		strncpy(line, body, sizeof(line) - 1);
+		STRCPY(line, body);
 		if ((ptr = strrchr(line, '\n')) != NULL)
 			*ptr = '\0';
 
 		fprintf(fp_out, "%s\n", line);
 		wrote++;
 	} else {
-		if (!strfpath(body, file, sizeof(file), &CURR_GROUP))
+		if (!strfpath(body, file, sizeof(file), &CURR_GROUP, FALSE))
 			strcpy(file, body);
 
 		if ((fp = fopen(file, "r")) != NULL) {
@@ -3898,7 +4330,8 @@ msg_add_x_body(
  */
 char *
 checknadd_headers(
-	const char *infile)
+	const char *infile,
+	struct t_group *group)
 {
 	FILE *fp_in, *fp_out;
 	char *fcc = NULL;
@@ -3913,11 +4346,7 @@ checknadd_headers(
 	if ((fp_in = fopen(infile, "r")) == NULL)
 		return NULL;
 
-#ifdef VMS
-	snprintf(outfile, sizeof(outfile), "%s-%d", infile, (int) process_id);
-#else
-	snprintf(outfile, sizeof(outfile), "%s.%d", infile, (int) process_id);
-#endif /* VMS */
+	snprintf(outfile, sizeof(outfile), "%s.%ld", infile, (long) process_id);
 
 	if ((fp_out = fopen(outfile, "w")) == NULL) {
 		fclose(fp_in);
@@ -3928,12 +4357,12 @@ checknadd_headers(
 		if (l[0] == '\0') /* end of headers */
 			break;
 
-		if ((ptr = parse_header(l, "Newsgroups", FALSE, FALSE))) {
+		if ((ptr = parse_header(l, "Newsgroups", FALSE, FALSE, FALSE))) {
 			strip_double_ngs(ptr);
 			STRCPY(newsgroups, ptr);
 			snprintf(line, sizeof(line), "Newsgroups: %s\n", newsgroups);
 			fputs(line, fp_out);
-		} else if ((ptr = parse_header(l, "Followup-To", FALSE, FALSE))) {
+		} else if ((ptr = parse_header(l, "Followup-To", FALSE, FALSE, FALSE))) {
 			strip_double_ngs(ptr);
 			/*
 			 * Only write followup header if not blank or followups != newsgroups
@@ -3942,15 +4371,15 @@ checknadd_headers(
 				snprintf(line, sizeof(line), "Followup-To: %s\n", ptr);
 				fputs(line, fp_out);
 			}
-		} else if ((ptr = parse_header(l, "Fcc", FALSE, FALSE))) {
+		} else if ((ptr = parse_header(l, "Fcc", FALSE, FALSE, FALSE))) {
 			fcc = my_strdup(ptr);
 		} else if ((ptr = strchr(l, ':')) != NULL) { /* valid header? */
-			if (strlen(ptr) > 3) /* skip empty headers ": \n\0" */
+			if (strlen(ptr) > 2) /* skip empty headers ": \0" */
 				fprintf(fp_out, "%s\n", l);
 		}
 	} /* end of headers */
 
-	if (tinrc.advertising) {	/* Add after other headers */
+	if ((group && group->attribute->advertising) || (!group && tinrc.advertising)) {	/* Add after other headers */
 		char suffix[HEADER_LEN];
 
 		suffix[0] = '\0';
@@ -3960,31 +4389,30 @@ 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 */
 #ifdef SYSTEM_NAME
-		if (!*suffix) {
-			if (strlen(SYSTEM_NAME))
+		if (!*suffix && strlen(SYSTEM_NAME))
 				snprintf(suffix, sizeof(suffix), " (%s)", SYSTEM_NAME);
-		}
 #endif /* SYSTEM_NAME */
 
 		fprintf(fp_out, "User-Agent: %s/%s-%s (\"%s\") (%s)%s\n",
 			PRODUCT, VERSION, RELEASEDATE, RELEASENAME, OSNAME, suffix);
 	}
 
-	fputs("\n", fp_out); /* header/body seperator */
+	fputs("\n", fp_out); /* header/body separator */
 
 	while ((l = tin_fgets(fp_in, FALSE)) != NULL)
 		fprintf(fp_out, "%s\n", l);
+
 	fclose(fp_out);
 	fclose(fp_in);
 	rename_file(outfile, infile);
@@ -4005,11 +4433,7 @@ insert_from_header(
 	t_bool in_header = TRUE;
 
 	if ((fp_in = fopen(infile, "r")) != NULL) {
-#	ifdef VMS
-		snprintf(outfile, sizeof(outfile), "%s-%d", infile, (int) process_id);
-#	else
-		snprintf(outfile, sizeof(outfile), "%s.%d", infile, (int) process_id);
-#	endif /* VMS */
+		snprintf(outfile, sizeof(outfile), "%s.%ld", infile, (long) process_id);
 		if ((fp_out = fopen(outfile, "w")) != NULL) {
 			strcpy(from_name, "From: ");
 			if (*tinrc.mail_address)
@@ -4018,7 +4442,7 @@ insert_from_header(
 				get_from_name(from_name + 6, (struct t_group *) 0);
 
 #	ifdef DEBUG
-			if (debug == 2)
+			if (debug & DEBUG_MISC)
 				wait_message(2, "insert_from_header [%s]", from_name + 6);
 #	endif /* DEBUG */
 
@@ -4042,7 +4466,7 @@ insert_from_header(
 					p = rfc1522_encode(from_buff, tinrc.mm_charset, FALSE);
 #	endif /* CHARSET_CONVERSION */
 					if (GNKSA_OK != gnksa_check_from(p)) { /* error in address */
-						error_message(_(txt_invalid_from), from_buff);
+						error_message(2, _(txt_invalid_from), from_buff);
 						free(p);
 						unlink(outfile);
 						fclose(fp_out);
@@ -4060,7 +4484,7 @@ insert_from_header(
 						p = rfc1522_encode(from_name, tinrc.mm_charset, FALSE);
 #	endif /* CHARSET_CONVERSION */
 						if (GNKSA_OK != gnksa_check_from(p + 6)) { /* error in address */
-							error_message(_(txt_invalid_from), from_name + 6);
+							error_message(2, _(txt_invalid_from), from_name + 6);
 							free(p);
 							unlink(outfile);
 							fclose(fp_out);
@@ -4080,7 +4504,8 @@ insert_from_header(
 			rename_file(outfile, infile);
 
 			return TRUE;
-		}
+		} else
+			fclose(fp_in);
 	}
 	return FALSE;
 }
@@ -4154,17 +4579,21 @@ reread_active_after_posting(
 
 					if (group->newsrc.num_unread > group->count) {
 #ifdef DEBUG
-						my_printf(cCRLF "Unread WRONG grp=[%s] unread=[%ld] count=[%ld]",
-							group->name, group->newsrc.num_unread, group->count);
-						my_flush();
+						if (debug & DEBUG_NEWSRC) { /* TODO: is this the right debug-level? */
+							my_printf(cCRLF "Unread WRONG grp=[%s] unread=[%ld] count=[%ld]",
+								group->name, group->newsrc.num_unread, group->count);
+							my_flush();
+						}
 #endif /* DEBUG */
 						group->newsrc.num_unread = group->count;
 					}
 					if (group->xmin != old_min || group->xmax != old_max) {
 #ifdef DEBUG
-						my_printf(cCRLF "Min/Max DIFF grp=[%s] old=[%ld-%ld] new=[%ld-%ld]",
-							group->name, old_min, old_max, group->xmin, group->xmax);
-						my_flush();
+						if (debug & DEBUG_NEWSRC) { /* TODO: is this the right debug-level? */
+							my_printf(cCRLF "Min/Max DIFF grp=[%s] old=[%ld-%ld] new=[%ld-%ld]",
+								group->name, old_min, old_max, group->xmin, group->xmax);
+							my_flush();
+						}
 #endif /* DEBUG */
 						expand_bitmap(group, 0);
 						modified = TRUE;
@@ -4205,7 +4634,7 @@ update_active_after_posting(
 		src++;
 		if (*dst == ',' || *dst == '\0') {
 			*dst = '\0';
-			group = group_find(groupname);
+			group = group_find(groupname, FALSE);
 			if (group != NULL && group->subscribed) {
 				reread_active_for_posted_arts = TRUE;
 				group->art_was_posted = TRUE;
@@ -4230,11 +4659,8 @@ submit_mail_file(
 	char mail_to[HEADER_LEN];
 	struct t_header hdr;
 	t_bool mailed = FALSE;
-#ifdef VMS
-	char subject[HEADER_LEN];
-#endif /* VMS */
 
-	fcc = checknadd_headers(file);
+	fcc = checknadd_headers(file, group);
 
 	if (insert_from_header(file)) {
 		if ((fp = fopen(file, "r"))) {
@@ -4252,26 +4678,18 @@ submit_mail_file(
 
 				strfmailer(mailer, hdr.subj, mail_to, file, buf, sizeof(buf), tinrc.mailer_format);
 
-#ifdef VMS /* quick hack! M.St. 29.01.98 */
-				{
-					char *transport;
-
-					/* TODO: document env var */
-					transport = getenv("MAIL$INTERNET_TRANSPORT");
-					snprintf(buf, sizeof(buf), "mail/subject=\"%s\" %s %s%%\"%s\"", subject, file, *transport ? transport : "smtp", mail_to);
-				}
-#endif /* VMS */
 				if (invoke_cmd(buf))
 					mailed = TRUE;
 			} else
-				error_message(_(txt_error_header_line_missing), "To");
+				error_message(2, _(txt_error_header_line_missing), "To");
+			free_and_init_header(&hdr);
 		}
 	}
 	if (NULL != fcc) {
 		if (mailed && strlen(fcc)) {
 			char a_mailbox[PATH_LEN];
 
-			if (0 == strfpath(fcc, a_mailbox, sizeof(a_mailbox), group))
+			if (0 == strfpath(fcc, a_mailbox, sizeof(a_mailbox), group, TRUE))
 				STRCPY(a_mailbox, fcc);
 			if (!append_mail(file, userid, a_mailbox)) {
 				/* TODO: error handling */
@@ -4315,7 +4733,7 @@ split_address_list(
 	char **argv = NULL;
 	char *addr;
 	const char *start, *end, *curr;
-	size_t len = 0, addr_len = 0;
+	size_t len, addr_len;
 	unsigned int argc = 0, dquotes = 0, parens = 0;
 
 	if (!addresses) {
@@ -4581,6 +4999,7 @@ build_messageid(
 	void)
 {
 	int i;
+	size_t j;
 	static char buf[1024]; /* Message-IDs are limited to 998-12+CRLF octets */
 	static unsigned long int seqnum = 0; /* we'd use a counter in tinrc */
 	time_t t = time(NULL);
@@ -4588,12 +5007,12 @@ build_messageid(
 	if (t >= 1041379200) /* 2003-01-01 00:00:00 GMT */
 		t -= 1041379200;
 	else
-		return '\0';
+		return NULL;
 
 	snprintf(buf, sizeof(buf), "<%sT", radix32(seqnum++));
 	strcat(buf, radix32(t));
 	strcat(buf, "I");
-	strcat(buf, radix32(process_id));
+	strcat(buf, radix32((unsigned long) process_id));
 
 #	ifndef FORGERY
 	{
@@ -4616,9 +5035,27 @@ build_messageid(
 	snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "N%s@%s>", radix32(getuid()), get_fqdn(get_host_name()));
 #	endif /* !FORGERY */
 
+	/*
+	 * disallow .invalid TLD (gnksa_check_from() allows it)
+	 * and Message-IDs > 250 octects (RFC 3977, 3.6)
+	 */
+	if ((j = strlen(buf) - 9) > 0) { /* strlen(".invalid>") */
+		if (!strcasecmp(".invalid>", buf + j) || j > 241) /* 250 - 9 */
+			return NULL;
+	}
+
 	i = gnksa_check_from(buf);
 	if ((GNKSA_OK != i) && (GNKSA_LOCALPART_MISSING > i))
-		buf[0] = '\0';
+		return NULL;
+
+	/*
+	 * I've seen passwd->pw_name with spaces in it (cygwin) and we use
+	 * that in the !FROGERY case -> disallow 'common' junk which is not
+	 * catched by the gnksa_check_from()
+	 */
+	if (damaged_id(buf))
+		return NULL;
+
 	return buf;
 }
 #endif /* EVIL_INSIDE */
@@ -4630,22 +5067,15 @@ build_messageid(
  * build_canlock(messageid, secret)
  * returns *(cancel-lock) or NULL
  */
-const char *
+char *
 build_canlock(
 	const char *messageid,
 	const char *secret)
 {
 	if ((messageid == NULL) || (secret == NULL))
-		return ((const char *) 0);
+		return ((char *) 0);
 	else
-		/*
-		 * sha_lock should be
-		 * const char *sha_lock(const char *, size_t, const char *, size_t)
-		 * but unfortunately is
-		 * unsigned char *sha_lock(char *, size_t, char *, size_t)
-		 * -> cast as cast can
-		 */
-		return (const char *) (sha_lock((char *) secret, strlen(secret), (char *) messageid, strlen(messageid)));
+		return (char *) (sha_lock((const unsigned char *) secret, strlen(secret), (const unsigned char *) messageid, strlen(messageid)));
 }
 
 
@@ -4653,22 +5083,15 @@ build_canlock(
  * build_cankey(messageid, secret)
  * returns *(cancel-key) or NULL
  */
-static const char *
+static char *
 build_cankey(
 	const char *messageid,
 	const char *secret)
 {
 	if ((messageid == NULL) || (secret == NULL))
-		return ((const char *) 0);
+		return ((char *) 0);
 	else
-		/*
-		 * sha_key should be
-		 * const char *sha_key(const char *, size_t, const char *, size_t)
-		 * but unfortunately is
-		 * unsigned char *sha_key(char *, size_t, char *, size_t)
-		 * -> cast as cast can
-		 */
-		return (const char *) (sha_key((char *) secret, strlen(secret), (char *) messageid, strlen(messageid)));
+		return (sha_key((const unsigned char *) secret, strlen(secret), (const unsigned char *) messageid, strlen(messageid)));
 }
 
 
@@ -4676,11 +5099,7 @@ build_cankey(
  * get_secret()
  * returns *(secret) or NULL
  */
-#	ifdef VMS
-#		define SECRET_FILE "cancelsecret."
-#	else
-#		define SECRET_FILE ".cancelsecret"
-#	endif /* VMS */
+#	define SECRET_FILE ".cancelsecret"
 char *
 get_secret(
 	void)
@@ -4689,18 +5108,35 @@ get_secret(
 	char *ptr;
 	char path_secret[PATH_LEN];
 	static char cancel_secret[HEADER_LEN];
+	int fd;
+	struct stat statbuf;
 
 	cancel_secret[0] = '\0';
-	joinpath(path_secret, homedir, SECRET_FILE);
+	joinpath(path_secret, sizeof(path_secret), homedir, SECRET_FILE);
 	if ((fp_secret = fopen(path_secret, "r")) == NULL) {
 #	ifdef DEBUG
 		/* TODO: prompt for secret manually here? */
-		my_fprintf(stderr, _(txt_cannot_open), path_secret);
-		my_fflush(stderr);
-		sleep(2);
+		error_message(2, _(txt_cannot_open), path_secret);
 #	endif /* DEBUG */
 		return NULL;
 	} else {
+		if ((fd = fileno(fp_secret)) == -1) {
+			fclose(fp_secret);
+			return NULL;
+		}
+		if (fstat(fd, &statbuf) == -1) {
+			fclose(fp_secret);
+			return NULL;
+		}
+#	ifndef FILE_MODE_BROKEN
+		if (S_ISREG(statbuf.st_mode) && (statbuf.st_mode|S_IRUSR|S_IWUSR) != (S_IRUSR|S_IWUSR|S_IFREG)) {
+#		ifdef DEBUG
+			error_message(4, _(txt_error_insecure_permissions), path_secret, statbuf.st_mode);
+#		else
+			fchmod(fd, S_IRUSR|S_IWUSR);
+#		endif /* DEBUG */
+		}
+#	endif /* !FILE_MODE_BROKEN */
 		(void) fread(cancel_secret, HEADER_LEN - 1, 1, fp_secret);
 		fclose(fp_secret);
 	}
@@ -4774,7 +5210,10 @@ add_headers(
 
 					(void) time(&epoch);
 					gmdate = gmtime(&epoch); /* my_strftime has no %z or %Z */
-					my_strftime(dateheader, sizeof(dateheader) - 1, "Date: %a, %d %b %Y %H:%M:%S -0000\n", gmdate);
+					if (!my_strftime(dateheader, sizeof(dateheader) - 1, "Date: %a, %d %b %Y %H:%M:%S -0000\n", gmdate)) {
+						writesuccess = FALSE;
+						break;
+					}
 
 #if defined(HAVE_SETLOCALE) && !defined(NO_LOCALE)
 					/* change back LC_* */
@@ -4821,7 +5260,9 @@ add_headers(
 			break;
 		}
 	}
-
+#ifdef HAVE_FSYNC
+	fsync(fd_out);
+#endif /* HAVE_FSYNC */
 	close(fd_out);
 	fclose(fp_in);
 	if (writesuccess)
@@ -4852,72 +5293,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 --exclude='.bzr*' tin-1.8.3/src/prompt.c tin-2.0.0/src/prompt.c
--- tin-1.8.3/src/prompt.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/prompt.c	2011-04-17 16:04:31.007157421 +0200
@@ -3,10 +3,10 @@
  *  Module    : prompt.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2005-10-19
+ *  Updated   : 2011-03-25
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,6 +44,8 @@
 
 
 static char *prompt_slk_message;	/* prompt message for prompt_slk_redraw */
+static char *prompt_yn_message;
+static char *prompt_yn_choice;
 
 /*
  * Local prototypes
@@ -139,7 +141,7 @@ prompt_menu_string(
 	 * connection right before a resync_active() call
 	 * would lead to a 'n' answer to the reconnect prompt
 	 */
-	fflush(stdin);
+	/* fflush(stdin); */
 	MoveCursor(line, 0);
 	if ((p = tin_getline(prompt, FALSE, var, 0, FALSE, HIST_OTHER)) == NULL)
 		return FALSE;
@@ -163,11 +165,10 @@ prompt_yn(
 {
 	char *keyprompt;
 	char keyno[MAXKEYLEN], keyyes[MAXKEYLEN];
-	int keyyes_len = 0, keyno_len = 0, maxlen;
+	int keyyes_len = 0, keyno_len = 0, maxlen, prompt_len;
 	t_function func;
-#if defined (MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	wint_t yes, no, prompt_ch, ch;
-	wchar_t *wtmp;
 #else
 	char yes, no, prompt_ch;
 	int ch;
@@ -178,41 +179,30 @@ prompt_yn(
 	yes = func_to_key(PROMPT_YES, prompt_keys);
 	no = func_to_key(PROMPT_NO, prompt_keys);
 
-#if defined (MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 	printascii(keyyes, (default_answer ? towupper(yes) : yes));
-	if ((wtmp = char2wchar_t(keyyes))) {
-		keyyes_len = wcswidth(wtmp, wcslen(wtmp));
-		free(wtmp);
-	}
 	printascii(keyno, (!default_answer ? towupper(no) : no));
-	if ((wtmp = char2wchar_t(keyno))) {
-		keyno_len = wcswidth(wtmp, wcslen(wtmp));
-		free(wtmp);
-	}
 #else
 	printascii(keyyes, (default_answer ? toupper(yes) : yes));
 	printascii(keyno, (!default_answer ? toupper(no) : no));
-	keyyes_len = (int) strlen(keyyes);
-	keyno_len = (int) strlen(keyno);
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	keyyes_len = strwidth(keyyes);
+	keyno_len = strwidth(keyno);
 	maxlen = MAX(keyyes_len, keyno_len);
+	prompt_len = keyyes_len + keyno_len + maxlen + 6;
+	prompt_yn_message = my_strdup(prompt);
+	prompt_yn_choice = my_malloc(prompt_len + 1);
+
+	input_context = cPromptYN;
 
 	do {
 		prompt_ch = (default_answer ? yes : no);
 		keyprompt = (default_answer ? keyyes : keyno);
 
-		if (!cmd_line) {
-			MoveCursor(cLINES, 0);
-			CleartoEOLN();
-		}
-		my_printf("%s (%s/%s) %-*s", prompt, keyyes, keyno, maxlen, keyprompt);
-		if (!cmd_line)
-			cursoron();
-		my_flush();
-		if (!cmd_line)
-			MoveCursor(cLINES, (int) strlen(prompt) + keyyes_len + keyno_len + 5);
+		snprintf(prompt_yn_choice, prompt_len, " (%s/%s) %-*s", keyyes, keyno, maxlen, keyprompt);
+		prompt_yn_redraw();
 
-#if defined (MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 		if (((ch = ReadWch()) == '\n') || (ch == '\r'))
 #else
 		if (((ch = (char) ReadCh()) == '\n') || (ch == '\r'))
@@ -250,6 +240,10 @@ prompt_yn(
 		func = key_to_func(ch, prompt_keys);
 	} while (func == NOT_ASSIGNED);
 
+	input_context = cNone;
+	FreeAndNull(prompt_yn_message);
+	FreeAndNull(prompt_yn_choice);
+
 	if (!cmd_line) {
 		clear_message();
 		my_flush();
@@ -259,6 +253,37 @@ prompt_yn(
 
 
 /*
+ * (Re)draws and resize the prompt message for prompt_yn()
+ */
+void
+prompt_yn_redraw(
+	void)
+{
+	char *buf;
+	int choice_len = strwidth(prompt_yn_choice);
+	int message_len = strwidth(prompt_yn_message);
+
+	if (!cmd_line) {
+		MoveCursor(cLINES, 0);
+		CleartoEOLN();
+	}
+	if (message_len + choice_len > cCOLS - 1) {
+		buf = strunc(prompt_yn_message, cCOLS - choice_len - 1);
+		message_len = strwidth(buf);
+		my_printf("%s%s", buf, prompt_yn_choice);
+		free(buf);
+	} else
+		my_printf("%s%s", prompt_yn_message, prompt_yn_choice);
+
+	if (!cmd_line)
+		cursoron();
+	my_flush();
+	if (!cmd_line)
+		MoveCursor(cLINES, (message_len + choice_len) - 1);
+}
+
+
+/*
  * help_text is displayed near the bottom of the screen.
  * var is an index into a list containing size elements.
  * The text from list is shown at row, col + len(prompt_text)
@@ -277,12 +302,11 @@ prompt_list(
 	int size)
 {
 	int ch, var_orig;
-	int i, offset;
+	int i, offset, width = 0;
 	int change;
 	int adjust = (strcasecmp(_(list[0]), _(txt_default)) == 0);
-	size_t width = 0;
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *wbuf;
+	char *buf;
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	var += adjust;
@@ -293,19 +317,18 @@ prompt_list(
 	 * Find the length of longest printable text
 	 */
 	for (i = 0; i < size; i++)
-		width = MAX(width, strlen(_(list[i])));
+		width = MAX(width, strwidth(_(list[i])));
 
 	show_menu_help(help_text);
 	cursoron();
 
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	if ((wbuf = char2wchar_t(_(prompt_text))) != NULL) {
-		if ((offset = wcswidth(wbuf, wcslen(wbuf) + 1)) == -1) /* something went wrong, use wcslen as fallback */
-			offset = (int) wcslen(wbuf);
-		free(wbuf);
-	} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-		offset = (int) strlen(_(prompt_text));
+	offset = strwidth(_(prompt_text));
+
+	/*
+	 * Make sure to not exceed cCOLS
+	 */
+	if (offset + width >= cCOLS)
+		width = cCOLS - offset - 1;
 
 	do {
 		MoveCursor(row, col + offset);
@@ -317,7 +340,7 @@ prompt_list(
 		 *   0 = do nothing
 		 *  -1 = move to the previous list element
 		 *
-		 *  if an arrow key was pressed change ch to an other value
+		 *  if an arrow key was pressed change ch to another value
 		 *  otherwise we will exit the while loop
 		 */
 		switch (ch) {
@@ -359,16 +382,28 @@ prompt_list(
 			if (var < 0)
 				var = size - 1;
 			else
-				var %= size;
+				var %= (size ? size : 1);
 
-			my_printf("%-*s", (int) width, _(list[var]));
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+			if ((buf = spart(_(list[var]), width, TRUE)) != NULL) {
+				my_printf("%s", buf);
+				free(buf);
+			} else
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+				my_printf("%-*s", width, _(list[var]));
 			my_flush();
 		}
 	} while (ch != '\r' && ch != '\n' && ch != ESC);
 
 	if (ch == ESC) {
 		var = var_orig;
-		my_printf("%-*s", (int) width, _(list[var]));
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+		if ((buf = spart(_(list[var]), width, TRUE)) != NULL) {
+			my_printf("%s", buf);
+			free(buf);
+		} else
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+			my_printf("%-*s", width, _(list[var]));
 		my_flush();
 	}
 
@@ -390,7 +425,7 @@ prompt_option_on_off(
 	t_bool old_value = *variable;
 
 	fmt_option_prompt(prompt, sizeof(prompt), TRUE, option);
-	*variable = prompt_list(option_row(option), 0, *variable, option_table[option].txt->help, prompt, txt_onoff, 2) ? TRUE: FALSE;
+	*variable = prompt_list(option_row(option), 0, *variable, option_table[option].txt->help, prompt, txt_onoff, 2) ? TRUE : FALSE;
 	return *variable != old_value;
 }
 
@@ -426,10 +461,15 @@ prompt_option_string(
 {
 	char *variable = OPT_STRING_list[option_table[option].var_index];
 	char prompt[LEN];
+	char old_value[LEN];
 
+	STRCPY(old_value, variable);
 	show_menu_help(option_table[option].txt->help);
 	fmt_option_prompt(prompt, sizeof(prompt) - 1, TRUE, option);
-	return prompt_menu_string(option_row(option), prompt, variable);
+	if (prompt_menu_string(option_row(option), prompt, variable))
+		return strcmp(old_value, variable) ? TRUE : FALSE;
+	else
+		return FALSE;
 }
 
 
@@ -529,7 +569,7 @@ prompt_string_default(
 		my_strncpy(def, pattern, LEN);
 	else {
 		if (def[0] == '\0') {		/* no default - give up */
-			error_message(failtext);
+			error_message(2, failtext);
 			return NULL;
 		}
 	}
@@ -605,16 +645,8 @@ sized_message(
 {
 	char *buf;
 	int max_len;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *wformat;
 
-	if ((wformat = char2wchar_t(format)) != NULL) {
-		/* The formatting info (%s) wastes 2 chars, but our prompt needs 1 char */
-		max_len = cCOLS - wcswidth(wformat, wcslen(wformat) + 1) + 2 - 1;
-		free(wformat);
-	} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-		max_len = cCOLS - strlen(format) + 2 - 1;	/* The formatting info (%s) wastes 2 chars, but our prompt needs 1 char */
+	max_len = cCOLS - strwidth(format) + 2 - 1;	/* The formatting info (%s) wastes 2 chars, but our prompt needs 1 char */
 
 	buf = strunc(subject, max_len);
 
@@ -678,12 +710,11 @@ prompt_slk_response(
 		else
 			func = key_to_func(ch, keys);
 
+#if 1
 		/*
-		 * TODO: ignore special-keys which are represented as a
-		 *       multibyte ESC-seq to avoid interpreting them as 'ESC' only
-		 *       like it's done in the ugly code below.
+		 * ignore special-keys which are represented as a multibyte ESC-seq
+		 * to avoid interpreting them as 'ESC' only
 		 */
-#if 0
 		if (ch == ESC) {
 			switch (get_arrow_key(ch)) {
 				case KEYMAP_UP:
@@ -695,13 +726,14 @@ prompt_slk_response(
 				case KEYMAP_HOME:
 				case KEYMAP_END:
 					ch = '\0';
+					func = NOT_ASSIGNED;
 					break;
 
 				default:
 					break;
 			}
 		}
-#endif /* 0 */
+#endif /* 1 */
 	} while (func == NOT_ASSIGNED);
 
 	input_context = cNone;
@@ -718,20 +750,11 @@ prompt_slk_redraw(
 	void)
 {
 	int column;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	wchar_t *wtmp;
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 	wait_message(0, "%s", prompt_slk_message);
 
 	/* get the cursor _just_ right */
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	if ((wtmp = char2wchar_t(prompt_slk_message)) != NULL) {
-		column = wcswidth(wtmp, wcslen(wtmp) + 1) - 1;
-		free(wtmp);
-	} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-		column = (int) strlen(prompt_slk_message) - 1;
+	column = strwidth(prompt_slk_message) - 1;
 	MoveCursor(cLINES, column);
 }
 
@@ -747,11 +770,12 @@ prompt_continue(
 	void)
 {
 	int ch;
+	int save_signal_context = signal_context;
 
-#ifdef USE_CURSES
 	cmd_line = TRUE;
-#endif /* USE_CURSES */
 	info_message(_(txt_return_key));
+	signal_context = cMain;
+	input_context = cPromptCONT;
 
 	switch ((ch = ReadCh())) {
 		case ESC:
@@ -765,8 +789,14 @@ prompt_continue(
 			break;
 	}
 
+	input_context = cNone;
+	signal_context = save_signal_context;
+
 #ifdef USE_CURSES
+	my_fputc('\n', stdout);
+#endif /* USE_CURSES */
 	cmd_line = FALSE;
+#ifdef USE_CURSES
 	my_retouch();
 #endif /* USE_CURSES */
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/read.c tin-2.0.0/src/read.c
--- tin-1.8.3/src/read.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/read.c	2011-05-06 14:04:33.193106784 +0200
@@ -3,9 +3,9 @@
  *  Module    : read.c
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 1997-04-10
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-05-06
  *
- * Copyright (c) 1997-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1997-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -60,36 +60,23 @@ static int offset = 0;
  * local prototypes
  */
 static char *tin_read(char *buffer, size_t len, FILE *fp, t_bool header);
-#ifdef NNTP_ABLE
+#if defined(NNTP_ABLE) && defined(HAVE_SELECT)
 	static t_bool wait_for_input(void);
-#endif /* NNTP_ABLE */
+#endif /* NNTP_ABLE && HAVE_SELECT */
 
 
-#ifdef NNTP_ABLE
+#if defined(NNTP_ABLE) && defined(HAVE_SELECT)
 /*
  * Used by the I/O read routine to look for keyboard input
  * Returns TRUE if user aborted with 'q' or 'z' (lynx-style)
  *         FALSE otherwise
  * TODO: document 'z' (, and allow it's remapping?) and 'Q'
+ *       add a !HAVE_SELECT code path
  */
 static t_bool
 wait_for_input(
 	void)
 {
-#	ifndef HAVE_SELECT
-#		ifdef VMS
-	int ch = ReadChNowait();
-
-	if (ch == iKeyQuit || ch == 'z' || ch == iKeyAbort) {
-		if (prompt_yn(cLINES, _(txt_read_abort), FALSE) == 1)
-			return TRUE;
-	}
-	if (ch == iKeyQuitTin) {
-		if (prompt_yn(cLINES, _(txt_read_exit), FALSE) == 1)
-			tin_done(EXIT_SUCCESS);
-	}
-#		endif /* VMS */
-#	else
 	int nfds, ch;
 	fd_set readfds;
 	struct timeval tv;
@@ -105,8 +92,13 @@ wait_for_input(
 		tv.tv_sec = 0;		/* NNTP_READ_TIMEOUT; */
 		tv.tv_usec = 0;
 
-/*DEBUG_IO((stderr, "waiting on %d and %d...", STDIN_FILENO, fileno(fd)));*/
+/* DEBUG_IO((stderr, "waiting on %d and %d...", STDIN_FILENO, fileno(fd))); */
+#	ifdef HAVE_SELECT_INTP
+		if ((nfds = select(STDIN_FILENO + 1, (int *) &readfds, NULL, NULL, &tv)) == -1) {
+#	else
 		if ((nfds = select(STDIN_FILENO + 1, &readfds, NULL, NULL, &tv)) == -1) {
+#	endif /* HAVE_SELECT_INTP */
+
 			if (errno != EINTR) {
 				perror_message("select() failed");
 				giveup();
@@ -122,7 +114,6 @@ wait_for_input(
 		 * Something is waiting. See what's cooking...
 		 */
 		if (nfds > 0) {
-
 			/*
 			 * User pressed something. If 'q'uit, then handle this. Process
 			 * user input 1st so they get chance to quit on busy (or stalled)
@@ -157,24 +148,18 @@ wait_for_input(
 
 			}
 
-#		if 0
+#	if 0
 			/*
 			 * Our file has something for us to read
 			 */
 			if (FD_ISSET(fileno(NEED_NNTP_FD_HERE), &readfds))
 				return TRUE;
-#		endif /* 0 */
+#	endif /* 0 */
 		}
 
 	}
-#	endif /* !HAVE_SELECT */
-/*
- * FIXME: insert !HAVE_SELECT code here - NB: we already have VMS specific
- *        code at the top of this function
- */
-	return FALSE;
 }
-#endif /* NNTP_ABLE */
+#endif /* NNTP_ABLE && HAVE_SELECT */
 
 
 /*
@@ -207,14 +192,16 @@ tin_read(
 	partial_read = FALSE;
 
 #ifdef NNTP_ABLE
+#	ifdef HAVE_SELECT
 	if (wait_for_input()) {			/* Check if okay to read */
 		info_message(_("Aborting read, please wait..."));
 		drain_buffer(fp);
 		clear_message();
 		tin_errno = TIN_ABORT;
-		fflush(stdin);
+		/* fflush(stdin); */
 		return NULL;
 	}
+#	endif /* HAVE_SELECT */
 
 	errno = 0;		/* To check errno after read, clear it here */
 
@@ -233,8 +220,8 @@ tin_read(
 
 /* TODO: develop this next line? */
 #ifdef DEBUG
-	if (errno)
-		fprintf(stderr, "errno in tin_read %d\n", errno);
+	if (errno && (debug & DEBUG_MISC))
+		fprintf(stderr, "tin_read(%s)", strerror(errno));
 #endif /* DEBUG */
 
 	if (ptr == 0)	/* End of data? */
@@ -327,7 +314,6 @@ tin_fgets(
 	static char *dynbuf = NULL;
 	static int size = 0;
 
-	char *temp, *ptr;
 	int next;
 
 	tin_errno = 0;					/* Clear errors */
@@ -351,8 +337,8 @@ tin_fgets(
 	size = INIT;
 #endif /* 1 */
 
-	if ((ptr = tin_read(dynbuf, size, fp, header)) == NULL)
-		return ptr;
+	if (tin_read(dynbuf, size, fp, header) == NULL)
+		return NULL;
 
 	if (tin_errno != 0) {
 		DEBUG_IO((stderr, _("Aborted read\n")));
@@ -364,9 +350,8 @@ tin_fgets(
 	while (partial_read) {
 		if (next + RCHUNK > size)
 			size = next + RCHUNK;
-		temp = my_realloc(dynbuf, size * sizeof(*dynbuf));
-		dynbuf = temp;
-		temp = tin_read(dynbuf + next, size - next, fp, header); /* What if == 0? */
+		dynbuf = my_realloc(dynbuf, size * sizeof(*dynbuf));
+		(void) tin_read(dynbuf + next, size - next, fp, header); /* What if == NULL? */
 		next += offset;
 
 		if (tin_errno != 0)
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/refs.c tin-2.0.0/src/refs.c
--- tin-1.8.3/src/refs.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/refs.c	2011-05-28 16:36:31.615493995 +0200
@@ -3,12 +3,12 @@
  *  Module    : refs.c
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 1996-05-09
- *  Updated   : 2005-07-20
+ *  Updated   : 2010-01-10
  *  Notes     : Cacheing of message ids / References based threading
  *  Credits   : Richard Hodson <richard@macgyver.tele2.co.uk>
  *              hash_msgid, free_msgid
  *
- * Copyright (c) 1996-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1996-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -44,15 +44,10 @@
 #define MAX_REFS	100			/* Limit recursion depth */
 #define REF_SEP	" \t"			/* Separator chars in ref headers */
 
-/* Produce disgusting amounts of output to help me tame this thing */
-#undef DEBUG_REFS
-
-#ifdef DEBUG_REFS
+#ifdef DEBUG
 #	define DEBUG_PRINT(x)	fprintf x
-FILE *dbgfd;
-#else
-#	define DEBUG_PRINT(x)
-#endif /* DEBUG_REFS */
+static FILE *dbgfd;
+#endif /* DEBUG */
 
 /*
  * local prototypes
@@ -61,25 +56,21 @@ static char *_get_references(struct t_ms
 static struct t_msgid *add_msgid(int key, const char *msgid, struct t_msgid *newparent);
 static struct t_msgid *find_next(struct t_msgid *ptr);
 static struct t_msgid *parse_references(char *r);
-static t_bool valid_msgid(const char *msgid);
+static t_bool valid_msgid(char *msgid);
 static unsigned int hash_msgid(const char *key);
 static void add_to_parent(struct t_msgid *ptr);
 static void build_thread(struct t_msgid *ptr);
-#ifdef DEBUG_REFS
-	static void dump_thread(FILE *fp, struct t_msgid *msgid, int level);
+static void rearrange_siblings(void);
+#ifdef DEBUG
 	static void dump_msgid_thread(struct t_msgid *ptr, int level);
 	static void dump_msgid_threads(void);
-#endif /* DEBUG_REFS */
+#endif /* DEBUG */
 #if 0
 	static void dump_msgids(void);
+	static void dump_thread(FILE *fp, struct t_msgid *msgid, int level);
 #endif /* 0 */
 
 /*
- * Set if the sorting algorithm goes 'upwards'
- */
-static t_bool sort_ascend;
-
-/*
  * The msgids are all hashed into a big array, with overspill
  */
 static struct t_msgid *msgids[MSGID_HASH_SIZE] = {0};
@@ -153,27 +144,14 @@ add_to_parent(
 
 	/*
 	 * Add this followup to the sibling chain of our parent.
-	 * arts[] has been sorted by build_references and we add at the start or end
-	 * of the chain depending on whether the sort method is ASCEND or DESCEND
-	 * Unavailable articles go at the start of the chain if ASCEND (because
-	 * we presume unavailable arts (ie REF_REF links) have expired), otherwise at the end.
-	 * ie: if ASCEND && REF
-	 *        add_to_start
-	 *     else
-	 *        add_to_end
-	 */
-	if (sort_ascend && (ptr->article == ART_UNAVAILABLE)) {
-		/* Add to start */
-		ptr->sibling = ptr->parent->child;
-		ptr->parent->child = ptr;
-	} else {
-		/* Add to end */
-		for (p = ptr->parent->child; p->sibling != NULL; p = p->sibling)
-			;
+	 * We add at the end of the chain, rearrange_siblings() will
+	 * sort it later.
+	 */
+	for (p = ptr->parent->child; p->sibling != NULL; p = p->sibling)
+		;
 
-/*		ptr->sibling is already NULL */
-		p->sibling = ptr;
-	}
+/*	ptr->sibling is already NULL */
+	p->sibling = ptr;
 }
 
 
@@ -181,15 +159,16 @@ add_to_parent(
  * Checks if Message-ID has valid format
  * Returns TRUE if it does, FALSE if it does not
  *
- * TODO: combine with post.c:damaged_id()?
+ * TODO: combine with post.c:damaged_id()
  */
 static t_bool
 valid_msgid(
-	const char *msgid)
+	char *msgid)
 {
 	size_t mlen = 0;
-	t_bool at_present = 0;
+	t_bool at_present = FALSE;
 
+	str_trim(msgid);
 	if (!msgid || *msgid != '<')
 		return FALSE;
 
@@ -242,13 +221,16 @@ add_msgid(
 	unsigned int h;
 
 	if (!msgid) {
-		error_message("add_msgid: NULL msgid\n");
+		error_message(2, "add_msgid: NULL msgid\n");
 		giveup();
 	}
 
 	h = hash_msgid(msgid + 1);				/* Don't hash the initial '<' */
 
-	DEBUG_PRINT((dbgfd, "---------------- Add %s %s with parent %s\n", (key == MSGID_REF) ? "MSG" : "REF", msgid, (newparent == NULL) ? _("unchanged") : newparent->txt));
+#ifdef DEBUG
+	if (debug & DEBUG_REFS)
+		DEBUG_PRINT((dbgfd, "---------------- Add %s %s with parent %s\n", (key == MSGID_REF) ? "MSG" : "REF", msgid, (newparent == NULL) ? _("unchanged") : newparent->txt));
+#endif /* DEBUG */
 
 	/*
 	 * Look for this message id in the cache.
@@ -262,7 +244,10 @@ add_msgid(
 		 * CASE 1a - No parent specified, do nothing
 		 */
 		if (newparent == NULL) {
-			DEBUG_PRINT((dbgfd, "nop: %s No parent specified\n", i->txt));
+#ifdef DEBUG
+			if (debug & DEBUG_REFS)
+				DEBUG_PRINT((dbgfd, "nop: %s No parent specified\n", i->txt));
+#endif /* DEBUG */
 			return i;
 		}
 
@@ -270,7 +255,10 @@ add_msgid(
 		 * CASE 1b - Parent not changed, do nothing
 		 */
 		if (newparent == i->parent) {
-			DEBUG_PRINT((dbgfd, "dup: %s -> %s (no change)\n", i->txt, i->parent ? i->parent->txt : "NULL"));
+#ifdef DEBUG
+			if (debug & DEBUG_REFS)
+				DEBUG_PRINT((dbgfd, "dup: %s -> %s (no change)\n", i->txt, i->parent ? i->parent->txt : "NULL"));
+#endif /* DEBUG */
 			return i;
 		}
 
@@ -285,15 +273,20 @@ add_msgid(
 			 */
 			for (ptr = newparent; ptr != NULL; ptr = ptr->parent) {
 				if (ptr == i) {
-					DEBUG_PRINT((dbgfd, "Avoiding circular reference! (%s)\n", (key == MSGID_REF) ? "MSG" : "REF"));
+#ifdef DEBUG
+					if (debug & DEBUG_REFS)
+						DEBUG_PRINT((dbgfd, "Avoiding circular reference! (%s)\n", (key == MSGID_REF) ? "MSG" : "REF"));
+#endif /* DEBUG */
 					return i;
 				}
 			}
 
 			i->parent = newparent;
 			add_to_parent(i);
-
-			DEBUG_PRINT((dbgfd, "set: %s -> %s\n", i->txt, newparent ? newparent->txt : _("None")));
+#ifdef DEBUG
+			if (debug & DEBUG_REFS)
+				DEBUG_PRINT((dbgfd, "set: %s -> %s\n", i->txt, newparent ? newparent->txt : _("None")));
+#endif /* DEBUG */
 			return i;
 		}
 
@@ -305,18 +298,24 @@ add_msgid(
 		 * All we can do is ignore the error
 		 */
 		if (i->parent != newparent) {
-			DEBUG_PRINT((dbgfd, "Warning: (%s) Ignoring %s -> %s (already %s)\n",
-				(key == MSGID_REF) ? "MSG" : "REF", i->txt,
-				newparent ? newparent->txt : "None", i->parent->txt));
+#ifdef DEBUG
+			if (debug & DEBUG_REFS)
+				DEBUG_PRINT((dbgfd, "Warning: (%s) Ignoring %s -> %s (already %s)\n",
+					(key == MSGID_REF) ? "MSG" : "REF", i->txt,
+					newparent ? newparent->txt : "None", i->parent->txt));
+#endif /* DEBUG */
 
 			return i;
 		}
 
-		error_message("Error: Impossible combination of conditions !\n");
+		error_message(2, "Error: Impossible combination of conditions !\n");
 		return i;
 	}
 
-	DEBUG_PRINT((dbgfd, "new: %s -> %s\n", msgid, (newparent)?newparent->txt:"None"));
+#ifdef DEBUG
+	if (debug & DEBUG_REFS)
+		DEBUG_PRINT((dbgfd, "new: %s -> %s\n", msgid, (newparent) ? newparent->txt : "None"));
+#endif /* DEBUG */
 
 	/*
 	 * This is a new node, so build a structure for it
@@ -385,7 +384,10 @@ parse_references(
 	if (!r)
 		return NULL;
 
-	DEBUG_PRINT((dbgfd, "parse_references: %s\n", r));
+#ifdef DEBUG
+	if (debug & DEBUG_REFS)
+		DEBUG_PRINT((dbgfd, "parse_references: %s\n", r));
+#endif /* DEBUG */
 
 	/*
 	 * Break the refs down, using REF_SEP as delimiters
@@ -394,13 +396,25 @@ parse_references(
 		return NULL;
 
 	/*
-	 * By definition, the head of the thread has no parent
+	 * As per RFC 5536, a leading comment is allowed -> skip unknown
+	 * token until we find a valid msgid
+	 *
+	 * TODO: parse these tokens to be sure it is a comment and not
+	 *       a damaged header
 	 */
-	parent = NULL;
+	if (!valid_msgid(ptr)) {
+		while ((ptr = strtok(NULL, REF_SEP)) != NULL && !valid_msgid(ptr))
+			;
+	}
 
-	if (!valid_msgid(ptr))
+	if (ptr == NULL)
 		return NULL;
 
+	/*
+	 * By definition, the head of the thread has no parent
+	 */
+	parent = NULL;
+
 	current = add_msgid(REF_REF, ptr, parent);
 
 	while ((ptr = strtok(NULL, REF_SEP)) != NULL) {
@@ -414,6 +428,60 @@ parse_references(
 }
 
 
+static void
+rearrange_siblings(
+	void)
+{
+	int i;
+	struct t_msgid *current, *p1, *p2;
+
+	for_each_art(i) {
+		current = arts[i].refptr;
+
+		if (!current)
+		continue;
+
+		for (; current->sibling == NULL && current->parent != NULL; current = current->parent)
+			;
+
+		if (current->sibling != NULL) {
+			for (p1 = current; p1->article == ART_UNAVAILABLE && p1->child != NULL; p1 = p1->child)
+				;
+
+			for (p2 = current->sibling; p2->article == ART_UNAVAILABLE && p2->child != NULL; p2 = p2->child)
+				;
+
+			if (p1->article != ART_UNAVAILABLE && p2->article != ART_UNAVAILABLE && p1->article > p2->article) {
+				if (current->parent->child == current) {
+					/*
+					 * current is the first followup
+					 *  adjust parent->child pointer
+					 */
+					current->parent->child = current->sibling;
+					p1 = current->parent->child;
+				} else {
+					/*
+					 * current is not the first followup
+					 *  find the sibling above current
+					 *  adjust the sibling pointer there
+					 */
+					for (p1 = current->parent->child; p1->sibling != current; p1 = p1->sibling)
+						;
+
+					p1->sibling = current->sibling;
+					p1 = p1->sibling;
+				}
+				/*
+				 * swap current <-> sibling
+				 */
+				current->sibling = p1->sibling;
+				p1->sibling = current;
+			}
+		}
+	}
+}
+
+
 /*
  * Reconstruct the References: field from the parent pointers
  * NB: In deep threads this can lead to a very long line. If you want to use
@@ -435,10 +503,12 @@ _get_references(
 	len += strlen(refptr->txt) + 1;	/* msgid + space */
 	if (refptr->parent == NULL || depth > MAX_REFS) {
 
-#ifdef DEBUG_REFS
-		if (depth > MAX_REFS)
-			error_message("Warning: Too many refs near to %s. Truncated\n", refptr->txt);
-#endif /* DEBUG_REFS */
+#ifdef DEBUG
+		if (debug & DEBUG_REFS) {
+			if (depth > MAX_REFS)
+				error_message(2, "Warning: Too many refs near to %s. Truncated\n", refptr->txt);
+		}
+#endif /* DEBUG */
 		refs = my_malloc(len + 1);	/* total length + nullbyte */
 		pos = 0;
 	} else
@@ -501,6 +571,45 @@ free_msgids(
 
 
 #if 0	/* But please don't remove it */
+/*
+ * Function to dump an ASCII tree map of a thread rooted at msgid.
+ * Output goes to fp, level is the current depth of the tree.
+ */
+static void
+dump_thread(
+	FILE *fp,
+	struct t_msgid *msgid,
+	int level)
+{
+	char buff[120];		/* This is _probably_ enough */
+	char *ptr = buff;
+	int i, len;
+
+	/*
+	 * Dump the current article
+	 */
+	sprintf(ptr, "%3d %*s", msgid->article, 2*level, "  ");
+
+	len = strlen(ptr);
+	i = cCOLS - len - 20;
+
+	if (msgid->article >= 0)
+		sprintf(ptr + len, "%-*.*s   %-17.17s", i, i, arts[msgid->article].subject, (arts[msgid->article].name) ? arts[msgid->article].name : arts[msgid->article].from);
+	else
+		sprintf(ptr + len, "%-*.*s", i, i, _("[- Unavailable -]"));
+
+	fprintf(fp, "%s\n", ptr);
+
+	if (msgid->child != NULL)
+		dump_thread(fp, msgid->child, level + 1);
+
+	if (msgid->sibling != NULL)
+		dump_thread(fp, msgid->sibling, level);
+
+	return;
+}
+
+
 static void
 dump_msgids(
 	void)
@@ -580,46 +689,7 @@ clear_art_ptrs(
 }
 
 
-/*
- * Function to dump an ASCII tree map of a thread rooted at msgid.
- * Output goes to fp, level is the current depth of the tree.
- */
-#ifdef DEBUG_REFS
-static void
-dump_thread(
-	FILE *fp,
-	struct t_msgid *msgid,
-	int level)
-{
-	char buff[120];		/* This is _probably_ enough */
-	char *ptr = buff;
-	int i, len;
-
-	/*
-	 * Dump the current article
-	 */
-	sprintf(ptr, "%3d %*s", msgid->article, 2*level, "  ");
-
-	len = strlen(ptr);
-	i = cCOLS - len - 20;
-
-	if (msgid->article >= 0)
-		sprintf(ptr + len, "%-*.*s   %-17.17s", i, i, arts[msgid->article].subject, (arts[msgid->article].name) ? arts[msgid->article].name : arts[msgid->article].from);
-	else
-		sprintf(ptr + len, "%-*.*s", i, i, _("[- Unavailable -]"));
-
-	fprintf(fp, "%s\n", ptr);
-
-	if (msgid->child != NULL)
-		dump_thread(fp, msgid->child, level + 1);
-
-	if (msgid->sibling != NULL)
-		dump_thread(fp, msgid->sibling, level);
-
-	return;
-}
-
-
+#ifdef DEBUG
 /*
  * Dump out all the threads from the msgid point of view, show the
  * related article index in arts[] where possible
@@ -666,7 +736,7 @@ dump_msgid_threads(
 
 	fprintf(dbgfd, "Dump complete.\n\n");
 }
-#endif /* DEBUG_REFS */
+#endif /* DEBUG */
 
 
 /*
@@ -787,10 +857,15 @@ thread_by_reference(
 	int i;
 	struct t_msgid *ptr;
 
-#ifdef DEBUG_REFS
-	dbgfd = fopen("Refs.info", "w");
-	dump_msgid_threads();
-#endif /* DEBUG_REFS */
+#ifdef DEBUG
+	if (debug & DEBUG_REFS) {
+		char file[PATH_LEN];
+
+		joinpath(file, sizeof(file), TMPDIR, "REFS.info");
+		dbgfd = fopen(file, "w");
+		dump_msgid_threads();
+	}
+#endif /* DEBUG */
 
 	/*
 	 * Build threads starting from root msgids (ie without parent)
@@ -804,20 +879,22 @@ thread_by_reference(
 		}
 	}
 
-#ifdef DEBUG_REFS
-	fprintf(dbgfd, "Full dump of threading info...\n");
-	fprintf(dbgfd, "%3s %3s %3s %3s : %3s %3s\n", "#", "Par", "Sib", "Chd", "In", "Thd");
+#ifdef DEBUG
+	if (debug & DEBUG_REFS) {
+		fprintf(dbgfd, "Full dump of threading info...\n");
+		fprintf(dbgfd, "%3s %3s %3s %3s : %3s %3s\n", "#", "Par", "Sib", "Chd", "In", "Thd");
+
+		for_each_art(i) {
+			fprintf(dbgfd, "%3d %3d %3d %3d : %3d %3d : %.50s %s\n", i,
+				(arts[i].refptr->parent) ? arts[i].refptr->parent->article : -2,
+				(arts[i].refptr->sibling) ? arts[i].refptr->sibling->article : -2,
+				(arts[i].refptr->child) ? arts[i].refptr->child->article : -2,
+				arts[i].prev, arts[i].thread, arts[i].refptr->txt, arts[i].subject);
+		}
 
-	for_each_art(i) {
-		fprintf(dbgfd, "%3d %3d %3d %3d : %3d %3d : %.50s %s\n", i,
-			(arts[i].refptr->parent) ? arts[i].refptr->parent->article : -2,
-			(arts[i].refptr->sibling) ? arts[i].refptr->sibling->article : -2,
-			(arts[i].refptr->child) ? arts[i].refptr->child->article : -2,
-			arts[i].prev, arts[i].thread, arts[i].refptr->txt, arts[i].subject);
+		fclose(dbgfd);
 	}
-
-	fclose(dbgfd);
-#endif /* DEBUG_REFS */
+#endif /* DEBUG */
 
 	return;
 }
@@ -863,12 +940,14 @@ collate_subjects(
 			 * is that we have to add later threads onto the end of the
 			 * previous thread
 			 */
-			if (
-					(arts[i].subject == arts[j].subject) /* ||
-					(arts[i].archive && arts[j].archive && (arts[i].archive->name == arts[j].archive->name)) */
-			) {
-/*DEBUG_PRINT((dbgfd, "RES: %d is now previous, at end of %d\n", i, j));*/
-
+#if 1
+			if (arts[i].subject == arts[j].subject)
+#else
+			/* see also art.c:thread_by_subject() */
+			if ((arts[i].subject == arts[j].subject) || (arts[i].archive && arts[j].archive && (arts[i].archive->name == arts[j].archive->name)))
+#endif /* 1 */
+			{
+				/* DEBUG_PRINT((dbgfd, "RES: %d is now previous, at end of %d\n", i, j)); */
 				for (art = j; arts[art].thread >= 0; art = arts[art].thread)
 					;
 
@@ -914,20 +993,19 @@ build_references(
 	/*
 	 * The articles are currently unsorted, and are as they were put by setup_hard_base()
 	 */
-	if (group->attribute->sort_art_type != SORT_ARTICLES_BY_NOTHING)
-		sort_arts(group->attribute->sort_art_type);
+	if (group->attribute->sort_article_type != SORT_ARTICLES_BY_NOTHING)
+		sort_arts(group->attribute->sort_article_type);
 
-	sort_ascend = (group->attribute->sort_art_type == SORT_ARTICLES_BY_SUBJ_ASCEND ||
-	               group->attribute->sort_art_type == SORT_ARTICLES_BY_FROM_ASCEND ||
-	               group->attribute->sort_art_type == SORT_ARTICLES_BY_DATE_ASCEND ||
-	               group->attribute->sort_art_type == SORT_ARTICLES_BY_SCORE_ASCEND ||
-	               group->attribute->sort_art_type == SORT_ARTICLES_BY_LINES_ASCEND);
-
-#ifdef DEBUG_REFS
-	dbgfd = fopen("Refs.dump", "w");
-	SETVBUF(dbgfd, NULL, _IONBF, 0);
-	fprintf(dbgfd, "MSGID phase\n");
-#endif /* DEBUG_REFS */
+#ifdef DEBUG
+	if (debug & DEBUG_REFS) {
+		char file[PATH_LEN];
+
+		joinpath(file, sizeof(file), TMPDIR, "REFS.dump");
+		dbgfd = fopen(file, "w");
+		SETVBUF(dbgfd, NULL, _IONBF, 0);
+		fprintf(dbgfd, "MSGID phase\n");
+	}
+#endif /* DEBUG */
 
 	/*
 	 * Add the Message-ID headers to the cache, using the last Reference
@@ -936,6 +1014,7 @@ build_references(
 	for_each_art(i) {
 		art = &arts[i];
 
+		art->refptr = add_msgid(MSGID_REF, art->msgid, NULL); /* preset art->refptr */
 		if (art->refs) {
 			strip_line(art->refs);
 
@@ -947,30 +1026,46 @@ build_references(
 			 * TODO: do this in a single pass
 			 */
 			if ((s = strrchr(art->refs, '<')) != NULL) {
-				if (!strcmp(art->msgid, s)) {
+				char *ptr;
+
+				/*
+				 * A comment can occur after another REF_SEP, remove it
+				 *
+				 * TODO: parse it to be sure it is a comment
+				 */
+				if ((ptr = strpbrk(s, REF_SEP)) != NULL)
+					*ptr = '\0';
+
+				if (valid_msgid(s) && !strcmp(art->msgid, s)) {
 					/*
 					 * Remove circular reference to current article
 					 */
-					DEBUG_PRINT((dbgfd, "removing circular reference to: %s\n", s));
+#ifdef DEBUG
+					if (debug & DEBUG_REFS)
+						DEBUG_PRINT((dbgfd, "removing circular reference to: %s\n", s));
+#endif /* DEBUG */
 					*s = '\0';
 				}
-			}
-			if (s != NULL) {
-				if (valid_msgid(art->msgid))
+				if (valid_msgid(art->msgid) && valid_msgid(s))
 					art->refptr = add_msgid(MSGID_REF, art->msgid, add_msgid(REF_REF, s, NULL));
 				*s = '\0';
-			} else {
-				if (valid_msgid(art->msgid))
-					art->refptr = add_msgid(MSGID_REF, art->msgid, add_msgid(REF_REF, art->refs, NULL));
+			} else
 				FreeAndNull(art->refs);
-			}
-		} else
-			if (valid_msgid(art->msgid))
-				art->refptr = add_msgid(MSGID_REF, art->msgid, NULL);
+		}
+
+		/*
+		 * set art->refptr->article - rearrange_siblings() needs this
+		 */
+		if (art->refptr != NULL)
+			art->refptr->article = i;
+
 		FreeAndNull(art->msgid);	/* Now cached - discard this */
 	}
 
-	DEBUG_PRINT((dbgfd, "REFS phase\n"));
+#ifdef DEBUG
+	if (debug & DEBUG_REFS)
+		DEBUG_PRINT((dbgfd, "REFS phase\n"));
+#endif /* DEBUG */
 	/*
 	 * Add the References data to the cache
 	 */
@@ -993,7 +1088,14 @@ build_references(
 		FreeAndNull(art->refs);
 	}
 
-#ifdef DEBUG_REFS
-	fclose(dbgfd);
-#endif /* DEBUG_REFS */
+#ifdef DEBUG
+	if (debug & DEBUG_REFS)
+		fclose(dbgfd);
+#endif /* DEBUG */
+
+	/*
+	 * all msgids are cached now
+	 * change order of siblings if needed
+	 */
+	rearrange_siblings();
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/regex.c tin-2.0.0/src/regex.c
--- tin-1.8.3/src/regex.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/regex.c	2011-04-17 16:04:31.435222565 +0200
@@ -3,11 +3,11 @@
  *  Module    : regex.c
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 1997-02-21
- *  Updated   : 2003-12-17
+ *  Updated   : 2008-11-22
  *  Notes     : Regular expression subroutines
  *  Credits   :
  *
- * Copyright (c) 1997-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1997-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -77,8 +77,10 @@ match_regex(
 	}
 
 	if ((error = pcre_exec(ptr_cache->re, ptr_cache->extra, string, strlen(string), 0, 0, NULL, 0)) >= 0) {
-		FreeIfNeeded(tmp_cache.re);
-		FreeIfNeeded(tmp_cache.extra);
+		if (ptr_cache == &tmp_cache) {
+			FreeIfNeeded(tmp_cache.re);
+			FreeIfNeeded(tmp_cache.extra);
+		}
 
 		return TRUE;
 	}
@@ -89,7 +91,7 @@ match_regex(
 	 * an error message on each call
 	 */
 	if (error != PCRE_ERROR_NOMATCH)
-		error_message(_(txt_pcre_error_num), error);
+		error_message(2, _(txt_pcre_error_num), error);
 #endif /* 0 */
 
 	FreeIfNeeded(tmp_cache.re);
@@ -122,13 +124,13 @@ compile_regex(
 #endif /* MULTIBYTE_ABLE && !NO_LOCALE && PCRE_MAJOR && PCRE_MAJOR >= 4*/
 
 	if ((cache->re = pcre_compile(regex, my_options, &regex_errmsg, &regex_errpos, NULL)) == NULL)
-		error_message(_(txt_pcre_error_at), regex_errmsg, regex_errpos, regex);
+		error_message(2, _(txt_pcre_error_at), regex_errmsg, regex_errpos, regex);
 	else {
 		cache->extra = pcre_study(cache->re, 0, &regex_errmsg);
 		if (regex_errmsg != NULL) {
 			/* we failed, clean up */
 			FreeAndNull(cache->re);
-			error_message(_(txt_pcre_error_text), regex_errmsg);
+			error_message(2, _(txt_pcre_error_text), regex_errmsg);
 		} else
 			return TRUE;
 	}
@@ -146,7 +148,7 @@ highlight_regexes(
 	int color)
 {
 	char *ptr;
-	int offsets[6];
+	int offsets[6]; /* we are not interrested in any supatterns, so 6 is sufficient */
 	int offsets_size = ARRAY_SIZE(offsets);
 #ifdef USE_CURSES
 	char buf[LEN];
@@ -162,7 +164,8 @@ highlight_regexes(
 #endif /* USE_CURSES */
 	ptr = buf;
 
-	while (pcre_exec(regex->re, regex->extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) > 0) {
+	/* also check for 0 as offsets[] might be too small to hold all captured subpatterns */
+	while (pcre_exec(regex->re, regex->extra, ptr, strlen(ptr), 0, 0, offsets, offsets_size) >= 0) {
 		/* we have a match */
 		if (color >= 0) /* color the matching text */
 			word_highlight_string(row, (ptr - buf) + offsets[0], offsets[1] - offsets[0], color);
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/rfc1524.c tin-2.0.0/src/rfc1524.c
--- tin-1.8.3/src/rfc1524.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/rfc1524.c	2011-04-17 16:04:31.459226217 +0200
@@ -3,10 +3,10 @@
  *  Module    : rfc1524.c
  *  Author    : Urs Janssen <urs@tin.org>, Jason Faultless <jason@altarstone.com>
  *  Created   : 2000-05-15
- *  Updated   : 2005-07-02
+ *  Updated   : 2009-07-17
  *  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-2011 Urs Janssen <urs@tin.org>, Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -90,7 +90,7 @@ get_mailcap_entry(
 	nptr = strtok(mailcaps, ":");
 	while (nptr != NULL) {
 		/* expand ~ and/or $HOME etc. */
-		if (strfpath(nptr, filename, sizeof(filename) - 1, &CURR_GROUP)) {
+		if (strfpath(nptr, filename, sizeof(filename) - 1, &CURR_GROUP, FALSE)) {
 			if ((fp = fopen(filename, "r")) != NULL) {
 				while ((fgets(ptr, sizeof(buf) - strlen(buf), fp)) != NULL) {
 					if (*ptr == '#' || *ptr == '\n')		/* skip comments & blank lines */
@@ -113,7 +113,7 @@ get_mailcap_entry(
 								STRCPY(mailcap, ptr);
 								foo = parse_mailcap_line(mailcap, part, path);
 								if (foo != NULL) {
-									fclose(fp); /* perfect match with test succeded (if given) */
+									fclose(fp); /* perfect match with test succeeded (if given) */
 									free(mailcaps);
 									return foo;
 								}
@@ -125,7 +125,7 @@ get_mailcap_entry(
 										if (foo == NULL) /* test failed */
 											wildcap[0] = '\0'; /* ignore match */
 									}
-								} /* else subtype missmatch, no action required */
+								} /* else subtype mismatch, no action required */
 							}
 						} /* else no match, no action required */
 					} /* else invalid mailcap line (no /), no action required */
@@ -306,7 +306,7 @@ get_mailcap_field(
 				break;
 
 			case ';':
-				if (!backquote && !doublequote) { /* field seperator (plain ;) */
+				if (!backquote && !doublequote) { /* field separator (plain ;) */
 					*ptr = '\0';
 					return mailcap;
 				}
@@ -395,7 +395,7 @@ expand_mailcap_meta(
 						const char *value;
 
 						parameter = my_calloc(1, end - ptr + 1);
-						strncpy(parameter, ptr + 1, end - ptr - 1);	/* extract paramter name */
+						strncpy(parameter, ptr + 1, end - ptr - 1);	/* extract parameter name */
 						if ((value = get_param(part->params, parameter)) != NULL) { /* match? */
 							const char *nptr = escape_shell_meta_chars ? escape_shell_meta(value, quote) : value;
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/rfc2045.c tin-2.0.0/src/rfc2045.c
--- tin-1.8.3/src/rfc2045.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/rfc2045.c	2011-04-17 16:04:31.491231088 +0200
@@ -3,10 +3,10 @@
  *  Module    : rfc2045.c
  *  Author    : Chris Blum <chris@resolution.de>
  *  Created   : 1995-09-01
- *  Updated   : 2005-05-10
+ *  Updated   : 2007-11-27
  *  Notes     : RFC 2045/2047 encoding
  *
- * Copyright (c) 1995-2006 Chris Blum <chris@resolution.de>
+ * Copyright (c) 1995-2011 Chris Blum <chris@resolution.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -42,7 +42,7 @@
 /*
  * local prototypes
  */
-static int put_rest(char **rest, char **line, int *max_line_len, const int offset);
+static int put_rest(char **rest, char **line, size_t *max_line_len, const int offset);
 static unsigned char bin2hex(unsigned int x);
 static void set_rest(char **rest, const char *ptr);
 
@@ -251,7 +251,7 @@ static int
 put_rest(
 	char **rest,
 	char **line,
-	int *max_line_len,
+	size_t *max_line_len,
 	const int offset)
 {
 	char *my_rest = *rest;
@@ -272,7 +272,7 @@ put_rest(
 		/*
 		 * Resize line if necessary. Keep in mind that we add LF and \0 later.
 		 */
-		if (put_chars >= *max_line_len - 2) {
+		if (put_chars >= (int) *max_line_len - 2) {
 			if (*max_line_len == 0)
 				*max_line_len = LEN;
 			else
@@ -303,7 +303,7 @@ put_rest(
 /*
  * Read a logical base64 encoded line into the specified line buffer.
  * Logical lines can be split over several physical base64 encoded lines and
- * a single physical base64 encoded line can contain serveral logical lines.
+ * a single physical base64 encoded line can contain several logical lines.
  * This function keeps track of all these cases and always copies only one
  * decoded line to the line buffer.
  *
@@ -317,7 +317,7 @@ int
 read_decoded_base64_line(
 	FILE *file,
 	char **line,
-	int *max_line_len,
+	size_t *max_line_len,
 	const int max_lines_to_read,
 	char **rest)
 {
@@ -379,7 +379,7 @@ read_decoded_base64_line(
 			 * newline is expected at the end of a line by some other code in
 			 * cook.c.
 			 */
-			if (put_chars > *max_line_len - 2) {
+			if (put_chars > (int) *max_line_len - 2) {
 				*max_line_len <<= 1;
 				*line = my_realloc(*line, *max_line_len);
 			}
@@ -403,7 +403,7 @@ read_decoded_base64_line(
 	 * newline is expected at the end of a line by some other code in
 	 * cook.c.
 	 */
-	if (put_chars > *max_line_len - 2) {
+	if (put_chars > (int) *max_line_len - 2) {
 		*max_line_len <<= 1;
 		*line = my_realloc(*line, *max_line_len);
 	}
@@ -430,7 +430,7 @@ int
 read_decoded_qp_line(
 	FILE *file,
 	char **line,					/* where to copy the decoded line */
-	int *max_line_len,				/* (maximum) line length */
+	size_t *max_line_len,				/* (maximum) line length */
 	const int max_lines_to_read)	/* don't read more physical lines than told here */
 {
 	char *buf, *buf2;
@@ -447,7 +447,7 @@ read_decoded_qp_line(
 		if ((buf2 = tin_fgets(file, FALSE)) == NULL) {
 			/*
 			 * Premature end of file (or file error, leave loop. To prevent
-			 * re-invokation of this function, set the numbers of read lines
+			 * re-invocation of this function, set the numbers of read lines
 			 * to the expected maximum that should be read at most.
 			 */
 			lines_read = max_lines_to_read;
@@ -512,7 +512,7 @@ read_decoded_qp_line(
 	} else	/* error in encoding: copy raw line */
 		ptr = buf;
 
-	if (*max_line_len < (int) strlen(ptr) + 1) {
+	if (*max_line_len < strlen(ptr) + 1) {
 		*max_line_len = strlen(ptr) + 1;
 		*line = my_realloc(*line, *max_line_len);
 	}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/rfc2046.c tin-2.0.0/src/rfc2046.c
--- tin-1.8.3/src/rfc2046.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/rfc2046.c	2011-04-17 16:04:36.187945828 +0200
@@ -3,10 +3,10 @@
  *  Module    : rfc2046.c
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 2000-02-18
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-01-29
  *  Notes     : RFC 2046 MIME article parsing
  *
- * Copyright (c) 2000-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 2000-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -80,7 +80,7 @@ static void
 progress(
 	int line_count)
 {
-	if (progress_mesg != NULL && line_count && line_count % MODULO_COUNT_NUM == 0)
+	if (progress_mesg != NULL && art_lines > 0 && line_count && line_count % MODULO_COUNT_NUM == 0)
 		show_progress(progress_mesg, line_count, art_lines);
 }
 
@@ -225,7 +225,7 @@ get_quoted_string(
 	}
 	*ptr = '\0';
 	*dest = my_realloc(*dest, strlen(*dest) + 1);
-	return *source ? source++ : source;
+	return *source ? source + 1 : source;
 }
 
 
@@ -585,7 +585,8 @@ parse_header(
 	char *buf,
 	const char *pat,
 	t_bool decode,
-	t_bool structured)
+	t_bool structured,
+	t_bool keep_tab)
 {
 	size_t plen = strlen(pat);
 	char *ptr = buf + plen;
@@ -606,7 +607,7 @@ parse_header(
 
 	str_trim(ptr);
 	if (!*ptr)
-		return ptr;
+		return NULL;
 
 	if (decode) {
 		if (structured) {
@@ -619,15 +620,15 @@ parse_header(
 
 				if (*name) {
 					if (type == GNKSA_ADDRTYPE_OLDSTYLE)
-						sprintf(ptr, "%s (%s)", addr, convert_to_printable(rfc1522_decode(name)));
+						sprintf(ptr, "%s (%s)", addr, convert_to_printable(rfc1522_decode(name), keep_tab));
 					else
-						sprintf(ptr, "%s <%s>", convert_to_printable(rfc1522_decode(name)), addr);
+						sprintf(ptr, "%s <%s>", convert_to_printable(rfc1522_decode(name), keep_tab), addr);
 				} else
-					sprintf(ptr, "%s", addr);
+					strcpy(ptr, addr);
 			} else
-				return convert_to_printable(ptr);
+				return convert_to_printable(ptr, keep_tab);
 		} else
-			return (convert_to_printable(rfc1522_decode(ptr)));
+			return (convert_to_printable(rfc1522_decode(ptr), keep_tab));
 	}
 
 	return ptr;
@@ -636,7 +637,7 @@ parse_header(
 
 /*
  * Read main article headers into a blank header structure.
- * Pass the data 'from' -> 'to'
+ * Pass the data 'from' -> 'to' when reading via NNTP
  * Return tin_errno (basically will be !=0 if reading was 'q'uit)
  * We have to guard against 'to' here since this function is exported
  */
@@ -654,7 +655,7 @@ parse_rfc822_headers(
 	hdr->ext = new_part(NULL);		/* Initialise MIME data */
 
 	while ((line = tin_fgets(from, TRUE)) != NULL) {
-		if (to)
+		if (read_news_via_nntp && to)
 			fprintf(to, "%s\n", line);		/* Put raw data */
 
 		/*
@@ -671,112 +672,112 @@ parse_rfc822_headers(
 		 *        loss (multiple Cc: lines are allowed, for example)
 		 */
 		unfold_header(line);
-		if ((ptr = parse_header(line, "From", TRUE, TRUE))) {
+		if ((ptr = parse_header(line, "From", TRUE, TRUE, FALSE))) {
 			FreeIfNeeded(hdr->from);
 			hdr->from = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "To", TRUE, TRUE))) {
+		if ((ptr = parse_header(line, "To", TRUE, TRUE, FALSE))) {
 			FreeIfNeeded(hdr->to);
 			hdr->to = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Cc", TRUE, TRUE))) {
+		if ((ptr = parse_header(line, "Cc", TRUE, TRUE, FALSE))) {
 			FreeIfNeeded(hdr->cc);
 			hdr->cc = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Bcc", TRUE, TRUE))) {
+		if ((ptr = parse_header(line, "Bcc", TRUE, TRUE, FALSE))) {
 			FreeIfNeeded(hdr->bcc);
 			hdr->bcc = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Date", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Date", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->date);
 			hdr->date = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Subject", TRUE, FALSE))) {
+		if ((ptr = parse_header(line, "Subject", TRUE, FALSE, TRUE))) {
 			FreeIfNeeded(hdr->subj);
 			hdr->subj = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Organization", TRUE, FALSE))) {
+		if ((ptr = parse_header(line, "Organization", TRUE, FALSE, TRUE))) {
 			FreeIfNeeded(hdr->org);
 			hdr->org = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Reply-To", TRUE, TRUE))) {
+		if ((ptr = parse_header(line, "Reply-To", TRUE, TRUE, FALSE))) {
 			FreeIfNeeded(hdr->replyto);
 			hdr->replyto = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Newsgroups", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Newsgroups", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->newsgroups);
 			hdr->newsgroups = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Message-ID", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Message-ID", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->messageid);
 			hdr->messageid = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "References", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "References", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->references);
 			hdr->references = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Distribution", TRUE, FALSE))) {
+		if ((ptr = parse_header(line, "Distribution", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->distrib);
 			hdr->distrib = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Keywords", TRUE, FALSE))) {
+		if ((ptr = parse_header(line, "Keywords", TRUE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->keywords);
 			hdr->keywords = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Summary", TRUE, FALSE))) {
+		if ((ptr = parse_header(line, "Summary", TRUE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->summary);
 			hdr->summary = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Followup-To", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Followup-To", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->followup);
 			hdr->followup = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "X-Comment-To", TRUE, TRUE))) {
+		if ((ptr = parse_header(line, "X-Comment-To", TRUE, TRUE, FALSE))) {
 			FreeIfNeeded(hdr->ftnto);
 			hdr->ftnto = my_strdup(ptr);
 			continue;
 		}
 #ifdef XFACE_ABLE
-		if ((ptr = parse_header(line, "X-Face", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "X-Face", FALSE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->xface);
 			hdr->xface = my_strdup(ptr);
 			continue;
 		}
 #endif /* XFACE_ABLE */
 		/* TODO: check version */
-		if (parse_header(line, "MIME-Version", FALSE, FALSE)) {
+		if (parse_header(line, "MIME-Version", FALSE, FALSE, FALSE)) {
 			hdr->mime = TRUE;
 			continue;
 		}
-		if ((ptr = parse_header(line, "Content-Type", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Content-Type", FALSE, FALSE, FALSE))) {
 			parse_content_type(ptr, hdr->ext);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Content-Transfer-Encoding", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Content-Transfer-Encoding", FALSE, FALSE, FALSE))) {
 			hdr->ext->encoding = parse_content_encoding(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Content-Description", TRUE, FALSE))) {
+		if ((ptr = parse_header(line, "Content-Description", TRUE, FALSE, FALSE))) {
 			FreeIfNeeded(hdr->ext->description);
 			hdr->ext->description = my_strdup(ptr);
 			continue;
 		}
-		if ((ptr = parse_header(line, "Content-Disposition", FALSE, FALSE))) {
+		if ((ptr = parse_header(line, "Content-Disposition", FALSE, FALSE, FALSE))) {
 			parse_content_disposition(ptr, hdr->ext);
 			continue;
 		}
@@ -817,8 +818,10 @@ unfold_header(
 	char *src = line, *dst = line;
 	char c;
 
-	while ((c = *src++))
-		if (c != '\n') *dst++ = c;
+	while ((c = *src++)) {
+		if (c != '\n')
+			*dst++ = c;
+	}
 	*dst = c;
 }
 
@@ -830,7 +833,7 @@ unfold_header(
 #define TIN_EOF		0xf00	/* Used internally for error recovery */
 
 /*
- * Handles multipart/ article types, write data to a raw stream
+ * Handles multipart/ article types, write data to a raw stream when reading via NNTP
  * artinfo is used for generic article pointers
  * part contains content info about the attachment we're parsing
  * depth is the number of levels by which the current part is embedded
@@ -849,7 +852,8 @@ parse_multipart_article(
 	char *ptr;
 	int bnd;
 	int state = M_SEARCHING;
-	t_part *curr_part = 0;
+	t_bool is_rfc822 = FALSE;
+	t_part *curr_part = NULL, *rfc822_part = NULL;
 
 	while ((line = tin_fgets(infile, (state == M_HDR))) != NULL) {
 /* fprintf(stderr, "%d---:%s\n", depth, line); */
@@ -859,20 +863,41 @@ parse_multipart_article(
 		 */
 		bnd = boundary_check(line, artinfo->hdr.ext);
 
-		fprintf(artinfo->raw, "%s\n", line);
+		if (read_news_via_nntp)
+			fprintf(artinfo->raw, "%s\n", line);
 
 		artinfo->hdr.ext->line_count += count_lines(line);
 		if (show_progress_meter)
 			progress(artinfo->hdr.ext->line_count);		/* Overall line count */
 
+		if (part && part != artinfo->hdr.ext)
+			part->line_count += count_lines(line);
+
+		if (is_rfc822 && rfc822_part)
+			rfc822_part->line_count += count_lines(line);
+
 		if (bnd == BOUND_END) {							/* End of this part detected */
+			if (is_rfc822 && rfc822_part)
+				rfc822_part->line_count -= count_lines(line);
 			/*
 			 * When we have reached the end boundary of the outermost envelope
 			 * just log any trailing data for the raw article format.
 			 */
-			if (depth == 0)
+			if (boundary_cmp(line, get_param(artinfo->hdr.ext->params, "boundary")) == BOUND_END)
+				depth = 0;
+#if 0 /* doesn't count tailing lines after envelop mime part - correct but confusing */
+			if (read_news_via_nntp && depth == 0)
 				while ((line = tin_fgets(infile, FALSE)) != NULL)
 					fprintf(artinfo->raw, "%s\n", line);
+#else
+			if (depth == 0) {
+				while ((line = tin_fgets(infile, FALSE)) != NULL) {
+					if (read_news_via_nntp)
+						fprintf(artinfo->raw, "%s\n", line);
+					artinfo->hdr.ext->line_count++;
+				}
+			}
+#endif /* 0 */
 			return tin_errno;
 		}
 
@@ -892,8 +917,8 @@ parse_multipart_article(
 
 			case M_HDR:
 				switch (bnd) {
-					case BOUND_START:
-						error_message(_(txt_error_mime_start));
+					case BOUND_START:	/* TODO: skip error message if not -DDEBUG? */
+						error_message(2, _(txt_error_mime_start));
 						continue;
 
 					case BOUND_NONE:
@@ -905,10 +930,21 @@ parse_multipart_article(
 					curr_part->offset = ftell(artinfo->raw);
 
 					if (curr_part->type == TYPE_MULTIPART) {	/* Complex multipart article */
-						int ret;
+						int ret, old_line_count;
 
+						old_line_count = curr_part->line_count;
 						if ((ret = parse_multipart_article(infile, artinfo, curr_part, depth + 1, show_progress_meter)) != 0)
 							return ret;							/* User abort or EOF reached */
+						if (part && part != artinfo->hdr.ext)
+							part->line_count += curr_part->line_count - old_line_count;
+						if (is_rfc822 && rfc822_part)
+							rfc822_part->line_count += curr_part->line_count - old_line_count;
+					} else if (curr_part->type == TYPE_MESSAGE && !strcasecmp("RFC822", curr_part->subtype)) {
+						is_rfc822 = TRUE;
+						rfc822_part = curr_part;
+						state = M_HDR;
+						curr_part = new_part(part);
+						curr_part->depth = ++depth;
 					}
 					break;
 				}
@@ -916,21 +952,21 @@ parse_multipart_article(
 				/*
 				 * Keep headers that interest us
 				 */
-/*fprintf(stderr, "HDR:%s\n", line);*/
+/* fprintf(stderr, "HDR:%s\n", line); */
 				unfold_header(line);
-				if ((ptr = parse_header(line, "Content-Type", FALSE, FALSE))) {
+				if ((ptr = parse_header(line, "Content-Type", FALSE, FALSE, FALSE))) {
 					parse_content_type(ptr, curr_part);
 					break;
 				}
-				if ((ptr = parse_header(line, "Content-Transfer-Encoding", FALSE, FALSE))) {
+				if ((ptr = parse_header(line, "Content-Transfer-Encoding", FALSE, FALSE, FALSE))) {
 					curr_part->encoding = parse_content_encoding(ptr);
 					break;
 				}
-				if ((ptr = parse_header(line, "Content-Disposition", FALSE, FALSE))) {
+				if ((ptr = parse_header(line, "Content-Disposition", FALSE, FALSE, FALSE))) {
 					parse_content_disposition(ptr, curr_part);
 					break;
 				}
-				if ((ptr = parse_header(line, "Content-Description", TRUE, FALSE))) {
+				if ((ptr = parse_header(line, "Content-Description", TRUE, FALSE, FALSE))) {
 					FreeIfNeeded(curr_part->description);
 					curr_part->description = my_strdup(ptr);
 					break;
@@ -940,11 +976,17 @@ parse_multipart_article(
 			case M_BODY:
 				switch (bnd) {
 					case BOUND_NONE:
-/*fprintf(stderr, "BOD:%s\n", line);*/
+/* fprintf(stderr, "BOD:%s\n", line); */
 						curr_part->line_count++;
 						break;
 
 					case BOUND_START:		/* Start new attchment */
+						if (is_rfc822) {
+							--depth;
+							rfc822_part->line_count--;
+							rfc822_part = NULL;
+							is_rfc822 = FALSE;
+						}
 						state = M_HDR;
 						curr_part = new_part(part);
 						curr_part->depth = depth;
@@ -974,7 +1016,8 @@ parse_normal_article(
 	char *line;
 
 	while ((line = tin_fgets(in, FALSE)) != NULL) {
-		fprintf(artinfo->raw, "%s\n", line);
+		if (read_news_via_nntp)
+			fprintf(artinfo->raw, "%s\n", line);
 		++artinfo->hdr.ext->line_count;
 		if (show_progress_meter)
 			progress(artinfo->hdr.ext->line_count);
@@ -1049,7 +1092,9 @@ dump_art(
 
 /*
  * Core parser for all article types
- * Return NULL if we couldn't open an output stream
+ * Return NULL if we couldn't open an output stream when reading via NNTP
+ * When reading from local spool we assign the filehandle of the on-spool
+ * article directly to artinfo->raw
  */
 static int
 parse_rfc2045_article(
@@ -1060,9 +1105,12 @@ parse_rfc2045_article(
 {
 	int ret;
 
-	if (!infile || !(artinfo->raw = tmpfile()))
+	if (!infile || (read_news_via_nntp && !(artinfo->raw = tmpfile())))
 		return ART_ABORT;
 
+	if (!read_news_via_nntp)
+		artinfo->raw = infile;
+
 	art_lines = line_count;
 
 	if ((ret = parse_rfc822_headers(&artinfo->hdr, infile, artinfo->raw)) != 0)
@@ -1073,11 +1121,12 @@ parse_rfc2045_article(
 	 * We don't bother to parse all plain text articles
 	 */
 	if (artinfo->hdr.mime && artinfo->hdr.ext->type == TYPE_MULTIPART) {
-		if ((ret = parse_multipart_article(infile, artinfo, artinfo->hdr.ext, 0, show_progress_meter)) != 0) {
+		if ((ret = parse_multipart_article(infile, artinfo, artinfo->hdr.ext, 1, show_progress_meter)) != 0) {
 			/* Strip off EOF condition if present */
 			if (ret & TIN_EOF) {
 				ret ^= TIN_EOF;
-				error_message(_(txt_error_mime_end), content_types[artinfo->hdr.ext->type], artinfo->hdr.ext->subtype);
+				/* TODO: skip error message if not -DDEBUG? */
+				error_message(2, _(txt_error_mime_end), content_types[artinfo->hdr.ext->type], artinfo->hdr.ext->subtype);
 				if (ret != 0)
 					goto error;
 			} else
@@ -1088,12 +1137,14 @@ parse_rfc2045_article(
 			goto error;
 	}
 
-	TIN_FCLOSE(infile);
+	if (read_news_via_nntp)
+		TIN_FCLOSE(infile);
 
 	return 0;
 
 error:
-	TIN_FCLOSE(infile);
+	if (read_news_via_nntp)
+		TIN_FCLOSE(infile);
 	art_close(artinfo);
 	return ret;
 }
@@ -1112,22 +1163,23 @@ open_art_fp(
 	long art)
 {
 	FILE *art_fp;
-	char buf[NNTP_STRLEN];
 
 #ifdef NNTP_ABLE
 	if (read_news_via_nntp && group->type == GROUP_TYPE_NEWS) {
+		char buf[NNTP_STRLEN];
 		snprintf(buf, sizeof(buf), "ARTICLE %ld", art);
 		art_fp = nntp_command(buf, OK_ARTICLE, NULL, 0);
 	} else {
 #endif /* NNTP_ABLE */
+		char buf[PATH_LEN];
 		char pbuf[PATH_LEN];
 		char fbuf[NAME_LEN + 1];
 		char group_path[PATH_LEN];
 
 		make_group_path(group->name, group_path);
-		joinpath(buf, group->spooldir, group_path);
+		joinpath(buf, sizeof(buf), group->spooldir, group_path);
 		snprintf(fbuf, sizeof(fbuf), "%ld", art);
-		joinpath(pbuf, buf, fbuf);
+		joinpath(pbuf, sizeof(pbuf), buf, fbuf);
 
 		art_fp = fopen(pbuf, "r");
 #ifdef NNTP_ABLE
@@ -1138,8 +1190,8 @@ open_art_fp(
 }
 
 
-/*----------- art_open() and art_close() are the only interface ---------*/
-/*------------------------for accessing articles -------------------*/
+/* ----------- art_open() and art_close() are the only interface --------- */
+/* ------------------------for accessing articles ------------------- */
 
 /*
  * Open's and postprocesses and article
@@ -1186,7 +1238,7 @@ art_open(
 		wait_message(0, _(txt_is_tex_encoded));
 
 	/* Maybe fix it so if this fails, we default to raw? */
-	if (!cook_article(wrap_lines, artinfo, 8, tinrc.hide_uue))
+	if (!cook_article(wrap_lines, artinfo, tinrc.hide_uue, FALSE))
 		return ART_ABORT;
 
 #ifdef DEBUG_ART
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/rfc2047.c tin-2.0.0/src/rfc2047.c
--- tin-1.8.3/src/rfc2047.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/rfc2047.c	2011-06-28 13:29:40.846084983 +0200
@@ -3,10 +3,10 @@
  *  Module    : rfc2047.c
  *  Author    : Chris Blum <chris@resolution.de>
  *  Created   : 1995-09-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2010-09-15
  *  Notes     : MIME header encoding/decoding stuff
  *
- * Copyright (c) 1995-2006 Chris Blum <chris@resolution.de>
+ * Copyright (c) 1995-2011 Chris Blum <chris@resolution.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -49,8 +49,17 @@
  * in unstructured headers like Subject, Keyword and Summary
  * c.f. RFC 2047
  */
-#define isbetween(c, s) (isspace((unsigned char) c) || ((s) && ((c) == '(' || (c) == ')' || (c) == '"')))
-
+/*
+ * On some systems isspace(0xa0) returns TRUE (UTF-8 locale).
+ * 0xa0 can be the second byte of a UTF-8 character and must not be
+ * treated as whitespace, otherwise Q and B encoding fails.
+ */
+#if 0
+#	define isbetween(c, s) (isspace((unsigned char) c) || ((s) && ((c) == '(' || (c) == ')' || (c) == '"')))
+#else
+#	define my_isspace(c) ((c) == '\t' || (c) == '\n' || (c) == '\v' || (c) == '\f' || (c) == '\r' || (c) == ' ')
+#	define isbetween(c, s) (my_isspace(c) || ((s) && ((c) == '(' || (c) == ')' || (c) == '"')))
+#endif /* 0 */
 #define NOT_RANKED 255
 
 #if 0
@@ -82,7 +91,7 @@ enum {
  */
 static FILE *compose_message_rfc822(FILE *articlefp, t_bool *is_8bit);
 static FILE *compose_multipart_mixed(FILE *textfp, FILE *articlefp);
-static int do_b_encode(char *w, char *b, int max_ewsize, t_bool isstruct_head);
+static int do_b_encode(char *w, char *b, size_t max_ewsize, t_bool isstruct_head);
 static int sizeofnextword(char *w);
 static int which_encoding(char *w);
 static t_bool contains_8bit_characters(FILE *fp);
@@ -224,7 +233,7 @@ rfc1522_decode(
 	char *t;
 #define BUFFER_LEN 2048
 	static char buffer[BUFFER_LEN];
-	int max_len;
+	size_t max_len;
 	char charset[1024];
 	char encoding;
 	t_bool adjacentflag = FALSE;
@@ -355,7 +364,7 @@ static int
 do_b_encode(
 	char *w,
 	char *b,
-	int max_ewsize,
+	size_t max_ewsize,
 	t_bool isstruct_head)
 {
 	char tmp[60];				/* strings to be B encoded */
@@ -369,7 +378,7 @@ do_b_encode(
 	t_bool isleading_between = TRUE;		/* are we still processing leading space */
 
 	while (count-- > 0 && (!isbetween(*w, isstruct_head) || isleading_between) && *w) {
-		len8 += is_EIGHT_BIT(w) ? 1 : (-len8);
+		len8 += (is_EIGHT_BIT(w) ? 1 : -len8);
 		if (!isbetween(*w, isstruct_head))
 			isleading_between = FALSE;
 		*(t++) = *(w++);
@@ -509,18 +518,16 @@ rfc1522_do_encode(
 	 * (just checking that they don get longer than 76 characters),
 	 * then, in a second pass, we replace all SPACEs inside encoded
 	 * words by '_', break long lines, etc.
-	 *
-	 * *group is passed for evaluation of group-attributes,
-	 * set to NULL for e-mails
 	 */
+	char *buffer;				/* buffer for encoded stuff */
 	char *c;
 	char *t;
-	char buf[2048];				/* buffer for encoded stuff */
-	char buf2[80];					/* buffer for this and that */
-	int encoding;					/* which encoding to use ('B' or 'Q') */
-	int ew_taken_len;
-	int column = 0;				/* current column */
+	char buf2[80];				/* buffer for this and that */
+	int encoding;				/* which encoding to use ('B' or 'Q') */
+	size_t ew_taken_len;
 	int word_cnt = 0;
+	int offset;
+	size_t bufferlen = 2048;		/* size of buffer */
 	size_t ewsize = 0;			/* size of current encoded-word */
 	t_bool quoting = FALSE;		/* currently inside quote block? */
 	t_bool any_quoting_done = FALSE;
@@ -544,21 +551,28 @@ rfc1522_do_encode(
 		}
 	} while (*(++strptr) != 0);
 
-	t = buf;
+	t = buffer = my_malloc(bufferlen);
 	encoding = which_encoding(what);
 	ew_taken_len = strlen(charset) + 7 /* =?c?E?d?= */;
 	while (*what) {
 		if (break_long_line)
 			word_cnt++;
-/*
- * if a word with 8bit chars is broken in the middle, whatever follows
- * after the point where it's split should be encoded (i.e. even if
- * they are made of only 7bit chars)
- */
+		/*
+		 * if a word with 8bit chars is broken in the middle, whatever
+		 * follows after the point where it's split should be encoded (i.e.
+		 * even if they are made of only 7bit chars)
+		 */
 		if (contains_nonprintables(what, isstruct_head) || isbroken_within) {
 			if (encoding == 'Q') {
 				if (!quoting) {
 					snprintf(buf2, sizeof(buf2), "=?%s?%c?", charset, encoding);
+					while (t - buffer + strlen(buf2) >= bufferlen) {
+						/* buffer too small, double its size */
+						offset = t - buffer;
+						bufferlen <<= 1;
+						buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+						t = buffer + offset;
+					}
 					ewsize = mystrcat(&t, buf2);
 					if (break_long_line) {
 						if (word_cnt == 2) {
@@ -568,7 +582,7 @@ rfc1522_do_encode(
 							 * since we cannot break the line
 							 * directly after the keyword.
 							 */
-							ewsize = t - buf;
+							ewsize = t - buffer;
 						}
 					}
 					quoting = TRUE;
@@ -583,11 +597,25 @@ rfc1522_do_encode(
 #endif /* 0 */
 					{
 						snprintf(buf2, sizeof(buf2), "=%2.2X", *EIGHT_BIT(what));
+						if ((size_t)(t - buffer + 3) >= bufferlen) {
+							/* buffer too small, double its size */
+							offset = t - buffer;
+							bufferlen <<= 1;
+							buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+							t = buffer + offset;
+						}
 						*t++ = buf2[0];
 						*t++ = buf2[1];
 						*t++ = buf2[2];
 						ewsize += 3;
 					} else {
+						if ((size_t) (t - buffer + 1) >= bufferlen) {
+							/* buffer too small, double its size */
+							offset = t - buffer;
+							bufferlen <<= 1;
+							buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+							t = buffer + offset;
+						}
 						*t++ = *what;
 						ewsize++;
 					}
@@ -607,15 +635,26 @@ rfc1522_do_encode(
 				}
 				if (!contains_nonprintables(what, isstruct_head) || ewsize >= 70 - strlen(charset)) {
 					/* next word is 'clean', close encoding */
+					if ((size_t) (t - buffer + 2) >= bufferlen) {
+						/* buffer too small, double its size */
+						offset = t - buffer;
+						bufferlen <<= 1;
+						buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+						t = buffer + offset;
+					}
 					*t++ = '?';
 					*t++ = '=';
 					ewsize += 2;
-/*
- * if a word with 8bit chars is broken in the middle, whatever follows
- * after the point where it's split should be encoded (i.e. even if
- * they are made of only 7bit chars)
- */
+					/*
+					 */
 					if (ewsize >= 70 - strlen(charset) && (contains_nonprintables(what, isstruct_head) || isbroken_within)) {
+						if ((size_t) (t - buffer + 1) >= bufferlen) {
+							/* buffer too small, double its size */
+							offset = t - buffer;
+							bufferlen <<= 1;
+							buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+							t = buffer + offset;
+						}
 						*t++ = ' ';
 						ewsize++;
 					}
@@ -623,6 +662,13 @@ rfc1522_do_encode(
 				} else {
 					/* process whitespace in-between by quoting it properly */
 					while (*what && isspace((unsigned char) *what)) {
+						if ((size_t) (t - buffer + 3) >= bufferlen) {
+							/* buffer probably too small, double its size */
+							offset = t - buffer;
+							bufferlen <<= 1;
+							buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+							t = buffer + offset;
+						}
 						if (*what == 32 /* not ' ', compare chapter 4! */ ) {
 							*t++ = '_';
 							ewsize++;
@@ -646,11 +692,25 @@ rfc1522_do_encode(
 				 */
 				while (*what && (!isbetween(*what, isstruct_head) || rightafter_ew)) {
 					snprintf(buf2, sizeof(buf2), "=?%s?%c?", charset, encoding);
+					while (t - buffer + strlen(buf2) >= bufferlen) {
+						/* buffer too small, double its size */
+						offset = t - buffer;
+						bufferlen <<= 1;
+						buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+						t = buffer + offset;
+					}
 					ewsize = mystrcat(&t, buf2);
 
 					if (word_cnt == 2)
-						ewsize = t - buf;
+						ewsize = t - buffer;
 					what += do_b_encode(what, buf2, 75 - ew_taken_len, isstruct_head);
+					while (t - buffer + strlen(buf2) + 3 >= bufferlen) {
+						/* buffer too small, double its size */
+						offset = t - buffer;
+						bufferlen <<= 1;
+						buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+						t = buffer + offset;
+					}
 					ewsize += mystrcat(&t, buf2);
 					*t++ = '?';
 					*t++ = '=';
@@ -673,60 +733,77 @@ rfc1522_do_encode(
 				}
 			}		/* end of B encoding */
 		} else {
-			while (*what && !isbetween(*what, isstruct_head))
+			while (*what && !isbetween(*what, isstruct_head)) {
+				if ((size_t) (t - buffer + 1) >= bufferlen) {
+					/* buffer too small, double its size */
+					offset = t - buffer;
+					bufferlen <<= 1;
+					buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+					t = buffer + offset;
+				}
 				*t++ = *what++;		/* output word unencoded */
-			while (*what && isbetween(*what, isstruct_head))
+			}
+			while (*what && isbetween(*what, isstruct_head)) {
+				if ((size_t) (t - buffer + 1) >= bufferlen) {
+					/* buffer too small, double its size */
+					offset = t - buffer;
+					bufferlen <<= 1;
+					buffer = my_realloc(buffer, bufferlen * sizeof(*buffer));
+					t = buffer + offset;
+				}
 				*t++ = *what++;		/* output trailing whitespace unencoded */
+			}
 			rightafter_ew = FALSE;
 		}
 	}		/* end of pass 1 while loop */
 	*t = 0;
+
 	/* Pass 2: break long lines if there are MIME-sequences in the result */
-	c = buf;
-	if (break_long_line) {
-		column = 0;
-		if (any_quoting_done) {
-			word_cnt = 1;			/*
-									 * note, if the user has typed a continuation
-									 * line, we will consider the initial
-									 * whitespace to be delimiting word one (well,
-									 * just assume an empty word).
-									 */
-			while (*c) {
-				if (isspace((unsigned char) *c)) {
-					/*
-					 * According to rfc1522, header lines containing encoded
-					 * words are limited to 76 chars, but if the first line is
-					 * too long (due to a long header keyword), we cannot stick
-					 * to that, since we would break the line directly after the
-					 * keyword's colon, which is not allowed. The same is
-					 * necessary for a continuation line with an unencoded word
-					 * that is too long.
-					 */
-					if (sizeofnextword(c) + column > 76 && word_cnt != 1) {
-						*((*where)++) = '\n';
-						column = 0;
-					}
-					if (c > buf && !isspace((unsigned char) *(c - 1)))
-						word_cnt++;
-					*((*where)++) = *c++;
+	c = buffer;
+	if (break_long_line && any_quoting_done) {
+		char *new_buffer;
+		size_t new_bufferlen = strlen(buffer) * 2 + 1; /* maximum length if
+every "word" were a space ... */
+		int column = 0;				/* current column */
+
+		new_buffer = my_malloc(new_bufferlen);
+		t = new_buffer;
+		word_cnt = 1;			/*
+						 * note, if the user has typed a continuation
+						 * line, we will consider the initial
+						 * whitespace to be delimiting word one (well,
+						 * just assume an empty word).
+						 */
+		while (*c) {
+			if (isspace((unsigned char) *c)) {
+				/*
+				 * According to rfc1522, header lines containing encoded
+				 * words are limited to 76 chars, but if the first line is
+				 * too long (due to a long header keyword), we cannot stick
+				 * to that, since we would break the line directly after the
+				 * keyword's colon, which is not allowed. The same is
+				 * necessary for a continuation line with an unencoded word
+				 * that is too long.
+				 */
+				if (sizeofnextword(c) + column > 76 && word_cnt != 1) {
+					*t++ = '\n';
+					column = 0;
+				}
+				if (c > buffer && !isspace((unsigned char) *(c - 1)))
+					word_cnt++;
+				*t++ = *c++;
+				column++;
+			} else
+				while (*c && !isspace((unsigned char) *c)) {
+					*t++ = *c++;
 					column++;
-				} else
-					while (*c && !isspace((unsigned char) *c)) {
-						*((*where)++) = *c++;
-						column++;
-					}
-			}
-		} else {
-			while (*c)
-				*((*where)++) = *c++;
+				}
 		}
-	} else {		/* !break_long_line */
-		while (*c)
-			*((*where)++) = *c++;
+		FreeAndNull(buffer);
+		buffer = new_buffer;
 	}
-
-	**where = 0;
+	*t = 0;
+	*where = buffer;
 	return any_quoting_done;
 }
 
@@ -740,26 +817,27 @@ rfc1522_encode(
 	const char *charset,
 	t_bool ismail)
 {
-	char *b, *buf;
+	char *buf;
 	t_bool x;
-/*
- * break_long_line is FALSE for news posting unless MIME_BREAK_LONG_LINES is
- * defined, but it's TRUE for mail messages regardless of whether or not
- * MIME_BREAK_LONG_LINES is defined
- */
+
+	/*
+	 * break_long_line is FALSE for news posting unless
+	 * MIME_BREAK_LONG_LINES is defined, but it's TRUE for mail messages
+	 * regardless of whether or not MIME_BREAK_LONG_LINES is defined
+	 */
 #ifdef MIME_BREAK_LONG_LINES
 	t_bool break_long_line = TRUE;
 #else
-/*
- * Even if MIME_BREAK_LONG_LINES is NOT defined, long headers in mail
- * messages should be broken up in accordance with RFC 2047(1522)
- */
+	/*
+	 * Even if MIME_BREAK_LONG_LINES is NOT defined, long headers in mail
+	 * messages should be broken up in accordance with RFC 2047(1522)
+	 */
 	t_bool break_long_line = ismail;
 #endif /* MIME_BREAK_LONG_LINES */
 
-	b = buf = my_malloc(2048);
-	x = rfc1522_do_encode(s, &b, charset, break_long_line);
+	x = rfc1522_do_encode(s, &buf, charset, break_long_line);
 	quoteflag = quoteflag || x;
+
 	return buf;
 }
 
@@ -807,7 +885,12 @@ do_rfc15211522_encode(
 		if (*header == '\0')
 			break;
 
-		if (allow_8bit_header)
+		/*
+		 * TODO: - what about 8bit chars in the mentioned headers
+		 *         when !allow_8bit_header?
+		 *       - what about lines longer 998 octets?
+		 */
+		if (allow_8bit_header || (!strncasecmp(header, "References: ", 12) || !strncasecmp(header, "Message-ID: ", 12) || !strncasecmp(header, "Date: ", 6) || !strncasecmp(header, "Newsgroups: ", 12) || !strncasecmp(header, "Distribution: ", 14) || !strncasecmp(header, "Followup-To: ", 13) || !strncasecmp(header, "X-Face: ", 8) || !strncasecmp(header, "Cancel-Lock: ", 13) || !strncasecmp(header, "Cancel-Key: ", 12)))
 			fputs(header, g);
 		else {
 			char *p;
@@ -845,7 +928,7 @@ do_rfc15211522_encode(
 	rewind(g);
 	rewind(f);
 #ifdef HAVE_FTRUNCATE
-	ftruncate(fileno(f), 0);
+	(void) ftruncate(fileno(f), 0);
 #endif /* HAVE_FTRUNCATE */
 
 	/* copy header */
@@ -1059,7 +1142,7 @@ compose_mail_text_plain(
 	const char *filename,
 	struct t_group *group)
 {
-	rfc15211522_encode(filename, txt_mime_encodings[tinrc.mail_mime_encoding], group, tinrc.mail_8bit_header, TRUE);
+	rfc15211522_encode(filename, txt_mime_encodings[(group ? group->attribute->mail_mime_encoding : tinrc.mail_mime_encoding)], group, (group ? group->attribute->mail_8bit_header : tinrc.mail_8bit_header), TRUE);
 }
 
 
@@ -1083,8 +1166,8 @@ compose_mail_mime_forwarded(
 	FILE *textfp = NULL;
 	FILE *entityfp;
 	char *line;
-	constext* encoding = txt_mime_encodings[tinrc.mail_mime_encoding];
-	t_bool allow_8bit_header = tinrc.mail_8bit_header;
+	constext* encoding = txt_mime_encodings[(group ? group->attribute->mail_mime_encoding : tinrc.mail_mime_encoding)];
+	t_bool allow_8bit_header = (group ? group->attribute->mail_8bit_header : tinrc.mail_8bit_header);
 	t_bool _8bit;
 
 	/* Split mail into headers and text */
@@ -1114,8 +1197,11 @@ compose_mail_mime_forwarded(
 	}
 
 	/* Put it all together */
-	if ((fp = fopen(filename, "w")) == NULL)
+	if ((fp = fopen(filename, "w")) == NULL) {
+		fclose(headerfp);
+		fclose(entityfp);
 		return;
+	}
 
 	rewind(headerfp);
 	while ((line = tin_fgets(headerfp, TRUE))) {
@@ -1236,7 +1322,7 @@ contains_8bit_characters(
 
 	rewind(fp);
 	while ((line = tin_fgets(fp, FALSE))) {
-		for ( ; *line != '\0'; line++) {
+		for (; *line != '\0'; line++) {
 			if (is_EIGHT_BIT(line))
 				return TRUE;
 		}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/save.c tin-2.0.0/src/save.c
--- tin-1.8.3/src/save.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/save.c	2011-04-18 00:05:52.027218072 +0200
@@ -3,10 +3,10 @@
  *  Module    : save.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-04-17
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,27 +48,62 @@
 #	endif /* !__UUDEVIEW_H__ */
 #endif /* HAVE_UUDEVIEW_H */
 
+#ifndef HAVE_LIBUU
 #undef OFF
-
 enum state { INITIAL, MIDDLE, OFF, END };
+#endif /* !HAVE_LIBUU */
+
+enum action {
+	VIEW,
+	SAVE,
+	SAVE_TAGGED
+#ifndef DONT_HAVE_PIPING
+	, PIPE_RAW
+	, PIPE
+#endif /* !DONT_HAVE_PIPING */
+};
 
 /*
  * Local prototypes
  */
 static FILE *open_save_filename(const char *path, t_bool mbox);
+static char *build_tree(int depth, int maxlen, int i);
+static char *generate_savepath(t_part *part);
+static int build_part_list(t_openartinfo *art);
+static int get_tagged(int n);
 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, size_t outpath_len, const char *path);
+static t_bool tag_part(int n);
+static t_function attachment_left(void);
+static t_function attachment_right(void);
+static t_partl *find_part(int n);
+static void build_attachment_line(int i);
+static void draw_attachment_arrow(void);
+static void free_part_list(t_partl *list);
 static void generate_filename(char *buf, int buflen, const char *suffix);
+#ifndef DONT_HAVE_PIPING
+	static void pipe_part(const char *savepath);
+#endif /* !DONT_HAVE_PIPING */
 static void post_process_uud(void);
 static void post_process_sh(void);
+static void process_part(t_part *part,	FILE *rawfp, FILE *outfile, const char *savepath, enum action what);
+static void process_parts(t_part *part,	FILE *rawfp, enum action what);
+static void show_attachment_page(void);
 static void start_viewer(t_part *part, const char *path);
+static void tag_pattern(void);
+static void untag_all_parts(void);
+static void untag_part(int n);
 static void uudecode_line(const char *buf, FILE *fp);
 static void view_file(const char *path, const char *file);
 #ifndef HAVE_LIBUU
 	static void sum_file(const char *path, const char *file);
 #endif /* !HAVE_LIBUU */
 
+static int num_of_tagged_parts, info_len;
+static t_menu attmenu = { 0, 0, 0, show_attachment_page, draw_attachment_arrow, build_attachment_line };
+static t_partl *part_list;
 
 /*
  * Check for articles and say how many new/unread in each group.
@@ -117,16 +152,16 @@ check_start_save_any_news(
 			break;
 
 		case MAIL_ANY_NEWS:
-			joinpath(savefile, TMPDIR, "tin");
+			joinpath(savefile, sizeof(savefile), TMPDIR, "tin");
 #ifdef APPEND_PID
-			snprintf(savefile + strlen(savefile), sizeof(savefile) - strlen(savefile), ".%d", (int) process_id);
+			snprintf(savefile + strlen(savefile), sizeof(savefile) - strlen(savefile), ".%ld", (long) process_id);
 #endif /* APPEND_PID */
 			/* FALLTHROUGH */
 
 		case SAVE_ANY_NEWS:
-			joinpath(logfile, rcdir, "log");
+			joinpath(logfile, sizeof(logfile), rcdir, "log");
 
-			if (no_write || (fp_log = fopen(logfile, "w" FOPEN_OPTS)) == NULL) {
+			if (no_write || (fp_log = fopen(logfile, "w")) == NULL) {
 				perror_message(_(txt_cannot_open), logfile);
 				fp_log = stdout;
 				verbose = FALSE;
@@ -159,31 +194,31 @@ check_start_save_any_news(
 		if (group->bogus || !group->subscribed)
 			continue;
 
-		if (!index_group(group))
-			continue;
-
 		if (function == MAIL_ANY_NEWS || function == SAVE_ANY_NEWS) {
 			if (!group->attribute->batch_save)
 				continue;
 
 			group_count++;
 			snprintf(buf, sizeof(buf), _(txt_saved_groupname), group->name);
-			fprintf(fp_log, buf);
+			fprintf(fp_log, "%s", buf);
 			if (verbose)
 				wait_message(0, buf);
 
 			if (function == SAVE_ANY_NEWS) {
 				char tmp[PATH_LEN];
 
-				if (!strfpath(group->attribute->savedir, tmp, sizeof(tmp), group))
-					joinpath(tmp, homedir, DEFAULT_SAVEDIR);
+				if (!strfpath(cmdline.args & CMDLINE_SAVEDIR ? cmdline.savedir : tinrc.savedir, tmp, sizeof(tmp), group, FALSE))
+					joinpath(tmp, sizeof(tmp), homedir, DEFAULT_SAVEDIR);
 
 				make_group_path(group->name, group_path);
-				joinpath(path, tmp, group_path);
+				joinpath(path, sizeof(path), tmp, group_path);
 				create_path(path);	/* TODO error handling */
 			}
 		}
 
+		if (!index_group(group))
+			continue;
+
 		/*
 		 * For each article in this group...
 		 */
@@ -198,7 +233,7 @@ check_start_save_any_news(
 						print_first = FALSE;
 					}
 					if (!verbose && !catchup) /* we don't need details */
-						return 2;
+						return NEWS_AVAIL_EXIT;
 					art_count++;
 					if (arts[j].score >= tinrc.score_select)
 						hot_count++;
@@ -217,10 +252,10 @@ check_start_save_any_news(
 
 					if (function == SAVE_ANY_NEWS) {
 						snprintf(buf, sizeof(buf), "%ld", arts[j].artnum);
-						joinpath(savefile, path, buf);
+						joinpath(savefile, sizeof(savefile), path, buf);
 					}
 
-					if ((savefp = fopen(savefile, "w" FOPEN_OPTS)) == NULL) {
+					if ((savefp = fopen(savefile, "w")) == NULL) {
 						fprintf(fp_log, _(txt_cannot_open), savefile);
 						if (verbose)
 							perror_message(_(txt_cannot_open), savefile);
@@ -250,7 +285,7 @@ check_start_save_any_news(
 					}
 
 					snprintf(buf, sizeof(buf), "[%5ld]  %s\n", arts[j].artnum, arts[j].subject);
-					fprintf(fp_log, "%s", buf);		/* buf may contain % */
+					fprintf(fp_log, "%s", buf);	/* buf may contain % */
 					if (verbose)
 						wait_message(0, buf);
 
@@ -289,11 +324,11 @@ check_start_save_any_news(
 			 * TODO: shall we return 2 or 0 in the -cZ case?
 			 */
 			if (unread_news && !catchup)
-				return 2;
+				return NEWS_AVAIL_EXIT;
 			else {
 				if (verbose)
 					wait_message(1, _(txt_there_is_no_news));
-				return 0;
+				return EXIT_SUCCESS;
 			}
 			/* NOTREACHED */
 
@@ -436,7 +471,7 @@ save_and_process_art(
 
 	/* The first task is to fixup the filename to be saved too. This is context dependent */
 	strncpy(path, inpath, sizeof(path) - 1);
-/*fprintf(stderr, "save_and_process_art max=%d num_save=%d starting path=(%s) postproc=%s\n", max, num_save, path, bool_unparse(post_process));*/
+/* fprintf(stderr, "save_and_process_art max=%d num_save=%d starting path=(%s) postproc=%s\n", max, num_save, path, bool_unparse(post_process)); */
 
 	/*
 	 * If using the auto-save feature on an article with Archive-Name,
@@ -464,11 +499,11 @@ save_and_process_art(
 
 		/* Add on the archive name as a directory */
 		/* TODO: maybe a s!/!.! on archive-name would be better */
-		joinpath(archpath, path, artptr->archive->name);
+		joinpath(archpath, sizeof(archpath), path, artptr->archive->name);
 
 		/* Generate the filename part and append it */
 		snprintf(filename, sizeof(filename), "%s%s", partprefix, artptr->archive->partnum);
-		joinpath(path, archpath, filename);
+		joinpath(path, sizeof(path), archpath, filename);
 /*fprintf(stderr, "save_and_process_art archive-name mangled path=(%s)\n", path);*/
 		if (!create_path(path))
 			return FALSE;
@@ -479,17 +514,13 @@ save_and_process_art(
 		 * This is backward-contemptibility with older versions of tin
 		 */
 		if (!is_mailbox && max > 1) {
-#ifdef VMS
-			const char suffixsep = '-';		/* Suffix seperator for .001 type extensions */
-#else
 			const char suffixsep = '.';
-#endif /* VMS */
 
 			sprintf(&path[strlen(path)], "%c%03d", suffixsep, num_save + 1);
 		}
 	}
 
-/*fprintf(stderr, "save_and_process_art expanded path now=(%s)\n", path);*/
+/* fprintf(stderr, "save_and_process_art expanded path now=(%s)\n", path); */
 
 	if ((fp = open_save_filename(path, is_mailbox)) == NULL)
 		return FALSE;
@@ -507,8 +538,8 @@ save_and_process_art(
 		 */
 	}
 
-	if (copy_fp(artinfo->raw, fp)) /* Write tailing newline or MMDF-mailbox seperator */
-		print_art_seperator_line(fp, is_mailbox);
+	if (copy_fp(artinfo->raw, fp)) /* Write tailing newline or MMDF-mailbox separator */
+		print_art_separator_line(fp, is_mailbox);
 	else {
 		fclose(fp);
 		unlink(path);
@@ -525,7 +556,7 @@ save_and_process_art(
 	save[num_save].path = my_strdup(path);
 	save[num_save].file = strrchr(save[num_save].path, DIRSEP) + 1;	/* ptr to filename portion */
 	save[num_save].mailbox = is_mailbox;
-/*fprintf(stderr, "SAPA (%s) (%s) mbox=%s\n", save[num_save].path, save[num_save].file, bool_unparse(save[num_save].mailbox));*/
+/* fprintf(stderr, "SAPA (%s) (%s) mbox=%s\n", save[num_save].path, save[num_save].file, bool_unparse(save[num_save].mailbox)); */
 	num_save++;			/* NB: num_save is bumped here only */
 
 	/*
@@ -558,7 +589,6 @@ t_bool
 create_path(
 	const char *path)
 {
-#ifndef VMS
 	char buf[PATH_LEN];
 	int i, j, len;
 	struct stat st;
@@ -579,15 +609,6 @@ create_path(
 			}
 		}
 	}
-#else
-	if (my_mkdir(path, (mode_t) (S_IRWXU|S_IRUGO|S_IXUGO)) == -1) {
-		if (errno != EEXIST) {
-			perror_message(_(txt_cannot_create), buf);
-			return FALSE;
-		}
-	}
-#endif /* !VMS */
-
 	return TRUE;
 }
 
@@ -607,6 +628,52 @@ generate_filename(
 	snprintf(buf, buflen, "%s-%03d.%s", SAVEFILE_PREFIX, seqno++, suffix);
 }
 
+/*
+ * Generate /save/to/path name.
+ *
+ * Return pointer to allocated memory which the caller must free or
+ * NULL if something went wrong.
+ */
+static char *
+generate_savepath(
+	t_part *part)
+{
+	char buf[2048];
+	char *savepath;
+	const char *name;
+	t_bool mbox;
+
+	savepath = my_malloc(PATH_LEN + 1);
+	/*
+	 * Get the filename to save to in 'savepath'
+	 */
+	if ((name = get_filename(part->params)) == NULL) {
+		char extension[NAME_LEN + 1];
+
+		lookup_extension(extension, sizeof(extension), content_types[part->type], part->subtype);
+		generate_filename(buf, sizeof(buf), extension);
+		mbox = expand_save_filename(savepath, PATH_LEN, buf);
+	} else
+		mbox = expand_save_filename(savepath, PATH_LEN, name);
+
+	/*
+	 * Not a good idea to dump attachments over a mailbox
+	 */
+	if (mbox) {
+		wait_message(2, _(txt_is_mailbox), content_types[part->type], part->subtype);
+		free(savepath);
+		return NULL;
+	}
+
+	if (!(create_path(savepath))) {
+		error_message(2, _(txt_cannot_open_for_saving), savepath);
+		free(savepath);
+		return NULL;
+	}
+
+	return savepath;
+}
+
 
 /*
  * Generate a path/filename to save to, using 'path' as input.
@@ -614,26 +681,32 @@ 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,
+	size_t outpath_len,
 	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(cmdline.args & CMDLINE_SAVEDIR ? cmdline.savedir : curr_group->attribute->savedir, buf, sizeof(buf), curr_group, FALSE)))
+		joinpath(buf, sizeof(buf), homedir, DEFAULT_SAVEDIR);
+
+	/* Join path and filename */
+	joinpath(outpath, outpath_len, buf, base_filename);
+
+	return (ret == 1);	/* should now always evaluate to FALSE */
 }
 
 
@@ -652,10 +725,8 @@ post_process_files(
 	if (num_save < 1)
 		return FALSE;
 
-	clear_message();
-#ifdef USE_CURSES
-	scrollok(stdscr, TRUE);
-#endif /* USE_CURSES */
+	EndWin();
+	Raw(FALSE);
 	my_printf("%s%s", _(txt_post_processing), cCRLF);
 
 	switch (proc_type_func) {
@@ -672,22 +743,24 @@ post_process_files(
 
 	my_printf("%s%s%s", _(txt_post_processing_finished), cCRLF, cCRLF);
 	my_flush();
-	prompt_continue();
 #ifdef USE_CURSES
-	scrollok(stdscr, FALSE);
+	Raw(TRUE);
+	InitWin();
 #endif /* USE_CURSES */
+	prompt_continue();
+#ifndef USE_CURSES
+	Raw(TRUE);
+	InitWin();
+#endif /* !USE_CURSES */
 
 	/*
 	 * Remove the post-processed files if required
 	 */
-	my_printf(cCRLF);
-	my_flush();
-
 	if (auto_delete) {
 		int i;
 
-		my_printf("%s%s", _(txt_deleting), cCRLF);
-		my_flush();
+		wait_message((tinrc.beginner_level) ? 2 : 1, "%s", _(txt_deleting));
+		cursoroff();
 
 		for (i = 0; i < num_save; i++)
 			unlink(save[i].path);
@@ -760,8 +833,8 @@ post_process_uud(
 			my_printf(cCRLF);
 
 			/* item->mimetype seems not to be available for uudecoded files etc */
-			if (tinrc.post_process_view) {
-				joinpath(path, file_out_dir, item->filename);
+			if (curr_group->attribute->post_process_view) {
+				joinpath(path, sizeof(path), file_out_dir, item->filename);
 				view_file(path, strrchr(path, DIRSEP) + 1);
 			}
 		} else {
@@ -852,7 +925,7 @@ post_process_uud(
 							generate_filename(name, sizeof(name), "uue");
 
 						filename = name;
-						expand_save_filename(path, filename);
+						expand_save_filename(path, sizeof(path), filename);
 						filename = strrchr(path, DIRSEP) + 1;	/* ptr to filename portion */
 						if ((fp_out = fopen(path, "w")) == NULL) {
 							perror_message(_(txt_cannot_open), path);
@@ -876,8 +949,8 @@ post_process_uud(
 							uudecode_line(u, fp_out);
 						if (t[0] != 'M')
 							uudecode_line(t, fp_out);
-					} else                                  /* end */
-						state = OFF;            /* OFF => a break in the uuencoded data */
+					} else	/* end */
+						state = OFF;	/* OFF => a break in the uuencoded data */
 					break;
 
 				case OFF:
@@ -885,7 +958,7 @@ post_process_uud(
 						uudecode_line(u, fp_out);
 						uudecode_line(t, fp_out);
 						uudecode_line(s, fp_out);
-						state = MIDDLE;         /* Continue output of previously suspended data */
+						state = MIDDLE;	/* Continue output of previously suspended data */
 					} else if (STRNCMPEQ("end", s, 3)) {
 						state = END;
 						if (u[0] != 'M')
@@ -913,7 +986,7 @@ post_process_uud(
 				my_printf(_(txt_uu_success), filename);
 				my_printf(cCRLF);
 				sum_file(path, filename);
-				if (tinrc.post_process_view)
+				if (curr_group->attribute->post_process_view)
 					view_file(path, filename);
 				state = INITIAL;
 				continue;
@@ -1056,7 +1129,7 @@ uudecode_line(
 /*
  * Unpack /bin/sh archives
  * There is no end-of-shar marker so the code reads everything after
- * the start marker. This is why shar is handled seperately.
+ * the start marker. This is why shar is handled separately.
  * The code assumes shar archives do not span articles
  */
 static void
@@ -1073,12 +1146,7 @@ post_process_sh(
 	 * Grab the dirname portion
 	 */
 	my_strncpy(file_out_dir, save[0].path, save[0].file - save[0].path);
-
-#ifdef VMS
-	snprintf(file_out, sizeof(file_out), "%ssh.%05d", file_out_dir, (int) process_id);
-#else
-	snprintf(file_out, sizeof(file_out), "%ssh%05d", file_out_dir, (int) process_id);
-#endif /* VMS */
+	snprintf(file_out, sizeof(file_out), "%ssh%ld", file_out_dir, (long) process_id);
 
 	for (i = 0; i < num_save; i++) {
 		if ((fp_in = fopen(save[i].path, "r")) == NULL)
@@ -1089,7 +1157,7 @@ post_process_sh(
 		while (fgets(buf, (int) sizeof(buf), fp_in) != NULL) {
 			/* find #!/bin/sh style patterns */
 			if ((fp_out == NULL) && pcre_exec(shar_regex.re, shar_regex.extra, buf, strlen(buf), 0, 0, NULL, 0) >= 0)
-				fp_out = fopen(file_out, "w" FOPEN_OPTS);
+				fp_out = fopen(file_out, "w");
 
 			/* write to temp file */
 			if (fp_out != NULL)
@@ -1117,16 +1185,16 @@ post_process_sh(
 
 
 /*
- * write tailing (MMDF)-mailbox seperator
+ * write tailing (MMDF)-mailbox separator
  */
 void
-print_art_seperator_line(
+print_art_separator_line(
 	FILE *fp,
 	t_bool is_mailbox)
 {
 #ifdef DEBUG
-	if (debug == 2)
-		error_message("Mailbox=[%d], mailbox_format=[%s]", is_mailbox, txt_mailbox_formats[tinrc.mailbox_format]);
+	if (debug & DEBUG_MISC)
+		error_message(2, "Mailbox=[%d], mailbox_format=[%s]", is_mailbox, txt_mailbox_formats[tinrc.mailbox_format]);
 #endif /* DEBUG */
 
 	fprintf(fp, "%s", (is_mailbox && !strcasecmp(txt_mailbox_formats[tinrc.mailbox_format], "MMDF")) ? MMDFHDRTXT : "\n");
@@ -1145,19 +1213,12 @@ start_viewer(
 	t_mailcap *foo;
 
 	if ((foo = get_mailcap_entry(part, path)) != NULL) {
-		char buff[LEN];
-
 		if (foo->nametemplate)	/* honor nametemplate */
 			rename_file(path, foo->nametemplate);
 
 		wait_message(0, _(txt_starting_command), foo->command);
-
-		/* are the () needed if foo->command holds more than one cmd? */
-		snprintf(buff, sizeof(buff), "(%s)", foo->command);
 		if (foo->needsterminal) {
 			set_xclick_off();
-			EndWin();
-			Raw(FALSE);
 			fflush(stdout);
 		} else {
 			if (foo->description)
@@ -1165,9 +1226,15 @@ start_viewer(
 		}
 		invoke_cmd(foo->command);
 		if (foo->needsterminal) {
+#ifndef USE_CURSES
+			EndWin();
+			Raw(FALSE);
+#endif /* !USE_CURSES */
+			prompt_continue();
+#ifndef USE_CURSES
 			Raw(TRUE);
 			InitWin();
-			prompt_continue();
+#endif /* !USE_CURSES */
 		}
 		if (foo->nametemplate) /* undo nametemplate, needed as 'save'-prompt is done outside start_viewer */
 			rename_file(foo->nametemplate, path);
@@ -1191,10 +1258,8 @@ decode_save_one(
 {
 	FILE *fp;
 	char buf[2048], buf2[2048];
-	char savepath[PATH_LEN];
-	const char *name;
+	char *savepath;
 	int i;
-	t_bool mbox;
 
 	/*
 	 * Decode this message part if appropriate
@@ -1205,36 +1270,15 @@ decode_save_one(
 		return TRUE;
 	}
 
-	/*
-	 * Get the filename to save to in 'savepath'
-	 */
-	if ((name = get_filename(part->params)) == NULL) {
-		char extension[NAME_LEN + 1];
-
-		lookup_extension(extension, sizeof(extension), content_types[part->type], part->subtype);
-		generate_filename(buf, sizeof(buf), extension);
-		mbox = expand_save_filename(savepath, buf);
-	} else
-		mbox = expand_save_filename(savepath, name);
-
-	/*
-	 * Not a good idea to dump attachments over a mailbox
-	 */
-	if (mbox) {
-		wait_message(2, _(txt_is_mailbox), content_types[part->type], part->subtype);
-		return FALSE;
-	}
-
-	if (!(create_path(savepath))) {
-		error_message(_(txt_cannot_open_for_saving), savepath);
+	if ((savepath = generate_savepath(part)) == NULL)
 		return FALSE;
-	}
 
 	/*
 	 * Decode/save the attachment
 	 */
 	if ((fp = open_save_filename(savepath, FALSE)) == NULL) {
-		error_message(_(txt_cannot_open_for_saving), savepath);
+		error_message(2, _(txt_cannot_open_for_saving), savepath);
+		free(savepath);
 		return FALSE;
 	}
 
@@ -1278,17 +1322,16 @@ decode_save_one(
 	/*
 	 * View the attachment
 	 */
-	if (postproc) {
-		if (tinrc.post_process_view) {
+	if ((postproc && curr_group->attribute->post_process_view) || !curr_group->attribute->ask_for_metamail) {
 			start_viewer(part, savepath);
 			my_printf(cCRLF);
-		}
 	} else {
 		snprintf(buf, sizeof(buf), _(txt_view_attachment), savepath, content_types[part->type], part->subtype);
 		if ((i = prompt_yn(buf, TRUE)) == 1)
 			start_viewer(part, savepath);
 		else if (i == -1) {	/* Skip rest of attachments */
 			unlink(savepath);
+			free(savepath);
 			return FALSE;
 		}
 	}
@@ -1296,7 +1339,7 @@ decode_save_one(
 	/*
 	 * Save the attachment
 	 */
-	if (postproc && tinrc.post_process_view) {
+	if (postproc && curr_group->attribute->post_process_view) {
 		my_printf(_(txt_uu_success), savepath);
 		my_printf(cCRLF);
 	}
@@ -1304,10 +1347,13 @@ decode_save_one(
 		snprintf(buf, sizeof(buf), _(txt_save_attachment), savepath, content_types[part->type], part->subtype);
 		if ((i = prompt_yn(buf, FALSE)) != 1) {
 			unlink(savepath);
-			if (i == -1)	/* Skip rest of attachments */
+			if (i == -1) {	/* Skip rest of attachments */
+				free(savepath);
 				return FALSE;
+			}
 		}
 	}
+	free(savepath);
 	return TRUE;
 }
 
@@ -1451,10 +1497,851 @@ decode_save_mime(
 		 * the role of a multipart part. Check to see if we want to
 		 * save text and if not, skip this part.
 		 */
-		if ((ptr->type == TYPE_MULTIPART || ((NULL != ptr->uue) && (!check_save_mime_type(ptr, curr_group->attribute->mime_types_to_save)))))
+		 /* check_save_mime_type() is done in decode_save_one() and the check for ptr->uue must be done unconditionally */
+		if (ptr->type == TYPE_MULTIPART || (NULL != ptr->uue /* && !check_save_mime_type(ptr, curr_group->attribute->mime_types_to_save) */ ))
 			continue;
 
 		if (!(decode_save_one(ptr, art->raw, postproc)))
 			break;
 	}
 }
+
+
+/*
+ * Attachment menu
+ */
+static void
+show_attachment_page(
+	void)
+{
+	char buf[BUFSIZ];
+	const char *charset;
+	int i, tmp_len, max_depth;
+	t_part *part;
+
+	signal_context = cAttachment;
+	currmenu = &attmenu;
+
+	if (attmenu.curr < 0)
+		attmenu.curr = 0;
+
+	info_len = max_depth = 0;
+	for (i = 0; i < attmenu.max; ++i) {
+		part = get_part(i);
+		snprintf(buf, sizeof(buf), _(txt_attachment_lines), part->line_count);
+		tmp_len = strwidth(buf);
+		charset = get_param(part->params, "charset");
+		snprintf(buf, sizeof(buf), "  %s/%s, %s, %s%s", content_types[part->type], part->subtype, content_encodings[part->encoding], charset ? charset : "", charset ? ", " : "");
+		tmp_len += strwidth(buf);
+		if (tmp_len > info_len)
+			info_len = tmp_len;
+
+		tmp_len = part->depth;
+		if (tmp_len > max_depth)
+			max_depth = tmp_len;
+	}
+	tmp_len = cCOLS - 13 - MIN((cCOLS - 13) / 2 + 10, max_depth * 2 + 1 + strwidth(_(txt_attachment_no_name)));
+	if (info_len > tmp_len)
+		info_len = tmp_len;
+
+	ClearScreen();
+	set_first_screen_item();
+	center_line(0, TRUE, _(txt_attachment_menu));
+
+	for (i = attmenu.first; i < attmenu.first + NOTESLINES && i < attmenu.max; ++i)
+		build_attachment_line(i);
+
+	show_mini_help(ATTACHMENT_LEVEL);
+
+	if (attmenu.max <= 0) {
+		info_message(_(txt_no_attachments));
+		return;
+	}
+
+	draw_attachment_arrow();
+}
+
+
+void
+attachment_page(
+	t_openartinfo *art)
+{
+	char key[MAXKEYLEN];
+	t_function func;
+	t_menu *oldmenu = NULL;
+	t_part *part;
+
+	if (currmenu)
+		oldmenu = currmenu;
+	num_of_tagged_parts = 0;
+	attmenu.curr = 0;
+	attmenu.max = build_part_list(art);
+	clear_note_area();
+	show_attachment_page();
+	set_xclick_off();
+
+	forever {
+		switch ((func = handle_keypad(attachment_left, attachment_right, NULL, attachment_keys))) {
+			case GLOBAL_QUIT:
+				free_part_list(part_list);
+				if (oldmenu)
+					currmenu = oldmenu;
+				return;
+
+			case DIGIT_1:
+			case DIGIT_2:
+			case DIGIT_3:
+			case DIGIT_4:
+			case DIGIT_5:
+			case DIGIT_6:
+			case DIGIT_7:
+			case DIGIT_8:
+			case DIGIT_9:
+				if (attmenu.max)
+					prompt_item_num(func_to_key(func, attachment_keys), _(txt_attachment_select));
+				break;
+
+#ifndef NO_SHELL_ESCAPE
+			case GLOBAL_SHELL_ESCAPE:
+				do_shell_escape();
+				break;
+#endif /* !NO_SHELL_ESCAPE */
+
+			case GLOBAL_HELP:
+				show_help_page(ATTACHMENT_LEVEL, _(txt_attachment_menu_com));
+				show_attachment_page();
+				break;
+
+			case GLOBAL_FIRST_PAGE:
+				top_of_list();
+				break;
+
+			case GLOBAL_LAST_PAGE:
+				end_of_list();
+				break;
+
+			case GLOBAL_REDRAW_SCREEN:
+				my_retouch();
+				show_attachment_page();
+				break;
+
+			case GLOBAL_LINE_DOWN:
+				move_down();
+				break;
+
+			case GLOBAL_LINE_UP:
+				move_up();
+				break;
+
+			case GLOBAL_PAGE_DOWN:
+				page_down();
+				break;
+
+			case GLOBAL_PAGE_UP:
+				page_up();
+				break;
+
+			case GLOBAL_SCROLL_DOWN:
+				scroll_down();
+				break;
+
+			case GLOBAL_SCROLL_UP:
+				scroll_up();
+				break;
+
+			case GLOBAL_TOGGLE_HELP_DISPLAY:
+				toggle_mini_help(ATTACHMENT_LEVEL);
+				show_attachment_page();
+				break;
+
+			case GLOBAL_TOGGLE_INFO_LAST_LINE:
+				tinrc.info_in_last_line = bool_not(tinrc.info_in_last_line);
+				show_attachment_page();
+				break;
+
+			case ATTACHMENT_SAVE:
+				if (attmenu.max) {
+					part = get_part(attmenu.curr);
+					process_parts(part, art->raw, num_of_tagged_parts ? SAVE_TAGGED : SAVE);
+					show_attachment_page();
+				}
+				break;
+
+			case ATTACHMENT_SELECT:
+				if (attmenu.max) {
+					part = get_part(attmenu.curr);
+					process_parts(part, art->raw, VIEW);
+					show_attachment_page();
+				}
+				break;
+
+			case ATTACHMENT_TAG:
+				if (attmenu.max) {
+					t_bool tagged;
+
+					tagged = tag_part(attmenu.curr);
+					show_attachment_page();
+					if (attmenu.curr + 1 < attmenu.max)
+						move_down();
+					info_message(tagged ? _(txt_attachment_tagged) : _(txt_attachment_untagged));
+				}
+				break;
+
+			case ATTACHMENT_UNTAG:
+				if (attmenu.max && num_of_tagged_parts) {
+					untag_all_parts();
+					show_attachment_page();
+				}
+				break;
+
+			case ATTACHMENT_TAG_PATTERN:
+				if (attmenu.max) {
+					tag_pattern();
+					show_attachment_page();
+					info_message(_(txt_attachments_tagged), num_of_tagged_parts);
+				}
+				break;
+
+			case ATTACHMENT_TOGGLE_TAGGED:
+				if (attmenu.max) {
+					int i;
+
+					for (i = attmenu.first; i < attmenu.max; ++i)
+						tag_part(i);
+					show_attachment_page();
+					info_message(_(txt_attachments_tagged), num_of_tagged_parts);
+				}
+				break;
+
+			case GLOBAL_SEARCH_SUBJECT_FORWARD:
+			case GLOBAL_SEARCH_SUBJECT_BACKWARD:
+			case GLOBAL_SEARCH_REPEAT:
+				if (func == GLOBAL_SEARCH_REPEAT && last_search != GLOBAL_SEARCH_SUBJECT_FORWARD && last_search != GLOBAL_SEARCH_SUBJECT_BACKWARD)
+					info_message(_(txt_no_prev_search));
+				else if (attmenu.max) {
+					int new_pos, old_pos = attmenu.curr;
+
+					new_pos = generic_search((func == GLOBAL_SEARCH_SUBJECT_FORWARD), (func == GLOBAL_SEARCH_REPEAT), attmenu.curr, attmenu.max - 1, ATTACHMENT_LEVEL);
+					if (new_pos != old_pos)
+						move_to_item(new_pos);
+				}
+				break;
+
+#ifndef DONT_HAVE_PIPING
+			case ATTACHMENT_PIPE:
+			case GLOBAL_PIPE:
+				if (attmenu.max) {
+					part = get_part(attmenu.curr);
+					process_parts(part, art->raw, func == GLOBAL_PIPE ? PIPE_RAW : PIPE);
+					show_attachment_page();
+				}
+				break;
+#endif /* !DONT_HAVE_PIPING */
+
+			default:
+				info_message(_(txt_bad_command), printascii(key, func_to_key(GLOBAL_HELP, attachment_keys)));
+				break;
+		}
+	}
+}
+
+
+static t_function
+attachment_left(
+	void)
+{
+	return GLOBAL_QUIT;
+}
+
+
+static t_function
+attachment_right(
+	void)
+{
+	return ATTACHMENT_SELECT;
+}
+
+
+static void
+draw_attachment_arrow(
+	void)
+{
+	draw_arrow_mark(INDEX_TOP + attmenu.curr - attmenu.first);
+	if (tinrc.info_in_last_line) {
+		const char *name;
+		t_part *part;
+
+		part = get_part(attmenu.curr);
+		name = get_filename(part->params);
+		info_message("%s  %s", name ? name : _(txt_attachment_no_name), BlankIfNull(part->description));
+	} else if (attmenu.curr == attmenu.max - 1)
+		info_message(_(txt_end_of_attachments));
+}
+
+
+static void
+build_attachment_line(
+	int i)
+{
+	char *sptr;
+	const char *name;
+	const char *charset;
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	char *tmpname;
+	char *tmpbuf;
+#endif /* MULTIBYTE_ABLE && !NOLOCALE */
+	char buf[BUFSIZ];
+	char buf2[BUFSIZ];
+	char *tree = NULL;
+	int len, namelen, tagged;
+	int treelen = 0;
+	t_part *part;
+
+#ifdef USE_CURSES
+	/*
+	 * Allocate line buffer
+	 * make it the same size like in !USE_CURSES case to simplify some code
+	 */
+#	if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+		sptr = my_malloc(cCOLS * MB_CUR_MAX + 2);
+#	else
+		sptr = my_malloc(cCOLS + 2);
+#	endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+#else
+	sptr = screen[INDEX2SNUM(i)].col;
+#endif /* USE_CURSES */
+
+	part = get_part(i);
+	namelen = strwidth(_(txt_attachment_no_name));
+	tagged = get_tagged(i);
+
+	if (!(name = get_filename(part->params))) {
+		if (!(name = part->description))
+			name = _(txt_attachment_no_name);
+	}
+
+	charset = get_param(part->params, "charset");
+	snprintf(buf2, sizeof(buf2), _(txt_attachment_lines), part->line_count);
+	snprintf(buf, sizeof(buf), "  %s/%s, %s, %s%s%s", content_types[part->type], part->subtype, content_encodings[part->encoding], charset ? charset : "", charset ? ", " : "", buf2);
+	if (part->depth > 0) {
+		treelen = cCOLS - 13 - info_len - namelen;
+		tree = build_tree(part->depth, treelen, i);
+	}
+	snprintf(buf2, sizeof(buf2), "%s  %s", tagged ? tin_ltoa(tagged, 3) : "   ", BlankIfNull(tree));
+	FreeIfNeeded(tree);
+	len = strwidth(buf2);
+	if (namelen + len + info_len + 8 <= cCOLS)
+		namelen = cCOLS - 8 - info_len - len;
+
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	tmpname = spart(name, namelen, TRUE);
+	tmpbuf = spart(buf, info_len, TRUE);
+	snprintf(sptr, cCOLS * MB_CUR_MAX, "  %s %s%*s%*s%s", tin_ltoa(i + 1, 4), buf2, namelen, BlankIfNull(tmpname), info_len, BlankIfNull(tmpbuf), cCRLF);
+	FreeIfNeeded(tmpname);
+	FreeIfNeeded(tmpbuf);
+#else
+	snprintf(sptr, cCOLS, "  %s %s%-*.*s%*.*s%s", tin_ltoa(i + 1, 4), buf2, namelen, namelen, name, info_len, info_len, buf, cCRLF);
+#endif /* MULTIBYTE_ABLE && !NOLOCALE */
+
+	WriteLine(INDEX2LNUM(i), sptr);
+
+#ifdef USE_CURSES
+	free(sptr);
+#endif /* USE_CURSES */
+}
+
+
+/*
+ * Build attachment tree. Code adopted
+ * from thread.c:make_prefix().
+ */
+static char *
+build_tree(
+	int depth,
+	int maxlen,
+	int i)
+{
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	char *result;
+	wchar_t *tree;
+#else
+	char *tree;
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	int prefix_ptr, tmpdepth;
+	int depth_level = 0;
+	t_bool found = FALSE;
+	t_partl *lptr, *lptr2;
+
+	lptr2 = find_part(i);
+	prefix_ptr = depth * 2 - 1;
+	if (prefix_ptr > maxlen - 1 - !(maxlen % 2)) {
+		int odd = ((maxlen % 2) ? 0 : 1);
+
+		prefix_ptr -= maxlen - ++depth_level - 2 - odd;
+		while (prefix_ptr > maxlen - 2 - odd) {
+			if (depth_level < maxlen / 5)
+				depth_level++;
+
+			prefix_ptr -= maxlen - depth_level - 2 - odd;
+			odd = (odd ? 0 : 1);
+		}
+	}
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	tree = my_malloc(sizeof(wchar_t) * prefix_ptr + 3 * sizeof(wchar_t));
+	tree[prefix_ptr + 2] = (wchar_t) '\0';
+#else
+	tree = my_malloc(prefix_ptr + 3);
+	tree[prefix_ptr + 2] = '\0';
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	tree[prefix_ptr + 1] = TREE_ARROW;
+	tree[prefix_ptr] = TREE_HORIZ;
+	for (lptr = lptr2->next; lptr != NULL; lptr = lptr->next) {
+		if (lptr->part->depth == depth) {
+			found = TRUE;
+			break;
+		}
+		if (lptr->part->depth < depth)
+			break;
+	}
+	tree[--prefix_ptr] = found ? TREE_VERT_RIGHT : TREE_UP_RIGHT;
+	found = FALSE;
+	for (tmpdepth = depth - 1; prefix_ptr > 1; --tmpdepth) {
+		for (lptr = lptr2->next; lptr != NULL; lptr = lptr->next) {
+			if (lptr->part->depth == tmpdepth) {
+				found = TRUE;
+				break;
+			}
+			if (lptr->part->depth < tmpdepth)
+				break;
+		}
+		tree[--prefix_ptr] = TREE_BLANK;
+		tree[--prefix_ptr] = found ? TREE_VERT : TREE_BLANK;
+		found = FALSE;
+	}
+	while (depth_level)
+		tree[--depth_level] = TREE_ARROW_WRAP;
+
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	result = wchar_t2char(tree);
+	free(tree);
+	return result;
+#else
+	return tree;
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+}
+
+
+/*
+ * Find nth attachment in part_list.
+ * Return pointer to that part.
+ */
+static t_partl *
+find_part(
+	int n)
+{
+	t_partl *lptr;
+
+	lptr = part_list;
+	if (attmenu.max >= 1)
+		lptr = lptr->next;
+
+	while (n-- > 0 && lptr->next)
+		lptr = lptr->next;
+
+	return lptr;
+}
+
+
+t_part *
+get_part(
+	int n)
+{
+	t_partl *lptr;
+
+	lptr = find_part(n);
+	return lptr->part;
+}
+
+
+static void
+tag_pattern(
+	void)
+{
+	char buf[BUFSIZ];
+	char pat[128];
+	char *prompt;
+	const char *name;
+	const char *charset;
+	struct regex_cache cache = { NULL, NULL };
+	t_part *part;
+	t_partl *lptr;
+
+#if 0
+	if (num_of_tagged_parts)
+		untag_all_parts();
+#endif /* 0 */
+
+	prompt = fmt_string(_(txt_select_pattern), tinrc.default_select_pattern);
+	if (!(prompt_string_default(prompt, tinrc.default_select_pattern, _(txt_info_no_previous_expression), HIST_SELECT_PATTERN))) {
+		free(prompt);
+		return;
+	}
+	free(prompt);
+
+	if (STRCMPEQ(tinrc.default_select_pattern, "*")) {	/* all */
+		if (tinrc.wildcard)
+			STRCPY(pat, ".*");
+		else
+			STRCPY(pat, tinrc.default_select_pattern);
+	} else
+		snprintf(pat, sizeof(pat), REGEX_FMT, tinrc.default_select_pattern);
+
+	if (tinrc.wildcard && !(compile_regex(pat, &cache, PCRE_CASELESS)))
+		return;
+
+	lptr = find_part(0);
+
+	for (; lptr != NULL; lptr = lptr->next) {
+		part = lptr->part;
+		if (!(name = get_filename(part->params))) {
+			if (!(name = part->description))
+				name = _(txt_attachment_no_name);
+		}
+		charset = get_param(part->params, "charset");
+
+		snprintf(buf, sizeof(buf), "%s %s/%s %s, %s", name, content_types[part->type], part->subtype, content_encodings[part->encoding], charset ? charset : "");
+
+		if (!match_regex(buf, pat, &cache, TRUE)) {
+			continue;
+		}
+		if (!lptr->tagged)
+			lptr->tagged = ++num_of_tagged_parts;
+	}
+
+	if (tinrc.wildcard) {
+		FreeIfNeeded(cache.re);
+		FreeIfNeeded(cache.extra);
+	}
+	return;
+}
+
+static int
+get_tagged(
+	int n)
+{
+	t_partl *lptr;
+
+	lptr = find_part(n);
+	return lptr->tagged;
+}
+
+
+static t_bool
+tag_part(
+	int n)
+{
+	t_partl *lptr;
+
+	lptr = find_part(n);
+	if (lptr->tagged) {
+		untag_part(n);
+		return FALSE;
+	} else {
+		lptr->tagged = ++num_of_tagged_parts;
+		return TRUE;
+	}
+}
+
+
+static void
+untag_part(
+	int n)
+{
+	int i;
+	t_partl *curr_part, *lptr;
+
+	lptr = find_part(0);
+	curr_part = find_part(n);
+	i = attmenu.max;
+
+	while (i-- > 0 && lptr) {
+		if (lptr->tagged > curr_part->tagged)
+			--lptr->tagged;
+		lptr = lptr->next;
+	}
+
+	curr_part->tagged = 0;
+	--num_of_tagged_parts;
+}
+
+
+static void
+untag_all_parts(
+	void)
+{
+	t_partl *lptr = part_list;
+
+	while (lptr) {
+		if (lptr->tagged) {
+			lptr->tagged = 0;
+		}
+		lptr = lptr->next;
+	}
+	num_of_tagged_parts = 0;
+}
+
+
+/*
+ * Build a linked list which holds pointers to the parts we want deal with.
+ */
+static int
+build_part_list(
+	t_openartinfo *art)
+{
+	int i = 0;
+	t_part *ptr, *uueptr;
+	t_partl *lptr;
+
+	part_list = my_malloc(sizeof(t_partl));
+	lptr = part_list;
+	lptr->part = art->hdr.ext;
+	lptr->next = NULL;
+	lptr->tagged = 0;
+	for (ptr = art->hdr.ext; ptr != NULL; ptr = ptr->next) {
+		if ((uueptr = ptr->uue) != NULL) {
+			lptr->next = my_malloc(sizeof(t_partl));
+			lptr->next->part = ptr;
+			lptr->next->next = NULL;
+			lptr->next->tagged = 0;
+			lptr = lptr->next;
+			++i;
+			for (; uueptr != NULL; uueptr = uueptr->next) {
+				lptr->next = my_malloc(sizeof(t_partl));
+				lptr->next->part = uueptr;
+				lptr->next->next = NULL;
+				lptr->next->tagged = 0;
+				lptr = lptr->next;
+				++i;
+			}
+		}
+
+		if (ptr->uue)
+			continue;
+
+		lptr->next = my_malloc(sizeof(t_partl));
+		lptr->next->part = ptr;
+		lptr->next->next = NULL;
+		lptr->next->tagged = 0;
+		lptr = lptr->next;
+		++i;
+	}
+	return i;
+}
+
+
+static void
+free_part_list(
+	t_partl *list)
+{
+	while (list->next != NULL) {
+		free_part_list(list->next);
+		list->next = NULL;
+	}
+	free(list);
+}
+
+
+static void
+process_parts(
+	t_part *part,
+	FILE *rawfp,
+	enum action what)
+{
+	FILE *fp;
+	char *savepath, *tmppath;
+	int i, saved_parts = 0;
+	t_partl *lptr;
+
+	switch (what) {
+		case SAVE_TAGGED:
+			for (i = 1; i <= num_of_tagged_parts; i++) {
+				lptr = part_list;
+
+				while (lptr) {
+					if (lptr->tagged == i) {
+						if ((savepath = generate_savepath(lptr->part)) == NULL)
+							return;
+
+						if ((fp = open_save_filename(savepath, FALSE)) == NULL) {
+							error_message(2, _(txt_cannot_open_for_saving), savepath);
+							free(savepath);
+							return;
+						}
+						process_part(lptr->part, rawfp, fp, NULL, SAVE);
+						free(savepath);
+						++saved_parts;
+					}
+					lptr = lptr->next;
+				}
+			}
+			break;
+
+		default:
+			if ((tmppath = generate_savepath(part)) == NULL)
+				return;
+
+			if (what == SAVE)
+				savepath = tmppath;
+			else {
+				savepath = get_tmpfilename(tmppath);
+				free(tmppath);
+			}
+			if ((fp = open_save_filename(savepath, FALSE)) == NULL) {
+				error_message(2, _(txt_cannot_open_for_saving), savepath);
+				free(savepath);
+				return;
+			}
+			process_part(part, rawfp, fp, savepath, what);
+			break;
+	}
+	switch (what) {
+		case SAVE_TAGGED:
+			wait_message(2, _(txt_attachments_saved), saved_parts, num_of_tagged_parts);
+			break;
+
+		case SAVE:
+			wait_message(2, _(txt_attachment_saved), savepath);
+			free(savepath);
+			break;
+
+		default:
+			unlink(savepath);
+			free(savepath);
+			break;
+	}
+	cursoroff();
+}
+
+
+/*
+ * VIEW/PIPE/SAVE the given part.
+ *
+ * PIPE_RAW uses the raw part, otherwise the part is decoded first.
+ */
+static void
+process_part(
+	t_part *part,
+	FILE *rawfp,
+	FILE *outfile,
+	const char *savepath,
+	enum action what)
+{
+	char buf[2048], buf2[2048];
+	int i;
+
+	if (what != PIPE_RAW && part->encoding == ENCODING_BASE64)
+		mmdecode(NULL, 'b', 0, NULL);				/* flush */
+
+	fseek(rawfp, part->offset, SEEK_SET);
+
+	for (i = 0; i < part->line_count; i++) {
+		if ((fgets(buf, sizeof(buf), rawfp)) == NULL)
+			break;
+
+		/* This should catch cases where people illegally append text etc */
+		if (buf[0] == '\0')
+			break;
+
+		if (what != PIPE_RAW) {
+			switch (part->encoding) {
+				int count;
+
+				case ENCODING_QP:
+				case ENCODING_BASE64:
+					count = mmdecode(buf, part->encoding == ENCODING_QP ? 'q' : 'b', '\0', buf2);
+					fwrite(buf2, count, 1, outfile);
+					break;
+
+				case ENCODING_UUE:
+					/* TODO: if postproc, don't decode these since the traditional uudecoder will get them */
+					/*
+					 * x-uuencode attachments have all the header info etc which we must ignore
+					 */
+					if (strncmp(buf, "begin ", 6) != 0 && strncmp(buf, "end\n", 4) != 0 && buf[0] != '\n')
+						uudecode_line(buf, outfile);
+					break;
+
+				default:
+					fputs(buf, outfile);
+			}
+		} else
+			fputs(buf, outfile);
+	}
+
+	fclose(outfile);
+
+	switch (what) {
+		case VIEW:
+			start_viewer(part, savepath);
+			break;
+
+#ifndef DONT_HAVE_PIPING
+		case PIPE:
+		case PIPE_RAW:
+			pipe_part(savepath);
+			break;
+#endif /* !DONT_HAVE_PIPING */
+
+		default:
+			break;
+	}
+}
+
+
+#ifndef DONT_HAVE_PIPING
+static void
+pipe_part(
+	const char *savepath)
+{
+	FILE *fp, *pipe_fp = (FILE *) 0;
+	char *prompt;
+
+	prompt = fmt_string(_(txt_pipe_to_command), cCOLS - (strlen(_(txt_pipe_to_command)) + 30), tinrc.default_pipe_command);
+	if (!(prompt_string_default(prompt, tinrc.default_pipe_command, _(txt_no_command), HIST_PIPE_COMMAND))) {
+		free(prompt);
+		return;
+	}
+	free(prompt);
+	if ((fp = fopen(savepath, "r")) == NULL)
+		/* TODO: error message? */
+		return;
+	EndWin();
+	Raw(FALSE);
+	fflush(stdout);
+	set_signal_catcher(FALSE);
+	if ((pipe_fp = popen(tinrc.default_pipe_command, "w")) == NULL) {
+		perror_message(_(txt_command_failed), tinrc.default_pipe_command);
+		set_signal_catcher(TRUE);
+		Raw(TRUE);
+		InitWin();
+		fclose(fp);
+		return;
+	}
+	copy_fp(fp, pipe_fp);
+	if (errno == EPIPE)
+		perror_message(_(txt_command_failed), tinrc.default_pipe_command);
+	fflush(pipe_fp);
+	(void) pclose(pipe_fp);
+	set_signal_catcher(TRUE);
+	fclose(fp);
+#	ifdef USE_CURSES
+	Raw(TRUE);
+	InitWin();
+#	endif /* USE_CURSES */
+	prompt_continue();
+#	ifndef USE_CURSES
+	Raw(TRUE);
+	InitWin();
+#	endif /* !USE_CURSES */
+}
+#endif /* !DONT_HAVE_PIPING */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/screen.c tin-2.0.0/src/screen.c
--- tin-1.8.3/src/screen.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/screen.c	2011-04-17 16:04:31.551240219 +0200
@@ -3,10 +3,10 @@
  *  Module    : screen.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-02-11
+ *  Updated   : 2011-01-29
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -61,7 +61,7 @@ stow_cursor(
 
 /*
  * helper for the varius *_message() functions
- * returns a pointer to an allocated buffer with the formated message
+ * returns a pointer to an allocated buffer with the formatted message
  * must be freed if not needed anymore
  */
 char *
@@ -158,6 +158,7 @@ wait_message(
  */
 void
 error_message(
+	unsigned int sdelay,
 	const char *fmt,
 	...)
 {
@@ -179,7 +180,7 @@ error_message(
 		fflush(stderr);
 	} else {
 		stow_cursor();
-		(void) sleep(2);
+		(void) sleep(sdelay);
 		clear_message();
 	}
 
@@ -206,7 +207,7 @@ perror_message(
 	clear_message();
 
 	if ((buf = fmt_message(fmt, ap)) != NULL) {
-		error_message("%s: Error: %s", buf, strerror(err));
+		error_message(2, "%s: Error: %s", buf, strerror(err));
 		free(buf);
 	}
 
@@ -239,19 +240,8 @@ center_line(
 {
 	int pos;
 	int len;
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	int width;
-	wchar_t *wbuffer;
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
-	len = strlen(str);
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	if ((wbuffer = char2wchar_t(str)) != NULL) {
-		if ((width = wcswidth(wbuffer, wcslen(wbuffer) + 1)) > 0)
-			len = width;
-		free(wbuffer);
-	}
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	len = strwidth(str);
 
 	if (!cmd_line) {
 		if (cCOLS >= len)
@@ -290,9 +280,15 @@ draw_arrow_mark(
 {
 	MoveCursor(line, 0);
 
-	if (tinrc.draw_arrow)
-		my_fputs("->", stdout);
-	else {
+	if (tinrc.draw_arrow) {
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+		if (tinrc.utf8_graphics) {
+			my_fputwc(CURSOR_HORIZ, stdout);
+			my_fputwc(CURSOR_ARROW, stdout);
+		} else
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+			my_fputs("->", stdout);
+	} else {
 #ifdef USE_CURSES
 		char buffer[BUFSIZ];
 		char *s = screen_contents(line, 0, buffer);
@@ -355,8 +351,8 @@ show_title(
 {
 	int col;
 
-	col = (cCOLS - (int) strlen(_(txt_type_h_for_help))) + 1;
-	if (col) {
+	col = cCOLS - strwidth(_(txt_type_h_for_help));
+	if (col > 0) {
 		MoveCursor(0, col);
 #ifdef HAVE_COLOR
 		fcol(tinrc.col_title);
@@ -444,7 +440,7 @@ show_progress(
 	long count_diff;
 #endif /* HAVE_GETTIMEOFDAY */
 
-	if (batch_mode || count <= 0 || total == 0)
+	if (batch_mode || count <= 0 || total <= 0)
 		return;
 
 	/* If this is a new progress meter, start recalculating */
@@ -492,7 +488,7 @@ show_progress(
 		 * From the 20th sample on use only the last 20 samples to calculate
 		 * the running averave. To make things easier we don't want to store
 		 * and keep track of all of them, so we assume that the first sample
-		 * was close to the current average and substract it from sum. Then,
+		 * was close to the current average and subtract it from sum. Then,
 		 * the new sample is added to the sum and the sum is divided by 20 to
 		 * get the new average.
 		 */
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/search.c tin-2.0.0/src/search.c
--- tin-1.8.3/src/search.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/search.c	2011-04-17 16:04:31.579244482 +0200
@@ -3,10 +3,10 @@
  *  Module    : search.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2010-10-01
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -94,7 +94,7 @@ get_search_pattern(
 		last_forward = *forward;
 		my_strncpy(last_pattern, def, LEN);
 
-		/* HIST_BODY_SEARCH doesn't exist, hence i_key_search_last is set directly in search_body() */
+		/* HIST_BODY_SEARCH doesn't exist, hence last_search is set directly in search_body() */
 		if (which_hist == HIST_AUTHOR_SEARCH)
 			last_search = *forward ? GLOBAL_SEARCH_AUTHOR_FORWARD : GLOBAL_SEARCH_AUTHOR_BACKWARD;
 		else
@@ -157,7 +157,7 @@ search_config(
 			if (n == last && forward)
 				n = 0;
 			else
-				n += forward ? 1 : -1;
+				n += (forward ? 1 : -1);
 		}
 		/* search only visible options */
 		if (option_is_visible(n)) {
@@ -187,6 +187,80 @@ search_config(
 
 
 /*
+ * called by save.c (search for attachment) and page.c (search for URL)
+ */
+int
+generic_search(
+	t_bool forward,
+	t_bool repeat,
+	int current,
+	int last,
+	int level)
+{
+	char *pattern;
+	char buf[BUFSIZ];
+	const char *name, *charset;
+	int n = current;
+	int result = current;
+	t_bool found = FALSE;
+	t_part *part;
+	t_url *urlptr;
+
+	if (!(pattern = get_search_pattern(&forward, repeat, _(txt_search_forwards), _(txt_search_backwards), tinrc.default_search_config, HIST_CONFIG_SEARCH)))
+		return result;
+
+	if (tinrc.wildcard && !(compile_regex(pattern, &search_regex, PCRE_CASELESS)))
+		return result;
+
+	do {
+		if (n == 0 && !forward)
+			n = last;
+		else {
+			if (n == last && forward)
+				n = 0;
+			else
+				n += (forward ? 1 : -1);
+		}
+		switch (level) {
+			case ATTACHMENT_LEVEL:
+				part = get_part(n);
+				if (!(name = get_filename(part->params))) {
+					if (!(name = part->description))
+						name = _(txt_attachment_no_name);
+				}
+				charset = get_param(part->params, "charset");
+				snprintf(buf, sizeof(buf), "%s %s/%s %s, %s", name, content_types[part->type], part->subtype, content_encodings[part->encoding], charset ? charset : "");
+				break;
+
+			case URL_LEVEL:
+				urlptr = find_url(n);
+				snprintf(buf, sizeof(buf), "%s", urlptr->url);
+				break;
+
+			default:
+				buf[0] = '\0';
+				break;
+		}
+		if (match_regex(buf, pattern, &search_regex, TRUE)) {
+			result = n;
+			found = TRUE;
+			break;
+		}
+	} while (n != current);
+
+	clear_message();
+	if (tinrc.wildcard) {
+		FreeAndNull(search_regex.re);
+		FreeAndNull(search_regex.extra);
+	}
+	if (!found)
+		info_message(_(txt_no_match));
+
+	return result;
+}
+
+
+/*
  * Search active[] looking for a groupname
  * Called by select.c
  * Return index into active of matching groupname or -1
@@ -303,7 +377,7 @@ body_search(
 				art_close(&pgart);		/* Switch the pager over to matched art */
 				pgart = artinfo;
 #ifdef DEBUG
-				if (debug == 2)
+				if (debug & DEBUG_MISC)
 					fprintf(stderr, "art_switch(%p = %p)\n", (void *) &pgart, (void *) &artinfo);
 #endif /* DEBUG */
 				free(line);
@@ -435,7 +509,7 @@ search_group(
 		}
 
 		/* Only search displayed articles */
-		if (curr_group->attribute->show_only_unread && arts[i].status != ART_UNREAD)
+		if (curr_group->attribute->show_only_unread_arts && arts[i].status != ART_UNREAD)
 			continue;
 
 		ret = search_func(i, searchbuff);
@@ -519,7 +593,7 @@ search_article(
 {
 	char *pattern, *ptr, *tmp;
 	int i = start_line;
-	int tmp_srch_offsets[2];
+	int tmp_srch_offsets[2] = {0, 0};
 	t_bool wrap = FALSE;
 	t_bool match = FALSE;
 
@@ -648,7 +722,7 @@ search_body(
 	/*
 	 * Count up the articles to be processed for the progress meter
 	 */
-	if (group->attribute->show_only_unread) {
+	if (group->attribute->show_only_unread_arts) {
 		for (i = 0; i < grpmenu.max; i++)
 			total_cnt += new_responses(i);
 	} else {
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/select.c tin-2.0.0/src/select.c
--- tin-1.8.3/src/select.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/select.c	2011-04-17 16:04:36.071928173 +0200
@@ -3,10 +3,10 @@
  *  Module    : select.c
  *  Author    : I. Lea & R. Skrenta
  *  Created   : 1991-04-01
- *  Updated   : 2005-07-02
+ *  Updated   : 2011-03-25
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>, Rich Skrenta <skrenta@pbm.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -205,7 +205,7 @@ selection_page(
 			case GLOBAL_SEARCH_SUBJECT_BACKWARD:
 			case GLOBAL_SEARCH_REPEAT:
 				if (func == GLOBAL_SEARCH_REPEAT && last_search != GLOBAL_SEARCH_SUBJECT_FORWARD && last_search != GLOBAL_SEARCH_SUBJECT_BACKWARD)
-					info_message(_(txt_bad_command), printascii(key, key_to_func(GLOBAL_HELP, select_keys)));
+					info_message(_(txt_no_prev_search));
 				else {
 					if ((i = search_active((func == GLOBAL_SEARCH_SUBJECT_FORWARD), (func == GLOBAL_SEARCH_REPEAT))) != -1) {
 						move_to_item(i);
@@ -251,9 +251,9 @@ selection_page(
 				break;
 
 			case GLOBAL_EDIT_FILTER:
-				if (!invoke_editor(filter_file, FILTER_FILE_OFFSET))
-					break;
-				(void) read_filter_file(filter_file);
+				if (invoke_editor(filter_file, filter_file_offset, NULL))
+					(void) read_filter_file(filter_file);
+				show_selection_page();
 				break;
 
 			case SELECT_TOGGLE_DESCRIPTIONS:	/* toggle newsgroup descriptions */
@@ -342,8 +342,7 @@ selection_page(
 				break;
 
 			case GLOBAL_OPTION_MENU:
-				(void) change_config_file(NULL);
-				read_attributes_files();
+				config_page(CURR_GROUP.name);
 				show_selection_page();
 				break;
 
@@ -382,6 +381,8 @@ selection_page(
 				show_selection_page();
 				if (tinrc.show_only_unread_groups)
 					info_message(_(txt_show_unread));
+				else
+					clear_message();
 				break;
 
 			case GLOBAL_BUGREPORT:
@@ -455,11 +456,15 @@ selection_page(
 
 			case GLOBAL_POST:			/* post a basenote */
 				if (!selmenu.max) {
+					if (!can_post) {
+						info_message(_(txt_cannot_post));
+						break;
+					}
 					snprintf(buf, sizeof(buf), _(txt_post_newsgroups), tinrc.default_post_newsgroups);
 					if (!prompt_string_default(buf, tinrc.default_post_newsgroups, _(txt_no_newsgroups), HIST_POST_NEWSGROUPS))
 						break;
-					if (group_find(tinrc.default_post_newsgroups) == NULL) {
-						error_message(_(txt_not_in_active_file), tinrc.default_post_newsgroups);
+					if (group_find(tinrc.default_post_newsgroups, FALSE) == NULL) {
+						error_message(2, _(txt_not_in_active_file), tinrc.default_post_newsgroups);
 						break;
 					} else {
 						strcpy(buf, tinrc.default_post_newsgroups);
@@ -469,7 +474,7 @@ selection_page(
 						 * CHARSET_CONVERSION conversion case in new_part()
 						 * which relies currently relies on CURR_GROUP
 						 */
-						selmenu.curr = my_group_add(buf);
+						selmenu.curr = my_group_add(buf, FALSE);
 						/*
 						 * and the next hack to avoid a grabbled selection
 						 * screen after the posting
@@ -564,7 +569,7 @@ show_selection_page(
 	 */
 	if (yanked_out) {
 		for (i = 0; i < selmenu.max; i++) {
-			if ((len = strlen(active[my_group[i]].name)) > groupname_len)
+			if ((len = strwidth(active[my_group[i]].name)) > groupname_len)
 				groupname_len = len;
 			if (show_description && groupname_len > tinrc.groupname_max_length) {
 				/* no need to search further, we have reached max length */
@@ -574,7 +579,7 @@ show_selection_page(
 		}
 	} else {
 		for_each_group(i) {
-			if ((len = strlen(active[i].name)) > groupname_len)
+			if ((len = strwidth(active[i].name)) > groupname_len)
 				groupname_len = len;
 			if (show_description && groupname_len > tinrc.groupname_max_length) {
 				/* no need to search further, we have reached max length */
@@ -606,23 +611,41 @@ static void
 build_gline(
 	int i)
 {
-	char tmp[10];
-	char active_name[255];
-	char group_descript[255];
 	char subs;
+	char tmp[10];
+	int n, blank_len;
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	char *name_buf = NULL;
+	char *desc_buf = NULL;
+	int name_len = groupname_len;
+	wchar_t *active_name = NULL;
+	wchar_t *active_name2 = NULL;
+	wchar_t *active_desc = NULL;
+	wchar_t *active_desc2 = NULL;
+#else
+	char *active_name;
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 #ifdef USE_CURSES
 	char sptr[BUFSIZ];
 #else
 	char *sptr = screen[INDEX2SNUM(i)].col;
 #endif /* USE_CURSES */
-	int n, blank_len;
 
-	blank_len = (MIN(cCOLS, (int) sizeof(group_descript)) - (groupname_len + SELECT_MISC_COLS)) + (show_description ? 2 : 4);
+#define DESCRIPTION_LENGTH 255
+
+	blank_len = (MIN(cCOLS, DESCRIPTION_LENGTH) - (groupname_len + SELECT_MISC_COLS)) + (show_description ? 2 : 4);
 
 	if (active[my_group[i]].inrange)
 		strcpy(tmp, "    #");
 	else if (active[my_group[i]].newsrc.num_unread) {
-		strcpy(tmp, tin_ltoa(active[my_group[i]].newsrc.num_unread, 5));
+		int getart_limit;
+		long num_unread;
+
+		getart_limit = cmdline.args & CMDLINE_GETART_LIMIT ? cmdline.getart_limit : tinrc.getart_limit;
+		num_unread = active[my_group[i]].newsrc.num_unread;
+		if (getart_limit > 0 && getart_limit < num_unread)
+			num_unread = getart_limit;
+		strcpy(tmp, tin_ltoa(num_unread, 5));
 	} else
 		strcpy(tmp, "     ");
 
@@ -638,33 +661,94 @@ build_gline(
 	 */
 	if (active[n].bogus)					/* Group is not in active list */
 		subs = 'D';
-	else if (active[n].subscribed)			/* Important that this preceeds Newgroup */
+	else if (active[n].subscribed)			/* Important that this precedes Newgroup */
 		subs = group_flag(active[n].moderated);
 	else
 		subs = ((active[n].newgroup) ? 'N' : 'u'); /* New (but unsubscribed) group or unsubscribed group */
 
-	strncpy(active_name, active[n].name, groupname_len);
-	active_name[groupname_len] = '\0';
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	if ((active_name = char2wchar_t(active[n].name)) == NULL) /* If char2wchar_t() fails try again after replacing unprintable characters */
+		active_name = char2wchar_t(convert_to_printable(active[n].name, FALSE));
+
+	if (show_description && active[n].description)
+		active_desc = char2wchar_t(active[n].description);
+
+	if (active_name && tinrc.abbreviate_groupname) {
+		if (show_description && !active_desc)
+			active_name2 = abbr_wcsgroupname(active_name, (size_t) (groupname_len + blank_len));
+		else
+			active_name2 = abbr_wcsgroupname(active_name, (size_t) groupname_len);
+
+		free(active_name);
+	} else
+		active_name2 = active_name;
+
+	if (active_name2 && (active_name = wcspart(active_name2, groupname_len, TRUE)) != NULL) {
+		free(active_name2);
+		if ((name_buf = wchar_t2char(active_name)) != NULL) {
+			free(active_name);
+			name_len = (int) strlen(name_buf);
+		}
+	}
+
+	if (show_description) {
+		if (active_desc) {
+			if ((active_desc2 = wcspart(active_desc, blank_len, TRUE)) != NULL) {
+				if ((desc_buf = wchar_t2char(active_desc2)) != NULL)
+					blank_len = strlen(desc_buf);
+				free(active_desc);
+				free(active_desc2);
+			}
+		}
+		if (desc_buf) {
+			sprintf(sptr, "  %c %s %s  %-*.*s  %-*.*s%s",
+				subs, tin_ltoa(i + 1, 4), tmp,
+				name_len, name_len, BlankIfNull(name_buf),
+				blank_len, blank_len, desc_buf, cCRLF);
+			free(desc_buf);
+		} else
+			sprintf(sptr, "  %c %s %s  %-*.*s  %s",
+				subs, tin_ltoa(i + 1, 4), tmp,
+				(name_len + blank_len),
+				(name_len + blank_len), BlankIfNull(name_buf), cCRLF);
+	} else {
+		if (tinrc.draw_arrow)
+			sprintf(sptr, "  %c %s %s  %-*.*s%s", subs, tin_ltoa(i + 1, 4), tmp, name_len, name_len, BlankIfNull(name_buf), cCRLF);
+		else
+			sprintf(sptr, "  %c %s %s  %-*.*s%*s%s", subs, tin_ltoa(i + 1, 4), tmp, name_len, name_len, BlankIfNull(name_buf), blank_len, " ", cCRLF);
+	}
+
+	FreeIfNeeded(name_buf);
+#else
+	if (tinrc.abbreviate_groupname) {
+		if (show_description && !active[n].description)
+			active_name = abbr_groupname(active[n].name, (size_t) (groupname_len + blank_len));
+		else
+			active_name = abbr_groupname(active[n].name, (size_t) groupname_len);
+	} else
+		active_name = my_strdup(active[n].name);
 
 	if (show_description) {
-		if (active[n].description) {
-			strncpy(group_descript, active[n].description, blank_len);
-			group_descript[blank_len] = '\0';
+		if (active[n].description)
 			sprintf(sptr, "  %c %s %s  %-*.*s  %-*.*s%s",
 				 subs, tin_ltoa(i + 1, 4), tmp,
 				 groupname_len, groupname_len, active_name,
-				 blank_len, blank_len, group_descript, cCRLF);
-		} else
+				 blank_len, blank_len, active[n].description, cCRLF);
+		else
 			sprintf(sptr, "  %c %s %s  %-*.*s  %s",
 				 subs, tin_ltoa(i + 1, 4), tmp,
 				 (groupname_len + blank_len),
-				 (groupname_len + blank_len), active[n].name, cCRLF);
+				 (groupname_len + blank_len), active_name, cCRLF);
 	} else {
 		if (tinrc.draw_arrow)
 			sprintf(sptr, "  %c %s %s  %-*.*s%s", subs, tin_ltoa(i + 1, 4), tmp, groupname_len, groupname_len, active_name, cCRLF);
 		else
 			sprintf(sptr, "  %c %s %s  %-*.*s%*s%s", subs, tin_ltoa(i + 1, 4), tmp, groupname_len, groupname_len, active_name, blank_len, " ", cCRLF);
 	}
+
+	free(active_name);
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+
 	if (tinrc.strip_blanks)
 		strcat(strip_line(sptr), cCRLF);
 
@@ -743,8 +827,8 @@ active_comp(
 	t_comptype p1,
 	t_comptype p2)
 {
-	const struct t_group *s1 = (const struct t_group *)p1;
-	const struct t_group *s2 = (const struct t_group *)p2;
+	const struct t_group *s1 = (const struct t_group *) p1;
+	const struct t_group *s2 = (const struct t_group *) p2;
 
 	return strcasecmp(s1->name, s2->name);
 }
@@ -760,7 +844,7 @@ save_restore_curr_group(
 	t_bool saving)
 {
 	static char *oldgroup;
-	static int oldmax;
+	static int oldmax = 0;
 	int ret;
 
 	/*
@@ -830,7 +914,7 @@ choose_new_group(
 
 	clear_message();
 
-	if ((idx = my_group_add(tinrc.default_goto_group)) == -1)
+	if ((idx = my_group_add(tinrc.default_goto_group, TRUE)) == -1)
 		info_message(_(txt_not_in_active_file), tinrc.default_goto_group);
 
 	return idx;
@@ -867,11 +951,12 @@ skip_newgroups(
 int
 add_my_group(
 	const char *group,
-	t_bool add)
+	t_bool add,
+	t_bool ignore_case)
 {
 	int i, j;
 
-	if ((i = find_group_index(group)) < 0)
+	if ((i = find_group_index(group, ignore_case)) < 0)
 		return -1;
 
 	for (j = 0; j < selmenu.max; j++) {
@@ -906,7 +991,7 @@ reposition_group(
 		return default_num;
 
 	if (strlen(pos))
-		pos_num = ((pos[0] == '$') ? selmenu.max: atoi(pos));
+		pos_num = ((pos[0] == '$') ? selmenu.max : atoi(pos));
 	else {
 		if (tinrc.default_move_group)
 			pos_num = tinrc.default_move_group;
@@ -925,7 +1010,7 @@ reposition_group(
 	 * Can't move into newgroups, they aren't in .newsrc
 	 */
 	if (pos_num <= newgroups) {
-		error_message(_(txt_skipping_newgroups));
+		error_message(2, _(txt_skipping_newgroups));
 		return default_num;
 	}
 
@@ -1122,6 +1207,7 @@ toggle_my_groups(
 		}
 	}
 #else
+	/* preserv group ordering based on newsrc */
 	if ((fp = fopen(newsrc, "r")) == NULL)
 		return;
 
@@ -1129,14 +1215,14 @@ toggle_my_groups(
 		if ((ptr = strchr(buf, SUBSCRIBED)) != NULL) {
 			*ptr = '\0';
 
-			if ((i = find_group_index(buf)) < 0)
+			if ((i = find_group_index(buf, FALSE)) < 0)
 				continue;
 
 			if (tinrc.show_only_unread_groups) {
 				if (active[i].newsrc.num_unread || (active[i].bogus && tinrc.strip_bogus == BOGUS_SHOW))
-					my_group_add(buf);
+					my_group_add(buf, FALSE);
 			} else
-				my_group_add(buf);
+				my_group_add(buf, FALSE);
 		}
 	}
 	fclose(fp);
@@ -1146,8 +1232,8 @@ toggle_my_groups(
 
 
 /*
- * Subscribe or unsubscribe from a list of groups. List can be full list as supported
- * by match_group_list()
+ * Subscribe or unsubscribe from a list of groups. List can be full list as
+ * supported by match_group_list()
  */
 static void
 subscribe_pattern(
@@ -1169,37 +1255,17 @@ subscribe_pattern(
 
 	wait_message(0, message);
 
-	/*
-	 * TODO: why do we do a pass over my_group[] before another one
-	 *       over active[]? AFAICS the first loop can go away.
-	 */
-	for (i = 0; i < selmenu.max; i++) {
-		if (match_group_list(active[my_group[i]].name, buf)) {
-			if (active[my_group[i]].subscribed != (state != FALSE)) {
+	for_each_group(i) {
+		if (match_group_list(active[i].name, buf)) {
+			if (active[i].subscribed != (state != FALSE)) {
 				spin_cursor();
-				subscribe(&active[my_group[i]], SUB_CHAR(state), TRUE);
-				subscribe_num++;
-			}
-		}
-	}
-
-	if (num_active > selmenu.max) {			/* ie, there are groups yanked out */
-		for_each_group(i) {
-			if (match_group_list(active[i].name, buf)) {
-				if (active[i].subscribed != (state != FALSE)) {
-					spin_cursor();
-					/* If found and group is not subscribed add it to end of my_group[]. */
-					subscribe(&active[i], SUB_CHAR(state), TRUE);
-					if (state) {
-						my_group_add(active[i].name);
-						/*
-						 * TODO: grp_mark_unread() or something needs to do a
-						 *       group_get_art_info() to get initial count right
-						 */
-						grp_mark_unread(&active[i]);
-					}
-					subscribe_num++;
+				/* If found and group is not subscribed add it to end of my_group[]. */
+				subscribe(&active[i], SUB_CHAR(state), TRUE);
+				if (state) {
+					my_group_add(active[i].name, FALSE);
+					grp_mark_unread(&active[i]);
 				}
+				subscribe_num++;
 			}
 		}
 	}
@@ -1221,6 +1287,7 @@ select_quit(
 	void)
 {
 	write_config_file(local_config_file);
+	ClearScreen();
 	tin_done(EXIT_SUCCESS);	/* Tin END */
 }
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/sigfile.c tin-2.0.0/src/sigfile.c
--- tin-1.8.3/src/sigfile.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/sigfile.c	2011-04-17 16:04:31.607248742 +0200
@@ -3,10 +3,10 @@
  *  Module    : sigfile.c
  *  Author    : M. Gleason & I. Lea
  *  Created   : 1992-10-17
- *  Updated   : 2003-09-19
+ *  Updated   : 2010-11-13
  *  Notes     : Generate random signature for posting/mailing etc.
  *
- * Copyright (c) 1992-2006 Mike Gleason
+ * Copyright (c) 1992-2011 Mike Gleason
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@ msg_write_signature(
 			char *sigcmd;
 			char cmd[PATH_LEN];
 
-			fprintf(fp, "\n%s", tinrc.sigdashes ? SIGDASHES : "\n");
+			fprintf(fp, "\n%s", thisgroup->attribute->sigdashes ? SIGDASHES : "\n");
 			sigcmd = my_malloc(strlen(thisgroup->attribute->sigfile + 1) + strlen(thisgroup->name) + 4);
 			sprintf(sigcmd, "%s \"%s\"", thisgroup->attribute->sigfile + 1, thisgroup->name);
 
@@ -93,9 +93,9 @@ msg_write_signature(
 #endif /* !DONT_HAVE_PIPING */
 		get_cwd(cwd);
 
-		if (!strfpath(thisgroup->attribute->sigfile, path, sizeof(path), thisgroup)) {
-			if (!strfpath(tinrc.sigfile, path, sizeof(path), thisgroup))
-				joinpath(path, homedir, ".Sig");
+		if (!strfpath(thisgroup->attribute->sigfile, path, sizeof(path), thisgroup, FALSE)) {
+			if (!strfpath(tinrc.sigfile, path, sizeof(path), thisgroup, FALSE))
+				joinpath(path, sizeof(path), homedir, ".Sig");
 		}
 
 		/*
@@ -107,23 +107,23 @@ msg_write_signature(
 		 */
 		if ((sigfp = open_random_sig(path)) != NULL) {
 #ifdef DEBUG
-			if (debug == 2)
-				error_message("USING random sig=[%s]", sigfile);
+			if (debug & DEBUG_MISC)
+				error_message(2, "USING random sig=[%s]", sigfile);
 #endif /* DEBUG */
-			fprintf(fp, "\n%s", tinrc.sigdashes ? SIGDASHES : "\n");
-			joinpath(pathfixed, path, ".sigfixed");
+			fprintf(fp, "\n%s", thisgroup->attribute->sigdashes ? SIGDASHES : "\n");
+			joinpath(pathfixed, sizeof(pathfixed), path, ".sigfixed");
 #ifdef DEBUG
-			if (debug == 2)
-				error_message("TRYING fixed sig=[%s]", pathfixed);
+			if (debug & DEBUG_MISC)
+				error_message(2, "TRYING fixed sig=[%s]", pathfixed);
 #endif /* DEBUG */
 			if ((fixfp = fopen(pathfixed, "r")) != NULL) {
 				copy_fp(fixfp, fp);
 				fclose(fixfp);
 			} else {
-				joinpath(pathfixed, homedir, ".sigfixed");
+				joinpath(pathfixed, sizeof(pathfixed), homedir, ".sigfixed");
 #ifdef DEBUG
-				if (debug == 2)
-					error_message("TRYING fixed sig=[%s]", pathfixed);
+				if (debug & DEBUG_MISC)
+					error_message(2, "TRYING fixed sig=[%s]", pathfixed);
 #endif /* DEBUG */
 				if ((fixfp = fopen(pathfixed, "r")) != NULL) {
 					copy_fp(fixfp, fp);
@@ -135,25 +135,25 @@ msg_write_signature(
 			my_chdir(cwd);
 			return;
 		}
-	}
-
-	if ((sigfp = fopen(path, "r")) != NULL) {
-		fprintf(fp, "\n%s", tinrc.sigdashes ? SIGDASHES : "\n");
-		copy_fp(sigfp, fp);
-		fclose(sigfp);
-		return;
-	}
 
-	/*
-	 * Use ~/.signature as a last resort, but only if mailing or
-	 * using internal inews (external inews appends it automagically).
-	 */
-	if ((sigfp = fopen(default_signature, "r")) != NULL) {
-		if (include_dot_signature) {
-			fprintf(fp, "\n%s", tinrc.sigdashes ? SIGDASHES : "\n");
+		if ((sigfp = fopen(path, "r")) != NULL) {
+			fprintf(fp, "\n%s", thisgroup->attribute->sigdashes ? SIGDASHES : "\n");
 			copy_fp(sigfp, fp);
+			fclose(sigfp);
+			return;
+		}
+
+		/*
+		 * Use ~/.signature as a last resort, but only if mailing or
+		 * using internal inews (external inews appends it automagically).
+		 */
+		if ((sigfp = fopen(default_signature, "r")) != NULL) {
+			if (include_dot_signature) {
+				fprintf(fp, "\n%s", thisgroup->attribute->sigdashes ? SIGDASHES : "\n");
+				copy_fp(sigfp, fp);
+			}
+			fclose(sigfp);
 		}
-		fclose(sigfp);
 	}
 }
 
@@ -171,14 +171,14 @@ open_random_sig(
 
 			if (thrashdir(sigdir) || !*sigfile) {
 #ifdef DEBUG
-				if (debug == 2)
-					error_message("NO sigfile=[%s]", sigfile);
+				if (debug & DEBUG_MISC)
+					error_message(2, "NO sigfile=[%s]", sigfile);
 #endif /* DEBUG */
 				return (FILE *) 0;
 			} else {
 #ifdef DEBUG
-				if (debug == 2)
-					error_message("sigfile=[%s]", sigfile);
+				if (debug & DEBUG_MISC)
+					error_message(2, "sigfile=[%s]", sigfile);
 #endif /* DEBUG */
 				return fopen(sigfile, "r");
 			}
@@ -197,7 +197,7 @@ thrashdir(
 	DIR_BUF *dp;
 	char *cwd;
 	int safeguard, recurse;
-	int c = 0, numentries, pick;
+	int c = 0, numentries = 0, pick;
 	struct stat st;
 
 	sigfile[0] = '\0';
@@ -205,8 +205,7 @@ thrashdir(
 	if ((dirp = opendir(CURRENTDIR)) == NULL)
 		return 1;
 
-	numentries = 0;
-	while ((dp = readdir(dirp)) != NULL)
+	while (readdir(dirp) != NULL)
 		numentries++;
 
 	/*
@@ -229,8 +228,8 @@ thrashdir(
 	 */
 	for (safeguard = 0, dp = NULL; safeguard < MAXLOOPS && dp == NULL; safeguard++) {
 #ifdef DEBUG
-		if (debug == 2)
-			error_message("sig loop=[%d] recurse=[%d]", safeguard, recurse);
+		if (debug & DEBUG_MISC)
+			error_message(2, "sig loop=[%d] recurse=[%d]", safeguard, recurse);
 #endif /* DEBUG */
 #ifdef HAVE_REWINDDIR
 		rewinddir(dirp);
@@ -276,8 +275,8 @@ thrashdir(
 					strcat(sigfile, "/");
 					strcat(sigfile, dp->d_name);
 #ifdef DEBUG
-					if (debug == 2)
-						error_message("Found a file=[%s]", sigfile);
+					if (debug & DEBUG_MISC)
+						error_message(2, "Found a file=[%s]", sigfile);
 #endif /* DEBUG */
 				}
 			}
@@ -285,8 +284,8 @@ thrashdir(
 	}
 	free(cwd);
 #ifdef DEBUG
-	if (debug == 2)
-		error_message("return 0: sigfile=[%s]", sigfile);
+	if (debug & DEBUG_MISC)
+		error_message(2, "return 0: sigfile=[%s]", sigfile);
 #endif /* DEBUG */
 	CLOSEDIR(dirp);
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/signal.c tin-2.0.0/src/signal.c
--- tin-1.8.3/src/signal.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/signal.c	2011-04-17 16:04:31.635253005 +0200
@@ -3,10 +3,10 @@
  *  Module    : signal.c
  *  Author    : I.Lea
  *  Created   : 1991-04-01
- *  Updated   : 2004-06-21
+ *  Updated   : 2010-09-16
  *  Notes     : signal handlers for different modes and window resizing
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -48,15 +48,6 @@
 #	include "version.h"
 #endif /* !VERSION_H */
 
-
-#if defined(VMS) && defined(SIGBUS)
-	/*
-	 * SIGBUS works on VMS, but many useful information will be hidden
-	 * if catched by signal handler.
-	 */
-#	undef SIGBUS
-#endif /* VMS && SIGBUS */
-
 /*
  * Needed for resizing under an xterm
  */
@@ -104,6 +95,9 @@ static void _CDECL signal_handler(SIG_AR
 #ifdef SIGTSTP
 	static t_bool do_sigtstp = FALSE;
 #endif /* SIGTSTP */
+#if defined(SIGWINCH) || defined(SIGTSTP)
+	static t_bool redraw_after_suspend;
+#endif /* SIGWINCH || SIGTSTP */
 
 int signal_context = cMain;
 int input_context = cNone;
@@ -123,7 +117,7 @@ static const struct {
 	{ SIGINT,	"SIGINT" },	/* ctrl-C */
 #	endif /* SIGINT */
 #	ifdef SIGQUIT
-	{ SIGQUIT,	"SIGQUIT " },	/* ctrl-\ */
+	{ SIGQUIT,	"SIGQUIT" },	/* ctrl-\ */
 #	endif /* SIGQUIT */
 #	ifdef SIGILL
 	{ SIGILL,	"SIGILL" },	/* illegal instruction */
@@ -140,6 +134,9 @@ static const struct {
 #	ifdef SIGPIPE
 	{ SIGPIPE,	"SIGPIPE" },	/* broken pipe */
 #	endif /* SIGPIPE */
+#	ifdef SIGALRM
+	{ SIGALRM,	"SIGALRM" },	/* real-time timer expired */
+#	endif /* SIGALRM */
 #	ifdef SIGCHLD
 	{ SIGCHLD,	"SIGCHLD" },	/* death of a child process */
 #	endif /* SIGCHLD */
@@ -155,6 +152,9 @@ static const struct {
 #	ifdef SIGUSR1
 	{ SIGUSR1,	"SIGUSR1" },	/* User-defined signal 1 */
 #	endif /* SIGUSR1 */
+#	ifdef SIGUSR2
+	{ SIGUSR2,	"SIGUSR2" },	/* User-defined signal 2 */
+#	endif /* SIGUSR2 */
 #	ifdef SIGTERM
 	{ SIGTERM,	"SIGTERM" },	/* termination */
 #	endif /* SIGTERM */
@@ -274,9 +274,10 @@ handle_resize(
 	switch (signal_context) {
 		case cArt:
 			ClearScreen();
-			show_art_msg(curr_group->name);
+			show_art_msg(CURR_GROUP.name);
 			break;
 
+		case cAttrib:
 		case cConfig:
 			refresh_config_page(SIGNAL_HANDLER);
 			break;
@@ -289,9 +290,12 @@ handle_resize(
 			display_info_page(0);
 			break;
 
+		case cAttachment:
 		case cGroup:
+		case cScope:
 		case cSelect:
 		case cThread:
+		case cURL:
 			ClearScreen();
 			currmenu->redraw();
 			break;
@@ -301,6 +305,27 @@ handle_resize(
 			draw_page(curr_group->name, 0);
 			break;
 
+		case cPost:
+		case cPostCancel:
+			refresh_post_screen(signal_context);
+			break;
+
+		case cPostFup:
+			resize_article(TRUE, &pgart);
+			draw_page(curr_group->name, 0);
+			/*
+			 * Reset signal_context because draw_page()
+			 * sets signal_context to cPage.
+			 */
+			signal_context = cPostFup;
+			refresh_post_screen(signal_context);
+			break;
+
+		case cReconnect:
+			ClearScreen();
+			show_title(tin_progname);
+			break;
+
 		case cMain:
 			break;
 	}
@@ -309,14 +334,24 @@ handle_resize(
 			gl_redraw();
 			break;
 
+		case cPromptCONT:
+			if (redraw_after_suspend)
+				info_message(_(txt_return_key));
+			break;
+
 		case cPromptSLK:
 			prompt_slk_redraw();
 			break;
 
+		case cPromptYN:
+			prompt_yn_redraw();
+			break;
+
 		default:
 			break;
 	}
 	my_fflush(stdout);
+	redraw_after_suspend = FALSE;
 #endif /* SIGWINCH || SIGTSTP */
 }
 
@@ -326,22 +361,34 @@ static void
 handle_suspend(
 	void)
 {
+	t_bool save_cmd_line = cmd_line;
+	t_bool save_state = (!batch_mode || !cmd_line);
+
 	TRACE(("handle_suspend(%d)", signal_context));
 
 	set_keypad_off();
 	if (!cmd_line)
 		set_xclick_off();
 
-	Raw(FALSE);
+	if (save_state) {
+		EndWin();
+		Raw(FALSE);
+	}
+
 	wait_message(0, _(txt_suspended_message), tin_progname);
 
 	kill(0, SIGSTOP);				/* Put ourselves to sleep */
 
 	RESTORE_HANDLER(SIGTSTP, signal_handler);
 
-	if (!batch_mode) {
+	if (save_state) {
 		Raw(TRUE);
+		InitWin();
+		cmd_line = save_cmd_line;
+		if (!cmd_line)
+			my_retouch();
 		need_resize = cRedraw;		/* Flag a redraw */
+		redraw_after_suspend = TRUE;
 	}
 	set_keypad_on();
 	if (!cmd_line)
@@ -366,13 +413,21 @@ signal_handler(
 	switch (sig) {
 #ifdef SIGINT
 		case SIGINT:
-			if (!batch_mode) {
-				RESTORE_HANDLER(sig, signal_handler);
-				return;
-			}
-			break;
+			RESTORE_HANDLER(sig, signal_handler);
+			return;
 #endif /* SIGINT */
 
+/*
+ * fatal error but we don't want the "signal handler caught signal"
+ * message here
+ */
+#ifdef SIGALRM
+		case SIGALRM:
+			error_message(2, "NNTP connection error. Exiting...");
+			tin_done(NNTP_ERROR_EXIT);
+			return;
+#endif /* SIGALRM */
+
 #ifdef SIGCHLD
 		case SIGCHLD:
 			wait(&wait_status);
@@ -381,13 +436,6 @@ signal_handler(
 			return;
 #endif /* SIGCHLD */
 
-#ifdef SIGPIPE
-		case SIGPIPE:
-			got_sig_pipe = TRUE;
-			RESTORE_HANDLER(sig, signal_handler);
-			return;
-#endif /* SIGPIPE */
-
 #ifdef SIGTSTP
 		case SIGTSTP:
 			handle_suspend();
@@ -397,10 +445,18 @@ signal_handler(
 #ifdef SIGWINCH
 		case SIGWINCH:
 			need_resize = cYes;
-			RESTORE_HANDLER(SIGWINCH, signal_handler);
+			RESTORE_HANDLER(sig, signal_handler);
 			return;
 #endif /* SIGWINCH */
 
+#ifdef SIGUSR2
+		case SIGUSR2:
+			if (!no_write) /* TODO: add more config-files to be saved */
+				write_newsrc();
+			RESTORE_HANDLER(sig, signal_handler);
+			return;
+#endif /* SIGUSR2 */
+
 		default:
 			break;
 	}
@@ -424,12 +480,17 @@ signal_handler(
 			break;
 #endif /* SIGHUP || SIGUSR1 || SIGTERM */
 
-#ifdef SIGBUS
-		case SIGBUS:
-#endif /* SIGBUS */
 #ifdef SIGSEGV
 		case SIGSEGV:
+#	if defined(SIGBUS) && (SIGSEGV != SIGBUS) /* on Haiku SIGSEGV == SIGBUS */
+		case SIGBUS:
+#	endif /* SIGBUS && SIGSEGV != SIGBUS */
+#else
+#	ifdef SIGBUS
+		case SIGBUS:
+#	endif /* SIGBUS */
 #endif /* SIGSEGV */
+
 #if defined(SIGBUS) || defined(SIGSEGV)
 			my_fprintf(stderr, _(txt_send_bugreport), tin_progname, VERSION, RELEASEDATE, RELEASENAME, OSNAME, bug_addr);
 			my_fflush(stderr);
@@ -483,6 +544,11 @@ set_signal_handlers(
 
 	for (n = 0; n < ARRAY_SIZE(signal_list); n++) {
 		switch ((code = signal_list[n].code)) {
+#ifdef SIGPIPE
+		case SIGPIPE:
+			sigdisp(code, SIG_IGN);
+			break;
+#endif /* SIGPIPE */
 #ifdef SIGTSTP
 		case SIGTSTP:
 			ptr = sigdisp(code, SIG_DFL);
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/strftime.c tin-2.0.0/src/strftime.c
--- tin-1.8.3/src/strftime.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/strftime.c	2011-04-17 16:04:31.683260311 +0200
@@ -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-2011 Arnold Robbins <arnold@skeeve.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/string.c tin-2.0.0/src/string.c
--- tin-1.8.3/src/string.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/string.c	2011-04-17 16:04:36.107933653 +0200
@@ -3,10 +3,10 @@
  *  Module    : string.c
  *  Author    : Urs Janssen <urs@tin.org>
  *  Created   : 1997-01-20
- *  Updated   : 2005-11-04
+ *  Updated   : 2011-01-30
  *  Notes     :
  *
- * Copyright (c) 1997-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 1997-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -65,15 +65,18 @@
 /*
  * local prototypes
  */
-#if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-	static UChar *char2UChar(const char *str);
-	static char *UChar2char(const UChar *ustr);
-#endif /* HAVE_LIBICUUC && MULTIBYTE_ABLE && !NO_LOCALE */
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	static wchar_t *my_wcsdup(const wchar_t *wstr);
+#	if defined(HAVE_LIBICUUC)
+		static UChar *char2UChar(const char *str);
+		static char *UChar2char(const UChar *ustr);
+#	endif /* HAVE_LIBICUUC */
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 
 
 /*
  * special ltoa()
- * converts value into a string with a maxlen of digits (usualy should be
+ * converts value into a string with a maxlen of digits (usually should be
  * >=4), last char may be one of the following:
  * 'K'ilo, 'M'ega, 'G'iga, 'T'erra, 'P'eta, 'E'xa, 'Z'etta, 'Y'otta,
  * 'X'ona, 'W'eka, 'V'unda, 'U'da (these last 4 are no official SI-prefixes)
@@ -125,6 +128,7 @@ tin_ltoa(
 }
 
 
+#if !defined(USE_DMALLOC) || (defined(USE_DMALLOC) && !defined(HAVE_STRDUP))
 /*
  * Handrolled version of strdup(), presumably to take advantage of
  * the enhanced error detection in my_malloc
@@ -138,15 +142,15 @@ my_strdup(
 	size_t len = strlen(str) + 1;
 	void *ptr = my_malloc(len);
 
-#if 0 /* as my_malloc exits on error, ptr can't be NULL */
+#	if 0 /* as my_malloc exits on error, ptr can't be NULL */
 	if (ptr == NULL)
 		return NULL;
-#endif /* 0 */
+#	endif /* 0 */
 
 	memcpy(ptr, str, len);
 	return (char *) ptr;
 }
-
+#endif /* !USE_DMALLOC || (USE_DMALLOC && !HAVE_STRDUP) */
 
 /*
  * strtok that understands empty tokens
@@ -422,7 +426,7 @@ OUT:
 
 	return (sign * (-val));
 }
-#	undef DIGIT(x)
+#	undef DIGIT
 #	undef MBASE
 #endif /* !HAVE_STRTOL */
 
@@ -556,6 +560,67 @@ eat_tab(
 }
 
 
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+wchar_t *
+wexpand_tab(
+	wchar_t *wstr,
+	size_t tab_width)
+{
+	size_t cur_len = LEN, i = 0, tw;
+	wchar_t *wbuf = my_malloc(cur_len * sizeof(wchar_t));
+	wchar_t *wc = wstr;
+
+	while (*wc) {
+		if (i > cur_len - (tab_width + 1)) {
+			cur_len <<= 1;
+			wbuf = my_realloc(wbuf, cur_len * sizeof(wchar_t));
+		}
+		if (*wc == (wchar_t) '\t') {
+			tw = tab_width;
+			for (; tw > 0; --tw)
+				wbuf[i++] = (wchar_t) ' ';
+		} else
+			wbuf[i++] = *wc;
+		wc++;
+	}
+	wbuf[i] = '\0';
+
+	return wbuf;
+}
+
+
+#else /* !MULTIBYTE_ABLE || NO_LOCALE */
+
+
+char *
+expand_tab(
+	char *str,
+	size_t tab_width)
+{
+	size_t cur_len = LEN, i = 0, tw;
+	char *buf = my_malloc(cur_len);
+	char *c = str;
+
+	while (*c) {
+		if (i > cur_len - (tab_width + 1)) {
+			cur_len <<= 1;
+			buf = my_realloc(buf, cur_len);
+		}
+		if (*c == '\t') {
+			tw = tab_width;
+			for (; tw > 0; --tw)
+				buf[i++] = ' ';
+		} else
+			buf[i++] = *c;
+		c++;
+	}
+	buf[i] = '\0';
+
+	return buf;
+}
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+
+
 /*
  * Format a shell command, escaping blanks and other awkward characters that
  * appear in the string arguments. Replaces sprintf, except that we pass in
@@ -670,6 +735,9 @@ sh_format(
 #	ifdef HAVE_SYS_ERRLIST
 		extern int sys_nerr;
 #	endif /* HAVE_SYS_ERRLIST */
+#	ifdef DECL_SYS_ERRLIST
+		extern char *sys_errlist[];
+#	endif /* DECL_SYS_ERRLIST */
 char *
 my_strerror(
 	int n)
@@ -756,6 +824,29 @@ wchar_t2char(
 
 
 /*
+ * Interface to wcspart for non wide character strings
+ */
+char *
+spart(
+	const char *str,
+	int columns,
+	t_bool pad)
+{
+	char *buf = NULL;
+	wchar_t *wbuf, *wbuf2;
+
+	if ((wbuf = char2wchar_t(str)) != NULL) {
+		wbuf2 = wcspart(wbuf, columns, pad);
+		free(wbuf);
+		buf = wchar_t2char(wbuf2);
+		FreeIfNeeded(wbuf2);
+	}
+
+	return buf;
+}
+
+
+/*
  * returns a new string fitting into 'columns' columns
  * if pad is TRUE the resulting string will be filled with spaces if necessary
  */
@@ -770,7 +861,7 @@ wcspart(
 
 	wbuf = my_wcsdup(wstr);
 	/* make sure all characters in wbuf are printable */
-	ptr = wconvert_to_printable(wbuf);
+	ptr = wconvert_to_printable(wbuf, FALSE);
 
 	/* terminate wbuf after 'columns' columns */
 	while (*ptr && used + wcwidth(*ptr) <= columns)
@@ -795,9 +886,141 @@ wcspart(
 
 	return wbuf;
 }
+
+
+/*
+ * wcs version of abbr_groupname()
+ */
+wchar_t *
+abbr_wcsgroupname(
+	const wchar_t *grpname,
+	int len)
+{
+	wchar_t *src, *dest, *tail, *new_grpname;
+	int tmplen, newlen;
+
+	dest = new_grpname = my_wcsdup(grpname);
+
+	if (wcswidth(grpname, wcslen(grpname)) > len) {
+		if ((src = wcschr(grpname, (wchar_t) '.')) != NULL) {
+			tmplen = wcwidth(*dest++);
+
+			do {
+				*dest++ = *src;
+				tmplen += wcwidth(*src++);
+				*dest++ = *src;
+				tmplen += wcwidth(*src++);
+				tail = src;
+				newlen = wcswidth(tail, wcslen(tail)) + tmplen;
+			} while ((src = wcschr(src, (wchar_t) '.')) != NULL && newlen > len);
+
+			if (newlen > len)
+				*dest++ = (wchar_t) '.';
+			else {
+				while (*tail)
+					*dest++ = *tail++;
+			}
+
+			*dest = (wchar_t) '\0';
+			new_grpname = my_realloc(new_grpname, sizeof(wchar_t) * (wcslen(new_grpname) + 1));
+
+			if (wcswidth(new_grpname, wcslen(new_grpname)) > len) {
+				dest = wstrunc(new_grpname, len);
+				free(new_grpname);
+				new_grpname = dest;
+			}
+		} else {
+			dest = wstrunc(new_grpname, len);
+			free(new_grpname);
+			new_grpname = dest;
+		}
+	}
+
+	return new_grpname;
+}
+
+#else /* !MULTIBYTE_ABLE || NO_LOCALE */
+
+/*
+ * Abbreviate a groupname like this:
+ * 	foo.bar.baz
+ * 	f.bar.baz
+ * 	f.b.baz
+ * 	f.b.b.
+ * depending on the given length
+ */
+char *
+abbr_groupname(
+	const char *grpname,
+	size_t len)
+{
+	char *src, *dest, *tail, *new_grpname;
+	size_t tmplen, newlen;
+
+	dest = new_grpname = my_strdup(grpname);
+
+	if (strlen(grpname) > len) {
+		if ((src = strchr(grpname, '.')) != NULL) {
+			dest++;
+			tmplen = 1;
+
+			do {
+				*dest++ = *src++;
+				*dest++ = *src++;
+				tmplen += 2;
+				tail = src;
+				newlen = strlen(tail) + tmplen;
+			} while ((src = strchr(src, '.')) != NULL && newlen > len);
+
+			if (newlen > len)
+				*dest++ = '.';
+			else {
+				while (*tail)
+					*dest++ = *tail++;
+			}
+
+			*dest = '\0';
+			new_grpname = my_realloc(new_grpname, strlen(new_grpname) + 1);
+
+			if (strlen(new_grpname) > len) {
+				dest = strunc(new_grpname, len);
+				free(new_grpname);
+				new_grpname = dest;
+			}
+		} else {
+			dest = strunc(new_grpname, len);
+			free(new_grpname);
+			new_grpname = dest;
+		}
+	}
+
+	return new_grpname;
+}
 #endif /* MULTIBYTE_ABLE && !NOLOCALE */
 
 
+/*
+ * Returns the number of screen positions a string occupies
+ */
+int
+strwidth(
+	const char *str)
+{
+	int columns = (int) strlen(str);
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	int width;
+	wchar_t *wbuf;
+
+	if ((wbuf = char2wchar_t(str)) != NULL) {
+		if ((width = wcswidth(wbuf, wcslen(wbuf) + 1)) > 0)
+			columns = width;
+		free(wbuf);
+	}
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	return columns;
+}
+
+
 #define TRUNC_TAIL	"..."
 /*
  * shortens 'mesg' that it occupies at most 'len' screen positions.
@@ -839,13 +1062,6 @@ strunc(
 }
 
 
-/*
- * if you use UTF-8 as local charset and want to use
- * U+2026 (HORIZONTAL_ELLIPSIS) instead of "..." uncomment
- * the following define
- */
-/* #define USE_UTF8_HORIZONTAL_ELLIPSIS 1 */
-
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 /* the wide-char equivalent of strunc() */
 wchar_t *
@@ -857,14 +1073,13 @@ wstrunc(
 
 	/* make sure all characters are printable */
 	wtmp = my_wcsdup(wmessage);
-	wconvert_to_printable(wtmp);
+	wconvert_to_printable(wtmp, FALSE);
 
 	if (wcswidth(wtmp, wcslen(wtmp)) > len) {
 		/* wtmp must be truncated */
 		wchar_t *wtmp2, *tail;
 
-#	ifdef USE_UTF8_HORIZONTAL_ELLIPSIS
-		if (IS_LOCAL_CHARSET("UTF-8")) {
+		if (tinrc.utf8_graphics) {
 			/*
 			 * use U+2026 (HORIZONTAL ELLIPSIS) instead of "..."
 			 * we gain two additional screen positions
@@ -873,7 +1088,6 @@ wstrunc(
 			tail[0] = 8230; /* U+2026 */
 			tail[1] = 0;	/* \0 */
 		} else
-#	endif /* USE_UTF8_HORIZONTAL_ELLIPSIS */
 			tail = char2wchar_t(TRUNC_TAIL);
 
 		wtmp2 = wcspart(wtmp, len - wcslen(tail), FALSE);
@@ -890,7 +1104,7 @@ wstrunc(
 /*
  * duplicates a wide-char string
  */
-wchar_t *
+static wchar_t *
 my_wcsdup(
 	const wchar_t *wstr)
 {
@@ -1008,11 +1222,11 @@ normalize(
 		if ((ustr = char2UChar(tmp)) == NULL) /* something went wrong, return the original string (as valid UTF8) */
 			return tmp;
 
-		needed = unorm_normalize(ustr, -1, mode, 0 , NULL, 0, &status);
+		needed = unorm_normalize(ustr, -1, mode, 0, NULL, 0, &status);
 		status = U_ZERO_ERROR;		/* reset status */
 		norm_len = needed + 1;
 		norm = my_malloc(sizeof(UChar) * norm_len);
-		needed = unorm_normalize(ustr, -1, mode, 0 , norm, norm_len, &status);
+		(void) unorm_normalize(ustr, -1, mode, 0, norm, norm_len, &status);
 		if (U_FAILURE(status)) {
 			/* something went wrong, return the original string (as valid UTF8) */
 			free(ustr);
@@ -1023,6 +1237,8 @@ normalize(
 		/* convert back to UTF-8 */
 		if ((buf = UChar2char(norm)) == NULL) /* something went wrong, return the original string (as valid UTF8) */
 			buf = tmp;
+		else
+			free(tmp);
 
 		free(ustr);
 		free(norm);
@@ -1044,7 +1260,7 @@ normalize(
 
 
 /*
- * returns a pointer to allocated buffer containing the formated string
+ * returns a pointer to allocated buffer containing the formatted string
  * must be freed if not needed anymore
  */
 char *
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/tags.c tin-2.0.0/src/tags.c
--- tin-1.8.3/src/tags.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/tags.c	2011-04-17 16:04:31.719265791 +0200
@@ -3,10 +3,10 @@
  *  Module    : tags.c
  *  Author    : Jason Faultless <jason@altarstone.com>
  *  Created   : 1999-12-06
- *  Updated   : 2005-05-10
+ *  Updated   : 2010-04-02
  *  Notes     : Split out from other modules
  *
- * Copyright (c) 1999-2006 Jason Faultless <jason@altarstone.com>
+ * Copyright (c) 1999-2011 Jason Faultless <jason@altarstone.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -136,7 +136,7 @@ get_multiparts(
 	MultiPartInfo **malloc_and_setme_info)
 {
 	MultiPartInfo tmp, tmp2;
-	MultiPartInfo *info = 0;
+	MultiPartInfo *info = NULL;
 	int i;
 	int part_index;
 
@@ -207,7 +207,7 @@ int
 tag_multipart(
 	int base_index)
 {
-	MultiPartInfo *info = 0;
+	MultiPartInfo *info = NULL;
 	int i;
 	const int qty = get_multiparts(base_index, &info);
 
@@ -253,7 +253,7 @@ line_is_tagged(
 {
 	int code = 0;
 
-	if (curr_group->attribute->thread_arts) {
+	if (curr_group->attribute->thread_articles) {
 		int i;
 		for (i = n; i >= 0; i = arts[i].thread) {
 			if (arts[i].tagged > code)
@@ -341,10 +341,10 @@ untag_all_articles(
  * Return TRUE if a range was successfully read, parsed and set
  *
  * Allowed syntax is 0123456789-.$ (blanks are ignored):
- *   1-23    mark grp/art 1 thru 23
- *   1-.     mark grp/art 1 thru current
- *   1-$     mark grp/art 1 thru last
- *   .-$     mark grp/art current thru last
+ *   1-23    mark grp/art 1 through 23
+ *   1-.     mark grp/art 1 through current
+ *   1-$     mark grp/art 1 through last
+ *   .-$     mark grp/art current through last
  */
 t_bool
 set_range(
@@ -374,12 +374,12 @@ set_range(
 			range = tinrc.default_range_thread;
 			break;
 
-		default:
+		default:	/* should no happen */
 			return FALSE;
 	}
 
 #if 0
-	error_message("Min=[%d] Max=[%d] Cur=[%d] DefRng=[%s]", min, max, curr, range);
+	error_message(2, "Min=[%d] Max=[%d] Cur=[%d] DefRng=[%s]", min, max, curr, range);
 #endif /* 0 */
 	prompt = fmt_string(_(txt_enter_range), range);
 
@@ -523,14 +523,17 @@ do_auto_select_arts(
 
 	for_each_art(i) {
 		if (arts[i].status == ART_UNREAD && !arts[i].selected) {
-#	ifdef DEBUG_NEWSRC
-			debug_print_comment("group.c: X command");
-#	endif /* DEBUG_NEWSRC */
+#	ifdef DEBUG
+			if (debug & DEBUG_NEWSRC)
+				debug_print_comment("group.c: X command");
+#	endif /* DEBUG */
 			art_mark(curr_group, &arts[i], ART_READ);
 			arts[i].zombie = TRUE;
 		}
+		if (curr_group->attribute->show_only_unread_arts)
+			arts[i].keep_in_base = FALSE;
 	}
-	if (curr_group->attribute->show_only_unread)
+	if (curr_group->attribute->show_only_unread_arts)
 		find_base(curr_group);
 
 	grpmenu.curr = 0;
@@ -547,14 +550,15 @@ undo_auto_select_arts(
 
 	for_each_art(i) {
 		if (arts[i].status == ART_READ && arts[i].zombie) {
-#	ifdef DEBUG_NEWSRC
-			debug_print_comment("group.c: + command");
-#	endif /* DEBUG_NEWSRC */
+#	ifdef DEBUG
+			if (debug & DEBUG_NEWSRC)
+				debug_print_comment("group.c: + command");
+#	endif /* DEBUG */
 			art_mark(curr_group, &arts[i], ART_UNREAD);
 			arts[i].zombie = FALSE;
 		}
 	}
-	if (curr_group->attribute->show_only_unread)
+	if (curr_group->attribute->show_only_unread_arts)
 		find_base(curr_group);
 
 	grpmenu.curr = 0;	/* do we want this? */
@@ -591,45 +595,3 @@ arts_selected(
 
 	return FALSE;
 }
-
-
-/*
- * Mark all tagged articles as read.
- * Return number of articles that have been marked.
- */
-int
-mark_tagged_read(
-	struct t_group *group)
-{
-	int i, cnt = 0;
-
-	for_each_art(i) {
-		if (arts[i].tagged && (arts[i].status == ART_UNREAD || arts[i].status == ART_WILL_RETURN)) {
-			art_mark(group, &arts[i], ART_READ);
-			cnt++;
-		}
-	}
-	untag_all_articles();
-
-	return cnt;
-}
-
-
-/*
- * Check if there is at least one tagged _and_ unread article.
- */
-t_bool
-got_tagged_unread_arts(
-	void)
-{
-	int i;
-
-	if (num_of_tagged_arts > 0) {
-		for_each_art(i) {
-			if (arts[i].tagged && (arts[i].status == ART_UNREAD || arts[i].status == ART_WILL_RETURN))
-				return TRUE;
-		}
-	}
-
-	return FALSE;
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/tcurses.c tin-2.0.0/src/tcurses.c
--- tin-1.8.3/src/tcurses.c	2007-01-25 20:28:18.000000000 +0100
+++ tin-2.0.0/src/tcurses.c	2011-04-17 17:41:30.205324227 +0200
@@ -3,11 +3,11 @@
  *  Module    : tcurses.c
  *  Author    : Thomas Dickey <dickey@invisible-island.net>
  *  Created   : 1997-03-02
- *  Updated   : 2007-01-25
+ *  Updated   : 2011-04-17
  *  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-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -139,11 +139,12 @@ InitScreen(
 			bcol(default_bcol = -1);
 		}
 #		endif /* HAVE_USE_DEFAULT_COLORS */
+		postinit_colors(MAX(COLORS, MAX_COLOR + 1)); /* postinit_colors(COLORS) would be correct */
 	} else {
 		use_color = FALSE;
+		postinit_colors(MAX_COLOR + 1);
 	}
 
-	postinit_colors();
 #	endif /* HAVE_COLOR */
 	set_xclick_on();
 	return TRUE;
@@ -396,8 +397,8 @@ highlight_string(
 	tmp[size] = '\0';
 	StartInverse();
 	my_fputs(tmp, stdout);
-	my_flush();
 	EndInverse();
+	my_flush();
 	stow_cursor();
 }
 
@@ -512,7 +513,9 @@ ReadCh(
 	if (cmd_line)
 		ch = cmdReadCh();
 	else {
+#	if defined(KEY_RESIZE) && defined(USE_CURSES)
 again:
+#	endif /* KEY_RESIZE && USE_CURSES */
 		allow_resize(TRUE);
 #	if defined(KEY_RESIZE) && defined(USE_CURSES)
 		if ((ch = getch()) == KEY_RESIZE)
@@ -826,6 +829,10 @@ my_retouch(
 	TRACE(("my_retouch"));
 	if (!cmd_line) {
 		wrefresh(curscr);
+#	ifdef HAVE_COLOR
+		fcol(tinrc.col_normal);
+		bcol(tinrc.col_back);
+#	endif /* HAVE_COLOR */
 	}
 }
 
@@ -894,72 +901,77 @@ get_arrow_key(
 #	ifdef NCURSES_MOUSE_VERSION
 	MEVENT my_event;
 #	endif /* NCURSES_MOUSE_VERSION */
-	int ch = getch();
+	int ch;
 	int code = KEYMAP_UNKNOWN;
 
-	switch (ch) {
-		case KEY_DC:
-			code = KEYMAP_DEL;
-			break;
-
-		case KEY_IC:
-			code = KEYMAP_INS;
-			break;
-
-		case KEY_UP:
-			code = KEYMAP_UP;
-			break;
-
-		case KEY_DOWN:
-			code = KEYMAP_DOWN;
-			break;
-
-		case KEY_LEFT:
-			code = KEYMAP_LEFT;
-			break;
-
-		case KEY_RIGHT:
-			code = KEYMAP_RIGHT;
-			break;
-
-		case KEY_NPAGE:
-			code = KEYMAP_PAGE_DOWN;
-			break;
-
-		case KEY_PPAGE:
-			code = KEYMAP_PAGE_UP;
-			break;
-
-		case KEY_HOME:
-			code = KEYMAP_HOME;
-			break;
-
-		case KEY_END:
-			code = KEYMAP_END;
-			break;
+	if (cmd_line)
+		code = cmd_get_arrow_key(prech);
+	else {
+		ch = getch();
+		switch (ch) {
+			case KEY_DC:
+				code = KEYMAP_DEL;
+				break;
+
+			case KEY_IC:
+				code = KEYMAP_INS;
+				break;
+
+			case KEY_UP:
+				code = KEYMAP_UP;
+				break;
+
+			case KEY_DOWN:
+				code = KEYMAP_DOWN;
+				break;
+
+			case KEY_LEFT:
+				code = KEYMAP_LEFT;
+				break;
+
+			case KEY_RIGHT:
+				code = KEYMAP_RIGHT;
+				break;
+
+			case KEY_NPAGE:
+				code = KEYMAP_PAGE_DOWN;
+				break;
+
+			case KEY_PPAGE:
+				code = KEYMAP_PAGE_UP;
+				break;
+
+			case KEY_HOME:
+				code = KEYMAP_HOME;
+				break;
+
+			case KEY_END:
+				code = KEYMAP_END;
+				break;
 
 #	ifdef NCURSES_MOUSE_VERSION
-		case KEY_MOUSE:
-			if (getmouse(&my_event) != ERR) {
-				switch ((int) my_event.bstate) {
-					case BUTTON1_CLICKED:
-						xmouse = MOUSE_BUTTON_1;
-						break;
-
-					case BUTTON2_CLICKED:
-						xmouse = MOUSE_BUTTON_2;
-						break;
-
-					case BUTTON3_CLICKED:
-						xmouse = MOUSE_BUTTON_3;
-						break;
+			case KEY_MOUSE:
+				if (getmouse(&my_event) != ERR) {
+					switch ((int) my_event.bstate) {
+						case BUTTON1_CLICKED:
+							xmouse = MOUSE_BUTTON_1;
+							break;
+
+						case BUTTON2_CLICKED:
+							xmouse = MOUSE_BUTTON_2;
+							break;
+
+						case BUTTON3_CLICKED:
+							xmouse = MOUSE_BUTTON_3;
+							break;
+					}
+					xcol = my_event.x;	/* column */
+					xrow = my_event.y;	/* row */
+					code = KEYMAP_MOUSE;
 				}
-				xcol = my_event.x;	/* column */
-				xrow = my_event.y;	/* row */
-				code = KEYMAP_MOUSE;
-			}
-			break;
+				break;
 #	endif /* NCURSES_MOUSE_VERSION */
+		}
 	}
 	return code;
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/thread.c tin-2.0.0/src/thread.c
--- tin-1.8.3/src/thread.c	2006-07-20 17:09:14.000000000 +0200
+++ tin-2.0.0/src/thread.c	2011-04-17 16:04:30.975152553 +0200
@@ -3,10 +3,10 @@
  *  Module    : thread.c
  *  Author    : I. Lea
  *  Created   : 1991-04-01
- *  Updated   : 2006-07-20
+ *  Updated   : 2011-01-29
  *  Notes     :
  *
- * Copyright (c) 1991-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1991-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -54,8 +54,7 @@ t_bool show_subject;
  */
 static char get_art_mark(struct t_article *art);
 static int enter_pager(int art, t_bool ignore_unavail, int level);
-static int mark_art_read(struct t_group *group);
-static int thread_catchup(t_function func);
+static int thread_catchup(t_function func, struct t_group *group);
 static int thread_tab_pressed(void);
 static t_bool find_unexpired(struct t_msgid *ptr);
 static t_bool has_sibling(struct t_msgid *ptr);
@@ -89,7 +88,7 @@ get_art_mark(
 	if (art->inrange) {
 		return tinrc.art_marked_inrange;
 	} else if (art->status == ART_UNREAD) {
-		return (art->selected ? tinrc.art_marked_selected : (tinrc.recent_time && ((time((time_t) 0) - art->date) < (tinrc.recent_time * DAY))) ? tinrc.art_marked_recent : tinrc.art_marked_unread);
+		return (art->selected ? tinrc.art_marked_selected : (tinrc.recent_time && ((time((time_t *) 0) - art->date) < (tinrc.recent_time * DAY))) ? tinrc.art_marked_recent : tinrc.art_marked_unread);
 	} else if (art->status == ART_WILL_RETURN) {
 		return tinrc.art_marked_return;
 	} else if (art->killed && tinrc.kill_level != KILL_NOTHREAD) {
@@ -147,7 +146,7 @@ build_tline(
 	 * Start with 2 spaces for ->
 	 * then index number of the message and whitespace (2+4+1 chars)
 	 */
-#if 0 /* usefull? see also group.c:build_sline() */
+#if 0 /* useful? see also group.c:build_sline() */
 	if (!tinrc.draw_arrow)
 		sprintf(buffer, "%s ", tin_ltoa(l + 1, 6));
 	else
@@ -233,7 +232,7 @@ build_tline(
 		/*
 		 * Copy in the subject up to where the author (if any) starts
 		 */
-		gap = cCOLS - strlen(buffer) - len_from; /* gap = gap (no. of chars) between tree and author/border of window */
+		gap = cCOLS - strwidth(buffer) - len_from; /* gap = gap (no. of chars) between tree and author/border of window */
 
 		if (len_from)	/* Leave gap before author */
 			gap -= 2;
@@ -247,6 +246,7 @@ build_tline(
 
 			for (ptr = art->refptr->parent; ptr && IS_EXPIRED(ptr); ptr = ptr->parent)
 				;
+
 			if (!(ptr && arts[ptr->article].subject == art->subject)) {
 #if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
 				if ((wtmp = char2wchar_t(art->subject)) != NULL) {
@@ -269,14 +269,7 @@ build_tline(
 		 * If we need to show the author, pad out to the start of the author field,
 		 */
 		if (len_from) {
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-			if ((wtmp = char2wchar_t(buffer)) != NULL) {
-				fill = cCOLS - len_from - wcswidth(wtmp, wcslen(wtmp) + 1);
-				free(wtmp);
-			} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-				fill = cCOLS - len_from - strlen(buffer);
-
+			fill = cCOLS - len_from - strwidth(buffer);
 			gap = strlen(buffer);
 			for (i = 0; i < fill; i++)
 				buffer[gap + i] = ' ';
@@ -319,20 +312,11 @@ build_tline(
 	}
 
 	/* protect display from non-displayable characters (e.g., form-feed) */
-	convert_to_printable(buffer);
+	convert_to_printable(buffer, FALSE);
 
 	if (!tinrc.strip_blanks) {
-		/*
-		 * Pad to end of line so that inverse bar looks 'good'
-		 */
-#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
-		if ((wtmp = char2wchar_t(buffer)) != NULL) {
-			fill = cCOLS - wcswidth(wtmp, wcslen(wtmp) + 1);
-			free(wtmp);
-		} else
-#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
-			fill = cCOLS - strlen(buffer);
-
+		/* Pad to end of line so that inverse bar looks 'good' */
+		fill = cCOLS - strwidth(buffer);
 		gap = strlen(buffer);
 		for (i = 0; i < fill; i++)
 			buffer[gap + i] = ' ';
@@ -364,7 +348,7 @@ static t_function
 thread_left(
 	void)
 {
-	if (tinrc.thread_catchup_on_exit)
+	if (curr_group->attribute->thread_catchup_on_exit)
 		return SPECIAL_CATCHUP_LEFT;			/* ie, not via 'c' or 'C' */
 	else
 		return GLOBAL_QUIT;
@@ -403,6 +387,7 @@ thread_page(
 	char key[MAXKEYLEN];
 	char mark[] = { '\0', '\0' };
 	int i, n;
+	long old_artnum = 0L;
 	t_bool repeat_search;
 	t_function func;
 
@@ -426,8 +411,8 @@ thread_page(
 	if (thread_depth)
 		thdmenu.curr = thread_depth;
 	else {
-		if (tinrc.pos_first_unread) {
-			if ((i = new_responses(thread_basenote))) {
+		if (group->attribute->pos_first_unread) {
+			if (new_responses(thread_basenote)) {
 				for (n = 0, i = (int) base[thread_basenote]; i >= 0; i = arts[i].thread, n++) {
 					if (arts[i].status == ART_UNREAD || arts[i].status == ART_WILL_RETURN) {
 						if (arts[i].thread == ART_EXPIRED)
@@ -508,49 +493,59 @@ thread_page(
 				break;
 
 			case GLOBAL_SET_RANGE:		/* set range */
-				if (set_range(THREAD_LEVEL, 1, thdmenu.max, thdmenu.curr + 1))
+				if (set_range(THREAD_LEVEL, 1, thdmenu.max, thdmenu.curr + 1)) {
+					range_active = TRUE;
 					show_thread_page();
+				}
 				break;
 
 			case GLOBAL_PIPE:			/* pipe article(s) to command */
 				if (thread_basenote >= 0)
-					feed_articles(FEED_PIPE, THREAD_LEVEL, group, find_response(thread_basenote, thdmenu.curr));
+					feed_articles(FEED_PIPE, THREAD_LEVEL, NOT_ASSIGNED, group, find_response(thread_basenote, thdmenu.curr));
 				break;
 
 #ifndef DISABLE_PRINTING
 			case GLOBAL_PRINT:			/* print article(s) */
 				if (thread_basenote >= 0)
-					feed_articles(FEED_PRINT, THREAD_LEVEL, group, find_response(thread_basenote, thdmenu.curr));
+					feed_articles(FEED_PRINT, THREAD_LEVEL, NOT_ASSIGNED, group, find_response(thread_basenote, thdmenu.curr));
 				break;
 #endif /* !DISABLE_PRINTING */
 
 			case THREAD_MAIL:	/* mail article(s) to somebody */
 				if (thread_basenote >= 0)
-					feed_articles(FEED_MAIL, THREAD_LEVEL, group, find_response(thread_basenote, thdmenu.curr));
+					feed_articles(FEED_MAIL, THREAD_LEVEL, NOT_ASSIGNED, group, find_response(thread_basenote, thdmenu.curr));
 				break;
 
 			case THREAD_SAVE:	/* save articles with prompting */
 				if (thread_basenote >= 0)
-					feed_articles(FEED_SAVE, THREAD_LEVEL, group, find_response(thread_basenote, thdmenu.curr));
+					feed_articles(FEED_SAVE, THREAD_LEVEL, NOT_ASSIGNED, group, find_response(thread_basenote, thdmenu.curr));
 				break;
 
 			case THREAD_AUTOSAVE:	/* Auto-save articles without prompting */
 				if (thread_basenote >= 0)
-					feed_articles(FEED_AUTOSAVE, THREAD_LEVEL, group, (int) base[grpmenu.curr]);
+					feed_articles(FEED_AUTOSAVE, THREAD_LEVEL, NOT_ASSIGNED, group, (int) base[grpmenu.curr]);
+				break;
+
+			case MARK_FEED_READ:	/* mark selected articles as read */
+				if (thread_basenote >= 0)
+					ret_code = feed_articles(FEED_MARK_READ, THREAD_LEVEL, NOT_ASSIGNED, group, find_response(thread_basenote, thdmenu.curr));
+				break;
+
+			case MARK_FEED_UNREAD:	/* mark selected articles as unread */
+				if (thread_basenote >= 0)
+					feed_articles(FEED_MARK_UNREAD, THREAD_LEVEL, NOT_ASSIGNED, group, find_response(thread_basenote, thdmenu.curr));
 				break;
 
 			case GLOBAL_MENU_FILTER_SELECT:
 			case GLOBAL_MENU_FILTER_KILL:
-				/*
-				 * FIXME: a filter which kills all remaining messages in a thread
-				 *        is 'troublesome'
-				 */
 				n = find_response(thread_basenote, thdmenu.curr);
-				filter_menu(func, group, &arts[n]);
-				if (filter_articles(group)) {
+				if (filter_menu(func, group, &arts[n])) {
+					old_artnum = arts[n].artnum;
+					unfilter_articles(group);
+					filter_articles(group);
 					make_threads(group, FALSE);
-					if ((n = next_unread(n)) == -1) {
-						ret_code = GRP_EXIT;
+					if ((n = find_artnum(old_artnum)) == -1 || which_thread(n) == -1) { /* We have lost the thread */
+						ret_code = GRP_KILLED;
 						break;
 					}
 					fixup_thread(n, TRUE);
@@ -559,14 +554,14 @@ thread_page(
 				break;
 
 			case GLOBAL_EDIT_FILTER:
-				if (!invoke_editor(filter_file, FILTER_FILE_OFFSET))
-					break;
-				unfilter_articles();
-				(void) read_filter_file(filter_file);
-				if (filter_articles(group)) {
+				if (invoke_editor(filter_file, filter_file_offset, NULL)) {
+					old_artnum = arts[find_response(thread_basenote, thdmenu.curr)].artnum;
+					unfilter_articles(group);
+					(void) read_filter_file(filter_file);
+					filter_articles(group);
 					make_threads(group, FALSE);
-					if ((n = next_unread(n)) == -1) {
-						ret_code = GRP_EXIT;
+					if ((n = find_artnum(old_artnum)) == -1 || which_thread(n) == -1) { /* We have lost the thread */
+						ret_code = GRP_KILLED;
 						break;
 					}
 					fixup_thread(n, TRUE);
@@ -582,6 +577,21 @@ thread_page(
 				ret_code = thread_tab_pressed();
 				break;
 
+			case THREAD_CANCEL:		/* cancel current article */
+				if (can_post || group->attribute->mailing_list != NULL) {
+					char *progress_msg = my_strdup(_(txt_reading_article));
+					int ret;
+
+					n = find_response(thread_basenote, thdmenu.curr);
+					ret = art_open(TRUE, &arts[n], group, &pgart, TRUE, progress_msg);
+					free(progress_msg);
+					if (ret != ART_UNAVAILABLE && ret != ART_ABORT && cancel_article(group, &arts[n], n))
+						show_thread_page();
+					art_close(&pgart);
+				} else
+					info_message(_(txt_cannot_post));
+				break;
+
 			case GLOBAL_POST:		/* post a basenote */
 				if (post_article(group->name))
 					show_thread_page();
@@ -620,11 +630,19 @@ thread_page(
 			case SPECIAL_CATCHUP_LEFT:				/* come here when exiting thread via <- */
 			case CATCHUP:				/* catchup thread, move to next one */
 			case CATCHUP_NEXT_UNREAD:	/* -> next with unread arts */
-				ret_code = thread_catchup(func);
+				ret_code = thread_catchup(func, group);
 				break;
 
-			case THREAD_MARK_ARTICLE_READ: /* mark article as read */
-				ret_code = mark_art_read(group);
+			case THREAD_MARK_ARTICLE_READ:	/* mark current article/range/tagged articles as read */
+			case MARK_ARTICLE_UNREAD:		/* or unread */
+				if (thread_basenote >= 0) {
+					t_function function, type;
+
+					function = func == THREAD_MARK_ARTICLE_READ ? (t_function) FEED_MARK_READ : (t_function) FEED_MARK_UNREAD;
+					type = range_active ? FEED_RANGE : (num_of_tagged_arts && !group->attribute->mark_ignore_tags) ? NOT_ASSIGNED : FEED_ARTICLE;
+					if (feed_articles(function, THREAD_LEVEL, type, group, find_response(thread_basenote, thdmenu.curr)) == 1)
+						ret_code = GRP_EXIT;
+				}
 				break;
 
 			case THREAD_TOGGLE_SUBJECT_DISPLAY:	/* toggle display of subject & subj/author */
@@ -636,11 +654,13 @@ thread_page(
 				break;
 
 			case GLOBAL_OPTION_MENU:
-				change_config_file(group);
 				n = find_response(thread_basenote, thdmenu.curr);
-				if (which_thread(n) == -1) /* We have lost the thread */
+				old_artnum = arts[n].artnum;
+				config_page(group->name);
+				if ((n = find_artnum(old_artnum)) == -1 || which_thread(n) == -1) { /* We have lost the thread */
+					pos_first_unread_thread();
 					ret_code = GRP_EXIT;
-				else {
+				} else {
 					fixup_thread(n, FALSE);
 					thdmenu.curr = which_response(n);
 					show_thread_page();
@@ -657,6 +677,10 @@ thread_page(
 					ret_code = enter_pager(n, FALSE, THREAD_LEVEL);
 				break;
 
+			case GLOBAL_SEARCH_REPEAT:
+				info_message(_(txt_no_prev_search));
+				break;
+
 			case GLOBAL_SEARCH_BODY:			/* search article body */
 				if ((n = search_body(group, find_response(thread_basenote, thdmenu.curr), repeat_search)) != -1) {
 					fixup_thread(n, FALSE);
@@ -735,15 +759,6 @@ thread_page(
 				info_message(cvers);
 				break;
 
-			case MARK_ARTICLE_UNREAD:	/* mark article as unread */
-				n = find_response(thread_basenote, thdmenu.curr);
-				art_mark(group, &arts[n], ART_WILL_RETURN);
-				mark[0] = get_art_mark(&arts[n]);
-				mark_screen(thdmenu.curr, MARK_OFFSET, mark);
-				draw_thread_arrow();
-				info_message(_(txt_marked_as_unread), _(txt_article_upper));
-				break;
-
 			case MARK_THREAD_UNREAD:		/* mark thread as unread */
 				thd_mark_unread(group, base[thread_basenote]);
 				update_thread_page();
@@ -822,7 +837,7 @@ show_thread_page(
 	/*
 	 * If threading by Refs, it helps to see the subject line
 	 */
-	show_subject = ((arts[thread_respnum].archive != NULL) || (curr_group->attribute->thread_arts == THREAD_REFS) || (curr_group->attribute->thread_arts == THREAD_BOTH));
+	show_subject = ((arts[thread_respnum].archive != NULL) || (curr_group->attribute->thread_articles == THREAD_REFS) || (curr_group->attribute->thread_articles == THREAD_BOTH));
 
 	if (show_subject)
 		title = fmt_string(_(txt_stp_list_thread), grpmenu.curr + 1, grpmenu.max);
@@ -955,7 +970,9 @@ which_thread(
 			return j;
 	}
 
-	error_message(_(txt_cannot_find_base_art), n);
+#ifdef DEBUG
+	error_message(2, _(txt_cannot_find_base_art), n);
+#endif /* DEBUG */
 	return -1;
 }
 
@@ -1103,7 +1120,7 @@ stat_thread(
 		if (arts[i].killed)
 			++sbuf->killed;
 
-		if ((curr_group->attribute->thread_arts == THREAD_MULTI) && global_get_multipart_info(i, &minfo) && (minfo.total >= 1)) {
+		if ((curr_group->attribute->thread_articles == THREAD_MULTI) && global_get_multipart_info(i, &minfo) && (minfo.total >= 1)) {
 			sbuf->multipart_compare_len = minfo.subject_compare_len;
 			sbuf->multipart_total = minfo.total;
 			sbuf->multipart_have++;
@@ -1119,7 +1136,7 @@ stat_thread(
 	else if (sbuf->selected_unread)
 		sbuf->art_mark = tinrc.art_marked_selected;
 	else if (sbuf->unread) {
-		if (tinrc.recent_time && (time((time_t) 0) - sbuf->time) < (tinrc.recent_time * DAY))
+		if (tinrc.recent_time && (time((time_t *) 0) - sbuf->time) < (tinrc.recent_time * DAY))
 			sbuf->art_mark = tinrc.art_marked_recent;
 		else
 			sbuf->art_mark = tinrc.art_marked_unread;
@@ -1236,7 +1253,7 @@ next_unread(
 		n = next_response(n);
 	}
 
-	if (tinrc.wrap_on_next_unread) {
+	if (curr_group->attribute->wrap_on_next_unread) {
 		n = base[0];
 		while (n != cur_base_art) {
 			if (((arts[n].status == ART_UNREAD) || (arts[n].status == ART_WILL_RETURN)) && arts[n].thread != ART_EXPIRED)
@@ -1302,7 +1319,12 @@ make_prefix(
 	char *prefix,
 	int maxlen)
 {
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	char *result;
+	wchar_t *buf, *buf2;
+#else
 	char *buf;
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 	int prefix_ptr;
 	int depth = 0;
 	int depth_level = 0;
@@ -1331,23 +1353,39 @@ make_prefix(
 		}
 	}
 
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	buf = my_malloc(sizeof(wchar_t) * prefix_ptr + 3 * sizeof(wchar_t));
+	buf[prefix_ptr + 2] = (wchar_t) '\0';
+#else
 	buf = my_malloc(prefix_ptr + 3);
-	strcpy(&buf[prefix_ptr], "->");
-	buf[--prefix_ptr] = (has_sibling(art) ? '+' : '`');
+	buf[prefix_ptr + 2] = '\0';
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
+	buf[prefix_ptr + 1] = TREE_ARROW;
+	buf[prefix_ptr] = TREE_HORIZ;
+	buf[--prefix_ptr] = (has_sibling(art) ? TREE_VERT_RIGHT : TREE_UP_RIGHT);
 
 	for (ptr = art->parent; prefix_ptr > 1; ptr = ptr->parent) {
 		if (IS_EXPIRED(ptr))
 			continue;
-		buf[--prefix_ptr] = ' ';
-		buf[--prefix_ptr] = (has_sibling(ptr) ? '|' : ' ');
+		buf[--prefix_ptr] = TREE_BLANK;
+		buf[--prefix_ptr] = (has_sibling(ptr) ? TREE_VERT : TREE_BLANK);
 	}
 
 	while (depth_level)
-		buf[--depth_level] = '>';
+		buf[--depth_level] = TREE_ARROW_WRAP;
 
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	buf2 = wcspart(buf, maxlen, FALSE);
+	result = wchar_t2char(buf2);
+	strcpy(prefix, result);
+	free(buf);
+	FreeIfNeeded(buf2);
+	FreeIfNeeded(result);
+#else
 	strncpy(prefix, buf, maxlen);
 	prefix[maxlen] = '\0'; /* just in case strlen(buf) > maxlen */
 	free(buf);
+#endif /* MULTIBYTE_ABLE && !NO_LOCALE */
 	return;
 }
 
@@ -1361,7 +1399,8 @@ make_prefix(
  */
 static int
 thread_catchup(
-	t_function func)
+	t_function func,
+	struct t_group *group)
 {
 	char buf[LEN];
 	int i, n;
@@ -1375,12 +1414,10 @@ thread_catchup(
 	}
 
 	if (i != -1) {				/* still unread arts in this thread */
-		/*
-		 * TODO: if (group->attribute->thread_arts == THREAD_NONE)
-		 *          snprintf(buf, sizeof(buf), _("Mark article as read%s?"), (func == CATCHUP_NEXT_UNREAD) ? _(" and enter next unread article") : "");
-		 *       else
-		 */
-		snprintf(buf, sizeof(buf), _(txt_mark_thread_read), (func == CATCHUP_NEXT_UNREAD) ? _(txt_enter_next_thread) : "");
+		if (group->attribute->thread_articles == THREAD_NONE)
+			snprintf(buf, sizeof(buf), _(txt_mark_art_read), (func == CATCHUP_NEXT_UNREAD) ? _(txt_enter_next_unread_art) : "");
+		else
+			snprintf(buf, sizeof(buf), _(txt_mark_thread_read), (func == CATCHUP_NEXT_UNREAD) ? _(txt_enter_next_thread) : "");
 		if ((!TINRC_CONFIRM_ACTION) || (pyn = prompt_yn(buf, TRUE)) == 1)
 			thd_mark_read(curr_group, base[thread_basenote]);
 	}
@@ -1442,9 +1479,11 @@ again:
 	switch ((i = show_page(curr_group, art, &thdmenu.curr))) {
 		/* These exit to previous menu level */
 		case GRP_QUIT:				/* 'Q' all the way out */
+		case GRP_EXIT:				/*     back to group menu */
 		case GRP_RETSELECT:			/* 'T' back to select menu */
 		case GRP_NEXT:				/* 'c' Move to next thread on group menu */
 		case GRP_NEXTUNREAD:		/* 'C' */
+		case GRP_KILLED:			/*     article/thread was killed at page level */
 			break;
 
 		case GRP_ARTABORT:			/* user 'q'uit load of article */
@@ -1471,8 +1510,6 @@ again:
 			return 0;
 
 		default:					/* >=0 normal exit, new basenote */
-			if (filtered_articles)
-				return GRP_KILLED; /* ? set group cursor back to 0 and do nothing */
 			fixup_thread(this_resp, FALSE);
 
 			if (currmenu != &grpmenu)	/* group menu will redraw itself */
@@ -1516,65 +1553,45 @@ thread_tab_pressed(
 
 
 /*
- * If there are any tagged and unread articles, prompt user to mark either
- * all tagged arts as read, or only current article, or cancel operation.
- * Otherwise, use current article.
- * Finally move to next unread article.
+ * Redraw all necessary parts of the screen after FEED_MARK_(UN)READ
+ * Move cursor to next unread item if needed
  *
- * Return GRP_EXIT if there are no more unread articles in this group,
- * else return 0.
+ * Returns TRUE when no next unread art, FALSE otherwise
  */
-static int
-mark_art_read(
-	struct t_group *group)
+t_bool
+thread_mark_postprocess(
+	int function,
+	t_function feed_type,
+	int respnum)
 {
-	char keytagged[MAXKEYLEN], keycurrent[MAXKEYLEN], keyquit[MAXKEYLEN];
-	int n, cnt = 0;
-	int tmp_num_of_tagged_arts = num_of_tagged_arts;
-	t_function func = MARK_READ_CURRENT;
-
-	if (!tinrc.mark_ignore_tags && got_tagged_unread_arts()) {
-		func = prompt_slk_response(MARK_READ_TAGGED,
-				mark_read_keys,
-				_(txt_mark_art_read_tagged_current),
-				printascii(keytagged, func_to_key(MARK_READ_TAGGED, mark_read_keys)),
-				printascii(keycurrent, func_to_key(MARK_READ_CURRENT, mark_read_keys)),
-				printascii(keyquit, func_to_key(GLOBAL_QUIT, mark_read_keys)));
-	}
+	char mark[] = { '\0', '\0' };
+	int n;
 
-	switch (func) {
-		case MARK_READ_TAGGED: /* mark tagged unread articles as read */
-			cnt = mark_tagged_read(group);
-			show_thread_page();
-			n = find_response(thread_basenote, thdmenu.curr);
-			break;
+	switch (function) {
+		case (FEED_MARK_READ):
+			if (feed_type == FEED_ARTICLE) {
+				mark[0] = get_art_mark(&arts[respnum]);
+				mark_screen(thdmenu.curr, MARK_OFFSET, mark);
+			} else
+				show_thread_page();
 
-		case MARK_READ_CURRENT: /* mark current article as read */
-			n = find_response(thread_basenote, thdmenu.curr);
-			if ((arts[n].status == ART_UNREAD) || (arts[n].status == ART_WILL_RETURN)) {
-				char mark[] = { '\0', '\0' };
+			if ((n = next_unread(respnum)) == -1)	/* no more unread articles */
+				return TRUE;
+			else
+				fixup_thread(n, TRUE);	/* We may be in the next thread now */
+			break;
 
-				art_mark(group, &arts[n], ART_READ);
-				mark[0] = get_art_mark(&arts[n]);
+		case (FEED_MARK_UNREAD):
+			if (feed_type == FEED_ARTICLE) {
+				mark[0] = get_art_mark(&arts[respnum]);
 				mark_screen(thdmenu.curr, MARK_OFFSET, mark);
-			}
+				draw_thread_arrow();
+			} else
+				show_thread_page();
 			break;
 
-		case GLOBAL_QUIT: /* cancel operation */
-		case GLOBAL_ABORT:
 		default:
-			return 0;
-			/* NOTREACHED */
 			break;
 	}
-
-	if ((n = next_unread(n)) == -1)	/* no more unread articles */
-		return GRP_EXIT;
-	else
-		fixup_thread(n, TRUE);	/* We may be in the next thread now */
-
-	if (func == MARK_READ_TAGGED)
-		info_message(_(txt_marked_tagged_arts_as_read), cnt, tmp_num_of_tagged_arts, PLURAL(tmp_num_of_tagged_arts, txt_article));
-
-	return 0;
+	return FALSE;
 }
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/tincfg.tbl tin-2.0.0/src/tincfg.tbl
--- tin-1.8.3/src/tincfg.tbl	2005-06-28 10:31:24.000000000 +0200
+++ tin-2.0.0/src/tincfg.tbl	2011-05-10 23:40:37.798783248 +0200
@@ -2,10 +2,10 @@
 ;   Module    : tincfg.tbl
 ;   Author    : Thomas E. Dickey
 ;   Created   : 1996-11-01
-;   Updated   : 2005-06-20
+;   Updated   : 2011-04-16
 ;   Notes     : #defines and structs for config.c
 ;
-; Copyright (c) 1996-2005 Thomas E. Dickey <dickey@invisible-island.net>
+; Copyright (c) 1996-2011 Thomas E. Dickey <dickey@invisible-island.net>
 ; All rights reserved.
 ;
 ; Redistribution and use in source and binary forms, with or without
@@ -45,16 +45,17 @@
 	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
+#if defined(MULTIBYTE_ABLE) && !defined(NO_LOCALE)
+	utf8_graphics			OPT_ON_OFF
+#endif
 	art_marked_deleted		OPT_CHAR
 	art_marked_inrange		OPT_CHAR
 	art_marked_return		OPT_CHAR
@@ -65,6 +66,7 @@
 	art_marked_killed		OPT_CHAR
 	art_marked_read_selected	OPT_CHAR
 	groupname_max_length		OPT_NUM
+	abbreviate_groupname		OPT_ON_OFF
 	show_info			txt_show_info_type	SHOW_INFO_BOTH+1
 	thread_score			txt_thread_score_type	THREAD_SCORE_WEIGHT+1
 	scroll_lines			OPT_NUM
@@ -73,6 +75,7 @@
 	news_headers_to_not_display	OPT_STRING
 	alternative_handling		OPT_ON_OFF
 	hide_uue			txt_hide_uue_type	UUE_ALL+1
+	verbatim_handling		OPT_ON_OFF
 	tex2iso_conv			OPT_ON_OFF
 	metamail_prog			OPT_STRING
 	ask_for_metamail		OPT_ON_OFF
@@ -86,6 +89,29 @@
 	use_keypad			OPT_ON_OFF
 #endif
 	wrap_column			OPT_NUM
+	trim_article_body		txt_trim_article_body_options NUM_TRIM_ARTICLE_BODY
+	attrib_show_author			txt_show_from	SHOW_FROM_BOTH+1
+	attrib_thread_articles			txt_threading	THREAD_MAX+1
+	attrib_thread_perc			OPT_NUM
+	attrib_sort_article_type		txt_sort_a_type	SORT_ARTICLES_BY_LINES_ASCEND+1
+	attrib_sort_threads_type		txt_sort_t_type	SORT_THREADS_BY_LAST_POSTING_DATE_ASCEND+1
+	attrib_pos_first_unread		OPT_ON_OFF
+	attrib_show_only_unread_arts		OPT_ON_OFF
+	attrib_auto_list_thread		OPT_ON_OFF
+	attrib_auto_select		OPT_ON_OFF
+	attrib_wrap_on_next_unread		OPT_ON_OFF
+	attrib_show_info			txt_show_info_type	SHOW_INFO_BOTH+1
+	attrib_show_signatures			OPT_ON_OFF
+	attrib_news_headers_to_display		OPT_STRING
+	attrib_news_headers_to_not_display	OPT_STRING
+	attrib_alternative_handling		OPT_ON_OFF
+	attrib_verbatim_handling		OPT_ON_OFF
+	attrib_tex2iso_conv			OPT_ON_OFF
+	attrib_ask_for_metamail		OPT_ON_OFF
+	attrib_group_catchup_on_exit		OPT_ON_OFF
+	attrib_thread_catchup_on_exit		OPT_ON_OFF
+	attrib_mark_ignore_tags		OPT_ON_OFF
+	attrib_trim_article_body		txt_trim_article_body_options NUM_TRIM_ARTICLE_BODY
 
 ; getart_limit options
 	getart_limit_options		OPT_TITLE
@@ -101,14 +127,23 @@
 	score_select			OPT_NUM
 	filter_days			OPT_NUM
 	add_posted_to_filter		OPT_ON_OFF
+	attrib_add_posted_to_filter	OPT_ON_OFF
+	attrib_quick_kill_scope		OPT_STRING
+	attrib_quick_kill_header	txt_quick_ks_header_options FILTER_LINES
+	attrib_quick_kill_case		OPT_ON_OFF
+	attrib_quick_kill_expire	OPT_ON_OFF
+	attrib_quick_select_scope	OPT_STRING
+	attrib_quick_select_header	txt_quick_ks_header_options FILTER_LINES
+	attrib_quick_select_case	OPT_ON_OFF
+	attrib_quick_select_expire	OPT_ON_OFF
 
 ; colour options
 #ifdef HAVE_COLOR
 	color_options			OPT_TITLE
 	use_color			OPT_ON_OFF
 	col_normal			txt_colors	MAX_COLOR+1
-	col_back			txt_colors	MAX_COLOR+1
-	col_invers_bg			txt_colors	MAX_COLOR+1
+	col_back			txt_colors	MAX_BACKCOLOR+1
+	col_invers_bg			txt_colors	MAX_BACKCOLOR+1
 	col_invers_fg			txt_colors	MAX_COLOR+1
 	col_text			txt_colors	MAX_COLOR+1
 	col_minihelp			txt_colors	MAX_COLOR+1
@@ -125,6 +160,7 @@
 	col_title			txt_colors	MAX_COLOR+1
 	col_signature			txt_colors	MAX_COLOR+1
 	col_urls			txt_colors	MAX_COLOR+1
+	col_verbatim			txt_colors	MAX_COLOR+1
 #endif
 	url_highlight			OPT_ON_OFF
 	word_highlight			OPT_ON_OFF
@@ -156,18 +192,42 @@
 #if defined(HAVE_ICONV_OPEN_TRANSLIT) && defined(CHARSET_CONVERSION)
 	translit			OPT_ON_OFF
 #endif
+	attrib_from			OPT_STRING
+	attrib_organization			OPT_STRING
+	attrib_prompt_followupto		OPT_ON_OFF
+	attrib_followup_to		OPT_STRING
+	attrib_sigfile				OPT_STRING
+	attrib_sigdashes			OPT_ON_OFF
+	attrib_signature_repost		OPT_ON_OFF
+	attrib_quote_chars			OPT_STRING
+	attrib_news_quote_format		OPT_STRING
+	attrib_advertising			OPT_ON_OFF
 #ifndef CHARSET_CONVERSION
 	mm_charset			OPT_STRING
-#endif
-#ifdef CHARSET_CONVERSION
+#else
 	mm_network_charset		txt_mime_charsets	NUM_MIME_CHARSETS
+	attrib_mm_network_charset		txt_mime_charsets	NUM_MIME_CHARSETS
+	attrib_undeclared_charset		OPT_STRING
+#endif
+	attrib_post_mime_encoding		txt_mime_encodings	NUM_MIME_ENCODINGS
+	attrib_post_8bit_header		OPT_ON_OFF
+	attrib_mail_mime_encoding		txt_mime_encodings	NUM_MIME_ENCODINGS
+	attrib_mail_8bit_header		OPT_ON_OFF
+	attrib_mime_forward		OPT_ON_OFF
+	attrib_mailing_list		OPT_STRING
+	attrib_auto_cc_bcc		txt_auto_cc_bcc_options AUTO_CC_BCC+1
+	attrib_fcc			OPT_STRING
+	attrib_x_body			OPT_STRING
+	attrib_x_comment_to		OPT_ON_OFF
+	attrib_x_headers		OPT_STRING
+#if defined(NO_LOCALE) && defined(CHARSET_CONVERSION)
+	mm_local_charset		OPT_STRING
 #endif
 	post_mime_encoding		txt_mime_encodings	NUM_MIME_ENCODINGS
 	post_8bit_header		OPT_ON_OFF
 	mail_mime_encoding		txt_mime_encodings	NUM_MIME_ENCODINGS
 	mail_8bit_header		OPT_ON_OFF
-	auto_cc				OPT_ON_OFF
-	auto_bcc			OPT_ON_OFF
+	auto_cc_bcc			txt_auto_cc_bcc_options AUTO_CC_BCC+1
 	spamtrap_warning_addresses	OPT_STRING
 
 ; saving/printing options
@@ -178,11 +238,23 @@
 	savedir				OPT_STRING
 	auto_save			OPT_ON_OFF
 	mark_saved_read			OPT_ON_OFF
-	post_process			txt_post_process_type	POST_PROC_YES+1
+	post_process_type		txt_post_process_types	POST_PROC_YES+1
 	post_process_view		OPT_ON_OFF
 	process_only_unread		OPT_ON_OFF
+	attrib_maildir				OPT_STRING
+	attrib_batch_save			OPT_ON_OFF
+	attrib_savedir				OPT_STRING
+	attrib_savefile				OPT_STRING
+	attrib_auto_save			OPT_ON_OFF
+	attrib_delete_tmp_files			OPT_ON_OFF
+	attrib_mark_saved_read			OPT_ON_OFF
+	attrib_post_process_type		txt_post_process_types	POST_PROC_YES+1
+	attrib_post_process_view		OPT_ON_OFF
+	attrib_process_only_unread		OPT_ON_OFF
+	attrib_mime_types_to_save		OPT_STRING
 #ifndef DISABLE_PRINTING
 	print_header			OPT_ON_OFF
+	attrib_print_header			OPT_ON_OFF
 	printer				OPT_STRING
 #endif
 
@@ -199,6 +271,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
@@ -230,3 +304,9 @@
 #if defined(HAVE_LIBICUUC) && defined(MULTIBYTE_ABLE) && defined(HAVE_UNICODE_UBIDI_H) && !defined(NO_LOCALE)
 	render_bidi			OPT_ON_OFF
 #endif
+	attrib_start_editor_offset		OPT_ON_OFF
+	attrib_editor_format			OPT_STRING
+#ifdef HAVE_ISPELL
+	attrib_ispell			OPT_STRING
+#endif
+	attrib_date_format			OPT_STRING
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/tmpfile.c tin-2.0.0/src/tmpfile.c
--- tin-1.8.3/src/tmpfile.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/tmpfile.c	2011-04-17 16:04:31.751270659 +0200
@@ -1,4 +1,4 @@
-/*-
+/*
  * Copyright (c) 1990, 1993
  *      The Regents of the University of California.  All rights reserved.
  *
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/trace.c tin-2.0.0/src/trace.c
--- tin-1.8.3/src/trace.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/trace.c	2011-04-17 16:04:31.807279185 +0200
@@ -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-2011 Thomas Dickey <dickey@invisible-island.net>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/version.c tin-2.0.0/src/version.c
--- tin-1.8.3/src/version.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/version.c	2011-04-17 16:04:31.835283445 +0200
@@ -3,10 +3,10 @@
  *  Module    : version.c
  *  Author    : U. Janssen
  *  Created   : 2003-05-11
- *  Updated   : 2005-07-02
+ *  Updated   : 2008-11-22
  *  Notes     :
  *
- * Copyright (c) 2003-2006 Urs Janssen <urs@tin.org>
+ * Copyright (c) 2003-2011 Urs Janssen <urs@tin.org>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -38,9 +38,6 @@
 #ifndef TIN_H
 #	include "tin.h"
 #endif /* !TIN_H */
-#ifndef VERSION_H
-#	include "version.h"
-#endif /* !VERSION_H */
 
 
 /*
@@ -57,7 +54,7 @@
  * Don't make the arguments to sscanf() consts, as some old systems require
  * them to writable (but do not change them)
  */
-int
+enum rc_state
 check_upgrade(
 	char *line,
 	const char *skip,
@@ -101,20 +98,20 @@ check_upgrade(
 
 void
 upgrade_prompt_quit(
-	int reason,
+	enum rc_state reason,
 	const char *file)
 {
 	switch (reason) {
 		case RC_UPGRADE:
-			error_message(_(txt_warn_update), VERSION, file);
+			error_message(2, _(txt_warn_update), VERSION, file);
 			break;
 
 		case RC_DOWNGRADE:
-			error_message(_(txt_warn_downgrade), VERSION, file);
+			error_message(2, _(txt_warn_downgrade), VERSION, file);
 			break;
 
 		case RC_ERROR: /* can't parse internal version string, should not happen */
-			error_message(txt_warn_unrecognized_version);
+			error_message(2, txt_warn_unrecognized_version);
 			giveup();
 			/* NOTREACHED */
 			break;
@@ -123,7 +120,7 @@ upgrade_prompt_quit(
 			return;
 	}
 
-	error_message(_(txt_return_key));
+	error_message(2, _(txt_return_key));
 
 	/*
 	 * TODO: document, use something unbuffered here
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/xface.c tin-2.0.0/src/xface.c
--- tin-1.8.3/src/xface.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/xface.c	2011-04-17 16:04:31.891291968 +0200
@@ -3,10 +3,10 @@
  *  Module    : xface.c
  *  Author    : Joshua Crawford & Drazen Kacar
  *  Created   : 2003-04-27
- *  Updated   : 2004-07-27
+ *  Updated   : 2009-08-14
  *  Notes     :
  *
- * Copyright (c) 2003-2006 Joshua Crawford <mortarn@softhome.net> & Drazen Kacar <dave@willfork.com>
+ * Copyright (c) 2003-2011 Joshua Crawford <mortarn@softhome.net> & Drazen Kacar <dave@willfork.com>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,9 +36,7 @@
 
 
 /*
- * TODO: - add configure check option for use_slrnface
- *         (see comments include/autoconf.hin)
- *       - document the used vars/files/dir in the mapage
+ * TODO: - document the used vars/files/dir in the mapage
  *       - move strings to lang.c
  */
 
@@ -57,24 +55,32 @@ slrnface_start(
 {
 	char *fifo;
 	char *ptr;
-	int pathlen, status;
+	int status;
 	pid_t pid, pidst;
+	size_t pathlen;
 	struct utsname u;
 
-	if (!tinrc.use_slrnface)
+	if (tinrc.use_slrnface == FALSE)
 		return;
 
 #ifdef HAVE_IS_XTERM
-	if (!is_xterm())
-		/* error_message(_("Can't run slrnface: Not running in a xterm.")); */
+	if (!is_xterm()) {
+#	ifdef DEBUG
+		if (debug & DEBUG_MISC)
+			error_message(2, _("Can't run slrnface: Not running in a xterm."));
+#	endif /* DEBUG */
 		return;
+	}
 #endif /* HAVE_IS_XTERM */
 
 	/*
 	 * $DISPLAY holds the (default) display name
 	 */
 	if (!getenv("DISPLAY")) {
-		/* error_message(_("Can't run slrnface: Environment variable %s not found."), "DISPLAY"); */
+#	ifdef DEBUG
+		if (debug & DEBUG_MISC)
+			error_message(2, _("Can't run slrnface: Environment variable %s not found."), "DISPLAY");
+#	endif /* DEBUG */
 		return;
 	}
 
@@ -82,19 +88,25 @@ slrnface_start(
 	 * $WINDOWID holds the X window id number of the xterm window
 	 */
 	if (!getenv("WINDOWID")) {
-		/* error_message(_("Can't run slrnface: Environment variable %s not found."), "WINDOWID"); */
+#	ifdef DEBUG
+		if (debug & DEBUG_MISC)
+			error_message(2, _("Can't run slrnface: Environment variable %s not found."), "WINDOWID");
+#	endif /* DEBUG */
 		return;
 	}
 
 	uname(&u);
 	if (!(ptr = getenv("HOME"))) { /* TODO: use tin global 'homedir' instead? or even rcdir? */
-		error_message(_("Can't run slrnface: Environment variable %s not found."), "HOME");
+#	ifdef DEBUG
+		if (debug & DEBUG_MISC)
+			error_message(2, _("Can't run slrnface: Environment variable %s not found."), "HOME");
+#	endif /* DEBUG */
 		return;
 	}
 	pathlen = strlen(ptr) + strlen("/.slrnfaces/") + strlen(u.nodename) + 30;
 	fifo = my_malloc(pathlen);
-	sprintf(fifo, "%s/.slrnfaces", ptr);
-	if (mkdir(fifo, 0700)) {	/* TODO: use my_mkdir() */
+	snprintf(fifo, pathlen, "%s/.slrnfaces", ptr);
+	if (my_mkdir(fifo, (mode_t) S_IRWXU)) {
 		if (errno != EEXIST) {
 			perror_message(_("Can't run slrnface: failed to create %s"), fifo);
 			free(fifo);
@@ -103,8 +115,8 @@ slrnface_start(
 	} else {
 		FILE *fp;
 
-		/* We'll abuse fifo filename memory here. It's long enough. */
-		sprintf(fifo, "%s/.slrnfaces/README", ptr);
+		/* We abuse fifo filename memory here. It is long enough. */
+		snprintf(fifo, pathlen, "%s/.slrnfaces/README", ptr);
 		if ((fp = fopen(fifo, "w")) != NULL) {
 			fputs(_("This directory is used to create named pipes for communication between\n"
 "slrnface and its parent process. It should normally be empty because\n"
@@ -118,9 +130,9 @@ slrnface_start(
 		}
 	}
 
-	snprintf(fifo, pathlen, "%s/.slrnfaces/%s.%ld", ptr, u.nodename, (long) getpid());
-	if (!(status = strlen(fifo))) {
-		error_message(_("Can't run slrnface: couldn't construct fifo name."));
+	status = snprintf(fifo, pathlen, "%s/.slrnfaces/%s.%ld", ptr, u.nodename, (long) getpid());
+	if (status <= 0 || status >= pathlen) {
+		error_message(2, _("Can't run slrnface: couldn't construct fifo name."));
 		unlink(fifo);
 		free(fifo);
 		return;
@@ -159,7 +171,7 @@ slrnface_start(
 				pidst = waitpid(pid, &status, 0);
 			} while (pidst == -1 && errno == EINTR);
 			if (!WIFEXITED(status))
-				error_message(_("Slrnface abnormally exited, code %d."), status);
+				error_message(2, _("Slrnface abnormally exited, code %d."), status);
 			else {
 				const char *message;
 
@@ -203,7 +215,7 @@ slrnface_start(
 						message = "unknown error";
 				}
 				if (message)
-					error_message(_("Slrnface failed: %s."), message);
+					error_message(2, _("Slrnface failed: %s."), message);
 			}
 	}
 	unlink(fifo);
@@ -274,7 +286,7 @@ slrnface_show_xface(
 }
 
 #else
-static void no_xface(void);        /* proto-type */
+static void no_xface(void);	/* proto-type */
 static void
 no_xface(	/* ANSI C requires non-empty source file */
 	void)
diff -Nurp --exclude='.bzr*' tin-1.8.3/src/xref.c tin-2.0.0/src/xref.c
--- tin-1.8.3/src/xref.c	2005-12-02 12:07:37.000000000 +0100
+++ tin-2.0.0/src/xref.c	2011-04-17 16:04:31.915295622 +0200
@@ -3,10 +3,10 @@
  *  Module    : xref.c
  *  Author    : I. Lea & H. Brugge
  *  Created   : 1993-07-01
- *  Updated   : 2005-05-04
+ *  Updated   : 2009-04-09
  *  Notes     :
  *
- * Copyright (c) 1993-2006 Iain Lea <iain@bricbrac.de>
+ * Copyright (c) 1993-2011 Iain Lea <iain@bricbrac.de>
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -45,11 +45,10 @@
 /*
  * local prototypes
  */
-#if defined(NNTP_ABLE) && defined(XHDR_XREF)
-	static void read_xref_header(struct t_article *art);
-#endif /* NNTP_ABLE && XHDR_XREF */
 static FILE *open_overview_fmt_fp(void);
 
+struct t_overview_fmt *ofmt;
+t_bool expensive_over_parse = FALSE;
 
 /*
  * Open the NEWSLIBDIR/overview.fmt file locally or send LIST OVERVIEW.FMT
@@ -58,27 +57,22 @@ static FILE *
 open_overview_fmt_fp(
 	void)
 {
-	char line[NNTP_STRLEN];
-
 #ifdef NNTP_ABLE
 	if (read_news_via_nntp && !read_saved_news) {
-		if (!nntp_caps.over_cmd)
+		if (!*nntp_caps.over_cmd)
 			return (FILE *) 0;
-
-		snprintf(line, sizeof(line), "LIST %s", OVERVIEW_FMT);
-		return (nntp_command(line, OK_GROUPS, NULL, 0));
-	} else {
-#endif /* NNTP_ABLE */
-		joinpath(line, libdir, OVERVIEW_FMT);
-		return (fopen(line, "r"));
-#ifdef NNTP_ABLE
-	}
+		if ((nntp_caps.type == CAPABILITIES && nntp_caps.list_overview_fmt) || nntp_caps.type != CAPABILITIES)
+			return (nntp_command("LIST OVERVIEW.FMT", OK_GROUPS, NULL, 0));
+		else
+			return (FILE *) 0;
+	} else
 #endif /* NNTP_ABLE */
+		return (fopen(overviewfmt_file, "r"));
 }
 
 
 /*
- * Read NEWSLIBDIR/overview.fmt file to check if Xref:full is enabled/disabled
+ * Read overview.fmt file to check if Xref:full is enabled/disabled
  */
 t_bool
 overview_xref_support(
@@ -86,73 +80,237 @@ overview_xref_support(
 {
 	FILE *fp;
 	char *ptr;
+	char *p, *q;
 	t_bool supported = FALSE;
+	size_t res_fields = 9; /* initial number of overview fields */
+	size_t fields = 0;
+	size_t i;
+
+	ofmt[0].type = OVER_T_INT;
+	ofmt[0].name = my_strdup("Artnum:");
 
 	if ((fp = open_overview_fmt_fp()) != NULL) {
 		while ((ptr = tin_fgets(fp, FALSE)) != NULL) {
+			if (*ptr == '#' || *ptr == '\n')	/* skip comments and empty lines */
+				continue;
+
 #if defined(DEBUG) && defined(NNTP_ABLE)
-			debug_nntp("<<<", ptr);
+			if (debug & DEBUG_NNTP)
+				debug_print_file("NNTP", "<<< %s", ptr);
 #endif /* DEBUG && NNTP_ABLE */
-			if (!supported && STRNCASECMPEQ(ptr, "Xref:full", 9))
-				supported = TRUE;
-		}
-		TIN_FCLOSE(fp);
-		/*
-		 * If user aborted with 'q', then we continue regardless. If Xref was
-		 * found, then fair enough. If not, tough. No real harm done
-		 */
-	}
 
-	if (!supported)
-		wait_message(2, _(txt_warn_xref_not_supported));
+			fields++;
 
-	return supported;
-}
+			/* expand overview fmt array */
+			if (fields >= res_fields) {
+				res_fields <<= 1;
+				ofmt = my_realloc(ofmt, sizeof(struct t_overview_fmt) * res_fields);
+			}
 
+			if ((p = strchr(ptr, ':'))) {
+				if (p == ptr) { /* metadata items start with : */
+					/* currently there is only :lines ands :bytes reserved */
+					if (!strcasecmp(ptr, ":lines")) {
+						ofmt[fields].type = OVER_T_INT;
+						ofmt[fields].name = my_strdup("Lines:");
+						if (fields != 7) {
+							expensive_over_parse = TRUE;
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 7);
+#endif /* DEBUG */
+						}
+						continue;
+					}
 
-/*
- * read xref reference for current article
- * This enables crosspost marking even if the xref records are not
- * part of the xover record.
- */
-#if defined(NNTP_ABLE) && defined(XHDR_XREF)
-static void
-read_xref_header(
-	struct t_article *art)
-{
-	FILE *fp;
-	char *ptr, *q;
-	char buf[HEADER_LEN];
-	long artnum;
+					if (!strcasecmp(ptr, ":bytes")) {
+						ofmt[fields].type = OVER_T_INT;
+						ofmt[fields].name = my_strdup("Bytes:");
+						if (fields != 6) {
+							expensive_over_parse = TRUE;
+#ifdef DEBUG
+							if (debug & DEBUG_NNTP)
+								debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 6);
+#endif /* DEBUG */
+						}
+						continue;
+					}
+					/* unknown metadata item */
+				}
 
-	snprintf(buf, sizeof(buf), "XHDR XREF %ld", art->artnum);
-	if ((fp = nntp_command(buf, OK_HEAD, NULL, 0)) == NULL)
-		return;
+				/* non metadata items end with : or :full */
+				/* optional items require :full */
+				if (!strcasecmp(p, ":full")) {
+					ofmt[fields].type = OVER_T_FSTRING;
+					q = strchr(p, ':');
+					*(++q) = '\0';
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields < 7) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected > %d", ptr, fields, 7);
+#endif /* DEBUG */
+					}
+					continue;
+				}
 
-	while ((ptr = tin_fgets(fp, FALSE)) != NULL) {
-		while (*ptr && isspace((int) *ptr))
-			ptr++;
-		if (*ptr == '.')
-			break;
-		/*
-		 * read the article number
-		 */
-		artnum = atol(ptr);
-		if ((artnum == art->artnum) && !art->xref && !strstr(ptr, "(none)")) {
-			if ((q = strchr(ptr, ' ')) == NULL)	/* skip article number */
-				continue;
-			ptr = q;
-			while (*ptr && isspace((int) *ptr))
-				ptr++;
-			q = strchr(ptr, '\n');
-			if (q)
-				*q = '\0';
-			art->xref = my_strdup(ptr);
+				/* madatory items */
+				if (!strcasecmp(ptr, "Subject:")) {
+					ofmt[fields].type = OVER_T_STRING;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 1) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 1);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+
+				if (!strcasecmp(ptr, "From:")) {
+					ofmt[fields].type = OVER_T_STRING;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 2) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 2);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+
+				if (!strcasecmp(ptr, "Date:")) {
+					ofmt[fields].type = OVER_T_STRING;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 3) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 3);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+
+				if (!strcasecmp(ptr, "Message-ID:")) {
+					ofmt[fields].type = OVER_T_STRING;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 4) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 4);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+
+				if (!strcasecmp(ptr, "References:")) {
+					ofmt[fields].type = OVER_T_STRING;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 5) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 5);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+
+				if (!strcasecmp(ptr, "Bytes:")) {
+					ofmt[fields].type = OVER_T_INT;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 6) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 6);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+
+				if (!strcasecmp(ptr, "Lines:")) {
+					ofmt[fields].type = OVER_T_INT;
+					ofmt[fields].name = my_strdup(ptr);
+					if (fields != 7) {
+						expensive_over_parse = TRUE;
+#ifdef DEBUG
+						if (debug & DEBUG_NNTP)
+							debug_print_file("NNTP", "OVERVIEW.FTM: %s at position %d expected %d", ptr, fields, 7);
+#endif /* DEBUG */
+					}
+					continue;
+				}
+			}
+			/* bogus entry */
+			ofmt[fields].type = OVER_T_ERROR;
+			ofmt[fields].name = my_strdup(ptr);
+		}
+		TIN_FCLOSE(fp);
+	}
+
+	fields++;
+	/* resize */
+	ofmt = my_realloc(ofmt, sizeof(struct t_overview_fmt) * (fields + 1));
+
+	/* end marker */
+	ofmt[fields].type = OVER_T_ERROR;
+	ofmt[fields].name = NULL;
+
+	if (fields < 2) {
+#ifdef DEBUG
+		if (debug & DEBUG_NNTP)
+			debug_print_file("NNTP", "OVERVIEW.FTM: Empty response - using safe defaults");
+#endif /* DEBUG */
+		ofmt = my_realloc(ofmt, sizeof(struct t_overview_fmt) * (8 + 1));
+		ofmt[1].type = OVER_T_STRING;
+		ofmt[1].name = my_strdup("Subject:");
+		ofmt[2].type = OVER_T_STRING;
+		ofmt[2].name = my_strdup("From:");
+		ofmt[3].type = OVER_T_STRING;
+		ofmt[3].name = my_strdup("Date:");
+		ofmt[4].type = OVER_T_STRING;
+		ofmt[4].name = my_strdup("Message-ID:");
+		ofmt[5].type = OVER_T_STRING;
+		ofmt[5].name = my_strdup("References:");
+		ofmt[6].type = OVER_T_INT;
+		ofmt[6].name = my_strdup("Bytes:");
+		ofmt[7].type = OVER_T_INT;
+		ofmt[7].name = my_strdup("Lines:");
+		ofmt[8].type = OVER_T_ERROR;
+		ofmt[8].name = NULL;
+		fields = 8;
+	}
+
+	for (i = 0; i <= fields; i++) {
+		if (ofmt[i].type == OVER_T_FSTRING) {
+			if (!strcasecmp(ofmt[i].name, "Xref:"))
+				supported = TRUE;
 		}
 	}
-	return;
+
+	/*
+	 * If user aborted with 'q', then we continue regardless. If Xref was
+	 * found, then fair enough. If not, tough. No real harm done
+	 */
+	/*
+	 * TODO: warning message is not correct
+	 *       - in the NNTP_ABLE but !read_news_via_nntp case when
+	 *         OVERVIEW.FMT-file wasn't found or didn't mention Xref:
+	 *       - if the used command is OVER instead of XOVER
+	 *       - if the used command is HDR XREF instead of XHDR XREF
+	 *       - if server doesn't mention XREF in LIST HEADERS
+	 */
+	if (read_news_via_nntp && !supported)
+		wait_message(2, _(txt_warn_xref_not_supported));
+
+	return supported;
 }
-#endif /* NNTP_ABLE && XHDR_XREF */
 
 
 /*
@@ -172,12 +330,6 @@ art_mark_xref_read(
 	char *debug_mesg;
 #endif /* DEBUG */
 
-#if defined(NNTP_ABLE) && defined(XHDR_XREF)
-	/* xref_supported => xref info was already read in xover record */
-	if (!xref_supported && read_news_via_nntp && art && !art->xref)
-		read_xref_header(art);
-#endif /* NNTP_ABLE && XHDR_XREF */
-
 	if (art->xref == NULL)
 		return;
 
@@ -213,19 +365,17 @@ art_mark_xref_read(
 
 		c = *ptr;
 		*ptr = '\0';
-		group = group_find(groupname);
+		group = group_find(groupname, FALSE);
 
 #ifdef DEBUG
-		if (debug == 3) {
+		if (debug & DEBUG_NEWSRC) {
 			debug_mesg = fmt_string("LOOKUP Xref: [%s:%ld] active=[%s] num_unread=[%ld]",
 				groupname, artnum,
 				(group ? group->name : ""),
 				(group ? group->newsrc.num_unread : 0));
-#	ifdef DEBUG_NEWSRC
 			debug_print_comment(debug_mesg);
 			debug_print_bitmap(group, NULL);
-#	endif /* DEBUG_NEWSRC */
-			error_message(debug_mesg);
+/*			error_message(2, debug_mesg); */
 			free(debug_mesg);
 		}
 #endif /* DEBUG */
@@ -237,14 +387,12 @@ art_mark_xref_read(
 					if (group->newsrc.num_unread > 0)
 						group->newsrc.num_unread--;
 #ifdef DEBUG
-					if (debug == 3) {
+					if (debug & DEBUG_NEWSRC) {
 						debug_mesg = fmt_string("FOUND!Xref: [%s:%ld] marked READ num_unread=[%ld]",
 							groupname, artnum, group->newsrc.num_unread);
-#	ifdef DEBUG_NEWSRC
-						debug_print_comment(debug_mesg);
-						debug_print_bitmap(group, NULL);
-#	endif /* DEBUG_NEWSRC */
-						wait_message(2, debug_mesg);
+							debug_print_comment(debug_mesg);
+							debug_print_bitmap(group, NULL);
+/*						error_message(2, debug_mesg); */
 						free(debug_mesg);
 					}
 #endif /* DEBUG */
@@ -268,7 +416,9 @@ NSETRNG1(
 	long i;
 
 	if (bitmap == NULL) {
-		error_message("NSETRNG1() failed. Bitmap == NULL");
+#ifdef DEBUG
+		error_message(2, "NSETRNG1() failed. Bitmap == NULL");
+#endif /* DEBUG */
 		return;
 	}
 
@@ -300,7 +450,7 @@ NSETRNG0(
 	long i;
 
 	if (bitmap == NULL) {
-		error_message("NSETRNG0() failed. Bitmap == NULL");
+		error_message(2, "NSETRNG0() failed. Bitmap == NULL");
 		return;
 	}
 
diff -Nurp --exclude='.bzr*' tin-1.8.3/tin.spec tin-2.0.0/tin.spec
--- tin-1.8.3/tin.spec	2006-04-25 14:39:24.000000000 +0200
+++ tin-2.0.0/tin.spec	2011-05-29 01:32:12.553089380 +0200
@@ -1,15 +1,15 @@
 Name: tin
-Summary: tin - an easy-to-use USENET news reader
-Version: 1.8.3
+Summary: easy-to-use USENET news reader
+Version: 2.0.0
 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/v2.0/%{name}-%{version}.tar.bz2
 Buildroot: /var/tmp/%{name}-%{version}-%{release}
 Packager: Dirk Nimmich <nimmich@muenster.de>
 
 %description
-tin is an easy-to-use USENET news reader for the console using NNTP.
+An easy-to-use USENET news reader for the console using NNTP.
 It supports threading, scoring, different charsets, and many other
 useful things. It has also support for different languages.
 
@@ -54,4 +54,3 @@ rm -rf $RPM_BUILD_ROOT
 %changelog
 * Tue Jul 22 2003 Dirk Nimmich <nimmich@muenster.de>
   Specfile created for tin 1.6.0.
-
diff -Nurp --exclude='.bzr*' tin-1.8.3/tools/metamutt tin-2.0.0/tools/metamutt
--- tin-1.8.3/tools/metamutt	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/tools/metamutt	2011-04-17 16:04:28.946843886 +0200
@@ -17,7 +17,7 @@
 # Pressing "g" allows you to post a Followup to a newsgroup.
 #
 # Options:
-#  -D allows splits a digest into seperate mails by using formail
+#  -D allows splits a digest into separate mails by using formail
 #     (Feature added by Martin Ramsch <m.ramsch@computer.org>)
 #
 # This script tries to find a working muttrc (which is sourced first)
diff -Nurp --exclude='.bzr*' tin-1.8.3/tools/opt-case.pl tin-2.0.0/tools/opt-case.pl
--- tin-1.8.3/tools/opt-case.pl	2005-06-28 10:31:20.000000000 +0200
+++ tin-2.0.0/tools/opt-case.pl	2011-04-17 16:04:29.018854844 +0200
@@ -56,7 +56,7 @@ while (defined($line = <>)) {
 	# that won't hurt, it just doesn't optimize'em
 	if ($line =~ m/^(subj|from|msgid(?:|_last|_only)|refs_only|xref)=(.*[^\W\d_].*)$/o) {
 		print "# rule rewritten, it might be possible that it can be further otpimized\n";
-		print "# check lines with (?i) if they realy need to be case insensitve and if\n";
+		print "# check lines with (?i) if they really need to be case insensitve and if\n";
 		print "# not remove leading (?i) manualy\n";
 		print "$1=$mod$2\n";
 		next;
diff -Nurp --exclude='.bzr*' tin-1.8.3/tools/tinews.pl tin-2.0.0/tools/tinews.pl
--- tin-1.8.3/tools/tinews.pl	2006-03-04 12:57:03.000000000 +0100
+++ tin-2.0.0/tools/tinews.pl	2011-08-10 09:47:46.083357625 +0200
@@ -4,7 +4,7 @@
 # signs the article and posts it.
 #
 #
-# Copyright (c) 2002-2006 Urs Janssen <urs@tin.org>,
+# Copyright (c) 2002-2011 Urs Janssen <urs@tin.org>,
 #                         Marc Brockschmidt <marc@marcbrockschmidt.de>
 #
 # Redistribution and use in source and binary forms, with or without
@@ -32,82 +32,103 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 #
-# TODO: - FIXME add debug mode which doesn't delete tmp-files and is verbose
-#         (e.g. warns about missing mime-headers if body contains 8bit
-#          chars)
+# TODO: - add debug mode which doesn't delete tmp-files and is verbose
 #       - add pgp6 support
-#       - check for ~/.newsauth (and ~/.nntpauth?) and use username/password
-#         if found
 #       - check for /etc/nntpserver (and /etc/news/server)
-#       - allow config in ~/.tinewsrc
+#       - also check for ~/.nntpauth?
 #       - add $PGPOPTS, $PGPPATH, $GNUPGHOME support
-#       - cleanup, remove duplicated code
+#       - add pid to pgptmpf to allow multiple simultaneous instances
+#       - cleanup and remove duplicated code
 #
+
+use strict;
+use warnings;
+
 # version Number
-my $version = "1.1.10";
+my $version = "1.1.29";
 
 my %config;
 
-$config{'NNTPServer'}	= 'news';	# your NNTP servers name
-$config{'NNTPPort'}	= 119;		# NNTP-port
-$config{'NNTPUser'}	= '';
-$config{'NNTPPass'}	= '';
+# configuration, may be overwritten via ~/.tinewsrc
+$config{'NNTPServer'}	= 'news';	# your NNTP servers name, may be set via $NNTPSERVER
+$config{'NNTPPort'}		= 119;	# NNTP-port, may be set via $NNTPPORT
+$config{'NNTPUser'}		= '';	# username for nntp-auth, may be set via ~/.newsauth
+$config{'NNTPPass'}		= '';	# password for nntp-auth, may be set via ~/.newsauth
+
+$config{'PGPSigner'}	= '';	# sign as who?
+$config{'PGPPass'}		= '';	# pgp2 only
+$config{'PathtoPGPPass'}= '';	# pgp2, pgp5 and gpg
+$config{'PGPPassFD'}	= 9;	# file descriptor used for input redirection of PathtoPGPPass, GPG and PGP5 only
+
+$config{'pgp'}			= '/usr/bin/pgp';	# path to pgp
+$config{'PGPVersion'}	= '2';	# Use 2 for 2.X, 5 for PGP > 2.X and GPG for GPG
+$config{'digest-algo'}	= 'MD5';# Digest Algorithm for GPG. Must be supported by your installation
+
+$config{'Interactive'}	= 'yes';# allow interactive usage
+
+$config{'sig_path'}		= glob('~/.signature');	# path to signature
+$config{'add_signature'}= 'yes';# Add $config{'sig_path'} to posting if there is no sig
+$config{'sig_max_lines'}= 4;	# max number of signatures lines
 
-$config{'PGPSigner'}	= '';		# sign as who?
-$config{'PGPPass'}	= '';		# pgp2 only
-$config{'PathtoPGPPass'}= '';		# pgp2, pgp5 and gpg
+$config{'sendmail'}		= '| /usr/sbin/sendmail -i -t'; # set to '' to disable mail-actions
 
-$config{'pgp'}		= '/usr/bin/pgp';# path to pgp
-$config{'PGPVersion'}	= '2';		# Use 2 for 2.X, 5 for PGP > 2.X and GPG for GPG
-$config{'digest-algo'}	= 'MD5';	# Digest Algorithm for GPG -- Must be supported by your installation
+$config{'pgptmpf'}		= 'pgptmp';	# temporary file for PGP.
 
-$config{'Interactive'}	= "yes";	# allow interactive usage
-
-$config{'add_signature'}= "yes";	# Add ~/.signature to posting if there is no sig
+$config{'pgpheader'}	= 'X-PGP-Sig';
+$config{'pgpbegin'}		= '-----BEGIN PGP SIGNATURE-----';	# Begin of PGP-Signature
+$config{'pgpend'}		= '-----END PGP SIGNATURE-----';	# End of PGP-Signature
 
-$config{'sendmail'}	= '| /usr/sbin/sendmail -i -t'; # set to '' to disable mail-actions
+# $config{'canlock_secret'}	= '~/.cancelsecret';		# Path to canlock secret file
 
 $config{'PGPSignHeaders'} = ['From', 'Newsgroups', 'Subject', 'Control',
-	'Supersedes', 'Followup-To', 'Date', 'Sender', 'Approved',
+	'Supersedes', 'Followup-To', 'Date', 'Injection-Date', 'Sender', 'Approved',
 	'Message-ID', 'Reply-To', 'Cancel-Key', 'Also-Control',
 	'Distribution'];
 $config{'PGPorderheaders'} = ['from', 'newsgroups', 'subject', 'control',
-	'supersedes', 'followup-To', 'date', 'organization', 'lines',
-	'sender', 'approved', 'distribution', 'message-id',
+	'supersedes', 'followup-To', 'date', 'injection-date', 'organization',
+	'lines', 'sender', 'approved', 'distribution', 'message-id',
 	'references', 'reply-to', 'mime-version', 'content-type',
 	'content-transfer-encoding', 'summary', 'keywords', 'cancel-lock',
 	'cancel-key', 'also-control', 'x-pgp', 'user-agent'];
 
-$config{'pgptmpf'}	= 'pgptmp';	# temporary file for PGP.
-
-$config{'pgpheader'}	= 'X-PGP-Sig';
-$config{'pgpbegin'}	= '-----BEGIN PGP SIGNATURE-----';	# Begin of PGP-Signature
-$config{'pgpend'}	= '-----END PGP SIGNATURE-----';	# End of PGP-Signature
-
 ################################################################################
 
-use strict;
 use Getopt::Long qw(GetOptions);
 use Net::NNTP;
 use Time::Local;
 use Term::ReadLine;
 
-my $pname = $0;
-$pname =~ s#^.*/##;
+(my $pname = $0) =~ s#^.*/##;
 
 my %cli_headers;
 
+# read config file ~/.tinewsrc if present
+if (open(my $TINEWSRC, '<', (glob('~/.tinewsrc'))[0])) {
+	while (defined($_ = <$TINEWSRC>)) {
+		if (m/^([^#\s=]+)\s*=\s*(\S[^#]+)/io) {
+			chomp($config{$1} = $2);
+		}
+	}
+	close($TINEWSRC);
+}
+
+# digest-algo is case sensitive and should be all uppercase
+$config{'digest-algo'} = uc($config{'digest-algo'});
+
+# these env-vars have higher priority
 $config{'NNTPServer'} = $ENV{'NNTPSERVER'} if ($ENV{'NNTPSERVER'});
 $config{'NNTPPort'} = $ENV{'NNTPPORT'} if ($ENV{'NNTPPORT'});
 
 # Get options:
 $Getopt::Long::ignorecase=0;
-GetOptions('A|V|W|O|no-organization|h|headers' => [], #do nothing
-	'debug|D|N'	=> \$config{'debug'}, #XXX
+GetOptions('A|V|W|O|no-organization|h|headers' => [], # do nothing
+	'debug|D|N'	=> \$config{'debug'},
 	'port|p=i'	=> \$config{'NNTPPort'},
 	'no-sign|X'	=> \$config{'no_sign'},
 	'no-control|R'	=> \$config{'no_control'},
 	'no-signature|S'	=> \$config{'no_signature'},
+	'no-canlock|L'	=> \$config{'no_canlock'},
+	'force-auth|Y'	=> \$config{'force_auth'},
 	'approved|a=s'	=> \$config{'approved'},
 	'control|c=s'	=> \$config{'control'},
 	'distribution|d=s'	=> \$config{'distribution'},
@@ -116,6 +137,7 @@ GetOptions('A|V|W|O|no-organization|h|he
 	'followupto|w=s'	=> \$config{'followup-to'},
 	'newsgroups|n=s'	=> \$config{'newsgroups'},
 	'replyto|r=s'	=> \$config{'reply-to'},
+	'savedir|s=s'	=> \$config{'savedir'},
 	'subject|t=s'	=> \$config{'subject'},
 	'references|F=s'	=> \$config{'references'},
 	'organization|o=s'	=> \$config{'organization'},
@@ -128,7 +150,19 @@ foreach (@ARGV) {
 	usage();
 }
 
-usage() if($config{'help'});
+usage() if ($config{'help'});
+
+# Cancel-Locks require some more modules
+if ($config{'canlock_secret'} && !$config{'no_canlock'}) {
+	foreach ('MIME::Base64()', 'Digest::SHA1()', 'Digest::HMAC_SHA1()') {
+		eval "use $_";
+		if ($@) {
+			$config{'no_canlock'} = 1;
+			warn "Cancel-Locks disabled: Can't locate ".$_."\n" if $config{'debug'};
+			last;
+		}
+	}
+}
 
 my $term = new Term::ReadLine 'tinews';
 my $attribs = $term->Attribs;
@@ -137,16 +171,15 @@ my (@Header, %Header, @Body, $PGPCommand
 
 if (! $config{'no_sign'}) {
 	$config{'PGPSigner'} = $ENV{'SIGNER'} if ($ENV{'SIGNER'});
-
 	$config{'PathtoPGPPass'} = $ENV{'PGPPASSFILE'} if ($ENV{'PGPPASSFILE'});
 	if ($config{'PathtoPGPPass'}) {
-		open (PGPPass, $config{'PathtoPGPPass'}) or
-			$config{'Interactive'} && die ("$0: Can't open ".$config{'PathtoPGPPass'}.": $!");
-		chomp ($config{'PGPPass'} = <PGPPass>);
-		close(PGPPass);
+		open(my $PGPPass, '<', (glob($config{'PathtoPGPPass'}))[0]) or
+			$config{'Interactive'} && die("$0: Can't open ".$config{'PathtoPGPPass'}.": $!");
+		chomp($config{'PGPPass'} = <$PGPPass>);
+		close($PGPPass);
 	}
-	if ($config{'PGPVersion'} eq '2') {
-		$config{'PGPPass'} = $ENV{'PGPPASS'} if ($ENV{'PGPPASS'});
+	if ($config{'PGPVersion'} eq '2' && $ENV{'PGPPASS'}) {
+		$config{'PGPPass'} = $ENV{'PGPPASS'};
 	}
 }
 
@@ -156,18 +189,20 @@ readarticle(\%Header, \@Body);
 
 # Add signature if there is none
 if (!$config{'no_signature'}) {
-	if ($config{'add_signature'} && !grep /^-- /, @Body) {
-		if (-r (glob("~/.signature"))[0]) {
+	if ($config{'add_signature'} && !grep {/^-- /} @Body) {
+		if (-r $config{'sig_path'}) {
 			my $l = 0;
 			push @Body, "-- \n";
-			open SIGNATURE, (glob("~/.signature"))[0] or die "Can't open ~/.signature: $!";
-			while (<SIGNATURE>){
-				die "~/.signature longer than 4 lines!" if (++$l > 4);
+			open(my $SIGNATURE, '<', $config{'sig_path'}) or die("Can't open " . $config{'sig_path'} . ": $!");
+			while (<$SIGNATURE>){
+				die $config{'sig_path'} . " longer than " . $config{'sig_max_lines'}. " lines!" if (++$l > $config{'sig_max_lines'});
 				push @Body, $_;
 			}
-			close SIGNATURE;
+			close($SIGNATURE);
 		} else {
-			warn "Tried to add ~/.signature, but ~/.signature is not readable";
+			if ($config{'debug'}) {
+				warn "Tried to add " . $config{'sig_path'} . ", but it is unreadable";
+			}
 		}
 	}
 }
@@ -175,13 +210,13 @@ if (!$config{'no_signature'}) {
 # import headers set in the environment
 if (!defined($Header{'reply-to'})) {
 	if ($ENV{'REPLYTO'}) {
-		chomp ($Header{'reply-to'} = "Reply-To: " . $ENV{'REPLYTO'});
+		chomp($Header{'reply-to'} = "Reply-To: " . $ENV{'REPLYTO'});
 		$Header{'reply-to'} .= "\n";
 	}
 }
 foreach ('DISTRIBUTION', 'ORGANIZATION') {
 	if (!defined($Header{lc($_)}) && $ENV{$_}) {
-		chomp ($Header{lc($_)} = ucfirst($_).": " . $ENV{$_});
+		chomp($Header{lc($_)} = ucfirst($_).": " . $ENV{$_});
 		$Header{lc($_)} .= "\n";
 	}
 }
@@ -191,16 +226,17 @@ foreach ('Approved', 'Control', 'Distrib
 	'From', 'Followup-To', 'Newsgroups',' Reply-To', 'Subject',
 	'References', 'Organization', 'Path') {
 	next if (!defined($config{lc($_)}));
-	chomp ($Header{lc($_)} = $_ . ": " . $config{lc($_)});
+	chomp($Header{lc($_)} = $_ . ": " . $config{lc($_)});
 	$Header{lc($_)} .= "\n";
 }
 
 # verify/add/remove headers
 foreach ('From', 'Subject') {
-	die "$0: No $_:-header defined." if (!defined($Header{lc($_)}));
+	die("$0: No $_:-header defined.") if (!defined($Header{lc($_)}));
 }
 
 $Header{'date'} = "Date: ".getdate()."\n" if (!defined($Header{'date'}) || $Header{'date'} !~ m/^[^\s:]+: .+/o);
+$Header{'injection-date'} = "Injection-Date: ".getdate()."\n";
 
 if (defined($Header{'user-agent'})) {
 	chomp $Header{'user-agent'};
@@ -216,7 +252,36 @@ if ($config{'no_control'} and $Header{co
 	exit 1;
 }
 
-if (defined($Header{'newsgroups'}) && !defined($Header{'message-id'})) {
+# various checks
+if ($config{'debug'}) {
+	foreach (keys %Header) {
+		warn "Raw 8-bit data in the following header:\n$Header{$_}" if ($Header{$_} =~ m/[\x80-\xff]/o);
+	}
+	if (!defined($Header{'mime-version'}) || !defined($Header{'content-type'}) || !defined($Header{'content-transfer-encoding'})) {
+		warn "8bit body without MIME-headers\n" if (grep {/[\x80-\xff]/} @Body);
+	}
+}
+
+# try ~/.newsauth if no $config{'NNTPPass'} was set
+if (!$config{'NNTPPass'}) {
+	if (-r (glob("~/.newsauth"))[0]) {
+		my ($l, $server, $pass, $user);
+		open (my $NEWSAUTH, '<', (glob("~/.newsauth"))[0]) or die("Can't open ~/.newsauth: $!");
+		while ($l = <$NEWSAUTH>) {
+			chomp $l;
+			next if ($l =~ m/^[#\s]/);
+			($server, $pass, $user) = split(/\s+\b/, $l);
+			last if ($server =~ m/\Q$config{'NNTPServer'}\E/);
+		}
+		close($NEWSAUTH);
+		if ($pass) {
+			$config{'NNTPPass'} = $pass;
+			$config{'NNTPUser'} = $user || getlogin || getpwuid($<) || $ENV{USER};
+		}
+	}
+}
+
+if (! $config{'savedir'} && defined($Header{'newsgroups'}) && !defined($Header{'message-id'})) {
 	my $Server = AuthonNNTP();
 	my $ServerMsg = $Server->message();
 	$Server->datasend('.');
@@ -226,9 +291,61 @@ if (defined($Header{'newsgroups'}) && !d
 }
 
 if (!defined($Header{'message-id'})) {
-	chomp (my $hname = `hostname`);
+	my $hname;
+	eval "use Sys::Hostname";
+	if ($@) {
+		chomp($hname = `hostname`);
+	} else {
+		$hname = hostname();
+	}
 	my ($hostname,) = gethostbyname($hname);
-	$Header{'message-id'} = "Message-ID: " . sprintf ("<N%xI%xT%x@%s>\n", $>, timelocal(localtime), $$, $hostname);
+	if (defined($hostname) && $hostname =~ m/\./io) {
+		$Header{'message-id'} = "Message-ID: " . sprintf("<N%xI%xT%x@%s>\n", $>, timelocal(localtime), $$, $hostname);
+	}
+}
+
+# add Cancel-Lock (and Cancel-Key) header(s) if requested
+if ($config{'canlock_secret'} && defined($Header{'message-id'}) && !$config{'no_canlock'}) {
+	open(my $CANLock, '<', (glob($config{'canlock_secret'}))[0]) or die("$0: Can't open " . $config{'canlock_secret'} . ": $!");
+	chomp(my $key = <$CANLock>);
+	close($CANLock);
+	(my $data = $Header{'message-id'}) =~ s#^Message-ID: ##i;
+	chomp $data;
+	my $digest = Digest::HMAC_SHA1::hmac_sha1($data, $key);
+	my $cancel_key = MIME::Base64::encode($digest, '');
+	my $cancel_lock = MIME::Base64::encode(Digest::SHA1::sha1($cancel_key, ''));
+	if (defined($Header{'cancel-lock'})) {
+		chomp $Header{'cancel-lock'};
+		$Header{'cancel-lock'} .= " sha1:" . $cancel_lock;
+	} else {
+		$Header{'cancel-lock'} = "Cancel-Lock: sha1:" . $cancel_lock;
+	}
+
+	if ((defined($Header{'supersedes'}) && $Header{'supersedes'} =~ m/^Supersedes:\s+<\S+>\s*$/i) || (defined($Header{'control'}) && $Header{'control'} =~ m/^Control:\s+cancel\s+<\S+>\s*$/i) ||(defined($Header{'also-control'}) && $Header{'also-control'} =~ m/^Also-Control:\s+cancel\s+<\S+>\s*$/i)) {
+		if (defined($Header{'also-control'}) && $Header{'also-control'} =~ m/^Also-Control:\s+cancel\s+/i) {
+			($data = $Header{'also-control'}) =~ s#^Also-Control:\s+cancel\s+##i;
+			chomp $data;
+			$cancel_key = MIME::Base64::encode(Digest::HMAC_SHA1::hmac_sha1($data, $key),'');
+		} else {
+			if (defined($Header{'control'}) && $Header{'control'} =~ m/^Control: cancel /i) {
+				($data = $Header{'control'})=~ s#^Control:\s+cancel\s+##i;
+				chomp $data;
+				$cancel_key = MIME::Base64::encode(Digest::HMAC_SHA1::hmac_sha1($data, $key),'');
+			} else {
+				if (defined($Header{'supersedes'})) {
+					($data = $Header{'supersedes'}) =~ s#^Supersedes: ##i;
+					chomp $data;
+					$cancel_key = MIME::Base64::encode(Digest::HMAC_SHA1::hmac_sha1($data, $key),'');
+				}
+			}
+		}
+		if (defined($Header{'cancel-key'})) {
+			chomp $Header{'cancel-key'};
+			$Header{'cancel-key'} .= " sha1:" . $cancel_key . "\n";
+		} else {
+			$Header{'cancel-key'} = "Cancel-Key: sha1:" . $cancel_key . "\n";
+		}
+	}
 }
 
 # set Posted-And-Mailed if we send a mailcopy to someone else
@@ -243,7 +360,7 @@ if ($config{'sendmail'} && defined($Head
 
 if (! $config{'no_sign'}) {
 	if (!$config{'PGPSigner'}) {
-		chomp ($config{'PGPSigner'} = $Header{'from'});
+		chomp($config{'PGPSigner'} = $Header{'from'});
 		$config{'PGPSigner'} =~ s/^[^\s:]+: (.*)/$1/;
 	}
 	$PGPCommand = getpgpcommand($config{'PGPVersion'});
@@ -268,17 +385,21 @@ if ($config{'no_sign'}) {
 	$MessageR = signarticle(\%Header, \@Body);
 }
 
-# post article
-postarticle($MessageR) if ($Newsgroups);
+# post or save article
+if (! $config{'savedir'}) {
+	postarticle($MessageR) if ($Newsgroups);
+} else {
+	savearticle($MessageR) if ($Newsgroups);
+}
 
 # mail article
 if (($To || $Cc || $Bcc) && $config{'sendmail'}) {
-	open(MAIL, $config{'sendmail'}) || die "$!";
+	open(my $MAIL, $config{'sendmail'}) || die("$!");
 	unshift @$MessageR, "$To" if ($To);
 	unshift @$MessageR, "$Cc" if ($Cc);
 	unshift @$MessageR, "$Bcc" if ($Bcc);
-	print(MAIL @$MessageR);
-	close(MAIL);
+	print($MAIL @$MessageR);
+	close($MAIL);
 }
 
 # Game over. Insert new coin.
@@ -301,12 +422,13 @@ sub readarticle {
 				$$HeaderR{$currentheader} .= $_;
 			} else {
 				chomp($_);
-				die ("'$_' is not a correct header-line");
+				die("'$_' is not a correct header-line");
 			}
 		} else {
 			push @$BodyR, $_;
 		}
 	}
+	return;
 }
 
 #-------- sub getdate
@@ -344,7 +466,7 @@ sub getdate {
 # $config{'Interactive'} is != 0).
 sub AuthonNNTP {
 	my $Server = Net::NNTP->new($config{'NNTPServer'}, Reader => 1, Debug => 0, Port => $config{'NNTPPort'})
-		or die "$0: Can't connect to ".$config{'NNTPServer'}.":".$config{'NNTPPort'}."!\n";
+		or die("$0: Can't connect to ".$config{'NNTPServer'}.":".$config{'NNTPPort'}."!\n");
 	my $ServerMsg = "";
 	my $ServerCod = $Server->code();
 
@@ -352,11 +474,11 @@ sub AuthonNNTP {
 	if ($ServerCod < 200 || $ServerCod > 201) {
 		$ServerMsg = $Server->message();
 		$Server->quit();
-		die ($0.": ".$ServerCod." ".$ServerMsg."\n");
+		die($0.": ".$ServerCod." ".$ServerMsg."\n");
 	}
 
 	# read access - try auth
-	if ($ServerCod == 201) {
+	if ($ServerCod == 201 || $config{'force_auth'}) {
 		if ($config{'NNTPPass'} eq "") {
 			if ($config{'Interactive'}) {
 				$config{'NNTPUser'} = $term->readline("Your Username at ".$config{'NNTPServer'}.": ");
@@ -365,7 +487,7 @@ sub AuthonNNTP {
 			} else {
 				$ServerMsg = $Server->message();
 				$Server->quit();
-				die ($0.": ".$ServerCod." ".$ServerMsg."\n");
+				die($0.": ".$ServerCod." ".$ServerMsg."\n");
 			}
 		}
 		$Server->authinfo($config{'NNTPUser'}, $config{'NNTPPass'});
@@ -388,7 +510,7 @@ sub AuthonNNTP {
 			} else {
 				$ServerMsg = $Server->message();
 				$Server->quit();
-				die ($0.": ".$ServerCod." ".$ServerMsg."\n");
+				die($0.": ".$ServerCod." ".$ServerMsg."\n");
 			}
 		}
 		$Server->authinfo($config{'NNTPUser'}, $config{'NNTPPass'});
@@ -406,6 +528,20 @@ sub AuthonNNTP {
 sub getpgpcommand {
 	my ($PGPVersion) = @_;
 	my $PGPCommand;
+	my $found = 0;
+
+	if ($config{'pgp'} !~ /^\//) {
+		foreach(split(/:/, $ENV{'PATH'})) {
+			if (-x $_."/".$config{'pgp'}) {
+				$found++;
+				last;
+			}
+		}
+	}
+	if (!-x $config{'pgp'} && ! $found) {
+		warn "PGP signing disabled: Can't locate executable ".$config{'pgp'}."\n" if $config{'debug'};
+		$config{'no_sign'} = 1;
+	}
 
 	if ($PGPVersion eq '2') {
 		if ($config{'PGPPass'}) {
@@ -413,26 +549,26 @@ sub getpgpcommand {
 		} elsif ($config{'Interactive'}) {
 			$PGPCommand = $config{'pgp'}." -z -u \"".$config{'PGPSigner'}."\" +verbose=0 language='en' -saft <".$config{'pgptmpf'}.".txt >".$config{'pgptmpf'}.".txt.asc";
 		} else {
-			die "$0: Passphrase is unknown!\n";
+			die("$0: Passphrase is unknown!\n");
 		}
 	} elsif ($PGPVersion eq '5') {
 		if ($config{'PathtoPGPPass'}) {
-			$PGPCommand = "PGPPASSFD=42 ".$config{'pgp'}."s -u \"".$config{'PGPSigner'}."\" -t --armor -o ".$config{'pgptmpf'}.".txt.asc -z -f < ".$config{'pgptmpf'}.".txt 42<".$config{'PathtoPGPPass'};
+			$PGPCommand = "PGPPASSFD=".$config{'PGPPassFD'}." ".$config{'pgp'}."s -u \"".$config{'PGPSigner'}."\" -t --armor -o ".$config{'pgptmpf'}.".txt.asc -z -f < ".$config{'pgptmpf'}.".txt 42<".$config{'PathtoPGPPass'};
 		} elsif ($config{'Interactive'}) {
 			$PGPCommand = $config{'pgp'}."s -u \"".$config{'PGPSigner'}."\" -t --armor -o ".$config{'pgptmpf'}.".txt.asc -z -f < ".$config{'pgptmpf'}.".txt";
 		} else {
-			die "$0: Passphrase is unknown!\n";
+			die("$0: Passphrase is unknown!\n");
 		}
 	} elsif ($PGPVersion =~ m/GPG/io) {
 		if ($config{'PathtoPGPPass'}) {
-			$PGPCommand = $config{'pgp'}." --digest-algo $config{'digest-algo'} -a -u \"".$config{'PGPSigner'}."\" -o ".$config{'pgptmpf'}.".txt.asc --no-tty --batch --passphrase-fd 42 42<".$config{'PathtoPGPPass'}." --clearsign ".$config{'pgptmpf'}.".txt";
+			$PGPCommand = $config{'pgp'}." --digest-algo $config{'digest-algo'} -a -u \"".$config{'PGPSigner'}."\" -o ".$config{'pgptmpf'}.".txt.asc --no-tty --batch --passphrase-fd ".$config{'PGPPassFD'}." ".$config{'PGPPassFD'}."<".$config{'PathtoPGPPass'}." --clearsign ".$config{'pgptmpf'}.".txt";
 		} elsif ($config{'Interactive'}) {
 			$PGPCommand = $config{'pgp'}." --digest-algo $config{'digest-algo'} -a -u \"".$config{'PGPSigner'}."\" -o ".$config{'pgptmpf'}.".txt.asc --no-secmem-warning --no-batch --clearsign ".$config{'pgptmpf'}.".txt";
 		} else {
-			die "$0: Passphrase is unknown!\n";
+			die("$0: Passphrase is unknown!\n");
 		}
 	} else {
-		die "$0: Unknown PGP-Version $PGPVersion!";
+		die("$0: Unknown PGP-Version $PGPVersion!");
 	}
 	return $PGPCommand;
 }
@@ -454,17 +590,36 @@ sub postarticle {
 		if (!$Server->ok()) {
 			my $ServerMsg = $Server->message();
 			$Server->quit();
-			die ("\n$0: Posting failed! Response from news server:\n", $Server->code(), ' ', $ServerMsg);
+			die("\n$0: Posting failed! Response from news server:\n", $Server->code(), ' ', $ServerMsg);
 		}
 		$Server->quit();
 	} else {
-		die "\n".$0.": Posting failed!\n";
+		die("\n".$0.": Posting failed!\n");
 	}
+	return;
+}
+
+
+#-------- sub savearticle
+# savearticle saves your article to the directory $config{'savedir'}
+#
+# Receives:
+# 	- $ArticleR: A reference to an array containing the article
+sub savearticle {
+	my ($ArticleR) = @_;
+	my $timestamp = timelocal(localtime);
+	(my $ng = $Newsgroups) =~ s#^Newsgroups:\s*([^,\s]+).*#$1#i;
+	my $gn = join "", map { substr($_,0,1) } (split(/\./, $ng));
+	my $filename = $config{'savedir'}."/".$timestamp."-".$gn."-".$$;
+	open(my $SH, '>', $filename) or die("$0: can't open $filename: $!\n");
+	print $SH @$ArticleR;
+	close($SH) or warn "$0: Couldn't close: $!\n";
+	return;
 }
 
 
 #-------- sub signarticle
-# signarticle signs an articel and returns a reference to an array
+# signarticle signs an article and returns a reference to an array
 # 	containing the whole signed Message.
 #
 # Receives:
@@ -475,7 +630,7 @@ sub postarticle {
 # 	- $MessageRef: A reference to an array containing the whole message.
 sub signarticle {
 	my ($HeaderR, $BodyR) = @_;
-	my (@pgphead, @pgpbody, $pgphead, $pgpbody, $header, $signheaders, @signheaders);
+	my (@pgphead, @pgpbody, $pgphead, $pgpbody, $signheaders, @signheaders);
 
 	foreach (@{$config{'PGPSignHeaders'}}) {
 		if (defined($$HeaderR{lc($_)}) && $$HeaderR{lc($_)} =~ m/^[^\s:]+: .+/o) {
@@ -483,7 +638,7 @@ sub signarticle {
 		}
 	}
 
-	$pgpbody = join ("", @$BodyR);
+	$pgpbody = join("", @$BodyR);
 
 	# Delete and create the temporary pgp-Files
 	unlink $config{'pgptmpf'}.".txt";
@@ -491,36 +646,36 @@ sub signarticle {
 	$signheaders = join(",", @signheaders);
 
 	$pgphead = "X-Signed-Headers: $signheaders\n";
-	foreach $header (@signheaders) {
+	foreach my $header (@signheaders) {
 		if ($$HeaderR{lc($header)} =~ m/^[^\s:]+: (.+?)\n?$/so) {
 			$pgphead .= $header.": ".$1."\n";
 		}
 	}
 
 	unless (substr($pgpbody,-1,1)=~ /\n/ ) {$pgpbody.="\n"};
-	open(FH, ">" . $config{'pgptmpf'} . ".txt") or die "$0: can't open ".$config{'pgptmpf'}.": $!\n";
-	print FH $pgphead, "\n", $pgpbody;
-	print FH "\n" if ($config{'PGPVersion'} =~ m/GPG/io);	# workaround a pgp/gpg incompatibility - should IMHO be fixed in pgpverify
-	close(FH) or warn "$0: Couldn't close TMP: $!\n";
+	open(my $FH, '>', $config{'pgptmpf'} . ".txt") or die("$0: can't open ".$config{'pgptmpf'}.": $!\n");
+	print $FH $pgphead, "\n", $pgpbody;
+	print $FH "\n" if ($config{'PGPVersion'} =~ m/GPG/io); # workaround a pgp/gpg incompatibility - should IMHO be fixed in pgpverify
+	close($FH) or warn "$0: Couldn't close TMP: $!\n";
 
 	# Start PGP, then read the signature;
 	`$PGPCommand`;
 
-	open (FH, "<" . $config{'pgptmpf'} . ".txt.asc") or die "$0: can't open ".$config{'pgptmpf'}.".txt.asc: $!\n";
-	$/ = "\n".$config{'pgpbegin'}."\n";
-	$_ = <FH>;
+	open($FH, '<', $config{'pgptmpf'} . ".txt.asc") or die("$0: can't open ".$config{'pgptmpf'}.".txt.asc: $!\n");
+	local $/ = "\n".$config{'pgpbegin'}."\n";
+	$_ = <$FH>;
 	unless (m/\Q$config{'pgpbegin'}\E$/o) {
 		unlink $config{'pgptmpf'} . ".txt";
 		unlink $config{'pgptmpf'} . ".txt.asc";
-		die "$0: ".$config{'pgpbegin'}." not found in ".$config{'pgptmpf'}.".txt.asc\n"
+		die("$0: ".$config{'pgpbegin'}." not found in ".$config{'pgptmpf'}.".txt.asc\n");
 	}
 	unlink($config{'pgptmpf'} . ".txt") or warn "$0: Couldn't unlink ".$config{'pgptmpf'}.".txt: $!\n";
 
-	$/ = "\n";
-	$_ = <FH>;
+	local $/ = "\n";
+	$_ = <$FH>;
 	unless (m/^Version: (\S+)(?:\s(\S+))?/o) {
 		unlink $config{'pgptmpf'} . ".txt.asc";
-		die "$0: didn't find PGP Version line where expected.\n";
+		die("$0: didn't find PGP Version line where expected.\n");
 	}
 	if (defined($2)) {
 		$$HeaderR{$config{'pgpheader'}} = $1."-".$2." ".$signheaders;
@@ -528,47 +683,47 @@ sub signarticle {
 		$$HeaderR{$config{'pgpheader'}} = $1." ".$signheaders;
 	}
 	do {			# skip other pgp headers like
-		$_ = <FH>;	# "charset:"||"comment:" until empty line
+		$_ = <$FH>;	# "charset:"||"comment:" until empty line
 	} while ! /^$/;
 
-	while (<FH>) {
+	while (<$FH>) {
 		chomp;
 		last if /^\Q$config{'pgpend'}\E$/;
 		$$HeaderR{$config{'pgpheader'}} .= "\n\t$_";
 	}
 	$$HeaderR{$config{'pgpheader'}} .= "\n" unless ($$HeaderR{$config{'pgpheader'}} =~ /\n$/s);
 
-	$_ = <FH>;
-	unless (eof(FH)) {
+	$_ = <$FH>;
+	unless (eof($FH)) {
 		unlink $config{'pgptmpf'} . ".txt.asc";
-		die "$0: unexpected data following ".$config{'pgpend'}."\n";
+		die("$0: unexpected data following ".$config{'pgpend'}."\n");
 	}
-	close(FH);
+	close($FH);
 	unlink $config{'pgptmpf'} . ".txt.asc";
 
 	my $tmppgpheader = $config{'pgpheader'} . ": " . $$HeaderR{$config{'pgpheader'}};
 	delete $$HeaderR{$config{'pgpheader'}};
 
 	@pgphead = ();
-	foreach $header (@{$config{PGPorderheaders}}) {
+	foreach my $header (@{$config{PGPorderheaders}}) {
 		if ($$HeaderR{$header} && $$HeaderR{$header} ne "\n") {
 			push(@pgphead, "$$HeaderR{$header}");
 			delete $$HeaderR{$header};
 		}
 	}
 
-	foreach $header (keys %$HeaderR) {
+	foreach my $header (keys %$HeaderR) {
 		if ($$HeaderR{$header} && $$HeaderR{$header} ne "\n") {
 			push(@pgphead, "$$HeaderR{$header}");
 			delete $$HeaderR{$header};
 		}
 	}
 
-	push @pgphead, ("X-PGP-Hash: " . $config{'digest-algo'} . "\n");
+	push @pgphead, ("X-PGP-Hash: " . $config{'digest-algo'} . "\n") if (defined($config{'digest-algo'}));
 	push @pgphead, ("X-PGP-Key: " . $config{'PGPSigner'} . "\n"), $tmppgpheader;
 	undef $tmppgpheader;
 
-	@pgpbody = split /$/m, $pgpbody;
+	@pgpbody = split(/$/m, $pgpbody);
 	my @pgpmessage = (@pgphead, "\n", @pgpbody);
 	return \@pgpmessage;
 }
@@ -586,13 +741,16 @@ sub usage {
 	print "  -o string  set Organization:-header to string\n";
 	print "  -p port    use port as NNTP port [default=".$config{'NNTPPort'}."]\n";
 	print "  -r string  set Reply-To:-header to string\n";
+	print "  -s string  save signed article to directory string instead of posting\n";
 	print "  -t string  set Subject:-header to string\n";
 	print "  -w string  set Followup-To:-header to string\n";
 	print "  -x string  set Path:-header to string\n";
 	print "  -H         show help\n";
+	print "  -L         do not add Cacenl-Lock: / Cancel-Key: headers\n";
 	print "  -R         disallow control messages\n";
-	print "  -S         do not append \$HOME/.signature\n";
+	print "  -S         do not append " . $config{'sig_path'} . "\n";
 	print "  -X         do not sign article\n";
+	print "  -Y         force authentication on connect\n";
 	exit 0;
 }
 
@@ -615,6 +773,9 @@ If the article contains To:, Cc: or Bcc:
 configured it will automatically add a "Posted-And-Mailed: yes" header
 to the article and send out the mail-copies.
 
+If a Cancel-Lock secret file is defined it will automatically add a
+Cancel-Lock: (and Cancel-Key: if required) header.
+
 =head1 OPTIONS
 
 =over 4
@@ -655,6 +816,10 @@ use C<port> as NNTP-port
 
 Set the article header field Reply-To: to the given value.
 
+=item -B<s> F<directory> | --B<savedir> F<directory>
+
+Save signed article to directory F<directory> instead of posting.
+
 =item -B<t> C<Subject> | --B<subject> C<Subject>
 
 Set the article header field Subject: to the given value.
@@ -671,18 +836,26 @@ Set the article header field Path: to th
 
 Show help-page.
 
+=item -B<L> | --B<no-canlock>
+
+Do not add Cancel-Lock: / Cancel-Key: headers.
+
 =item -B<R> | --B<no-control>
 
 Restricted mode, disallow control-messages.
 
 =item -B<S> | --B<no-signature>
 
-Do not append F<$HOME/.signature>
+Do not append F<$HOME/.signature>.
 
 =item -B<X> | --B<no-sign>
 
 Do not sign the article.
 
+=item -B<Y> | --B<force-auth>
+
+Force authentication on connect even if not required by the server.
+
 =item -B<A> -B<V> -B<W>
 
 These options are accepted for compatibility reasons but ignored.
@@ -772,11 +945,11 @@ command-line option overrides B<$DISTRIB
 
 =item F<pgptmp.txt>
 
-Temporary file used to store the reformatted article
+Temporary file used to store the reformatted article.
 
 =item F<pgptmp.txt.asc>
 
-Temporary file used to store the reformatted and signed article
+Temporary file used to store the reformatted and signed article.
 
 =item F<$PGPPASSFILE>
 
@@ -784,7 +957,25 @@ The passphrase file to be used for B<pgp
 
 =item F<$HOME/.signature>
 
-Signature-file which will be automatically included.
+Signature file which will be automatically included.
+
+=item F<$HOME/.cancelsecret>
+
+The passphrase file to be used for Cancel-Locks. This feature is turned
+off by default.
+
+=item F<$HOME/.newsauth>
+
+"nntpserver password [user]" pairs for NNTP servers that require
+authorization. Any line that starts with "#" is a comment. Blank lines are
+ignored. This file should be readable only for the user as it contains the
+user's uncrypted password for reading news.
+
+=item F<$HOME/.tinewsrc>
+
+"option=value" configuration pairs. Lines that start with "#" are ignored.
+If the file contains uncrypted passwords (e.g. NNTPPass or PGPPass), it
+should be only readable for the user.
 
 =back
 
@@ -804,6 +995,10 @@ B<tinews.pl> requires the following stan
 B<Getopt::Long>(3pm), B<Net::NNTP>(3pm), B<Time::Local>(3pm) and
 B<Term::Readline>(3pm).
 
+If the Cacenl-Lock feature is enabled the following additional modules
+must be installed: B<MIME::Base64>(3pm), B<Digest::SHA1>(3pm) and
+B<Digest::HMAC_SHA1>(3pm)
+
 =head1 AUTHOR
 
 Urs Janssen E<lt>urs@tin.orgE<gt>,
@@ -811,7 +1006,8 @@ Marc Brockschmidt E<lt>marc@marcbrocksch
 
 =head1 SEE ALSO
 
-B<pgp>(1), B<gpg>(1), B<pgps>(1), B<Getopt::Long>(3pm), B<Net::NNTP>(3pm),
-B<Time::Local>(3pm), B<Term::Readline>(3pm)
+B<pgp>(1), B<gpg>(1), B<pgps>(1), B<Digest::HMAC_SHA1>(3pm),
+B<Digest::SHA1>(3pm), B<Getopt::Long>(3pm), B<MIME::Base64>(3pm),
+B<Net::NNTP>(3pm), B<Time::Local>(3pm), B<Term::Readline>(3pm)
 
 =cut
diff -Nurp --exclude='.bzr*' tin-1.8.3/tools/url_handler.pl tin-2.0.0/tools/url_handler.pl
--- tin-1.8.3/tools/url_handler.pl	1970-01-01 01:00:00.000000000 +0100
+++ tin-2.0.0/tools/url_handler.pl	2011-07-18 14:12:58.977170323 +0200
@@ -0,0 +1,134 @@
+#! /usr/bin/perl -w
+# example of how to call an appropriate viewer
+#
+# URLs must start with a scheme and shell metas should be already quoted
+# (tin doesn't recognize URLs without a scheme and it quotes the metas)
+
+use strict;
+use warnings;
+
+(my $pname = $0) =~ s#^.*/##;
+die "Usage: $pname URL" if $#ARGV != 0;
+
+# version Number
+my $version = "0.1.1";
+
+my ($method, $url, $match, @try);
+$method = $url = $ARGV[0];
+$method =~ s#^([^:]+):.*#$1#io;
+
+# shell escape
+$url =~ s#([\&\;\`\'\\\"\|\*\?\~\<\>\^\(\)\[\]\{\}\$\010\013\020\011])#\\$1#g;
+
+if ($ENV{"BROWSER_".uc($method)}) {
+	push(@try, split(/:/, $ENV{"BROWSER_".uc($method)}));
+} else {
+	if ($ENV{BROWSER}) {
+		push(@try, split(/:/, $ENV{BROWSER}));
+	} else { # set some defaults
+		push(@try, 'firefox -a firefox -remote openURL\(%s\)');
+		push(@try, 'mozilla -remote openURL\(%s\)');
+		push(@try, 'opera -remote openURL\(%s\)');
+		push(@try, 'galeon -n');
+		push(@try, 'lynx'); # prefer lynx over links as it can handle news:-urls
+		push(@try, qw('links2 -g' links w3m));
+		push(@try, 'kfmclient newTab'); # has no useful return-value on error
+	}
+}
+
+for my $browser (@try) {
+	# ignore empty parts
+	next if ($browser =~ m/^$/o);
+	# expand %s if not preceded by odd number of %
+	$match = $browser =~ s/(?<!%)((?:%%)*)%s/$1$url/og;
+	# expand %c if not preceded by odd number of %
+	$browser =~ s/(?<!%)((?:%%)*)%c/$1:/og;
+	# reduce dubble %
+	$browser =~ s/%%/%/og;
+	# append URL if no %s expansion took place
+	$browser .= " ".$url if (!$match);
+	# leave loop if $browser was started successful
+	last if (system("$browser 2>/dev/null") == 0);
+}
+exit 0;
+
+__END__
+
+=head1 NAME
+
+url_handler.pl - Spawn appropriate viewer for a given URL
+
+=head1 SYNOPSIS
+
+B<url_handler.pl> I<URL>
+
+=head1 DESCRIPTION
+
+B<url_handler.pl> takes an URL as argument and spawns the first executable
+viewer found in either B<$BROWSER_I<SCHEME>> or B<$BROWSER>.
+
+=head1 ENVIRONMENT
+
+=over 4
+
+=item B<$BROWSER_I<SCHEME>>
+
+The user's preferred utility to browse URLs of tye I<SCHEME>. May actually
+consist of a sequence of colon-separated browser commands to be tried in
+order until one succeeds. If a command part contains %s, the URL is
+substituted there, otherwise the browser command is simply called with the
+URL as its last argument. %% is replaced by a single percent sign (%), and
+%c is replaced by a colon (:).
+Examples:
+
+=over 4
+
+=item $BROWSER_FTP="wget:ncftp"
+
+=item $BROWSER_GOPHER="lynx:links"
+
+=item $BROWSER_MAILTO="mutt:pine -url"
+
+=item $BROWSER_NEWS="lynx"
+
+=item $BROWSER_NNTP="lynx"
+
+=back
+
+Z<>
+
+=item B<$BROWSER>
+
+The user's preferred utility to browse URLs for which there is no special
+viewer defined via B<$BROWSER_I<SCHEME>>. Again it may actually consist of a
+sequence of colon-separated browser commands to be tried in order until one
+succeeds. If a command part contains %s, the URL is substituted there,
+otherwise the browser command is simply called with the URL as its last
+argument. %% is replaced by a single percent sign (%), and %c is replaced
+by a colon (:).
+Examples:
+
+=over 2
+
+=item $BROWSER="firefox -a firefox -remote openURL\(%s\):opera:konqueror:links2 -g:lynx:w3m"
+
+=back
+
+=head1 SECURITY
+
+B<url_handler.pl> was designed to work together with B<tin>(1) which only
+issues shell escaped absolute URLs thus B<url_handler.pl> does not try hard
+to shell escape its input nor does it convert relative URLs into absolute
+ones! If you use B<url_handler.pl> from other applications be sure to at
+least shell escaped its input!
+
+=head1 AUTHOR
+
+Urs Janssen E<lt>urs@tin.orgE<gt>
+
+=head1 SEE ALSO
+
+http://www.catb.org/~esr/BROWSER/
+http://www.dwheeler.com/browse/secure_browser.html
+
+=cut
diff -Nurp --exclude='.bzr*' tin-1.8.3/tools/url_handler.sh tin-2.0.0/tools/url_handler.sh
--- tin-1.8.3/tools/url_handler.sh	2005-07-08 17:13:49.000000000 +0200
+++ tin-2.0.0/tools/url_handler.sh	2011-04-17 16:04:29.174878589 +0200
@@ -4,7 +4,7 @@
 # based on a script by Michael Elkins <me@cs.hmc.edu>
 # 2001-01-31 <urs@tin.org>
 #
-# URLs must start with a scheme and shell metas must be allready quoted
+# URLs must start with a scheme and shell metas must be already quoted
 # (tin doesn't recognize URLs without a scheme and it quotes the metas)
 #
 # TODO: check $BROWSER?
@@ -51,7 +51,7 @@ case $method in
 		;;
 
 	news|snews)
-		# usualy ment for reading news on the local server
+		# usually meant for reading news on the local server
 		if test x$DISPLAY = x; then
 			lynx $url || exit 1
 		else
@@ -60,7 +60,7 @@ case $method in
 		;;
 
 	nntp)
-		# usualy ment for reading news via NNTP
+		# usually meant for reading news via NNTP
 		# needs a special case as netscape can't handle nntp-URLs
 		# *sigh*
 		lynx $url || exit 1
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/dir.h tin-2.0.0/vms/dir.h
--- tin-1.8.3/vms/dir.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/dir.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,109 +0,0 @@
-/* GNU Emacs VMS directory definition file.
-   Copyright (C) 1986 Free Software Foundation, Inc.
-
-This file is part of GNU Emacs.
-
-GNU Emacs is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/*
- * Files-11 Ver. 2 directory structure (VMS V4.x - long names)
- */
-#ifndef DIR$K_LENGTH
-
-#define	DIR$C_FID	0
-#define	DIR$C_LINKNAME	1
-#define	DIR$K_LENGTH	6
-#define	DIR$C_LENGTH	6
-#define	DIR$S_DIRDEF	6
-#define	DIR$W_SIZE	0
-#define	DIR$W_VERLIMIT	2
-#define	DIR$B_FLAGS	4
-#define	DIR$S_TYPE	3
-#define	DIR$V_TYPE	0
-#define	DIR$V_NEXTREC	6
-#define	DIR$V_PREVREC	7
-#define	DIR$B_NAMECOUNT	5
-#define	DIR$S_NAME	80
-#define	DIR$T_NAME	6
-
-#define	DIR$K_VERSION	8
-#define	DIR$C_VERSION	8
-#define	DIR$S_DIRDEF1	8
-#define	DIR$W_VERSION	0
-#define	DIR$S_FID	6
-#define	DIR$W_FID	2
-#define	DIR$W_FID_NUM	2
-#define	DIR$W_FID_SEQ	4
-#define	DIR$W_FID_RVN	6
-#define	DIR$B_FID_RVN	6
-#define	DIR$B_FID_NMX	7
-
-#define	DIR$S_DIRDEF2	1
-#define	DIR$T_LINKNAME	0
-
-typedef struct dir$_name {
-/*  short dir$w_size;		 if you read with RMS, it eats this... */
-  short dir$w_verlimit;			/* maximum number of versions */
-  union {
-    unsigned char dir_b_flags;
-#define dir$b_flags dir__b_flags.dir_b_flags
-    struct {
-      unsigned char dir_v_type: DIR$S_TYPE;
-#define dir$v_type dir__b_flags.dir___b_flags.dir_v_type
-      unsigned char: 3;
-      unsigned char dir_v_nextrec: 1;
-#define dir$v_nextrec dir__b_flags.dir___b_flags.dir_v_nextrec
-      unsigned char dir_v_prevrec: 1;
-#define dir$v_prevrec dir__b_flags.dir___b_flags.dir_v_prevrec
-    } dir___b_flags;
-  } dir__b_flags;
-  unsigned char dir$b_namecount;
-#if defined(__GNUC__)
-  char dir$t_name[0];
-#elif defined(__DECC)
-  char *dir$t_name;
-#else
-  char dir$t_name[];
-#endif
-} dir$_dirdef;		/* only the fixed first part */
-
-typedef struct dir$_version {
-  short dir$w_version;
-  short dir$w_fid_num;
-  short dir$w_fid_seq;
-  union {
-    short dir_w_fid_rvn;
-#define dir$w_fid_rvn dir__w_fid_rvn.dir_w_fid_rvn
-    struct {
-      char dir_b_fid_rvn;
-#define dir$b_fid_rvn dir__w_fid_rvn.dir___w_fid_rvn.dir_b_fid_rvn
-      char dir_b_fid_nmx;
-#define dir$b_fid_nmx dir__w_fid_rvn.dir___w_fid_rvn.dir_b_fid_nmx
-    } dir___w_fid_rvn;
-  } dir__w_fid_rvn;
-} dir$_dirdef1;		/* one for each version of the file */
-
-typedef
-struct dir$_linkname {
-#ifdef __GNUC__
-  char    dir$t_linkname[0];
-#elif __DECC
-  char    *dir$t_linkname;
-#else
-  char    dir$t_linkname[];
-#endif
-} dir$_dirdef2;
-
-#endif
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/filetypes.h tin-2.0.0/vms/filetypes.h
--- tin-1.8.3/vms/filetypes.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/filetypes.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,13 +0,0 @@
-/* Define the symbols for various file types.
-   These are not included in POSIX.  */
-
-#ifndef S_IFMT
-#define	S_IFMT	0170000		/* type of file */
-#define S_IFDIR	0040000	/* directory */
-#define S_IFCHR	0020000	/* character special */
-#define S_IFBLK	0060000	/* block special */
-#define S_IFREG	0100000	/* regular */
-#define S_IFIFO	0010000	/* fifo */
-#define S_IFNAM 0050000 /* special named file */
-#endif /* not S_IFMT */
-
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/getopt.c tin-2.0.0/vms/getopt.c
--- tin-1.8.3/vms/getopt.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/getopt.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,755 +0,0 @@
-/* Getopt for GNU.
-   NOTE: getopt is now part of the C library, so if you don't know what
-   "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
-   before changing it!
-
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 1993
-   	Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License
-   as published by the Free Software Foundation; either version 2, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#ifndef __STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.  */
-#ifndef _NO_PROTO
-#define _NO_PROTO
-#endif
-
-#include <stdio.h>
-#ifdef VMS
-#include <string.h>
-#else
-#include <strings.h>
-#endif
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef	__GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
-   contain conflicting prototypes for getopt.  */
-#include <stdlib.h>
-#endif	/* GNU C library.  */
-
-/* If GETOPT_COMPAT is defined, `+' as well as `--' can introduce a
-   long-named option.  Because this is not POSIX.2 compliant, it is
-   being phased out.  */
-/* #define GETOPT_COMPAT */
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
-   but it behaves differently for the user, since it allows the user
-   to intersperse the options with the other arguments.
-
-   As `getopt' works, it permutes the elements of ARGV so that,
-   when it is done, all the options precede everything else.  Thus
-   all application programs are extended to handle flexible argument order.
-
-   Setting the environment variable POSIXLY_CORRECT disables permutation.
-   Then the behavior is completely standard.
-
-   GNU application programs can use a third alternative mode in which
-   they can distinguish the relative order of options and other arguments.  */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-char *optarg = 0;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns EOF, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-/* XXX 1003.2 says this must be 1 before any call.  */
-int optind = 0;
-
-/* The next char to be scanned in the option-element
-   in which the last option character we returned was found.
-   This allows us to pick up the scan where we left off.
-
-   If this is zero, or a null string, it means resume the scan
-   by advancing to the next ARGV-element.  */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
-   for unrecognized options.  */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
-   This must be initialized on some systems to avoid linking in the
-   system's own getopt implementation.  */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
-   If the caller did not specify anything,
-   the default is REQUIRE_ORDER if the environment variable
-   POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
-   REQUIRE_ORDER means don't recognize them as options;
-   stop option processing when the first non-option is seen.
-   This is what Unix does.
-   This mode of operation is selected by either setting the environment
-   variable POSIXLY_CORRECT, or using `+' as the first character
-   of the list of option characters.
-
-   PERMUTE is the default.  We permute the contents of ARGV as we scan,
-   so that eventually all the non-options are at the end.  This allows options
-   to be given in any order, even with programs that were not written to
-   expect this.
-
-   RETURN_IN_ORDER is an option available to programs that were written
-   to expect options and other ARGV-elements in any order and that care about
-   the ordering of the two.  We describe each non-option ARGV-element
-   as if it were the argument of an option with character code 1.
-   Using `-' as the first character of the list of option characters
-   selects this mode of operation.
-
-   The special argument `--' forces an end of option-scanning regardless
-   of the value of `ordering'.  In the case of RETURN_IN_ORDER, only
-   `--' can cause `getopt' to return EOF with `optind' != ARGC.  */
-
-static enum
-{
-  REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-#ifdef	__GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
-   because there are many ways it can cause trouble.
-   On some systems, it contains special magic macros that don't work
-   in GCC.  */
-#include <string.h>
-#define	my_index	strchr
-#else
-
-/* Avoid depending on library functions or files
-   whose names are inconsistent.  */
-
-char *getenv ();
-
-static char *
-my_index (str, chr)
-     const char *str;
-     int chr;
-{
-  while (*str)
-    {
-      if (*str == chr)
-	return (char *) str;
-      str++;
-    }
-  return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
-   If not using GCC, it is ok not to declare it.
-   (Supposedly there are some machines where it might get a warning,
-   but changing this conditional to __STDC__ is too risky.)  */
-#ifdef __GNUC__
-#ifdef IN_GCC
-#include "gstddef.h"
-#else
-#include <stddef.h>
-#endif
-extern size_t strlen (const char *);
-#endif
-
-#endif				/* GNU C library.  */
-
-/* Handle permutation of arguments.  */
-
-/* Describe the part of ARGV that contains non-options that have
-   been skipped.  `first_nonopt' is the index in ARGV of the first of them;
-   `last_nonopt' is the index after the last of them.  */
-
-static int first_nonopt;
-static int last_nonopt;
-
-/* Exchange two adjacent subsequences of ARGV.
-   One subsequence is elements [first_nonopt,last_nonopt)
-   which contains all the non-options that have been skipped so far.
-   The other is elements [last_nonopt,optind), which contains all
-   the options processed since those non-options were skipped.
-
-   `first_nonopt' and `last_nonopt' are relocated so that they describe
-   the new indices of the non-options in ARGV after they are moved.  */
-
-static void
-exchange (argv)
-     char **argv;
-{
-  int bottom = first_nonopt;
-  int middle = last_nonopt;
-  int top = optind;
-  char *tem;
-
-  /* Exchange the shorter segment with the far end of the longer segment.
-     That puts the shorter segment into the right place.
-     It leaves the longer segment in the right place overall,
-     but it consists of two parts that need to be swapped next.  */
-
-  while (top > middle && middle > bottom)
-    {
-      if (top - middle > middle - bottom)
-	{
-	  /* Bottom segment is the short one.  */
-	  int len = middle - bottom;
-	  register int i;
-
-	  /* Swap it with the top part of the top segment.  */
-	  for (i = 0; i < len; i++)
-	    {
-	      tem = argv[bottom + i];
-	      argv[bottom + i] = argv[top - (middle - bottom) + i];
-	      argv[top - (middle - bottom) + i] = tem;
-	    }
-	  /* Exclude the moved bottom segment from further swapping.  */
-	  top -= len;
-	}
-      else
-	{
-	  /* Top segment is the short one.  */
-	  int len = top - middle;
-	  register int i;
-
-	  /* Swap it with the bottom part of the bottom segment.  */
-	  for (i = 0; i < len; i++)
-	    {
-	      tem = argv[bottom + i];
-	      argv[bottom + i] = argv[middle + i];
-	      argv[middle + i] = tem;
-	    }
-	  /* Exclude the moved top segment from further swapping.  */
-	  bottom += len;
-	}
-    }
-
-  /* Update records for the slots the non-options now occupy.  */
-
-  first_nonopt += (optind - last_nonopt);
-  last_nonopt = optind;
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
-   given in OPTSTRING.
-
-   If an element of ARGV starts with '-', and is not exactly "-" or "--",
-   then it is an option element.  The characters of this element
-   (aside from the initial '-') are option characters.  If `getopt'
-   is called repeatedly, it returns successively each of the option characters
-   from each of the option elements.
-
-   If `getopt' finds another option character, it returns that character,
-   updating `optind' and `nextchar' so that the next call to `getopt' can
-   resume the scan with the following option character or ARGV-element.
-
-   If there are no more option characters, `getopt' returns `EOF'.
-   Then `optind' is the index in ARGV of the first ARGV-element
-   that is not an option.  (The ARGV-elements have been permuted
-   so that those that are not options now come last.)
-
-   OPTSTRING is a string containing the legitimate option characters.
-   If an option character is seen that is not listed in OPTSTRING,
-   return '?' after printing an error message.  If you set `opterr' to
-   zero, the error message is suppressed but we still return '?'.
-
-   If a char in OPTSTRING is followed by a colon, that means it wants an arg,
-   so the following text in the same ARGV-element, or the text of the following
-   ARGV-element, is returned in `optarg'.  Two colons mean an option that
-   wants an optional arg; if there is text in the current ARGV-element,
-   it is returned in `optarg', otherwise `optarg' is set to zero.
-
-   If OPTSTRING starts with `-' or `+', it requests different methods of
-   handling the non-option ARGV-elements.
-   See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
-   Long-named options begin with `--' instead of `-'.
-   Their names may be abbreviated as long as the abbreviation is unique
-   or is an exact match for some defined option.  If they have an
-   argument, it follows the option name in the same ARGV-element, separated
-   from the option name by a `=', or else the in next ARGV-element.
-   When `getopt' finds a long-named option, it returns 0 if that option's
-   `flag' field is nonzero, the value of the option's `val' field
-   if the `flag' field is zero.
-
-   The elements of ARGV aren't really const, because we permute them.
-   But we pretend they're const in the prototype to be compatible
-   with other systems.
-
-   LONGOPTS is a vector of `struct option' terminated by an
-   element containing a name which is zero.
-
-   LONGIND returns the index in LONGOPT of the long-named option found.
-   It is only valid when a long-named option has been found by the most
-   recent call.
-
-   If LONG_ONLY is nonzero, '-' as well as '--' can introduce
-   long-named options.  */
-
-int
-_getopt_internal (argc, argv, optstring, longopts, longind, long_only)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-     const struct option *longopts;
-     int *longind;
-     int long_only;
-{
-  int option_index;
-
-  optarg = 0;
-
-  /* Initialize the internal data when the first call is made.
-     Start processing options with ARGV-element 1 (since ARGV-element 0
-     is the program name); the sequence of previously skipped
-     non-option ARGV-elements is empty.  */
-
-  if (optind == 0)
-    {
-      first_nonopt = last_nonopt = optind = 1;
-
-      nextchar = NULL;
-
-      /* Determine how to handle the ordering of options and nonoptions.  */
-
-      if (optstring[0] == '-')
-	{
-	  ordering = RETURN_IN_ORDER;
-	  ++optstring;
-	}
-      else if (optstring[0] == '+')
-	{
-	  ordering = REQUIRE_ORDER;
-	  ++optstring;
-	}
-      else if (getenv ("POSIXLY_CORRECT") != NULL)
-	ordering = REQUIRE_ORDER;
-      else
-	ordering = PERMUTE;
-    }
-
-  if (nextchar == NULL || *nextchar == '\0')
-    {
-      if (ordering == PERMUTE)
-	{
-	  /* If we have just processed some options following some non-options,
-	     exchange them so that the options come first.  */
-
-	  if (first_nonopt != last_nonopt && last_nonopt != optind)
-	    exchange ((char **) argv);
-	  else if (last_nonopt != optind)
-	    first_nonopt = optind;
-
-	  /* Now skip any additional non-options
-	     and extend the range of non-options previously skipped.  */
-
-	  while (optind < argc
-		 && (argv[optind][0] != '-' || argv[optind][1] == '\0')
-#ifdef GETOPT_COMPAT
-		 && (longopts == NULL
-		     || argv[optind][0] != '+' || argv[optind][1] == '\0')
-#endif				/* GETOPT_COMPAT */
-		 )
-	    optind++;
-	  last_nonopt = optind;
-	}
-
-      /* Special ARGV-element `--' means premature end of options.
-	 Skip it like a null option,
-	 then exchange with previous non-options as if it were an option,
-	 then skip everything else like a non-option.  */
-
-      if (optind != argc && !strcmp (argv[optind], "--"))
-	{
-	  optind++;
-
-	  if (first_nonopt != last_nonopt && last_nonopt != optind)
-	    exchange ((char **) argv);
-	  else if (first_nonopt == last_nonopt)
-	    first_nonopt = optind;
-	  last_nonopt = argc;
-
-	  optind = argc;
-	}
-
-      /* If we have done all the ARGV-elements, stop the scan
-	 and back over any non-options that we skipped and permuted.  */
-
-      if (optind == argc)
-	{
-	  /* Set the next-arg-index to point at the non-options
-	     that we previously skipped, so the caller will digest them.  */
-	  if (first_nonopt != last_nonopt)
-	    optind = first_nonopt;
-	  return EOF;
-	}
-
-      /* If we have come to a non-option and did not permute it,
-	 either stop the scan or describe it to the caller and pass it by.  */
-
-      if ((argv[optind][0] != '-' || argv[optind][1] == '\0')
-#ifdef GETOPT_COMPAT
-	  && (longopts == NULL
-	      || argv[optind][0] != '+' || argv[optind][1] == '\0')
-#endif				/* GETOPT_COMPAT */
-	  )
-	{
-	  if (ordering == REQUIRE_ORDER)
-	    return EOF;
-	  optarg = argv[optind++];
-	  return 1;
-	}
-
-      /* We have found another option-ARGV-element.
-	 Start decoding its characters.  */
-
-      nextchar = (argv[optind] + 1
-		  + (longopts != NULL && argv[optind][1] == '-'));
-    }
-
-  if (longopts != NULL
-      && ((argv[optind][0] == '-'
-	   && (argv[optind][1] == '-' || long_only))
-#ifdef GETOPT_COMPAT
-	  || argv[optind][0] == '+'
-#endif				/* GETOPT_COMPAT */
-	  ))
-    {
-      const struct option *p;
-      char *s = nextchar;
-      int exact = 0;
-      int ambig = 0;
-      const struct option *pfound = NULL;
-      int indfound;
-
-      while (*s && *s != '=')
-	s++;
-
-      /* Test all options for either exact match or abbreviated matches.  */
-      for (p = longopts, option_index = 0; p->name;
-	   p++, option_index++)
-	if (!strncmp (p->name, nextchar, s - nextchar))
-	  {
-	    if (s - nextchar == strlen (p->name))
-	      {
-		/* Exact match found.  */
-		pfound = p;
-		indfound = option_index;
-		exact = 1;
-		break;
-	      }
-	    else if (pfound == NULL)
-	      {
-		/* First nonexact match found.  */
-		pfound = p;
-		indfound = option_index;
-	      }
-	    else
-	      /* Second nonexact match found.  */
-	      ambig = 1;
-	  }
-
-      if (ambig && !exact)
-	{
-	  if (opterr)
-	    fprintf (stderr, "%s: option `%s' is ambiguous\n",
-		     argv[0], argv[optind]);
-	  nextchar += strlen (nextchar);
-	  optind++;
-	  return '?';
-	}
-
-      if (pfound != NULL)
-	{
-	  option_index = indfound;
-	  optind++;
-	  if (*s)
-	    {
-	      /* Don't test has_arg with >, because some C compilers don't
-		 allow it to be used on enums.  */
-	      if (pfound->has_arg)
-		optarg = s + 1;
-	      else
-		{
-		  if (opterr)
-		    {
-		      if (argv[optind - 1][1] == '-')
-			/* --option */
-			fprintf (stderr,
-				 "%s: option `--%s' doesn't allow an argument\n",
-				 argv[0], pfound->name);
-		      else
-			/* +option or -option */
-			fprintf (stderr,
-			     "%s: option `%c%s' doesn't allow an argument\n",
-			     argv[0], argv[optind - 1][0], pfound->name);
-		    }
-		  nextchar += strlen (nextchar);
-		  return '?';
-		}
-	    }
-	  else if (pfound->has_arg == 1)
-	    {
-	      if (optind < argc)
-		optarg = argv[optind++];
-	      else
-		{
-		  if (opterr)
-		    fprintf (stderr, "%s: option `%s' requires an argument\n",
-			     argv[0], argv[optind - 1]);
-		  nextchar += strlen (nextchar);
-		  return optstring[0] == ':' ? ':' : '?';
-		}
-	    }
-	  nextchar += strlen (nextchar);
-	  if (longind != NULL)
-	    *longind = option_index;
-	  if (pfound->flag)
-	    {
-	      *(pfound->flag) = pfound->val;
-	      return 0;
-	    }
-	  return pfound->val;
-	}
-      /* Can't find it as a long option.  If this is not getopt_long_only,
-	 or the option starts with '--' or is not a valid short
-	 option, then it's an error.
-	 Otherwise interpret it as a short option.  */
-      if (!long_only || argv[optind][1] == '-'
-#ifdef GETOPT_COMPAT
-	  || argv[optind][0] == '+'
-#endif				/* GETOPT_COMPAT */
-	  || my_index (optstring, *nextchar) == NULL)
-	{
-	  if (opterr)
-	    {
-	      if (argv[optind][1] == '-')
-		/* --option */
-		fprintf (stderr, "%s: unrecognized option `--%s'\n",
-			 argv[0], nextchar);
-	      else
-		/* +option or -option */
-		fprintf (stderr, "%s: unrecognized option `%c%s'\n",
-			 argv[0], argv[optind][0], nextchar);
-	    }
-	  nextchar = (char *) "";
-	  optind++;
-	  return '?';
-	}
-    }
-
-  /* Look at and handle the next option-character.  */
-
-  {
-    char c = *nextchar++;
-    char *temp = my_index (optstring, c);
-
-    /* Increment `optind' when we start to process its last character.  */
-    if (*nextchar == '\0')
-      ++optind;
-
-    if (temp == NULL || c == ':')
-      {
-	if (opterr)
-	  {
-#if 0
-	    if (c < 040 || c >= 0177)
-	      fprintf (stderr, "%s: unrecognized option, character code 0%o\n",
-		       argv[0], c);
-	    else
-	      fprintf (stderr, "%s: unrecognized option `-%c'\n", argv[0], c);
-#else
-	    /* 1003.2 specifies the format of this message.  */
-	    fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c);
-#endif
-	  }
-	optopt = c;
-	return '?';
-      }
-    if (temp[1] == ':')
-      {
-	if (temp[2] == ':')
-	  {
-	    /* This is an option that accepts an argument optionally.  */
-	    if (*nextchar != '\0')
-	      {
-		optarg = nextchar;
-		optind++;
-	      }
-	    else
-	      optarg = 0;
-	    nextchar = NULL;
-	  }
-	else
-	  {
-	    /* This is an option that requires an argument.  */
-	    if (*nextchar != '\0')
-	      {
-		optarg = nextchar;
-		/* If we end this ARGV-element by taking the rest as an arg,
-		   we must advance to the next element now.  */
-		optind++;
-	      }
-	    else if (optind == argc)
-	      {
-		if (opterr)
-		  {
-#if 0
-		    fprintf (stderr, "%s: option `-%c' requires an argument\n",
-			     argv[0], c);
-#else
-		    /* 1003.2 specifies the format of this message.  */
-		    fprintf (stderr, "%s: option requires an argument -- %c\n",
-			     argv[0], c);
-#endif
-		  }
-		optopt = c;
-		if (optstring[0] == ':')
-		  c = ':';
-		else
-		  c = '?';
-	      }
-	    else
-	      /* We already incremented `optind' once;
-		 increment it again when taking next ARGV-elt as argument.  */
-	      optarg = argv[optind++];
-	    nextchar = NULL;
-	  }
-      }
-    return c;
-  }
-}
-
-int
-getopt (argc, argv, optstring)
-     int argc;
-     char *const *argv;
-     const char *optstring;
-{
-  return _getopt_internal (argc, argv, optstring,
-			   (const struct option *) 0,
-			   (int *) 0,
-			   0);
-}
-
-#endif	/* _LIBC or not __GNU_LIBRARY__.  */
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
-   the above definition of `getopt'.  */
-
-int
-main (argc, argv)
-     int argc;
-     char **argv;
-{
-  int c;
-  int digit_optind = 0;
-
-  while (1)
-    {
-      int this_option_optind = optind ? optind : 1;
-
-      c = getopt (argc, argv, "abc:d:0123456789");
-      if (c == EOF)
-	break;
-
-      switch (c)
-	{
-	case '0':
-	case '1':
-	case '2':
-	case '3':
-	case '4':
-	case '5':
-	case '6':
-	case '7':
-	case '8':
-	case '9':
-	  if (digit_optind != 0 && digit_optind != this_option_optind)
-	    printf ("digits occur in two different argv-elements.\n");
-	  digit_optind = this_option_optind;
-	  printf ("option %c\n", c);
-	  break;
-
-	case 'a':
-	  printf ("option a\n");
-	  break;
-
-	case 'b':
-	  printf ("option b\n");
-	  break;
-
-	case 'c':
-	  printf ("option c with value `%s'\n", optarg);
-	  break;
-
-	case '?':
-	  break;
-
-	default:
-	  printf ("?? getopt returned character code 0%o ??\n", c);
-	}
-    }
-
-  if (optind < argc)
-    {
-      printf ("non-option ARGV-elements: ");
-      while (optind < argc)
-	printf ("%s ", argv[optind++]);
-      printf ("\n");
-    }
-
-  exit (0);
-}
-
-#endif /* TEST */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/getopt.h tin-2.0.0/vms/getopt.h
--- tin-1.8.3/vms/getopt.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/getopt.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,131 +0,0 @@
-/* Declarations for getopt.
-   Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License
-   as published by the Free Software Foundation; either version 2, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-#ifndef __UNISTD_LOADED
-#ifndef _GETOPT_H
-#define _GETOPT_H 1
-
-#ifdef	__cplusplus
-extern "C" {
-#endif
-
-/* For communication from `getopt' to the caller.
-   When `getopt' finds an option that takes an argument,
-   the argument value is returned here.
-   Also, when `ordering' is RETURN_IN_ORDER,
-   each non-option ARGV-element is returned here.  */
-
-extern char *optarg;
-
-/* Index in ARGV of the next element to be scanned.
-   This is used for communication to and from the caller
-   and for communication between successive calls to `getopt'.
-
-   On entry to `getopt', zero means this is the first call; initialize.
-
-   When `getopt' returns EOF, this is the index of the first of the
-   non-option elements that the caller should itself scan.
-
-   Otherwise, `optind' communicates from one call to the next
-   how much of ARGV has been scanned so far.  */
-
-extern int optind;
-
-/* Callers store zero here to inhibit the error message `getopt' prints
-   for unrecognized options.  */
-
-extern int opterr;
-
-/* Set to an option character which was unrecognized.  */
-
-extern int optopt;
-
-/* Describe the long-named options requested by the application.
-   The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector
-   of `struct option' terminated by an element containing a name which is
-   zero.
-
-   The field `has_arg' is:
-   no_argument		(or 0) if the option does not take an argument,
-   required_argument	(or 1) if the option requires an argument,
-   optional_argument 	(or 2) if the option takes an optional argument.
-
-   If the field `flag' is not NULL, it points to a variable that is set
-   to the value given in the field `val' when the option is found, but
-   left unchanged if the option is not found.
-
-   To have a long-named option do something other than set an `int' to
-   a compiled-in constant, such as set a value from `optarg', set the
-   option's `flag' field to zero and its `val' field to a nonzero
-   value (the equivalent single-letter option character, if there is
-   one).  For long options that have a zero `flag' field, `getopt'
-   returns the contents of the `val' field.  */
-
-struct option
-{
-#if	__STDC__
-  const char *name;
-#else
-  char *name;
-#endif
-  /* has_arg can't be an enum because some compilers complain about
-     type mismatches in all the code that assumes it is an int.  */
-  int has_arg;
-  int *flag;
-  int val;
-};
-
-/* Names for the values of the `has_arg' field of `struct option'.  */
-
-#define	no_argument		0
-#define required_argument	1
-#define optional_argument	2
-
-#if __STDC__
-#if defined(__GNU_LIBRARY__)
-/* Many other libraries have conflicting prototypes for getopt, with
-   differences in the consts, in stdlib.h.  To avoid compilation
-   errors, only prototype getopt for the GNU C library.  */
-extern int getopt (int argc, char *const *argv, const char *shortopts);
-#else /* not __GNU_LIBRARY__ */
-extern int getopt ();
-#endif /* not __GNU_LIBRARY__ */
-extern int getopt_long (int argc, char *const *argv, const char *shortopts,
-		        const struct option *longopts, int *longind);
-extern int getopt_long_only (int argc, char *const *argv,
-			     const char *shortopts,
-		             const struct option *longopts, int *longind);
-
-/* Internal only.  Users should not call this directly.  */
-extern int _getopt_internal (int argc, char *const *argv,
-			     const char *shortopts,
-		             const struct option *longopts, int *longind,
-			     int long_only);
-#else /* not __STDC__ */
-extern int getopt ();
-extern int getopt_long ();
-extern int getopt_long_only ();
-
-extern int _getopt_internal ();
-#endif /* not __STDC__ */
-
-#ifdef	__cplusplus
-}
-#endif
-
-#endif /* _GETOPT_H */
-#endif /* __UNISTD_LOADED */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/getopt1.c tin-2.0.0/vms/getopt1.c
--- tin-1.8.3/vms/getopt1.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/getopt1.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,180 +0,0 @@
-/* getopt_long and getopt_long_only entry points for GNU getopt.
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 1993
-	Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License
-   as published by the Free Software Foundation; either version 2, or
-   (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "getopt.h"
-
-#ifndef __STDC__
-/* This is a separate conditional since some stdc systems
-   reject `defined (const)'.  */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
-   actually compiling the library itself.  This code is part of the GNU C
-   Library, but also included in many other GNU distributions.  Compiling
-   and linking in this code is a waste when using the GNU C library
-   (especially if it is a shared library).  Rather than having every GNU
-   program understand `configure --with-gnu-libc' and omit the object files,
-   it is simpler to just do this in the source for each such file.  */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-
-
-/* This needs to come after some library #include
-   to get __GNU_LIBRARY__ defined.  */
-#ifdef __GNU_LIBRARY__
-#include <stdlib.h>
-#else
-char *getenv ();
-#endif
-
-#ifndef	NULL
-#define NULL 0
-#endif
-
-int
-getopt_long (argc, argv, options, long_options, opt_index)
-     int argc;
-     char *const *argv;
-     const char *options;
-     const struct option *long_options;
-     int *opt_index;
-{
-  return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-}
-
-/* Like getopt_long, but '-' as well as '--' can indicate a long option.
-   If an option that starts with '-' (not '--') doesn't match a long option,
-   but does match a short option, it is parsed as a short option
-   instead.  */
-
-int
-getopt_long_only (argc, argv, options, long_options, opt_index)
-     int argc;
-     char *const *argv;
-     const char *options;
-     const struct option *long_options;
-     int *opt_index;
-{
-  return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
-}
-
-
-#endif	/* _LIBC or not __GNU_LIBRARY__.  */
-
-#ifdef TEST
-
-#include <stdio.h>
-
-int
-main (argc, argv)
-     int argc;
-     char **argv;
-{
-  int c;
-  int digit_optind = 0;
-
-  while (1)
-    {
-      int this_option_optind = optind ? optind : 1;
-      int option_index = 0;
-      static struct option long_options[] =
-      {
-	{"add", 1, 0, 0},
-	{"append", 0, 0, 0},
-	{"delete", 1, 0, 0},
-	{"verbose", 0, 0, 0},
-	{"create", 0, 0, 0},
-	{"file", 1, 0, 0},
-	{0, 0, 0, 0}
-      };
-
-      c = getopt_long (argc, argv, "abc:d:0123456789",
-		       long_options, &option_index);
-      if (c == EOF)
-	break;
-
-      switch (c)
-	{
-	case 0:
-	  printf ("option %s", long_options[option_index].name);
-	  if (optarg)
-	    printf (" with arg %s", optarg);
-	  printf ("\n");
-	  break;
-
-	case '0':
-	case '1':
-	case '2':
-	case '3':
-	case '4':
-	case '5':
-	case '6':
-	case '7':
-	case '8':
-	case '9':
-	  if (digit_optind != 0 && digit_optind != this_option_optind)
-	    printf ("digits occur in two different argv-elements.\n");
-	  digit_optind = this_option_optind;
-	  printf ("option %c\n", c);
-	  break;
-
-	case 'a':
-	  printf ("option a\n");
-	  break;
-
-	case 'b':
-	  printf ("option b\n");
-	  break;
-
-	case 'c':
-	  printf ("option c with value `%s'\n", optarg);
-	  break;
-
-	case 'd':
-	  printf ("option d with value `%s'\n", optarg);
-	  break;
-
-	case '?':
-	  break;
-
-	default:
-	  printf ("?? getopt returned character code 0%o ??\n", c);
-	}
-    }
-
-  if (optind < argc)
-    {
-      printf ("non-option ARGV-elements: ");
-      while (optind < argc)
-	printf ("%s ", argv[optind++]);
-      printf ("\n");
-    }
-
-  exit (0);
-}
-
-#endif /* TEST */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/getpass.c tin-2.0.0/vms/getpass.c
--- tin-1.8.3/vms/getpass.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/getpass.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,99 +0,0 @@
-/*
-SYNOPSIS
-     #include <stdlib.h>
-
-     char *getpass(const char *prompt);
-
-MT-LEVEL
-     Unsafe
-
-DESCRIPTION
-     getpass() reads up  to  a  newline  or  EOF  from  the  file
-     SYS$INPUT,  after prompting on the standard error output with
-     the null-terminated string prompt and disabling echoing.   A
-     pointer is returned to a null-terminated string of at most 8
-     characters.  If SYS$INPUT cannot be opened, a null pointer is
-     returned.
-
-FILES
-    SYS$INPUT
-
-NOTES
-     The return value points to  static  data  whose  content  is
-     overwritten by each call.
-
-AUTHOR
-    Michael Stenns
-
-COPYRIGHT
-    (c) 1997    The content of this file is in the public domain.
-*/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-
-#include <descrip.h>
-#include <iodef.h>
-#include <ssdef.h>
-
-typedef struct
-{
-   short cond_value;
-   short count;
-   int info;
-} io_statblk;
-
-char *getpass(const char *prompt)
-{
-  static char password[64];
-  char cMyChar = ' ', Backstr[] = {8,32,8,0};
-  int pw_len = 0, status;
-  io_statblk status_block;
-  short int in_chan = 0;
-  short int out_chan = 0;
-
-  memset (password, '\0', sizeof password);
-  sys$assign (desz("SYS$INPUT"), &in_chan,0,0);
-  sys$assign (desz("SYS$ERROR"), &out_chan,0,0);
-  /*  Queue the I/O.  */
-  fprintf (stderr,"\n%s",prompt); fflush(stderr);
-  while ( !iscntrl(cMyChar) && (pw_len < (sizeof password / sizeof (char) - 1)))
-  {
-    if ( status = (sys$qiow (0, in_chan, IO$_READVBLK|IO$M_NOFILTR|IO$M_NOECHO,
-                       &status_block,0,0,
-                       &cMyChar,1,0,0,0,0)) != SS$_NORMAL)
-    {
-      fprintf (stderr,"\n%s\n",vms_errmsg (status_block.cond_value));
-      cMyChar = '\r';
-    }
-    else
-    {
-      if ((cMyChar == 127) || (cMyChar == 8))
-      {
-        cMyChar = ' ';
-        password[pw_len] = '\0';
-        if (pw_len)
-        {
-          pw_len--;
-          sys$qiow (0, out_chan, IO$_WRITEVBLK,
-                   &status_block,0,0,
-                   Backstr,3,0,0,0,0);
-        }
-      }
-      else
-      {
-        password[pw_len++] = cMyChar;
-        sys$qiow (0, out_chan, IO$_WRITEVBLK,
-                 &status_block,0,0,
-                 "*",1,0,0,0,0);
-      }
-    }
-  }
-  while (pw_len < 8) password[pw_len++] = ' ';
-  password[--pw_len] = '\0';
-  sys$dassgn (in_chan);
-  sys$dassgn (out_chan);
-  fprintf (stderr,"\n");
-  return password;
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/isxterm.c tin-2.0.0/vms/isxterm.c
--- tin-1.8.3/vms/isxterm.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/isxterm.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,29 +0,0 @@
-#include <descrip.h>
-#include <iodef.h>
-#include <ssdef.h>
-#include <stsdef.h>
-#include <stdio.h>
-#include <X11/Xos.h>
-#include <X11/Xlib.h>
-
-#ifndef TRUE
-#	define TRUE 1
-#	define FALSE 0
-#endif /* TRUE */
-
-is_xterm()
-{
-    Display *dpy;                       /* X connection */
-    char *displayname = NULL;           /* server to contact */
-
-#ifdef __alpha
-    dpy = XOpenDisplay (displayname);
-    if (!dpy)
-      return FALSE;
-
-    XCloseDisplay (dpy);
-    return TRUE;
-#else
-    return FALSE;
-#endif /* __alpha */
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/libvms.mms tin-2.0.0/vms/libvms.mms
--- tin-1.8.3/vms/libvms.mms	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/libvms.mms	1970-01-01 01:00:00.000000000 +0100
@@ -1,171 +0,0 @@
-#
-# DESCRIP.MMS for VMS routines of TIN
-#
-
-# Start with MMS /DESCRIPTION=LIBVMS /MACRO=(Comp=1,ostyp=1)
-# where Comp is one of GNUC, DECC or DECCXX and ostyp is ALPHA or VAX
-#
-
-.IFDEF ALPHA
-OS_TYP = ALPHA
-.ENDIF
-
-.IFDEF VAX
-OS_TYP = VAX
-.ENDIF
-
-.IFDEF OS_TYP
-.ELSE
-.FIRST
-        @ WRITE SYS$OUTPUT "   Please start MMS (or MMK) at least with following switches:"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   on OpenVMS/Alpha:"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=LIBVMS /MACRO=(ALPHA=1,GNUC=1)"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=LIBVMS /MACRO=(ALPHA=1,DECC=1)"
-        @ WRITE SYS$OUTPUT ""
-        @ WRITE SYS$OUTPUT "   on OpenVMS/Vax:"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=LIBVMS /MACRO=(VAX=1,GNUC=1)"
-        @ WRITE SYS$OUTPUT "   $MMS /DESCRIPTION=LIBVMS /MACRO=(VAX=1,DECC=1)"
-        @ WRITE SYS$OUTPUT ""
-        @ return 44  ! %SYSTEM-F-ABORT, abort
-
-.ENDIF
-
-#
-# DEC C Compiler
-#
-.IFDEF DECC
-COMPFLAG = /DECC/WARNING=(DISABLE=IMPLICITFUNC)/PREFIX_LIBRARY_ENTRIES=ALL_ENTRIES
-INCLUDES = /INCLUDE=([-.INCLUDE],[-.VMS],[-.PCRE])
-COMPILER = DEC C
-COMP     = DECC
-.ELSE
-#
-# GNU C Compiler
-#
-.IFDEF GNUC
-CC       = gcc
-COMPFLAG = 
-INCLUDES = /INCLUDE=([-.INCLUDE],[-.VMS],[-.PCRE])
-COMPILER = GNU C
-COMP     = GNUC
-.ELSE
-#
-# VAX C Compiler
-#
-.IFDEF VAXC
-COMPFLAG = 
-INCLUDES = /INCLUDE=([-.INCLUDE],[-.VMS],[-.PCRE])
-COMPILER = VAX C
-COMP     = VAXC
-#
-# No Compiler specified
-#
-.ELSE
-COMPILER = none specified
-COMP     = NONE
-CC       = $!
-.ENDIF
-.ENDIF
-.ENDIF
-
-.IFDEF DEBUG
-VMSLIB    = LIBVMSDBG_$(COMP)_$(OS_TYP).OLB
-CFLAGS     = $(COMPFLAG)$(INCLUDES)/LIST/NOWARN/NOOPTIMIZE/DEBUG
-LFLAGS     = /DEBUG
-.ELSE
-VMSLIB    = LIBVMS_$(COMP)_$(OS_TYP).OLB
-CFLAGS     = $(COMPFLAG)$(INCLUDES)/NOWARNING/OPTIMIZE
-.ENDIF
-
-INCDIR  = [-.include]
-
-############################################################################
-
-OBJECTS = $(MODULES:.obj)
-
-
-all : checklib $(VMSLIB)($(MODULES))
-    @ WRITE SYS$OUTPUT "Built $(LIB)"
-
-
-checklib :
-    @ If F$Search("$(VMSLIB)") .EQS. "" Then Library/Create $(VMSLIB)
-
-
-$(VMSLIB)(vms) :    vms.c $(INCDIR)tin.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(vmsdir) :    vmsdir.c strings.h ndir.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(vmspwd) :    vmspwd.c pwd.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(vmsfile) :    vmsfile.c parse.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(parse) :    parse.c 
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(parsdate) :    parsdate.c 
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(getopt) :    getopt.c $(INCDIR)config.h
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(getopt1) :    getopt1.c getopt.h $(INCDIR)config.h 
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(getpass) :    getpass.c 
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(qsort) :    qsort.c 
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-$(VMSLIB)(isxterm) :    isxterm.c
-        $(CC)$(CFLAGS) $(MMS$SOURCE)
-        LIBR/REPLACE $(MMS$TARGET) $(MMS$TARGET_NAME)
-        @- DELETE /NOLOG $(MMS$TARGET_NAME).OBJ;*
-
-
-
-
-############################################################################
-
-clean :
-    @ WRITE SYS$OUTPUT "Cleaning $(LIB)"
-    @ if f$search("*.obj;*") .nes. "" then Delete/Log *.obj;*
-    @ if f$search("*.olb;*") .nes. "" then Delete/Log *.olb;*
-    @ if f$search("*.lis;*") .nes. "" then Delete/Log *.lis;*
-    @ if f$search("tin.opt;*") .nes. "" then Purge/Log tin.opt
-
-.IFDEF DECC
-
-.ELSE
-.FIRST :
-        define sys sys$library
-
-.LAST :
-        deassign sys
-.ENDIF
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/ndir.h tin-2.0.0/vms/ndir.h
--- tin-1.8.3/vms/ndir.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/ndir.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,51 +0,0 @@
-/*
-	<dir.h> -- definitions for 4.2BSD-compatible directory access
-
-	last edit:	09-Jul-1983	D A Gwyn
-*/
-
-#ifdef VMS
-#ifndef FAB$C_BID
-#include <fab.h>
-#endif
-#ifndef NAM$C_BID
-#include <nam.h>
-#endif
-#ifndef RMS$_SUC
-#include <rmsdef.h>
-#endif
-#include "dir.h"
-#endif /* VMS */
-
-#define DIRBLKSIZ	512		/* size of directory block */
-#ifdef VMS
-#define MAXNAMLEN	(DIR$S_NAME + 7) /* 80 plus room for version #.  */
-#define MAXFULLSPEC	NAM$C_MAXRSS /* Maximum full spec */
-#else
-#define MAXNAMLEN	15		/* maximum filename length */
-#endif /* VMS */
-	/* NOTE:  MAXNAMLEN must be one less than a multiple of 4 */
-
-struct direct				/* data from readdir() */
-	{
-	long		d_ino;		/* inode number of entry */
-	unsigned short	d_reclen;	/* length of this record */
-	unsigned short	d_namlen;	/* length of string in d_name */
-	char		d_name[MAXNAMLEN+1];	/* name of file */
-	};
-
-typedef struct
-	{
-	int	dd_fd;			/* file descriptor */
-	int	dd_loc;			/* offset in block */
-	int	dd_size;		/* amount of valid data */
-	char	dd_buf[DIRBLKSIZ];	/* directory block */
-	}	DIR;			/* stream data from opendir() */
-
-extern DIR		*opendir();
-extern struct direct	*readdir();
-extern long		telldir();
-extern void		seekdir();
-extern void		closedir();
-
-#define rewinddir( dirp )	seekdir( dirp, 0L )
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/parsdate.c tin-2.0.0/vms/parsdate.c
--- tin-1.8.3/vms/parsdate.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/parsdate.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,1327 +0,0 @@
-#ifndef lint
-static char yysccsid[] = "@(#)yaccpar	1.9 (Berkeley) 02/21/93";
-#endif
-#define YYBYACC 1
-#define YYMAJOR 1
-#define YYMINOR 9
-#define yyclearin (yychar=(-1))
-#define yyerrok (yyerrflag=0)
-#define YYRECOVERING (yyerrflag!=0)
-#define YYPREFIX "yy"
-#line 2 "parsdate.y"
-/*
- *  Project   : tin - a Usenet reader
- *  Module    : parsedate.y
- *  Author    : S. Bellovin, R. $alz, J. Berets, P. Eggert
- *  Created   : 1990-08-01
- *  Updated   : 2000-01-03
- *  Notes     : This grammar has 6 shift/reduce conflicts.
- *              Originally written by Steven M. Bellovin <smb@research.att.com>
- *              while at the University of North Carolina at Chapel Hill.
- *              Later tweaked by a couple of people on Usenet.  Completely
- *              overhauled by Rich $alz <rsalz@osf.org> and Jim Berets
- *              <jberets@bbn.com> in August, 1990.
- *              Further revised (removed obsolete constructs and cleaned up
- *              timezone names) in August, 1991, by Rich.
- *              Paul Eggert <eggert@twinsun.com> helped in September 1992.
- *              Roland Rosenfeld added MET DST code in April 1994.
- *  Revision  : 1.13
- *  Copyright : This code is in the public domain and has no copyright.
- */
-
-/* SUPPRESS 530 *//* Empty body for statement */
-/* SUPPRESS 593 on yyerrlab *//* Label was not used */
-/* SUPPRESS 593 on yynewstate *//* Label was not used */
-/* SUPPRESS 595 on yypvt *//* Automatic variable may be used before set */
-
-#include "tin.h"
-
-/*
-**  Get the number of elements in a fixed-size array, or a pointer just
-**  past the end of it.
-*/
-#define ENDOF(array)	(&array[SIZEOF(array)])
-
-#define CTYPE(isXXXXX, c) (((unsigned char)(c) < 128) && isXXXXX(((int)c)))
-
-typedef char	*STRING;
-
-extern int date_parse(void);
-
-#define yyparse		date_parse
-#define yylex		date_lex
-#define yyerror		date_error
-
-
-    /* See the LeapYears table in Convert. */
-#define EPOCH		1970
-#define END_OF_TIME	2038
-
-    /* Constants for general time calculations. */
-#define DST_OFFSET	1
-#define SECSPERDAY	(24L * 60L * 60L)
-    /* Readability for TABLE stuff. */
-#define HOUR(x)		(x * 60)
-
-#define LPAREN		'('
-#define RPAREN		')'
-#define IS7BIT(x)	((unsigned int)(x) < 0200)
-
-
-/*
-**  Daylight-savings mode:  on, off, or not yet known.
-*/
-typedef enum _DSTMODE {
-    DSTon, DSToff, DSTmaybe
-} DSTMODE;
-
-/*
-**  Meridian:  am, pm, or 24-hour style.
-*/
-typedef enum _MERIDIAN {
-    MERam, MERpm, MER24
-} MERIDIAN;
-
-
-/*
-**  Global variables.  We could get rid of most of them by using a yacc
-**  union, but this is more efficient.  (This routine predates the
-**  yacc %union construct.)
-*/
-static char	*yyInput;
-static DSTMODE	yyDSTmode;
-static int	yyHaveDate;
-static int	yyHaveRel;
-static int	yyHaveTime;
-static time_t	yyTimezone;
-static time_t	yyDay;
-static time_t	yyHour;
-static time_t	yyMinutes;
-static time_t	yyMonth;
-static time_t	yySeconds;
-static time_t	yyYear;
-static MERIDIAN	yyMeridian;
-static time_t	yyRelMonth;
-static time_t	yyRelSeconds;
-
-static time_t	ToSeconds(time_t, time_t, time_t, MERIDIAN);
-static time_t	Convert(time_t, time_t, time_t, time_t, time_t, time_t, MERIDIAN, DSTMODE);
-static time_t	DSTcorrect(time_t, time_t);
-static time_t	RelativeMonth(time_t, time_t);
-static int	LookupWord(char	*, int);
-static int	date_lex(void);
-static int	GetTimeInfo(TIMEINFO *Now);
-
-/*
- * The 'date_error()' function is declared here to work around a defect in
- * bison 1.22, which redefines 'const' further down in this file, making it
- * impossible to put a prototype here, and the function later.  We're using
- * 'const' on the parameter to quiet gcc's -Wwrite-strings warning.
- */
-/*ARGSUSED*/
-static void
-date_error(const char *s)
-{
-    /*NOTREACHED*/
-}
-
-#line 120 "parsdate.y"
-typedef union {
-    time_t		Number;
-    enum _MERIDIAN	Meridian;
-} YYSTYPE;
-#line 134 "y.tab.c"
-#define tDAY 257
-#define tDAYZONE 258
-#define tMERIDIAN 259
-#define tMONTH 260
-#define tMONTH_UNIT 261
-#define tSEC_UNIT 262
-#define tSNUMBER 263
-#define tUNUMBER 264
-#define tZONE 265
-#define tDST 266
-#define YYERRCODE 256
-short yylhs[] = {                                        -1,
-    0,    0,    4,    4,    4,    4,    5,    5,    5,    5,
-    5,    2,    2,    2,    2,    2,    1,    6,    6,    6,
-    6,    6,    6,    6,    7,    7,    7,    7,    3,    3,
-};
-short yylen[] = {                                         2,
-    0,    2,    1,    2,    1,    1,    2,    4,    4,    6,
-    6,    1,    1,    2,    2,    1,    1,    3,    5,    2,
-    4,    2,    3,    5,    2,    2,    2,    2,    0,    1,
-};
-short yydefred[] = {                                      1,
-    0,    0,    0,    0,    0,    2,    0,    5,    6,    0,
-    0,   27,   25,   30,    0,   28,   26,    0,    0,    7,
-    0,   17,    0,   16,    4,    0,    0,   23,    0,    0,
-   14,   15,    0,   21,    0,    9,    8,    0,   24,    0,
-   19,   11,   10,
-};
-short yydgoto[] = {                                       1,
-   24,   25,   20,    6,    7,    8,    9,
-};
-short yysindex[] = {                                      0,
- -230,  -35, -247, -255,  -47,    0, -250,    0,    0, -246,
-  -25,    0,    0,    0, -244,    0,    0, -238, -236,    0,
- -235,    0, -228,    0,    0, -224, -227,    0,  -56,   -9,
-    0,    0, -225,    0, -223,    0,    0, -222,    0, -234,
-    0,    0,    0,
-};
-short yyrindex[] = {                                      0,
-    0,    0,    0,    0,    1,    0,   23,    0,    0,    0,
-   12,    0,    0,    0,   32,    0,    0,    0,    0,    0,
-   14,    0,   24,    0,    0,    0,    0,    0,    3,   22,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    3,
-    0,    0,    0,
-};
-short yygindex[] = {                                      0,
-  -19,    0,  -24,    0,    0,    0,    0,
-};
-#define YYTABLESIZE 295
-short yytable[] = {                                      19,
-   29,   35,   29,   32,   37,   12,   13,   21,   10,   36,
-   18,   20,   22,   13,   23,   43,   11,   26,   27,   28,
-   42,   18,    3,   12,   14,   29,    2,   30,   22,    3,
-   31,   22,    4,    5,   22,   33,   34,   38,   39,    0,
-   40,   41,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,   14,    0,    0,    0,   22,    0,    0,    0,
-    0,   14,   15,   16,   17,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-    0,    0,    0,    0,    0,    0,    0,   29,   29,   29,
-   29,    0,   29,   29,   29,   29,   29,   29,   20,    0,
-   13,   20,    0,   13,   20,   20,   13,   13,   18,    3,
-   12,   18,    3,   12,   18,   18,    3,   12,   22,    0,
-    0,   22,    0,    0,   22,
-};
-short yycheck[] = {                                      47,
-    0,   58,    0,   23,   29,  261,  262,  258,   44,   29,
-   58,    0,  263,    0,  265,   40,  264,  264,   44,  264,
-   40,    0,    0,    0,  259,  264,  257,  264,  263,  260,
-  266,    0,  263,  264,  263,  260,  264,   47,  264,   -1,
-  264,  264,   -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,   -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,   -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,   -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,
-   -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,  259,   -1,   -1,   -1,  263,   -1,   -1,   -1,
-   -1,  259,  260,  261,  262,   -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,   -1,   -1,   -1,
-   -1,   -1,   -1,   -1,   -1,   -1,   -1,  257,  258,  257,
-  258,   -1,  260,  263,  264,  265,  264,  265,  257,   -1,
-  257,  260,   -1,  260,  263,  264,  263,  264,  257,  257,
-  257,  260,  260,  260,  263,  264,  264,  264,  257,   -1,
-   -1,  260,   -1,   -1,  263,
-};
-#define YYFINAL 1
-#ifndef YYDEBUG
-#define YYDEBUG 0
-#endif
-#define YYMAXTOKEN 266
-#if YYDEBUG
-char *yyname[] = {
-"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,"','",0,0,"'/'",0,0,0,0,0,0,0,0,0,0,"':'",0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"tDAY","tDAYZONE",
-"tMERIDIAN","tMONTH","tMONTH_UNIT","tSEC_UNIT","tSNUMBER","tUNUMBER","tZONE",
-"tDST",
-};
-char *yyrule[] = {
-"$accept : spec",
-"spec :",
-"spec : spec item",
-"item : time",
-"item : time zone",
-"item : date",
-"item : rel",
-"time : tUNUMBER o_merid",
-"time : tUNUMBER ':' tUNUMBER o_merid",
-"time : tUNUMBER ':' tUNUMBER numzone",
-"time : tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid",
-"time : tUNUMBER ':' tUNUMBER ':' tUNUMBER numzone",
-"zone : tZONE",
-"zone : tDAYZONE",
-"zone : tDAYZONE tDST",
-"zone : tZONE numzone",
-"zone : numzone",
-"numzone : tSNUMBER",
-"date : tUNUMBER '/' tUNUMBER",
-"date : tUNUMBER '/' tUNUMBER '/' tUNUMBER",
-"date : tMONTH tUNUMBER",
-"date : tMONTH tUNUMBER ',' tUNUMBER",
-"date : tUNUMBER tMONTH",
-"date : tUNUMBER tMONTH tUNUMBER",
-"date : tDAY ',' tUNUMBER tMONTH tUNUMBER",
-"rel : tSNUMBER tSEC_UNIT",
-"rel : tUNUMBER tSEC_UNIT",
-"rel : tSNUMBER tMONTH_UNIT",
-"rel : tUNUMBER tMONTH_UNIT",
-"o_merid :",
-"o_merid : tMERIDIAN",
-};
-#endif
-#ifdef YYSTACKSIZE
-#undef YYMAXDEPTH
-#define YYMAXDEPTH YYSTACKSIZE
-#else
-#ifdef YYMAXDEPTH
-#define YYSTACKSIZE YYMAXDEPTH
-#else
-#define YYSTACKSIZE 500
-#define YYMAXDEPTH 500
-#endif
-#endif
-int yydebug;
-int yynerrs;
-int yyerrflag;
-int yychar;
-short *yyssp;
-YYSTYPE *yyvsp;
-YYSTYPE yyval;
-YYSTYPE yylval;
-short yyss[YYSTACKSIZE];
-YYSTYPE yyvs[YYSTACKSIZE];
-#define yystacksize YYSTACKSIZE
-#line 311 "parsdate.y"
-
-/*
-**  An entry in the lexical lookup table.
-*/
-typedef struct _TABLE {
-    const char *name;
-    int		type;
-    time_t	value;
-} TABLE;
-
-/* Month and day table. */
-static const TABLE MonthDayTable[] = {
-    { "january",	tMONTH,  1 },
-    { "february",	tMONTH,  2 },
-    { "march",		tMONTH,  3 },
-    { "april",		tMONTH,  4 },
-    { "may",		tMONTH,  5 },
-    { "june",		tMONTH,  6 },
-    { "july",		tMONTH,  7 },
-    { "august",		tMONTH,  8 },
-    { "september",	tMONTH,  9 },
-    { "october",	tMONTH, 10 },
-    { "november",	tMONTH, 11 },
-    { "december",	tMONTH, 12 },
-	/* The value of the day isn't used... */
-    { "sunday",		tDAY, 0 },
-    { "monday",		tDAY, 0 },
-    { "tuesday",	tDAY, 0 },
-    { "wednesday",	tDAY, 0 },
-    { "thursday",	tDAY, 0 },
-    { "friday",		tDAY, 0 },
-    { "saturday",	tDAY, 0 },
-};
-
-/* Time units table. */
-static const TABLE	UnitsTable[] = {
-    { "year",		tMONTH_UNIT,	12 },
-    { "month",		tMONTH_UNIT,	1 },
-    { "week",		tSEC_UNIT,	7 * 24 * 60 * 60 },
-    { "day",		tSEC_UNIT,	1 * 24 * 60 * 60 },
-    { "hour",		tSEC_UNIT,	60 * 60 },
-    { "minute",		tSEC_UNIT,	60 },
-    { "min",		tSEC_UNIT,	60 },
-    { "second",		tSEC_UNIT,	1 },
-    { "sec",		tSEC_UNIT,	1 },
-};
-
-/* Timezone table. */
-static const TABLE	TimezoneTable[] = {
-    { "gmt",	tZONE,     HOUR( 0) },	/* Greenwich Mean */
-    { "ut",	tZONE,     HOUR( 0) },	/* Universal */
-    { "utc",	tZONE,     HOUR( 0) },	/* Universal Coordinated */
-    { "cut",	tZONE,     HOUR( 0) },	/* Coordinated Universal */
-    { "z",	tZONE,     HOUR( 0) },	/* Greenwich Mean */
-    { "wet",	tZONE,     HOUR( 0) },	/* Western European */
-    { "bst",	tDAYZONE,  HOUR( 0) },	/* British Summer */
-    { "nst",	tZONE,     HOUR(3)+30 }, /* Newfoundland Standard */
-    { "ndt",	tDAYZONE,  HOUR(3)+30 }, /* Newfoundland Daylight */
-    { "ast",	tZONE,     HOUR( 4) },	/* Atlantic Standard */
-    { "adt",	tDAYZONE,  HOUR( 4) },	/* Atlantic Daylight */
-    { "est",	tZONE,     HOUR( 5) },	/* Eastern Standard */
-    { "edt",	tDAYZONE,  HOUR( 5) },	/* Eastern Daylight */
-    { "cst",	tZONE,     HOUR( 6) },	/* Central Standard */
-    { "cdt",	tDAYZONE,  HOUR( 6) },	/* Central Daylight */
-    { "mst",	tZONE,     HOUR( 7) },	/* Mountain Standard */
-    { "mdt",	tDAYZONE,  HOUR( 7) },	/* Mountain Daylight */
-    { "pst",	tZONE,     HOUR( 8) },	/* Pacific Standard */
-    { "pdt",	tDAYZONE,  HOUR( 8) },	/* Pacific Daylight */
-    { "yst",	tZONE,     HOUR( 9) },	/* Yukon Standard */
-    { "ydt",	tDAYZONE,  HOUR( 9) },	/* Yukon Daylight */
-    { "akst",	tZONE,     HOUR( 9) },	/* Alaska Standard */
-    { "akdt",	tDAYZONE,  HOUR( 9) },	/* Alaska Daylight */
-    { "hst",	tZONE,     HOUR(10) },	/* Hawaii Standard */
-    { "hast",	tZONE,     HOUR(10) },	/* Hawaii-Aleutian Standard */
-    { "hadt",	tDAYZONE,  HOUR(10) },	/* Hawaii-Aleutian Daylight */
-    { "ces",	tDAYZONE,  -HOUR(1) },	/* Central European Summer */
-    { "cest",	tDAYZONE,  -HOUR(1) },	/* Central European Summer */
-    { "mez",	tZONE,     -HOUR(1) },	/* Middle European */
-    { "mezt",	tDAYZONE,  -HOUR(1) },	/* Middle European Summer */
-    { "cet",	tZONE,     -HOUR(1) },	/* Central European */
-    { "met",	tZONE,     -HOUR(1) },	/* Middle European */
-/* Additional aliases for MET / MET DST *************************************/
-    { "mez",    tZONE,     -HOUR(1) },  /* Middle European */
-    { "mewt",   tZONE,     -HOUR(1) },  /* Middle European Winter */
-    { "mest",   tDAYZONE,  -HOUR(1) },  /* Middle European Summer */
-    { "mes",    tDAYZONE,  -HOUR(1) },  /* Middle European Summer */
-    { "mesz",   tDAYZONE,  -HOUR(1) },  /* Middle European Summer */
-    { "msz",    tDAYZONE,  -HOUR(1) },  /* Middle European Summer */
-    { "metdst", tDAYZONE,  -HOUR(1) },  /* Middle European Summer */
-/****************************************************************************/
-    { "eet",	tZONE,     -HOUR(2) },	/* Eastern Europe */
-    { "msk",	tZONE,     -HOUR(3) },	/* Moscow Winter */
-    { "msd",	tDAYZONE,  -HOUR(3) },	/* Moscow Summer */
-    { "wast",	tZONE,     -HOUR(8) },	/* West Australian Standard */
-    { "wadt",	tDAYZONE,  -HOUR(8) },	/* West Australian Daylight */
-    { "hkt",	tZONE,     -HOUR(8) },	/* Hong Kong */
-    { "cct",	tZONE,     -HOUR(8) },	/* China Coast */
-    { "jst",	tZONE,     -HOUR(9) },	/* Japan Standard */
-    { "kst",	tZONE,     -HOUR(9) },	/* Korean Standard */
-    { "kdt",	tZONE,     -HOUR(9) },	/* Korean Daylight */
-    { "cast",	tZONE,     -(HOUR(9)+30) }, /* Central Australian Standard */
-    { "cadt",	tDAYZONE,  -(HOUR(9)+30) }, /* Central Australian Daylight */
-    { "east",	tZONE,     -HOUR(10) },	/* Eastern Australian Standard */
-    { "eadt",	tDAYZONE,  -HOUR(10) },	/* Eastern Australian Daylight */
-    { "nzst",	tZONE,     -HOUR(12) },	/* New Zealand Standard */
-    { "nzdt",	tDAYZONE,  -HOUR(12) },	/* New Zealand Daylight */
-
-    /* For completeness we include the following entries. */
-#if	0
-
-    /* Duplicate names.  Either they conflict with a zone listed above
-     * (which is either more likely to be seen or just been in circulation
-     * longer), or they conflict with another zone in this section and
-     * we could not reasonably choose one over the other. */
-    { "fst",	tZONE,     HOUR( 2) },	/* Fernando De Noronha Standard */
-    { "fdt",	tDAYZONE,  HOUR( 2) },	/* Fernando De Noronha Daylight */
-    { "bst",	tZONE,     HOUR( 3) },	/* Brazil Standard */
-    { "est",	tZONE,     HOUR( 3) },	/* Eastern Standard (Brazil) */
-    { "edt",	tDAYZONE,  HOUR( 3) },	/* Eastern Daylight (Brazil) */
-    { "wst",	tZONE,     HOUR( 4) },	/* Western Standard (Brazil) */
-    { "wdt",	tDAYZONE,  HOUR( 4) },	/* Western Daylight (Brazil) */
-    { "cst",	tZONE,     HOUR( 5) },	/* Chile Standard */
-    { "cdt",	tDAYZONE,  HOUR( 5) },	/* Chile Daylight */
-    { "ast",	tZONE,     HOUR( 5) },	/* Acre Standard */
-    { "adt",	tDAYZONE,  HOUR( 5) },	/* Acre Daylight */
-    { "cst",	tZONE,     HOUR( 5) },	/* Cuba Standard */
-    { "cdt",	tDAYZONE,  HOUR( 5) },	/* Cuba Daylight */
-    { "est",	tZONE,     HOUR( 6) },	/* Easter Island Standard */
-    { "edt",	tDAYZONE,  HOUR( 6) },	/* Easter Island Daylight */
-    { "sst",	tZONE,     HOUR(11) },	/* Samoa Standard */
-    { "ist",	tZONE,     -HOUR(2) },	/* Israel Standard */
-    { "idt",	tDAYZONE,  -HOUR(2) },	/* Israel Daylight */
-    { "idt",	tDAYZONE,  -(HOUR(3)+30) }, /* Iran Daylight */
-    { "ist",	tZONE,     -(HOUR(3)+30) }, /* Iran Standard */
-    { "cst",	 tZONE,     -HOUR(8) },	/* China Standard */
-    { "cdt",	 tDAYZONE,  -HOUR(8) },	/* China Daylight */
-    { "sst",	 tZONE,     -HOUR(8) },	/* Singapore Standard */
-
-    /* Dubious (e.g., not in Olson's TIMEZONE package) or obsolete. */
-    { "gst",	tZONE,     HOUR( 3) },	/* Greenland Standard */
-    { "wat",	tZONE,     -HOUR(1) },	/* West Africa */
-    { "at",	tZONE,     HOUR( 2) },	/* Azores */
-    { "gst",	tZONE,     -HOUR(10) },	/* Guam Standard */
-    { "nft",	tZONE,     HOUR(3)+30 }, /* Newfoundland */
-    { "idlw",	tZONE,     HOUR(12) },	/* International Date Line West */
-    { "mewt",	tZONE,     -HOUR(1) },	/* Middle European Winter */
-    { "mest",	tDAYZONE,  -HOUR(1) },	/* Middle European Summer */
-    { "swt",	tZONE,     -HOUR(1) },	/* Swedish Winter */
-    { "sst",	tDAYZONE,  -HOUR(1) },	/* Swedish Summer */
-    { "fwt",	tZONE,     -HOUR(1) },	/* French Winter */
-    { "fst",	tDAYZONE,  -HOUR(1) },	/* French Summer */
-    { "bt",	tZONE,     -HOUR(3) },	/* Baghdad */
-    { "it",	tZONE,     -(HOUR(3)+30) }, /* Iran */
-    { "zp4",	tZONE,     -HOUR(4) },	/* USSR Zone 3 */
-    { "zp5",	tZONE,     -HOUR(5) },	/* USSR Zone 4 */
-    { "ist",	tZONE,     -(HOUR(5)+30) }, /* Indian Standard */
-    { "zp6",	tZONE,     -HOUR(6) },	/* USSR Zone 5 */
-    { "nst",	tZONE,     -HOUR(7) },	/* North Sumatra */
-    { "sst",	tZONE,     -HOUR(7) },	/* South Sumatra */
-    { "jt",	tZONE,     -(HOUR(7)+30) }, /* Java (3pm in Cronusland!) */
-    { "nzt",	tZONE,     -HOUR(12) },	/* New Zealand */
-    { "idle",	tZONE,     -HOUR(12) },	/* International Date Line East */
-    { "cat",	tZONE,     HOUR(10) },	/* -- expired 1967 */
-    { "nt",	tZONE,     HOUR(11) },	/* -- expired 1967 */
-    { "ahst",	tZONE,     HOUR(10) },	/* -- expired 1983 */
-    { "hdt",	tDAYZONE,  HOUR(10) },	/* -- expired 1986 */
-#endif	/* 0 */
-};
-
-static time_t
-ToSeconds(
-    time_t	Hours,
-    time_t	Minutes,
-    time_t	Seconds,
-    MERIDIAN	Meridian)
-{
-    if (Minutes < 0 || Minutes > 59 || Seconds < 0 || Seconds > 61)
-	return -1;
-    if (Meridian == MER24) {
-	if (Hours < 0 || Hours > 23)
-	    return -1;
-    }
-    else {
-	if (Hours < 1 || Hours > 12)
-		return -1;
-	if (Hours == 12)
-		Hours = 0;
-	if (Meridian == MERpm)
-		Hours += 12;
-    }
-    return (Hours * 60L + Minutes) * 60L + Seconds;
-}
-
-
-static time_t
-Convert(
-    time_t	Month,
-    time_t	Day,
-    time_t	Year,
-    time_t	Hours,
-    time_t	Minutes,
-    time_t	Seconds,
-    MERIDIAN	Meridian,
-    DSTMODE	dst)
-{
-    static const int	DaysNormal[13] = {
-	0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
-    };
-    static const int	DaysLeap[13] = {
-	0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
-    };
-    static const int	LeapYears[] = {
-	1972, 1976, 1980, 1984, 1988, 1992, 1996,
-	2000, 2004, 2008, 2012, 2016, 2020, 2024, 2028, 2032, 2036
-    };
-    register const int	*yp;
-    register const int	*mp;
-    register time_t	Julian;
-    register int	i;
-    time_t		tod;
-
-    if (Year < 0)
-	Year = -Year;
-    if (Year < 70)
-        Year += 2000;
-    if (Year < 100)
-	Year += 1900;
-    if (Year < EPOCH)
-	Year += 100;
-    for (mp = DaysNormal, yp = LeapYears; yp < ENDOF(LeapYears); yp++)
-	if (Year == *yp) {
-	    mp = DaysLeap;
-	    break;
-	}
-    if (Year < EPOCH || Year > END_OF_TIME
-     || Month < 1 || Month > 12
-     /* NOSTRICT *//* conversion from long may lose accuracy */
-     || Day < 1 || Day > mp[(int)Month])
-	return -1;
-
-    Julian = Day - 1 + (Year - EPOCH) * 365;
-    for (yp = LeapYears; yp < ENDOF(LeapYears); yp++, Julian++)
-	if (Year <= *yp)
-	    break;
-    for (i = 1; i < Month; i++)
-	Julian += *++mp;
-    Julian *= SECSPERDAY;
-    Julian += yyTimezone * 60L;
-    if ((tod = ToSeconds(Hours, Minutes, Seconds, Meridian)) < 0)
-	return -1;
-    Julian += tod;
-    tod = Julian;
-    if (dst == DSTon || (dst == DSTmaybe && localtime(&tod)->tm_isdst))
-	Julian -= DST_OFFSET * 60 * 60;
-    return Julian;
-}
-
-
-static time_t
-DSTcorrect(
-    time_t	Start,
-    time_t	Future)
-{
-    time_t	StartDay;
-    time_t	FutureDay;
-
-    StartDay = (localtime(&Start)->tm_hour + 1) % 24;
-    FutureDay = (localtime(&Future)->tm_hour + 1) % 24;
-    return (Future - Start) + (StartDay - FutureDay) * DST_OFFSET * 60 * 60;
-}
-
-
-static time_t
-RelativeMonth(
-    time_t	Start,
-    time_t	RelMonth)
-{
-    struct tm	*tm;
-    time_t	Month;
-    time_t	Year;
-
-    tm = localtime(&Start);
-    Month = 12 * tm->tm_year + tm->tm_mon + RelMonth;
-    Year = Month / 12 + 1900;
-    Month = Month % 12 + 1;
-    return DSTcorrect(Start,
-	    Convert(Month, (time_t)tm->tm_mday, Year,
-		(time_t)tm->tm_hour, (time_t)tm->tm_min, (time_t)tm->tm_sec,
-		MER24, DSTmaybe));
-}
-
-
-static int
-LookupWord(
-    char		*buff,
-    register int	length)
-{
-    register char	*p;
-    register const char *q;
-    register const TABLE *tp;
-    register int	c;
-
-    p = buff;
-    c = p[0];
-
-    /* See if we have an abbreviation for a month. */
-    if (length == 3 || (length == 4 && p[3] == '.'))
-	for (tp = MonthDayTable; tp < ENDOF(MonthDayTable); tp++) {
-	    q = tp->name;
-	    if (c == q[0] && p[1] == q[1] && p[2] == q[2]) {
-		yylval.Number = tp->value;
-		return tp->type;
-	    }
-	}
-    else
-	for (tp = MonthDayTable; tp < ENDOF(MonthDayTable); tp++)
-	    if (c == tp->name[0] && strcmp(p, tp->name) == 0) {
-		yylval.Number = tp->value;
-		return tp->type;
-	    }
-
-    /* Try for a timezone. */
-    for (tp = TimezoneTable; tp < ENDOF(TimezoneTable); tp++)
-	if (c == tp->name[0] && p[1] == tp->name[1]
-	 && strcmp(p, tp->name) == 0) {
-	    yylval.Number = tp->value;
-	    return tp->type;
-	}
-
-    if (strcmp(buff, "dst") == 0)
-      return tDST;
-
-    /* Try the units table. */
-    for (tp = UnitsTable; tp < ENDOF(UnitsTable); tp++)
-	if (c == tp->name[0] && strcmp(p, tp->name) == 0) {
-	    yylval.Number = tp->value;
-	    return tp->type;
-	}
-
-    /* Strip off any plural and try the units table again. */
-    if (--length > 0 && p[length] == 's') {
-	p[length] = '\0';
-	for (tp = UnitsTable; tp < ENDOF(UnitsTable); tp++)
-	    if (c == tp->name[0] && strcmp(p, tp->name) == 0) {
-		p[length] = 's';
-		yylval.Number = tp->value;
-		return tp->type;
-	    }
-	p[length] = 's';
-    }
-    length++;
-
-    /* Drop out any periods. */
-    for (p = buff, q = (STRING)buff; *q; q++)
-	if (*q != '.')
-	    *p++ = *q;
-    *p = '\0';
-
-    /* Try the meridians. */
-    if (buff[1] == 'm' && buff[2] == '\0') {
-	if (buff[0] == 'a') {
-	    yylval.Meridian = MERam;
-	    return tMERIDIAN;
-	}
-	if (buff[0] == 'p') {
-	    yylval.Meridian = MERpm;
-	    return tMERIDIAN;
-	}
-    }
-
-    /* If we saw any periods, try the timezones again. */
-    if (p - buff != length) {
-	c = buff[0];
-	for (p = buff, tp = TimezoneTable; tp < ENDOF(TimezoneTable); tp++)
-	    if (c == tp->name[0] && p[1] == tp->name[1]
-	    && strcmp(p, tp->name) == 0) {
-		yylval.Number = tp->value;
-		return tp->type;
-	    }
-    }
-
-    /* Unknown word -- assume GMT timezone. */
-    yylval.Number = 0;
-    return tZONE;
-}
-
-
-static int
-date_lex(void)
-{
-    register int	c;
-    register char	*p;
-    char		buff[20];
-    register int	sign;
-    register int	i;
-    register int	nesting;
-
-    forever {
-	/* Get first character after the whitespace. */
-	forever {
-	    while (CTYPE(isspace, *yyInput))
-		yyInput++;
-	    c = *yyInput;
-
-	    /* Ignore RFC 822 comments, typically time zone names. */
-	    if (c != LPAREN)
-		break;
-	    for (nesting = 1; (c = *++yyInput) != RPAREN || --nesting; )
-		if (c == LPAREN)
-		    nesting++;
-		else if (!IS7BIT(c) || c == '\0' || c == '\r'
-		     || (c == '\\' && ((c = *++yyInput) == '\0' || !IS7BIT(c))))
-		    /* Lexical error: bad comment. */
-		    return '?';
-	    yyInput++;
-	}
-
-	/* A number? */
-	if (CTYPE(isdigit, c) || c == '-' || c == '+') {
-	    if (c == '-' || c == '+') {
-		sign = c == '-' ? -1 : 1;
-		yyInput++;
-		if (!CTYPE(isdigit, *yyInput))
-		    /* Skip the plus or minus sign. */
-		    continue;
-	    }
-	    else
-		sign = 0;
-	    for (i = 0; (c = *yyInput++) != '\0' && CTYPE(isdigit, c); )
-		i = 10 * i + c - '0';
-	    yyInput--;
-	    yylval.Number = sign < 0 ? -i : i;
-	    return sign ? tSNUMBER : tUNUMBER;
-	}
-
-	/* A word? */
-	if (CTYPE(isalpha, c)) {
-	    for (p = buff; (c = *yyInput++) == '.' || CTYPE(isalpha, c); )
-		if (p < &buff[sizeof buff - 1])
-		    *p++ = CTYPE(isupper, c) ? tolower(c) : c;
-	    *p = '\0';
-	    yyInput--;
-	    return LookupWord(buff, p - buff);
-	}
-
-	return *yyInput++;
-    }
-}
-
-
-static int
-GetTimeInfo(
-    TIMEINFO		*Now)
-{
-    static time_t	LastTime;
-    static long		LastTzone;
-    struct tm		*tm;
-#if	defined(HAVE_GETTIMEOFDAY)
-    struct timeval	tv;
-#endif	/* defined(HAVE_GETTIMEOFDAY) */
-#if	defined(DONT_HAVE_TM_GMTOFF)
-    struct tm		local;
-    struct tm		gmt;
-#endif	/* !defined(DONT_HAVE_TM_GMTOFF) */
-
-    /* Get the basic time. */
-#if	defined(HAVE_GETTIMEOFDAY)
-    if (gettimeofday(&tv, (struct timezone *)NULL) == -1)
-	return -1;
-    Now->time = tv.tv_sec;
-    Now->usec = tv.tv_usec;
-#else
-    /* Can't check for -1 since that might be a time, I guess. */
-    (void)time(&Now->time);
-    Now->usec = 0;
-#endif	/* defined(HAVE_GETTIMEOFDAY) */
-
-    /* Now get the timezone if it's been an hour since the last time. */
-    if (Now->time - LastTime > 60 * 60) {
-	LastTime = Now->time;
-	if ((tm = localtime(&Now->time)) == NULL)
-	    return -1;
-#if	defined(DONT_HAVE_TM_GMTOFF)
-	/* To get the timezone, compare localtime with GMT. */
-	local = *tm;
-	if ((tm = gmtime(&Now->time)) == NULL)
-	    return -1;
-	gmt = *tm;
-
-	/* Assume we are never more than 24 hours away. */
-	LastTzone = gmt.tm_yday - local.tm_yday;
-	if (LastTzone > 1)
-	    LastTzone = -24;
-	else if (LastTzone < -1)
-	    LastTzone = 24;
-	else
-	    LastTzone *= 24;
-
-	/* Scale in the hours and minutes; ignore seconds. */
-	LastTzone += gmt.tm_hour - local.tm_hour;
-	LastTzone *= 60;
-	LastTzone += gmt.tm_min - local.tm_min;
-#else
-	LastTzone =  (0 - tm->tm_gmtoff) / 60;
-#endif	/* defined(DONT_HAVE_TM_GMTOFF) */
-    }
-    Now->tzone = LastTzone;
-    return 0;
-}
-
-
-time_t
-parsedate(
-    char		*p,
-    TIMEINFO		*now)
-{
-    struct tm		*tm;
-    TIMEINFO		ti;
-    time_t		Start;
-
-    yyInput = p;
-    if (now == NULL) {
-	now = &ti;
-	(void)GetTimeInfo(&ti);
-    }
-
-    tm = localtime(&now->time);
-    yyYear = tm->tm_year + 1900;
-    yyMonth = tm->tm_mon + 1;
-    yyDay = tm->tm_mday;
-    yyTimezone = now->tzone;
-    if(tm->tm_isdst)                   /* Correct timezone offset for DST */
-      yyTimezone += DST_OFFSET * 60;
-    yyDSTmode = DSTmaybe;
-    yyHour = 0;
-    yyMinutes = 0;
-    yySeconds = 0;
-    yyMeridian = MER24;
-    yyRelSeconds = 0;
-    yyRelMonth = 0;
-    yyHaveDate = 0;
-    yyHaveRel = 0;
-    yyHaveTime = 0;
-
-    if (date_parse() || yyHaveTime > 1 || yyHaveDate > 1)
-	return -1;
-
-    if (yyHaveDate || yyHaveTime) {
-	Start = Convert(yyMonth, yyDay, yyYear, yyHour, yyMinutes, yySeconds,
-		    yyMeridian, yyDSTmode);
-	if (Start < 0)
-	    return -1;
-    }
-    else {
-	Start = now->time;
-	if (!yyHaveRel)
-	    Start -= (tm->tm_hour * 60L + tm->tm_min) * 60L + tm->tm_sec;
-    }
-
-    Start += yyRelSeconds;
-    if (yyRelMonth)
-	Start += RelativeMonth(Start, yyRelMonth);
-
-    /* Have to do *something* with a legitimate -1 so it's distinguishable
-     * from the error return value.  (Alternately could set errno on error.) */
-    return Start == -1 ? 0 : Start;
-}
-#line 889 "y.tab.c"
-#define YYABORT goto yyabort
-#define YYREJECT goto yyabort
-#define YYACCEPT goto yyaccept
-#define YYERROR goto yyerrlab
-int
-yyparse(void)
-{
-    register int yym, yyn, yystate;
-#if YYDEBUG
-    register char *yys;
-    extern char *getenv();
-
-    if (yys = getenv("YYDEBUG"))
-    {
-        yyn = *yys;
-        if (yyn >= '0' && yyn <= '9')
-            yydebug = yyn - '0';
-    }
-#endif
-
-    yynerrs = 0;
-    yyerrflag = 0;
-    yychar = (-1);
-
-    yyssp = yyss;
-    yyvsp = yyvs;
-    *yyssp = yystate = 0;
-
-yyloop:
-    if (yyn = yydefred[yystate]) goto yyreduce;
-    if (yychar < 0)
-    {
-        if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, reading %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-    }
-    if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: state %d, shifting to state %d\n",
-                    YYPREFIX, yystate, yytable[yyn]);
-#endif
-        if (yyssp >= yyss + yystacksize - 1)
-        {
-            goto yyoverflow;
-        }
-        *++yyssp = yystate = yytable[yyn];
-        *++yyvsp = yylval;
-        yychar = (-1);
-        if (yyerrflag > 0)  --yyerrflag;
-        goto yyloop;
-    }
-    if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
-    {
-        yyn = yytable[yyn];
-        goto yyreduce;
-    }
-    if (yyerrflag) goto yyinrecovery;
-#ifdef lint
-    goto yynewerror;
-#endif
-yynewerror:
-    yyerror("syntax error");
-#ifdef lint
-    goto yyerrlab;
-#endif
-yyerrlab:
-    ++yynerrs;
-yyinrecovery:
-    if (yyerrflag < 3)
-    {
-        yyerrflag = 3;
-        for (;;)
-        {
-            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&
-                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: state %d, error recovery shifting\
- to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);
-#endif
-                if (yyssp >= yyss + yystacksize - 1)
-                {
-                    goto yyoverflow;
-                }
-                *++yyssp = yystate = yytable[yyn];
-                *++yyvsp = yylval;
-                goto yyloop;
-            }
-            else
-            {
-#if YYDEBUG
-                if (yydebug)
-                    printf("%sdebug: error recovery discarding state %d\n",
-                            YYPREFIX, *yyssp);
-#endif
-                if (yyssp <= yyss) goto yyabort;
-                --yyssp;
-                --yyvsp;
-            }
-        }
-    }
-    else
-    {
-        if (yychar == 0) goto yyabort;
-#if YYDEBUG
-        if (yydebug)
-        {
-            yys = 0;
-            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-            if (!yys) yys = "illegal-symbol";
-            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
-                    YYPREFIX, yystate, yychar, yys);
-        }
-#endif
-        yychar = (-1);
-        goto yyloop;
-    }
-yyreduce:
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: state %d, reducing by rule %d (%s)\n",
-                YYPREFIX, yystate, yyn, yyrule[yyn]);
-#endif
-    yym = yylen[yyn];
-    yyval = yyvsp[1-yym];
-    switch (yyn)
-    {
-case 3:
-#line 138 "parsdate.y"
-{
-	    yyHaveTime++;
-#if	defined(lint)
-	    /* I am compulsive about lint natterings... */
-	    if (yyHaveTime == -1) {
-		YYERROR;
-	    }
-#endif	/* defined(lint) */
-	}
-break;
-case 4:
-#line 147 "parsdate.y"
-{
-	    yyHaveTime++;
-	    yyTimezone = yyvsp[0].Number;
-	}
-break;
-case 5:
-#line 151 "parsdate.y"
-{
-	    yyHaveDate++;
-	}
-break;
-case 6:
-#line 154 "parsdate.y"
-{
-	    yyHaveRel = 1;
-	}
-break;
-case 7:
-#line 159 "parsdate.y"
-{
-	    if (yyvsp[-1].Number < 100) {
-		yyHour = yyvsp[-1].Number;
-		yyMinutes = 0;
-	    }
-	    else {
-		yyHour = yyvsp[-1].Number / 100;
-		yyMinutes = yyvsp[-1].Number % 100;
-	    }
-	    yySeconds = 0;
-	    yyMeridian = yyvsp[0].Meridian;
-	}
-break;
-case 8:
-#line 171 "parsdate.y"
-{
-	    yyHour = yyvsp[-3].Number;
-	    yyMinutes = yyvsp[-1].Number;
-	    yySeconds = 0;
-	    yyMeridian = yyvsp[0].Meridian;
-	}
-break;
-case 9:
-#line 177 "parsdate.y"
-{
-	    yyHour = yyvsp[-3].Number;
-	    yyMinutes = yyvsp[-1].Number;
-	    yyTimezone = yyvsp[0].Number;
-	    yyMeridian = MER24;
-	    yyDSTmode = DSToff;
-	}
-break;
-case 10:
-#line 184 "parsdate.y"
-{
-	    yyHour = yyvsp[-5].Number;
-	    yyMinutes = yyvsp[-3].Number;
-	    yySeconds = yyvsp[-1].Number;
-	    yyMeridian = yyvsp[0].Meridian;
-	}
-break;
-case 11:
-#line 190 "parsdate.y"
-{
-	    yyHour = yyvsp[-5].Number;
-	    yyMinutes = yyvsp[-3].Number;
-	    yySeconds = yyvsp[-1].Number;
-	    yyTimezone = yyvsp[0].Number;
-	    yyMeridian = MER24;
-	    yyDSTmode = DSToff;
-	}
-break;
-case 12:
-#line 200 "parsdate.y"
-{
-	    yyval.Number = yyvsp[0].Number;
-	    yyDSTmode = DSToff;
-	}
-break;
-case 13:
-#line 204 "parsdate.y"
-{
-	    yyval.Number = yyvsp[0].Number;
-	    yyDSTmode = DSTon;
-	}
-break;
-case 14:
-#line 208 "parsdate.y"
-{
-	    yyTimezone = yyvsp[-1].Number;
-	    yyDSTmode = DSTon;
-	}
-break;
-case 15:
-#line 212 "parsdate.y"
-{
-	    /* Only allow "GMT+300" and "GMT-0800" */
-	    if (yyvsp[-1].Number != 0) {
-		YYABORT;
-	    }
-	    yyval.Number = yyvsp[0].Number;
-	    yyDSTmode = DSToff;
-	}
-break;
-case 16:
-#line 220 "parsdate.y"
-{
-	    yyval.Number = yyvsp[0].Number;
-	    yyDSTmode = DSToff;
-	}
-break;
-case 17:
-#line 226 "parsdate.y"
-{
-	    int	i;
-
-	    /* Unix and GMT and numeric timezones -- a little confusing. */
-	    if ((int)yyvsp[0].Number < 0) {
-		/* Don't work with negative modulus. */
-		yyvsp[0].Number = -(int)yyvsp[0].Number;
-		if (yyvsp[0].Number > 9999 || (i = yyvsp[0].Number % 100) >= 60) {
-			YYABORT;
-		}
-		yyval.Number = (yyvsp[0].Number / 100) * 60 + i;
-	    }
-	    else {
-		if (yyvsp[0].Number > 9999 || (i = yyvsp[0].Number % 100) >= 60) {
-			YYABORT;
-		}
-		yyval.Number = -((yyvsp[0].Number / 100) * 60 + i);
-	    }
-	}
-break;
-case 18:
-#line 247 "parsdate.y"
-{
-	    yyMonth = yyvsp[-2].Number;
-	    yyDay = yyvsp[0].Number;
-	}
-break;
-case 19:
-#line 251 "parsdate.y"
-{
-	    if (yyvsp[-4].Number > 100) {
-		yyYear = yyvsp[-4].Number;
-		yyMonth = yyvsp[-2].Number;
-		yyDay = yyvsp[0].Number;
-	    }
-	    else {
-		yyMonth = yyvsp[-4].Number;
-		yyDay = yyvsp[-2].Number;
-		yyYear = yyvsp[0].Number;
-	    }
-	}
-break;
-case 20:
-#line 263 "parsdate.y"
-{
-	    yyMonth = yyvsp[-1].Number;
-	    yyDay = yyvsp[0].Number;
-	}
-break;
-case 21:
-#line 267 "parsdate.y"
-{
-	    yyMonth = yyvsp[-3].Number;
-	    yyDay = yyvsp[-2].Number;
-	    yyYear = yyvsp[0].Number;
-	}
-break;
-case 22:
-#line 272 "parsdate.y"
-{
-	    yyDay = yyvsp[-1].Number;
-	    yyMonth = yyvsp[0].Number;
-	}
-break;
-case 23:
-#line 276 "parsdate.y"
-{
-	    yyDay = yyvsp[-2].Number;
-	    yyMonth = yyvsp[-1].Number;
-	    yyYear = yyvsp[0].Number;
-	}
-break;
-case 24:
-#line 281 "parsdate.y"
-{
-	    yyDay = yyvsp[-2].Number;
-	    yyMonth = yyvsp[-1].Number;
-	    yyYear = yyvsp[0].Number;
-	}
-break;
-case 25:
-#line 288 "parsdate.y"
-{
-	    yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number;
-	}
-break;
-case 26:
-#line 291 "parsdate.y"
-{
-	    yyRelSeconds += yyvsp[-1].Number * yyvsp[0].Number;
-	}
-break;
-case 27:
-#line 294 "parsdate.y"
-{
-	    yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number;
-	}
-break;
-case 28:
-#line 297 "parsdate.y"
-{
-	    yyRelMonth += yyvsp[-1].Number * yyvsp[0].Number;
-	}
-break;
-case 29:
-#line 302 "parsdate.y"
-{
-	    yyval.Meridian = MER24;
-	}
-break;
-case 30:
-#line 305 "parsdate.y"
-{
-	    yyval.Meridian = yyvsp[0].Meridian;
-	}
-break;
-#line 1272 "y.tab.c"
-    }
-    yyssp -= yym;
-    yystate = *yyssp;
-    yyvsp -= yym;
-    yym = yylhs[yyn];
-    if (yystate == 0 && yym == 0)
-    {
-#if YYDEBUG
-        if (yydebug)
-            printf("%sdebug: after reduction, shifting from state 0 to\
- state %d\n", YYPREFIX, YYFINAL);
-#endif
-        yystate = YYFINAL;
-        *++yyssp = YYFINAL;
-        *++yyvsp = yyval;
-        if (yychar < 0)
-        {
-            if ((yychar = yylex()) < 0) yychar = 0;
-#if YYDEBUG
-            if (yydebug)
-            {
-                yys = 0;
-                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];
-                if (!yys) yys = "illegal-symbol";
-                printf("%sdebug: state %d, reading %d (%s)\n",
-                        YYPREFIX, YYFINAL, yychar, yys);
-            }
-#endif
-        }
-        if (yychar == 0) goto yyaccept;
-        goto yyloop;
-    }
-    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
-            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
-        yystate = yytable[yyn];
-    else
-        yystate = yydgoto[yym];
-#if YYDEBUG
-    if (yydebug)
-        printf("%sdebug: after reduction, shifting from state %d \
-to state %d\n", YYPREFIX, *yyssp, yystate);
-#endif
-    if (yyssp >= yyss + yystacksize - 1)
-    {
-        goto yyoverflow;
-    }
-    *++yyssp = yystate;
-    *++yyvsp = yyval;
-    goto yyloop;
-yyoverflow:
-    yyerror("yacc stack overflow");
-yyabort:
-    return (1);
-yyaccept:
-    return (0);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/parse.c tin-2.0.0/vms/parse.c
--- tin-1.8.3/vms/parse.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/parse.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,91 +0,0 @@
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <rmsdef.h>
-#include <fab.h>
-#include <nam.h>
-#ifdef __GNUC__
-#include <vms/rms$routines.h>
-#endif
-#include "parse.h"
-
-struct filespec *sysparse(char *filename)
-{
-  struct FAB fab = cc$rms_fab;
-  struct NAM nam = cc$rms_nam;
-  static struct filespec spec;
-  char *ptr1, *ptr2;
-  char *ptr;
-  char fname[255];
-
-  int len, idx;
-
-  ptr = (char *)&fname;
-  strcpy(ptr, filename);
-
-  if (strcmp(ptr, "~") == 0)
-    strcpy(ptr, getenv("HOME"));
-  if (ptr1 = (char *)strstr(ptr, "[000000]["))
-   {
-    ptr2 = ptr1+8;
-    memmove(ptr1, ptr2, strlen(ptr2)+1);
-   }
-  while (ptr1 = (char *)strstr(ptr, "]["))
-   {  /* Remove any "]["'s in the string */
-    ptr2 = ptr1+2;
-    memmove(ptr1, ptr2, strlen(ptr2)+1);
-   } /* while */
-
-  for (idx=0;idx<strlen(ptr);idx++)
-   {
-    switch(ptr[idx])
-     {
-      case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G':
-      case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N':
-      case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U':
-      case 'V': case 'W': case 'X': case 'Y': case 'Z':
-      case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'g':
-      case 'h': case 'i': case 'j': case 'k': case 'l': case 'm': case 'n':
-      case 'o': case 'p': case 'q': case 'r': case 's': case 't': case 'u':
-      case 'v': case 'w': case 'x': case 'y': case 'z':
-      case '0': case '1': case '2': case '3': case '4': case '5': case '6':
-      case '7': case '8': case '9':
-      case '$': case '-': case '_': case '[': case ']': case '<': case '>':
-      case ';': case '.': case ':':
-            break;
-      default : ptr[idx] = '$';     /* for the moment */
-     }
-   }
-
-  fab.fab$l_fna = ptr;
-  fab.fab$b_fns = strlen(ptr);
-  fab.fab$l_nam = &nam;
-  fab.fab$l_fop = FAB$M_NAM;
-  nam.nam$l_esa = spec.full;
-  nam.nam$b_ess = sizeof spec.full;
-  nam.nam$b_nop |= NAM$M_SYNCHK;
-
-  if (sys$parse(&fab, 0, 0) == RMS$_NORMAL) {
-    len = nam.nam$b_esl - 1;
-    if (spec.full[len] == ';' && spec.full[len - 1] == '.')
-      len -= 2;
-    spec.full[len + 1] = '\0';
-    if (nam.nam$b_dev > 0)
-      sprintf(spec.dev, "%*.*s", nam.nam$b_dev, nam.nam$b_dev, nam.nam$l_dev);
-    else
-      spec.dev[0] = 0;
-    if (nam.nam$b_dir > 0)
-      sprintf(spec.dir, "%*.*s", nam.nam$b_dir, nam.nam$b_dir, nam.nam$l_dir);
-    else
-      spec.dir[0] = 0;
-    if (nam.nam$b_name > 0)
-      sprintf(spec.filename, "%*.*s%*.*s", nam.nam$b_name, nam.nam$b_name,
-	      nam.nam$l_name, nam.nam$b_type, nam.nam$b_type, nam.nam$l_type);
-    else
-      spec.filename[0] = 0;
-    return &spec;
-  } else {
-    fprintf(stderr, "SYS$PARSE failed on %s\n", ptr);
-    exit(0);
-  }
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/parse.h tin-2.0.0/vms/parse.h
--- tin-1.8.3/vms/parse.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/parse.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,10 +0,0 @@
-#include <nam.h>
-
-struct filespec {
-  char dev[32];
-  char dir[256];
-  char filename[100];
-  char full[NAM$C_MAXRSS];
-};
-
-struct filespec *sysparse(char *filename);
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/pwd.h tin-2.0.0/vms/pwd.h
--- tin-1.8.3/vms/pwd.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/pwd.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,34 +0,0 @@
-/* GNU Emacs password definition file.
-   Copyright (C) 1986 Free Software Foundation.
-
-This file is part of GNU Emacs.
-
-GNU Emacs is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-#ifdef VMS
-/* On VMS, we read the UAF file and emulate some of the necessary
-   fields for Emacs. */
-#include "uaf.h"
-
-struct passwd {
-  char pw_name[UAF$S_USERNAME+1];
-  char pw_passwd[UAF$S_PWD];
-  short pw_uid;
-  short pw_gid;
-  char pw_gecos[UAF$S_OWNER+1];
-  char pw_dir[UAF$S_DEFDEV+UAF$S_DEFDIR+1];
-  char pw_shell[UAF$S_DEFCLI+1];
-};
-#endif /* VMS */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/qsort.c tin-2.0.0/vms/qsort.c
--- tin-1.8.3/vms/qsort.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/qsort.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,202 +0,0 @@
-/*
- * Copyright (c) 1980 Regents of the University of California.
- * All rights reserved.  The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- */
-
-#ifndef lint
-static char sccsid[] = "@(#)qsort.c	5.1 (Berkeley) 6/5/85";
-#endif /* not lint */
-
-/*
- * qsort.c:
- * Our own version of the system qsort routine which is faster by an average
- * of 25%, with lows and highs of 10% and 50%.
- * The THRESHold below is the insertion sort threshold, and has been adjusted
- * for records of size 48 bytes.
- * The MTHREShold is where we stop finding a better median.
- */
-
-#define		THRESH		4		/* threshold for insertion */
-#define		MTHRESH		6		/* threshold for median */
-
-static  int		(*qcmp)();		/* the comparison routine */
-static  int		qsz;			/* size of each record */
-static  int		thresh;			/* THRESHold in chars */
-static  int		mthresh;		/* MTHRESHold in chars */
-static void qst(char *base, char *max);
-
-/*
- * my_qsort:
- * First, set up some global parameters for qst to share.  Then, quicksort
- * with qst(), and then a cleanup insertion sort ourselves.  Sound simple?
- * It's not...
- */
-
-void my_qsort(char *base, int n, int size, int (*compar)())
-{
-	register char c, *i, *j, *lo, *hi;
-	char *min, *max;
-
-	if (n <= 1)
-		return;
-	qsz = size;
-	qcmp = compar;
-	thresh = qsz * THRESH;
-	mthresh = qsz * MTHRESH;
-	max = base + n * qsz;
-	if (n >= THRESH) {
-		qst(base, max);
-		hi = base + thresh;
-	} else {
-		hi = max;
-	}
-	/*
-	 * First put smallest element, which must be in the first THRESH, in
-	 * the first position as a sentinel.  This is done just by searching
-	 * the first THRESH elements (or the first n if n < THRESH), finding
-	 * the min, and swapping it into the first position.
-	 */
-	for (j = lo = base; (lo += qsz) < hi; )
-		if ((*qcmp)(j, lo) > 0)
-			j = lo;
-	if (j != base) {
-		/* swap j into place */
-		for (i = base, hi = base + qsz; i < hi; ) {
-			c = *j;
-			*j++ = *i;
-			*i++ = c;
-		}
-	}
-	/*
-	 * With our sentinel in place, we now run the following hyper-fast
-	 * insertion sort.  For each remaining element, min, from [1] to [n-1],
-	 * set hi to the index of the element AFTER which this one goes.
-	 * Then, do the standard insertion sort shift on a character at a time
-	 * basis for each element in the frob.
-	 */
-	for (min = base; (hi = min += qsz) < max; ) {
-		while ((*qcmp)(hi -= qsz, min) > 0)
-			/* void */;
-		if ((hi += qsz) != min) {
-			for (lo = min + qsz; --lo >= min; ) {
-				c = *lo;
-				for (i = j = lo; (j -= qsz) >= hi; i = j)
-					*i = *j;
-				*i = c;
-			}
-		}
-	}
-}
-
-/*
- * qst:
- * Do a quicksort
- * First, find the median element, and put that one in the first place as the
- * discriminator.  (This "median" is just the median of the first, last and
- * middle elements).  (Using this median instead of the first element is a big
- * win).  Then, the usual partitioning/swapping, followed by moving the
- * discriminator into the right place.  Then, figure out the sizes of the two
- * partions, do the smaller one recursively and the larger one via a repeat of
- * this code.  Stopping when there are less than THRESH elements in a partition
- * and cleaning up with an insertion sort (in our caller) is a huge win.
- * All data swaps are done in-line, which is space-losing but time-saving.
- * (And there are only three places where this is done).
- */
-
-static void qst(char *base, char *max)
-{
-	register char c, *i, *j, *jj;
-	register int ii;
-	char *mid, *tmp;
-	int lo, hi;
-
-	/*
-	 * At the top here, lo is the number of characters of elements in the
-	 * current partition.  (Which should be max - base).
-	 * Find the median of the first, last, and middle element and make
-	 * that the middle element.  Set j to largest of first and middle.
-	 * If max is larger than that guy, then it's that guy, else compare
-	 * max with loser of first and take larger.  Things are set up to
-	 * prefer the middle, then the first in case of ties.
-	 */
-	lo = max - base;		/* number of elements as chars */
-	do	{
-		mid = i = base + qsz * ((lo / qsz) >> 1);
-		if (lo >= mthresh) {
-			j = ((*qcmp)((jj = base), i) > 0 ? jj : i);
-			if ((*qcmp)(j, (tmp = max - qsz)) > 0) {
-				/* switch to first loser */
-				j = (j == jj ? i : jj);
-				if ((*qcmp)(j, tmp) < 0)
-					j = tmp;
-			}
-			if (j != i) {
-				ii = qsz;
-				do	{
-					c = *i;
-					*i++ = *j;
-					*j++ = c;
-				} while (--ii);
-			}
-		}
-		/*
-		 * Semi-standard quicksort partitioning/swapping
-		 */
-		for (i = base, j = max - qsz; ; ) {
-			while (i < mid && (*qcmp)(i, mid) <= 0)
-				i += qsz;
-			while (j > mid) {
-				if ((*qcmp)(mid, j) <= 0) {
-					j -= qsz;
-					continue;
-				}
-				tmp = i + qsz;	/* value of i after swap */
-				if (i == mid) {
-					/* j <-> mid, new mid is j */
-					mid = jj = j;
-				} else {
-					/* i <-> j */
-					jj = j;
-					j -= qsz;
-				}
-				goto swap;
-			}
-			if (i == mid) {
-				break;
-			} else {
-				/* i <-> mid, new mid is i */
-				jj = mid;
-				tmp = mid = i;	/* value of i after swap */
-				j -= qsz;
-			}
-		swap:
-			ii = qsz;
-			do	{
-				c = *i;
-				*i++ = *jj;
-				*jj++ = c;
-			} while (--ii);
-			i = tmp;
-		}
-		/*
-		 * Look at sizes of the two partitions, do the smaller
-		 * one first by recursion, then do the larger one by
-		 * making sure lo is its size, base and max are update
-		 * correctly, and branching back.  But only repeat
-		 * (recursively or by branching) if the partition is
-		 * of at least size THRESH.
-		 */
-		i = (j = mid) + qsz;
-		if ((lo = j - base) <= (hi = max - i)) {
-			if (lo >= thresh)
-				qst(base, j);
-			base = i;
-			lo = hi;
-		} else {
-			if (hi >= thresh)
-				qst(i, max);
-			max = j;
-		}
-	} while (lo >= thresh);
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/select.h tin-2.0.0/vms/select.h
--- tin-1.8.3/vms/select.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/select.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-#ifdef __DECC
-#include <time.h>
-#else
-#define NBBY	8		/* number of bits in a byte */
-/*
- * Select uses bit masks of file descriptors in longs.
- * These macros manipulate such bit fields (the filesystem macros use chars).
- * FD_SETSIZE may be defined by the user, but the default here
- * should be >= CHANNELCNT (SYSGEN parameter)
- */
-#ifndef FD_SETSIZE
-#define FD_SETSIZE	512
-#endif
-#define CHANNELSIZE	16	/* Size of a channel */
-
-typedef long	fd_mask;
-#define NFDBITS (sizeof(fd_mask) * NBBY)	/* bits per mask */
-#ifndef howmany
-#define howmany(x, y)	(((x)+((y)-1))/(y))
-#endif
-
-typedef struct fd_set {
-	fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
-} fd_set;
-
-#define FD_SET(n, p)	((p)->fds_bits[(n)/CHANNELSIZE/NFDBITS] |= (1 << (((n)/CHANNELSIZE) % NFDBITS)))
-#define FD_CLR(n, p)	((p)->fds_bits[(n)/CHANNELSIZE/NFDBITS] &= ~(1 << (((n)/CHANNELSIZE) % NFDBITS)))
-#define FD_ISSET(n, p)	((!((n) % CHANNELSIZE)) && ((p)->fds_bits[(n)/CHANNELSIZE/NFDBITS] & (1 << (((n)/CHANNELSIZE) % NFDBITS))))
-#define FD_ZERO(p)	memset((char *)(p),'\0',sizeof(*(p)))
-#endif
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/strings.h tin-2.0.0/vms/strings.h
--- tin-1.8.3/vms/strings.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/strings.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,32 +0,0 @@
-#ifndef __STRING_LOADED
-#define __STRING_LOADED	1
-
-/*	STRING - V3.0 - String handling function definitions	*/
-
-#pragma nostandard
-#include stddef
-#pragma standard
-
-char   *strcpy	(char *s1, const char *s2);
-char   *strncpy	(char *s1, const char *s2, size_t n);
-char   *strcat	(char *s1, const char *s2);
-char   *strncat	(char *s1, const char *s2, size_t n);
-int	strcmp	(const char *s1, const char *s2);
-int	strncmp	(const char *s1, const char *s2, size_t n);
-char   *strchr	(const char *s, int character);
-char   *strrchr	(const char *s, int character);
-size_t	strspn	(const char *s1, const char *s2);
-size_t	strcspn	(const char *s1, const char *s2);
-size_t	strlen	(const char *s);
-char   *strpbrk	(const char *s1, const char *s2);
-char   *strstr	(const char *s1, const char *s2);
-char   *strtok	(char *s1, const char *s2);
-char   *strerror(int errnum, ...);
-
-int	memcmp	(const void *s1, const void *s2, size_t size);
-void   *memchr	(const void *s1, int c, size_t size);
-void   *memcpy	(void *s1, const void *s2, size_t size);
-void   *memmove	(void *s1, const void *s2, size_t size);
-void   *memset	(void *s, int character, size_t size);
-
-#endif					/* __STRING_LOADED */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/uaf.h tin-2.0.0/vms/uaf.h
--- tin-1.8.3/vms/uaf.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/uaf.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,295 +0,0 @@
-/* GNU Emacs VMS UAF definition file.
-   Copyright (C) 1986 Free Software Foundation, Inc.
-
-This file is part of GNU Emacs.
-
-GNU Emacs is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 1, or (at your option)
-any later version.
-
-GNU Emacs is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING.  If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
-
-/*
- * User Authorization File record formats
- */
-#ifndef UAF$K_LENGTH
-
-struct UAF {
-#define	UAF$C_USER_ID	1
-#define	UAF$C_VERSION1	1
-#define	UAF$C_KEYED_PART	52
-#define	UAF$C_AD_II	0
-#define	UAF$C_PURDY	1
-#define	UAF$C_PURDY_V	2
-#define	UAF$K_FIXED	644
-#define	UAF$C_FIXED	644
-#define	UAF$K_LENGTH	1412
-#define	UAF$C_LENGTH	1412
-#define	UAF$S_UAFDEF	1412
-#define	UAF$B_RTYPE	0
-  char uaf$b_rtype;
-#define	UAF$B_VERSION	1
-  char uaf$b_version;
-#define	UAF$W_USRDATOFF	2
-  short	uaf$w_usrdatoff;
-#define	UAF$S_USERNAME	32
-#define	UAF$T_USERNAME	4
-#define	UAF$T_USERNAME_TAG	35
-  char uaf$t_username[UAF$S_USERNAME];
-#define	UAF$L_UIC	36
-#define	UAF$W_MEM	36
-#define	UAF$W_GRP	38
-  union {
-    long uaf_l_uic;
-#define	uaf$l_uic	uaf_u_uic.uaf_l_uic
-    struct {
-      short uaf_w_mem;
-      short uaf_w_grp;
-#define	uaf$w_mem	uaf_u_uic.uaf_u_mem_grp.uaf_w_mem
-#define	uaf$w_grp	uaf_u_uic.uaf_u_mem_grp.uaf_w_grp
-    } uaf_u_mem_grp;
-  } uaf_u_uic;
-#define	UAF$L_SUB_ID	40
-  long	uaf$l_sub_id;
-#define	UAF$S_PARENT_ID	8
-#define	UAF$Q_PARENT_ID	44
-  char	uaf$q_parent_id[UAF$S_PARENT_ID];
-#define	UAF$S_ACCOUNT	32
-#define	UAF$T_ACCOUNT	52
-  char	uaf$t_account[UAF$S_ACCOUNT];
-#define	UAF$S_OWNER	32
-#define	UAF$T_OWNER	84
-  char	uaf$t_owner[UAF$S_OWNER];
-#define	UAF$S_DEFDEV	32
-#define	UAF$T_DEFDEV	116
-  char	uaf$t_defdev[UAF$S_DEFDEV];
-#define	UAF$S_DEFDIR	64
-#define	UAF$T_DEFDIR	148
-  char	uaf$t_defdir[UAF$S_DEFDIR];
-#define	UAF$S_LGICMD	64
-#define	UAF$T_LGICMD	212
-  char	uaf$t_lgicmd[UAF$S_LGICMD];
-#define	UAF$S_DEFCLI	32
-#define	UAF$T_DEFCLI	276
-  char	uaf$t_defcli[UAF$S_DEFCLI];
-#define	UAF$S_CLITABLES	32
-#define	UAF$T_CLITABLES	308
-  char	uaf$t_clitables[UAF$S_CLITABLES];
-#define	UAF$S_PWD	8
-#define	UAF$Q_PWD	340
-#define	UAF$L_PWD	340
-  char	uaf$q_pwd[UAF$S_PWD];
-#define uaf$l_pwd	uaf$q_pwd[0]
-#define	UAF$S_PWD2	8
-#define	UAF$Q_PWD2	348
-  char	uaf$q_pwd2[UAF$S_PWD2];
-#define	UAF$W_LOGFAILS	356
-  short	uaf$w_logfails;
-#define	UAF$W_SALT	358
-  short	uaf$w_salt;
-#define	UAF$B_ENCRYPT	360
-  char	uaf$b_encrypt;
-#define	UAF$B_ENCRYPT2	361
-  char	uaf$b_encrypt2;
-#define	UAF$B_PWD_LENGTH	362
-  char	uaf$b_pwd_length;
-#define	UAF$S_EXPIRATION	8
-#define	UAF$Q_EXPIRATION	364
-  char	uaf$q_expiration[UAF$S_EXPIRATION];
-#define	UAF$S_PWD_LIFETIME	8
-#define	UAF$Q_PWD_LIFETIME	372
-  char	uaf$q_pwd_lifetime[UAF$S_PWD_LIFETIME];
-#define	UAF$S_PWD_DATE	8
-#define	UAF$Q_PWD_DATE	380
-  char	uaf$q_pwd_date[UAF$S_PWD_DATE];
-#define	UAF$S_PWD2_DATE	8
-#define	UAF$Q_PWD2_DATE	388
-  char	uaf$q_pwd2_date[UAF$S_PWD2_DATE];
-#define	UAF$S_LASTLOGIN_I	8
-#define	UAF$Q_LASTLOGIN_I	396
-  char	uaf$q_lastlogin_i[UAF$S_LASTLOGIN_I];
-#define	UAF$S_LASTLOGIN_N	8
-#define	UAF$Q_LASTLOGIN_N	404
-  char	uaf$q_lastlogin_n[UAF$S_LASTLOGIN_N];
-#define	UAF$S_PRIV	8
-#define	UAF$Q_PRIV	412
-  char	uaf$q_priv[UAF$S_PRIV];
-#define	UAF$S_DEF_PRIV	8
-#define	UAF$Q_DEF_PRIV	420
-  char	uaf$q_def_priv[UAF$S_DEF_PRIV];
-#define	UAF$S_MIN_CLASS	20
-#define	UAF$R_MIN_CLASS	428
-  char	uaf$r_min_class[UAF$S_MIN_CLASS];
-#define	UAF$S_MAX_CLASS	20
-#define	UAF$R_MAX_CLASS	448
-  char	uaf$r_max_class[UAF$S_MAX_CLASS];
-#define	UAF$L_FLAGS	468
-#define	UAF$V_DISCTLY	0
-#define	UAF$V_DEFCLI	1
-#define	UAF$V_LOCKPWD	2
-#define	UAF$V_CAPTIVE	3
-#define	UAF$V_DISACNT	4
-#define	UAF$V_DISWELCOM	5
-#define	UAF$V_DISMAIL	6
-#define	UAF$V_NOMAIL	7
-#define	UAF$V_GENPWD	8
-#define	UAF$V_PWD_EXPIRED	9
-#define	UAF$V_PWD2_EXPIRED	10
-#define	UAF$V_AUDIT	11
-#define	UAF$V_DISREPORT	12
-#define	UAF$V_DISRECONNECT	13
-  union {
-    unsigned long	uaf_l_flags;
-#define uaf$l_flags uaf_u_flags.uaf_l_flags
-    struct {
-      unsigned long
-	uaf_v_disctly : 1,
-#define uaf$v_disctly uaf_u_flags.uaf_v_flags.uaf_v_disctly
-      uaf_v_defcli : 1,
-#define uaf$v_defcli uaf_u_flags.uaf_v_flags.uaf_v_discli
-      uaf_v_lockpwd : 1,
-#define uaf$v_lockpwd uaf_u_flags.uaf_v_flags.uaf_v_lockpwd
-      uaf_v_captive : 1,
-#define uaf$v_captive uaf_u_flags.uaf_v_flags.uaf_v_captive
-      uaf_v_disacnt : 1,
-#define uaf$v_disacnt uaf_u_flags.uaf_v_flags.uaf_v_disacnt
-      uaf_v_diswelcom : 1,
-#define uaf$v_diswelcom uaf_u_flags.uaf_v_flags.uaf_v_diswelcom
-      uaf_v_dismail : 1,
-#define uaf$v_dismail uaf_u_flags.uaf_v_flags.uaf_v_dismail
-      uaf_v_nomail : 1,
-#define uaf$v_nomail uaf_u_flags.uaf_v_flags.uaf_v_nomail
-      uaf_v_genpwd : 1,
-#define uaf$v_genpwd uaf_u_flags.uaf_v_flags.uaf_v_genpwd
-      uaf_v_pwd_expired : 1,
-#define uaf$v_pwd_expired uaf_u_flags.uaf_v_flags.uaf_v_pwd_expired
-      uaf_v_pwd2_expired : 1,
-#define uaf$v_pwd2_expired uaf_u_flags.uaf_v_flags.uaf_v_pwd2_expired
-      uaf_v_audit : 1,
-#define uaf$v_audit uaf_u_flags.uaf_v_flags.uaf_v_audit
-      uaf_v_disreport : 1,
-#define uaf$v_disreport uaf_u_flags.uaf_v_flags.uaf_v_disreport
-      uaf_v_disreconnect : 1;
-#define uaf$v_disreconnect uaf_u_flags.uaf_v_flags.uaf_v_disreconnect
-    } uaf_v_flags;
-  } uaf_u_flags;
-#define	UAF$S_NETWORK_ACCESS_P	3
-#define	UAF$B_NETWORK_ACCESS_P	472
-  char	uaf$b_network_access_p[UAF$S_NETWORK_ACCESS_P];
-#define	UAF$S_NETWORK_ACCESS_S	3
-#define	UAF$B_NETWORK_ACCESS_S	475
-  char	uaf$b_network_access_s[UAF$S_NETWORK_ACCESS_S];
-#define	UAF$S_BATCH_ACCESS_P	3
-#define	UAF$B_BATCH_ACCESS_P	478
-  char	uaf$b_batch_access_p[UAF$S_BATCH_ACCESS_P];
-#define	UAF$S_BATCH_ACCESS_S	3
-#define	UAF$B_BATCH_ACCESS_S	481
-  char	uaf$b_batch_access_s[UAF$S_BATCH_ACCESS_S];
-#define	UAF$S_LOCAL_ACCESS_P	3
-#define	UAF$B_LOCAL_ACCESS_P	484
-  char	uaf$b_local_access_p[UAF$S_LOCAL_ACCESS_P];
-#define	UAF$S_LOCAL_ACCESS_S	3
-#define	UAF$B_LOCAL_ACCESS_S	487
-  char	uaf$b_local_access_s[UAF$S_LOCAL_ACCESS_S];
-#define	UAF$S_DIALUP_ACCESS_P	3
-#define	UAF$B_DIALUP_ACCESS_P	490
-  char	uaf$b_dialup_access_p[UAF$S_DIALUP_ACCESS_P];
-#define	UAF$S_DIALUP_ACCESS_S	3
-#define	UAF$B_DIALUP_ACCESS_S	493
-  char	uaf$b_dialup_access_s[UAF$S_DIALUP_ACCESS_S];
-#define	UAF$S_REMOTE_ACCESS_P	3
-#define	UAF$B_REMOTE_ACCESS_P	496
-  char	uaf$b_remote_access_p[UAF$S_REMOTE_ACCESS_P];
-#define	UAF$S_REMOTE_ACCESS_S	3
-#define	UAF$B_REMOTE_ACCESS_S	499
-  char	uaf$b_remote_access_s[UAF$S_REMOTE_ACCESS_S];
-#define	UAF$B_PRIMEDAYS	514
-#define	UAF$V_MONDAY	0
-#define	UAF$V_TUESDAY	1
-#define	UAF$V_WEDNESDAY	2
-#define	UAF$V_THURSDAY	3
-#define	UAF$V_FRIDAY	4
-#define	UAF$V_SATURDAY	5
-#define	UAF$V_SUNDAY	6
-  union {
-    unsigned char	uaf_b_primedays;
-#define uaf$b_primedays uaf_u_primedays.uaf_b_primedays
-    unsigned char
-      uaf_v_monday : 1,
-#define uaf$v_monday uaf_u_primedays.uaf_v_monday
-    uaf_v_tuesday : 1,
-#define uaf$v_tuesday uaf_u_primedays.uaf_v_tuesday
-    uaf_v_wednesday : 1,
-#define uaf$v_wednesday uaf_u_primedays.uaf_v_wednesday
-    uaf_v_thursday : 1,
-#define uaf$v_thursday uaf_u_primedays.uaf_v_thrusday
-    uaf_v_friday : 1,
-#define uaf$v_friday uaf_u_primedays.uaf_v_friday
-    uaf_v_saturday : 1,
-#define uaf$v_saturday uaf_u_primedays.uaf_v_saturday
-    uav_v_sunday : 1;
-#define uaf$v_sunday uaf_u_primedays.uaf_v_sunday
-  } uaf_u_primedays;
-#define	UAF$B_PRI	516
-  char	uaf$b_pri;
-#define	UAF$B_QUEPRI	517
-  char	uaf$b_quepri;
-#define	UAF$W_MAXJOBS	518
-  short	uaf$w_maxjobs;
-#define	UAF$W_MAXACCTJOBS	520
-  short	uaf$w_maxacctjobs;
-#define	UAF$W_MAXDETACH	522
-  short	uaf$w_maxdetach;
-#define	UAF$W_PRCCNT	524
-  short	uaf$w_prccnt;
-#define	UAF$W_BIOLM	526
-  short	uaf$w_biolm;
-#define	UAF$W_DIOLM	528
-  short	uaf$w_diolm;
-#define	UAF$W_TQCNT	530
-  short	uaf$w_twcnt;
-#define	UAF$W_ASTLM	532
-  short	uaf$w_astlm;
-#define	UAF$W_ENQLM	534
-  short	uaf$w_enqlm;
-#define	UAF$W_FILLM	536
-  short	uaf$w_fillm;
-#define	UAF$W_SHRFILLM	538
-  short	uaf$w_shrfillm;
-#define	UAF$L_WSQUOTA	540
-  long	uaf$l_wsquota;
-#define	UAF$L_DFWSCNT	544
-  long	uaf$l_dfwscnt;
-#define	UAF$L_WSEXTENT	548
-  long	uaf$l_wsextent;
-#define	UAF$L_PGFLQUOTA	552
-  long	uaf$l_pgflquota;
-#define	UAF$L_CPUTIM	556
-  long	uaf$l_cputim;
-#define	UAF$L_BYTLM	560
-  long	uaf$l_bytlm;
-#define	UAF$L_PBYTLM	564
-  long	uaf$l_pbytlm;
-#define	UAF$L_JTQUOTA	568
-  long	uaf$l_jtquota;
-#define	UAF$W_PROXY_LIM	572
-  short	uaf$w_proxy_lim;
-#define	UAF$W_PROXIES	574
-  short	uaf$w_proxies;
-#define	UAF$W_ACCOUNT_LIM	576
-  short	uaf$w_account_lim;
-#define	UAF$W_ACCOUNTS	578
-  short	uaf$w_accounts;
-  char	uaf$b_fixed[UAF$C_FIXED - UAF$W_ACCOUNTS + 2];
-  char	uaf$b_usrdata[UAF$C_LENGTH - UAF$C_FIXED];
-};
-
-#endif /* not UAF$K_LENGTH */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/vms.c tin-2.0.0/vms/vms.c
--- tin-1.8.3/vms/vms.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/vms.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,297 +0,0 @@
-/*
- *  Project   : tin - a Usenet reader
- *  Module    : vms.c
- *  Author    : Andrew Greer
- *  Created   : 1995-06-19
- *  Updated   : 1998-01-24 by Michael Stenns
- *  Notes     :
- *  Copyright : (c) Copyright 1991-95 by Iain Lea & Andrew Greer
- *              You may  freely  copy or  redistribute  this software,
- *              so  long as there is no profit made from its use, sale
- *              trade or  reproduction.  You may not change this copy-
- *              right notice, and it must be included in any copy made
- */
-
-#ifdef VMS
-#include <stdio.h>
-#include <descrip.h>
-#include <iodef.h>
-#include <ssdef.h>
-#include <uaidef.h>
-#include <string.h>
-#include <stdlib.h>
-#include <sys/file.h>
-#ifdef __GNUC__
-#include <vms/sys$routines.h>
-#else
-#include <starlet.h>
-#endif
-#include "tin.h"
-
-/* local prototypes */
-char * lower (char * str);
-static int vms_open_channel (char * device);
-
-/* global variables for current module */
-static int stdin_chan = 0;  /* vms channel to sys$input */
-static int stdin_ef   = 0;  /* event flag for read from stdin_chan */
-
-
-/* return a pointer to string descriptor for zero terminated strings */
-struct dsc$descriptor *desz(char *c$_str)
-{
-  static struct dsc$descriptor c$_tmpdesc;
-
-  c$_tmpdesc.dsc$w_length = strlen(c$_str);
-  c$_tmpdesc.dsc$b_dtype  = DSC$K_DTYPE_T;
-  c$_tmpdesc.dsc$b_class  = DSC$K_CLASS_S;
-  c$_tmpdesc.dsc$a_pointer= c$_str;
-  return(&c$_tmpdesc);
-}
-
-
-/*
- * Author: unknown
- * Last edit: M. Stenns  (Oct 1997)
- * Comment:
- * returns the process owner (Owner field in uaf)
- */
-char *get_uaf_fullname()
-{
-  static char uaf_owner[40];
-  int i,status;
-
-  struct item_list {
-    short bl, ic;
-    char *ba;
-    short *rl;
-  } getuai_itmlist[] = {
-    {
-      sizeof uaf_owner - 1,
-      UAI$_OWNER,
-      uaf_owner,
-      0
-    },
-    { 0, 0, 0, 0}
-  };
-
-  memset (uaf_owner, '\0', sizeof uaf_owner);
-  status = sys$getuai(0,0,desz(cuserid(NULL)),getuai_itmlist,0,0,0);
-  if (!(status & 1)) strcpy (uaf_owner, cuserid(NULL));
-
-  for (i=0;uaf_owner[i] && iscntrl(uaf_owner[i]);i++);
-  return &uaf_owner[i];
-}
-
-/* Converts "TOD_MCQUILLIN" to "Tod McQuillin" */
-char *fix_fullname(char *p)
-{
-  char *tmp;
-
-  if (p && *p) {
-    while ((tmp = strchr(p,'_'))) *tmp = ' ';
-    tmp = lower(p);
-    if (*tmp) *tmp = toupper (*tmp);
-    while ((tmp = strchr(tmp,' '))) {
-      tmp++;
-      if (*tmp) *tmp = toupper (*tmp);
-    }
-    if ((tmp = strstr(p, "Mc"))) {
-      tmp += 2;
-      if (*tmp) *tmp = toupper (*tmp);
-    }
-    tmp = p + strlen(p) - 1;
-    while ((tmp > p) && isspace(*tmp)) *tmp-- = '\0';
-  }
-
-  return p;
-}
-
-#ifndef tputs
-
-int tputs (char * str, int zzz, OutcPtr func)
-{
-	if (! str) {
-		return(0);
-	}
-	if (func == outchar) {
-		fputs (str, stdout);
-	} else {
-		while (*str) {
-			if (*str == '\n') {
-				func('\r');
-			}
-			func(*str++);
-		}
-	}
-	return(0);
-}
-
-#endif
-
-
-void
-make_post_cmd (cmd, name)
-	char *cmd;
-	char *name;
-{
-	char *p;
-
-	if ((p = getenv (ENV_VAR_POSTER)) != (char *) 0) {
-		sprintf (cmd, p, name);
-	} else {
-		sprintf (cmd, DEFAULT_POSTER, name);
-	}
-	return;
-}
-
-
-/*
- * vms_open_channel (char * device)
- *
- * Opens a channel to the device specified as argument.
- * Return value:
- *  VMS channel number
- */
-
-static int vms_open_channel (char * device)
-{
-  int channel = 0;
-  int status;
-
-  status = sys$assign (desz(device), &channel,0,0);
-  if ((status & 1) != 1)
-  {
-     perror ("cannot assgin channel to sys$input");
-     exit (EXIT_FAILURE);
-  }
-  status = lib$get_ef (&stdin_ef);
-  if ((status & 1) != 1)
-  {
-     perror ("cannot get event flag");
-     exit (EXIT_FAILURE);
-  }
-  return channel;
-}
-
-/*
- * int vms_close_stdin (void)
- *
- * frees the resources used by ReadCh() and ReadChNowait()
- */
-int vms_close_stdin (void)
-{
-  int status;
-
-  status = sys$cancel (stdin_chan);
-  if ((status & 1) != 1)
-  {
-     perror ("cannot cancel I/O request");
-     return status;
-  }
-
-  status = sys$dassgn (stdin_chan);
-  if ((status & 1) != 1)
-  {
-     perror ("cannot close channel");
-     return status;
-  }
-  stdin_chan = 0;
-
-  status = lib$free_ef (&stdin_ef);
-  if ((status & 1) != 1)
-  {
-     perror ("cannot free event flag");
-     exit (EXIT_FAILURE);
-  }
-  stdin_ef = 0;
-
-  return status;
-}
-
-/*
- * Read character from termianl without echo
- * Return zero if no input hanging
- */
-int ReadChNowait (void)
-{
-  static int tt_char = 0;
-  static short int iosb[4] = {1,0,0,0};
-  int character     = 0;
-  int status = SS$_NORMAL;
-
-  if (!stdin_chan) stdin_chan = vms_open_channel ("sys$input");
-
-  if (iosb[0])  /* no qio pending */
-  {
-    if (iosb[0] == SS$_TIMEOUT)
-      character = 0;
-    else if (iosb[0] != SS$_NORMAL)
-      character = EOF;
-    else
-      character = tt_char;
-
-    status = sys$qio (stdin_ef, stdin_chan,
-                     IO$_READVBLK|IO$M_NOFILTR|IO$M_NOECHO|IO$M_TIMED,
-                     iosb,0,0,
-                     &tt_char,1,1,0,0,0);
-    if (status != SS$_NORMAL)
-    {
-      fprintf (stderr,"sys$qiow failed in ReadCh ()\n");
-      exit (status);
-    }
-  }
-
-  return character;
-}
-
-
-/*
- * Read character from termianl without echo
- */
-int ReadCh (void)
-{
-  int character     = 0;
-  int status = SS$_NORMAL;
-  short int iosb[4];
-
-  while ((status == SS$_NORMAL) && !character)
-  {
-    character = ReadChNowait();
-    if (!character) status = sys$waitfr (stdin_ef);
-  }
-  return character;
-}
-
-
-/* ======================================================================== */
-/* lower - convert string to lowercase */
-/* ======================================================================== */
-char * lower (char * str)
-{
-char * tmp;
-
- /* convert to lower */
- if (str)
- {
-    for (tmp = str; *tmp; tmp++) *tmp = tolower (*tmp);
- }
- return str;
-}
-
-
-/******************************************************************************
- * vms_errmsg converts errno to an readable string
- * return values:
- *   the converted string
- *****************************************************************************/
-char * vms_errmsg (int error_number)
-{
-  char * message;
-
-  message = strerror(errno);
-  if (!message) message = "unknown error code";
-  return message;
-}
-
-#endif /* VMS */
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/vmsdir.c tin-2.0.0/vms/vmsdir.c
--- tin-1.8.3/vms/vmsdir.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/vmsdir.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,185 +0,0 @@
-#include <errno.h>
-#include <unixio.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include "strings.h"
-#include <sys/stat.h>
-#include "ndir.h"
-
-int sys_read (int fildes, char *buf, unsigned int nbyte);
-
-int
-/* VARARGS 2 */
-sys_open (path, oflag, mode)
-     char *path;
-     int oflag, mode;
-{
-  register int rtnval;
-
-  while ((rtnval = open (path, oflag, mode)) == -1
-	 && (errno == EINTR));
-  return (rtnval);
-}
-
-int sys_close (int fd)
-{
-  register int rtnval;
-
-  while ((rtnval = close (fd)) == -1
-	 && (errno == EINTR));
-  return rtnval;
-}
-
-DIR *
-opendir (filename)
-     char *filename;	/* name of directory */
-{
-  register DIR *dirp;		/* -> malloc'ed storage */
-  register int fd;		/* file descriptor for read */
-  struct stat sbuf;		/* result of fstat() */
-
-  fd = sys_open (filename, 0);
-  if (fd < 0)
-    return 0;
-
-  if (fstat (fd, &sbuf) < 0
-      || (sbuf.st_mode & S_IFMT) != S_IFDIR
-      || (dirp = (DIR *) malloc (sizeof (DIR))) == 0)
-    {
-      sys_close (fd);
-      return 0;		/* bad luck today */
-    }
-
-  dirp->dd_fd = fd;
-  dirp->dd_loc = dirp->dd_size = 0;	/* refill needed */
-
-  return dirp;
-}
-
-void
-closedir (dirp)
-     register DIR *dirp;		/* stream from opendir() */
-{
-  sys_close (dirp->dd_fd);
-  free ((char *) dirp);
-}
-
-struct direct dir_static;	/* simulated directory contents */
-
-/* ARGUSED */
-struct direct *
-readdir (dirp)
-     register DIR *dirp;	/* stream from opendir() */
-{
-#ifndef VMS
-  register struct olddir *dp;	/* -> directory data */
-#else /* VMS */
-  register struct dir$_name *dp; /* -> directory data */
-  register struct dir$_version *dv; /* -> version data */
-#endif /* VMS */
-
-  for (; ;)
-    {
-      if (dirp->dd_loc >= dirp->dd_size)
-	dirp->dd_loc = dirp->dd_size = 0;
-
-      if (dirp->dd_size == 0 	/* refill buffer */
-	  && (dirp->dd_size = sys_read (dirp->dd_fd, dirp->dd_buf, DIRBLKSIZ)) <= 0)
-	return 0;
-
-#ifndef VMS
-      dp = (struct olddir *) &dirp->dd_buf[dirp->dd_loc];
-      dirp->dd_loc += sizeof (struct olddir);
-
-      if (dp->od_ino != 0)	/* not deleted entry */
-	{
-	  dir_static.d_ino = dp->od_ino;
-	  strncpy (dir_static.d_name, dp->od_name, DIRSIZ);
-	  dir_static.d_name[DIRSIZ] = '\0';
-	  dir_static.d_namlen = strlen (dir_static.d_name);
-	  dir_static.d_reclen = sizeof (struct direct)
-	    - MAXNAMLEN + 3
-	      + dir_static.d_namlen - dir_static.d_namlen % 4;
-	  return &dir_static;	/* -> simulated structure */
-	}
-#else /* VMS */
-      dp = (struct dir$_name *) dirp->dd_buf;
-      if (dirp->dd_loc == 0)
-	dirp->dd_loc = (dp->dir$b_namecount&1) ? dp->dir$b_namecount + 1
-	  : dp->dir$b_namecount;
-      dv = (struct dir$_version *)&dp->dir$t_name[dirp->dd_loc];
-      dir_static.d_ino = dv->dir$w_fid_num;
-      dir_static.d_namlen = dp->dir$b_namecount;
-      dir_static.d_reclen = sizeof (struct direct)
-	- MAXNAMLEN + 3
-	  + dir_static.d_namlen - dir_static.d_namlen % 4;
-      strncpy (dir_static.d_name, dp->dir$t_name, dp->dir$b_namecount);
-      dir_static.d_name[dir_static.d_namlen] = '\0';
-      dirp->dd_loc = dirp->dd_size; /* only one record at a time */
-      return &dir_static;
-#endif /* VMS */
-    }
-}
-
-int sys_read (int fildes, char *buf, unsigned int nbyte)
-{
-  register int rtnval;
-
-  while ((rtnval = read (fildes, buf, nbyte)) == -1
-	 && (errno == EINTR));
-  return (rtnval);
-}
-
-FILE *
-popen (
-	char *command,
-	char *mode)
-{
-	return ((FILE *) 0);
-}
-
-
-void
-pclose (FILE *pipe)
-{
-	return;
-}
-
-void tzset(void)
-{
-	return;
-}
-
-/* Get the name of current user */
-char *
-getlogin (void)
-{
-	char *p;
-
-	if ((p = getenv ("USER")) == NULL) {
-		return ( (char *) 0);
-	}
-
-	return (p);
-}
-
-/*
- *  setenv (char *name, char *value, int notused)
- */
-int setenv (char *name, char *value, int notused)
-{
-  int status = 0;
-  char command[1024];
-
-  if (name && value)
-  {
-    if (sprintf(command,"define/nolog/job %s \"%s\" ",name,value) > sizeof command)
-    {
-	fprintf (stderr, "FATAL buffer overflow in setenv");
-	tin_done (EXIT_FAILURE);
-    }
-    status = system(command);
-  }
-  return status;
-}
-
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/vmsfile.c tin-2.0.0/vms/vmsfile.c
--- tin-1.8.3/vms/vmsfile.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/vmsfile.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,85 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include "parse.h"
-
-#if 0
-extern char *strdup();
-
-char **split(char *spliton, char *target)
-{
-  static char *buffer[100];
-  static char *t = 0;
-  char **p;
-
-  if (t)
-    free(t);
-
-
-  while ((t = strdup(target)) == NULL)
-    sleep(2);			/* just wait for out of memory condition
-				   to go away */
-
-  for (p = &buffer[0], *p = strtok(t, spliton);
-       *p;
-       *(++p) = strtok(NULL, spliton)) ;
-
-  return buffer;
-}
-#endif
-
-/*
- * TODO may need to append a '.' if file has no extension ?
- */
-void joinpath(char *result, const char *dir, const char *file)
-{
-  struct filespec *spec;
-  char tmpdir[255], tmpfile[255];
-  char *ptr1, *ptr2;
-
-  strcpy(tmpdir, dir);
-  strcpy(tmpfile, file);
-
-  if (strlen (tmpdir) == 0) {
-    strcpy (result, tmpfile);
-    return;
-  }
-  if (tmpfile[0] == '[')
-   {
-    strcat(tmpdir,tmpfile);
-    tmpfile[0] = '\0';
-   }
-  spec = sysparse(tmpdir);
-  sprintf(result, "%s%s%s", spec->dev, spec->dir, tmpfile);
-  if (spec->filename[0]) {
-    fprintf(stderr, "joinpath: throwing away filename %s\n", spec->filename);
-  }
-}
-
-void joindir(char *result, const char *dir, const char *file)
-{
-  struct filespec *spec;
-  int i;
-  char tmpdir[255], tmpfile[255];
-
-  strcpy(tmpdir, dir);
-  strcpy(tmpfile, file);
-
-  if (strlen (tmpdir) == 0) {
-    sprintf(result, "[%s]", tmpfile);
-    return;
-  }
-  spec = sysparse(tmpdir);
-  i = strlen(spec->dir);
-  if (spec->dir[i-1] == ']') {
-    spec->dir[i-1] = 0;
-    sprintf(result, "%s%s.%s]", spec->dev, spec->dir, tmpfile);
-    if (spec->filename[0]) {
-      fprintf(stderr, "joinpath: throwing away filename %s\n", spec->filename);
-    }
-  } else {
-    fprintf(stderr, "joinpath: dir %s didn't end with ']' (passed %s)\n",
-	    spec->dir, tmpfile);
-    exit(0);
-  }
-}
-
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/vmspwd.c tin-2.0.0/vms/vmspwd.c
--- tin-1.8.3/vms/vmspwd.c	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/vmspwd.c	1970-01-01 01:00:00.000000000 +0100
@@ -1,248 +0,0 @@
-#include <stdlib.h>
-#include <unixlib.h>
-#include "pwd.h"
-
-unsigned
-sys_getuid ()
-{
-  return (getgid () << 16) | getuid ();
-}
-
-/* Define this symbol to actually read SYSUAF.DAT.  This requires either
-   SYSPRV or a readable SYSUAF.DAT. */
-
-#ifdef READ_SYSUAF
-/*
- * getuaf.c
- *
- * Routine to read the VMS User Authorization File and return
- * a specific user's record.
- */
-
-static struct UAF retuaf;
-
-struct UAF *
-get_uaf_name (uname)
-     char * uname;
-{
-  register status;
-  struct FAB uaf_fab;
-  struct RAB uaf_rab;
-
-  uaf_fab = cc$rms_fab;
-  uaf_rab = cc$rms_rab;
-  /* initialize fab fields */
-  uaf_fab.fab$l_fna = "SYS$SYSTEM:SYSUAF.DAT";
-  uaf_fab.fab$b_fns = 21;
-  uaf_fab.fab$b_fac = FAB$M_GET;
-  uaf_fab.fab$b_org = FAB$C_IDX;
-  uaf_fab.fab$b_shr = FAB$M_GET|FAB$M_PUT|FAB$M_UPD|FAB$M_DEL;
-  /* initialize rab fields */
-  uaf_rab.rab$l_fab = &uaf_fab;
-  /* open the User Authorization File */
-  status = sys$open (&uaf_fab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  status = sys$connect (&uaf_rab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  /* read the requested record - index is in uname */
-  uaf_rab.rab$l_kbf = uname;
-  uaf_rab.rab$b_ksz = strlen (uname);
-  uaf_rab.rab$b_rac = RAB$C_KEY;
-  uaf_rab.rab$l_ubf = (char *)&retuaf;
-  uaf_rab.rab$w_usz = sizeof retuaf;
-  status = sys$get (&uaf_rab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  /* close the User Authorization File */
-  status = sys$disconnect (&uaf_rab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  status = sys$close (&uaf_fab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  return &retuaf;
-}
-
-struct UAF *
-get_uaf_uic (uic)
-     unsigned long uic;
-{
-  register status;
-  struct FAB uaf_fab;
-  struct RAB uaf_rab;
-
-  uaf_fab = cc$rms_fab;
-  uaf_rab = cc$rms_rab;
-  /* initialize fab fields */
-  uaf_fab.fab$l_fna = "SYS$SYSTEM:SYSUAF.DAT";
-  uaf_fab.fab$b_fns = 21;
-  uaf_fab.fab$b_fac = FAB$M_GET;
-  uaf_fab.fab$b_org = FAB$C_IDX;
-  uaf_fab.fab$b_shr = FAB$M_GET|FAB$M_PUT|FAB$M_UPD|FAB$M_DEL;
-  /* initialize rab fields */
-  uaf_rab.rab$l_fab = &uaf_fab;
-  /* open the User Authorization File */
-  status = sys$open (&uaf_fab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  status = sys$connect (&uaf_rab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  /* read the requested record - index is in uic */
-  uaf_rab.rab$b_krf = 1;	/* 1st alternate key */
-  uaf_rab.rab$l_kbf = (char *) &uic;
-  uaf_rab.rab$b_ksz = sizeof uic;
-  uaf_rab.rab$b_rac = RAB$C_KEY;
-  uaf_rab.rab$l_ubf = (char *)&retuaf;
-  uaf_rab.rab$w_usz = sizeof retuaf;
-  status = sys$get (&uaf_rab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  /* close the User Authorization File */
-  status = sys$disconnect (&uaf_rab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  status = sys$close (&uaf_fab);
-  if (!(status&1))
-    {
-      errno = EVMSERR;
-      vaxc$errno = status;
-      return 0;
-    }
-  return &retuaf;
-}
-
-static struct passwd retpw;
-
-struct passwd *
-cnv_uaf_pw (up)
-     struct UAF * up;
-{
-  char * ptr;
-
-  /* copy these out first because if the username is 32 chars, the next
-     section will overwrite the first byte of the UIC */
-  retpw.pw_uid = up->uaf$w_mem;
-  retpw.pw_gid = up->uaf$w_grp;
-
-  /* I suppose this is not the best style, to possibly overwrite one
-     byte beyond the end of the field, but what the heck... */
-  ptr = &up->uaf$t_username[UAF$S_USERNAME];
-  while (ptr[-1] == ' ')
-    ptr--;
-  *ptr = '\0';
-  strcpy (retpw.pw_name, up->uaf$t_username);
-
-  /* the rest of these are counted ascii strings */
-  strncpy (retpw.pw_gecos, &up->uaf$t_owner[1], up->uaf$t_owner[0]);
-  retpw.pw_gecos[up->uaf$t_owner[0]] = '\0';
-  strncpy (retpw.pw_dir, &up->uaf$t_defdev[1], up->uaf$t_defdev[0]);
-  retpw.pw_dir[up->uaf$t_defdev[0]] = '\0';
-  strncat (retpw.pw_dir, &up->uaf$t_defdir[1], up->uaf$t_defdir[0]);
-  retpw.pw_dir[up->uaf$t_defdev[0] + up->uaf$t_defdir[0]] = '\0';
-  strncpy (retpw.pw_shell, &up->uaf$t_defcli[1], up->uaf$t_defcli[0]);
-  retpw.pw_shell[up->uaf$t_defcli[0]] = '\0';
-
-  return &retpw;
-}
-#else /* not READ_SYSUAF */
-static struct passwd retpw;
-#endif /* not READ_SYSUAF */
-
-struct passwd *
-getpwnam (name)
-     char * name;
-{
-#ifdef READ_SYSUAF
-  struct UAF *up;
-#else
-  unsigned char * full;
-#endif /* READ_SYSUAF */
-  char *ptr = name;
-
-  while (*ptr)
-    {
-      if ('a' <= *ptr && *ptr <= 'z')
-	*ptr -= 040;
-      ptr++;
-    }
-#ifdef READ_SYSUAF
-  if (!(up = get_uaf_name (name)))
-    return 0;
-  return cnv_uaf_pw (up);
-#else
-  if (strcmp (name, getenv ("USER")) == 0)
-    {
-      retpw.pw_uid = getuid ();
-      retpw.pw_gid = getgid ();
-      strcpy (retpw.pw_name, name);
-      if ((full = (unsigned char*) getenv ("FULLNAME")))
-	strcpy (retpw.pw_gecos, full);
-      else
-	*retpw.pw_gecos = '\0';
-      strcpy (retpw.pw_dir, getenv ("HOME"));
-      *retpw.pw_shell = '\0';
-      return &retpw;
-    }
-  else
-    return 0;
-#endif /* not READ_SYSUAF */
-}
-
-struct passwd *
-getpwuid (uid)
-     unsigned long uid;
-{
-#ifdef READ_SYSUAF
-  struct UAF * up;
-
-  if (!(up = get_uaf_uic (uid)))
-    return 0;
-  return cnv_uaf_pw (up);
-#else
-  if (uid == sys_getuid ())
-    {
-      return getpwnam (getenv ("USER"));
-    }
-  else
-    return 0;
-#endif /* not READ_SYSUAF */
-}
diff -Nurp --exclude='.bzr*' tin-1.8.3/vms/vmstimval.h tin-2.0.0/vms/vmstimval.h
--- tin-1.8.3/vms/vmstimval.h	2005-06-28 10:31:25.000000000 +0200
+++ tin-2.0.0/vms/vmstimval.h	1970-01-01 01:00:00.000000000 +0100
@@ -1,20 +0,0 @@
-#ifndef VMSTIMEVAL_H
-#define VMSTIMEVAL_H
-
-/* In VMS, the timeval structure doesn't really exist, so let's define it.
-
-   Warning: timeval IS defined in the UCX socket.h, so your compiler might
-	get screwed! The UCX definition is exactly the same as the one below
-*/
-
-struct timeval {
-  long tv_sec;
-  long tv_usec;
-};
-
-struct timezone {
-  int tz_minuteswest;
-  int tz_dsttime;
-};
-
-#endif
